themelia-react-ui 2.0.5 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +326 -0
- package/MIGRATION.md +858 -0
- package/README.md +35 -24
- package/dist/{accordion-B9MHG0cT.js → accordion-DNVqwEIC.js} +37 -37
- package/dist/accordion-DNVqwEIC.js.map +1 -0
- package/dist/action-menu-D5343RwT.js +286 -0
- package/dist/action-menu-D5343RwT.js.map +1 -0
- package/dist/ai-artifact-otrz9ZwS.js +1214 -0
- package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
- package/dist/anchored-positioning-1U_eBFNx.js +9 -0
- package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
- package/dist/app-shell-CPN30Nb1.js +372 -0
- package/dist/app-shell-CPN30Nb1.js.map +1 -0
- package/dist/{attachment-Dg_69lPS.js → attachment-D2-fpfmv.js} +15 -15
- package/dist/{attachment-Dg_69lPS.js.map → attachment-D2-fpfmv.js.map} +1 -1
- package/dist/{auth-DTkkshS8.js → auth-g_oUTDDC.js} +236 -243
- package/dist/auth-g_oUTDDC.js.map +1 -0
- package/dist/{avatar-CeZaFmNH.js → avatar-Ca3Ihrq4.js} +4 -4
- package/dist/{avatar-CeZaFmNH.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
- package/dist/{badge-xIiV_E7f.js → badge-oGiXblW7.js} +8 -9
- package/dist/badge-oGiXblW7.js.map +1 -0
- package/dist/base/accordion.js +1 -1
- package/dist/base/action-menu.js +1 -1
- package/dist/base/attachment.js +1 -1
- package/dist/base/avatar.js +1 -1
- package/dist/base/badge.js +1 -1
- package/dist/base/batch-action-bar.js +1 -1
- package/dist/base/buttons.js +2 -2
- package/dist/base/cards.js +3 -3
- package/dist/base/carousel.js +11 -11
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +1 -1
- package/dist/base/command.js +1 -1
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +2 -2
- package/dist/base/display.js +7 -7
- package/dist/base/feedback.js +4 -4
- package/dist/base/forms-numeric.js +2 -2
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +13 -13
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +203 -2
- package/dist/base/media-gallery.js.map +1 -0
- package/dist/base/metadata-list.js +1 -1
- package/dist/base/navigation.js +7 -7
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +32 -22
- package/dist/base/qr-code.js.map +1 -1
- package/dist/base/repeaters.js +208 -198
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +14 -14
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +8 -14
- package/dist/base/spinner.js.map +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +3 -3
- package/dist/base/toaster.js +2 -2
- package/dist/base/tree.js +2 -2
- package/dist/base/upload-queue.js +303 -2
- package/dist/base/upload-queue.js.map +1 -0
- package/dist/base/upload.js +3 -4
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-D6MZQNnC.js} +10 -10
- package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
- package/dist/blocks/admin.js +242 -228
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +398 -354
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/charts.js +1022 -0
- package/dist/blocks/analytics/charts.js.map +1 -0
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +173 -1392
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +1 -1
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +1533 -1399
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -3
- package/dist/blocks/onboarding.js +91 -82
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +25 -25
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +2 -2
- package/dist/breadcrumbs-CQ9JSlez.js +136 -0
- package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
- package/dist/{button-S2Cubiiz.js → button-rd6FiHfQ.js} +12 -8
- package/dist/button-rd6FiHfQ.js.map +1 -0
- package/dist/{buttons-BedGfygC.js → buttons-pZVgPTZn.js} +230 -246
- package/dist/buttons-pZVgPTZn.js.map +1 -0
- package/dist/{cards-rNX1M4Xn.js → cards-CgWyqvgZ.js} +25 -22
- package/dist/{cards-rNX1M4Xn.js.map → cards-CgWyqvgZ.js.map} +1 -1
- package/dist/cascader-Cf05pwaq.js +444 -0
- package/dist/cascader-Cf05pwaq.js.map +1 -0
- package/dist/{chart-Darg_0Kv.js → chart-CygRCyIZ.js} +5 -5
- package/dist/{chart-Darg_0Kv.js.map → chart-CygRCyIZ.js.map} +1 -1
- package/dist/{checkbox-fflqmODR.js → checkbox-Dy5_XBMZ.js} +4 -4
- package/dist/{checkbox-fflqmODR.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
- package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-oJEsrb5Y.js} +195 -184
- package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
- package/dist/{code-block-BzmM9Eig.js → code-block-BrLD7mCi.js} +44 -60
- package/dist/code-block-BrLD7mCi.js.map +1 -0
- package/dist/collapsible-CRCCg_bO.js +80 -0
- package/dist/collapsible-CRCCg_bO.js.map +1 -0
- package/dist/{collection-content-gDh1v6O4.js → collection-content-D7SoDlYd.js} +3 -3
- package/dist/{collection-content-gDh1v6O4.js.map → collection-content-D7SoDlYd.js.map} +1 -1
- package/dist/combobox-Dl6f6kHz.js +362 -0
- package/dist/combobox-Dl6f6kHz.js.map +1 -0
- package/dist/combobox-DrDXtSSt.js +929 -0
- package/dist/combobox-DrDXtSSt.js.map +1 -0
- package/dist/command-CjZ2VzKC.js +432 -0
- package/dist/command-CjZ2VzKC.js.map +1 -0
- package/dist/comments-C2MZyRmh.js +1214 -0
- package/dist/comments-C2MZyRmh.js.map +1 -0
- package/dist/components/base/accordion/accordion.d.ts +11 -3
- package/dist/components/base/action-menu/action-menu.d.ts +11 -3
- package/dist/components/base/buttons/button.d.ts +2 -2
- package/dist/components/base/buttons/index.d.ts +1 -1
- package/dist/components/base/buttons/loader-button.d.ts +6 -15
- package/dist/components/base/cards/index.d.ts +1 -1
- package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
- package/dist/components/base/cards/smart-card.d.ts +0 -2
- package/dist/components/base/cards/smart-card.types.d.ts +12 -10
- package/dist/components/base/cascader/cascader.d.ts +8 -2
- package/dist/components/base/cascader/cascader.types.d.ts +24 -2
- package/dist/components/base/cascader/index.d.ts +1 -1
- package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
- package/dist/components/base/choice-inputs/switch.d.ts +1 -1
- package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
- package/dist/components/base/combobox/combobox-field.d.ts +2 -2
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +11 -7
- package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
- package/dist/components/base/display/dialog.d.ts +3 -9
- package/dist/components/base/display/index.d.ts +2 -3
- package/dist/components/base/display/separator.d.ts +1 -1
- package/dist/components/base/feedback/alert.d.ts +2 -1
- package/dist/components/base/feedback/empty.d.ts +10 -2
- package/dist/components/base/feedback/state-display.d.ts +5 -1
- package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
- package/dist/components/base/forms/form-field.d.ts +7 -2
- package/dist/components/base/forms/workflow.d.ts +2 -2
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
- package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +13 -18
- package/dist/components/base/forms-numeric/index.d.ts +3 -3
- package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
- package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
- package/dist/components/base/item/item.types.d.ts +6 -2
- package/dist/components/base/metadata-list/index.d.ts +1 -3
- package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
- package/dist/components/base/navigation/index.d.ts +2 -2
- package/dist/components/base/navigation/language-switcher.d.ts +17 -8
- package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
- package/dist/components/base/navigation/page-header/index.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
- package/dist/components/base/navigation/pagination.d.ts +5 -5
- package/dist/components/base/popover/popover.recipes.d.ts +0 -1
- package/dist/components/base/qr-code/qr-code.d.ts +4 -0
- package/dist/components/base/repeaters/index.d.ts +1 -1
- package/dist/components/base/repeaters/key-value-editor.d.ts +6 -1
- package/dist/components/base/sheet/sheet.d.ts +6 -15
- package/dist/components/base/sidebar/index.d.ts +1 -6
- package/dist/components/base/sidebar/sidebar.d.ts +40 -10
- package/dist/components/base/skeleton/skeleton.d.ts +1 -1
- package/dist/components/base/structure/structure.types.d.ts +11 -2
- package/dist/components/base/text-inputs/index.d.ts +1 -1
- package/dist/components/base/tree/index.d.ts +1 -0
- package/dist/components/base/tree/tree.d.ts +2 -2
- package/dist/components/base/tree/tree.types.d.ts +7 -1
- package/dist/components/base/upload/avatar-upload.d.ts +2 -1
- package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
- package/dist/components/base/upload/image-upload.d.ts +4 -1
- package/dist/components/base/upload/index.d.ts +3 -9
- package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
- package/dist/components/base/value-inputs/slider.d.ts +5 -2
- package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
- package/dist/components/blocks/admin/index.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
- package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
- package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
- package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-citation/types.d.ts +8 -0
- package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
- package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
- package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
- package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
- package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
- package/dist/components/blocks/ai/ai-sources/types.d.ts +10 -2
- package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
- package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
- package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +8 -0
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
- package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
- package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
- package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
- package/dist/components/blocks/analytics/index.d.ts +17 -24
- package/dist/components/blocks/analytics/metric/metric.d.ts +7 -3
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
- package/dist/components/blocks/analytics/types.d.ts +13 -4
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
- package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
- package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
- package/dist/components/blocks/commerce/index.d.ts +8 -8
- package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
- package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
- package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/order-status/types.d.ts +12 -8
- package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
- package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
- package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
- package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
- package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
- package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
- package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
- package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
- package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
- package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
- package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
- package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
- package/dist/components/blocks/content-block-hooks.d.ts +22 -0
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
- package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
- package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +10 -3
- package/dist/components/blocks/data-display/index.d.ts +0 -1
- package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
- package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
- package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
- package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
- package/dist/components/blocks/timelines/index.d.ts +2 -2
- package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
- package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
- package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
- package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
- package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
- package/dist/components/features/activities/activities.strings.d.ts +5 -3
- package/dist/components/features/activities/activities.types.d.ts +46 -22
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
- package/dist/components/features/activities/index.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
- package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
- package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
- package/dist/components/features/activities/relative-time.d.ts +18 -0
- package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
- package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
- package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +20 -4
- package/dist/components/features/appointment-calendar/index.d.ts +1 -1
- package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
- package/dist/components/features/async-preview/async-preview.d.ts +2 -2
- package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
- package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
- package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
- package/dist/components/features/combobox/combobox.d.ts +12 -3
- package/dist/components/features/combobox/components/error-message.d.ts +3 -1
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +4 -3
- package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
- package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
- package/dist/components/features/combobox/index.d.ts +1 -1
- package/dist/components/features/combobox/types.d.ts +68 -37
- package/dist/components/features/comments/comments.strings.d.ts +6 -5
- package/dist/components/features/comments/comments.types.d.ts +40 -26
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
- package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
- package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
- package/dist/components/features/data-view/data-view.types.d.ts +15 -2
- package/dist/components/features/email-composer/email-html.d.ts +5 -0
- package/dist/components/features/email-composer/http.d.ts +2 -0
- package/dist/components/features/email-composer/strings.d.ts +17 -2
- package/dist/components/features/email-composer/types.d.ts +19 -2
- package/dist/components/features/email-composer/use-composer.d.ts +2 -78
- package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
- package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
- package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
- package/dist/components/features/filters/facets/range-facet.d.ts +24 -7
- package/dist/components/features/filters/filter-context.d.ts +9 -0
- package/dist/components/features/filters/filters.strings.d.ts +36 -3
- package/dist/components/features/filters/filters.types.d.ts +75 -8
- package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
- package/dist/components/features/filters/index.d.ts +2 -2
- package/dist/components/features/filters/operator-options.d.ts +25 -2
- package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
- package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
- package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
- package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
- package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +34 -5
- package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
- package/dist/components/features/global-search/global-search.d.ts +7 -1
- package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
- package/dist/components/features/global-search/global-search.types.d.ts +30 -6
- package/dist/components/features/global-search/index.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
- package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
- package/dist/components/features/kanban/index.d.ts +2 -2
- package/dist/components/features/kanban/kanban-context.d.ts +4 -0
- package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
- package/dist/components/features/kanban/kanban.d.ts +10 -1
- package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
- package/dist/components/features/kanban/kanban.types.d.ts +26 -0
- package/dist/components/features/map/map.d.ts +4 -0
- package/dist/components/features/map/place-autocomplete.d.ts +10 -1
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +39 -3
- package/dist/components/features/media-library/media-library.types.d.ts +82 -9
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
- package/dist/components/features/mentions/index.d.ts +1 -1
- package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
- package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +12 -1
- package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
- package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
- package/dist/components/features/mentions/utils/index.d.ts +0 -1
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/dialog.d.ts +1 -1
- package/dist/components/features/overlays/drawer.d.ts +1 -1
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
- package/dist/components/features/overlays/index.d.ts +2 -2
- package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
- package/dist/components/features/overlays/overlays.types.d.ts +27 -10
- package/dist/components/features/products/components/index.d.ts +0 -10
- package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
- package/dist/components/features/products/components/product-details-card.d.ts +1 -1
- package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
- package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
- package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
- package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
- package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
- package/dist/components/features/products/partials/product-surface.d.ts +15 -0
- package/dist/components/features/products/products.strings.d.ts +8 -0
- package/dist/components/features/products/products.types.d.ts +26 -8
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +7 -2
- package/dist/components/features/resource/index.d.ts +2 -3
- package/dist/components/features/resource/resource.d.ts +2 -10
- package/dist/components/features/resource/resource.types.d.ts +7 -147
- package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
- package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
- package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
- package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
- package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
- package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +5 -4
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +30 -4
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +10 -1
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
- package/dist/components/features/schema-form/schema-form.d.ts +1 -1
- package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
- package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
- package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +13 -5
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/filter-bar.d.ts +1 -1
- package/dist/components/features/table/index.d.ts +1 -0
- package/dist/components/features/table/pagination.d.ts +1 -1
- package/dist/components/features/table/partials/cell-value.d.ts +1 -1
- package/dist/components/features/table/table-body.d.ts +1 -1
- package/dist/components/features/table/table-header.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +37 -12
- package/dist/components/features/table/table-region.recipes.d.ts +11 -0
- package/dist/components/features/table/table-toolbar.d.ts +1 -1
- package/dist/components/features/table/table.strings.d.ts +4 -0
- package/dist/components/features/table/table.types.d.ts +91 -49
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
- package/dist/components/layout/app-shell/index.d.ts +2 -2
- package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
- package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
- package/dist/components/layout/auth/auth-shell.d.ts +1 -1
- package/dist/components/layout/auth/auth.types.d.ts +0 -5
- package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
- package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
- package/dist/components/layout/header/header.types.d.ts +19 -8
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
- package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts +1 -1
- package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
- package/dist/components/layout/layout.types.d.ts +6 -4
- package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
- package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
- package/dist/components/layout/navigation/side-nav.d.ts +3 -2
- package/dist/components/layout/normalize-layout-path.d.ts +1 -0
- package/dist/components/layout/page/index.d.ts +2 -3
- package/dist/components/layout/page/page.strings.d.ts +12 -0
- package/dist/components/layout/page/page.types.d.ts +7 -110
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/index.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +4 -6
- package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/index.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +17 -7
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
- package/dist/components/layout/sidebar/sidebar.types.d.ts +12 -12
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
- package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
- package/dist/components/primitives/date.d.ts +22 -3
- package/dist/components/primitives/file-size.d.ts +8 -2
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/initials.d.ts +3 -1
- package/dist/components/primitives/link.d.ts +11 -3
- package/dist/components/primitives/money.d.ts +2 -2
- package/dist/components/primitives/number.d.ts +3 -2
- package/dist/components/typography/heading.d.ts +9 -3
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
- package/dist/components/typography/text-link.d.ts +10 -3
- package/dist/components/ui/badge.d.ts +2 -4
- package/dist/components/ui/breadcrumb.d.ts +2 -3
- package/dist/components/ui/button.d.ts +8 -2
- package/dist/components/ui/collapsible.d.ts +1 -4
- package/dist/components/ui/command.d.ts +20 -18
- package/dist/components/ui/dialog.d.ts +3 -9
- package/dist/components/ui/empty.d.ts +2 -2
- package/dist/components/ui/input-group.d.ts +3 -3
- package/dist/components/ui/item.d.ts +3 -3
- package/dist/components/ui/popover.d.ts +3 -7
- package/dist/components/ui/sheet.d.ts +4 -12
- package/dist/components/ui/sidebar-state.d.ts +6 -1
- package/dist/components/ui/sidebar.d.ts +7 -4
- package/dist/components/ui/tabs.d.ts +2 -2
- package/dist/components/ui/toggle-group.d.ts +3 -3
- package/dist/components/ui/toggle.d.ts +2 -2
- package/dist/components/ui/tooltip.d.ts +1 -3
- package/dist/{containers-CIxwbZt5.js → containers-BdfLTP4w.js} +37 -32
- package/dist/containers-BdfLTP4w.js.map +1 -0
- package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
- package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
- package/dist/{copyable-DIznBqiT.js → copyable-Bmr14W0d.js} +6 -6
- package/dist/{copyable-DIznBqiT.js.map → copyable-Bmr14W0d.js.map} +1 -1
- package/dist/{data-display-BdgCAw8T.js → data-display-CWe9SOYh.js} +264 -250
- package/dist/data-display-CWe9SOYh.js.map +1 -0
- package/dist/date-3qsCE1ID.js +209 -0
- package/dist/date-3qsCE1ID.js.map +1 -0
- package/dist/date-picker-D1keJQIG.js +1617 -0
- package/dist/date-picker-D1keJQIG.js.map +1 -0
- package/dist/date-pickers-D8aJoeHc.js +185 -0
- package/dist/date-pickers-D8aJoeHc.js.map +1 -0
- package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
- package/dist/{display-KsZLw9Ov.js → display-VlmP1I0i.js} +23 -46
- package/dist/display-VlmP1I0i.js.map +1 -0
- package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-B8hjvbkS.js} +9 -9
- package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
- package/dist/dropzone-CHBNK3de.js +116 -0
- package/dist/dropzone-CHBNK3de.js.map +1 -0
- package/dist/features/activities.js +767 -700
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +280 -235
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +430 -334
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +351 -265
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +2 -2
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +212 -151
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +347 -313
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +501 -348
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +250 -210
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +280 -210
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map/style.css +15 -0
- package/dist/features/map.js +435 -404
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1745 -1195
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +2 -2
- package/dist/features/overlays.js +2 -2
- package/dist/features/products.js +1862 -1759
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +188 -168
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +223 -191
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +55 -217
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +28 -19
- package/dist/features/rich-text-editor.js.map +1 -1
- package/dist/features/schema-form.js +380 -287
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +90 -74
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/table.js +2 -2
- package/dist/features/theme-tweaker.js +718 -627
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-DmqmXKLn.js +254 -0
- package/dist/feedback-DmqmXKLn.js.map +1 -0
- package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-DfbMadot.js} +13 -9
- package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
- package/dist/field-control-attributes-B6i335wr.js +18 -0
- package/dist/field-control-attributes-B6i335wr.js.map +1 -0
- package/dist/field-state-recipes-EtCxpEy3.js +18 -0
- package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
- package/dist/filters-BviMRMLS.js +2692 -0
- package/dist/filters-BviMRMLS.js.map +1 -0
- package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
- package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
- package/dist/form-field-BdfCwSoQ.js +74 -0
- package/dist/form-field-BdfCwSoQ.js.map +1 -0
- package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-DE_dZw32.js} +3 -3
- package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-DE_dZw32.js.map} +1 -1
- package/dist/{forms-C0RGnJTe.js → forms-B8DzJnBN.js} +35 -35
- package/dist/forms-B8DzJnBN.js.map +1 -0
- package/dist/forms-numeric-DOBswjKj.js +992 -0
- package/dist/forms-numeric-DOBswjKj.js.map +1 -0
- package/dist/{header-DMMxG__r.js → header-Cq3G0ZRP.js} +163 -158
- package/dist/header-Cq3G0ZRP.js.map +1 -0
- package/dist/hooks/use-files.d.ts +2 -0
- package/dist/{hooks-DB6CJ4MR.js → hooks-DHfeSMAO.js} +34 -14
- package/dist/hooks-DHfeSMAO.js.map +1 -0
- package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
- package/dist/http-Cu-GPpss.js.map +1 -0
- package/dist/{icon-badge-DZF-YjQp.js → icon-badge-B0Kq7wom.js} +3 -3
- package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
- package/dist/index.js +6 -6
- package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
- package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
- package/dist/{input-DMBwAZmr.js → input-2YrgTUrz.js} +3 -3
- package/dist/{input-DMBwAZmr.js.map → input-2YrgTUrz.js.map} +1 -1
- package/dist/{input-CvyDQlY7.js → input-DfJyrjoR.js} +7 -7
- package/dist/{input-CvyDQlY7.js.map → input-DfJyrjoR.js.map} +1 -1
- package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-DmuS1ase.js} +2 -2
- package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
- package/dist/item-GJ9mvCcg.js +279 -0
- package/dist/item-GJ9mvCcg.js.map +1 -0
- package/dist/layout/app-shell.js +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/containers.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +2 -2
- package/dist/layout/settings.js +2 -2
- package/dist/layout/sidebar.js +3 -3
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +12 -12
- package/dist/layout.types-DbtnyAtd.js +33 -0
- package/dist/layout.types-DbtnyAtd.js.map +1 -0
- package/dist/lib/anchored-positioning.d.ts +11 -0
- package/dist/lib/field-affordance-recipes.d.ts +10 -0
- package/dist/lib/field-control-attributes.d.ts +11 -0
- package/dist/lib/field-state-recipes.d.ts +8 -0
- package/dist/lib/focus-recipes.d.ts +7 -0
- package/dist/lib/format.d.ts +26 -0
- package/dist/lib/money-format.d.ts +6 -0
- package/dist/lib/motion-recipes.d.ts +6 -0
- package/dist/lib/surface-recipes.d.ts +33 -3
- package/dist/lib/theme-scope.d.ts +17 -1
- package/dist/lib/token-merge.generated.d.ts +19 -25
- package/dist/lib/ui-provider/index.d.ts +1 -1
- package/dist/lib/ui-provider/types.d.ts +5 -0
- package/dist/lib/use-controllable-state.d.ts +16 -0
- package/dist/lib/use-copy-feedback.d.ts +15 -0
- package/dist/lib/utils.js +1 -1
- package/dist/lib/variant-props.d.ts +9 -0
- package/dist/main-landmark-context-BAsyqp2I.js +11 -0
- package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
- package/dist/mentions-zz0ewNIq.js +670 -0
- package/dist/mentions-zz0ewNIq.js.map +1 -0
- package/dist/message-BiiVrRrm.js +138 -0
- package/dist/message-BiiVrRrm.js.map +1 -0
- package/dist/{metadata-list-C3MkU-Om.js → metadata-list-G85roWjS.js} +13 -12
- package/dist/metadata-list-G85roWjS.js.map +1 -0
- package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
- package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
- package/dist/navigation-C0Be5C3i.js +304 -0
- package/dist/navigation-C0Be5C3i.js.map +1 -0
- package/dist/navigation-CmqaQR_G.js +257 -0
- package/dist/navigation-CmqaQR_G.js.map +1 -0
- package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
- package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
- package/dist/number-NFWKIoiK.js +340 -0
- package/dist/number-NFWKIoiK.js.map +1 -0
- package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
- package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
- package/dist/{overlays-BSgCtM2v.js → overlays-D-gAIfPF.js} +369 -364
- package/dist/overlays-D-gAIfPF.js.map +1 -0
- package/dist/page-D4pQhgSq.js +216 -0
- package/dist/page-D4pQhgSq.js.map +1 -0
- package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-elelNOfd.js} +29 -29
- package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-elelNOfd.js.map} +1 -1
- package/dist/{pagination-CgCjElfu.js → pagination-BuSWw1US.js} +22 -23
- package/dist/pagination-BuSWw1US.js.map +1 -0
- package/dist/popover-BpMxbqEK.js +205 -0
- package/dist/popover-BpMxbqEK.js.map +1 -0
- package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-CO-_iiuz.js} +7 -7
- package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
- package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-BqkdvlZn.js} +3 -4
- package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
- package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-BPeS4rGB.js} +2 -2
- package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
- package/dist/primitives-BlC1lXBr.js +447 -0
- package/dist/primitives-BlC1lXBr.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-BJhQP9WX.js → progress-RARK8AjB.js} +5 -5
- package/dist/{progress-BJhQP9WX.js.map → progress-RARK8AjB.js.map} +1 -1
- package/dist/receipt-CUf2Vegp.js +114 -0
- package/dist/receipt-CUf2Vegp.js.map +1 -0
- package/dist/rich-text-Cypm9__d.js +44 -0
- package/dist/rich-text-Cypm9__d.js.map +1 -0
- package/dist/rich-text-editor-Z6cQepsA.js +919 -0
- package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
- package/dist/rich-text-tree-DdKHIJx4.js +154 -0
- package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
- package/dist/{scroll-area-B0dB2cBi.js → scroll-area-B9HKbji0.js} +3 -3
- package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-B9HKbji0.js.map} +1 -1
- package/dist/{separator-Ct_WSWTJ.js → separator-DaDe26sf.js} +3 -3
- package/dist/separator-DaDe26sf.js.map +1 -0
- package/dist/{separator-Bb17I4pu.js → separator-KGsNXt2J.js} +2 -2
- package/dist/{separator-Bb17I4pu.js.map → separator-KGsNXt2J.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +5 -2
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +2 -2
- package/dist/services/actions.js.map +1 -1
- package/dist/settings-D5j_RJvT.js +160 -0
- package/dist/settings-D5j_RJvT.js.map +1 -0
- package/dist/sheet-B6j_BE9O.js +241 -0
- package/dist/sheet-B6j_BE9O.js.map +1 -0
- package/dist/{sidebar-f9gRWXIR.js → sidebar-C-iQ_TJP.js} +379 -350
- package/dist/sidebar-C-iQ_TJP.js.map +1 -0
- package/dist/sidebar-D5VO2W8S.js +715 -0
- package/dist/sidebar-D5VO2W8S.js.map +1 -0
- package/dist/{skeleton-BapcJd9C.js → skeleton-Cab_KgVo.js} +13 -13
- package/dist/skeleton-Cab_KgVo.js.map +1 -0
- package/dist/{smart-card-CW0hjetE.js → smart-card-C59z6KFO.js} +217 -210
- package/dist/smart-card-C59z6KFO.js.map +1 -0
- package/dist/{structure-DuxKl954.js → structure-DElaQwwN.js} +2 -2
- package/dist/{structure-DuxKl954.js.map → structure-DElaQwwN.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-DV6rrOFq.js} +11 -3
- package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
- package/dist/table-CSRUgpdK.js +180 -0
- package/dist/table-CSRUgpdK.js.map +1 -0
- package/dist/table-DdXDBsR_.js +1657 -0
- package/dist/table-DdXDBsR_.js.map +1 -0
- package/dist/tabs-WnHfV2pM.js +192 -0
- package/dist/tabs-WnHfV2pM.js.map +1 -0
- package/dist/{text-inputs-B1culiSK.js → text-inputs-ljyBYaCd.js} +112 -112
- package/dist/text-inputs-ljyBYaCd.js.map +1 -0
- package/dist/theme.css +21 -5
- package/dist/timelines-mOmS9Eh3.js +479 -0
- package/dist/timelines-mOmS9Eh3.js.map +1 -0
- package/dist/tooltip-yjX-Uv-p.js +112 -0
- package/dist/tooltip-yjX-Uv-p.js.map +1 -0
- package/dist/{tree-CzUJHnFs.js → tree-YpkxUG2Z.js} +80 -72
- package/dist/tree-YpkxUG2Z.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/{typography-BQnine1k.js → typography-C0dELqYV.js} +46 -40
- package/dist/typography-C0dELqYV.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
- package/dist/ui-provider-Bu1S-o96.js.map +1 -0
- package/dist/ui-provider.js +2 -2
- package/dist/upload-DMuMYJFT.js +875 -0
- package/dist/upload-DMuMYJFT.js.map +1 -0
- package/dist/{usage-card-BeSLY0i0.js → usage-card-DDPki5P1.js} +57 -54
- package/dist/usage-card-DDPki5P1.js.map +1 -0
- package/dist/use-controllable-state-BlP8SyBI.js +13 -0
- package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
- package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
- package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
- package/dist/{utils-B6kKb8jB.js → utils-BVbAG2J6.js} +128 -112
- package/dist/utils-BVbAG2J6.js.map +1 -0
- package/dist/value-inputs-h5MwjGCo.js +982 -0
- package/dist/value-inputs-h5MwjGCo.js.map +1 -0
- package/dist/value-typography-D15uwfj-.js +154 -0
- package/dist/value-typography-D15uwfj-.js.map +1 -0
- package/dist/workspace-DIryPqBt.js +400 -0
- package/dist/workspace-DIryPqBt.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +7 -0
- package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
- package/docs/consumer-skill/examples/analytics.tsx +1 -1
- package/docs/consumer-skill/examples/app-layout.tsx +3 -3
- package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
- package/docs/consumer-skill/examples/detail.tsx +3 -2
- package/docs/consumer-skill/examples/edit.tsx +3 -3
- package/docs/consumer-skill/examples/email-composer.tsx +1 -1
- package/docs/consumer-skill/examples/index-table.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
- package/docs/consumer-skill/references/agents-md.md +27 -23
- package/docs/consumer-skill/references/analytics.md +33 -4
- package/docs/consumer-skill/references/building-views.md +213 -0
- package/docs/consumer-skill/references/catalogue.md +617 -0
- package/docs/consumer-skill/references/component-contracts.json +25852 -32067
- package/docs/consumer-skill/references/composition.md +42 -21
- package/docs/consumer-skill/references/design-contract.md +1 -0
- package/docs/consumer-skill/references/discovery.md +8 -5
- package/docs/consumer-skill/references/installation.md +59 -10
- package/docs/consumer-skill/references/integration.md +28 -5
- package/docs/consumer-skill/references/product-composition.md +2 -2
- package/docs/consumer-skill/references/public-api.json +726 -641
- package/docs/consumer-skill/references/review.md +57 -15
- package/docs/consumer-skill/references/rhf-workflows.md +72 -0
- package/docs/consumer-skill/references/screen-archetypes.md +2 -2
- package/docs/consumer-skill/references/theming.md +8 -3
- package/docs/consumer-skill/references/tokens.json +4 -4
- package/docs/consumer-skill/references/workflows.md +7 -7
- package/docs/consumer-skill/scripts/composition-policy.mjs +178 -44
- package/docs/consumer-skill/scripts/composition.mjs +4 -1
- package/docs/consumer-skill/scripts/discovery.mjs +3 -1
- package/docs/consumer-skill/scripts/setup-skills.mjs +74 -10
- package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
- package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
- package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
- package/package.json +12 -13
- package/templates/README.md +3 -2
- package/templates/admin-shell-template.tsx +50 -11
- package/templates/analytics-operations-template.tsx +20 -24
- package/templates/customers-template.tsx +30 -25
- package/templates/index.ts +2 -8
- package/templates/orders-template.tsx +28 -24
- package/templates/products-template.tsx +14 -4
- package/templates/user-permissions-template.tsx +11 -14
- package/dist/accordion-B9MHG0cT.js.map +0 -1
- package/dist/action-menu-Dr8K-ghE.js +0 -284
- package/dist/action-menu-Dr8K-ghE.js.map +0 -1
- package/dist/ai-artifact-C58tQcBy.js +0 -1185
- package/dist/ai-artifact-C58tQcBy.js.map +0 -1
- package/dist/anchored-positioning-DPnKTvNs.js +0 -6
- package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
- package/dist/app-shell-B_IuNWOo.js +0 -321
- package/dist/app-shell-B_IuNWOo.js.map +0 -1
- package/dist/auth-DTkkshS8.js.map +0 -1
- package/dist/badge-xIiV_E7f.js.map +0 -1
- package/dist/base/sheet.js +0 -3
- package/dist/breadcrumbs-J-K2kl4c.js +0 -129
- package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
- package/dist/button-S2Cubiiz.js.map +0 -1
- package/dist/buttons-BedGfygC.js.map +0 -1
- package/dist/cascader-B1MiqkBq.js +0 -439
- package/dist/cascader-B1MiqkBq.js.map +0 -1
- package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
- package/dist/code-block-BzmM9Eig.js.map +0 -1
- package/dist/collapsible-BkAI_XD4.js +0 -81
- package/dist/collapsible-BkAI_XD4.js.map +0 -1
- package/dist/combobox-BEx0vJgF.js +0 -362
- package/dist/combobox-BEx0vJgF.js.map +0 -1
- package/dist/combobox-BwzoXFSG.js +0 -884
- package/dist/combobox-BwzoXFSG.js.map +0 -1
- package/dist/command-CrlPIL6m.js +0 -425
- package/dist/command-CrlPIL6m.js.map +0 -1
- package/dist/comments-Dmpp0YIc.js +0 -1169
- package/dist/comments-Dmpp0YIc.js.map +0 -1
- package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
- package/dist/components/base/display/content-block.d.ts +0 -75
- package/dist/components/base/display/content-block.strings.d.ts +0 -5
- package/dist/components/base/sheet/index.d.ts +0 -29
- package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
- package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -16
- package/dist/components/features/resource/resource.strings.d.ts +0 -12
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
- package/dist/components/features/sync/index.d.ts +0 -26
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
- package/dist/components/features/sync/sync.strings.d.ts +0 -18
- package/dist/components/features/sync/sync.types.d.ts +0 -44
- package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
- package/dist/components/ui/slot.d.ts +0 -6
- package/dist/containers-CIxwbZt5.js.map +0 -1
- package/dist/data-display-BdgCAw8T.js.map +0 -1
- package/dist/date-Cq8ioE4o.js +0 -144
- package/dist/date-Cq8ioE4o.js.map +0 -1
- package/dist/date-picker-RlIzKom_.js +0 -1551
- package/dist/date-picker-RlIzKom_.js.map +0 -1
- package/dist/date-pickers-DY-CpXS1.js +0 -179
- package/dist/date-pickers-DY-CpXS1.js.map +0 -1
- package/dist/display-KsZLw9Ov.js.map +0 -1
- package/dist/features/sync.js +0 -142
- package/dist/features/sync.js.map +0 -1
- package/dist/feedback-Dm4izqFn.js +0 -240
- package/dist/feedback-Dm4izqFn.js.map +0 -1
- package/dist/field-affordance-recipes-DWcNcOjh.js.map +0 -1
- package/dist/field-state-recipes-BVA2CWHo.js +0 -12
- package/dist/field-state-recipes-BVA2CWHo.js.map +0 -1
- package/dist/filters-DzgSJpMK.js +0 -2257
- package/dist/filters-DzgSJpMK.js.map +0 -1
- package/dist/focus-recipes-B653VaLq.js.map +0 -1
- package/dist/form-field-BriWAXyg.js +0 -63
- package/dist/form-field-BriWAXyg.js.map +0 -1
- package/dist/forms-C0RGnJTe.js.map +0 -1
- package/dist/forms-numeric-DIhghX1Q.js +0 -910
- package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
- package/dist/header-DMMxG__r.js.map +0 -1
- package/dist/hooks-DB6CJ4MR.js.map +0 -1
- package/dist/http-D_6rOnzU.js.map +0 -1
- package/dist/item-DjCcM18E.js +0 -277
- package/dist/item-DjCcM18E.js.map +0 -1
- package/dist/layout.types-Cn7aUzJp.js +0 -20
- package/dist/layout.types-Cn7aUzJp.js.map +0 -1
- package/dist/media-gallery-C-vChPmE.js +0 -203
- package/dist/media-gallery-C-vChPmE.js.map +0 -1
- package/dist/mentions-0_4nWuI-.js +0 -570
- package/dist/mentions-0_4nWuI-.js.map +0 -1
- package/dist/message-g8p7eVtN.js +0 -128
- package/dist/message-g8p7eVtN.js.map +0 -1
- package/dist/metadata-list-C3MkU-Om.js.map +0 -1
- package/dist/motion-recipes-DitYv6P2.js.map +0 -1
- package/dist/navigation-C90-oQFq.js +0 -255
- package/dist/navigation-C90-oQFq.js.map +0 -1
- package/dist/navigation-DaRjthVk.js +0 -288
- package/dist/navigation-DaRjthVk.js.map +0 -1
- package/dist/number-CRU3kGuk.js +0 -354
- package/dist/number-CRU3kGuk.js.map +0 -1
- package/dist/overlays-BSgCtM2v.js.map +0 -1
- package/dist/page-DUUKDAjo.js +0 -331
- package/dist/page-DUUKDAjo.js.map +0 -1
- package/dist/pagination-CgCjElfu.js.map +0 -1
- package/dist/popover-B85RenIl.js +0 -201
- package/dist/popover-B85RenIl.js.map +0 -1
- package/dist/primitives-ByWgGUgt.js +0 -380
- package/dist/primitives-ByWgGUgt.js.map +0 -1
- package/dist/receipt-tOc7B3hw.js +0 -116
- package/dist/receipt-tOc7B3hw.js.map +0 -1
- package/dist/rich-text-Dth5E882.js +0 -78
- package/dist/rich-text-Dth5E882.js.map +0 -1
- package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
- package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
- package/dist/rich-text-editor-toolbar-laT3tpBT.js +0 -98
- package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
- package/dist/sanitize-html-DsQmI48u.js +0 -92
- package/dist/sanitize-html-DsQmI48u.js.map +0 -1
- package/dist/separator-Ct_WSWTJ.js.map +0 -1
- package/dist/settings-Bar5wiSo.js +0 -167
- package/dist/settings-Bar5wiSo.js.map +0 -1
- package/dist/sheet-BGPERY55.js +0 -250
- package/dist/sheet-BGPERY55.js.map +0 -1
- package/dist/sidebar-D-JYMMbY.js +0 -686
- package/dist/sidebar-D-JYMMbY.js.map +0 -1
- package/dist/sidebar-f9gRWXIR.js.map +0 -1
- package/dist/skeleton-BapcJd9C.js.map +0 -1
- package/dist/slot-CLF9kLrS.js +0 -16
- package/dist/slot-CLF9kLrS.js.map +0 -1
- package/dist/smart-card-CW0hjetE.js.map +0 -1
- package/dist/surface-recipes-BKRVW8Os.js.map +0 -1
- package/dist/table-B4TE7iOV.js +0 -175
- package/dist/table-B4TE7iOV.js.map +0 -1
- package/dist/table-CFOWY9pQ.js +0 -1536
- package/dist/table-CFOWY9pQ.js.map +0 -1
- package/dist/tabs-e7ko9S2o.js +0 -191
- package/dist/tabs-e7ko9S2o.js.map +0 -1
- package/dist/text-inputs-B1culiSK.js.map +0 -1
- package/dist/timelines-D3Sl9ueq.js +0 -458
- package/dist/timelines-D3Sl9ueq.js.map +0 -1
- package/dist/tooltip-8wz5S_Zr.js +0 -113
- package/dist/tooltip-8wz5S_Zr.js.map +0 -1
- package/dist/tree-CzUJHnFs.js.map +0 -1
- package/dist/typography-BQnine1k.js.map +0 -1
- package/dist/ui-provider-C-74NVLc.js.map +0 -1
- package/dist/upload-BOW6U2tI.js +0 -855
- package/dist/upload-BOW6U2tI.js.map +0 -1
- package/dist/upload-queue-qUXn1ykN.js +0 -409
- package/dist/upload-queue-qUXn1ykN.js.map +0 -1
- package/dist/usage-card-BeSLY0i0.js.map +0 -1
- package/dist/utils-B6kKb8jB.js.map +0 -1
- package/dist/value-inputs-skdVB2zh.js +0 -980
- package/dist/value-inputs-skdVB2zh.js.map +0 -1
- package/dist/value-typography-uAmWUAL1.js +0 -116
- package/dist/value-typography-uAmWUAL1.js.map +0 -1
- package/dist/workspace-DHeHv0qw.js +0 -411
- package/dist/workspace-DHeHv0qw.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-controllable-state-BlP8SyBI.js","names":["useControllableState","internal","setInternal","useState","defaultValue","controlled","value","set","useCallback","next","onChange"],"sources":["../src/lib/use-controllable-state.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nexport interface ControllableStateOptions<T> {\n\t/** The controlled value. `undefined` leaves the state with the component. */\n\tvalue: T | undefined;\n\t/** The initial value while the state is uncontrolled. */\n\tdefaultValue: T;\n\t/** Called with every requested value, whether or not the state is controlled. */\n\tonChange?: (next: T) => void;\n}\n\n/**\n * The controlled/uncontrolled pair behind a `value` / `defaultValue` /\n * `onValueChange` triplet. A defined `value` is authoritative and the setter\n * only reports the request; otherwise the component keeps the state itself.\n * Private to the library: it is the one implementation of this contract, not a\n * consumer hook.\n */\nexport function useControllableState<T>({ value, defaultValue, onChange }: ControllableStateOptions<T>): readonly [T, (next: T) => void] {\n\tconst [internal, setInternal] = useState(defaultValue);\n\tconst controlled = value !== undefined;\n\tconst set = useCallback((next: T) => {\n\t\tif (!controlled) setInternal(next);\n\t\tonChange?.(next);\n\t}, [controlled, onChange]);\n\treturn [controlled ? value : internal, set] as const;\n}\n"],"mappings":";;;AAkBA,SAAgBA,EAAwB,EAAE,UAAO,iBAAc,eAA0E;CACxI,IAAM,CAACC,GAAUC,KAAeC,EAASC,CAAY,GAC/CC,IAAaC,MAAU,KAAA,GACvBC,IAAMC,GAAa,MAAY;EAEpC,AADKH,KAAYH,EAAYO,CAAI,GACjCC,IAAWD,CAAI;CAChB,GAAG,CAACJ,GAAYK,CAAQ,CAAC;CACzB,OAAO,CAACL,IAAaC,IAAQL,GAAUM,CAAG;AAC3C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect as e, useRef as t, useState as n } from "react";
|
|
3
|
+
//#region src/lib/use-copy-feedback.ts
|
|
4
|
+
var r = 1500;
|
|
5
|
+
function i(i, a) {
|
|
6
|
+
let [o, s] = n(!1), [c, l] = n(!1), u = t(!1), d = t(0), f = t(void 0);
|
|
7
|
+
return e(() => (u.current = !0, s(!1), l(!1), () => {
|
|
8
|
+
u.current = !1, d.current += 1, clearTimeout(f.current);
|
|
9
|
+
}), [a]), {
|
|
10
|
+
copied: o,
|
|
11
|
+
failed: c,
|
|
12
|
+
copy: async (e) => {
|
|
13
|
+
let t = ++d.current;
|
|
14
|
+
clearTimeout(f.current), s(!1), l(!1);
|
|
15
|
+
try {
|
|
16
|
+
if (typeof navigator > "u" || !navigator.clipboard?.writeText) throw Error("Clipboard unavailable");
|
|
17
|
+
await navigator.clipboard.writeText(e);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return u.current && t === d.current && (l(!0), i?.(e)), !1;
|
|
20
|
+
}
|
|
21
|
+
return !u.current || t !== d.current ? !1 : (s(!0), f.current = setTimeout(() => s(!1), r), !0);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { i as t };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=use-copy-feedback-CzcaqlLf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-copy-feedback-CzcaqlLf.js","names":["COPIED_FEEDBACK_MS","useCopyFeedback","copied","setCopied","useState","failed","setFailed","mounted","useRef","attempt","timer","useEffect","source","request","text","error","onCopyError"],"sources":["../src/lib/use-copy-feedback.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** How long the copied state stays visible. */\nconst COPIED_FEEDBACK_MS = 1500;\n\nexport interface CopyFeedback {\n\t/** True for a short time after a successful copy. */\n\tcopied: boolean;\n\t/** True after a failed copy, until the next attempt or source change. */\n\tfailed: boolean;\n\t/** Writes text to the clipboard. Resolves `true` when this attempt is the one shown as copied. */\n\tcopy: (text: string) => Promise<boolean>;\n}\n\n/**\n * The clipboard lifecycle behind every copy action: one attempt at a time,\n * a short copied state, a failed state, and no state change after unmount.\n * `source` resets the feedback when the copied subject changes. The text and\n * the callback stay with the caller.\n */\nexport function useCopyFeedback(onCopyError?: (error: unknown) => void, source?: string): CopyFeedback {\n\tconst [copied, setCopied] = useState(false);\n\tconst [failed, setFailed] = useState(false);\n\tconst mounted = useRef(false);\n\tconst attempt = useRef(0);\n\tconst timer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n\tuseEffect(() => {\n\t\tmounted.current = true;\n\t\tsetCopied(false);\n\t\tsetFailed(false);\n\t\treturn () => {\n\t\t\tmounted.current = false;\n\t\t\tattempt.current += 1;\n\t\t\tclearTimeout(timer.current);\n\t\t};\n\t}, [source]);\n\n\tconst copy = async (text: string) => {\n\t\tconst request = ++attempt.current;\n\t\tclearTimeout(timer.current);\n\t\tsetCopied(false);\n\t\tsetFailed(false);\n\t\ttry {\n\t\t\tif (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n\t\t\t\tthrow new Error('Clipboard unavailable');\n\t\t\t}\n\t\t\tawait navigator.clipboard.writeText(text);\n\t\t} catch (error) {\n\t\t\tif (mounted.current && request === attempt.current) {\n\t\t\t\tsetFailed(true);\n\t\t\t\tonCopyError?.(error);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\tif (!mounted.current || request !== attempt.current) return false;\n\t\tsetCopied(true);\n\t\ttimer.current = setTimeout(() => setCopied(false), COPIED_FEEDBACK_MS);\n\t\treturn true;\n\t};\n\n\treturn { copied, failed, copy };\n}\n"],"mappings":";;;AAGA,IAAMA,IAAqB;AAiB3B,SAAgBC,EAAgB,GAAwC,GAA+B;CACtG,IAAM,CAACC,GAAQC,KAAaC,EAAS,EAAK,GACpC,CAACC,GAAQC,KAAaF,EAAS,EAAK,GACpCG,IAAUC,EAAO,EAAK,GACtBC,IAAUD,EAAO,CAAC,GAClBE,IAAQF,EAAkD,KAAA,CAAS;CAoCzE,OAlCAG,SACC,EAAQ,UAAU,IAClBR,EAAU,EAAK,GACfG,EAAU,EAAK,SACF;EAGZ,AAFA,EAAQ,UAAU,IAClB,EAAQ,WAAW,GACnB,aAAaI,EAAM,OAAO;CAC3B,IACE,CAACE,CAAM,CAAC,GAyBJ;EAAE;EAAQ;EAAQ,aAvBL,MAAiB;GACpC,IAAMC,IAAU,EAAEJ,EAAQ;GAG1B,AAFA,aAAaC,EAAM,OAAO,GAC1BP,EAAU,EAAK,GACfG,EAAU,EAAK;GACf,IAAI;IACH,IAAI,OAAO,YAAc,OAAe,CAAC,UAAU,WAAW,WAC7D,MAAU,MAAM,uBAAuB;IAExC,MAAM,UAAU,UAAU,UAAUQ,CAAI;GACzC,SAASC,GAAO;IAKf,OAJIR,EAAQ,WAAWM,MAAYJ,EAAQ,YAC1CH,EAAU,EAAI,GACdU,IAAcD,CAAK,IAEb;GACR;GAIA,OAHI,CAACR,EAAQ,WAAWM,MAAYJ,EAAQ,UAAgB,MAC5DN,EAAU,EAAI,GACd,EAAM,UAAU,iBAAiBA,EAAU,EAAK,GAAGH,CAAkB,GAC9D;EACR;CAE8B;AAC/B"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { h as e, p as t } from "./ui-provider-Bu1S-o96.js";
|
|
3
|
+
import { useStrings as n } from "./lib/strings.js";
|
|
4
|
+
import { t as r } from "./utils-BVbAG2J6.js";
|
|
5
|
+
import { c as i } from "./typography-C0dELqYV.js";
|
|
6
|
+
import { t as a } from "./structure-DElaQwwN.js";
|
|
7
|
+
import { i as o } from "./tone-recipes-BPsRAvhu.js";
|
|
8
|
+
import { t as s } from "./smart-card-C59z6KFO.js";
|
|
9
|
+
import { r as c } from "./skeleton-Cab_KgVo.js";
|
|
10
|
+
import { a as l, i as u, s as d } from "./value-typography-D15uwfj-.js";
|
|
11
|
+
import { _ as f } from "./primitives-BlC1lXBr.js";
|
|
12
|
+
import { a as p } from "./number-NFWKIoiK.js";
|
|
13
|
+
import { useMemo as m } from "react";
|
|
14
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
15
|
+
import { ArrowDown as _, ArrowUp as v, Minus as y } from "lucide-react";
|
|
16
|
+
//#region src/components/blocks/analytics/analytics.strings.ts
|
|
17
|
+
var b = {
|
|
18
|
+
metricErrorLabel: "Unable to load metric",
|
|
19
|
+
comparisonTitle: "Comparison",
|
|
20
|
+
heatmapDayLabels: [
|
|
21
|
+
"Mon",
|
|
22
|
+
"",
|
|
23
|
+
"Wed",
|
|
24
|
+
"",
|
|
25
|
+
"Fri",
|
|
26
|
+
"",
|
|
27
|
+
""
|
|
28
|
+
],
|
|
29
|
+
heatmapMonthNames: [
|
|
30
|
+
"Jan",
|
|
31
|
+
"Feb",
|
|
32
|
+
"Mar",
|
|
33
|
+
"Apr",
|
|
34
|
+
"May",
|
|
35
|
+
"Jun",
|
|
36
|
+
"Jul",
|
|
37
|
+
"Aug",
|
|
38
|
+
"Sep",
|
|
39
|
+
"Oct",
|
|
40
|
+
"Nov",
|
|
41
|
+
"Dec"
|
|
42
|
+
],
|
|
43
|
+
heatmapLegendLess: "Less",
|
|
44
|
+
heatmapLegendMore: "More"
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/components/blocks/analytics/format-metric-value.ts
|
|
48
|
+
function x(e, t = {}) {
|
|
49
|
+
if (e.value === null || e.value === void 0) return "—";
|
|
50
|
+
let n = e.value, r = typeof n == "number" ? n : null, { locale: i } = t;
|
|
51
|
+
switch (e.valueType) {
|
|
52
|
+
case "currency": return r === null ? String(n) : p({
|
|
53
|
+
amount: r,
|
|
54
|
+
currency: e.currency ?? t.defaultCurrency ?? "USD",
|
|
55
|
+
locale: i,
|
|
56
|
+
formatMode: t.moneyFormatMode ?? "with_code"
|
|
57
|
+
}) ?? "—";
|
|
58
|
+
case "percentage": return r === null ? String(n) : d(r, { locale: i });
|
|
59
|
+
case "duration": return r === null ? String(n) : u(r, { locale: i });
|
|
60
|
+
case "number": return r === null ? String(n) : l(r, { locale: i });
|
|
61
|
+
default: return String(n);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function S(e) {
|
|
65
|
+
return e.trend ? e.trend : e.change?.direction === "up" ? "positive" : e.change?.direction === "down" ? "negative" : "neutral";
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/components/blocks/analytics/atoms/metric-trend-chip.tsx
|
|
69
|
+
var C = {
|
|
70
|
+
up: "Up",
|
|
71
|
+
down: "Down",
|
|
72
|
+
neutral: "No change"
|
|
73
|
+
}, w = {
|
|
74
|
+
positive: {
|
|
75
|
+
text: "text-success",
|
|
76
|
+
badge: `${o.success.tint} ${o.success.ink}`,
|
|
77
|
+
arrow: "text-success"
|
|
78
|
+
},
|
|
79
|
+
negative: {
|
|
80
|
+
text: "text-destructive",
|
|
81
|
+
badge: `${o.destructive.tint} ${o.destructive.ink}`,
|
|
82
|
+
arrow: "text-destructive"
|
|
83
|
+
},
|
|
84
|
+
neutral: {
|
|
85
|
+
text: "text-muted-foreground",
|
|
86
|
+
badge: "bg-muted text-muted-foreground",
|
|
87
|
+
arrow: "text-muted-foreground"
|
|
88
|
+
}
|
|
89
|
+
}, T = {
|
|
90
|
+
sm: "size-icon-sm",
|
|
91
|
+
md: "size-icon-md",
|
|
92
|
+
lg: "size-icon"
|
|
93
|
+
}, E = {
|
|
94
|
+
sm: "xxs",
|
|
95
|
+
md: "xs",
|
|
96
|
+
lg: "sm"
|
|
97
|
+
}, D = {
|
|
98
|
+
sm: "px-space-sm py-space-2xs",
|
|
99
|
+
md: "px-space-md py-space-2xs",
|
|
100
|
+
lg: "px-space-md py-space-xs"
|
|
101
|
+
};
|
|
102
|
+
function O(e, t) {
|
|
103
|
+
return e || (t === "up" ? "positive" : t === "down" ? "negative" : "neutral");
|
|
104
|
+
}
|
|
105
|
+
function k({ change: e, trend: a, size: o = "md", variant: s = "default", className: c, strings: u }) {
|
|
106
|
+
let d = n(C, u), { locale: p } = t(), m = /* @__PURE__ */ g("span", {
|
|
107
|
+
className: "sr-only",
|
|
108
|
+
children: [e.directionLabel ?? d[e.direction], " "]
|
|
109
|
+
}), b = O(a, e.direction), x = e.direction === "up" ? v : e.direction === "down" ? _ : y, S = w[b], k = typeof e.value == "number" ? l(e.value, { locale: p }) : e.value, A = e.direction === "up" ? "+" : (e.direction, "");
|
|
110
|
+
return s === "inline" ? /* @__PURE__ */ g(f, {
|
|
111
|
+
type: "inherit",
|
|
112
|
+
size: E[o],
|
|
113
|
+
weight: "medium",
|
|
114
|
+
className: r("metric-trend-chip--component", S.text, "tabular-nums", c),
|
|
115
|
+
children: [
|
|
116
|
+
m,
|
|
117
|
+
A,
|
|
118
|
+
k
|
|
119
|
+
]
|
|
120
|
+
}) : s === "compact" ? /* @__PURE__ */ g("span", {
|
|
121
|
+
className: r("inline-flex items-center gap-space-2xs", S.text, c),
|
|
122
|
+
children: [
|
|
123
|
+
/* @__PURE__ */ h(x, {
|
|
124
|
+
className: T[o],
|
|
125
|
+
strokeWidth: 2.5,
|
|
126
|
+
"aria-hidden": "true"
|
|
127
|
+
}),
|
|
128
|
+
m,
|
|
129
|
+
/* @__PURE__ */ h(f, {
|
|
130
|
+
type: "inherit",
|
|
131
|
+
size: E[o],
|
|
132
|
+
weight: "semibold",
|
|
133
|
+
className: "tabular-nums",
|
|
134
|
+
children: k
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
}) : s === "badge" ? /* @__PURE__ */ g("span", {
|
|
138
|
+
className: r("inline-flex items-center gap-space-xs rounded-radius", S.badge, D[o], c),
|
|
139
|
+
children: [
|
|
140
|
+
/* @__PURE__ */ h(x, {
|
|
141
|
+
className: T[o],
|
|
142
|
+
strokeWidth: 2.5,
|
|
143
|
+
"aria-hidden": "true"
|
|
144
|
+
}),
|
|
145
|
+
m,
|
|
146
|
+
/* @__PURE__ */ h(f, {
|
|
147
|
+
type: "inherit",
|
|
148
|
+
size: E[o],
|
|
149
|
+
weight: "semibold",
|
|
150
|
+
className: "tabular-nums",
|
|
151
|
+
children: k
|
|
152
|
+
}),
|
|
153
|
+
!!e.label && /* @__PURE__ */ h(i, {
|
|
154
|
+
type: "inherit",
|
|
155
|
+
tag: "span",
|
|
156
|
+
size: E[o],
|
|
157
|
+
children: e.label
|
|
158
|
+
})
|
|
159
|
+
]
|
|
160
|
+
}) : /* @__PURE__ */ g("span", {
|
|
161
|
+
className: r("inline-flex items-center gap-space-xs", S.text, c),
|
|
162
|
+
children: [
|
|
163
|
+
/* @__PURE__ */ h(x, {
|
|
164
|
+
className: T[o],
|
|
165
|
+
strokeWidth: 2.5,
|
|
166
|
+
"aria-hidden": "true"
|
|
167
|
+
}),
|
|
168
|
+
m,
|
|
169
|
+
/* @__PURE__ */ h(f, {
|
|
170
|
+
type: "inherit",
|
|
171
|
+
size: E[o],
|
|
172
|
+
weight: "semibold",
|
|
173
|
+
className: "tabular-nums",
|
|
174
|
+
children: k
|
|
175
|
+
}),
|
|
176
|
+
!!e.label && /* @__PURE__ */ h(i, {
|
|
177
|
+
tag: "span",
|
|
178
|
+
size: E[o],
|
|
179
|
+
type: "secondary",
|
|
180
|
+
children: e.label
|
|
181
|
+
})
|
|
182
|
+
]
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
k.displayName = "MetricTrendChip";
|
|
186
|
+
//#endregion
|
|
187
|
+
//#region src/components/blocks/analytics/atoms/metric-skeleton.tsx
|
|
188
|
+
var A = ({ className: e }) => /* @__PURE__ */ h(c, { className: e });
|
|
189
|
+
function j({ variant: e = "default", size: t = "md", className: n }) {
|
|
190
|
+
let i = /* @__PURE__ */ g(a, {
|
|
191
|
+
gap: "lg",
|
|
192
|
+
children: [
|
|
193
|
+
/* @__PURE__ */ h(A, { className: "h-3 w-24" }),
|
|
194
|
+
/* @__PURE__ */ g(a, {
|
|
195
|
+
gap: "md",
|
|
196
|
+
children: [/* @__PURE__ */ h(A, { className: t === "lg" ? "h-9 w-40" : "h-7 w-32" }), /* @__PURE__ */ h(A, { className: "h-3 w-20" })]
|
|
197
|
+
}),
|
|
198
|
+
/* @__PURE__ */ h(A, { className: "h-8 w-full" })
|
|
199
|
+
]
|
|
200
|
+
});
|
|
201
|
+
return e === "card" || e === "bordered" || e === "accent" || e === "colored" ? /* @__PURE__ */ h(s, {
|
|
202
|
+
surface: e === "card" ? void 0 : "card",
|
|
203
|
+
className: r("metric-skeleton--component", n),
|
|
204
|
+
"aria-busy": "true",
|
|
205
|
+
"aria-live": "polite",
|
|
206
|
+
children: i
|
|
207
|
+
}) : e === "compact" ? /* @__PURE__ */ g("div", {
|
|
208
|
+
className: r("flex items-center gap-space-lg", n),
|
|
209
|
+
"aria-busy": "true",
|
|
210
|
+
children: [
|
|
211
|
+
/* @__PURE__ */ h(A, { className: "size-avatar rounded-radius" }),
|
|
212
|
+
/* @__PURE__ */ g(a, {
|
|
213
|
+
gap: "sm",
|
|
214
|
+
className: "flex-1",
|
|
215
|
+
children: [/* @__PURE__ */ h(A, { className: "h-3 w-20" }), /* @__PURE__ */ h(A, { className: "h-4 w-28" })]
|
|
216
|
+
}),
|
|
217
|
+
/* @__PURE__ */ h(A, { className: "h-5 w-12 rounded-full" })
|
|
218
|
+
]
|
|
219
|
+
}) : e === "minimal" ? /* @__PURE__ */ g("div", {
|
|
220
|
+
className: r("inline-flex items-baseline gap-space-md", n),
|
|
221
|
+
"aria-busy": "true",
|
|
222
|
+
children: [/* @__PURE__ */ h(A, { className: "h-3 w-12" }), /* @__PURE__ */ h(A, { className: "h-3 w-16" })]
|
|
223
|
+
}) : /* @__PURE__ */ g("div", {
|
|
224
|
+
className: r("flex flex-col gap-space-sm", n),
|
|
225
|
+
"aria-busy": "true",
|
|
226
|
+
children: [
|
|
227
|
+
/* @__PURE__ */ h(A, { className: "h-3 w-20" }),
|
|
228
|
+
/* @__PURE__ */ h(A, { className: "h-5 w-28" }),
|
|
229
|
+
/* @__PURE__ */ h(A, { className: "mt-1 h-6 w-full" })
|
|
230
|
+
]
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
j.displayName = "MetricSkeleton";
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src/components/blocks/analytics/use-metric-format-options.ts
|
|
236
|
+
function M() {
|
|
237
|
+
let { locale: n } = t(), { defaultCurrency: r, formatMode: i } = e();
|
|
238
|
+
return m(() => ({
|
|
239
|
+
locale: n,
|
|
240
|
+
defaultCurrency: r,
|
|
241
|
+
moneyFormatMode: i
|
|
242
|
+
}), [
|
|
243
|
+
n,
|
|
244
|
+
r,
|
|
245
|
+
i
|
|
246
|
+
]);
|
|
247
|
+
}
|
|
248
|
+
//#endregion
|
|
249
|
+
export { x as a, C as i, j as n, S as o, k as r, b as s, M as t };
|
|
250
|
+
|
|
251
|
+
//# sourceMappingURL=use-metric-format-options-Dk4rC1NO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-metric-format-options-Dk4rC1NO.js","names":["useMoneyConfig","useFormattingConfig","cn","Text","Stack","toneRecipes","Card","Skeleton","formatNumber","formatDuration","formatPercentage","Value","formatMoneyAmount","defaultAnalyticsStrings","formatMetricValue","data","value","numeric","options","resolveTrend","defaultMetricTrendChipStrings","TONE_CLASSES","ICON_SIZE","TEXT_SIZE","BADGE_PADDING","resolveTone","trend","direction","MetricTrendChip","stringsProp","strings","useStrings","change","tone","Icon","ArrowUp","ArrowDown","Minus","palette","valueText","sign","variant","size","className","Bar","MetricSkeleton","cardBody","useMetricFormatOptions","useMemo","formatMode","locale","defaultCurrency"],"sources":["../src/components/blocks/analytics/analytics.strings.ts","../src/components/blocks/analytics/format-metric-value.ts","../src/components/blocks/analytics/atoms/metric-trend-chip.tsx","../src/components/blocks/analytics/atoms/metric-skeleton.tsx","../src/components/blocks/analytics/use-metric-format-options.ts"],"sourcesContent":["/**\n * Shared default strings for `blocks/analytics` components.\n *\n * Each component accepts a `strings` prop deep-merged over these defaults\n * so consumers override per-component without touching the rest. Day/month\n * labels live here too because they're localisable in the same way.\n */\nexport interface AnalyticsStrings {\n\t/** Fallback shown by `<Metric />` when `error` is true. */\n\tmetricErrorLabel: string;\n\t/** Default title for `<MetricComparison />` when no `title` prop is passed. */\n\tcomparisonTitle: string;\n\t/** Labels for the activity heatmap weekday rows (Mon–Sun, length 7). */\n\theatmapDayLabels: readonly [string, string, string, string, string, string, string];\n\t/** Short month names for the activity heatmap header (Jan–Dec, length 12). */\n\theatmapMonthNames: readonly [\n\t\tstring, string, string, string, string, string,\n\t\tstring, string, string, string, string, string,\n\t];\n\t/** Heatmap legend \"less\" label (left edge of intensity legend). */\n\theatmapLegendLess: string;\n\t/** Heatmap legend \"more\" label (right edge of intensity legend). */\n\theatmapLegendMore: string;\n\t/** Writes a heatmap day's tooltip from its date and level (0–4). Defaults to `\"<date>: Level <level>\"`. */\n\theatmapFormatCell?: (date: string, level: number) => string;\n}\n\nexport const defaultAnalyticsStrings: AnalyticsStrings = {\n\tmetricErrorLabel: 'Unable to load metric',\n\tcomparisonTitle: 'Comparison',\n\theatmapDayLabels: ['Mon', '', 'Wed', '', 'Fri', '', ''],\n\theatmapMonthNames: [\n\t\t'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n\t],\n\theatmapLegendLess: 'Less',\n\theatmapLegendMore: 'More',\n};\n","/**\n * formatMetricValue — single canonical formatter for every metric surface.\n *\n * Keeps formatting logic out of the layout components so the same dataset\n * renders identically regardless of which `Metric*` variant displays it.\n * Currency values use the same formatter as the Money primitive, so a KPI and\n * a table cell show one amount the same way.\n */\nimport {\n\tEMPTY,\n\tformatNumber,\n\tformatPercentage,\n} from '../../../lib/format';\nimport { formatMoneyAmount } from '../../../lib/money-format';\nimport type { MoneyFormatMode } from '../../../lib/ui-provider';\nimport { formatDuration } from '../../primitives';\nimport type { MetricData } from './types';\n\n/** Display policy that metric components resolve from UIProvider. */\nexport interface FormatMetricValueOptions {\n\t/** BCP-47 locale. Metric components pass `UIProvider.formatting.locale`. */\n\tlocale?: string;\n\t/** Currency used when the metric has none. Defaults to `USD`, like UIProvider. */\n\tdefaultCurrency?: string;\n\t/** Money format policy. Defaults to `with_code`, like UIProvider. */\n\tmoneyFormatMode?: MoneyFormatMode;\n}\n\nexport function formatMetricValue(data: MetricData, options: FormatMetricValueOptions = {}): string {\n\tif (data.value === null || data.value === undefined) return EMPTY;\n\n\tconst value = data.value;\n\tconst numeric = typeof value === 'number' ? value : null;\n\tconst { locale } = options;\n\n\tswitch (data.valueType) {\n\t\tcase 'currency':\n\t\t\treturn numeric !== null\n\t\t\t\t? (formatMoneyAmount({\n\t\t\t\t\tamount: numeric,\n\t\t\t\t\tcurrency: data.currency ?? options.defaultCurrency ?? 'USD',\n\t\t\t\t\tlocale,\n\t\t\t\t\tformatMode: options.moneyFormatMode ?? 'with_code',\n\t\t\t\t}) ?? EMPTY)\n\t\t\t\t: String(value);\n\t\tcase 'percentage':\n\t\t\treturn numeric !== null ? formatPercentage(numeric, { locale }) : String(value);\n\t\tcase 'duration':\n\t\t\treturn numeric !== null ? formatDuration(numeric, { locale }) : String(value);\n\t\tcase 'number':\n\t\t\treturn numeric !== null ? formatNumber(numeric, { locale }) : String(value);\n\t\tcase 'text':\n\t\tdefault:\n\t\t\treturn String(value);\n\t}\n}\n\n/**\n * Resolve the effective `MetricTrend` for a metric — explicit `trend` wins,\n * otherwise we infer from `change.direction` (`up` → positive, `down` →\n * negative, `neutral`/missing → neutral).\n */\nexport function resolveTrend(data: MetricData): 'positive' | 'negative' | 'neutral' {\n\tif (data.trend) return data.trend;\n\tif (data.change?.direction === 'up') return 'positive';\n\tif (data.change?.direction === 'down') return 'negative';\n\treturn 'neutral';\n}\n","/**\n * MetricTrendChip — compact ↑/↓/→ delta indicator.\n *\n * Decouples direction (up/down/neutral) from tone (positive/negative/neutral)\n * so consumers can flip the colour for inverted metrics like churn or refund\n * rate. Four variants:\n * - `default` — coloured icon + value, no chrome\n * - `badge` — pill with tinted bg + arrow icon\n * - `compact` — coloured arrow + value, no spacing\n * - `inline` — value only with sign prefix, no icon\n *\n * The arrow and the colour are decoration: every variant also states the\n * direction in words for assistive technology (`strings`, or per datum through\n * `change.directionLabel`).\n */\nimport { ArrowDown, ArrowUp, Minus } from 'lucide-react';\nimport { Value } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { formatNumber } from '../../../../lib/format';\nimport { useStrings, type StringsProp } from '../../../../lib/strings';\nimport { useFormattingConfig } from '../../../../lib/ui-provider';\nimport { cn } from '../../../../lib/utils';\n\nimport type { MetricChange, MetricSize, MetricTrend, MetricTrendVariant } from '../types';\nimport { toneRecipes } from '../../../../lib/tone-recipes';\n\nexport interface MetricTrendChipStrings {\n\t/** Direction in words, read out before the value. */\n\tup: string;\n\tdown: string;\n\tneutral: string;\n}\n\nexport const defaultMetricTrendChipStrings: MetricTrendChipStrings = {\n\tup: 'Up',\n\tdown: 'Down',\n\tneutral: 'No change',\n};\n\nexport interface MetricTrendChipProps {\n\tchange: MetricChange;\n\ttrend?: MetricTrend;\n\t/** Size preset. */\n\tsize?: MetricSize;\n\t/** Shell treatment. */\n\tvariant?: MetricTrendVariant;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Overrides the direction words. */\n\tstrings?: StringsProp<MetricTrendChipStrings>;\n}\n\nconst TONE_CLASSES: Record<MetricTrend, { text: string; badge: string; arrow: string }> = {\n\tpositive: { text: 'text-success', badge: `${toneRecipes.success.tint} ${toneRecipes.success.ink}`, arrow: 'text-success' },\n\tnegative: { text: 'text-destructive', badge: `${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`, arrow: 'text-destructive' },\n\tneutral: { text: 'text-muted-foreground', badge: 'bg-muted text-muted-foreground', arrow: 'text-muted-foreground' },\n};\n\nconst ICON_SIZE: Record<MetricSize, string> = {\n\tsm: 'size-icon-sm',\n\tmd: 'size-icon-md',\n\tlg: 'size-icon',\n};\n\nconst TEXT_SIZE: Record<MetricSize, 'xxs' | 'xs' | 'sm'> = {\n\tsm: 'xxs',\n\tmd: 'xs',\n\tlg: 'sm',\n};\n\nconst BADGE_PADDING: Record<MetricSize, string> = {\n\tsm: 'px-space-sm py-space-2xs',\n\tmd: 'px-space-md py-space-2xs',\n\tlg: 'px-space-md py-space-xs',\n};\n\nfunction resolveTone(trend: MetricTrend | undefined, direction: MetricChange['direction']): MetricTrend {\n\tif (trend) return trend;\n\tif (direction === 'up') return 'positive';\n\tif (direction === 'down') return 'negative';\n\treturn 'neutral';\n}\n\nexport function MetricTrendChip({\n\tchange,\n\ttrend,\n\tsize = 'md',\n\tvariant = 'default',\n\tclassName,\n\tstrings: stringsProp,\n}: MetricTrendChipProps) {\n\tconst strings = useStrings(defaultMetricTrendChipStrings, stringsProp);\n\tconst { locale } = useFormattingConfig();\n\tconst direction = <span className=\"sr-only\">{change.directionLabel ?? strings[change.direction]} </span>;\n\tconst tone = resolveTone(trend, change.direction);\n\tconst Icon = change.direction === 'up' ? ArrowUp : change.direction === 'down' ? ArrowDown : Minus;\n\tconst palette = TONE_CLASSES[tone];\n\t// A number is formatted for the provider locale; a string is the app's own formatting.\n\tconst valueText = typeof change.value === 'number' ? formatNumber(change.value, { locale }) : change.value;\n\tconst sign = change.direction === 'up' ? '+' : change.direction === 'down' ? '' : '';\n\n\tif (variant === 'inline') {\n\t\treturn (\n\t\t\t<Value type=\"inherit\" size={TEXT_SIZE[size]} weight=\"medium\" className={cn('metric-trend-chip--component', palette.text, 'tabular-nums', className)}>\n\t\t\t\t{direction}{sign}{valueText}\n\t\t\t</Value>\n\t\t);\n\t}\n\n\tif (variant === 'compact') {\n\t\treturn (\n\t\t\t<span className={cn('inline-flex items-center gap-space-2xs', palette.text, className)}>\n\t\t\t\t<Icon className={ICON_SIZE[size]} strokeWidth={2.5} aria-hidden=\"true\" />\n\t\t\t\t{direction}\n\t\t\t\t<Value type=\"inherit\" size={TEXT_SIZE[size]} weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t{valueText}\n\t\t\t\t</Value>\n\t\t\t</span>\n\t\t);\n\t}\n\n\tif (variant === 'badge') {\n\t\treturn (\n\t\t\t<span className={cn('inline-flex items-center gap-space-xs rounded-radius', palette.badge, BADGE_PADDING[size], className)}>\n\t\t\t\t<Icon className={ICON_SIZE[size]} strokeWidth={2.5} aria-hidden=\"true\" />\n\t\t\t\t{direction}\n\t\t\t\t<Value type=\"inherit\" size={TEXT_SIZE[size]} weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t{valueText}\n\t\t\t\t</Value>\n\t\t\t\t{!!change.label && (\n\t\t\t\t\t<Text type=\"inherit\" tag=\"span\" size={TEXT_SIZE[size]}>{change.label}</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\t}\n\n\t// default\n\treturn (\n\t\t<span className={cn('inline-flex items-center gap-space-xs', palette.text, className)}>\n\t\t\t<Icon className={ICON_SIZE[size]} strokeWidth={2.5} aria-hidden=\"true\" />\n\t\t\t{direction}\n\t\t\t<Value type=\"inherit\" size={TEXT_SIZE[size]} weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t{valueText}\n\t\t\t</Value>\n\t\t\t{!!change.label && (\n\t\t\t\t<Text tag=\"span\" size={TEXT_SIZE[size]} type=\"secondary\">{change.label}</Text>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n\nMetricTrendChip.displayName = 'MetricTrendChip';\n","/**\n * MetricSkeleton — loading placeholder matching the height/spacing of every\n * `Metric` variant so the layout doesn't jump when data resolves.\n */\nimport { Card } from '../../../base/cards';\nimport { Skeleton } from '../../../base/skeleton';\nimport { Stack } from '../../../base/structure';\nimport { cn } from '../../../../lib/utils';\nimport type { MetricSize, MetricVariant } from '../types';\n\nexport interface MetricSkeletonProps {\n\t/** Shell treatment. */\n\tvariant?: MetricVariant;\n\t/** Size preset. */\n\tsize?: MetricSize;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nconst Bar = ({ className }: { className?: string }) => (\n\t<Skeleton className={className} />\n);\n\nexport function MetricSkeleton({\n\tvariant = 'default',\n\tsize = 'md',\n\tclassName,\n}: MetricSkeletonProps) {\n\t// Card-shaped variants share the loaded layout: label, value with its\n\t// supporting line, then the chart band.\n\tconst cardBody = (\n\t\t<Stack gap=\"lg\">\n\t\t\t<Bar className=\"h-3 w-24\" />\n\t\t\t<Stack gap=\"md\">\n\t\t\t\t<Bar className={size === 'lg' ? 'h-9 w-40' : 'h-7 w-32'} />\n\t\t\t\t<Bar className=\"h-3 w-20\" />\n\t\t\t</Stack>\n\t\t\t<Bar className=\"h-8 w-full\" />\n\t\t</Stack>\n\t);\n\n\tif (variant === 'card' || variant === 'bordered' || variant === 'accent' || variant === 'colored') {\n\t\t// The card variant inherits the provider surface like the loaded card;\n\t\t// the bordered, accent and colored variants draw the plain card surface.\n\t\treturn (\n\t\t\t<Card\n\t\t\t\tsurface={variant === 'card' ? undefined : 'card'}\n\t\t\t\tclassName={cn('metric-skeleton--component', className)}\n\t\t\t\taria-busy=\"true\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t>\n\t\t\t\t{cardBody}\n\t\t\t</Card>\n\t\t);\n\t}\n\n\tif (variant === 'compact') {\n\t\treturn (\n\t\t\t<div className={cn('flex items-center gap-space-lg', className)} aria-busy=\"true\">\n\t\t\t\t<Bar className=\"size-avatar rounded-radius\" />\n\t\t\t\t<Stack gap=\"sm\" className=\"flex-1\">\n\t\t\t\t\t<Bar className=\"h-3 w-20\" />\n\t\t\t\t\t<Bar className=\"h-4 w-28\" />\n\t\t\t\t</Stack>\n\t\t\t\t<Bar className=\"h-5 w-12 rounded-full\" />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (variant === 'minimal') {\n\t\treturn (\n\t\t\t<div className={cn('inline-flex items-baseline gap-space-md', className)} aria-busy=\"true\">\n\t\t\t\t<Bar className=\"h-3 w-12\" />\n\t\t\t\t<Bar className=\"h-3 w-16\" />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// default\n\treturn (\n\t\t// Frameless like the loaded default tile: the host owns the inset.\n\t\t<div className={cn('flex flex-col gap-space-sm', className)} aria-busy=\"true\">\n\t\t\t<Bar className=\"h-3 w-20\" />\n\t\t\t<Bar className=\"h-5 w-28\" />\n\t\t\t<Bar className=\"mt-1 h-6 w-full\" />\n\t\t</div>\n\t);\n}\n\nMetricSkeleton.displayName = 'MetricSkeleton';\n","import { useMemo } from 'react';\n\nimport { useFormattingConfig, useMoneyConfig } from '../../../lib/ui-provider';\n\nimport type { FormatMetricValueOptions } from './format-metric-value';\n\n/** Metric formatting policy from UIProvider: locale, default currency and money format. */\nexport function useMetricFormatOptions(): FormatMetricValueOptions {\n\tconst { locale } = useFormattingConfig();\n\tconst { defaultCurrency, formatMode } = useMoneyConfig();\n\treturn useMemo(\n\t\t() => ({ locale, defaultCurrency, moneyFormatMode: formatMode }),\n\t\t[locale, defaultCurrency, formatMode],\n\t);\n}\n"],"mappings":"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"}
|