themelia-react-ui 2.0.3 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +185 -0
- package/README.md +168 -36
- package/dist/{accordion-Cjb6sx0G.js → accordion-B9MHG0cT.js} +11 -11
- package/dist/accordion-B9MHG0cT.js.map +1 -0
- package/dist/action-menu-Dr8K-ghE.js +284 -0
- package/dist/action-menu-Dr8K-ghE.js.map +1 -0
- package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-P-aVJisu.js} +42 -36
- package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
- package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-C58tQcBy.js} +387 -350
- package/dist/ai-artifact-C58tQcBy.js.map +1 -0
- package/dist/app-shell-B_IuNWOo.js +321 -0
- package/dist/app-shell-B_IuNWOo.js.map +1 -0
- package/dist/{attachment-BxDfL2mw.js → attachment-Dg_69lPS.js} +9 -9
- package/dist/{attachment-BxDfL2mw.js.map → attachment-Dg_69lPS.js.map} +1 -1
- package/dist/{auth-BGua8ouh.js → auth-DTkkshS8.js} +44 -47
- package/dist/auth-DTkkshS8.js.map +1 -0
- package/dist/{avatar-DAPlDvhJ.js → avatar-CeZaFmNH.js} +8 -8
- package/dist/avatar-CeZaFmNH.js.map +1 -0
- package/dist/{badge-HpFqoqSY.js → badge-xIiV_E7f.js} +5 -5
- package/dist/{badge-HpFqoqSY.js.map → badge-xIiV_E7f.js.map} +1 -1
- package/dist/base/accordion.js +1 -1
- package/dist/base/action-menu.js +1 -1
- package/dist/base/attachment.js +1 -1
- package/dist/base/avatar.js +1 -1
- package/dist/base/badge.js +1 -1
- package/dist/base/batch-action-bar.js +1 -1
- package/dist/base/buttons.js +1 -1
- package/dist/base/cards.js +2 -2
- package/dist/base/carousel.js +3 -3
- package/dist/base/cascader.js +2 -372
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +2 -2
- package/dist/base/command.js +1 -1
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +2 -2
- package/dist/base/display.js +6 -6
- package/dist/base/feedback.js +3 -3
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +3 -3
- package/dist/base/inline-edit.js +10 -10
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/metadata-list.js +1 -1
- package/dist/base/navigation.js +7 -7
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +1 -1
- package/dist/base/repeaters.js +12 -12
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +7 -7
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +4 -4
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +2 -2
- package/dist/base/toaster.js +36 -36
- package/dist/base/toaster.js.map +1 -1
- package/dist/base/tree.js +1 -1
- package/dist/base/upload-queue.js +1 -1
- package/dist/base/upload.js +3 -3
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-DnUJ21NQ.js → batch-action-bar-Cb8cuvyy.js} +6 -6
- package/dist/batch-action-bar-Cb8cuvyy.js.map +1 -0
- package/dist/blocks/admin.js +23 -23
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +230 -216
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +326 -307
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +1 -1
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +1247 -1169
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -2
- package/dist/blocks/onboarding.js +6 -6
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +11 -11
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-C-oqs1sQ.js → breadcrumbs-J-K2kl4c.js} +6 -6
- package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
- package/dist/{button-DVzspB_G.js → button-S2Cubiiz.js} +3 -3
- package/dist/button-S2Cubiiz.js.map +1 -0
- package/dist/{buttons-DPZekJFu.js → buttons-BedGfygC.js} +16 -16
- package/dist/buttons-BedGfygC.js.map +1 -0
- package/dist/cards-rNX1M4Xn.js +69 -0
- package/dist/cards-rNX1M4Xn.js.map +1 -0
- package/dist/cascader-B1MiqkBq.js +439 -0
- package/dist/cascader-B1MiqkBq.js.map +1 -0
- package/dist/chart-Darg_0Kv.js +162 -0
- package/dist/chart-Darg_0Kv.js.map +1 -0
- package/dist/{checkbox-AWIhNhmo.js → checkbox-fflqmODR.js} +9 -5
- package/dist/checkbox-fflqmODR.js.map +1 -0
- package/dist/choice-inputs-zUgBZfE4.js +777 -0
- package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
- package/dist/{code-block-DeneBJR_.js → code-block-BzmM9Eig.js} +9 -9
- package/dist/code-block-BzmM9Eig.js.map +1 -0
- package/dist/{collapsible-C-_l4hpy.js → collapsible-BkAI_XD4.js} +5 -5
- package/dist/{collapsible-C-_l4hpy.js.map → collapsible-BkAI_XD4.js.map} +1 -1
- package/dist/{collection-content-By56pLog.js → collection-content-gDh1v6O4.js} +3 -3
- package/dist/{collection-content-By56pLog.js.map → collection-content-gDh1v6O4.js.map} +1 -1
- package/dist/combobox-BEx0vJgF.js +362 -0
- package/dist/combobox-BEx0vJgF.js.map +1 -0
- package/dist/{combobox-Dxo2fAYQ.js → combobox-BwzoXFSG.js} +254 -247
- package/dist/combobox-BwzoXFSG.js.map +1 -0
- package/dist/{command-C25VMRII.js → command-CrlPIL6m.js} +12 -12
- package/dist/command-CrlPIL6m.js.map +1 -0
- package/dist/{comments-DD0DUPwJ.js → comments-Dmpp0YIc.js} +380 -379
- package/dist/comments-Dmpp0YIc.js.map +1 -0
- package/dist/components/base/action-menu/action-menu.d.ts +9 -1
- package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
- package/dist/components/base/cards/card.recipes.d.ts +16 -7
- package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
- package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
- package/dist/components/base/cards/smart-card.types.d.ts +11 -7
- package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
- package/dist/components/base/chart/chart.d.ts +6 -1
- package/dist/components/base/choice-inputs/checkbox.d.ts +7 -2
- package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
- package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
- package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
- package/dist/components/base/combobox/index.d.ts +4 -2
- package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
- package/dist/components/base/feedback/alert.d.ts +1 -1
- package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
- package/dist/components/base/forms/form-field.d.ts +5 -3
- package/dist/components/base/forms/form-sizing.d.ts +7 -7
- package/dist/components/base/forms/index.d.ts +1 -0
- package/dist/components/base/forms/server-errors.d.ts +16 -0
- package/dist/components/base/forms/workflow.d.ts +11 -2
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
- package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
- package/dist/components/base/navigation/page-header/page-header.d.ts +13 -4
- package/dist/components/base/popover/popover.d.ts +3 -3
- package/dist/components/base/popover/popover.recipes.d.ts +10 -6
- package/dist/components/base/sheet/sheet.d.ts +2 -0
- package/dist/components/base/sidebar/index.d.ts +1 -1
- package/dist/components/base/sidebar/sidebar.d.ts +27 -5
- package/dist/components/base/structure/composition.recipes.d.ts +17 -0
- package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
- package/dist/components/base/text-inputs/input.d.ts +4 -2
- package/dist/components/base/text-inputs/textarea.d.ts +4 -2
- package/dist/components/base/toaster/index.d.ts +1 -0
- package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
- package/dist/components/base/value-inputs/slider.d.ts +5 -1
- package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
- package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
- package/dist/components/blocks/commerce/index.d.ts +7 -6
- package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
- package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
- package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
- package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
- package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
- package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
- package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
- package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
- package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
- package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
- package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
- package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
- package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
- package/dist/components/features/activities/activities.types.d.ts +8 -2
- package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
- package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
- package/dist/components/features/event-calendar/colors.d.ts +2 -2
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
- package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
- package/dist/components/features/filters/filters.strings.d.ts +4 -0
- package/dist/components/features/filters/filters.types.d.ts +3 -0
- package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
- package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
- package/dist/components/features/global-search/global-search.types.d.ts +2 -0
- package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
- package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
- package/dist/components/features/media-library/media-library.types.d.ts +14 -4
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
- package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
- package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/products.strings.d.ts +9 -1
- package/dist/components/features/products/products.types.d.ts +43 -6
- package/dist/components/features/resource/resource.d.ts +5 -1
- package/dist/components/features/resource/resource.types.d.ts +12 -1
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
- package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
- package/dist/components/features/table/table.types.d.ts +1 -1
- package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
- package/dist/components/layout/app-shell/index.d.ts +1 -1
- package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
- package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
- package/dist/components/layout/header/header.recipes.d.ts +6 -0
- package/dist/components/layout/header/header.types.d.ts +6 -6
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
- package/dist/components/layout/page/index.d.ts +2 -1
- package/dist/components/layout/page/page.d.ts +1 -0
- package/dist/components/layout/page/page.strings.d.ts +11 -0
- package/dist/components/layout/page/page.types.d.ts +69 -17
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +9 -2
- package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/index.d.ts +2 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
- package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
- package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
- package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
- package/dist/components/typography/text.styles.d.ts +26 -1
- package/dist/components/ui/alert-dialog.d.ts +2 -2
- package/dist/components/ui/combobox.d.ts +1 -1
- package/dist/components/ui/dialog.d.ts +2 -2
- package/dist/components/ui/overlay-layer.d.ts +18 -0
- package/dist/components/ui/sheet.d.ts +5 -1
- package/dist/components/ui/sidebar-state.d.ts +82 -0
- package/dist/components/ui/sidebar.d.ts +5 -17
- package/dist/composition.recipes-COdiFhxB.js +19 -0
- package/dist/composition.recipes-COdiFhxB.js.map +1 -0
- package/dist/containers-CIxwbZt5.js +112 -0
- package/dist/containers-CIxwbZt5.js.map +1 -0
- package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
- package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
- package/dist/{copyable-ClBuk_UK.js → copyable-DIznBqiT.js} +7 -7
- package/dist/{copyable-ClBuk_UK.js.map → copyable-DIznBqiT.js.map} +1 -1
- package/dist/{data-display-DT_khPl_.js → data-display-BdgCAw8T.js} +277 -285
- package/dist/data-display-BdgCAw8T.js.map +1 -0
- package/dist/{date-DCrsDTZc.js → date-Cq8ioE4o.js} +5 -5
- package/dist/{date-DCrsDTZc.js.map → date-Cq8ioE4o.js.map} +1 -1
- package/dist/{date-picker-B2K3ucWn.js → date-picker-RlIzKom_.js} +501 -480
- package/dist/date-picker-RlIzKom_.js.map +1 -0
- package/dist/date-pickers-DY-CpXS1.js +179 -0
- package/dist/date-pickers-DY-CpXS1.js.map +1 -0
- package/dist/{display-hAc1HjpI.js → display-KsZLw9Ov.js} +9 -9
- package/dist/{display-hAc1HjpI.js.map → display-KsZLw9Ov.js.map} +1 -1
- package/dist/dropdown-menu-CLs8Lihj.js +194 -0
- package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
- package/dist/features/activities.js +302 -253
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +15 -14
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +222 -220
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +11 -10
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +13 -13
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer.js +249 -249
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +264 -269
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +167 -138
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +6 -7
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +269 -260
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +827 -777
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1246 -1169
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +13 -13
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +8 -8
- package/dist/features/resource.js +127 -123
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +2 -2
- package/dist/features/schema-form.js +254 -253
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +95 -96
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-BYIhtitP.js → feedback-Dm4izqFn.js} +81 -80
- package/dist/feedback-Dm4izqFn.js.map +1 -0
- package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
- package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
- package/dist/{filters-DJVAveHA.js → filters-DzgSJpMK.js} +693 -645
- package/dist/filters-DzgSJpMK.js.map +1 -0
- package/dist/{form-field-CwH9y77i.js → form-field-BriWAXyg.js} +14 -8
- package/dist/form-field-BriWAXyg.js.map +1 -0
- package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-Bs2qFUeE.js} +4 -4
- package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
- package/dist/forms-C0RGnJTe.js +216 -0
- package/dist/forms-C0RGnJTe.js.map +1 -0
- package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-DIhghX1Q.js} +295 -291
- package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
- package/dist/{header-BSfIEWbI.js → header-DMMxG__r.js} +67 -63
- package/dist/header-DMMxG__r.js.map +1 -0
- package/dist/header.recipes-BigdJjw1.js +6 -0
- package/dist/header.recipes-BigdJjw1.js.map +1 -0
- package/dist/hooks/useFormErrors.d.ts +1 -1
- package/dist/{hooks-ClH9thn4.js → hooks-DB6CJ4MR.js} +26 -14
- package/dist/hooks-DB6CJ4MR.js.map +1 -0
- package/dist/{icon-badge-DYKIwvOV.js → icon-badge-DZF-YjQp.js} +4 -4
- package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
- package/dist/index.js +4 -5
- package/dist/input-CvyDQlY7.js +289 -0
- package/dist/input-CvyDQlY7.js.map +1 -0
- package/dist/input-DMBwAZmr.js +21 -0
- package/dist/input-DMBwAZmr.js.map +1 -0
- package/dist/item-DjCcM18E.js +277 -0
- package/dist/item-DjCcM18E.js.map +1 -0
- package/dist/layout/app-shell.js +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/containers.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +2 -2
- package/dist/layout/settings.js +1 -1
- package/dist/layout/sidebar.js +3 -3
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +11 -11
- package/dist/lib/affordance-geometry.generated.d.ts +41 -35
- package/dist/lib/control-group-recipes.d.ts +5 -5
- package/dist/lib/field-affordance-recipes.d.ts +2 -2
- package/dist/lib/motion-recipes.d.ts +3 -0
- package/dist/lib/navigation-row-recipes.d.ts +7 -7
- package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
- package/dist/lib/portal-recipes.d.ts +3 -0
- package/dist/lib/token-merge.generated.d.ts +13 -10
- package/dist/lib/ui-provider/types.d.ts +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/map-demo-tile.svg +1 -1
- package/dist/{media-gallery-3zIVLMWH.js → media-gallery-C-vChPmE.js} +6 -6
- package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-C-vChPmE.js.map} +1 -1
- package/dist/{mentions-CGlEJ15c.js → mentions-0_4nWuI-.js} +10 -10
- package/dist/{mentions-CGlEJ15c.js.map → mentions-0_4nWuI-.js.map} +1 -1
- package/dist/{message-DZ_ruyUV.js → message-g8p7eVtN.js} +7 -7
- package/dist/message-g8p7eVtN.js.map +1 -0
- package/dist/metadata-list-C3MkU-Om.js +443 -0
- package/dist/metadata-list-C3MkU-Om.js.map +1 -0
- package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
- package/dist/motion-recipes-DitYv6P2.js.map +1 -0
- package/dist/navigation-C90-oQFq.js +255 -0
- package/dist/navigation-C90-oQFq.js.map +1 -0
- package/dist/{navigation-BzhHI3lo.js → navigation-DaRjthVk.js} +101 -82
- package/dist/navigation-DaRjthVk.js.map +1 -0
- package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
- package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
- package/dist/{number-DbV1Dija.js → number-CRU3kGuk.js} +5 -5
- package/dist/{number-DbV1Dija.js.map → number-CRU3kGuk.js.map} +1 -1
- package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
- package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
- package/dist/overlays-BSgCtM2v.js +1013 -0
- package/dist/overlays-BSgCtM2v.js.map +1 -0
- package/dist/page-DUUKDAjo.js +331 -0
- package/dist/page-DUUKDAjo.js.map +1 -0
- package/dist/page-header-commands-7P3sfE9u.js +193 -0
- package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
- package/dist/{pagination-BL25hu2s.js → pagination-CgCjElfu.js} +7 -7
- package/dist/{pagination-BL25hu2s.js.map → pagination-CgCjElfu.js.map} +1 -1
- package/dist/popover-B85RenIl.js +201 -0
- package/dist/popover-B85RenIl.js.map +1 -0
- package/dist/{popover-menu-Cn9rUkdc.js → popover-menu-DlnQ2zlR.js} +7 -7
- package/dist/{popover-menu-Cn9rUkdc.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
- package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
- package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
- package/dist/portal-recipes-BpsV_iRw.js +9 -0
- package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
- package/dist/{primitives-BFK08r9M.js → primitives-ByWgGUgt.js} +6 -6
- package/dist/{primitives-BFK08r9M.js.map → primitives-ByWgGUgt.js.map} +1 -1
- package/dist/primitives.js +4 -4
- package/dist/{progress-B1VnCT0K.js → progress-BJhQP9WX.js} +9 -9
- package/dist/{progress-B1VnCT0K.js.map → progress-BJhQP9WX.js.map} +1 -1
- package/dist/{receipt-BVSOH3Xo.js → receipt-tOc7B3hw.js} +7 -7
- package/dist/receipt-tOc7B3hw.js.map +1 -0
- package/dist/{rich-text-GOUyKQ-s.js → rich-text-Dth5E882.js} +4 -4
- package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-Dth5E882.js.map} +1 -1
- package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-C1fOjBTd.js} +429 -430
- package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
- package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-laT3tpBT.js} +33 -29
- package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
- package/dist/{scroll-area-DcI-M1UT.js → scroll-area-B0dB2cBi.js} +2 -2
- package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
- package/dist/{separator-Bom7NsGO.js → separator-Bb17I4pu.js} +2 -2
- package/dist/{separator-Bom7NsGO.js.map → separator-Bb17I4pu.js.map} +1 -1
- package/dist/{separator-BDV-Y648.js → separator-Ct_WSWTJ.js} +3 -3
- package/dist/{separator-BDV-Y648.js.map → separator-Ct_WSWTJ.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/settings-Bar5wiSo.js +167 -0
- package/dist/settings-Bar5wiSo.js.map +1 -0
- package/dist/sheet-BGPERY55.js +250 -0
- package/dist/sheet-BGPERY55.js.map +1 -0
- package/dist/sidebar-D-JYMMbY.js +686 -0
- package/dist/sidebar-D-JYMMbY.js.map +1 -0
- package/dist/sidebar-f9gRWXIR.js +1001 -0
- package/dist/sidebar-f9gRWXIR.js.map +1 -0
- package/dist/skeleton-BapcJd9C.js +265 -0
- package/dist/skeleton-BapcJd9C.js.map +1 -0
- package/dist/smart-card-CW0hjetE.js +617 -0
- package/dist/smart-card-CW0hjetE.js.map +1 -0
- package/dist/{structure-BmisBK-3.js → structure-DuxKl954.js} +3 -3
- package/dist/{structure-BmisBK-3.js.map → structure-DuxKl954.js.map} +1 -1
- package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
- package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{table-DsfzoUia.js → table-B4TE7iOV.js} +3 -3
- package/dist/{table-DsfzoUia.js.map → table-B4TE7iOV.js.map} +1 -1
- package/dist/{table-BweFy_P9.js → table-CFOWY9pQ.js} +394 -388
- package/dist/table-CFOWY9pQ.js.map +1 -0
- package/dist/{tabs-CDocW5D1.js → tabs-e7ko9S2o.js} +11 -11
- package/dist/tabs-e7ko9S2o.js.map +1 -0
- package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-B1culiSK.js} +107 -104
- package/dist/text-inputs-B1culiSK.js.map +1 -0
- package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
- package/dist/text.styles-B64My8RZ.js.map +1 -0
- package/dist/theme.css +192 -149
- package/dist/{timelines-CwM_9IhD.js → timelines-D3Sl9ueq.js} +13 -12
- package/dist/timelines-D3Sl9ueq.js.map +1 -0
- package/dist/tooltip-8wz5S_Zr.js +113 -0
- package/dist/tooltip-8wz5S_Zr.js.map +1 -0
- package/dist/{tree-WnKQzwbq.js → tree-CzUJHnFs.js} +9 -9
- package/dist/{tree-WnKQzwbq.js.map → tree-CzUJHnFs.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-BQnine1k.js +117 -0
- package/dist/typography-BQnine1k.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/ui-provider-C-74NVLc.js +178 -0
- package/dist/ui-provider-C-74NVLc.js.map +1 -0
- package/dist/ui-provider.js +2 -3
- package/dist/{upload-CXyxmQBP.js → upload-BOW6U2tI.js} +25 -24
- package/dist/upload-BOW6U2tI.js.map +1 -0
- package/dist/{upload-queue-Boscubn9.js → upload-queue-qUXn1ykN.js} +16 -14
- package/dist/upload-queue-qUXn1ykN.js.map +1 -0
- package/dist/{usage-card-BhO5eqkX.js → usage-card-BeSLY0i0.js} +145 -137
- package/dist/usage-card-BeSLY0i0.js.map +1 -0
- package/dist/{utils-BRhFDwuU.js → utils-B6kKb8jB.js} +303 -144
- package/dist/utils-B6kKb8jB.js.map +1 -0
- package/dist/value-inputs-skdVB2zh.js +980 -0
- package/dist/value-inputs-skdVB2zh.js.map +1 -0
- package/dist/{value-typography-BP8OG6h5.js → value-typography-uAmWUAL1.js} +2 -2
- package/dist/{value-typography-BP8OG6h5.js.map → value-typography-uAmWUAL1.js.map} +1 -1
- package/dist/workspace-DHeHv0qw.js +411 -0
- package/dist/workspace-DHeHv0qw.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +15 -129
- package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
- package/docs/consumer-skill/examples/app-layout.tsx +74 -13
- package/docs/consumer-skill/examples/authentication.tsx +77 -0
- package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
- package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
- package/docs/consumer-skill/examples/detail.tsx +5 -4
- package/docs/consumer-skill/examples/edit.tsx +30 -38
- package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
- package/docs/consumer-skill/examples/index-table.tsx +4 -4
- package/docs/consumer-skill/examples/manifest.json +88 -1
- package/docs/consumer-skill/examples/product-media.tsx +41 -0
- package/docs/consumer-skill/examples/product-parts.tsx +81 -0
- package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
- package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
- package/docs/consumer-skill/examples/rhf-overlay-form.tsx +105 -0
- package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
- package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
- package/docs/consumer-skill/references/agents-md.md +23 -11
- package/docs/consumer-skill/references/analytics.md +18 -1
- package/docs/consumer-skill/references/authentication.md +42 -0
- package/docs/consumer-skill/references/commerce-composition.md +97 -0
- package/docs/consumer-skill/references/component-contracts.json +325201 -0
- package/docs/consumer-skill/references/composition-mapping.md +106 -0
- package/docs/consumer-skill/references/composition.md +198 -46
- package/docs/consumer-skill/references/critique-rubric.md +98 -0
- package/docs/consumer-skill/references/custom-composition.md +261 -0
- package/docs/consumer-skill/references/data-reading.md +79 -0
- package/docs/consumer-skill/references/design-contract.md +43 -9
- package/docs/consumer-skill/references/discovery.md +109 -8
- package/docs/consumer-skill/references/domain-structures.md +124 -0
- package/docs/consumer-skill/references/installation.md +51 -36
- package/docs/consumer-skill/references/integration.md +41 -2
- package/docs/consumer-skill/references/product-composition.md +94 -0
- package/docs/consumer-skill/references/public-api.json +4390 -475
- package/docs/consumer-skill/references/review.md +47 -5
- package/docs/consumer-skill/references/rhf-workflows.md +93 -0
- package/docs/consumer-skill/references/screen-archetypes.md +34 -0
- package/docs/consumer-skill/references/screen-decisions.md +126 -0
- package/docs/consumer-skill/references/theming.md +25 -27
- package/docs/consumer-skill/references/tokens.json +20 -11
- package/docs/consumer-skill/references/view-craft.md +153 -0
- package/docs/consumer-skill/references/view-spec.md +73 -0
- package/docs/consumer-skill/references/workflows.md +9 -2
- package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
- package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
- package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
- package/docs/consumer-skill/scripts/composition.mjs +254 -0
- package/docs/consumer-skill/scripts/discovery.mjs +96 -10
- package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
- package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
- package/docs/consumer-skill/scripts/inspection.mjs +193 -0
- package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
- package/docs/consumer-skill/scripts/setup-skills.mjs +111 -0
- package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
- package/docs/consumer-skills/themelia-components/SKILL.md +31 -0
- package/docs/consumer-skills/themelia-composition/SKILL.md +34 -0
- package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
- package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
- package/docs/consumer-skills/themelia-foundation/SKILL.md +15 -0
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +42 -0
- package/package.json +4 -2
- package/templates/README.md +39 -0
- package/templates/admin-shell-template.tsx +382 -0
- package/templates/analytics-operations-template.tsx +376 -0
- package/templates/customers-template.tsx +509 -0
- package/templates/index.ts +29 -0
- package/templates/orders-template.tsx +1102 -0
- package/templates/products-template.tsx +834 -0
- package/templates/user-permissions-template.tsx +450 -0
- package/dist/accordion-Cjb6sx0G.js.map +0 -1
- package/dist/action-menu-CllU52Mm.js +0 -280
- package/dist/action-menu-CllU52Mm.js.map +0 -1
- package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
- package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
- package/dist/app-shell-C4FhvCqF.js +0 -236
- package/dist/app-shell-C4FhvCqF.js.map +0 -1
- package/dist/auth-BGua8ouh.js.map +0 -1
- package/dist/avatar-DAPlDvhJ.js.map +0 -1
- package/dist/base/cascader.js.map +0 -1
- package/dist/batch-action-bar-DnUJ21NQ.js.map +0 -1
- package/dist/button-DVzspB_G.js.map +0 -1
- package/dist/buttons-DPZekJFu.js.map +0 -1
- package/dist/cards-BaBZR-AU.js +0 -68
- package/dist/cards-BaBZR-AU.js.map +0 -1
- package/dist/chart-ZOYyK2xG.js +0 -155
- package/dist/chart-ZOYyK2xG.js.map +0 -1
- package/dist/checkbox-AWIhNhmo.js.map +0 -1
- package/dist/choice-inputs-CNHvARCJ.js +0 -770
- package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
- package/dist/code-block-DeneBJR_.js.map +0 -1
- package/dist/combobox-DaHESuiL.js +0 -355
- package/dist/combobox-DaHESuiL.js.map +0 -1
- package/dist/combobox-Dxo2fAYQ.js.map +0 -1
- package/dist/command-C25VMRII.js.map +0 -1
- package/dist/comments-DD0DUPwJ.js.map +0 -1
- package/dist/containers-Mu1LMGV1.js +0 -103
- package/dist/containers-Mu1LMGV1.js.map +0 -1
- package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
- package/dist/data-display-DT_khPl_.js.map +0 -1
- package/dist/date-picker-B2K3ucWn.js.map +0 -1
- package/dist/date-pickers-Ds8gLaoP.js +0 -175
- package/dist/date-pickers-Ds8gLaoP.js.map +0 -1
- package/dist/dropdown-menu-Cl4X7L5S.js +0 -193
- package/dist/dropdown-menu-Cl4X7L5S.js.map +0 -1
- package/dist/feedback-BYIhtitP.js.map +0 -1
- package/dist/field-affordance-recipes-DZhnIL_Y.js.map +0 -1
- package/dist/filters-DJVAveHA.js.map +0 -1
- package/dist/form-field-CwH9y77i.js.map +0 -1
- package/dist/form-sizing-BdP_Mf5p.js.map +0 -1
- package/dist/forms-B9G_xwzi.js +0 -194
- package/dist/forms-B9G_xwzi.js.map +0 -1
- package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
- package/dist/header-BSfIEWbI.js.map +0 -1
- package/dist/hooks-ClH9thn4.js.map +0 -1
- package/dist/input-CZw8iU99.js +0 -21
- package/dist/input-CZw8iU99.js.map +0 -1
- package/dist/input-DQdEd0YD.js +0 -263
- package/dist/input-DQdEd0YD.js.map +0 -1
- package/dist/item-K5_ghvze.js +0 -275
- package/dist/item-K5_ghvze.js.map +0 -1
- package/dist/message-DZ_ruyUV.js.map +0 -1
- package/dist/metadata-list-8N16ZMW_.js +0 -405
- package/dist/metadata-list-8N16ZMW_.js.map +0 -1
- package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
- package/dist/navigation-Bnotn4AQ.js +0 -145
- package/dist/navigation-Bnotn4AQ.js.map +0 -1
- package/dist/navigation-BzhHI3lo.js.map +0 -1
- package/dist/navigation-row-recipes-BFLCk_Aq.js.map +0 -1
- package/dist/overflow-tab-bar-CWY7Nogn.js +0 -282
- package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
- package/dist/overlays-tMkF-VAN.js +0 -1003
- package/dist/overlays-tMkF-VAN.js.map +0 -1
- package/dist/page-CL9YeH_V.js +0 -224
- package/dist/page-CL9YeH_V.js.map +0 -1
- package/dist/page-header-commands-DOb6WsfD.js +0 -126
- package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
- package/dist/popover-gnTOhbFM.js +0 -198
- package/dist/popover-gnTOhbFM.js.map +0 -1
- package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
- package/dist/receipt-BVSOH3Xo.js.map +0 -1
- package/dist/rich-text-editor-cRLC-eBK.js.map +0 -1
- package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +0 -1
- package/dist/settings-ybnjVwbd.js +0 -171
- package/dist/settings-ybnjVwbd.js.map +0 -1
- package/dist/sheet-ijlsjq-n.js +0 -213
- package/dist/sheet-ijlsjq-n.js.map +0 -1
- package/dist/sidebar-Db6gkh3U.js +0 -619
- package/dist/sidebar-Db6gkh3U.js.map +0 -1
- package/dist/sidebar-DkTO4VTO.js +0 -512
- package/dist/sidebar-DkTO4VTO.js.map +0 -1
- package/dist/skeleton-Byjnt7qr.js +0 -264
- package/dist/skeleton-Byjnt7qr.js.map +0 -1
- package/dist/smart-card-DiC5aac3.js +0 -604
- package/dist/smart-card-DiC5aac3.js.map +0 -1
- package/dist/table-BweFy_P9.js.map +0 -1
- package/dist/tabs-CDocW5D1.js.map +0 -1
- package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
- package/dist/text.styles-g4He6UIW.js.map +0 -1
- package/dist/theme-scope-BJ6eE2xt.js +0 -50
- package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
- package/dist/timelines-CwM_9IhD.js.map +0 -1
- package/dist/tooltip-yiRJUFjp.js +0 -111
- package/dist/tooltip-yiRJUFjp.js.map +0 -1
- package/dist/typography-UTnveOEy.js +0 -117
- package/dist/typography-UTnveOEy.js.map +0 -1
- package/dist/ui-provider-C_U0Xma4.js +0 -136
- package/dist/ui-provider-C_U0Xma4.js.map +0 -1
- package/dist/upload-CXyxmQBP.js.map +0 -1
- package/dist/upload-queue-Boscubn9.js.map +0 -1
- package/dist/usage-card-BhO5eqkX.js.map +0 -1
- package/dist/use-mobile-vaLKwgyf.js +0 -15
- package/dist/use-mobile-vaLKwgyf.js.map +0 -1
- package/dist/utils-BRhFDwuU.js.map +0 -1
- package/dist/value-inputs-TaX4OjNk.js +0 -963
- package/dist/value-inputs-TaX4OjNk.js.map +0 -1
- package/dist/workspace-B-OEm3Kf.js +0 -408
- package/dist/workspace-B-OEm3Kf.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,190 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.5 — 2026-10-31
|
|
4
|
+
|
|
5
|
+
- Modal scrims render again under `SidebarProvider`/`AppSidebar`. The sidebar
|
|
6
|
+
drawer owner is a Dialog root around the app, so Base UI treated every dialog
|
|
7
|
+
inside as nested and skipped its backdrop. A modal now draws its backdrop
|
|
8
|
+
unless it opens from inside another modal's content.
|
|
9
|
+
- Collection rows (menus, Command, Select, Combobox, cascader, global search) are
|
|
10
|
+
sized by their height role: block padding steps one tier below Item's, so a
|
|
11
|
+
single line is exactly 32/28/36px at default/compact/comfortable instead of
|
|
12
|
+
1.5px taller. DataTable menus, kanban and activities drop the legacy 24px
|
|
13
|
+
`density="table"` rows.
|
|
14
|
+
- Skeletons use the translucent neutral chip fill, so they keep one contrast on
|
|
15
|
+
every surface, including a `--muted` sidebar where they used to disappear.
|
|
16
|
+
- `StackedLayout`, `TopbarSidebarLayout` and `AppLayout` with no variant follow
|
|
17
|
+
the active theme; `headerTheme`/`light-header`/`dark-header` still scope the
|
|
18
|
+
header. Header controls (sidebar trigger, search, tools, notifications, a
|
|
19
|
+
one-line user trigger) share the 32px action height.
|
|
20
|
+
- The dual navigation cluster docks its contextual panel from 768px beside a
|
|
21
|
+
primary rail and opens it as a drawer below that; `mobileSidebarMode="inline"`
|
|
22
|
+
keeps the previous docked cluster.
|
|
23
|
+
- `GlobalSearch` input is a combobox with `aria-activedescendant`; results are
|
|
24
|
+
options reached with the arrow keys rather than Tab.
|
|
25
|
+
- Filter editors focus their primary input when opened and share one editor
|
|
26
|
+
header; selection captions read "2 status selected" in running text.
|
|
27
|
+
- Additive: `CardShell surface`, `FormSection titleSize`, CoordinatesInput
|
|
28
|
+
latitude/longitude accessible-label strings, MetricComparison `pointsUnit`,
|
|
29
|
+
UsageCard average-unavailable string, AI tool-call `elapsedLabel`, AI summary
|
|
30
|
+
`confidenceLabel`, ActivityRow `reserveDisclosure`/`reserveMenu`,
|
|
31
|
+
MediaLibraryToolbar `summary`/`disabled`, `useMediaLibrary().retry` and
|
|
32
|
+
`strings.retry`.
|
|
33
|
+
- Alert places its action beside the copy only when the alert itself is wide
|
|
34
|
+
enough (container query), otherwise below it. PageHeader wraps its commands
|
|
35
|
+
below the copy before the copy column gets cramped.
|
|
36
|
+
|
|
37
|
+
- `--height-action` and `--height-control` default to 2rem (32px) instead of
|
|
38
|
+
2.25rem. Their size steps are eighths of the root (¾, ⅞, 9⁄8), so the scale is
|
|
39
|
+
24/28/32/36px in whole pixels; it was 28/32/36/40px in ninths. Set the roots
|
|
40
|
+
back to 2.25rem to restore the previous heights (steps become 27/31.5/36/40.5px).
|
|
41
|
+
- Corner roles: `rounded-radius` (`--radius`, 12px by default) is now the
|
|
42
|
+
default corner for buttons, inputs, select and facet triggers, badges,
|
|
43
|
+
collection and navigation rows and nested bodies. The new `rounded-surface`
|
|
44
|
+
(4/3 × `--radius`, 16px) is the larger corner of cards, popups, dialogs,
|
|
45
|
+
command shells and other outer surfaces. `rounded-inner` and its bounded
|
|
46
|
+
formula are removed. Migration: replace an app's `rounded-radius` on outer
|
|
47
|
+
shells with `rounded-surface`, and `rounded-inner` with `rounded-radius`.
|
|
48
|
+
- `Alert` and the `Toaster` toast take Item's row geometry: the row insets
|
|
49
|
+
(`px-row-x`, `py-row-y`, 12px and 8px by default) and Item's 12px
|
|
50
|
+
media/actions gap, instead of the 24px card surface inset. A two-line notice
|
|
51
|
+
is about 60px tall instead of 94px. Overlay tone notices, which are Alerts,
|
|
52
|
+
follow the same row roles.
|
|
53
|
+
- `PopoverTitle` and `PopoverDescription` no longer wrap plain text in the
|
|
54
|
+
popover's inherited line box, and `Cascader` keeps "Select current" beside
|
|
55
|
+
its title and path instead of inside the title row. A drilled level's title
|
|
56
|
+
and parent path now sit 4px apart instead of 11px.
|
|
57
|
+
- Menu surfaces (popover menus and their header and footer bands, dropdown
|
|
58
|
+
menus, Select and Combobox lists, Command and its search row, global search,
|
|
59
|
+
mentions and the cascader) inset by md (8px) on both axes instead of xs
|
|
60
|
+
(4px) inline, so rows and the search field sit further from the edge, and
|
|
61
|
+
header and footer copy sit one small xs step (4px) inside that edge instead
|
|
62
|
+
of adding the full row inset (shared `popoverRecipes.menuCopyInset`).
|
|
63
|
+
- Filters support nested options. `FilterOption.children` was declared but
|
|
64
|
+
ignored; `SELECT` and `MULTI_SELECT` editors now show nested options one level
|
|
65
|
+
at a time through the Cascader's panel (path search, Back, multi-select across
|
|
66
|
+
levels, `closeOnSelect`), and `SelectFacet` uses the `Cascader` field. A chosen
|
|
67
|
+
nested option reads as its path ("Europe / Greece / Athens") in chips and
|
|
68
|
+
facets. `FilterConfig.selectableOptions: 'any'` lets a branch be chosen, and
|
|
69
|
+
the filter strings add `previousLevel` and `selectCurrentLevel`. The panel is
|
|
70
|
+
a private part shared by `Cascader` and filters; `Cascader` behaviour is
|
|
71
|
+
unchanged.
|
|
72
|
+
- `Cascader` moves between levels with motion: a drilled level or a new column
|
|
73
|
+
enters from the side it was reached from (shared `motionRecipes.level`,
|
|
74
|
+
`@starting-style`, reduced-motion aware). Opening and searching do not
|
|
75
|
+
animate the list.
|
|
76
|
+
- `LayoutSidebarProvider` (and so `AppSidebar`) defaults to
|
|
77
|
+
`menuDensity="default"`: 28px primary rows and 24px nested rows on a 4px gap
|
|
78
|
+
(with the 2rem action height below), instead of comfortable 36px and 32px
|
|
79
|
+
rows. Pass `menuDensity="comfortable"` for 32px rows. Sidebar navigation
|
|
80
|
+
labels are medium weight throughout; the current entry is marked by its fill.
|
|
81
|
+
An unscoped base `SidebarMenuButton` falls back to the default density like
|
|
82
|
+
the rest of the menu, and a collapsed icon-rail row is the square of its own
|
|
83
|
+
height.
|
|
84
|
+
- Remove the leftover `active:translate-y-0!` press overrides from Collapsible
|
|
85
|
+
and Tooltip triggers, dialog and sheet close buttons, popover buttons and the
|
|
86
|
+
sidebar trigger. Nothing translates on press any more, and the overrides made
|
|
87
|
+
triggers centred with a translate, such as the sidebar disclosure chevron,
|
|
88
|
+
jump down while pressed.
|
|
89
|
+
- Add a fourth consumer skill, `themelia-design`, for the designer's part of a
|
|
90
|
+
view: a data brief read from real records, a view spec with ranked
|
|
91
|
+
information, wireframes and encodings, and a scored critique rubric with a
|
|
92
|
+
browser census for rendered screens. A `themelia-ui-designer` agent
|
|
93
|
+
definition applies it to whole views (design mode builds, renders and fixes;
|
|
94
|
+
review mode critiques read-only). `setup-skills.mjs --agents <directory>`
|
|
95
|
+
copies the agent without overwriting an existing file, and `--check`
|
|
96
|
+
compares it. The project-instructions block lists the new skill.
|
|
97
|
+
- `ResourceCell` draws its media circle only when `imageUrl`, `icon` or
|
|
98
|
+
`fallback` is passed, and no longer falls back to a decorative mail glyph, so
|
|
99
|
+
order and invoice identifiers read as plain text. To keep a monogram for a
|
|
100
|
+
person or organization, pass `fallback={<Initials value={name} />}` (on every
|
|
101
|
+
row of a column where only some rows have a photo). An explicit `fallback`
|
|
102
|
+
still wins over `icon`, and `icon` now wins over title initials.
|
|
103
|
+
- `InvoiceLineItems` states quantity and unit price once per narrow row instead
|
|
104
|
+
of repeating column labels, aligns header and rows on one subgrid with
|
|
105
|
+
content-sized numeric tracks, top-aligns custom cells, scrolls custom columns
|
|
106
|
+
horizontally (or drops columns marked `wideOnly` below its `@lg` width), and
|
|
107
|
+
adds `surface="flat"` for use inside a Card. Header and
|
|
108
|
+
rows now sit in `.invoice-line-items--body`, which carries the grid template
|
|
109
|
+
that each row used to repeat. The family
|
|
110
|
+
index now exports `InvoiceColumn`, `InvoiceLineItemsFooterRow`,
|
|
111
|
+
`InvoiceLineItemsStrings` and `defaultInvoiceLineItemsStrings`.
|
|
112
|
+
- Commerce owners that hard-coded their frame accept `surface`/`padding`:
|
|
113
|
+
`FulfillmentGroup` (framed by default) and `InvoiceHeader`,
|
|
114
|
+
`DiscountStackPreview`, `TaxBreakdownCard`, `RefundStatusCard`,
|
|
115
|
+
`CartSummaryCard`, `ShipmentTracking` and `InventorySectionCard` (unframed by
|
|
116
|
+
default). Defaults are unchanged.
|
|
117
|
+
- Add `maxVisibleSecondaryActions` to page, record, settings, workspace and
|
|
118
|
+
resource headers (default 2), `visibleFields` and `children` to
|
|
119
|
+
`ProductVariantEditor`, and `showGroupBy` to `ProductVariantsManager`
|
|
120
|
+
(default true).
|
|
121
|
+
- Consumer gaps from the round-2 rebuilds: `InvoiceStatus` adds `draft` and
|
|
122
|
+
`disputed`; `InvoiceHeader.status` is optional and parties take `details`;
|
|
123
|
+
`OrderCustomer` adds `shippingMethod` and `showShippingAddress`;
|
|
124
|
+
`FulfillmentGroup` adds `count`; `MetricComparison` honours `current.trend`;
|
|
125
|
+
`ChartTooltipContent` adds `valueFormatter`; `ProductVariantEditor` adds
|
|
126
|
+
`errors`, `formId` and `showHeader`; `ResourceCell` adds `mediaShape` and a
|
|
127
|
+
full-title hover; `MediaResourceGallery` grid shows whole images and omits a
|
|
128
|
+
missing file size; an explicit DataTable column `size` sets its width without
|
|
129
|
+
resizing; `base/toaster` re-exports `toast`; `blocks/commerce` exports its
|
|
130
|
+
status tone maps and invoice strings. `ProductOptionsMatrix` focuses a value
|
|
131
|
+
added in its option editor so it can be typed at once.
|
|
132
|
+
- Discovery resolves near-miss import paths with `importResolution`, the mapper
|
|
133
|
+
knows 139 roles across commerce, products, media, charts and analytics and
|
|
134
|
+
suggests nearby roles for unmatched phrases, and the inspector reads several
|
|
135
|
+
props at once and points hooks to their declaration. A new order and invoice
|
|
136
|
+
composition reference ships with executable recipes.
|
|
137
|
+
|
|
138
|
+
## 2.0.4 — 2026-10-28
|
|
139
|
+
|
|
140
|
+
Shared composition roles, stronger consumer guidance and executable component
|
|
141
|
+
mapping. Existing public imports remain available; no structural token root or
|
|
142
|
+
runtime dependency is added.
|
|
143
|
+
|
|
144
|
+
- Restore shadcn neutral resting input borders in light and dark themes. Keep
|
|
145
|
+
the existing border/input/ring roles, focus and invalid indicators, sizing and
|
|
146
|
+
radius defaults; remove the blanket resting-border contrast override and its
|
|
147
|
+
enforcement. No CSS variable or public API is added.
|
|
148
|
+
- Complete the implementation-guide corrections at shared owners: Card defaults
|
|
149
|
+
to the calm `card` surface, with an unruled header and a ruled footer. Explicit
|
|
150
|
+
`framed`, divider and provider overrides remain available. Surface roles use
|
|
151
|
+
the existing 12/16/24/32px scale; Card's supported padding and regional-gap tiers
|
|
152
|
+
are 12/24/32px. Control heights and radius defaults stay unchanged.
|
|
153
|
+
- Centralize command, related-content, subject and page rhythm across layouts,
|
|
154
|
+
blocks and features. Page body and TwoColumnLayout columns space direct
|
|
155
|
+
sections consistently; resource headers and toolbars span above their grid.
|
|
156
|
+
Shared route, subject and subsection typography uses the existing scale.
|
|
157
|
+
- Add `MetadataList adaptTo="container"` for narrow parent regions, retaining
|
|
158
|
+
viewport adaptation as the default. Resource and product/giftcard metadata
|
|
159
|
+
opt in. FormSection forwards Card's `padding`; PageHeading adds `titleSize`.
|
|
160
|
+
- Simplify the RHF edit recipe with `Page render={<form />}` and automatic IDs
|
|
161
|
+
on direct controls. Preserve compound-control focus refs and forward Slider's
|
|
162
|
+
visible label/supporting descriptions to its native range input.
|
|
163
|
+
- Split shell and example-page ownership, preventing duplicated route headers
|
|
164
|
+
and gutters. Repair responsive command-menu separator visibility with additive
|
|
165
|
+
`ActionMenuAction.groupClassName`. Clarify Card's opt-in `contentGap` without
|
|
166
|
+
changing its raw-child layout contract.
|
|
167
|
+
- Ship `themelia-components`, `themelia-tokenization` and
|
|
168
|
+
`themelia-composition`, backed by one complete shared bundle of references,
|
|
169
|
+
typed recipes and domain templates. Foundation/forms paths and the shared
|
|
170
|
+
consumer skill remain compatibility routers; existing global skills are
|
|
171
|
+
preserved.
|
|
172
|
+
- Add Node-only component/token inspectors with qualified API contracts,
|
|
173
|
+
generic/overload and callback detail, explicit omissions and unknown defaults.
|
|
174
|
+
Discovery retains exact/strict matching and adds qualified partial suggestions
|
|
175
|
+
with matched and missing terms when natural-language searches have no full match.
|
|
176
|
+
- Add the advisory composition mapper: 36 exact components expose 40 roles,
|
|
177
|
+
supported slots, surface decisions, peers and unresolved needs. Authored
|
|
178
|
+
recommendations are validated against public TypeScript contracts; copied
|
|
179
|
+
and installed tools share the same metadata.
|
|
180
|
+
- Document contextual component/parent ownership, complete-bundle copying and
|
|
181
|
+
template discovery. Restore static reference spacing from existing roots
|
|
182
|
+
instead of reading unshipped Tailwind aliases.
|
|
183
|
+
|
|
184
|
+
When upgrading, refresh the complete copied skill bundle from the matching
|
|
185
|
+
installed package. Card's calmer defaults remain overridable through explicit
|
|
186
|
+
surface/divider props or UIProvider defaults; no consumer prop is removed.
|
|
187
|
+
|
|
3
188
|
## 2.0.3 — 2026-10-24
|
|
4
189
|
|
|
5
190
|
Patch release of the audited UI and official Base UI compatibility fixes.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A publishable React UI package built on Base UI and Tailwind, with shadcn-compatible themes and Themelia's public APIs. Routing, persistence, permissions and translations remain consumer-owned.
|
|
4
4
|
|
|
5
|
-
Package: **`themelia-react-ui`** · current version: **`2.0.
|
|
5
|
+
Package: **`themelia-react-ui`** · current version: **`2.0.5`** · MIT licensed.
|
|
6
6
|
The GitHub repository is `themelia-react-ui`; npm imports use `themelia-react-ui`.
|
|
7
7
|
|
|
8
8
|
Consuming apps start with [consumer setup](#consumer-setup) and the packaged
|
|
@@ -25,6 +25,14 @@ npm run check:all
|
|
|
25
25
|
|
|
26
26
|
The Vite React playground has foundations, a complete searchable catalogue, and an interactive products workspace. The catalogue groups Foundations (including semantic primitives and composition structures), Base components, Layouts, Blocks, and domain Features. Layouts includes five composed AppLayout presets (light header, dark header, sidebar, inset canvas and stacked navigation), plus a responsive composition guide for viewport grids, parent-driven grids, wrapping actions and stable content order. Navigation uses actual package families, static domain headings above Features, padded disclosures and a single Skeletons family page. Expansion persists across page changes and mobile drawer closure; search shows the same group context. `/` opens the full catalogue with preview-only hash navigation (`/?page=catalog` also works); `/?page=products` exercises options, generation, validation, async save/retry and bulk actions. React Router is not a dependency.
|
|
27
27
|
|
|
28
|
+
For the application shell at its actual viewport size, open
|
|
29
|
+
`/?page=shells&layout=header`, `/?page=shells&layout=sidebar` or
|
|
30
|
+
`/?page=shells&layout=inset`; append `&theme=dark`
|
|
31
|
+
for the dark theme. This preview-only mode removes catalogue chrome from the
|
|
32
|
+
composition. The [shell architecture verification report](docs/verification/2026-10-29-shell-architecture-catalogue.md)
|
|
33
|
+
records source ownership, rendered measurements and executed interactions for
|
|
34
|
+
the three catalogue structures.
|
|
35
|
+
|
|
28
36
|
`build` emits ESM entrypoints, TypeScript declarations, compiled component CSS, editable Tailwind theme source and optional map styles. Playground files stay outside the tarball. `check:contract` enforces exact exports, retained source symbols, component layers, dependencies and token ownership. `check:preview` verifies ready routes, example files, exact current public symbols, published imports and public family coverage. `check:docs` verifies local props for source-origin-qualified public callable owners, including all static displayed PropsTables. `check:package` requires a fresh `npm run build`. It installs the tarball into an isolated consumer, checks strict declarations for every family and matches installed declaration exports to the source-backed skill index. Its installed basic fixture checks SSR/hydration and executes provider defaults, controlled Input/Select/Checkbox state, form submission/validation/reset, scoped overlay portals and async confirmation/retry. Native links retain a separate strict typecheck and Vite-build smoke. The optional fixture exercises controlled table sorting/selection/visibility and client module initialization for specialist peers. Initialization does not establish specialist workflow or server-rendering support. It uses the configured npm cache, or `THEMELIA_NPM_CACHE`; a fresh `npm ci` cache may lack fixture registry metadata. Use `THEMELIA_FIXTURE_INSTALL=online` explicitly for cold temporary consumers, or supply a prepared cache for the default offline install. See [release readiness](docs/releasing.md).
|
|
29
37
|
|
|
30
38
|
`lint` runs development-only `@shadcn/lint` through Oxlint: semantic colors across components, shared recipes and preview TSX and fixed typography contracts in preview examples. `check:design-lint` proves rule recognition, package stylesheet discovery and permitted customization. Both run inside `check`; `.oxlintrc.json` owns the staged policy. See [typography and lint guidance](docs/typography-and-design-lint.md).
|
|
@@ -48,17 +56,17 @@ Chromium 111+, Safari 18.1+ or Firefox 151+ for this theme behavior. The nearest
|
|
|
48
56
|
mode class governs nested components and their scoped portals; see the
|
|
49
57
|
[theme guide](docs/consumer-skill/references/theming.md) for partial overrides.
|
|
50
58
|
|
|
51
|
-
Version 2.0.
|
|
59
|
+
Version 2.0.5 uses official `@base-ui/react ^1.9.0` from npm. Themelia's
|
|
52
60
|
`ComboboxRoot.dismissLabel` and feature `strings.dismiss` name both screen-reader
|
|
53
61
|
dismissal controls. Shared popup owners preserve focus restored to a child
|
|
54
62
|
trigger during deferred parent recovery. These behaviors are library-owned;
|
|
55
63
|
consumers install the unmodified official Base UI package.
|
|
56
64
|
|
|
57
65
|
```sh
|
|
58
|
-
npm install ./themelia-react-ui-2.0.
|
|
66
|
+
npm install ./themelia-react-ui-2.0.5.tgz '@base-ui/react@^1.9.0' lucide-react
|
|
59
67
|
```
|
|
60
68
|
|
|
61
|
-
|
|
69
|
+
For a registry release, install into a React 19 application with:
|
|
62
70
|
|
|
63
71
|
```sh
|
|
64
72
|
npm install themelia-react-ui '@base-ui/react@^1.9.0' lucide-react
|
|
@@ -92,7 +100,30 @@ export function Example() {
|
|
|
92
100
|
|
|
93
101
|
The default primary is near-black, so status colors never compete with it. For the Themelia green brand, also import `themelia-react-ui/themes/green.css` after `style.css`. For your own brand, set `--primary` and `--primary-foreground` (light and `.dark`) at the root or a `ThemeScope`; `--primary-accent` follows `--primary`.
|
|
94
102
|
|
|
95
|
-
Compiled `style.css` requires no source scanning and includes no global preflight.
|
|
103
|
+
Compiled `style.css` requires no source scanning and includes no global preflight.
|
|
104
|
+
Components own their essential font and box model; the host may supply a reset
|
|
105
|
+
for its own markup. Keep resets in a lower-priority CSS layer and load deliberate
|
|
106
|
+
app overrides after library CSS. A Tailwind v4 application can additionally
|
|
107
|
+
import `theme.css` after Tailwind to generate app-owned utilities from the same
|
|
108
|
+
mappings; this editable file contains Tailwind directives and needs processing.
|
|
109
|
+
|
|
110
|
+
The package ships four focused agent capabilities:
|
|
111
|
+
[components](docs/consumer-skills/themelia-components/SKILL.md) for installed setup,
|
|
112
|
+
search and typed component/form integration;
|
|
113
|
+
[tokenization](docs/consumer-skills/themelia-tokenization/SKILL.md) for domain
|
|
114
|
+
structures combining public parts with semantic JSX and token-backed Tailwind,
|
|
115
|
+
plus shared themes, typography and geometry;
|
|
116
|
+
[composition](docs/consumer-skills/themelia-composition/SKILL.md) for business
|
|
117
|
+
hierarchy, responsive screens and visual repair; and
|
|
118
|
+
[design](docs/consumer-skills/themelia-design/SKILL.md) for reading records into
|
|
119
|
+
view specs and scoring rendered views against a critique rubric. A
|
|
120
|
+
[designer agent](docs/consumer-skill/agents/themelia-ui-designer.md) applies the
|
|
121
|
+
design skill to whole views. Their shared assets and
|
|
122
|
+
the compatible original entrypoint remain in `docs/consumer-skill`. The previous
|
|
123
|
+
foundation/forms paths remain package compatibility routes; fresh skill copying
|
|
124
|
+
installs the four canonical capabilities. Follow the
|
|
125
|
+
[installed setup and copying guide](docs/consumer-skill/references/installation.md)
|
|
126
|
+
to preserve all references; npm installation does not modify global agent skills.
|
|
96
127
|
|
|
97
128
|
React component chunks preserve `"use client"` boundaries for frameworks such as Next App Router. Pure utilities remain server-usable. Navigation uses native links, callbacks and render composition supplied by the consuming app.
|
|
98
129
|
|
|
@@ -145,7 +176,8 @@ defines application freedom and library-owned anatomy; the
|
|
|
145
176
|
and verification gate. Shipped consumer examples receive the same design lint as
|
|
146
177
|
library compositions. Those repository checks do not run automatically in apps.
|
|
147
178
|
Popover display/menu anatomy and default/compact insets are separate from collection
|
|
148
|
-
row density and control size.
|
|
179
|
+
row density and control size. Rich display surfaces keep 24px default insets;
|
|
180
|
+
compact menu/list shells use 4px around their already-padded rows. Flush delegates padding to owned regions. Command
|
|
149
181
|
search composes the public Input; features inherit these base recipes rather than
|
|
150
182
|
rebuilding menu chrome or passing local padding overrides.
|
|
151
183
|
|
|
@@ -164,8 +196,8 @@ The common geometry controls are:
|
|
|
164
196
|
--control-x: 0.75rem;
|
|
165
197
|
--row-x: 0.75rem;
|
|
166
198
|
--row-y: 0.5rem;
|
|
167
|
-
--surface-x: 1.
|
|
168
|
-
--surface-y: 1.
|
|
199
|
+
--surface-x: 1.5rem;
|
|
200
|
+
--surface-y: 1.5rem;
|
|
169
201
|
}
|
|
170
202
|
```
|
|
171
203
|
|
|
@@ -173,10 +205,11 @@ The remaining roots cover icons/avatars, shell dimensions, content widths and ad
|
|
|
173
205
|
|
|
174
206
|
Each default has one owner. There is no legacy token pipeline, JavaScript style engine, underscore prefix, or button-specific palette. Shared action/control, row, surface and text recipes prevent components from acquiring unrelated spacing or color systems.
|
|
175
207
|
|
|
176
|
-
The
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
208
|
+
The [shared semantic-role contract](docs/consumer-skill/references/design-contract.md#semantic-roles)
|
|
209
|
+
assigns copy, command, related-content, independent-subject and page rhythm to
|
|
210
|
+
existing spacing tiers. It also names route/subject/subsection typography while
|
|
211
|
+
preserving explicit sizes, semantic tags and provider scaling. Surface regional
|
|
212
|
+
gaps remain derived from their insets; generic Stack/Grid defaults stay stable.
|
|
180
213
|
|
|
181
214
|
## Deliberate migration changes
|
|
182
215
|
|
|
@@ -216,17 +249,19 @@ The default development URL opens the full component catalogue. The focused foun
|
|
|
216
249
|
|
|
217
250
|
`Button` separates `tone` from `buttonStyle` (`solid`, `outline`, `ghost`); the catalogue shows their matrix, sizes and loading/disabled states. Icon-only controls may omit children when an accessible label or tooltip is supplied. Badges use compact typography and insets rather than inheriting action geometry.
|
|
218
251
|
|
|
219
|
-
Use `titleSuffix` for card status, count and version badges. `headerStart` is full-width pre-title context, and `headerAction`/`actions` own controls. Card owns token-spaced title/suffix wrapping for all surface modes. Give a card one quick control in `headerAction`, a command list in `actions` (its More actions menu) and the commit action in `footerSlot`; a framed card
|
|
252
|
+
Use `titleSuffix` for card status, count and version badges. `headerStart` is full-width pre-title context, and `headerAction`/`actions` own controls. Card owns token-spaced title/suffix wrapping for all surface modes. Give a card one quick control in `headerAction`, a command list in `actions` (its More actions menu) and the commit action in `footerSlot`; a framed card keeps its footer rule by default. Reserve body actions for a specific content step. Card owns aligned card insets, frames and expand/collapse behavior; Use `Card surface="flat" padding="none"` for card-free content hierarchy. ChartCard exposes `titleSuffix` too. Use `headerPlacement="frame"` for a header above an inset body. SmartCard and ContentBlock remain deprecated migration adapters; new code uses Card.
|
|
220
253
|
|
|
221
254
|
Application drawers use `ActionDrawer` and `useOverlayVisibility` from `themelia-react-ui/features/overlays`. Sheet is the structural foundation and remains available for lower-layer infrastructure and compatibility.
|
|
222
255
|
|
|
223
256
|
Header commands are role-based: one `primaryAction` and ordered
|
|
224
|
-
`secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow
|
|
225
|
-
destructive commands
|
|
226
|
-
|
|
257
|
+
`secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow
|
|
258
|
+
and destructive commands moved into the More actions menu that ends the row.
|
|
259
|
+
Below 40rem of actual header width, one More actions trigger contains all commands,
|
|
260
|
+
including primary. Page, PageHeader, PageHeading, the resource shells,
|
|
227
261
|
WorkspaceRecordHeader and SettingsShell share that row; keep `actions` for
|
|
228
|
-
non-command controls. `header.tabs`
|
|
229
|
-
|
|
262
|
+
non-command controls. Use `header.tabs` for separately selected or routed record
|
|
263
|
+
sections, with counts when useful. Continuous detail documents keep their
|
|
264
|
+
sections in the body.
|
|
230
265
|
|
|
231
266
|
Every overflow menu shares one `ActionMenu` trigger: the `⋯` glyph named "More
|
|
232
267
|
actions", a quiet ghost square in rows and cards (`context="inline"`, the
|
|
@@ -236,22 +271,107 @@ scale. The menu comes after any primary command in its row, and destructive
|
|
|
236
271
|
entries stay last.
|
|
237
272
|
Page owns inline and block padding, defaulting to the large surface role;
|
|
238
273
|
PageViewport owns scrolling and supplies no inset. Use `Page narrow` for a
|
|
239
|
-
centered single resource
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
274
|
+
centered single resource. An `aside` selects the `xl` (80rem) measure unless
|
|
275
|
+
`narrow` or an explicit `maxWidth` wins. Page owns `toolbar`, body lifecycle
|
|
276
|
+
states (`loading`, `error`, `empty`, `onRetry`) and the route header.
|
|
277
|
+
Its four header content slots are `beforeTitle`, `titleSuffix`, `afterDescription`
|
|
278
|
+
and `actions`: pass React content or a callback receiving `{ renderLink, defaultContent }`.
|
|
279
|
+
Compose Badge or MetadataList in those slots; the header adds no avatar or automatic
|
|
280
|
+
metadata shape. `slots.actions` can wrap or return its default responsive command
|
|
281
|
+
row through `defaultContent`; replacing it makes command behavior caller-owned.
|
|
282
|
+
Legacy `slots.back`, `titleBadges`, `titleIcon` and direct `actions` remain supported.
|
|
283
|
+
ResourceHeader, ResourceIndexShell, ResourceShowShell and TabbedResourceShell
|
|
284
|
+
are deprecated; replace them with Page rather than nesting route owners. Their
|
|
285
|
+
existing embedded geometry remains supported. Page headers use dense copy
|
|
286
|
+
gaps. Ordinary cards default to `surface="card"` and `md` padding (24px), with
|
|
287
|
+
an unruled header and a ruled footer. Explicit divider props override provider
|
|
288
|
+
defaults. Use `surface="framed"` for grouped emphasis and `surface="flat"`
|
|
289
|
+
inside an existing boundary. Card padding supports `none`, `sm` (12px), `md`
|
|
290
|
+
(24px) and `lg` (32px); its default regional gap follows the same surface tier
|
|
291
|
+
(`none` retains the 24px gap). The general surface scale also includes 16px. All
|
|
292
|
+
are scaled once by `--space-scale`; control heights and corners remain separate.
|
|
293
|
+
|
|
294
|
+
AppLayout keeps its five variant choices. The shared header-height root now
|
|
295
|
+
defaults to `4rem`. Header-first
|
|
296
|
+
`light-header`/`dark-header` layouts can opt into `contentSurface="inset"`: a
|
|
297
|
+
quiet secondary canvas around the card-colored main surface. Sidebar-first
|
|
298
|
+
`sidebar`/`inset` presets keep their existing flush/inset behavior. Shells own
|
|
299
|
+
one PageViewport; Page supplies the page padding, and header partials occupy the
|
|
300
|
+
shell's single header owner.
|
|
301
|
+
|
|
302
|
+
The catalogue leads with three structures: a global Header shell, the shared
|
|
303
|
+
App sidebar shell and a shadcn-style Inset shell. Single/dual navigation,
|
|
304
|
+
attached/floating framing and collapse behavior configure these structures.
|
|
305
|
+
They reuse the five presets. Full-size previews use
|
|
306
|
+
`?page=shells&layout=header`, `sidebar` or `inset`, optionally with `&theme=dark`.
|
|
307
|
+
The focused `grouped`, `dual`, `dual-inset`, `floating` and `stacked` views remain
|
|
308
|
+
available for comparison.
|
|
309
|
+
|
|
310
|
+
The featured layouts use grouped left navigation or a static left area rail
|
|
311
|
+
beside a full navigation panel. Collapse is a caller choice on
|
|
312
|
+
`AppSidebar`/`LayoutSidebar`, independent of the shell or sidebar skin:
|
|
313
|
+
`collapsible="icon"` minimizes the full panel to icons, `"offcanvas"` hides it,
|
|
314
|
+
and `"none"` keeps it expanded. Current examples default to `icon` and expose
|
|
315
|
+
a preview selector for these modes. In a dual layout the primary area rail
|
|
316
|
+
remains static: icon mode leaves a second compact column, while offcanvas
|
|
317
|
+
leaves only the original rail. One explicit trigger controls the contextual
|
|
318
|
+
panel; selecting an area opens it. Keep the primary rail's `collapsible="none"`
|
|
319
|
+
policy independent of the adjacent panel's policy.
|
|
320
|
+
At narrow widths the inline cluster pans a minimum page canvas while its area
|
|
321
|
+
rail stays pinned; resizing does not silently minimize navigation.
|
|
322
|
+
Both header-first and sidebar-first shells expose `mobileSidebarMode`; choose
|
|
323
|
+
`inline` for this persistent cluster, or retain the default drawer policy.
|
|
324
|
+
Sidebar shells accept
|
|
325
|
+
`slots.sidebar` (primary) and `slots.secondarySidebar` (contextual), with named
|
|
326
|
+
state inherited under one LayoutSidebarProvider. `openPanels` controls expansion and
|
|
327
|
+
`mobilePanel` selects one shared undocked drawer while preserving desktop state.
|
|
328
|
+
`navigationPanel` selects the untargeted trigger/shortcut destination. Existing
|
|
329
|
+
primary `open`/`onOpenChange` remain supported; controlled `openPanels` takes
|
|
330
|
+
precedence. Independent width props and `sidebarPresentation="rail"` use existing
|
|
331
|
+
shell geometry, with no new public theme roots. SidebarNavigationRail supplies
|
|
332
|
+
area navigation on its own background surface with one divider. Its dedicated
|
|
333
|
+
width is 52px at the default roots (a 36px action plus 8px on each side); the
|
|
334
|
+
existing full-sidebar icon-collapse width remains 60px. These are derived
|
|
335
|
+
recipes, not new public settings. SidebarRail remains the collapse affordance.
|
|
336
|
+
|
|
244
337
|
AppSidebar offers pinned `slots.headerStart`/`headerEnd` around its workspace
|
|
245
|
-
region,
|
|
338
|
+
region, grouped navigation and a separated footer. The four `header`,
|
|
339
|
+
`beforeNavigation`, `afterNavigation` and `footer` slots accept content or a
|
|
340
|
+
callback with named state, renderLink and defaultContent. A header node preserves
|
|
341
|
+
its legacy full replacement behavior; callback header content and either footer
|
|
342
|
+
form retain library-owned insets. Before/after navigation content scrolls.
|
|
343
|
+
Ordered `{ id, label?, items }` groups supplement the existing Record form, and
|
|
344
|
+
`renderItemContent` customizes label content inside the accessible row. Use
|
|
345
|
+
`currentUrl` for most-specific destination matching; render contexts distinguish
|
|
346
|
+
the current item from its `ancestor`. In icon mode, searchable sidebars retain
|
|
347
|
+
their search band as an icon that expands and focuses the field. Compact rows
|
|
348
|
+
keep a small gap; default and comfortable density share a roomier row gap,
|
|
349
|
+
with separate caption and group spacing. SidebarNavigationRail also exposes
|
|
350
|
+
`header`, `beforeNavigation`, `afterNavigation` and `footer` slots: header/footer
|
|
351
|
+
stay pinned and before/after content scrolls with navigation. Use
|
|
352
|
+
`surface="transparent"` for navigation that shares a docked shell canvas;
|
|
353
|
+
drawers remain opaque. `adaptTo="container"` keeps an embedded drawer and its
|
|
354
|
+
backdrop inside the provider for compositions that use drawers. Omit a contextual
|
|
355
|
+
group label when its header already supplies that same label. KPI peers use MetricGrid. The
|
|
246
356
|
[complete shell recipe](docs/consumer-skill/examples/app-layout.tsx) demonstrates
|
|
247
|
-
public workspace/account controls
|
|
357
|
+
single- and multiple-region composition with public workspace/account controls
|
|
358
|
+
and hosts route children directly. Its `contextualCollapsible` option defaults
|
|
359
|
+
to `icon`; a supplied `secondarySidebar` can choose its own collapse mode. Its separate
|
|
360
|
+
`WorkspaceExamplePage` owns the illustrative title, Create callback and narrow
|
|
361
|
+
measure; a real route such as `AccountDetailPage` replaces that example.
|
|
248
362
|
|
|
249
363
|
Choose one ordinary card surface through `card.defaultSurface`; explicit per-card
|
|
250
364
|
surfaces win. Leave Card's `icon` slot for a glyph that carries state or a
|
|
251
365
|
brand; titles name the subject. `headerPlacement` chooses inside/frame
|
|
252
366
|
composition independently. Independent framed peers use `gap="2xl"`, matching
|
|
253
367
|
Page and TwoColumnLayout's rhythm, since outer rings consume a smaller DOM gap.
|
|
254
|
-
|
|
368
|
+
Card body children use the related (`xl`, 16px) gap by default; explicit
|
|
369
|
+
`contentGap` remains authoritative. SettingsShell spaces direct sections by the
|
|
370
|
+
subjects (`2xl`, 24px) role. MetadataList (`themelia-react-ui/base/metadata-list`)
|
|
371
|
+
keeps semibold labels and normal primary values in both densities. It now adapts
|
|
372
|
+
to its own container by default, with 22/28/38/52/64rem thresholds; pass
|
|
373
|
+
`adaptTo="viewport"` to retain viewport breakpoints. DataTable owns its surface
|
|
374
|
+
and topbar insets; place compact FilterLayout in `topbarContent`, or use DataView.
|
|
255
375
|
Dashboard KPIs use Metric/MetricGrid/MetricBar; quotas use the focused UsageCard
|
|
256
376
|
owner. See [analytics selection](docs/consumer-skill/references/analytics.md) and
|
|
257
377
|
the [resource page recipe](docs/consumer-skill/examples/detail.tsx).
|
|
@@ -268,7 +388,7 @@ and ordinary Card subjects without app chrome. The packaged
|
|
|
268
388
|
offers and real navigation links using the same theme and inset owners.
|
|
269
389
|
|
|
270
390
|
|
|
271
|
-
Popover content uses `type="display"` for substantive content and `type="menu"` for collections. Mixed searchable menus use flush shells and compact region insets. `--radius` defaults to 12px. Cards and popup/command shells use `rounded-
|
|
391
|
+
Popover content uses `type="display"` for substantive content and `type="menu"` for collections. Mixed searchable menus use flush shells and compact region insets. `--radius` defaults to 12px. Cards and popup/command shells use `rounded-surface`; controls, collection/navigation rows and nested bodies use the shared, height-bounded `rounded-radius` role (normally 9px). Both derive from the same public root. Consumers inherit these recipes; see the [theme contract](docs/consumer-skill/references/theming.md) for scaling and custom roots. No separate surface/control radius setting is introduced.
|
|
272
392
|
|
|
273
393
|
|
|
274
394
|
## Agent skill and consumer references
|
|
@@ -281,15 +401,17 @@ After installing the package, find a family using its real portable script:
|
|
|
281
401
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/find-components.mjs form validation --limit 5
|
|
282
402
|
```
|
|
283
403
|
|
|
284
|
-
Resolve the installed package and compare copied guidance using the [installed setup reference](docs/consumer-skill/references/installation.md).
|
|
404
|
+
Resolve the installed package and compare copied guidance using the [installed setup reference](docs/consumer-skill/references/installation.md). When skill installation is requested, use the bundled `setup-skills.mjs --copy --destination <agent skills directory>` helper. It copies the three focused skills and the compatibility/shared directory as a complete bundle, rebases links and includes templates. For Codex the usual destination is `~/.codex/skills`; preserve existing/customized skills and refresh the entire bundle together. Package installation, skill copying and registry publication are separate actions; none happens globally or automatically.
|
|
285
405
|
|
|
286
406
|
Repository work uses the scoped [maintainer](docs/maintainer-skills/themelia-cn-maintainer/SKILL.md), [tokens](docs/maintainer-skills/themelia-cn-tokens/SKILL.md) and [quality](docs/maintainer-skills/themelia-cn-quality/SKILL.md) skills routed by [AGENTS.md](AGENTS.md). These repo-owned guides are excluded from the consumer package and do not replace separately installed skills.
|
|
287
407
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
408
|
+
The packaged consumer bundle contains `themelia-components`,
|
|
409
|
+
`themelia-tokenization` and `themelia-composition`, plus one concise
|
|
410
|
+
compatibility/shared entrypoint, API/component-contract/token metadata, typed
|
|
411
|
+
recipes, helper scripts and references. The recipe manifest and copy helper own
|
|
412
|
+
the current asset inventory; avoid copying an isolated skill file. Repository
|
|
413
|
+
maintainer skills remain separate. The focused entrypoints route setup,
|
|
414
|
+
composition and typed form work to their shared owners.
|
|
293
415
|
Its [scoped directory recipe](docs/consumer-skill/examples/scoped-directory.tsx)
|
|
294
416
|
shows one route heading, fixed parent context, integrated queries and record
|
|
295
417
|
navigation. [Review and checks](docs/consumer-skill/references/review.md) describes
|
|
@@ -300,12 +422,22 @@ deterministic guidance infrastructure, not aesthetic judgment or new-task agent
|
|
|
300
422
|
performance. Keep app-specific policy separate from the versioned package skill.
|
|
301
423
|
|
|
302
424
|
Finder results include relevant symbols and focused next reads for declarations,
|
|
303
|
-
references and exported recipes.
|
|
304
|
-
|
|
425
|
+
references and exported recipes. Zero-match natural-language searches can return
|
|
426
|
+
qualified related suggestions with matched/missing terms. The Node-only
|
|
427
|
+
`inspect-component.mjs` and `inspect-tokens.mjs` helpers retrieve bounded exact API
|
|
428
|
+
contracts and distinguish public token roots from derived utilities. This reduces
|
|
429
|
+
guessing without replacing the installed declarations for omitted or named types.
|
|
430
|
+
|
|
431
|
+
The bundled [composition mapper](docs/consumer-skill/references/composition-mapping.md)
|
|
432
|
+
uses per-symbol catalogue roles and supported regions to propose an advisory tree:
|
|
433
|
+
`map-composition.mjs --pattern record-detail --main invoice-lines --aside facts`.
|
|
434
|
+
It reports exact owners, surface decisions, peers and unresolved needs. Query
|
|
435
|
+
`--roles` for the initial 36-component/40-role coverage; app implementation and
|
|
436
|
+
visual review remain separate.
|
|
305
437
|
|
|
306
438
|
Maintainers run `npm run docs:sync-skill` after changes to exports, types, selection guidance, peers or tokens. `npm run check:skill` requires a fresh library build and rejects stale source-backed references, built declaration exports and broken reference links. `prepack` checks source-backed references without rebuilding; `prepublishOnly` builds fresh assets and verifies built guidance. `check:package` verifies the complete shipped skill, strictly compiles the basic recipes without optional peers and every recipe with its required peers, and executes installed shell/resource-page and workflow checks.
|
|
307
439
|
|
|
308
|
-
Build portable consumer documentation with `npm run build` followed by `npm run build:docs`. The generated [static entry](dist-docs/index.html) links to `dist-docs/2.0.
|
|
440
|
+
Build portable consumer documentation with `npm run build` followed by `npm run build:docs`. The generated [static entry](dist-docs/index.html) links to `dist-docs/2.0.5/` for the current version. Each version preserves the complete skill and all declaration files, supports search with the same finder, and uses relative links under any hosting subdirectory. Serve the entire artifact over HTTP; it needs no external CDN. Run `npm run check:static-docs` to check generated asset paths. The future hosting destination remains pending.
|
|
309
441
|
|
|
310
442
|
`npm run check:agent` runs focused agent-consumption fixtures and built skill alignment. `npm run check:release` performs the real serial local build/package/browser/agent/static-documentation gate; it does not publish or deploy. `npm run check:quick` runs the everyday core (contract, lint, design lint, typecheck, unit tests, build). See the [release guide](docs/releasing.md) and [draft changelog](CHANGELOG.md). There is no hosted CI; every check runs locally, when you choose. These commands verify locally; publication and deployment remain separate actions.
|
|
311
443
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useStrings as e } from "./lib/strings.js";
|
|
3
|
-
import { t } from "./utils-
|
|
4
|
-
import { c as n } from "./typography-
|
|
3
|
+
import { t } from "./utils-B6kKb8jB.js";
|
|
4
|
+
import { c as n } from "./typography-BQnine1k.js";
|
|
5
5
|
import { t as r } from "./focus-recipes-B653VaLq.js";
|
|
6
|
-
import { t as i } from "./motion-recipes-
|
|
7
|
-
import { t as a } from "./structure-
|
|
6
|
+
import { t as i } from "./motion-recipes-DitYv6P2.js";
|
|
7
|
+
import { t as a } from "./structure-DuxKl954.js";
|
|
8
8
|
import { t as o } from "./interaction-recipes-XR9ZpVYL.js";
|
|
9
9
|
import { t as s } from "./disclosure-panel-B0HFNZ9x.js";
|
|
10
|
-
import { t as c } from "./icon-badge-
|
|
10
|
+
import { t as c } from "./icon-badge-DZF-YjQp.js";
|
|
11
11
|
import * as l from "react";
|
|
12
12
|
import { forwardRef as u } from "react";
|
|
13
13
|
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
@@ -61,7 +61,7 @@ function v({ className: e, children: n, render: r, ...a }) {
|
|
|
61
61
|
var y = l.forwardRef(function({ className: e, ...n }, r) {
|
|
62
62
|
return /* @__PURE__ */ d(h, {
|
|
63
63
|
ref: r,
|
|
64
|
-
className: t("accordion--component rounded-
|
|
64
|
+
className: t("accordion--component rounded-surface border-border bg-card text-card-foreground", e),
|
|
65
65
|
...n
|
|
66
66
|
});
|
|
67
67
|
});
|
|
@@ -111,12 +111,12 @@ S.displayName = "AccordionContent";
|
|
|
111
111
|
//#region src/components/base/accordion/accordion-variants.ts
|
|
112
112
|
var C = {
|
|
113
113
|
card: "gap-space-md border-0 rounded-none bg-transparent text-inherit overflow-visible",
|
|
114
|
-
bordered: "rounded-
|
|
115
|
-
flat: "border-0 rounded-none bg-transparent text-inherit overflow-visible"
|
|
114
|
+
bordered: "rounded-surface border border-border bg-card text-card-foreground overflow-hidden",
|
|
115
|
+
flat: "-mx-row-x w-auto border-0 rounded-none bg-transparent text-inherit overflow-visible"
|
|
116
116
|
}, w = {
|
|
117
|
-
card: "border border-border bg-card text-card-foreground rounded-
|
|
117
|
+
card: "border border-border bg-card text-card-foreground rounded-surface overflow-hidden",
|
|
118
118
|
bordered: "bg-transparent not-last:border-b border-border",
|
|
119
|
-
flat: "border-0 not-last:border-b-0 bg-transparent rounded-
|
|
119
|
+
flat: "border-0 not-last:border-b-0 bg-transparent rounded-surface overflow-hidden"
|
|
120
120
|
}, T = "items-center gap-space-lg px-row-x py-row-y text-start hover:no-underline", E = {
|
|
121
121
|
withMedallion: "ps-[calc(var(--row-x)*var(--space-scale)+var(--avatar)+0.75rem*var(--space-scale))] pe-row-x pt-0",
|
|
122
122
|
withInline: "ps-[calc(var(--row-x)*var(--space-scale)+var(--icon)*1.25+0.75rem*var(--space-scale))] pe-row-x pt-0",
|
|
@@ -205,4 +205,4 @@ function A({ iconStyle: e, icon: n, reserveSpace: r }) {
|
|
|
205
205
|
//#endregion
|
|
206
206
|
export { C as a, S as c, w as i, b as l, D as n, T as o, E as r, y as s, O as t, x as u };
|
|
207
207
|
|
|
208
|
-
//# sourceMappingURL=accordion-
|
|
208
|
+
//# sourceMappingURL=accordion-B9MHG0cT.js.map
|