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
|
@@ -5,7 +5,7 @@ import { ControlledFormField, ErrorSummary } from 'themelia-react-ui/base/forms'
|
|
|
5
5
|
import { Input } from 'themelia-react-ui/base/text-inputs';
|
|
6
6
|
import { Select, ToggleField } from 'themelia-react-ui/base/choice-inputs';
|
|
7
7
|
import { Stack } from 'themelia-react-ui/base/structure';
|
|
8
|
-
import { ActionDrawer, useOverlayVisibility } from 'themelia-react-ui/features/overlays';
|
|
8
|
+
import { ActionDialog, ActionDrawer, useOverlayVisibility } from 'themelia-react-ui/features/overlays';
|
|
9
9
|
|
|
10
10
|
export interface CustomerDraft { name: string; email: string; segment: string; notify: boolean; }
|
|
11
11
|
export interface CustomerDraftRecord extends CustomerDraft { id: string; }
|
|
@@ -21,7 +21,18 @@ export interface RHFOverlayFormProps {
|
|
|
21
21
|
const empty: CustomerDraft = { name: '', email: '', segment: 'standard', notify: true };
|
|
22
22
|
|
|
23
23
|
/** Mount with a record key if the selected customer changes while editing. */
|
|
24
|
-
export function RHFOverlayForm(
|
|
24
|
+
export function RHFOverlayForm(props: RHFOverlayFormProps) {
|
|
25
|
+
const { trigger, ...surfaceProps } = useCustomerOverlayForm(props);
|
|
26
|
+
return <>{trigger}<ActionDrawer {...surfaceProps} /></>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** The same form/transport contract in a dialog, with its generated actions. */
|
|
30
|
+
export function RHFDialogForm(props: RHFOverlayFormProps) {
|
|
31
|
+
const { trigger, ...surfaceProps } = useCustomerOverlayForm(props);
|
|
32
|
+
return <>{trigger}<ActionDialog {...surfaceProps} /></>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function useCustomerOverlayForm({ record, onSave, onSaved }: RHFOverlayFormProps) {
|
|
25
36
|
const id = useId();
|
|
26
37
|
const overlay = useOverlayVisibility();
|
|
27
38
|
const lock = useRef(false);
|
|
@@ -65,12 +76,15 @@ export function RHFOverlayForm({ record, onSave, onSaved }: RHFOverlayFormProps)
|
|
|
65
76
|
form.setError('root.server', { type: 'transport', message: 'Customer could not be saved. Your draft is kept; retry Save customer.' });
|
|
66
77
|
} finally { lock.current = false; }
|
|
67
78
|
});
|
|
68
|
-
return
|
|
69
|
-
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
return {
|
|
80
|
+
...overlay.overlayProps,
|
|
81
|
+
trigger: <Button onClick={open}>{record ? 'Edit customer' : 'Create customer'}</Button>,
|
|
82
|
+
title: record ? 'Edit customer' : 'Create customer',
|
|
83
|
+
description: 'Update contact details and communication preferences.',
|
|
84
|
+
formId: `${id}-form`,
|
|
85
|
+
loading: isSubmitting,
|
|
86
|
+
strings: { confirm: 'Save customer', loading: 'Saving customer…' },
|
|
87
|
+
children: <form id={`${id}-form`} onSubmit={submit} noValidate aria-busy={isSubmitting}>
|
|
74
88
|
<Stack gap="xl">
|
|
75
89
|
{summary.length > 0 && <ErrorSummary title="Customer could not be saved" errors={summary} />}
|
|
76
90
|
<ControlledFormField control={form.control} name="name" label="Customer name" required rules={{ required: 'Enter a customer name.', minLength: { value: 2, message: 'Enter at least two characters.' } }}>
|
|
@@ -86,7 +100,6 @@ export function RHFOverlayForm({ record, onSave, onSaved }: RHFOverlayFormProps)
|
|
|
86
100
|
{(field, _error, invalid) => <ToggleField label="Send account updates" name={field.name} value={field.value} controlRef={field.ref} onBlur={field.onBlur} onValueChange={value => field.onChange(value)} invalid={invalid} disabled={isSubmitting} />}
|
|
87
101
|
</ControlledFormField>
|
|
88
102
|
</Stack>
|
|
89
|
-
</form
|
|
90
|
-
|
|
91
|
-
</>;
|
|
103
|
+
</form>,
|
|
104
|
+
};
|
|
92
105
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { Card } from 'themelia-react-ui/base/cards';
|
|
3
|
+
import { Stack } from 'themelia-react-ui/base/structure';
|
|
4
|
+
import { Number as NumberValue } from 'themelia-react-ui/primitives';
|
|
5
|
+
import { Heading, Text } from 'themelia-react-ui/typography';
|
|
6
|
+
|
|
7
|
+
export interface AllocationLocation {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
lines: { id: string; title: string; selection?: string; reserved: number }[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Card-free domain content comparing reserved quantities across locations, a
|
|
15
|
+
* relationship no block represents. Goods that share one fulfillment status and
|
|
16
|
+
* location, with fulfillment commands, belong to FulfillmentGroup instead.
|
|
17
|
+
* Accepted quantities and allowed actions are app-owned.
|
|
18
|
+
*/
|
|
19
|
+
export function AllocationByLocation({ locations, unallocated, actions }: {
|
|
20
|
+
locations: AllocationLocation[];
|
|
21
|
+
unallocated: { id: string; title: string; quantity: number }[];
|
|
22
|
+
actions?: ReactNode;
|
|
23
|
+
}) {
|
|
24
|
+
return <Stack gap="2xl" className="@container/allocation min-w-0">
|
|
25
|
+
<div className="grid min-w-0 grid-cols-1 gap-space-2xl @lg/allocation:grid-cols-2">
|
|
26
|
+
{locations.map(location => <Stack key={location.id} gap="md">
|
|
27
|
+
<Heading tag="h3" size="sm">{location.name}</Heading>
|
|
28
|
+
<dl className="grid min-w-0 grid-cols-[minmax(0,1fr)_auto] gap-x-space-xl gap-y-space-md">
|
|
29
|
+
{location.lines.map(line => <div key={line.id} className="contents">
|
|
30
|
+
<dt className="min-w-0"><Stack gap="dense">
|
|
31
|
+
<Text type="inherit" className="wrap-anywhere">{line.title}</Text>
|
|
32
|
+
{line.selection && <Text size="xs" type="secondary">{line.selection}</Text>}
|
|
33
|
+
</Stack></dt>
|
|
34
|
+
<dd><Text tag="span" type="secondary"><NumberValue value={line.reserved} /> reserved</Text></dd>
|
|
35
|
+
</div>)}
|
|
36
|
+
</dl>
|
|
37
|
+
</Stack>)}
|
|
38
|
+
</div>
|
|
39
|
+
{unallocated.length > 0 && <Stack gap="md">
|
|
40
|
+
<Heading tag="h3" size="sm">Awaiting allocation</Heading>
|
|
41
|
+
{unallocated.map(line => <Text key={line.id} type="secondary">
|
|
42
|
+
<NumberValue value={line.quantity} /> × {line.title}
|
|
43
|
+
</Text>)}
|
|
44
|
+
</Stack>}
|
|
45
|
+
{actions && <Stack direction="horizontal" gap="md" justify="end">{actions}</Stack>}
|
|
46
|
+
</Stack>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** The composition boundary supplies the surface; the subject adds no inset. */
|
|
50
|
+
export function AllocationSubjectExample() {
|
|
51
|
+
return <Card title="Dispatch allocation" description="Reserved goods grouped by dispatch location.">
|
|
52
|
+
<AllocationByLocation
|
|
53
|
+
locations={[
|
|
54
|
+
{ id: 'sofia', name: 'Sofia studio', lines: [
|
|
55
|
+
{ id: 'shirt-sofia', title: 'Linen overshirt', selection: 'Navy / M', reserved: 1 },
|
|
56
|
+
{ id: 'mug-sofia', title: 'Stoneware mug', selection: 'Salt', reserved: 1 },
|
|
57
|
+
] },
|
|
58
|
+
{ id: 'plovdiv', name: 'Plovdiv dispatch', lines: [
|
|
59
|
+
{ id: 'mug-plovdiv', title: 'Stoneware mug', selection: 'Salt', reserved: 1 },
|
|
60
|
+
] },
|
|
61
|
+
]}
|
|
62
|
+
unallocated={[
|
|
63
|
+
{ id: 'mug', title: 'Stoneware mug · Salt', quantity: 1 },
|
|
64
|
+
{ id: 'bag', title: 'Canvas bag · Olive', quantity: 1 },
|
|
65
|
+
]}
|
|
66
|
+
/>
|
|
67
|
+
</Card>;
|
|
68
|
+
}
|
|
@@ -6,30 +6,32 @@ Claude Code read; in a project that has only `CLAUDE.md`, paste it there. It
|
|
|
6
6
|
points agents at this installed skill and states when UI work is done.
|
|
7
7
|
|
|
8
8
|
```md
|
|
9
|
-
<!-- themelia-react-ui:start 2.0.
|
|
9
|
+
<!-- themelia-react-ui:start 2.0.6 -->
|
|
10
10
|
## UI built with themelia-react-ui
|
|
11
|
-
Read
|
|
12
|
-
themelia-components: setup
|
|
13
|
-
themelia-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
Read node_modules/themelia-react-ui/docs/consumer-skills/<name>/SKILL.md:
|
|
12
|
+
themelia-components: setup/APIs/forms; themelia-tokenization: themes/portals;
|
|
13
|
+
themelia-composition: owners/hierarchy; themelia-design: briefs/specs/critique.
|
|
14
|
+
Verify declarations. Shared root: package docs/consumer-skill.
|
|
15
|
+
View design/review: shared agents/themelia-ui-designer.md; follow its prompt
|
|
16
|
+
or delegate if supported. Agent setup: references/installation.md.
|
|
17
|
+
Before JSX choose task, subject, scopes, frame/inset owners:
|
|
18
|
+
node_modules/themelia-react-ui/docs/consumer-skill/references/screen-decisions.md.
|
|
17
19
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/find-components.mjs <task nouns>
|
|
18
20
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/map-composition.mjs --roles
|
|
19
21
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/inspect-component.mjs <symbol> --import <exact import>
|
|
20
22
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/inspect-tokens.mjs <role or root>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
and
|
|
31
|
-
|
|
32
|
-
warnings with file:line and reason.
|
|
23
|
+
Page owns h1/gutters; route commands use header.primaryAction/secondaryActions.
|
|
24
|
+
Local forms own submits; whole-page editors may use one header submit.
|
|
25
|
+
Keep Page width stable across tabs; narrow only the focused panel.
|
|
26
|
+
Card owns footer insets/dividers: put buttons in footerSlot, not FormActionsBar.
|
|
27
|
+
Choose FormSection framing per parent; Stack/Grid own gaps, Text/Heading copy.
|
|
28
|
+
Semantic colors; neutral badges except meaningful status.
|
|
29
|
+
Dialogs: features/overlays only. Confirm destructive commands with ConfirmDialog.
|
|
30
|
+
Done: node node_modules/themelia-react-ui/docs/consumer-skill/scripts/check-composition.mjs <changed files>
|
|
31
|
+
Fix checker errors (up to three rounds); run app type/lint/tests.
|
|
32
|
+
Inspect narrow/wide light/dark and opened states; execute focus/error/callbacks.
|
|
33
|
+
Source/appearance/behavior proof separately; missing proof stays unverified.
|
|
34
|
+
Give kept warnings with file:line and reason.
|
|
33
35
|
<!-- themelia-react-ui:end -->
|
|
34
36
|
```
|
|
35
37
|
|
|
@@ -16,7 +16,7 @@ application data and never fetch or define a business metric.
|
|
|
16
16
|
| Used/limit quotas with shares, daily values and period selection | `UsageCard` from `themelia-react-ui/blocks/analytics/usage-card` | Owns a Card and ready/loading/error/empty presentation with retry/period callbacks. No optional chart peer. |
|
|
17
17
|
| One plain label/value fact | `InlineStat` from `themelia-react-ui/blocks/data-display` | Card-free; app chooses whether this subject needs a Card. |
|
|
18
18
|
| Several facts about one record | `MetadataList` from `themelia-react-ui/base/metadata-list` | Card-free; value primitives own formatting. |
|
|
19
|
-
| Caller-owned chart series | `ChartCard` from `themelia-react-ui/blocks/analytics` | Card-free chart composition;
|
|
19
|
+
| Caller-owned chart series | `ChartCard` from `themelia-react-ui/blocks/analytics` with Recharts children | Card-free chart composition; `surface="card"` frames it. It wraps the children in `ChartContainer` with your `config`. |
|
|
20
20
|
|
|
21
21
|
Start with these subject owners before constructing a Card with a number and
|
|
22
22
|
supporting text. Reuse their formatting, hierarchy and relevant states when
|
|
@@ -44,6 +44,13 @@ copy, `change.direction` describes movement, and `trend` can override whether
|
|
|
44
44
|
movement is positive, negative or neutral. A decline in churn can be positive.
|
|
45
45
|
Keep the selected period and baseline clear in application context.
|
|
46
46
|
|
|
47
|
+
Use `tone` for a bordered metric's surface or a colored metric's progress
|
|
48
|
+
indicator. MetricGrid forwards the tone to its cells. When both props are
|
|
49
|
+
present, `tone` takes precedence over the deprecated `colorScheme`. Use
|
|
50
|
+
`destructive` in place of `danger` and `neutral` for a plain bordered
|
|
51
|
+
surface. Colored metrics still default to primary progress. Set
|
|
52
|
+
`tone="neutral"` for neutral progress.
|
|
53
|
+
|
|
47
54
|
`MetricGrid` forwards one `variant`, size and state recipe to its peers. Its
|
|
48
55
|
default `gap="xl"` and Card insets remain independent from text/media `size`.
|
|
49
56
|
Narrow parents reduce track count even on a wide viewport. Use `columns` and
|
|
@@ -55,6 +62,31 @@ peer even when a selected presentation hides its sparkline. Read the finder
|
|
|
55
62
|
result's peers and installed declarations. UsageCard has a focused leaf import;
|
|
56
63
|
its quota model differs from general MetricData.
|
|
57
64
|
|
|
65
|
+
## Charts
|
|
66
|
+
|
|
67
|
+
There are no packaged `AreaChart` or `LineChart` components. Charts are Recharts
|
|
68
|
+
primitives (`AreaChart`, `BarChart`, `LineChart`, `PieChart` and their series,
|
|
69
|
+
from the optional `recharts` peer) inside `ChartCard`, or inside `ChartContainer`
|
|
70
|
+
from `themelia-react-ui/base/chart` when another owner supplies the title. Give
|
|
71
|
+
each series a `ChartConfig` entry whose color is a chart token such as
|
|
72
|
+
`var(--chart-1)` and reference it as `var(--color-<key>)` in the series, so the
|
|
73
|
+
chart follows the active theme. Use `ChartTooltip` with `ChartTooltipContent`
|
|
74
|
+
rather than a custom tooltip; its `valueFormatter` formats only the value (for
|
|
75
|
+
example as currency) and keeps the indicator and series label.
|
|
76
|
+
|
|
77
|
+
ChartCard already supplies ChartContainer; do not nest a second one. For
|
|
78
|
+
multiple series, put `ChartLegend content={<ChartLegendContent />}` inside the
|
|
79
|
+
Recharts chart, or supply accessible direct series labels. Use config keys for
|
|
80
|
+
series colors so the legend and marks agree in both themes. Footer copy can
|
|
81
|
+
state a source or qualification; prose color explanations are a fragile legend.
|
|
82
|
+
Substantial tables and disclosures belong in a body or peer region below the
|
|
83
|
+
chart, with their own appropriate surface/inset owner.
|
|
84
|
+
|
|
85
|
+
`MetricComparison` colours its delta by direction unless `current.trend` says
|
|
86
|
+
whether the movement is good: pass `trend: 'positive'` when a fall in overdue
|
|
87
|
+
balances or churn is the good outcome. Size the chart through the container, not fixed
|
|
88
|
+
pixel widths, and verify it at narrow widths.
|
|
89
|
+
|
|
58
90
|
## Usage, facts and verification
|
|
59
91
|
|
|
60
92
|
For `UsageCard` period/loading/error/retry and quota meaning, read
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Order and invoice composition capability map
|
|
2
|
+
|
|
3
|
+
Compare an order, fulfillment, invoice or receivable screen with these public
|
|
4
|
+
owners before writing JSX. They present application data: totals, taxes,
|
|
5
|
+
balances, allocation rules and permitted commands stay app-owned. A relationship
|
|
6
|
+
none of them represents, such as reserved stock compared across warehouses, is
|
|
7
|
+
still a normal [domain structure](domain-structures.md). Inspect the exact
|
|
8
|
+
props with `inspect-component.mjs` before relying on a slot or surface value.
|
|
9
|
+
|
|
10
|
+
## Canonical imports
|
|
11
|
+
|
|
12
|
+
Every owner below imports from `themelia-react-ui/blocks/commerce`. Other
|
|
13
|
+
families keep their published spelling: `base/cards`, `base/buttons`,
|
|
14
|
+
`base/feedback`, `base/chart` (Recharts scaffolding), `features/table`,
|
|
15
|
+
`features/filters`, `features/overlays` and `layout/page`. When a path misses,
|
|
16
|
+
`find-components.mjs` reports `importResolution` with the canonical import and,
|
|
17
|
+
for paths such as `blocks/commerce/order-header`, the component it names.
|
|
18
|
+
|
|
19
|
+
## Order and fulfillment detail
|
|
20
|
+
|
|
21
|
+
| Subject | Owner | Frame |
|
|
22
|
+
| --- | --- | --- |
|
|
23
|
+
| Order number, status and commands | `Page` header (`title`, status `Badge`s in `slots.titleSuffix`, `primaryAction`, `secondaryActions`); `OrderHeader` only when Page renders no header | Page owns the h1, gutters and command row |
|
|
24
|
+
| Payment hold, fraud review or another standing notice | `Alert` with `AlertTitle` and `AlertDescription` from `base/feedback` | Inline notice, not a Card |
|
|
25
|
+
| Purchased goods and totals | A `Card` holding `OrderLineItem` rows and `SummaryPanel` with `AmountRow`, or `OrderSummary` | The Card frames both; the ledger adds no inset box |
|
|
26
|
+
| Goods grouped by fulfillment status and ship-from location, with their commands | `FulfillmentGroup`; a partial dispatch passes its own rows as `children` and the unit total as `count` | Framed by default; `surface="flat"` inside an existing Card |
|
|
27
|
+
| One parcel and its checkpoints | `ShipmentTracking` | Unframed by default; `surface="card"` on its own |
|
|
28
|
+
| Payment attempts, captures and refunds | `OrderTransactions` | Unframed by default; `surface="card"` on its own |
|
|
29
|
+
| One refund in progress | `RefundStatusCard` | Unframed by default; `surface="card"` on its own |
|
|
30
|
+
| Buyer, contact and addresses | `OrderCustomer` (`shippingMethod` under the shipping address); one address alone is `AddressCard` | Unframed by default; `surface="card"` in an aside |
|
|
31
|
+
| Order or payment history | `OrderTimeline` (it takes its own `title`) or `PaymentTimeline` (title the Card) inside a `Card` | The rails draw no frame of their own |
|
|
32
|
+
|
|
33
|
+
The [order detail recipe](../examples/commerce-lines.tsx) (`OrderFulfillmentDetail`)
|
|
34
|
+
composes these owners on one Page with real command callbacks: the header owns
|
|
35
|
+
the commands, two fulfillment groups frame themselves, and the buyer, payment
|
|
36
|
+
summary and transactions are aside cards.
|
|
37
|
+
|
|
38
|
+
## Invoice and receivable detail
|
|
39
|
+
|
|
40
|
+
| Subject | Owner | Frame |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| Invoice number, balance status and collection commands | `Page` header; set `maxVisibleSecondaryActions: 1` in it when long secondary labels crowd the primary command | Page owns the h1 and command row |
|
|
43
|
+
| The invoice document | One framed `Card` holding `InvoiceHeader` (party `details` for tax and registration IDs; omit `status` when the page header states it), `InvoiceLineItems surface="flat"` and `TaxBreakdownCard` or a `SummaryPanel` | The document Card is the only frame; its parts stay unframed |
|
|
44
|
+
| Settlement, payments and history | A `Card` with `SummaryPanel` and `AmountRow` (or `OrderSummary surface="card"`), `OrderTransactions surface="card"`, `PaymentTimeline` in a titled Card | One frame per subject |
|
|
45
|
+
| Customer and billing address | `AddressCard kind="billing"`, or `OrderCustomer showShippingAddress={false}`, with `surface="card"` | Aside subjects |
|
|
46
|
+
|
|
47
|
+
`InvoiceLineItems` paints its own framed table by default; inside the document
|
|
48
|
+
Card pass `surface="flat"` so its rows sit flush with the card edge. Below its
|
|
49
|
+
`@lg` container width each row shows the description with one `qty × price`
|
|
50
|
+
line and the line total; custom `columns` keep their tracks and scroll
|
|
51
|
+
horizontally. Mark secondary custom columns (VAT, discount, work period)
|
|
52
|
+
`wideOnly`: below that width their tracks drop and the description cell repeats
|
|
53
|
+
the values in copy marked `@lg/invoice-line-items:hidden`, so a narrow invoice
|
|
54
|
+
neither scrolls nor crushes the service text. Its default `taxRate` is 0.2, so pass the invoice's real rate or
|
|
55
|
+
custom `footerRows` with the authoritative amounts.
|
|
56
|
+
|
|
57
|
+
The [invoice detail recipe](../examples/commerce-lines.tsx) (`ReceivableInvoiceDetail`)
|
|
58
|
+
shows the document Card, the settlement ledger and a header that keeps one
|
|
59
|
+
secondary command beside `Record payment`.
|
|
60
|
+
|
|
61
|
+
Do not set `surface="flat"` on the top-level Cards of a detail page to remove
|
|
62
|
+
box-in-box framing: flatten the inner part instead, so every subject keeps one
|
|
63
|
+
clear frame.
|
|
64
|
+
|
|
65
|
+
## Frame each subject once
|
|
66
|
+
|
|
67
|
+
Owners that default unframed and accept `surface="card"`: `AddressCard`,
|
|
68
|
+
`OrderCustomer`, `OrderSummary`, `OrderTransactions`, `PaymentMethod`,
|
|
69
|
+
`ShipmentTracking`, `TaxBreakdownCard`, `DiscountStackPreview`,
|
|
70
|
+
`RefundStatusCard`, `CartSummaryCard`, `InvoiceHeader` and
|
|
71
|
+
`InventorySectionCard`. Owners that frame themselves and accept
|
|
72
|
+
`surface="flat"`: `FulfillmentGroup` and `InvoiceLineItems`. An owner that
|
|
73
|
+
already paints a frame (`surface="card"`, or one of the self-framing pair) is
|
|
74
|
+
never wrapped in a second Card; unframed parts compose inside one, as in the
|
|
75
|
+
invoice document. Page body and aside own the gaps between subjects.
|
|
76
|
+
|
|
77
|
+
In index tables, `ResourceCell` renders order and invoice identifiers as plain
|
|
78
|
+
text; it draws media only for `imageUrl`, `icon` or `fallback`, and
|
|
79
|
+
`mediaShape="square"` keeps product photos uncropped. Status badges in app-owned
|
|
80
|
+
cells reuse `fulfillmentStatusTone`, `paymentStatusTone`, `transactionStatusTone`
|
|
81
|
+
and `invoiceStatusTone`, so a table colours states exactly as the blocks do.
|
|
82
|
+
`InvoiceStatus` covers `draft`, `pending`, `overdue`, `disputed` and `paid`.
|
|
83
|
+
Notify accepted commands with `toast` from `themelia-react-ui/base/toaster`,
|
|
84
|
+
the same instance its `Toaster` renders.
|
|
85
|
+
|
|
86
|
+
Line rows, totals, stock meters and progress already have owners
|
|
87
|
+
(`OrderLineItem`, `AmountRow`, `InventoryLevel`, `Progress`). Reach for
|
|
88
|
+
app-owned Tailwind only for a structure those owners do not represent, and
|
|
89
|
+
then on your own elements, never to restyle owner anatomy.
|
|
90
|
+
|
|
91
|
+
## Verify
|
|
92
|
+
|
|
93
|
+
Check the order or invoice at narrow and wide widths in light and dark themes:
|
|
94
|
+
the line totals stay on one line, the narrow invoice rows show one quantity line
|
|
95
|
+
each, every subject has exactly one frame, and the header commands that do not
|
|
96
|
+
fit move into the More actions menu. Execute the commands (capture, refund,
|
|
97
|
+
reminder, payment) through their real callbacks, including failure and retry.
|