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":"date-pickers-D8aJoeHc.js","names":["React","CalendarIcon","useDatesConfig","cn","Text","Button","Stack","popoverWidthRecipes","formControlIconClasses","pickerTriggerClasses","DatePickerFooter","usePickerOpenState","defaultDatePickerStrings","DatePickerField","usePickerTriggerSize","DatePickerHeader","resolvePickerButtonProps","PopoverTrigger","Popover","PopoverContent","FormField","Select","React$1","DEFAULT_YEAR_SPAN","MonthYearPicker","controlledOpen","dateFormat","externalDescription","ariaInvalid","sizeProp","size","presentation","buttonTone","buttonStyle","currentYear","open","setOpen","selection","setSelection","value","defaultValue","previousValueRef","dates","dateFnsLocale","locale","enUS","t","useStrings","strings","generatedTriggerId","triggerId","id","describedBy","ariaDescribedBy","error","isInvalid","invalid","monthSelectId","yearSelectId","yearRange","start","fromYear","end","toYear","i","monthNames","format","createOutput","date","year","month","readableFormat","handleMonthChange","monthValue","handleYearChange","yearValue","handleConfirm","onValueChange","closeOnSelect","buttonText","placeholder","ref","className","triggerRef","triggerProps","iconOnly","Calendar","header","index","disabled","footer"],"sources":["../src/components/base/date-pickers/month-year-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '../buttons';\nimport { FormField } from '../forms/form-field';\nimport { Stack } from '../structure';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Select } from '../choice-inputs';\nimport { Text } from '../../typography';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useStrings } from '../../../lib/strings';\n\nimport { DatePickerField } from './date-picker-field';\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { pickerTriggerClasses, usePickerTriggerSize } from './date-picker.recipes';\nimport { resolvePickerButtonProps, usePickerOpenState } from './date-picker-internals';\nimport { formControlIconClasses } from '../forms/form-sizing';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { MonthYearPickerProps, MonthYearOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\nimport { popoverWidthRecipes } from '../popover/popover.recipes';\n\n/** Years offered on either side of the current year when no range is given. */\nconst DEFAULT_YEAR_SPAN = 10;\n\nexport const MonthYearPicker = React.forwardRef<HTMLDivElement, MonthYearPickerProps>(function MonthYearPicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\topen: controlledOpen,\n\tdefaultOpen,\n\tonOpenChange,\n\tformat: dateFormat = 'yyyy-MM',\n\treadableFormat = 'MMMM yyyy',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tinvalid,\n\tid,\n\ttriggerRef,\n\tonBlur,\n\t'aria-describedby': externalDescription,\n\t'aria-invalid': ariaInvalid,\n\tdisabled = false,\n\tsize: sizeProp,\n\tbuttonTone,\n\tbuttonStyle,\n\tclassName,\n\tcloseOnSelect = true,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tfromYear,\n\ttoYear,\n\ticonOnly = false\n}: MonthYearPickerProps, ref) {\n\tconst size = usePickerTriggerSize(sizeProp);\n\tconst presentation = resolvePickerButtonProps(buttonTone, buttonStyle);\n\tconst [currentYear] = React.useState(() => new Date().getFullYear());\n\tconst [open, setOpen] = usePickerOpenState({ open: controlledOpen, defaultOpen, onOpenChange, disabled });\n\tconst [selection, setSelection] = React.useState<{\n\t\tmonth: number;\n\t\tyear: number;\n\t} | undefined>(value ?? defaultValue);\n\tconst previousValueRef = React.useRef(value);\n\n\tconst dates = useDatesConfig();\n\tconst dateFnsLocale = locale ?? dates.locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings);\n\tconst generatedTriggerId = React.useId();\n\tconst triggerId = id ?? generatedTriggerId;\n\t// Mirrors the DatePicker variants: the error line is the trigger's\n\t// description, so screen readers announce it with the control.\n\tconst describedBy = `${triggerId}-description`;\n\tconst ariaDescribedBy = [externalDescription, error ? describedBy : undefined].filter(Boolean).join(' ') || undefined;\n\tconst isInvalid = Boolean(error) || Boolean(invalid || (ariaInvalid && ariaInvalid !== 'false'));\n\t// Derived from useId so several pickers can coexist on one page; these were\n\t// previously the fixed literals \"month-select\" / \"year-select\".\n\tconst monthSelectId = `${triggerId}-month`;\n\tconst yearSelectId = `${triggerId}-year`;\n\n\t// Year range. Anchored to the current year rather than fixed literals: the\n\t// previous 2017–2035 defaults would have stopped offering any future year\n\t// once 2035 arrived.\n\tconst yearRange = React.useMemo(() => {\n\t\tconst start = fromYear ?? currentYear - DEFAULT_YEAR_SPAN;\n\t\tconst end = toYear ?? currentYear + DEFAULT_YEAR_SPAN;\n\t\treturn Array.from({ length: Math.max(end - start + 1, 1) }, (_, i) => start + i);\n\t}, [fromYear, toYear, currentYear]);\n\n\t// Month names (localized)\n\tconst monthNames = React.useMemo(() => {\n\t\treturn Array.from({ length: 12 }, (_, i) => {\n\t\t\tconst date = new Date(2000, i, 1);\n\t\t\treturn format(date, 'MMMM', { locale: dateFnsLocale });\n\t\t});\n\t}, [dateFnsLocale]);\n\n\t// A new controlled value or its release owns selection; unrelated default\n\t// objects must not discard a month being edited before confirmation.\n\tReact.useEffect(() => {\n\t\tif (Object.is(previousValueRef.current, value)) return;\n\t\tpreviousValueRef.current = value;\n\t\tsetSelection(value ?? defaultValue);\n\t}, [value, defaultValue]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(month: number, year: number): MonthYearOutput => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tyear,\n\t\t\t\tformatted: format(date, dateFormat, { locale: dateFnsLocale }),\n\t\t\t\treadable: format(date, readableFormat, { locale: dateFnsLocale }),\n\t\t\t\tdate\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection change\n\tconst handleMonthChange = React.useCallback(\n\t\t(monthValue: unknown) => {\n\t\t\tconst monthStr = String(monthValue);\n\t\t\tconst month = parseInt(monthStr, 10);\n\t\t\tconst year = selection?.year ?? currentYear;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.year, currentYear]\n\t);\n\n\tconst handleYearChange = React.useCallback(\n\t\t(yearValue: unknown) => {\n\t\t\tconst yearStr = String(yearValue);\n\t\t\tconst year = parseInt(yearStr, 10);\n\t\t\tconst month = selection?.month ?? 0;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.month]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tif (selection) {\n\t\t\tonValueChange?.(createOutput(selection.month, selection.year));\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t}, [selection, onValueChange, createOutput, closeOnSelect, setOpen]);\n\n\t// Button display text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (selection) {\n\t\t\tconst date = new Date(selection.year, selection.month, 1);\n\t\t\treturn format(date, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectMonthYear;\n\t}, [selection, readableFormat, dateFnsLocale, placeholder, t.selectMonthYear]);\n\n\treturn (\n\t\t<DatePickerField\n\t\t\trootRef={ref}\n\t\t\tclassName={cn('month-year-picker--component', className)}\n\t\t\tlabel={label}\n\t\t\thint={hint}\n\t\t\terror={error}\n\t\t\ttriggerId={triggerId}\n\t\t\tdescribedById={describedBy}\n\t\t>\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\tref={triggerRef}\n\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\ttone={presentation.tone}\n\t\t\t\t\t\t\tbuttonStyle={presentation.buttonStyle}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\taria-invalid={isInvalid}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t// Icon-only drops the visible value, so the action name has to\n\t\t\t\t\t\t\t// carry the button on its own.\n\t\t\t\t\t\t\taria-label={iconOnly ? t.selectMonthYear : undefined}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tpickerTriggerClasses(size, iconOnly),\n\t\t\t\t\t\t\t\t!selection && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{!iconOnly && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tinset=\"flush\"\n\t\t\t\t\tclassName={cn(popoverWidthRecipes.lg, 'gap-0')}\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t{/* Month and Year Selectors: ordinary FormField rows, so the label\n\t\t\t\t\t rhythm matches every other field. */}\n\t\t\t\t\t<div className=\"p-surface\">\n\t\t\t\t\t<Stack gap=\"xl\">\n\t\t\t\t\t\t<FormField label={t.month} htmlFor={monthSelectId}>\n\t\t\t\t\t\t\t<Select id={monthSelectId}\n\t\t\t\t\t\t\t\toptions={monthNames.map((label,index)=>({label,value:index.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.month?.toString()} onValueChange={handleMonthChange}\n\t\t\t\t\t\t\t\tplaceholder={t.month} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\n\t\t\t\t\t\t<FormField label={t.year} htmlFor={yearSelectId}>\n\t\t\t\t\t\t\t<Select id={yearSelectId}\n\t\t\t\t\t\t\t\toptions={yearRange.map(year=>({label:year.toString(),value:year.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.year?.toString()} onValueChange={handleYearChange}\n\t\t\t\t\t\t\t\tplaceholder={t.year} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Confirm Button */}\n\t\t\t\t\t<div className=\"px-surface pb-surface\">\n\t\t\t\t\t\t<Button tone=\"primary\"\n\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\tdisabled={disabled || !selection}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!footer && !!selection && (\n\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\toutput={createOutput(selection.month, selection.year)}\n\t\t\t\t\t\t\thasSelection={!!selection}\n\t\t\t\t\t\t\tautoSummary={buttonText}\n\t\t\t\t\t\t/>\n\t\t)}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t</DatePickerField>\n\t);\n});\n\n// Convenience export for type\nexport type { MonthYearPickerProps, MonthYearOutput };\n\nMonthYearPicker.displayName = 'MonthYearPicker';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosure-panel-B0HFNZ9x.js","names":["React","React$1","DisclosurePanelElement","height","props","heightVariable","measure","node","styles","current","authoredStyle","states","name","expanded","value","state","useRender","render","renderProps"],"sources":["../src/components/ui/disclosure-panel.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\n\ntype PanelState = { open: boolean; transitionStatus: string | undefined };\n\n/** Keep the native panel and Base UI lifecycle; correct its collapsed-padding measurement. */\nexport function DisclosurePanelElement<State extends PanelState>({\n props,\n state,\n render,\n heightVariable,\n}: {\n props: React.ComponentPropsWithRef<'div'>;\n state: State;\n render?: useRender.RenderProp<State>;\n heightVariable: '--accordion-panel-height' | '--collapsible-panel-height';\n}) {\n const height = (props.style as Record<string, unknown> | undefined)?.[heightVariable];\n const measure = React.useCallback((node: HTMLDivElement | null) => {\n // Base UI resets this to auto when opening finishes. Leave natural layout alone.\n if (!node || height === 'auto' || height == null || node.hidden) return;\n const styles = getComputedStyle(node);\n const current = {\n height: styles.height,\n 'padding-block-start': styles.paddingBlockStart,\n 'padding-block-end': styles.paddingBlockEnd,\n };\n // Preserve the complete declaration: CSS variable shorthands have empty CSSOM longhands.\n const authoredStyle = node.style.cssText;\n const attributes = ['data-starting-style', 'data-ending-style'] as const;\n const states = attributes.map(name => [name, node.getAttribute(name)] as const);\n node.style.setProperty('transition-property', 'none', 'important');\n node.style.setProperty('height', 'auto', 'important');\n for (const [name] of states) node.removeAttribute(name);\n // Read geometry, never copy theme variables or insets into a second styling system.\n // Computed layout height excludes ancestor transforms (for example, an opening dialog).\n const expanded = parseFloat(getComputedStyle(node).height);\n for (const [name, value] of states) if (value !== null) node.setAttribute(name, value);\n node.style.setProperty(heightVariable, `${expanded}px`);\n // Resume an interrupted transition from its rendered geometry, without a painted jump.\n for (const [name, value] of Object.entries(current)) node.style.setProperty(name, value, 'important');\n void node.offsetHeight;\n node.style.cssText = authoredStyle;\n node.style.setProperty(heightVariable, `${expanded}px`);\n }, [height, heightVariable, state.open]);\n\n return useRender({\n defaultTagName: 'div',\n render: typeof render === 'function' ? (renderProps => render(renderProps, state)) : render,\n props: { ...props },\n ref: measure,\n });\n}\n"],"mappings":";;;;AAMA,SAAgBE,EAAiD,EAChE,UACA,UACA,WACA,qBAME;CACF,IAAMC,IAAUC,EAAM,QAAgDC,IAChEC,IAAUN,EAAM,aAAa,MAAgC;EAElE,IAAI,CAACO,KAAQJ,MAAW,UAAUA,KAAU,QAAQI,EAAK,QAAQ;EACjE,IAAMC,IAAS,iBAAiBD,CAAI,GAC9BE,IAAU;GACf,QAAQD,EAAO;GACf,uBAAuBA,EAAO;GAC9B,qBAAqBA,EAAO;EAC7B,GAEME,IAAgBH,EAAK,MAAM,SAE3BI,IAAS,CADK,uBAAuB,mBAC5B,CAAA,CAAW,KAAI,MAAQ,CAACC,GAAML,EAAK,aAAaK,CAAI,CAAC,CAAU;EAE9E,AADAL,EAAK,MAAM,YAAY,uBAAuB,QAAQ,WAAW,GACjEA,EAAK,MAAM,YAAY,UAAU,QAAQ,WAAW;EACpD,KAAK,IAAM,CAACK,MAASD,GAAQ,EAAK,gBAAgBC,CAAI;EAGtD,IAAMC,IAAW,WAAW,iBAAiBN,CAAI,CAAC,CAAC,MAAM;EACzD,KAAK,IAAM,CAACK,GAAME,MAAUH,GAAQ,AAAIG,MAAU,QAAMP,EAAK,aAAaK,GAAME,CAAK;EACrF,EAAK,MAAM,YAAYT,GAAgB,GAAGQ,EAAS,GAAG;EAEtD,KAAK,IAAM,CAACD,GAAME,MAAU,OAAO,QAAQL,CAAO,GAAG,EAAK,MAAM,YAAYG,GAAME,GAAO,WAAW;EAGpG,AAFAP,EAAU,cACV,EAAK,MAAM,UAAUG,GACrBH,EAAK,MAAM,YAAYF,GAAgB,GAAGQ,EAAS,GAAG;
|
|
1
|
+
{"version":3,"file":"disclosure-panel-B0HFNZ9x.js","names":["React","React$1","DisclosurePanelElement","height","props","heightVariable","measure","node","styles","current","authoredStyle","states","name","expanded","value","state","useRender","render","renderProps"],"sources":["../src/components/ui/disclosure-panel.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\n\ntype PanelState = { open: boolean; transitionStatus: string | undefined };\n\n/** Keep the native panel and Base UI lifecycle; correct its collapsed-padding measurement. */\nexport function DisclosurePanelElement<State extends PanelState>({\n props,\n state,\n render,\n heightVariable,\n}: {\n props: React.ComponentPropsWithRef<'div'>;\n state: State;\n render?: useRender.RenderProp<State>;\n heightVariable: '--accordion-panel-height' | '--collapsible-panel-height';\n}) {\n const height = (props.style as Record<string, unknown> | undefined)?.[heightVariable];\n const measure = React.useCallback((node: HTMLDivElement | null) => {\n // Base UI resets this to auto when opening finishes. Leave natural layout alone.\n if (!node || height === 'auto' || height == null || node.hidden) return;\n const styles = getComputedStyle(node);\n const current = {\n height: styles.height,\n 'padding-block-start': styles.paddingBlockStart,\n 'padding-block-end': styles.paddingBlockEnd,\n };\n // Preserve the complete declaration: CSS variable shorthands have empty CSSOM longhands.\n const authoredStyle = node.style.cssText;\n const attributes = ['data-starting-style', 'data-ending-style'] as const;\n const states = attributes.map(name => [name, node.getAttribute(name)] as const);\n node.style.setProperty('transition-property', 'none', 'important');\n node.style.setProperty('height', 'auto', 'important');\n for (const [name] of states) node.removeAttribute(name);\n // Read geometry, never copy theme variables or insets into a second styling system.\n // Computed layout height excludes ancestor transforms (for example, an opening dialog).\n const expanded = parseFloat(getComputedStyle(node).height);\n for (const [name, value] of states) if (value !== null) node.setAttribute(name, value);\n node.style.setProperty(heightVariable, `${expanded}px`);\n // Resume an interrupted transition from its rendered geometry, without a painted jump.\n for (const [name, value] of Object.entries(current)) node.style.setProperty(name, value, 'important');\n void node.offsetHeight;\n node.style.cssText = authoredStyle;\n node.style.setProperty(heightVariable, `${expanded}px`);\n // oxlint-disable-next-line react-hooks/exhaustive-deps -- state.open re-creates the ref callback so the panel is measured again when it opens or closes.\n }, [height, heightVariable, state.open]);\n\n return useRender({\n defaultTagName: 'div',\n render: typeof render === 'function' ? (renderProps => render(renderProps, state)) : render,\n props: { ...props },\n ref: measure,\n });\n}\n"],"mappings":";;;;AAMA,SAAgBE,EAAiD,EAChE,UACA,UACA,WACA,qBAME;CACF,IAAMC,IAAUC,EAAM,QAAgDC,IAChEC,IAAUN,EAAM,aAAa,MAAgC;EAElE,IAAI,CAACO,KAAQJ,MAAW,UAAUA,KAAU,QAAQI,EAAK,QAAQ;EACjE,IAAMC,IAAS,iBAAiBD,CAAI,GAC9BE,IAAU;GACf,QAAQD,EAAO;GACf,uBAAuBA,EAAO;GAC9B,qBAAqBA,EAAO;EAC7B,GAEME,IAAgBH,EAAK,MAAM,SAE3BI,IAAS,CADK,uBAAuB,mBAC5B,CAAA,CAAW,KAAI,MAAQ,CAACC,GAAML,EAAK,aAAaK,CAAI,CAAC,CAAU;EAE9E,AADAL,EAAK,MAAM,YAAY,uBAAuB,QAAQ,WAAW,GACjEA,EAAK,MAAM,YAAY,UAAU,QAAQ,WAAW;EACpD,KAAK,IAAM,CAACK,MAASD,GAAQ,EAAK,gBAAgBC,CAAI;EAGtD,IAAMC,IAAW,WAAW,iBAAiBN,CAAI,CAAC,CAAC,MAAM;EACzD,KAAK,IAAM,CAACK,GAAME,MAAUH,GAAQ,AAAIG,MAAU,QAAMP,EAAK,aAAaK,GAAME,CAAK;EACrF,EAAK,MAAM,YAAYT,GAAgB,GAAGQ,EAAS,GAAG;EAEtD,KAAK,IAAM,CAACD,GAAME,MAAU,OAAO,QAAQL,CAAO,GAAG,EAAK,MAAM,YAAYG,GAAME,GAAO,WAAW;EAGpG,AAFAP,EAAU,cACV,EAAK,MAAM,UAAUG,GACrBH,EAAK,MAAM,YAAYF,GAAgB,GAAGQ,EAAS,GAAG;CAEvD,GAAG;EAACV;EAAQE;EAAgBU,EAAM;CAAI,CAAC;CAEvC,OAAOC,EAAU;EAChB,gBAAgB;EAChB,QAAQ,OAAOC,KAAW,eAAc,MAAeA,EAAOC,GAAaH,CAAK,KAAKE;EACrF,OAAO,EAAE,GAAGb,EAAM;EAClB,KAAKE;CACN,CAAC;AACF"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { C as e, d as t, f as n } from "./ui-provider-Bu1S-o96.js";
|
|
3
3
|
import { useStrings as r } from "./lib/strings.js";
|
|
4
|
-
import { t as i } from "./utils-
|
|
5
|
-
import { c as a, o } from "./typography-
|
|
6
|
-
import { t as s } from "./structure-
|
|
4
|
+
import { t as i } from "./utils-BVbAG2J6.js";
|
|
5
|
+
import { c as a, o } from "./typography-C0dELqYV.js";
|
|
6
|
+
import { t as s } from "./structure-DElaQwwN.js";
|
|
7
7
|
import { i as c } from "./tone-recipes-BPsRAvhu.js";
|
|
8
|
-
import {
|
|
9
|
-
import { s as u } from "./date-
|
|
10
|
-
import { t as d } from "./badge-
|
|
8
|
+
import { a as l } from "./surface-recipes-DV6rrOFq.js";
|
|
9
|
+
import { s as u } from "./date-3qsCE1ID.js";
|
|
10
|
+
import { t as d } from "./badge-oGiXblW7.js";
|
|
11
11
|
import { forwardRef as f, useId as p } from "react";
|
|
12
12
|
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
13
13
|
import { CheckCircle2 as _, XCircle as v } from "lucide-react";
|
|
@@ -67,12 +67,12 @@ var S = {
|
|
|
67
67
|
}, C = {
|
|
68
68
|
neutral: {
|
|
69
69
|
frame: "border-border bg-card",
|
|
70
|
-
header:
|
|
70
|
+
header: `border-border/60 ${l.band} text-card-foreground`,
|
|
71
71
|
primary: "text-card-foreground",
|
|
72
72
|
secondary: "text-muted-foreground"
|
|
73
73
|
},
|
|
74
74
|
secondary: {
|
|
75
|
-
frame:
|
|
75
|
+
frame: `border-border ${l.wash}`,
|
|
76
76
|
header: "border-border/60 bg-muted text-foreground",
|
|
77
77
|
primary: "text-foreground",
|
|
78
78
|
secondary: "text-muted-foreground"
|
|
@@ -115,7 +115,7 @@ var S = {
|
|
|
115
115
|
secondary: ""
|
|
116
116
|
},
|
|
117
117
|
muted: {
|
|
118
|
-
frame:
|
|
118
|
+
frame: `border-border ${l.wash}`,
|
|
119
119
|
header: "border-border/60 bg-muted text-foreground",
|
|
120
120
|
primary: "text-foreground",
|
|
121
121
|
secondary: "text-muted-foreground"
|
|
@@ -162,8 +162,8 @@ function ee(e) {
|
|
|
162
162
|
function D(e) {
|
|
163
163
|
return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
|
|
164
164
|
}
|
|
165
|
-
function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", timePlacement: f, tone: p = "neutral", variant: _ = "default", size: v, boxed: b, showWeekday: x = !0, showMonth: O = !0, showYear: k = !1, emptyLabel: A = "—", dayFormat: j = "d", weekdayFormat:
|
|
166
|
-
let I =
|
|
165
|
+
function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", timePlacement: f, tone: p = "neutral", variant: _ = "default", size: v, boxed: b, showWeekday: x = !0, showMonth: O = !0, showYear: k = !1, emptyLabel: A = "—", dayFormat: j = "d", weekdayFormat: te = "EEE", monthFormat: ne = "MMM", yearFormat: re = "yyyy", className: M, strings: N, "aria-label": P, ...F }) {
|
|
166
|
+
let I = t(), { defaultScale: ie } = n(), L = e(v, ie), R = l ?? I.locale, z = r(S, N), B = u(o), V = C[p], H = w[_], U = b ?? d === "stacked", W = i(V.primary, H.primary, !U && p === "neutral" && _ === "default" && "text-foreground"), G = f ?? (d === "inline" ? "inline" : "below"), K = ee(s) && G !== "hidden", q = R ? { locale: R } : void 0, J = B ? y(B, te, q) : null, Y = B ? y(B, j, q) : null, X = B ? y(B, ne, q) : null, Z = B ? y(B, re, q) : null, Q = c ?? (B ? y(B, "yyyy-MM-dd") : void 0), $ = P ?? (B ? void 0 : z.unavailableLabel);
|
|
167
167
|
if (d === "inline") {
|
|
168
168
|
let e = /* @__PURE__ */ h("span", {
|
|
169
169
|
className: i("date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums", E[L].gap, U && i("border", E[L].padding, V.frame, H.frame)),
|
|
@@ -215,7 +215,7 @@ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", ti
|
|
|
215
215
|
"data-size": L,
|
|
216
216
|
"data-tone": p,
|
|
217
217
|
"data-variant": _,
|
|
218
|
-
className: i("date-block--component inline-flex min-w-0", G === "below" ? "flex-col items-start gap-space-xs" : "items-center",
|
|
218
|
+
className: i("date-block--component inline-flex min-w-0", G === "below" ? "flex-col items-start gap-space-xs" : "items-center", M),
|
|
219
219
|
...F,
|
|
220
220
|
children: [e, K && G === "below" && (D(s) ? /* @__PURE__ */ h(a, {
|
|
221
221
|
tag: "span",
|
|
@@ -265,7 +265,7 @@ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", ti
|
|
|
265
265
|
"data-size": L,
|
|
266
266
|
"data-tone": p,
|
|
267
267
|
"data-variant": _,
|
|
268
|
-
className: i("date-block--component inline-flex", K && G === "inline" ? "flex-row items-center gap-space-sm" : "flex-col items-center gap-space-xs",
|
|
268
|
+
className: i("date-block--component inline-flex", K && G === "inline" ? "flex-row items-center gap-space-sm" : "flex-col items-center gap-space-xs", M),
|
|
269
269
|
...F,
|
|
270
270
|
children: [ae, K && (D(s) ? /* @__PURE__ */ h(a, {
|
|
271
271
|
tag: "span",
|
|
@@ -278,39 +278,16 @@ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", ti
|
|
|
278
278
|
}
|
|
279
279
|
O.displayName = "DateBlock";
|
|
280
280
|
//#endregion
|
|
281
|
-
//#region src/components/base/display/content-block.strings.ts
|
|
282
|
-
var k = {
|
|
283
|
-
actionsLabel: "More actions",
|
|
284
|
-
tooltipLabel: "More information"
|
|
285
|
-
}, A = f(function({ padding: e, surface: t, strings: n, className: a, headerClassName: o, contentClassName: s, footerClassName: c, ...u }, d) {
|
|
286
|
-
let f = r(k, n);
|
|
287
|
-
return /* @__PURE__ */ h(l, {
|
|
288
|
-
...u,
|
|
289
|
-
ref: d,
|
|
290
|
-
surface: t ?? "flat",
|
|
291
|
-
padding: e ?? (t && t !== "flat" ? "md" : "none"),
|
|
292
|
-
strings: f,
|
|
293
|
-
"data-component": "content-block",
|
|
294
|
-
"data-slot": "content-block",
|
|
295
|
-
"data-padding": e,
|
|
296
|
-
className: i("content-block--component", a),
|
|
297
|
-
headerClassName: i("content-block--header", o),
|
|
298
|
-
contentClassName: i("content-block--content", s),
|
|
299
|
-
footerClassName: i("content-block--footer", c)
|
|
300
|
-
});
|
|
301
|
-
});
|
|
302
|
-
A.displayName = "ContentBlock";
|
|
303
|
-
//#endregion
|
|
304
281
|
//#region src/components/base/display/boolean-indicator.tsx
|
|
305
|
-
var
|
|
282
|
+
var k = {
|
|
306
283
|
true: "Yes",
|
|
307
284
|
false: "No"
|
|
308
285
|
};
|
|
309
|
-
function
|
|
286
|
+
function A(e) {
|
|
310
287
|
return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
|
|
311
288
|
}
|
|
312
|
-
var
|
|
313
|
-
let b = r(
|
|
289
|
+
var j = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "success", falseTone: l = "secondary", className: u, badgeClassName: f, strings: p, ...m }, y) {
|
|
290
|
+
let b = r(k, p), x = !!t, S = x ? _ : v, C = x ? c : l, w = x ? b.true : b.false;
|
|
314
291
|
return /* @__PURE__ */ g(s, {
|
|
315
292
|
ref: y,
|
|
316
293
|
direction: "horizontal",
|
|
@@ -320,13 +297,13 @@ var N = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "s
|
|
|
320
297
|
wrap: !1,
|
|
321
298
|
className: i("boolean-indicator--component", "min-w-0 px-row-x py-row-y", u),
|
|
322
299
|
...m,
|
|
323
|
-
children: [
|
|
300
|
+
children: [A(e) ? /* @__PURE__ */ h(o, {
|
|
324
301
|
className: "min-w-0 wrap-anywhere",
|
|
325
302
|
children: e
|
|
326
303
|
}) : e, /* @__PURE__ */ g(d, {
|
|
327
304
|
tone: C,
|
|
328
305
|
className: i("shrink-0 whitespace-nowrap", f),
|
|
329
|
-
children: [!!n && /* @__PURE__ */ h(S, { className: "size-icon-sm" }),
|
|
306
|
+
children: [!!n && /* @__PURE__ */ h(S, { className: "size-icon-sm" }), A(w) ? /* @__PURE__ */ h(a, {
|
|
330
307
|
tag: "span",
|
|
331
308
|
size: "inherit",
|
|
332
309
|
weight: "medium",
|
|
@@ -337,8 +314,8 @@ var N = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "s
|
|
|
337
314
|
})]
|
|
338
315
|
});
|
|
339
316
|
});
|
|
340
|
-
|
|
317
|
+
j.displayName = "BooleanIndicator";
|
|
341
318
|
//#endregion
|
|
342
|
-
export {
|
|
319
|
+
export { x as a, S as i, k as n, b as o, O as r, j as t };
|
|
343
320
|
|
|
344
|
-
//# sourceMappingURL=display-
|
|
321
|
+
//# sourceMappingURL=display-VlmP1I0i.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-VlmP1I0i.js","names":["isSimpleText","_Fragment","resolveComponentScale","useDatesConfig","useDensityConfig","cn","Text","Stack","toneRecipes","neutralFillRecipes","parseDateInput","Badge","Fragment$1","PlaceholderPattern","patternId","useId","className","VisuallyHidden","content","children","defaultDateBlockStrings","toneClassMap","variantClassMap","stackedSizeClass","inlineSizeClass","hasContent","value","isSimpleText$1","DateBlock","localeProp","sizeProp","stringsProp","ariaLabel","props","dates","size","defaultScale","locale","strings","useStrings","resolved","date","tones","tone","variants","variant","useBox","boxed","layout","primaryClass","resolvedTimePlacement","timePlacement","showsTime","time","formatOptions","weekday","format","weekdayFormat","day","dayFormat","month","monthFormat","year","yearFormat","machineValue","dateTime","resolvedAriaLabel","dateRow","showWeekday","showMonth","showYear","emptyLabel","tile","defaultBooleanIndicatorStrings","isSimpleText","BooleanIndicator","forwardRef","isTrue","Icon","CheckCircle2","XCircle","badgeTone","trueTone","falseTone","label","DisplayLabel","badgeClassName","showIcon"],"sources":["../src/components/base/display/placeholder-pattern.tsx","../src/components/base/display/visually-hidden.tsx","../src/components/base/display/date-block.tsx","../src/components/base/display/boolean-indicator.tsx"],"sourcesContent":["/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '../../../lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t)\n\t\t\t: children;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{content}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * DateBlock — a semantic calendar tile for event, schedule, and timeline rows.\n *\n * The stacked layout owns a compact fixed-format tile; the inline layout is a\n * lower-emphasis date stamp. Both share locale resolution, machine-readable\n * `<time>` semantics, size/tone variants, optional year display, and flexible\n * time metadata (including time ranges supplied as consumer content).\n */\nimport { format, type Locale } from 'date-fns';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport {\n\tparseDateInput,\n\ttype DateInput,\n} from '../../primitives';\nimport { Text } from '../../typography';\nimport {\n\ttype ComponentScale,\n\tuseDatesConfig,\n\tuseDensityConfig,\n} from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport type { SemanticTone } from '../../../lib/component-vocabulary';\nimport { toneRecipes } from '../../../lib/tone-recipes';\nimport { neutralFillRecipes } from '../../../lib/surface-recipes';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = SemanticTone;\nexport type DateBlockVariant = 'default' | 'muted' | 'inverse';\nexport type DateBlockSize = ComponentScale;\n\nexport interface DateBlockStrings {\n\t/** Separator between the inline date and time metadata. */\n\tseparator: string;\n\t/** Accessible name used when `date` is empty or invalid. */\n\tunavailableLabel: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n\tunavailableLabel: 'Date unavailable',\n};\n\nexport interface DateBlockProps\n\textends Omit<ComponentPropsWithoutRef<'time'>, 'children' | 'dateTime'> {\n\t/** Date instance, ISO string, unix timestamp, or an empty value. */\n\tdate?: DateInput;\n\t/** Time or time-range metadata, already formatted by the consumer. */\n\ttime?: ReactNode;\n\t/** Override the machine-readable value placed on the native `<time>`. */\n\tdateTime?: string;\n\t/** date-fns locale. Falls back to `<UIProvider config={{ dates: { locale } }}>`. */\n\tlocale?: Locale;\n\t/** Visual layout. @default \"stacked\" */\n\tlayout?: DateBlockLayout;\n\t/** Where time metadata renders. Defaults to `inline` for inline layout and `below` for stacked. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Semantic color treatment. @default \"neutral\" */\n\ttone?: DateBlockTone;\n\t/** Structural surface treatment. @default \"default\" */\n\tvariant?: DateBlockVariant;\n\t/** Structural scale. Falls back to `UIProvider.density.defaultScale`, then `md`. */\n\tsize?: DateBlockSize;\n\t/** Render a bounded surface. Defaults to `true` for stacked and `false` for inline. */\n\tboxed?: boolean;\n\t/** Show the weekday heading. @default true */\n\tshowWeekday?: boolean;\n\t/** Show the month label. @default true */\n\tshowMonth?: boolean;\n\t/** Show the year label for cross-year schedules and timelines. @default false */\n\tshowYear?: boolean;\n\t/** Visual fallback for an empty or invalid date. @default \"—\" */\n\temptyLabel?: ReactNode;\n\t/** date-fns day-of-month format. @default \"d\" */\n\tdayFormat?: string;\n\t/** date-fns weekday format. @default \"EEE\" */\n\tweekdayFormat?: string;\n\t/** date-fns month format. @default \"MMM\" */\n\tmonthFormat?: string;\n\t/** date-fns year format. @default \"yyyy\" */\n\tyearFormat?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<DateBlockStrings>;\n}\n\ninterface DateBlockToneClasses {\n\tframe: string;\n\t/** Content above the body. */\n\theader: string;\n\tprimary: string;\n\tsecondary: string;\n}\n\nconst toneClassMap: Record<DateBlockTone, DateBlockToneClasses> = {\n\tneutral: {\n\t\tframe: 'border-border bg-card',\n\t\theader: `border-border/60 ${neutralFillRecipes.band} text-card-foreground`,\n\t\tprimary: 'text-card-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsecondary: {\n\t\tframe: `border-border ${neutralFillRecipes.wash}`,\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tprimary: {\n\t\tframe: `${toneRecipes.primary.edge} ${toneRecipes.primary.wash}`,\n\t\theader: `${toneRecipes.primary.edge} ${toneRecipes.primary.tint} ${toneRecipes.primary.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tdestructive: {\n\t\tframe: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.wash}`,\n\t\theader: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinfo: {\n\t\tframe: `${toneRecipes.info.edge} ${toneRecipes.info.wash}`,\n\t\theader: `${toneRecipes.info.edge} ${toneRecipes.info.tint} ${toneRecipes.info.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsuccess: {\n\t\tframe: `${toneRecipes.success.edge} ${toneRecipes.success.wash}`,\n\t\theader: `${toneRecipes.success.edge} ${toneRecipes.success.tint} ${toneRecipes.success.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\twarning: {\n\t\tframe: `${toneRecipes.warning.edge} ${toneRecipes.warning.wash}`,\n\t\theader: `${toneRecipes.warning.edge} ${toneRecipes.warning.tint} ${toneRecipes.warning.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n};\n\nconst variantClassMap: Record<DateBlockVariant, DateBlockToneClasses> = {\n\tdefault: { frame: '', header: '', primary: '', secondary: '' },\n\tmuted: {\n\t\tframe: `border-border ${neutralFillRecipes.wash}`,\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinverse: {\n\t\tframe: 'border-inverse-border bg-inverse-background',\n\t\theader: 'border-inverse-border bg-inverse-surface text-inverse-muted',\n\t\tprimary: 'text-inverse-foreground',\n\t\tsecondary: 'text-inverse-muted',\n\t},\n};\n\nconst stackedSizeClass: Record<DateBlockSize, { frame: string; header: string; body: string }> = {\n\tsm: {\n\t\tframe: 'w-12',\n\t\theader: 'px-control-xs py-space-2xs',\n\t\tbody: 'min-h-control px-control-xs py-space-xs',\n\t},\n\tmd: {\n\t\tframe: 'w-14',\n\t\theader: 'px-control-sm py-space-xs',\n\t\tbody: 'min-h-control-lg px-control-sm py-space-sm',\n\t},\n\tlg: {\n\t\tframe: 'w-16',\n\t\theader: 'px-control py-space-sm',\n\t\tbody: 'min-h-control-lg px-control py-space-md',\n\t},\n};\n\nconst inlineSizeClass: Record<DateBlockSize, { gap: string; padding: string }> = {\n\tsm: { gap: 'gap-space-sm', padding: 'px-control-xs py-space-xs' },\n\tmd: { gap: 'gap-space-md', padding: 'px-control-sm py-space-sm' },\n\tlg: { gap: 'gap-space-lg', padding: 'px-control py-space-md' },\n};\n\nfunction hasContent(value: ReactNode): boolean {\n\treturn value !== null && value !== undefined && value !== '';\n}\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tdateTime,\n\tlocale: localeProp,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'neutral',\n\tvariant = 'default',\n\tsize: sizeProp,\n\tboxed,\n\tshowWeekday = true,\n\tshowMonth = true,\n\tshowYear = false,\n\temptyLabel = '—',\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tyearFormat = 'yyyy',\n\tclassName,\n\tstrings: stringsProp,\n\t'aria-label': ariaLabel,\n\t...props\n}: DateBlockProps) {\n\tconst dates = useDatesConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst locale = localeProp ?? dates.locale;\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst resolved = parseDateInput(date);\n\tconst tones = toneClassMap[tone];\n\tconst variants = variantClassMap[variant];\n\tconst useBox = boxed ?? layout === 'stacked';\n\tconst primaryClass = cn(tones.primary, variants.primary, !useBox && tone === 'neutral' && variant === 'default' && 'text-foreground');\n\tconst resolvedTimePlacement = timePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst showsTime = hasContent(time) && resolvedTimePlacement !== 'hidden';\n\tconst formatOptions = locale ? { locale } : undefined;\n\n\tconst weekday = resolved ? format(resolved, weekdayFormat, formatOptions) : null;\n\tconst day = resolved ? format(resolved, dayFormat, formatOptions) : null;\n\tconst month = resolved ? format(resolved, monthFormat, formatOptions) : null;\n\tconst year = resolved ? format(resolved, yearFormat, formatOptions) : null;\n\tconst machineValue = dateTime ?? (resolved ? format(resolved, 'yyyy-MM-dd') : undefined);\n\tconst resolvedAriaLabel = ariaLabel ?? (resolved ? undefined : strings.unavailableLabel);\n\n\tif (layout === 'inline') {\n\t\tconst dateRow = (\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums',\n\t\t\t\t\tinlineSizeClass[size].gap,\n\t\t\t\t\tuseBox && cn('border', inlineSizeClass[size].padding, tones.frame, variants.frame),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!!showWeekday && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--weekday', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{weekday}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className={cn('date-block--day', primaryClass)}>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--month-year', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showsTime && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className={cn(tones.secondary, variants.secondary)} aria-hidden>\n\t\t\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{isSimpleText(time) ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--time tabular-nums', primaryClass)}>\n\t\t\t\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) : time}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\n\t\treturn (\n\t\t\t<time\n\t\t\t\tdateTime={machineValue}\n\t\t\t\taria-label={resolvedAriaLabel}\n\t\t\t\tdata-layout={layout}\n\t\t\t\tdata-size={size}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--component inline-flex min-w-0',\n\t\t\t\t\tresolvedTimePlacement === 'below'\n\t\t\t\t\t\t? 'flex-col items-start gap-space-xs'\n\t\t\t\t\t\t: 'items-center',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{dateRow}\n\t\t\t\t{showsTime && resolvedTimePlacement === 'below' && (\n\t\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : time\n\t\t\t\t)}\n\t\t\t</time>\n\t\t);\n\t}\n\n\tconst tile = (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--frame box-border inline-flex shrink-0 flex-col overflow-hidden rounded-radius tabular-nums',\n\t\t\t\tstackedSizeClass[size].frame,\n\t\t\t\tuseBox && cn('border', tones.frame, variants.frame),\n\t\t\t)}\n\t\t>\n\t\t\t{resolved && showWeekday && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'date-block--weekday block text-center',\n\t\t\t\t\t\tstackedSizeClass[size].header,\n\t\t\t\t\t\tuseBox ? cn('border-b', tones.header, variants.header) : cn(tones.secondary, variants.secondary),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--body box-border flex flex-col items-center justify-center gap-space-2xs text-center',\n\t\t\t\t\tstackedSizeClass[size].body,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize={size === 'sm' ? 'sm' : size === 'lg' ? 'lg' : 'base'}\n\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\tlineHeight=\"none\"\n\t\t\t\t\t\t\tclassName={cn('date-block--day', primaryClass)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\t\t\t\tclassName={cn('date-block--month-year', tones.secondary, variants.secondary)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<time\n\t\t\tdateTime={machineValue}\n\t\t\taria-label={resolvedAriaLabel}\n\t\t\tdata-layout={layout}\n\t\t\tdata-size={size}\n\t\t\tdata-tone={tone}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--component inline-flex',\n\t\t\t\tshowsTime && resolvedTimePlacement === 'inline'\n\t\t\t\t\t? 'flex-row items-center gap-space-sm'\n\t\t\t\t\t: 'flex-col items-center gap-space-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{tile}\n\t\t\t{showsTime && (\n\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t{time}\n\t\t\t\t\t</Text>\n\t\t\t\t) : time\n\t\t\t)}\n\t\t</time>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React, { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { Badge, type BadgeTone } from '../badge';\nimport { Stack } from '../structure';\nimport { DisplayLabel, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport interface BooleanIndicatorProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n\t/** What the flag describes, rendered as the row's `DisplayLabel`. */\n\tlabel: React.ReactNode;\n\t/** The flag. `null` reads as unknown and uses the false presentation. Defaults to `false`. */\n\tvalue?: boolean | null;\n\t/** Shows the check/cross glyph beside the badge text. Defaults to `true`. */\n\tshowIcon?: boolean;\n\t/** Badge tone when `value` is true. Defaults to `success`. */\n\ttrueTone?: BadgeTone;\n\t/** Badge tone when `value` is false. Defaults to `secondary`. */\n\tfalseTone?: BadgeTone;\n\t/** Merged onto the badge. */\n\tbadgeClassName?: string;\n\t/** Overrides the yes/no copy. */\n\tstrings?: StringsProp<BooleanIndicatorStrings>;\n}\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport const BooleanIndicator = forwardRef<HTMLDivElement, BooleanIndicatorProps>(function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\tshowIcon = true,\n\ttrueTone = 'success',\n\tfalseTone = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeTone = isTrue ? trueTone : falseTone;\n\tconst content = isTrue ? strings.true : strings.false;\n\n\treturn (\n\t\t<Stack\n\t\t\tref={ref}\n\t\t\tdirection=\"horizontal\"\n\t\t\talign=\"center\"\n\t\t\tgap=\"md\"\n\t\t\tjustify=\"between\"\n\t\t\twrap={false}\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'min-w-0 px-row-x py-row-y',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(label) ? <DisplayLabel className=\"min-w-0 wrap-anywhere\">{label}</DisplayLabel> : label}\n\t\t\t<Badge\n\t\t\t\ttone={badgeTone}\n\t\t\t\tclassName={cn('shrink-0 whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{/*\n\t\t\t\t * `size-icon-sm` pairs with the badge's 12px label, matching the\n\t\t\t\t * rest of the package's badge icons. At `size-icon` the glyph\n\t\t\t\t * outgrew the text and pushed this badge to 26px, 4px taller\n\t\t\t\t * than every other badge in the library.\n\t\t\t\t */}\n\t\t\t\t{!!showIcon && <Icon className=\"size-icon-sm\" />}\n\t\t\t\t{isSimpleText(content) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</Text>\n\t\t\t\t) : content}\n\t\t\t</Badge>\n\t\t</Stack>\n\t);\n});\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { t as n } from "./utils-
|
|
4
|
-
import { c as r } from "./typography-
|
|
2
|
+
import { a as e, y as t } from "./ui-provider-Bu1S-o96.js";
|
|
3
|
+
import { t as n } from "./utils-BVbAG2J6.js";
|
|
4
|
+
import { c as r } from "./typography-C0dELqYV.js";
|
|
5
5
|
import { o as i, s as a } from "./text.styles-B64My8RZ.js";
|
|
6
|
-
import {
|
|
7
|
-
import { t as s } from "./portal-recipes-
|
|
8
|
-
import { t as c } from "./motion-recipes-
|
|
9
|
-
import { i as l, n as u, r as d, t as f } from "./popover.recipes-
|
|
10
|
-
import { n as p } from "./collection-content-
|
|
6
|
+
import { n as o } from "./anchored-positioning-1U_eBFNx.js";
|
|
7
|
+
import { t as s } from "./portal-recipes-BPeS4rGB.js";
|
|
8
|
+
import { t as c } from "./motion-recipes-CUc_aHuG.js";
|
|
9
|
+
import { i as l, n as u, r as d, t as f } from "./popover.recipes-BqkdvlZn.js";
|
|
10
|
+
import { n as p } from "./collection-content-D7SoDlYd.js";
|
|
11
11
|
import * as m from "react";
|
|
12
12
|
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
13
13
|
import { CheckIcon as _, ChevronRightIcon as v } from "lucide-react";
|
|
@@ -191,4 +191,4 @@ function R({ className: e, children: t, ...r }) {
|
|
|
191
191
|
//#endregion
|
|
192
192
|
export { k as a, w as c, L as d, R as f, T as g, M as h, D as i, F as l, N as m, P as n, O as o, j as p, E as r, A as s, C as t, I as u };
|
|
193
193
|
|
|
194
|
-
//# sourceMappingURL=dropdown-menu-
|
|
194
|
+
//# sourceMappingURL=dropdown-menu-B8hjvbkS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-CLs8Lihj.js","names":["React","MenuPrimitive","useThemePortalContainer","useTypographyConfig","cn","Text","textLineHeights","textSizes","anchoredPositionMethod","portalClassName","motionRecipes","popoverWidthRecipes","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","React$1","DropdownMenuDensityContext","useMenuRowClasses","renderMenuText","children","className","DropdownMenu","props","Menu","DropdownMenuPortal","resolvedContainer","container","DropdownMenuTrigger","defaultTextSize","DropdownMenuContent","densityProp","inheritedDensity","density","DropdownMenuGroup","DropdownMenuLabel","content","inset","DropdownMenuItem","rowClasses","variant","DropdownMenuLinkItem","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuSeparator","DropdownMenuShortcut"],"sources":["../src/components/base/navigation/dropdown-menu.tsx"],"sourcesContent":["import { anchoredPositionMethod } from '../../../lib/anchored-positioning';\nimport { motionRecipes } from '../../../lib/motion-recipes';\nimport * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { textSizes, textLineHeights } from '../../typography/text.styles';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, popoverWidthRecipes, type CollectionDensity } from '../popover/popover.recipes';\nimport { useThemePortalContainer } from '../../../lib/theme-scope';\nimport { portalClassName } from '../../../lib/portal-recipes';\nimport { CollectionLabel } from '../popover/collection-content';\n\nconst DropdownMenuDensityContext = React.createContext<CollectionDensity>('default');\n\nfunction useMenuRowClasses() {\n\treturn collectionRowClasses(React.useContext(DropdownMenuDensityContext));\n}\n\nfunction renderMenuText(children: React.ReactNode, className?: string) {\n\tif (\n\t\ttypeof children !== 'string'\n\t\t&& typeof children !== 'number'\n\t\t&& typeof children !== 'bigint'\n\t) return children;\n\tif (typeof children === 'string' && children.trim().length === 0) return children;\n\n\treturn (\n\t\t<CollectionLabel className={cn('dropdown-menu--text', className)}>\n\t\t\t{children}\n\t\t</CollectionLabel>\n\t);\n}\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n\treturn <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ container, className, ...props }: MenuPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" container={resolvedContainer} className={portalClassName(className)} {...props} />;\n}\n\nfunction DropdownMenuTrigger({ children, ...props }: MenuPrimitive.Trigger.Props) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\treturn (\n\t\t<MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props}>\n\t\t\t{renderMenuText(children, textSizes[defaultTextSize ?? 'sm'])}\n\t\t</MenuPrimitive.Trigger>\n\t);\n}\n\nfunction DropdownMenuContent({\n\tpositionMethod = anchoredPositionMethod,\n\talign = 'start',\n\talignOffset = 0,\n\tside = 'bottom',\n\tsideOffset = 4,\n\tclassName,\n\tdensity: densityProp,\n\t...props\n}: MenuPrimitive.Popup.Props &\n\tPick<\n\t\tMenuPrimitive.Positioner.Props,\n\t\t'align' | 'alignOffset' | 'side' | 'sideOffset' | 'positionMethod'\n\t> & {\n\t/** Vertical row rhythm. Inherits in submenus; defaults to default. */\n\tdensity?: CollectionDensity;\n}) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst inheritedDensity = React.useContext(DropdownMenuDensityContext);\n\tconst density = densityProp ?? inheritedDensity;\n\treturn (\n\t\t<DropdownMenuDensityContext.Provider value={density}>\n\t\t\t<DropdownMenuPortal>\n\t\t\t\t<MenuPrimitive.Positioner\n\t\t\t\t\tpositionMethod={positionMethod}\n\t\t\t\t\tclassName=\"isolate z-50 outline-none\"\n\t\t\t\t\talign={align}\n\t\t\t\t\talignOffset={alignOffset}\n\t\t\t\t\tside={side}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t>\n\t\t\t\t\t<MenuPrimitive.Popup\n\t\t\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\t\t\tdata-surface-type=\"menu\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tpopoverRecipes.surface,\n\t\t\t\t\t\t\tpopoverRecipes.menu,\n\t\t\t\t\t\t\tpopoverWidthRecipes.menuMin,\n\t\t\t\t\t\t\tmotionRecipes.popup,\n\t\t\t\t\t\t\t'dropdown-menu-content--component z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none',\n\t\t\t\t\t\t\ttextSizes[defaultTextSize ?? 'sm'],\n\t\t\t\t\t\t\ttextLineHeights.tight,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</MenuPrimitive.Positioner>\n\t\t\t</DropdownMenuPortal>\n\t\t</DropdownMenuDensityContext.Provider>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n\treturn <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.GroupLabel.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\t// A group caption is supporting copy, not another item: the smaller secondary\n\t// role keeps it from reading as an unclickable row.\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <Text tag=\"span\" size=\"xs\" type=\"secondary\" weight=\"medium\" lineHeight=\"tight\">{children}</Text>\n\t\t\t: children;\n\n\treturn (\n\t\t<MenuPrimitive.GroupLabel\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-label--component px-row-x py-row-y-sm text-muted-foreground data-inset:ps-control-icon',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</MenuPrimitive.GroupLabel>\n\t);\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.Item.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-item--component group/dropdown-menu-item whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.Item>\n\t);\n}\n\nfunction DropdownMenuLinkItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.LinkItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.LinkItem\n\t\t\tdata-slot=\"dropdown-menu-link-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-link-item--component group/dropdown-menu-item whitespace-nowrap text-inherit no-underline data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.LinkItem>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n\treturn <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.SubmenuTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-sub-trigger--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\t'data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<ChevronRightIcon className=\"ms-auto rtl:rotate-180\" />\n\t\t</MenuPrimitive.SubmenuTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\talign = 'start',\n\talignOffset = -3,\n\tside = 'inline-end',\n\tsideOffset = 0,\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n\treturn (\n\t\t<DropdownMenuContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn('dropdown-menu-sub-content--component w-auto min-w-32', className)}\n\t\t\talign={align}\n\t\t\talignOffset={alignOffset}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\tinset,\n\t...props\n}: MenuPrimitive.CheckboxItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-checkbox-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-checkbox-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.CheckboxItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.CheckboxItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n\treturn (\n\t\t<MenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"dropdown-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\tinset,\n\t...props\n}: MenuPrimitive.RadioItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-radio-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-radio-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.RadioItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.RadioItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: MenuPrimitive.Separator.Props) {\n\treturn (\n\t\t<MenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn('dropdown-menu-separator--component', popoverRecipes.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-shortcut--component ms-auto text-xxs tracking-normal text-muted-foreground group-data-[highlighted]/dropdown-menu-item:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</span>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuLinkItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown-menu-B8hjvbkS.js","names":["React","MenuPrimitive","useThemePortalContainer","useTypographyConfig","cn","Text","textLineHeights","textSizes","anchoredPositionMethod","portalClassName","motionRecipes","popoverWidthRecipes","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","React$1","DropdownMenuDensityContext","useMenuRowClasses","renderMenuText","children","className","DropdownMenu","props","Menu","DropdownMenuPortal","resolvedContainer","container","DropdownMenuTrigger","defaultTextSize","DropdownMenuContent","densityProp","inheritedDensity","density","DropdownMenuGroup","DropdownMenuLabel","content","inset","DropdownMenuItem","rowClasses","variant","DropdownMenuLinkItem","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuSeparator","DropdownMenuShortcut"],"sources":["../src/components/base/navigation/dropdown-menu.tsx"],"sourcesContent":["import { anchoredPositionMethod } from '../../../lib/anchored-positioning';\nimport { motionRecipes } from '../../../lib/motion-recipes';\nimport * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { textSizes, textLineHeights } from '../../typography/text.styles';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, popoverWidthRecipes, type CollectionDensity } from '../popover/popover.recipes';\nimport { useThemePortalContainer } from '../../../lib/theme-scope';\nimport { portalClassName } from '../../../lib/portal-recipes';\nimport { CollectionLabel } from '../popover/collection-content';\n\nconst DropdownMenuDensityContext = React.createContext<CollectionDensity>('default');\n\nfunction useMenuRowClasses() {\n\treturn collectionRowClasses(React.useContext(DropdownMenuDensityContext));\n}\n\nfunction renderMenuText(children: React.ReactNode, className?: string) {\n\tif (\n\t\ttypeof children !== 'string'\n\t\t&& typeof children !== 'number'\n\t\t&& typeof children !== 'bigint'\n\t) return children;\n\tif (typeof children === 'string' && children.trim().length === 0) return children;\n\n\treturn (\n\t\t<CollectionLabel className={cn('dropdown-menu--text', className)}>\n\t\t\t{children}\n\t\t</CollectionLabel>\n\t);\n}\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n\treturn <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ container, className, ...props }: MenuPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" container={resolvedContainer} className={portalClassName(className)} {...props} />;\n}\n\nfunction DropdownMenuTrigger({ children, ...props }: MenuPrimitive.Trigger.Props) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\treturn (\n\t\t<MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props}>\n\t\t\t{renderMenuText(children, textSizes[defaultTextSize ?? 'sm'])}\n\t\t</MenuPrimitive.Trigger>\n\t);\n}\n\nfunction DropdownMenuContent({\n\tpositionMethod = anchoredPositionMethod,\n\talign = 'start',\n\talignOffset = 0,\n\tside = 'bottom',\n\tsideOffset = 4,\n\tclassName,\n\tdensity: densityProp,\n\t...props\n}: MenuPrimitive.Popup.Props &\n\tPick<\n\t\tMenuPrimitive.Positioner.Props,\n\t\t'align' | 'alignOffset' | 'side' | 'sideOffset' | 'positionMethod'\n\t> & {\n\t/** Vertical row rhythm. Inherits in submenus; defaults to default. */\n\tdensity?: CollectionDensity;\n}) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst inheritedDensity = React.useContext(DropdownMenuDensityContext);\n\tconst density = densityProp ?? inheritedDensity;\n\treturn (\n\t\t<DropdownMenuDensityContext.Provider value={density}>\n\t\t\t<DropdownMenuPortal>\n\t\t\t\t<MenuPrimitive.Positioner\n\t\t\t\t\tpositionMethod={positionMethod}\n\t\t\t\t\tclassName=\"isolate z-50 outline-none\"\n\t\t\t\t\talign={align}\n\t\t\t\t\talignOffset={alignOffset}\n\t\t\t\t\tside={side}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t>\n\t\t\t\t\t<MenuPrimitive.Popup\n\t\t\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\t\t\tdata-surface-type=\"menu\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tpopoverRecipes.surface,\n\t\t\t\t\t\t\tpopoverRecipes.menu,\n\t\t\t\t\t\t\tpopoverWidthRecipes.menuMin,\n\t\t\t\t\t\t\tmotionRecipes.popup,\n\t\t\t\t\t\t\t'dropdown-menu-content--component z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none',\n\t\t\t\t\t\t\ttextSizes[defaultTextSize ?? 'sm'],\n\t\t\t\t\t\t\ttextLineHeights.tight,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</MenuPrimitive.Positioner>\n\t\t\t</DropdownMenuPortal>\n\t\t</DropdownMenuDensityContext.Provider>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n\treturn <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.GroupLabel.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\t// A group caption is supporting copy, not another item: the smaller secondary\n\t// role keeps it from reading as an unclickable row.\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <Text tag=\"span\" size=\"xs\" type=\"secondary\" weight=\"medium\" lineHeight=\"tight\">{children}</Text>\n\t\t\t: children;\n\n\treturn (\n\t\t<MenuPrimitive.GroupLabel\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-label--component px-row-x py-row-y-sm text-muted-foreground data-inset:ps-control-icon',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</MenuPrimitive.GroupLabel>\n\t);\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.Item.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-item--component group/dropdown-menu-item whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.Item>\n\t);\n}\n\nfunction DropdownMenuLinkItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.LinkItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.LinkItem\n\t\t\tdata-slot=\"dropdown-menu-link-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-link-item--component group/dropdown-menu-item whitespace-nowrap text-inherit no-underline data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.LinkItem>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n\treturn <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.SubmenuTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-sub-trigger--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\t'data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<ChevronRightIcon className=\"ms-auto rtl:rotate-180\" />\n\t\t</MenuPrimitive.SubmenuTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\talign = 'start',\n\talignOffset = -3,\n\tside = 'inline-end',\n\tsideOffset = 0,\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n\treturn (\n\t\t<DropdownMenuContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn('dropdown-menu-sub-content--component w-auto min-w-32', className)}\n\t\t\talign={align}\n\t\t\talignOffset={alignOffset}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\tinset,\n\t...props\n}: MenuPrimitive.CheckboxItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-checkbox-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-checkbox-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.CheckboxItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.CheckboxItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n\treturn (\n\t\t<MenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"dropdown-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\tinset,\n\t...props\n}: MenuPrimitive.RadioItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-radio-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-radio-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.RadioItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.RadioItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: MenuPrimitive.Separator.Props) {\n\treturn (\n\t\t<MenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn('dropdown-menu-separator--component', popoverRecipes.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-shortcut--component ms-auto text-xxs tracking-normal text-muted-foreground group-data-[highlighted]/dropdown-menu-item:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</span>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuLinkItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { C as e, f 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 { n as a, t as o } from "./upload.recipes-BbxTqrCT.js";
|
|
7
|
+
import { forwardRef as s, useId as c } from "react";
|
|
8
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
9
|
+
import { UploadCloud as d } from "lucide-react";
|
|
10
|
+
//#region src/components/base/upload/file-picker-input.tsx
|
|
11
|
+
var f = s(function({ className: e, onFiles: t, onClick: n, ...i }, a) {
|
|
12
|
+
let o = (e) => {
|
|
13
|
+
e.stopPropagation(), n?.(e), e.defaultPrevented || (e.currentTarget.value = "");
|
|
14
|
+
}, s = (e) => {
|
|
15
|
+
let n = e.currentTarget.files;
|
|
16
|
+
n?.length && t(Array.from(n)) === !1 && (e.currentTarget.value = "");
|
|
17
|
+
};
|
|
18
|
+
return /* @__PURE__ */ l("input", {
|
|
19
|
+
...i,
|
|
20
|
+
ref: a,
|
|
21
|
+
type: "file",
|
|
22
|
+
"data-slot": "file-picker-input",
|
|
23
|
+
className: r("file-picker-input--component sr-only", e),
|
|
24
|
+
onClick: o,
|
|
25
|
+
onChange: s
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
f.displayName = "FilePickerInput";
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/components/base/upload/dropzone.tsx
|
|
31
|
+
var p = {
|
|
32
|
+
instruction: "Drag files here or click to browse",
|
|
33
|
+
helper: "",
|
|
34
|
+
dragOver: "Release to select"
|
|
35
|
+
}, m = {
|
|
36
|
+
sm: {
|
|
37
|
+
padding: "p-surface-xs",
|
|
38
|
+
minHeight: "min-h-24",
|
|
39
|
+
iconSize: "size-icon"
|
|
40
|
+
},
|
|
41
|
+
md: {
|
|
42
|
+
padding: "p-surface",
|
|
43
|
+
minHeight: "min-h-32",
|
|
44
|
+
iconSize: "size-icon-lg"
|
|
45
|
+
},
|
|
46
|
+
lg: {
|
|
47
|
+
padding: "p-surface-lg",
|
|
48
|
+
minHeight: "min-h-40",
|
|
49
|
+
iconSize: "size-icon-lg"
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
function h(e, t) {
|
|
53
|
+
typeof t == "function" ? t(e) : t && (t.current = e);
|
|
54
|
+
}
|
|
55
|
+
function g({ onDrop: s, accept: g, multiple: _ = !1, disabled: v = !1, invalid: y = !1, size: b, icon: x, className: S, inputProps: C, children: w, strings: T }, E) {
|
|
56
|
+
let { defaultScale: D } = t(), O = n(p, T), k = c(), A = C?.id ?? `dropzone-${k}`, { isDragging: j, dropTargetProps: M } = a({
|
|
57
|
+
disabled: v,
|
|
58
|
+
onFiles: s
|
|
59
|
+
}), N = m[e(b, D)];
|
|
60
|
+
return /* @__PURE__ */ u("div", {
|
|
61
|
+
...M,
|
|
62
|
+
"data-disabled": v || void 0,
|
|
63
|
+
"data-invalid": y || void 0,
|
|
64
|
+
"data-dragging": j || void 0,
|
|
65
|
+
className: r("dropzone--component relative flex flex-col items-center justify-center gap-space-md rounded-surface border border-dashed text-center transition-colors duration-150", "has-[[data-slot=file-picker-input]:focus-visible]:ring-3", N.minHeight, N.padding, y ? r(o.invalid, o.focus.filePicker.invalid) : r(o.idle, o.focus.filePicker.valid), y ? !v && o.invalidHover : !v && o.hover, v && "cursor-not-allowed opacity-50", !v && j && (y ? o.invalidDragging : o.dragging), S),
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ l(f, {
|
|
68
|
+
...C,
|
|
69
|
+
ref: (e) => h(e, E),
|
|
70
|
+
id: A,
|
|
71
|
+
accept: g,
|
|
72
|
+
multiple: _,
|
|
73
|
+
disabled: v,
|
|
74
|
+
"aria-invalid": y || void 0,
|
|
75
|
+
className: r("dropzone--input", C?.className),
|
|
76
|
+
onFiles: s
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ u("label", {
|
|
79
|
+
htmlFor: v ? void 0 : A,
|
|
80
|
+
"aria-disabled": v || void 0,
|
|
81
|
+
className: r("dropzone--trigger flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-space-md", v && "cursor-not-allowed"),
|
|
82
|
+
children: [/* @__PURE__ */ l("span", {
|
|
83
|
+
className: "dropzone--icon inline-flex items-center justify-center text-muted-foreground",
|
|
84
|
+
"aria-hidden": "true",
|
|
85
|
+
children: x ?? /* @__PURE__ */ l(d, { className: N.iconSize })
|
|
86
|
+
}), /* @__PURE__ */ u("span", {
|
|
87
|
+
className: "dropzone--copy grid gap-normal",
|
|
88
|
+
children: [/* @__PURE__ */ l(i, {
|
|
89
|
+
tag: "span",
|
|
90
|
+
weight: "medium",
|
|
91
|
+
align: "center",
|
|
92
|
+
className: "dropzone--instruction",
|
|
93
|
+
children: j ? O.dragOver : O.instruction
|
|
94
|
+
}), !!O.helper && /* @__PURE__ */ l(i, {
|
|
95
|
+
tag: "span",
|
|
96
|
+
size: "xs",
|
|
97
|
+
type: "secondary",
|
|
98
|
+
align: "center",
|
|
99
|
+
className: "dropzone--helper",
|
|
100
|
+
children: O.helper
|
|
101
|
+
})]
|
|
102
|
+
})]
|
|
103
|
+
}),
|
|
104
|
+
!!w && /* @__PURE__ */ l("div", {
|
|
105
|
+
className: "dropzone--action",
|
|
106
|
+
children: w
|
|
107
|
+
})
|
|
108
|
+
]
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
var _ = s(g);
|
|
112
|
+
_.displayName = "Dropzone";
|
|
113
|
+
//#endregion
|
|
114
|
+
export { p as n, f as r, _ as t };
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=dropzone-CHBNK3de.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropzone-CHBNK3de.js","names":["resolveComponentScale","useDensityConfig","cn","Text","useFileDropTarget","uploadDropTargetRecipes","FilePickerInput","forwardRef","props","handleClick","event","onClick","handleChange","files","onFiles","className","defaultDropzoneStrings","SIZE_CHROME","assignInputRef","forwardedRef","node","DropzoneImpl","sizeProp","stringsProp","strings","useStrings","generatedId","useId","inputId","inputProps","onDrop","chrome","defaultScale","dropTargetProps","disabled","invalid","isDragging","icon","UploadCloud","children","Dropzone"],"sources":["../src/components/base/upload/file-picker-input.tsx","../src/components/base/upload/dropzone.tsx"],"sourcesContent":["import {\n\tforwardRef,\n\ttype ChangeEvent,\n\ttype InputHTMLAttributes,\n\ttype MouseEvent,\n} from 'react';\n\nimport { cn } from '../../../lib/utils';\n\ntype DataAttributes = {\n\t[key: `data-${string}`]: string | number | boolean | undefined;\n};\n\nexport type FilePickerNativeInputProps = Omit<\n\tInputHTMLAttributes<HTMLInputElement>,\n\t'type' | 'value' | 'defaultValue' | 'onChange' | 'children'\n> & DataAttributes;\n\nexport type FilePickerInputProps = FilePickerNativeInputProps & {\n\t/** Return `false` when the native FileList must be cleared (for example, after rejection). */\n\tonFiles: (files: File[]) => boolean | void;\n};\n\n/** Shared native-input plumbing for FileUpload and Dropzone. Not a public export. */\nexport const FilePickerInput = forwardRef<HTMLInputElement, FilePickerInputProps>(\n\tfunction FilePickerInput(\n\t\t{ className, onFiles, onClick, ...props },\n\t\tref,\n\t) {\n\t\tconst handleClick = (event: MouseEvent<HTMLInputElement>) => {\n\t\t\tevent.stopPropagation();\n\t\t\tonClick?.(event);\n\t\t\tif (!event.defaultPrevented) {\n\t\t\t\t// Clearing before the picker opens makes choosing the same file again\n\t\t\t\t// observable without retaining an opaque native FileList as state.\n\t\t\t\tevent.currentTarget.value = '';\n\t\t\t}\n\t\t};\n\n\t\tconst handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst files = event.currentTarget.files;\n\t\t\tif (files?.length && onFiles(Array.from(files)) === false) {\n\t\t\t\tevent.currentTarget.value = '';\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\t{...props}\n\t\t\t\tref={ref}\n\t\t\t\ttype=\"file\"\n\t\t\t\tdata-slot=\"file-picker-input\"\n\t\t\t\tclassName={cn('file-picker-input--component sr-only', className)}\n\t\t\t\tonClick={handleClick}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nFilePickerInput.displayName = 'FilePickerInput';\n","/**\n * Dropzone — accessible drag-and-drop chrome with a native file-input fallback.\n * It owns no validation or file state; consumers receive local `File` values.\n */\nimport { forwardRef, useId, type ForwardedRef, type ReactNode } from 'react';\nimport { UploadCloud } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tFilePickerInput,\n\ttype FilePickerNativeInputProps,\n} from './file-picker-input';\nimport { useFileDropTarget } from './use-file-drop-target';\nimport { uploadDropTargetRecipes } from './upload.recipes';\n\nexport type DropzoneSize = ComponentScale;\n\nexport interface DropzoneStrings {\n\tinstruction: string;\n\thelper: string;\n\tdragOver: string;\n}\n\nexport const defaultDropzoneStrings: DropzoneStrings = {\n\tinstruction: 'Drag files here or click to browse',\n\thelper: '',\n\tdragOver: 'Release to select',\n};\n\nexport type DropzoneInputProps = Omit<\n\tFilePickerNativeInputProps,\n\t'accept' | 'disabled' | 'multiple'\n>;\n\nexport interface DropzoneProps {\n\tonDrop: (files: File[]) => void;\n\t/** Accepted MIME types or extensions. */\n\taccept?: string;\n\t/** Allows more than one file to be dropped. */\n\tmultiple?: boolean;\n\t/** Disables the control and blocks drops. */\n\tdisabled?: boolean;\n\t/** Applies the invalid styling. */\n\tinvalid?: boolean;\n\t/** Height preset for the drop target. */\n\tsize?: DropzoneSize;\n\t/** Glyph shown inside the drop target. */\n\ticon?: ReactNode;\n\tclassName?: string;\n\t/** Native form, ARIA, data, and event attributes forwarded to the file input. */\n\tinputProps?: DropzoneInputProps;\n\t/** Optional action rendered outside the input label, so nested controls remain valid. */\n\tchildren?: ReactNode;\n\t/** Overrides the prompt and constraint copy. */\n\tstrings?: StringsProp<DropzoneStrings>;\n}\n\nconst SIZE_CHROME: Record<\n\tDropzoneSize,\n\t{ padding: string; minHeight: string; iconSize: string }\n> = {\n\tsm: {\n\t\tpadding: 'p-surface-xs',\n\t\tminHeight: 'min-h-24',\n\t\ticonSize: 'size-icon',\n\t},\n\tmd: {\n\t\tpadding: 'p-surface',\n\t\tminHeight: 'min-h-32',\n\t\ticonSize: 'size-icon-lg',\n\t},\n\tlg: {\n\t\tpadding: 'p-surface-lg',\n\t\tminHeight: 'min-h-40',\n\t\ticonSize: 'size-icon-lg',\n\t},\n};\n\nfunction assignInputRef(\n\tnode: HTMLInputElement | null,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tif (typeof forwardedRef === 'function') forwardedRef(node);\n\telse if (forwardedRef) forwardedRef.current = node;\n}\n\nfunction DropzoneImpl(\n\t{\n\t\tonDrop,\n\t\taccept,\n\t\tmultiple = false,\n\t\tdisabled = false,\n\t\tinvalid = false,\n\t\tsize: sizeProp,\n\t\ticon,\n\t\tclassName,\n\t\tinputProps,\n\t\tchildren,\n\t\tstrings: stringsProp,\n\t}: DropzoneProps,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst strings = useStrings(defaultDropzoneStrings, stringsProp);\n\tconst generatedId = useId();\n\tconst inputId = inputProps?.id ?? `dropzone-${generatedId}`;\n\tconst { isDragging, dropTargetProps } = useFileDropTarget({\n\t\tdisabled,\n\t\tonFiles: onDrop,\n\t});\n\tconst resolvedSize = resolveComponentScale(sizeProp, defaultScale);\n\tconst chrome = SIZE_CHROME[resolvedSize];\n\n\treturn (\n\t\t<div\n\t\t\t{...dropTargetProps}\n\t\t\tdata-disabled={disabled || undefined}\n\t\t\tdata-invalid={invalid || undefined}\n\t\t\tdata-dragging={isDragging || undefined}\n\t\t\tclassName={cn(\n\t\t\t\t'dropzone--component relative flex flex-col items-center justify-center gap-space-md rounded-surface border border-dashed text-center transition-colors duration-150',\n\t\t\t\t'has-[[data-slot=file-picker-input]:focus-visible]:ring-3',\n\t\t\t\tchrome.minHeight,\n\t\t\t\tchrome.padding,\n\t\t\t\tinvalid ? cn(uploadDropTargetRecipes.invalid, uploadDropTargetRecipes.focus.filePicker.invalid) : cn(uploadDropTargetRecipes.idle, uploadDropTargetRecipes.focus.filePicker.valid),\n\t\t\t\tinvalid\n\t\t\t\t\t? !disabled && uploadDropTargetRecipes.invalidHover\n\t\t\t\t\t: !disabled && uploadDropTargetRecipes.hover,\n\t\t\t\tdisabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t!disabled && isDragging && (\n\t\t\t\t\tinvalid\n\t\t\t\t\t\t? uploadDropTargetRecipes.invalidDragging\n\t\t\t\t\t\t: uploadDropTargetRecipes.dragging\n\t\t\t\t),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<FilePickerInput\n\t\t\t\t{...inputProps}\n\t\t\t\tref={(node) => assignInputRef(node, forwardedRef)}\n\t\t\t\tid={inputId}\n\t\t\t\taccept={accept}\n\t\t\t\tmultiple={multiple}\n\t\t\t\tdisabled={disabled}\n\t\t\t\taria-invalid={invalid || undefined}\n\t\t\t\tclassName={cn('dropzone--input', inputProps?.className)}\n\t\t\t\tonFiles={onDrop}\n\t\t\t/>\n\n\t\t\t<label\n\t\t\t\thtmlFor={disabled ? undefined : inputId}\n\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'dropzone--trigger flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-space-md',\n\t\t\t\t\tdisabled && 'cursor-not-allowed',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* The glyph names the affordance; it needs no tinted tile around it. */}\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"dropzone--icon inline-flex items-center justify-center text-muted-foreground\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t>\n\t\t\t\t\t{icon ?? <UploadCloud className={chrome.iconSize} />}\n\t\t\t\t</span>\n\n\t\t\t\t{/* Text sets its own start alignment, and the copy column is as wide as\n\t\t\t\t its longest line, so each line centres itself. */}\n\t\t\t\t<span className=\"dropzone--copy grid gap-normal\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName=\"dropzone--instruction\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{isDragging ? strings.dragOver : strings.instruction}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!strings.helper && (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"dropzone--helper\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.helper}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</label>\n\n\t\t\t{!!children && <div className=\"dropzone--action\">{children}</div>}\n\t\t</div>\n\t);\n}\n\nconst Dropzone = forwardRef<HTMLInputElement, DropzoneProps>(DropzoneImpl);\nDropzone.displayName = 'Dropzone';\n\nexport { Dropzone };\n"],"mappings":"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"}
|