themelia-react-ui 2.0.5 → 3.0.0
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 +326 -0
- package/MIGRATION.md +858 -0
- package/README.md +35 -24
- package/dist/{accordion-B9MHG0cT.js → accordion-DNVqwEIC.js} +37 -37
- package/dist/accordion-DNVqwEIC.js.map +1 -0
- package/dist/action-menu-D5343RwT.js +286 -0
- package/dist/action-menu-D5343RwT.js.map +1 -0
- package/dist/ai-artifact-otrz9ZwS.js +1214 -0
- package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
- package/dist/anchored-positioning-1U_eBFNx.js +9 -0
- package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
- package/dist/app-shell-CPN30Nb1.js +372 -0
- package/dist/app-shell-CPN30Nb1.js.map +1 -0
- package/dist/{attachment-Dg_69lPS.js → attachment-D2-fpfmv.js} +15 -15
- package/dist/{attachment-Dg_69lPS.js.map → attachment-D2-fpfmv.js.map} +1 -1
- package/dist/{auth-DTkkshS8.js → auth-g_oUTDDC.js} +236 -243
- package/dist/auth-g_oUTDDC.js.map +1 -0
- package/dist/{avatar-CeZaFmNH.js → avatar-Ca3Ihrq4.js} +4 -4
- package/dist/{avatar-CeZaFmNH.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
- package/dist/{badge-xIiV_E7f.js → badge-oGiXblW7.js} +8 -9
- package/dist/badge-oGiXblW7.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 +1 -1
- package/dist/base/buttons.js +2 -2
- package/dist/base/cards.js +3 -3
- package/dist/base/carousel.js +11 -11
- package/dist/base/carousel.js.map +1 -1
- 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 +7 -7
- package/dist/base/feedback.js +4 -4
- package/dist/base/forms-numeric.js +2 -2
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +13 -13
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +203 -2
- package/dist/base/media-gallery.js.map +1 -0
- package/dist/base/metadata-list.js +1 -1
- package/dist/base/navigation.js +7 -7
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +32 -22
- package/dist/base/qr-code.js.map +1 -1
- package/dist/base/repeaters.js +208 -198
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +14 -14
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +8 -14
- 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 +3 -3
- package/dist/base/toaster.js +2 -2
- package/dist/base/tree.js +2 -2
- package/dist/base/upload-queue.js +303 -2
- package/dist/base/upload-queue.js.map +1 -0
- package/dist/base/upload.js +3 -4
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-D6MZQNnC.js} +10 -10
- package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
- package/dist/blocks/admin.js +242 -228
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +398 -354
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/charts.js +1022 -0
- package/dist/blocks/analytics/charts.js.map +1 -0
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +173 -1392
- 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 +1533 -1399
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -3
- package/dist/blocks/onboarding.js +91 -82
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +25 -25
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +2 -2
- package/dist/breadcrumbs-CQ9JSlez.js +136 -0
- package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
- package/dist/{button-S2Cubiiz.js → button-rd6FiHfQ.js} +12 -8
- package/dist/button-rd6FiHfQ.js.map +1 -0
- package/dist/{buttons-BedGfygC.js → buttons-pZVgPTZn.js} +230 -246
- package/dist/buttons-pZVgPTZn.js.map +1 -0
- package/dist/{cards-rNX1M4Xn.js → cards-CgWyqvgZ.js} +25 -22
- package/dist/{cards-rNX1M4Xn.js.map → cards-CgWyqvgZ.js.map} +1 -1
- package/dist/cascader-Cf05pwaq.js +444 -0
- package/dist/cascader-Cf05pwaq.js.map +1 -0
- package/dist/{chart-Darg_0Kv.js → chart-CygRCyIZ.js} +5 -5
- package/dist/{chart-Darg_0Kv.js.map → chart-CygRCyIZ.js.map} +1 -1
- package/dist/{checkbox-fflqmODR.js → checkbox-Dy5_XBMZ.js} +4 -4
- package/dist/{checkbox-fflqmODR.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
- package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-oJEsrb5Y.js} +195 -184
- package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
- package/dist/{code-block-BzmM9Eig.js → code-block-BrLD7mCi.js} +44 -60
- package/dist/code-block-BrLD7mCi.js.map +1 -0
- package/dist/collapsible-CRCCg_bO.js +80 -0
- package/dist/collapsible-CRCCg_bO.js.map +1 -0
- package/dist/{collection-content-gDh1v6O4.js → collection-content-D7SoDlYd.js} +3 -3
- package/dist/{collection-content-gDh1v6O4.js.map → collection-content-D7SoDlYd.js.map} +1 -1
- package/dist/combobox-Dl6f6kHz.js +362 -0
- package/dist/combobox-Dl6f6kHz.js.map +1 -0
- package/dist/combobox-DrDXtSSt.js +929 -0
- package/dist/combobox-DrDXtSSt.js.map +1 -0
- package/dist/command-CjZ2VzKC.js +432 -0
- package/dist/command-CjZ2VzKC.js.map +1 -0
- package/dist/comments-C2MZyRmh.js +1214 -0
- package/dist/comments-C2MZyRmh.js.map +1 -0
- package/dist/components/base/accordion/accordion.d.ts +11 -3
- package/dist/components/base/action-menu/action-menu.d.ts +11 -3
- package/dist/components/base/buttons/button.d.ts +2 -2
- package/dist/components/base/buttons/index.d.ts +1 -1
- package/dist/components/base/buttons/loader-button.d.ts +6 -15
- package/dist/components/base/cards/index.d.ts +1 -1
- package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
- package/dist/components/base/cards/smart-card.d.ts +0 -2
- package/dist/components/base/cards/smart-card.types.d.ts +12 -10
- package/dist/components/base/cascader/cascader.d.ts +8 -2
- package/dist/components/base/cascader/cascader.types.d.ts +24 -2
- package/dist/components/base/cascader/index.d.ts +1 -1
- 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/choice-inputs/switch.d.ts +1 -1
- package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
- package/dist/components/base/combobox/combobox-field.d.ts +2 -2
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +11 -7
- package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
- package/dist/components/base/display/dialog.d.ts +3 -9
- package/dist/components/base/display/index.d.ts +2 -3
- package/dist/components/base/display/separator.d.ts +1 -1
- package/dist/components/base/feedback/alert.d.ts +2 -1
- package/dist/components/base/feedback/empty.d.ts +10 -2
- 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/workflow.d.ts +2 -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 +13 -18
- package/dist/components/base/forms-numeric/index.d.ts +3 -3
- 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/item/item.types.d.ts +6 -2
- package/dist/components/base/metadata-list/index.d.ts +1 -3
- package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
- package/dist/components/base/navigation/index.d.ts +2 -2
- package/dist/components/base/navigation/language-switcher.d.ts +17 -8
- package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
- package/dist/components/base/navigation/page-header/index.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
- package/dist/components/base/navigation/pagination.d.ts +5 -5
- package/dist/components/base/popover/popover.recipes.d.ts +0 -1
- package/dist/components/base/qr-code/qr-code.d.ts +4 -0
- package/dist/components/base/repeaters/index.d.ts +1 -1
- package/dist/components/base/repeaters/key-value-editor.d.ts +6 -1
- package/dist/components/base/sheet/sheet.d.ts +6 -15
- package/dist/components/base/sidebar/index.d.ts +1 -6
- package/dist/components/base/sidebar/sidebar.d.ts +40 -10
- package/dist/components/base/skeleton/skeleton.d.ts +1 -1
- package/dist/components/base/structure/structure.types.d.ts +11 -2
- package/dist/components/base/text-inputs/index.d.ts +1 -1
- package/dist/components/base/tree/index.d.ts +1 -0
- package/dist/components/base/tree/tree.d.ts +2 -2
- package/dist/components/base/tree/tree.types.d.ts +7 -1
- package/dist/components/base/upload/avatar-upload.d.ts +2 -1
- package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
- package/dist/components/base/upload/image-upload.d.ts +4 -1
- package/dist/components/base/upload/index.d.ts +3 -9
- package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
- package/dist/components/base/value-inputs/slider.d.ts +5 -2
- package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
- package/dist/components/blocks/admin/index.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
- package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
- package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
- package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-citation/types.d.ts +8 -0
- package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
- package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
- package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
- package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
- package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
- package/dist/components/blocks/ai/ai-sources/types.d.ts +10 -2
- package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
- package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
- package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +8 -0
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
- package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
- package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
- package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
- package/dist/components/blocks/analytics/index.d.ts +17 -24
- package/dist/components/blocks/analytics/metric/metric.d.ts +7 -3
- 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 +13 -4
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
- package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
- package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
- package/dist/components/blocks/commerce/index.d.ts +8 -8
- package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
- package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
- package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/order-status/types.d.ts +12 -8
- package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
- package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
- package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
- package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
- package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
- package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
- package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
- package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
- package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
- package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
- package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
- package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
- package/dist/components/blocks/content-block-hooks.d.ts +22 -0
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
- package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
- package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +10 -3
- package/dist/components/blocks/data-display/index.d.ts +0 -1
- package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
- package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
- package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
- package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
- package/dist/components/blocks/timelines/index.d.ts +2 -2
- package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
- package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
- package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
- package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
- package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
- package/dist/components/features/activities/activities.strings.d.ts +5 -3
- package/dist/components/features/activities/activities.types.d.ts +46 -22
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
- package/dist/components/features/activities/index.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
- package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
- package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
- package/dist/components/features/activities/relative-time.d.ts +18 -0
- package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
- package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
- package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +20 -4
- package/dist/components/features/appointment-calendar/index.d.ts +1 -1
- package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
- package/dist/components/features/async-preview/async-preview.d.ts +2 -2
- package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
- package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
- package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
- package/dist/components/features/combobox/combobox.d.ts +12 -3
- package/dist/components/features/combobox/components/error-message.d.ts +3 -1
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +4 -3
- 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/index.d.ts +1 -1
- package/dist/components/features/combobox/types.d.ts +68 -37
- package/dist/components/features/comments/comments.strings.d.ts +6 -5
- package/dist/components/features/comments/comments.types.d.ts +40 -26
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
- package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
- package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
- package/dist/components/features/data-view/data-view.types.d.ts +15 -2
- package/dist/components/features/email-composer/email-html.d.ts +5 -0
- package/dist/components/features/email-composer/http.d.ts +2 -0
- package/dist/components/features/email-composer/strings.d.ts +17 -2
- package/dist/components/features/email-composer/types.d.ts +19 -2
- package/dist/components/features/email-composer/use-composer.d.ts +2 -78
- package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
- package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
- package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
- package/dist/components/features/filters/facets/range-facet.d.ts +24 -7
- package/dist/components/features/filters/filter-context.d.ts +9 -0
- package/dist/components/features/filters/filters.strings.d.ts +36 -3
- package/dist/components/features/filters/filters.types.d.ts +75 -8
- package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
- package/dist/components/features/filters/index.d.ts +2 -2
- package/dist/components/features/filters/operator-options.d.ts +25 -2
- package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
- package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
- package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
- package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
- package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +34 -5
- package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
- package/dist/components/features/global-search/global-search.d.ts +7 -1
- package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
- package/dist/components/features/global-search/global-search.types.d.ts +30 -6
- package/dist/components/features/global-search/index.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
- package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
- package/dist/components/features/kanban/index.d.ts +2 -2
- package/dist/components/features/kanban/kanban-context.d.ts +4 -0
- package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
- package/dist/components/features/kanban/kanban.d.ts +10 -1
- package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
- package/dist/components/features/kanban/kanban.types.d.ts +26 -0
- package/dist/components/features/map/map.d.ts +4 -0
- package/dist/components/features/map/place-autocomplete.d.ts +10 -1
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +39 -3
- package/dist/components/features/media-library/media-library.types.d.ts +82 -9
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
- package/dist/components/features/mentions/index.d.ts +1 -1
- package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
- package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +12 -1
- package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
- package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
- package/dist/components/features/mentions/utils/index.d.ts +0 -1
- 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-visibility.d.ts +2 -2
- package/dist/components/features/overlays/index.d.ts +2 -2
- package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
- package/dist/components/features/overlays/overlays.types.d.ts +27 -10
- package/dist/components/features/products/components/index.d.ts +0 -10
- package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
- package/dist/components/features/products/components/product-details-card.d.ts +1 -1
- package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
- package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
- package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
- package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
- package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
- package/dist/components/features/products/partials/product-surface.d.ts +15 -0
- package/dist/components/features/products/products.strings.d.ts +8 -0
- package/dist/components/features/products/products.types.d.ts +26 -8
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +7 -2
- package/dist/components/features/resource/index.d.ts +2 -3
- package/dist/components/features/resource/resource.d.ts +2 -10
- package/dist/components/features/resource/resource.types.d.ts +7 -147
- package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
- package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
- package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -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 +5 -7
- package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
- package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
- package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +5 -4
- 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 +30 -4
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +10 -1
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
- package/dist/components/features/schema-form/schema-form.d.ts +1 -1
- package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
- package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
- package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +13 -5
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/filter-bar.d.ts +1 -1
- package/dist/components/features/table/index.d.ts +1 -0
- package/dist/components/features/table/pagination.d.ts +1 -1
- package/dist/components/features/table/partials/cell-value.d.ts +1 -1
- package/dist/components/features/table/table-body.d.ts +1 -1
- package/dist/components/features/table/table-header.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +37 -12
- package/dist/components/features/table/table-region.recipes.d.ts +11 -0
- package/dist/components/features/table/table-toolbar.d.ts +1 -1
- package/dist/components/features/table/table.strings.d.ts +4 -0
- package/dist/components/features/table/table.types.d.ts +91 -49
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
- package/dist/components/layout/app-shell/index.d.ts +2 -2
- package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
- package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
- package/dist/components/layout/auth/auth-shell.d.ts +1 -1
- package/dist/components/layout/auth/auth.types.d.ts +0 -5
- package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
- package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
- package/dist/components/layout/header/header.types.d.ts +19 -8
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
- package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts +1 -1
- package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
- package/dist/components/layout/layout.types.d.ts +6 -4
- package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
- package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
- package/dist/components/layout/navigation/side-nav.d.ts +3 -2
- package/dist/components/layout/normalize-layout-path.d.ts +1 -0
- package/dist/components/layout/page/index.d.ts +2 -3
- package/dist/components/layout/page/page.strings.d.ts +12 -0
- package/dist/components/layout/page/page.types.d.ts +7 -110
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/index.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +4 -6
- package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/index.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +17 -7
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
- package/dist/components/layout/sidebar/sidebar.types.d.ts +12 -12
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
- package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
- package/dist/components/primitives/date.d.ts +22 -3
- package/dist/components/primitives/file-size.d.ts +8 -2
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/initials.d.ts +3 -1
- package/dist/components/primitives/link.d.ts +11 -3
- package/dist/components/primitives/money.d.ts +2 -2
- package/dist/components/primitives/number.d.ts +3 -2
- package/dist/components/typography/heading.d.ts +9 -3
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
- package/dist/components/typography/text-link.d.ts +10 -3
- package/dist/components/ui/badge.d.ts +2 -4
- package/dist/components/ui/breadcrumb.d.ts +2 -3
- package/dist/components/ui/button.d.ts +8 -2
- package/dist/components/ui/collapsible.d.ts +1 -4
- package/dist/components/ui/command.d.ts +20 -18
- package/dist/components/ui/dialog.d.ts +3 -9
- package/dist/components/ui/empty.d.ts +2 -2
- package/dist/components/ui/input-group.d.ts +3 -3
- package/dist/components/ui/item.d.ts +3 -3
- package/dist/components/ui/popover.d.ts +3 -7
- package/dist/components/ui/sheet.d.ts +4 -12
- package/dist/components/ui/sidebar-state.d.ts +6 -1
- package/dist/components/ui/sidebar.d.ts +7 -4
- package/dist/components/ui/tabs.d.ts +2 -2
- package/dist/components/ui/toggle-group.d.ts +3 -3
- package/dist/components/ui/toggle.d.ts +2 -2
- package/dist/components/ui/tooltip.d.ts +1 -3
- package/dist/{containers-CIxwbZt5.js → containers-BdfLTP4w.js} +37 -32
- package/dist/containers-BdfLTP4w.js.map +1 -0
- package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
- package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
- package/dist/{copyable-DIznBqiT.js → copyable-Bmr14W0d.js} +6 -6
- package/dist/{copyable-DIznBqiT.js.map → copyable-Bmr14W0d.js.map} +1 -1
- package/dist/{data-display-BdgCAw8T.js → data-display-CWe9SOYh.js} +264 -250
- package/dist/data-display-CWe9SOYh.js.map +1 -0
- package/dist/date-3qsCE1ID.js +209 -0
- package/dist/date-3qsCE1ID.js.map +1 -0
- package/dist/date-picker-D1keJQIG.js +1617 -0
- package/dist/date-picker-D1keJQIG.js.map +1 -0
- package/dist/date-pickers-D8aJoeHc.js +185 -0
- package/dist/date-pickers-D8aJoeHc.js.map +1 -0
- package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
- package/dist/{display-KsZLw9Ov.js → display-VlmP1I0i.js} +23 -46
- package/dist/display-VlmP1I0i.js.map +1 -0
- package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-B8hjvbkS.js} +9 -9
- package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
- package/dist/dropzone-CHBNK3de.js +116 -0
- package/dist/dropzone-CHBNK3de.js.map +1 -0
- package/dist/features/activities.js +767 -700
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +280 -235
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +430 -334
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +351 -265
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +2 -2
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +212 -151
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +347 -313
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +501 -348
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +250 -210
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +280 -210
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map/style.css +15 -0
- package/dist/features/map.js +435 -404
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1745 -1195
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +2 -2
- package/dist/features/overlays.js +2 -2
- package/dist/features/products.js +1862 -1759
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +188 -168
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +223 -191
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +55 -217
- 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 +380 -287
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +90 -74
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/table.js +2 -2
- package/dist/features/theme-tweaker.js +718 -627
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-DmqmXKLn.js +254 -0
- package/dist/feedback-DmqmXKLn.js.map +1 -0
- package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-DfbMadot.js} +13 -9
- package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
- package/dist/field-control-attributes-B6i335wr.js +18 -0
- package/dist/field-control-attributes-B6i335wr.js.map +1 -0
- package/dist/field-state-recipes-EtCxpEy3.js +18 -0
- package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
- package/dist/filters-BviMRMLS.js +2692 -0
- package/dist/filters-BviMRMLS.js.map +1 -0
- package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
- package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
- package/dist/form-field-BdfCwSoQ.js +74 -0
- package/dist/form-field-BdfCwSoQ.js.map +1 -0
- package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-DE_dZw32.js} +3 -3
- package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-DE_dZw32.js.map} +1 -1
- package/dist/{forms-C0RGnJTe.js → forms-B8DzJnBN.js} +35 -35
- package/dist/forms-B8DzJnBN.js.map +1 -0
- package/dist/forms-numeric-DOBswjKj.js +992 -0
- package/dist/forms-numeric-DOBswjKj.js.map +1 -0
- package/dist/{header-DMMxG__r.js → header-Cq3G0ZRP.js} +163 -158
- package/dist/header-Cq3G0ZRP.js.map +1 -0
- package/dist/hooks/use-files.d.ts +2 -0
- package/dist/{hooks-DB6CJ4MR.js → hooks-DHfeSMAO.js} +34 -14
- package/dist/hooks-DHfeSMAO.js.map +1 -0
- package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
- package/dist/http-Cu-GPpss.js.map +1 -0
- package/dist/{icon-badge-DZF-YjQp.js → icon-badge-B0Kq7wom.js} +3 -3
- package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
- package/dist/index.js +6 -6
- package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
- package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
- package/dist/{input-DMBwAZmr.js → input-2YrgTUrz.js} +3 -3
- package/dist/{input-DMBwAZmr.js.map → input-2YrgTUrz.js.map} +1 -1
- package/dist/{input-CvyDQlY7.js → input-DfJyrjoR.js} +7 -7
- package/dist/{input-CvyDQlY7.js.map → input-DfJyrjoR.js.map} +1 -1
- package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-DmuS1ase.js} +2 -2
- package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
- package/dist/item-GJ9mvCcg.js +279 -0
- package/dist/item-GJ9mvCcg.js.map +1 -0
- package/dist/layout/app-shell.js +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/containers.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +2 -2
- package/dist/layout/settings.js +2 -2
- package/dist/layout/sidebar.js +3 -3
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +12 -12
- package/dist/layout.types-DbtnyAtd.js +33 -0
- package/dist/layout.types-DbtnyAtd.js.map +1 -0
- package/dist/lib/anchored-positioning.d.ts +11 -0
- package/dist/lib/field-affordance-recipes.d.ts +10 -0
- package/dist/lib/field-control-attributes.d.ts +11 -0
- package/dist/lib/field-state-recipes.d.ts +8 -0
- package/dist/lib/focus-recipes.d.ts +7 -0
- package/dist/lib/format.d.ts +26 -0
- package/dist/lib/money-format.d.ts +6 -0
- package/dist/lib/motion-recipes.d.ts +6 -0
- package/dist/lib/surface-recipes.d.ts +33 -3
- package/dist/lib/theme-scope.d.ts +17 -1
- package/dist/lib/token-merge.generated.d.ts +19 -25
- package/dist/lib/ui-provider/index.d.ts +1 -1
- package/dist/lib/ui-provider/types.d.ts +5 -0
- package/dist/lib/use-controllable-state.d.ts +16 -0
- package/dist/lib/use-copy-feedback.d.ts +15 -0
- package/dist/lib/utils.js +1 -1
- package/dist/lib/variant-props.d.ts +9 -0
- package/dist/main-landmark-context-BAsyqp2I.js +11 -0
- package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
- package/dist/mentions-zz0ewNIq.js +670 -0
- package/dist/mentions-zz0ewNIq.js.map +1 -0
- package/dist/message-BiiVrRrm.js +138 -0
- package/dist/message-BiiVrRrm.js.map +1 -0
- package/dist/{metadata-list-C3MkU-Om.js → metadata-list-G85roWjS.js} +13 -12
- package/dist/metadata-list-G85roWjS.js.map +1 -0
- package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
- package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
- package/dist/navigation-C0Be5C3i.js +304 -0
- package/dist/navigation-C0Be5C3i.js.map +1 -0
- package/dist/navigation-CmqaQR_G.js +257 -0
- package/dist/navigation-CmqaQR_G.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-NFWKIoiK.js +340 -0
- package/dist/number-NFWKIoiK.js.map +1 -0
- package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
- package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
- package/dist/{overlays-BSgCtM2v.js → overlays-D-gAIfPF.js} +369 -364
- package/dist/overlays-D-gAIfPF.js.map +1 -0
- package/dist/page-D4pQhgSq.js +216 -0
- package/dist/page-D4pQhgSq.js.map +1 -0
- package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-elelNOfd.js} +29 -29
- package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-elelNOfd.js.map} +1 -1
- package/dist/{pagination-CgCjElfu.js → pagination-BuSWw1US.js} +22 -23
- package/dist/pagination-BuSWw1US.js.map +1 -0
- package/dist/popover-BpMxbqEK.js +205 -0
- package/dist/popover-BpMxbqEK.js.map +1 -0
- package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-CO-_iiuz.js} +7 -7
- package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
- package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-BqkdvlZn.js} +3 -4
- package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
- package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-BPeS4rGB.js} +2 -2
- package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
- package/dist/primitives-BlC1lXBr.js +447 -0
- package/dist/primitives-BlC1lXBr.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-BJhQP9WX.js → progress-RARK8AjB.js} +5 -5
- package/dist/{progress-BJhQP9WX.js.map → progress-RARK8AjB.js.map} +1 -1
- package/dist/receipt-CUf2Vegp.js +114 -0
- package/dist/receipt-CUf2Vegp.js.map +1 -0
- package/dist/rich-text-Cypm9__d.js +44 -0
- package/dist/rich-text-Cypm9__d.js.map +1 -0
- package/dist/rich-text-editor-Z6cQepsA.js +919 -0
- package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
- package/dist/rich-text-tree-DdKHIJx4.js +154 -0
- package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
- package/dist/{scroll-area-B0dB2cBi.js → scroll-area-B9HKbji0.js} +3 -3
- package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-B9HKbji0.js.map} +1 -1
- package/dist/{separator-Ct_WSWTJ.js → separator-DaDe26sf.js} +3 -3
- package/dist/separator-DaDe26sf.js.map +1 -0
- package/dist/{separator-Bb17I4pu.js → separator-KGsNXt2J.js} +2 -2
- package/dist/{separator-Bb17I4pu.js.map → separator-KGsNXt2J.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +5 -2
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +2 -2
- package/dist/services/actions.js.map +1 -1
- package/dist/settings-D5j_RJvT.js +160 -0
- package/dist/settings-D5j_RJvT.js.map +1 -0
- package/dist/sheet-B6j_BE9O.js +241 -0
- package/dist/sheet-B6j_BE9O.js.map +1 -0
- package/dist/{sidebar-f9gRWXIR.js → sidebar-C-iQ_TJP.js} +379 -350
- package/dist/sidebar-C-iQ_TJP.js.map +1 -0
- package/dist/sidebar-D5VO2W8S.js +715 -0
- package/dist/sidebar-D5VO2W8S.js.map +1 -0
- package/dist/{skeleton-BapcJd9C.js → skeleton-Cab_KgVo.js} +13 -13
- package/dist/skeleton-Cab_KgVo.js.map +1 -0
- package/dist/{smart-card-CW0hjetE.js → smart-card-C59z6KFO.js} +217 -210
- package/dist/smart-card-C59z6KFO.js.map +1 -0
- package/dist/{structure-DuxKl954.js → structure-DElaQwwN.js} +2 -2
- package/dist/{structure-DuxKl954.js.map → structure-DElaQwwN.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-DV6rrOFq.js} +11 -3
- package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
- package/dist/table-CSRUgpdK.js +180 -0
- package/dist/table-CSRUgpdK.js.map +1 -0
- package/dist/table-DdXDBsR_.js +1657 -0
- package/dist/table-DdXDBsR_.js.map +1 -0
- package/dist/tabs-WnHfV2pM.js +192 -0
- package/dist/tabs-WnHfV2pM.js.map +1 -0
- package/dist/{text-inputs-B1culiSK.js → text-inputs-ljyBYaCd.js} +112 -112
- package/dist/text-inputs-ljyBYaCd.js.map +1 -0
- package/dist/theme.css +21 -5
- package/dist/timelines-mOmS9Eh3.js +479 -0
- package/dist/timelines-mOmS9Eh3.js.map +1 -0
- package/dist/tooltip-yjX-Uv-p.js +112 -0
- package/dist/tooltip-yjX-Uv-p.js.map +1 -0
- package/dist/{tree-CzUJHnFs.js → tree-YpkxUG2Z.js} +80 -72
- package/dist/tree-YpkxUG2Z.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/{typography-BQnine1k.js → typography-C0dELqYV.js} +46 -40
- package/dist/typography-C0dELqYV.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
- package/dist/ui-provider-Bu1S-o96.js.map +1 -0
- package/dist/ui-provider.js +2 -2
- package/dist/upload-DMuMYJFT.js +875 -0
- package/dist/upload-DMuMYJFT.js.map +1 -0
- package/dist/{usage-card-BeSLY0i0.js → usage-card-DDPki5P1.js} +57 -54
- package/dist/usage-card-DDPki5P1.js.map +1 -0
- package/dist/use-controllable-state-BlP8SyBI.js +13 -0
- package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
- package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
- package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
- package/dist/{utils-B6kKb8jB.js → utils-BVbAG2J6.js} +128 -112
- package/dist/utils-BVbAG2J6.js.map +1 -0
- package/dist/value-inputs-h5MwjGCo.js +982 -0
- package/dist/value-inputs-h5MwjGCo.js.map +1 -0
- package/dist/value-typography-D15uwfj-.js +154 -0
- package/dist/value-typography-D15uwfj-.js.map +1 -0
- package/dist/workspace-DIryPqBt.js +400 -0
- package/dist/workspace-DIryPqBt.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +7 -0
- package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
- package/docs/consumer-skill/examples/analytics.tsx +1 -1
- package/docs/consumer-skill/examples/app-layout.tsx +3 -3
- package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
- package/docs/consumer-skill/examples/detail.tsx +3 -2
- package/docs/consumer-skill/examples/edit.tsx +3 -3
- package/docs/consumer-skill/examples/email-composer.tsx +1 -1
- package/docs/consumer-skill/examples/index-table.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
- package/docs/consumer-skill/references/agents-md.md +27 -23
- package/docs/consumer-skill/references/analytics.md +33 -4
- package/docs/consumer-skill/references/building-views.md +213 -0
- package/docs/consumer-skill/references/catalogue.md +617 -0
- package/docs/consumer-skill/references/component-contracts.json +25852 -32067
- package/docs/consumer-skill/references/composition.md +42 -21
- package/docs/consumer-skill/references/design-contract.md +1 -0
- package/docs/consumer-skill/references/discovery.md +8 -5
- package/docs/consumer-skill/references/installation.md +59 -10
- package/docs/consumer-skill/references/integration.md +28 -5
- package/docs/consumer-skill/references/product-composition.md +2 -2
- package/docs/consumer-skill/references/public-api.json +726 -641
- package/docs/consumer-skill/references/review.md +57 -15
- package/docs/consumer-skill/references/rhf-workflows.md +72 -0
- package/docs/consumer-skill/references/screen-archetypes.md +2 -2
- package/docs/consumer-skill/references/theming.md +8 -3
- package/docs/consumer-skill/references/tokens.json +4 -4
- package/docs/consumer-skill/references/workflows.md +7 -7
- package/docs/consumer-skill/scripts/composition-policy.mjs +178 -44
- package/docs/consumer-skill/scripts/composition.mjs +4 -1
- package/docs/consumer-skill/scripts/discovery.mjs +3 -1
- package/docs/consumer-skill/scripts/setup-skills.mjs +74 -10
- package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
- package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
- package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
- package/package.json +12 -13
- package/templates/README.md +3 -2
- package/templates/admin-shell-template.tsx +50 -11
- package/templates/analytics-operations-template.tsx +20 -24
- package/templates/customers-template.tsx +30 -25
- package/templates/index.ts +2 -8
- package/templates/orders-template.tsx +28 -24
- package/templates/products-template.tsx +14 -4
- package/templates/user-permissions-template.tsx +11 -14
- package/dist/accordion-B9MHG0cT.js.map +0 -1
- package/dist/action-menu-Dr8K-ghE.js +0 -284
- package/dist/action-menu-Dr8K-ghE.js.map +0 -1
- package/dist/ai-artifact-C58tQcBy.js +0 -1185
- package/dist/ai-artifact-C58tQcBy.js.map +0 -1
- package/dist/anchored-positioning-DPnKTvNs.js +0 -6
- package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
- package/dist/app-shell-B_IuNWOo.js +0 -321
- package/dist/app-shell-B_IuNWOo.js.map +0 -1
- package/dist/auth-DTkkshS8.js.map +0 -1
- package/dist/badge-xIiV_E7f.js.map +0 -1
- package/dist/base/sheet.js +0 -3
- package/dist/breadcrumbs-J-K2kl4c.js +0 -129
- package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
- package/dist/button-S2Cubiiz.js.map +0 -1
- package/dist/buttons-BedGfygC.js.map +0 -1
- package/dist/cascader-B1MiqkBq.js +0 -439
- package/dist/cascader-B1MiqkBq.js.map +0 -1
- package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
- package/dist/code-block-BzmM9Eig.js.map +0 -1
- package/dist/collapsible-BkAI_XD4.js +0 -81
- package/dist/collapsible-BkAI_XD4.js.map +0 -1
- package/dist/combobox-BEx0vJgF.js +0 -362
- package/dist/combobox-BEx0vJgF.js.map +0 -1
- package/dist/combobox-BwzoXFSG.js +0 -884
- package/dist/combobox-BwzoXFSG.js.map +0 -1
- package/dist/command-CrlPIL6m.js +0 -425
- package/dist/command-CrlPIL6m.js.map +0 -1
- package/dist/comments-Dmpp0YIc.js +0 -1169
- package/dist/comments-Dmpp0YIc.js.map +0 -1
- package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
- package/dist/components/base/display/content-block.d.ts +0 -75
- package/dist/components/base/display/content-block.strings.d.ts +0 -5
- package/dist/components/base/sheet/index.d.ts +0 -29
- package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
- package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -16
- package/dist/components/features/resource/resource.strings.d.ts +0 -12
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
- package/dist/components/features/sync/index.d.ts +0 -26
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
- package/dist/components/features/sync/sync.strings.d.ts +0 -18
- package/dist/components/features/sync/sync.types.d.ts +0 -44
- package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
- package/dist/components/ui/slot.d.ts +0 -6
- package/dist/containers-CIxwbZt5.js.map +0 -1
- package/dist/data-display-BdgCAw8T.js.map +0 -1
- package/dist/date-Cq8ioE4o.js +0 -144
- package/dist/date-Cq8ioE4o.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/display-KsZLw9Ov.js.map +0 -1
- package/dist/features/sync.js +0 -142
- package/dist/features/sync.js.map +0 -1
- package/dist/feedback-Dm4izqFn.js +0 -240
- package/dist/feedback-Dm4izqFn.js.map +0 -1
- package/dist/field-affordance-recipes-DWcNcOjh.js.map +0 -1
- package/dist/field-state-recipes-BVA2CWHo.js +0 -12
- package/dist/field-state-recipes-BVA2CWHo.js.map +0 -1
- package/dist/filters-DzgSJpMK.js +0 -2257
- package/dist/filters-DzgSJpMK.js.map +0 -1
- package/dist/focus-recipes-B653VaLq.js.map +0 -1
- package/dist/form-field-BriWAXyg.js +0 -63
- package/dist/form-field-BriWAXyg.js.map +0 -1
- package/dist/forms-C0RGnJTe.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/hooks-DB6CJ4MR.js.map +0 -1
- package/dist/http-D_6rOnzU.js.map +0 -1
- package/dist/item-DjCcM18E.js +0 -277
- 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/media-gallery-C-vChPmE.js +0 -203
- package/dist/media-gallery-C-vChPmE.js.map +0 -1
- package/dist/mentions-0_4nWuI-.js +0 -570
- 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/metadata-list-C3MkU-Om.js.map +0 -1
- package/dist/motion-recipes-DitYv6P2.js.map +0 -1
- package/dist/navigation-C90-oQFq.js +0 -255
- package/dist/navigation-C90-oQFq.js.map +0 -1
- package/dist/navigation-DaRjthVk.js +0 -288
- package/dist/navigation-DaRjthVk.js.map +0 -1
- package/dist/number-CRU3kGuk.js +0 -354
- package/dist/number-CRU3kGuk.js.map +0 -1
- package/dist/overlays-BSgCtM2v.js.map +0 -1
- package/dist/page-DUUKDAjo.js +0 -331
- package/dist/page-DUUKDAjo.js.map +0 -1
- package/dist/pagination-CgCjElfu.js.map +0 -1
- package/dist/popover-B85RenIl.js +0 -201
- package/dist/popover-B85RenIl.js.map +0 -1
- package/dist/primitives-ByWgGUgt.js +0 -380
- package/dist/primitives-ByWgGUgt.js.map +0 -1
- package/dist/receipt-tOc7B3hw.js +0 -116
- package/dist/receipt-tOc7B3hw.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 +0 -98
- package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
- package/dist/sanitize-html-DsQmI48u.js +0 -92
- package/dist/sanitize-html-DsQmI48u.js.map +0 -1
- package/dist/separator-Ct_WSWTJ.js.map +0 -1
- package/dist/settings-Bar5wiSo.js +0 -167
- package/dist/settings-Bar5wiSo.js.map +0 -1
- package/dist/sheet-BGPERY55.js +0 -250
- package/dist/sheet-BGPERY55.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/skeleton-BapcJd9C.js.map +0 -1
- package/dist/slot-CLF9kLrS.js +0 -16
- package/dist/slot-CLF9kLrS.js.map +0 -1
- package/dist/smart-card-CW0hjetE.js.map +0 -1
- package/dist/surface-recipes-BKRVW8Os.js.map +0 -1
- package/dist/table-B4TE7iOV.js +0 -175
- package/dist/table-B4TE7iOV.js.map +0 -1
- package/dist/table-CFOWY9pQ.js +0 -1536
- package/dist/table-CFOWY9pQ.js.map +0 -1
- package/dist/tabs-e7ko9S2o.js +0 -191
- package/dist/tabs-e7ko9S2o.js.map +0 -1
- package/dist/text-inputs-B1culiSK.js.map +0 -1
- package/dist/timelines-D3Sl9ueq.js +0 -458
- package/dist/timelines-D3Sl9ueq.js.map +0 -1
- package/dist/tooltip-8wz5S_Zr.js +0 -113
- package/dist/tooltip-8wz5S_Zr.js.map +0 -1
- package/dist/tree-CzUJHnFs.js.map +0 -1
- package/dist/typography-BQnine1k.js.map +0 -1
- package/dist/ui-provider-C-74NVLc.js.map +0 -1
- package/dist/upload-BOW6U2tI.js +0 -855
- package/dist/upload-BOW6U2tI.js.map +0 -1
- package/dist/upload-queue-qUXn1ykN.js +0 -409
- package/dist/upload-queue-qUXn1ykN.js.map +0 -1
- package/dist/usage-card-BeSLY0i0.js.map +0 -1
- package/dist/utils-B6kKb8jB.js.map +0 -1
- package/dist/value-inputs-skdVB2zh.js +0 -980
- package/dist/value-inputs-skdVB2zh.js.map +0 -1
- package/dist/value-typography-uAmWUAL1.js +0 -116
- package/dist/value-typography-uAmWUAL1.js.map +0 -1
- package/dist/workspace-DHeHv0qw.js +0 -411
- package/dist/workspace-DHeHv0qw.js.map +0 -1
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,858 @@
|
|
|
1
|
+
# Migration guide
|
|
2
|
+
|
|
3
|
+
`themelia-react-ui` is the Base UI and Tailwind port of the Themelia package
|
|
4
|
+
`admin-ui-starter-kit`. The package names have independent version histories.
|
|
5
|
+
This file covers two moves:
|
|
6
|
+
|
|
7
|
+
- [Upgrading from 2.x to 3.0](#upgrading-from-2x-to-30), for applications
|
|
8
|
+
already on `themelia-react-ui` 2.x.
|
|
9
|
+
- [From admin-ui-starter-kit 3.x](#from-admin-ui-starter-kit-3x), for
|
|
10
|
+
applications moving from the earlier package.
|
|
11
|
+
|
|
12
|
+
## Upgrading from 2.x to 3.0
|
|
13
|
+
|
|
14
|
+
3.0 removes the deprecated and legacy API that 2.x kept for compatibility:
|
|
15
|
+
second names for one component, re-exports from an old path, props and string
|
|
16
|
+
keys that had no effect, and the `asChild` composition form. It also removes
|
|
17
|
+
props that duplicated another prop: a label prop beside a `strings` key, a
|
|
18
|
+
flat prop beside a `slots` key, a boolean beside the option that already
|
|
19
|
+
implies it. Each such row names the one form that remains. Two package
|
|
20
|
+
entries are gone, the chart blocks have their own entry, a few types are
|
|
21
|
+
narrower, and the default control size and table edge inset changed.
|
|
22
|
+
|
|
23
|
+
Work in this order:
|
|
24
|
+
|
|
25
|
+
1. Install `themelia-react-ui` 3.0.0.
|
|
26
|
+
2. Update imports of moved and removed entries: the
|
|
27
|
+
[chart blocks](#chart-blocks-moved) and the two
|
|
28
|
+
[removed entries](#removed-entries).
|
|
29
|
+
3. Replace removed API layer by layer, using the tables in
|
|
30
|
+
[Removed API](#removed-api): base and lower layers first, then layouts and
|
|
31
|
+
templates, blocks, data features and content features.
|
|
32
|
+
4. Convert `asChild` to `render` ([Composition form](#composition-form)).
|
|
33
|
+
5. Fix the narrower types listed under [Breaking changes](#breaking-changes).
|
|
34
|
+
6. Review the [changed defaults](#changed-defaults) and the
|
|
35
|
+
[changed behaviour](#changed-behaviour).
|
|
36
|
+
|
|
37
|
+
Removed exports, types and props are type errors, so a type check after each
|
|
38
|
+
step shows what is left. A few removals are not reported by the compiler and
|
|
39
|
+
need a search of your own code: the snake case `content_type` field on
|
|
40
|
+
comments, a RANGE filter URL that carries one bare value, and CSS or test
|
|
41
|
+
selectors that target ContentBlock or PageHeader hooks. Their rows say what
|
|
42
|
+
changed.
|
|
43
|
+
|
|
44
|
+
### Breaking changes
|
|
45
|
+
|
|
46
|
+
- **Chart blocks moved.** `Metric`, `MetricBar`, `MetricGrid`,
|
|
47
|
+
`MetricMicroGrid`, `MetricGradient`, `MetricSparkline` and `ChartCard` (with
|
|
48
|
+
their types) are now imported from
|
|
49
|
+
`themelia-react-ui/blocks/analytics/charts`.
|
|
50
|
+
`themelia-react-ui/blocks/analytics` no longer loads the optional `recharts`
|
|
51
|
+
peer. The symbol table is in [Chart blocks moved](#chart-blocks-moved).
|
|
52
|
+
- **Variant props no longer accept `null`.** Affects `variant`, `size`, `tone`
|
|
53
|
+
and `align` on Alert, EmptyMedia, SidebarMenuButton, SidebarTrigger,
|
|
54
|
+
TabsList, Toggle, ToggleGroup, InputGroupAddon, InputGroupButton, Item and
|
|
55
|
+
ItemMedia. Pass `undefined` or omit the prop.
|
|
56
|
+
- **Cascader and Accordion value types are narrower.** Cascader is typed by
|
|
57
|
+
mode: single takes `string | null`, `multiple` takes and emits string arrays
|
|
58
|
+
(`CascaderSingleProps`, `CascaderMultipleProps`). `Accordion` is generic over
|
|
59
|
+
its value type instead of `any[]`.
|
|
60
|
+
- **Deprecated and legacy API removed.** Two entries
|
|
61
|
+
([Removed entries](#removed-entries)) and the exports, types, props, string
|
|
62
|
+
keys and values listed in [Removed API](#removed-api).
|
|
63
|
+
|
|
64
|
+
#### Changed defaults
|
|
65
|
+
|
|
66
|
+
**Control sizes.** `--height-action` and `--height-control` default to
|
|
67
|
+
2.125rem (were 2rem) and `--control-x` to 0.875rem (was 0.75rem), so default
|
|
68
|
+
buttons and fields are 34px tall with a 14px inline inset.
|
|
69
|
+
|
|
70
|
+
| Root | 2.x default | 3.0 default |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| `--height-action` | 2rem | 2.125rem |
|
|
73
|
+
| `--height-control` | 2rem | 2.125rem |
|
|
74
|
+
| `--control-x` | 0.75rem | 0.875rem |
|
|
75
|
+
|
|
76
|
+
To keep the previous sizes, set the three roots back to the old values at the
|
|
77
|
+
root or at a scoped theme boundary:
|
|
78
|
+
|
|
79
|
+
```css
|
|
80
|
+
:root {
|
|
81
|
+
--height-action: 2rem;
|
|
82
|
+
--height-control: 2rem;
|
|
83
|
+
--control-x: 0.75rem;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Table edges.** The first and last columns of every table use the default
|
|
88
|
+
surface inset (24px, following `--surface-x` and `--space-scale`) instead of
|
|
89
|
+
16px, so a table lines up with the card title, toolbar and footer around it. A
|
|
90
|
+
table inside a padded Card body sits flush with that body. DataTable and
|
|
91
|
+
DataView regions (topbar, selection bar, filter bar, footer, pagination) share
|
|
92
|
+
the same edge, and row checkboxes start on it. The table edge has no root of
|
|
93
|
+
its own: it follows `--surface-x` and `--space-scale`, which also set the
|
|
94
|
+
inset of the surfaces around the table, so changing those roots moves every
|
|
95
|
+
surface inset with it.
|
|
96
|
+
|
|
97
|
+
### Removed entries
|
|
98
|
+
|
|
99
|
+
| Removed entry | Use instead |
|
|
100
|
+
| --- | --- |
|
|
101
|
+
| `themelia-react-ui/features/sync` | `SchemaForm` from `themelia-react-ui/features/schema-form`, with a `radio-cards` field for the window and a `checkbox-cards` field for the options. Wrap it in `ActionDialog` from `themelia-react-ui/features/overlays` for a dialog. The symbol rows are under [`features/sync`](#featuressync). |
|
|
102
|
+
| `themelia-react-ui/base/sheet` | `ActionDrawer` from `themelia-react-ui/features/overlays`; for an external control use `useOverlayVisibility` from the same entry. The part-by-part mapping is under [`base/sheet`](#basesheet). |
|
|
103
|
+
|
|
104
|
+
### Removed API
|
|
105
|
+
|
|
106
|
+
Every table has the same columns. "Kind" is `export`, `type`, `prop`,
|
|
107
|
+
`string` (a key of a strings object) or `value` (a prop value, a data field or
|
|
108
|
+
a call shape). Import paths are the public package entries.
|
|
109
|
+
|
|
110
|
+
#### Base and lower layers
|
|
111
|
+
|
|
112
|
+
##### `base/upload`
|
|
113
|
+
|
|
114
|
+
These names were re-exports. They moved to their own entries.
|
|
115
|
+
|
|
116
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
117
|
+
| --- | --- | --- | --- | --- |
|
|
118
|
+
| `MediaGallery` | export | `themelia-react-ui/base/upload` | `MediaGallery` from `themelia-react-ui/base/media-gallery` | Same component; only the import path changes. |
|
|
119
|
+
| `defaultMediaGalleryStrings` | export | `themelia-react-ui/base/upload` | `defaultMediaGalleryStrings` from `themelia-react-ui/base/media-gallery` | |
|
|
120
|
+
| `MediaGalleryProps` | type | `themelia-react-ui/base/upload` | `MediaGalleryProps` from `themelia-react-ui/base/media-gallery` | |
|
|
121
|
+
| `MediaGalleryStrings` | type | `themelia-react-ui/base/upload` | `MediaGalleryStrings` from `themelia-react-ui/base/media-gallery` | |
|
|
122
|
+
| `UploadProgressList` | export | `themelia-react-ui/base/upload` | `UploadProgressList` from `themelia-react-ui/base/upload-queue` | Same component; only the import path changes. |
|
|
123
|
+
| `defaultUploadProgressListStrings` | export | `themelia-react-ui/base/upload` | `defaultUploadProgressListStrings` from `themelia-react-ui/base/upload-queue` | |
|
|
124
|
+
| `UploadProgressListProps` | type | `themelia-react-ui/base/upload` | `UploadProgressListProps` from `themelia-react-ui/base/upload-queue` | |
|
|
125
|
+
| `UploadProgressListStrings` | type | `themelia-react-ui/base/upload` | `UploadProgressListStrings` from `themelia-react-ui/base/upload-queue` | |
|
|
126
|
+
| `UploadItem` | type | `themelia-react-ui/base/upload` | `UploadItem` from `themelia-react-ui/base/upload-queue` | |
|
|
127
|
+
| `UploadStatus` | type | `themelia-react-ui/base/upload` | `UploadStatus` from `themelia-react-ui/base/upload-queue` | |
|
|
128
|
+
| `UploadTray` | export | `themelia-react-ui/base/upload` | `UploadTray` from `themelia-react-ui/base/upload-queue` | Same component; only the import path changes. |
|
|
129
|
+
| `defaultUploadTrayStrings` | export | `themelia-react-ui/base/upload` | `defaultUploadTrayStrings` from `themelia-react-ui/base/upload-queue` | |
|
|
130
|
+
| `UploadTrayProps` | type | `themelia-react-ui/base/upload` | `UploadTrayProps` from `themelia-react-ui/base/upload-queue` | |
|
|
131
|
+
| `UploadTrayStrings` | type | `themelia-react-ui/base/upload` | `UploadTrayStrings` from `themelia-react-ui/base/upload-queue` | |
|
|
132
|
+
|
|
133
|
+
##### `base/sheet`
|
|
134
|
+
|
|
135
|
+
The `themelia-react-ui/base/sheet` entry no longer exists. Nothing public is
|
|
136
|
+
left in it. `ActionDrawer` and `useOverlayVisibility` come from
|
|
137
|
+
`themelia-react-ui/features/overlays`.
|
|
138
|
+
|
|
139
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
140
|
+
| --- | --- | --- | --- | --- |
|
|
141
|
+
| `Sheet` | export | `themelia-react-ui/base/sheet` | `ActionDrawer` from `themelia-react-ui/features/overlays` | Open state: `open`/`onOpenChange`, or the `trigger` prop. |
|
|
142
|
+
| `SheetTrigger` | export | `themelia-react-ui/base/sheet` | `ActionDrawer trigger={…}` | For an external control use `useOverlayVisibility` from `themelia-react-ui/features/overlays`. |
|
|
143
|
+
| `SheetClose` | export | `themelia-react-ui/base/sheet` | `ActionDrawer showCloseButton` and its cancel action | ActionDrawer renders its own dismiss control. |
|
|
144
|
+
| `SheetContent` | export | `themelia-react-ui/base/sheet` | `ActionDrawer` (`direction`, `width`, `modal`) | |
|
|
145
|
+
| `SheetHeader` | export | `themelia-react-ui/base/sheet` | `ActionDrawer title` / `description` | |
|
|
146
|
+
| `SheetBody` | export | `themelia-react-ui/base/sheet` | `children` of `ActionDrawer` | ActionDrawer owns the scrolling body. |
|
|
147
|
+
| `SheetFooter` | export | `themelia-react-ui/base/sheet` | The generated actions or the `footer` prop of `ActionDrawer` | |
|
|
148
|
+
| `SheetTitle` | export | `themelia-react-ui/base/sheet` | `ActionDrawer title` | |
|
|
149
|
+
| `SheetDescription` | export | `themelia-react-ui/base/sheet` | `ActionDrawer description` | |
|
|
150
|
+
|
|
151
|
+
##### `base/cards`
|
|
152
|
+
|
|
153
|
+
The `SmartCard*` names were second names for `Card`.
|
|
154
|
+
|
|
155
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
156
|
+
| --- | --- | --- | --- | --- |
|
|
157
|
+
| `SmartCard` | export | `themelia-react-ui/base/cards` | `Card` | Same component and props; rename only. |
|
|
158
|
+
| `SmartCardSkeleton` | export | `themelia-react-ui/base/cards` | `CardSkeleton` | Rename only. |
|
|
159
|
+
| `defaultSmartCardStrings` | export | `themelia-react-ui/base/cards` | `defaultCardStrings` | Rename only. |
|
|
160
|
+
| `SmartCardProps` | type | `themelia-react-ui/base/cards` | `CardProps` | Rename only. |
|
|
161
|
+
| `SmartCardSkeletonProps` | type | `themelia-react-ui/base/cards` | `CardSkeletonProps` | Rename only. |
|
|
162
|
+
| `SmartCardAction` | type | `themelia-react-ui/base/cards` | `CardAction` | Rename only. |
|
|
163
|
+
| `SmartCardStrings` | type | `themelia-react-ui/base/cards` | `CardStrings` | Rename only. |
|
|
164
|
+
| `SmartCardSurface` | type | `themelia-react-ui/base/cards` | `CardSurface` | Rename only. |
|
|
165
|
+
| `Card` `tooltipAriaLabel` | prop | `themelia-react-ui/base/cards` | `strings={{ tooltipLabel: '…' }}` | Same accessible name on the info trigger. |
|
|
166
|
+
| `Card` `actionsLabel` | prop | `themelia-react-ui/base/cards` | `strings={{ actionsLabel: '…' }}` | Same accessible name on the overflow trigger. An `undefined` value keeps the default. |
|
|
167
|
+
| `Card` `footerText` | prop | `themelia-react-ui/base/cards` | `footerSlot` | A string or number in `footerSlot` is now the footnote: small, secondary, at the end of the footer, exactly as `footerText` drew it. A node fills the footer width, as before. For a footnote above a command, pass both in one `footerSlot` node. |
|
|
168
|
+
|
|
169
|
+
##### `base/display`
|
|
170
|
+
|
|
171
|
+
The ContentBlock adapter is removed. The `asChild` rows are explained in
|
|
172
|
+
[Composition form](#composition-form).
|
|
173
|
+
|
|
174
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
175
|
+
| --- | --- | --- | --- | --- |
|
|
176
|
+
| `ContentBlock` | export | `themelia-react-ui/base/display` | `Card` from `themelia-react-ui/base/cards` with `surface="flat" padding="none"` | Every ContentBlock prop exists on Card under the same name. ContentBlock defaulted to `surface="flat"`; its `padding` defaulted to `none`, or to `md` when a `surface` other than `flat` was given. Pass those two props explicitly. Card no longer adds `content-block--component`, `content-block--header`, `content-block--content`, `content-block--footer`, `data-component="content-block"`, `data-slot="content-block"` or `data-padding` on the root; if your CSS or tests select them, add the classes through `className`, `headerClassName`, `contentClassName` and `footerClassName`, or select `card--component`, `card--header`, `card--content`, `card--footer`. |
|
|
177
|
+
| `ContentBlockProps` | type | `themelia-react-ui/base/display` | `CardProps` from `themelia-react-ui/base/cards` | |
|
|
178
|
+
| `ContentBlockPadding` | type | `themelia-react-ui/base/display` | `CardProps['padding']` | ContentBlock accepted `sm`, `md`, `lg`; Card also accepts `none`. |
|
|
179
|
+
| `ContentBlockSurface` | type | `themelia-react-ui/base/display` | `CardSurface` from `themelia-react-ui/base/cards` | |
|
|
180
|
+
| `ContentBlockTitleSize` | type | `themelia-react-ui/base/display` | `CardProps['titleSize']` | |
|
|
181
|
+
| `ContentBlockStrings` | type | `themelia-react-ui/base/display` | `CardStrings` from `themelia-react-ui/base/cards` | Same keys: `actionsLabel`, `tooltipLabel`. |
|
|
182
|
+
| `defaultContentBlockStrings` | export | `themelia-react-ui/base/display` | `defaultCardStrings` from `themelia-react-ui/base/cards` | |
|
|
183
|
+
| `TooltipTrigger` `asChild` | prop | `themelia-react-ui/base/display` | `render={<Button … />}` | |
|
|
184
|
+
| `CollapsibleTrigger` `asChild` | prop | `themelia-react-ui/base/display` | `render={<Button … />}` | `nativeButton` is now inferred from the `render` element (a `button`, or a component without `href`, is native). Pass `nativeButton` to override. |
|
|
185
|
+
|
|
186
|
+
##### `base/popover`
|
|
187
|
+
|
|
188
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
189
|
+
| --- | --- | --- | --- | --- |
|
|
190
|
+
| `PopoverTrigger` `asChild` | prop | `themelia-react-ui/base/popover` | `render={<Button … />}` | Same `nativeButton` inference as `CollapsibleTrigger`: it is inferred from the `render` element (a `button`, or a component without `href`, is native). Pass `nativeButton` to override. |
|
|
191
|
+
| `PopoverAnchor` `asChild` | prop | `themelia-react-ui/base/popover` | `render={<div … />}` | Without `render` it is still a `span`. |
|
|
192
|
+
|
|
193
|
+
##### `base/command`
|
|
194
|
+
|
|
195
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
196
|
+
| --- | --- | --- | --- | --- |
|
|
197
|
+
| `Command` `asChild` | prop | `themelia-react-ui/base/command` | `render={<section />}` with the content as `children` | `render` takes an element. |
|
|
198
|
+
| `CommandInput` `asChild` | prop | `themelia-react-ui/base/command` | `render={<input … />}` | Without `render` the shared `Input` is used, as before. |
|
|
199
|
+
| `CommandList` `asChild` | prop | `themelia-react-ui/base/command` | `render={<ul />}` with items as `children` | |
|
|
200
|
+
| `CommandGroup` `asChild` | prop | `themelia-react-ui/base/command` | `render={<section />}` with items as `children` | The `heading` is rendered inside the composed element, before the children. |
|
|
201
|
+
| `CommandItem` `asChild` | prop | `themelia-react-ui/base/command` | `render={<a href="…" />}` with the label as `children` | The item's `id` is still applied to the composed element. |
|
|
202
|
+
| `CommandSeparator` `asChild` | prop | `themelia-react-ui/base/command` | `render={<hr />}` | |
|
|
203
|
+
|
|
204
|
+
##### `base/sidebar`
|
|
205
|
+
|
|
206
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
207
|
+
| --- | --- | --- | --- | --- |
|
|
208
|
+
| `useSidebar` | export | `themelia-react-ui/base/sidebar` | `useLayoutSidebar` from `themelia-react-ui/layout/sidebar` | |
|
|
209
|
+
| `SidebarTrigger` `variant` | prop | `themelia-react-ui/base/sidebar` | Nothing; the trigger is always the ghost icon button | It exposed the raw primitive's variants (`default`, `destructive`, `ghost`, `link`, `outline`, `secondary`). Style a different trigger through `className`, or render your own button and drive `SidebarProvider` through `open` / `onOpenChange`. |
|
|
210
|
+
| `SidebarTrigger` `size` values `default`, `xs`, `icon`, `icon-xs`, `icon-sm`, `icon-lg` | value | `themelia-react-ui/base/sidebar` | `size="sm" \| "md" \| "lg"` | `icon-sm` → `sm`, `icon` or `default` → `md`, `icon-lg` → `lg`; `xs` and `icon-xs` have no equivalent. `sm` and `lg` now name the icon-button scale (they were the raw text-button sizes). Default is `md`. |
|
|
211
|
+
|
|
212
|
+
##### `base/navigation`
|
|
213
|
+
|
|
214
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
215
|
+
| --- | --- | --- | --- | --- |
|
|
216
|
+
| `PaginationPrimitive` | export | `themelia-react-ui/base/navigation` | `PaginationRoot` | Same component; rename only. |
|
|
217
|
+
| `PaginationPrevious` `children` | prop | `themelia-react-ui/base/navigation` | `text` | The children were accepted and ignored. |
|
|
218
|
+
| `PaginationNext` `children` | prop | `themelia-react-ui/base/navigation` | `text` | The children were accepted and ignored. |
|
|
219
|
+
| `LanguageSwitcher` `onRenderLabel` | prop | `themelia-react-ui/base/navigation` | `renderLabel` | Same signature: `(locale: LocaleOption) => string`. |
|
|
220
|
+
| `LanguageSwitcher` `onSelect` | prop | `themelia-react-ui/base/navigation` | `onValueChange` | Same payload: the chosen locale's `value`. `onSelect` is now a type error rather than the native text-selection event. |
|
|
221
|
+
| `PageHeading` `badge` | prop | `themelia-react-ui/base/navigation` | `titleSuffix={<Badge tone="secondary">Beta</Badge>}` with `Badge` from `base/badge` | Same position, directly after the title on the title line. |
|
|
222
|
+
| `PageHeading` `badges` | prop | `themelia-react-ui/base/navigation` | `titleSuffix` with one `Badge` per entry; wrap several in `<Stack direction="horizontal" gap="sm" wrap>` | The separate `page-header--badges` row is no longer rendered; status, count and version badges sit after the title. |
|
|
223
|
+
| `PageHeading` `moreActionsLabel` | prop | `themelia-react-ui/base/navigation` | `strings={{ moreActions: '…' }}` | New `PageHeadingStrings` / `defaultPageHeadingStrings`. Same accessible name on the More actions trigger. |
|
|
224
|
+
|
|
225
|
+
##### `base/action-menu`
|
|
226
|
+
|
|
227
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
228
|
+
| --- | --- | --- | --- | --- |
|
|
229
|
+
| `ActionMenu` `density="table"` (`ActionMenuDensity` member `'table'`) | value | `themelia-react-ui/base/action-menu` | `density="compact"` | `table` gave menu rows a `min-height` one step below compact; the popup already rendered compact rows for it. |
|
|
230
|
+
|
|
231
|
+
##### `primitives`
|
|
232
|
+
|
|
233
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
234
|
+
| --- | --- | --- | --- | --- |
|
|
235
|
+
| `formatFileSize(value, 'en-US')` (locale as a string second argument) | value | `themelia-react-ui/primitives` | `formatFileSize(value, { locale: 'en-US' })` | The second argument is `FileSizeFormatOptions` only: `{ from, locale, unitLabels }`. |
|
|
236
|
+
|
|
237
|
+
##### `services/actions`
|
|
238
|
+
|
|
239
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
240
|
+
| --- | --- | --- | --- | --- |
|
|
241
|
+
| `toPageAction` | export | `themelia-react-ui/services/actions` | `toButtonAction` for `ActionButtons`; `toPageHeaderAction` for a page header's `primaryAction` and `secondaryActions` | Renamed: it adapted a resolved action for the removed `PageActions` ribbon. The returned shape is unchanged. |
|
|
242
|
+
|
|
243
|
+
##### `base/forms-numeric`
|
|
244
|
+
|
|
245
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
246
|
+
| --- | --- | --- | --- | --- |
|
|
247
|
+
| `DimensionsInput` `widthLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ width: '…' }}` | |
|
|
248
|
+
| `DimensionsInput` `heightLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ height: '…' }}` | |
|
|
249
|
+
| `DimensionsInput` `depthLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ depth: '…' }}` | |
|
|
250
|
+
| `DimensionsInput` `unitLabel` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ unitLabel: '…' }}` | New string key, empty by default. As before, a non-empty value shows the unit sub-label in the vertical layout and names the unit selector. Same key as `WeightInput`. |
|
|
251
|
+
| `DimensionsInput` `unitPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ unitPlaceholder: '…' }}` | New string key, empty by default; empty falls back to `strings.unit`, as before. |
|
|
252
|
+
| `DimensionsInput` `widthPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ widthPlaceholder: '…' }}` | |
|
|
253
|
+
| `DimensionsInput` `heightPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ heightPlaceholder: '…' }}` | |
|
|
254
|
+
| `DimensionsInput` `depthPlaceholder` | prop | `themelia-react-ui/base/forms-numeric` | `strings={{ depthPlaceholder: '…' }}` | |
|
|
255
|
+
|
|
256
|
+
##### `base/date-pickers`
|
|
257
|
+
|
|
258
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
259
|
+
| --- | --- | --- | --- | --- |
|
|
260
|
+
| `DatePicker` `enableYearDropdown` | prop | `themelia-react-ui/base/date-pickers` | `yearSelection={{ enabled: true }}` | Same dropdown caption; `fromYear`/`toYear` bound it. |
|
|
261
|
+
|
|
262
|
+
#### Layouts and templates
|
|
263
|
+
|
|
264
|
+
Every layout import path below is also re-exported from the aggregate
|
|
265
|
+
`themelia-react-ui/layout`, so each removal applies to both paths.
|
|
266
|
+
|
|
267
|
+
##### `layout/page`
|
|
268
|
+
|
|
269
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
270
|
+
| --- | --- | --- | --- | --- |
|
|
271
|
+
| `PageActions` | export (component) | `themelia-react-ui/layout/page` | Pass page commands as `primaryAction` and `secondaryActions` on `Page` `header` or `PageHeader`. For a row of commands that is not a page header, use `ActionButtons` (and `ActionMenu` for overflow) from `themelia-react-ui/base/action-menu`. | The header owns treatment, overflow and narrow-width collapse, so `display`, `breakpoint`, `maxInlineActions`, `renderAction` and per-action `placement` have no replacement. `display="auto"` is gone with it: PageHeader collapses commands into More actions below 40rem of its own width. |
|
|
272
|
+
| `PageActionsProps` | type | `themelia-react-ui/layout/page` | `PageHeaderProps` (`primaryAction`, `secondaryActions`, `maxVisibleSecondaryActions`) | |
|
|
273
|
+
| `PageAction` | type | `themelia-react-ui/layout/page` | `PageHeaderAction` | `tone`, `buttonStyle`, `size`, `group`, `placement` and `element` have no equivalent: a command states its role (`primaryAction`, an ordered secondary action, or `destructive: true`). `visible`, `disabled`, `loading`, `icon`, `href`, `target`, `rel`, `external` and `onClick` carry over. |
|
|
274
|
+
| `PageActionsDisplay` | type | `themelia-react-ui/layout/page` | Nothing | Only typed `PageActions` `display`. |
|
|
275
|
+
| `PageActionContext` | type | `themelia-react-ui/layout/page` | Nothing | Only typed `PageActions` `renderAction`. |
|
|
276
|
+
| `PageActionsStrings` | type | `themelia-react-ui/layout/page` | `PageHeaderStrings` (`moreActions`) | |
|
|
277
|
+
| `defaultPageActionsStrings` | export | `themelia-react-ui/layout/page` | `defaultPageHeaderStrings` | `menuLabel` becomes `moreActions`. |
|
|
278
|
+
| `titleBadges` on `PageHeaderProps` (and `Page` `header`) | prop | `themelia-react-ui/layout/page` | `slots.titleSuffix` with `Badge` from `themelia-react-ui/base/badge`: `slots: { titleSuffix: <Badge tone="success">Paid</Badge> }`. Wrap several in `<Stack direction="horizontal" gap="sm" wrap>`. | A badge that set no `tone` rendered `secondary`; pass `tone="secondary"` to keep it. The `page-header--badges` wrapper is no longer rendered. |
|
|
279
|
+
| `PageTitleBadge` | type | `themelia-react-ui/layout/page` (declared, not exported by name) | `BadgeProps` from `themelia-react-ui/base/badge` | Only typed `titleBadges`. |
|
|
280
|
+
| `titleIcon` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | Put the glyph in a React-node `title`, or in `slots.beforeTitle` / `slots.titleSuffix`. | Title icons were decorative by default; ordinary titles need none. The `page-header--title-icon` element is no longer rendered. |
|
|
281
|
+
| `titleIconHref` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | A link composed in a slot callback through its `renderLink` argument: `slots: { titleSuffix: ({ renderLink }) => renderLink({ href, children }) }`. | The `page-header--title-icon-link` element is no longer rendered. |
|
|
282
|
+
| `onTitleIconClick` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | A command: `primaryAction` or an entry in `secondaryActions`; or a control in `slots.actions`. | The `page-header--title-icon-button` element is no longer rendered. |
|
|
283
|
+
| `titleIconLabel` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | Nothing | Named the removed title-icon control. |
|
|
284
|
+
| `titleIconClassName` on `PageHeaderProps` | prop | `themelia-react-ui/layout/page` | Nothing | Styled the removed title-icon control. |
|
|
285
|
+
| `actions` on `PageHeaderProps` (and `Page` `header`) | prop | `themelia-react-ui/layout/page` | Controls that are not commands (a period select, a scope switcher): the `Page` `toolbar` prop. To add something beside the command row: `slots.actions` as a callback, `({ defaultContent }) => <>{control}{defaultContent}</>`. | With a callback the region is yours: the header no longer end-aligns it for you. `actions` on `AsideNavShell` and `WorkspaceRecordHeader` is unchanged. |
|
|
286
|
+
| `back` on `PageHeaderSlots` | prop | `themelia-react-ui/layout/page` | `backHref` (a link through `renderLink`) or `onBack` (a button), with `strings.back` for its name. | A fully custom back control can go in `slots.beforeTitle`. |
|
|
287
|
+
| `afterHeader` on `PageProps` | prop | `themelia-react-ui/layout/page` | `toolbar` | Same region and position; it was only read when `toolbar` was absent. |
|
|
288
|
+
| `PageHeader` `backLabel` (and `Page` `header.backLabel`) | prop | `themelia-react-ui/layout/page` | `strings={{ back: '…' }}` (`header: { strings: { back: '…' } }` on `Page`) | Same accessible name on the back link or button. |
|
|
289
|
+
| `PageHeader` `moreActionsLabel` | prop | `themelia-react-ui/layout/page` | `strings={{ moreActions: '…' }}` | — |
|
|
290
|
+
| `PageHeaderTabs` `label` (`tabs.label`) | prop | `themelia-react-ui/layout/page` | `strings={{ sections: '…' }}` on the header | Names the tab list. `strings` sits beside `tabs`, not inside it. |
|
|
291
|
+
| `PageHeaderTabs` `moreLabel` (`tabs.moreLabel`) | prop | `themelia-react-ui/layout/page` | `strings={{ moreSections: '…' }}` on the header | Names the More menu that holds tabs that do not fit. |
|
|
292
|
+
| `Page` `slots.aside` | prop | `themelia-react-ui/layout/page` | `aside` | The slot only took precedence over the prop; same region. |
|
|
293
|
+
| `Page` `slots.toolbar` | prop | `themelia-react-ui/layout/page` | `toolbar` | Same region, above the body and aside. |
|
|
294
|
+
| `Page` `slots.empty` | prop | `themelia-react-ui/layout/page` | `emptySlot` | Same replacement of the default empty state. |
|
|
295
|
+
|
|
296
|
+
##### `layout/settings`
|
|
297
|
+
|
|
298
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
299
|
+
| --- | --- | --- | --- | --- |
|
|
300
|
+
| `SettingsShell` | export (component) | `themelia-react-ui/layout/settings` | `AsideNavShell` | The same component under its one name; props, strings and the `aside-nav-shell--*` hooks are unchanged. |
|
|
301
|
+
| `SettingsShellProps` | type | `themelia-react-ui/layout/settings` | `AsideNavShellProps` | |
|
|
302
|
+
|
|
303
|
+
##### `layout/workspace`
|
|
304
|
+
|
|
305
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
306
|
+
| --- | --- | --- | --- | --- |
|
|
307
|
+
| `ariaLabel` on `WorkspaceLayoutProps` | prop | `themelia-react-ui/layout/workspace` | The native `aria-label` attribute | Same effect: it names the workspace as a group, or the content region when `mainAs="section"`. |
|
|
308
|
+
| Rendered elements as `secondaryActions` on `WorkspaceRecordHeaderProps` | value | `themelia-react-ui/layout/workspace` | Command objects: `secondaryActions={[{ label: 'Preview', onClick }]}` (`readonly PageHeaderAction[]`). For controls that are not commands, use `actions`. | The prop type is now `readonly PageHeaderAction[]` only. The separate "Secondary actions" cluster is no longer rendered. |
|
|
309
|
+
| `secondaryActionsLabel` in `WorkspaceRecordHeaderStrings` (and `defaultWorkspaceRecordHeaderStrings`) | string | `themelia-react-ui/layout/workspace` | Nothing | Named the removed element cluster. `actionsLabel` still names the `actions` cluster. |
|
|
310
|
+
| `currentLabel` in `WorkspaceNavStrings` (and `defaultWorkspaceNavStrings`) | string | `themelia-react-ui/layout/workspace` | Nothing | The current entry carries `aria-current` (`page` on a link, `true` on a callback row), which assistive technology announces in the reader's language. Delete the key from any `strings` override. |
|
|
311
|
+
|
|
312
|
+
##### `layout/sidebar`
|
|
313
|
+
|
|
314
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
315
|
+
| --- | --- | --- | --- | --- |
|
|
316
|
+
| `handle` as the identity of a `SidebarNavigationRailItem` | value | `themelia-react-ui/layout/sidebar` | `id` on every rail item | `id` is required. `value` and `onValueChange` on `SidebarNavigationRail` report it. An item that had only `handle` needs `id` set to the same string. |
|
|
317
|
+
| `showBadges` on `AppSidebar`, `SidebarNavigation`, `SidebarGroupedNavigation`, `SidebarNavigationFooter` | prop | `themelia-react-ui/layout/sidebar` | Leave `badge` off the items and omit `liveBadges` | Counts come from the navigation data only. |
|
|
318
|
+
| `AppSidebar` `logoClassName` | prop | `themelia-react-ui/layout/sidebar` | Style the node passed as `logo` / `collapsedLogo`; for the wrapper itself, compose `<SidebarLogo className="…" />` in `slots.header` | It only reached the wrapper around that node. No caller in the repository. |
|
|
319
|
+
|
|
320
|
+
##### Templates
|
|
321
|
+
|
|
322
|
+
The templates are source assets shipped in the package's `templates` folder,
|
|
323
|
+
not an import entry.
|
|
324
|
+
|
|
325
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
326
|
+
| --- | --- | --- | --- | --- |
|
|
327
|
+
| `UserPermissionsAdminTemplate` | export (alias) | `templates/index.ts` in `themelia-react-ui/templates` | `UserPermissionsTemplate` | Same component. |
|
|
328
|
+
| `AnalyticsOperationsAdminTemplate` | export (alias) | `templates/index.ts` in `themelia-react-ui/templates` | `AnalyticsOperationsTemplate` | Same component. The props type in the template file keeps its name. |
|
|
329
|
+
|
|
330
|
+
The templates themselves changed to the current API, so a copy taken from 2.x
|
|
331
|
+
needs the same edits: `useLayoutSidebar` from
|
|
332
|
+
`themelia-react-ui/layout/sidebar` replaces `useSidebar` from
|
|
333
|
+
`themelia-react-ui/base/sidebar`; title badges are `Badge`s in
|
|
334
|
+
`slots.titleSuffix`; the analytics period select moved from the header's
|
|
335
|
+
`actions` to the Page `toolbar`.
|
|
336
|
+
|
|
337
|
+
##### `layout/app-shell`
|
|
338
|
+
|
|
339
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
340
|
+
| --- | --- | --- | --- | --- |
|
|
341
|
+
| `TopbarSidebarLayout` / `AppLayout` `slots.logo`, `slots.sidebar`, `slots.sidebarTrigger`, `slots.headerActions` | prop | `themelia-react-ui/layout/app-shell` | The direct props `logo`, `sidebar`, `sidebarTrigger`, `headerActions` | `slots` keeps the regions with no direct prop: `header`, `headerStart`, `headerCenter`, `headerEnd`, `secondarySidebar`, `aside`. |
|
|
342
|
+
| `SidebarInsetLayout` / `AppLayout` (`sidebar`, `inset`) `slots.sidebar`, `slots.sidebarTrigger` | prop | `themelia-react-ui/layout/app-shell` | `sidebar`, `sidebarTrigger` | `slots` keeps `toolbar`, `toolbarStart`, `toolbarEnd`, `secondarySidebar`, `aside`. |
|
|
343
|
+
| `StackedLayout` / `AppLayout` (`stacked`) `slots.logo`, `slots.nav` | prop | `themelia-react-ui/layout/app-shell` | `logo`, `nav` | `slots` keeps `header`, `headerEnd`, `subheader`, `aside`. |
|
|
344
|
+
| `slots.content` on all three shells | prop | `themelia-react-ui/layout/app-shell` | `children` | It only replaced `children`. |
|
|
345
|
+
| `TopbarSidebarLayout` / `StackedLayout` `headerHeight` | prop | `themelia-react-ui/layout/app-shell` | `style={{ '--shell-header-height': '5rem' }}` | The prop only set this root on the shell. Set it at `:root` or a theme scope to size every shell. |
|
|
346
|
+
| `TopbarSidebarLayout` / `SidebarInsetLayout` `sidebarWidth` | prop | `themelia-react-ui/layout/app-shell` | `style={{ '--shell-sidebar-width': '18rem' }}` | The prop only set this root on the shell. `secondarySidebarWidth` and `asideWidth` stay: no root sizes those regions alone. |
|
|
347
|
+
|
|
348
|
+
##### `layout/auth`
|
|
349
|
+
|
|
350
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
351
|
+
| --- | --- | --- | --- | --- |
|
|
352
|
+
| `AuthShell` `socialDivider` | prop | `themelia-react-ui/layout/auth` | `strings={{ socialDivider: '…' }}` | Text only; the divider is a label between two rules. |
|
|
353
|
+
| `AuthShell` `cardClassName`, `cardContentClassName`, `footerClassName` | prop | `themelia-react-ui/layout/auth` | `variant` for the card surface; style the content passed as `children`, `cardFooter` and `postCard` | They reached the card's own frame and inset and the row under the card. No caller in the repository. `AuthCard` keeps its class slots for a composed layout. |
|
|
354
|
+
|
|
355
|
+
##### `layout/settings`, `layout/workspace`
|
|
356
|
+
|
|
357
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
358
|
+
| --- | --- | --- | --- | --- |
|
|
359
|
+
| `AsideNavShell` `moreActionsLabel` | prop | `themelia-react-ui/layout/settings` | `strings={{ moreActionsLabel: '…' }}` | Same accessible name. |
|
|
360
|
+
| `WorkspaceRecordHeader` `moreActionsLabel` | prop | `themelia-react-ui/layout/workspace` | `strings={{ moreActionsLabel: '…' }}` | Same accessible name. |
|
|
361
|
+
|
|
362
|
+
#### Blocks
|
|
363
|
+
|
|
364
|
+
##### `blocks/data-display`
|
|
365
|
+
|
|
366
|
+
The metadata names were re-exports of the base family.
|
|
367
|
+
|
|
368
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
369
|
+
| --- | --- | --- | --- | --- |
|
|
370
|
+
| `MetadataList` | export | `themelia-react-ui/blocks/data-display` | `MetadataList` from `themelia-react-ui/base/metadata-list` | Same component; only the import path changes. |
|
|
371
|
+
| `MetadataValue` | export | `themelia-react-ui/blocks/data-display` | `MetadataValue` from `themelia-react-ui/base/metadata-list` | Same component; only the import path changes. |
|
|
372
|
+
| `MetadataDensity` | type | `themelia-react-ui/blocks/data-display` | `MetadataDensity` from `themelia-react-ui/base/metadata-list` | |
|
|
373
|
+
| `MetadataInlineListItem` | type | `themelia-react-ui/blocks/data-display` | `MetadataInlineListItem` from `themelia-react-ui/base/metadata-list` | |
|
|
374
|
+
| `MetadataLayout` | type | `themelia-react-ui/blocks/data-display` | `MetadataLayout` from `themelia-react-ui/base/metadata-list` | |
|
|
375
|
+
| `MetadataListItem` | type | `themelia-react-ui/blocks/data-display` | `MetadataListItem` from `themelia-react-ui/base/metadata-list` | |
|
|
376
|
+
| `MetadataListProps` | type | `themelia-react-ui/blocks/data-display` | `MetadataListProps` from `themelia-react-ui/base/metadata-list` | |
|
|
377
|
+
| `MetadataValueDescriptor` | type | `themelia-react-ui/blocks/data-display` | `MetadataValueDescriptor` from `themelia-react-ui/base/metadata-list` | |
|
|
378
|
+
| `MetadataValueKind` | type | `themelia-react-ui/blocks/data-display` | `MetadataValueKind` from `themelia-react-ui/base/metadata-list` | |
|
|
379
|
+
| `MetadataValueProps` | type | `themelia-react-ui/blocks/data-display` | `MetadataValueProps` from `themelia-react-ui/base/metadata-list` | |
|
|
380
|
+
|
|
381
|
+
##### `blocks/analytics` and `blocks/analytics/charts`
|
|
382
|
+
|
|
383
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
384
|
+
| --- | --- | --- | --- | --- |
|
|
385
|
+
| `Metric` prop `colorScheme` | prop | `themelia-react-ui/blocks/analytics/charts` | `tone` | Map the value: `default` → omit the prop (or `tone="neutral"`), `primary` → `primary`, `success` → `success`, `warning` → `warning`, `info` → `info`, `danger` → `destructive`. Without `tone`, bordered metrics stay neutral and the `colored` variant keeps primary progress, as before. |
|
|
386
|
+
| `MetricGrid` prop `colorScheme` | prop | `themelia-react-ui/blocks/analytics/charts` | `tone` | Same value mapping as `Metric`. |
|
|
387
|
+
| `MetricColorScheme` | type | `themelia-react-ui/blocks/analytics` and `themelia-react-ui/blocks/analytics/charts` | `SemanticTone` from `themelia-react-ui/component-vocabulary` | `danger` is spelled `destructive` in `SemanticTone`; `default` is `neutral`. |
|
|
388
|
+
|
|
389
|
+
##### `blocks/commerce`
|
|
390
|
+
|
|
391
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
392
|
+
| --- | --- | --- | --- | --- |
|
|
393
|
+
| `CartSummary` | export | `themelia-react-ui/blocks/commerce` | `CartSummaryCard` | Alias of the same component. |
|
|
394
|
+
| `CartSummaryProps` | type | `themelia-react-ui/blocks/commerce` | `CartSummaryCardProps` | Alias of the same type. |
|
|
395
|
+
| `DiscountStack` | export | `themelia-react-ui/blocks/commerce` | `DiscountStackPreview` | Alias of the same component. |
|
|
396
|
+
| `DiscountStackProps` | type | `themelia-react-ui/blocks/commerce` | `DiscountStackPreviewProps` | Alias of the same type. |
|
|
397
|
+
| `RefundStatus` | export | `themelia-react-ui/blocks/commerce` | `RefundStatusCard` | Alias of the same component. |
|
|
398
|
+
| `RefundStatusProps` | type | `themelia-react-ui/blocks/commerce` | `RefundStatusCardProps` | Alias of the same type. |
|
|
399
|
+
| `PaymentMethodCard` | export | `themelia-react-ui/blocks/commerce` | `<PaymentMethod variant="row" … />` | It was `PaymentMethod` with `variant` defaulting to `row`. Pass `variant="row"` explicitly; an explicit `variant="card"` on the old name becomes plain `PaymentMethod`. |
|
|
400
|
+
| `PaymentMethodCardProps` | type | `themelia-react-ui/blocks/commerce` | `PaymentMethodProps` | Alias of the same type. |
|
|
401
|
+
| `Discount.type` | value | `themelia-react-ui/blocks/commerce` (`DiscountStackPreview` `discounts[]`) | `kind` | `kind` takes the same text (or a node). `badge` still draws it as a chip. The fallback row key is now the label and position. |
|
|
402
|
+
| `CartLineItem.name` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `title` | `title` is now required. A line without any name used to show its `id`; pass the text you want. |
|
|
403
|
+
| `CartLineItem.productTitle` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `title` | It used to win over `title` and `name` when several were set. |
|
|
404
|
+
| `CartLineItem.imageUrl` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `imageSrc` | |
|
|
405
|
+
| `CartLineItem.src` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `imageSrc` | |
|
|
406
|
+
| `CartLineItem.url` | value | `themelia-react-ui/blocks/commerce` (`CartSummaryCard` `items[]`) | `imageSrc` | |
|
|
407
|
+
| `InventorySectionMetric.tone` | value | `themelia-react-ui/blocks/commerce` | Nothing: delete it | It was never rendered. The title badge states the stock status. |
|
|
408
|
+
| `OrderStatusStrings.statusLabel` | string | `themelia-react-ui/blocks/commerce` (`OrderStatusCard` `strings`) | Nothing: delete it | Not rendered; the title badge states the status (`strings.status`). |
|
|
409
|
+
| `OrderStatusStrings.latestEvent` | string | `themelia-react-ui/blocks/commerce` (`OrderStatusCard` `strings`) | Nothing: delete it | Not rendered; the timeline lists the events. |
|
|
410
|
+
| `OrderStatusStrings.currentStep` | string | `themelia-react-ui/blocks/commerce` (`OrderStatusCard` `strings`) | Nothing: delete it | Not rendered; the current step is marked with `aria-current`. Completed and upcoming steps use `completedStep` and `upcomingStep`. |
|
|
411
|
+
| `LoyaltyPointsStrings.tier` | string | `themelia-react-ui/blocks/commerce` (`LoyaltyPoints` `strings`) | The `tier` prop | `<LoyaltyPoints tier="Gold" />`. No tier, no chip. |
|
|
412
|
+
| `AddressCard` `name` | prop | `themelia-react-ui/blocks/commerce` | `address={{ name, … }}` | `address` is the exported `OrderAddress`, the shape `OrderCustomer` takes. `name` is optional there. |
|
|
413
|
+
| `AddressCard` `line1` | prop | `themelia-react-ui/blocks/commerce` | `address={{ line1, … }}` | |
|
|
414
|
+
| `AddressCard` `line2` | prop | `themelia-react-ui/blocks/commerce` | `address={{ line2, … }}` | |
|
|
415
|
+
| `AddressCard` `city` | prop | `themelia-react-ui/blocks/commerce` | `address={{ city, … }}` | |
|
|
416
|
+
| `AddressCard` `region` | prop | `themelia-react-ui/blocks/commerce` | `address={{ region, … }}` | |
|
|
417
|
+
| `AddressCard` `postalCode` | prop | `themelia-react-ui/blocks/commerce` | `address={{ postalCode, … }}` | |
|
|
418
|
+
| `AddressCard` `country` | prop | `themelia-react-ui/blocks/commerce` | `address={{ country, … }}` | |
|
|
419
|
+
| `AddressCard` `phone` | prop | `themelia-react-ui/blocks/commerce` | `address={{ phone, … }}` | Still one click-to-call link under the lines. |
|
|
420
|
+
|
|
421
|
+
##### `blocks/timelines`
|
|
422
|
+
|
|
423
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
424
|
+
| --- | --- | --- | --- | --- |
|
|
425
|
+
| `ChangelogTimelineStrings.title` | string | `themelia-react-ui/blocks/timelines` (`ChangelogTimeline` `strings`) | Nothing: delete it | Not rendered; the composing surface supplies the title. |
|
|
426
|
+
| `MilestonesTimelineStrings.title` | string | `themelia-react-ui/blocks/timelines` (`MilestonesTimeline` `strings`) | Nothing: delete it | Not rendered; the composing surface supplies the title. |
|
|
427
|
+
|
|
428
|
+
##### `blocks/ai`
|
|
429
|
+
|
|
430
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
431
|
+
| --- | --- | --- | --- | --- |
|
|
432
|
+
| `AiArtifactStrings.expandAria` | string | `themelia-react-ui/blocks/ai` (`AiArtifact` `strings`) | Nothing: delete it | Not rendered; the artifact header has no expand control. |
|
|
433
|
+
| `AiSourcesStrings.title` | string | `themelia-react-ui/blocks/ai` (`AiSources` `strings`) | `formatTitle: (count) => string` | The `'{{count}} sources'` template becomes a function, for example `` formatTitle: (count) => `${count} fuentes` ``. The default writes "1 source" and "N sources". |
|
|
434
|
+
|
|
435
|
+
#### Data features
|
|
436
|
+
|
|
437
|
+
##### `features/table`
|
|
438
|
+
|
|
439
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
440
|
+
| --- | --- | --- | --- | --- |
|
|
441
|
+
| `DataTable` `enablePagination` | prop | `themelia-react-ui/features/table` | Delete the prop | It had no effect. The pagination footer renders when `pagination` reports more than one page. |
|
|
442
|
+
| `DataTable` `manualPagination` | prop | `themelia-react-ui/features/table` | Delete the prop; pass `pagination` and `onPageChange` | It had no effect. The table never slices `data`; paging is always the app's. |
|
|
443
|
+
| `DataTable` `debugMode` | prop | `themelia-react-ui/features/table` | Delete the prop | It had no effect. |
|
|
444
|
+
| `DataTable` `initialState.pagination` | prop | `themelia-react-ui/features/table` | Delete the key; pass `pagination` | It had no effect. `initialState.sorting`, `rowSelection`, `columnVisibility` and `columnFilters` are unchanged. |
|
|
445
|
+
| `DataTableHeader` `headerClassName` | prop | `themelia-react-ui/features/table` | `className` | Only on the standalone `DataTableHeader` part. `DataTable`'s own `headerClassName` slot prop is unchanged. |
|
|
446
|
+
| `DataTable` `defaultSorting` | prop | `themelia-react-ui/features/table` | `initialState={{ sorting: [...] }}` | Same value, read once on mount. A controlled `sorting` prop still wins. |
|
|
447
|
+
| `DataTable` `defaultColumnVisibility` | prop | `themelia-react-ui/features/table` | `initialState={{ columnVisibility: {...} }}` | Same value. With `storageKey`, `columnVisibilityPrecedence` now compares the stored value against `initialState.columnVisibility`. |
|
|
448
|
+
| `DataTable` `enableFiltering` | prop | `themelia-react-ui/features/table` | `filterColumn` | Naming the column shows the search input and filters the loaded rows. Delete `enableFiltering`. Without `filterColumn` the table filters nothing itself, so `initialState.columnFilters` only takes effect once `filterColumn` is set. |
|
|
449
|
+
| `DataTable` `filterPlaceholder` | prop | `themelia-react-ui/features/table` | `strings={{ filter: { searchPlaceholder: '…' } }}` | The same string also names the input for assistive technology. |
|
|
450
|
+
| `DataTableFilterBar` `filterPlaceholder` | prop | `themelia-react-ui/features/table` | `strings.filter.searchPlaceholder` | `DataTableFilterBar` takes a complete `DataTableStrings` object: spread `defaultDataTableStrings` and override `filter.searchPlaceholder`. |
|
|
451
|
+
| `DataTable` `emptyStateMessage` | prop | `themelia-react-ui/features/table` | `strings={{ emptyState: { message: '…' } }}` | `emptyStateAction` is unchanged. In `DataView`, pass it inside `table={{ strings: { emptyState: { message } } }}`. |
|
|
452
|
+
| `DataTableBody` `emptyStateMessage` | prop | `themelia-react-ui/features/table` | `strings.emptyState.message` | Only for apps that compose `DataTableBody` themselves. |
|
|
453
|
+
| `DataTable` `rowActionsMenuLabel` as a string | value | `themelia-react-ui/features/table` | `strings={{ actions: { menuLabel: '…' } }}` | The function form stays: `rowActionsMenuLabel={(row) => \`Actions for ${row.name}\`}` names each row's menu from its record, which a single string cannot. |
|
|
454
|
+
| `DataTable` `enableSubRowSelection` | prop | `themelia-react-ui/features/table` | Delete the prop | `DataTable` has no sub-row or expansion props, so nothing acted on it. |
|
|
455
|
+
|
|
456
|
+
##### `features/filters`
|
|
457
|
+
|
|
458
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
459
|
+
| --- | --- | --- | --- | --- |
|
|
460
|
+
| `FilterStrings.calendar.dateSelected` | string | `themelia-react-ui/features/filters` | Delete the key | No reader. A complete `FilterStrings` object that still sets it is a type error. |
|
|
461
|
+
| `FilterStrings.calendar.selectedEndDate` | string | `themelia-react-ui/features/filters` | Delete the key | No reader. |
|
|
462
|
+
| `FilterStrings.calendar.customRange` | string | `themelia-react-ui/features/filters` | Delete the key | No reader. |
|
|
463
|
+
| `FilterConfig.datePickerConfig.fullWidth` | prop | `themelia-react-ui/features/filters` | Delete the key | It had no effect; the date editor always fills its region. |
|
|
464
|
+
| `FilterOperatorSelect` `segmentResetClass` | prop | `themelia-react-ui/features/filters` | `segmentResetClassName` | Same value, new name. |
|
|
465
|
+
| RANGE filter: a single query value read as an exact match | value | `themelia-react-ui/features/filters` (`parseFiltersFromQuery`) | Send both bounds (`?price=150&price=150`), or add the operator (`?price=150&price__op=equals`) | `?price=150` on a RANGE filter with no configured operator used to parse as `{ operator: 'equals', value: ['150', '150'] }`. It now parses as the lower bound of the filter's own operator: `{ operator: 'between', value: ['150', ''] }`. Saved URLs with one bare value change meaning. |
|
|
466
|
+
|
|
467
|
+
##### `features/combobox`
|
|
468
|
+
|
|
469
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
470
|
+
| --- | --- | --- | --- | --- |
|
|
471
|
+
| `Combobox` `selectedValue` | prop | `themelia-react-ui/features/combobox` | `value` | Same type (`T \| null`). `defaultValue` seeds an uncontrolled field. |
|
|
472
|
+
| `Combobox` `onSelectedValueChange` | prop | `themelia-react-ui/features/combobox` | `onValueChange` | Same signature. |
|
|
473
|
+
| `MultiCombobox` `selectedValues` | prop | `themelia-react-ui/features/combobox` | `values` | Same type (`T[]`). `defaultValues` seeds an uncontrolled field. |
|
|
474
|
+
| `MultiCombobox` `onSelectedValuesChange` | prop | `themelia-react-ui/features/combobox` | `onValuesChange` | Same signature. With `applyButton` it still fires on Apply only. |
|
|
475
|
+
| `AsyncResourceCombobox` `hasMore` | prop | `themelia-react-ui/features/combobox` | Raise `limit`; or use `Combobox` with your own `items`, `hasMore` and `onLoadMore` | The component owns its list and replaces it on each request, so a page could never be appended. |
|
|
476
|
+
| `AsyncResourceCombobox` `onLoadMore` | prop | `themelia-react-ui/features/combobox` | As for `hasMore`: raise `limit`; or use `Combobox` with your own `items`, `hasMore` and `onLoadMore` | |
|
|
477
|
+
| `AsyncResourceCombobox` `loadingMore` | prop | `themelia-react-ui/features/combobox` | As for `hasMore`: raise `limit`; or use `Combobox` with your own `items`, `hasMore` and `onLoadMore` | `Combobox` and `MultiCombobox` keep all three props. |
|
|
478
|
+
| `Combobox` / `AsyncResourceCombobox` `closeOnSelect` | prop | `themelia-react-ui/features/combobox` | Delete the prop | The single combobox never read it; it always closes on selection. `MultiCombobox` keeps `closeOnSelect`. |
|
|
479
|
+
| `Combobox` / `AsyncResourceCombobox` `applyButton`, `onApply`, `onCancel` | prop | `themelia-react-ui/features/combobox` | Delete the props | Only `MultiCombobox` renders the Apply and Cancel footer; the props are now on `MultiComboboxProps` only. |
|
|
480
|
+
| `MultiCombobox` `clearable` | prop | `themelia-react-ui/features/combobox` | Delete the prop | `MultiCombobox` ignored it; each chip has its own remove control. `Combobox` and `AsyncResourceCombobox` keep `clearable`. |
|
|
481
|
+
| `Combobox` / `MultiCombobox` `showListContent` | prop | `themelia-react-ui/features/combobox` | Nothing for the components; `useComboboxCore({ showListContent })` for a headless build | It was a seam for this package's async wrappers. `AsyncResourceCombobox` and `SuggestionsCombobox` still use it internally. |
|
|
482
|
+
| `closeOnSelect`, `applyButton`, `onApply`, `onCancel`, `clearable`, `showListContent` on `ComboboxSharedProps` | type | `themelia-react-ui/features/combobox` | `MultiComboboxProps` for the first four, `ComboboxProps` for `clearable`, `ComboboxListControl` for `showListContent` | `ComboboxSharedProps` now holds only what both components and the headless hook share. `UseComboboxCoreOptions` extends `ComboboxSharedProps` and the new `ComboboxListControl`. |
|
|
483
|
+
|
|
484
|
+
##### `features/questionnaire`
|
|
485
|
+
|
|
486
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
487
|
+
| --- | --- | --- | --- | --- |
|
|
488
|
+
| `Questionnaire` `onQuestionChange` | prop | `themelia-react-ui/features/questionnaire` | `onQuestionIdChange` | Same signature (`(id: string) => void`). |
|
|
489
|
+
|
|
490
|
+
##### `features/products`
|
|
491
|
+
|
|
492
|
+
The eight overview regions and the two row menus are no longer exported;
|
|
493
|
+
`ProductOverview` and the variant and option surfaces render them. Their props
|
|
494
|
+
types (`ProductDetailsCardProps`, `ProductVariantActionMenuStrings` and so on)
|
|
495
|
+
are still exported, because the public props are typed with them.
|
|
496
|
+
|
|
497
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
498
|
+
| --- | --- | --- | --- | --- |
|
|
499
|
+
| `ProductContractOverview` | export | `themelia-react-ui/features/products` | `<ProductOverview contract={…} />` | Pass the same props object. Add custom content through `ProductOverview` `slots`. |
|
|
500
|
+
| `ProductDetailsCard` | export | `themelia-react-ui/features/products` | `<ProductOverview details={…} />` | |
|
|
501
|
+
| `ProductOperationsCard` | export | `themelia-react-ui/features/products` | `<ProductOverview operations={…} />` | |
|
|
502
|
+
| `ProductOptionsSummary` | export | `themelia-react-ui/features/products` | `<ProductOverview options={…} />` | |
|
|
503
|
+
| `ProductPoliciesCard` | export | `themelia-react-ui/features/products` | `<ProductOverview policies={…} />` | |
|
|
504
|
+
| `ProductQuotePreviewCard` | export | `themelia-react-ui/features/products` | `<ProductOverview quote={…} />` | |
|
|
505
|
+
| `ProductReadinessCard` | export | `themelia-react-ui/features/products` | `<ProductOverview readiness={…} />` | |
|
|
506
|
+
| `ProductStructureCard` | export | `themelia-react-ui/features/products` | `<ProductOverview structure={…} />` | |
|
|
507
|
+
| `ProductOptionActionMenu` | export | `themelia-react-ui/features/products` | `renderOptionActions` on `ProductOptionsMatrix`, or on `ProductOverview` `options`, composing `ActionMenu` from `themelia-react-ui/base/action-menu` | The default menu still renders when `renderOptionActions` is not set. |
|
|
508
|
+
| `ProductVariantActionMenu` | export | `themelia-react-ui/features/products` | `renderVariantActions` on `ProductVariantsTable`, `ProductVariantsBulkTable`, `ProductVariantsManager` or `ProductVariantDetails`, composing `ActionMenu` from `themelia-react-ui/base/action-menu` | The default menu still renders when `renderVariantActions` is not set. |
|
|
509
|
+
| `ProductVariantOptionField.value` | prop | `themelia-react-ui/features/products` | `defaultValue.options` or `value.options` on `ProductVariantEditor` | `optionFields={[{ id: 'size', label: 'Size', value: 'M' }]}` becomes `optionFields={[{ id: 'size', label: 'Size' }]}` with `defaultValue={{ options: { size: 'M' } }}`. The field value is no longer added to the submitted value. |
|
|
510
|
+
|
|
511
|
+
##### `features/resource`
|
|
512
|
+
|
|
513
|
+
Route shells are `Page` from `themelia-react-ui/layout/page`. The family keeps
|
|
514
|
+
`ResourceActionBar`, `ResourceDetailsSection` and `ResourceEmptyState`.
|
|
515
|
+
|
|
516
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
517
|
+
| --- | --- | --- | --- | --- |
|
|
518
|
+
| `ResourceHeader` | export | `themelia-react-ui/features/resource` | `Page` `header` (`PageHeaderProps`), or `PageHeader` for an embedded header, from `themelia-react-ui/layout/page` | `title`, `description`, `primaryAction`, `secondaryActions`, `maxVisibleSecondaryActions`, `moreActionsLabel` keep their names. `badges` moves to `header.slots.titleSuffix`; `metadata` to `header.slots.afterDescription`; `eyebrow` to `header.slots.beforeTitle`. |
|
|
519
|
+
| `ResourceIndexShell` | export | `themelia-react-ui/features/resource` | `Page` from `themelia-react-ui/layout/page` | `title`, `description` and commands move into `header`. `toolbar`, `loading`, `error`, `onRetry`, `emptySlot` and `slots.loading` / `empty` / `error` have the same names on `Page`. |
|
|
520
|
+
| `ResourceShowShell` | export | `themelia-react-ui/features/resource` | `Page` from `themelia-react-ui/layout/page` with `aside` | `slots.aside` becomes the `aside` prop. |
|
|
521
|
+
| `TabbedResourceShell` | export | `themelia-react-ui/features/resource` | `Page` from `themelia-react-ui/layout/page` with `header.tabs` | `tabs`, `activeTab`, `defaultActiveTab` and `onTabChange` move into `header.tabs`; check `PageHeaderTabs` for the exact field names. |
|
|
522
|
+
| `ResourceHeaderProps` | type | `themelia-react-ui/features/resource` | `PageHeaderProps` from `themelia-react-ui/layout/page` | |
|
|
523
|
+
| `ResourceIndexShellProps` | type | `themelia-react-ui/features/resource` | `PageProps` from `themelia-react-ui/layout/page` | |
|
|
524
|
+
| `ResourceShowShellProps` | type | `themelia-react-ui/features/resource` | `PageProps` from `themelia-react-ui/layout/page` | |
|
|
525
|
+
| `TabbedResourceShellProps` | type | `themelia-react-ui/features/resource` | `PageProps` from `themelia-react-ui/layout/page` with `PageHeaderTabs` | |
|
|
526
|
+
| `ResourceHeaderCommandProps` | type | `themelia-react-ui/features/resource` | The command fields of `PageHeaderProps` | Existed only for the removed header and shells. |
|
|
527
|
+
| `ResourceShellSlots` | type | `themelia-react-ui/features/resource` | `PageSlots` from `themelia-react-ui/layout/page` | Existed only for the removed shells. |
|
|
528
|
+
| `defaultResourceStrings` | export | `themelia-react-ui/features/resource` | `Page` `strings` | Loading, empty, error, retry and tab copy now belongs to `Page`. |
|
|
529
|
+
| `ResourceStrings` | type | `themelia-react-ui/features/resource` | `PageStrings` from `themelia-react-ui/layout/page` | |
|
|
530
|
+
| `ResourceEmptyState` `ariaLabel` | prop | `themelia-react-ui/features/resource` | `aria-label` | Same value, native attribute name. |
|
|
531
|
+
|
|
532
|
+
##### `features/resource-assignment`
|
|
533
|
+
|
|
534
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
535
|
+
| --- | --- | --- | --- | --- |
|
|
536
|
+
| `SharedResourceCardStrings.changeAction` | string | `themelia-react-ui/features/resource-assignment` | `assignAction` for the empty-state action; `selector.actionLabel` for the action on an assigned resource | An overridden `changeAction` used to name the empty-state action when `assignAction` was not set. That fallback is gone, and nothing else read the key. |
|
|
537
|
+
|
|
538
|
+
##### `features/sync`
|
|
539
|
+
|
|
540
|
+
The `themelia-react-ui/features/sync` entry no longer exists.
|
|
541
|
+
|
|
542
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
543
|
+
| --- | --- | --- | --- | --- |
|
|
544
|
+
| `SyncRangeDialogForm` | export | `themelia-react-ui/features/sync` | `SchemaForm` from `themelia-react-ui/features/schema-form`, with a `radio-cards` field for the window and a `checkbox-cards` field for the options | Map the values in `onSubmit`, for example `{ hours: Number(values.hours), options: values.options }`. Wrap it in `ActionDialog` for a dialog. The schema-form catalogue page has the full schema. |
|
|
545
|
+
| `SyncRangeDialogFormProps` | type | `themelia-react-ui/features/sync` | `SchemaFormProps` from `themelia-react-ui/features/schema-form` | |
|
|
546
|
+
| `SyncRangeDialogFormSubmit` | type | `themelia-react-ui/features/sync` | Your own payload type, built in `onSubmit` | |
|
|
547
|
+
| `SyncRangeDialogFormValues` | type | `themelia-react-ui/features/sync` | `SchemaFormValues` from `themelia-react-ui/features/schema-form` | |
|
|
548
|
+
| `defaultSyncRangeDialogFormStrings` | export | `themelia-react-ui/features/sync` | Labels and descriptions on the `SchemaForm` field definitions | |
|
|
549
|
+
| `SyncRangeDialogFormStrings` | type | `themelia-react-ui/features/sync` | Labels and descriptions on the `SchemaForm` field definitions | |
|
|
550
|
+
|
|
551
|
+
##### `features/schema-form`
|
|
552
|
+
|
|
553
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
554
|
+
| --- | --- | --- | --- | --- |
|
|
555
|
+
| `SchemaForm` `submitLabel` | prop | `themelia-react-ui/features/schema-form` | `strings={{ submitLabel: '…' }}` | Same key name inside `strings`. |
|
|
556
|
+
| `SchemaForm` `resetLabel` | prop | `themelia-react-ui/features/schema-form` | `strings={{ resetLabel: '…' }}` | Same key name inside `strings`. |
|
|
557
|
+
|
|
558
|
+
#### Content features
|
|
559
|
+
|
|
560
|
+
Type-level effect of the string removals: a dictionary typed as the full
|
|
561
|
+
strings interface (not `strings={{ … }}` inline) that still carries a removed
|
|
562
|
+
key fails to compile with an excess-property error. Delete the key.
|
|
563
|
+
|
|
564
|
+
##### `features/overlays`
|
|
565
|
+
|
|
566
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
567
|
+
| --- | --- | --- | --- | --- |
|
|
568
|
+
| `defaultAlertDialogStrings` | export | `themelia-react-ui/features/overlays` | `defaultConfirmDialogStrings` | Same object, renamed to the `default<Component>Strings` convention. |
|
|
569
|
+
| `ConfirmDialogProps.closeOnBackdropClick` | prop | `themelia-react-ui/features/overlays` | Nothing; delete the prop | It never had an effect: a confirmation ignores outside presses. Passing it is now a type error. `ActionDialog` and `ActionDrawer` keep it. |
|
|
570
|
+
| `ConfirmDialogProps.showCloseButton` | prop | `themelia-react-ui/features/overlays` | Nothing; delete the prop | It never had an effect: a confirmation has no corner close control. `ActionDialog` and `ActionDrawer` keep it. |
|
|
571
|
+
|
|
572
|
+
##### `features/mentions`
|
|
573
|
+
|
|
574
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
575
|
+
| --- | --- | --- | --- | --- |
|
|
576
|
+
| `splitHtmlByMentions` | export | `themelia-react-ui/features/mentions` | `MentionContent` to render HTML with mentions; `parseMentionsFromHtml` to read the mentions out of HTML | The splitter cut serialized HTML with a regex and broke paragraphs and lists around a mention. `MentionContent` renders the sanitized tree and keeps each chip inside its paragraph. |
|
|
577
|
+
| `MentionHtmlSegment` | type | `themelia-react-ui/features/mentions` | Nothing | Return type of `splitHtmlByMentions`. |
|
|
578
|
+
|
|
579
|
+
##### `features/comments`
|
|
580
|
+
|
|
581
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
582
|
+
| --- | --- | --- | --- | --- |
|
|
583
|
+
| `CommentData.content_type` (snake case, read as a fallback) | value | `themelia-react-ui/features/comments` | `contentType` | The field was never in the type; it was read at runtime when `contentType` was absent. A comment that only sets `content_type` now renders as plain text. Map it when you build `CommentData`. Also applies to comments passed to `ActivityLog`. |
|
|
584
|
+
| `CommentsProps.avatarComponent` (declared on `CommentsSlots`) | prop | `themelia-react-ui/features/comments` | Nothing; for a custom avatar use `renderItem` | Declared but never read: it had no effect. |
|
|
585
|
+
| `CommentsStrings.moreActionsLabel` | string | `themelia-react-ui/features/comments` | Nothing; delete the key | Never rendered. |
|
|
586
|
+
| `CommentsStrings.showRepliesLabel` | string | `themelia-react-ui/features/comments` | Nothing; delete the key | Never rendered. |
|
|
587
|
+
| `CommentsStrings.hideRepliesLabel` | string | `themelia-react-ui/features/comments` | Nothing; delete the key | Never rendered. |
|
|
588
|
+
| `CommentsProps.maxAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, maxFiles: n }}` | Same cap on the draft. The default stays 5 when `maxFiles` is unset. `attachments.maxFiles` already won when both were set. |
|
|
589
|
+
| `CommentsProps.allowAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, disabled: true }}` to turn uploads off; nothing to turn them on | The attach control only ever appeared with `attachments.onUpload`; `allowAttachments={false}` did what `attachments.disabled` does. Without `attachments` there is no control, so a read-only thread just drops the prop. |
|
|
590
|
+
| `CommentComposerProps.maxAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, maxFiles: n }}` | Same as on `Comments`. |
|
|
591
|
+
| `CommentComposerProps.allowAttachments` | prop | `themelia-react-ui/features/comments` | `attachments={{ onUpload, disabled: true }}` | Same as on `Comments`. |
|
|
592
|
+
| `CommentsProps.bare` | prop | `themelia-react-ui/features/comments` | `title={false}` | Renders the thread with no heading. Two differences from `bare`, both intended: the root `section` (`comments--component`, `className`) stays around the thread, and the delete confirmation works (with `bare` the confirmation dialog was never mounted, so a confirmed delete did nothing unless `confirmDelete={false}`). |
|
|
593
|
+
|
|
594
|
+
##### `features/activities`
|
|
595
|
+
|
|
596
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
597
|
+
| --- | --- | --- | --- | --- |
|
|
598
|
+
| `ActivityLogProps.avatarComponent` | prop | `themelia-react-ui/features/activities` | Nothing; for custom rows use `renderers` | Declared but never read: it had no effect. |
|
|
599
|
+
| `ActivityRowProps.moreLabel` | prop | `themelia-react-ui/features/activities` | Nothing; delete the prop | It was a required prop with no effect since collapsed rows stopped previewing metadata. Code that renders `ActivityRow` directly must stop passing it. |
|
|
600
|
+
| `ActivitiesStrings.moreLabel` | string | `themelia-react-ui/features/activities` | Nothing; delete the key | Fed the `ActivityRowProps.moreLabel` prop. Applies to `ActivityFeed strings` and `ActivityLog activityStrings`. |
|
|
601
|
+
| `ActivityLogProps.bare` | prop | `themelia-react-ui/features/activities` | `title={false}` | Renders the log with no heading, for a log inside a titled Card or section. The root `section` (`activity-log--component`, `data-slot="activity-log"`) now stays around the feed, and `className` lands on that section instead of on the feed. A missing `title` still shows `activityStrings.title` ("Activity"), as before. With `bare`, a `title` passed alongside was ignored; remove it or keep it and drop `title={false}`. |
|
|
602
|
+
| `ActivityRowProps.youLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ you: '…' }}` | One optional `strings` prop (`StringsProp<ActivitiesStrings>`) replaces the four label props; unset keys take the `defaultActivitiesStrings` values. |
|
|
603
|
+
| `ActivityRowProps.showChangesLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ showChanges: '…' }}` | As above. |
|
|
604
|
+
| `ActivityRowProps.hideChangesLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ hideChanges: '…' }}` | As above. |
|
|
605
|
+
| `ActivityRowProps.actionsLabel` | prop | `themelia-react-ui/features/activities` | `strings={{ actionsLabel: '…' }}` | As above. All four were required; code that renders `ActivityRow` directly can now omit them. `ActivityFeed` and `ActivityLog` callers are unaffected: they already pass `strings` / `activityStrings`. |
|
|
606
|
+
|
|
607
|
+
##### `features/email-composer`
|
|
608
|
+
|
|
609
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
610
|
+
| --- | --- | --- | --- | --- |
|
|
611
|
+
| `EmailComposerProps.onChange` | prop | `themelia-react-ui/features/email-composer` | `onValueChange` | Same payload (a detached draft proposal). `onChange` was only called when `onValueChange` was missing. |
|
|
612
|
+
|
|
613
|
+
##### `features/appointment-calendar`
|
|
614
|
+
|
|
615
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
616
|
+
| --- | --- | --- | --- | --- |
|
|
617
|
+
| `AppointmentCalendarProps.onStaffChange` | prop | `themelia-react-ui/features/appointment-calendar` | `onStaffIdChange` | Same payload (the staff id, or `'all'`). |
|
|
618
|
+
|
|
619
|
+
##### `features/ai-chat`
|
|
620
|
+
|
|
621
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
622
|
+
| --- | --- | --- | --- | --- |
|
|
623
|
+
| `AiChatPromptInputStrings.modelPickerAria` | string | `themelia-react-ui/features/ai-chat` | Nothing; delete the key | Never rendered: the prompt has no model picker. Applies to `AiChat strings.prompt` too. |
|
|
624
|
+
|
|
625
|
+
##### `features/media-library`
|
|
626
|
+
|
|
627
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
628
|
+
| --- | --- | --- | --- | --- |
|
|
629
|
+
| `MediaLibraryStrings.privateLabel` | string | `themelia-react-ui/features/media-library` | Nothing; delete the key | Never rendered. Visibility copy is `strings.detail.*` and `strings.upload.*`. |
|
|
630
|
+
| `MediaLibraryStrings.publicLabel` | string | `themelia-react-ui/features/media-library` | Nothing; delete the key | Never rendered. |
|
|
631
|
+
| `MediaLibraryState.error` (returned by `useMediaLibrary`) | value | `themelia-react-ui/features/media-library` | `loadError` for a failed fetch, `mutationError` for a failed update or delete (`{ itemId, operation, cause }`), `uploadError` for a failed upload request, `loadMoreError` for a failed next page | The single field mixed every failure. The `MediaLibrary` component already used the specific fields. |
|
|
632
|
+
|
|
633
|
+
##### `features/theme-tweaker`
|
|
634
|
+
|
|
635
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
636
|
+
| --- | --- | --- | --- | --- |
|
|
637
|
+
| `ThemeTweakerStrings.groupNavigationTitle` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
|
|
638
|
+
| `ThemeTweakerStrings.groupNavigationDescription` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
|
|
639
|
+
| `ThemeTweakerStrings.copyOverrides` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered: the export dialog has one CSS output. |
|
|
640
|
+
| `ThemeTweakerStrings.exportProvider` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
|
|
641
|
+
| `ThemeTweakerStrings.exportOptions` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
|
|
642
|
+
| `ThemeTweakerStrings.overrideOutputLabel` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
|
|
643
|
+
| `ThemeTweakerStrings.overrideOutputDescription` | string | `themelia-react-ui/features/theme-tweaker` | Nothing; delete the key | Never rendered. |
|
|
644
|
+
|
|
645
|
+
##### `features/event-calendar`
|
|
646
|
+
|
|
647
|
+
| Removed | Kind | Import path | Use instead | Notes |
|
|
648
|
+
| --- | --- | --- | --- | --- |
|
|
649
|
+
| `EventCalendarProps.emptyStateMessage` | prop | `themelia-react-ui/features/event-calendar` | `strings={{ emptyState: '…' }}` | New optional key `EventCalendarStrings.emptyState`. Same behaviour: it is opt-in (no default), and when set it replaces the day grid while the visible period has no events after the category and runtime filters. Merge it into an existing `strings` object rather than passing `strings` twice. |
|
|
650
|
+
|
|
651
|
+
### Composition form
|
|
652
|
+
|
|
653
|
+
There is one composition form: `render`. Every part below took `asChild` and
|
|
654
|
+
rendered its single child in place of its own element. Pass that element to
|
|
655
|
+
`render` instead.
|
|
656
|
+
|
|
657
|
+
```tsx
|
|
658
|
+
// 2.x
|
|
659
|
+
<PopoverTrigger asChild>
|
|
660
|
+
<Button>Open</Button>
|
|
661
|
+
</PopoverTrigger>
|
|
662
|
+
|
|
663
|
+
// 3.0
|
|
664
|
+
<PopoverTrigger render={<Button>Open</Button>} />
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
A function form is also accepted where the part is a Base UI primitive:
|
|
668
|
+
`render={(props) => <Button {...props}>Open</Button>}`. The Command parts take
|
|
669
|
+
an element in `render` and keep their content as `children`, for example
|
|
670
|
+
`<CommandList render={<ul />}>{items}</CommandList>`.
|
|
671
|
+
|
|
672
|
+
`asChild` is removed from these parts:
|
|
673
|
+
|
|
674
|
+
- `themelia-react-ui/base/display`: `TooltipTrigger`, `CollapsibleTrigger`
|
|
675
|
+
- `themelia-react-ui/base/popover`: `PopoverTrigger`, `PopoverAnchor`
|
|
676
|
+
- `themelia-react-ui/base/command`: `Command`, `CommandInput`, `CommandList`,
|
|
677
|
+
`CommandGroup`, `CommandItem`, `CommandSeparator`
|
|
678
|
+
|
|
679
|
+
`CollapsibleTrigger` and `PopoverTrigger` now infer `nativeButton` from the
|
|
680
|
+
`render` element: a `button`, or a component without `href`, is native. Pass
|
|
681
|
+
`nativeButton` to override. The per-part replacement element and notes are in
|
|
682
|
+
the [`base/display`](#basedisplay), [`base/popover`](#basepopover) and
|
|
683
|
+
[`base/command`](#basecommand) tables.
|
|
684
|
+
|
|
685
|
+
### Changed behaviour
|
|
686
|
+
|
|
687
|
+
Some behaviour changed without an API change: value formatting, focus and
|
|
688
|
+
keyboard handling, default copy, ARIA roles and shared geometry. These are
|
|
689
|
+
listed under "Changed behaviour" in the 3.0.0 entry of the
|
|
690
|
+
[changelog](CHANGELOG.md#changed-behaviour). Review that list after the code
|
|
691
|
+
compiles, and check tests that match rendered text, roles or element names.
|
|
692
|
+
|
|
693
|
+
Three changes follow from the removed props:
|
|
694
|
+
|
|
695
|
+
- **Card footers.** `footerText` is gone, so a string or number passed to
|
|
696
|
+
`footerSlot` renders as the footnote (small, secondary, end-aligned); a node
|
|
697
|
+
still fills the footer width. OrderTimeline, StepsCard and
|
|
698
|
+
SharedResourceCard keep their own `footerText`: a string renders as before,
|
|
699
|
+
a node now fills the width.
|
|
700
|
+
- **ActivityLog without a title.** `title={false}` drops the heading and keeps
|
|
701
|
+
the root section, so `className` lands on the section rather than on the
|
|
702
|
+
feed.
|
|
703
|
+
- **DataTable search.** The built-in search input appears when `filterColumn`
|
|
704
|
+
is set. `initialState.columnFilters` without `filterColumn` no longer
|
|
705
|
+
filters invisibly.
|
|
706
|
+
|
|
707
|
+
## From admin-ui-starter-kit 3.x
|
|
708
|
+
|
|
709
|
+
The `themelia-react-ui` 2.x line is the migration destination for
|
|
710
|
+
`admin-ui-starter-kit` 3.x applications. This section describes that move and
|
|
711
|
+
was written for 2.x. When you install 3.0, the names it calls deprecated
|
|
712
|
+
(`SmartCard`, `ContentBlock`, base `Sheet`, the resource shells and the sync
|
|
713
|
+
form) no longer exist: use their replacements directly, then follow
|
|
714
|
+
[Upgrading from 2.x to 3.0](#upgrading-from-2x-to-30).
|
|
715
|
+
|
|
716
|
+
### Imports and installation
|
|
717
|
+
|
|
718
|
+
1. Use the [consumer setup](README.md#consumer-setup) to install the new package
|
|
719
|
+
and its required peers. React and React DOM use 19.x, Lucide uses 1.x, and
|
|
720
|
+
`@base-ui/react` is required. The old `cmdk`, Tailwind, Tailwind Vite plugin,
|
|
721
|
+
`tw-animate-css` and Inter font peers can be removed if the application has
|
|
722
|
+
no independent use for them. Keep the optional peers used by your families.
|
|
723
|
+
2. Replace `admin-ui-starter-kit/<family>` with `themelia-react-ui/<family>`.
|
|
724
|
+
For `composed/admin`, `ai`, `analytics`, `commerce`, `data-display`,
|
|
725
|
+
`onboarding` and `timelines`, use `themelia-react-ui/blocks/<family>`.
|
|
726
|
+
For example, `admin-ui-starter-kit/composed/commerce` becomes
|
|
727
|
+
`themelia-react-ui/blocks/commerce`. Move CommonJS `require()` consumers to
|
|
728
|
+
ESM imports or asynchronous `import()`.
|
|
729
|
+
3. Import `themelia-react-ui/style.css` once. Add
|
|
730
|
+
`themelia-react-ui/features/map/style.css` when using the map family.
|
|
731
|
+
The [theme guide](docs/consumer-skill/references/theming.md) covers the
|
|
732
|
+
optional green brand, structural roots and scoped portals.
|
|
733
|
+
|
|
734
|
+
#### Host CSS
|
|
735
|
+
|
|
736
|
+
The compiled stylesheet leaves global preflight and the page canvas to the app.
|
|
737
|
+
If the previous stylesheet supplied these values, put them in your app's lower
|
|
738
|
+
priority base layer. Keep an app-owned reset for native margins, lists and form
|
|
739
|
+
controls where you used Tailwind preflight.
|
|
740
|
+
|
|
741
|
+
```css
|
|
742
|
+
@layer base {
|
|
743
|
+
* {
|
|
744
|
+
border-color: var(--border);
|
|
745
|
+
outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
|
|
746
|
+
}
|
|
747
|
+
html { font-family: var(--font-sans); }
|
|
748
|
+
body { background-color: var(--background); color: var(--foreground); }
|
|
749
|
+
code, kbd, samp, pre { font-family: var(--font-mono); }
|
|
750
|
+
}
|
|
751
|
+
```
|
|
752
|
+
|
|
753
|
+
For app-generated Tailwind utilities, follow the [Tailwind setup](docs/consumer-skill/references/installation.md).
|
|
754
|
+
The editable `theme.css` entry is processed by the application's Tailwind v4
|
|
755
|
+
build. The compiled `style.css` already includes package utilities.
|
|
756
|
+
|
|
757
|
+
#### Tools
|
|
758
|
+
|
|
759
|
+
| Former bin | Workflow in this package |
|
|
760
|
+
| --- | --- |
|
|
761
|
+
| `admin-ui-starter-kit-audit` | Run `node node_modules/themelia-react-ui/docs/consumer-skill/scripts/check-composition.mjs src`. Pass explicit file or directory paths. Its output is JSON. Replace the old `--fix` and `--strict` automation with your own review or CI step. |
|
|
762
|
+
| `admin-ui-starter-kit-install-skill` | Use the shipped `setup-skills.mjs --copy` or `--check` commands in the [installed setup guide](docs/consumer-skill/references/installation.md). |
|
|
763
|
+
| `admin-ui-starter-kit-publish-theme` | Import the published theme CSS or export a custom theme from Theme Studio and apply it in the app. |
|
|
764
|
+
| `admin-ui-starter-kit-showcase` | Use the component catalogue or render the shipped examples in your application. |
|
|
765
|
+
|
|
766
|
+
### Defaults to review
|
|
767
|
+
|
|
768
|
+
| Owner | Earlier default | Current default or migration |
|
|
769
|
+
| --- | --- | --- |
|
|
770
|
+
| Untoned Button | Primary solid | Secondary outline. Set provider button defaults or make the primary command explicit. |
|
|
771
|
+
| Badge | Primary | Neutral. Set an explicit status tone where relevant. |
|
|
772
|
+
| Card and SmartCard | Framed, footer divider off | Card surface, header divider off, footer divider on. Explicit props win over provider booleans. |
|
|
773
|
+
| PageHeader | `h3` | `h1` for route titles. Use `headingTag="h3"` when the page already owns its heading, or supply a custom title element. |
|
|
774
|
+
| PageHeading | Separator on | Pass `withSeparator` to restore it. |
|
|
775
|
+
| ConfirmDialog | Start-aligned with an icon | Centered. Set `overlay.defaultConfirmAlign: 'start'` and pass `showIcon` on dialogs that need the icon. |
|
|
776
|
+
| DateCell and DateMetaCell | Icon on | Pass `showIcon` for the date glyph. |
|
|
777
|
+
| LoyaltyPoints | Warning tier | Neutral. Set `tierTone="warning"` where it conveys meaning. |
|
|
778
|
+
| Command | Default inset | Compact. Pass `inset="default"` for the wider inset. |
|
|
779
|
+
| Page | Large measure, no inset | Owns page gutters and block inset. Use explicit `maxWidth="lg"`, `gutter="none"` and `padding="none"` inside a shell that supplies them. |
|
|
780
|
+
| DataTable | Inline selection bar | Floating selection bar. Use `selectionToolbarPlacement="inline"` for inline placement. |
|
|
781
|
+
| MediaLibrary | Activation selects | Activation opens details. Use `defaultSelecting` to start in selection mode. |
|
|
782
|
+
| Metric money and signed values | Prefix currency code and ASCII hyphen | Default output can place the currency code after the amount and use the Unicode minus. Review text matching in tests. |
|
|
783
|
+
| Date range presets | Title case | Sentence case, such as “This week” and “Last 30 days”. |
|
|
784
|
+
|
|
785
|
+
To keep the earlier button, badge and card choices while moving the
|
|
786
|
+
imports, supply the old defaults explicitly.
|
|
787
|
+
|
|
788
|
+
```tsx
|
|
789
|
+
import { UIProvider } from 'themelia-react-ui/ui-provider';
|
|
790
|
+
|
|
791
|
+
<UIProvider config={{
|
|
792
|
+
button: { defaultTone: 'primary', defaultButtonStyle: 'solid' },
|
|
793
|
+
badge: { defaultTone: 'primary' },
|
|
794
|
+
card: { defaultSurface: 'framed', defaultHeaderDivider: false, defaultFooterDivider: false },
|
|
795
|
+
overlay: { defaultConfirmAlign: 'start' },
|
|
796
|
+
}}>
|
|
797
|
+
<App />
|
|
798
|
+
</UIProvider>
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
### Behavior, selectors and deprecated entry points
|
|
802
|
+
|
|
803
|
+
- Check the query policy of async filters. Options are cached within a mounted
|
|
804
|
+
editor and refetch after a remount. Chip labels stay within their filter
|
|
805
|
+
provider. Reuse stable fetcher and mapper references. If the app needs caching
|
|
806
|
+
across editor mounts, keep it inside an app-owned fetcher keyed by the complete
|
|
807
|
+
query and authorization scope.
|
|
808
|
+
- For selectors targeting legacy ContentBlock element hooks, move styling and
|
|
809
|
+
queries to the owning Card regions, slots and accessible names. The
|
|
810
|
+
ContentBlock adapter keeps its root, header, content and footer hooks.
|
|
811
|
+
DataTable still exposes the selection-toolbar root class, and
|
|
812
|
+
`batch-action-bar--summary` and `batch-action-bar--actions` identify the new
|
|
813
|
+
bar regions. Query the actual status or action for ShipmentTracking and
|
|
814
|
+
product option rows whose decorative dot and drag hooks were removed.
|
|
815
|
+
Tree owns AiFileTree rows through `tree--item` and `tree--group`.
|
|
816
|
+
- For new code, use Card in place of SmartCard and ContentBlock,
|
|
817
|
+
`ActionDrawer` from `features/overlays` in place of base Sheet,
|
|
818
|
+
`Page` from `layout/page` in place of the resource shell, and
|
|
819
|
+
`SchemaForm` from `features/schema-form` for the sync form. Pass standalone
|
|
820
|
+
product-card content to `ProductOverview` through its typed region props.
|
|
821
|
+
- Check Command compositions that used inherited cmdk props. Base UI owns
|
|
822
|
+
Command's keyboard and filtering behavior. Supply an explicit `filter`
|
|
823
|
+
for application-specific ranking and use the current public parts when
|
|
824
|
+
composing empty and group content.
|
|
825
|
+
|
|
826
|
+
## Chart blocks moved
|
|
827
|
+
|
|
828
|
+
`recharts` is an optional peer. The analytics blocks that draw with it now
|
|
829
|
+
have their own exact entry, so `themelia-react-ui/blocks/analytics` no longer
|
|
830
|
+
loads it. Change the import path of each moved symbol; names, props and
|
|
831
|
+
behaviour are unchanged. `Metric`, `MetricBar` and `MetricGrid` move with the
|
|
832
|
+
chart blocks because every `Metric` can draw a sparkline.
|
|
833
|
+
|
|
834
|
+
| Symbol | Before | After |
|
|
835
|
+
| --- | --- | --- |
|
|
836
|
+
| `Metric`, `MetricProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
837
|
+
| `MetricBar`, `MetricBarProps`, `MetricBarVariant` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
838
|
+
| `MetricGrid`, `MetricGridProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
839
|
+
| `MetricMicroGrid`, `MetricMicroGridProps`, `MicroChartKind`, `MicroMetricCell` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
840
|
+
| `MetricGradient`, `MetricGradientProps`, `MetricGradientTheme` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
841
|
+
| `MetricSparkline`, `MetricSparklineProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
842
|
+
| `ChartCard`, `ChartCardProps` | `themelia-react-ui/blocks/analytics` | `themelia-react-ui/blocks/analytics/charts` |
|
|
843
|
+
|
|
844
|
+
```diff
|
|
845
|
+
- import { MetricGrid, ChartCard, type MetricData } from 'themelia-react-ui/blocks/analytics';
|
|
846
|
+
+ import { MetricGrid, ChartCard, type MetricData } from 'themelia-react-ui/blocks/analytics/charts';
|
|
847
|
+
```
|
|
848
|
+
|
|
849
|
+
Nothing else moves. `MetricComparison`, `ActivityHeatmap`,
|
|
850
|
+
`TimeDistributionRuler`, `MetricTrendChip`, `MetricSkeleton`, `UsageCard`,
|
|
851
|
+
`formatMetricValue`, `resolveTrend` and the analytics strings stay in
|
|
852
|
+
`themelia-react-ui/blocks/analytics`. The shared metric types (`MetricData`,
|
|
853
|
+
`MetricChange`, `MetricSize`, `MetricVariant` and the rest) stay there too and
|
|
854
|
+
are also exported from the charts entry, so one import covers a metric and its
|
|
855
|
+
data.
|
|
856
|
+
|
|
857
|
+
The [changelog](CHANGELOG.md) and [consumer composition guide](docs/consumer-skill/references/composition.md)
|
|
858
|
+
describe the current roles and the version-specific changes.
|