themelia-react-ui 2.0.0 → 2.0.2
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 +527 -0
- package/README.md +47 -14
- package/THIRD_PARTY_NOTICES.md +13 -0
- package/dist/accordion-Cjb6sx0G.js +208 -0
- package/dist/accordion-Cjb6sx0G.js.map +1 -0
- package/dist/action-menu-CllU52Mm.js +280 -0
- package/dist/action-menu-CllU52Mm.js.map +1 -0
- package/dist/affordance-geometry.generated-tF36bREk.js +140 -0
- package/dist/affordance-geometry.generated-tF36bREk.js.map +1 -0
- package/dist/ai-artifact-DvTwDVyL.js +1148 -0
- package/dist/ai-artifact-DvTwDVyL.js.map +1 -0
- package/dist/{app-shell-BE_j8-AT.js → app-shell-C4FhvCqF.js} +5 -5
- package/dist/{app-shell-BE_j8-AT.js.map → app-shell-C4FhvCqF.js.map} +1 -1
- package/dist/attachment-BxDfL2mw.js +246 -0
- package/dist/attachment-BxDfL2mw.js.map +1 -0
- package/dist/{auth-M3vGMgDR.js → auth-ax2BqjrI.js} +241 -235
- package/dist/auth-ax2BqjrI.js.map +1 -0
- package/dist/{avatar-djdaaQ_s.js → avatar-DAPlDvhJ.js} +67 -66
- package/dist/avatar-DAPlDvhJ.js.map +1 -0
- package/dist/badge-HpFqoqSY.js +93 -0
- package/dist/badge-HpFqoqSY.js.map +1 -0
- 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 +3 -0
- package/dist/base/buttons.js +2 -3
- package/dist/base/cards.js +2 -2
- package/dist/base/carousel.js +50 -46
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +69 -81
- package/dist/base/cascader.js.map +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +3 -3
- 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 +7 -7
- package/dist/base/feedback.js +3 -3
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +20 -20
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/metadata-list.js +3 -0
- 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 +216 -220
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/signature-pad.js +147 -137
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +79 -2
- package/dist/base/spinner.js.map +1 -0
- 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 +46 -45
- 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 +2 -2
- package/dist/batch-action-bar-DnUJ21NQ.js +105 -0
- package/dist/batch-action-bar-DnUJ21NQ.js.map +1 -0
- package/dist/blocks/admin.js +171 -169
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +308 -285
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +626 -589
- 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 +2051 -1329
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +3 -2
- package/dist/blocks/onboarding.js +68 -58
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +27 -26
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +1 -1
- package/dist/breadcrumbs-C-oqs1sQ.js +129 -0
- package/dist/breadcrumbs-C-oqs1sQ.js.map +1 -0
- package/dist/{button-R9CCoH7A.js → button-DVzspB_G.js} +15 -14
- package/dist/button-DVzspB_G.js.map +1 -0
- package/dist/{button-BS3KDg00.js → buttons-DPZekJFu.js} +208 -216
- package/dist/buttons-DPZekJFu.js.map +1 -0
- package/dist/cards-BaBZR-AU.js +68 -0
- package/dist/cards-BaBZR-AU.js.map +1 -0
- package/dist/{chart-DwYRKKc-.js → chart-ZOYyK2xG.js} +58 -55
- package/dist/chart-ZOYyK2xG.js.map +1 -0
- package/dist/checkbox-AWIhNhmo.js +36 -0
- package/dist/checkbox-AWIhNhmo.js.map +1 -0
- package/dist/choice-inputs-CNHvARCJ.js +770 -0
- package/dist/choice-inputs-CNHvARCJ.js.map +1 -0
- package/dist/code-block-DeneBJR_.js +185 -0
- package/dist/code-block-DeneBJR_.js.map +1 -0
- package/dist/{collapsible-oMUGM4tr.js → collapsible-C-_l4hpy.js} +4 -4
- package/dist/{collapsible-oMUGM4tr.js.map → collapsible-C-_l4hpy.js.map} +1 -1
- package/dist/{collection-content-Ys-OZOkY.js → collection-content-By56pLog.js} +3 -3
- package/dist/{collection-content-Ys-OZOkY.js.map → collection-content-By56pLog.js.map} +1 -1
- package/dist/combobox-C0EQW6dr.js +875 -0
- package/dist/combobox-C0EQW6dr.js.map +1 -0
- package/dist/combobox-xCQ2RMNE.js +309 -0
- package/dist/combobox-xCQ2RMNE.js.map +1 -0
- package/dist/{command-kPMPjIxJ.js → command-C25VMRII.js} +7 -7
- package/dist/{command-kPMPjIxJ.js.map → command-C25VMRII.js.map} +1 -1
- package/dist/{comments-You0Bzbr.js → comments-BYYlTA8E.js} +390 -379
- package/dist/comments-BYYlTA8E.js.map +1 -0
- package/dist/components/base/action-menu/action-menu.d.ts +21 -4
- package/dist/components/base/action-menu/action-menu.recipes.d.ts +21 -0
- package/dist/components/base/action-menu/index.d.ts +1 -0
- package/dist/components/base/badge/badge.recipes.d.ts +5 -5
- package/dist/components/base/batch-action-bar/batch-action-bar.d.ts +50 -0
- package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.ts +20 -0
- package/dist/components/base/batch-action-bar/index.d.ts +8 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +1 -1
- package/dist/components/base/buttons/button.recipes.d.ts +2 -2
- package/dist/components/base/buttons/loader-button.d.ts +2 -1
- package/dist/components/base/cards/card.recipes.d.ts +2 -3
- package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +3 -13
- package/dist/components/base/cards/smart-card.types.d.ts +11 -4
- package/dist/components/base/chart/chart.d.ts +2 -5
- package/dist/components/base/choice-inputs/checkbox.d.ts +2 -2
- package/dist/components/base/choice-inputs/choice-types.d.ts +18 -6
- package/dist/components/base/combobox/combobox.strings.d.ts +7 -0
- package/dist/components/base/combobox/index.d.ts +30 -4
- package/dist/components/base/display/alert-dialog.d.ts +6 -5
- package/dist/components/base/display/dialog.d.ts +4 -8
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
- package/dist/components/base/forms/form-sizing.d.ts +26 -15
- package/dist/components/base/metadata-list/index.d.ts +12 -0
- package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.d.ts +28 -25
- package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-value.d.ts +2 -2
- package/dist/components/base/navigation/index.d.ts +1 -1
- package/dist/components/base/navigation/page-header/index.d.ts +1 -0
- package/dist/components/base/navigation/page-header/page-header-commands.d.ts +73 -0
- package/dist/components/base/navigation/page-header/page-header.d.ts +26 -3
- package/dist/components/base/navigation/pagination.d.ts +5 -2
- package/dist/components/base/popover/popover.recipes.d.ts +15 -1
- package/dist/components/base/sheet/sheet.d.ts +4 -8
- package/dist/components/base/signature-pad/signature-pad.types.d.ts +5 -1
- package/dist/components/base/signature-pad/signature-pad.utils.d.ts +11 -3
- package/dist/components/base/table/index.d.ts +9 -2
- package/dist/components/base/text-inputs/field-clear-button.d.ts +6 -0
- package/dist/components/base/text-inputs/input-group.d.ts +2 -2
- package/dist/components/base/upload/upload.recipes.d.ts +25 -3
- package/dist/components/base/value-inputs/index.d.ts +5 -5
- package/dist/components/base/value-inputs/tags-input.d.ts +36 -12
- package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +1 -1
- package/dist/components/blocks/ai/ai-shimmer/types.d.ts +3 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +2 -1
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +3 -1
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +6 -1
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +3 -1
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +16 -4
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +5 -0
- package/dist/components/blocks/commerce/fulfillment-group/index.d.ts +2 -0
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +45 -0
- package/dist/components/blocks/commerce/index.d.ts +13 -5
- package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-header/types.d.ts +4 -2
- package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-mini/types.d.ts +2 -1
- package/dist/components/blocks/commerce/order-customer/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +5 -0
- package/dist/components/blocks/commerce/order-customer/types.d.ts +48 -0
- package/dist/components/blocks/commerce/order-header/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-header/order-header.d.ts +5 -0
- package/dist/components/blocks/commerce/order-header/types.d.ts +37 -0
- package/dist/components/blocks/commerce/order-line-item/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-line-item/order-line-item.d.ts +5 -0
- package/dist/components/blocks/commerce/order-line-item/types.d.ts +46 -0
- package/dist/components/blocks/commerce/order-summary/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-summary/order-summary.d.ts +5 -0
- package/dist/components/blocks/commerce/order-summary/types.d.ts +42 -0
- package/dist/components/blocks/commerce/order-transactions/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-transactions/order-transactions.d.ts +5 -0
- package/dist/components/blocks/commerce/order-transactions/types.d.ts +46 -0
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +9 -1
- package/dist/components/blocks/commerce/payment-method/types.d.ts +12 -1
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +3 -1
- package/dist/components/blocks/commerce/refund-status/types.d.ts +6 -3
- package/dist/components/blocks/commerce/shared/address-lines.d.ts +21 -0
- package/dist/components/blocks/commerce/shared/line-thumbnail.d.ts +9 -0
- package/dist/components/blocks/commerce/shared/order-status.d.ts +51 -0
- package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
- package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +27 -6
- package/dist/components/blocks/commerce/summary-panel/amount-row.d.ts +2 -0
- package/dist/components/blocks/commerce/summary-panel/index.d.ts +3 -0
- package/dist/components/blocks/commerce/summary-panel/summary-panel.d.ts +2 -0
- package/dist/components/blocks/commerce/summary-panel/types.d.ts +26 -0
- package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
- package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +2 -1
- package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +16 -8
- package/dist/components/blocks/data-display/metadata/index.d.ts +30 -4
- package/dist/components/features/activities/partials/activity-marker.d.ts +6 -3
- package/dist/components/features/activities/partials/activity-row.d.ts +6 -2
- package/dist/components/features/activities/partials/tone-tokens.d.ts +0 -6
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +5 -0
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +220 -0
- package/dist/components/features/appointment-calendar/appointment-calendar.utils.d.ts +41 -0
- package/dist/components/features/appointment-calendar/index.d.ts +3 -0
- package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +32 -0
- package/dist/components/features/appointment-calendar/partials/appointment-month.d.ts +13 -0
- package/dist/components/features/combobox/combobox.strings.d.ts +15 -1
- package/dist/components/features/combobox/types.d.ts +4 -0
- package/dist/components/features/global-search/partials/global-search-group-heading.d.ts +15 -0
- package/dist/components/features/global-search/partials/tone-palettes.d.ts +0 -5
- package/dist/components/features/kanban/kanban.d.ts +1 -1
- package/dist/components/features/kanban/kanban.strings.d.ts +1 -1
- package/dist/components/features/kanban/kanban.types.d.ts +2 -2
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
- package/dist/components/features/media-library/index.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 +6 -0
- package/dist/components/features/media-library/media-library.types.d.ts +74 -1
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
- package/dist/components/features/mentions/partials/mention-kind-toggles.d.ts +16 -0
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/dialog.d.ts +1 -1
- package/dist/components/features/overlays/index.d.ts +1 -1
- package/dist/components/features/overlays/overlay-tone-icon.d.ts +3 -3
- package/dist/components/features/overlays/overlays.types.d.ts +20 -0
- package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
- package/dist/components/features/products/components/product-details-card.d.ts +5 -0
- package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
- package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
- package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
- package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
- package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
- package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +23 -1
- package/dist/components/features/products/products.types.d.ts +9 -2
- package/dist/components/features/resource/index.d.ts +1 -1
- package/dist/components/features/resource/resource.d.ts +1 -1
- package/dist/components/features/resource/resource.types.d.ts +34 -6
- package/dist/components/features/rich-text-editor/index.d.ts +2 -1
- package/dist/components/features/rich-text-editor/partials/image-nodes.d.ts +13 -0
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +66 -0
- package/dist/components/features/rich-text-editor/partials/inline-reference-node.d.ts +19 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +7 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +14 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +54 -1
- package/dist/components/features/rich-text-editor/use-rich-text-images.d.ts +18 -0
- package/dist/components/features/sync/index.d.ts +26 -3
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/table-header.d.ts +1 -1
- package/dist/components/features/table/table.strings.d.ts +55 -1
- package/dist/components/features/table/table.types.d.ts +49 -11
- package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +5 -0
- package/dist/components/layout/page/index.d.ts +1 -1
- package/dist/components/layout/page/page.types.d.ts +33 -36
- package/dist/components/layout/page/partials/page-actions.d.ts +1 -0
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +16 -2
- package/dist/components/layout/workspace/workspace.types.d.ts +21 -4
- package/dist/components/primitives/number.d.ts +4 -2
- package/dist/components/primitives/value.d.ts +3 -1
- package/dist/components/typography/rich-text/index.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +19 -0
- package/dist/components/typography/rich-text/rich-text.d.ts +16 -0
- package/dist/components/typography/text-link.d.ts +8 -3
- package/dist/components/ui/checkbox.d.ts +4 -3
- package/dist/components/ui/combobox.d.ts +6 -2
- package/dist/components/ui/item.d.ts +8 -8
- package/dist/components/ui/overlay.recipes.d.ts +0 -9
- package/dist/components/ui/switch.d.ts +2 -2
- package/dist/components/ui/tabs.d.ts +1 -1
- package/dist/{containers-D_L4mTVb.js → containers-Mu1LMGV1.js} +36 -35
- package/dist/containers-Mu1LMGV1.js.map +1 -0
- package/dist/{copyable-DDjTeW_j.js → copyable-ClBuk_UK.js} +6 -6
- package/dist/{copyable-DDjTeW_j.js.map → copyable-ClBuk_UK.js.map} +1 -1
- package/dist/data-display-DT_khPl_.js +971 -0
- package/dist/data-display-DT_khPl_.js.map +1 -0
- package/dist/{date-uf3z37Nm.js → date-DCrsDTZc.js} +5 -5
- package/dist/{date-uf3z37Nm.js.map → date-DCrsDTZc.js.map} +1 -1
- package/dist/date-picker-ay0Pha_a.js +1530 -0
- package/dist/date-picker-ay0Pha_a.js.map +1 -0
- package/dist/date-pickers-Ccw8DL2b.js +175 -0
- package/dist/date-pickers-Ccw8DL2b.js.map +1 -0
- package/dist/display-hAc1HjpI.js +344 -0
- package/dist/display-hAc1HjpI.js.map +1 -0
- package/dist/dropdown-menu-Cl4X7L5S.js +193 -0
- package/dist/dropdown-menu-Cl4X7L5S.js.map +1 -0
- package/dist/editable-text-recipe-Cn61kEcv.js +10 -0
- package/dist/editable-text-recipe-Cn61kEcv.js.map +1 -0
- package/dist/features/activities.js +478 -542
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +209 -199
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +683 -0
- package/dist/features/appointment-calendar.js.map +1 -0
- package/dist/features/async-preview.js +109 -107
- 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 +30 -29
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +285 -283
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +282 -273
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +318 -318
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +146 -147
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +269 -268
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +970 -863
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1137 -1124
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +206 -194
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +24 -21
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +77 -69
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +30 -11
- package/dist/features/rich-text-editor.js.map +1 -1
- package/dist/features/schema-form.js +35 -33
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +11 -5
- package/dist/features/sync.js.map +1 -1
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +501 -496
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-BYIhtitP.js +239 -0
- package/dist/feedback-BYIhtitP.js.map +1 -0
- package/dist/field-affordance-recipes-DZhnIL_Y.js +41 -0
- package/dist/field-affordance-recipes-DZhnIL_Y.js.map +1 -0
- package/dist/field-state-recipes-BVA2CWHo.js +12 -0
- package/dist/field-state-recipes-BVA2CWHo.js.map +1 -0
- package/dist/{filters-Da-gNPsE.js → filters-BGfvjP4d.js} +483 -472
- package/dist/filters-BGfvjP4d.js.map +1 -0
- package/dist/focus-recipes-B653VaLq.js +12 -0
- package/dist/focus-recipes-B653VaLq.js.map +1 -0
- package/dist/{form-field-VZRULhUK.js → form-field-CwH9y77i.js} +6 -5
- package/dist/form-field-CwH9y77i.js.map +1 -0
- package/dist/{form-sizing-uWP4lzVh.js → form-sizing-BdP_Mf5p.js} +45 -46
- package/dist/form-sizing-BdP_Mf5p.js.map +1 -0
- package/dist/{forms-DDeEnXSY.js → forms-B9G_xwzi.js} +22 -22
- package/dist/{forms-DDeEnXSY.js.map → forms-B9G_xwzi.js.map} +1 -1
- package/dist/forms-numeric-B_jraJaQ.js +906 -0
- package/dist/forms-numeric-B_jraJaQ.js.map +1 -0
- package/dist/{header-2ycNqGOR.js → header-CGXuhcRm.js} +164 -161
- package/dist/header-CGXuhcRm.js.map +1 -0
- package/dist/{hooks-DQ5SPwZw.js → hooks-Dkz0K2WT.js} +2 -2
- package/dist/{hooks-DQ5SPwZw.js.map → hooks-Dkz0K2WT.js.map} +1 -1
- package/dist/{http-CdEIHyQf.js → http-D_6rOnzU.js} +2 -2
- package/dist/{http-CdEIHyQf.js.map → http-D_6rOnzU.js.map} +1 -1
- package/dist/icon-badge-DYKIwvOV.js +55 -0
- package/dist/icon-badge-DYKIwvOV.js.map +1 -0
- package/dist/index.js +7 -7
- package/dist/input-CZw8iU99.js +21 -0
- package/dist/input-CZw8iU99.js.map +1 -0
- package/dist/input-DQdEd0YD.js +263 -0
- package/dist/input-DQdEd0YD.js.map +1 -0
- package/dist/interaction-recipes-XR9ZpVYL.js +25 -0
- package/dist/interaction-recipes-XR9ZpVYL.js.map +1 -0
- package/dist/item-K5_ghvze.js +275 -0
- package/dist/item-K5_ghvze.js.map +1 -0
- package/dist/layer-recipes-CCpklYME.js +13 -0
- package/dist/layer-recipes-CCpklYME.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 +1 -1
- package/dist/layout/settings.js +1 -1
- package/dist/layout/sidebar.js +2 -2
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +10 -10
- package/dist/lib/affordance-geometry.generated.d.ts +72 -0
- package/dist/lib/editable-text-recipe.d.ts +4 -4
- package/dist/lib/field-affordance-recipes.d.ts +8 -3
- package/dist/lib/field-state-recipes.d.ts +9 -8
- package/dist/lib/focus-recipes.d.ts +24 -0
- package/dist/lib/interaction-recipes.d.ts +40 -0
- package/dist/lib/layer-recipes.d.ts +19 -0
- package/dist/lib/motion-recipes.d.ts +1 -0
- package/dist/lib/overlay-anatomy-recipes.d.ts +1 -0
- package/dist/lib/safe-image-src.d.ts +10 -0
- package/dist/lib/sanitize-html.d.ts +15 -3
- package/dist/lib/surface-recipes.d.ts +47 -7
- package/dist/lib/theme-mode-css.d.ts +7 -0
- package/dist/lib/token-merge.generated.d.ts +9 -6
- package/dist/lib/tone-recipes.d.ts +87 -0
- package/dist/lib/ui-provider/hooks.d.ts +2 -1
- package/dist/lib/ui-provider/index.d.ts +2 -2
- package/dist/lib/ui-provider/types.d.ts +11 -2
- package/dist/lib/utils.js +1 -1
- package/dist/media-gallery-3zIVLMWH.js +203 -0
- package/dist/media-gallery-3zIVLMWH.js.map +1 -0
- package/dist/mentions-utuUvH1K.js +570 -0
- package/dist/mentions-utuUvH1K.js.map +1 -0
- package/dist/{message-YfFmbXNP.js → message-DZ_ruyUV.js} +7 -6
- package/dist/message-DZ_ruyUV.js.map +1 -0
- package/dist/metadata-list-8N16ZMW_.js +405 -0
- package/dist/metadata-list-8N16ZMW_.js.map +1 -0
- package/dist/{motion-recipes-B6jKXEcN.js → motion-recipes-ChBg4HBq.js} +3 -2
- package/dist/{motion-recipes-B6jKXEcN.js.map → motion-recipes-ChBg4HBq.js.map} +1 -1
- package/dist/navigation-Bnotn4AQ.js +145 -0
- package/dist/navigation-Bnotn4AQ.js.map +1 -0
- package/dist/navigation-BzhHI3lo.js +269 -0
- package/dist/navigation-BzhHI3lo.js.map +1 -0
- package/dist/{navigation-row-recipes-DlU-4QYO.js → navigation-row-recipes-BFLCk_Aq.js} +2 -2
- package/dist/{navigation-row-recipes-DlU-4QYO.js.map → navigation-row-recipes-BFLCk_Aq.js.map} +1 -1
- package/dist/{number-CKRBYmZK.js → number-DbV1Dija.js} +36 -34
- package/dist/{number-CKRBYmZK.js.map → number-DbV1Dija.js.map} +1 -1
- package/dist/overflow-tab-bar-CWY7Nogn.js +282 -0
- package/dist/overflow-tab-bar-CWY7Nogn.js.map +1 -0
- package/dist/overlay.recipes-8GHqmlb4.js +6 -0
- package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
- package/dist/overlays-DNWmZrJ4.js +1001 -0
- package/dist/overlays-DNWmZrJ4.js.map +1 -0
- package/dist/page-Bgl1F560.js +224 -0
- package/dist/page-Bgl1F560.js.map +1 -0
- package/dist/page-header-commands-DOb6WsfD.js +126 -0
- package/dist/page-header-commands-DOb6WsfD.js.map +1 -0
- package/dist/pagination-BL25hu2s.js +158 -0
- package/dist/pagination-BL25hu2s.js.map +1 -0
- package/dist/{popover-Dcv_9jxr.js → popover-7_m66eYW.js} +11 -10
- package/dist/popover-7_m66eYW.js.map +1 -0
- package/dist/popover-menu-B9WWygpa.js +100 -0
- package/dist/popover-menu-B9WWygpa.js.map +1 -0
- package/dist/{popover.recipes-wmbvL8Ah.js → popover.recipes-D3j8R8Yp.js} +18 -11
- package/dist/popover.recipes-D3j8R8Yp.js.map +1 -0
- package/dist/{primitives-BHrwQXFC.js → primitives-BFK08r9M.js} +45 -44
- package/dist/primitives-BFK08r9M.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-Br9WTFya.js → progress-B1VnCT0K.js} +9 -9
- package/dist/{progress-Br9WTFya.js.map → progress-B1VnCT0K.js.map} +1 -1
- package/dist/{receipt-CV89q1fs.js → receipt-BVSOH3Xo.js} +9 -6
- package/dist/{receipt-CV89q1fs.js.map → receipt-BVSOH3Xo.js.map} +1 -1
- package/dist/rich-text-GOUyKQ-s.js +78 -0
- package/dist/rich-text-GOUyKQ-s.js.map +1 -0
- package/dist/rich-text-editor-cRLC-eBK.js +1196 -0
- package/dist/rich-text-editor-cRLC-eBK.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DfXg0-VC.js +94 -0
- package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +1 -0
- package/dist/rich-text-editor.strings-CB59ekH2.js +38 -0
- package/dist/rich-text-editor.strings-CB59ekH2.js.map +1 -0
- package/dist/safe-image-src-C6kQSMBZ.js +17 -0
- package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
- package/dist/sanitize-html-DsQmI48u.js +92 -0
- package/dist/sanitize-html-DsQmI48u.js.map +1 -0
- package/dist/scroll-area-DcI-M1UT.js +48 -0
- package/dist/scroll-area-DcI-M1UT.js.map +1 -0
- package/dist/{separator-Do5GWDYi.js → separator-BDV-Y648.js} +3 -3
- package/dist/{separator-Do5GWDYi.js.map → separator-BDV-Y648.js.map} +1 -1
- package/dist/{separator-BMEvwnSX.js → separator-Bom7NsGO.js} +2 -2
- package/dist/{separator-BMEvwnSX.js.map → separator-Bom7NsGO.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +18 -0
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +16 -4
- package/dist/services/actions.js.map +1 -1
- package/dist/settings-ybnjVwbd.js +171 -0
- package/dist/settings-ybnjVwbd.js.map +1 -0
- package/dist/sheet-CGpB3omz.js +211 -0
- package/dist/sheet-CGpB3omz.js.map +1 -0
- package/dist/{sidebar-Cb8WzOvE.js → sidebar-A0ElHINE.js} +17 -16
- package/dist/sidebar-A0ElHINE.js.map +1 -0
- package/dist/{sidebar-Crc9M9JV.js → sidebar-CPx_7YBa.js} +205 -203
- package/dist/sidebar-CPx_7YBa.js.map +1 -0
- package/dist/{skeleton-DVMXr15h.js → skeleton-Byjnt7qr.js} +9 -9
- package/dist/{skeleton-DVMXr15h.js.map → skeleton-Byjnt7qr.js.map} +1 -1
- package/dist/smart-card-DiC5aac3.js +604 -0
- package/dist/smart-card-DiC5aac3.js.map +1 -0
- package/dist/{structure-hzCW-XsV.js → structure-BmisBK-3.js} +2 -2
- package/dist/{structure-hzCW-XsV.js.map → structure-BmisBK-3.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/surface-recipes-BKRVW8Os.js +43 -0
- package/dist/surface-recipes-BKRVW8Os.js.map +1 -0
- package/dist/table-BweFy_P9.js +1530 -0
- package/dist/table-BweFy_P9.js.map +1 -0
- package/dist/table-DsfzoUia.js +175 -0
- package/dist/table-DsfzoUia.js.map +1 -0
- package/dist/tabs-CDocW5D1.js +191 -0
- package/dist/tabs-CDocW5D1.js.map +1 -0
- package/dist/text-inputs-f9Ia-aCi.js +353 -0
- package/dist/text-inputs-f9Ia-aCi.js.map +1 -0
- package/dist/theme-mode-css-BB-_RYab.js +14 -0
- package/dist/theme-mode-css-BB-_RYab.js.map +1 -0
- package/dist/theme-scope-BJ6eE2xt.js +50 -0
- package/dist/theme-scope-BJ6eE2xt.js.map +1 -0
- package/dist/theme.css +285 -228
- package/dist/themes/green.css +16 -12
- package/dist/timelines-CwM_9IhD.js +457 -0
- package/dist/timelines-CwM_9IhD.js.map +1 -0
- package/dist/tone-recipes-BPsRAvhu.js +73 -0
- package/dist/tone-recipes-BPsRAvhu.js.map +1 -0
- package/dist/tooltip-yiRJUFjp.js +111 -0
- package/dist/tooltip-yiRJUFjp.js.map +1 -0
- package/dist/{tree-BotPlyiD.js → tree-WnKQzwbq.js} +69 -67
- package/dist/tree-WnKQzwbq.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-UTnveOEy.js +117 -0
- package/dist/typography-UTnveOEy.js.map +1 -0
- package/dist/typography.js +2 -2
- package/dist/{ui-provider-D2_TeLqw.js → ui-provider-C_U0Xma4.js} +13 -5
- package/dist/ui-provider-C_U0Xma4.js.map +1 -0
- package/dist/ui-provider.js +3 -3
- package/dist/{upload-B0WHW7ak.js → upload-CXyxmQBP.js} +210 -209
- package/dist/upload-CXyxmQBP.js.map +1 -0
- package/dist/{upload-queue-BHZ_wBfd.js → upload-queue-Boscubn9.js} +111 -111
- package/dist/upload-queue-Boscubn9.js.map +1 -0
- package/dist/upload.recipes-BbxTqrCT.js +61 -0
- package/dist/upload.recipes-BbxTqrCT.js.map +1 -0
- package/dist/{usage-card-U0YBLTNT.js → usage-card-BhO5eqkX.js} +45 -29
- package/dist/usage-card-BhO5eqkX.js.map +1 -0
- package/dist/{utils-Cospvlj1.js → utils-BRhFDwuU.js} +114 -67
- package/dist/utils-BRhFDwuU.js.map +1 -0
- package/dist/value-inputs-DXPDjvBU.js +963 -0
- package/dist/value-inputs-DXPDjvBU.js.map +1 -0
- package/dist/{value-typography-Deb3yQZg.js → value-typography-BP8OG6h5.js} +2 -2
- package/dist/{value-typography-Deb3yQZg.js.map → value-typography-BP8OG6h5.js.map} +1 -1
- package/dist/workspace-Cdrg7k9f.js +408 -0
- package/dist/workspace-Cdrg7k9f.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +21 -22
- package/docs/consumer-skill/examples/app-layout.tsx +1 -1
- package/docs/consumer-skill/examples/composition.tsx +3 -3
- package/docs/consumer-skill/examples/detail.tsx +59 -12
- package/docs/consumer-skill/examples/edit.tsx +1 -1
- package/docs/consumer-skill/examples/receipt.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +1 -1
- package/docs/consumer-skill/examples/website.tsx +1 -1
- package/docs/consumer-skill/references/agents-md.md +33 -0
- package/docs/consumer-skill/references/analytics.md +1 -1
- package/docs/consumer-skill/references/composition.md +58 -13
- package/docs/consumer-skill/references/design-contract.md +12 -3
- package/docs/consumer-skill/references/installation.md +11 -1
- package/docs/consumer-skill/references/integration.md +4 -3
- package/docs/consumer-skill/references/public-api.json +956 -453
- package/docs/consumer-skill/references/review.md +32 -5
- package/docs/consumer-skill/references/theming.md +78 -9
- package/docs/consumer-skill/references/tokens.json +1 -1
- package/docs/consumer-skill/references/workflows.md +54 -10
- package/docs/consumer-skill/scripts/composition-policy.mjs +42 -11
- package/docs/consumer-skill/scripts/surface-policy.mjs +150 -5
- package/package.json +17 -5
- package/dist/accordion-CQXVcd7Q.js +0 -205
- package/dist/accordion-CQXVcd7Q.js.map +0 -1
- package/dist/action-menu-BTpyPWJ2.js +0 -264
- package/dist/action-menu-BTpyPWJ2.js.map +0 -1
- package/dist/affordance-geometry.generated-CCIXb2A1.js +0 -68
- package/dist/affordance-geometry.generated-CCIXb2A1.js.map +0 -1
- package/dist/ai-artifact-2PQ2fItc.js +0 -1112
- package/dist/ai-artifact-2PQ2fItc.js.map +0 -1
- package/dist/attachment-q69dlt5Y.js +0 -244
- package/dist/attachment-q69dlt5Y.js.map +0 -1
- package/dist/auth-M3vGMgDR.js.map +0 -1
- package/dist/avatar-djdaaQ_s.js.map +0 -1
- package/dist/badge-0tATj-tW.js +0 -92
- package/dist/badge-0tATj-tW.js.map +0 -1
- package/dist/breadcrumbs-BG_FfMK4.js +0 -128
- package/dist/breadcrumbs-BG_FfMK4.js.map +0 -1
- package/dist/button-BS3KDg00.js.map +0 -1
- package/dist/button-R9CCoH7A.js.map +0 -1
- package/dist/buttons-DS0ZIwJ_.js +0 -99
- package/dist/buttons-DS0ZIwJ_.js.map +0 -1
- package/dist/cards-QoJ4syG9.js +0 -66
- package/dist/cards-QoJ4syG9.js.map +0 -1
- package/dist/chart-DwYRKKc-.js.map +0 -1
- package/dist/checkbox-B7ygNTYp.js +0 -35
- package/dist/checkbox-B7ygNTYp.js.map +0 -1
- package/dist/choice-inputs-DrJ17tpL.js +0 -752
- package/dist/choice-inputs-DrJ17tpL.js.map +0 -1
- package/dist/code-block-CD0B7M93.js +0 -183
- package/dist/code-block-CD0B7M93.js.map +0 -1
- package/dist/combobox-6dvVny2q.js +0 -272
- package/dist/combobox-6dvVny2q.js.map +0 -1
- package/dist/combobox-CB7039j7.js +0 -865
- package/dist/combobox-CB7039j7.js.map +0 -1
- package/dist/comments-You0Bzbr.js.map +0 -1
- package/dist/components/layout/page/partials/page-header-commands.d.ts +0 -13
- package/dist/containers-D_L4mTVb.js.map +0 -1
- package/dist/data-display-3xWQUnMA.js +0 -1335
- package/dist/data-display-3xWQUnMA.js.map +0 -1
- package/dist/date-picker-DrDFj8Lo.js +0 -1527
- package/dist/date-picker-DrDFj8Lo.js.map +0 -1
- package/dist/date-pickers-CnFCb0n2.js +0 -174
- package/dist/date-pickers-CnFCb0n2.js.map +0 -1
- package/dist/display-DrdvPwF0.js +0 -343
- package/dist/display-DrdvPwF0.js.map +0 -1
- package/dist/dropdown-menu-CURh59jb.js +0 -193
- package/dist/dropdown-menu-CURh59jb.js.map +0 -1
- package/dist/editable-text-recipe-Bkm6wKHp.js +0 -10
- package/dist/editable-text-recipe-Bkm6wKHp.js.map +0 -1
- package/dist/feedback-C7nR0UtT.js +0 -232
- package/dist/feedback-C7nR0UtT.js.map +0 -1
- package/dist/field-affordance-recipes-CkOCdE2y.js +0 -46
- package/dist/field-affordance-recipes-CkOCdE2y.js.map +0 -1
- package/dist/field-state-recipes-C-MFBX_8.js +0 -11
- package/dist/field-state-recipes-C-MFBX_8.js.map +0 -1
- package/dist/filters-Da-gNPsE.js.map +0 -1
- package/dist/form-field-VZRULhUK.js.map +0 -1
- package/dist/form-sizing-uWP4lzVh.js.map +0 -1
- package/dist/forms-numeric-D3CO60IF.js +0 -905
- package/dist/forms-numeric-D3CO60IF.js.map +0 -1
- package/dist/header-2ycNqGOR.js.map +0 -1
- package/dist/icon-badge-DKlaKXoo.js +0 -53
- package/dist/icon-badge-DKlaKXoo.js.map +0 -1
- package/dist/input-BoLm9Hks.js +0 -20
- package/dist/input-BoLm9Hks.js.map +0 -1
- package/dist/input-DhQdBnV3.js +0 -255
- package/dist/input-DhQdBnV3.js.map +0 -1
- package/dist/item-xzh8Df65.js +0 -264
- package/dist/item-xzh8Df65.js.map +0 -1
- package/dist/media-gallery-DQUQ0m3O.js +0 -201
- package/dist/media-gallery-DQUQ0m3O.js.map +0 -1
- package/dist/mentions-DwnO1hh4.js +0 -564
- package/dist/mentions-DwnO1hh4.js.map +0 -1
- package/dist/message-YfFmbXNP.js.map +0 -1
- package/dist/navigation-Cbp5V8gG.js +0 -264
- package/dist/navigation-Cbp5V8gG.js.map +0 -1
- package/dist/navigation-Cs1npsPm.js +0 -300
- package/dist/navigation-Cs1npsPm.js.map +0 -1
- package/dist/overlay.recipes-CNO2S9V6.js +0 -34
- package/dist/overlay.recipes-CNO2S9V6.js.map +0 -1
- package/dist/overlays-DhZO7N-I.js +0 -994
- package/dist/overlays-DhZO7N-I.js.map +0 -1
- package/dist/page-C6R_8jFt.js +0 -325
- package/dist/page-C6R_8jFt.js.map +0 -1
- package/dist/page-header-hUTzcRZX.js +0 -112
- package/dist/page-header-hUTzcRZX.js.map +0 -1
- package/dist/pagination-Cm0jqa3I.js +0 -149
- package/dist/pagination-Cm0jqa3I.js.map +0 -1
- package/dist/popover-Dcv_9jxr.js.map +0 -1
- package/dist/popover-menu-DnRFKnHP.js +0 -99
- package/dist/popover-menu-DnRFKnHP.js.map +0 -1
- package/dist/popover.recipes-wmbvL8Ah.js.map +0 -1
- package/dist/primitives-BHrwQXFC.js.map +0 -1
- package/dist/rich-text-editor-CF8QYt5p.js +0 -574
- package/dist/rich-text-editor-CF8QYt5p.js.map +0 -1
- package/dist/rich-text-editor.recipes-CnrbmTS1.js +0 -81
- package/dist/rich-text-editor.recipes-CnrbmTS1.js.map +0 -1
- package/dist/rich-text-editor.strings-BpnIQgMl.js +0 -25
- package/dist/rich-text-editor.strings-BpnIQgMl.js.map +0 -1
- package/dist/rich-text-j-FGAeZW.js +0 -32
- package/dist/rich-text-j-FGAeZW.js.map +0 -1
- package/dist/sanitize-html-BG9FGe-j.js +0 -64
- package/dist/sanitize-html-BG9FGe-j.js.map +0 -1
- package/dist/scroll-area-DRdr16Pt.js +0 -47
- package/dist/scroll-area-DRdr16Pt.js.map +0 -1
- package/dist/settings-DHk0L2MF.js +0 -161
- package/dist/settings-DHk0L2MF.js.map +0 -1
- package/dist/sheet-DRFNY1_D.js +0 -207
- package/dist/sheet-DRFNY1_D.js.map +0 -1
- package/dist/sidebar-Cb8WzOvE.js.map +0 -1
- package/dist/sidebar-Crc9M9JV.js.map +0 -1
- package/dist/smart-card-Bek-TwUp.js +0 -599
- package/dist/smart-card-Bek-TwUp.js.map +0 -1
- package/dist/spinner-CmTAbEp0.js +0 -80
- package/dist/spinner-CmTAbEp0.js.map +0 -1
- package/dist/surface-recipes-DOdoBXGm.js +0 -28
- package/dist/surface-recipes-DOdoBXGm.js.map +0 -1
- package/dist/table-D6zKeYQX.js +0 -162
- package/dist/table-D6zKeYQX.js.map +0 -1
- package/dist/table-Dn4XSrSB.js +0 -1444
- package/dist/table-Dn4XSrSB.js.map +0 -1
- package/dist/tabs-Dk8E_knt.js +0 -189
- package/dist/tabs-Dk8E_knt.js.map +0 -1
- package/dist/text-inputs-BFpku0Qd.js +0 -331
- package/dist/text-inputs-BFpku0Qd.js.map +0 -1
- package/dist/theme-scope-kStaAer0.js +0 -39
- package/dist/theme-scope-kStaAer0.js.map +0 -1
- package/dist/timelines-CxuAFIc2.js +0 -439
- package/dist/timelines-CxuAFIc2.js.map +0 -1
- package/dist/tree-BotPlyiD.js.map +0 -1
- package/dist/typography-CAr3dQhX.js +0 -116
- package/dist/typography-CAr3dQhX.js.map +0 -1
- package/dist/ui-provider-D2_TeLqw.js.map +0 -1
- package/dist/upload-B0WHW7ak.js.map +0 -1
- package/dist/upload-queue-BHZ_wBfd.js.map +0 -1
- package/dist/usage-card-U0YBLTNT.js.map +0 -1
- package/dist/use-file-drop-target-BX7GnhoQ.js +0 -39
- package/dist/use-file-drop-target-BX7GnhoQ.js.map +0 -1
- package/dist/utils-Cospvlj1.js.map +0 -1
- package/dist/value-inputs-CjfzGMsN.js +0 -854
- package/dist/value-inputs-CjfzGMsN.js.map +0 -1
- package/dist/workspace-YoFjXi6i.js +0 -394
- package/dist/workspace-YoFjXi6i.js.map +0 -1
- /package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.strings.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,532 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.2 — 2026-10-21
|
|
4
|
+
|
|
5
|
+
Card dividers on by default, one rule per overlay region boundary, the
|
|
6
|
+
appointment calendar, and the fixes and shared recipes that followed 2.0.1. No
|
|
7
|
+
public export or prop is removed. Base UI is now the patched
|
|
8
|
+
`@base-ui/react@1.8.0-kpo.2` archive (see "Upgrading from 2.0.1"). Additions:
|
|
9
|
+
`align` on ConfirmDialog and ActionDialog with UIProvider overlay defaults;
|
|
10
|
+
`selecting`, `defaultSelecting`, `onSelectingChange`, `onItemOpen` and
|
|
11
|
+
`bulkActions` on MediaLibrary; `useRichTextImages` and `images` on RichTextEditor
|
|
12
|
+
and RichText; `bodyHeight` on RichTextEditor; the
|
|
13
|
+
`themelia-react-ui/base/metadata-list`, `themelia-react-ui/base/batch-action-bar`
|
|
14
|
+
and `themelia-react-ui/features/appointment-calendar` entrypoints; an optional
|
|
15
|
+
`fontFamily` on `signaturePadToSVG`; the order blocks, `SummaryPanel` and
|
|
16
|
+
`AmountRow` in `blocks/commerce`; `valueAlign` on MetadataList; `defaultValue`,
|
|
17
|
+
`name` and ARIA props on TagsInput; `density` on Table; `variant="chips"` on
|
|
18
|
+
TabsList; `valueWeight` on InlineStat and `size` on AiShimmer; screen-reader
|
|
19
|
+
label strings on Combobox, AsyncResourceCombobox, DataTable and MediaLibrary.
|
|
20
|
+
`features/sync`, the standalone product region cards, the `blocks/data-display`
|
|
21
|
+
MetadataList exports and `ActivityRow` `moreLabel` are deprecated.
|
|
22
|
+
|
|
23
|
+
### Audit update — 2026-10-24
|
|
24
|
+
|
|
25
|
+
- Layouts, blocks and features pair painted surfaces with their foregrounds;
|
|
26
|
+
owned primary copy inherits those roles while secondary, status and custom
|
|
27
|
+
content keep their intended colors. Existing sizing, spacing and radius
|
|
28
|
+
defaults remain unchanged.
|
|
29
|
+
- Bordered auth/workspace, metric, media/chat and event frames preserve their
|
|
30
|
+
geometry without a consumer CSS reset. Rich editor controls dim once, and a
|
|
31
|
+
disabled AI prompt suspends staged and custom actions as well as its input.
|
|
32
|
+
- Narrow checklist titles stay beside their status markers. Media detail regions
|
|
33
|
+
retain their content height and scroll in order without overlap. Flat Card
|
|
34
|
+
sections inherit their containing surface; search previews pair canvas ink.
|
|
35
|
+
- Owned field labels follow their containing surface across forms, helper fields,
|
|
36
|
+
repeaters, filters and questionnaires; the public Label defaults are preserved.
|
|
37
|
+
- MetadataList labels and primary values follow their containing surface in all
|
|
38
|
+
layouts; explicit secondary, link, status and custom content retain their roles.
|
|
39
|
+
Product catalogue viewports preserve native keyboard focus clearance.
|
|
40
|
+
- Compact table pagination resolves one size across its anatomy. Muted values
|
|
41
|
+
use the shared secondary role without an extra opacity tier; source and
|
|
42
|
+
consumer composition checks reject faded typography and primitive copy.
|
|
43
|
+
- Generated brand palettes retain the centralized input and focus roles instead
|
|
44
|
+
of replacing their contrast with a weak brand wash.
|
|
45
|
+
- Base composition now consistently follows the foreground of its card or
|
|
46
|
+
popover surface, including owned titles, values, upload copy and chart
|
|
47
|
+
tooltips. Native hosts retain their geometry without a consumer CSS reset.
|
|
48
|
+
- Card keeps full-width pre-title context, omits empty body regions, and reveals
|
|
49
|
+
clipped actions when keyboard focus enters them. CardSkeleton follows the
|
|
50
|
+
provider surface and accepts an optional `surface` override.
|
|
51
|
+
- Pagination resolves one shared size for links, previous/next and ellipsis;
|
|
52
|
+
PaginationEllipsis also accepts an optional `size`. Attachment focus corners
|
|
53
|
+
match their Item shell, and Empty media follows the existing media roots.
|
|
54
|
+
- Nested disabled content dims once; compound field affordances respect pending
|
|
55
|
+
and read-only state, including PhoneInput blur normalization. Carousel
|
|
56
|
+
preserves descendant editing keys, uncontrolled SliderField values stay
|
|
57
|
+
synchronized, and overflow links retain native href and keyboard behavior.
|
|
58
|
+
- Resting control boundaries now meet the shared 3:1 contrast floor, including
|
|
59
|
+
filled fields on supported surfaces. Divider and focus roles remain separate.
|
|
60
|
+
- Nested light/dark state utilities follow the nearest explicit mode boundary.
|
|
61
|
+
ThemeScope rebinds default aliases for explicitly supplied source roots while
|
|
62
|
+
preserving deliberate CSS/inline role overrides. This behavior uses container
|
|
63
|
+
style queries: Chromium 111+, Safari 18.1+ and Firefox 151+.
|
|
64
|
+
- Chart series and scoped theme exports follow the same mode boundary. Scoped
|
|
65
|
+
selector helpers add optional `modeScope` metadata while retaining their
|
|
66
|
+
existing selector strings. Package defaults use the theme cascade layer so
|
|
67
|
+
explicit utility classes can override them on a mode boundary.
|
|
68
|
+
- Enlarged editable typography can grow its shared field frame and reduce spare
|
|
69
|
+
vertical padding. Default control sizes and radius roles remain unchanged.
|
|
70
|
+
- Fullscreen table menus and dialogs retain keyboard ownership; sorted headers
|
|
71
|
+
expose direction/precedence; nested cell controls no longer activate the row.
|
|
72
|
+
Row callbacks also support Enter and Space with visible keyboard focus.
|
|
73
|
+
- Maintainer and packaged consumer guidance now cover surface inheritance at
|
|
74
|
+
owned text/label/value leaves, semantic text roles without extra opacity,
|
|
75
|
+
once-only disabled treatment, and stable post-interaction visual evidence.
|
|
76
|
+
The MetadataList evaluation uses its current base entrypoint.
|
|
77
|
+
|
|
78
|
+
### Upgrading from 2.0.1
|
|
79
|
+
|
|
80
|
+
- **Patched Base UI peer.** The `@base-ui/react` peer is pinned to
|
|
81
|
+
`1.8.0-kpo.2`, a patched build that adds `Combobox.Root.dismissLabel` and keeps
|
|
82
|
+
focus restored inside a parent popup when a nested popup closes. It is not on
|
|
83
|
+
the public registry: install the companion `base-ui-react-1.8.0-kpo.2.tgz`
|
|
84
|
+
beside this package, as the README describes.
|
|
85
|
+
- **MetadataList moved to base.** Import `MetadataList`, its item types and
|
|
86
|
+
default strings from `themelia-react-ui/base/metadata-list`. The
|
|
87
|
+
`themelia-react-ui/blocks/data-display` re-exports keep working and are
|
|
88
|
+
deprecated. Labels render semibold.
|
|
89
|
+
- **MediaLibrary opens before it selects.** Activating an asset (click, Enter,
|
|
90
|
+
Space) calls `onItemOpen` or shows the details panel. Selection is an explicit
|
|
91
|
+
mode: `selecting`, `defaultSelecting` and `onSelectingChange`. Picker dialogs
|
|
92
|
+
start selecting; pass `defaultSelecting` where a library relied on selecting
|
|
93
|
+
by default.
|
|
94
|
+
- **ConfirmDialog is centred.** ConfirmDialog and ActionDialog accept
|
|
95
|
+
`align: 'start' | 'center'`, resolved from the prop, then the UIProvider
|
|
96
|
+
`overlay.defaultConfirmAlign` / `overlay.defaultDialogAlign` defaults, then
|
|
97
|
+
center for ConfirmDialog and start for ActionDialog.
|
|
98
|
+
- **Deprecated: `themelia-react-ui/features/sync`.** `SyncRangeDialogForm` is
|
|
99
|
+
application-specific; use `SchemaForm` with `radio-cards` and
|
|
100
|
+
`checkbox-cards` fields. The entrypoint still ships.
|
|
101
|
+
- **Deprecated: standalone product region cards and row menus.** Render them
|
|
102
|
+
through `ProductOverview` slots and the `renderOptionActions` /
|
|
103
|
+
`renderVariantActions` options. They stay exported.
|
|
104
|
+
- **Deprecated: `ActivityRow` `moreLabel`.** The collapsed metadata preview it
|
|
105
|
+
labelled is gone; secondary detail opens with the details disclosure.
|
|
106
|
+
- **Selection bars are a `BatchActionBar`.** DataTable's default selection
|
|
107
|
+
toolbar now docks to the bottom of the viewport (`floating`); pass
|
|
108
|
+
`selectionToolbarPlacement="inline"` to keep it in the table. Its summary and
|
|
109
|
+
the new `totalRowCount` prop default to `pagination.total`, so server-paginated
|
|
110
|
+
tables count the whole result. Product variant tables show an inline bar only
|
|
111
|
+
while variants are selected; `renderBulkActions` now replaces the default
|
|
112
|
+
commands, as documented (return `null` to keep them), and Delete no longer
|
|
113
|
+
repeats the count.
|
|
114
|
+
- **MetadataList rows.** `layout="rows"` draws rules only with `itemSeparator`,
|
|
115
|
+
and values start their column on `2fr/3fr` tracks. Pass `valueAlign="end"` for
|
|
116
|
+
the previous right-aligned figures, such as money columns.
|
|
117
|
+
- **TagsInput.** Chips sit inside the field, before the text input in Tab order;
|
|
118
|
+
the count and clear-all move to a footer under the field, and the placeholder
|
|
119
|
+
shows only while the field is empty. The input stays enabled at `maxTags`.
|
|
120
|
+
- **Commerce DOM hooks.** RefundStatusCard, CartSummaryCard,
|
|
121
|
+
DiscountStackPreview, TaxBreakdownCard and ShipmentTracking render on `Card`
|
|
122
|
+
and lose the `content-block--*` classes and `data-component="content-block"`;
|
|
123
|
+
their own `--component` classes stay. ShipmentTracking and InvoiceHeader show
|
|
124
|
+
a visible title with the status chip in its suffix.
|
|
125
|
+
- **Shell width utilities.** `shell-sidebar-icon-current` and
|
|
126
|
+
`shell-sidebar-offcanvas-current` read their widths from `shell-sidebar-vars`;
|
|
127
|
+
apply them together on the same element, as the library's shells do.
|
|
128
|
+
- **Card dividers are on by default.** `card.defaultHeaderDivider` and
|
|
129
|
+
`card.defaultFooterDivider` now default to `true`, so framed cards rule their
|
|
130
|
+
header and footer apart. Flat, card-free structure (`surface="flat"`) and a
|
|
131
|
+
`headerPlacement="frame"` header still draw no rule unless asked, and
|
|
132
|
+
explicit per-card booleans still win. For the previous spacing-only look, set
|
|
133
|
+
both provider defaults to `false`, or pass `headerDivider={false}` /
|
|
134
|
+
`footerDivider={false}` on a card.
|
|
135
|
+
|
|
136
|
+
### Changes
|
|
137
|
+
|
|
138
|
+
- **Accessibility strings.** Combobox, AsyncResourceCombobox, DataTable and
|
|
139
|
+
MediaLibrary take strings for their screen-reader-only labels, including both
|
|
140
|
+
Combobox dismissal controls. Closing a nested popup no longer moves focus that
|
|
141
|
+
was already restored inside its parent popup.
|
|
142
|
+
- **Overlays draw one rule per region boundary.** ActionDialog, ActionDrawer
|
|
143
|
+
and ConfirmDialog separate header, body and footer with a rule, and a dialog
|
|
144
|
+
without a body shows a single rule.
|
|
145
|
+
- **Rich text images.** RichTextEditor and RichText support images through
|
|
146
|
+
`useRichTextImages`: the consumer owns `upload(file, { signal })`; the library
|
|
147
|
+
owns toolbar, paste and drop insertion, the upload placeholder, cancel, retry
|
|
148
|
+
and remove, type and size limits, alt text and the http/https/blob/relative
|
|
149
|
+
source policy. `renderImage` draws read-only images with the consumer's
|
|
150
|
+
component.
|
|
151
|
+
- **RichTextEditor runs Tiptap.** Its runtime check required `EditorContent`
|
|
152
|
+
to be a function, but Tiptap 3 exports it as `React.memo`, so every editor
|
|
153
|
+
(rich text, comment, activity and email composers) silently rendered the
|
|
154
|
+
contenteditable fallback with formatting disabled. Picking a mention in Tiptap
|
|
155
|
+
now replaces its `@query` instead of appending after it, and the editor chip
|
|
156
|
+
keeps the `.rsc-mention` hook, so mention-chip.css draws it in both engines.
|
|
157
|
+
- **Mentions insert as atomic badge chips** removed by one Backspace. The
|
|
158
|
+
suggestion list and picker are more compact, and kind filters use the shared
|
|
159
|
+
toggle style.
|
|
160
|
+
- **Global search** builds its field on the public `InputGroup` and lays out
|
|
161
|
+
results, group headings and the footer with the compact Command recipe.
|
|
162
|
+
- **Activities open compact.** Rich rows show the headline and description;
|
|
163
|
+
metadata, changes, details, resource chips and inline actions appear together
|
|
164
|
+
behind "Show details".
|
|
165
|
+
- **Comments** no longer leave an empty band under each comment's action row.
|
|
166
|
+
- **Choice inputs centre on the label line.** Checkbox, radio, switch and
|
|
167
|
+
selected-card checks share one label-line track (questionnaire,
|
|
168
|
+
ApiTokenManager, card groups).
|
|
169
|
+
- **One plain X clears fields.** Input, Textarea, Cascader, Combobox and global
|
|
170
|
+
search clear actions, and TagsInput and Combobox chip removes, draw a plain X
|
|
171
|
+
instead of a circled X.
|
|
172
|
+
- **Cascader** draws Input's field frame and the shared Combobox affordance
|
|
173
|
+
track; its clear sits beside a chevron aligned with Select's.
|
|
174
|
+
- **Visual: Badge `sm` and `md` are 2px taller** (20px and 23px) at the same
|
|
175
|
+
type size; inline badges are unchanged, and TagsInput chips follow.
|
|
176
|
+
- **NavigationTabs** keeps the current tab lifted under hover and press;
|
|
177
|
+
inactive tabs change colour only.
|
|
178
|
+
- **SignaturePad** draws, exports and previews typed names in the pad's font
|
|
179
|
+
(theme sans by default) instead of `cursive`, and fits long names by font
|
|
180
|
+
size; `signaturePadToSVG` accepts an optional `fontFamily`.
|
|
181
|
+
- **Fixes:** Dropzone centres both copy lines; IconBadge sizes child glyphs with
|
|
182
|
+
its icon role (SmartAccordion medallions render at 16px); Alert's icon and
|
|
183
|
+
action columns use Toast's 8px gap; content typography fits images to the
|
|
184
|
+
column.
|
|
185
|
+
- **Catalogue:** the deprecated Sheet page, the products main-column, actions
|
|
186
|
+
and support-rail pages and the sync page are retired; their URLs redirect to
|
|
187
|
+
the overlays, product overview and SchemaForm pages.
|
|
188
|
+
- **BatchActionBar** (`themelia-react-ui/base/batch-action-bar`): one selection
|
|
189
|
+
bar with a count, bulk actions and Clear, `floating` (docked, lifted, opaque)
|
|
190
|
+
or `inline`. The count is a polite live region, Escape inside the bar clears,
|
|
191
|
+
and focus returns to the list (or `returnFocusRef`) when the bar goes away.
|
|
192
|
+
DataTable, product variants and MediaLibrary's new `bulkActions` use it; the
|
|
193
|
+
old sticky selection toolbar and its overlap with the sticky topbar are gone.
|
|
194
|
+
- **Order blocks** in `blocks/commerce`: `OrderHeader` (payment and fulfilment
|
|
195
|
+
status axes), `FulfillmentGroup`, `OrderLineItem`, `OrderSummary`,
|
|
196
|
+
`OrderTransactions` and `OrderCustomer`, with an Orders catalogue group and an
|
|
197
|
+
Order detail composition. The shared money ledger `SummaryPanel` and
|
|
198
|
+
`AmountRow` now draw CartSummaryCard, TaxBreakdownCard, DiscountStackPreview,
|
|
199
|
+
InvoiceHeader and OrderSummary: no tinted box, one rule above a grand total.
|
|
200
|
+
- **Commerce blocks follow the source kit.** ShipmentTracking has a copyable
|
|
201
|
+
tracking number (`onCopyTracking`) and a timestamped checkpoint rail whose
|
|
202
|
+
current step is `aria-current="step"`; RefundStatusCard is an ordered list of
|
|
203
|
+
stages; PaymentMethod gains `variant="row"` and speaks `strings.formatCard`
|
|
204
|
+
("Visa ending 4242"); CartSummaryCard falls back to initials on a failed image
|
|
205
|
+
and adds `strings.formatQuantity`; DiscountStackPreview takes an optional
|
|
206
|
+
`kind` and `id`. Blocks pass native attributes to their root. `CartSummary`,
|
|
207
|
+
`DiscountStack`, `RefundStatus` and `PaymentMethodCard` are added as the source
|
|
208
|
+
kit's names for the same components. `Timeline` items expose `data-status` and
|
|
209
|
+
mark the current item `aria-current="step"`.
|
|
210
|
+
- **MetadataList** labels wrap in every layout and stay semibold; inline
|
|
211
|
+
`itemSeparator` is a middle dot hidden from screen readers; `render` output
|
|
212
|
+
takes the value style; the info trigger no longer grows its line; `icon` takes
|
|
213
|
+
any `ComponentType<{ className?: string }>`.
|
|
214
|
+
- **TagsInput fixes.** Multi-tag paste commits every tag, `sortTags` removes the
|
|
215
|
+
right tag, object tags are created from an empty value, a refused entry no
|
|
216
|
+
longer traps Tab, IME composition no longer commits, a typed delimiter splits,
|
|
217
|
+
single-token paste is native, and focus moves to the neighbouring chip after a
|
|
218
|
+
removal. Refused entries stay in the draft and are announced
|
|
219
|
+
(`strings.notAdded`). New `defaultValue`, `name` (hidden `name[]` inputs) and
|
|
220
|
+
ARIA pass-through; `TagsInputStrings` and `defaultTagsInputStrings` are
|
|
221
|
+
exported.
|
|
222
|
+
- **Order and commerce block fixes.** ShipmentTracking marks no checkpoint
|
|
223
|
+
current before the parcel reaches the first one. FulfillmentGroup keeps its
|
|
224
|
+
`items` rows when a conditional `children` renders nothing, takes Card's
|
|
225
|
+
default rules instead of forcing them, and accepts `headerDivider` /
|
|
226
|
+
`footerDivider`. OrderTransactions signs only money that moved (a failed
|
|
227
|
+
refund shows no minus), spells each kind out without a glyph tile or tinted
|
|
228
|
+
row, and draws no frame of its own inside a card. PaymentMethod's `row`
|
|
229
|
+
variant drops the credit-card tile, which misnamed wallets. Order status chips
|
|
230
|
+
match the rest of the library (no dot), and InvoiceHeader shows its dates as
|
|
231
|
+
facts rather than money rows.
|
|
232
|
+
- **Item as a button or link.** An `Item` given `render` renders its media,
|
|
233
|
+
content, title, description, actions, header and footer as spans, so a
|
|
234
|
+
button row holds valid phrasing content. Layout and `data-slot` hooks are
|
|
235
|
+
unchanged.
|
|
236
|
+
- **Theme fixes.** Light `--sidebar-primary` and its foreground follow
|
|
237
|
+
`--primary`, as dark already did, so a brand theme colours the sidebar
|
|
238
|
+
selection in both modes (the default theme is unchanged). `themes/green.css`
|
|
239
|
+
drops its `--chart-1` override, which restated the default. Theme Studio's
|
|
240
|
+
light warning accent matches the shipped token again.
|
|
241
|
+
- **Filter pill focus.** Active filter segments draw the inset focus recipe
|
|
242
|
+
instead of clearing the ring, so keyboard focus no longer looks like hover.
|
|
243
|
+
- **Icons follow `--icon`.** Sidebar, tabs, breadcrumb, item media, pagination,
|
|
244
|
+
avatar-group, toaster and chart-legend icons use the `size-icon*` roles
|
|
245
|
+
instead of fixed sizes; at the default `--icon` nothing moves.
|
|
246
|
+
- **Design checks.** Design lint judges every `*ClassName` slot prop like
|
|
247
|
+
`className`, adds an `icon-size` rule, and rejects a cleared focus ring with
|
|
248
|
+
no replacement edge. `check:contract` adds theme-mode checks: one value per
|
|
249
|
+
mode, mode-dependent aliases restated in `.dark`, no role that follows another
|
|
250
|
+
in one mode while copying its value in the other, and no brand-theme no-ops.
|
|
251
|
+
- **One owner for shared geometry.** The clear-target size, the action and
|
|
252
|
+
control size steps and the corner formulas that fields, the sidebar, toasts,
|
|
253
|
+
calendars, the key-value editor and MetadataList each wrote by hand now come
|
|
254
|
+
from the generated `affordanceGeometry` recipes, and `check:contract` keeps
|
|
255
|
+
the rich-content corners on the same formulas as the radius tokens. The
|
|
256
|
+
sidebar's collapsed and off-canvas widths are defined once by
|
|
257
|
+
`shell-sidebar-vars`; Workspace's sidebar column reads `--shell-sidebar-width`;
|
|
258
|
+
the mobile range-calendar cell follows density; the toaster's corner is the
|
|
259
|
+
shell radius role. BatchActionBar's dock offset and MetadataList's info target
|
|
260
|
+
no longer read `:root`-resolved aliases, so a scoped `ThemeScope` spacing or
|
|
261
|
+
density reaches them, and a new `root-alias` design-lint rule keeps such reads
|
|
262
|
+
out.
|
|
263
|
+
- **Shared components instead of hand-built copies.** AI, metric, giftcard and
|
|
264
|
+
checklist blocks frame with `Card` instead of hand-built shells; progress bars
|
|
265
|
+
across blocks and features are `Progress`; avatar, step and status discs are
|
|
266
|
+
`IconBadge`, `Avatar` or Badge `dot`; count pills and resource chips are
|
|
267
|
+
`Badge`; the media facts list is `MetadataList`; spacing chains are `Stack`
|
|
268
|
+
gaps; the map card uses the popover surface recipe and the AI prompt frame the
|
|
269
|
+
shared field-state recipes. MetricComparison drops its nested tiles.
|
|
270
|
+
- **Table density.** Base `Table` takes `density` (`compact`, `default`,
|
|
271
|
+
`comfortable`; also `data-density` on the table) and owns head and cell
|
|
272
|
+
insets; DataTable passes its `size` through it instead of overriding cells,
|
|
273
|
+
and headers lose the fixed `h-12`, so they follow density. Consumer
|
|
274
|
+
`cellClassName` padding now wins.
|
|
275
|
+
- **Typography through props.** `InlineStat` takes `valueWeight` and renders its
|
|
276
|
+
value in the provider text size; `AiShimmer` takes `size`; field labels share
|
|
277
|
+
one line box (`formLabelLineClass`); link-styled text shares the 0.2em
|
|
278
|
+
underline offset; library components set size, weight and leading through
|
|
279
|
+
`Text`/`Heading` props, and `no-restyle` now enforces that in library code.
|
|
280
|
+
- **Shared recipes for repeated choices.** Anchored surfaces (popovers, menus,
|
|
281
|
+
Select, Combobox, map and chart popups) take their viewport bound from the
|
|
282
|
+
shared surface recipe, and their widths from one `popoverWidthRecipes` scale;
|
|
283
|
+
the kanban card menu widens from 11rem to 12rem, the default filter popover
|
|
284
|
+
from 16rem to 18rem and ActionMenu's minimum from 9rem to 10rem. Status dots
|
|
285
|
+
use `dotRecipes` (6px beside text, 8px as a marker). The unread and stale
|
|
286
|
+
`theme` section of the token contract is removed.
|
|
287
|
+
- **Tabs chips.** `TabsList` takes `variant="chips"`: wrapping, trackless toggle
|
|
288
|
+
chips with the muted hover and accent pressed fill. Saved views and filter
|
|
289
|
+
presets use it instead of overriding the default track.
|
|
290
|
+
- **Smaller shared pieces.** AI source and citation numbers sit in `IconBadge`
|
|
291
|
+
(24px, up from a 20px hand-built disc). Native buttons that draw their own
|
|
292
|
+
shape start from `interactionRecipes.nativeButtonReset`.
|
|
293
|
+
- **Appointment calendar.** New `features/appointment-calendar` entrypoint:
|
|
294
|
+
`AppointmentCalendar` puts a month with category dots beside the day or week
|
|
295
|
+
agenda, with category and staff filters, booked and conflict counts and a
|
|
296
|
+
dismissible double-booking alert. Overlaps are found per staff member across
|
|
297
|
+
every category. `onAppointmentClick` opens a row, `appointmentActions` adds a
|
|
298
|
+
per-row commands menu, `onRangeChange` reports the days on screen for loading,
|
|
299
|
+
and `loading`, `error` and `onRetry` cover the agenda's states.
|
|
300
|
+
`renderAppointment` renders custom rows from a context with the category
|
|
301
|
+
colour, conflict, status, time, `open`, actions, a ready actions menu and
|
|
302
|
+
`defaultRender`; the calendar is generic over the app's appointment type.
|
|
303
|
+
`appointmentsOn`, `filterAppointments` and `findConflicts` are exported for
|
|
304
|
+
apps that pre-compute their own view.
|
|
305
|
+
- **Editor body height.** RichTextEditor takes `bodyHeight` (`control`, `field`
|
|
306
|
+
or `document`); `minHeight` still wins. The comment composer uses `field`, so
|
|
307
|
+
its empty editor is one textarea tall, 1rem taller than before.
|
|
308
|
+
|
|
309
|
+
## 2.0.1 — 2026-10-18
|
|
310
|
+
|
|
311
|
+
One shared recipe and design-lint rule for each visual state, the fixes the new
|
|
312
|
+
drift checks found, and one command row and record-page recipe for every page
|
|
313
|
+
header. No public export or prop is removed. Additions: `header.tabs` on Page
|
|
314
|
+
(`PageHeaderTabs`); `primaryAction`, `secondaryActions`, `moreActionsLabel` and
|
|
315
|
+
`renderLink` on PageHeading, ResourceHeader, the resource shells and
|
|
316
|
+
SettingsShell, and `primaryAction` on WorkspaceRecordHeader;
|
|
317
|
+
`toPageHeaderAction` in `services/actions`; an optional `toggle` flag on
|
|
318
|
+
`ToolbarButtonConfig` and `RichTextEditorToolbarItem`; `context` on
|
|
319
|
+
`ActionMenu` (`ActionMenuContext`); an optional `actions.menuLabel` in DataTable
|
|
320
|
+
strings. `PageActions`, `PageAction` and `toPageAction` are deprecated.
|
|
321
|
+
|
|
322
|
+
### Upgrading from 2.0.0
|
|
323
|
+
|
|
324
|
+
- **Focus and control borders.** Library controls draw the soft `--input`
|
|
325
|
+
boundary and one shared focus indicator. Drop `ring-2`, `ring-offset-*` or
|
|
326
|
+
full-strength `ring-ring` focus classes passed to library controls; the
|
|
327
|
+
consumer checker reports them as `focus-ring-recipe`. Themes that override
|
|
328
|
+
`--ring` should keep it at 3:1 against their surfaces.
|
|
329
|
+
- **Page commands.** Replace a `PageActions` ribbon or hand-built buttons in a
|
|
330
|
+
header's `actions` with `primaryAction` (one) and ordered `secondaryActions`;
|
|
331
|
+
mark irreversible commands `destructive: true` and confirm them in the
|
|
332
|
+
handler. `actions` stays for non-command controls such as a period select.
|
|
333
|
+
Move section tabs placed at the top of a Page body into `header.tabs`. The
|
|
334
|
+
consumer checker reports the old shapes as `page-command-roles`.
|
|
335
|
+
- **Overflow trigger names.** Overflow triggers are named "More actions" by
|
|
336
|
+
default. This replaces "Open menu" (`ActionMenu` `strings.openMenuLabel`),
|
|
337
|
+
"Card actions" (Card `actionsLabel`), "Actions" (ContentBlock and DataTable
|
|
338
|
+
row menus) and "Page actions" (`PageActions` `strings.menuLabel`). Update
|
|
339
|
+
tests or automation that find these buttons by name, or pass the old copy
|
|
340
|
+
through those strings. The DataTable actions column header stays "Actions"
|
|
341
|
+
(`strings.actions.triggerLabel`); the row trigger's name moves to the new
|
|
342
|
+
`strings.actions.menuLabel`. Copy that sets only `triggerLabel`, as localized
|
|
343
|
+
tables did before, keeps naming the trigger with it.
|
|
344
|
+
- **Overflow trigger size and glyph.** An icon-only `ActionMenu` trigger now
|
|
345
|
+
follows `UIProvider.density.defaultScale` instead of always rendering at
|
|
346
|
+
`md`; pass `buttonProps.size` to match the controls beside it. The default
|
|
347
|
+
glyph is the horizontal ellipsis (`MoreHorizontal`) rather than
|
|
348
|
+
`MoreVertical`; `icon` still overrides it.
|
|
349
|
+
- **State styling.** Hover, selection, pressed, status-tint, divider, disabled,
|
|
350
|
+
motion, corner and stacking classes passed to library rows and tiles should
|
|
351
|
+
follow the shared roles below. Pressed toggles, including AI feedback votes,
|
|
352
|
+
editor formatting buttons and the editor's source view, show the accent fill
|
|
353
|
+
instead of a status colour or a solid primary fill. `HighlightedText`'s
|
|
354
|
+
default `highlightClassName` is the shared match mark: foreground text on the
|
|
355
|
+
warning tint.
|
|
356
|
+
|
|
357
|
+
### Changes
|
|
358
|
+
|
|
359
|
+
- **Visual: the More actions menu ends the page header's command row.** Page
|
|
360
|
+
commands render as the secondary commands, then the primary command, then the
|
|
361
|
+
More actions menu (`[secondary…] [primary] [⋯]`); 2.0.0 placed the menu
|
|
362
|
+
between the secondary and primary commands. The menu trigger takes the
|
|
363
|
+
secondary treatment, an outline square at the commands' own height, including
|
|
364
|
+
under a compact `UIProvider` scale; it was a ghost glyph at the default size.
|
|
365
|
+
- **Visual: one overflow trigger.** Every overflow menu shares one `ActionMenu`
|
|
366
|
+
trigger recipe (`action-menu.recipes.ts`). It draws the `⋯` glyph, is named
|
|
367
|
+
"More actions", and is a square at the size of the controls beside it, or at
|
|
368
|
+
the provider scale when nothing sits beside it. `context="inline"`, the
|
|
369
|
+
default, is a quiet ghost square with a muted glyph for rows, cards and
|
|
370
|
+
footers. `context="commands"` is the outline square beside outline commands,
|
|
371
|
+
which the page header's More actions trigger now takes from the recipe.
|
|
372
|
+
Card headers, DataTable rows, Kanban items and the EmailComposer footer
|
|
373
|
+
follow the provider scale. Activity rows and ApiKeyList match their own
|
|
374
|
+
compact expand and add controls. `PageActions` uses the outline treatment at
|
|
375
|
+
its inline `size`. The library no longer hand-sets trigger sizes, styles or
|
|
376
|
+
glyphs.
|
|
377
|
+
- **The menu ends any row with a primary command.** The EmailComposer footer
|
|
378
|
+
renders `[Discard] … [Send] [⋯]`, where 2.0.0 placed the menu before Send.
|
|
379
|
+
Send and the menu wrap together, so the menu never sits alone on a narrow
|
|
380
|
+
line.
|
|
381
|
+
- **One menu per header, destructive commands last.** `ProductVariantDetails`
|
|
382
|
+
merges its default variant commands (Open, Edit, Duplicate, Delete) into the
|
|
383
|
+
card's own `actions` menu. Its header no longer shows a second, differently
|
|
384
|
+
sized `⋯`, and Delete sorts last. A custom `renderActions` still renders in
|
|
385
|
+
the header. The product variants bulk bar places Delete after Apply and any
|
|
386
|
+
`renderBulkActions` content.
|
|
387
|
+
- **Overflow trigger enforcement.** The `overflow-trigger` rule in
|
|
388
|
+
`check:contract` rejects overflow glyph imports outside the ActionMenu owner,
|
|
389
|
+
raw UI, pagination and the OverflowTabBar More tab. It also rejects icon-only
|
|
390
|
+
`ActionMenu` triggers that set `tone`, `buttonStyle`, `iconOnly` or
|
|
391
|
+
action-size classes through `buttonProps`.
|
|
392
|
+
`tests/browser/overflow-trigger.spec.ts` checks order, heights and every
|
|
393
|
+
opened menu at 390px and 1440px in light and dark.
|
|
394
|
+
- **One command row for every header.** PageHeading owns the role-based row,
|
|
395
|
+
and `PageHeaderAction` moves to `base/navigation` (still exported from
|
|
396
|
+
`layout/page`). Page and PageHeader pass their commands to it; ResourceHeader,
|
|
397
|
+
ResourceIndexShell, ResourceShowShell and TabbedResourceShell
|
|
398
|
+
(`ResourceHeaderCommandProps`), SettingsShell and WorkspaceRecordHeader take
|
|
399
|
+
the same `primaryAction` and `secondaryActions` and render the same row after
|
|
400
|
+
their custom `actions`. WorkspaceRecordHeader's `secondaryActions` accepts
|
|
401
|
+
command objects; rendered elements keep their previous cluster.
|
|
402
|
+
- **Section tabs in the page header.** `header.tabs` renders a record's
|
|
403
|
+
sections under the header's copy and commands with the shared OverflowTabBar:
|
|
404
|
+
`badge` shows a count, tabs that do not fit move into a More menu, the active
|
|
405
|
+
tab stays visible, and `onValueChange` switches the section or routes.
|
|
406
|
+
- **Deprecated `PageActions`.** Its ribbon defaulted inline commands to solid
|
|
407
|
+
secondary buttons beside a larger ghost menu trigger and collapsed by viewport
|
|
408
|
+
width. Pass commands by role instead, or use ActionButtons for a toolbar.
|
|
409
|
+
`toPageHeaderAction` adapts a resolved action to a role-based command, with a
|
|
410
|
+
destructive tone marking it destructive.
|
|
411
|
+
- **One record-page recipe.** The detail recipe, the resource-detail build
|
|
412
|
+
recipe and a new Page example show a record with one status badge,
|
|
413
|
+
role-based commands, a confirmed destructive command and section tabs with
|
|
414
|
+
counts. Catalogue examples for PageHeading, resources, workspaces, settings,
|
|
415
|
+
app shells and tables use role-based commands; the consumer docs no longer
|
|
416
|
+
recommend card dividers, footer command rows or decorative title icons.
|
|
417
|
+
- **Consumer checker.** `page-command-roles` also flags PageActions,
|
|
418
|
+
ActionButtons and ActionMenu in a header's `actions`, and covers PageHeading,
|
|
419
|
+
the resource shells, WorkspaceRecordHeader and SettingsShell.
|
|
420
|
+
`decorative-icon` flags a page `titleIcon` without a link or handler, and an
|
|
421
|
+
icon on more than one page command. `raw-button` no longer flags a native
|
|
422
|
+
button passed as a package owner's `render`, such as an Item row rendered as
|
|
423
|
+
a button; the owner keeps that root's focus edge and row anatomy. Local
|
|
424
|
+
components passing a native button are still reviewed.
|
|
425
|
+
- **Teaching material follows the house rules.** Catalogue examples, templates
|
|
426
|
+
and the shipped consumer examples use an untoned Button for neutral commands
|
|
427
|
+
(a `tone="secondary"` Button without `buttonStyle` renders solid), spell
|
|
428
|
+
neutral badges `tone="neutral"`, space siblings with Stack, Grid and
|
|
429
|
+
AdaptiveGrid instead of flex/grid gap divs or `space-y` margins, and drop
|
|
430
|
+
decorative title tiles. The order, product, customer, staff and overview
|
|
431
|
+
templates keep Page's default measure; the order template's fulfillment is
|
|
432
|
+
its `header.primaryAction`, the staff template's suspension is a
|
|
433
|
+
`destructive: true` secondary action confirmed by ConfirmDialog, and neither
|
|
434
|
+
repeats the header's status badge in a card or fact list.
|
|
435
|
+
- **Agent guidance closes the loop.** The consumer skill ships a project
|
|
436
|
+
instructions block (`references/agents-md.md`) to paste into an app's
|
|
437
|
+
`AGENTS.md`: under 2,000 characters, version-stamped in its start marker,
|
|
438
|
+
generated and verified by `check:skill`, and naming only scripts that ship
|
|
439
|
+
with the skill. The installed identity recipe reports the block as missing,
|
|
440
|
+
current or stale. SKILL.md and the review guide now make the composition
|
|
441
|
+
checker the agent's done condition (no errors on changed files, at most three
|
|
442
|
+
fix rounds, then the app's typecheck, lint and tests) with a five-line
|
|
443
|
+
hand-back, instead of calling it optional.
|
|
444
|
+
- **Consumer-skill evals.** `evals/consumer-skill` holds eight admin tasks,
|
|
445
|
+
five of them temptations such as a red Delete button or hand-made KPI cards,
|
|
446
|
+
each with a reference and a naive solution. `scripts/consumer-evals.mjs`
|
|
447
|
+
scores agent outputs with the shipped checker, imports and source patterns,
|
|
448
|
+
and `check:agent` proves every reference passes and every naive version fails.
|
|
449
|
+
- **Fix: destructive activity actions.** ActivityFeed row menus passed the
|
|
450
|
+
action tone as an unknown `variant` field, so a destructive action lost its
|
|
451
|
+
destructive treatment and its place at the end of the menu.
|
|
452
|
+
- **Visual: one control boundary and one focus indicator.** `--input` is the
|
|
453
|
+
single control boundary: fields, select and date triggers, checkboxes, radios,
|
|
454
|
+
switch tracks, upload targets and outline buttons all draw it, so adjoining
|
|
455
|
+
controls read as one family. It is now soft and translucent
|
|
456
|
+
(`oklch(0.28 0 0 / 15%)` in light, white at 15% in dark) and reads the same on
|
|
457
|
+
every surface, replacing the 3:1 gray of 2.0.0 (`oklch(0.62 0 0)`, white at
|
|
458
|
+
40% in dark) that made fields and selects read darker than the outline buttons
|
|
459
|
+
beside them; `--border` stays the divider color, and the repeater's empty
|
|
460
|
+
placeholder uses it. Every focused element draws one indicator from
|
|
461
|
+
`src/lib/focus-recipes.ts`: a 1px `--ring` edge at full strength (the
|
|
462
|
+
control's own border, an inset edge on borderless rows and regions, or an
|
|
463
|
+
outline just outside link and text-button glyphs) inside a soft 3px halo of
|
|
464
|
+
`--ring` at 50%. It replaces the 2px full-strength and offset rings, which
|
|
465
|
+
read as a heavier border. The edge carries the 3:1 contrast. An invalid field
|
|
466
|
+
keeps its destructive border at rest and while focused, where the halo turns
|
|
467
|
+
destructive; there is no resting halo. Focus on a MediaGallery tile is drawn
|
|
468
|
+
inside the tile, where its overflow clipping had hidden it. Design lint's
|
|
469
|
+
`focus-ring-recipe` rule (replacing `focus-ring-contrast`) rejects other focus
|
|
470
|
+
ring widths, offsets and halo strengths in library source and on imported
|
|
471
|
+
consumer controls. The contrast contract keeps `--ring` and `--sidebar-ring`
|
|
472
|
+
at 3:1 and checks `--input` against a 1.3:1 visibility floor on background,
|
|
473
|
+
card, popover, muted, accent and secondary surfaces.
|
|
474
|
+
- **Visual: one recipe per state family.** Each family that had several local
|
|
475
|
+
spellings now has one owner and a design-lint rule that cannot acquire
|
|
476
|
+
migration debt.
|
|
477
|
+
- Rows (navigation, lists, trees, results, menus) hover and select with
|
|
478
|
+
`--accent`, and the current location adds medium weight, so a hover never
|
|
479
|
+
reads as current. Ghost and outline buttons hover with the same fill and its
|
|
480
|
+
`--accent-foreground`; a component's own hover colour still wins.
|
|
481
|
+
- Toggles hover with `--muted` and press with `--accent`. Tables keep a
|
|
482
|
+
quieter `muted` ladder for stripes, hover and selection. Segmented tracks
|
|
483
|
+
lift the active segment to `--card`.
|
|
484
|
+
- Text never takes opacity: faded secondary text, which fell under 4.5:1, uses
|
|
485
|
+
the typography roles.
|
|
486
|
+
- Dividers are `--border` at full strength on surface edges and at 60% between
|
|
487
|
+
rows.
|
|
488
|
+
- Disabled content dims once, to 50%.
|
|
489
|
+
- Status and emphasis tints use one scale per tone
|
|
490
|
+
(`src/lib/tone-recipes.ts`): a wash for large surfaces, a tint for chips,
|
|
491
|
+
badges and icon tiles, and an edge, halo and line strength. The contrast
|
|
492
|
+
contract tests each tone's ink on its tint. Badges, alerts, avatars, icon
|
|
493
|
+
tiles, activity, search, calendar, timeline, commerce and AI blocks share
|
|
494
|
+
it. Search matches and edit diffs use one inline mark, and the heatmap and
|
|
495
|
+
distribution ruler keep their data ramps.
|
|
496
|
+
- Colour, border and shadow state changes keep the default 150ms transition.
|
|
497
|
+
- Corners derive from `--radius`: the fixed 4px `rounded` and the t-shirt
|
|
498
|
+
steps in raw UI, skeletons and chips are gone.
|
|
499
|
+
- Stacking uses one scale: raised, sticky, sticky over sticky, chrome and
|
|
500
|
+
overlay.
|
|
501
|
+
- SectionNav links gain the shared focus indicator, borderless Item rows draw
|
|
502
|
+
the focus edge inset, and the column-resize handle marks focus in the ring
|
|
503
|
+
colour.
|
|
504
|
+
- Neutral fills use one strength per role: a wash for quiet regions, a band
|
|
505
|
+
for header, toolbar and footer strips, a solid track, a neutral chip and
|
|
506
|
+
neutral markers. Twenty strengths become five. Table heads, toolbars, empty
|
|
507
|
+
states, AI panels, auth and workspace regions, tab tracks, meters and
|
|
508
|
+
carousel dots share them.
|
|
509
|
+
- Elevation uses one theme shadow per role: resting, card, raised, lifted and
|
|
510
|
+
modal. The command palette's 2xl shadow, two custom table-frame shadows
|
|
511
|
+
(which glowed in dark mode) and a shadow colour override are gone.
|
|
512
|
+
- Keyboard-shortcut hints in the header search trigger and the global search
|
|
513
|
+
footer share one key-cap style.
|
|
514
|
+
- Floating chips over media, lifted panels over the auth art and the chat
|
|
515
|
+
composer band are opaque.
|
|
516
|
+
- A drift census budgets each family's vocabulary in `check:design-lint`, and
|
|
517
|
+
a rendered role-parity browser check measures hover, current, disabled and
|
|
518
|
+
focus in light and dark.
|
|
519
|
+
- Rich-text toolbar toggles announce their state. Built-in format buttons and
|
|
520
|
+
the source view expose `aria-pressed`; undo and redo do not.
|
|
521
|
+
`ToolbarButtonConfig` and `RichTextEditorToolbarItem` gain an optional
|
|
522
|
+
`toggle` flag; an extra toolbar item with `isActive` is a toggle unless it
|
|
523
|
+
sets `toggle: false`.
|
|
524
|
+
- Item titles that cannot fit end in an ellipsis on their text. The title row is
|
|
525
|
+
a flex container, where `text-overflow` has no effect, so a long token was
|
|
526
|
+
clipped mid-glyph instead: an applied coupon `SPRING2026` read as `SPRING202`.
|
|
527
|
+
Truncating titles in citations, vendor profiles, gift cards and attachments
|
|
528
|
+
benefit too. The applied coupon also carries its full code as a `title`.
|
|
529
|
+
|
|
3
530
|
## 2.0.0 — 2026-10-16
|
|
4
531
|
|
|
5
532
|
A major release. Untouched defaults now give a screen one deliberate primary
|
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.2`** · 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
|
|
@@ -41,7 +41,26 @@ Browser verification requires Playwright Chromium. An existing executable can be
|
|
|
41
41
|
|
|
42
42
|
## Consumer setup
|
|
43
43
|
|
|
44
|
-
Install a built tarball; use a registry release when available. React 19, React DOM 19, Base UI
|
|
44
|
+
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
|
+
|
|
46
|
+
Nested light/dark utilities use custom-property container style queries. Use
|
|
47
|
+
Chromium 111+, Safari 18.1+ or Firefox 151+ for this theme behavior. The nearest
|
|
48
|
+
mode class governs nested components and their scoped portals; see the
|
|
49
|
+
[theme guide](docs/consumer-skill/references/theming.md) for partial overrides.
|
|
50
|
+
|
|
51
|
+
Version 2.0.2 requires the companion `base-ui-react-1.8.0-kpo.2.tgz`
|
|
52
|
+
archive. It adds the public `Combobox.Root.dismissLabel` translation seam for both
|
|
53
|
+
screen-reader dismissal controls and preserves focus already restored inside a
|
|
54
|
+
parent popup when a nested popup closes. Install both versioned archives together; no
|
|
55
|
+
public registry release is required. The source checkout keeps the Base UI archive
|
|
56
|
+
beside `package.json` and pins it through the lockfile for reproducible `npm ci`.
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
npm install ./themelia-react-ui-2.0.2.tgz ./base-ui-react-1.8.0-kpo.2.tgz
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The source checkout retains `base-ui-react-1.8.0-kpo.2.patch`; its upstream
|
|
63
|
+
provenance and license are recorded in `THIRD_PARTY_NOTICES.md`.
|
|
45
64
|
|
|
46
65
|
After the initial registry release, install into a React 19 application with:
|
|
47
66
|
|
|
@@ -95,7 +114,7 @@ The shipped stylesheet follows `prefers-reduced-motion` automatically for these
|
|
|
95
114
|
| Base | `base/<family>` — controls, forms, buttons, cards, structure, navigation, menus, feedback, display, tables, uploads and specialist controls |
|
|
96
115
|
| Layout | `layout`, `layout/<family>` — application shell, authentication, containers, page, settings, header, navigation, sidebar, workspace and hooks |
|
|
97
116
|
| Blocks | `blocks/admin`, `ai`, `analytics`, `commerce`, `data-display`, `onboarding`, `timelines` (each prefixed `blocks/`) |
|
|
98
|
-
| Features | `features/activities`, `ai-chat`, `async-preview`, `combobox`, `comments`, `data-view`, `email-composer`, `event-calendar`, `filters`, `global-search`, `kanban`, `map`, `media-library`, `mentions`, `overlays`, `products`, `resource`, `resource-assignment`, `rich-text-editor`, `schema-form`, `suggestions`, `sync
|
|
117
|
+
| Features | `features/activities`, `ai-chat`, `appointment-calendar`, `async-preview`, `combobox`, `comments`, `data-view`, `email-composer`, `event-calendar`, `filters`, `global-search`, `kanban`, `map`, `media-library`, `mentions`, `overlays`, `products`, `resource`, `resource-assignment`, `rich-text-editor`, `schema-form`, `suggestions`, `sync` (deprecated), `table`, `theme-tweaker` (each prefixed `features/`) |
|
|
99
118
|
|
|
100
119
|
The complete machine-readable entry inventory is `scripts/entries.json`. Dialogs and confirmations use `ActionDialog`, `ActionDrawer`, `ConfirmDialog` and visibility/action hooks from `features/overlays`.
|
|
101
120
|
|
|
@@ -201,28 +220,42 @@ The default development URL opens the full component catalogue. The focused foun
|
|
|
201
220
|
|
|
202
221
|
`Button` separates `tone` from `buttonStyle` (`solid`, `outline`, `ghost`); the catalogue shows their matrix, sizes and loading/disabled states. Icon-only controls may omit children when an accessible label or tooltip is supplied. Badges use compact typography and insets rather than inheriting action geometry.
|
|
203
222
|
|
|
204
|
-
Use `titleSuffix` for card status, count and version badges. `headerStart` is full-width pre-title context, and `headerAction`/`actions` own controls. Card owns token-spaced title/suffix wrapping for all surface modes.
|
|
223
|
+
Use `titleSuffix` for card status, count and version badges. `headerStart` is full-width pre-title context, and `headerAction`/`actions` own controls. Card owns token-spaced title/suffix wrapping for all surface modes. Give a card one quick control in `headerAction`, a command list in `actions` (its More actions menu) and the commit action in `footerSlot`; a framed card rules the footer off by default. Reserve body actions for a specific content step. Card owns aligned card insets, frames and expand/collapse behavior; Use `Card surface="flat" padding="none"` for card-free content hierarchy. ChartCard exposes `titleSuffix` too. Use `headerPlacement="frame"` for a header above an inset body. SmartCard and ContentBlock remain deprecated migration adapters; new code uses Card.
|
|
205
224
|
|
|
206
225
|
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.
|
|
207
226
|
|
|
208
|
-
|
|
209
|
-
`secondaryActions
|
|
210
|
-
into
|
|
227
|
+
Header commands are role-based: one `primaryAction` and ordered
|
|
228
|
+
`secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow,
|
|
229
|
+
destructive commands and narrow widths moved into the More actions menu that
|
|
230
|
+
ends the row. Page, PageHeader, PageHeading, the resource shells,
|
|
231
|
+
WorkspaceRecordHeader and SettingsShell share that row; keep `actions` for
|
|
232
|
+
non-command controls. `header.tabs` puts a record's section tabs, with counts,
|
|
233
|
+
under its header.
|
|
234
|
+
|
|
235
|
+
Every overflow menu shares one `ActionMenu` trigger: the `⋯` glyph named "More
|
|
236
|
+
actions", a quiet ghost square in rows and cards (`context="inline"`, the
|
|
237
|
+
default) or an outline square beside outline commands (`context="commands"`),
|
|
238
|
+
at the size of the controls beside it (`buttonProps.size`) or the provider
|
|
239
|
+
scale. The menu comes after any primary command in its row, and destructive
|
|
240
|
+
entries stay last.
|
|
211
241
|
Page owns inline and block padding, defaulting to the large surface role;
|
|
212
242
|
PageViewport owns scrolling and supplies no inset. Use `Page narrow` for a
|
|
213
243
|
centered single resource; explicit `maxWidth` wins. Page headers use dense copy
|
|
214
|
-
gaps. Ordinary cards retain default `md` padding
|
|
215
|
-
|
|
244
|
+
gaps. Ordinary framed cards retain default `md` padding and rule header, body and
|
|
245
|
+
footer apart by default; flat, card-free structure draws no rule unless asked. Set
|
|
246
|
+
`card.defaultHeaderDivider` and `card.defaultFooterDivider` to `false` for an app
|
|
247
|
+
that separates card regions by spacing alone.
|
|
216
248
|
AppSidebar offers pinned `slots.headerStart`/`headerEnd` around its workspace
|
|
217
249
|
region, compact navigation and a separated footer. The
|
|
218
250
|
[complete shell recipe](docs/consumer-skill/examples/app-layout.tsx) demonstrates
|
|
219
251
|
public workspace/account controls and application-owned callbacks.
|
|
220
252
|
|
|
221
253
|
Choose one ordinary card surface through `card.defaultSurface`; explicit per-card
|
|
222
|
-
surfaces win.
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
254
|
+
surfaces win. Leave Card's `icon` slot for a glyph that carries state or a
|
|
255
|
+
brand; titles name the subject. `headerPlacement` chooses inside/frame
|
|
256
|
+
composition independently. Independent framed peers use `gap="2xl"`, matching
|
|
257
|
+
Page and TwoColumnLayout's rhythm, since outer rings consume a smaller DOM gap.
|
|
258
|
+
MetadataList (`themelia-react-ui/base/metadata-list`) keeps semibold labels and normal primary values in both densities.
|
|
226
259
|
Dashboard KPIs use Metric/MetricGrid/MetricBar; quotas use the focused UsageCard
|
|
227
260
|
owner. See [analytics selection](docs/consumer-skill/references/analytics.md) and
|
|
228
261
|
the [resource page recipe](docs/consumer-skill/examples/detail.tsx).
|
|
@@ -276,7 +309,7 @@ purpose from its name or read every document before starting a screen.
|
|
|
276
309
|
|
|
277
310
|
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.
|
|
278
311
|
|
|
279
|
-
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.
|
|
312
|
+
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.2/` 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.
|
|
280
313
|
|
|
281
314
|
`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.
|
|
282
315
|
|