themelia-react-ui 1.0.2 → 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 +632 -1
- package/README.md +31 -13
- package/dist/accordion-B6a3vVgA.js +207 -0
- 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-CL84ZN9A.js → affordance-geometry.generated-B5iu-Mkr.js} +9 -3
- package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +1 -0
- package/dist/{ai-artifact-DLVdK0Py.js → ai-artifact-BMJdv-6q.js} +389 -391
- package/dist/ai-artifact-BMJdv-6q.js.map +1 -0
- package/dist/{app-shell-C_fKpljx.js → app-shell-ZK5RWdo6.js} +4 -4
- package/dist/{app-shell-C_fKpljx.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-CAQcasMV.js → auth-CYxKfo69.js} +239 -237
- package/dist/auth-CYxKfo69.js.map +1 -0
- package/dist/{avatar-Bu2HhitA.js → avatar-BBnEJIx8.js} +71 -68
- 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 +19 -19
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +234 -224
- 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 +81 -76
- 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 +7 -4
- package/dist/base/qr-code.js.map +1 -1
- package/dist/base/repeaters.js +175 -174
- 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 +148 -138
- 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 +4 -4
- 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-BZGDG-Si.js +104 -0
- package/dist/batch-action-bar-BZGDG-Si.js.map +1 -0
- package/dist/blocks/admin.js +264 -253
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +293 -323
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +596 -587
- 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 +2246 -1693
- 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 +82 -91
- 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-BZyfTvwm.js → button-QYwiyhD2.js} +15 -14
- package/dist/button-QYwiyhD2.js.map +1 -0
- package/dist/buttons-SbIcm1HJ.js +661 -0
- package/dist/buttons-SbIcm1HJ.js.map +1 -0
- package/dist/{cards-qGSErLw_.js → cards-CiiHpKYd.js} +8 -8
- package/dist/cards-CiiHpKYd.js.map +1 -0
- package/dist/{chart-Bsc5BICK.js → chart-QfrARkXl.js} +17 -15
- package/dist/chart-QfrARkXl.js.map +1 -0
- 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-ClvC7Bj3.js → collapsible-D8AEGU1-.js} +4 -4
- package/dist/{collapsible-ClvC7Bj3.js.map → collapsible-D8AEGU1-.js.map} +1 -1
- package/dist/{collection-content-D6S8cv_n.js → collection-content-uK16Grv0.js} +3 -3
- package/dist/{collection-content-D6S8cv_n.js.map → collection-content-uK16Grv0.js.map} +1 -1
- package/dist/{combobox-BFnbJJp3.js → combobox-2Ic8N9bL.js} +103 -98
- package/dist/combobox-2Ic8N9bL.js.map +1 -0
- package/dist/combobox-DLl0bfiq.js +867 -0
- package/dist/combobox-DLl0bfiq.js.map +1 -0
- package/dist/{command-BnmSchli.js → command-kNR20o7x.js} +34 -30
- package/dist/command-kNR20o7x.js.map +1 -0
- package/dist/{comments-u5L0OGip.js → comments-BpDuCUUu.js} +304 -301
- package/dist/comments-BpDuCUUu.js.map +1 -0
- package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
- package/dist/components/base/action-menu/action-menu.d.ts +27 -5
- 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/avatar/stacked-avatars.d.ts +5 -4
- package/dist/components/base/badge/badge.d.ts +1 -1
- package/dist/components/base/badge/badge.recipes.d.ts +6 -6
- 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/base-button.d.ts +7 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
- package/dist/components/base/buttons/button.recipes.d.ts +2 -2
- package/dist/components/base/buttons/button.variants.d.ts +1 -0
- package/dist/components/base/buttons/loader-button.d.ts +3 -1
- package/dist/components/base/buttons/text-button.d.ts +2 -2
- package/dist/components/base/carousel/carousel.d.ts +3 -1
- package/dist/components/base/chart/chart.d.ts +7 -7
- package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
- package/dist/components/base/choice-inputs/choice-types.d.ts +24 -3
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
- package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
- package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
- package/dist/components/base/date-pickers/datepicker.types.d.ts +13 -3
- package/dist/components/base/display/alert-dialog.d.ts +10 -3
- package/dist/components/base/display/content-block.d.ts +4 -2
- package/dist/components/base/display/date-block.d.ts +1 -1
- package/dist/components/base/display/dialog.d.ts +8 -5
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
- package/dist/components/base/display/surface-title.d.ts +6 -1
- package/dist/components/base/feedback/alert.d.ts +1 -1
- package/dist/components/base/feedback/state-display.d.ts +5 -4
- package/dist/components/base/forms/form-sizing.d.ts +43 -8
- package/dist/components/base/forms/workflow.d.ts +2 -0
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
- package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
- 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/dropdown-menu.d.ts +2 -2
- package/dist/components/base/navigation/index.d.ts +1 -1
- package/dist/components/base/navigation/language-switcher.d.ts +4 -1
- package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
- 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 +30 -4
- package/dist/components/base/qr-code/qr-code.d.ts +2 -0
- package/dist/components/base/sheet/index.d.ts +29 -1
- package/dist/components/base/sheet/sheet.d.ts +10 -5
- 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/spinner/spinner.d.ts +3 -2
- package/dist/components/base/structure/structure.types.d.ts +1 -1
- 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 +33 -0
- package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
- package/dist/components/base/value-inputs/index.d.ts +5 -5
- package/dist/components/base/value-inputs/tags-input.d.ts +38 -12
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
- package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
- package/dist/components/blocks/analytics/index.d.ts +1 -1
- package/dist/components/blocks/analytics/use-metric-format-options.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 +4 -1
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
- 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/inventory-section/types.d.ts +4 -1
- 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/loyalty-points/types.d.ts +1 -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-status/types.d.ts +4 -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 +14 -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/seo-listing/seo-listing-card.d.ts +1 -1
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
- 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/commerce/vendor-profile/types.d.ts +4 -1
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
- package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -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/global-search-idle-state.d.ts +1 -1
- 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/drawer.d.ts +1 -1
- package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
- package/dist/components/features/overlays/index.d.ts +1 -1
- package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
- package/dist/components/features/overlays/overlays.types.d.ts +62 -19
- 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/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/partials/index.d.ts +1 -1
- package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
- package/dist/components/features/products/partials/product-tone.d.ts +11 -1
- package/dist/components/features/products/products.types.d.ts +11 -3
- 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/partials/cell-renderers.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 +51 -4
- 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/date.d.ts +16 -3
- package/dist/components/primitives/dimensions.d.ts +6 -0
- package/dist/components/primitives/duration.d.ts +6 -0
- package/dist/components/primitives/file-size.d.ts +6 -0
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/initials.d.ts +11 -2
- package/dist/components/primitives/link.d.ts +7 -0
- package/dist/components/primitives/money.d.ts +29 -7
- package/dist/components/primitives/number.d.ts +17 -0
- package/dist/components/primitives/value-typography.d.ts +54 -0
- package/dist/components/primitives/value.d.ts +31 -6
- package/dist/components/typography/heading.d.ts +9 -1
- package/dist/components/typography/label.d.ts +3 -0
- 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/running-text.d.ts +12 -0
- package/dist/components/typography/text-link.d.ts +24 -1
- package/dist/components/typography/text.d.ts +12 -0
- package/dist/components/typography/text.styles.d.ts +35 -13
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/checkbox.d.ts +6 -0
- package/dist/components/ui/overlay.recipes.d.ts +6 -2
- package/dist/components/ui/select.d.ts +3 -1
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/{containers-DqB-bSYE.js → containers-DmWiJa2I.js} +36 -35
- package/dist/containers-DmWiJa2I.js.map +1 -0
- package/dist/{copyable-BTSByfmq.js → copyable-B3Gwgdqc.js} +6 -6
- package/dist/{copyable-BTSByfmq.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-BgK3bTdo.js +144 -0
- package/dist/date-BgK3bTdo.js.map +1 -0
- package/dist/date-picker-CF-DtUpF.js +1529 -0
- package/dist/date-picker-CF-DtUpF.js.map +1 -0
- package/dist/date-pickers-BmzxJl5l.js +174 -0
- package/dist/date-pickers-BmzxJl5l.js.map +1 -0
- package/dist/{display-CS6Hbk18.js → display-DsQTVzMz.js} +88 -87
- package/dist/display-DsQTVzMz.js.map +1 -0
- package/dist/{dropdown-menu-D-boNgGO.js → dropdown-menu-E2qmdC7o.js} +23 -16
- package/dist/dropdown-menu-E2qmdC7o.js.map +1 -0
- package/dist/features/activities.js +437 -521
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +174 -172
- 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 +353 -352
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +262 -269
- 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 +914 -824
- 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 +1272 -1311
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +204 -194
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +103 -95
- 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 +193 -189
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +7 -7
- package/dist/features/sync.js.map +1 -1
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +455 -455
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-qNuMBtRH.js +233 -0
- package/dist/feedback-qNuMBtRH.js.map +1 -0
- package/dist/field-affordance-recipes-qQeIf4lG.js +48 -0
- 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-D6FF8L6s.js → filters-BkHH53uv.js} +414 -412
- 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-CZwrkP7m.js → form-field-DUt4UxSV.js} +7 -7
- package/dist/{form-field-CZwrkP7m.js.map → form-field-DUt4UxSV.js.map} +1 -1
- package/dist/form-sizing-By94KzXE.js +130 -0
- package/dist/form-sizing-By94KzXE.js.map +1 -0
- package/dist/{forms-B5NCbkSC.js → forms-Bzha-Y3B.js} +25 -25
- package/dist/forms-Bzha-Y3B.js.map +1 -0
- package/dist/forms-numeric-C0bvjRPZ.js +906 -0
- package/dist/forms-numeric-C0bvjRPZ.js.map +1 -0
- package/dist/{header-kxruN3RM.js → header-BOefOKd1.js} +38 -41
- package/dist/header-BOefOKd1.js.map +1 -0
- package/dist/{hooks-BrlnCwQd.js → hooks-9k_TtmKh.js} +2 -2
- package/dist/{hooks-BrlnCwQd.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-vxcaNCYC.js → input-Ddi_LSYv.js} +3 -3
- package/dist/{input-vxcaNCYC.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-DEmDiTlD.js +265 -0
- 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 +7 -1
- package/dist/lib/field-affordance-recipes.d.ts +41 -1
- package/dist/lib/field-state-recipes.d.ts +9 -6
- package/dist/lib/focus-recipes.d.ts +24 -0
- package/dist/lib/format.d.ts +9 -0
- package/dist/lib/interaction-recipes.d.ts +35 -0
- package/dist/lib/layer-recipes.d.ts +19 -0
- package/dist/lib/money-format.d.ts +30 -0
- package/dist/lib/motion-recipes.d.ts +1 -0
- package/dist/lib/overlay-anatomy-recipes.d.ts +2 -1
- 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 +48 -6
- package/dist/lib/token-merge.generated.d.ts +17 -14
- package/dist/lib/tone-recipes.d.ts +79 -0
- package/dist/lib/track-recipes.d.ts +1 -1
- 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/provider.d.ts +7 -2
- package/dist/lib/ui-provider/store.d.ts +6 -2
- package/dist/lib/ui-provider/types.d.ts +14 -2
- 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-SZUNB1eX.js → message-CdHgIWKf.js} +5 -5
- package/dist/{message-SZUNB1eX.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-DQEXQcqY.js → navigation-row-recipes-BVowojQw.js} +2 -2
- package/dist/{navigation-row-recipes-DQEXQcqY.js.map → navigation-row-recipes-BVowojQw.js.map} +1 -1
- package/dist/number-DMhe-Vsk.js +352 -0
- package/dist/number-DMhe-Vsk.js.map +1 -0
- 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-hGmT4nWK.js → page-B5dTH9gE.js} +79 -68
- 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-NLGqRirf.js → pagination-3bPA_a6K.js} +19 -19
- package/dist/{pagination-NLGqRirf.js.map → pagination-3bPA_a6K.js.map} +1 -1
- package/dist/{popover-CghIYdQf.js → popover-Di55PyAI.js} +8 -8
- package/dist/popover-Di55PyAI.js.map +1 -0
- package/dist/{popover-menu-B4PoWhRl.js → popover-menu-B71Tn2Qz.js} +6 -6
- package/dist/{popover-menu-B4PoWhRl.js.map → popover-menu-B71Tn2Qz.js.map} +1 -1
- package/dist/{popover.recipes-QlD4JenO.js → popover.recipes-Bdyhj2db.js} +2 -2
- package/dist/{popover.recipes-QlD4JenO.js.map → popover.recipes-Bdyhj2db.js.map} +1 -1
- package/dist/primitives-B-CkiEMU.js +379 -0
- package/dist/primitives-B-CkiEMU.js.map +1 -0
- package/dist/primitives.js +5 -5
- package/dist/{progress-BroqrAyV.js → progress-rnS8-uAW.js} +11 -11
- package/dist/progress-rnS8-uAW.js.map +1 -0
- package/dist/{receipt-BuJynLgf.js → receipt-D0oswZ0p.js} +6 -6
- package/dist/{receipt-BuJynLgf.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-BNIgG3au.js → separator-C8DlRGwF.js} +4 -4
- package/dist/separator-C8DlRGwF.js.map +1 -0
- package/dist/{separator-BhtFyo4x.js → separator-CYHnjsAb.js} +2 -2
- package/dist/{separator-BhtFyo4x.js.map → separator-CYHnjsAb.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +22 -0
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +23 -6
- 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-CyR4XKwR.js → sidebar-C7WWR29L.js} +181 -180
- package/dist/sidebar-C7WWR29L.js.map +1 -0
- package/dist/sidebar-d7Dg80ln.js +511 -0
- package/dist/sidebar-d7Dg80ln.js.map +1 -0
- package/dist/{skeleton-3F0uhYn3.js → skeleton-Cz890JZF.js} +10 -10
- package/dist/skeleton-Cz890JZF.js.map +1 -0
- package/dist/smart-card-lFKxn5Hu.js +595 -0
- package/dist/smart-card-lFKxn5Hu.js.map +1 -0
- package/dist/{spinner-Cpf7oRkF.js → spinner-fa3h1Aif.js} +10 -8
- package/dist/spinner-fa3h1Aif.js.map +1 -0
- package/dist/{structure-CRdqVawd.js → structure-DC2dygdA.js} +3 -3
- package/dist/{structure-CRdqVawd.js.map → structure-DC2dygdA.js.map} +1 -1
- package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
- package/dist/structure.recipes-EPz60cU8.js.map +1 -0
- 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-CIKyLUsy.js +163 -0
- package/dist/table-CIKyLUsy.js.map +1 -0
- package/dist/{table-CcRDZiLP.js → table-CrcLN9Io.js} +544 -530
- package/dist/table-CrcLN9Io.js.map +1 -0
- package/dist/tabs-DwBJfjxX.js +190 -0
- package/dist/tabs-DwBJfjxX.js.map +1 -0
- package/dist/{text-inputs-DsR56TR-.js → text-inputs-aaK9wcDT.js} +151 -155
- package/dist/text-inputs-aaK9wcDT.js.map +1 -0
- package/dist/{text.styles-Q4sGAIgA.js → text.styles-g4He6UIW.js} +17 -14
- package/dist/text.styles-g4He6UIW.js.map +1 -0
- package/dist/theme.css +16 -12
- package/dist/themes/green.css +24 -0
- package/dist/{timelines-D1pkt3se.js → timelines-C_SBwHNP.js} +154 -164
- 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/track-recipes-CDcKmndW.js +10 -0
- package/dist/track-recipes-CDcKmndW.js.map +1 -0
- package/dist/{tree-BtmYyMZV.js → tree-BiKhg8AY.js} +72 -70
- 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 +2 -2
- package/dist/{ui-provider-DRPn3qNl.js → ui-provider-1D_NSYzO.js} +30 -23
- package/dist/ui-provider-1D_NSYzO.js.map +1 -0
- package/dist/ui-provider.js +3 -3
- package/dist/{upload-CDbYw1WN.js → upload-BO8-CLN6.js} +294 -293
- package/dist/upload-BO8-CLN6.js.map +1 -0
- package/dist/{upload-queue-CNd_hH_a.js → upload-queue-EOC8g1gf.js} +133 -138
- 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-VyJLUwRr.js → usage-card-obRaBskq.js} +42 -43
- package/dist/{usage-card-VyJLUwRr.js.map → usage-card-obRaBskq.js.map} +1 -1
- package/dist/{utils-BvH9PSmq.js → utils-l5LpDw2z.js} +264 -62
- 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-b8wpz1eX.js +116 -0
- package/dist/value-typography-b8wpz1eX.js.map +1 -0
- package/dist/workspace-DH0v0KcB.js +407 -0
- package/dist/workspace-DH0v0KcB.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +62 -50
- package/docs/consumer-skill/examples/app-layout.tsx +3 -5
- package/docs/consumer-skill/examples/composition.tsx +3 -3
- package/docs/consumer-skill/examples/detail.tsx +59 -13
- package/docs/consumer-skill/examples/edit.tsx +2 -2
- package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
- package/docs/consumer-skill/examples/manifest.json +28 -6
- package/docs/consumer-skill/examples/receipt.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +3 -3
- 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 +139 -24
- package/docs/consumer-skill/references/design-contract.md +12 -3
- package/docs/consumer-skill/references/discovery.md +4 -0
- package/docs/consumer-skill/references/installation.md +33 -1
- package/docs/consumer-skill/references/integration.md +32 -1
- package/docs/consumer-skill/references/public-api.json +1051 -610
- package/docs/consumer-skill/references/review.md +44 -8
- package/docs/consumer-skill/references/theming.md +14 -4
- package/docs/consumer-skill/references/tokens.json +5 -2
- package/docs/consumer-skill/references/workflows.md +30 -9
- package/docs/consumer-skill/scripts/composition-policy.mjs +127 -6
- package/docs/consumer-skill/scripts/discovery.mjs +11 -3
- package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
- package/docs/consumer-skill/scripts/surface-policy.mjs +139 -5
- package/package.json +13 -3
- package/dist/accordion-BRTcsp8J.js +0 -205
- package/dist/accordion-BRTcsp8J.js.map +0 -1
- package/dist/action-menu-Drxw_vJk.js +0 -265
- package/dist/action-menu-Drxw_vJk.js.map +0 -1
- package/dist/affordance-geometry.generated-CL84ZN9A.js.map +0 -1
- package/dist/ai-artifact-DLVdK0Py.js.map +0 -1
- package/dist/attachment-DbjUWsP0.js +0 -244
- package/dist/attachment-DbjUWsP0.js.map +0 -1
- package/dist/auth-CAQcasMV.js.map +0 -1
- package/dist/avatar-Bu2HhitA.js.map +0 -1
- package/dist/badge-CzId1Wlm.js +0 -92
- package/dist/badge-CzId1Wlm.js.map +0 -1
- package/dist/breadcrumbs-BuYz5SDU.js +0 -128
- package/dist/breadcrumbs-BuYz5SDU.js.map +0 -1
- package/dist/button-BZDasD04.js +0 -651
- package/dist/button-BZDasD04.js.map +0 -1
- package/dist/button-BZyfTvwm.js.map +0 -1
- package/dist/buttons-D_6KJvEE.js +0 -99
- package/dist/buttons-D_6KJvEE.js.map +0 -1
- package/dist/cards-qGSErLw_.js.map +0 -1
- package/dist/chart-Bsc5BICK.js.map +0 -1
- package/dist/checkbox-BQNDjUCh.js +0 -34
- package/dist/checkbox-BQNDjUCh.js.map +0 -1
- package/dist/choice-inputs-Mk3iWbhr.js +0 -725
- package/dist/choice-inputs-Mk3iWbhr.js.map +0 -1
- package/dist/code-block-DzHKRybS.js +0 -183
- package/dist/code-block-DzHKRybS.js.map +0 -1
- package/dist/combobox-BFnbJJp3.js.map +0 -1
- package/dist/combobox-hozNwUcc.js +0 -847
- package/dist/combobox-hozNwUcc.js.map +0 -1
- package/dist/command-BnmSchli.js.map +0 -1
- package/dist/comments-u5L0OGip.js.map +0 -1
- package/dist/containers-DqB-bSYE.js.map +0 -1
- package/dist/data-display-Bihs9Ven.js +0 -1342
- package/dist/data-display-Bihs9Ven.js.map +0 -1
- package/dist/date-DOKhJPu7.js +0 -140
- package/dist/date-DOKhJPu7.js.map +0 -1
- package/dist/date-picker-DzP5HQq7.js +0 -1541
- package/dist/date-picker-DzP5HQq7.js.map +0 -1
- package/dist/date-pickers-BpgGz7S-.js +0 -196
- package/dist/date-pickers-BpgGz7S-.js.map +0 -1
- package/dist/display-CS6Hbk18.js.map +0 -1
- package/dist/dropdown-menu-D-boNgGO.js.map +0 -1
- package/dist/feedback-CJkUAapr.js +0 -233
- package/dist/feedback-CJkUAapr.js.map +0 -1
- package/dist/field-affordance-recipes-uKY4MsZ_.js +0 -25
- package/dist/field-affordance-recipes-uKY4MsZ_.js.map +0 -1
- package/dist/field-state-recipes-DQQpiLWC.js +0 -11
- package/dist/field-state-recipes-DQQpiLWC.js.map +0 -1
- package/dist/filters-D6FF8L6s.js.map +0 -1
- package/dist/form-sizing-QP8aIRaW.js +0 -103
- package/dist/form-sizing-QP8aIRaW.js.map +0 -1
- package/dist/format-iamDSqs2.js +0 -110
- package/dist/format-iamDSqs2.js.map +0 -1
- package/dist/forms-B5NCbkSC.js.map +0 -1
- package/dist/forms-numeric-Crrm80Lm.js +0 -867
- package/dist/forms-numeric-Crrm80Lm.js.map +0 -1
- package/dist/header-kxruN3RM.js.map +0 -1
- package/dist/icon-badge-Btc6pQrp.js +0 -53
- package/dist/icon-badge-Btc6pQrp.js.map +0 -1
- package/dist/input-SX9V0AL3.js +0 -255
- package/dist/input-SX9V0AL3.js.map +0 -1
- package/dist/item-DE4YnuJx.js +0 -258
- package/dist/item-DE4YnuJx.js.map +0 -1
- package/dist/media-gallery-DLp3HAz0.js +0 -201
- package/dist/media-gallery-DLp3HAz0.js.map +0 -1
- package/dist/mentions-Cl0Kt_Pd.js +0 -565
- package/dist/mentions-Cl0Kt_Pd.js.map +0 -1
- package/dist/navigation-DnQSNMT0.js +0 -276
- package/dist/navigation-DnQSNMT0.js.map +0 -1
- package/dist/navigation-DyytsLRB.js +0 -265
- package/dist/navigation-DyytsLRB.js.map +0 -1
- package/dist/number-DasMFWEG.js +0 -269
- package/dist/number-DasMFWEG.js.map +0 -1
- package/dist/overlay.recipes-BxW5FIfK.js +0 -6
- package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
- package/dist/overlays-DUbs1KEi.js +0 -1011
- package/dist/overlays-DUbs1KEi.js.map +0 -1
- package/dist/page-hGmT4nWK.js.map +0 -1
- package/dist/page-header-D8nERkn5.js +0 -112
- package/dist/page-header-D8nERkn5.js.map +0 -1
- package/dist/popover-CghIYdQf.js.map +0 -1
- package/dist/primitives-C7ff0QaI.js +0 -337
- package/dist/primitives-C7ff0QaI.js.map +0 -1
- package/dist/progress-BroqrAyV.js.map +0 -1
- package/dist/rich-text-DlxDOtf4.js +0 -32
- package/dist/rich-text-DlxDOtf4.js.map +0 -1
- package/dist/rich-text-editor-BKyG7rWz.js +0 -574
- package/dist/rich-text-editor-BKyG7rWz.js.map +0 -1
- package/dist/rich-text-editor.recipes-B72Nfuze.js +0 -81
- package/dist/rich-text-editor.recipes-B72Nfuze.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/sanitize-html-BG9FGe-j.js +0 -64
- package/dist/sanitize-html-BG9FGe-j.js.map +0 -1
- package/dist/scroll-area-D-pIhEKl.js +0 -47
- package/dist/scroll-area-D-pIhEKl.js.map +0 -1
- package/dist/separator-BNIgG3au.js.map +0 -1
- package/dist/settings-DOTOzeZ2.js +0 -161
- package/dist/settings-DOTOzeZ2.js.map +0 -1
- package/dist/sheet-BFhrNehm.js +0 -205
- package/dist/sheet-BFhrNehm.js.map +0 -1
- package/dist/sidebar-CyR4XKwR.js.map +0 -1
- package/dist/sidebar-SvGJ0Zwi.js +0 -506
- package/dist/sidebar-SvGJ0Zwi.js.map +0 -1
- package/dist/skeleton-3F0uhYn3.js.map +0 -1
- package/dist/smart-card-DjGVV2xr.js +0 -584
- package/dist/smart-card-DjGVV2xr.js.map +0 -1
- package/dist/spinner-Cpf7oRkF.js.map +0 -1
- package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
- package/dist/surface-recipes-Dd__PD-w.js +0 -28
- package/dist/surface-recipes-Dd__PD-w.js.map +0 -1
- package/dist/table-CLtJTxoR.js +0 -147
- package/dist/table-CLtJTxoR.js.map +0 -1
- package/dist/table-CcRDZiLP.js.map +0 -1
- package/dist/tabs-BNgu7g0u.js +0 -188
- package/dist/tabs-BNgu7g0u.js.map +0 -1
- package/dist/text-inputs-DsR56TR-.js.map +0 -1
- package/dist/text.styles-Q4sGAIgA.js.map +0 -1
- package/dist/timelines-D1pkt3se.js.map +0 -1
- package/dist/track-recipes-LLPNVwFg.js +0 -10
- package/dist/track-recipes-LLPNVwFg.js.map +0 -1
- package/dist/tree-BtmYyMZV.js.map +0 -1
- package/dist/typography-BxQgiZyw.js +0 -96
- package/dist/typography-BxQgiZyw.js.map +0 -1
- package/dist/ui-provider-DRPn3qNl.js.map +0 -1
- package/dist/upload-CDbYw1WN.js.map +0 -1
- package/dist/upload-queue-CNd_hH_a.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-BvH9PSmq.js.map +0 -1
- package/dist/value-inputs-D0KCrfVC.js +0 -840
- package/dist/value-inputs-D0KCrfVC.js.map +0 -1
- package/dist/workspace-CcR8r-Nt.js +0 -395
- package/dist/workspace-CcR8r-Nt.js.map +0 -1
- /package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.strings.d.ts +0 -0
|
@@ -35,7 +35,12 @@ a detail workspace or a form; they need different information hierarchies.
|
|
|
35
35
|
|
|
36
36
|
For a DataTable composition, put queries in `topbarContent`, exports or collection
|
|
37
37
|
tools in `topbarEnd`, selection commands in `bulkActions`, and record commands
|
|
38
|
-
in `rowActions`.
|
|
38
|
+
in `rowActions`. `bulkActions` render in the shared `BatchActionBar`, docked to
|
|
39
|
+
the viewport while rows are selected (`selectionToolbarPlacement="inline"` keeps
|
|
40
|
+
it in flow); they need no disabled state for an empty selection. Any other list
|
|
41
|
+
with a selection mounts `BatchActionBar` from
|
|
42
|
+
`themelia-react-ui/base/batch-action-bar` rather than a hand-built selection
|
|
43
|
+
toolbar. Other arrangements are valid when the product has a distinct
|
|
39
44
|
query region; choose one owner deliberately and keep queries close to their
|
|
40
45
|
results. DataView already owns coordinated filtering; do not add a second filter
|
|
41
46
|
store around it without inspecting its contract.
|
|
@@ -54,11 +59,51 @@ accessibility needs and the task can justify richer rows. Explain the priority.
|
|
|
54
59
|
Custom ResourceCell metadata is caller content; use shared supporting typography
|
|
55
60
|
and CellStack where its smaller secondary-value contract fits.
|
|
56
61
|
|
|
57
|
-
Commands need explicit importance as well as scope.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
Commands need explicit importance as well as scope. Describe page commands by
|
|
63
|
+
role in Page's header: `primaryAction` is the route's one main command, and
|
|
64
|
+
`secondaryActions` lists supporting commands in priority order. The header owns
|
|
65
|
+
their treatment and order: outline secondary buttons, the solid primary button,
|
|
66
|
+
then a More actions menu for overflow, destructive commands and narrow screens,
|
|
67
|
+
which always ends the row. WorkspaceRecordHeader, ResourceHeader, the resource
|
|
68
|
+
shells and SettingsShell take the same props and render the same row. Choosing which
|
|
69
|
+
command is primary, which are `destructive`, and which are `visible` remains an
|
|
70
|
+
application decision; confirm destructive commands in their handler. Use
|
|
71
|
+
`actions` only for non-command controls such as a period select. A back link,
|
|
72
|
+
export and destructive command should not all inherit the same visual emphasis.
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
<Page header={{
|
|
76
|
+
title: 'Contacts',
|
|
77
|
+
primaryAction: { label: 'New contact', icon: Plus, onClick: onCreate },
|
|
78
|
+
secondaryActions: [
|
|
79
|
+
{ label: 'Export', onClick: onExport },
|
|
80
|
+
{ label: 'Delete list', destructive: true, onClick: confirmDelete },
|
|
81
|
+
],
|
|
82
|
+
}}>{/* route content */}</Page>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
A record split into sections adds `header.tabs`. The tabs sit under the header's
|
|
86
|
+
copy and commands, a `badge` shows a count, tabs that do not fit move into a More
|
|
87
|
+
menu, and `onValueChange` switches the section or routes. Labels name the
|
|
88
|
+
command; an icon on every command repeats it, so keep `+` on an add command and
|
|
89
|
+
leave the others plain.
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<Page header={{
|
|
93
|
+
title: member.name,
|
|
94
|
+
titleBadges: [{ label: 'Needs attention', tone: 'warning' }],
|
|
95
|
+
primaryAction: { label: 'Generate report', onClick: onReport },
|
|
96
|
+
secondaryActions: [
|
|
97
|
+
{ label: 'Update profile', onClick: onEdit },
|
|
98
|
+
{ label: 'Record membership decision', onClick: onDecision },
|
|
99
|
+
],
|
|
100
|
+
tabs: { value: section, onValueChange: setSection, items: [
|
|
101
|
+
{ id: 'documents', label: 'Documents', badge: documents.length },
|
|
102
|
+
{ id: 'hours', label: 'CPD hours', badge: hours },
|
|
103
|
+
{ id: 'privacy', label: 'Privacy' },
|
|
104
|
+
] },
|
|
105
|
+
}}>{/* active section */}</Page>
|
|
106
|
+
```
|
|
62
107
|
|
|
63
108
|
| Drift | Better decision |
|
|
64
109
|
| --- | --- |
|
|
@@ -81,6 +126,20 @@ MetricGrid's default peers and UsageCard own their surfaces. A distinct custom
|
|
|
81
126
|
Card subject remains valid; compare the complete subject contract before rebuilding
|
|
82
127
|
formatting, hierarchy or request-state presentation from lower text primitives.
|
|
83
128
|
|
|
129
|
+
For rows, grids, main/aside regions and matching peer gaps, use the
|
|
130
|
+
[layout-owner map](#structure-and-spacing).
|
|
131
|
+
|
|
132
|
+
### Headed blocks inside surfaces
|
|
133
|
+
|
|
134
|
+
AddressCard, PaymentMethod, SeoListingCard and ProductVariantsManager accept
|
|
135
|
+
Card's `surface`, `padding` and `headerDivider` props. Use `surface="card"` when
|
|
136
|
+
that owner is the framed subject; it supplies the header and aligned body insets
|
|
137
|
+
and inherits provider dividers. Do not add an untitled padded Card around it.
|
|
138
|
+
Omit surface for an unframed embedded subject; its header rule defaults off.
|
|
139
|
+
An explicit divider still wins. ProductVariantsManager also forwards
|
|
140
|
+
`footerDivider` for its footer slot. Separate reusable body content can still be
|
|
141
|
+
composed in a caller-owned Card; choose one owner for each headed boundary.
|
|
142
|
+
|
|
84
143
|
## Public websites and service overviews
|
|
85
144
|
|
|
86
145
|
Compose a landing page or public website from its content. `Container` owns the
|
|
@@ -125,6 +184,13 @@ is appropriate only for inline content. The allowlist strips arbitrary styling,
|
|
|
125
184
|
embedded media and unsafe links; it is not a Markdown parser or email-layout
|
|
126
185
|
renderer. Keep outer width/padding on the surrounding structure. RichTextEditor
|
|
127
186
|
owns editing; EmailComposer owns structured email/variable/delivery contracts.
|
|
187
|
+
Images are opt-in on both: create one object with `useRichTextImages({ upload,
|
|
188
|
+
renderImage })` from `features/rich-text-editor` and pass it as `images` to the
|
|
189
|
+
editor and to RichText. Your `upload(file, { signal })` stores the file and
|
|
190
|
+
resolves `{ src, alt?, width?, height? }`; the editor owns insertion, the upload
|
|
191
|
+
placeholder, retry, alt text and the source policy (http, https, `blob:` and
|
|
192
|
+
relative sources only), and `renderImage` draws read-only images with your
|
|
193
|
+
component.
|
|
128
194
|
Read the relevant declarations and [integration](integration.md) before choosing
|
|
129
195
|
the content owner. Embedded React UI can opt out of reading rhythm through
|
|
130
196
|
`not-typeset` or `data-not-typeset` on its subtree; those opt-outs do not bypass
|
|
@@ -149,9 +215,11 @@ Choose one ordinary Card surface through UIProvider's `card.defaultSurface` and
|
|
|
149
215
|
let sibling subjects inherit it. Explicit per-card surfaces win: mixing `card`
|
|
150
216
|
and `framed` intentionally changes their visible treatment. Header placement is
|
|
151
217
|
independent: `inside` keeps the heading with the body; `frame` puts context and
|
|
152
|
-
commands on the outer frame above the inset body.
|
|
153
|
-
|
|
154
|
-
|
|
218
|
+
commands on the outer frame above the inset body. A Card title needs no icon;
|
|
219
|
+
pass `icon={<Icon />}` only when the glyph carries meaning (state, a brand, a type
|
|
220
|
+
users scan for), never as raw SVG in title JSX. Custom titles remain appropriate
|
|
221
|
+
for richer content. Facts and rows follow the same rule: one glyph repeated on
|
|
222
|
+
every MetadataList item or Item row is decoration, so leave `icon`/media empty.
|
|
155
223
|
|
|
156
224
|
Card `gap` owns spacing between regions; `contentGap` owns direct body-child
|
|
157
225
|
spacing; `textGap` owns title/supporting-copy rhythm. Region spacing defaults to
|
|
@@ -164,9 +232,14 @@ compact subject; it is not the default for forms, settings, metrics or resource
|
|
|
164
232
|
pages. Component size and
|
|
165
233
|
density do not choose Card padding. `lg` uses 1.8 times the inset (36px), while
|
|
166
234
|
`none` removes it. All sizes follow the surface roots and space-scale.
|
|
167
|
-
|
|
235
|
+
Dividers are off by default and
|
|
236
|
+
should stay off: separate a card's sections with `contentGap` or a Stack gap
|
|
237
|
+
clearly larger than the row gap (`2xl` between sections). UIProvider can configure
|
|
168
238
|
`card.defaultHeaderDivider` and `card.defaultFooterDivider`; explicit per-card
|
|
169
239
|
booleans win. Header/footer-only cards still render one shared divider.
|
|
240
|
+
Overlays are the exception: `ActionDialog`, `ActionDrawer` and `ConfirmDialog`
|
|
241
|
+
draw one rule between header, body and footer (one rule when there is no body),
|
|
242
|
+
owned by the overlay; do not add borders to their content.
|
|
170
243
|
|
|
171
244
|
Use titleSuffix for status/count/version badges. Long titles/suffixes wrap through the shared owner; no literal spaces/local margins to manufacture gaps. headerAction/actions are trailing controls, headerStart pre-title context. footerSlot/footer definitions own card-level actions; footerDivider owns the rule and inset. Do not simulate a footer inside children. SmartCard and ContentBlock are deprecated migration names; use Card in new code.
|
|
172
245
|
|
|
@@ -174,17 +247,56 @@ Reusable blocks/features stay card-free unless their explicit purpose is a card.
|
|
|
174
247
|
|
|
175
248
|
## Structure and spacing
|
|
176
249
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
Grid exposes viewport columns; AdaptiveGrid responds to parent width and a semantic minimum column size. GridCell spans belong to the nearest Grid. Keep narrow DOM order meaningful. Horizontal Stack wraps by default; disable it only when overflow is intentionally handled. Tailwind is appropriate for min-w-0, positioning, overflow and drawing geometry.
|
|
250
|
+
Choose the smallest owner that describes the region. These layout blocks are
|
|
251
|
+
published primitives and layouts, not the domain compositions under `blocks/*`.
|
|
180
252
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
253
|
+
| Responsibility | Exact family and owner | Contract to preserve |
|
|
254
|
+
| --- | --- | --- |
|
|
255
|
+
| Vertical siblings or an action row | `base/structure`: Stack | Vertical by default; `direction="horizontal"` creates a row and wraps by default. Default gap is `md` (8px). There is no separate Row export. |
|
|
256
|
+
| Known responsive tracks | `base/structure`: Grid | Scalar columns are literal; use `columns={{base:1,lg:3}}` for breakpoints. Omitted columns use one, then two from md. Default gap is `xl` (16px). |
|
|
257
|
+
| Track spans | `base/structure`: GridCell | Use `span={{base:1,lg:2}}` inside the nearest Grid; keep meaningful DOM order. |
|
|
258
|
+
| Equal tiles that fit their parent | `base/structure`: AdaptiveGrid | Select `minColumnWidth`; tracks follow available width. Use Grid for prescribed breakpoints or TwoColumnLayout for a supporting rail. |
|
|
259
|
+
| Centered measure and inline gutters | `layout/containers`: Container | Defaults to xl measure and md gutter. Owns no vertical inset, scrolling or surface chrome. |
|
|
260
|
+
| A semantic content section | `layout/containers`: Section | Owns sibling rhythm, default `xl`; it adds no Card frame or page gutter. |
|
|
261
|
+
| Main content with a supporting rail | `layout/containers`: TwoColumnLayout | Owns header/main/aside/footer order and `2xl` gaps (24px). Main/aside contents choose their own Stack gaps. Page rhythm (header to body, major Sections) uses `3xl` (32px). |
|
|
262
|
+
| A bounded page scroll region | `layout/containers`: PageViewport | Owns scrolling and query containment, with no padding. AppLayout already supplies one. |
|
|
263
|
+
| Route title, commands and page content | `layout/page`: Page | Owns measure, inline/block gutters and header/body rhythm. Use `narrow` for a focused resource. |
|
|
264
|
+
| Application header/sidebar chrome | `layout/app-shell`: AppLayout | Select the shell variant, compose slots and router callbacks, and let its viewport contain Page. |
|
|
265
|
+
| A framed subject | `base/cards`: Card | Owns surface padding, header/body/footer alignment and separators; layout blocks own the space between Cards. |
|
|
266
|
+
|
|
267
|
+
See the typed [layout-block composition](../examples/layout-blocks.tsx) when composing these owners.
|
|
268
|
+
|
|
269
|
+
Use these public structures for repeated passive composition rather than
|
|
270
|
+
rebuilding the same flex/grid spacing on divs. Tailwind remains appropriate for
|
|
271
|
+
positioning, overflow, chart/table geometry and custom intrinsic tracks. Structure
|
|
272
|
+
preserves child identity; it does not inspect, clone, reorder or frame children.
|
|
273
|
+
|
|
274
|
+
### Main and aside Card gaps
|
|
275
|
+
|
|
276
|
+
Peer Cards in a Page/TwoColumnLayout workspace use `gap="2xl"` on both main and
|
|
277
|
+
aside Stacks to match its 24px grid gap. Give a peer Grid the same gap when it
|
|
278
|
+
belongs to that rhythm. A compact local card grid may deliberately keep Grid's
|
|
279
|
+
16px default. Stack's 8px default is general sibling spacing, not an automatic
|
|
280
|
+
Card rhythm; choose the role explicitly. Values above use shipped roots and
|
|
281
|
+
scale through the existing space-scale contract.
|
|
282
|
+
|
|
283
|
+
The [region recipe](../examples/layout-blocks.tsx) keeps both inner Stacks on that same peer gap.
|
|
284
|
+
|
|
285
|
+
Use `textGap="normal"|"dense"` for title/description copy; keep action gaps,
|
|
286
|
+
form groups, peer regions and surface insets independent. Do not use small copy
|
|
287
|
+
gaps between independent Cards or shrink Card padding to match control density.
|
|
288
|
+
Framed Card rings extend outside layout rectangles: inspect visible clearance
|
|
289
|
+
in both axes as well as computed gaps.
|
|
290
|
+
|
|
291
|
+
### Horizontal rows
|
|
292
|
+
|
|
293
|
+
See the typed [layout-block composition](../examples/layout-blocks.tsx): Page
|
|
294
|
+
supplies its boundary, TwoColumnLayout splits the regions, inner Stacks share
|
|
295
|
+
peer rhythm, and a horizontal Stack wraps footer actions. The app supplies the
|
|
296
|
+
subjects and commands. For viewport-responsive columns use Grid; for available
|
|
297
|
+
parent width use AdaptiveGrid or `TwoColumnLayout adaptTo="container"`.
|
|
298
|
+
|
|
299
|
+
MetadataList owns semibold labels and normal-weight routine values. Its
|
|
188
300
|
compact density tightens gaps/rows without shrinking primary values. Plain values
|
|
189
301
|
and typed descriptors retain the shared roles; React nodes, `display` and `render`
|
|
190
302
|
preserve supplied typography. Keep custom formatted values consistent with value
|
|
@@ -213,12 +325,14 @@ PopoverContent defaults to display/default; Command defaults to compact. An expl
|
|
|
213
325
|
|
|
214
326
|
At shipped roots, compact shell padding is 8px; row inline padding is 12px; default row block padding is 8px and minimum height 36px. Compact/comfortable rows use 6/10px block padding and 32/40px minimum heights. Content can grow when it wraps. These are token-derived measurements, not app constants. Flush compact header/footer shell padding matches the list (8px inline). Header text bodies without a leading control and footer captions add the row inset once, aligning text at 20px. Actions keep the 8px shell edge. Nested public slots do not repeat these insets.
|
|
215
327
|
|
|
216
|
-
Input frames
|
|
328
|
+
Input frames and outline buttons share the input semantic token; collection dividers use border/60; focus uses ring separately and draws one indicator everywhere (a full-strength edge inside a soft halo). Equal responsibilities share recipes, while different semantic roles retain their own treatment. CommandInput keeps its existing onValueChange search contract and native refs; use the actual public Input through its default composition rather than restyling an unframed native field.
|
|
217
329
|
|
|
218
330
|
ActionMenu density="table" remains a legacy table/overflow adapter. AsyncPreview padding="lg" owns a compatibility content boundary. Neither expands the default/compact surface vocabulary.
|
|
219
331
|
|
|
220
332
|
Button separates tone from buttonStyle (solid, outline, ghost). ActionButtons renders the same definitions as ActionMenu. Badge tones describe actual states, not a decorative palette.
|
|
221
333
|
|
|
334
|
+
Overflow menus use ActionMenu's own trigger: the ⋯ glyph named "More actions", context="inline" (default) for the ghost square in rows, cards and footers, context="commands" for the outline square beside outline commands. Pass buttonProps.size only to match the controls beside it; otherwise it follows the provider scale. Place the menu after the row's primary command and keep destructive entries last. Do not pass a MoreVertical icon, buttonStyle, tone or size-action classes to restyle it.
|
|
335
|
+
|
|
222
336
|
## Migration
|
|
223
337
|
|
|
224
338
|
Use exact themelia-react-ui paths. Presentation imports use blocks/<family>, replacing composed/<family>. Raw UI, Radix, cmdk and routers are not consumer foundations. Read installed types instead of assuming historical CSS-kit props.
|
|
@@ -350,9 +464,10 @@ TwoColumnLayout. A wide comparison/directory can deliberately use `maxWidth="ful
|
|
|
350
464
|
Setting full on every route defeats the resource measure. Do not remove Page's
|
|
351
465
|
gutters to make its title touch the sidebar; align the header and body through
|
|
352
466
|
the same Page. Density, container measure and page inset are separate choices.
|
|
353
|
-
The [detail recipe](../examples/detail.tsx) includes `AccountDetailPage`:
|
|
354
|
-
|
|
355
|
-
and MetadataList facts, with no duplicated subject
|
|
467
|
+
The [detail recipe](../examples/detail.tsx) includes `AccountDetailPage`: the
|
|
468
|
+
default record measure, a status badge, route-level commands and section tabs in
|
|
469
|
+
the header, and MetadataList facts in one framed Card, with no duplicated subject
|
|
470
|
+
header or gutter.
|
|
356
471
|
|
|
357
472
|
Compose HeaderUserMenu in topbar `slots.headerEnd` or a local toolbar, and
|
|
358
473
|
SidebarNavigationUser in AppSidebar `slots.footer` when account access belongs
|
|
@@ -31,9 +31,17 @@ than rebuilding its accessible interaction behavior.
|
|
|
31
31
|
| Action geometry and centered text | Button/IconButton/Badge recipes | Supported size/tone/style/variant |
|
|
32
32
|
| Row labels, icons and selection indicators | Item and collection recipes | Supported row content, descriptions and density |
|
|
33
33
|
| Semantic surfaces and states | Central theme and family state recipes | Theme foreground/surface pairs and supported tone/state props |
|
|
34
|
+
| Hover, selection, current, pressed and disabled states | Shared interaction recipes: rows and selection use `--accent`, toggles hover with `--muted`, tables use a quieter muted ladder, disabled content dims to 50% | Theme `--accent`, `--muted` and `--card`; supported `active`, `selected`, `pressed` and `disabled` props |
|
|
35
|
+
| Status tints | One tint scale per tone (wash, tint, edge, halo, line), contrast-tested with its ink | `tone` on Badge, Alert, IconBadge, StackedAvatars and toned blocks; the theme's tone colours |
|
|
36
|
+
| Neutral regions, chips and elevation | One neutral strength per role (quiet wash, header band, track, chip) and one theme shadow per role (resting, card, raised, lifted, modal) | Theme `--muted`, `--foreground` and the `--shadow-*` ladder; supported surface variants |
|
|
34
37
|
| Corners and elevation | Shared radius and theme shadow ladder | Theme roots and supported surface variants |
|
|
35
38
|
| Presence, dismissal and focus | Base UI plus library overlay/motion owners | Public open/state/dismissal callbacks and library overlays |
|
|
36
39
|
|
|
40
|
+
Restyle states through the theme roles so every family moves together: a
|
|
41
|
+
darker `--accent` changes every row hover and selection at once. Passing
|
|
42
|
+
`bg-success/15` or `hover:bg-muted/40` to one library row creates a second scale
|
|
43
|
+
that the contrast contract does not test.
|
|
44
|
+
|
|
37
45
|
An inset has one owner. A searchable menu needs the search region's outer inset
|
|
38
46
|
and the Input's inner text inset; it does not need a third padded wrapper. A
|
|
39
47
|
card-free block can be framed by a Card at its composition boundary.
|
|
@@ -96,9 +104,10 @@ a divider, or recolor a divider to simulate focus. Theme status colors keep thei
|
|
|
96
104
|
foreground pairs; a status tone is not a decorative brand palette.
|
|
97
105
|
|
|
98
106
|
Native fields, field-shaped triggers and compound field frames share the same
|
|
99
|
-
focus and invalid treatment.
|
|
100
|
-
|
|
101
|
-
|
|
107
|
+
focus and invalid treatment. Every focused element draws one indicator: a 1px
|
|
108
|
+
`ring` edge inside a soft 3px halo. Invalid state marks the frame and error copy
|
|
109
|
+
(and tints the halo while focused); editable values keep their normal semantic
|
|
110
|
+
foreground. Compound fields show one outer focus frame. Use validation and disabled/loading props instead of supplying a
|
|
102
111
|
second local state recipe. Selected rows retain the owning primitive's indicator;
|
|
103
112
|
highlighted, selected and destructive states are distinct responsibilities.
|
|
104
113
|
|
|
@@ -80,6 +80,10 @@ kind, exact `matchedSymbols`, `relevantSymbols`, `nextReads` and up to three
|
|
|
80
80
|
relevant guidance entries. Exact symbol queries keep that symbol; intent queries
|
|
81
81
|
derive relevantSymbols from selected catalogue API sections and current public
|
|
82
82
|
exports. An exact family import retains the complete public symbol vocabulary.
|
|
83
|
+
Deprecated migration names such as `SmartCard` or `ContentBlockProps` never
|
|
84
|
+
appear in intent recommendations. When a result touches one, its `deprecated`
|
|
85
|
+
map names the replacement, for example `{ "SmartCard": "Use Card." }`; write
|
|
86
|
+
new code with the replacement. The public index carries the same map per family.
|
|
83
87
|
Exact guide aliases precede generic overlap, and unrelated family pages
|
|
84
88
|
do not fill the result merely to reach three entries.
|
|
85
89
|
|
|
@@ -47,7 +47,11 @@ if (fs.realpathSync(selectedSkill) !== fs.realpathSync(installedSkill)) {
|
|
|
47
47
|
}
|
|
48
48
|
compareAssets(installedSkill);
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
// The app's project instructions block records the version it was pasted from.
|
|
51
|
+
const instructions = ['AGENTS.md', 'CLAUDE.md'].find(file => fs.existsSync(file));
|
|
52
|
+
const marker = instructions && fs.readFileSync(instructions, 'utf8').match(/<!-- themelia-react-ui:start (\S+) -->/);
|
|
53
|
+
const agentsBlock = !marker ? 'missing' : marker[1] === manifest.version ? 'current' : `stale (${marker[1]})`;
|
|
54
|
+
console.log(JSON.stringify({ package: manifest.name, version: manifest.version, root, skill: selectedSkill, agentsBlock }, null, 2));
|
|
51
55
|
JS
|
|
52
56
|
```
|
|
53
57
|
|
|
@@ -64,6 +68,34 @@ files or publisher markers in the copy are not checked. Keep local product polic
|
|
|
64
68
|
outside the package guidance. Recopy the complete folder after upgrades, and
|
|
65
69
|
read declarations from the installed package.
|
|
66
70
|
|
|
71
|
+
`agentsBlock` reports whether the app's `AGENTS.md` (or `CLAUDE.md`) carries the
|
|
72
|
+
[project instructions block](agents-md.md) for the installed version: `missing`,
|
|
73
|
+
`current` or `stale` with the version it was pasted from. Paste or replace the
|
|
74
|
+
whole block between its markers; it is how agents that never open a skill still
|
|
75
|
+
find this one and its done condition.
|
|
76
|
+
|
|
77
|
+
## Upgrading to the neutral button default
|
|
78
|
+
|
|
79
|
+
An untoned `Button` is now the neutral outline (`tone="secondary"`,
|
|
80
|
+
`buttonStyle="outline"`); a Button with a `tone` and no `buttonStyle` stays
|
|
81
|
+
solid. Screens that relied on untoned Buttons being the solid primary can keep
|
|
82
|
+
their look with the bundled codemod. It reports by default and edits only with
|
|
83
|
+
`--write`; review the diff before committing:
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/pin-button-defaults.mjs src
|
|
87
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/pin-button-defaults.mjs --write src
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
It adds `tone="primary"` to every Button, BaseButton or BaseButtonLink imported
|
|
91
|
+
from the package without a `tone`. Add `--solid-only` to skip untoned outline
|
|
92
|
+
and ghost Buttons so they turn neutral instead of keeping the brand color.
|
|
93
|
+
Buttons whose props come from a spread are listed as `unresolved` for review.
|
|
94
|
+
Apps that already set `UIProvider` `button.defaultTone` keep that tone and do not
|
|
95
|
+
need the codemod; `button: { defaultTone: 'primary', defaultButtonStyle: 'solid' }`
|
|
96
|
+
restores the previous default app-wide. Afterwards, demote extra primaries so
|
|
97
|
+
each page or surface keeps one.
|
|
98
|
+
|
|
67
99
|
## Manual skill copying
|
|
68
100
|
|
|
69
101
|
1. Choose an agent skill destination in the user's configured skills directory,
|
|
@@ -50,7 +50,38 @@ does not replace the single mount-time UIProvider configuration boundary.
|
|
|
50
50
|
|
|
51
51
|
Routing comes through href, callbacks or Base UI render composition. React Router is not required. Component chunks preserve client boundaries; pure utilities remain separate.
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
## Dialogs, confirmations and drawers
|
|
54
|
+
|
|
55
|
+
Every dialog-like surface comes from `themelia-react-ui/features/overlays`; it is
|
|
56
|
+
the only modal system. The overlay owners hold focus entry and trapping, Escape
|
|
57
|
+
and outside-click dismissal, focus return to the trigger, pending and error
|
|
58
|
+
states, portal theming and the shared scrim (a plain tint, never a blur).
|
|
59
|
+
|
|
60
|
+
| Need | Owner |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| A focused edit or form with confirm/cancel | `ActionDialog` |
|
|
63
|
+
| A yes/no question, or a destructive confirmation | `ConfirmDialog` (destructive tone for irreversible actions) |
|
|
64
|
+
| A longer form, filters or record details beside the page | `ActionDrawer` |
|
|
65
|
+
| Open state, triggers and several overlays on one screen | `useOverlayVisibility` (`overlayProps`, `show`, `hide`) |
|
|
66
|
+
|
|
67
|
+
Pass `overlayProps` for visibility. `onAsyncConfirm` awaits the operation and
|
|
68
|
+
keeps the overlay open on failure; `onError` reports it. Do not also pass
|
|
69
|
+
`onConfirm`, which takes precedence. Each overlay owns one primary command, its
|
|
70
|
+
confirm button; compose the body with the ordinary Stack, FormField and Card
|
|
71
|
+
anatomy and leave its insets to the overlay.
|
|
72
|
+
|
|
73
|
+
Do not hand-roll a modal (a `fixed inset-0` scrim, `role="dialog"`,
|
|
74
|
+
`aria-modal`), do not import the lower-level `Dialog`, `AlertDialog` or `Sheet`
|
|
75
|
+
building blocks, and do not add another modal library (Radix Dialog,
|
|
76
|
+
react-modal, vaul, Headless UI or React Aria dialogs). The optional checker
|
|
77
|
+
warns on each of these. Popovers, menus, selects and tooltips are anchored
|
|
78
|
+
surfaces, not dialogs: use their own owners.
|
|
79
|
+
|
|
80
|
+
To show a table full screen, use `DataTable`'s own mode (`fullscreen` or
|
|
81
|
+
`defaultFullscreen`, `onFullscreenChange`, `showFullscreenToggle`) instead of
|
|
82
|
+
moving the table into a dialog. It maximises the table in place, so scroll
|
|
83
|
+
position, focus and column state survive; Escape leaves, Tab stays inside and
|
|
84
|
+
focus returns to the toggle.
|
|
54
85
|
|
|
55
86
|
PlaceAutocomplete from themelia-react-ui/features/map uses Photon by default. Supply a stable or useCallback-memoized searchPlaces: PlaceSearchCallback to use your geocoder; it receives PlaceSearchOptions and an AbortSignal and returns Promise<PlaceFeature[]>. Adapt provider results to the existing place shape and OSM identifiers (duplicates are removed by osm_id). Changing provider identity or search options cancels the old lookup and searches the current query. Respect the signal; superseded responses are ignored even if a provider cannot cancel. Keep provider identity stable during ordinary renders. Notification callbacks may be inline. onSearchError reports current failures; the built-in Retry action repeats the lookup and strings.retry localizes its label.
|
|
56
87
|
|