themelia-react-ui 2.0.4 → 2.0.6
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 +211 -0
- package/MIGRATION.md +119 -0
- package/README.md +122 -20
- package/dist/{accordion-96o0pN62.js → accordion-0tQUZ20r.js} +13 -13
- package/dist/accordion-0tQUZ20r.js.map +1 -0
- package/dist/{action-menu-CHgs8vmj.js → action-menu-C0gjzLyE.js} +48 -45
- package/dist/action-menu-C0gjzLyE.js.map +1 -0
- package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
- package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
- package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-CGGpQryR.js} +281 -230
- package/dist/ai-artifact-CGGpQryR.js.map +1 -0
- package/dist/app-shell-EHuuRDGy.js +321 -0
- package/dist/app-shell-EHuuRDGy.js.map +1 -0
- package/dist/{attachment-DkoqHPPl.js → attachment-BCpA4e7i.js} +10 -10
- package/dist/{attachment-DkoqHPPl.js.map → attachment-BCpA4e7i.js.map} +1 -1
- package/dist/{auth-D2FVZ1MH.js → auth-B0girIk_.js} +49 -52
- package/dist/auth-B0girIk_.js.map +1 -0
- package/dist/{avatar-DWO_HHhB.js → avatar-B9Jnp-T-.js} +8 -8
- package/dist/avatar-B9Jnp-T-.js.map +1 -0
- package/dist/{badge-DErMA7ul.js → badge-wWauMgAt.js} +5 -5
- package/dist/{badge-DErMA7ul.js.map → badge-wWauMgAt.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 +4 -4
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- 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 +200 -193
- 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 +8 -8
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +6 -6
- package/dist/base/spinner.js.map +1 -1
- 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-CdfIkCsV.js → batch-action-bar-BoqWIIpV.js} +7 -7
- package/dist/batch-action-bar-BoqWIIpV.js.map +1 -0
- package/dist/blocks/admin.js +21 -21
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +267 -247
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +537 -543
- 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 +1330 -1250
- 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-B-WFKecD.js → breadcrumbs-Bp9Ke7kd.js} +7 -7
- package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
- package/dist/{button-DkmK-z8E.js → button-ChBovTx0.js} +3 -3
- package/dist/button-ChBovTx0.js.map +1 -0
- package/dist/{buttons-BbfzgczK.js → buttons-DeW0bQeK.js} +16 -16
- package/dist/buttons-DeW0bQeK.js.map +1 -0
- package/dist/cards-CNXnmvV5.js +69 -0
- package/dist/cards-CNXnmvV5.js.map +1 -0
- package/dist/cascader-CrAl9zD5.js +439 -0
- package/dist/cascader-CrAl9zD5.js.map +1 -0
- package/dist/chart-I7ROnsl8.js +162 -0
- package/dist/chart-I7ROnsl8.js.map +1 -0
- package/dist/{checkbox-CzYUTPeJ.js → checkbox-MoyHIAPs.js} +3 -3
- package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-MoyHIAPs.js.map} +1 -1
- package/dist/choice-inputs-DHGtx0QV.js +789 -0
- package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
- package/dist/{code-block-CGNaUtAE.js → code-block-BSJyq9e-.js} +9 -9
- package/dist/code-block-BSJyq9e-.js.map +1 -0
- package/dist/{collapsible-Do4G0zcC.js → collapsible-BzJ91LUG.js} +5 -5
- package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BzJ91LUG.js.map} +1 -1
- package/dist/{collection-content-C0e8SsTm.js → collection-content-CSnwtOTH.js} +3 -3
- package/dist/{collection-content-C0e8SsTm.js.map → collection-content-CSnwtOTH.js.map} +1 -1
- package/dist/combobox-Bcvu5J8O.js +363 -0
- package/dist/combobox-Bcvu5J8O.js.map +1 -0
- package/dist/combobox-C2JiSQPc.js +915 -0
- package/dist/combobox-C2JiSQPc.js.map +1 -0
- package/dist/{command-D8NrBj-b.js → command-9e52NPgK.js} +11 -11
- package/dist/command-9e52NPgK.js.map +1 -0
- package/dist/{comments-Di4w0H_S.js → comments-BsgErEqd.js} +44 -39
- package/dist/comments-BsgErEqd.js.map +1 -0
- package/dist/components/base/action-menu/action-menu.d.ts +7 -1
- package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
- package/dist/components/base/cards/card.recipes.d.ts +6 -4
- 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 +3 -4
- 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/choice-types.d.ts +5 -1
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
- package/dist/components/base/combobox/combobox-field.d.ts +2 -2
- package/dist/components/base/combobox/index.d.ts +4 -2
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
- package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
- package/dist/components/base/feedback/alert.d.ts +1 -1
- package/dist/components/base/feedback/state-display.d.ts +5 -1
- package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
- package/dist/components/base/forms/form-field.d.ts +7 -2
- package/dist/components/base/forms/form-sizing.d.ts +7 -7
- package/dist/components/base/forms/workflow.d.ts +7 -1
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +8 -1
- package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
- package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
- package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
- package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
- package/dist/components/base/navigation/language-switcher.d.ts +12 -4
- 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 +10 -3
- 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/repeaters/key-value-editor.d.ts +2 -1
- 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 +29 -5
- package/dist/components/base/toaster/index.d.ts +1 -0
- package/dist/components/base/upload/avatar-upload.d.ts +2 -1
- package/dist/components/base/upload/image-upload.d.ts +2 -1
- package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +5 -1
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +4 -0
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
- package/dist/components/blocks/analytics/types.d.ts +2 -2
- 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/order-status/types.d.ts +4 -0
- 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/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
- package/dist/components/features/activities/activities.types.d.ts +26 -13
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
- 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/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
- package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
- package/dist/components/features/combobox/combobox.d.ts +2 -2
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
- package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
- package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
- package/dist/components/features/combobox/types.d.ts +37 -8
- package/dist/components/features/email-composer/types.d.ts +3 -1
- 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/date-facet.d.ts +4 -2
- package/dist/components/features/filters/facets/range-facet.d.ts +12 -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 +6 -3
- package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
- package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +5 -3
- package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
- package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +25 -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/hooks/use-media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +8 -0
- package/dist/components/features/media-library/media-library.types.d.ts +50 -12
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +4 -4
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
- 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 +45 -8
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
- package/dist/components/features/resource/resource.d.ts +6 -2
- package/dist/components/features/resource/resource.types.d.ts +14 -1
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
- package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
- package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/index.d.ts +1 -0
- package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
- package/dist/components/features/table/table-body.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +6 -3
- package/dist/components/features/table/table.strings.d.ts +3 -0
- package/dist/components/features/table/table.types.d.ts +18 -2
- 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 +9 -8
- package/dist/components/layout/layout.types.d.ts +5 -3
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
- package/dist/components/layout/navigation/side-nav.d.ts +3 -2
- package/dist/components/layout/normalize-layout-path.d.ts +1 -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 +10 -3
- 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 +38 -0
- package/dist/components/layout/sidebar/sidebar.context.d.ts +6 -7
- package/dist/components/layout/sidebar/sidebar.types.d.ts +50 -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/primitives/link.d.ts +3 -2
- package/dist/components/primitives/money.d.ts +1 -1
- package/dist/components/primitives/number.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
- 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/{containers-CRmHf7GP.js → containers-CSdc32h9.js} +26 -18
- package/dist/containers-CSdc32h9.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-CnGCZdX4.js → copyable-3fdHfMR3.js} +7 -7
- package/dist/{copyable-CnGCZdX4.js.map → copyable-3fdHfMR3.js.map} +1 -1
- package/dist/{data-display-D4oujtx0.js → data-display-Cmj-xZYl.js} +271 -279
- package/dist/data-display-Cmj-xZYl.js.map +1 -0
- package/dist/{date-Q7jnXxpk.js → date-Br0FicVv.js} +5 -5
- package/dist/{date-Q7jnXxpk.js.map → date-Br0FicVv.js.map} +1 -1
- package/dist/date-picker-CyQlFYsP.js +1617 -0
- package/dist/date-picker-CyQlFYsP.js.map +1 -0
- package/dist/date-pickers-tj2MXmXd.js +185 -0
- package/dist/date-pickers-tj2MXmXd.js.map +1 -0
- package/dist/{display-BB4BL_-K.js → display-CT_N2a3w.js} +9 -9
- package/dist/{display-BB4BL_-K.js.map → display-CT_N2a3w.js.map} +1 -1
- package/dist/dropdown-menu-C08iIugv.js +194 -0
- package/dist/dropdown-menu-C08iIugv.js.map +1 -0
- package/dist/features/activities.js +388 -326
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +46 -32
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +130 -130
- 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 +243 -239
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +197 -199
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +168 -143
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +19 -30
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map/style.css +15 -0
- package/dist/features/map.js +369 -343
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1202 -975
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +2 -2
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1270 -1183
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +160 -153
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +8 -8
- package/dist/features/resource.js +119 -113
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +28 -19
- package/dist/features/rich-text-editor.js.map +1 -1
- package/dist/features/schema-form.js +297 -256
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +57 -50
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +470 -470
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-Dzo1xtAU.js +246 -0
- package/dist/feedback-Dzo1xtAU.js.map +1 -0
- package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-D6H7tVJi.js} +5 -5
- package/dist/field-affordance-recipes-D6H7tVJi.js.map +1 -0
- package/dist/field-control-attributes-B6i335wr.js +18 -0
- package/dist/field-control-attributes-B6i335wr.js.map +1 -0
- package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
- package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
- package/dist/filters-Dl80yYtN.js +2415 -0
- package/dist/filters-Dl80yYtN.js.map +1 -0
- package/dist/form-field-CAPdwdnZ.js +74 -0
- package/dist/form-field-CAPdwdnZ.js.map +1 -0
- package/dist/{form-sizing-NXgjkmBG.js → form-sizing-CgcrUbLU.js} +5 -5
- package/dist/form-sizing-CgcrUbLU.js.map +1 -0
- package/dist/{forms-BV5m5aQF.js → forms-B3W8CH7-.js} +17 -13
- package/dist/forms-B3W8CH7-.js.map +1 -0
- package/dist/forms-numeric-CwjQJe-O.js +991 -0
- package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
- package/dist/{header-BA697l4a.js → header-ZIIsRKxP.js} +145 -141
- package/dist/header-ZIIsRKxP.js.map +1 -0
- package/dist/header.recipes-BigdJjw1.js +6 -0
- package/dist/header.recipes-BigdJjw1.js.map +1 -0
- package/dist/hooks/use-files.d.ts +2 -0
- package/dist/{hooks-BQ-L7Uu2.js → hooks-BitHSh-Y.js} +27 -15
- package/dist/hooks-BitHSh-Y.js.map +1 -0
- package/dist/{icon-badge-COWbCCWu.js → icon-badge-npxF1SLX.js} +4 -4
- package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-npxF1SLX.js.map} +1 -1
- package/dist/index.js +4 -5
- package/dist/{input-Cdw4k0fb.js → input-7KAc7XQL.js} +9 -9
- package/dist/{input-Cdw4k0fb.js.map → input-7KAc7XQL.js.map} +1 -1
- package/dist/input-DIREVYHs.js +21 -0
- package/dist/input-DIREVYHs.js.map +1 -0
- package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
- package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
- package/dist/item-FfWnaYST.js +278 -0
- package/dist/item-FfWnaYST.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 +12 -12
- package/dist/layout.types-E_GAApzO.js +30 -0
- package/dist/layout.types-E_GAApzO.js.map +1 -0
- package/dist/lib/affordance-geometry.generated.d.ts +35 -35
- package/dist/lib/control-group-recipes.d.ts +5 -5
- package/dist/lib/field-affordance-recipes.d.ts +2 -2
- package/dist/lib/field-control-attributes.d.ts +11 -0
- package/dist/lib/field-state-recipes.d.ts +2 -0
- package/dist/lib/format.d.ts +1 -0
- 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/surface-recipes.d.ts +1 -1
- package/dist/lib/token-merge.generated.d.ts +18 -15
- package/dist/lib/utils.js +1 -1
- package/dist/map-demo-tile.svg +1 -1
- package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C81DAnKI.js} +6 -6
- package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C81DAnKI.js.map} +1 -1
- package/dist/{mentions-RKOQaaIB.js → mentions-qOnedSt4.js} +237 -168
- package/dist/mentions-qOnedSt4.js.map +1 -0
- package/dist/message-BJHnn43M.js +135 -0
- package/dist/message-BJHnn43M.js.map +1 -0
- package/dist/{metadata-list-qVV7AVxa.js → metadata-list-XkqZ_UXH.js} +64 -64
- package/dist/metadata-list-XkqZ_UXH.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-BgtPJAhi.js +288 -0
- package/dist/navigation-BgtPJAhi.js.map +1 -0
- package/dist/navigation-Bt-v7rWP.js +261 -0
- package/dist/navigation-Bt-v7rWP.js.map +1 -0
- package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
- package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
- package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
- package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
- package/dist/{number-E_OiIfJz.js → number-CYqBcrSj.js} +79 -87
- package/dist/number-CYqBcrSj.js.map +1 -0
- package/dist/overflow-tab-bar-BQCA2Zn2.js +172 -0
- package/dist/overflow-tab-bar-BQCA2Zn2.js.map +1 -0
- package/dist/overlays-CC8zI3Du.js +1017 -0
- package/dist/overlays-CC8zI3Du.js.map +1 -0
- package/dist/page-BoQ1VaFJ.js +331 -0
- package/dist/page-BoQ1VaFJ.js.map +1 -0
- package/dist/page-header-commands-DIKspJfx.js +193 -0
- package/dist/page-header-commands-DIKspJfx.js.map +1 -0
- package/dist/{pagination-Ch8X_47u.js → pagination-Br8TdV9A.js} +7 -7
- package/dist/{pagination-Ch8X_47u.js.map → pagination-Br8TdV9A.js.map} +1 -1
- package/dist/popover-k8TdUcAt.js +201 -0
- package/dist/popover-k8TdUcAt.js.map +1 -0
- package/dist/{popover-menu-BYaCdFhf.js → popover-menu-yn-o0kyA.js} +7 -7
- package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
- package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DJ0AkUan.js} +19 -12
- package/dist/popover.recipes-DJ0AkUan.js.map +1 -0
- package/dist/portal-recipes-DyUXqUtD.js +9 -0
- package/dist/portal-recipes-DyUXqUtD.js.map +1 -0
- package/dist/{primitives-Du64iDbb.js → primitives-BkkQjYl7.js} +23 -18
- package/dist/primitives-BkkQjYl7.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-BvF2oCdV.js → progress-DZFXXzPs.js} +9 -9
- package/dist/{progress-BvF2oCdV.js.map → progress-DZFXXzPs.js.map} +1 -1
- package/dist/{receipt-D789Jwyy.js → receipt-C7LhOg7Q.js} +7 -7
- package/dist/receipt-C7LhOg7Q.js.map +1 -0
- package/dist/rich-text-BnTzZjIo.js +45 -0
- package/dist/rich-text-BnTzZjIo.js.map +1 -0
- package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-CAurDwT5.js} +501 -424
- package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js +99 -0
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
- package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
- package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
- package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
- package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
- package/dist/{scroll-area-La5RXsEk.js → scroll-area-Bj6CRUif.js} +2 -2
- package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
- package/dist/{separator-DAEV0w65.js → separator-B9ewiCGO.js} +2 -2
- package/dist/{separator-DAEV0w65.js.map → separator-B9ewiCGO.js.map} +1 -1
- package/dist/{separator-GNfPG-90.js → separator-DM6gs2vu.js} +3 -3
- package/dist/{separator-GNfPG-90.js.map → separator-DM6gs2vu.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/settings-DZPHgpx4.js +155 -0
- package/dist/settings-DZPHgpx4.js.map +1 -0
- package/dist/sheet-C4DHsgLk.js +250 -0
- package/dist/sheet-C4DHsgLk.js.map +1 -0
- package/dist/sidebar-C8BnDwTH.js +709 -0
- package/dist/sidebar-C8BnDwTH.js.map +1 -0
- package/dist/sidebar-CmD6a-HK.js +1004 -0
- package/dist/sidebar-CmD6a-HK.js.map +1 -0
- package/dist/skeleton-DDgdhmu9.js +265 -0
- package/dist/skeleton-DDgdhmu9.js.map +1 -0
- package/dist/smart-card-B6vLxqa_.js +617 -0
- package/dist/smart-card-B6vLxqa_.js.map +1 -0
- package/dist/{structure-C0V0_Fyf.js → structure-DZJ2wbAU.js} +2 -2
- package/dist/{structure-C0V0_Fyf.js.map → structure-DZJ2wbAU.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
- package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
- package/dist/{table-DH7rozUv.js → table-CBonSdTp.js} +573 -519
- package/dist/table-CBonSdTp.js.map +1 -0
- package/dist/{table-CpvnzJn9.js → table-CXSPHH25.js} +75 -71
- package/dist/table-CXSPHH25.js.map +1 -0
- package/dist/tabs-C4Kr_hCr.js +192 -0
- package/dist/tabs-C4Kr_hCr.js.map +1 -0
- package/dist/{text-inputs-DXItiR0O.js → text-inputs-jdkS3ReG.js} +18 -18
- package/dist/text-inputs-jdkS3ReG.js.map +1 -0
- package/dist/theme.css +40 -37
- package/dist/{timelines-DmtztAY_.js → timelines-CoPwdJP0.js} +13 -12
- package/dist/timelines-CoPwdJP0.js.map +1 -0
- package/dist/tooltip-31NwIpTo.js +113 -0
- package/dist/tooltip-31NwIpTo.js.map +1 -0
- package/dist/{tree-CV11PURP.js → tree-CeYVzdFE.js} +9 -9
- package/dist/{tree-CV11PURP.js.map → tree-CeYVzdFE.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/{typography-CSyJrh28.js → typography-C7-YMW1S.js} +12 -12
- package/dist/{typography-CSyJrh28.js.map → typography-C7-YMW1S.js.map} +1 -1
- 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-C9SA0X-8.js → upload-Hdm5gObf.js} +309 -296
- package/dist/upload-Hdm5gObf.js.map +1 -0
- package/dist/{upload-queue-DhQJiSRc.js → upload-queue-D0sYPuqo.js} +16 -14
- package/dist/upload-queue-D0sYPuqo.js.map +1 -0
- package/dist/{usage-card-DVTRDmGz.js → usage-card-9s8hLDfn.js} +24 -17
- package/dist/usage-card-9s8hLDfn.js.map +1 -0
- package/dist/{utils-CF3c95Io.js → utils-DhuoqFy4.js} +255 -165
- package/dist/utils-DhuoqFy4.js.map +1 -0
- package/dist/value-inputs-D3aPgq9H.js +980 -0
- package/dist/value-inputs-D3aPgq9H.js.map +1 -0
- package/dist/{value-typography-ClupF0Gz.js → value-typography-uSzzG9Gf.js} +32 -26
- package/dist/value-typography-uSzzG9Gf.js.map +1 -0
- package/dist/{workspace-9EFVXUyk.js → workspace-CC8Vchiu.js} +51 -50
- package/dist/workspace-CC8Vchiu.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +4 -3
- package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
- package/docs/consumer-skill/examples/app-layout.tsx +52 -1
- 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 +3 -3
- 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 +38 -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-edit-page.tsx +1 -1
- package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
- package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
- package/docs/consumer-skill/references/agents-md.md +21 -19
- package/docs/consumer-skill/references/analytics.md +33 -1
- package/docs/consumer-skill/references/commerce-composition.md +97 -0
- package/docs/consumer-skill/references/component-contracts.json +21249 -14205
- package/docs/consumer-skill/references/composition-mapping.md +17 -3
- package/docs/consumer-skill/references/composition.md +177 -32
- 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 +12 -9
- package/docs/consumer-skill/references/discovery.md +27 -3
- package/docs/consumer-skill/references/domain-structures.md +124 -0
- package/docs/consumer-skill/references/installation.md +62 -8
- package/docs/consumer-skill/references/integration.md +59 -1
- package/docs/consumer-skill/references/product-composition.md +94 -0
- package/docs/consumer-skill/references/public-api.json +3044 -445
- package/docs/consumer-skill/references/review.md +87 -10
- package/docs/consumer-skill/references/rhf-workflows.md +79 -0
- package/docs/consumer-skill/references/screen-archetypes.md +19 -7
- package/docs/consumer-skill/references/screen-decisions.md +126 -0
- package/docs/consumer-skill/references/theming.md +24 -20
- package/docs/consumer-skill/references/tokens.json +9 -9
- 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 +7 -1
- package/docs/consumer-skill/scripts/composition-policy.mjs +176 -26
- package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
- package/docs/consumer-skill/scripts/composition.mjs +61 -5
- package/docs/consumer-skill/scripts/discovery.mjs +54 -0
- package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
- package/docs/consumer-skill/scripts/inspection.mjs +73 -18
- package/docs/consumer-skill/scripts/setup-skills.mjs +79 -7
- package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
- package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
- package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
- package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
- package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
- package/package.json +4 -2
- package/templates/admin-shell-template.tsx +1 -2
- package/templates/customers-template.tsx +18 -16
- package/dist/accordion-96o0pN62.js.map +0 -1
- package/dist/action-menu-CHgs8vmj.js.map +0 -1
- package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
- package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
- package/dist/app-shell-D63ATkIK.js +0 -237
- package/dist/app-shell-D63ATkIK.js.map +0 -1
- package/dist/auth-D2FVZ1MH.js.map +0 -1
- package/dist/avatar-DWO_HHhB.js.map +0 -1
- package/dist/base/cascader.js.map +0 -1
- package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
- package/dist/breadcrumbs-B-WFKecD.js.map +0 -1
- package/dist/button-DkmK-z8E.js.map +0 -1
- package/dist/buttons-BbfzgczK.js.map +0 -1
- package/dist/cards-4JTWqvVe.js +0 -68
- package/dist/cards-4JTWqvVe.js.map +0 -1
- package/dist/chart-C19flDQb.js +0 -155
- package/dist/chart-C19flDQb.js.map +0 -1
- package/dist/choice-inputs-JLtij2y4.js +0 -776
- package/dist/choice-inputs-JLtij2y4.js.map +0 -1
- package/dist/code-block-CGNaUtAE.js.map +0 -1
- package/dist/combobox-CBJDs6w_.js +0 -877
- package/dist/combobox-CBJDs6w_.js.map +0 -1
- package/dist/combobox-hbhSS18O.js +0 -355
- package/dist/combobox-hbhSS18O.js.map +0 -1
- package/dist/command-D8NrBj-b.js.map +0 -1
- package/dist/comments-Di4w0H_S.js.map +0 -1
- package/dist/containers-CRmHf7GP.js.map +0 -1
- package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
- package/dist/data-display-D4oujtx0.js.map +0 -1
- package/dist/date-picker-zOt1oNss.js +0 -1542
- package/dist/date-picker-zOt1oNss.js.map +0 -1
- package/dist/date-pickers-cj8IXbDC.js +0 -179
- package/dist/date-pickers-cj8IXbDC.js.map +0 -1
- package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
- package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
- package/dist/feedback-DZNL5Lg1.js +0 -239
- package/dist/feedback-DZNL5Lg1.js.map +0 -1
- package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
- package/dist/filters-BcT-uoFy.js +0 -2209
- package/dist/filters-BcT-uoFy.js.map +0 -1
- package/dist/form-field-CsgRmdit.js +0 -63
- package/dist/form-field-CsgRmdit.js.map +0 -1
- package/dist/form-sizing-NXgjkmBG.js.map +0 -1
- package/dist/forms-BV5m5aQF.js.map +0 -1
- package/dist/forms-numeric-Cd33AKbD.js +0 -906
- package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
- package/dist/header-BA697l4a.js.map +0 -1
- package/dist/hooks-BQ-L7Uu2.js.map +0 -1
- package/dist/input-DOPL5_QE.js +0 -21
- package/dist/input-DOPL5_QE.js.map +0 -1
- package/dist/item-BvZ2DR_x.js +0 -277
- package/dist/item-BvZ2DR_x.js.map +0 -1
- package/dist/layout.types-Cn7aUzJp.js +0 -20
- package/dist/layout.types-Cn7aUzJp.js.map +0 -1
- package/dist/mentions-RKOQaaIB.js.map +0 -1
- package/dist/message-INU2xsxu.js +0 -128
- package/dist/message-INU2xsxu.js.map +0 -1
- package/dist/metadata-list-qVV7AVxa.js.map +0 -1
- package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
- package/dist/navigation-BQNcg1jT.js +0 -269
- package/dist/navigation-BQNcg1jT.js.map +0 -1
- package/dist/navigation-DLF3E1IC.js +0 -145
- package/dist/navigation-DLF3E1IC.js.map +0 -1
- package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
- package/dist/number-E_OiIfJz.js.map +0 -1
- package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
- package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
- package/dist/overlays-BlKynmde.js +0 -1004
- package/dist/overlays-BlKynmde.js.map +0 -1
- package/dist/page-CIwNUtGr.js +0 -227
- package/dist/page-CIwNUtGr.js.map +0 -1
- package/dist/page-header-commands-DFMlNYzN.js +0 -128
- package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
- package/dist/popover-uwzX2vo7.js +0 -198
- package/dist/popover-uwzX2vo7.js.map +0 -1
- package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
- package/dist/primitives-Du64iDbb.js.map +0 -1
- package/dist/receipt-D789Jwyy.js.map +0 -1
- package/dist/rich-text-CLJEf76s.js +0 -78
- package/dist/rich-text-CLJEf76s.js.map +0 -1
- package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
- package/dist/rich-text-editor-toolbar-L__e4x47.js +0 -94
- package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
- package/dist/safe-image-src-C6kQSMBZ.js +0 -17
- package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
- package/dist/sanitize-html-DsQmI48u.js.map +0 -1
- package/dist/settings-BA2iboic.js +0 -174
- package/dist/settings-BA2iboic.js.map +0 -1
- package/dist/sheet-DoAxTb2J.js +0 -213
- package/dist/sheet-DoAxTb2J.js.map +0 -1
- package/dist/sidebar-ByqKR_W5.js +0 -512
- package/dist/sidebar-ByqKR_W5.js.map +0 -1
- package/dist/sidebar-D2iSnGJ7.js +0 -619
- package/dist/sidebar-D2iSnGJ7.js.map +0 -1
- package/dist/skeleton-CUj8O5Bd.js +0 -264
- package/dist/skeleton-CUj8O5Bd.js.map +0 -1
- package/dist/smart-card-CqkzQsK-.js +0 -614
- package/dist/smart-card-CqkzQsK-.js.map +0 -1
- package/dist/table-CpvnzJn9.js.map +0 -1
- package/dist/table-DH7rozUv.js.map +0 -1
- package/dist/tabs-eqVsJZWO.js +0 -191
- package/dist/tabs-eqVsJZWO.js.map +0 -1
- package/dist/text-inputs-DXItiR0O.js.map +0 -1
- package/dist/theme-scope-BJ6eE2xt.js +0 -50
- package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
- package/dist/timelines-DmtztAY_.js.map +0 -1
- package/dist/tooltip-B4hjKtoV.js +0 -111
- package/dist/tooltip-B4hjKtoV.js.map +0 -1
- package/dist/ui-provider-CQCuCBcy.js +0 -136
- package/dist/ui-provider-CQCuCBcy.js.map +0 -1
- package/dist/upload-C9SA0X-8.js.map +0 -1
- package/dist/upload-queue-DhQJiSRc.js.map +0 -1
- package/dist/usage-card-DVTRDmGz.js.map +0 -1
- package/dist/use-mobile-vaLKwgyf.js +0 -15
- package/dist/use-mobile-vaLKwgyf.js.map +0 -1
- package/dist/utils-CF3c95Io.js.map +0 -1
- package/dist/value-inputs-C0o70p-U.js +0 -980
- package/dist/value-inputs-C0o70p-U.js.map +0 -1
- package/dist/value-typography-ClupF0Gz.js.map +0 -1
- package/dist/workspace-9EFVXUyk.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,216 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.6 — 2026-11-04
|
|
4
|
+
|
|
5
|
+
- AI disclosure and source controls use their visible text for accessible
|
|
6
|
+
names. Disclosure copy overrides remain available as descriptions.
|
|
7
|
+
- OrderStatusCard accepts translated status labels and a formatter for the
|
|
8
|
+
displayed order reference.
|
|
9
|
+
- Default layout navigation renders callback-only entries as buttons and
|
|
10
|
+
keeps disabled entries inert. Custom settings link renderers receive
|
|
11
|
+
selection through `onClick`.
|
|
12
|
+
- SideNav accepts a `renderLink` adapter. Pass your app's pathname as
|
|
13
|
+
`currentPath` to preserve active-route highlighting when upgrading from
|
|
14
|
+
the implicit browser URL default.
|
|
15
|
+
- AppSidebar and SidebarNavigationRail close an open drawer after app
|
|
16
|
+
navigation. Use `closeDrawerOnNavigate={false}` to keep it open.
|
|
17
|
+
- Header and HeaderBreadcrumbs render in standalone and stacked layouts.
|
|
18
|
+
The built-in sidebar trigger appears only inside a sidebar provider.
|
|
19
|
+
- FormField labels, hints and errors reach time, dimension, coordinate,
|
|
20
|
+
image, avatar, key/value and rich-text controls. RichTextEditor also accepts
|
|
21
|
+
`invalid` and preserves the field association in source mode.
|
|
22
|
+
- A blank optional TimePicker allows native form submission.
|
|
23
|
+
- AvatarUpload honors MIME types and wildcards in its file accept rules.
|
|
24
|
+
- FormRichTextEditor binds React Hook Form touch, focus, invalid and disabled
|
|
25
|
+
state. Named editors include committed HTML in native submissions.
|
|
26
|
+
- Combobox and MultiCombobox accept selection defaults and new value props
|
|
27
|
+
alongside their legacy bindings. All three selectors accept search and
|
|
28
|
+
open defaults.
|
|
29
|
+
- WeightInput, DimensionsInput and CoordinatesInput expose direct value
|
|
30
|
+
callbacks, field blur and native form names, plus required and read-only
|
|
31
|
+
behavior.
|
|
32
|
+
- TimePicker supports initial times, controlled or default popup visibility,
|
|
33
|
+
and named native values with required validation in both modes.
|
|
34
|
+
- PillRadioGroup supports uncontrolled defaults and submits the selected
|
|
35
|
+
enabled option when named. Clearing still emits `null`.
|
|
36
|
+
- AppointmentCalendar, Questionnaire, LanguageSwitcher and EmailComposer
|
|
37
|
+
add consistent value callbacks. TabbedResourceShell adds an initial tab.
|
|
38
|
+
- Metric and MetricGrid accept a shared semantic `tone`. The legacy
|
|
39
|
+
`colorScheme` remains supported. Colored metrics keep primary progress
|
|
40
|
+
by default and accept an explicit neutral tone.
|
|
41
|
+
- MediaLibrary keeps failed edits and uploads in their own panels so browsing
|
|
42
|
+
stays available. `useMediaLibrary` exposes `loadError`, `mutationError` and
|
|
43
|
+
`uploadError` alongside the existing `error` field.
|
|
44
|
+
- MediaLibrary requires explicit callbacks for edits and deletes, including
|
|
45
|
+
in-memory collections and the headless mutation methods. Its Delete action
|
|
46
|
+
opens a confirmation and returns focus to the results after removal.
|
|
47
|
+
- MediaLibrary keeps previous results mounted during refresh. Inline fetcher
|
|
48
|
+
and error callbacks no longer trigger reloads. Change `refreshKey` to
|
|
49
|
+
reload the current remote query explicitly.
|
|
50
|
+
- MediaLibrary server pickers return selected records from earlier searches
|
|
51
|
+
and uploads. Uploads refresh the remote results and stay selected across
|
|
52
|
+
filters.
|
|
53
|
+
- MediaLibrary uploads keep queued files and individual failures available
|
|
54
|
+
for the next request. Upload helpers expose the current batch's file IDs.
|
|
55
|
+
- Native submissions from `Combobox`, `MultiCombobox` and
|
|
56
|
+
`AsyncResourceCombobox` now use the selected item's key, or its label
|
|
57
|
+
when no key is supplied. To keep submitting JSON objects, pass
|
|
58
|
+
`getItemValue={(item) => JSON.stringify(item)}`.
|
|
59
|
+
- Async filter option freshness and retention apply within one mounted editor.
|
|
60
|
+
Chip labels are isolated to their filter provider. Applications that need
|
|
61
|
+
reuse across editor mounts can cache in their own scoped fetcher.
|
|
62
|
+
- DataTable bulk-action counts include selected IDs from other server pages.
|
|
63
|
+
Use `rowSelection` for those IDs and `selectedRows` for loaded records.
|
|
64
|
+
- Numeric filters use `between` and store two positional bounds, with an
|
|
65
|
+
empty string for an open end. The URL helpers still read older scalar
|
|
66
|
+
values as exact matches. Date ranges retain both calendar days on reload.
|
|
67
|
+
- Inline product option editing preserves rich value labels. Options with
|
|
68
|
+
rich names can use the `onEditOption` callback for app-owned editing.
|
|
69
|
+
- Money treats a single dot as a decimal separator in
|
|
70
|
+
serialized amounts, including three-decimal currencies.
|
|
71
|
+
- Controlled overlays report each dismissal request through `onOpenChange`.
|
|
72
|
+
`onClose` now follows the committed visibility change.
|
|
73
|
+
- RichTextEditor source edits stay in a draft until switching back to rich
|
|
74
|
+
text. The editor emits the normalized document HTML. An external value
|
|
75
|
+
change replaces the open source draft.
|
|
76
|
+
- `useActivityResources` reseeds when resource values change. Equivalent
|
|
77
|
+
inline resources preserve local edits, and each mutation emits once.
|
|
78
|
+
|
|
79
|
+
## 2.0.5 — 2026-10-31
|
|
80
|
+
|
|
81
|
+
- Modal scrims render again under `SidebarProvider`/`AppSidebar`. The sidebar
|
|
82
|
+
drawer owner is a Dialog root around the app, so Base UI treated every dialog
|
|
83
|
+
inside as nested and skipped its backdrop. A modal now draws its backdrop
|
|
84
|
+
unless it opens from inside another modal's content.
|
|
85
|
+
- Collection rows (menus, Command, Select, Combobox, cascader, global search) are
|
|
86
|
+
sized by their height role: block padding steps one tier below Item's, so a
|
|
87
|
+
single line is exactly 32/28/36px at default/compact/comfortable instead of
|
|
88
|
+
1.5px taller. DataTable menus, kanban and activities drop the legacy 24px
|
|
89
|
+
`density="table"` rows.
|
|
90
|
+
- Skeletons use the translucent neutral chip fill, so they keep one contrast on
|
|
91
|
+
every surface, including a `--muted` sidebar where they used to disappear.
|
|
92
|
+
- `StackedLayout`, `TopbarSidebarLayout` and `AppLayout` with no variant follow
|
|
93
|
+
the active theme; `headerTheme`/`light-header`/`dark-header` still scope the
|
|
94
|
+
header. Header controls (sidebar trigger, search, tools, notifications, a
|
|
95
|
+
one-line user trigger) share the 32px action height.
|
|
96
|
+
- The dual navigation cluster docks its contextual panel from 768px beside a
|
|
97
|
+
primary rail and opens it as a drawer below that; `mobileSidebarMode="inline"`
|
|
98
|
+
keeps the previous docked cluster.
|
|
99
|
+
- `GlobalSearch` input is a combobox with `aria-activedescendant`; results are
|
|
100
|
+
options reached with the arrow keys rather than Tab.
|
|
101
|
+
- Filter editors focus their primary input when opened and share one editor
|
|
102
|
+
header; selection captions read "2 status selected" in running text.
|
|
103
|
+
- Additive: `CardShell surface`, `FormSection titleSize`, CoordinatesInput
|
|
104
|
+
latitude/longitude accessible-label strings, MetricComparison `pointsUnit`,
|
|
105
|
+
UsageCard average-unavailable string, AI tool-call `elapsedLabel`, AI summary
|
|
106
|
+
`confidenceLabel`, ActivityRow `reserveDisclosure`/`reserveMenu`,
|
|
107
|
+
MediaLibraryToolbar `summary`/`disabled`, `useMediaLibrary().retry` and
|
|
108
|
+
`strings.retry`.
|
|
109
|
+
- Alert places its action beside the copy only when the alert itself is wide
|
|
110
|
+
enough (container query), otherwise below it. PageHeader wraps its commands
|
|
111
|
+
below the copy before the copy column gets cramped.
|
|
112
|
+
|
|
113
|
+
- `--height-action` and `--height-control` default to 2rem (32px) instead of
|
|
114
|
+
2.25rem. Their size steps are eighths of the root (¾, ⅞, 9⁄8), so the scale is
|
|
115
|
+
24/28/32/36px in whole pixels; it was 28/32/36/40px in ninths. Set the roots
|
|
116
|
+
back to 2.25rem to restore the previous heights (steps become 27/31.5/36/40.5px).
|
|
117
|
+
- Corner roles: `rounded-radius` (`--radius`, 12px by default) is now the
|
|
118
|
+
default corner for buttons, inputs, select and facet triggers, badges,
|
|
119
|
+
collection and navigation rows and nested bodies. The new `rounded-surface`
|
|
120
|
+
(4/3 × `--radius`, 16px) is the larger corner of cards, popups, dialogs,
|
|
121
|
+
command shells and other outer surfaces. `rounded-inner` and its bounded
|
|
122
|
+
formula are removed. Migration: replace an app's `rounded-radius` on outer
|
|
123
|
+
shells with `rounded-surface`, and `rounded-inner` with `rounded-radius`.
|
|
124
|
+
- `Alert` and the `Toaster` toast take Item's row geometry: the row insets
|
|
125
|
+
(`px-row-x`, `py-row-y`, 12px and 8px by default) and Item's 12px
|
|
126
|
+
media/actions gap, instead of the 24px card surface inset. A two-line notice
|
|
127
|
+
is about 60px tall instead of 94px. Overlay tone notices, which are Alerts,
|
|
128
|
+
follow the same row roles.
|
|
129
|
+
- `PopoverTitle` and `PopoverDescription` no longer wrap plain text in the
|
|
130
|
+
popover's inherited line box, and `Cascader` keeps "Select current" beside
|
|
131
|
+
its title and path instead of inside the title row. A drilled level's title
|
|
132
|
+
and parent path now sit 4px apart instead of 11px.
|
|
133
|
+
- Menu surfaces (popover menus and their header and footer bands, dropdown
|
|
134
|
+
menus, Select and Combobox lists, Command and its search row, global search,
|
|
135
|
+
mentions and the cascader) inset by md (8px) on both axes instead of xs
|
|
136
|
+
(4px) inline, so rows and the search field sit further from the edge, and
|
|
137
|
+
header and footer copy sit one small xs step (4px) inside that edge instead
|
|
138
|
+
of adding the full row inset (shared `popoverRecipes.menuCopyInset`).
|
|
139
|
+
- Filters support nested options. `FilterOption.children` was declared but
|
|
140
|
+
ignored; `SELECT` and `MULTI_SELECT` editors now show nested options one level
|
|
141
|
+
at a time through the Cascader's panel (path search, Back, multi-select across
|
|
142
|
+
levels, `closeOnSelect`), and `SelectFacet` uses the `Cascader` field. A chosen
|
|
143
|
+
nested option reads as its path ("Europe / Greece / Athens") in chips and
|
|
144
|
+
facets. `FilterConfig.selectableOptions: 'any'` lets a branch be chosen, and
|
|
145
|
+
the filter strings add `previousLevel` and `selectCurrentLevel`. The panel is
|
|
146
|
+
a private part shared by `Cascader` and filters; `Cascader` behaviour is
|
|
147
|
+
unchanged.
|
|
148
|
+
- `Cascader` moves between levels with motion: a drilled level or a new column
|
|
149
|
+
enters from the side it was reached from (shared `motionRecipes.level`,
|
|
150
|
+
`@starting-style`, reduced-motion aware). Opening and searching do not
|
|
151
|
+
animate the list.
|
|
152
|
+
- `LayoutSidebarProvider` (and so `AppSidebar`) defaults to
|
|
153
|
+
`menuDensity="default"`: 28px primary rows and 24px nested rows on a 4px gap
|
|
154
|
+
(with the 2rem action height below), instead of comfortable 36px and 32px
|
|
155
|
+
rows. Pass `menuDensity="comfortable"` for 32px rows. Sidebar navigation
|
|
156
|
+
labels are medium weight throughout; the current entry is marked by its fill.
|
|
157
|
+
An unscoped base `SidebarMenuButton` falls back to the default density like
|
|
158
|
+
the rest of the menu, and a collapsed icon-rail row is the square of its own
|
|
159
|
+
height.
|
|
160
|
+
- Remove the leftover `active:translate-y-0!` press overrides from Collapsible
|
|
161
|
+
and Tooltip triggers, dialog and sheet close buttons, popover buttons and the
|
|
162
|
+
sidebar trigger. Nothing translates on press any more, and the overrides made
|
|
163
|
+
triggers centred with a translate, such as the sidebar disclosure chevron,
|
|
164
|
+
jump down while pressed.
|
|
165
|
+
- Add a fourth consumer skill, `themelia-design`, for the designer's part of a
|
|
166
|
+
view: a data brief read from real records, a view spec with ranked
|
|
167
|
+
information, wireframes and encodings, and a scored critique rubric with a
|
|
168
|
+
browser census for rendered screens. A `themelia-ui-designer` agent
|
|
169
|
+
definition applies it to whole views (design mode builds, renders and fixes;
|
|
170
|
+
review mode critiques read-only). `setup-skills.mjs --agents <directory>`
|
|
171
|
+
copies the agent without overwriting an existing file, and `--check`
|
|
172
|
+
compares it. The project-instructions block lists the new skill.
|
|
173
|
+
- `ResourceCell` draws its media circle only when `imageUrl`, `icon` or
|
|
174
|
+
`fallback` is passed, and no longer falls back to a decorative mail glyph, so
|
|
175
|
+
order and invoice identifiers read as plain text. To keep a monogram for a
|
|
176
|
+
person or organization, pass `fallback={<Initials value={name} />}` (on every
|
|
177
|
+
row of a column where only some rows have a photo). An explicit `fallback`
|
|
178
|
+
still wins over `icon`, and `icon` now wins over title initials.
|
|
179
|
+
- `InvoiceLineItems` states quantity and unit price once per narrow row instead
|
|
180
|
+
of repeating column labels, aligns header and rows on one subgrid with
|
|
181
|
+
content-sized numeric tracks, top-aligns custom cells, scrolls custom columns
|
|
182
|
+
horizontally (or drops columns marked `wideOnly` below its `@lg` width), and
|
|
183
|
+
adds `surface="flat"` for use inside a Card. Header and
|
|
184
|
+
rows now sit in `.invoice-line-items--body`, which carries the grid template
|
|
185
|
+
that each row used to repeat. The family
|
|
186
|
+
index now exports `InvoiceColumn`, `InvoiceLineItemsFooterRow`,
|
|
187
|
+
`InvoiceLineItemsStrings` and `defaultInvoiceLineItemsStrings`.
|
|
188
|
+
- Commerce owners that hard-coded their frame accept `surface`/`padding`:
|
|
189
|
+
`FulfillmentGroup` (framed by default) and `InvoiceHeader`,
|
|
190
|
+
`DiscountStackPreview`, `TaxBreakdownCard`, `RefundStatusCard`,
|
|
191
|
+
`CartSummaryCard`, `ShipmentTracking` and `InventorySectionCard` (unframed by
|
|
192
|
+
default). Defaults are unchanged.
|
|
193
|
+
- Add `maxVisibleSecondaryActions` to page, record, settings, workspace and
|
|
194
|
+
resource headers (default 2), `visibleFields` and `children` to
|
|
195
|
+
`ProductVariantEditor`, and `showGroupBy` to `ProductVariantsManager`
|
|
196
|
+
(default true).
|
|
197
|
+
- Consumer gaps from the round-2 rebuilds: `InvoiceStatus` adds `draft` and
|
|
198
|
+
`disputed`; `InvoiceHeader.status` is optional and parties take `details`;
|
|
199
|
+
`OrderCustomer` adds `shippingMethod` and `showShippingAddress`;
|
|
200
|
+
`FulfillmentGroup` adds `count`; `MetricComparison` honours `current.trend`;
|
|
201
|
+
`ChartTooltipContent` adds `valueFormatter`; `ProductVariantEditor` adds
|
|
202
|
+
`errors`, `formId` and `showHeader`; `ResourceCell` adds `mediaShape` and a
|
|
203
|
+
full-title hover; `MediaResourceGallery` grid shows whole images and omits a
|
|
204
|
+
missing file size; an explicit DataTable column `size` sets its width without
|
|
205
|
+
resizing; `base/toaster` re-exports `toast`; `blocks/commerce` exports its
|
|
206
|
+
status tone maps and invoice strings. `ProductOptionsMatrix` focuses a value
|
|
207
|
+
added in its option editor so it can be typed at once.
|
|
208
|
+
- Discovery resolves near-miss import paths with `importResolution`, the mapper
|
|
209
|
+
knows 139 roles across commerce, products, media, charts and analytics and
|
|
210
|
+
suggests nearby roles for unmatched phrases, and the inspector reads several
|
|
211
|
+
props at once and points hooks to their declaration. A new order and invoice
|
|
212
|
+
composition reference ships with executable recipes.
|
|
213
|
+
|
|
3
214
|
## 2.0.4 — 2026-10-28
|
|
4
215
|
|
|
5
216
|
Shared composition roles, stronger consumer guidance and executable component
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# From admin-ui-starter-kit 3.x
|
|
2
|
+
|
|
3
|
+
`themelia-react-ui` is the Base UI and Tailwind port of the Themelia package
|
|
4
|
+
`admin-ui-starter-kit`. The package names have independent version histories.
|
|
5
|
+
The `themelia-react-ui` 2.x line is the migration destination for
|
|
6
|
+
`admin-ui-starter-kit` 3.x applications.
|
|
7
|
+
|
|
8
|
+
## Imports and installation
|
|
9
|
+
|
|
10
|
+
1. Use the [consumer setup](README.md#consumer-setup) to install the new package
|
|
11
|
+
and its required peers. React and React DOM use 19.x, Lucide uses 1.x, and
|
|
12
|
+
`@base-ui/react` is required. The old `cmdk`, Tailwind, Tailwind Vite plugin,
|
|
13
|
+
`tw-animate-css` and Inter font peers can be removed if the application has
|
|
14
|
+
no independent use for them. Keep the optional peers used by your families.
|
|
15
|
+
2. Replace `admin-ui-starter-kit/<family>` with `themelia-react-ui/<family>`.
|
|
16
|
+
For `composed/admin`, `ai`, `analytics`, `commerce`, `data-display`,
|
|
17
|
+
`onboarding` and `timelines`, use `themelia-react-ui/blocks/<family>`.
|
|
18
|
+
For example, `admin-ui-starter-kit/composed/commerce` becomes
|
|
19
|
+
`themelia-react-ui/blocks/commerce`. Move CommonJS `require()` consumers to
|
|
20
|
+
ESM imports or asynchronous `import()`.
|
|
21
|
+
3. Import `themelia-react-ui/style.css` once. Add
|
|
22
|
+
`themelia-react-ui/features/map/style.css` when using the map family.
|
|
23
|
+
The [theme guide](docs/consumer-skill/references/theming.md) covers the
|
|
24
|
+
optional green brand, structural roots and scoped portals.
|
|
25
|
+
|
|
26
|
+
### Host CSS
|
|
27
|
+
|
|
28
|
+
The compiled stylesheet leaves global preflight and the page canvas to the app.
|
|
29
|
+
If the previous stylesheet supplied these values, put them in your app's lower
|
|
30
|
+
priority base layer. Keep an app-owned reset for native margins, lists and form
|
|
31
|
+
controls where you used Tailwind preflight.
|
|
32
|
+
|
|
33
|
+
```css
|
|
34
|
+
@layer base {
|
|
35
|
+
* {
|
|
36
|
+
border-color: var(--border);
|
|
37
|
+
outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
|
|
38
|
+
}
|
|
39
|
+
html { font-family: var(--font-sans); }
|
|
40
|
+
body { background-color: var(--background); color: var(--foreground); }
|
|
41
|
+
code, kbd, samp, pre { font-family: var(--font-mono); }
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For app-generated Tailwind utilities, follow the [Tailwind setup](docs/consumer-skill/references/installation.md).
|
|
46
|
+
The editable `theme.css` entry is processed by the application's Tailwind v4
|
|
47
|
+
build. The compiled `style.css` already includes package utilities.
|
|
48
|
+
|
|
49
|
+
### Tools
|
|
50
|
+
|
|
51
|
+
| Former bin | Workflow in this package |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `admin-ui-starter-kit-audit` | Run `node node_modules/themelia-react-ui/docs/consumer-skill/scripts/check-composition.mjs src`. Pass explicit file or directory paths. Its output is JSON. Replace the old `--fix` and `--strict` automation with your own review or CI step. |
|
|
54
|
+
| `admin-ui-starter-kit-install-skill` | Use the shipped `setup-skills.mjs --copy` or `--check` commands in the [installed setup guide](docs/consumer-skill/references/installation.md). |
|
|
55
|
+
| `admin-ui-starter-kit-publish-theme` | Import the published theme CSS or export a custom theme from Theme Studio and apply it in the app. |
|
|
56
|
+
| `admin-ui-starter-kit-showcase` | Use the component catalogue or render the shipped examples in your application. |
|
|
57
|
+
|
|
58
|
+
## Defaults to review
|
|
59
|
+
|
|
60
|
+
| Owner | Earlier default | Current default or migration |
|
|
61
|
+
| --- | --- | --- |
|
|
62
|
+
| Untoned Button | Primary solid | Secondary outline. Set provider button defaults or make the primary command explicit. |
|
|
63
|
+
| Badge | Primary | Neutral. Set an explicit status tone where relevant. |
|
|
64
|
+
| Card and SmartCard | Framed, footer divider off | Card surface, header divider off, footer divider on. Explicit props win over provider booleans. |
|
|
65
|
+
| PageHeader | `h3` | `h1` for route titles. Use `headingTag="h3"` when the page already owns its heading, or supply a custom title element. |
|
|
66
|
+
| PageHeading | Separator on | Pass `withSeparator` to restore it. |
|
|
67
|
+
| ConfirmDialog | Start-aligned with an icon | Centered. Set `overlay.defaultConfirmAlign: 'start'` and pass `showIcon` on dialogs that need the icon. |
|
|
68
|
+
| DateCell and DateMetaCell | Icon on | Pass `showIcon` for the date glyph. |
|
|
69
|
+
| LoyaltyPoints | Warning tier | Neutral. Set `tierTone="warning"` where it conveys meaning. |
|
|
70
|
+
| Command | Default inset | Compact. Pass `inset="default"` for the wider inset. |
|
|
71
|
+
| Page | Large measure, no inset | Owns page gutters and block inset. Use explicit `maxWidth="lg"`, `gutter="none"` and `padding="none"` inside a shell that supplies them. |
|
|
72
|
+
| DataTable | Inline selection bar | Floating selection bar. Use `selectionToolbarPlacement="inline"` for inline placement. |
|
|
73
|
+
| MediaLibrary | Activation selects | Activation opens details. Use `defaultSelecting` to start in selection mode. |
|
|
74
|
+
| Metric money and signed values | Prefix currency code and ASCII hyphen | Default output can place the currency code after the amount and use the Unicode minus. Review text matching in tests. |
|
|
75
|
+
| Date range presets | Title case | Sentence case, such as “This week” and “Last 30 days”. |
|
|
76
|
+
|
|
77
|
+
To keep the earlier button, badge and card choices while moving the
|
|
78
|
+
imports, supply the old defaults explicitly.
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
import { UIProvider } from 'themelia-react-ui/ui-provider';
|
|
82
|
+
|
|
83
|
+
<UIProvider config={{
|
|
84
|
+
button: { defaultTone: 'primary', defaultButtonStyle: 'solid' },
|
|
85
|
+
badge: { defaultTone: 'primary' },
|
|
86
|
+
card: { defaultSurface: 'framed', defaultHeaderDivider: false, defaultFooterDivider: false },
|
|
87
|
+
overlay: { defaultConfirmAlign: 'start' },
|
|
88
|
+
}}>
|
|
89
|
+
<App />
|
|
90
|
+
</UIProvider>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Behavior, selectors and deprecated entry points
|
|
94
|
+
|
|
95
|
+
- Check the query policy of async filters. Options are cached within a mounted
|
|
96
|
+
editor and refetch after a remount. Chip labels stay within their filter
|
|
97
|
+
provider. Reuse stable fetcher and mapper references. If the app needs caching
|
|
98
|
+
across editor mounts, keep it inside an app-owned fetcher keyed by the complete
|
|
99
|
+
query and authorization scope.
|
|
100
|
+
- For selectors targeting legacy ContentBlock element hooks, move styling and
|
|
101
|
+
queries to the owning Card regions, slots and accessible names. The
|
|
102
|
+
ContentBlock adapter keeps its root, header, content and footer hooks.
|
|
103
|
+
DataTable still exposes the selection-toolbar root class, and
|
|
104
|
+
`batch-action-bar--summary` and `batch-action-bar--actions` identify the new
|
|
105
|
+
bar regions. Query the actual status or action for ShipmentTracking and
|
|
106
|
+
product option rows whose decorative dot and drag hooks were removed.
|
|
107
|
+
Tree owns AiFileTree rows through `tree--item` and `tree--group`.
|
|
108
|
+
- For new code, use Card in place of SmartCard and ContentBlock,
|
|
109
|
+
`ActionDrawer` from `features/overlays` in place of base Sheet,
|
|
110
|
+
`Page` from `layout/page` in place of the resource shell, and
|
|
111
|
+
`SchemaForm` from `features/schema-form` for the sync form. Pass standalone
|
|
112
|
+
product-card content to `ProductOverview` through its typed region props.
|
|
113
|
+
- Check Command compositions that used inherited cmdk props. Base UI owns
|
|
114
|
+
Command's keyboard and filtering behavior. Supply an explicit `filter`
|
|
115
|
+
for application-specific ranking and use the current public parts when
|
|
116
|
+
composing empty and group content.
|
|
117
|
+
|
|
118
|
+
The [changelog](CHANGELOG.md) and [consumer composition guide](docs/consumer-skill/references/composition.md)
|
|
119
|
+
describe the current roles and the version-specific changes.
|
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.6`** · 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).
|
|
@@ -41,6 +49,8 @@ Browser verification requires Playwright Chromium. An existing executable can be
|
|
|
41
49
|
|
|
42
50
|
## Consumer setup
|
|
43
51
|
|
|
52
|
+
Moving an existing Themelia app from `admin-ui-starter-kit`? See the [3.x migration guide](MIGRATION.md).
|
|
53
|
+
|
|
44
54
|
Install a built tarball; use a registry release when available. React 19, React DOM 19, the declared Base UI peer and Lucide React 1 are required peers. Import exact family paths; there is no aggregate component barrel or public raw UI entrypoint.
|
|
45
55
|
|
|
46
56
|
Nested light/dark utilities use custom-property container style queries. Use
|
|
@@ -48,14 +58,14 @@ Chromium 111+, Safari 18.1+ or Firefox 151+ for this theme behavior. The nearest
|
|
|
48
58
|
mode class governs nested components and their scoped portals; see the
|
|
49
59
|
[theme guide](docs/consumer-skill/references/theming.md) for partial overrides.
|
|
50
60
|
|
|
51
|
-
Version 2.0.
|
|
61
|
+
Version 2.0.6 uses official `@base-ui/react ^1.9.0` from npm. Themelia's
|
|
52
62
|
`ComboboxRoot.dismissLabel` and feature `strings.dismiss` name both screen-reader
|
|
53
63
|
dismissal controls. Shared popup owners preserve focus restored to a child
|
|
54
64
|
trigger during deferred parent recovery. These behaviors are library-owned;
|
|
55
65
|
consumers install the unmodified official Base UI package.
|
|
56
66
|
|
|
57
67
|
```sh
|
|
58
|
-
npm install ./themelia-react-ui-2.0.
|
|
68
|
+
npm install ./themelia-react-ui-2.0.6.tgz '@base-ui/react@^1.9.0' lucide-react
|
|
59
69
|
```
|
|
60
70
|
|
|
61
71
|
For a registry release, install into a React 19 application with:
|
|
@@ -93,22 +103,32 @@ export function Example() {
|
|
|
93
103
|
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
104
|
|
|
95
105
|
Compiled `style.css` requires no source scanning and includes no global preflight.
|
|
106
|
+
It includes static utility classes used by documented catalogue examples and
|
|
107
|
+
shipped recipes/templates. Arbitrary app classes still need app CSS or Tailwind.
|
|
96
108
|
Components own their essential font and box model; the host may supply a reset
|
|
97
109
|
for its own markup. Keep resets in a lower-priority CSS layer and load deliberate
|
|
98
|
-
app overrides after library CSS.
|
|
110
|
+
app overrides after library CSS. The application owns the page canvas and inherited
|
|
111
|
+
copy: set the document font to `var(--font-sans)` and the body background/color to
|
|
112
|
+
`var(--background)` / `var(--foreground)`. See the [host CSS setup](docs/consumer-skill/references/installation.md#set-the-application-canvas).
|
|
113
|
+
A Tailwind v4 application can additionally
|
|
99
114
|
import `theme.css` after Tailwind to generate app-owned utilities from the same
|
|
100
115
|
mappings; this editable file contains Tailwind directives and needs processing.
|
|
101
116
|
|
|
102
|
-
The package ships
|
|
117
|
+
The package ships four focused agent capabilities:
|
|
103
118
|
[components](docs/consumer-skills/themelia-components/SKILL.md) for installed setup,
|
|
104
119
|
search and typed component/form integration;
|
|
105
|
-
[tokenization](docs/consumer-skills/themelia-tokenization/SKILL.md) for
|
|
106
|
-
|
|
120
|
+
[tokenization](docs/consumer-skills/themelia-tokenization/SKILL.md) for domain
|
|
121
|
+
structures combining public parts with semantic JSX and token-backed Tailwind,
|
|
122
|
+
plus shared themes, typography and geometry;
|
|
107
123
|
[composition](docs/consumer-skills/themelia-composition/SKILL.md) for business
|
|
108
|
-
hierarchy, responsive screens and visual repair
|
|
124
|
+
hierarchy, responsive screens and visual repair; and
|
|
125
|
+
[design](docs/consumer-skills/themelia-design/SKILL.md) for reading records into
|
|
126
|
+
view specs and scoring rendered views against a critique rubric. A
|
|
127
|
+
[designer agent](docs/consumer-skill/agents/themelia-ui-designer.md) applies the
|
|
128
|
+
design skill to whole views. Their shared assets and
|
|
109
129
|
the compatible original entrypoint remain in `docs/consumer-skill`. The previous
|
|
110
130
|
foundation/forms paths remain package compatibility routes; fresh skill copying
|
|
111
|
-
installs the
|
|
131
|
+
installs the four canonical capabilities. Follow the
|
|
112
132
|
[installed setup and copying guide](docs/consumer-skill/references/installation.md)
|
|
113
133
|
to preserve all references; npm installation does not modify global agent skills.
|
|
114
134
|
|
|
@@ -163,7 +183,8 @@ defines application freedom and library-owned anatomy; the
|
|
|
163
183
|
and verification gate. Shipped consumer examples receive the same design lint as
|
|
164
184
|
library compositions. Those repository checks do not run automatically in apps.
|
|
165
185
|
Popover display/menu anatomy and default/compact insets are separate from collection
|
|
166
|
-
row density and control size.
|
|
186
|
+
row density and control size. Rich display surfaces keep 24px default insets;
|
|
187
|
+
compact menu/list shells use 4px around their already-padded rows. Flush delegates padding to owned regions. Command
|
|
167
188
|
search composes the public Input; features inherit these base recipes rather than
|
|
168
189
|
rebuilding menu chrome or passing local padding overrides.
|
|
169
190
|
|
|
@@ -227,7 +248,7 @@ Consumer callbacks own feature data and backend effects. The examples demonstrat
|
|
|
227
248
|
|
|
228
249
|
### Blocks import migration
|
|
229
250
|
|
|
230
|
-
The presentation layer is now named `blocks`. Replace `
|
|
251
|
+
The presentation layer is now named `blocks`. Replace `admin-ui-starter-kit/composed/<family>` with `themelia-react-ui/blocks/<family>` for admin, AI, analytics, commerce, data-display, onboarding, and timelines. The source folder and catalogue routes follow the same rename.
|
|
231
252
|
|
|
232
253
|
The default development URL opens the full component catalogue. The focused foundation playground remains at `/?page=foundations`, and the products workspace remains at `/?page=products`.
|
|
233
254
|
|
|
@@ -240,9 +261,10 @@ Use `titleSuffix` for card status, count and version badges. `headerStart` is fu
|
|
|
240
261
|
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.
|
|
241
262
|
|
|
242
263
|
Header commands are role-based: one `primaryAction` and ordered
|
|
243
|
-
`secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow
|
|
244
|
-
destructive commands
|
|
245
|
-
|
|
264
|
+
`secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow
|
|
265
|
+
and destructive commands moved into the More actions menu that ends the row.
|
|
266
|
+
Below 40rem of actual header width, one More actions trigger contains all commands,
|
|
267
|
+
including primary. Page, PageHeader, PageHeading, the resource shells,
|
|
246
268
|
WorkspaceRecordHeader and SettingsShell share that row; keep `actions` for
|
|
247
269
|
non-command controls. Use `header.tabs` for separately selected or routed record
|
|
248
270
|
sections, with counts when useful. Continuous detail documents keep their
|
|
@@ -256,7 +278,18 @@ scale. The menu comes after any primary command in its row, and destructive
|
|
|
256
278
|
entries stay last.
|
|
257
279
|
Page owns inline and block padding, defaulting to the large surface role;
|
|
258
280
|
PageViewport owns scrolling and supplies no inset. Use `Page narrow` for a
|
|
259
|
-
centered single resource
|
|
281
|
+
centered single resource. An `aside` selects the `xl` (80rem) measure unless
|
|
282
|
+
`narrow` or an explicit `maxWidth` wins. Page owns `toolbar`, body lifecycle
|
|
283
|
+
states (`loading`, `error`, `empty`, `onRetry`) and the route header.
|
|
284
|
+
Its four header content slots are `beforeTitle`, `titleSuffix`, `afterDescription`
|
|
285
|
+
and `actions`: pass React content or a callback receiving `{ renderLink, defaultContent }`.
|
|
286
|
+
Compose Badge or MetadataList in those slots; the header adds no avatar or automatic
|
|
287
|
+
metadata shape. `slots.actions` can wrap or return its default responsive command
|
|
288
|
+
row through `defaultContent`; replacing it makes command behavior caller-owned.
|
|
289
|
+
Legacy `slots.back`, `titleBadges`, `titleIcon` and direct `actions` remain supported.
|
|
290
|
+
ResourceHeader, ResourceIndexShell, ResourceShowShell and TabbedResourceShell
|
|
291
|
+
are deprecated; replace them with Page rather than nesting route owners. Their
|
|
292
|
+
existing embedded geometry remains supported. Page headers use dense copy
|
|
260
293
|
gaps. Ordinary cards default to `surface="card"` and `md` padding (24px), with
|
|
261
294
|
an unruled header and a ruled footer. Explicit divider props override provider
|
|
262
295
|
defaults. Use `surface="framed"` for grouped emphasis and `surface="flat"`
|
|
@@ -264,10 +297,73 @@ inside an existing boundary. Card padding supports `none`, `sm` (12px), `md`
|
|
|
264
297
|
(24px) and `lg` (32px); its default regional gap follows the same surface tier
|
|
265
298
|
(`none` retains the 24px gap). The general surface scale also includes 16px. All
|
|
266
299
|
are scaled once by `--space-scale`; control heights and corners remain separate.
|
|
300
|
+
|
|
301
|
+
AppLayout keeps its five variant choices. The shared header-height root now
|
|
302
|
+
defaults to `4rem`. Header-first
|
|
303
|
+
`light-header`/`dark-header` layouts can opt into `contentSurface="inset"`: a
|
|
304
|
+
quiet secondary canvas around the card-colored main surface. Sidebar-first
|
|
305
|
+
`sidebar`/`inset` presets keep their existing flush/inset behavior. Shells own
|
|
306
|
+
one PageViewport; Page supplies the page padding, and header partials occupy the
|
|
307
|
+
shell's single header owner.
|
|
308
|
+
|
|
309
|
+
The catalogue leads with three structures: a global Header shell, the shared
|
|
310
|
+
App sidebar shell and a shadcn-style Inset shell. Single/dual navigation,
|
|
311
|
+
attached/floating framing and collapse behavior configure these structures.
|
|
312
|
+
They reuse the five presets. Full-size previews use
|
|
313
|
+
`?page=shells&layout=header`, `sidebar` or `inset`, optionally with `&theme=dark`.
|
|
314
|
+
The focused `grouped`, `dual`, `dual-inset`, `floating` and `stacked` views remain
|
|
315
|
+
available for comparison.
|
|
316
|
+
|
|
317
|
+
The featured layouts use grouped left navigation or a static left area rail
|
|
318
|
+
beside a full navigation panel. Collapse is a caller choice on
|
|
319
|
+
`AppSidebar`/`LayoutSidebar`, independent of the shell or sidebar skin:
|
|
320
|
+
`collapsible="icon"` minimizes the full panel to icons, `"offcanvas"` hides it,
|
|
321
|
+
and `"none"` keeps it expanded. Current examples default to `icon` and expose
|
|
322
|
+
a preview selector for these modes. In a dual layout the primary area rail
|
|
323
|
+
remains static: icon mode leaves a second compact column, while offcanvas
|
|
324
|
+
leaves only the original rail. One explicit trigger controls the contextual
|
|
325
|
+
panel; selecting an area opens it. Keep the primary rail's `collapsible="none"`
|
|
326
|
+
policy independent of the adjacent panel's policy.
|
|
327
|
+
At narrow widths the inline cluster pans a minimum page canvas while its area
|
|
328
|
+
rail stays pinned; resizing does not silently minimize navigation.
|
|
329
|
+
Both header-first and sidebar-first shells expose `mobileSidebarMode`; choose
|
|
330
|
+
`inline` for this persistent cluster, or retain the default drawer policy.
|
|
331
|
+
Sidebar shells accept
|
|
332
|
+
`slots.sidebar` (primary) and `slots.secondarySidebar` (contextual), with named
|
|
333
|
+
state inherited under one LayoutSidebarProvider. `openPanels` controls expansion and
|
|
334
|
+
`mobilePanel` selects one shared undocked drawer while preserving desktop state.
|
|
335
|
+
`navigationPanel` selects the untargeted trigger/shortcut destination. Existing
|
|
336
|
+
primary `open`/`onOpenChange` remain supported; controlled `openPanels` takes
|
|
337
|
+
precedence. Independent width props and `sidebarPresentation="rail"` use existing
|
|
338
|
+
shell geometry, with no new public theme roots. SidebarNavigationRail supplies
|
|
339
|
+
area navigation on its own background surface with one divider. Its dedicated
|
|
340
|
+
width is 52px at the default roots (a 36px action plus 8px on each side); the
|
|
341
|
+
existing full-sidebar icon-collapse width remains 60px. These are derived
|
|
342
|
+
recipes, not new public settings. SidebarRail remains the collapse affordance.
|
|
343
|
+
|
|
267
344
|
AppSidebar offers pinned `slots.headerStart`/`headerEnd` around its workspace
|
|
268
|
-
region,
|
|
345
|
+
region, grouped navigation and a separated footer. The four `header`,
|
|
346
|
+
`beforeNavigation`, `afterNavigation` and `footer` slots accept content or a
|
|
347
|
+
callback with named state, renderLink and defaultContent. A header node preserves
|
|
348
|
+
its legacy full replacement behavior; callback header content and either footer
|
|
349
|
+
form retain library-owned insets. Before/after navigation content scrolls.
|
|
350
|
+
Ordered `{ id, label?, items }` groups supplement the existing Record form, and
|
|
351
|
+
`renderItemContent` customizes label content inside the accessible row. Use
|
|
352
|
+
`currentUrl` for most-specific destination matching; render contexts distinguish
|
|
353
|
+
the current item from its `ancestor`. In icon mode, searchable sidebars retain
|
|
354
|
+
their search band as an icon that expands and focuses the field. Compact rows
|
|
355
|
+
keep a small gap; default and comfortable density share a roomier row gap,
|
|
356
|
+
with separate caption and group spacing. SidebarNavigationRail also exposes
|
|
357
|
+
`header`, `beforeNavigation`, `afterNavigation` and `footer` slots: header/footer
|
|
358
|
+
stay pinned and before/after content scrolls with navigation. Use
|
|
359
|
+
`surface="transparent"` for navigation that shares a docked shell canvas;
|
|
360
|
+
drawers remain opaque. `adaptTo="container"` keeps an embedded drawer and its
|
|
361
|
+
backdrop inside the provider for compositions that use drawers. Omit a contextual
|
|
362
|
+
group label when its header already supplies that same label. KPI peers use MetricGrid. The
|
|
269
363
|
[complete shell recipe](docs/consumer-skill/examples/app-layout.tsx) demonstrates
|
|
270
|
-
|
|
364
|
+
single- and multiple-region composition with public workspace/account controls
|
|
365
|
+
and hosts route children directly. Its `contextualCollapsible` option defaults
|
|
366
|
+
to `icon`; a supplied `secondarySidebar` can choose its own collapse mode. Its separate
|
|
271
367
|
`WorkspaceExamplePage` owns the illustrative title, Create callback and narrow
|
|
272
368
|
measure; a real route such as `AccountDetailPage` replaces that example.
|
|
273
369
|
|
|
@@ -276,7 +372,13 @@ surfaces win. Leave Card's `icon` slot for a glyph that carries state or a
|
|
|
276
372
|
brand; titles name the subject. `headerPlacement` chooses inside/frame
|
|
277
373
|
composition independently. Independent framed peers use `gap="2xl"`, matching
|
|
278
374
|
Page and TwoColumnLayout's rhythm, since outer rings consume a smaller DOM gap.
|
|
279
|
-
|
|
375
|
+
Card body children use the related (`xl`, 16px) gap by default; explicit
|
|
376
|
+
`contentGap` remains authoritative. SettingsShell spaces direct sections by the
|
|
377
|
+
subjects (`2xl`, 24px) role. MetadataList (`themelia-react-ui/base/metadata-list`)
|
|
378
|
+
keeps semibold labels and normal primary values in both densities. It now adapts
|
|
379
|
+
to its own container by default, with 22/28/38/52/64rem thresholds; pass
|
|
380
|
+
`adaptTo="viewport"` to retain viewport breakpoints. DataTable owns its surface
|
|
381
|
+
and topbar insets; place compact FilterLayout in `topbarContent`, or use DataView.
|
|
280
382
|
Dashboard KPIs use Metric/MetricGrid/MetricBar; quotas use the focused UsageCard
|
|
281
383
|
owner. See [analytics selection](docs/consumer-skill/references/analytics.md) and
|
|
282
384
|
the [resource page recipe](docs/consumer-skill/examples/detail.tsx).
|
|
@@ -293,7 +395,7 @@ and ordinary Card subjects without app chrome. The packaged
|
|
|
293
395
|
offers and real navigation links using the same theme and inset owners.
|
|
294
396
|
|
|
295
397
|
|
|
296
|
-
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-
|
|
398
|
+
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.
|
|
297
399
|
|
|
298
400
|
|
|
299
401
|
## Agent skill and consumer references
|
|
@@ -342,7 +444,7 @@ visual review remain separate.
|
|
|
342
444
|
|
|
343
445
|
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.
|
|
344
446
|
|
|
345
|
-
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.
|
|
447
|
+
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.6/` 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.
|
|
346
448
|
|
|
347
449
|
`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.
|
|
348
450
|
|