Skip to content

fix(html): Align tag enums and defaults provider with latest ui-awesome/html-core and ui-awesome/html-interop changes.#61

Merged
terabytesoftw merged 1 commit intomainfrom
fix_mini_16
Feb 27, 2026
Merged

fix(html): Align tag enums and defaults provider with latest ui-awesome/html-core and ui-awesome/html-interop changes.#61
terabytesoftw merged 1 commit intomainfrom
fix_mini_16

Conversation

@terabytesoftw
Copy link
Contributor

Pull Request

Q A
Is bugfix? ✔️
New feature?
Breaks BC?

…ome/html-core` and `ui-awesome/html-interop` changes.
@coderabbitai
Copy link

coderabbitai bot commented Feb 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 99f069e and 9c5e013.

📒 Files selected for processing (119)
  • CHANGELOG.md
  • composer.json
  • src/Embedded/Img.php
  • src/Flow/Div.php
  • src/Flow/Hr.php
  • src/Flow/Main.php
  • src/Flow/P.php
  • src/Form/Button.php
  • src/Form/Form.php
  • src/Form/InputCheckbox.php
  • src/Form/InputColor.php
  • src/Form/InputDate.php
  • src/Form/InputDateTimeLocal.php
  • src/Form/InputEmail.php
  • src/Form/InputFile.php
  • src/Form/InputHidden.php
  • src/Form/InputImage.php
  • src/Form/InputMonth.php
  • src/Form/InputNumber.php
  • src/Form/InputPassword.php
  • src/Form/InputRadio.php
  • src/Form/InputRange.php
  • src/Form/InputReset.php
  • src/Form/InputSearch.php
  • src/Form/InputSubmit.php
  • src/Form/InputTel.php
  • src/Form/InputText.php
  • src/Form/InputTime.php
  • src/Form/InputUrl.php
  • src/Form/InputWeek.php
  • src/Form/TextArea.php
  • src/Heading/H1.php
  • src/Heading/H2.php
  • src/Heading/H3.php
  • src/Heading/H4.php
  • src/Heading/H5.php
  • src/Heading/H6.php
  • src/Heading/HGroup.php
  • src/List/Dd.php
  • src/List/Dl.php
  • src/List/Dt.php
  • src/List/Li.php
  • src/List/Ol.php
  • src/List/Ul.php
  • src/Metadata/Base.php
  • src/Metadata/Link.php
  • src/Metadata/Meta.php
  • src/Metadata/NoScript.php
  • src/Metadata/Script.php
  • src/Metadata/Style.php
  • src/Metadata/Template.php
  • src/Metadata/Title.php
  • src/Palpable/A.php
  • src/Phrasing/I.php
  • src/Phrasing/Label.php
  • src/Phrasing/Span.php
  • src/Root/Body.php
  • src/Root/Footer.php
  • src/Root/Head.php
  • src/Root/Header.php
  • src/Root/Html.php
  • src/Sectioning/Article.php
  • src/Sectioning/Aside.php
  • src/Sectioning/Nav.php
  • src/Sectioning/Section.php
  • tests/Flow/DivTest.php
  • tests/Flow/MainTest.php
  • tests/Flow/PTest.php
  • tests/Form/FormTest.php
  • tests/Form/InputCheckboxTest.php
  • tests/Form/InputColorTest.php
  • tests/Form/InputDateTest.php
  • tests/Form/InputDateTimeLocalTest.php
  • tests/Form/InputEmailTest.php
  • tests/Form/InputFileTest.php
  • tests/Form/InputHiddenTest.php
  • tests/Form/InputImageTest.php
  • tests/Form/InputMonthTest.php
  • tests/Form/InputNumberTest.php
  • tests/Form/InputPasswordTest.php
  • tests/Form/InputRadioTest.php
  • tests/Form/InputRangeTest.php
  • tests/Form/InputResetTest.php
  • tests/Form/InputSearchTest.php
  • tests/Form/InputSubmitTest.php
  • tests/Form/InputTelTest.php
  • tests/Form/InputTextTest.php
  • tests/Form/InputTimeTest.php
  • tests/Form/InputUrlTest.php
  • tests/Form/InputWeekTest.php
  • tests/Form/TextAreaTest.php
  • tests/Heading/H1Test.php
  • tests/Heading/H2Test.php
  • tests/Heading/H3Test.php
  • tests/Heading/H4Test.php
  • tests/Heading/H5Test.php
  • tests/Heading/H6Test.php
  • tests/Heading/HGroupTest.php
  • tests/List/DdTest.php
  • tests/List/DlTest.php
  • tests/List/DtTest.php
  • tests/List/LiTest.php
  • tests/List/OlTest.php
  • tests/List/UlTest.php
  • tests/Metadata/NoScriptTest.php
  • tests/Metadata/ScriptTest.php
  • tests/Metadata/StyleTest.php
  • tests/Metadata/TemplateTest.php
  • tests/Metadata/TitleTest.php
  • tests/Root/BodyTest.php
  • tests/Root/FooterTest.php
  • tests/Root/HeadTest.php
  • tests/Root/HeaderTest.php
  • tests/Root/HtmlTest.php
  • tests/Sectioning/ArticleTest.php
  • tests/Sectioning/AsideTest.php
  • tests/Sectioning/NavTest.php
  • tests/Sectioning/SectionTest.php
  • tests/Support/Stub/DefaultProvider.php

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes

    • Default provider no longer injects unwanted title attributes into rendered elements.
    • Input elements no longer automatically generate IDs when none is explicitly provided.
  • Chores

    • Updated dependency versions for enhanced compatibility.
    • Refined internal type declarations for improved code clarity.

Walkthrough

Updates type hints across 60+ HTML element classes to use concrete enum types instead of interfaces, aligning with dependency upgrades. Removes ID auto-generation tests and updates default provider test expectations to exclude title attributes.

Changes

Cohort / File(s) Summary
Dependency Updates
CHANGELOG.md, composer.json
Added changelog entry for bug fix. Updated ui-awesome/html-interop to ^0.4@dev, ui-awesome/html-mixin to dev-main as 0.4, and added ui-awesome/html-contracts ^0.1@dev.
Form Input Elements
src/Form/InputCheckbox.php, InputColor.php, InputDate.php, InputDateTimeLocal.php, InputEmail.php, InputFile.php, InputHidden.php, InputImage.php, InputMonth.php, InputNumber.php, InputPassword.php, InputRadio.php, InputRange.php, InputReset.php, InputSearch.php, InputSubmit.php, InputTel.php, InputText.php, InputTime.php, InputUrl.php, InputWeek.php
Changed getTag() return type from VoidInterface to Voids across all input elements. Updated imports and docblock annotations accordingly.
Form Components
src/Form/Button.php, Form.php, TextArea.php
Changed getTag() return type from interface types to concrete enums: InlineInterfaceInline (Button), BlockInterfaceBlock (Form, TextArea).
Flow Elements
src/Flow/Div.php, Hr.php, Main.php, P.php
Changed getTag() return type from BlockInterface to Block for Div, Main, P. Changed Hr from VoidInterface to Voids.
Heading Elements
src/Heading/H1.php, H2.php, H3.php, H4.php, H5.php, H6.php, HGroup.php
Changed getTag() return type from BlockInterface to Block across all heading elements.
List Elements
src/List/Dd.php, Dl.php, Dt.php, Li.php, Ol.php, Ul.php
Changed getTag() return type from BlockInterface to Lists across all list elements.
Metadata Elements
src/Metadata/Base.php, Link.php, Meta.php
Changed getTag() return type from VoidInterface to MetadataVoid for metadata void elements.
Metadata Block Elements
src/Metadata/NoScript.php, Script.php, Style.php, Template.php, Title.php
Changed getTag() return type from BlockInterface to MetadataBlock for metadata block elements.
Palpable/Phrasing Elements
src/Palpable/A.php, src/Phrasing/I.php, Label.php, Span.php
Changed getTag() return type from InlineInterface to Inline across inline elements.
Root Elements
src/Root/Body.php, Footer.php, Head.php, Header.php, Html.php
Changed getTag() return type to specific enum types: Body (BlockInterfaceRoot), Footer/Header (BlockInterfaceBlock), Head/Html (BlockInterfaceRoot).
Sectioning Elements
src/Sectioning/Article.php, Aside.php, Nav.php, Section.php
Changed getTag() return type from BlockInterface to Block across sectioning elements.
Form Input Tests
tests/Form/InputCheckbox.php, InputColor.php, InputDate.php, InputDateTimeLocal.php, InputEmail.php, InputFile.php, InputHidden.php, InputImage.php, InputMonth.php, InputNumber.php, InputPassword.php, InputRadio.php, InputRange.php, InputReset.php, InputSearch.php, InputSubmit.php, InputTel.php, InputText.php, InputTime.php, InputUrl.php, InputWeek.php
Removed testRenderWithGenerateId(), removed id(null) attribute assignments, removed auto-ID generation test coverage.
Default Provider Tests
tests/Flow/DivTest.php, MainTest.php, PTest.php, tests/Form/FormTest.php, TextAreaTest.php, tests/Heading/H*.php, tests/List/*.php, tests/Metadata/*.php, tests/Root/*.php, tests/Sectioning/*.php
Updated testRenderWithDefaultProvider() to exclude title="default-title" attribute from expected HTML output.
Test Support
tests/Support/Stub/DefaultProvider.php
Updated BlockInterface import path from UIAwesome\Html\Interop\BlockInterface to UIAwesome\Html\Contracts\Element\BlockInterface.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

bug

Poem

🐰 Hops through the code with careful stride,
Swapping interfaces for enums wide,
BlockInterface melts to Block so true,
VoidInterface becomes Voids anew,
Types align with dependencies bright!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: aligning tag enums and defaults provider with upstream library updates, which is the primary objective throughout the changeset.
Description check ✅ Passed The description adequately identifies the pull request as a bugfix with no breaking changes, which aligns with the actual changes in the codebase.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix_mini_16

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai bot added the bug Something isn't working label Feb 27, 2026
@terabytesoftw terabytesoftw merged commit ce212e9 into main Feb 27, 2026
47 checks passed
@terabytesoftw terabytesoftw deleted the fix_mini_16 branch February 27, 2026 22:42
@codecov
Copy link

codecov bot commented Feb 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (99f069e) to head (9c5e013).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##                main       #61   +/-   ##
===========================================
  Coverage     100.00%   100.00%           
  Complexity       175       175           
===========================================
  Files             94        94           
  Lines            370       370           
===========================================
  Hits             370       370           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant