Skip to content

Release v1.0.0-rc.10: Choice Cards, responsive tables and deferred charts - #92

Merged
cangir merged 30 commits into
mainfrom
dev
Oct 3, 2026
Merged

cangir merged 30 commits into
mainfrom
dev

Conversation

@cangir

@cangir cangir commented Oct 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Add native Radio Group Choice Cards with icon or uppercase-code media, primary selected media and muted descriptions.
  • Add responsive DataTable card switching, shared row menus, title wrapping and configured-breakpoint fallbacks.
  • Expose the explicit Sheet initializer, configurable width and autofocus; fix lifecycle cleanup and contained Sidebar behavior.
  • Add scoped typography controls and correct theme-aware secondary surfaces and dropdown hover states.
  • Move catalog state restoration to external assets and load Chart.js on demand through loadChart().
  • Prepare readable CSS/JS and compact minified outputs, preserve dependency licenses and remove silent SCSS comments only from prepared npm archives.
  • Update Wrangler to 4.146.0 and transitive Undici to 7.29.1, incorporating chore(deps-dev): bump wrangler from 4.135.0 to 4.137.0 in the npm-dependencies group across 1 directory #89 and chore(deps): bump undici and wrangler #91.

Scope

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

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

The aggregate's synchronous MooUI.Chart export is replaced by
const Chart = await MooUI.loadChart(). Direct imports from
@wpmoo/ui/chart.js retain their existing API.

The package also exports initSheets(root) through sheet.js.

Verification

  • .venv/bin/python build.py
  • Focused build/package/clean-consumer contracts: 10 tests passed.
  • Quick and browser-smoke coverage through the complete release tier.
  • Release tier: .venv/bin/python scripts/run-test-tier.py run release
  • git diff --check
  • Native npm ci and npm ls; npm audit reports zero vulnerabilities.
  • Wrangler dry-run validates the catalog's 450 assets.
  • Browser/viewport checked.
  • Keyboard/focus checked.
  • Automated accessibility smoke checked.
  • Maintainer confirmed local manual browser checks.

Notes

  • The clean local release tier at 5b3890f passes 1,375 tests with two existing automated skips, followed by build, package verification and RC rehearsal.
  • The skips cover the obsolete unpublished-Sass guard and manual zoom placeholder. Human manual acceptance is recorded separately.
  • The prepared npm archive is byte-identical to the preceding accepted artifact; the source attestation is renewed.
  • The dependency update changes only the lockfile. Declared ranges, pinned build dependencies and RC10 metadata are preserved.
  • The generated lockfile is excluded from automated source review. Installation, audit, dry-run and release contracts validate this update.
  • Certification remains preview. Hosted release checks are required before merge; publication consumes the exact archive from the successful hosted rehearsal.
  • Dependency PRs chore(deps-dev): bump wrangler from 4.135.0 to 4.137.0 in the npm-dependencies group across 1 directory #89 and chore(deps): bump undici and wrangler #91 can be closed after the release merge incorporates their updates.

@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 128 files, which is 28 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: Repository: wpmoo-org/ui/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: d524f6e8-1bc7-4855-a6c3-05961f52c085
📥 Commits

Reviewing files that changed from the base of the PR and between e38971f and c4c6071.

⛔ 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 (128)
  • .github/workflows/npm-publish.yml
  • .github/workflows/secret-scan.yml
  • ASSET_LICENSE.md
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • SECURITY.md
  • SUPPORT.md
  • THIRD_PARTY_NOTICES.md
  • build.py
  • certification.json
  • conformance/fixtures/assets/state.js
  • docs/contracts/BODY_TYPOGRAPHY.md
  • docs/contracts/PACKAGE_SURFACE_DECISIONS.md
  • docs/contracts/THEME_PRESETS.md
  • package.json
  • scripts/package_release.py
  • scripts/record-boundary-baseline.py
  • scripts/rehearse-rc.py
  • scripts/run-test-tier.py
  • scripts/style_comments.py
  • scripts/verify_package_contents.py
  • scripts/verify_release_tarball.py
  • scss/_components.scss
  • scss/components/_accordion.scss
  • scss/components/_alert.scss
  • scss/components/_avatar.scss
  • scss/components/_badge.scss
  • scss/components/_breadcrumb.scss
  • scss/components/_button.scss
  • scss/components/_button_group.scss
  • scss/components/_card.scss
  • scss/components/_checkbox.scss
  • scss/components/_close_button.scss
  • scss/components/_collapsible.scss
  • scss/components/_combobox.scss
  • scss/components/_context-menu.scss
  • scss/components/_datatable.scss
  • scss/components/_datepicker.scss
  • scss/components/_dialog.scss
  • scss/components/_dropdown.scss
  • scss/components/_field.scss
  • scss/components/_input.scss
  • scss/components/_input_group.scss
  • scss/components/_kbd.scss
  • scss/components/_menubar.scss
  • scss/components/_navigation.scss
  • scss/components/_pagination.scss
  • scss/components/_popover.scss
  • scss/components/_progress.scss
  • scss/components/_radio_group.scss
  • scss/components/_search_trigger.scss
  • scss/components/_select.scss
  • scss/components/_separator.scss
  • scss/components/_sheet.scss
  • scss/components/_sidebar.scss
  • scss/components/_skeleton.scss
  • scss/components/_slider.scss
  • scss/components/_spinner.scss
  • scss/components/_switch.scss
  • scss/components/_table.scss
  • scss/components/_tabs.scss
  • scss/components/_textarea.scss
  • scss/components/_toast.scss
  • scss/components/_toggle_group.scss
  • scss/components/_tooltip.scss
  • scss/foundations/_scope.scss
  • scss/layouts/app/sidebar/_base.scss
  • scss/mixins/_banner.scss
  • scss/moo-core.scss
  • scss/moo-ui.scss
  • scss/settings/_component_variables.scss
  • scss/themes/_root.scss
  • scss/themes/_theme.scss
  • scss/utilities/_background_color.scss
  • site/public/llms.txt
  • site/src/blocks/datatable_tasks.html.jinja
  • site/src/includes/catalog-theme-state.html.jinja
  • site/src/js/catalog-theme-state.js.jinja
  • site/src/js/catalog/index.js
  • site/src/layouts/base.html.jinja
  • site/src/layouts/catalog.html.jinja
  • site/src/pages/changelog.html.jinja
  • site/src/pages/components/datatable.html.jinja
  • site/src/pages/components/radio-group.html.jinja
  • site/src/pages/components/sheet.html.jinja
  • site/src/pages/examples/dashboard/tasks.html.jinja
  • site/src/pages/installation.html.jinja
  • src/certification/api-freeze-1.0.0-rc.10.json
  • src/components/datatable.html.jinja
  • src/components/input.html.jinja
  • src/components/radio_group.html.jinja
  • src/components/sheet.html.jinja
  • src/js/components/datatable.js
  • src/js/components/sheet.js
  • src/js/moo-ui.js
  • src/layouts/app.html.jinja
  • tests/fixtures/boundary-baseline.json
  • tests/fixtures/certification/layout-app.html.jinja
  • tests/fixtures/moo-core-baseline.sha256
  • tests/fixtures/moo-ui-baseline.sha256
  • tests/helpers/css_contract.py
  • tests/test_build.py
  • tests/test_catalog.py
  • tests/test_catalog_browser.py
  • tests/test_certification_browser.py
  • tests/test_certification_contract.py
  • tests/test_certification_manifest.py
  • tests/test_chart_loading_browser.py
  • tests/test_contained_sidebar_browser.py
  • tests/test_core_docs_boundary.py
  • tests/test_css_contract.py
  • tests/test_datatable.py
  • tests/test_datatable_browser.py
  • tests/test_design_gates.py
  • tests/test_document_root.py
  • tests/test_input.py
  • tests/test_layouts.py
  • tests/test_layouts_browser.py
  • tests/test_moo_core.py
  • tests/test_package.py
  • tests/test_package_release.py
  • tests/test_radio_group.py
  • tests/test_release_tarball.py
  • tests/test_secret_scan.py
  • tests/test_sheet.py
  • tests/test_style_comments.py
  • tests/test_test_tiers.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · 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.

Comment thread tests/test_certification_contract.py Fixed
@cangir
cangir merged commit 6ae0c51 into main Oct 3, 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