themelia-react-ui 2.0.0 → 2.0.1
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 +351 -0
- package/README.md +26 -13
- package/dist/{accordion-CQXVcd7Q.js → accordion-B6a3vVgA.js} +84 -82
- package/dist/accordion-B6a3vVgA.js.map +1 -0
- package/dist/action-menu-TzCoSlwL.js +280 -0
- package/dist/action-menu-TzCoSlwL.js.map +1 -0
- package/dist/{affordance-geometry.generated-CCIXb2A1.js → affordance-geometry.generated-B5iu-Mkr.js} +3 -2
- package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +1 -0
- package/dist/{ai-artifact-2PQ2fItc.js → ai-artifact-BMJdv-6q.js} +379 -376
- package/dist/ai-artifact-BMJdv-6q.js.map +1 -0
- package/dist/{app-shell-BE_j8-AT.js → app-shell-ZK5RWdo6.js} +4 -4
- package/dist/{app-shell-BE_j8-AT.js.map → app-shell-ZK5RWdo6.js.map} +1 -1
- package/dist/attachment-BtfhGm8i.js +245 -0
- package/dist/attachment-BtfhGm8i.js.map +1 -0
- package/dist/{auth-M3vGMgDR.js → auth-CYxKfo69.js} +237 -235
- package/dist/auth-CYxKfo69.js.map +1 -0
- package/dist/{avatar-djdaaQ_s.js → avatar-BBnEJIx8.js} +66 -65
- package/dist/avatar-BBnEJIx8.js.map +1 -0
- package/dist/badge-MrKVNzW9.js +93 -0
- package/dist/badge-MrKVNzW9.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 +13 -13
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +103 -115
- 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 +1 -1
- 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 +17 -17
- 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 +171 -170
- 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 +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +2 -2
- package/dist/base/toaster.js +2 -2
- 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-BZGDG-Si.js +104 -0
- package/dist/batch-action-bar-BZGDG-Si.js.map +1 -0
- package/dist/blocks/admin.js +173 -171
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +266 -263
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +440 -438
- 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 +1945 -1266
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +3 -2
- package/dist/blocks/onboarding.js +50 -49
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +25 -25
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +1 -1
- package/dist/breadcrumbs-D5t7I023.js +129 -0
- package/dist/breadcrumbs-D5t7I023.js.map +1 -0
- package/dist/{button-R9CCoH7A.js → button-QYwiyhD2.js} +15 -14
- package/dist/button-QYwiyhD2.js.map +1 -0
- package/dist/{button-BS3KDg00.js → buttons-SbIcm1HJ.js} +200 -213
- package/dist/buttons-SbIcm1HJ.js.map +1 -0
- package/dist/{cards-QoJ4syG9.js → cards-CiiHpKYd.js} +8 -8
- package/dist/cards-CiiHpKYd.js.map +1 -0
- package/dist/{chart-DwYRKKc-.js → chart-QfrARkXl.js} +5 -5
- package/dist/{chart-DwYRKKc-.js.map → chart-QfrARkXl.js.map} +1 -1
- package/dist/checkbox-DhB6K0bK.js +36 -0
- package/dist/checkbox-DhB6K0bK.js.map +1 -0
- package/dist/choice-inputs-t6w3ATNz.js +766 -0
- package/dist/choice-inputs-t6w3ATNz.js.map +1 -0
- package/dist/code-block-Dgbu-CU3.js +185 -0
- package/dist/code-block-Dgbu-CU3.js.map +1 -0
- package/dist/{collapsible-oMUGM4tr.js → collapsible-D8AEGU1-.js} +4 -4
- package/dist/{collapsible-oMUGM4tr.js.map → collapsible-D8AEGU1-.js.map} +1 -1
- package/dist/{collection-content-Ys-OZOkY.js → collection-content-uK16Grv0.js} +3 -3
- package/dist/{collection-content-Ys-OZOkY.js.map → collection-content-uK16Grv0.js.map} +1 -1
- package/dist/{combobox-6dvVny2q.js → combobox-2Ic8N9bL.js} +74 -68
- package/dist/combobox-2Ic8N9bL.js.map +1 -0
- package/dist/{combobox-CB7039j7.js → combobox-DLl0bfiq.js} +307 -305
- package/dist/combobox-DLl0bfiq.js.map +1 -0
- package/dist/{command-kPMPjIxJ.js → command-kNR20o7x.js} +7 -7
- package/dist/{command-kPMPjIxJ.js.map → command-kNR20o7x.js.map} +1 -1
- package/dist/{comments-You0Bzbr.js → comments-BpDuCUUu.js} +341 -339
- package/dist/comments-BpDuCUUu.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 +4 -4
- 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/choice-inputs/checkbox.d.ts +2 -2
- package/dist/components/base/choice-inputs/choice-types.d.ts +18 -6
- 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 +15 -12
- 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/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/text-inputs/field-clear-button.d.ts +6 -0
- 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/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 +43 -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/metadata/index.d.ts +30 -4
- 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/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 +4 -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 +1 -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 +45 -0
- 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.types.d.ts +32 -7
- 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/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 +4 -3
- package/dist/components/ui/checkbox.d.ts +4 -3
- package/dist/components/ui/overlay.recipes.d.ts +0 -9
- package/dist/components/ui/switch.d.ts +2 -2
- package/dist/{containers-D_L4mTVb.js → containers-DmWiJa2I.js} +36 -35
- package/dist/containers-DmWiJa2I.js.map +1 -0
- package/dist/{copyable-DDjTeW_j.js → copyable-B3Gwgdqc.js} +6 -6
- package/dist/{copyable-DDjTeW_j.js.map → copyable-B3Gwgdqc.js.map} +1 -1
- package/dist/data-display-DafIvCl5.js +960 -0
- package/dist/data-display-DafIvCl5.js.map +1 -0
- package/dist/{date-uf3z37Nm.js → date-BgK3bTdo.js} +5 -5
- package/dist/{date-uf3z37Nm.js.map → date-BgK3bTdo.js.map} +1 -1
- package/dist/date-picker-CF-DtUpF.js +1529 -0
- package/dist/date-picker-CF-DtUpF.js.map +1 -0
- package/dist/{date-pickers-CnFCb0n2.js → date-pickers-BmzxJl5l.js} +19 -19
- package/dist/{date-pickers-CnFCb0n2.js.map → date-pickers-BmzxJl5l.js.map} +1 -1
- package/dist/{display-DrdvPwF0.js → display-DsQTVzMz.js} +88 -87
- package/dist/display-DsQTVzMz.js.map +1 -0
- package/dist/{dropdown-menu-CURh59jb.js → dropdown-menu-E2qmdC7o.js} +7 -7
- package/dist/{dropdown-menu-CURh59jb.js.map → dropdown-menu-E2qmdC7o.js.map} +1 -1
- package/dist/features/activities.js +414 -501
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +170 -169
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/async-preview.js +8 -8
- 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 +139 -138
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +73 -71
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +278 -275
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +307 -310
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +95 -97
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +56 -57
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +918 -825
- 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 +1115 -1122
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +202 -194
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +25 -25
- 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 +33 -33
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +397 -396
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-C7nR0UtT.js → feedback-qNuMBtRH.js} +84 -83
- package/dist/feedback-qNuMBtRH.js.map +1 -0
- package/dist/{field-affordance-recipes-CkOCdE2y.js → field-affordance-recipes-qQeIf4lG.js} +8 -6
- package/dist/field-affordance-recipes-qQeIf4lG.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-BkHH53uv.js} +565 -563
- package/dist/filters-BkHH53uv.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-DUt4UxSV.js} +4 -4
- package/dist/{form-field-VZRULhUK.js.map → form-field-DUt4UxSV.js.map} +1 -1
- package/dist/{form-sizing-uWP4lzVh.js → form-sizing-By94KzXE.js} +19 -15
- package/dist/form-sizing-By94KzXE.js.map +1 -0
- package/dist/{forms-DDeEnXSY.js → forms-Bzha-Y3B.js} +22 -22
- package/dist/{forms-DDeEnXSY.js.map → forms-Bzha-Y3B.js.map} +1 -1
- package/dist/{forms-numeric-D3CO60IF.js → forms-numeric-C0bvjRPZ.js} +265 -264
- package/dist/forms-numeric-C0bvjRPZ.js.map +1 -0
- package/dist/{header-2ycNqGOR.js → header-BOefOKd1.js} +47 -51
- package/dist/header-BOefOKd1.js.map +1 -0
- package/dist/{hooks-DQ5SPwZw.js → hooks-9k_TtmKh.js} +2 -2
- package/dist/{hooks-DQ5SPwZw.js.map → hooks-9k_TtmKh.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-CAuKupo9.js +55 -0
- package/dist/icon-badge-CAuKupo9.js.map +1 -0
- package/dist/index.js +7 -7
- package/dist/input-DWhBBBww.js +262 -0
- package/dist/input-DWhBBBww.js.map +1 -0
- package/dist/{input-BoLm9Hks.js → input-Ddi_LSYv.js} +3 -3
- package/dist/{input-BoLm9Hks.js.map → input-Ddi_LSYv.js.map} +1 -1
- package/dist/interaction-recipes-CHr0dJUs.js +24 -0
- package/dist/interaction-recipes-CHr0dJUs.js.map +1 -0
- package/dist/{item-xzh8Df65.js → item-DEmDiTlD.js} +98 -97
- package/dist/item-DEmDiTlD.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 +1 -0
- package/dist/lib/field-affordance-recipes.d.ts +6 -1
- 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 +35 -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/token-merge.generated.d.ts +9 -6
- package/dist/lib/tone-recipes.d.ts +79 -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 +9 -0
- package/dist/lib/utils.js +1 -1
- package/dist/media-gallery-DcTtAaeC.js +203 -0
- package/dist/media-gallery-DcTtAaeC.js.map +1 -0
- package/dist/mentions-D-uyCh01.js +568 -0
- package/dist/mentions-D-uyCh01.js.map +1 -0
- package/dist/{message-YfFmbXNP.js → message-CdHgIWKf.js} +5 -5
- package/dist/{message-YfFmbXNP.js.map → message-CdHgIWKf.js.map} +1 -1
- package/dist/metadata-list-X5rYAKSB.js +394 -0
- package/dist/metadata-list-X5rYAKSB.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-D3KwXmaq.js +145 -0
- package/dist/navigation-D3KwXmaq.js.map +1 -0
- package/dist/navigation-HJf5zxlH.js +268 -0
- package/dist/navigation-HJf5zxlH.js.map +1 -0
- package/dist/{navigation-row-recipes-DlU-4QYO.js → navigation-row-recipes-BVowojQw.js} +2 -2
- package/dist/{navigation-row-recipes-DlU-4QYO.js.map → navigation-row-recipes-BVowojQw.js.map} +1 -1
- package/dist/{number-CKRBYmZK.js → number-DMhe-Vsk.js} +5 -5
- package/dist/{number-CKRBYmZK.js.map → number-DMhe-Vsk.js.map} +1 -1
- package/dist/overflow-tab-bar-sQHXLlwQ.js +280 -0
- package/dist/overflow-tab-bar-sQHXLlwQ.js.map +1 -0
- package/dist/overlay.recipes-8GHqmlb4.js +6 -0
- package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
- package/dist/overlays-I0axtYA6.js +999 -0
- package/dist/overlays-I0axtYA6.js.map +1 -0
- package/dist/page-B5dTH9gE.js +224 -0
- package/dist/page-B5dTH9gE.js.map +1 -0
- package/dist/page-header-commands-DjzFEq3E.js +126 -0
- package/dist/page-header-commands-DjzFEq3E.js.map +1 -0
- package/dist/{pagination-Cm0jqa3I.js → pagination-3bPA_a6K.js} +15 -15
- package/dist/{pagination-Cm0jqa3I.js.map → pagination-3bPA_a6K.js.map} +1 -1
- package/dist/{popover-Dcv_9jxr.js → popover-Di55PyAI.js} +8 -8
- package/dist/popover-Di55PyAI.js.map +1 -0
- package/dist/{popover-menu-DnRFKnHP.js → popover-menu-B71Tn2Qz.js} +6 -6
- package/dist/{popover-menu-DnRFKnHP.js.map → popover-menu-B71Tn2Qz.js.map} +1 -1
- package/dist/{popover.recipes-wmbvL8Ah.js → popover.recipes-Bdyhj2db.js} +2 -2
- package/dist/{popover.recipes-wmbvL8Ah.js.map → popover.recipes-Bdyhj2db.js.map} +1 -1
- package/dist/{primitives-BHrwQXFC.js → primitives-B-CkiEMU.js} +5 -5
- package/dist/{primitives-BHrwQXFC.js.map → primitives-B-CkiEMU.js.map} +1 -1
- package/dist/primitives.js +4 -4
- package/dist/{progress-Br9WTFya.js → progress-rnS8-uAW.js} +9 -9
- package/dist/{progress-Br9WTFya.js.map → progress-rnS8-uAW.js.map} +1 -1
- package/dist/{receipt-CV89q1fs.js → receipt-D0oswZ0p.js} +6 -6
- package/dist/{receipt-CV89q1fs.js.map → receipt-D0oswZ0p.js.map} +1 -1
- package/dist/rich-text-DvGulsNJ.js +78 -0
- package/dist/rich-text-DvGulsNJ.js.map +1 -0
- package/dist/rich-text-editor-sMU_Scqm.js +1204 -0
- package/dist/rich-text-editor-sMU_Scqm.js.map +1 -0
- package/dist/rich-text-editor.recipes-CadiF_Uu.js +88 -0
- package/dist/rich-text-editor.recipes-CadiF_Uu.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-Bt_vXY2b.js +48 -0
- package/dist/scroll-area-Bt_vXY2b.js.map +1 -0
- package/dist/{separator-Do5GWDYi.js → separator-C8DlRGwF.js} +3 -3
- package/dist/{separator-Do5GWDYi.js.map → separator-C8DlRGwF.js.map} +1 -1
- package/dist/{separator-BMEvwnSX.js → separator-CYHnjsAb.js} +2 -2
- package/dist/{separator-BMEvwnSX.js.map → separator-CYHnjsAb.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-CQW3b-Cu.js +170 -0
- package/dist/settings-CQW3b-Cu.js.map +1 -0
- package/dist/sheet-4SEvVYzA.js +210 -0
- package/dist/sheet-4SEvVYzA.js.map +1 -0
- package/dist/{sidebar-Crc9M9JV.js → sidebar-C7WWR29L.js} +180 -179
- package/dist/sidebar-C7WWR29L.js.map +1 -0
- package/dist/{sidebar-Cb8WzOvE.js → sidebar-d7Dg80ln.js} +16 -16
- package/dist/sidebar-d7Dg80ln.js.map +1 -0
- package/dist/{skeleton-DVMXr15h.js → skeleton-Cz890JZF.js} +9 -9
- package/dist/{skeleton-DVMXr15h.js.map → skeleton-Cz890JZF.js.map} +1 -1
- package/dist/smart-card-lFKxn5Hu.js +595 -0
- package/dist/smart-card-lFKxn5Hu.js.map +1 -0
- package/dist/{spinner-CmTAbEp0.js → spinner-fa3h1Aif.js} +7 -7
- package/dist/{spinner-CmTAbEp0.js.map → spinner-fa3h1Aif.js.map} +1 -1
- package/dist/{structure-hzCW-XsV.js → structure-DC2dygdA.js} +2 -2
- package/dist/{structure-hzCW-XsV.js.map → structure-DC2dygdA.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-D6zKeYQX.js → table-CIKyLUsy.js} +59 -58
- package/dist/table-CIKyLUsy.js.map +1 -0
- package/dist/table-CrcLN9Io.js +1458 -0
- package/dist/table-CrcLN9Io.js.map +1 -0
- package/dist/{tabs-Dk8E_knt.js → tabs-DwBJfjxX.js} +58 -57
- package/dist/tabs-DwBJfjxX.js.map +1 -0
- package/dist/{text-inputs-BFpku0Qd.js → text-inputs-aaK9wcDT.js} +74 -79
- package/dist/text-inputs-aaK9wcDT.js.map +1 -0
- package/dist/theme.css +3 -3
- package/dist/{timelines-CxuAFIc2.js → timelines-C_SBwHNP.js} +153 -150
- package/dist/timelines-C_SBwHNP.js.map +1 -0
- package/dist/tone-recipes-CPoExcTE.js +70 -0
- package/dist/tone-recipes-CPoExcTE.js.map +1 -0
- package/dist/tooltip-CsfgrfS7.js +111 -0
- package/dist/tooltip-CsfgrfS7.js.map +1 -0
- package/dist/{tree-BotPlyiD.js → tree-BiKhg8AY.js} +68 -66
- package/dist/tree-BiKhg8AY.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-DTRkE9zL.js +117 -0
- package/dist/typography-DTRkE9zL.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-D2_TeLqw.js → ui-provider-1D_NSYzO.js} +11 -3
- package/dist/ui-provider-1D_NSYzO.js.map +1 -0
- package/dist/ui-provider.js +3 -3
- package/dist/{upload-B0WHW7ak.js → upload-BO8-CLN6.js} +209 -209
- package/dist/upload-BO8-CLN6.js.map +1 -0
- package/dist/{upload-queue-BHZ_wBfd.js → upload-queue-EOC8g1gf.js} +109 -111
- package/dist/upload-queue-EOC8g1gf.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-obRaBskq.js} +46 -46
- package/dist/{usage-card-U0YBLTNT.js.map → usage-card-obRaBskq.js.map} +1 -1
- package/dist/{utils-Cospvlj1.js → utils-l5LpDw2z.js} +56 -24
- package/dist/utils-l5LpDw2z.js.map +1 -0
- package/dist/value-inputs-TAYMX111.js +947 -0
- package/dist/value-inputs-TAYMX111.js.map +1 -0
- package/dist/{value-typography-Deb3yQZg.js → value-typography-b8wpz1eX.js} +2 -2
- package/dist/{value-typography-Deb3yQZg.js.map → value-typography-b8wpz1eX.js.map} +1 -1
- package/dist/workspace-DH0v0KcB.js +407 -0
- package/dist/workspace-DH0v0KcB.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +19 -20
- 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 +51 -8
- package/docs/consumer-skill/references/design-contract.md +12 -3
- package/docs/consumer-skill/references/installation.md +11 -1
- package/docs/consumer-skill/references/public-api.json +847 -447
- package/docs/consumer-skill/references/review.md +25 -5
- package/docs/consumer-skill/references/theming.md +8 -4
- package/docs/consumer-skill/references/tokens.json +1 -1
- package/docs/consumer-skill/references/workflows.md +29 -10
- package/docs/consumer-skill/scripts/composition-policy.mjs +41 -11
- package/docs/consumer-skill/scripts/surface-policy.mjs +139 -5
- package/package.json +10 -2
- 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.map +0 -1
- 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.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.map +0 -1
- 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/display-DrdvPwF0.js.map +0 -1
- package/dist/feedback-C7nR0UtT.js.map +0 -1
- 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-sizing-uWP4lzVh.js.map +0 -1
- 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-DhQdBnV3.js +0 -255
- package/dist/input-DhQdBnV3.js.map +0 -1
- 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/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/popover-Dcv_9jxr.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/surface-recipes-DOdoBXGm.js +0 -28
- package/dist/surface-recipes-DOdoBXGm.js.map +0 -1
- 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.map +0 -1
- package/dist/text-inputs-BFpku0Qd.js.map +0 -1
- 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/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,356 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.1 — 2026-10-18
|
|
4
|
+
|
|
5
|
+
One shared recipe and design-lint rule for each visual state, the fixes the new
|
|
6
|
+
drift checks found, and one command row and record-page recipe for every page
|
|
7
|
+
header. No public export or prop is removed. Additions: `header.tabs` on Page
|
|
8
|
+
(`PageHeaderTabs`); `primaryAction`, `secondaryActions`, `moreActionsLabel` and
|
|
9
|
+
`renderLink` on PageHeading, ResourceHeader, the resource shells and
|
|
10
|
+
SettingsShell, and `primaryAction` on WorkspaceRecordHeader;
|
|
11
|
+
`toPageHeaderAction` in `services/actions`; an optional `toggle` flag on
|
|
12
|
+
`ToolbarButtonConfig` and `RichTextEditorToolbarItem`; `context` on
|
|
13
|
+
`ActionMenu` (`ActionMenuContext`); an optional `actions.menuLabel` in DataTable
|
|
14
|
+
strings; `align` on ConfirmDialog and ActionDialog with UIProvider overlay
|
|
15
|
+
defaults; `selecting`, `defaultSelecting`, `onSelectingChange` and `onItemOpen`
|
|
16
|
+
on MediaLibrary; `useRichTextImages` and `images` on RichTextEditor and
|
|
17
|
+
RichText; the `themelia-react-ui/base/metadata-list` entrypoint; an optional
|
|
18
|
+
`fontFamily` on `signaturePadToSVG`; the `themelia-react-ui/base/batch-action-bar`
|
|
19
|
+
entrypoint; the order blocks, `SummaryPanel` and `AmountRow` in `blocks/commerce`;
|
|
20
|
+
`valueAlign` on MetadataList; `defaultValue`, `name` and ARIA props on TagsInput.
|
|
21
|
+
`PageActions`, `PageAction`,
|
|
22
|
+
`toPageAction`, `features/sync`, the standalone product region cards, the
|
|
23
|
+
`blocks/data-display` MetadataList exports and `ActivityRow` `moreLabel` are
|
|
24
|
+
deprecated.
|
|
25
|
+
|
|
26
|
+
### Upgrading from 2.0.0
|
|
27
|
+
|
|
28
|
+
- **Focus and control borders.** Library controls draw the soft `--input`
|
|
29
|
+
boundary and one shared focus indicator. Drop `ring-2`, `ring-offset-*` or
|
|
30
|
+
full-strength `ring-ring` focus classes passed to library controls; the
|
|
31
|
+
consumer checker reports them as `focus-ring-recipe`. Themes that override
|
|
32
|
+
`--ring` should keep it at 3:1 against their surfaces.
|
|
33
|
+
- **Page commands.** Replace a `PageActions` ribbon or hand-built buttons in a
|
|
34
|
+
header's `actions` with `primaryAction` (one) and ordered `secondaryActions`;
|
|
35
|
+
mark irreversible commands `destructive: true` and confirm them in the
|
|
36
|
+
handler. `actions` stays for non-command controls such as a period select.
|
|
37
|
+
Move section tabs placed at the top of a Page body into `header.tabs`. The
|
|
38
|
+
consumer checker reports the old shapes as `page-command-roles`.
|
|
39
|
+
- **Overflow trigger names.** Overflow triggers are named "More actions" by
|
|
40
|
+
default. This replaces "Open menu" (`ActionMenu` `strings.openMenuLabel`),
|
|
41
|
+
"Card actions" (Card `actionsLabel`), "Actions" (ContentBlock and DataTable
|
|
42
|
+
row menus) and "Page actions" (`PageActions` `strings.menuLabel`). Update
|
|
43
|
+
tests or automation that find these buttons by name, or pass the old copy
|
|
44
|
+
through those strings. The DataTable actions column header stays "Actions"
|
|
45
|
+
(`strings.actions.triggerLabel`); the row trigger's name moves to the new
|
|
46
|
+
`strings.actions.menuLabel`. Copy that sets only `triggerLabel`, as localized
|
|
47
|
+
tables did before, keeps naming the trigger with it.
|
|
48
|
+
- **Overflow trigger size and glyph.** An icon-only `ActionMenu` trigger now
|
|
49
|
+
follows `UIProvider.density.defaultScale` instead of always rendering at
|
|
50
|
+
`md`; pass `buttonProps.size` to match the controls beside it. The default
|
|
51
|
+
glyph is the horizontal ellipsis (`MoreHorizontal`) rather than
|
|
52
|
+
`MoreVertical`; `icon` still overrides it.
|
|
53
|
+
- **State styling.** Hover, selection, pressed, status-tint, divider, disabled,
|
|
54
|
+
motion, corner and stacking classes passed to library rows and tiles should
|
|
55
|
+
follow the shared roles below. Pressed toggles, including AI feedback votes,
|
|
56
|
+
editor formatting buttons and the editor's source view, show the accent fill
|
|
57
|
+
instead of a status colour or a solid primary fill. `HighlightedText`'s
|
|
58
|
+
default `highlightClassName` is the shared match mark: foreground text on the
|
|
59
|
+
warning tint.
|
|
60
|
+
- **MetadataList moved to base.** Import `MetadataList`, its item types and
|
|
61
|
+
default strings from `themelia-react-ui/base/metadata-list`. The
|
|
62
|
+
`themelia-react-ui/blocks/data-display` re-exports keep working and are
|
|
63
|
+
deprecated. Labels render semibold.
|
|
64
|
+
- **MediaLibrary opens before it selects.** Activating an asset (click, Enter,
|
|
65
|
+
Space) calls `onItemOpen` or shows the details panel. Selection is an explicit
|
|
66
|
+
mode: `selecting`, `defaultSelecting` and `onSelectingChange`. Picker dialogs
|
|
67
|
+
start selecting; pass `defaultSelecting` where a library relied on selecting
|
|
68
|
+
by default.
|
|
69
|
+
- **ConfirmDialog is centred.** ConfirmDialog and ActionDialog accept
|
|
70
|
+
`align: 'start' | 'center'`, resolved from the prop, then the UIProvider
|
|
71
|
+
`overlay.defaultConfirmAlign` / `overlay.defaultDialogAlign` defaults, then
|
|
72
|
+
center for ConfirmDialog and start for ActionDialog.
|
|
73
|
+
- **Deprecated: `themelia-react-ui/features/sync`.** `SyncRangeDialogForm` is
|
|
74
|
+
application-specific; use `SchemaForm` with `radio-cards` and
|
|
75
|
+
`checkbox-cards` fields. The entrypoint still ships.
|
|
76
|
+
- **Deprecated: standalone product region cards and row menus.** Render them
|
|
77
|
+
through `ProductOverview` slots and the `renderOptionActions` /
|
|
78
|
+
`renderVariantActions` options. They stay exported.
|
|
79
|
+
- **Deprecated: `ActivityRow` `moreLabel`.** The collapsed metadata preview it
|
|
80
|
+
labelled is gone; secondary detail opens with the details disclosure.
|
|
81
|
+
- **Selection bars are a `BatchActionBar`.** DataTable's default selection
|
|
82
|
+
toolbar now docks to the bottom of the viewport (`floating`); pass
|
|
83
|
+
`selectionToolbarPlacement="inline"` to keep it in the table. Its summary and
|
|
84
|
+
the new `totalRowCount` prop default to `pagination.total`, so server-paginated
|
|
85
|
+
tables count the whole result. Product variant tables show an inline bar only
|
|
86
|
+
while variants are selected; `renderBulkActions` now replaces the default
|
|
87
|
+
commands, as documented (return `null` to keep them), and Delete no longer
|
|
88
|
+
repeats the count.
|
|
89
|
+
- **MetadataList rows.** `layout="rows"` draws rules only with `itemSeparator`,
|
|
90
|
+
and values start their column on `2fr/3fr` tracks. Pass `valueAlign="end"` for
|
|
91
|
+
the previous right-aligned figures, such as money columns.
|
|
92
|
+
- **TagsInput.** Chips sit inside the field, before the text input in Tab order;
|
|
93
|
+
the count and clear-all move to a footer under the field, and the placeholder
|
|
94
|
+
shows only while the field is empty. The input stays enabled at `maxTags`.
|
|
95
|
+
- **Commerce DOM hooks.** RefundStatusCard, CartSummaryCard,
|
|
96
|
+
DiscountStackPreview, TaxBreakdownCard and ShipmentTracking render on `Card`
|
|
97
|
+
and lose the `content-block--*` classes and `data-component="content-block"`;
|
|
98
|
+
their own `--component` classes stay. ShipmentTracking and InvoiceHeader show
|
|
99
|
+
a visible title with the status chip in its suffix.
|
|
100
|
+
|
|
101
|
+
### Changes
|
|
102
|
+
|
|
103
|
+
- **Visual: the More actions menu ends the page header's command row.** Page
|
|
104
|
+
commands render as the secondary commands, then the primary command, then the
|
|
105
|
+
More actions menu (`[secondary…] [primary] [⋯]`); 2.0.0 placed the menu
|
|
106
|
+
between the secondary and primary commands. The menu trigger takes the
|
|
107
|
+
secondary treatment, an outline square at the commands' own height, including
|
|
108
|
+
under a compact `UIProvider` scale; it was a ghost glyph at the default size.
|
|
109
|
+
- **Visual: one overflow trigger.** Every overflow menu shares one `ActionMenu`
|
|
110
|
+
trigger recipe (`action-menu.recipes.ts`). It draws the `⋯` glyph, is named
|
|
111
|
+
"More actions", and is a square at the size of the controls beside it, or at
|
|
112
|
+
the provider scale when nothing sits beside it. `context="inline"`, the
|
|
113
|
+
default, is a quiet ghost square with a muted glyph for rows, cards and
|
|
114
|
+
footers. `context="commands"` is the outline square beside outline commands,
|
|
115
|
+
which the page header's More actions trigger now takes from the recipe.
|
|
116
|
+
Card headers, DataTable rows, Kanban items and the EmailComposer footer
|
|
117
|
+
follow the provider scale. Activity rows and ApiKeyList match their own
|
|
118
|
+
compact expand and add controls. `PageActions` uses the outline treatment at
|
|
119
|
+
its inline `size`. The library no longer hand-sets trigger sizes, styles or
|
|
120
|
+
glyphs.
|
|
121
|
+
- **The menu ends any row with a primary command.** The EmailComposer footer
|
|
122
|
+
renders `[Discard] … [Send] [⋯]`, where 2.0.0 placed the menu before Send.
|
|
123
|
+
Send and the menu wrap together, so the menu never sits alone on a narrow
|
|
124
|
+
line.
|
|
125
|
+
- **One menu per header, destructive commands last.** `ProductVariantDetails`
|
|
126
|
+
merges its default variant commands (Open, Edit, Duplicate, Delete) into the
|
|
127
|
+
card's own `actions` menu. Its header no longer shows a second, differently
|
|
128
|
+
sized `⋯`, and Delete sorts last. A custom `renderActions` still renders in
|
|
129
|
+
the header. The product variants bulk bar places Delete after Apply and any
|
|
130
|
+
`renderBulkActions` content.
|
|
131
|
+
- **Overflow trigger enforcement.** The `overflow-trigger` rule in
|
|
132
|
+
`check:contract` rejects overflow glyph imports outside the ActionMenu owner,
|
|
133
|
+
raw UI, pagination and the OverflowTabBar More tab. It also rejects icon-only
|
|
134
|
+
`ActionMenu` triggers that set `tone`, `buttonStyle`, `iconOnly` or
|
|
135
|
+
action-size classes through `buttonProps`.
|
|
136
|
+
`tests/browser/overflow-trigger.spec.ts` checks order, heights and every
|
|
137
|
+
opened menu at 390px and 1440px in light and dark.
|
|
138
|
+
- **One command row for every header.** PageHeading owns the role-based row,
|
|
139
|
+
and `PageHeaderAction` moves to `base/navigation` (still exported from
|
|
140
|
+
`layout/page`). Page and PageHeader pass their commands to it; ResourceHeader,
|
|
141
|
+
ResourceIndexShell, ResourceShowShell and TabbedResourceShell
|
|
142
|
+
(`ResourceHeaderCommandProps`), SettingsShell and WorkspaceRecordHeader take
|
|
143
|
+
the same `primaryAction` and `secondaryActions` and render the same row after
|
|
144
|
+
their custom `actions`. WorkspaceRecordHeader's `secondaryActions` accepts
|
|
145
|
+
command objects; rendered elements keep their previous cluster.
|
|
146
|
+
- **Section tabs in the page header.** `header.tabs` renders a record's
|
|
147
|
+
sections under the header's copy and commands with the shared OverflowTabBar:
|
|
148
|
+
`badge` shows a count, tabs that do not fit move into a More menu, the active
|
|
149
|
+
tab stays visible, and `onValueChange` switches the section or routes.
|
|
150
|
+
- **Deprecated `PageActions`.** Its ribbon defaulted inline commands to solid
|
|
151
|
+
secondary buttons beside a larger ghost menu trigger and collapsed by viewport
|
|
152
|
+
width. Pass commands by role instead, or use ActionButtons for a toolbar.
|
|
153
|
+
`toPageHeaderAction` adapts a resolved action to a role-based command, with a
|
|
154
|
+
destructive tone marking it destructive.
|
|
155
|
+
- **One record-page recipe.** The detail recipe, the resource-detail build
|
|
156
|
+
recipe and a new Page example show a record with one status badge,
|
|
157
|
+
role-based commands, a confirmed destructive command and section tabs with
|
|
158
|
+
counts. Catalogue examples for PageHeading, resources, workspaces, settings,
|
|
159
|
+
app shells and tables use role-based commands; the consumer docs no longer
|
|
160
|
+
recommend card dividers, footer command rows or decorative title icons.
|
|
161
|
+
- **Consumer checker.** `page-command-roles` also flags PageActions,
|
|
162
|
+
ActionButtons and ActionMenu in a header's `actions`, and covers PageHeading,
|
|
163
|
+
the resource shells, WorkspaceRecordHeader and SettingsShell.
|
|
164
|
+
`decorative-icon` flags a page `titleIcon` without a link or handler, and an
|
|
165
|
+
icon on more than one page command. `raw-button` no longer flags a native
|
|
166
|
+
button passed as a package owner's `render`, such as an Item row rendered as
|
|
167
|
+
a button; the owner keeps that root's focus edge and row anatomy. Local
|
|
168
|
+
components passing a native button are still reviewed.
|
|
169
|
+
- **Teaching material follows the house rules.** Catalogue examples, templates
|
|
170
|
+
and the shipped consumer examples use an untoned Button for neutral commands
|
|
171
|
+
(a `tone="secondary"` Button without `buttonStyle` renders solid), spell
|
|
172
|
+
neutral badges `tone="neutral"`, space siblings with Stack, Grid and
|
|
173
|
+
AdaptiveGrid instead of flex/grid gap divs or `space-y` margins, and drop
|
|
174
|
+
decorative title tiles. The order, product, customer, staff and overview
|
|
175
|
+
templates keep Page's default measure; the order template's fulfillment is
|
|
176
|
+
its `header.primaryAction`, the staff template's suspension is a
|
|
177
|
+
`destructive: true` secondary action confirmed by ConfirmDialog, and neither
|
|
178
|
+
repeats the header's status badge in a card or fact list.
|
|
179
|
+
- **Agent guidance closes the loop.** The consumer skill ships a project
|
|
180
|
+
instructions block (`references/agents-md.md`) to paste into an app's
|
|
181
|
+
`AGENTS.md`: under 2,000 characters, version-stamped in its start marker,
|
|
182
|
+
generated and verified by `check:skill`, and naming only scripts that ship
|
|
183
|
+
with the skill. The installed identity recipe reports the block as missing,
|
|
184
|
+
current or stale. SKILL.md and the review guide now make the composition
|
|
185
|
+
checker the agent's done condition (no errors on changed files, at most three
|
|
186
|
+
fix rounds, then the app's typecheck, lint and tests) with a five-line
|
|
187
|
+
hand-back, instead of calling it optional.
|
|
188
|
+
- **Consumer-skill evals.** `evals/consumer-skill` holds eight admin tasks,
|
|
189
|
+
five of them temptations such as a red Delete button or hand-made KPI cards,
|
|
190
|
+
each with a reference and a naive solution. `scripts/consumer-evals.mjs`
|
|
191
|
+
scores agent outputs with the shipped checker, imports and source patterns,
|
|
192
|
+
and `check:agent` proves every reference passes and every naive version fails.
|
|
193
|
+
- **Fix: destructive activity actions.** ActivityFeed row menus passed the
|
|
194
|
+
action tone as an unknown `variant` field, so a destructive action lost its
|
|
195
|
+
destructive treatment and its place at the end of the menu.
|
|
196
|
+
- **Visual: one control boundary and one focus indicator.** `--input` is the
|
|
197
|
+
single control boundary: fields, select and date triggers, checkboxes, radios,
|
|
198
|
+
switch tracks, upload targets and outline buttons all draw it, so adjoining
|
|
199
|
+
controls read as one family. It is now soft and translucent
|
|
200
|
+
(`oklch(0.28 0 0 / 15%)` in light, white at 15% in dark) and reads the same on
|
|
201
|
+
every surface, replacing the 3:1 gray of 2.0.0 (`oklch(0.62 0 0)`, white at
|
|
202
|
+
40% in dark) that made fields and selects read darker than the outline buttons
|
|
203
|
+
beside them; `--border` stays the divider color, and the repeater's empty
|
|
204
|
+
placeholder uses it. Every focused element draws one indicator from
|
|
205
|
+
`src/lib/focus-recipes.ts`: a 1px `--ring` edge at full strength (the
|
|
206
|
+
control's own border, an inset edge on borderless rows and regions, or an
|
|
207
|
+
outline just outside link and text-button glyphs) inside a soft 3px halo of
|
|
208
|
+
`--ring` at 50%. It replaces the 2px full-strength and offset rings, which
|
|
209
|
+
read as a heavier border. The edge carries the 3:1 contrast. An invalid field
|
|
210
|
+
keeps its destructive border at rest and while focused, where the halo turns
|
|
211
|
+
destructive; there is no resting halo. Focus on a MediaGallery tile is drawn
|
|
212
|
+
inside the tile, where its overflow clipping had hidden it. Design lint's
|
|
213
|
+
`focus-ring-recipe` rule (replacing `focus-ring-contrast`) rejects other focus
|
|
214
|
+
ring widths, offsets and halo strengths in library source and on imported
|
|
215
|
+
consumer controls. The contrast contract keeps `--ring` and `--sidebar-ring`
|
|
216
|
+
at 3:1 and checks `--input` against a 1.3:1 visibility floor on background,
|
|
217
|
+
card, popover, muted, accent and secondary surfaces.
|
|
218
|
+
- **Visual: one recipe per state family.** Each family that had several local
|
|
219
|
+
spellings now has one owner and a design-lint rule that cannot acquire
|
|
220
|
+
migration debt.
|
|
221
|
+
- Rows (navigation, lists, trees, results, menus) hover and select with
|
|
222
|
+
`--accent`, and the current location adds medium weight, so a hover never
|
|
223
|
+
reads as current. Ghost and outline buttons hover with the same fill and its
|
|
224
|
+
`--accent-foreground`; a component's own hover colour still wins.
|
|
225
|
+
- Toggles hover with `--muted` and press with `--accent`. Tables keep a
|
|
226
|
+
quieter `muted` ladder for stripes, hover and selection. Segmented tracks
|
|
227
|
+
lift the active segment to `--card`.
|
|
228
|
+
- Text never takes opacity: faded secondary text, which fell under 4.5:1, uses
|
|
229
|
+
the typography roles.
|
|
230
|
+
- Dividers are `--border` at full strength on surface edges and at 60% between
|
|
231
|
+
rows.
|
|
232
|
+
- Disabled content dims once, to 50%.
|
|
233
|
+
- Status and emphasis tints use one scale per tone
|
|
234
|
+
(`src/lib/tone-recipes.ts`): a wash for large surfaces, a tint for chips,
|
|
235
|
+
badges and icon tiles, and an edge, halo and line strength. The contrast
|
|
236
|
+
contract tests each tone's ink on its tint. Badges, alerts, avatars, icon
|
|
237
|
+
tiles, activity, search, calendar, timeline, commerce and AI blocks share
|
|
238
|
+
it. Search matches and edit diffs use one inline mark, and the heatmap and
|
|
239
|
+
distribution ruler keep their data ramps.
|
|
240
|
+
- Colour, border and shadow state changes keep the default 150ms transition.
|
|
241
|
+
- Corners derive from `--radius`: the fixed 4px `rounded` and the t-shirt
|
|
242
|
+
steps in raw UI, skeletons and chips are gone.
|
|
243
|
+
- Stacking uses one scale: raised, sticky, sticky over sticky, chrome and
|
|
244
|
+
overlay.
|
|
245
|
+
- SectionNav links gain the shared focus indicator, borderless Item rows draw
|
|
246
|
+
the focus edge inset, and the column-resize handle marks focus in the ring
|
|
247
|
+
colour.
|
|
248
|
+
- Neutral fills use one strength per role: a wash for quiet regions, a band
|
|
249
|
+
for header, toolbar and footer strips, a solid track, a neutral chip and
|
|
250
|
+
neutral markers. Twenty strengths become five. Table heads, toolbars, empty
|
|
251
|
+
states, AI panels, auth and workspace regions, tab tracks, meters and
|
|
252
|
+
carousel dots share them.
|
|
253
|
+
- Elevation uses one theme shadow per role: resting, card, raised, lifted and
|
|
254
|
+
modal. The command palette's 2xl shadow, two custom table-frame shadows
|
|
255
|
+
(which glowed in dark mode) and a shadow colour override are gone.
|
|
256
|
+
- Keyboard-shortcut hints in the header search trigger and the global search
|
|
257
|
+
footer share one key-cap style.
|
|
258
|
+
- Floating chips over media, lifted panels over the auth art and the chat
|
|
259
|
+
composer band are opaque.
|
|
260
|
+
- A drift census budgets each family's vocabulary in `check:design-lint`, and
|
|
261
|
+
a rendered role-parity browser check measures hover, current, disabled and
|
|
262
|
+
focus in light and dark.
|
|
263
|
+
- Rich-text toolbar toggles announce their state. Built-in format buttons and
|
|
264
|
+
the source view expose `aria-pressed`; undo and redo do not.
|
|
265
|
+
`ToolbarButtonConfig` and `RichTextEditorToolbarItem` gain an optional
|
|
266
|
+
`toggle` flag; an extra toolbar item with `isActive` is a toggle unless it
|
|
267
|
+
sets `toggle: false`.
|
|
268
|
+
- Item titles that cannot fit end in an ellipsis on their text. The title row is
|
|
269
|
+
a flex container, where `text-overflow` has no effect, so a long token was
|
|
270
|
+
clipped mid-glyph instead: an applied coupon `SPRING2026` read as `SPRING202`.
|
|
271
|
+
Truncating titles in citations, vendor profiles, gift cards and attachments
|
|
272
|
+
benefit too. The applied coupon also carries its full code as a `title`.
|
|
273
|
+
- **Overlays draw one rule per region boundary.** ActionDialog, ActionDrawer
|
|
274
|
+
and ConfirmDialog separate header, body and footer with a rule, and a dialog
|
|
275
|
+
without a body shows a single rule.
|
|
276
|
+
- **Rich text images.** RichTextEditor and RichText support images through
|
|
277
|
+
`useRichTextImages`: the consumer owns `upload(file, { signal })`; the library
|
|
278
|
+
owns toolbar, paste and drop insertion, the upload placeholder, cancel, retry
|
|
279
|
+
and remove, type and size limits, alt text and the http/https/blob/relative
|
|
280
|
+
source policy. `renderImage` draws read-only images with the consumer's
|
|
281
|
+
component.
|
|
282
|
+
- **RichTextEditor runs Tiptap.** Its runtime check required `EditorContent`
|
|
283
|
+
to be a function, but Tiptap 3 exports it as `React.memo`, so every editor
|
|
284
|
+
(rich text, comment, activity and email composers) silently rendered the
|
|
285
|
+
contenteditable fallback with formatting disabled. Picking a mention in Tiptap
|
|
286
|
+
now replaces its `@query` instead of appending after it, and the editor chip
|
|
287
|
+
keeps the `.rsc-mention` hook, so mention-chip.css draws it in both engines.
|
|
288
|
+
- **Mentions insert as atomic badge chips** removed by one Backspace. The
|
|
289
|
+
suggestion list and picker are more compact, and kind filters use the shared
|
|
290
|
+
toggle style.
|
|
291
|
+
- **Global search** builds its field on the public `InputGroup` and lays out
|
|
292
|
+
results, group headings and the footer with the compact Command recipe.
|
|
293
|
+
- **Activities open compact.** Rich rows show the headline and description;
|
|
294
|
+
metadata, changes, details, resource chips and inline actions appear together
|
|
295
|
+
behind "Show details".
|
|
296
|
+
- **Comments** no longer leave an empty band under each comment's action row.
|
|
297
|
+
- **Choice inputs centre on the label line.** Checkbox, radio, switch and
|
|
298
|
+
selected-card checks share one label-line track (questionnaire,
|
|
299
|
+
ApiTokenManager, card groups).
|
|
300
|
+
- **One plain X clears fields.** Input, Textarea, Cascader, Combobox and global
|
|
301
|
+
search clear actions, and TagsInput and Combobox chip removes, draw a plain X
|
|
302
|
+
instead of a circled X.
|
|
303
|
+
- **Cascader** draws Input's field frame and the shared Combobox affordance
|
|
304
|
+
track; its clear sits beside a chevron aligned with Select's.
|
|
305
|
+
- **Visual: Badge `sm` and `md` are 2px taller** (20px and 23px) at the same
|
|
306
|
+
type size; inline badges are unchanged, and TagsInput chips follow.
|
|
307
|
+
- **NavigationTabs** keeps the current tab lifted under hover and press;
|
|
308
|
+
inactive tabs change colour only.
|
|
309
|
+
- **SignaturePad** draws, exports and previews typed names in the pad's font
|
|
310
|
+
(theme sans by default) instead of `cursive`, and fits long names by font
|
|
311
|
+
size; `signaturePadToSVG` accepts an optional `fontFamily`.
|
|
312
|
+
- **Fixes:** Dropzone centres both copy lines; IconBadge sizes child glyphs with
|
|
313
|
+
its icon role (SmartAccordion medallions render at 16px); Alert's icon and
|
|
314
|
+
action columns use Toast's 8px gap; content typography fits images to the
|
|
315
|
+
column.
|
|
316
|
+
- **Catalogue:** the deprecated Sheet page, the products main-column, actions
|
|
317
|
+
and support-rail pages and the sync page are retired; their URLs redirect to
|
|
318
|
+
the overlays, product overview and SchemaForm pages.
|
|
319
|
+
- **BatchActionBar** (`themelia-react-ui/base/batch-action-bar`): one selection
|
|
320
|
+
bar with a count, bulk actions and Clear, `floating` (docked, lifted, opaque)
|
|
321
|
+
or `inline`. The count is a polite live region, Escape inside the bar clears,
|
|
322
|
+
and focus returns to the list (or `returnFocusRef`) when the bar goes away.
|
|
323
|
+
DataTable, product variants and MediaLibrary's new `bulkActions` use it; the
|
|
324
|
+
old sticky selection toolbar and its overlap with the sticky topbar are gone.
|
|
325
|
+
- **Order blocks** in `blocks/commerce`: `OrderHeader` (payment and fulfilment
|
|
326
|
+
status axes), `FulfillmentGroup`, `OrderLineItem`, `OrderSummary`,
|
|
327
|
+
`OrderTransactions` and `OrderCustomer`, with an Orders catalogue group and an
|
|
328
|
+
Order detail composition. The shared money ledger `SummaryPanel` and
|
|
329
|
+
`AmountRow` now draw CartSummaryCard, TaxBreakdownCard, DiscountStackPreview,
|
|
330
|
+
InvoiceHeader and OrderSummary: no tinted box, one rule above a grand total.
|
|
331
|
+
- **Commerce blocks follow the source kit.** ShipmentTracking has a copyable
|
|
332
|
+
tracking number (`onCopyTracking`) and a timestamped checkpoint rail whose
|
|
333
|
+
current step is `aria-current="step"`; RefundStatusCard is an ordered list of
|
|
334
|
+
stages; PaymentMethod gains `variant="row"` and speaks `strings.formatCard`
|
|
335
|
+
("Visa ending 4242"); CartSummaryCard falls back to initials on a failed image
|
|
336
|
+
and adds `strings.formatQuantity`; DiscountStackPreview takes an optional
|
|
337
|
+
`kind` and `id`. Blocks pass native attributes to their root. `CartSummary`,
|
|
338
|
+
`DiscountStack`, `RefundStatus` and `PaymentMethodCard` are added as the source
|
|
339
|
+
kit's names for the same components. `Timeline` items expose `data-status` and
|
|
340
|
+
mark the current item `aria-current="step"`.
|
|
341
|
+
- **MetadataList** labels wrap in every layout and stay semibold; inline
|
|
342
|
+
`itemSeparator` is a middle dot hidden from screen readers; `render` output
|
|
343
|
+
takes the value style; the info trigger no longer grows its line; `icon` takes
|
|
344
|
+
any `ComponentType<{ className?: string }>`.
|
|
345
|
+
- **TagsInput fixes.** Multi-tag paste commits every tag, `sortTags` removes the
|
|
346
|
+
right tag, object tags are created from an empty value, a refused entry no
|
|
347
|
+
longer traps Tab, IME composition no longer commits, a typed delimiter splits,
|
|
348
|
+
single-token paste is native, and focus moves to the neighbouring chip after a
|
|
349
|
+
removal. Refused entries stay in the draft and are announced
|
|
350
|
+
(`strings.notAdded`). New `defaultValue`, `name` (hidden `name[]` inputs) and
|
|
351
|
+
ARIA pass-through; `TagsInputStrings` and `defaultTagsInputStrings` are
|
|
352
|
+
exported.
|
|
353
|
+
|
|
3
354
|
## 2.0.0 — 2026-10-16
|
|
4
355
|
|
|
5
356
|
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.1`** · 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
|
|
@@ -95,7 +95,7 @@ The shipped stylesheet follows `prefers-reduced-motion` automatically for these
|
|
|
95
95
|
| Base | `base/<family>` — controls, forms, buttons, cards, structure, navigation, menus, feedback, display, tables, uploads and specialist controls |
|
|
96
96
|
| Layout | `layout`, `layout/<family>` — application shell, authentication, containers, page, settings, header, navigation, sidebar, workspace and hooks |
|
|
97
97
|
| 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
|
|
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` (deprecated), `table`, `theme-tweaker` (each prefixed `features/`) |
|
|
99
99
|
|
|
100
100
|
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
101
|
|
|
@@ -201,28 +201,41 @@ The default development URL opens the full component catalogue. The focused foun
|
|
|
201
201
|
|
|
202
202
|
`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
203
|
|
|
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.
|
|
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. Give a card one quick control in `headerAction`, a command list in `actions` (its More actions menu) and the commit action in `footerSlot`; spacing, not a divider, separates the footer. 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
205
|
|
|
206
206
|
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
207
|
|
|
208
|
-
|
|
209
|
-
`secondaryActions
|
|
210
|
-
into
|
|
208
|
+
Header commands are role-based: one `primaryAction` and ordered
|
|
209
|
+
`secondaryActions` render as `[secondary…] [primary] [⋯]`, with overflow,
|
|
210
|
+
destructive commands and narrow widths moved into the More actions menu that
|
|
211
|
+
ends the row. Page, PageHeader, PageHeading, the resource shells,
|
|
212
|
+
WorkspaceRecordHeader and SettingsShell share that row; keep `actions` for
|
|
213
|
+
non-command controls. `header.tabs` puts a record's section tabs, with counts,
|
|
214
|
+
under its header.
|
|
215
|
+
|
|
216
|
+
Every overflow menu shares one `ActionMenu` trigger: the `⋯` glyph named "More
|
|
217
|
+
actions", a quiet ghost square in rows and cards (`context="inline"`, the
|
|
218
|
+
default) or an outline square beside outline commands (`context="commands"`),
|
|
219
|
+
at the size of the controls beside it (`buttonProps.size`) or the provider
|
|
220
|
+
scale. The menu comes after any primary command in its row, and destructive
|
|
221
|
+
entries stay last.
|
|
211
222
|
Page owns inline and block padding, defaulting to the large surface role;
|
|
212
223
|
PageViewport owns scrolling and supplies no inset. Use `Page narrow` for a
|
|
213
224
|
centered single resource; explicit `maxWidth` wins. Page headers use dense copy
|
|
214
|
-
gaps. Ordinary cards retain default `md` padding
|
|
215
|
-
|
|
225
|
+
gaps. Ordinary cards retain default `md` padding and separate header, body and
|
|
226
|
+
footer by spacing; `card.defaultHeaderDivider` and `card.defaultFooterDivider`
|
|
227
|
+
remain for an app whose design calls for rules.
|
|
216
228
|
AppSidebar offers pinned `slots.headerStart`/`headerEnd` around its workspace
|
|
217
229
|
region, compact navigation and a separated footer. The
|
|
218
230
|
[complete shell recipe](docs/consumer-skill/examples/app-layout.tsx) demonstrates
|
|
219
231
|
public workspace/account controls and application-owned callbacks.
|
|
220
232
|
|
|
221
233
|
Choose one ordinary card surface through `card.defaultSurface`; explicit per-card
|
|
222
|
-
surfaces win.
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
234
|
+
surfaces win. Leave Card's `icon` slot for a glyph that carries state or a
|
|
235
|
+
brand; titles name the subject. `headerPlacement` chooses inside/frame
|
|
236
|
+
composition independently. Independent framed peers use `gap="2xl"`, matching
|
|
237
|
+
Page and TwoColumnLayout's rhythm, since outer rings consume a smaller DOM gap.
|
|
238
|
+
MetadataList (`themelia-react-ui/base/metadata-list`) keeps semibold labels and normal primary values in both densities.
|
|
226
239
|
Dashboard KPIs use Metric/MetricGrid/MetricBar; quotas use the focused UsageCard
|
|
227
240
|
owner. See [analytics selection](docs/consumer-skill/references/analytics.md) and
|
|
228
241
|
the [resource page recipe](docs/consumer-skill/examples/detail.tsx).
|
|
@@ -276,7 +289,7 @@ purpose from its name or read every document before starting a screen.
|
|
|
276
289
|
|
|
277
290
|
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
291
|
|
|
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.
|
|
292
|
+
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.1/` 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
293
|
|
|
281
294
|
`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
295
|
|