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 @@
|
|
|
1
|
+
{"version":3,"file":"charts.js","names":["_jsxs","_Fragment","useFormattingConfig","Text","DisplayLabel","Heading","focusRecipes","Button","Grid","Stack","toneRecipes","dotRecipes","surfaceRecipes","regionRecipes","Card","Progress","interactionRecipes","formatPercentage","IconBadge","ChartContainer","contentBlockHooks","formatMetricValue","MetricSkeleton","resolveTrend","MetricTrendChip","defaultAnalyticsStrings","useMetricFormatOptions","Fragment$1","query","subscribe","media","onChange","getSnapshot","getServerSnapshot","usePrefersReducedMotion","useSyncExternalStore","TREND_COLORS","MetricSparkline","ariaLabel","id","useId","reducedMotion","gradientId","useMemo","stroke","color","trend","chartData","data","value","cn","className","ResponsiveContainer","AreaChart","Area","animated","metricToneRecipes","VALUE_FONT_SIZE","VALUE_FONT_SIZE_HERO","HERO_ADAPTIVE","SPARKLINE_HEIGHT","SEGMENT_COUNT","FIGURE_TAG","Metric","props","rootClassName","formatOptions","formattedValue","loading","error","message","errorLabel","variant","size","sharedProps","tone","MetricCard","MetricCompact","MetricMinimal","MetricBordered","MetricAccent","MetricColored","MetricDefault","Icon","showIcon","showChange","showSparkline","isInteractive","Value","tint","clamped","progress","filledCount","progressLabel","i","ArrowUpRight","MetricBar","cells","metrics","metric","showSparklines","showChanges","periodChip","period","onPeriodChange","Calendar","footerText","COLUMN_CLASS","autoColumnsFor","count","MetricGrid","columnsClass","columns","showIcons","DEFAULT_ORDER","CHART_COLORS","PIE_PALETTE","CHART_TRACK","MicroBars","max","v","MicroLine","min","range","points","MicroDots","MicroProgress","label","MicroAreaChart","gradId","MicroPie","total","a","b","cumAngle","angle","startAngle","startRad","endRad","largeArc","x1","y1","x2","y2","ChartFor","kind","COLUMNS","MetricMicroGrid","visible","title","cell","THEME_BG","CHART_INVERSE","CHART_INVERSE_SOFT","MetricGradient","theme","subtitle","change","ChartCard","paddingProp","footer","surface","contentClassName","chartClassName"],"sources":["../../../src/lib/use-prefers-reduced-motion.ts","../../../src/components/blocks/analytics/atoms/metric-sparkline.tsx","../../../src/components/blocks/analytics/metric/metric.tsx","../../../src/components/blocks/analytics/metric-bar/metric-bar.tsx","../../../src/components/blocks/analytics/metric-grid/metric-grid.tsx","../../../src/components/blocks/analytics/metric-micro-grid/metric-micro-grid.tsx","../../../src/components/blocks/analytics/metric-gradient/metric-gradient.tsx","../../../src/components/blocks/analytics/chart-card/chart-card.tsx"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nconst query = '(prefers-reduced-motion: reduce)';\n\nfunction subscribe(onChange: () => void) {\n\tif (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return () => {};\n\tconst media = window.matchMedia(query);\n\tmedia.addEventListener('change', onChange);\n\treturn () => media.removeEventListener('change', onChange);\n}\n\nfunction getSnapshot() {\n\treturn typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n\t\t? window.matchMedia(query).matches\n\t\t: false;\n}\n\n// Keep server/hydration markup still until the browser supplies its preference.\nfunction getServerSnapshot() {\n\treturn true;\n}\n\n/** Private preference owner for JavaScript-driven drawing animations. */\nexport function usePrefersReducedMotion() {\n\treturn useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n","/**\n * MetricSparkline — recharts-backed mini area chart used inside Metric\n * variants. Auto-stretches to its container; pass a fixed height (e.g.\n * `h-8 w-full`) on the wrapper. `trend` colours the stroke + gradient\n * (positive/negative/neutral); `color` overrides with any CSS colour\n * (semantic var, hex, rgb).\n */\nimport { useId, useMemo } from 'react';\nimport { Area, AreaChart, ResponsiveContainer } from 'recharts';\nimport { cn } from '../../../../lib/utils';\nimport { usePrefersReducedMotion } from '../../../../lib/use-prefers-reduced-motion';\n\nimport type { MetricTrend } from '../types';\n\nexport interface MetricSparklineProps {\n\t/** Data points to plot, in chronological order. */\n\tdata: readonly number[];\n\ttrend?: MetricTrend;\n\tcolor?: string;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\tanimated?: boolean;\n\t'aria-label'?: string;\n}\n\nconst TREND_COLORS: Record<MetricTrend, string> = {\n\tpositive: 'var(--success)',\n\tnegative: 'var(--destructive)',\n\tneutral: 'var(--muted-foreground)',\n};\n\nexport function MetricSparkline({\n\tdata,\n\ttrend = 'neutral',\n\tcolor,\n\tclassName,\n\tanimated = true,\n\t'aria-label': ariaLabel = 'Trend sparkline',\n}: MetricSparklineProps) {\n\tconst id = useId();\n\tconst reducedMotion = usePrefersReducedMotion();\n\tconst gradientId = useMemo(() => `metric-spark-${id.replaceAll(':', '')}`, [id]);\n\tconst stroke = color ?? TREND_COLORS[trend];\n\n\tconst chartData = useMemo(() => {\n\t\tif (!Array.isArray(data) || data.length === 0) return [];\n\t\treturn data.map((value, i) => ({ i, v: value }));\n\t}, [data]);\n\n\tif (chartData.length === 0) {\n\t\treturn <div className={cn('metric-sparkline--component', 'h-full w-full', className)} aria-hidden=\"true\" />;\n\t}\n\n\treturn (\n\t\t<div className={cn('metric-sparkline--component h-full w-full', className)} role=\"img\" aria-label={ariaLabel}>\n\t\t\t<ResponsiveContainer width=\"100%\" height=\"100%\" initialDimension={{ width: 1, height: 1 }}>\n\t\t\t\t<AreaChart data={chartData} margin={{ top: 2, right: 0, bottom: 0, left: 0 }}>\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<linearGradient id={gradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n\t\t\t\t\t\t\t<stop offset=\"0%\" stopColor={stroke} stopOpacity={0.25} />\n\t\t\t\t\t\t\t<stop offset=\"100%\" stopColor={stroke} stopOpacity={0} />\n\t\t\t\t\t\t</linearGradient>\n\t\t\t\t\t</defs>\n\t\t\t\t\t<Area\n\t\t\t\t\t\ttype=\"monotone\"\n\t\t\t\t\t\tdataKey=\"v\"\n\t\t\t\t\t\tstroke={stroke}\n\t\t\t\t\t\tstrokeWidth={1.75}\n\t\t\t\t\t\tfill={`url(#${gradientId})`}\n\t\t\t\t\t\tdot={false}\n\t\t\t\t\t\tactiveDot={false}\n\t\t\t\t\t\tisAnimationActive={animated && !reducedMotion}\n\t\t\t\t\t\tanimationDuration={600}\n\t\t\t\t\t/>\n\t\t\t\t</AreaChart>\n\t\t\t</ResponsiveContainer>\n\t\t</div>\n\t);\n}\n\nMetricSparkline.displayName = 'MetricSparkline';\n","/**\n * Metric — canonical single-metric surface. One component, seven variants:\n *\n * default — flat tile (label / value / trend / sparkline) for use inside\n * MetricBar or other blocks surfaces.\n * card — standalone metric using the canonical Card surface.\n * compact — single-row icon + label + value + chip. Sidebar / list use.\n * minimal — inline `Label: value ↑12%` chip for in-flow copy.\n * bordered — soft tinted border keyed off `tone`.\n * accent — dark surface card with bottom-aligned area sparkline.\n * colored — segmented progress bar (driven by `progress` prop).\n *\n * All variants share the same `MetricData` shape; only the layout changes.\n */\nimport { useMemo } from 'react';\nimport { ArrowUpRight } from 'lucide-react';\n\nimport { Card } from '../../../base/cards';\nimport { IconBadge } from '../../../base/display/icon-badge';\nimport { Stack } from '../../../base/structure';\nimport { Value } from '../../../primitives';\nimport { DisplayLabel, Heading, Text, type HeadingSize } from '../../../typography';\nimport type { SemanticTone } from '../../../../lib/component-vocabulary';\nimport { formatPercentage } from '../../../../lib/format';\nimport { useFormattingConfig } from '../../../../lib/ui-provider';\nimport { cn } from '../../../../lib/utils';\n\nimport { defaultAnalyticsStrings } from '../analytics.strings';\nimport { MetricSkeleton } from '../atoms/metric-skeleton';\nimport { MetricSparkline } from '../atoms/metric-sparkline';\nimport { MetricTrendChip } from '../atoms/metric-trend-chip';\nimport { formatMetricValue, resolveTrend } from '../format-metric-value';\nimport { useMetricFormatOptions } from '../use-metric-format-options';\nimport type {\n\tMetricData,\n\tMetricSize,\n\tMetricVariant,\n} from '../types';\nimport { focusRecipes } from '../../../../lib/focus-recipes';\nimport { dotRecipes, toneRecipes } from '../../../../lib/tone-recipes';\nimport { interactionRecipes } from '../../../../lib/interaction-recipes';\n\nexport interface MetricProps {\n\t/** Records to render. */\n\tdata: MetricData;\n\t/** Shell treatment. */\n\tvariant?: MetricVariant;\n\t/** Size preset. */\n\tsize?: MetricSize;\n\t/** Tone for bordered surfaces and colored progress. Defaults to neutral; the `colored` variant defaults to primary. */\n\ttone?: SemanticTone;\n\t/** Renders the sparkline. */\n\tshowSparkline?: boolean;\n\t/** Renders the change. */\n\tshowChange?: boolean;\n\t/** Renders the icon. */\n\tshowIcon?: boolean;\n\tloading?: boolean;\n\terror?: boolean;\n\terrorLabel?: string;\n\t/** `colored` variant only — 0-100 fill percentage. Values outside the range are clamped. */\n\tprogress?: number;\n\t/** `colored` variant only — accessible name of the progress bar. Defaults to \"<label> progress\". */\n\tprogressLabel?: string;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t'aria-label'?: string;\n}\n\nconst metricToneRecipes = {\n\t...toneRecipes,\n\tneutral: { edge: 'border-border', wash: 'bg-card', solid: 'bg-foreground' },\n\tsecondary: { edge: 'border-border', wash: 'bg-secondary text-secondary-foreground', solid: 'bg-secondary-foreground' },\n} satisfies Record<SemanticTone, { edge: string; wash: string; solid: string }>;\n\n/** Compact value sizes for in-grid / in-bar usage where horizontal space is tight. */\nconst VALUE_FONT_SIZE: Record<MetricSize, HeadingSize> = {\n\tsm: 'sm',\n\tmd: 'base',\n\tlg: 'base',\n};\n\n/** Hero value sizes for standalone card / bordered / accent variants. */\nconst VALUE_FONT_SIZE_HERO: Record<MetricSize, HeadingSize> = {\n\tsm: '2xl',\n\tmd: '2xl',\n\tlg: '3xl',\n};\n\nconst HERO_ADAPTIVE: Record<MetricSize, string> = {\n\tsm: '@max-[11rem]/metric-card:text-xl',\n\tmd: '@max-[11rem]/metric-card:text-xl',\n\tlg: '@max-[16rem]/metric-card:text-2xl @max-[11rem]/metric-card:text-xl',\n};\n\nconst SPARKLINE_HEIGHT: Record<MetricSize, string> = {\n\tsm: 'h-control-sm',\n\tmd: 'h-control',\n\tlg: 'h-control-lg',\n};\n\nconst SEGMENT_COUNT = 16;\n\n/**\n * A metric value keeps the heading scale but is a figure, not a section title:\n * Heading's display tag keeps it out of the document outline at every size.\n */\nconst FIGURE_TAG = 'p';\n\nexport function Metric(props: MetricProps) {\n\tconst {\n\t\tdata,\n\t\tvariant = 'default',\n\t\tsize = 'md',\n\t\ttone,\n\t\tshowSparkline = true,\n\t\tshowChange = true,\n\t\tshowIcon = true,\n\t\tloading = false,\n\t\terror = false,\n\t\terrorLabel,\n\t\tprogress = 0,\n\t\tprogressLabel,\n\t\tclassName,\n\t\t'aria-label': ariaLabel,\n\t} = props;\n\tconst rootClassName = cn('metric--component', className);\n\n\tconst formatOptions = useMetricFormatOptions();\n\tconst formattedValue = useMemo(() => formatMetricValue(data, formatOptions), [data, formatOptions]);\n\tconst trend = useMemo(() => resolveTrend(data), [data]);\n\n\tif (loading) return <MetricSkeleton variant={variant} size={size} className={rootClassName} />;\n\tif (error) {\n\t\tconst message = errorLabel ?? defaultAnalyticsStrings.metricErrorLabel;\n\t\t// The error takes the shell of the variant it replaces: an inline chip\n\t\t// stays inline, a frameless tile stays frameless, a card stays a card.\n\t\tif (variant === 'minimal') {\n\t\t\treturn <Text tag=\"span\" role=\"alert\" size={size === 'lg' ? 'sm' : 'xs'} type=\"secondary\" className={rootClassName}>{message}</Text>;\n\t\t}\n\t\tif (variant === 'default' || variant === 'compact') {\n\t\t\treturn <Text role=\"alert\" type=\"secondary\" className={rootClassName}>{message}</Text>;\n\t\t}\n\t\treturn (\n\t\t\t<Card className={rootClassName} contentClassName=\"flex items-center justify-center\">\n\t\t\t\t<Text role=\"alert\" type=\"inherit\">{message}</Text>\n\t\t\t</Card>\n\t\t);\n\t}\n\n\t// A colored metric draws primary progress unless a tone states otherwise.\n\tconst resolvedTone: SemanticTone = tone ?? (variant === 'colored' ? 'primary' : 'neutral');\n\tconst sharedProps = {\n\t\tdata,\n\t\tformattedValue,\n\t\ttrend,\n\t\tsize,\n\t\tshowSparkline,\n\t\tshowChange,\n\t\tshowIcon,\n\t\ttone: resolvedTone,\n\t\tariaLabel: ariaLabel ?? data.label,\n\t\tclassName: rootClassName,\n\t};\n\n\tswitch (variant) {\n\t\tcase 'card':\n\t\t\treturn <MetricCard {...sharedProps} />;\n\t\tcase 'compact':\n\t\t\treturn <MetricCompact {...sharedProps} />;\n\t\tcase 'minimal':\n\t\t\treturn <MetricMinimal {...sharedProps} />;\n\t\tcase 'bordered':\n\t\t\treturn <MetricBordered {...sharedProps} />;\n\t\tcase 'accent':\n\t\t\treturn <MetricAccent {...sharedProps} />;\n\t\tcase 'colored':\n\t\t\treturn <MetricColored {...sharedProps} progress={progress} progressLabel={progressLabel} />;\n\t\tdefault:\n\t\t\treturn <MetricDefault {...sharedProps} />;\n\t}\n}\n\nMetric.displayName = 'Metric';\n\n// ─────────────────────────────────────────────────────────────────────────\n// Internal sub-components — kept private. Each handles one variant only.\n// ─────────────────────────────────────────────────────────────────────────\n\ninterface SubProps {\n\t/** Records to render. */\n\tdata: MetricData;\n\tformattedValue: string;\n\ttrend: 'positive' | 'negative' | 'neutral';\n\t/** Size preset. */\n\tsize: MetricSize;\n\t/** Renders the sparkline. */\n\tshowSparkline: boolean;\n\t/** Renders the change. */\n\tshowChange: boolean;\n\t/** Renders the icon. */\n\tshowIcon: boolean;\n\ttone: SemanticTone;\n\t/** Accessible name for the region. */\n\tariaLabel: string;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nfunction MetricDefault({ data, formattedValue, trend, size, showSparkline, showChange, showIcon, ariaLabel, className }: SubProps) {\n\tconst Icon = data.icon;\n\treturn (\n\t\t<Stack gap=\"xs\" role=\"group\" className={className} aria-label={ariaLabel}>\n\t\t\t<Stack direction=\"horizontal\" align=\"center\" gap=\"sm\" className=\"min-w-0 text-muted-foreground\">\n\t\t\t\t{!!showIcon && !!Icon && <Icon className=\"size-icon-md shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\" className=\"truncate\">{data.label}</Text>\n\t\t\t</Stack>\n\t\t\t<Heading tag={FIGURE_TAG} size={VALUE_FONT_SIZE[size]} className=\"truncate tabular-nums text-inherit\" title={formattedValue}>\n\t\t\t\t{formattedValue}\n\t\t\t</Heading>\n\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size={size} variant=\"compact\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!data.subtitle && <Text size=\"xs\" type=\"secondary\" className=\"truncate\">{data.subtitle}</Text>}\n\t\t\t{!!showSparkline && !!data.sparkline?.length && (\n\t\t\t\t<MetricSparkline data={data.sparkline} trend={trend} className={cn('mt-auto', SPARKLINE_HEIGHT[size])} />\n\t\t\t)}\n\t\t\t{!!data.footer && <Text size=\"xs\" type=\"discrete\" className=\"truncate\">{data.footer}</Text>}\n\t\t</Stack>\n\t);\n}\n\nfunction MetricCard({ data, formattedValue, trend, size, showSparkline, showChange, showIcon, ariaLabel, className }: SubProps) {\n\tconst Icon = data.icon;\n\tconst isInteractive = Boolean(data.href || data.onClick);\n\tconst card = (\n\t\t<Card\n\t\t\ttitle={<Text tag=\"span\" size=\"xs\" type=\"secondary\" weight=\"medium\">{data.label}</Text>}\n\t\t\ticon={!!showIcon && !!Icon ? <Icon className=\"size-icon\" aria-hidden=\"true\" /> : null}\n\t\t\ttooltip={data.tooltip}\n\t\t\tclassName={cn('@container/metric-card', isInteractive && 'relative transition-shadow hover:shadow-md [&_.card--tooltip-trigger]:relative [&_.card--tooltip-trigger]:z-10', className)}\n\t\t\taria-label={ariaLabel}\n\t\t>\n\t\t\t{isInteractive && (data.href ? <a href={data.href} onClick={data.onClick} aria-label={ariaLabel} className={`metric--action absolute inset-0 z-0 rounded-surface focus-visible:outline-none ${focusRecipes.inset}`} /> : <button type=\"button\" onClick={data.onClick} aria-label={ariaLabel} className={`metric--action ${interactionRecipes.nativeButtonReset} absolute inset-0 z-0 cursor-pointer rounded-surface focus-visible:outline-none ${focusRecipes.inset}`} />)}\n\t\t\t<Stack gap=\"normal\">\n\t\t\t\t<Stack direction=\"horizontal\" align=\"baseline\" justify=\"between\" gap=\"sm\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag={FIGURE_TAG}\n\t\t\t\t\t\tsize={VALUE_FONT_SIZE_HERO[size]}\n\t\t\t\t\t\tclassName={cn('max-w-full break-words tabular-nums text-inherit', HERO_ADAPTIVE[size])}\n\t\t\t\t\t>\n\t\t\t\t\t\t{formattedValue}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size={size} variant=\"badge\" className=\"@max-[16rem]/metric-card:px-space-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t\t{!!data.subtitle && <Text type=\"secondary\">{data.subtitle}</Text>}\n\t\t\t\t{!!showSparkline && !!data.sparkline?.length && (\n\t\t\t\t\t<MetricSparkline\n\t\t\t\t\t\tdata={data.sparkline}\n\t\t\t\t\t\ttrend={trend}\n\t\t\t\t\t\tclassName={size === 'lg' ? 'h-control-lg' : 'h-control'}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{!!data.footer && <Text size=\"xs\" type=\"secondary\">{data.footer}</Text>}\n\t\t\t</Stack>\n\t\t</Card>\n\t);\n\n\treturn card;\n}\n\nfunction MetricCompact({ data, formattedValue, size, showChange, showIcon, ariaLabel, className }: SubProps) {\n\tconst Icon = data.icon;\n\treturn (\n\t\t<div role=\"group\" className={cn('flex items-center gap-space-lg', className)} aria-label={ariaLabel}>\n\t\t\t{!!showIcon && !!Icon && <IconBadge icon={Icon} tone=\"secondary\" shape=\"square\" size=\"md\" />}\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">{data.label}</Text>\n\t\t\t\t<Value type=\"inherit\" size={size === 'sm' ? 'sm' : 'base'} weight=\"bold\" className=\"block truncate tabular-nums\">\n\t\t\t\t\t{formattedValue}\n\t\t\t\t</Value>\n\t\t\t</div>\n\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size={size} variant=\"badge\" className=\"shrink-0\" />\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction MetricMinimal({ data, formattedValue, size, showChange, ariaLabel, className }: SubProps) {\n\treturn (\n\t\t<span role=\"group\" className={cn('inline-flex items-baseline gap-space-md', className)} aria-label={ariaLabel}>\n\t\t\t<Text tag=\"span\" size={size === 'lg' ? 'sm' : 'xs'} type=\"secondary\">{data.label}:</Text>\n\t\t\t<Value type=\"inherit\" size={size === 'lg' ? 'sm' : 'xs'} weight=\"semibold\" className=\"tabular-nums\">{formattedValue}</Value>\n\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size=\"sm\" variant=\"inline\" />\n\t\t\t)}\n\t\t</span>\n\t);\n}\n\nfunction MetricBordered({ data, formattedValue, trend, size, showSparkline, showChange, showIcon, tone, ariaLabel, className }: SubProps) {\n\tconst Icon = data.icon;\n\tconst tint = metricToneRecipes[tone];\n\treturn (\n\t\t<Card surface=\"card\" className={cn(tint.edge, tint.wash, className)} aria-label={ariaLabel}>\n\t\t\t<Stack gap=\"lg\">\n\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"md\">\n\t\t\t\t\t<div className=\"flex items-center gap-space-md text-muted-foreground\">\n\t\t\t\t\t\t{!!showIcon && !!Icon && <Icon className=\"size-icon shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\">{data.label}</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size={size} variant=\"badge\" />\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t\t<Heading\n\t\t\t\t\ttag={FIGURE_TAG}\n\t\t\t\t\tsize={VALUE_FONT_SIZE_HERO[size]}\n\t\t\t\t\tclassName=\"tabular-nums text-inherit\"\n\t\t\t\t>\n\t\t\t\t\t{formattedValue}\n\t\t\t\t</Heading>\n\t\t\t\t{!!data.subtitle && <Text size=\"xs\" type=\"secondary\">{data.subtitle}</Text>}\n\t\t\t\t{!!showSparkline && !!data.sparkline?.length && (\n\t\t\t\t\t<MetricSparkline data={data.sparkline} trend={trend} className={SPARKLINE_HEIGHT[size]} />\n\t\t\t\t)}\n\t\t\t\t{!!data.footer && <Text size=\"xs\" type=\"discrete\">{data.footer}</Text>}\n\t\t\t</Stack>\n\t\t</Card>\n\t);\n}\n\nfunction MetricAccent({ data, formattedValue, trend, size, showSparkline, showChange, showIcon, ariaLabel, className }: SubProps) {\n\tconst Icon = data.icon;\n\t// A dark-scoped card whose sparkline bleeds to the frame edge, like media:\n\t// the card owns the frame and the copy region owns the one inset.\n\treturn (\n\t\t<Card surface=\"card\" padding=\"none\" className={cn('dark', className)} aria-label={ariaLabel}>\n\t\t\t<Stack gap=\"md\" className=\"p-surface\">\n\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"lg\">\n\t\t\t\t\t<DisplayLabel className=\"text-inherit\">\n\t\t\t\t\t\t{data.label}\n\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t{!!showIcon && !!Icon && (\n\t\t\t\t\t\t<IconBadge tone=\"secondary\" shape=\"square\" size=\"sm\">\n\t\t\t\t\t\t\t<Icon className=\"size-icon-md\" aria-hidden=\"true\" />\n\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t\t<div className=\"flex items-baseline gap-space-md\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag={FIGURE_TAG}\n\t\t\t\t\t\tsize={VALUE_FONT_SIZE_HERO[size]}\n\t\t\t\t\t\tclassName=\"tabular-nums text-inherit\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{formattedValue}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size={size} variant=\"compact\" />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{!!data.subtitle && <Text size=\"xs\" type=\"secondary\">{data.subtitle}</Text>}\n\t\t\t</Stack>\n\t\t\t{!!showSparkline && !!data.sparkline?.length && (\n\t\t\t\t<MetricSparkline data={data.sparkline} trend={trend} className=\"h-control-lg w-full\" />\n\t\t\t)}\n\t\t</Card>\n\t);\n}\n\nfunction MetricColored({ data, formattedValue, size, showChange, tone, ariaLabel, className, progress = 0, progressLabel }: SubProps & { progress?: number; progressLabel?: string }) {\n\tconst tint = metricToneRecipes[tone];\n\tconst { locale } = useFormattingConfig();\n\tconst clamped = Math.min(Math.max(progress, 0), 100);\n\tconst filledCount = Math.round((clamped / 100) * SEGMENT_COUNT);\n\treturn (\n\t\t<Card surface=\"card\" className={className} aria-label={ariaLabel}>\n\t\t\t<Stack gap=\"lg\">\n\t\t\t\t<Stack gap=\"md\">\n\t\t\t\t\t<div className=\"flex items-center gap-space-md\">\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\" className=\"truncate\">{data.label}</Text>\n\t\t\t\t\t\t<span className={cn(dotRecipes.inline, tint.solid)} aria-hidden=\"true\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* A figure never breaks mid-number; its unit wraps under it instead. */}\n\t\t\t\t\t<div className=\"flex flex-wrap items-baseline gap-x-space-md\">\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag={FIGURE_TAG}\n\t\t\t\t\t\t\tsize={VALUE_FONT_SIZE_HERO[size]}\n\t\t\t\t\t\t\tclassName=\"whitespace-nowrap tabular-nums text-inherit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formattedValue}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{!!data.subtitle && <Text size=\"xs\" type=\"secondary\">{data.subtitle}</Text>}\n\t\t\t\t\t</div>\n\t\t\t\t</Stack>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"flex items-center gap-space-2xs\"\n\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\taria-label={progressLabel ?? `${data.label} progress`}\n\t\t\t\t\taria-valuenow={clamped}\n\t\t\t\t\taria-valuemin={0}\n\t\t\t\t\taria-valuemax={100}\n\t\t\t\t\taria-valuetext={formatPercentage(clamped, { locale, scaled: true, maximumFractionDigits: 0 })}\n\t\t\t\t>\n\t\t\t\t\t{Array.from({ length: SEGMENT_COUNT }, (_, i) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={`seg-${i}`}\n\t\t\t\t\t\t\tclassName={cn('h-6 w-1.5 rounded-radius-sm transition-colors', i < filledCount ? tint.solid : 'bg-muted')}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t{(!!(showChange && data.change) || !!data.footer) && (\n\t\t\t\t\t<Stack gap=\"md\">\n\t\t\t\t\t\t{!!showChange && !!data.change && (\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<MetricTrendChip change={data.change} trend={data.trend} size={size} variant=\"default\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!data.footer && (\n\t\t\t\t\t\t\t<div className=\"inline-flex items-center gap-space-xs text-muted-foreground\">\n\t\t\t\t\t\t\t\t<ArrowUpRight className=\"size-icon-sm\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{data.footer}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t</Card>\n\t);\n}\n","/**\n * MetricBar — horizontal strip of metrics with an optional period selector\n * on the leading edge. Cells are divided by hairlines so a row of 4 KPIs\n * reads as a single integrated module rather than disconnected cards.\n *\n * Variants:\n * `default` — flat hairline-divided bar with period chip on the left.\n * Best for tables/dashboards where the bar sits above content.\n * `gradient` — same layout wrapped in a tinted gradient frame for hero\n * placement.\n *\n * Always render `Metric` cells inside; never render layout-specific markup\n * directly. That keeps the formatting / colouring rules in one place.\n */\nimport { Calendar } from 'lucide-react';\nimport { Button } from '../../../base/buttons';\nimport { Stack } from '../../../base/structure';\nimport { Text } from '../../../typography';\nimport { regionRecipes, surfaceRecipes } from '../../../../lib/surface-recipes';\nimport { cn } from '../../../../lib/utils';\n\nimport { Metric } from '../metric/metric';\nimport type { MetricData, MetricPeriod, MetricSize } from '../types';\n\nexport type MetricBarVariant = 'default' | 'gradient';\n\nexport interface MetricBarProps {\n\tmetrics: MetricData[];\n\tperiod?: MetricPeriod;\n\tonPeriodChange?: (value: string) => void;\n\t/** Shell treatment. */\n\tvariant?: MetricBarVariant;\n\t/** Size preset. */\n\tsize?: MetricSize;\n\t/** Renders the sparklines. */\n\tshowSparklines?: boolean;\n\t/** Renders the changes. */\n\tshowChanges?: boolean;\n\tfooterText?: string;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nexport function MetricBar({\n\tmetrics,\n\tperiod,\n\tonPeriodChange,\n\tvariant = 'default',\n\tsize = 'sm',\n\tshowSparklines = true,\n\tshowChanges = true,\n\tfooterText,\n\tclassName,\n}: MetricBarProps) {\n\tconst cells = (\n\t\t<div className=\"grid min-w-0 flex-1 grid-cols-1 divide-y divide-border @xl/metric-bar:flex @xl/metric-bar:items-stretch @xl/metric-bar:divide-x @xl/metric-bar:divide-y-0\">\n\t\t\t{metrics.map((metric) => (\n\t\t\t\t// The cell is a full-height flex column and the Metric stretches into\n\t\t\t\t// it so `MetricDefault`'s `mt-auto` sparkline resolves against real\n\t\t\t\t// leftover height. Without this, a metric carrying an optional\n\t\t\t\t// subtitle grows taller and its sparkline drops off the shared\n\t\t\t\t// baseline the rest of the strip sits on.\n\t\t\t\t<div key={metric.id} className=\"flex min-w-0 flex-col px-surface py-row-y @xl/metric-bar:min-w-36 @xl/metric-bar:flex-1\">\n\t\t\t\t\t<Metric\n\t\t\t\t\t\tdata={metric}\n\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tshowSparkline={showSparklines}\n\t\t\t\t\t\tshowChange={showChanges}\n\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n\n\tconst periodChip = !!period && (\n\t\t<div className=\"flex shrink-0 items-center border-b border-border px-row-x py-row-y @xl/metric-bar:border-b-0 @xl/metric-bar:py-0\">\n\t\t\t{onPeriodChange ? (\n\t\t\t\t<Button\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tclassName=\"gap-space-sm\"\n\t\t\t\t\tonClick={() => onPeriodChange(period.value)}\n\t\t\t\t>\n\t\t\t\t\t<Calendar className=\"size-icon-md\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text type=\"inherit\" size=\"inherit\" weight=\"medium\">{period.label}</Text>\n\t\t\t\t</Button>\n\t\t\t) : (\n\t\t\t\t// Nothing handles a change, so the period is a label rather than a\n\t\t\t\t// focusable control that does nothing.\n\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" gap=\"sm\" wrap={false} className=\"metric-bar--period text-muted-foreground\">\n\t\t\t\t\t<Calendar className=\"size-icon-md shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text type=\"inherit\" weight=\"medium\">{period.label}</Text>\n\t\t\t\t</Stack>\n\t\t\t)}\n\t\t</div>\n\t);\n\n\tif (variant === 'gradient') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn('metric-bar--component box-border @container/metric-bar',\n\t\t\t\t\t'w-full',\n\t\t\t\t\t// A decorative frame tint: chart roles, not primary (near-black by\n\t\t\t\t\t// default) or status tones, which would state a condition.\n\t\t\t\t\t'rounded-surface bg-gradient-to-r from-chart-3/8 via-chart-2/5 to-chart-1/8 p-px',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"flex min-w-0 flex-col overflow-hidden rounded-surface bg-card text-card-foreground @xl/metric-bar:flex-row\">\n\t\t\t\t\t{periodChip && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{periodChip}\n\t\t\t\t\t\t\t<div className=\"hidden w-px bg-border @xl/metric-bar:block\" aria-hidden=\"true\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{cells}\n\t\t\t\t</div>\n\t\t\t\t{!!footerText && (\n\t\t\t\t\t<div className={cn('rounded-b-surface bg-card text-card-foreground px-surface py-row-y', regionRecipes.footer)}>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\">{footerText}</Text>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'metric-bar--component box-border @container/metric-bar flex w-full flex-col overflow-hidden', surfaceRecipes.frame,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-col overflow-hidden @xl/metric-bar:flex-row\">\n\t\t\t\t{periodChip && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{periodChip}\n\t\t\t\t\t\t<div className=\"hidden w-px bg-border @xl/metric-bar:block\" aria-hidden=\"true\" />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{cells}\n\t\t\t</div>\n\t\t\t{!!footerText && (\n\t\t\t\t<div className={cn('px-surface py-row-y', regionRecipes.footer)}>\n\t\t\t\t\t<Text size=\"xs\" type=\"discrete\">{footerText}</Text>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nMetricBar.displayName = 'MetricBar';\n","/**\n * MetricGrid — responsive grid of `Metric` cells. The grid is the workhorse\n * for KPI rows on dashboards: pass a list, choose a variant, and the\n * component handles layout / column counts / spacing.\n *\n * Variants are forwarded to `Metric` so a single grid can show either\n * standalone cards, bordered tints, or compact list rows.\n *\n * Column counts default to `auto` — the grid breaks based on the cell count.\n * Override with `columns` to set the maximum number of tracks.\n *\n * Every break is a container query against the grid's own width, not the\n * viewport's. A KPI row is routinely dropped into a sidebar, a drawer, or one\n * half of a split view; keyed to the viewport, six metrics in a 300px rail on\n * a desktop screen rendered as six ~40px columns.\n */\nimport { Grid } from '../../../base/structure';\nimport { cn } from '../../../../lib/utils';\n\nimport { Metric, type MetricProps } from '../metric/metric';\nimport type {\n\tMetricData,\n\tMetricSize,\n\tMetricVariant,\n} from '../types';\n\nexport interface MetricGridProps extends Pick<MetricProps, 'tone'> {\n\t/** Metrics rendered as one responsive peer collection. */\n\tmetrics: MetricData[];\n\t/** Cell variant. `card` composes the canonical Card surface. */\n\tvariant?: Extract<MetricVariant, 'card' | 'compact' | 'bordered' | 'accent' | 'colored'>;\n\t/** Shared visual size forwarded to every metric. */\n\tsize?: MetricSize;\n\t/** Maximum column count; narrower parents use fewer tracks. `auto` chooses from the cell count. */\n\tcolumns?: 'auto' | 1 | 2 | 3 | 4 | 6;\n\t/** Peer spacing. Defaults to `xl`; use denser gaps explicitly for compact lists. */\n\tgap?: 'sm' | 'md' | 'lg' | 'xl';\n\t/** Show each metric's sparkline when data is available. */\n\tshowSparklines?: boolean;\n\t/** Show each metric's change indicator when data is available. */\n\tshowChanges?: boolean;\n\t/** Show each metric's icon when data is available. */\n\tshowIcons?: boolean;\n\t/** Render loading skeletons without changing the grid or card geometry. */\n\tloading?: boolean;\n\t/**\n\t * Additional classes for the component root. The root owns the query\n\t * container; the responsive `grid-cols-*` live on the grid inside it, so pin\n\t * a layout with `columns` rather than a class here.\n\t */\n\tclassName?: string;\n}\n\n// Parent-width tiers give framed metrics room for their shared surface insets,\n// primary labels and formatted values. Requested columns are a ceiling, never\n// a reason to squeeze desktop tracks into a narrow shell or drawer.\nconst COLUMN_CLASS: Record<Exclude<NonNullable<MetricGridProps['columns']>, 'auto'>, string> = {\n\t1: 'grid-cols-1',\n\t2: 'grid-cols-1 @md/metric-grid:grid-cols-2',\n\t3: 'grid-cols-1 @2xl/metric-grid:grid-cols-3',\n\t4: 'grid-cols-1 @md/metric-grid:grid-cols-2 @5xl/metric-grid:grid-cols-4',\n\t6: 'grid-cols-1 @md/metric-grid:grid-cols-2 @3xl/metric-grid:grid-cols-3 @7xl/metric-grid:grid-cols-6',\n};\n\nfunction autoColumnsFor(count: number): string {\n\tconst maximum = count <= 1 ? 1 : count === 2 ? 2 : count === 3 ? 3 : count <= 4 || count > 6 ? 4 : 6;\n\treturn COLUMN_CLASS[maximum];\n}\n\nexport function MetricGrid({\n\tmetrics,\n\tvariant = 'card',\n\tsize = 'md',\n\ttone,\n\tcolumns = 'auto',\n\tgap = 'xl',\n\tshowSparklines = true,\n\tshowChanges = true,\n\tshowIcons = true,\n\tloading = false,\n\tclassName,\n}: MetricGridProps) {\n\tconst columnsClass = columns === 'auto' ? autoColumnsFor(metrics.length) : COLUMN_CLASS[columns];\n\n\treturn (\n\t\t/*\n\t\t * The root exists to be the query container: an element cannot match its\n\t\t * own container query, so the grid whose columns react has to sit inside\n\t\t * the element being measured. Same shape as product-details-card.\n\t\t */\n\t\t<div className={cn('metric-grid--component @container/metric-grid', className)}>\n\t\t\t<Grid\n\t\t\t\tcolumns={1}\n\t\t\t\tgap={gap}\n\t\t\t\tclassName={cn('metric-grid--grid', columnsClass)}\n\t\t\t>\n\t\t\t\t{metrics.map((metric) => (\n\t\t\t\t\t<Metric\n\t\t\t\t\t\tkey={metric.id}\n\t\t\t\t\t\tdata={metric}\n\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\ttone={tone}\n\t\t\t\t\t\tshowSparkline={showSparklines}\n\t\t\t\t\t\tshowChange={showChanges}\n\t\t\t\t\t\tshowIcon={showIcons}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Grid>\n\t\t</div>\n\t);\n}\n\nMetricGrid.displayName = 'MetricGrid';\n","/**\n * MetricMicroGrid — six-cell dense KPI overview where each cell pairs a\n * label/value with a different lightweight visualization (bars / line /\n * dots / progress / area / pie). Useful as a top-of-page summary widget\n * on a packed dashboard.\n *\n * Cells are positional: index 0 → bars, 1 → line, 2 → dots, 3 → progress,\n * 4 → area, 5 → pie. To pin a specific renderer, pass `chart` per cell.\n */\nimport { useId } from 'react';\nimport { Area, AreaChart, ResponsiveContainer } from 'recharts';\n\nimport { Progress } from '../../../base/feedback';\nimport { Stack } from '../../../base/structure';\nimport { Value } from '../../../primitives';\nimport { DisplayLabel } from '../../../typography';\nimport { cn } from '../../../../lib/utils';\nimport { usePrefersReducedMotion } from '../../../../lib/use-prefers-reduced-motion';\n\nexport type MicroChartKind = 'bars' | 'line' | 'dots' | 'progress' | 'area' | 'pie';\n\nexport interface MicroMetricCell {\n\t/** Stable identity for this entry. */\n\tid?: string;\n\t/** Display label. */\n\tlabel: string;\n\t/** Current value. Controlled. */\n\tvalue: string;\n\t/** Records to render. */\n\tdata: readonly number[];\n\tchart?: MicroChartKind;\n}\n\nexport interface MetricMicroGridProps {\n\t/** Surface title. */\n\ttitle?: string;\n\tcells: readonly MicroMetricCell[];\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nconst DEFAULT_ORDER: MicroChartKind[] = ['bars', 'line', 'dots', 'progress', 'area', 'pie'];\n\n// Every single-series micro chart draws in the first chart colour: the cell's\n// label says what it measures, so a different hue per chart kind would be\n// decoration, and status colours (success/warning/info) would imply a state.\nconst CHART_COLORS: Record<MicroChartKind, string> = {\n\tbars: 'var(--chart-1)',\n\tline: 'var(--chart-1)',\n\tdots: 'var(--chart-1)',\n\tprogress: 'var(--chart-1)',\n\tarea: 'var(--chart-1)',\n\tpie: 'var(--chart-1)',\n};\n\n/** Categorical slices use the categorical chart roles in order. */\nconst PIE_PALETTE = ['var(--chart-1)', 'var(--chart-2)', 'var(--chart-3)'];\n\n// Every micro chart draws in one shared track height, the compact sparkline\n// height Metric uses, so a cell's chart reads at the same scale as its peers.\nconst CHART_TRACK = 'h-control-sm';\n\nfunction MicroBars({ data, color }: { data: readonly number[]; color: string }) {\n\tconst max = Math.max(...data, 1);\n\treturn (\n\t\t<div className={cn('flex items-end gap-space-2xs', CHART_TRACK)}>\n\t\t\t{data.slice(0, 6).map((v, i) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={`bar-${i}`}\n\t\t\t\t\tclassName=\"flex-1 rounded-t-radius-sm\"\n\t\t\t\t\tstyle={{ height: `${(v / max) * 100}%`, backgroundColor: color }}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n\nfunction MicroLine({ data, color }: { data: readonly number[]; color: string }) {\n\tconst max = Math.max(...data, 1);\n\tconst min = Math.min(...data);\n\tconst range = max - min || 1;\n\tconst points = data.slice(0, 6);\n\treturn (\n\t\t<svg viewBox=\"0 0 60 16\" className={cn('w-full', CHART_TRACK)} preserveAspectRatio=\"none\">\n\t\t\t<polyline\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke={color}\n\t\t\t\tstrokeWidth=\"1.5\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tpoints={points\n\t\t\t\t\t.map((v, i) => `${(i / Math.max(points.length - 1, 1)) * 60},${16 - ((v - min) / range) * 14}`)\n\t\t\t\t\t.join(' ')}\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\n// Dots encode position, not length, so like the line they scale between the\n// series minimum and maximum across the whole track.\nfunction MicroDots({ data, color }: { data: readonly number[]; color: string }) {\n\tconst points = data.slice(0, 5);\n\tconst max = Math.max(...points);\n\tconst min = Math.min(...points);\n\tconst range = max - min || 1;\n\treturn (\n\t\t<div className={cn('flex justify-around', CHART_TRACK)} data-intrinsic-geometry>\n\t\t\t{points.map((v, i) => (\n\t\t\t\t<div key={`dot-${i}`} className=\"relative h-full w-1.5\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"absolute inset-x-0 h-1.5 rounded-full\"\n\t\t\t\t\t\tstyle={{ bottom: `calc(${(v - min) / range} * (100% - 0.375rem))`, backgroundColor: color }}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n\n/** The shared Progress meter, drawn in the grid's single chart colour and named by its cell. */\nfunction MicroProgress({ data, label }: { data: readonly number[]; label: string }) {\n\treturn (\n\t\t<Progress\n\t\t\tvalue={data[0] ?? 0}\n\t\t\tmax={data[1] ?? 100}\n\t\t\tsize=\"sm\"\n\t\t\taria-label={label}\n\t\t\tindicatorProps={{ className: 'bg-chart-1' }}\n\t\t/>\n\t);\n}\n\nfunction MicroAreaChart({ data, color }: { data: readonly number[]; color: string }) {\n\tconst id = useId();\n\tconst reducedMotion = usePrefersReducedMotion();\n\tconst gradId = `micro-area-${id.replaceAll(':', '')}`;\n\t// Like the line, the area spans the series range rather than starting at\n\t// zero: measured from the series minimum, a small change still reads.\n\tconst min = Math.min(...data);\n\tconst chartData = data.map((v, i) => ({ i, v: v - min }));\n\treturn (\n\t\t<div className={cn('w-full', CHART_TRACK)}>\n\t\t\t<ResponsiveContainer width=\"100%\" height=\"100%\" initialDimension={{ width: 1, height: 1 }}>\n\t\t\t\t<AreaChart data={chartData} margin={{ top: 0, right: 0, bottom: 0, left: 0 }}>\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<linearGradient id={gradId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n\t\t\t\t\t\t\t<stop offset=\"0%\" stopColor={color} stopOpacity={0.3} />\n\t\t\t\t\t\t\t<stop offset=\"100%\" stopColor={color} stopOpacity={0} />\n\t\t\t\t\t\t</linearGradient>\n\t\t\t\t\t</defs>\n\t\t\t\t\t<Area type=\"monotone\" dataKey=\"v\" stroke={color} strokeWidth={1.25} fill={`url(#${gradId})`} isAnimationActive={!reducedMotion} />\n\t\t\t\t</AreaChart>\n\t\t\t</ResponsiveContainer>\n\t\t</div>\n\t);\n}\n\nfunction MicroPie({ data }: { data: readonly number[] }) {\n\tconst total = data.reduce((a, b) => a + b, 0) || 1;\n\tlet cumAngle = 0;\n\treturn (\n\t\t<svg viewBox=\"0 0 24 24\" className=\"size-control-sm\">\n\t\t\t{data.slice(0, 3).map((v, i) => {\n\t\t\t\tconst angle = (v / total) * 360;\n\t\t\t\tconst startAngle = cumAngle;\n\t\t\t\tcumAngle += angle;\n\t\t\t\tconst startRad = ((startAngle - 90) * Math.PI) / 180;\n\t\t\t\tconst endRad = ((startAngle + angle - 90) * Math.PI) / 180;\n\t\t\t\tconst largeArc = angle > 180 ? 1 : 0;\n\t\t\t\tconst x1 = 12 + 10 * Math.cos(startRad);\n\t\t\t\tconst y1 = 12 + 10 * Math.sin(startRad);\n\t\t\t\tconst x2 = 12 + 10 * Math.cos(endRad);\n\t\t\t\tconst y2 = 12 + 10 * Math.sin(endRad);\n\t\t\t\treturn (\n\t\t\t\t\t<path\n\t\t\t\t\t\tkey={`slice-${i}`}\n\t\t\t\t\t\td={`M12,12 L${x1},${y1} A10,10 0 ${largeArc},1 ${x2},${y2} Z`}\n\t\t\t\t\t\tfill={PIE_PALETTE[i % PIE_PALETTE.length]}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t})}\n\t\t</svg>\n\t);\n}\n\nfunction ChartFor({ kind, data, label }: { kind: MicroChartKind; data: readonly number[]; label: string }) {\n\tconst color = CHART_COLORS[kind];\n\tif (kind === 'bars') return <MicroBars data={data} color={color} />;\n\tif (kind === 'line') return <MicroLine data={data} color={color} />;\n\tif (kind === 'dots') return <MicroDots data={data} color={color} />;\n\tif (kind === 'progress') return <MicroProgress data={data} label={label} />;\n\tif (kind === 'area') return <MicroAreaChart data={data} color={color} />;\n\treturn <MicroPie data={data} />;\n}\n\n/**\n * Column ladders keyed by cell count, driven by the grid's own width so the\n * cells fill whatever region holds them: six cells read 2 × 3, then 3 × 2,\n * then one row on a wide dashboard.\n */\nconst COLUMNS: Record<number, string> = {\n\t1: 'grid-cols-1',\n\t2: 'grid-cols-2',\n\t3: 'grid-cols-1 @md/metric-micro-grid:grid-cols-3',\n\t4: 'grid-cols-2 @3xl/metric-micro-grid:grid-cols-4',\n\t5: 'grid-cols-2 @xl/metric-micro-grid:grid-cols-3 @5xl/metric-micro-grid:grid-cols-5',\n\t6: 'grid-cols-2 @xl/metric-micro-grid:grid-cols-3 @5xl/metric-micro-grid:grid-cols-6',\n};\n\nexport function MetricMicroGrid({ title = 'Overview', cells, className }: MetricMicroGridProps) {\n\tconst visible = cells.slice(0, 6);\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"metric-micro-grid\"\n\t\t\tdata-slot=\"metric-micro-grid\"\n\t\t\tclassName={cn('metric-micro-grid--component @container/metric-micro-grid min-w-0 overflow-hidden', className)}\n\t\t\trole=\"group\"\n\t\t\taria-label={title}\n\t\t>\n\t\t\t{/* Every cell rules its end and bottom edge; the grid overhangs the clipped\n\t\t\t root by one pixel so the outer edges draw no rule at any column count. */}\n\t\t\t<div className={cn('-me-px -mb-px grid', COLUMNS[Math.max(visible.length, 1)])}>\n\t\t\t\t{visible.map((cell, i) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={cell.id ?? cell.label}\n\t\t\t\t\t\tclassName=\"min-w-0 border-e border-b border-border/60 p-surface-xs\"\n\t\t\t\t\t>\n\t\t\t\t\t<Stack gap=\"sm\">\n\t\t\t\t\t\t<DisplayLabel className=\"truncate text-inherit\">\n\t\t\t\t\t\t\t{cell.label}\n\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t<Value type=\"inherit\" weight=\"bold\" className=\"truncate tabular-nums\">\n\t\t\t\t\t\t\t{cell.value}\n\t\t\t\t\t\t</Value>\n\t\t\t\t\t\t<div className=\"mt-auto\">\n\t\t\t\t\t\t\t<ChartFor kind={cell.chart ?? DEFAULT_ORDER[i]} data={cell.data} label={cell.label} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nMetricMicroGrid.displayName = 'MetricMicroGrid';\n","/**\n * MetricGradient — vivid full-bleed gradient hero card with embedded area\n * chart. Used at the top of marketing dashboards or analytics overview\n * pages where a single metric earns the most visual weight.\n *\n * Themes (`green` / `purple` / `warm` / `ocean`) resolve to semantic tokens;\n * the data prop accepts a `readonly MetricDataPoint[]` so consumers can pass\n * named time-series points.\n */\nimport { useId } from 'react';\nimport { Area, AreaChart, ResponsiveContainer } from 'recharts';\n\nimport { Stack } from '../../../base/structure';\nimport { DisplayLabel, Heading, Text } from '../../../typography';\nimport { cn } from '../../../../lib/utils';\nimport { usePrefersReducedMotion } from '../../../../lib/use-prefers-reduced-motion';\n\nimport { MetricTrendChip } from '../atoms/metric-trend-chip';\nimport type { MetricChange, MetricDataPoint } from '../types';\n\nexport type MetricGradientTheme = 'green' | 'purple' | 'warm' | 'ocean';\n\nexport interface MetricGradientProps {\n\t/** Surface title. */\n\ttitle: string;\n\t/** Current value. Controlled. */\n\tvalue?: string;\n\tchange?: MetricChange;\n\t/** Records to render. */\n\tdata: readonly MetricDataPoint[];\n\ttheme?: MetricGradientTheme;\n\tsubtitle?: string;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\n/**\n * Four themes, four looks. The ramps are decoration, so they draw from the\n * categorical chart roles rather than status (success/warning/destructive\n * would state a condition) or `primary` (near-black in the default theme, so\n * half the ramp vanished against the inverse panel). Retheming the chart\n * palette moves all four together: `ocean` runs blue into teal.\n */\nconst THEME_BG: Record<MetricGradientTheme, string> = {\n\tgreen: 'bg-gradient-to-br from-chart-1 via-chart-2 to-chart-1',\n\tpurple: 'bg-gradient-to-br from-chart-3 via-chart-4 to-chart-3',\n\twarm: 'bg-gradient-to-br from-chart-5 via-chart-4 to-chart-5',\n\tocean: 'bg-gradient-to-br from-chart-2 via-chart-1 to-chart-2',\n};\n\nconst CHART_INVERSE = 'var(--inverse-foreground)';\nconst CHART_INVERSE_SOFT = 'var(--inverse-muted)';\n\nexport function MetricGradient({\n\ttitle,\n\tvalue,\n\tchange,\n\tdata,\n\ttheme = 'green',\n\tsubtitle,\n\tclassName,\n}: MetricGradientProps) {\n\tconst id = useId();\n\tconst reducedMotion = usePrefersReducedMotion();\n\tconst gradientId = `metric-grad-${id.replaceAll(':', '')}`;\n\n\treturn (\n\t\t<div className={cn(\n\t\t\t\t'metric-gradient--component',\n\t\t\t\t'relative overflow-hidden rounded-surface p-surface text-inverse-foreground shadow-sm ring-1 ring-inverse-border',\n\t\t\t\tTHEME_BG[theme],\n\t\t\t\tclassName,\n\t\t\t)}>\n\t\t<Stack gap=\"md\">\n\t\t\t<Stack\n\t\t\t\tdirection=\"horizontal\"\n\t\t\t\talign=\"start\"\n\t\t\t\tjustify=\"between\"\n\t\t\t\twrap\n\t\t\t\tclassName=\"relative rounded-surface bg-inverse-background p-surface\"\n\t\t\t>\n\t\t\t\t<Stack gap=\"xs\" className=\"min-w-0\">\n\t\t\t\t\t<DisplayLabel tone=\"inverse\">{title}</DisplayLabel>\n\t\t\t\t\t{!!value && (\n\t\t\t\t\t\t<Heading tag=\"p\" className=\"tabular-nums text-inverse-foreground\">\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!subtitle && <Text size=\"xs\" className=\"text-inverse-muted\">{subtitle}</Text>}\n\t\t\t\t</Stack>\n\t\t\t\t{!!change && (\n\t\t\t\t\t<MetricTrendChip\n\t\t\t\t\t\tchange={change}\n\t\t\t\t\t\ttrend={change.direction === 'up' ? 'positive' : change.direction === 'down' ? 'negative' : 'neutral'}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tvariant=\"badge\"\n\t\t\t\t\t\tclassName=\"shrink-0 !bg-inverse-surface-strong !text-inverse-foreground\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Stack>\n\n\t\t\t<div className=\"relative -mx-1 h-24\">\n\t\t\t\t<ResponsiveContainer width=\"100%\" height=\"100%\" initialDimension={{ width: 1, height: 1 }}>\n\t\t\t\t\t<AreaChart data={data as MetricDataPoint[]} margin={{ top: 4, right: 0, bottom: 0, left: 0 }}>\n\t\t\t\t\t\t<defs>\n\t\t\t\t\t\t\t<linearGradient id={gradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n\t\t\t\t\t\t\t\t<stop offset=\"0%\" stopColor={CHART_INVERSE} stopOpacity={0.3} />\n\t\t\t\t\t\t\t\t<stop offset=\"100%\" stopColor={CHART_INVERSE} stopOpacity={0} />\n\t\t\t\t\t\t\t</linearGradient>\n\t\t\t\t\t\t</defs>\n\t\t\t\t\t\t<Area\n\t\t\t\t\t\t\ttype=\"monotone\"\n\t\t\t\t\t\t\tdataKey=\"value\"\n\t\t\t\t\t\t\tstroke={CHART_INVERSE_SOFT}\n\t\t\t\t\t\t\tstrokeWidth={2}\n\t\t\t\t\t\t\tfill={`url(#${gradientId})`}\n\t\t\t\t\t\t\tdot={false}\n\t\t\t\t\t\t\tactiveDot={{ r: 4, strokeWidth: 2, fill: CHART_INVERSE, stroke: CHART_INVERSE_SOFT }}\n\t\t\t\t\t\t\tisAnimationActive={!reducedMotion}\n\t\t\t\t\t\t\tanimationDuration={800}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</AreaChart>\n\t\t\t\t</ResponsiveContainer>\n\t\t\t</div>\n\t\t</Stack>\n\t\t</div>\n\t);\n}\n\nMetricGradient.displayName = 'MetricGradient';\n","/**\n * ChartCard — standard admin chart surface for custom Recharts compositions.\n *\n * Use when a consumer wants this library's admin hierarchy around a bespoke\n * chart. Data, axes, series, and Recharts children stay caller-owned; the\n * component provides ChartContainer config, slots, and BEM hooks. It remains\n * card-free until the call site opts into `surface` and `padding`.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport {\n\tChartContainer,\n\ttype ChartConfig,\n\ttype ChartInitialDimension,\n} from '../../../base/chart';\nimport { Card, type CardProps } from '../../../base/cards';\nimport type { CardSurface } from '../../../../lib/component-vocabulary';\nimport { cn } from '../../../../lib/utils';\nimport { contentBlockHooks } from '../../content-block-hooks';\n\n/** Card's inset scale, including `none` for a chart placed inside an existing boundary. */\nexport type ChartCardPadding = NonNullable<CardProps['padding']>;\nexport type ChartCardSurface = CardSurface;\n\nexport interface ChartCardProps {\n\t/** Surface title. */\n\ttitle?: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\t/** Content at the end of the header, before the overflow menu. */\n\theaderEnd?: ReactNode;\n\t/** Status or count shown immediately after the title. */\n\ttitleSuffix?: ReactNode;\n\t/** Content below the body. */\n\tfooter?: ReactNode;\n\tconfig: ChartConfig;\n\tchildren: ComponentProps<typeof ChartContainer>['children'];\n\tinitialDimension?: ChartInitialDimension;\n\t/** Outer chrome. Omit it to stay card-free. */\n\tsurface?: ChartCardSurface;\n\t/** Surface inset. Defaults to `none` when unframed and `md` on a framed surface. */\n\tpadding?: ChartCardPadding;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Merged onto the content. */\n\tcontentClassName?: string;\n\t/** Merged onto the chart. */\n\tchartClassName?: string;\n}\n\nexport function ChartCard({\n\ttitle,\n\tdescription,\n\theaderEnd,\n\ttitleSuffix,\n\tfooter,\n\tconfig,\n\tchildren,\n\tinitialDimension,\n\tsurface = 'flat',\n\tpadding: paddingProp,\n\tclassName,\n\tcontentClassName,\n\tchartClassName,\n}: ChartCardProps) {\n\treturn (\n\t\t<Card\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\theaderEnd={headerEnd}\n\t\t\ttitleSuffix={titleSuffix}\n\t\t\tfooterSlot={footer}\n\t\t\tsurface={surface}\n\t\t\tpadding={paddingProp ?? (surface === 'flat' ? 'none' : 'md')}\n\t\t\t{...contentBlockHooks(\n\t\t\t\tcn('chart-card--component', className),\n\t\t\t\t{ content: cn('chart-card--content', contentClassName) },\n\t\t\t\tpaddingProp,\n\t\t\t)}\n\t\t>\n\t\t\t<ChartContainer\n\t\t\t\tconfig={config}\n\t\t\t\tinitialDimension={initialDimension}\n\t\t\t\tclassName={cn('chart-card--chart min-h-[var(--chart-min-height)]', chartClassName)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ChartContainer>\n\t\t</Card>\n\t);\n}\n\nChartCard.displayName = 'ChartCard';\n"],"mappings":"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"}
|