themelia-react-ui 2.0.5 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +76 -0
- package/MIGRATION.md +119 -0
- package/README.md +13 -6
- package/dist/{accordion-B9MHG0cT.js → accordion-0tQUZ20r.js} +7 -7
- package/dist/accordion-0tQUZ20r.js.map +1 -0
- package/dist/{action-menu-Dr8K-ghE.js → action-menu-C0gjzLyE.js} +7 -7
- package/dist/{action-menu-Dr8K-ghE.js.map → action-menu-C0gjzLyE.js.map} +1 -1
- package/dist/{ai-artifact-C58tQcBy.js → ai-artifact-CGGpQryR.js} +172 -157
- package/dist/ai-artifact-CGGpQryR.js.map +1 -0
- package/dist/{app-shell-B_IuNWOo.js → app-shell-EHuuRDGy.js} +5 -5
- package/dist/{app-shell-B_IuNWOo.js.map → app-shell-EHuuRDGy.js.map} +1 -1
- package/dist/{attachment-Dg_69lPS.js → attachment-BCpA4e7i.js} +8 -8
- package/dist/{attachment-Dg_69lPS.js.map → attachment-BCpA4e7i.js.map} +1 -1
- package/dist/{auth-DTkkshS8.js → auth-B0girIk_.js} +15 -15
- package/dist/auth-B0girIk_.js.map +1 -0
- package/dist/{avatar-CeZaFmNH.js → avatar-B9Jnp-T-.js} +3 -3
- package/dist/{avatar-CeZaFmNH.js.map → avatar-B9Jnp-T-.js.map} +1 -1
- package/dist/{badge-xIiV_E7f.js → badge-wWauMgAt.js} +3 -3
- package/dist/{badge-xIiV_E7f.js.map → badge-wWauMgAt.js.map} +1 -1
- package/dist/base/accordion.js +1 -1
- package/dist/base/action-menu.js +1 -1
- package/dist/base/attachment.js +1 -1
- package/dist/base/avatar.js +1 -1
- package/dist/base/badge.js +1 -1
- package/dist/base/batch-action-bar.js +1 -1
- package/dist/base/buttons.js +1 -1
- package/dist/base/cards.js +2 -2
- package/dist/base/carousel.js +3 -3
- package/dist/base/cascader.js +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +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 +6 -6
- package/dist/base/feedback.js +4 -4
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +8 -8
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/metadata-list.js +1 -1
- package/dist/base/navigation.js +6 -6
- 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 +195 -188
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +7 -7
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +5 -5
- package/dist/base/spinner.js.map +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +2 -2
- package/dist/base/toaster.js +1 -1
- package/dist/base/tree.js +1 -1
- package/dist/base/upload-queue.js +1 -1
- package/dist/base/upload.js +3 -3
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-BoqWIIpV.js} +5 -5
- package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-BoqWIIpV.js.map} +1 -1
- package/dist/blocks/admin.js +17 -17
- package/dist/blocks/ai.js +227 -221
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +424 -449
- 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 +225 -220
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -2
- package/dist/blocks/onboarding.js +5 -5
- package/dist/blocks/planning.js +11 -11
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-J-K2kl4c.js → breadcrumbs-Bp9Ke7kd.js} +4 -4
- package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
- package/dist/{button-S2Cubiiz.js → button-ChBovTx0.js} +2 -2
- package/dist/{button-S2Cubiiz.js.map → button-ChBovTx0.js.map} +1 -1
- package/dist/{buttons-BedGfygC.js → buttons-DeW0bQeK.js} +6 -6
- package/dist/{buttons-BedGfygC.js.map → buttons-DeW0bQeK.js.map} +1 -1
- package/dist/{cards-rNX1M4Xn.js → cards-CNXnmvV5.js} +8 -8
- package/dist/{cards-rNX1M4Xn.js.map → cards-CNXnmvV5.js.map} +1 -1
- package/dist/{cascader-B1MiqkBq.js → cascader-CrAl9zD5.js} +15 -15
- package/dist/{cascader-B1MiqkBq.js.map → cascader-CrAl9zD5.js.map} +1 -1
- package/dist/{chart-Darg_0Kv.js → chart-I7ROnsl8.js} +5 -5
- package/dist/{chart-Darg_0Kv.js.map → chart-I7ROnsl8.js.map} +1 -1
- package/dist/{checkbox-fflqmODR.js → checkbox-MoyHIAPs.js} +3 -3
- package/dist/{checkbox-fflqmODR.js.map → checkbox-MoyHIAPs.js.map} +1 -1
- package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-DHGtx0QV.js} +122 -110
- package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
- package/dist/{code-block-BzmM9Eig.js → code-block-BSJyq9e-.js} +7 -7
- package/dist/{code-block-BzmM9Eig.js.map → code-block-BSJyq9e-.js.map} +1 -1
- package/dist/{collapsible-BkAI_XD4.js → collapsible-BzJ91LUG.js} +3 -3
- package/dist/{collapsible-BkAI_XD4.js.map → collapsible-BzJ91LUG.js.map} +1 -1
- package/dist/{collection-content-gDh1v6O4.js → collection-content-CSnwtOTH.js} +3 -3
- package/dist/{collection-content-gDh1v6O4.js.map → collection-content-CSnwtOTH.js.map} +1 -1
- package/dist/{combobox-BEx0vJgF.js → combobox-Bcvu5J8O.js} +11 -10
- package/dist/{combobox-BEx0vJgF.js.map → combobox-Bcvu5J8O.js.map} +1 -1
- package/dist/combobox-C2JiSQPc.js +915 -0
- package/dist/combobox-C2JiSQPc.js.map +1 -0
- package/dist/{command-CrlPIL6m.js → command-9e52NPgK.js} +6 -6
- package/dist/{command-CrlPIL6m.js.map → command-9e52NPgK.js.map} +1 -1
- package/dist/{comments-Dmpp0YIc.js → comments-BsgErEqd.js} +33 -28
- package/dist/comments-BsgErEqd.js.map +1 -0
- package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
- package/dist/components/base/combobox/combobox-field.d.ts +2 -2
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
- package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
- package/dist/components/base/feedback/state-display.d.ts +5 -1
- package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
- package/dist/components/base/forms/form-field.d.ts +7 -2
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
- package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
- package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
- package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
- package/dist/components/base/navigation/language-switcher.d.ts +12 -4
- package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
- package/dist/components/base/sidebar/sidebar.d.ts +2 -0
- package/dist/components/base/upload/avatar-upload.d.ts +2 -1
- package/dist/components/base/upload/image-upload.d.ts +2 -1
- package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +2 -0
- package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
- package/dist/components/blocks/analytics/types.d.ts +2 -2
- package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
- package/dist/components/features/activities/activities.types.d.ts +18 -11
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
- package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
- package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
- package/dist/components/features/combobox/combobox.d.ts +2 -2
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
- package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
- package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
- package/dist/components/features/combobox/types.d.ts +37 -8
- package/dist/components/features/email-composer/types.d.ts +3 -1
- package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
- package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
- package/dist/components/features/filters/filters.types.d.ts +3 -3
- package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
- package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
- package/dist/components/features/filters/utils/filter-utils.d.ts +5 -1
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +6 -0
- package/dist/components/features/media-library/media-library.types.d.ts +36 -8
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
- package/dist/components/features/products/products.types.d.ts +2 -2
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
- package/dist/components/features/resource/resource.d.ts +1 -1
- package/dist/components/features/resource/resource.types.d.ts +2 -0
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
- 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.types.d.ts +17 -3
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
- package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
- package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/index.d.ts +1 -0
- package/dist/components/features/table/table-body.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +6 -3
- package/dist/components/features/table/table.strings.d.ts +3 -0
- package/dist/components/features/table/table.types.d.ts +17 -1
- package/dist/components/layout/header/header.types.d.ts +3 -2
- package/dist/components/layout/layout.types.d.ts +5 -3
- package/dist/components/layout/navigation/side-nav.d.ts +3 -2
- package/dist/components/layout/normalize-layout-path.d.ts +1 -0
- package/dist/components/layout/settings/settings.d.ts +1 -1
- package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +3 -1
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
- package/dist/components/layout/sidebar/sidebar.types.d.ts +2 -0
- package/dist/components/primitives/link.d.ts +3 -2
- package/dist/components/primitives/money.d.ts +1 -1
- package/dist/components/primitives/number.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
- package/dist/{containers-CIxwbZt5.js → containers-CSdc32h9.js} +2 -2
- package/dist/{containers-CIxwbZt5.js.map → containers-CSdc32h9.js.map} +1 -1
- package/dist/{copyable-DIznBqiT.js → copyable-3fdHfMR3.js} +4 -4
- package/dist/{copyable-DIznBqiT.js.map → copyable-3fdHfMR3.js.map} +1 -1
- package/dist/{data-display-BdgCAw8T.js → data-display-Cmj-xZYl.js} +16 -15
- package/dist/data-display-Cmj-xZYl.js.map +1 -0
- package/dist/{date-Cq8ioE4o.js → date-Br0FicVv.js} +4 -4
- package/dist/{date-Cq8ioE4o.js.map → date-Br0FicVv.js.map} +1 -1
- package/dist/date-picker-CyQlFYsP.js +1617 -0
- package/dist/date-picker-CyQlFYsP.js.map +1 -0
- package/dist/date-pickers-tj2MXmXd.js +185 -0
- package/dist/date-pickers-tj2MXmXd.js.map +1 -0
- package/dist/{display-KsZLw9Ov.js → display-CT_N2a3w.js} +7 -7
- package/dist/{display-KsZLw9Ov.js.map → display-CT_N2a3w.js.map} +1 -1
- package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-C08iIugv.js} +6 -6
- package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-C08iIugv.js.map} +1 -1
- package/dist/features/activities.js +283 -270
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +40 -27
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +126 -126
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +9 -9
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +10 -10
- package/dist/features/email-composer.js +24 -19
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +129 -125
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +16 -20
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +18 -28
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map/style.css +15 -0
- package/dist/features/map.js +331 -314
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1044 -866
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +2 -2
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +978 -964
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +159 -152
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +8 -8
- package/dist/features/resource.js +74 -71
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +28 -19
- package/dist/features/rich-text-editor.js.map +1 -1
- package/dist/features/schema-form.js +297 -256
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +57 -50
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +400 -399
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-Dzo1xtAU.js +246 -0
- package/dist/feedback-Dzo1xtAU.js.map +1 -0
- package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-D6H7tVJi.js} +2 -2
- package/dist/{field-affordance-recipes-DWcNcOjh.js.map → field-affordance-recipes-D6H7tVJi.js.map} +1 -1
- package/dist/field-control-attributes-B6i335wr.js +18 -0
- package/dist/field-control-attributes-B6i335wr.js.map +1 -0
- package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
- package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
- package/dist/{filters-DzgSJpMK.js → filters-Dl80yYtN.js} +763 -605
- package/dist/filters-Dl80yYtN.js.map +1 -0
- package/dist/form-field-CAPdwdnZ.js +74 -0
- package/dist/form-field-CAPdwdnZ.js.map +1 -0
- package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-CgcrUbLU.js} +2 -2
- package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-CgcrUbLU.js.map} +1 -1
- package/dist/{forms-C0RGnJTe.js → forms-B3W8CH7-.js} +8 -8
- package/dist/{forms-C0RGnJTe.js.map → forms-B3W8CH7-.js.map} +1 -1
- package/dist/forms-numeric-CwjQJe-O.js +991 -0
- package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
- package/dist/{header-DMMxG__r.js → header-ZIIsRKxP.js} +113 -113
- package/dist/header-ZIIsRKxP.js.map +1 -0
- package/dist/hooks/use-files.d.ts +2 -0
- package/dist/{hooks-DB6CJ4MR.js → hooks-BitHSh-Y.js} +3 -3
- package/dist/{hooks-DB6CJ4MR.js.map → hooks-BitHSh-Y.js.map} +1 -1
- package/dist/{icon-badge-DZF-YjQp.js → icon-badge-npxF1SLX.js} +2 -2
- package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-npxF1SLX.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/{input-CvyDQlY7.js → input-7KAc7XQL.js} +6 -6
- package/dist/{input-CvyDQlY7.js.map → input-7KAc7XQL.js.map} +1 -1
- package/dist/{input-DMBwAZmr.js → input-DIREVYHs.js} +3 -3
- package/dist/{input-DMBwAZmr.js.map → input-DIREVYHs.js.map} +1 -1
- package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
- package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
- package/dist/{item-DjCcM18E.js → item-FfWnaYST.js} +99 -98
- package/dist/item-FfWnaYST.js.map +1 -0
- package/dist/layout/app-shell.js +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/containers.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +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 +11 -11
- package/dist/layout.types-E_GAApzO.js +30 -0
- package/dist/layout.types-E_GAApzO.js.map +1 -0
- package/dist/lib/field-control-attributes.d.ts +11 -0
- package/dist/lib/field-state-recipes.d.ts +2 -0
- package/dist/lib/format.d.ts +1 -0
- package/dist/lib/surface-recipes.d.ts +1 -1
- package/dist/lib/token-merge.generated.d.ts +6 -6
- package/dist/lib/utils.js +1 -1
- package/dist/{media-gallery-C-vChPmE.js → media-gallery-C81DAnKI.js} +6 -6
- package/dist/{media-gallery-C-vChPmE.js.map → media-gallery-C81DAnKI.js.map} +1 -1
- package/dist/{mentions-0_4nWuI-.js → mentions-qOnedSt4.js} +236 -167
- package/dist/mentions-qOnedSt4.js.map +1 -0
- package/dist/message-BJHnn43M.js +135 -0
- package/dist/message-BJHnn43M.js.map +1 -0
- package/dist/{metadata-list-C3MkU-Om.js → metadata-list-XkqZ_UXH.js} +11 -11
- package/dist/{metadata-list-C3MkU-Om.js.map → metadata-list-XkqZ_UXH.js.map} +1 -1
- package/dist/{navigation-DaRjthVk.js → navigation-BgtPJAhi.js} +119 -119
- package/dist/navigation-BgtPJAhi.js.map +1 -0
- package/dist/{navigation-C90-oQFq.js → navigation-Bt-v7rWP.js} +52 -46
- package/dist/navigation-Bt-v7rWP.js.map +1 -0
- package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
- package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
- package/dist/{number-CRU3kGuk.js → number-CYqBcrSj.js} +78 -86
- package/dist/number-CYqBcrSj.js.map +1 -0
- package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-BQCA2Zn2.js} +7 -7
- package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-BQCA2Zn2.js.map} +1 -1
- package/dist/{overlays-BSgCtM2v.js → overlays-CC8zI3Du.js} +264 -260
- package/dist/overlays-CC8zI3Du.js.map +1 -0
- package/dist/{page-DUUKDAjo.js → page-BoQ1VaFJ.js} +13 -13
- package/dist/{page-DUUKDAjo.js.map → page-BoQ1VaFJ.js.map} +1 -1
- package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-DIKspJfx.js} +4 -4
- package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-DIKspJfx.js.map} +1 -1
- package/dist/{pagination-CgCjElfu.js → pagination-Br8TdV9A.js} +4 -4
- package/dist/{pagination-CgCjElfu.js.map → pagination-Br8TdV9A.js.map} +1 -1
- package/dist/{popover-B85RenIl.js → popover-k8TdUcAt.js} +10 -10
- package/dist/popover-k8TdUcAt.js.map +1 -0
- package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-yn-o0kyA.js} +7 -7
- package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
- package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-DJ0AkUan.js} +2 -2
- package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-DJ0AkUan.js.map} +1 -1
- package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-DyUXqUtD.js} +2 -2
- package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-DyUXqUtD.js.map} +1 -1
- package/dist/{primitives-ByWgGUgt.js → primitives-BkkQjYl7.js} +22 -17
- package/dist/primitives-BkkQjYl7.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-BJhQP9WX.js → progress-DZFXXzPs.js} +4 -4
- package/dist/{progress-BJhQP9WX.js.map → progress-DZFXXzPs.js.map} +1 -1
- package/dist/{receipt-tOc7B3hw.js → receipt-C7LhOg7Q.js} +6 -6
- package/dist/{receipt-tOc7B3hw.js.map → receipt-C7LhOg7Q.js.map} +1 -1
- package/dist/rich-text-BnTzZjIo.js +45 -0
- package/dist/rich-text-BnTzZjIo.js.map +1 -0
- package/dist/rich-text-editor-CAurDwT5.js +1273 -0
- package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
- package/dist/{rich-text-editor-toolbar-laT3tpBT.js → rich-text-editor-toolbar-DbXig7Jk.js} +36 -35
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
- package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
- package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
- package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
- package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
- package/dist/{scroll-area-B0dB2cBi.js → scroll-area-Bj6CRUif.js} +2 -2
- package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
- package/dist/{separator-Bb17I4pu.js → separator-B9ewiCGO.js} +2 -2
- package/dist/{separator-Bb17I4pu.js.map → separator-B9ewiCGO.js.map} +1 -1
- package/dist/{separator-Ct_WSWTJ.js → separator-DM6gs2vu.js} +3 -3
- package/dist/{separator-Ct_WSWTJ.js.map → separator-DM6gs2vu.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/settings-DZPHgpx4.js +155 -0
- package/dist/settings-DZPHgpx4.js.map +1 -0
- package/dist/{sheet-BGPERY55.js → sheet-C4DHsgLk.js} +6 -6
- package/dist/{sheet-BGPERY55.js.map → sheet-C4DHsgLk.js.map} +1 -1
- package/dist/sidebar-C8BnDwTH.js +709 -0
- package/dist/sidebar-C8BnDwTH.js.map +1 -0
- package/dist/{sidebar-f9gRWXIR.js → sidebar-CmD6a-HK.js} +16 -13
- package/dist/sidebar-CmD6a-HK.js.map +1 -0
- package/dist/{skeleton-BapcJd9C.js → skeleton-DDgdhmu9.js} +5 -5
- package/dist/{skeleton-BapcJd9C.js.map → skeleton-DDgdhmu9.js.map} +1 -1
- package/dist/{smart-card-CW0hjetE.js → smart-card-B6vLxqa_.js} +8 -8
- package/dist/{smart-card-CW0hjetE.js.map → smart-card-B6vLxqa_.js.map} +1 -1
- package/dist/{structure-DuxKl954.js → structure-DZJ2wbAU.js} +2 -2
- package/dist/{structure-DuxKl954.js.map → structure-DZJ2wbAU.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
- package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
- package/dist/{table-CFOWY9pQ.js → table-CBonSdTp.js} +534 -486
- package/dist/table-CBonSdTp.js.map +1 -0
- package/dist/{table-B4TE7iOV.js → table-CXSPHH25.js} +75 -71
- package/dist/table-CXSPHH25.js.map +1 -0
- package/dist/{tabs-e7ko9S2o.js → tabs-C4Kr_hCr.js} +50 -49
- package/dist/tabs-C4Kr_hCr.js.map +1 -0
- package/dist/{text-inputs-B1culiSK.js → text-inputs-jdkS3ReG.js} +9 -9
- package/dist/{text-inputs-B1culiSK.js.map → text-inputs-jdkS3ReG.js.map} +1 -1
- package/dist/{timelines-D3Sl9ueq.js → timelines-CoPwdJP0.js} +10 -10
- package/dist/{timelines-D3Sl9ueq.js.map → timelines-CoPwdJP0.js.map} +1 -1
- package/dist/{tooltip-8wz5S_Zr.js → tooltip-31NwIpTo.js} +4 -4
- package/dist/{tooltip-8wz5S_Zr.js.map → tooltip-31NwIpTo.js.map} +1 -1
- package/dist/{tree-CzUJHnFs.js → tree-CeYVzdFE.js} +6 -6
- package/dist/{tree-CzUJHnFs.js.map → tree-CeYVzdFE.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/{typography-BQnine1k.js → typography-C7-YMW1S.js} +2 -2
- package/dist/{typography-BQnine1k.js.map → typography-C7-YMW1S.js.map} +1 -1
- package/dist/typography.js +1 -1
- package/dist/{upload-BOW6U2tI.js → upload-Hdm5gObf.js} +303 -291
- package/dist/upload-Hdm5gObf.js.map +1 -0
- package/dist/{upload-queue-qUXn1ykN.js → upload-queue-D0sYPuqo.js} +8 -8
- package/dist/{upload-queue-qUXn1ykN.js.map → upload-queue-D0sYPuqo.js.map} +1 -1
- package/dist/{usage-card-BeSLY0i0.js → usage-card-9s8hLDfn.js} +9 -9
- package/dist/{usage-card-BeSLY0i0.js.map → usage-card-9s8hLDfn.js.map} +1 -1
- package/dist/{utils-B6kKb8jB.js → utils-DhuoqFy4.js} +31 -37
- package/dist/utils-DhuoqFy4.js.map +1 -0
- package/dist/{value-inputs-skdVB2zh.js → value-inputs-D3aPgq9H.js} +15 -15
- package/dist/{value-inputs-skdVB2zh.js.map → value-inputs-D3aPgq9H.js.map} +1 -1
- package/dist/{value-typography-uAmWUAL1.js → value-typography-uSzzG9Gf.js} +32 -26
- package/dist/value-typography-uSzzG9Gf.js.map +1 -0
- package/dist/{workspace-DHeHv0qw.js → workspace-CC8Vchiu.js} +12 -12
- package/dist/{workspace-DHeHv0qw.js.map → workspace-CC8Vchiu.js.map} +1 -1
- package/docs/consumer-skill/examples/edit.tsx +3 -3
- package/docs/consumer-skill/references/agents-md.md +19 -19
- package/docs/consumer-skill/references/analytics.md +15 -0
- package/docs/consumer-skill/references/component-contracts.json +14724 -13057
- package/docs/consumer-skill/references/composition.md +21 -4
- package/docs/consumer-skill/references/design-contract.md +1 -0
- package/docs/consumer-skill/references/installation.md +51 -8
- package/docs/consumer-skill/references/integration.md +24 -1
- package/docs/consumer-skill/references/public-api.json +172 -34
- package/docs/consumer-skill/references/review.md +51 -11
- package/docs/consumer-skill/references/rhf-workflows.md +72 -0
- package/docs/consumer-skill/references/theming.md +7 -2
- package/docs/consumer-skill/references/tokens.json +1 -1
- package/docs/consumer-skill/scripts/composition-policy.mjs +144 -30
- package/docs/consumer-skill/scripts/setup-skills.mjs +46 -9
- package/package.json +4 -2
- package/templates/admin-shell-template.tsx +1 -2
- package/templates/customers-template.tsx +18 -16
- package/dist/accordion-B9MHG0cT.js.map +0 -1
- package/dist/ai-artifact-C58tQcBy.js.map +0 -1
- package/dist/auth-DTkkshS8.js.map +0 -1
- package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
- package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
- package/dist/combobox-BwzoXFSG.js +0 -884
- package/dist/combobox-BwzoXFSG.js.map +0 -1
- package/dist/comments-Dmpp0YIc.js.map +0 -1
- package/dist/data-display-BdgCAw8T.js.map +0 -1
- package/dist/date-picker-RlIzKom_.js +0 -1551
- package/dist/date-picker-RlIzKom_.js.map +0 -1
- package/dist/date-pickers-DY-CpXS1.js +0 -179
- package/dist/date-pickers-DY-CpXS1.js.map +0 -1
- package/dist/feedback-Dm4izqFn.js +0 -240
- package/dist/feedback-Dm4izqFn.js.map +0 -1
- package/dist/filters-DzgSJpMK.js.map +0 -1
- package/dist/form-field-BriWAXyg.js +0 -63
- package/dist/form-field-BriWAXyg.js.map +0 -1
- package/dist/forms-numeric-DIhghX1Q.js +0 -910
- package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
- package/dist/header-DMMxG__r.js.map +0 -1
- package/dist/item-DjCcM18E.js.map +0 -1
- package/dist/layout.types-Cn7aUzJp.js +0 -20
- package/dist/layout.types-Cn7aUzJp.js.map +0 -1
- package/dist/mentions-0_4nWuI-.js.map +0 -1
- package/dist/message-g8p7eVtN.js +0 -128
- package/dist/message-g8p7eVtN.js.map +0 -1
- package/dist/navigation-C90-oQFq.js.map +0 -1
- package/dist/navigation-DaRjthVk.js.map +0 -1
- package/dist/number-CRU3kGuk.js.map +0 -1
- package/dist/overlays-BSgCtM2v.js.map +0 -1
- package/dist/popover-B85RenIl.js.map +0 -1
- package/dist/primitives-ByWgGUgt.js.map +0 -1
- package/dist/rich-text-Dth5E882.js +0 -78
- package/dist/rich-text-Dth5E882.js.map +0 -1
- package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
- package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
- package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
- package/dist/safe-image-src-C6kQSMBZ.js +0 -17
- package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
- package/dist/sanitize-html-DsQmI48u.js.map +0 -1
- package/dist/settings-Bar5wiSo.js +0 -167
- package/dist/settings-Bar5wiSo.js.map +0 -1
- package/dist/sidebar-D-JYMMbY.js +0 -686
- package/dist/sidebar-D-JYMMbY.js.map +0 -1
- package/dist/sidebar-f9gRWXIR.js.map +0 -1
- package/dist/table-B4TE7iOV.js.map +0 -1
- package/dist/table-CFOWY9pQ.js.map +0 -1
- package/dist/tabs-e7ko9S2o.js.map +0 -1
- package/dist/upload-BOW6U2tI.js.map +0 -1
- package/dist/utils-B6kKb8jB.js.map +0 -1
- package/dist/value-typography-uAmWUAL1.js.map +0 -1
|
@@ -81,6 +81,13 @@ application decision; confirm destructive commands in their handler. Use
|
|
|
81
81
|
the compatible direct `actions` prop for non-command controls such as a period select. A back link,
|
|
82
82
|
export and destructive command should not all inherit the same visual emphasis.
|
|
83
83
|
|
|
84
|
+
Scope this hierarchy to route commands. A local lookup or independently saved
|
|
85
|
+
settings form keeps its primary submit beside its fields or in its own footer;
|
|
86
|
+
it does not compete with the route's primary action. A whole-page editor can
|
|
87
|
+
deliberately expose one submit in its header. Preserve native form association
|
|
88
|
+
and validation instead of moving local saves to header DOM-lookup handlers just
|
|
89
|
+
to silence a primary-command warning.
|
|
90
|
+
|
|
84
91
|
```tsx
|
|
85
92
|
<Page header={{
|
|
86
93
|
title: 'Contacts',
|
|
@@ -346,8 +353,9 @@ PopoverContent type="display" owns substantive-content padding; type="menu" comp
|
|
|
346
353
|
| size="sm" / "md" / "lg" | Supported control's scale; consult its declaration and provider precedence |
|
|
347
354
|
|
|
348
355
|
Input, Button, Select, filter-facet triggers and badges share the default
|
|
349
|
-
`rounded-radius` corner
|
|
350
|
-
|
|
356
|
+
`rounded-radius` corner; Card and popup shells use the larger `rounded-surface`.
|
|
357
|
+
Fields and actions use their corresponding height scales; badges remain content-sized.
|
|
358
|
+
Omitted sizes inherit the provider; explicit sizes win.
|
|
351
359
|
Keep action/control roots equal when those controls adjoin. Compact menu rows,
|
|
352
360
|
surface insets and control sizes remain independent; density does not change
|
|
353
361
|
the corner.
|
|
@@ -355,7 +363,7 @@ Inset segmented children use the supported compound owner's same-height frame.
|
|
|
355
363
|
|
|
356
364
|
PopoverContent defaults to display/default; Command defaults to compact. An explicit PopoverContent type controls anatomy; explicit inset controls padding and takes precedence over the type's inferred inset. Without type, compact implies menu, other insets imply display. Put type="menu" inset="flush" on PopoverContent for a headed searchable picker. Popover is the interaction root and receives no surface props. PopoverMenu already assembles that picker anatomy; use its declared selection/search props. ComboboxPopup is flush because ComboboxList owns its inset. Do not add another wrapper inset around a normal collection list.
|
|
357
365
|
|
|
358
|
-
At shipped roots, rich display padding is 24px and compact collection shell padding is 8px; row inline padding is 12px
|
|
366
|
+
At shipped roots, rich display padding is 24px and compact collection shell padding is 8px; row inline padding is 12px. Anchored collection rows use 6px block padding and a 32px minimum height by default. Compact/comfortable rows use 2/8px block padding and 28/36px minimum heights. These differ from Item/table row density recipes; content can grow when it wraps. These are token-derived measurements, not app constants. Flush compact header/footer bands match the list's 8px inset. Plain header text and footer captions add a small xs step (4px) to that md band inset, rather than the full row inset; leading controls and actions stay on the band edge. Nested public slots do not repeat these insets.
|
|
359
367
|
|
|
360
368
|
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.
|
|
361
369
|
|
|
@@ -367,7 +375,10 @@ Overflow menus use ActionMenu's own trigger: the ⋯ glyph named "More actions",
|
|
|
367
375
|
|
|
368
376
|
## Migration
|
|
369
377
|
|
|
370
|
-
Use exact themelia-react-ui paths. Presentation imports
|
|
378
|
+
Use exact `themelia-react-ui` paths. Presentation imports move from
|
|
379
|
+
`admin-ui-starter-kit/composed/<family>` to `themelia-react-ui/blocks/<family>`.
|
|
380
|
+
Read `MIGRATION.md` in the installed package for setup, tools and changed
|
|
381
|
+
defaults. Check the installed types when migrating a composition.
|
|
371
382
|
|
|
372
383
|
|
|
373
384
|
## Copy rhythm
|
|
@@ -607,6 +618,12 @@ narrow record measure, a status badge, route-level commands and section tabs in
|
|
|
607
618
|
the header, and MetadataList facts in one framed Card, with no duplicated subject
|
|
608
619
|
header or gutter.
|
|
609
620
|
|
|
621
|
+
Page's measure contains both header and body. On a mixed route with wide tables
|
|
622
|
+
and focused settings panels, keep Page's width stable across tabs. Constrain
|
|
623
|
+
only the focused panel with `Container maxWidth="md" gutter="none"`; Container
|
|
624
|
+
uses `gutter`, not a `padding` prop. An intentional responsive route width is
|
|
625
|
+
different from changing the header's width on every section selection.
|
|
626
|
+
|
|
610
627
|
Compose HeaderUserMenu in topbar `slots.headerEnd` or a local toolbar, and
|
|
611
628
|
SidebarNavigationUser in AppSidebar `slots.footer` when account access belongs
|
|
612
629
|
in navigation. Use SidebarWorkspaceDropdown for workspace links, or add a
|
|
@@ -68,6 +68,7 @@ These base measurements use the shipped roots; spacing scales once through
|
|
|
68
68
|
| Independent subject regions | `2xl`, 24px | Page body, TwoColumnLayout, resource, workspace and settings subjects |
|
|
69
69
|
| Page header/body separation | `3xl`, 32px | Page composition |
|
|
70
70
|
| Surface header/body/footer | Surface-derived regional gap | Card or overlay anatomy, independent of peer gaps |
|
|
71
|
+
| Live table outer / interior cell insets | Small surface / row inline tiers, 16 / 12px | Table head, body and footer cells; row density changes only block rhythm |
|
|
71
72
|
|
|
72
73
|
Generic Stack and Grid keep their existing defaults; choose their semantic gap
|
|
73
74
|
for the relationship they host. A Card's regional gap derives from its surface
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Choose the CSS path
|
|
4
4
|
|
|
5
|
-
**Standalone compiled CSS:** import `themelia-react-ui/style.css` once in the app entry. It includes component styles
|
|
5
|
+
**Standalone compiled CSS:** import `themelia-react-ui/style.css` once in the app entry. It includes component styles, the documented public utility vocabulary, and static utility classes used by catalogue examples and shipped recipes/templates; components work without a host reset, Tailwind processing or private-source scanning. It deliberately omits global preflight. This path does not generate arbitrary utility classes written in app source.
|
|
6
6
|
|
|
7
7
|
**Tailwind v4 application utilities:** when the app authors Tailwind classes, process this application stylesheet through its Tailwind v4 build integration:
|
|
8
8
|
|
|
@@ -14,8 +14,27 @@
|
|
|
14
14
|
|
|
15
15
|
Tailwind supplies app-generated utilities and its layered preflight; theme.css makes the semantic and structural vocabulary available to that compilation. No package-private source scan is required. The default layer order is `theme, base, components, utilities`. Keep app resets inside `@layer base`; unlayered universal/tag resets outrank layered package styles regardless of import order. Do not blanket-reset `[data-slot]`, which also belongs to third-party and app markup. Put intentional scoped app overrides after these imports. See [integration](integration.md) for an optional app-owned reset and provider setup.
|
|
16
16
|
|
|
17
|
+
## Set the application canvas
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
The host owns the document font, page background and inherited text color.
|
|
20
|
+
After importing package styles, set them in the application's stylesheet:
|
|
21
|
+
|
|
22
|
+
```css
|
|
23
|
+
@layer base {
|
|
24
|
+
html { font-family: var(--font-sans); }
|
|
25
|
+
body { margin: 0; background: var(--background); color: var(--foreground); }
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
These roles follow the active light/dark theme. They also give app markup and
|
|
30
|
+
intentionally inherited copy a page foreground. Components keep their own
|
|
31
|
+
essential fonts and box model; this host setup is independent of a reset or
|
|
32
|
+
Tailwind build and adds no stylesheet entry or dependency. Painted card and
|
|
33
|
+
popover surfaces still pair their own background/foreground roles.
|
|
34
|
+
|
|
35
|
+
## Resolve the installed package
|
|
36
|
+
|
|
37
|
+
Themelia 2.0.6 requires the official `@base-ui/react ^1.9.0` npm peer alongside
|
|
19
38
|
React, React DOM and Lucide. An app already using `^1.9.0` can retain that range.
|
|
20
39
|
Remove any older private Base UI archive pin or override before refreshing the
|
|
21
40
|
lockfile; dismissal translations and nested popup focus belong to Themelia's
|
|
@@ -107,27 +126,51 @@ each page or surface keeps one.
|
|
|
107
126
|
|
|
108
127
|
## Copy the complete skill bundle
|
|
109
128
|
|
|
110
|
-
The package ships four focused capabilities, one compatibility/shared root and one agent definition. One copy of API/token/contract metadata, scripts and examples is shared by all
|
|
129
|
+
The package ships four focused capabilities, one compatibility/shared root and one agent definition. One copy of API/token/contract metadata, scripts and examples is shared by all four. Do not copy only an individual SKILL.md or duplicate the generated indexes into each skill.
|
|
111
130
|
|
|
112
|
-
When the user requests installation, run the bundled copy helper with their configured agent skills directory.
|
|
131
|
+
When the user requests installation, run the bundled copy helper with their configured agent skills directory. Codex supports project `.agents/skills` and user `~/.agents/skills`; honor an existing configured alternative:
|
|
113
132
|
|
|
114
133
|
```sh
|
|
115
|
-
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination
|
|
116
|
-
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination
|
|
134
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination .agents/skills
|
|
135
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination .agents/skills
|
|
117
136
|
```
|
|
118
137
|
|
|
119
138
|
It copies `themelia-components`, `themelia-tokenization`, `themelia-composition`, `themelia-design`, and `themelia-react-ui-consumer` as real sibling directories. Rich templates are copied once under the shared directory. Markdown links are rebased for this installed layout; no symlinks or repository paths are required. Existing canonical/shared destinations are rejected before writing: preserve or move the previous complete bundle before an upgrade, then copy the release together. `--check` compares every expected asset after rebasing, so stale content with an unchanged development version is caught.
|
|
120
139
|
|
|
121
140
|
### Copy the designer agent
|
|
122
141
|
|
|
123
|
-
`docs/consumer-skill/agents/themelia-ui-designer.md` is a
|
|
142
|
+
`docs/consumer-skill/agents/themelia-ui-designer.md` is a Markdown agent definition and portable prompt: a product designer that reads records, writes a view spec, builds with public owners, renders 390 and 1440 wide in light and dark, scores the critique rubric and fixes. `review` mode is read-only. Its body reads skills and scripts through `node_modules/themelia-react-ui/...`, so it works wherever the skills were copied. The copy inside the shared skill is a reference; registering a custom agent depends on the host:
|
|
143
|
+
|
|
144
|
+
| Host | Discoverable custom agent | Installer behavior |
|
|
145
|
+
| --- | --- | --- |
|
|
146
|
+
| Claude Code | `.claude/agents/themelia-ui-designer.md` | A destination ending in `.claude/skills` also copies/checks the sibling agent. `--no-agents` opts out; `--agents <dir>` overrides it. |
|
|
147
|
+
| Antigravity | `.agents/agents/themelia-ui-designer.md` | Pass `--agents .agents/agents` explicitly with `.agents/skills`. |
|
|
148
|
+
| Codex | `.codex/agents/<name>.toml` | The Markdown file remains a prompt/reference; this helper does not generate or register a Codex TOML agent. Follow the prompt directly or pass it to an available subagent. |
|
|
149
|
+
|
|
150
|
+
`.agents/skills` is shared by multiple hosts, so the installer does not infer a Markdown-agent destination from it. See the official [Claude Code subagent](https://code.claude.com/docs/en/sub-agents), [Antigravity subagent](https://antigravity.google/docs/subagents), [Codex subagent](https://learn.chatgpt.com/docs/agent-configuration/subagents) and [skill metadata](https://learn.chatgpt.com/docs/build-skills) documentation. `agents/openai.yaml` is optional skill metadata, separate from custom agent registration.
|
|
151
|
+
|
|
152
|
+
For Claude Code, copy the complete bundle and agent together:
|
|
153
|
+
|
|
154
|
+
```sh
|
|
155
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination .claude/skills
|
|
156
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination .claude/skills
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
For Antigravity, choose the agent destination explicitly:
|
|
160
|
+
|
|
161
|
+
```sh
|
|
162
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --destination .agents/skills --agents .agents/agents
|
|
163
|
+
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --destination .agents/skills --agents .agents/agents
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
An agent-only copy remains supported:
|
|
124
167
|
|
|
125
168
|
```sh
|
|
126
169
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --copy --agents .claude/agents
|
|
127
170
|
node node_modules/themelia-react-ui/docs/consumer-skill/scripts/setup-skills.mjs --check --agents .claude/agents
|
|
128
171
|
```
|
|
129
172
|
|
|
130
|
-
An existing `themelia-ui-designer.md` is never overwritten; move it before copying a newer release. Other agent files are left untouched.
|
|
173
|
+
An existing `themelia-ui-designer.md` is never overwritten; move it before copying a newer release. Other agent files are left untouched. Combined copies preflight both destinations before writing; a conflict leaves the other destination untouched. Use the same destination/opt-out flags for `--check` that you used for copying.
|
|
131
174
|
|
|
132
175
|
The package retains `docs/consumer-skills/themelia-foundation/SKILL.md` and `themelia-forms/SKILL.md` as compatibility routers. They are not added by fresh copying. Existing legacy or unrelated skills are left untouched; review older agent routing separately when upgrading. Keep app policy outside the copied package bundle.
|
|
133
176
|
|
|
@@ -68,6 +68,18 @@ icon mode; its search button expands and focuses the field. Current
|
|
|
68
68
|
matching chooses the most-specific href and exposes ancestor state separately
|
|
69
69
|
to custom item renderers.
|
|
70
70
|
|
|
71
|
+
Pass the committed route as `currentUrl` so an open AppSidebar drawer closes
|
|
72
|
+
after navigation. SidebarNavigationRail falls back to its controlled `value`
|
|
73
|
+
when no URL is supplied. Use `closeDrawerOnNavigate={false}` on either owner
|
|
74
|
+
to keep its drawer open, or handle the proposal through
|
|
75
|
+
`onMobilePanelChange` when the provider's `mobilePanel` is controlled.
|
|
76
|
+
For SideNav, pass the app's pathname as `currentPath` on the server and
|
|
77
|
+
client and forward `aria-current` from its `renderLink` adapter.
|
|
78
|
+
|
|
79
|
+
`Header` and `HeaderBreadcrumbs` also work in standalone and stacked shells.
|
|
80
|
+
They show the built-in sidebar trigger and divider when a sidebar provider is
|
|
81
|
+
present. `HeaderBreadcrumbs` accepts a custom `triggerSlot` in either layout.
|
|
82
|
+
|
|
71
83
|
For RTL, pair the native DOM direction with `DirectionProvider` from the same
|
|
72
84
|
entrypoint. Native `dir` owns text flow and logical CSS geometry; the provider
|
|
73
85
|
owns Base UI keyboard navigation and popup positioning. It does not set `dir`.
|
|
@@ -151,4 +163,15 @@ not evidence of an independent agent choosing the same composition.
|
|
|
151
163
|
|
|
152
164
|
## Form transport and router adapters
|
|
153
165
|
|
|
154
|
-
Use [RHF workflows](rhf-workflows.md#transport-lifecycle) for frontend state with Inertia callback visits or TanStack async mutations. Await the complete transport before resetting dirty state or closing an overlay. The framework stays in the app. `renderLink`
|
|
166
|
+
Use [RHF workflows](rhf-workflows.md#transport-lifecycle) for frontend state with Inertia callback visits or TanStack async mutations. Await the complete transport before resetting dirty state or closing an overlay. The framework stays in the app. For a `renderLink` router adapter, forward href, children, className, accessible/native attributes and onClick. Preserve modifier and new-tab behavior. Pass the updated route to AppSidebar after navigation so it can close its open drawer. The [typed shell recipe](../examples/app-layout.tsx) uses the public renderLink type.
|
|
167
|
+
|
|
168
|
+
Wrap compound controls directly in `FormField` to associate the visible
|
|
169
|
+
caption and supporting text. Inline time, dimension, coordinate and key/value
|
|
170
|
+
fields expose a named group. Popover time and upload fields name the picker
|
|
171
|
+
control. RichTextEditor carries the same association into HTML source mode.
|
|
172
|
+
|
|
173
|
+
Use `value`, `defaultValue` and `onValueChange` for Combobox and
|
|
174
|
+
AsyncResourceCombobox. MultiCombobox uses the plural forms. The older
|
|
175
|
+
`selectedValue` and `selectedValues` bindings still work. Use
|
|
176
|
+
`defaultSearchValue` and `defaultOpen` for initial state, or pass
|
|
177
|
+
`searchValue` and `open` to control it.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"discoveryVersion": 1,
|
|
4
4
|
"package": "themelia-react-ui",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.6",
|
|
6
6
|
"stylesheets": [
|
|
7
7
|
"themelia-react-ui/style.css",
|
|
8
8
|
"themelia-react-ui/theme.css",
|
|
@@ -2329,14 +2329,14 @@
|
|
|
2329
2329
|
"layer": "base",
|
|
2330
2330
|
"responsibility": "Base family: Card checkbox group; Card radio group; Checkbox; Choice inputs overview; List radio group; Pill radio group; Select; Switch; Switch card; Toggle field.",
|
|
2331
2331
|
"jobs": [
|
|
2332
|
+
"CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set.",
|
|
2333
|
+
"SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target.",
|
|
2332
2334
|
"The user picks from a known set of options, including a binary on/off.",
|
|
2333
|
-
"Use Card checkbox group in an admin interface.",
|
|
2334
2335
|
"Use Card radio group in an admin interface.",
|
|
2335
2336
|
"Use Checkbox in an admin interface.",
|
|
2336
2337
|
"Use List radio group in an admin interface.",
|
|
2337
2338
|
"Use Pill radio group in an admin interface.",
|
|
2338
2339
|
"Use Select in an admin interface.",
|
|
2339
|
-
"Use Switch card in an admin interface.",
|
|
2340
2340
|
"Use Switch in an admin interface.",
|
|
2341
2341
|
"Use Toggle field in an admin interface."
|
|
2342
2342
|
],
|
|
@@ -2403,12 +2403,39 @@
|
|
|
2403
2403
|
},
|
|
2404
2404
|
{
|
|
2405
2405
|
"title": "Card checkbox group",
|
|
2406
|
-
"description": "
|
|
2407
|
-
"chooseWhen": [
|
|
2408
|
-
|
|
2406
|
+
"description": "CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set.",
|
|
2407
|
+
"chooseWhen": [
|
|
2408
|
+
"CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set."
|
|
2409
|
+
],
|
|
2410
|
+
"avoidWhen": [
|
|
2411
|
+
"A single boolean setting needs SwitchCard, ToggleField, Switch or Checkbox.",
|
|
2412
|
+
"Unrelated flags have independent meaning and lifecycle; give each its own boolean control."
|
|
2413
|
+
],
|
|
2409
2414
|
"appOwned": [],
|
|
2415
|
+
"composition": {
|
|
2416
|
+
"mappings": [
|
|
2417
|
+
{
|
|
2418
|
+
"symbol": "CardCheckboxGroup",
|
|
2419
|
+
"roles": [
|
|
2420
|
+
"multiple-choice"
|
|
2421
|
+
],
|
|
2422
|
+
"kind": "content",
|
|
2423
|
+
"placement": "region",
|
|
2424
|
+
"surface": "self"
|
|
2425
|
+
}
|
|
2426
|
+
],
|
|
2427
|
+
"owns": [
|
|
2428
|
+
"Option-card targets, selection markers and responsive columns",
|
|
2429
|
+
"Selected-values array and controlled/uncontrolled interaction"
|
|
2430
|
+
],
|
|
2431
|
+
"parentOwns": [
|
|
2432
|
+
"Comparable option records and selected value keys",
|
|
2433
|
+
"onValueChange persistence, validation and domain meaning"
|
|
2434
|
+
],
|
|
2435
|
+
"embedded": "Choose from the domain value shape and option meaning rather than an arbitrary minimum count. A filtered or permission-limited real choice set can contain one item."
|
|
2436
|
+
},
|
|
2410
2437
|
"jobs": [
|
|
2411
|
-
"
|
|
2438
|
+
"CardCheckboxGroup selects multiple values from comparable options whose labels and descriptions benefit from card targets, including a small two-option set."
|
|
2412
2439
|
],
|
|
2413
2440
|
"tags": [
|
|
2414
2441
|
"base",
|
|
@@ -2436,7 +2463,9 @@
|
|
|
2436
2463
|
]
|
|
2437
2464
|
}
|
|
2438
2465
|
],
|
|
2439
|
-
"alternatives": [
|
|
2466
|
+
"alternatives": [
|
|
2467
|
+
"themelia-react-ui/base/choice-inputs"
|
|
2468
|
+
]
|
|
2440
2469
|
},
|
|
2441
2470
|
{
|
|
2442
2471
|
"title": "Card radio group",
|
|
@@ -2662,12 +2691,39 @@
|
|
|
2662
2691
|
},
|
|
2663
2692
|
{
|
|
2664
2693
|
"title": "Switch card",
|
|
2665
|
-
"description": "
|
|
2666
|
-
"chooseWhen": [
|
|
2667
|
-
|
|
2694
|
+
"description": "SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target.",
|
|
2695
|
+
"chooseWhen": [
|
|
2696
|
+
"SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target."
|
|
2697
|
+
],
|
|
2698
|
+
"avoidWhen": [
|
|
2699
|
+
"A dense form needs a compact Switch, Checkbox or ToggleField.",
|
|
2700
|
+
"The value is a selection of items from a comparable option set; use a choice group."
|
|
2701
|
+
],
|
|
2668
2702
|
"appOwned": [],
|
|
2703
|
+
"composition": {
|
|
2704
|
+
"mappings": [
|
|
2705
|
+
{
|
|
2706
|
+
"symbol": "SwitchCard",
|
|
2707
|
+
"roles": [
|
|
2708
|
+
"boolean-setting"
|
|
2709
|
+
],
|
|
2710
|
+
"kind": "content",
|
|
2711
|
+
"placement": "region",
|
|
2712
|
+
"surface": "self"
|
|
2713
|
+
}
|
|
2714
|
+
],
|
|
2715
|
+
"owns": [
|
|
2716
|
+
"Framed setting row and accessible control label",
|
|
2717
|
+
"Single-toggle pointer and keyboard interaction"
|
|
2718
|
+
],
|
|
2719
|
+
"parentOwns": [
|
|
2720
|
+
"Boolean value/defaultValue and onValueChange callback",
|
|
2721
|
+
"Persistence, disabled and validation state"
|
|
2722
|
+
],
|
|
2723
|
+
"embedded": "Use the boolean value channel directly; no one-element selected-values array or duplicate outer field label is needed."
|
|
2724
|
+
},
|
|
2669
2725
|
"jobs": [
|
|
2670
|
-
"
|
|
2726
|
+
"SwitchCard gives one boolean setting a label, supporting description and clickable card-shaped target."
|
|
2671
2727
|
],
|
|
2672
2728
|
"tags": [
|
|
2673
2729
|
"base",
|
|
@@ -2695,7 +2751,9 @@
|
|
|
2695
2751
|
]
|
|
2696
2752
|
}
|
|
2697
2753
|
],
|
|
2698
|
-
"alternatives": [
|
|
2754
|
+
"alternatives": [
|
|
2755
|
+
"themelia-react-ui/base/choice-inputs"
|
|
2756
|
+
]
|
|
2699
2757
|
},
|
|
2700
2758
|
{
|
|
2701
2759
|
"title": "Toggle field",
|
|
@@ -3957,6 +4015,7 @@
|
|
|
3957
4015
|
"EmptyTitleProps",
|
|
3958
4016
|
"ErrorState",
|
|
3959
4017
|
"ErrorStateProps",
|
|
4018
|
+
"ErrorStateStrings",
|
|
3960
4019
|
"ErrorStateVariant",
|
|
3961
4020
|
"LoadingState",
|
|
3962
4021
|
"LoadingStateProps",
|
|
@@ -3974,6 +4033,7 @@
|
|
|
3974
4033
|
"ProgressTrackProps",
|
|
3975
4034
|
"ProgressValue",
|
|
3976
4035
|
"ProgressValueProps",
|
|
4036
|
+
"defaultErrorStateStrings",
|
|
3977
4037
|
"defaultProgressStrings"
|
|
3978
4038
|
],
|
|
3979
4039
|
"optionalPeers": [],
|
|
@@ -4377,13 +4437,13 @@
|
|
|
4377
4437
|
"A label, editable control, and hint or error form one accessible field row.",
|
|
4378
4438
|
"Build an application-owned validated form with consistent field and action presentation.",
|
|
4379
4439
|
"Editable values need canonical field controls, field chrome, grouped choices, uploads, or form-state recipes.",
|
|
4440
|
+
"FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor.",
|
|
4380
4441
|
"Related form fields need one titled section with optional actions and footer.",
|
|
4442
|
+
"SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine.",
|
|
4381
4443
|
"Use Controlled form field in an admin interface.",
|
|
4382
4444
|
"Use Dirty state banner in an admin interface.",
|
|
4383
4445
|
"Use Error summary in an admin interface.",
|
|
4384
|
-
"Use
|
|
4385
|
-
"Use Operation password form in an admin interface.",
|
|
4386
|
-
"Use Submit state button in an admin interface."
|
|
4446
|
+
"Use Operation password form in an admin interface."
|
|
4387
4447
|
],
|
|
4388
4448
|
"tags": [
|
|
4389
4449
|
"base",
|
|
@@ -4572,12 +4632,46 @@
|
|
|
4572
4632
|
},
|
|
4573
4633
|
{
|
|
4574
4634
|
"title": "Form actions bar",
|
|
4575
|
-
"description": "
|
|
4576
|
-
"chooseWhen": [
|
|
4577
|
-
|
|
4635
|
+
"description": "FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor.",
|
|
4636
|
+
"chooseWhen": [
|
|
4637
|
+
"FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor."
|
|
4638
|
+
],
|
|
4639
|
+
"avoidWhen": [
|
|
4640
|
+
"A padded Card or FormSection footer already owns the inset and divider; pass action buttons directly to that footer.",
|
|
4641
|
+
"A compact form needs only a local SubmitStateButton beside its fields."
|
|
4642
|
+
],
|
|
4578
4643
|
"appOwned": [],
|
|
4644
|
+
"composition": {
|
|
4645
|
+
"mappings": [
|
|
4646
|
+
{
|
|
4647
|
+
"symbol": "FormActionsBar",
|
|
4648
|
+
"roles": [
|
|
4649
|
+
"form-actions"
|
|
4650
|
+
],
|
|
4651
|
+
"kind": "content",
|
|
4652
|
+
"placement": "region",
|
|
4653
|
+
"surface": "self",
|
|
4654
|
+
"slots": [
|
|
4655
|
+
"leading",
|
|
4656
|
+
"trailing",
|
|
4657
|
+
"children"
|
|
4658
|
+
]
|
|
4659
|
+
}
|
|
4660
|
+
],
|
|
4661
|
+
"owns": [
|
|
4662
|
+
"Top divider, opaque background and shared surface inset",
|
|
4663
|
+
"Parent-width action wrapping and optional sticky positioning",
|
|
4664
|
+
"Leading status and trailing actions; trailing takes precedence over children"
|
|
4665
|
+
],
|
|
4666
|
+
"parentOwns": [
|
|
4667
|
+
"Native form, validation and submission lifecycle",
|
|
4668
|
+
"Action buttons and pending, dirty, cancel and accepted state"
|
|
4669
|
+
],
|
|
4670
|
+
"page": "Place at the end of the form. In Card padding=\"none\", use flat FormSections with ordinary body insets followed by this edge-to-edge bar.",
|
|
4671
|
+
"embedded": "Card.footerSlot and FormSection.footer already own footer geometry. Put SubmitStateButton or an action row directly in those slots; review custom hosts before nesting another bar."
|
|
4672
|
+
},
|
|
4579
4673
|
"jobs": [
|
|
4580
|
-
"
|
|
4674
|
+
"FormActionsBar gives a multi-section form a full-width footer with leading status and trailing actions, optionally sticky to its scrolling ancestor."
|
|
4581
4675
|
],
|
|
4582
4676
|
"tags": [
|
|
4583
4677
|
"base",
|
|
@@ -4609,7 +4703,10 @@
|
|
|
4609
4703
|
]
|
|
4610
4704
|
}
|
|
4611
4705
|
],
|
|
4612
|
-
"alternatives": [
|
|
4706
|
+
"alternatives": [
|
|
4707
|
+
"themelia-react-ui/base/cards",
|
|
4708
|
+
"themelia-react-ui/base/forms"
|
|
4709
|
+
]
|
|
4613
4710
|
},
|
|
4614
4711
|
{
|
|
4615
4712
|
"title": "Form field",
|
|
@@ -4694,7 +4791,7 @@
|
|
|
4694
4791
|
"Gaps between separate form subjects"
|
|
4695
4792
|
],
|
|
4696
4793
|
"page": "Use ordinary section insets in an unpadded page or layout region.",
|
|
4697
|
-
"embedded": "Inside a padded Card, use surface=\"flat\" padding=\"none\" so the parent supplies the single inset."
|
|
4794
|
+
"embedded": "Inside a padded Card, use surface=\"flat\" padding=\"none\" so the parent supplies the single inset. A flat section in a zero-padding Card keeps its ordinary body inset. Choose each section from its own parent; do not flatten independent page sections to match an embedded sibling."
|
|
4698
4795
|
},
|
|
4699
4796
|
"jobs": [
|
|
4700
4797
|
"Related form fields need one titled section with optional actions and footer."
|
|
@@ -4769,12 +4866,42 @@
|
|
|
4769
4866
|
},
|
|
4770
4867
|
{
|
|
4771
4868
|
"title": "Submit state button",
|
|
4772
|
-
"description": "
|
|
4773
|
-
"chooseWhen": [
|
|
4774
|
-
|
|
4869
|
+
"description": "SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine.",
|
|
4870
|
+
"chooseWhen": [
|
|
4871
|
+
"SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine."
|
|
4872
|
+
],
|
|
4873
|
+
"avoidWhen": [
|
|
4874
|
+
"The command does not submit a form; use Button with an explicit type and callback."
|
|
4875
|
+
],
|
|
4775
4876
|
"appOwned": [],
|
|
4877
|
+
"composition": {
|
|
4878
|
+
"mappings": [
|
|
4879
|
+
{
|
|
4880
|
+
"symbol": "SubmitStateButton",
|
|
4881
|
+
"roles": [
|
|
4882
|
+
"form-submit"
|
|
4883
|
+
],
|
|
4884
|
+
"kind": "content",
|
|
4885
|
+
"placement": "region",
|
|
4886
|
+
"surface": "none",
|
|
4887
|
+
"slots": [
|
|
4888
|
+
"children"
|
|
4889
|
+
]
|
|
4890
|
+
}
|
|
4891
|
+
],
|
|
4892
|
+
"owns": [
|
|
4893
|
+
"Button geometry, pending state and default submit type",
|
|
4894
|
+
"Default primary tone and optional pristine disabling"
|
|
4895
|
+
],
|
|
4896
|
+
"parentOwns": [
|
|
4897
|
+
"Native form association, validation and async transport",
|
|
4898
|
+
"submitting and dirty state; accepted values and error feedback"
|
|
4899
|
+
],
|
|
4900
|
+
"page": "Keep the submit with its task-local form. Independent forms can each own a primary submit; a single full-page editor can deliberately use one header submit.",
|
|
4901
|
+
"embedded": "Use directly in Card.footerSlot or FormSection.footer, or in FormActionsBar trailing. The pending prop is submitting, not loading."
|
|
4902
|
+
},
|
|
4776
4903
|
"jobs": [
|
|
4777
|
-
"
|
|
4904
|
+
"SubmitStateButton submits a form with a pending state and optional pristine protection through submitting, dirty and disableWhenPristine."
|
|
4778
4905
|
],
|
|
4779
4906
|
"tags": [
|
|
4780
4907
|
"base",
|
|
@@ -4802,7 +4929,10 @@
|
|
|
4802
4929
|
]
|
|
4803
4930
|
}
|
|
4804
4931
|
],
|
|
4805
|
-
"alternatives": [
|
|
4932
|
+
"alternatives": [
|
|
4933
|
+
"themelia-react-ui/base/buttons",
|
|
4934
|
+
"themelia-react-ui/base/forms"
|
|
4935
|
+
]
|
|
4806
4936
|
},
|
|
4807
4937
|
{
|
|
4808
4938
|
"title": "Validated form",
|
|
@@ -4877,7 +5007,6 @@
|
|
|
4877
5007
|
"ControlledFormField",
|
|
4878
5008
|
"DirtyStateBanner",
|
|
4879
5009
|
"ErrorSummary",
|
|
4880
|
-
"FormActionsBar",
|
|
4881
5010
|
"SubmitStateButton"
|
|
4882
5011
|
],
|
|
4883
5012
|
"references": [
|
|
@@ -11013,6 +11142,9 @@
|
|
|
11013
11142
|
"formatMetricValue",
|
|
11014
11143
|
"resolveTrend"
|
|
11015
11144
|
],
|
|
11145
|
+
"deprecated": {
|
|
11146
|
+
"MetricColorScheme": "Use the shared semantic tone through the tone prop."
|
|
11147
|
+
},
|
|
11016
11148
|
"optionalPeers": [
|
|
11017
11149
|
"recharts"
|
|
11018
11150
|
],
|
|
@@ -11252,14 +11384,14 @@
|
|
|
11252
11384
|
],
|
|
11253
11385
|
"owns": [
|
|
11254
11386
|
"Chart title and footer anatomy",
|
|
11255
|
-
"ChartContainer
|
|
11387
|
+
"ChartContainer around children with the required config; do not add a duplicate container"
|
|
11256
11388
|
],
|
|
11257
11389
|
"parentOwns": [
|
|
11258
11390
|
"Surface framing and insets unless explicitly enabled",
|
|
11259
|
-
"Page or
|
|
11391
|
+
"Page/dashboard placement, series, axes and legend or direct labels"
|
|
11260
11392
|
],
|
|
11261
|
-
"page": "Place chart subjects in a Grid or layout column with deliberate peer gaps.",
|
|
11262
|
-
"embedded": "Keep the default card-free presentation inside an existing Card; opt into a surface at the composition boundary."
|
|
11393
|
+
"page": "Place chart subjects in a Grid or layout column with deliberate peer gaps. Bind series to config keys through var(--color-<key>); multi-series charts can use ChartLegend with ChartLegendContent inside the Recharts chart or accessible direct labels.",
|
|
11394
|
+
"embedded": "Keep the default card-free presentation inside an existing Card; opt into a surface at the composition boundary. Footer is supporting caption/actions; substantial tables and disclosures belong in a peer or body region rather than the chart footer."
|
|
11263
11395
|
},
|
|
11264
11396
|
"jobs": [
|
|
11265
11397
|
"A custom chart needs shared title, description, action and footer regions."
|
|
@@ -18221,6 +18353,9 @@
|
|
|
18221
18353
|
"useMentions",
|
|
18222
18354
|
"useMentionsSearch"
|
|
18223
18355
|
],
|
|
18356
|
+
"deprecated": {
|
|
18357
|
+
"splitHtmlByMentions": "Render mentions within the original HTML tree with MentionContent."
|
|
18358
|
+
},
|
|
18224
18359
|
"optionalPeers": [],
|
|
18225
18360
|
"layer": "features",
|
|
18226
18361
|
"responsibility": "Features family: Mentions.",
|
|
@@ -18269,7 +18404,8 @@
|
|
|
18269
18404
|
"symbols": [
|
|
18270
18405
|
"MentionInlineSuggestions",
|
|
18271
18406
|
"MentionPicker",
|
|
18272
|
-
"MentionChip"
|
|
18407
|
+
"MentionChip",
|
|
18408
|
+
"MentionContent"
|
|
18273
18409
|
]
|
|
18274
18410
|
}
|
|
18275
18411
|
],
|
|
@@ -19517,7 +19653,8 @@
|
|
|
19517
19653
|
{
|
|
19518
19654
|
"title": "API",
|
|
19519
19655
|
"symbols": [
|
|
19520
|
-
"RichTextEditor"
|
|
19656
|
+
"RichTextEditor",
|
|
19657
|
+
"FormRichTextEditor"
|
|
19521
19658
|
]
|
|
19522
19659
|
}
|
|
19523
19660
|
],
|
|
@@ -19750,6 +19887,7 @@
|
|
|
19750
19887
|
"CellValueKind",
|
|
19751
19888
|
"CellValueProps",
|
|
19752
19889
|
"CellValueTuple",
|
|
19890
|
+
"ColumnDef",
|
|
19753
19891
|
"ColumnFiltersHandler",
|
|
19754
19892
|
"ColumnGroup",
|
|
19755
19893
|
"ColumnVisibilityHandler",
|