You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix: refine DataTable empty states and prepare Moo UI 1.2.1 - #103
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.
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.
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.
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.
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 | 4 | 1
❌ Failed checks (1 warning)
Check name
Status
Explanation
Resolution
Docstring Coverage
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
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
The title clearly identifies the main DataTable empty-state fix and the Moo UI 1.2.1 release preparation.
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Scope
Catalog documentation and release metadata are included. Global catalog chrome and release workflows retain their existing behavior.
Public Contract Impact
data-*, or ARIA relationships changed.moo-uibehavior changedDataTable's generated empty-result content now uses the existing
.empty-stateanatomy. Its[data-datatable-empty], reset hook,role="status"andaria-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.venv/bin/python scripts/run-test-tier.py run quick.venv/bin/python scripts/run-test-tier.py run browser-smokedev->main, tags, or publish:.venv/bin/python scripts/run-test-tier.py run releasegit diff --checkThe 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