Skip to content

fix: refine DataTable empty states and prepare Moo UI 1.2.1 - #103

Merged
cangir merged 6 commits into
mainfrom
dev
Oct 11, 2026
Merged

cangir merged 6 commits into
mainfrom
dev

Conversation

@cangir

@cangir cangir commented Oct 11, 2026

Copy link
Copy Markdown
Member

Summary

  • Compose DataTable empty results with the shared Empty component and document it in Usage, Composition, HTML Anatomy and Reference. Distinguish zero source rows from filtered results, and retain Clear filters behavior.
  • Show one detailed release on Changelog and link the complete release history to GitHub.
  • Fix unchecked Checkbox border contrast inside semantic Alerts in a separate commit.
  • Prepare the compatible 1.2.1 patch release and refresh accepted baselines, conformance assets and the documented kit checksum.

Scope

  • Documentation only
  • Package CSS
  • Optional ESM
  • Catalog chrome
  • Certification evidence
  • Release or CI automation

Catalog documentation and release metadata are included. Global catalog chrome and release workflows retain their existing behavior.

Public Contract Impact

  • No public contract change
  • Documented classes, selectors, data-*, or ARIA relationships changed
  • Package exports or file list changed
  • CSS load order or scoped .moo-ui behavior changed
  • Bootstrap peer range or plugin ownership changed
  • Optional Moo UI ESM lifecycle changed

DataTable's generated empty-result content now uses the existing .empty-state anatomy. Its [data-datatable-empty], reset hook, role="status" and aria-live="polite" remain intact. JavaScript accepts both shared Empty title/description selectors and legacy DataTable selectors. Export paths, dependency resolutions and ESM lifecycle are preserved.

Verification

  • .venv/bin/python build.py
  • focused tier: .venv/bin/python scripts/run-test-tier.py run quick
  • browser tier when relevant: .venv/bin/python scripts/run-test-tier.py run browser-smoke
  • release tier before dev -> main, tags, or publish: .venv/bin/python scripts/run-test-tier.py run release
  • git diff --check
  • Browser/viewport checked: Chromium DataTable at light/LTR 1280 px and dark/RTL 390 px; Alert at light/LTR 1040 px and dark/RTL 390 px; accepted Changelog layout inspected in the browser.
  • Keyboard/focus checked when interaction changed: native Checkbox focus rings and Space toggling across five Alert variants in both theme/direction cases.
  • Screen-reader or accessibility smoke checked when relevant: automated DataTable status/live-region, hidden-state and accessible control contracts. No manual screen-reader session is recorded.

The full release gate passed against clean commit 93c3828: 1,443 tests, zero failures, two expected skips. It includes all quick and browser-smoke test modules; focused source and browser regressions also passed separately. Catalog build, the 103-file package inventory, clean-consumer installation and release rehearsal passed. Final automated diff review and the Alert ownership follow-up returned zero findings.

Notes

  • Target version: 1.2.1, a compatible patch over 1.2.0. Publication follows the existing merge, tag and publish flow.
  • Component certification remains preview. The two suite skips cover the unpublished-Sass negative case, because public Sass entrypoints exist, and the manual 200% browser-zoom gate. Local rehearsal evidence is separate from the nightly browser matrix.

Comment thread tests/test_catalog.py Fixed
@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 54 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: wpmoo-org/ui/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 078d1a1c-bc1c-4c92-a993-c2957f8e3a21

📥 Commits

Reviewing files that changed from the base of the PR and between 93c3828 and 00f3cb5.


📒 Files selected for processing (1)
  • tests/test_catalog.py

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: wpmoo-org/ui/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 0976aba7-9657-4243-b53e-b16edcb9ec2d


📥 Commits

Reviewing files that changed from the base of the PR and between a632f80 and 93c3828.



⛔ Files ignored due to path filters (3)
  • conformance/fixtures/assets/moo.css is excluded by !conformance/fixtures/assets/moo.css
  • conformance/fixtures/assets/sidebar.js is excluded by !conformance/fixtures/assets/sidebar.js
  • package-lock.json is excluded by !**/package-lock.json, !package-lock.json


📒 Files selected for processing (23)
  • ASSET_LICENSE.md
  • README.md
  • SECURITY.md
  • SUPPORT.md
  • certification.json
  • conformance/fixtures/assets/state.js
  • docs/contracts/PACKAGE_SURFACE_DECISIONS.md
  • package.json
  • scss/components/_alert.scss
  • scss/mixins/_banner.scss
  • site/public/llms.txt
  • site/src/pages/changelog.html.jinja
  • site/src/pages/components/datatable.html.jinja
  • src/components/datatable.html.jinja
  • src/js/components/datatable.js
  • tests/fixtures/boundary-baseline.json
  • tests/fixtures/moo-core-baseline.sha256
  • tests/fixtures/moo-ui-baseline.sha256
  • tests/test_alert_browser.py
  • tests/test_catalog.py
  • tests/test_codepen_modal_browser.py
  • tests/test_datatable.py
  • tests/test_datatable_browser.py


Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.




📝 Walkthrough
📝 Walkthrough

Walkthrough

Moo UI’s 1.2.1 release composes DataTable empty results with the shared Empty component, changes unchecked checkbox borders inside Alerts, and updates release information and version records.

Changes

Moo UI 1.2.1 patch release

Layer / File(s) Summary
DataTable empty-result composition
src/components/datatable.html.jinja, src/js/components/datatable.js, site/src/pages/components/datatable.html.jinja, tests/test_datatable.py, tests/test_datatable_browser.py, tests/test_codepen_modal_browser.py
DataTable renders its empty state through the shared Empty component. The JavaScript supports generic and DataTable-specific title and description selectors, and controls the actions container based on whether rows exist. Documentation and tests cover filtered results, zero rows, and search recovery.
Checkbox borders inside Alerts
scss/components/_alert.scss, tests/test_alert_browser.py, tests/test_catalog.py
Unchecked, determinate, valid checkboxes inside Alerts use the Alert text color for their border, except checkboxes inside .form-switch. Browser tests check alert variants, states, focus rings, and keyboard behavior.
Release catalog and version records
site/src/pages/changelog.html.jinja, README.md, SECURITY.md, SUPPORT.md, ASSET_LICENSE.md, certification.json, package.json, conformance/fixtures/assets/state.js, docs/contracts/PACKAGE_SURFACE_DECISIONS.md, site/public/llms.txt, scss/mixins/_banner.scss, tests/fixtures/*, tests/test_catalog.py
The changelog presents one detailed card for the current release and links to earlier releases on GitHub. Release documentation, package and certification metadata, version references, and generated-output hash baselines are updated for 1.2.1.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant DataTableTemplate
  participant EmptyMacro
  participant DataTableJS
  participant EmptyStateDOM
  DataTableTemplate->>EmptyMacro: Render title, description, and clear-filters action
  EmptyMacro->>EmptyStateDOM: Create shared empty-state markup
  DataTableJS->>EmptyStateDOM: Update messages and action visibility based on row count
Loading


Merge Risk: ⚪ Minimal · up to 93c38

The 1.2.1 release notes and version records are aligned. No actionable issue remains before merging, subject to normal release checks.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 7 files. (16 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check Passed The description is complete and aligned with the changes. It covers the DataTable, Changelog, Alert, release, contract, and verification work. It also records test results, skipped checks, compatibili…
Title check Passed The title clearly identifies the main DataTable empty-state fix and the Moo UI 1.2.1 release preparation.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.


Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 7 files. (16 skipped: 16 unsupported.)




✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR


🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR



  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@cangir
cangir merged commit 6cc8972 into main Oct 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant