themelia-react-ui 2.0.6 → 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 +250 -0
- package/MIGRATION.md +746 -7
- package/README.md +27 -23
- package/dist/{accordion-0tQUZ20r.js → accordion-DNVqwEIC.js} +36 -36
- 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-BCpA4e7i.js → attachment-D2-fpfmv.js} +15 -15
- package/dist/{attachment-BCpA4e7i.js.map → attachment-D2-fpfmv.js.map} +1 -1
- package/dist/{auth-B0girIk_.js → auth-g_oUTDDC.js} +234 -241
- package/dist/auth-g_oUTDDC.js.map +1 -0
- package/dist/{avatar-B9Jnp-T-.js → avatar-Ca3Ihrq4.js} +4 -4
- package/dist/{avatar-B9Jnp-T-.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
- package/dist/{badge-wWauMgAt.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 +91 -88
- 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 +6 -12
- 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-BoqWIIpV.js → batch-action-bar-D6MZQNnC.js} +10 -10
- package/dist/{batch-action-bar-BoqWIIpV.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 +395 -357
- 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 +171 -1365
- 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 +1487 -1358
- 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-Bp9Ke7kd.js → breadcrumbs-CQ9JSlez.js} +52 -45
- package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
- package/dist/{button-ChBovTx0.js → button-rd6FiHfQ.js} +12 -8
- package/dist/button-rd6FiHfQ.js.map +1 -0
- package/dist/{buttons-DeW0bQeK.js → buttons-pZVgPTZn.js} +230 -246
- package/dist/buttons-pZVgPTZn.js.map +1 -0
- package/dist/{cards-CNXnmvV5.js → cards-CgWyqvgZ.js} +25 -22
- package/dist/{cards-CNXnmvV5.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-I7ROnsl8.js → chart-CygRCyIZ.js} +5 -5
- package/dist/{chart-I7ROnsl8.js.map → chart-CygRCyIZ.js.map} +1 -1
- package/dist/{checkbox-MoyHIAPs.js → checkbox-Dy5_XBMZ.js} +4 -4
- package/dist/{checkbox-MoyHIAPs.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
- package/dist/{choice-inputs-DHGtx0QV.js → choice-inputs-oJEsrb5Y.js} +113 -114
- package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
- package/dist/{code-block-BSJyq9e-.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-CSnwtOTH.js → collection-content-D7SoDlYd.js} +3 -3
- package/dist/{collection-content-CSnwtOTH.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/switch.d.ts +1 -1
- package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +1 -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/forms/workflow.d.ts +2 -2
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +9 -17
- package/dist/components/base/forms-numeric/index.d.ts +3 -3
- 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 +7 -6
- 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 +4 -0
- 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 +38 -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/file-upload.validation.d.ts +37 -1
- package/dist/components/base/upload/image-upload.d.ts +2 -0
- 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 +6 -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-sources/ai-sources.d.ts +1 -1
- package/dist/components/blocks/ai/ai-sources/types.d.ts +8 -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 +6 -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 +5 -5
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +2 -2
- package/dist/components/blocks/analytics/types.d.ts +12 -3
- 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 +8 -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 +6 -0
- 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 +28 -11
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
- 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/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 +19 -5
- 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 +2 -2
- package/dist/components/features/combobox/index.d.ts +1 -1
- package/dist/components/features/combobox/types.d.ts +47 -45
- 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 +17 -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/range-facet.d.ts +13 -8
- 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 +72 -5
- 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/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-tabs.d.ts +2 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +29 -4
- 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 +33 -3
- package/dist/components/features/media-library/media-library.types.d.ts +47 -2
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
- 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 +8 -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/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 +25 -7
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +6 -4
- 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 -149
- 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/partials/caret-helpers.d.ts +5 -7
- 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 +2 -3
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +13 -1
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -0
- 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/suggestions/suggestions.strings.d.ts +14 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +12 -4
- 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/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 +31 -9
- 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 +1 -0
- package/dist/components/features/table/table.types.d.ts +74 -48
- 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 +16 -6
- 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 +2 -2
- 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/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 +3 -5
- 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 +15 -7
- package/dist/components/layout/sidebar/sidebar.types.d.ts +10 -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 +8 -1
- package/dist/components/primitives/money.d.ts +1 -1
- package/dist/components/primitives/number.d.ts +2 -1
- package/dist/components/typography/heading.d.ts +9 -3
- package/dist/components/typography/index.d.ts +1 -1
- 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-CSdc32h9.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-3fdHfMR3.js → copyable-Bmr14W0d.js} +6 -6
- package/dist/{copyable-3fdHfMR3.js.map → copyable-Bmr14W0d.js.map} +1 -1
- package/dist/{data-display-Cmj-xZYl.js → data-display-CWe9SOYh.js} +264 -251
- 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-CyQlFYsP.js → date-picker-D1keJQIG.js} +129 -129
- 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-CT_N2a3w.js → display-VlmP1I0i.js} +23 -46
- package/dist/display-VlmP1I0i.js.map +1 -0
- package/dist/{dropdown-menu-C08iIugv.js → dropdown-menu-B8hjvbkS.js} +9 -9
- package/dist/{dropdown-menu-C08iIugv.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 +682 -628
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +258 -226
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +436 -340
- 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 +344 -315
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +504 -355
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +250 -206
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +269 -189
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +385 -371
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1571 -1199
- 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 +1780 -1691
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +165 -152
- 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 -220
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +3 -3
- package/dist/features/schema-form.js +280 -228
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +48 -39
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/table.js +2 -2
- package/dist/features/theme-tweaker.js +723 -633
- 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-D6H7tVJi.js → field-affordance-recipes-DfbMadot.js} +13 -9
- package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
- package/dist/{field-state-recipes-7sza8QbC.js → field-state-recipes-EtCxpEy3.js} +6 -2
- 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-CAPdwdnZ.js → form-field-BdfCwSoQ.js} +5 -5
- package/dist/{form-field-CAPdwdnZ.js.map → form-field-BdfCwSoQ.js.map} +1 -1
- package/dist/{form-sizing-CgcrUbLU.js → form-sizing-DE_dZw32.js} +3 -3
- package/dist/{form-sizing-CgcrUbLU.js.map → form-sizing-DE_dZw32.js.map} +1 -1
- package/dist/{forms-B3W8CH7-.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-ZIIsRKxP.js → header-Cq3G0ZRP.js} +100 -95
- package/dist/header-Cq3G0ZRP.js.map +1 -0
- package/dist/{hooks-BitHSh-Y.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-npxF1SLX.js → icon-badge-B0Kq7wom.js} +3 -3
- package/dist/{icon-badge-npxF1SLX.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-DIREVYHs.js → input-2YrgTUrz.js} +3 -3
- package/dist/{input-DIREVYHs.js.map → input-2YrgTUrz.js.map} +1 -1
- package/dist/{input-7KAc7XQL.js → input-DfJyrjoR.js} +6 -6
- package/dist/{input-7KAc7XQL.js.map → input-DfJyrjoR.js.map} +1 -1
- package/dist/{interaction-recipes-4wZ2tvfb.js → interaction-recipes-DmuS1ase.js} +2 -2
- package/dist/{interaction-recipes-4wZ2tvfb.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-E_GAApzO.js → layout.types-DbtnyAtd.js} +11 -8
- 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-state-recipes.d.ts +6 -0
- package/dist/lib/focus-recipes.d.ts +7 -0
- package/dist/lib/format.d.ts +25 -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 +32 -2
- package/dist/lib/theme-scope.d.ts +17 -1
- package/dist/lib/token-merge.generated.d.ts +13 -19
- 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-BJHnn43M.js → message-BiiVrRrm.js} +10 -7
- package/dist/{message-BJHnn43M.js.map → message-BiiVrRrm.js.map} +1 -1
- package/dist/{metadata-list-XkqZ_UXH.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-Bt-v7rWP.js → navigation-CmqaQR_G.js} +99 -103
- package/dist/navigation-CmqaQR_G.js.map +1 -0
- package/dist/number-NFWKIoiK.js +340 -0
- package/dist/number-NFWKIoiK.js.map +1 -0
- package/dist/{overflow-tab-bar-BQCA2Zn2.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
- package/dist/{overflow-tab-bar-BQCA2Zn2.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
- package/dist/overlays-D-gAIfPF.js +1018 -0
- 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-DIKspJfx.js → page-header-commands-elelNOfd.js} +29 -29
- package/dist/{page-header-commands-DIKspJfx.js.map → page-header-commands-elelNOfd.js.map} +1 -1
- package/dist/{pagination-Br8TdV9A.js → pagination-BuSWw1US.js} +22 -23
- package/dist/pagination-BuSWw1US.js.map +1 -0
- package/dist/{popover-k8TdUcAt.js → popover-BpMxbqEK.js} +73 -69
- package/dist/popover-BpMxbqEK.js.map +1 -0
- package/dist/{popover-menu-yn-o0kyA.js → popover-menu-CO-_iiuz.js} +7 -7
- package/dist/{popover-menu-yn-o0kyA.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
- package/dist/{popover.recipes-DJ0AkUan.js → popover.recipes-BqkdvlZn.js} +3 -4
- package/dist/{popover.recipes-DJ0AkUan.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
- package/dist/{portal-recipes-DyUXqUtD.js → portal-recipes-BPeS4rGB.js} +2 -2
- package/dist/{portal-recipes-DyUXqUtD.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-DZFXXzPs.js → progress-RARK8AjB.js} +5 -5
- package/dist/{progress-DZFXXzPs.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-BnTzZjIo.js → rich-text-Cypm9__d.js} +7 -8
- package/dist/{rich-text-BnTzZjIo.js.map → rich-text-Cypm9__d.js.map} +1 -1
- 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/safe-image-src-C6kQSMBZ.js +17 -0
- package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
- package/dist/{scroll-area-Bj6CRUif.js → scroll-area-B9HKbji0.js} +3 -3
- package/dist/{scroll-area-Bj6CRUif.js.map → scroll-area-B9HKbji0.js.map} +1 -1
- package/dist/{separator-DM6gs2vu.js → separator-DaDe26sf.js} +3 -3
- package/dist/separator-DaDe26sf.js.map +1 -0
- package/dist/{separator-B9ewiCGO.js → separator-KGsNXt2J.js} +2 -2
- package/dist/{separator-B9ewiCGO.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-CmD6a-HK.js → sidebar-C-iQ_TJP.js} +377 -351
- 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-DDgdhmu9.js → skeleton-Cab_KgVo.js} +12 -12
- package/dist/skeleton-Cab_KgVo.js.map +1 -0
- package/dist/{smart-card-B6vLxqa_.js → smart-card-C59z6KFO.js} +217 -210
- package/dist/smart-card-C59z6KFO.js.map +1 -0
- package/dist/{structure-DZJ2wbAU.js → structure-DElaQwwN.js} +2 -2
- package/dist/{structure-DZJ2wbAU.js.map → structure-DElaQwwN.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-C8mNycaY.js → surface-recipes-DV6rrOFq.js} +10 -2
- package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
- package/dist/{table-CXSPHH25.js → table-CSRUgpdK.js} +62 -61
- 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-C4Kr_hCr.js → tabs-WnHfV2pM.js} +27 -27
- package/dist/tabs-WnHfV2pM.js.map +1 -0
- package/dist/{text-inputs-jdkS3ReG.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-CeYVzdFE.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-C7-YMW1S.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-Hdm5gObf.js → upload-DMuMYJFT.js} +276 -268
- package/dist/upload-DMuMYJFT.js.map +1 -0
- package/dist/{usage-card-9s8hLDfn.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-DhuoqFy4.js → utils-BVbAG2J6.js} +98 -76
- 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/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 +20 -16
- package/docs/consumer-skill/references/analytics.md +20 -6
- 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 +10202 -18084
- package/docs/consumer-skill/references/composition.md +21 -17
- package/docs/consumer-skill/references/discovery.md +8 -5
- package/docs/consumer-skill/references/installation.md +10 -4
- package/docs/consumer-skill/references/integration.md +5 -5
- package/docs/consumer-skill/references/product-composition.md +2 -2
- package/docs/consumer-skill/references/public-api.json +580 -633
- package/docs/consumer-skill/references/review.md +6 -4
- package/docs/consumer-skill/references/screen-archetypes.md +2 -2
- package/docs/consumer-skill/references/theming.md +1 -1
- 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 +40 -20
- 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 +31 -4
- 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 +9 -12
- package/templates/README.md +3 -2
- package/templates/admin-shell-template.tsx +49 -9
- package/templates/analytics-operations-template.tsx +20 -24
- package/templates/customers-template.tsx +12 -9
- 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-0tQUZ20r.js.map +0 -1
- package/dist/action-menu-C0gjzLyE.js +0 -284
- package/dist/action-menu-C0gjzLyE.js.map +0 -1
- package/dist/ai-artifact-CGGpQryR.js +0 -1200
- package/dist/ai-artifact-CGGpQryR.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-EHuuRDGy.js +0 -321
- package/dist/app-shell-EHuuRDGy.js.map +0 -1
- package/dist/auth-B0girIk_.js.map +0 -1
- package/dist/badge-wWauMgAt.js.map +0 -1
- package/dist/base/sheet.js +0 -3
- package/dist/breadcrumbs-Bp9Ke7kd.js.map +0 -1
- package/dist/button-ChBovTx0.js.map +0 -1
- package/dist/buttons-DeW0bQeK.js.map +0 -1
- package/dist/cascader-CrAl9zD5.js +0 -439
- package/dist/cascader-CrAl9zD5.js.map +0 -1
- package/dist/choice-inputs-DHGtx0QV.js.map +0 -1
- package/dist/code-block-BSJyq9e-.js.map +0 -1
- package/dist/collapsible-BzJ91LUG.js +0 -81
- package/dist/collapsible-BzJ91LUG.js.map +0 -1
- package/dist/combobox-Bcvu5J8O.js +0 -363
- package/dist/combobox-Bcvu5J8O.js.map +0 -1
- package/dist/combobox-C2JiSQPc.js +0 -915
- package/dist/combobox-C2JiSQPc.js.map +0 -1
- package/dist/command-9e52NPgK.js +0 -425
- package/dist/command-9e52NPgK.js.map +0 -1
- package/dist/comments-BsgErEqd.js +0 -1174
- package/dist/comments-BsgErEqd.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 -10
- 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-CSdc32h9.js.map +0 -1
- package/dist/data-display-Cmj-xZYl.js.map +0 -1
- package/dist/date-Br0FicVv.js +0 -144
- package/dist/date-Br0FicVv.js.map +0 -1
- package/dist/date-picker-CyQlFYsP.js.map +0 -1
- package/dist/date-pickers-tj2MXmXd.js +0 -185
- package/dist/date-pickers-tj2MXmXd.js.map +0 -1
- package/dist/display-CT_N2a3w.js.map +0 -1
- package/dist/features/sync.js +0 -142
- package/dist/features/sync.js.map +0 -1
- package/dist/feedback-Dzo1xtAU.js +0 -246
- package/dist/feedback-Dzo1xtAU.js.map +0 -1
- package/dist/field-affordance-recipes-D6H7tVJi.js.map +0 -1
- package/dist/field-state-recipes-7sza8QbC.js.map +0 -1
- package/dist/filters-Dl80yYtN.js +0 -2415
- package/dist/filters-Dl80yYtN.js.map +0 -1
- package/dist/focus-recipes-B653VaLq.js.map +0 -1
- package/dist/forms-B3W8CH7-.js.map +0 -1
- package/dist/forms-numeric-CwjQJe-O.js +0 -991
- package/dist/forms-numeric-CwjQJe-O.js.map +0 -1
- package/dist/header-ZIIsRKxP.js.map +0 -1
- package/dist/hooks-BitHSh-Y.js.map +0 -1
- package/dist/http-D_6rOnzU.js.map +0 -1
- package/dist/item-FfWnaYST.js +0 -278
- package/dist/item-FfWnaYST.js.map +0 -1
- package/dist/layout.types-E_GAApzO.js.map +0 -1
- package/dist/media-gallery-C81DAnKI.js +0 -203
- package/dist/media-gallery-C81DAnKI.js.map +0 -1
- package/dist/mentions-qOnedSt4.js +0 -639
- package/dist/mentions-qOnedSt4.js.map +0 -1
- package/dist/metadata-list-XkqZ_UXH.js.map +0 -1
- package/dist/motion-recipes-DitYv6P2.js.map +0 -1
- package/dist/navigation-BgtPJAhi.js +0 -288
- package/dist/navigation-BgtPJAhi.js.map +0 -1
- package/dist/navigation-Bt-v7rWP.js.map +0 -1
- package/dist/number-CYqBcrSj.js +0 -346
- package/dist/number-CYqBcrSj.js.map +0 -1
- package/dist/overlays-CC8zI3Du.js +0 -1017
- package/dist/overlays-CC8zI3Du.js.map +0 -1
- package/dist/page-BoQ1VaFJ.js +0 -331
- package/dist/page-BoQ1VaFJ.js.map +0 -1
- package/dist/pagination-Br8TdV9A.js.map +0 -1
- package/dist/popover-k8TdUcAt.js.map +0 -1
- package/dist/primitives-BkkQjYl7.js +0 -385
- package/dist/primitives-BkkQjYl7.js.map +0 -1
- package/dist/receipt-C7LhOg7Q.js +0 -116
- package/dist/receipt-C7LhOg7Q.js.map +0 -1
- package/dist/rich-text-editor-CAurDwT5.js +0 -1273
- package/dist/rich-text-editor-CAurDwT5.js.map +0 -1
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js +0 -99
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +0 -1
- package/dist/rich-text-tree-BqyQ_7-R.js +0 -66
- package/dist/rich-text-tree-BqyQ_7-R.js.map +0 -1
- package/dist/sanitize-html-BWkH4dLM.js +0 -105
- package/dist/sanitize-html-BWkH4dLM.js.map +0 -1
- package/dist/separator-DM6gs2vu.js.map +0 -1
- package/dist/settings-DZPHgpx4.js +0 -155
- package/dist/settings-DZPHgpx4.js.map +0 -1
- package/dist/sheet-C4DHsgLk.js +0 -250
- package/dist/sheet-C4DHsgLk.js.map +0 -1
- package/dist/sidebar-C8BnDwTH.js +0 -709
- package/dist/sidebar-C8BnDwTH.js.map +0 -1
- package/dist/sidebar-CmD6a-HK.js.map +0 -1
- package/dist/skeleton-DDgdhmu9.js.map +0 -1
- package/dist/slot-CLF9kLrS.js +0 -16
- package/dist/slot-CLF9kLrS.js.map +0 -1
- package/dist/smart-card-B6vLxqa_.js.map +0 -1
- package/dist/surface-recipes-C8mNycaY.js.map +0 -1
- package/dist/table-CBonSdTp.js +0 -1584
- package/dist/table-CBonSdTp.js.map +0 -1
- package/dist/table-CXSPHH25.js.map +0 -1
- package/dist/tabs-C4Kr_hCr.js.map +0 -1
- package/dist/text-inputs-jdkS3ReG.js.map +0 -1
- package/dist/timelines-CoPwdJP0.js +0 -458
- package/dist/timelines-CoPwdJP0.js.map +0 -1
- package/dist/tooltip-31NwIpTo.js +0 -113
- package/dist/tooltip-31NwIpTo.js.map +0 -1
- package/dist/tree-CeYVzdFE.js.map +0 -1
- package/dist/typography-C7-YMW1S.js.map +0 -1
- package/dist/ui-provider-C-74NVLc.js.map +0 -1
- package/dist/upload-Hdm5gObf.js.map +0 -1
- package/dist/upload-queue-D0sYPuqo.js +0 -409
- package/dist/upload-queue-D0sYPuqo.js.map +0 -1
- package/dist/usage-card-9s8hLDfn.js.map +0 -1
- package/dist/utils-DhuoqFy4.js.map +0 -1
- package/dist/value-inputs-D3aPgq9H.js +0 -980
- package/dist/value-inputs-D3aPgq9H.js.map +0 -1
- package/dist/value-typography-uSzzG9Gf.js +0 -122
- package/dist/value-typography-uSzzG9Gf.js.map +0 -1
- package/dist/workspace-CC8Vchiu.js +0 -411
- package/dist/workspace-CC8Vchiu.js.map +0 -1
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useStrings as e } from "./lib/strings.js";
|
|
3
|
+
import { t } from "./utils-BVbAG2J6.js";
|
|
4
|
+
import { c as n, o as r, s as i } from "./typography-C0dELqYV.js";
|
|
5
|
+
import { n as a, t as o } from "./text.styles-B64My8RZ.js";
|
|
6
|
+
import { t as s } from "./focus-recipes-DSkiUvUp.js";
|
|
7
|
+
import { n as c } from "./buttons-pZVgPTZn.js";
|
|
8
|
+
import { t as l } from "./structure-DElaQwwN.js";
|
|
9
|
+
import { i as u } from "./tone-recipes-BPsRAvhu.js";
|
|
10
|
+
import { a as d, c as f, o as p } from "./surface-recipes-DV6rrOFq.js";
|
|
11
|
+
import { t as m } from "./progress-RARK8AjB.js";
|
|
12
|
+
import { n as h, t as g } from "./composition.recipes-COdiFhxB.js";
|
|
13
|
+
import { t as _ } from "./interaction-recipes-DmuS1ase.js";
|
|
14
|
+
import { _ as v, g as y } from "./primitives-BlC1lXBr.js";
|
|
15
|
+
import { t as b } from "./badge-oGiXblW7.js";
|
|
16
|
+
import { c as x, i as S, n as C, o as w, r as T, t as E, u as D } from "./item-GJ9mvCcg.js";
|
|
17
|
+
import { n as O, t as k } from "./page-header-commands-elelNOfd.js";
|
|
18
|
+
import { m as A } from "./hooks-DHfeSMAO.js";
|
|
19
|
+
import { n as j } from "./main-landmark-context-BAsyqp2I.js";
|
|
20
|
+
import * as M from "react";
|
|
21
|
+
import { Fragment as N, jsx as P, jsxs as F } from "react/jsx-runtime";
|
|
22
|
+
import { Check as I, Circle as L, CircleAlert as R } from "lucide-react";
|
|
23
|
+
//#region src/components/layout/workspace/workspace.strings.ts
|
|
24
|
+
var z = {
|
|
25
|
+
metadataLabel: "Record metadata",
|
|
26
|
+
actionsLabel: "Record actions",
|
|
27
|
+
moreActionsLabel: "More actions"
|
|
28
|
+
}, B = {
|
|
29
|
+
ariaLabel: "Workspace navigation",
|
|
30
|
+
completionLabel: (e) => `${e}% complete`
|
|
31
|
+
}, V = {
|
|
32
|
+
ariaLabel: "Workspace locales",
|
|
33
|
+
activeLabel: "Active",
|
|
34
|
+
completionLabel: (e) => `${e}% complete`
|
|
35
|
+
}, H = {
|
|
36
|
+
default: "[--workspace-content-max-width:58rem]",
|
|
37
|
+
wide: "[--workspace-content-max-width:86rem]",
|
|
38
|
+
full: "[--workspace-content-max-width:none]"
|
|
39
|
+
}, U = {
|
|
40
|
+
complete: I,
|
|
41
|
+
current: L,
|
|
42
|
+
attention: R,
|
|
43
|
+
disabled: L,
|
|
44
|
+
idle: L
|
|
45
|
+
}, W = {
|
|
46
|
+
complete: "text-success",
|
|
47
|
+
current: "text-primary-accent",
|
|
48
|
+
attention: "text-warning-accent",
|
|
49
|
+
disabled: "text-muted-foreground opacity-50",
|
|
50
|
+
idle: "text-muted-foreground"
|
|
51
|
+
};
|
|
52
|
+
function G(e) {
|
|
53
|
+
return Number.isFinite(e) ? Math.min(100, Math.max(0, Math.round(e))) : 0;
|
|
54
|
+
}
|
|
55
|
+
function K({ icon: e, className: t }) {
|
|
56
|
+
return e ? /* @__PURE__ */ P(e, {
|
|
57
|
+
className: t,
|
|
58
|
+
"aria-hidden": "true"
|
|
59
|
+
}) : null;
|
|
60
|
+
}
|
|
61
|
+
function q(e, t) {
|
|
62
|
+
return e.disabled ? "disabled" : e.status ? e.status : e.warning ? "attention" : t ? "current" : e.completion !== void 0 && G(e.completion) >= 100 ? "complete" : "idle";
|
|
63
|
+
}
|
|
64
|
+
var J = M.forwardRef(function({ header: e, sidebar: n, rail: r, children: i, contentWidth: a = "wide", className: o, headerClassName: c, bodyClassName: l, sidebarClassName: u, mainClassName: m, contentClassName: h, railClassName: _, "aria-label": v, mainAs: y, style: b, ...x }, S) {
|
|
65
|
+
let C = !!n, w = !!r, T = j(), E = y ?? (T ? "div" : "main"), D = E === "section";
|
|
66
|
+
return /* @__PURE__ */ F("div", {
|
|
67
|
+
ref: S,
|
|
68
|
+
role: v && !D ? "group" : void 0,
|
|
69
|
+
"aria-label": D ? void 0 : v,
|
|
70
|
+
className: t("workspace-layout--component @container/workspace-layout box-border flex h-full min-h-0 w-full flex-col overflow-y-auto overscroll-contain", f.frame, "[--workspace-sidebar-width:var(--shell-sidebar-width)] [--workspace-rail-width:20rem]", H[a], o),
|
|
71
|
+
style: b,
|
|
72
|
+
...x,
|
|
73
|
+
children: [!!e && /* @__PURE__ */ P("header", {
|
|
74
|
+
className: t("workspace-layout--header shrink-0", p.header, c),
|
|
75
|
+
children: e
|
|
76
|
+
}), /* @__PURE__ */ F("div", {
|
|
77
|
+
className: t("workspace-layout--body grid min-h-0 flex-none grid-cols-1 bg-background @min-[80rem]/workspace-layout:flex-1", C && !w && "@min-[80rem]/workspace-layout:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)]", C && w && "@min-[80rem]/workspace-layout:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)] @min-[96rem]/workspace-layout:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)_var(--workspace-rail-width)]", !C && w && "@min-[96rem]/workspace-layout:grid-cols-[minmax(0,1fr)_var(--workspace-rail-width)]", l),
|
|
78
|
+
children: [
|
|
79
|
+
!!C && /* @__PURE__ */ P("aside", {
|
|
80
|
+
className: t("workspace-layout--sidebar hidden min-h-0 border-r border-border/60 bg-card @min-[80rem]/workspace-layout:block", u),
|
|
81
|
+
children: /* @__PURE__ */ P("div", {
|
|
82
|
+
className: "h-full overflow-y-auto overscroll-contain p-space-lg",
|
|
83
|
+
children: n
|
|
84
|
+
})
|
|
85
|
+
}),
|
|
86
|
+
/* @__PURE__ */ P(E, {
|
|
87
|
+
tabIndex: 0,
|
|
88
|
+
"aria-label": D ? v : void 0,
|
|
89
|
+
className: t(`workspace-layout--main min-h-0 min-w-0 overflow-visible @min-[80rem]/workspace-layout:overflow-y-auto overscroll-contain focus-visible:outline-none ${s.inset}`, d.wash, m),
|
|
90
|
+
children: /* @__PURE__ */ P("div", {
|
|
91
|
+
className: t("workspace-layout--content box-border mx-auto flex min-h-full w-full max-w-[var(--workspace-content-max-width)] flex-col p-surface-lg", g.subjects, a === "full" && "max-w-none", h),
|
|
92
|
+
children: i
|
|
93
|
+
})
|
|
94
|
+
}),
|
|
95
|
+
!!w && /* @__PURE__ */ P("aside", {
|
|
96
|
+
className: t("workspace-layout--rail hidden min-h-0 border-l border-border/60 bg-card @min-[96rem]/workspace-layout:block", _),
|
|
97
|
+
children: /* @__PURE__ */ P("div", {
|
|
98
|
+
className: "h-full overflow-y-auto overscroll-contain p-space-lg",
|
|
99
|
+
children: r
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
]
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
J.displayName = "WorkspaceLayout";
|
|
107
|
+
var Y = M.forwardRef(function({ title: s, description: c, textGap: u = "dense", badges: d, metadata: f, actions: p, primaryAction: m, secondaryActions: _, maxVisibleSecondaryActions: y, renderLink: b, status: x, media: S, headerEnd: C, titleSlot: w, headingTag: T = "h4", className: E, strings: D, ...j }, M) {
|
|
108
|
+
let N = e(z, D), I = A({ renderLink: b }), L = !!f?.length, R = O(m, _);
|
|
109
|
+
return /* @__PURE__ */ F(l, {
|
|
110
|
+
ref: M,
|
|
111
|
+
direction: "horizontal",
|
|
112
|
+
gap: "xl",
|
|
113
|
+
align: "start",
|
|
114
|
+
justify: "between",
|
|
115
|
+
wrap: !0,
|
|
116
|
+
className: t("workspace-record-header--component p-surface-lg", E),
|
|
117
|
+
...j,
|
|
118
|
+
children: [/* @__PURE__ */ F(l, {
|
|
119
|
+
gap: u,
|
|
120
|
+
className: "workspace-record-header--identity min-w-0 max-w-full flex-1 basis-64",
|
|
121
|
+
children: [
|
|
122
|
+
/* @__PURE__ */ F(l, {
|
|
123
|
+
direction: "horizontal",
|
|
124
|
+
gap: "lg",
|
|
125
|
+
align: "center",
|
|
126
|
+
wrap: !1,
|
|
127
|
+
children: [!!S && /* @__PURE__ */ P("div", {
|
|
128
|
+
className: "workspace-record-header--media flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-radius border border-border bg-muted/30",
|
|
129
|
+
children: S
|
|
130
|
+
}), /* @__PURE__ */ F(l, {
|
|
131
|
+
direction: "horizontal",
|
|
132
|
+
gap: "md",
|
|
133
|
+
className: "workspace-record-header--title-row min-w-0 flex-1",
|
|
134
|
+
children: [
|
|
135
|
+
w ?? /* @__PURE__ */ P(i, {
|
|
136
|
+
tag: T,
|
|
137
|
+
size: a.subject,
|
|
138
|
+
className: "[overflow-wrap:anywhere]",
|
|
139
|
+
children: s
|
|
140
|
+
}),
|
|
141
|
+
!!d && /* @__PURE__ */ P(l, {
|
|
142
|
+
direction: "horizontal",
|
|
143
|
+
wrap: !0,
|
|
144
|
+
align: "center",
|
|
145
|
+
gap: "sm",
|
|
146
|
+
className: "workspace-record-header--badges",
|
|
147
|
+
children: d
|
|
148
|
+
}),
|
|
149
|
+
!!x && /* @__PURE__ */ P("div", {
|
|
150
|
+
className: "workspace-record-header--status",
|
|
151
|
+
children: x
|
|
152
|
+
})
|
|
153
|
+
]
|
|
154
|
+
})]
|
|
155
|
+
}),
|
|
156
|
+
!!c && /* @__PURE__ */ P(n, {
|
|
157
|
+
...o.structuralDescription,
|
|
158
|
+
lineHeight: "relaxed",
|
|
159
|
+
className: "workspace-record-header--description max-w-4xl",
|
|
160
|
+
children: c
|
|
161
|
+
}),
|
|
162
|
+
!!L && /* @__PURE__ */ P("div", {
|
|
163
|
+
role: "group",
|
|
164
|
+
"aria-label": N.metadataLabel,
|
|
165
|
+
className: "workspace-record-header--metadata flex flex-wrap items-center gap-x-space-xl gap-y-space-xs",
|
|
166
|
+
children: f.map((e, t) => /* @__PURE__ */ F("div", {
|
|
167
|
+
className: "flex items-baseline gap-space-sm",
|
|
168
|
+
children: [/* @__PURE__ */ P(r, { children: e.label }), /* @__PURE__ */ P(v, {
|
|
169
|
+
className: "tabular-nums",
|
|
170
|
+
children: e.value
|
|
171
|
+
})]
|
|
172
|
+
}, e.id ?? t))
|
|
173
|
+
})
|
|
174
|
+
]
|
|
175
|
+
}), !!(p || R || C) && /* @__PURE__ */ F("div", {
|
|
176
|
+
className: t("workspace-record-header--actions flex max-w-full shrink-0 flex-wrap items-center justify-end", g.commands),
|
|
177
|
+
children: [
|
|
178
|
+
!!p && /* @__PURE__ */ P(l, {
|
|
179
|
+
direction: "horizontal",
|
|
180
|
+
wrap: !0,
|
|
181
|
+
align: "center",
|
|
182
|
+
gap: h.commands,
|
|
183
|
+
role: "group",
|
|
184
|
+
"aria-label": N.actionsLabel,
|
|
185
|
+
children: p
|
|
186
|
+
}),
|
|
187
|
+
R && /* @__PURE__ */ P(k, {
|
|
188
|
+
primaryAction: m,
|
|
189
|
+
secondaryActions: _,
|
|
190
|
+
maxVisibleSecondaryActions: y,
|
|
191
|
+
moreActionsLabel: N.moreActionsLabel,
|
|
192
|
+
renderLink: I
|
|
193
|
+
}),
|
|
194
|
+
!!C && /* @__PURE__ */ P("div", {
|
|
195
|
+
className: "workspace-record-header--end",
|
|
196
|
+
children: C
|
|
197
|
+
})
|
|
198
|
+
]
|
|
199
|
+
})]
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
Y.displayName = "WorkspaceRecordHeader";
|
|
203
|
+
var X = M.forwardRef(function({ groups: i, activeId: a, onSelect: o, renderItem: s, footerSlot: c, renderLink: d, className: f, strings: h, ...g }, v) {
|
|
204
|
+
let b = e(B, h), O = A({ renderLink: d });
|
|
205
|
+
return /* @__PURE__ */ F(l, {
|
|
206
|
+
render: /* @__PURE__ */ P("nav", {
|
|
207
|
+
ref: v,
|
|
208
|
+
"aria-label": g["aria-label"] ?? b.ariaLabel,
|
|
209
|
+
...g
|
|
210
|
+
}),
|
|
211
|
+
gap: "xl",
|
|
212
|
+
className: t("workspace-nav--component h-full", f),
|
|
213
|
+
children: [/* @__PURE__ */ P(l, {
|
|
214
|
+
gap: "xl",
|
|
215
|
+
className: "workspace-nav--groups min-h-0 flex-1",
|
|
216
|
+
children: i.map((e) => /* @__PURE__ */ F(l, {
|
|
217
|
+
gap: "md",
|
|
218
|
+
className: "workspace-nav--group",
|
|
219
|
+
children: [!!e.label && /* @__PURE__ */ F(l, {
|
|
220
|
+
gap: "dense",
|
|
221
|
+
className: "workspace-nav--group-header px-space-xs",
|
|
222
|
+
children: [/* @__PURE__ */ P(r, { children: e.label }), !!e.description && /* @__PURE__ */ P(n, {
|
|
223
|
+
size: "xs",
|
|
224
|
+
type: "secondary",
|
|
225
|
+
children: e.description
|
|
226
|
+
})]
|
|
227
|
+
}), /* @__PURE__ */ P(w, {
|
|
228
|
+
className: "workspace-nav--items gap-space-xs",
|
|
229
|
+
children: e.items.map((n, r) => {
|
|
230
|
+
let i = n.id === a, c = q(n, i), l = U[c], d = n.completion === void 0 ? void 0 : G(n.completion), f = (e) => {
|
|
231
|
+
if (n.disabled) {
|
|
232
|
+
e.preventDefault();
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
o?.(n);
|
|
236
|
+
}, p = {
|
|
237
|
+
active: i,
|
|
238
|
+
group: e,
|
|
239
|
+
index: r,
|
|
240
|
+
onSelect: f
|
|
241
|
+
};
|
|
242
|
+
if (s) return /* @__PURE__ */ P(M.Fragment, { children: s(n, p) }, n.id);
|
|
243
|
+
let h = /* @__PURE__ */ F(N, { children: [
|
|
244
|
+
/* @__PURE__ */ P(x, {
|
|
245
|
+
variant: "icon",
|
|
246
|
+
className: t(i && "text-accent-foreground"),
|
|
247
|
+
children: n.icon ? /* @__PURE__ */ P(K, {
|
|
248
|
+
icon: n.icon,
|
|
249
|
+
className: "size-icon"
|
|
250
|
+
}) : /* @__PURE__ */ P(l, {
|
|
251
|
+
className: t("size-icon-md", W[c]),
|
|
252
|
+
"aria-hidden": "true"
|
|
253
|
+
})
|
|
254
|
+
}),
|
|
255
|
+
/* @__PURE__ */ F(T, { children: [
|
|
256
|
+
/* @__PURE__ */ P(D, { children: n.label }),
|
|
257
|
+
!!n.description && /* @__PURE__ */ P(S, {
|
|
258
|
+
clamp: 2,
|
|
259
|
+
children: n.description
|
|
260
|
+
}),
|
|
261
|
+
d !== void 0 && /* @__PURE__ */ F("div", {
|
|
262
|
+
className: "mt-1.5 flex items-center gap-space-md",
|
|
263
|
+
children: [/* @__PURE__ */ P(m, {
|
|
264
|
+
value: d,
|
|
265
|
+
size: "sm",
|
|
266
|
+
"aria-label": b.completionLabel(d),
|
|
267
|
+
className: "flex-1"
|
|
268
|
+
}), /* @__PURE__ */ P(y, {
|
|
269
|
+
size: "xs",
|
|
270
|
+
className: "tabular-nums",
|
|
271
|
+
children: b.completionLabel(d)
|
|
272
|
+
})]
|
|
273
|
+
})
|
|
274
|
+
] }),
|
|
275
|
+
!!n.badge && /* @__PURE__ */ P(C, { children: n.badge })
|
|
276
|
+
] }), g = t("workspace-nav--item w-full border border-transparent px-row-x py-row-y text-left transition-colors", i && _.rowCurrent, n.warning && !i && t(u.warning.edge, u.warning.wash), n.disabled && "pointer-events-none opacity-50");
|
|
277
|
+
if (n.href) {
|
|
278
|
+
let e = O({
|
|
279
|
+
href: n.href,
|
|
280
|
+
children: h,
|
|
281
|
+
className: "block",
|
|
282
|
+
active: i,
|
|
283
|
+
"aria-current": i ? "page" : void 0,
|
|
284
|
+
disabled: n.disabled,
|
|
285
|
+
external: n.external,
|
|
286
|
+
target: n.target,
|
|
287
|
+
rel: n.rel,
|
|
288
|
+
onClick: f
|
|
289
|
+
});
|
|
290
|
+
return /* @__PURE__ */ P(E, {
|
|
291
|
+
size: "md",
|
|
292
|
+
render: e,
|
|
293
|
+
"aria-current": i ? "page" : void 0,
|
|
294
|
+
className: g,
|
|
295
|
+
children: h
|
|
296
|
+
}, n.id);
|
|
297
|
+
}
|
|
298
|
+
return /* @__PURE__ */ P(E, {
|
|
299
|
+
size: "md",
|
|
300
|
+
render: /* @__PURE__ */ P("button", {
|
|
301
|
+
type: "button",
|
|
302
|
+
onClick: f,
|
|
303
|
+
disabled: n.disabled
|
|
304
|
+
}),
|
|
305
|
+
"aria-current": i ? "true" : void 0,
|
|
306
|
+
className: g,
|
|
307
|
+
children: h
|
|
308
|
+
}, n.id);
|
|
309
|
+
})
|
|
310
|
+
})]
|
|
311
|
+
}, e.id))
|
|
312
|
+
}), !!c && /* @__PURE__ */ P("div", {
|
|
313
|
+
className: t("workspace-nav--footer shrink-0 pt-space-lg", p.footer),
|
|
314
|
+
children: c
|
|
315
|
+
})]
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
X.displayName = "WorkspaceNav";
|
|
319
|
+
var Z = M.forwardRef(function({ locales: r, activeLocale: i, onLocaleChange: a, actions: o, status: s, className: u, strings: d, ...f }, m) {
|
|
320
|
+
let g = e(V, d), v = (e) => {
|
|
321
|
+
e.disabled || a?.(e);
|
|
322
|
+
};
|
|
323
|
+
return /* @__PURE__ */ F("div", {
|
|
324
|
+
ref: m,
|
|
325
|
+
className: t("workspace-locale-strip--component flex flex-wrap items-center justify-between gap-space-lg px-surface-lg py-surface", p.footer, p.band, u),
|
|
326
|
+
...f,
|
|
327
|
+
children: [/* @__PURE__ */ P(l, {
|
|
328
|
+
direction: "horizontal",
|
|
329
|
+
wrap: !0,
|
|
330
|
+
align: "center",
|
|
331
|
+
gap: "2xs",
|
|
332
|
+
className: "workspace-locale-strip--locales w-fit min-w-0 max-w-full rounded-radius bg-muted p-space-2xs",
|
|
333
|
+
role: "group",
|
|
334
|
+
"aria-label": g.ariaLabel,
|
|
335
|
+
children: r.map((e) => {
|
|
336
|
+
let r = e.id === i, a = e.completion === void 0 ? void 0 : G(e.completion);
|
|
337
|
+
return /* @__PURE__ */ P(c, {
|
|
338
|
+
type: "button",
|
|
339
|
+
tone: "secondary",
|
|
340
|
+
buttonStyle: "ghost",
|
|
341
|
+
onClick: () => v(e),
|
|
342
|
+
disabled: e.disabled,
|
|
343
|
+
"aria-pressed": r,
|
|
344
|
+
className: t("workspace-locale-strip--item justify-start", r ? _.segmentActiveButton : _.segmentInactiveButton),
|
|
345
|
+
children: /* @__PURE__ */ F(l, {
|
|
346
|
+
direction: "horizontal",
|
|
347
|
+
align: "center",
|
|
348
|
+
gap: "md",
|
|
349
|
+
render: /* @__PURE__ */ P("span", {}),
|
|
350
|
+
className: "min-w-0",
|
|
351
|
+
children: [
|
|
352
|
+
/* @__PURE__ */ P(n, {
|
|
353
|
+
tag: "span",
|
|
354
|
+
size: "inherit",
|
|
355
|
+
className: "truncate text-inherit",
|
|
356
|
+
children: e.label
|
|
357
|
+
}),
|
|
358
|
+
r && /* @__PURE__ */ P(n, {
|
|
359
|
+
tag: "span",
|
|
360
|
+
size: "inherit",
|
|
361
|
+
className: "sr-only",
|
|
362
|
+
children: g.activeLabel
|
|
363
|
+
}),
|
|
364
|
+
a !== void 0 && /* @__PURE__ */ P(b, {
|
|
365
|
+
tone: a >= 100 ? "success" : "secondary",
|
|
366
|
+
className: "shrink-0",
|
|
367
|
+
children: g.completionLabel(a)
|
|
368
|
+
}),
|
|
369
|
+
!!e.status && /* @__PURE__ */ P("span", {
|
|
370
|
+
className: "shrink-0",
|
|
371
|
+
children: e.status
|
|
372
|
+
})
|
|
373
|
+
]
|
|
374
|
+
})
|
|
375
|
+
}, e.id);
|
|
376
|
+
})
|
|
377
|
+
}), !!(s || o) && /* @__PURE__ */ F(l, {
|
|
378
|
+
direction: "horizontal",
|
|
379
|
+
wrap: !0,
|
|
380
|
+
align: "center",
|
|
381
|
+
gap: h.commands,
|
|
382
|
+
className: "workspace-locale-strip--actions shrink-0",
|
|
383
|
+
children: [!!s && /* @__PURE__ */ P("div", {
|
|
384
|
+
className: "workspace-locale-strip--status",
|
|
385
|
+
children: s
|
|
386
|
+
}), !!o && /* @__PURE__ */ P(l, {
|
|
387
|
+
direction: "horizontal",
|
|
388
|
+
wrap: !0,
|
|
389
|
+
align: "center",
|
|
390
|
+
gap: h.commands,
|
|
391
|
+
children: o
|
|
392
|
+
})]
|
|
393
|
+
})]
|
|
394
|
+
});
|
|
395
|
+
});
|
|
396
|
+
Z.displayName = "WorkspaceLocaleStrip";
|
|
397
|
+
//#endregion
|
|
398
|
+
export { V as a, Y as i, Z as n, B as o, X as r, z as s, J as t };
|
|
399
|
+
|
|
400
|
+
//# sourceMappingURL=workspace-DIryPqBt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-DIryPqBt.js","names":["Icon","React","_Fragment","Text","DisplayLabel","Heading","headingRoleSizes","copyRoleProps","focusRecipes","Button","Stack","toneRecipes","neutralFillRecipes","surfaceRecipes","regionRecipes","Progress","compositionRhythm","compositionClasses","interactionRecipes","Value","SecondaryValue","Badge","ItemMedia","ItemDescription","ItemActions","ItemGroup","ItemContent","Item","ItemTitle","hasPageHeaderCommands","PageHeaderCommands","useLayoutLinkRenderer","useInsideMainLandmark","React$1","Fragment$1","defaultWorkspaceRecordHeaderStrings","defaultWorkspaceNavStrings","value","defaultWorkspaceLocaleStripStrings","CONTENT_WIDTH_CLASS","STATUS_ICON","Check","Circle","CircleAlert","STATUS_CLASS","clampPercent","DynamicWorkspaceIcon","icon","getStatus","item","active","WorkspaceLayout","ariaLabel","props","hasSidebar","sidebar","hasRail","rail","insideMain","MainRegion","mainAs","namesMain","cn","contentWidth","className","header","headerClassName","bodyClassName","sidebarClassName","mainClassName","contentClassName","railClassName","WorkspaceRecordHeader","stringsProp","strings","useStrings","resolvedRenderLink","hasMetadata","metadata","hasCommands","primaryAction","secondaryActions","textGap","media","titleSlot","headingTag","title","badges","status","description","index","actions","headerEnd","WorkspaceNav","groups","group","activeId","StatusIcon","completion","handleSelect","context","renderItem","rowContent","itemClassName","linkNode","footerSlot","WorkspaceLocaleStrip","handleLocaleClick","locale","onLocaleChange","locales","activeLocale"],"sources":["../src/components/layout/workspace/workspace.strings.ts","../src/components/layout/workspace/workspace.tsx"],"sourcesContent":["export interface WorkspaceRecordHeaderStrings {\n\tmetadataLabel: string;\n\tactionsLabel: string;\n\t/** Accessible name of the More actions menu trigger. */\n\tmoreActionsLabel: string;\n}\n\nexport const defaultWorkspaceRecordHeaderStrings: WorkspaceRecordHeaderStrings = {\n\tmetadataLabel: 'Record metadata',\n\tactionsLabel: 'Record actions',\n\tmoreActionsLabel: 'More actions',\n};\n\nexport interface WorkspaceNavStrings {\n\tariaLabel: string;\n\tcompletionLabel: (value: number) => string;\n}\n\nexport const defaultWorkspaceNavStrings: WorkspaceNavStrings = {\n\tariaLabel: 'Workspace navigation',\n\tcompletionLabel: (value) => `${value}% complete`,\n};\n\nexport interface WorkspaceLocaleStripStrings {\n\tariaLabel: string;\n\tactiveLabel: string;\n\tcompletionLabel: (value: number) => string;\n}\n\nexport const defaultWorkspaceLocaleStripStrings: WorkspaceLocaleStripStrings = {\n\tariaLabel: 'Workspace locales',\n\tactiveLabel: 'Active',\n\tcompletionLabel: (value) => `${value}% complete`,\n};\n","import * as React from 'react';\nimport {\n\tCheck,\n\tCircle,\n\tCircleAlert,\n\ttype LucideIcon,\n\t} from 'lucide-react';\n\nimport { Badge } from '../../base/badge';\nimport { Button } from '../../base/buttons';\nimport { Progress } from '../../base/feedback';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '../../base/item';\nimport { Stack } from '../../base/structure';\nimport {compositionClasses, compositionRhythm} from '../../base/structure/composition.recipes';\nimport { SecondaryValue, Value } from '../../primitives';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport {copyRoleProps, headingRoleSizes} from '../../typography/text.styles';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { hasPageHeaderCommands, PageHeaderCommands } from '../../base/navigation/page-header/page-header-commands';\nimport { useInsideMainLandmark } from '../containers/main-landmark-context';\nimport { useLayoutLinkRenderer } from '../hooks';\nimport type { LayoutIconComponent } from '../layout.types';\nimport {\n\tdefaultWorkspaceLocaleStripStrings,\n\tdefaultWorkspaceNavStrings,\n\tdefaultWorkspaceRecordHeaderStrings,\n} from './workspace.strings';\nimport type {\n\tWorkspaceContentWidth,\n\tWorkspaceLayoutProps,\n\tWorkspaceLocaleItem,\n\tWorkspaceLocaleStripProps,\n\tWorkspaceNavItem,\n\tWorkspaceNavItemStatus,\n\tWorkspaceNavProps,\n\tWorkspaceRecordHeaderProps,\n} from './workspace.types';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { neutralFillRecipes, regionRecipes, surfaceRecipes } from '../../../lib/surface-recipes';\nimport { interactionRecipes } from '../../../lib/interaction-recipes';\nimport { toneRecipes } from '../../../lib/tone-recipes';\n\nconst CONTENT_WIDTH_CLASS: Record<WorkspaceContentWidth, string> = {\n\tdefault: '[--workspace-content-max-width:58rem]',\n\twide: '[--workspace-content-max-width:86rem]',\n\tfull: '[--workspace-content-max-width:none]',\n};\n\nconst STATUS_ICON: Record<WorkspaceNavItemStatus, LucideIcon> = {\n\tcomplete: Check,\n\tcurrent: Circle,\n\tattention: CircleAlert,\n\tdisabled: Circle,\n\tidle: Circle,\n};\n\nconst STATUS_CLASS: Record<WorkspaceNavItemStatus, string> = {\n\tcomplete: 'text-success',\n\tcurrent: 'text-primary-accent',\n\tattention: 'text-warning-accent',\n\t// Disabled dims like every disabled control rather than adding a fainter text tier.\n\tdisabled: 'text-muted-foreground opacity-50',\n\tidle: 'text-muted-foreground',\n};\n\nfunction clampPercent(value: number): number {\n\tif (!Number.isFinite(value)) return 0;\n\treturn Math.min(100, Math.max(0, Math.round(value)));\n}\n\nfunction DynamicWorkspaceIcon({\n\ticon,\n\tclassName,\n}: {\n\t/** Leading glyph. */\n\ticon?: LayoutIconComponent;\n\tclassName?: string;\n}) {\n\tif (!icon) return null;\n\tconst Icon = icon;\n\treturn <Icon className={className} aria-hidden=\"true\" />;\n}\n\nfunction getStatus(item: WorkspaceNavItem, active: boolean): WorkspaceNavItemStatus {\n\tif (item.disabled) return 'disabled';\n\tif (item.status) return item.status;\n\tif (item.warning) return 'attention';\n\tif (active) return 'current';\n\tif (item.completion !== undefined && clampPercent(item.completion) >= 100) return 'complete';\n\treturn 'idle';\n}\n\nexport const WorkspaceLayout = React.forwardRef<HTMLDivElement, WorkspaceLayoutProps>(function WorkspaceLayout({\n\theader,\n\tsidebar,\n\trail,\n\tchildren,\n\tcontentWidth = 'wide',\n\tclassName,\n\theaderClassName,\n\tbodyClassName,\n\tsidebarClassName,\n\tmainClassName,\n\tcontentClassName,\n\trailClassName,\n\t'aria-label': ariaLabel,\n\tmainAs,\n\tstyle,\n\t...props\n}, ref) {\n\tconst hasSidebar = !!sidebar;\n\tconst hasRail = !!rail;\n\t// One main landmark per page: inside an app shell or PageViewport main, the\n\t// record's scroll region is a plain element unless the consumer says otherwise.\n\tconst insideMain = useInsideMainLandmark();\n\tconst MainRegion = mainAs ?? (insideMain ? 'div' : 'main');\n\t// A section is a region landmark only when named, so the name goes there;\n\t// otherwise it names the whole workspace as a group.\n\tconst namesMain = MainRegion === 'section';\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\trole={ariaLabel && !namesMain ? 'group' : undefined}\n\t\t\taria-label={namesMain ? undefined : ariaLabel}\n\t\t\tclassName={cn(\n\t\t\t\t// The shared frame: its card fill shows through the header, sidebar and rail.\n\t\t\t\t'workspace-layout--component @container/workspace-layout box-border flex h-full min-h-0 w-full flex-col overflow-y-auto overscroll-contain',\n\t\t\t\tsurfaceRecipes.frame,\n\t\t\t\t'[--workspace-sidebar-width:var(--shell-sidebar-width)] [--workspace-rail-width:20rem]',\n\t\t\t\tCONTENT_WIDTH_CLASS[contentWidth],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\t{...props}\n\t\t>\n\t\t\t{!!header && (\n\t\t\t\t<header className={cn('workspace-layout--header shrink-0', regionRecipes.header, headerClassName)}>\n\t\t\t\t\t{header}\n\t\t\t\t</header>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// The body is the page canvas inside the frame; the main region washes it,\n\t\t\t\t\t// so Cards placed there keep their contrast in both themes.\n\t\t\t\t\t'workspace-layout--body grid min-h-0 flex-none grid-cols-1 bg-background @min-[80rem]/workspace-layout:flex-1',\n\t\t\t\t\thasSidebar && !hasRail && '@min-[80rem]/workspace-layout:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)]',\n\t\t\t\t\thasSidebar && hasRail && '@min-[80rem]/workspace-layout:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)] @min-[96rem]/workspace-layout:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)_var(--workspace-rail-width)]',\n\t\t\t\t\t!hasSidebar && hasRail && '@min-[96rem]/workspace-layout:grid-cols-[minmax(0,1fr)_var(--workspace-rail-width)]',\n\t\t\t\t\tbodyClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!hasSidebar && (\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'workspace-layout--sidebar hidden min-h-0 border-r border-border/60 bg-card @min-[80rem]/workspace-layout:block',\n\t\t\t\t\t\t\tsidebarClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"h-full overflow-y-auto overscroll-contain p-space-lg\">\n\t\t\t\t\t\t\t{sidebar}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t)}\n\t\t\t\t<MainRegion\n\t\t\t\t\t// oxlint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- the scroll region must be reachable by keyboard\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t\taria-label={namesMain ? ariaLabel : undefined}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t`workspace-layout--main min-h-0 min-w-0 overflow-visible @min-[80rem]/workspace-layout:overflow-y-auto overscroll-contain focus-visible:outline-none ${focusRecipes.inset}`,\n\t\t\t\t\t\t\tneutralFillRecipes.wash,\n\t\t\t\t\t\tmainClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'workspace-layout--content box-border mx-auto flex min-h-full w-full max-w-[var(--workspace-content-max-width)] flex-col p-surface-lg', compositionClasses.subjects,\n\t\t\t\t\t\t\tcontentWidth === 'full' && 'max-w-none',\n\t\t\t\t\t\t\tcontentClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</MainRegion>\n\t\t\t\t{!!hasRail && (\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'workspace-layout--rail hidden min-h-0 border-l border-border/60 bg-card @min-[96rem]/workspace-layout:block',\n\t\t\t\t\t\t\trailClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"h-full overflow-y-auto overscroll-contain p-space-lg\">\n\t\t\t\t\t\t\t{rail}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n\nWorkspaceLayout.displayName = 'WorkspaceLayout';\n\nexport const WorkspaceRecordHeader = React.forwardRef<HTMLDivElement, WorkspaceRecordHeaderProps>(function WorkspaceRecordHeader({\n\ttitle,\n\tdescription,\n\ttextGap = 'dense',\n\tbadges,\n\tmetadata,\n\tactions,\n\tprimaryAction,\n\tsecondaryActions,\n\tmaxVisibleSecondaryActions,\n\trenderLink,\n\tstatus,\n\tmedia,\n\theaderEnd,\n\ttitleSlot,\n\theadingTag = 'h4',\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultWorkspaceRecordHeaderStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst hasMetadata = !!metadata?.length;\n\tconst hasCommands = hasPageHeaderCommands(primaryAction, secondaryActions);\n\n\treturn (\n\t\t<Stack\n\t\t\tref={ref}\n\t\t\tdirection=\"horizontal\"\n\t\t\tgap=\"xl\"\n\t\t\talign=\"start\"\n\t\t\tjustify=\"between\"\n\t\t\twrap\n\t\t\tclassName={cn(\n\t\t\t\t'workspace-record-header--component p-surface-lg',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t\t<Stack gap={textGap} className=\"workspace-record-header--identity min-w-0 max-w-full flex-1 basis-64\">\n\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"lg\" align=\"center\" wrap={false}>\n\t\t\t\t{!!media && (\n\t\t\t\t\t<div className=\"workspace-record-header--media flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-radius border border-border bg-muted/30\">\n\t\t\t\t\t\t{media}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"md\" className=\"workspace-record-header--title-row min-w-0 flex-1\">\n\t\t\t\t\t\t{titleSlot ?? (\n\t\t\t\t\t\t\t<Heading tag={headingTag} size={headingRoleSizes.subject} className=\"[overflow-wrap:anywhere]\">\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!badges && <Stack direction=\"horizontal\" wrap align=\"center\" gap=\"sm\" className=\"workspace-record-header--badges\">{badges}</Stack>}\n\t\t\t\t\t\t\t{!!status && <div className=\"workspace-record-header--status\">{status}</div>}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t<Text {...copyRoleProps.structuralDescription} lineHeight=\"relaxed\" className=\"workspace-record-header--description max-w-4xl\">\n\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!hasMetadata && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\t\taria-label={strings.metadataLabel}\n\t\t\t\t\t\t\tclassName=\"workspace-record-header--metadata flex flex-wrap items-center gap-x-space-xl gap-y-space-xs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{metadata.map((item, index) => (\n\t\t\t\t\t\t\t\t<div key={item.id ?? index} className=\"flex items-baseline gap-space-sm\">\n\t\t\t\t\t\t\t\t\t<DisplayLabel>\n\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t\t\t<Value className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t\t\t\t</Value>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t{!!(actions || hasCommands || headerEnd) && (\n\t\t\t\t<div className={cn('workspace-record-header--actions flex max-w-full shrink-0 flex-wrap items-center justify-end', compositionClasses.commands)}>\n\t\t\t\t\t{!!actions && (\n\t\t\t\t\t\t<Stack direction=\"horizontal\" wrap align=\"center\" gap={compositionRhythm.commands} role=\"group\" aria-label={strings.actionsLabel}>\n\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t)}\n\t\t\t\t\t{hasCommands && (\n\t\t\t\t\t\t<PageHeaderCommands\n\t\t\t\t\t\t\tprimaryAction={primaryAction}\n\t\t\t\t\t\t\tsecondaryActions={secondaryActions}\n\t\t\t\t\t\t\tmaxVisibleSecondaryActions={maxVisibleSecondaryActions}\n\t\t\t\t\t\t\tmoreActionsLabel={strings.moreActionsLabel}\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!headerEnd && <div className=\"workspace-record-header--end\">{headerEnd}</div>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Stack>\n\t);\n});\n\nWorkspaceRecordHeader.displayName = 'WorkspaceRecordHeader';\n\nexport const WorkspaceNav = React.forwardRef<HTMLElement, WorkspaceNavProps>(function WorkspaceNav({\n\tgroups,\n\tactiveId,\n\tonSelect,\n\trenderItem,\n\tfooterSlot,\n\trenderLink,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultWorkspaceNavStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\n\treturn (\n\t\t<Stack\n\t\t\trender={(\n\t\t\t\t<nav\n\t\t\t\t\tref={ref}\n\t\t\t\t\taria-label={props['aria-label'] ?? strings.ariaLabel}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\tgap=\"xl\"\n\t\t\tclassName={cn('workspace-nav--component h-full', className)}\n\t\t>\n\t\t\t<Stack gap=\"xl\" className=\"workspace-nav--groups min-h-0 flex-1\">\n\t\t\t\t{groups.map((group) => (\n\t\t\t\t\t<Stack key={group.id} gap=\"md\" className=\"workspace-nav--group\">\n\t\t\t\t\t\t{!!group.label && (\n\t\t\t\t\t\t\t<Stack gap=\"dense\" className=\"workspace-nav--group-header px-space-xs\">\n\t\t\t\t\t\t\t\t<DisplayLabel>\n\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t\t{!!group.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t{group.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ItemGroup className=\"workspace-nav--items gap-space-xs\">\n\t\t\t\t\t\t\t{group.items.map((item, index) => {\n\t\t\t\t\t\t\t\tconst active = item.id === activeId;\n\t\t\t\t\t\t\t\tconst status = getStatus(item, active);\n\t\t\t\t\t\t\t\tconst StatusIcon = STATUS_ICON[status];\n\t\t\t\t\t\t\t\tconst completion = item.completion === undefined ? undefined : clampPercent(item.completion);\n\t\t\t\t\t\t\t\tconst handleSelect = (event: React.MouseEvent<HTMLElement>) => {\n\t\t\t\t\t\t\t\t\tif (item.disabled) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonSelect?.(item);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tconst context = { active, group, index, onSelect: handleSelect };\n\n\t\t\t\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\t\t\t\treturn <React.Fragment key={item.id}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst rowContent = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className={cn(active && 'text-accent-foreground')}>\n\t\t\t\t\t\t\t\t\t\t\t{item.icon ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<DynamicWorkspaceIcon icon={item.icon} className=\"size-icon\" />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<StatusIcon className={cn('size-icon-md', STATUS_CLASS[status])} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t\t\t<ItemTitle>{item.label}</ItemTitle>\n\t\t\t\t\t\t\t\t\t\t\t{!!item.description && <ItemDescription clamp={2}>{item.description}</ItemDescription>}\n\t\t\t\t\t\t\t\t\t\t\t{completion !== undefined && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mt-1.5 flex items-center gap-space-md\">\n\t\t\t\t\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={completion}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={strings.completionLabel(completion)}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.completionLabel(completion)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t\t\t{!!item.badge && <ItemActions>{item.badge}</ItemActions>}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst itemClassName = cn(\n\t\t\t\t\t\t\t\t\t'workspace-nav--item w-full border border-transparent px-row-x py-row-y text-left transition-colors',\n\t\t\t\t\t\t\t\t\tactive && interactionRecipes.rowCurrent,\n\t\t\t\t\t\t\t\t\titem.warning && !active && cn(toneRecipes.warning.edge, toneRecipes.warning.wash),\n\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif (item.href) {\n\t\t\t\t\t\t\t\t\tconst linkNode = resolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\thref: item.href,\n\t\t\t\t\t\t\t\t\t\tchildren: rowContent,\n\t\t\t\t\t\t\t\t\t\tclassName: 'block',\n\t\t\t\t\t\t\t\t\t\tactive,\n\t\t\t\t\t\t\t\t\t\t'aria-current': active ? 'page' : undefined,\n\t\t\t\t\t\t\t\t\t\tdisabled: item.disabled,\n\t\t\t\t\t\t\t\t\t\texternal: item.external,\n\t\t\t\t\t\t\t\t\t\ttarget: item.target,\n\t\t\t\t\t\t\t\t\t\trel: item.rel,\n\t\t\t\t\t\t\t\t\t\tonClick: handleSelect as React.MouseEventHandler<HTMLAnchorElement>,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Item key={item.id} size=\"md\" render={linkNode as React.ReactElement} aria-current={active ? 'page' : undefined} className={itemClassName}>\n\t\t\t\t\t\t\t\t\t\t\t{rowContent}\n\t\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\t\t\trender={<button type=\"button\" onClick={handleSelect} disabled={item.disabled} />}\n\t\t\t\t\t\t\t\t\t\taria-current={active ? 'true' : undefined}\n\t\t\t\t\t\t\t\t\t\tclassName={itemClassName}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{rowContent}\n\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</Stack>\n\t\t\t\t))}\n\t\t\t</Stack>\n\t\t\t{!!footerSlot && <div className={cn('workspace-nav--footer shrink-0 pt-space-lg', regionRecipes.footer)}>{footerSlot}</div>}\n\t\t</Stack>\n\t);\n});\n\nWorkspaceNav.displayName = 'WorkspaceNav';\n\nexport const WorkspaceLocaleStrip = React.forwardRef<HTMLDivElement, WorkspaceLocaleStripProps>(function WorkspaceLocaleStrip({\n\tlocales,\n\tactiveLocale,\n\tonLocaleChange,\n\tactions,\n\tstatus,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultWorkspaceLocaleStripStrings, stringsProp);\n\n\tconst handleLocaleClick = (locale: WorkspaceLocaleItem) => {\n\t\tif (locale.disabled) return;\n\t\tonLocaleChange?.(locale);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\t// The locales and the commands share a row while both fit the strip's own\n\t\t\t// width and wrap otherwise; no viewport breakpoint decides it.\n\t\t\tclassName={cn('workspace-locale-strip--component flex flex-wrap items-center justify-between gap-space-lg px-surface-lg py-surface', regionRecipes.footer, regionRecipes.band, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{/* The active locale is a selection, not a command: it lifts on the shared\n\t\t\t segmented track, so the strip's own primary action stays the only solid one. */}\n\t\t\t<Stack direction=\"horizontal\" wrap align=\"center\" gap=\"2xs\" className=\"workspace-locale-strip--locales w-fit min-w-0 max-w-full rounded-radius bg-muted p-space-2xs\" role=\"group\" aria-label={strings.ariaLabel}>\n\t\t\t\t{locales.map((locale) => {\n\t\t\t\t\tconst active = locale.id === activeLocale;\n\t\t\t\t\tconst completion = locale.completion === undefined ? undefined : clampPercent(locale.completion);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={locale.id}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tonClick={() => handleLocaleClick(locale)}\n\t\t\t\t\t\t\tdisabled={locale.disabled}\n\t\t\t\t\t\t\taria-pressed={active}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'workspace-locale-strip--item justify-start',\n\t\t\t\t\t\t\t\tactive ? interactionRecipes.segmentActiveButton : interactionRecipes.segmentInactiveButton,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" gap=\"md\" render={<span />} className=\"min-w-0\">\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-inherit\">{locale.label}</Text>\n\t\t\t\t\t\t\t{active && <Text tag=\"span\" size=\"inherit\" className=\"sr-only\">{strings.activeLabel}</Text>}\n\t\t\t\t\t\t\t\t{completion !== undefined && (\n\t\t\t\t\t\t\t\t\t<Badge tone={completion >= 100 ? 'success' : 'secondary'} className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t\t{strings.completionLabel(completion)}\n\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!locale.status && <span className=\"shrink-0\">{locale.status}</span>}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Stack>\n\t\t\t{!!(status || actions) && (\n\t\t\t\t<Stack direction=\"horizontal\" wrap align=\"center\" gap={compositionRhythm.commands} className=\"workspace-locale-strip--actions shrink-0\">\n\t\t\t\t\t{!!status && <div className=\"workspace-locale-strip--status\">{status}</div>}\n\t\t\t\t\t{!!actions && <Stack direction=\"horizontal\" wrap align=\"center\" gap={compositionRhythm.commands}>{actions}</Stack>}\n\t\t\t\t</Stack>\n\t\t\t)}\n\t\t</div>\n\t);\n});\n\nWorkspaceLocaleStrip.displayName = 'WorkspaceLocaleStrip';\n"],"mappings":"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"}
|
|
@@ -5,6 +5,13 @@ description: Compatibility entrypoint to Themelia's components, tokenization, co
|
|
|
5
5
|
|
|
6
6
|
# Themelia React UI consumer
|
|
7
7
|
|
|
8
|
+
Themelia ships the whole of a simple view and about 70% of a domain view; the
|
|
9
|
+
rest is app-owned subjects made from its parts and tokens. Before any screen,
|
|
10
|
+
read [building views](references/building-views.md) for the reach order and the
|
|
11
|
+
need → owner map, and the [catalogue](references/catalogue.md) for every
|
|
12
|
+
component. Do not hand-roll a panel, table, pill, heading, modal or formatted
|
|
13
|
+
value that an owner provides.
|
|
14
|
+
|
|
8
15
|
Use the four canonical capabilities:
|
|
9
16
|
|
|
10
17
|
- [themelia-components](../consumer-skills/themelia-components/SKILL.md): installed setup, search, exact API inspection, typed forms/features and framework integration.
|
|
@@ -21,6 +21,8 @@ records, the brief and the code cannot tell you.
|
|
|
21
21
|
## Load first
|
|
22
22
|
|
|
23
23
|
- `node_modules/themelia-react-ui/docs/consumer-skills/themelia-design/SKILL.md`
|
|
24
|
+
- `node_modules/themelia-react-ui/docs/consumer-skill/references/building-views.md`
|
|
25
|
+
and the Features and Blocks sections of `references/catalogue.md`
|
|
24
26
|
- `node_modules/themelia-react-ui/docs/consumer-skill/references/data-reading.md`
|
|
25
27
|
- `node_modules/themelia-react-ui/docs/consumer-skill/references/view-spec.md`
|
|
26
28
|
- `node_modules/themelia-react-ui/docs/consumer-skill/references/view-craft.md`
|
|
@@ -39,7 +41,10 @@ records, the brief and the code cannot tell you.
|
|
|
39
41
|
3. **Spec.** Write the view spec where the parent says, otherwise
|
|
40
42
|
`design/<view>.md`. Rank information, name the focal point, draw 390 and
|
|
41
43
|
1440 wireframes, choose an encoding per fact.
|
|
42
|
-
4. **Owners.**
|
|
44
|
+
4. **Owners.** Write the coverage plan in the spec: one owner per region,
|
|
45
|
+
reaching for a feature, then a block, then base and layout owners; mark
|
|
46
|
+
only the product-specific subject `CUSTOM` and list the parts it is made
|
|
47
|
+
from. Find and verify owners before JSX:
|
|
43
48
|
- `node node_modules/themelia-react-ui/docs/consumer-skill/scripts/find-components.mjs <task nouns>`
|
|
44
49
|
- `node node_modules/themelia-react-ui/docs/consumer-skill/scripts/map-composition.mjs --pattern record-detail|collection|edit|analytics --main <need> --aside <need>`
|
|
45
50
|
- `node node_modules/themelia-react-ui/docs/consumer-skill/scripts/inspect-component.mjs <Symbol> --import <exact import> --prop <name>`
|
|
@@ -75,6 +80,9 @@ scores, findings and screenshots.
|
|
|
75
80
|
|
|
76
81
|
- Real records only. No invented figures, trends or states; data gaps stay
|
|
77
82
|
visible and are reported.
|
|
83
|
+
- Owners first. No hand-written panel, table, pill, heading, modal or
|
|
84
|
+
formatted value where a Themelia owner exists; custom subjects are made of
|
|
85
|
+
Themelia parts and shared roles.
|
|
78
86
|
- Public imports only. No anatomy class overrides, new colours or tokens, blur,
|
|
79
87
|
decorative icons, filler cards or prose explaining the screen.
|
|
80
88
|
- Do not add navigation, cards or commands because a prop allows them.
|
|
@@ -88,7 +96,8 @@ scores, findings and screenshots.
|
|
|
88
96
|
2. Screenshot paths for each width, theme and state.
|
|
89
97
|
3. The decisions that changed the view and why, including what was removed.
|
|
90
98
|
4. Checks and interactions run, with results.
|
|
91
|
-
5.
|
|
99
|
+
5. Coverage: the plan as built, and each custom subject with its parts.
|
|
100
|
+
Library gaps: owner, prop, workaround.
|
|
92
101
|
6. Unverified: widths, themes, states or interactions not exercised.
|
|
93
102
|
|
|
94
103
|
Keep measurements and screenshots separate from judgement: "the census shows 9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorState, LoadingState } from 'themelia-react-ui/base/feedback';
|
|
2
|
-
import { Metric, MetricGrid, type MetricData } from 'themelia-react-ui/blocks/analytics';
|
|
2
|
+
import { Metric, MetricGrid, type MetricData } from 'themelia-react-ui/blocks/analytics/charts';
|
|
3
3
|
import { EmptyState, InlineStat } from 'themelia-react-ui/blocks/data-display';
|
|
4
4
|
|
|
5
5
|
export type RevenueOverviewState =
|
|
@@ -91,10 +91,10 @@ export function WorkspaceRegionsLayout({ primaryNavigation, sidebarPresentation
|
|
|
91
91
|
sidebarPresentation={sidebarPresentation}
|
|
92
92
|
mobileSidebarMode={sidebarPresentation === 'rail' ? 'inline' : 'drawer'}
|
|
93
93
|
secondarySidebarWidth={secondarySidebarWidth}
|
|
94
|
+
sidebar={primaryNavigation ?? <AppSidebar className="h-full" surface="transparent" menuDensity="comfortable"
|
|
95
|
+
navigationGroups={navigationGroups} currentUrl={currentUrl} renderLink={renderLink} />}
|
|
94
96
|
slots={{
|
|
95
97
|
headerEnd: user && <HeaderUserMenu user={user} onLogout={onLogout} />,
|
|
96
|
-
sidebar: primaryNavigation ?? <AppSidebar className="h-full" surface="transparent" menuDensity="comfortable"
|
|
97
|
-
navigationGroups={navigationGroups} currentUrl={currentUrl} renderLink={renderLink} />,
|
|
98
98
|
secondarySidebar: hasContextualNavigation ? secondarySidebar !== undefined ? secondarySidebar : <AppSidebar className="h-full" surface="transparent"
|
|
99
99
|
collapsible={contextualCollapsible} menuDensity="comfortable" searchable
|
|
100
100
|
navigationGroups={contextualNavigationGroups} currentUrl={currentUrl} renderLink={renderLink} /> : undefined,
|
|
@@ -115,6 +115,6 @@ export function WorkspaceExamplePage({ onCreate, narrow, gutter, children }: Wor
|
|
|
115
115
|
return <Page narrow={narrow} gutter={gutter}
|
|
116
116
|
header={{ title: 'Workspace', description: 'Review activity and manage your records.',
|
|
117
117
|
primaryAction: { label: 'Create record', onClick: onCreate } }}>
|
|
118
|
-
{children ?? <Card title="Activity"
|
|
118
|
+
{children ?? <Card title="Activity" footerSlot="Latest workspace activity"><Text>Application content goes here.</Text></Card>}
|
|
119
119
|
</Page>;
|
|
120
120
|
}
|
|
@@ -221,11 +221,13 @@ export function ReceivableInvoiceDetail({ onRecordPayment, onSendReminder, onApp
|
|
|
221
221
|
<AddressCard
|
|
222
222
|
surface="card"
|
|
223
223
|
kind="billing"
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
address={{
|
|
225
|
+
name: 'Kalliope Studio IKE',
|
|
226
|
+
line1: '42 Tsimiski Street',
|
|
227
|
+
city: 'Thessaloniki',
|
|
228
|
+
postalCode: '546 23',
|
|
229
|
+
country: 'Greece',
|
|
230
|
+
}}
|
|
229
231
|
/>
|
|
230
232
|
</>
|
|
231
233
|
)}
|
|
@@ -54,12 +54,13 @@ export function AccountDetailPage({ account, onEdit, onBack, section, onSectionC
|
|
|
54
54
|
{ label: 'Delete account', destructive: true, onClick: () => { setError(undefined); deletion.show(); } },
|
|
55
55
|
];
|
|
56
56
|
return <Page narrow header={{
|
|
57
|
-
title: account.name, onBack,
|
|
57
|
+
title: account.name, onBack,
|
|
58
|
+
strings: { back: 'Back to accounts', sections: 'Account sections' },
|
|
58
59
|
slots: { titleSuffix: account.overdue ? <Badge tone="warning">Overdue</Badge> : null },
|
|
59
60
|
primaryAction: { label: 'Edit account', onClick: () => onEdit(account.id) },
|
|
60
61
|
secondaryActions: commands,
|
|
61
62
|
tabs: {
|
|
62
|
-
|
|
63
|
+
value: section,
|
|
63
64
|
onValueChange: id => onSectionChange(id as AccountSection),
|
|
64
65
|
items: [
|
|
65
66
|
{ id: 'overview', label: 'Overview' },
|
|
@@ -13,7 +13,7 @@ export function CustomerEmail({ customer, deliver }: { customer: Customer; deliv
|
|
|
13
13
|
to: [{ name: 'Ada', email: 'ada@example.com' }], cc: [], bcc: [],
|
|
14
14
|
subject: 'Hello {{customer.name}}', body: { kind: 'text', text: 'Hello {{customer.name}},\n\nHow can we help?' }, placeholderOverrides: {},
|
|
15
15
|
});
|
|
16
|
-
return <EmailComposer value={draft}
|
|
16
|
+
return <EmailComposer value={draft} onValueChange={setDraft} context={customer} placeholders={{ sets }} onSend={deliver} />;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/** The application's data client owns the registry, pending/error state, retry and cancellation. */
|
|
@@ -29,8 +29,8 @@ export function AccountIndex({ state, onRetry, hrefFor, onNavigate }: AccountInd
|
|
|
29
29
|
<Text role="alert" type="error">{state.message}</Text>
|
|
30
30
|
<Button onClick={onRetry}>Retry loading</Button>
|
|
31
31
|
</Stack> : <DataTable columns={columns} data={state.records}
|
|
32
|
-
getRowId={account => account.id}
|
|
33
|
-
|
|
32
|
+
getRowId={account => account.id} showFullscreenToggle={false}
|
|
33
|
+
strings={{ emptyState: { message: "No accounts yet." } }} emptyStateAction={<Button onClick={onRetry}>Refresh accounts</Button>}
|
|
34
34
|
rowActions={[{ id: 'open', label: 'Open account', onClick: account => onNavigate(hrefFor(account)) }]} />}
|
|
35
35
|
</Page>;
|
|
36
36
|
}
|