themelia-react-ui 1.0.1 → 2.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 +417 -0
- package/README.md +67 -16
- package/dist/{accordion-B-5Focs8.js → accordion-CQXVcd7Q.js} +15 -15
- package/dist/accordion-CQXVcd7Q.js.map +1 -0
- package/dist/action-menu-BTpyPWJ2.js +264 -0
- package/dist/action-menu-BTpyPWJ2.js.map +1 -0
- package/dist/affordance-geometry.generated-CCIXb2A1.js +68 -0
- package/dist/affordance-geometry.generated-CCIXb2A1.js.map +1 -0
- package/dist/{ai-artifact-B5tPpXnS.js → ai-artifact-2PQ2fItc.js} +206 -215
- package/dist/ai-artifact-2PQ2fItc.js.map +1 -0
- package/dist/{app-shell-at8Kt4l_.js → app-shell-BE_j8-AT.js} +11 -10
- package/dist/app-shell-BE_j8-AT.js.map +1 -0
- package/dist/{attachment-BO2R47wn.js → attachment-q69dlt5Y.js} +14 -14
- package/dist/attachment-q69dlt5Y.js.map +1 -0
- package/dist/auth-M3vGMgDR.js +723 -0
- package/dist/auth-M3vGMgDR.js.map +1 -0
- package/dist/{avatar-Bpzty83c.js → avatar-djdaaQ_s.js} +15 -13
- package/dist/avatar-djdaaQ_s.js.map +1 -0
- package/dist/{badge-BZXZT9wd.js → badge-0tATj-tW.js} +9 -9
- package/dist/badge-0tATj-tW.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/buttons.js +3 -2
- package/dist/base/cards.js +3 -3
- package/dist/base/carousel.js +33 -35
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +246 -222
- package/dist/base/cascader.js.map +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 +3 -3
- package/dist/base/display.js +7 -7
- package/dist/base/feedback.js +4 -4
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +94 -92
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/navigation.js +6 -6
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +7 -4
- package/dist/base/qr-code.js.map +1 -1
- package/dist/base/repeaters.js +53 -53
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/signature-pad.js +84 -82
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +2 -2
- package/dist/base/toaster.js +7 -7
- package/dist/base/toaster.js.map +1 -1
- package/dist/base/tree.js +1 -1
- package/dist/base/upload-queue.js +1 -1
- package/dist/base/upload.js +3 -3
- package/dist/base/value-inputs.js +1 -1
- package/dist/blocks/admin.js +228 -219
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +182 -212
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +665 -620
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +2 -2
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +1439 -1553
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +1 -1
- package/dist/blocks/onboarding.js +6 -6
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +88 -97
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-DdQ_I5ra.js → breadcrumbs-BG_FfMK4.js} +10 -9
- package/dist/breadcrumbs-BG_FfMK4.js.map +1 -0
- package/dist/button-BS3KDg00.js +674 -0
- package/dist/button-BS3KDg00.js.map +1 -0
- package/dist/{button-BS6l5JUw.js → button-R9CCoH7A.js} +3 -3
- package/dist/button-R9CCoH7A.js.map +1 -0
- package/dist/buttons-DS0ZIwJ_.js +99 -0
- package/dist/buttons-DS0ZIwJ_.js.map +1 -0
- package/dist/{cards-Cum56XOF.js → cards-QoJ4syG9.js} +12 -12
- package/dist/{cards-Cum56XOF.js.map → cards-QoJ4syG9.js.map} +1 -1
- package/dist/chart-DwYRKKc-.js +152 -0
- package/dist/chart-DwYRKKc-.js.map +1 -0
- package/dist/checkbox-B7ygNTYp.js +35 -0
- package/dist/checkbox-B7ygNTYp.js.map +1 -0
- package/dist/choice-inputs-DrJ17tpL.js +752 -0
- package/dist/choice-inputs-DrJ17tpL.js.map +1 -0
- package/dist/{code-block-xHKbAJDj.js → code-block-CD0B7M93.js} +27 -27
- package/dist/code-block-CD0B7M93.js.map +1 -0
- package/dist/{collapsible-DsnktFNv.js → collapsible-oMUGM4tr.js} +3 -3
- package/dist/{collapsible-DsnktFNv.js.map → collapsible-oMUGM4tr.js.map} +1 -1
- package/dist/{collection-content-C4fthJV_.js → collection-content-Ys-OZOkY.js} +3 -3
- package/dist/{collection-content-C4fthJV_.js.map → collection-content-Ys-OZOkY.js.map} +1 -1
- package/dist/combobox-6dvVny2q.js +272 -0
- package/dist/combobox-6dvVny2q.js.map +1 -0
- package/dist/combobox-CB7039j7.js +865 -0
- package/dist/combobox-CB7039j7.js.map +1 -0
- package/dist/{command-C0xe7u9B.js → command-kPMPjIxJ.js} +35 -31
- package/dist/command-kPMPjIxJ.js.map +1 -0
- package/dist/{comments-DviPLnwy.js → comments-You0Bzbr.js} +434 -409
- package/dist/comments-You0Bzbr.js.map +1 -0
- package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
- package/dist/components/base/action-menu/action-menu.d.ts +7 -2
- package/dist/components/base/avatar/stacked-avatars.d.ts +5 -4
- package/dist/components/base/badge/badge.d.ts +1 -1
- package/dist/components/base/badge/badge.recipes.d.ts +4 -4
- package/dist/components/base/buttons/base-button.d.ts +7 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
- package/dist/components/base/buttons/button.recipes.d.ts +10 -19
- package/dist/components/base/buttons/button.variants.d.ts +1 -0
- package/dist/components/base/buttons/loader-button.d.ts +3 -1
- package/dist/components/base/buttons/text-button.d.ts +2 -2
- package/dist/components/base/buttons/use-pending-button-focus.d.ts +3 -0
- package/dist/components/base/cards/card.recipes.d.ts +13 -5
- package/dist/components/base/cards/partials/card-primitives.d.ts +9 -4
- package/dist/components/base/cards/smart-card.types.d.ts +1 -1
- package/dist/components/base/carousel/carousel.d.ts +3 -1
- package/dist/components/base/chart/chart.d.ts +7 -7
- package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
- package/dist/components/base/choice-inputs/choice-types.d.ts +10 -1
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
- package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
- package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
- package/dist/components/base/date-pickers/date-picker.recipes.d.ts +5 -18
- package/dist/components/base/date-pickers/datepicker.types.d.ts +16 -3
- package/dist/components/base/display/alert-dialog.d.ts +8 -2
- package/dist/components/base/display/content-block.d.ts +4 -2
- package/dist/components/base/display/date-block.d.ts +1 -1
- package/dist/components/base/display/dialog.d.ts +12 -5
- package/dist/components/base/display/surface-title.d.ts +6 -1
- package/dist/components/base/feedback/alert.d.ts +1 -1
- package/dist/components/base/feedback/state-display.d.ts +5 -4
- package/dist/components/base/forms/form-field.d.ts +1 -0
- package/dist/components/base/forms/form-sizing.d.ts +35 -3
- package/dist/components/base/forms/workflow.d.ts +2 -0
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
- package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts +2 -2
- package/dist/components/base/navigation/language-switcher.d.ts +4 -1
- package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
- package/dist/components/base/navigation/page-header/page-header.d.ts +4 -1
- package/dist/components/base/navigation/tabs.d.ts +3 -5
- package/dist/components/base/popover/popover.recipes.d.ts +3 -3
- package/dist/components/base/qr-code/qr-code.d.ts +2 -0
- package/dist/components/base/sheet/index.d.ts +29 -1
- package/dist/components/base/sheet/sheet.d.ts +14 -5
- package/dist/components/base/spinner/spinner.d.ts +3 -2
- package/dist/components/base/structure/structure.types.d.ts +1 -1
- package/dist/components/base/table/index.d.ts +1 -1
- package/dist/components/base/text-inputs/clear-native-field.d.ts +2 -0
- package/dist/components/base/text-inputs/input-group.d.ts +2 -2
- package/dist/components/base/text-inputs/input-trailing-action.d.ts +3 -0
- package/dist/components/base/upload/upload.recipes.d.ts +11 -0
- package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
- package/dist/components/base/value-inputs/tags-input.d.ts +2 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
- package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
- package/dist/components/blocks/analytics/index.d.ts +1 -1
- package/dist/components/blocks/analytics/types.d.ts +1 -1
- package/dist/components/blocks/analytics/use-metric-format-options.d.ts +3 -0
- package/dist/components/blocks/collaboration/message/message.recipes.d.ts +12 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +3 -1
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +4 -1
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +1 -1
- package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +1 -1
- package/dist/components/blocks/commerce/payment-method/types.d.ts +3 -1
- package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +1 -1
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -1
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +1 -4
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -4
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +3 -3
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -6
- package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -1
- package/dist/components/features/combobox/components/error-message.d.ts +1 -1
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -0
- package/dist/components/features/filters/facets/search-facet.d.ts +0 -12
- package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.types.d.ts +9 -1
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/drawer.d.ts +1 -1
- package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
- package/dist/components/features/overlays/hooks/use-pending-overlay-focus.d.ts +2 -0
- package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
- package/dist/components/features/overlays/overlays.types.d.ts +46 -22
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/partials/index.d.ts +1 -1
- package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
- package/dist/components/features/products/partials/product-tone.d.ts +11 -1
- package/dist/components/features/products/products.types.d.ts +2 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +2 -1
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/partials/cell-renderers.d.ts +1 -1
- package/dist/components/features/table/table.types.d.ts +1 -1
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +3 -1
- package/dist/components/layout/auth/auth.types.d.ts +1 -0
- package/dist/components/layout/page/index.d.ts +1 -1
- package/dist/components/layout/page/page.d.ts +0 -1
- package/dist/components/layout/page/page.types.d.ts +62 -6
- package/dist/components/layout/page/partials/page-header-commands.d.ts +13 -0
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar.types.d.ts +4 -0
- package/dist/components/layout/workspace/workspace.types.d.ts +3 -0
- package/dist/components/primitives/date.d.ts +16 -3
- package/dist/components/primitives/dimensions.d.ts +6 -0
- package/dist/components/primitives/duration.d.ts +6 -0
- package/dist/components/primitives/file-size.d.ts +6 -0
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/initials.d.ts +11 -2
- package/dist/components/primitives/link.d.ts +7 -0
- package/dist/components/primitives/money.d.ts +29 -7
- package/dist/components/primitives/number.d.ts +17 -0
- package/dist/components/primitives/value-typography.d.ts +54 -0
- package/dist/components/primitives/value.d.ts +31 -6
- package/dist/components/typography/heading.d.ts +13 -2
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/label.d.ts +3 -0
- package/dist/components/typography/running-text.d.ts +12 -0
- package/dist/components/typography/text-link.d.ts +23 -1
- package/dist/components/typography/text.d.ts +12 -0
- package/dist/components/typography/text.styles.d.ts +37 -5
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/overlay.recipes.d.ts +15 -2
- package/dist/components/ui/popover.d.ts +1 -1
- package/dist/components/ui/select.d.ts +3 -1
- package/dist/components/ui/sidebar.d.ts +1 -1
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/table.d.ts +2 -1
- package/dist/container.recipes-D9t8MHR3.js +27 -0
- package/dist/container.recipes-D9t8MHR3.js.map +1 -0
- package/dist/{containers-6s-ucRQQ.js → containers-D_L4mTVb.js} +34 -57
- package/dist/containers-D_L4mTVb.js.map +1 -0
- package/dist/control-group-recipes-DBXmfh2E.js +21 -0
- package/dist/control-group-recipes-DBXmfh2E.js.map +1 -0
- package/dist/{copyable-B7SBXJMr.js → copyable-DDjTeW_j.js} +6 -6
- package/dist/{copyable-B7SBXJMr.js.map → copyable-DDjTeW_j.js.map} +1 -1
- package/dist/data-display-3xWQUnMA.js +1335 -0
- package/dist/data-display-3xWQUnMA.js.map +1 -0
- package/dist/date-picker-DrDFj8Lo.js +1527 -0
- package/dist/date-picker-DrDFj8Lo.js.map +1 -0
- package/dist/date-pickers-CnFCb0n2.js +174 -0
- package/dist/date-pickers-CnFCb0n2.js.map +1 -0
- package/dist/date-uf3z37Nm.js +144 -0
- package/dist/date-uf3z37Nm.js.map +1 -0
- package/dist/{display-CFM5myut.js → display-DrdvPwF0.js} +25 -25
- package/dist/display-DrdvPwF0.js.map +1 -0
- package/dist/{dropdown-menu-BlnyHr-9.js → dropdown-menu-CURh59jb.js} +22 -15
- package/dist/dropdown-menu-CURh59jb.js.map +1 -0
- package/dist/features/activities.js +177 -163
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +187 -183
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/async-preview.js +9 -9
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +25 -23
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +353 -355
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +346 -354
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +225 -227
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +29 -29
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +59 -58
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +898 -900
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1412 -1444
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +51 -49
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +103 -97
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +13 -13
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +2 -2
- package/dist/features/schema-form.js +187 -183
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +7 -7
- package/dist/features/sync.js.map +1 -1
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +508 -503
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-DWUkgEjR.js → feedback-C7nR0UtT.js} +30 -31
- package/dist/feedback-C7nR0UtT.js.map +1 -0
- package/dist/field-affordance-recipes-CkOCdE2y.js +46 -0
- package/dist/field-affordance-recipes-CkOCdE2y.js.map +1 -0
- package/dist/{field-state-recipes-CBTRt9Bt.js → field-state-recipes-C-MFBX_8.js} +5 -5
- package/dist/field-state-recipes-C-MFBX_8.js.map +1 -0
- package/dist/{filters-BhsUtsxW.js → filters-Da-gNPsE.js} +760 -765
- package/dist/filters-Da-gNPsE.js.map +1 -0
- package/dist/{form-field-Bn7ZH1rA.js → form-field-VZRULhUK.js} +20 -12
- package/dist/form-field-VZRULhUK.js.map +1 -0
- package/dist/form-sizing-uWP4lzVh.js +126 -0
- package/dist/form-sizing-uWP4lzVh.js.map +1 -0
- package/dist/{forms-B7pzS25o.js → forms-DDeEnXSY.js} +38 -38
- package/dist/forms-DDeEnXSY.js.map +1 -0
- package/dist/forms-numeric-D3CO60IF.js +905 -0
- package/dist/forms-numeric-D3CO60IF.js.map +1 -0
- package/dist/{header-C59QZyxV.js → header-2ycNqGOR.js} +42 -37
- package/dist/header-2ycNqGOR.js.map +1 -0
- package/dist/{hooks-CM1Vp9Pe.js → hooks-DQ5SPwZw.js} +2 -2
- package/dist/{hooks-CM1Vp9Pe.js.map → hooks-DQ5SPwZw.js.map} +1 -1
- package/dist/{http-CLTVJc5I.js → http-CdEIHyQf.js} +2 -2
- package/dist/http-CdEIHyQf.js.map +1 -0
- package/dist/{icon-badge-Dv0RYQwj.js → icon-badge-DKlaKXoo.js} +4 -4
- package/dist/{icon-badge-Dv0RYQwj.js.map → icon-badge-DKlaKXoo.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/input-BoLm9Hks.js +20 -0
- package/dist/input-BoLm9Hks.js.map +1 -0
- package/dist/input-DhQdBnV3.js +255 -0
- package/dist/input-DhQdBnV3.js.map +1 -0
- package/dist/item-xzh8Df65.js +264 -0
- package/dist/item-xzh8Df65.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 +1 -1
- package/dist/layout/settings.js +1 -1
- package/dist/layout/sidebar.js +2 -2
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +10 -10
- package/dist/lib/affordance-geometry.generated.d.ts +46 -10
- package/dist/lib/control-group-recipes.d.ts +22 -0
- package/dist/lib/field-affordance-recipes.d.ts +70 -2
- package/dist/lib/field-state-recipes.d.ts +6 -4
- package/dist/lib/format.d.ts +9 -0
- package/dist/lib/money-format.d.ts +30 -0
- package/dist/lib/navigation-row-recipes.d.ts +3 -2
- package/dist/lib/overlay-anatomy-recipes.d.ts +2 -2
- package/dist/lib/surface-recipes.d.ts +13 -8
- package/dist/lib/token-merge.generated.d.ts +144 -2
- package/dist/lib/track-recipes.d.ts +1 -1
- package/dist/lib/ui-provider/provider.d.ts +7 -2
- package/dist/lib/ui-provider/store.d.ts +6 -2
- package/dist/lib/ui-provider/types.d.ts +9 -4
- package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
- package/dist/lib/utils.js +1 -1
- package/dist/media-gallery-DQUQ0m3O.js +201 -0
- package/dist/media-gallery-DQUQ0m3O.js.map +1 -0
- package/dist/{mentions-B8Ko-fhS.js → mentions-DwnO1hh4.js} +40 -39
- package/dist/{mentions-B8Ko-fhS.js.map → mentions-DwnO1hh4.js.map} +1 -1
- package/dist/message-YfFmbXNP.js +127 -0
- package/dist/message-YfFmbXNP.js.map +1 -0
- package/dist/{navigation-BUIn2Qxx.js → navigation-Cbp5V8gG.js} +27 -28
- package/dist/navigation-Cbp5V8gG.js.map +1 -0
- package/dist/navigation-Cs1npsPm.js +300 -0
- package/dist/navigation-Cs1npsPm.js.map +1 -0
- package/dist/{navigation-row-recipes-GVh11KiT.js → navigation-row-recipes-DlU-4QYO.js} +3 -3
- package/dist/navigation-row-recipes-DlU-4QYO.js.map +1 -0
- package/dist/number-CKRBYmZK.js +352 -0
- package/dist/number-CKRBYmZK.js.map +1 -0
- package/dist/overlay.recipes-CNO2S9V6.js +34 -0
- package/dist/overlay.recipes-CNO2S9V6.js.map +1 -0
- package/dist/overlays-DhZO7N-I.js +994 -0
- package/dist/overlays-DhZO7N-I.js.map +1 -0
- package/dist/page-C6R_8jFt.js +325 -0
- package/dist/page-C6R_8jFt.js.map +1 -0
- package/dist/{page-header-DQRa0jug.js → page-header-hUTzcRZX.js} +12 -12
- package/dist/page-header-hUTzcRZX.js.map +1 -0
- package/dist/{pagination-C29vvt3I.js → pagination-Cm0jqa3I.js} +21 -21
- package/dist/pagination-Cm0jqa3I.js.map +1 -0
- package/dist/{popover-CoLDEg19.js → popover-Dcv_9jxr.js} +23 -22
- package/dist/popover-Dcv_9jxr.js.map +1 -0
- package/dist/{popover-menu-GLIQTJTx.js → popover-menu-DnRFKnHP.js} +6 -6
- package/dist/{popover-menu-GLIQTJTx.js.map → popover-menu-DnRFKnHP.js.map} +1 -1
- package/dist/{popover.recipes-zgBhMlUu.js → popover.recipes-wmbvL8Ah.js} +5 -5
- package/dist/popover.recipes-wmbvL8Ah.js.map +1 -0
- package/dist/primitives-BHrwQXFC.js +379 -0
- package/dist/primitives-BHrwQXFC.js.map +1 -0
- package/dist/primitives.js +5 -5
- package/dist/{progress-BOe8l_FZ.js → progress-Br9WTFya.js} +12 -11
- package/dist/progress-Br9WTFya.js.map +1 -0
- package/dist/{receipt-BM8xsGFy.js → receipt-CV89q1fs.js} +8 -8
- package/dist/{receipt-BM8xsGFy.js.map → receipt-CV89q1fs.js.map} +1 -1
- package/dist/rich-text-editor-CF8QYt5p.js +574 -0
- package/dist/rich-text-editor-CF8QYt5p.js.map +1 -0
- package/dist/{rich-text-editor.recipes-DxvOE0Lp.js → rich-text-editor.recipes-CnrbmTS1.js} +35 -26
- package/dist/rich-text-editor.recipes-CnrbmTS1.js.map +1 -0
- package/dist/{rich-text-B7sBAdDG.js → rich-text-j-FGAeZW.js} +4 -4
- package/dist/{rich-text-B7sBAdDG.js.map → rich-text-j-FGAeZW.js.map} +1 -1
- package/dist/{scroll-area-BheMQ270.js → scroll-area-DRdr16Pt.js} +3 -3
- package/dist/scroll-area-DRdr16Pt.js.map +1 -0
- package/dist/{separator-DO0EbCEm.js → separator-BMEvwnSX.js} +2 -2
- package/dist/{separator-DO0EbCEm.js.map → separator-BMEvwnSX.js.map} +1 -1
- package/dist/{separator-Gk_WXH-l.js → separator-Do5GWDYi.js} +4 -4
- package/dist/separator-Do5GWDYi.js.map +1 -0
- package/dist/services/actions/action-adapters.d.ts +4 -0
- package/dist/services/actions.js +8 -3
- package/dist/services/actions.js.map +1 -1
- package/dist/{settings-BnCyyPOJ.js → settings-DHk0L2MF.js} +20 -19
- package/dist/settings-DHk0L2MF.js.map +1 -0
- package/dist/sheet-DRFNY1_D.js +207 -0
- package/dist/sheet-DRFNY1_D.js.map +1 -0
- package/dist/sidebar-Cb8WzOvE.js +511 -0
- package/dist/sidebar-Cb8WzOvE.js.map +1 -0
- package/dist/{sidebar-DPR7fmqN.js → sidebar-Crc9M9JV.js} +220 -201
- package/dist/sidebar-Crc9M9JV.js.map +1 -0
- package/dist/{skeleton-CmT1ppqb.js → skeleton-DVMXr15h.js} +5 -5
- package/dist/{skeleton-CmT1ppqb.js.map → skeleton-DVMXr15h.js.map} +1 -1
- package/dist/smart-card-Bek-TwUp.js +599 -0
- package/dist/smart-card-Bek-TwUp.js.map +1 -0
- package/dist/{spinner-BY9HbUEh.js → spinner-CmTAbEp0.js} +8 -6
- package/dist/spinner-CmTAbEp0.js.map +1 -0
- package/dist/{structure-MvKVq-oL.js → structure-hzCW-XsV.js} +3 -3
- package/dist/{structure-MvKVq-oL.js.map → structure-hzCW-XsV.js.map} +1 -1
- package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
- package/dist/structure.recipes-EPz60cU8.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/surface-recipes-DOdoBXGm.js +28 -0
- package/dist/surface-recipes-DOdoBXGm.js.map +1 -0
- package/dist/table-D6zKeYQX.js +162 -0
- package/dist/table-D6zKeYQX.js.map +1 -0
- package/dist/table-Dn4XSrSB.js +1444 -0
- package/dist/table-Dn4XSrSB.js.map +1 -0
- package/dist/tabs-Dk8E_knt.js +189 -0
- package/dist/tabs-Dk8E_knt.js.map +1 -0
- package/dist/text-inputs-BFpku0Qd.js +331 -0
- package/dist/text-inputs-BFpku0Qd.js.map +1 -0
- package/dist/{text.styles-BwB7vAF2.js → text.styles-g4He6UIW.js} +26 -15
- package/dist/text.styles-g4He6UIW.js.map +1 -0
- package/dist/theme.css +90 -124
- package/dist/themes/green.css +24 -0
- package/dist/{timelines-B9ICkQcV.js → timelines-CxuAFIc2.js} +97 -104
- package/dist/timelines-CxuAFIc2.js.map +1 -0
- package/dist/track-recipes-CDcKmndW.js +10 -0
- package/dist/track-recipes-CDcKmndW.js.map +1 -0
- package/dist/{tree-BdWSaoFT.js → tree-BotPlyiD.js} +13 -13
- package/dist/{tree-BdWSaoFT.js.map → tree-BotPlyiD.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-CAr3dQhX.js +116 -0
- package/dist/typography-CAr3dQhX.js.map +1 -0
- package/dist/typography.js +2 -2
- package/dist/{ui-provider-CftIB6TY.js → ui-provider-D2_TeLqw.js} +22 -22
- package/dist/ui-provider-D2_TeLqw.js.map +1 -0
- package/dist/ui-provider.js +1 -1
- package/dist/{upload-D8Za5x_c.js → upload-B0WHW7ak.js} +278 -274
- package/dist/upload-B0WHW7ak.js.map +1 -0
- package/dist/{upload-queue-hIIYBLS7.js → upload-queue-BHZ_wBfd.js} +72 -75
- package/dist/upload-queue-BHZ_wBfd.js.map +1 -0
- package/dist/{usage-card-DnmnJ58D.js → usage-card-U0YBLTNT.js} +31 -33
- package/dist/usage-card-U0YBLTNT.js.map +1 -0
- package/dist/utils-Cospvlj1.js +4445 -0
- package/dist/utils-Cospvlj1.js.map +1 -0
- package/dist/value-inputs-CjfzGMsN.js +854 -0
- package/dist/value-inputs-CjfzGMsN.js.map +1 -0
- package/dist/value-typography-Deb3yQZg.js +116 -0
- package/dist/value-typography-Deb3yQZg.js.map +1 -0
- package/dist/{workspace-C1PZmk8L.js → workspace-YoFjXi6i.js} +97 -105
- package/dist/workspace-YoFjXi6i.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +123 -119
- package/docs/consumer-skill/examples/analytics.tsx +34 -0
- package/docs/consumer-skill/examples/app-layout.tsx +42 -14
- package/docs/consumer-skill/examples/detail.tsx +20 -5
- package/docs/consumer-skill/examples/edit.tsx +1 -1
- package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
- package/docs/consumer-skill/examples/manifest.json +37 -3
- package/docs/consumer-skill/examples/scoped-directory.tsx +2 -2
- package/docs/consumer-skill/examples/website.tsx +56 -0
- package/docs/consumer-skill/references/analytics.md +70 -0
- package/docs/consumer-skill/references/composition.md +195 -9
- package/docs/consumer-skill/references/design-contract.md +33 -7
- package/docs/consumer-skill/references/discovery.md +80 -5
- package/docs/consumer-skill/references/installation.md +22 -0
- package/docs/consumer-skill/references/integration.md +46 -1
- package/docs/consumer-skill/references/public-api.json +2083 -237
- package/docs/consumer-skill/references/review.md +74 -6
- package/docs/consumer-skill/references/theming.md +59 -8
- package/docs/consumer-skill/references/tokens.json +180 -9
- package/docs/consumer-skill/references/workflows.md +34 -0
- package/docs/consumer-skill/scripts/check-composition.mjs +1 -1
- package/docs/consumer-skill/scripts/composition-policy.mjs +271 -18
- package/docs/consumer-skill/scripts/discovery.mjs +69 -9
- package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
- package/docs/consumer-skill/scripts/surface-policy.mjs +44 -0
- package/package.json +11 -6
- package/dist/accordion-B-5Focs8.js.map +0 -1
- package/dist/action-menu-Cx3SdfbN.js +0 -265
- package/dist/action-menu-Cx3SdfbN.js.map +0 -1
- package/dist/affordance-geometry.generated-D8Jcfb0G.js +0 -32
- package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +0 -1
- package/dist/ai-artifact-B5tPpXnS.js.map +0 -1
- package/dist/app-shell-at8Kt4l_.js.map +0 -1
- package/dist/attachment-BO2R47wn.js.map +0 -1
- package/dist/auth-OFwWSAap.js +0 -704
- package/dist/auth-OFwWSAap.js.map +0 -1
- package/dist/avatar-Bpzty83c.js.map +0 -1
- package/dist/badge-BZXZT9wd.js.map +0 -1
- package/dist/breadcrumbs-DdQ_I5ra.js.map +0 -1
- package/dist/button-BS6l5JUw.js.map +0 -1
- package/dist/buttons-Co6GavvM.js +0 -674
- package/dist/buttons-Co6GavvM.js.map +0 -1
- package/dist/chart-DVfcwQu6.js +0 -149
- package/dist/chart-DVfcwQu6.js.map +0 -1
- package/dist/checkbox-BavDRjF7.js +0 -34
- package/dist/checkbox-BavDRjF7.js.map +0 -1
- package/dist/choice-inputs-CC7XqPQO.js +0 -619
- package/dist/choice-inputs-CC7XqPQO.js.map +0 -1
- package/dist/code-block-xHKbAJDj.js.map +0 -1
- package/dist/combobox-DEbdr-3u.js +0 -273
- package/dist/combobox-DEbdr-3u.js.map +0 -1
- package/dist/combobox-xv3yJbzl.js +0 -850
- package/dist/combobox-xv3yJbzl.js.map +0 -1
- package/dist/command-C0xe7u9B.js.map +0 -1
- package/dist/comments-DviPLnwy.js.map +0 -1
- package/dist/containers-6s-ucRQQ.js.map +0 -1
- package/dist/data-display-cWIRdeaf.js +0 -1129
- package/dist/data-display-cWIRdeaf.js.map +0 -1
- package/dist/date-BFNMnrS5.js +0 -140
- package/dist/date-BFNMnrS5.js.map +0 -1
- package/dist/date-picker-CA6ogMQB.js +0 -1521
- package/dist/date-picker-CA6ogMQB.js.map +0 -1
- package/dist/date-pickers-BPIKLdsD.js +0 -224
- package/dist/date-pickers-BPIKLdsD.js.map +0 -1
- package/dist/display-CFM5myut.js.map +0 -1
- package/dist/dropdown-menu-BlnyHr-9.js.map +0 -1
- package/dist/feedback-DWUkgEjR.js.map +0 -1
- package/dist/field-affordance-recipes-IjzPrCTw.js +0 -17
- package/dist/field-affordance-recipes-IjzPrCTw.js.map +0 -1
- package/dist/field-state-recipes-CBTRt9Bt.js.map +0 -1
- package/dist/filters-BhsUtsxW.js.map +0 -1
- package/dist/form-field-Bn7ZH1rA.js.map +0 -1
- package/dist/form-sizing-BWs70_a2.js +0 -100
- package/dist/form-sizing-BWs70_a2.js.map +0 -1
- package/dist/format-iamDSqs2.js +0 -110
- package/dist/format-iamDSqs2.js.map +0 -1
- package/dist/forms-B7pzS25o.js.map +0 -1
- package/dist/forms-numeric-BUBxELBv.js +0 -867
- package/dist/forms-numeric-BUBxELBv.js.map +0 -1
- package/dist/header-C59QZyxV.js.map +0 -1
- package/dist/http-CLTVJc5I.js.map +0 -1
- package/dist/input-WwYQZJzG.js +0 -202
- package/dist/input-WwYQZJzG.js.map +0 -1
- package/dist/input-ci9fIgFH.js +0 -20
- package/dist/input-ci9fIgFH.js.map +0 -1
- package/dist/item-pJ0GsOiJ.js +0 -257
- package/dist/item-pJ0GsOiJ.js.map +0 -1
- package/dist/media-gallery-DhDRgnVZ.js +0 -200
- package/dist/media-gallery-DhDRgnVZ.js.map +0 -1
- package/dist/message-COsdEvXT.js +0 -108
- package/dist/message-COsdEvXT.js.map +0 -1
- package/dist/navigation-BUIn2Qxx.js.map +0 -1
- package/dist/navigation-DBEu4POU.js +0 -267
- package/dist/navigation-DBEu4POU.js.map +0 -1
- package/dist/navigation-row-recipes-GVh11KiT.js.map +0 -1
- package/dist/number-BNT_BIzJ.js +0 -269
- package/dist/number-BNT_BIzJ.js.map +0 -1
- package/dist/overlay.recipes-BxW5FIfK.js +0 -6
- package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
- package/dist/overlays-B11wZka6.js +0 -982
- package/dist/overlays-B11wZka6.js.map +0 -1
- package/dist/page-BV6ioQg3.js +0 -202
- package/dist/page-BV6ioQg3.js.map +0 -1
- package/dist/page-header-DQRa0jug.js.map +0 -1
- package/dist/pagination-C29vvt3I.js.map +0 -1
- package/dist/popover-CoLDEg19.js.map +0 -1
- package/dist/popover.recipes-zgBhMlUu.js.map +0 -1
- package/dist/primitives-DKPOGVpj.js +0 -330
- package/dist/primitives-DKPOGVpj.js.map +0 -1
- package/dist/progress-BOe8l_FZ.js.map +0 -1
- package/dist/rich-text-editor-CoVrTiSv.js +0 -575
- package/dist/rich-text-editor-CoVrTiSv.js.map +0 -1
- package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +0 -1
- package/dist/scroll-area-BheMQ270.js.map +0 -1
- package/dist/select-B2mb-qN2.js +0 -108
- package/dist/select-B2mb-qN2.js.map +0 -1
- package/dist/separator-Gk_WXH-l.js.map +0 -1
- package/dist/settings-BnCyyPOJ.js.map +0 -1
- package/dist/sheet-B-q914Ad.js +0 -205
- package/dist/sheet-B-q914Ad.js.map +0 -1
- package/dist/sidebar-C_2p3Tfj.js +0 -501
- package/dist/sidebar-C_2p3Tfj.js.map +0 -1
- package/dist/sidebar-DPR7fmqN.js.map +0 -1
- package/dist/smart-card-CYLn46e6.js +0 -578
- package/dist/smart-card-CYLn46e6.js.map +0 -1
- package/dist/spinner-BY9HbUEh.js.map +0 -1
- package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
- package/dist/surface-recipes-CQfRr-VL.js +0 -27
- package/dist/surface-recipes-CQfRr-VL.js.map +0 -1
- package/dist/table-BS39xnlq.js +0 -1424
- package/dist/table-BS39xnlq.js.map +0 -1
- package/dist/table-DnlAJ-xR.js +0 -146
- package/dist/table-DnlAJ-xR.js.map +0 -1
- package/dist/tabs-B5cNMWiP.js +0 -187
- package/dist/tabs-B5cNMWiP.js.map +0 -1
- package/dist/text-inputs-Dh9XGyiS.js +0 -331
- package/dist/text-inputs-Dh9XGyiS.js.map +0 -1
- package/dist/text.styles-BwB7vAF2.js.map +0 -1
- package/dist/timelines-B9ICkQcV.js.map +0 -1
- package/dist/track-recipes-LLPNVwFg.js +0 -10
- package/dist/track-recipes-LLPNVwFg.js.map +0 -1
- package/dist/typography-Cv8MT-82.js +0 -96
- package/dist/typography-Cv8MT-82.js.map +0 -1
- package/dist/ui-provider-CftIB6TY.js.map +0 -1
- package/dist/upload-D8Za5x_c.js.map +0 -1
- package/dist/upload-queue-hIIYBLS7.js.map +0 -1
- package/dist/usage-card-DnmnJ58D.js.map +0 -1
- package/dist/utils-C2EKeIw3.js +0 -72
- package/dist/utils-C2EKeIw3.js.map +0 -1
- package/dist/value-inputs-DX2dbxjj.js +0 -824
- package/dist/value-inputs-DX2dbxjj.js.map +0 -1
- package/dist/workspace-C1PZmk8L.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buttons-Co6GavvM.js","names":["ButtonGroup","ButtonGroupText","ButtonGroupSeparator","ButtonGroupPrimitive","styles","ButtonGroupTextPrimitive","ButtonGroupSeparatorPrimitive","TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","Tooltip","BaseTooltip","TooltipProviderPrimitive","TooltipTriggerPrimitive","TooltipContentPrimitive","_Fragment","PrimitiveButton","_Fragment","styles","React","React","Tooltip","React","Tooltip","React","resolveComponentScale","useButtonConfig","useDensityConfig","cn","Separator","Text","anchoredPositionMethod","motionRecipes","Slot","Button$1","React$1","Fragment$1","buttonGroupVariants","orientation","ButtonGroup$1","props","className","ButtonGroupText$1","useRender","mergeProps","ButtonGroupSeparator$1","buttonGroupRecipes","ButtonGroup","isScalarContent","content","ButtonGroupText","children","ButtonGroupSeparator","TooltipProvider$1","Tooltip","delayDuration","delay","Tooltip$2","TooltipTrigger$1","slotRender","asChild","safeRender","render","_nativeButton","rest","renderProps","state","TooltipContent$1","resolvedContainer","useThemePortalContainer","container","TooltipDescriptionContext","createContext","SharedTooltipProviderContext","Tooltip$1","hasSharedProvider","useContext","generatedId","useId","descriptionId","setDescriptionId","useState","root","TooltipProvider","TooltipTrigger","TooltipContent","description","buttonVariants","cva","usePresentation","defaults","resolved","tone","buttonStyle","size","defaultScale","iconOnly","fullWidth","Content","Icon","glyph","iconPosition","BaseButton","forwardRef","presentation","BaseButtonLink","relTokens","rel","target","disabled","tabIndex","event","buttonRecipes","defaultButtonLoadingStrings","useLoaderButtonState","stringsProp","strings","useStrings","isLoading","setIsLoading","loading","setShowCompletedState","useEffect","handlesLoading","timeoutId","LoaderButtonContent","_size","loadingText","isSimpleText","Loader2","LoaderButton","TooltipButton","mergedProps","triggerProps","withTooltip","usesLoaderPath","LoadingButtonLink","loader","ButtonLink","_withTooltip","_loading","_handlesLoading","_strings","linkProps","toLinkProps","_type","_form","_formAction","_formEncType","_formMethod","_formNoValidate","_formTarget","_name","_value","_focusableWhenDisabled","_render","Button","href","link","_download","_hrefLang","_media","_ping","_referrerPolicy","_rel","_target","baseProps","actionProps","sizeClasses","TextButton","resolvedSize"],"sources":["../src/components/ui/button-group.tsx","../src/components/base/buttons/button-group.recipes.ts","../src/components/base/buttons/button-group.tsx","../src/components/ui/tooltip.tsx","../src/components/base/display/tooltip.tsx","../src/components/base/buttons/button.variants.ts","../src/components/base/buttons/base-button.tsx","../src/components/base/buttons/button.recipes.ts","../src/components/base/buttons/loader-button.tsx","../src/components/base/buttons/tooltip-button.tsx","../src/components/base/buttons/button.tsx","../src/components/base/buttons/text-button.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Separator } from \"./separator\"\n\nconst buttonGroupVariants = ({ orientation = \"horizontal\" }: { orientation?: \"horizontal\" | \"vertical\" } = {}) =>\n orientation === \"vertical\" ? \"button-group-vertical\" : \"button-group-horizontal\"\n\nfunction ButtonGroup({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<\"div\"> & { orientation?: \"horizontal\" | \"vertical\" }) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(\"button-group--primitive\", className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\"button-group-text--primitive\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"button-group-text\",\n },\n })\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\"button-group-separator--primitive\", className)}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n","/** Private Tailwind recipes; public props and DOM hooks remain owned by the component. */\nexport const buttonGroupRecipes = {\n\troot: \"inline-flex items-stretch rounded-radius box-border data-[orientation=vertical]:flex-col [&[data-orientation=horizontal]>:not(:last-child)]:rounded-e-none [&[data-orientation=horizontal]>:not(:first-child)]:rounded-s-none [&[data-orientation=horizontal]>:not(:first-child)]:-ms-px [&[data-orientation=vertical]>:not(:last-child)]:rounded-b-none [&[data-orientation=vertical]>:not(:first-child)]:rounded-t-none [&[data-orientation=vertical]>:not(:first-child)]:-mt-px\",\n\ttext: \"inline-flex items-center px-control-sm py-0 bg-muted border border-border text-sm text-muted-foreground\",\n\tseparator: \"bg-border w-px self-stretch\",\n} as const satisfies Record<string, string>;\n","/**\n * ButtonGroup — base wrapper around the shadcn `ui/button-group` primitive.\n *\n * What this layer adds on top of the primitive:\n * - Stable BEM hooks (`button-group--component`, `button-group-text--component`,\n * `button-group-separator--component`) on each wrapped part's outermost node.\n * - Design-system typography for the scalar copy inside `ButtonGroupText`,\n * while arbitrary `ReactNode` content (icons, `kbd`, nested controls) passes\n * through untouched so the compound pattern stays composable.\n * - Keeps the primitive's `orientation` variant, segmented-radius handling, and\n * every native `div` prop by spread.\n *\n * Compose it as `<ButtonGroup><Button/><ButtonGroupSeparator/><Button/></ButtonGroup>`.\n * Reach for it when adjacent buttons must read as one segmented control; use\n * `Stack` when the buttons are merely peers with a gap between them.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport {\n\tButtonGroup as ButtonGroupPrimitive,\n\tButtonGroupSeparator as ButtonGroupSeparatorPrimitive,\n\tButtonGroupText as ButtonGroupTextPrimitive,\n\tbuttonGroupVariants,\n} from '../../ui/button-group';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport { buttonGroupRecipes as styles } from './button-group.recipes';\n\nexport type ButtonGroupProps = ComponentProps<typeof ButtonGroupPrimitive>;\nexport type ButtonGroupTextProps = ComponentProps<typeof ButtonGroupTextPrimitive>;\nexport type ButtonGroupSeparatorProps = ComponentProps<typeof ButtonGroupSeparatorPrimitive>;\n\n/** Segmented shell that joins adjacent buttons into a single control. */\nfunction ButtonGroup({ className, ...props }: ButtonGroupProps) {\n\treturn (\n\t\t<ButtonGroupPrimitive className={cn('button-group--component', styles.root, className)} {...props} />\n\t);\n}\n\nfunction isScalarContent(content: ReactNode): content is string | number | bigint {\n\treturn typeof content === 'string' || typeof content === 'number' || typeof content === 'bigint';\n}\n\n/** Non-interactive label segment — scalar copy renders through Typography. */\nfunction ButtonGroupText({ children, className, ...props }: ButtonGroupTextProps) {\n\treturn (\n\t\t<ButtonGroupTextPrimitive className={cn('button-group-text--component', styles.text, className)} {...props}>\n\t\t\t{isScalarContent(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</ButtonGroupTextPrimitive>\n\t);\n}\n\n/** Hairline divider between two segments of the group. */\nfunction ButtonGroupSeparator({ className, ...props }: ButtonGroupSeparatorProps) {\n\treturn (\n\t\t<ButtonGroupSeparatorPrimitive\n\t\t\tclassName={cn('button-group-separator--component', styles.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n","import { anchoredPositionMethod } from '../../lib/anchored-positioning';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { useThemePortalContainer, type ThemePortalContainer } from '../../lib/theme-scope';\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { Slot } from \"./slot\"\nimport { cn } from \"../../lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n delayDuration,\n ...props\n}: TooltipPrimitive.Provider.Props & { delayDuration?: number }) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delayDuration ?? delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n asChild = false,\n render,\n children,\n ...props\n}: TooltipPrimitive.Trigger.Props & { asChild?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: TooltipPrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n\n return (\n <TooltipPrimitive.Trigger\n data-slot=\"tooltip-trigger\"\n render={slotRender ?? safeRender}\n {...props}\n >\n {children}\n </TooltipPrimitive.Trigger>\n )\n}\n\nfunction TooltipContent({\n className,\n container,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n positionMethod = anchoredPositionMethod,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"positionMethod\"\n > & { container?: ThemePortalContainer }) {\n const resolvedContainer = useThemePortalContainer(container)\n return (\n <TooltipPrimitive.Portal container={resolvedContainer}>\n <TooltipPrimitive.Positioner\n positionMethod={positionMethod}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n motionRecipes.popup,\n \"rounded-md px-3 py-1.5 text-xs bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","/** Tokenized base wrappers for short, non-interactive contextual help. */\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { createContext, useContext, useId, useLayoutEffect, useState, type ComponentProps } from 'react';\n\nimport {\n\tTooltipContent as TooltipContentPrimitive,\n\tTooltipProvider as TooltipProviderPrimitive,\n\tTooltipTrigger as TooltipTriggerPrimitive,\n} from '../../ui/tooltip';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport type TooltipProps = ComponentProps<typeof BaseTooltip.Root>;\nexport type TooltipProviderProps = ComponentProps<typeof TooltipProviderPrimitive>;\nexport type TooltipTriggerProps = ComponentProps<typeof TooltipTriggerPrimitive>;\nexport type TooltipContentProps = ComponentProps<typeof TooltipContentPrimitive>;\n\nconst TooltipDescriptionContext = createContext<{ id: string; setId: (id: string) => void } | undefined>(undefined);\n\nconst SharedTooltipProviderContext = createContext(false);\n\n/** Tooltip state root. It does not render a DOM node. */\nexport function Tooltip(props: TooltipProps) {\n\tconst hasSharedProvider = useContext(SharedTooltipProviderContext);\n\tconst generatedId = useId();\n\tconst [descriptionId, setDescriptionId] = useState(generatedId);\n\tconst root = <TooltipDescriptionContext.Provider value={{ id: descriptionId, setId: setDescriptionId }}><BaseTooltip.Root data-slot=\"tooltip\" {...props} /></TooltipDescriptionContext.Provider>;\n\n\treturn hasSharedProvider ? root : <TooltipProviderPrimitive>{root}</TooltipProviderPrimitive>;\n}\n\n/** Shared delay provider for a group of tooltip roots. Nested Tooltip roots reuse it. */\nexport function TooltipProvider(props: TooltipProviderProps) {\n\treturn (\n\t\t<SharedTooltipProviderContext.Provider value>\n\t\t\t<TooltipProviderPrimitive {...props} />\n\t\t</SharedTooltipProviderContext.Provider>\n\t);\n}\n\n/** Polymorphic tooltip anchor. */\nexport function TooltipTrigger({ className, ...props }: TooltipTriggerProps) {\n\tconst description = useContext(TooltipDescriptionContext);\n\tconst descriptionId = description?.id;\n\treturn (\n\t\t<TooltipTriggerPrimitive\n\t\t\tclassName={cn('tooltip-trigger--component active:translate-y-0!', className)}\n\t\t\t{...props}\n\t\t\taria-describedby={[props['aria-describedby'], descriptionId].filter(Boolean).join(' ') || undefined}\n\t\t/>\n\t);\n}\n\n/** Inverse contextual-help surface with package spacing and typography. */\nexport function TooltipContent({ children, className, ...props }: TooltipContentProps) {\n\tconst description = useContext(TooltipDescriptionContext);\n\tconst descriptionId = props.id ?? description?.id;\n\tuseLayoutEffect(() => { if (descriptionId) description?.setId(descriptionId); }, [descriptionId, description?.setId]);\n\tconst isSimpleText = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint';\n\tconst content = isSimpleText ? (\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tsize=\"inherit\"\n\t\t\t\t\n\t\t\t\tlineHeight=\"snug\"\n\t\t\t\tclassName=\"tooltip-content--text text-inherit\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t) : children;\n\n\treturn (\n\t\t<TooltipContentPrimitive\n\t\t\tid={descriptionId}\n\t\t\trole=\"tooltip\"\n\t\t\tclassName={cn(\n\t\t\t\t'tooltip-content--component max-w-xs rounded-radius px-space-sm py-space-xs text-xs leading-snug',\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</TooltipContentPrimitive>\n\t);\n}\n\nTooltip.displayName = 'Tooltip';\nTooltipProvider.displayName = 'TooltipProvider';\nTooltipTrigger.displayName = 'TooltipTrigger';\nTooltipContent.displayName = 'TooltipContent';\n","import { cva } from 'class-variance-authority';\n\n/** Shared geometry and semantic tone/treatment pairs; no extra component tokens. */\nexport const buttonVariants = cva('box-border inline-flex shrink-0 items-center justify-center gap-space-sm [&_svg:not([class*=size-])]:size-icon [&_svg]:shrink-0 whitespace-nowrap rounded-radius border font-sans font-medium no-underline outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50', {\n variants: {\n tone: {primary: '', neutral: '', secondary: '', destructive: '', success: '', warning: '', info: ''},\n buttonStyle: {\n solid: 'border-transparent',\n outline: 'border-input bg-background [&:not([aria-disabled=true]):not(:disabled)]:hover:bg-accent',\n ghost: 'border-transparent bg-transparent [&:not([aria-disabled=true]):not(:disabled)]:hover:bg-accent',\n },\n // Keep leading after text size: class merging treats a later font size as\n // owning its default line height and would remove an earlier leading-none.\n size: {sm: 'h-action-sm px-control-sm text-sm leading-none', md: 'h-action px-control text-sm leading-none', lg: 'h-action-lg px-control text-sm leading-none'},\n iconOnly: {true: 'px-0', false: ''},\n fullWidth: {true: 'w-full', false: ''},\n },\n compoundVariants: [\n {tone: 'primary', buttonStyle: 'solid', class: 'bg-primary text-primary-foreground'},\n {tone: 'primary', buttonStyle: 'outline', class: 'border-primary/60 text-primary-accent'},\n {tone: 'primary', buttonStyle: 'ghost', class: 'text-primary-accent'},\n {tone: 'neutral', buttonStyle: 'solid', class: 'bg-foreground text-background'},\n {tone: 'neutral', buttonStyle: 'outline', class: 'border-foreground/15 text-foreground'},\n {tone: 'neutral', buttonStyle: 'ghost', class: 'text-foreground'},\n {tone: 'secondary', buttonStyle: 'solid', class: 'bg-secondary text-secondary-foreground'},\n {tone: 'secondary', buttonStyle: 'outline', class: 'border-border/60 text-secondary-foreground'},\n {tone: 'secondary', buttonStyle: 'ghost', class: 'text-secondary-foreground [&:not([aria-disabled=true]):not(:disabled)]:hover:text-accent-foreground'},\n {tone: 'destructive', buttonStyle: 'solid', class: 'bg-destructive text-destructive-foreground'},\n {tone: 'destructive', buttonStyle: 'outline', class: 'border-destructive/60 text-destructive'},\n {tone: 'destructive', buttonStyle: 'ghost', class: 'text-destructive'},\n {tone: 'success', buttonStyle: 'solid', class: 'bg-success text-success-foreground'},\n {tone: 'success', buttonStyle: 'outline', class: 'border-success/60 text-success'},\n {tone: 'success', buttonStyle: 'ghost', class: 'text-success'},\n {tone: 'warning', buttonStyle: 'solid', class: 'bg-warning text-warning-foreground'},\n {tone: 'warning', buttonStyle: 'outline', class: 'border-warning/60 text-warning-accent'},\n {tone: 'warning', buttonStyle: 'ghost', class: 'text-warning-accent'},\n {tone: 'info', buttonStyle: 'solid', class: 'bg-info text-info-foreground'},\n {tone: 'info', buttonStyle: 'outline', class: 'border-info/60 text-info'},\n {tone: 'info', buttonStyle: 'ghost', class: 'text-info'},\n {size: 'sm', iconOnly: true, class: 'size-action-sm'},\n {size: 'md', iconOnly: true, class: 'size-action'},\n {size: 'lg', iconOnly: true, class: 'size-action-lg'},\n ],\n defaultVariants: {tone: 'primary', buttonStyle: 'solid', size: 'md', iconOnly: false, fullWidth: false},\n});\n","import { forwardRef, type AnchorHTMLAttributes, type ElementType, type ReactNode } from 'react';\nimport { Button as PrimitiveButton } from '../../ui/button';\nimport { useButtonConfig, useDensityConfig, type ButtonSize, type ButtonStyle, type ButtonTone } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport { buttonVariants } from './button.variants';\n\nexport type { ButtonSize, ButtonStyle, ButtonTone } from '../../../lib/ui-provider';\nexport type IconPosition = 'left' | 'right';\ninterface PresentationProps {\n tone?: ButtonTone;\n buttonStyle?: ButtonStyle;\n size?: ButtonSize;\n iconOnly?: boolean;\n fullWidth?: boolean;\n icon?: ElementType;\n iconPosition?: IconPosition;\n children?: ReactNode;\n}\nexport interface BaseButtonProps extends Omit<PrimitiveButton.Props, 'children' | 'size' | 'variant'>, PresentationProps {}\nexport interface BaseButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'href'>, PresentationProps {href: string; disabled?: boolean}\n\nfunction usePresentation({tone, buttonStyle, size, iconOnly = false, fullWidth = false}: PresentationProps) {\n const defaults = useButtonConfig();\n const {defaultScale} = useDensityConfig();\n const resolved = {tone: tone ?? defaults.defaultTone, buttonStyle: buttonStyle ?? defaults.defaultButtonStyle, size: resolveComponentScale(size, defaultScale), iconOnly, fullWidth};\n return {\n ...resolved,\n classes: buttonVariants(resolved),\n attributes: {'data-slot': 'button', 'data-tone': resolved.tone, 'data-style': resolved.buttonStyle, 'data-size': resolved.size, 'data-icon-only': iconOnly || undefined, 'data-full-width': fullWidth || undefined},\n };\n}\n\nfunction Content({icon: Icon, iconPosition = 'left', children}: Pick<PresentationProps, 'icon' | 'iconPosition' | 'children'>) {\n const glyph = Icon && <Icon className=\"size-icon shrink-0\" aria-hidden=\"true\" />;\n return <>{iconPosition === 'left' && glyph}{children}{iconPosition === 'right' && glyph}</>;\n}\n\nexport const BaseButton = forwardRef<HTMLElement, BaseButtonProps>(function BaseButton({tone, buttonStyle, size, iconOnly, fullWidth, icon, iconPosition, className, children, ...props}, ref) {\n const presentation = usePresentation({tone, buttonStyle, size, iconOnly, fullWidth, children});\n return <PrimitiveButton {...props} {...presentation.attributes} ref={ref} className={(state) => cn('base-button--component', presentation.classes, typeof className === 'function' ? className(state) : className)}><Content icon={icon} iconPosition={iconPosition}>{children}</Content></PrimitiveButton>;\n});\n\n/** Navigation remains an anchor: Base UI's Button render API deliberately enforces button semantics. */\nexport const BaseButtonLink = forwardRef<HTMLAnchorElement, BaseButtonLinkProps>(function BaseButtonLink({tone, buttonStyle, size, iconOnly, fullWidth, icon, iconPosition, className, children, disabled = false, tabIndex, onClick, rel, target, ...props}, ref) {\n const presentation = usePresentation({tone, buttonStyle, size, iconOnly, fullWidth, children});\n const relTokens = new Set(rel?.split(/\\s+/).filter(Boolean));\n if (target?.toLowerCase() === '_blank') {if (!relTokens.size) relTokens.add('noreferrer'); relTokens.add('noopener');}\n return <a {...props} {...presentation.attributes} ref={ref} target={target} rel={relTokens.size ? [...relTokens].join(' ') : undefined} aria-disabled={disabled || props['aria-disabled'] || undefined} tabIndex={disabled ? -1 : tabIndex} className={cn('base-button--component', presentation.classes, className)} onClick={(event) => {\n if (disabled) {event.preventDefault(); event.stopPropagation(); return;}\n onClick?.(event);\n }}><Content icon={icon} iconPosition={iconPosition}>{children}</Content></a>;\n});\n","/** Private Tailwind recipes; public props and DOM hooks remain owned by the component. */\nexport const buttonRecipes = {\n\troot: \"inline-flex items-center justify-center font-[inherit] font-medium leading-tight whitespace-nowrap no-underline select-none border border-transparent rounded-radius box-border align-middle outline-none cursor-pointer transition-[background-color,color,border-color,box-shadow] duration-150 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:pointer-events-none\",\n\tisDisabled: \"opacity-50 cursor-not-allowed pointer-events-none\",\n\tsizeSm: \"h-action-sm min-h-0 px-control-sm gap-space-sm text-sm [&_.base-button-icon]:size-icon-sm\",\n\tsizeMd: \"h-action min-h-0 px-control gap-space-md text-sm [&_.base-button-icon]:size-icon\",\n\tsizeLg: \"h-action-lg min-h-0 px-control gap-space-lg text-sm [&_.base-button-icon]:size-icon-lg\",\n\tisIconOnly: \"w-auto aspect-square p-0\",\n\tisFullWidth: \"w-full\",\n\tisLoading: \"cursor-wait\",\n\tstyleSolid: \"\",\n\tstyleOutline: \"\",\n\tstyleGhost: \"\",\n\ticon: \"base-button-icon pointer-events-none shrink-0\",\n\tspinner: \"animate-spin me-space-md\",\n\ttoneNeutral: \"data-[style=solid]:bg-foreground data-[style=solid]:text-background data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-border data-[style=outline]:text-foreground data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-muted data-[style=ghost]:bg-transparent data-[style=ghost]:text-foreground data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-muted\",\n\ttonePrimary: \"data-[style=solid]:bg-primary data-[style=solid]:text-primary-foreground data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-primary data-[style=outline]:text-primary-accent data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-primary/10 data-[style=ghost]:bg-transparent data-[style=ghost]:text-primary-accent data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-primary/10\",\n\ttoneSecondary: \"data-[style=solid]:bg-secondary data-[style=solid]:text-secondary-foreground data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-border data-[style=outline]:text-foreground data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-secondary data-[style=ghost]:bg-transparent data-[style=ghost]:text-foreground data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-secondary\",\n\ttoneDestructive: \"data-[style=solid]:bg-destructive data-[style=solid]:text-destructive-foreground data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-destructive data-[style=outline]:text-destructive data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-destructive/10 data-[style=ghost]:bg-transparent data-[style=ghost]:text-destructive data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-destructive/10\",\n\ttoneSuccess: \"data-[style=solid]:bg-success data-[style=solid]:text-success-foreground data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-success data-[style=outline]:text-success data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-success/10 data-[style=ghost]:bg-transparent data-[style=ghost]:text-success data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-success/10\",\n\ttoneWarning: \"data-[style=solid]:bg-warning data-[style=solid]:text-warning-foreground data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-warning data-[style=outline]:text-warning-accent data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-warning/10 data-[style=ghost]:bg-transparent data-[style=ghost]:text-warning-accent data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-warning/10\",\n\ttoneInfo: \"data-[style=solid]:bg-info data-[style=solid]:text-info-foreground data-[style=solid]:[&:hover:not(:disabled):not([aria-disabled=true])]:brightness-95 data-[style=outline]:bg-transparent data-[style=outline]:border-info data-[style=outline]:text-info data-[style=outline]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-info/10 data-[style=ghost]:bg-transparent data-[style=ghost]:text-info data-[style=ghost]:[&:hover:not(:disabled):not([aria-disabled=true])]:bg-info/10\",\n} as const satisfies Record<string, string>;\n","import { Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport { cn } from '../../../lib/utils';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { Text } from '../../typography';\nimport { BaseButton, type BaseButtonProps, type ButtonSize } from './base-button';\nimport { buttonRecipes as styles } from './button.recipes';\n\nexport interface ButtonLoadingStrings {\n\t/** Shows the spinner and blocks activation. */\n\tloading: string;\n\tcompleted: string;\n}\n\nexport const defaultButtonLoadingStrings: ButtonLoadingStrings = {\n\tloading: 'Loading...',\n\tcompleted: 'Completed',\n};\n\nexport interface LoaderButtonProps extends BaseButtonProps {\n\t/** Shows the spinner and blocks activation. */\n\tloading?: boolean;\n\t/** Opts into the loading-capable button even before `loading` is true, so the first press does not swap component identity. */\n\thandlesLoading?: boolean;\n\t/** Overrides the loading announcement copy. */\n\tstrings?: StringsProp<ButtonLoadingStrings>;\n}\n\ninterface UseLoaderButtonStateOptions {\n\t/** Shows the spinner and blocks activation. */\n\tloading?: boolean;\n\t/** Opts into the loading-capable button even before `loading` is true, so the first press does not swap component identity. */\n\thandlesLoading?: boolean;\n\t/** Overrides the loading announcement copy. */\n\tstrings?: StringsProp<ButtonLoadingStrings>;\n}\n\nexport function useLoaderButtonState({\n\tloading = false,\n\thandlesLoading,\n\tstrings: stringsProp,\n}: UseLoaderButtonStateOptions) {\n\tconst strings = useStrings(defaultButtonLoadingStrings, stringsProp);\n\tconst [isLoading, setIsLoading] = useState(loading);\n\tconst [, setShowCompletedState] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tsetIsLoading(true);\n\t\t}\n\t}, [loading]);\n\n\tuseEffect(() => {\n\t\tif (handlesLoading && loading) {\n\t\t\tsetIsLoading(true);\n\t\t}\n\t}, [loading, handlesLoading]);\n\n\tuseEffect(() => {\n\t\tlet timeoutId: ReturnType<typeof setTimeout>;\n\t\tif (!loading && isLoading) {\n\t\t\tsetShowCompletedState(true);\n\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\tsetIsLoading(false);\n\t\t\t\tsetShowCompletedState(false);\n\t\t\t}, 300);\n\t\t}\n\t\treturn () => {\n\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t};\n\t}, [loading, isLoading]);\n\n\treturn { isLoading, strings };\n}\n\ninterface LoaderButtonContentProps {\n\tisLoading: boolean;\n\tloadingText: string;\n\ticon?: BaseButtonProps['icon'];\n\ticonPosition?: BaseButtonProps['iconPosition'];\n\tsize?: ButtonSize;\n\tchildren: React.ReactNode;\n}\n\nexport function LoaderButtonContent({\n\tisLoading,\n\tloadingText,\n\ticon: Icon,\n\ticonPosition = 'left',\n\tsize: _size,\n\tchildren,\n}: LoaderButtonContentProps) {\n\tconst content = isLoading ? loadingText : children;\n\tconst isSimpleText = typeof content === 'string' || typeof content === 'number' || typeof content === 'bigint';\n\n\treturn (\n\t\t<>\n\t\t\t{!!isLoading && (\n\t\t\t\t<Loader2\n\t\t\t\t\tclassName={cn(styles.icon, styles.spinner)}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!!Icon && iconPosition === 'left' && !isLoading && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName={styles.icon}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{isSimpleText ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{content}\n\t\t\t\t</Text>\n\t\t\t) : content}\n\t\t\t{!!Icon && iconPosition === 'right' && !isLoading && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName={styles.icon}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nconst LoaderButton = React.forwardRef<HTMLButtonElement, LoaderButtonProps>(\n\t(\n\t\t{\n\t\t\tloading = false,\n\t\t\thandlesLoading,\n\t\t\tstrings: stringsProp,\n\t\t\ticon: Icon,\n\t\t\ticonPosition = 'left',\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst { isLoading, strings } = useLoaderButtonState({\n\t\t\tloading,\n\t\t\thandlesLoading,\n\t\t\tstrings: stringsProp,\n\t\t});\n\n\t\treturn (\n\t\t\t<BaseButton\n\t\t\t\t{...props}\n\t\t\t\tref={ref}\n\t\t\t\tdisabled={disabled || isLoading}\n\t\t\t\taria-busy={isLoading || undefined}\n\t\t\t\tclassName={cn('loader-button--component', isLoading && styles.isLoading, className)}\n\t\t\t>\n\t\t\t\t<LoaderButtonContent\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tloadingText={strings.loading}\n\t\t\t\t\ticon={Icon}\n\t\t\t\t\ticonPosition={iconPosition}\n\t\t\t\t\tsize={props.size}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</LoaderButtonContent>\n\t\t\t</BaseButton>\n\t\t);\n\t},\n);\n\nLoaderButton.displayName = 'LoaderButton';\n\nexport { LoaderButton };\n","import * as React from 'react';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '../display/tooltip';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport { BaseButton, type BaseButtonProps } from './base-button';\n\nexport interface TooltipButtonProps extends BaseButtonProps {\n\twithTooltip: string;\n}\n\nconst TooltipButton = React.forwardRef<HTMLButtonElement, TooltipButtonProps>(\n\t({ withTooltip, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger\n\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\tconst mergedProps = mergeProps<'button'>(\n\t\t\t\t\t\t\tprops as unknown as React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\t\t\t\t\t\ttriggerProps as React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\t\t\t\t\t) as unknown as BaseButtonProps;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<BaseButton\n\t\t\t\t\t\t\t{...mergedProps}\n\t\t\t\t\t\t\taria-label={props['aria-label'] ?? withTooltip}\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\tclassName={cn('tooltip-button--component', mergedProps.className)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</BaseButton>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<TooltipContent className=\"px-2 py-1 text-pxs\">\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"text-inherit\">{withTooltip}</Text>\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t);\n\t},\n);\n\nTooltipButton.displayName = 'TooltipButton';\n\nexport { TooltipButton };\n","/**\n * Button — everyday action/link wrapper around the base button presentation.\n *\n * Action mode renders one native `<button>`. Supplying `href` switches to one\n * native `<a>` with the same provider-driven variants, sizes, loading state,\n * and optional tooltip. The link path deliberately does not use Base UI\n * Button's non-native `render` mode because that mode adds button semantics to\n * the replacement element; navigation keeps native link semantics instead.\n */\nimport * as React from 'react';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '../display/tooltip';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport {\n\tBaseButton,\n\tBaseButtonLink,\n\ttype BaseButtonLinkProps,\n\ttype BaseButtonProps,\n} from './base-button';\nimport {\n\tLoaderButton,\n\tLoaderButtonContent,\n\ttype LoaderButtonProps,\n\tuseLoaderButtonState,\n} from './loader-button';\nimport { TooltipButton } from './tooltip-button';\n\ntype ButtonEnhancementProps = Pick<\n\tLoaderButtonProps,\n\t'loading' | 'handlesLoading' | 'strings'\n> & {\n\t/** Tooltip copy shown on hover and focus. Supply it for icon-only buttons. */\n\twithTooltip?: string;\n};\n\ntype ButtonAnchorAttributes = Pick<\n\tReact.AnchorHTMLAttributes<HTMLAnchorElement>,\n\t| 'download'\n\t| 'hrefLang'\n\t| 'media'\n\t| 'ping'\n\t| 'referrerPolicy'\n\t| 'rel'\n\t| 'target'\n>;\n\n/** Shared all-mode props for generic wrappers that accept either action mode or link mode. */\nexport type ButtonProps = BaseButtonProps &\n\tButtonEnhancementProps &\n\tButtonAnchorAttributes & {\n\t\t/** Destination for the entry, when it navigates. */\n\t\thref?: string;\n\t};\n\n/** Precise props for consumers that explicitly model a navigation button. */\nexport type ButtonLinkProps = Omit<BaseButtonLinkProps, 'href' | 'type'> &\n\tButtonEnhancementProps & {\n\t\t/** Destination for the entry, when it navigates. */\n\t\thref: string;\n\t};\n\n/** Precise props for consumers that explicitly model an action button. */\nexport type ButtonActionProps = BaseButtonProps &\n\tButtonEnhancementProps & {\n\t\t/** Destination for the entry, when it navigates. */\n\t\thref?: undefined;\n\t\tdownload?: never;\n\t\threfLang?: never;\n\t\tmedia?: never;\n\t\tping?: never;\n\t\treferrerPolicy?: never;\n\t\trel?: never;\n\t\ttarget?: never;\n\t};\n\nfunction usesLoaderPath({\n\tloading,\n\thandlesLoading,\n\tstrings,\n}: ButtonEnhancementProps) {\n\treturn (\n\t\tloading === true ||\n\t\tBoolean(handlesLoading) ||\n\t\tstrings !== undefined\n\t);\n}\n\nconst LoadingButtonLink = React.forwardRef<HTMLAnchorElement, ButtonLinkProps>(\n\t(\n\t\t{\n\t\t\tloading,\n\t\t\thandlesLoading,\n\t\t\tstrings,\n\t\t\ticon,\n\t\t\ticonPosition = 'left',\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\tsize,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst loader = useLoaderButtonState({\n\t\t\tloading,\n\t\t\thandlesLoading,\n\t\t\tstrings,\n\t\t});\n\n\t\treturn (\n\t\t\t<BaseButtonLink\n\t\t\t\t{...props}\n\t\t\t\tref={ref}\n\t\t\t\tsize={size}\n\t\t\t\tdisabled={disabled || loader.isLoading}\n\t\t\t\taria-busy={loader.isLoading || undefined}\n\t\t\t\tclassName={cn('loader-button--component', className)}\n\t\t\t>\n\t\t\t\t<LoaderButtonContent\n\t\t\t\t\tisLoading={loader.isLoading}\n\t\t\t\t\tloadingText={loader.strings.loading}\n\t\t\t\t\ticon={icon}\n\t\t\t\t\ticonPosition={iconPosition}\n\t\t\t\t\tsize={size}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</LoaderButtonContent>\n\t\t\t</BaseButtonLink>\n\t\t);\n\t},\n);\n\nLoadingButtonLink.displayName = 'LoadingButtonLink';\n\nconst ButtonLink = React.forwardRef<HTMLAnchorElement, ButtonLinkProps>(\n\t({ withTooltip: _withTooltip, ...props }, ref) => {\n\t\tif (usesLoaderPath(props)) {\n\t\t\treturn <LoadingButtonLink ref={ref} {...props} />;\n\t\t}\n\n\t\tconst {\n\t\t\tloading: _loading,\n\t\t\thandlesLoading: _handlesLoading,\n\t\t\tstrings: _strings,\n\t\t\t...linkProps\n\t\t} = props;\n\t\treturn <BaseButtonLink ref={ref} {...linkProps} />;\n\t},\n);\n\nButtonLink.displayName = 'ButtonLink';\n\nfunction toLinkProps(\n\tprops: Omit<\n\t\tButtonProps,\n\t\t'href' | 'withTooltip' | 'loading' | 'handlesLoading' | 'strings'\n\t>,\n): Omit<ButtonLinkProps, 'href' | keyof ButtonEnhancementProps> {\n\tconst {\n\t\ttype: _type,\n\t\tform: _form,\n\t\tformAction: _formAction,\n\t\tformEncType: _formEncType,\n\t\tformMethod: _formMethod,\n\t\tformNoValidate: _formNoValidate,\n\t\tformTarget: _formTarget,\n\t\tname: _name,\n\t\tvalue: _value,\n\t\tnativeButton: _nativeButton,\n\t\tfocusableWhenDisabled: _focusableWhenDisabled,\n\t\trender: _render,\n\t\t...linkProps\n\t} = props;\n\n\treturn linkProps as unknown as Omit<\n\t\tButtonLinkProps,\n\t\t'href' | keyof ButtonEnhancementProps\n\t>;\n}\n\nconst ButtonImplementation = React.forwardRef<\n\tHTMLButtonElement | HTMLAnchorElement,\n\tButtonProps\n>(\n\t(\n\t\t{\n\t\t\thref,\n\t\t\twithTooltip,\n\t\t\tloading,\n\t\t\thandlesLoading,\n\t\t\tstrings,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tif (href !== undefined) {\n\t\t\tconst linkProps = toLinkProps(props);\n\t\t\tconst link = (\n\t\t\t\t<ButtonLink\n\t\t\t\t\t{...linkProps}\n\t\t\t\t\tref={ref as React.ForwardedRef<HTMLAnchorElement>}\n\t\t\t\t\thref={href}\n\t\t\t\t\tloading={loading}\n\t\t\t\t\thandlesLoading={handlesLoading}\n\t\t\t\t\tstrings={strings}\n\t\t\t\t\taria-label={props['aria-label'] ?? withTooltip}\n\t\t\t\t\tclassName={cn('button--component', linkProps.className)}\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tif (withTooltip) {\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger render={link} />\n\t\t\t\t\t\t<TooltipContent className=\"px-2 py-1 text-pxs\">\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"text-inherit\">{withTooltip}</Text>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn link;\n\t\t}\n\n\t\tconst {\n\t\t\tdownload: _download,\n\t\t\threfLang: _hrefLang,\n\t\t\tmedia: _media,\n\t\t\tping: _ping,\n\t\t\treferrerPolicy: _referrerPolicy,\n\t\t\trel: _rel,\n\t\t\ttarget: _target,\n\t\t\t...baseProps\n\t\t} = props;\n\t\tconst actionProps = {\n\t\t\t...baseProps,\n\t\t\tclassName: cn('button--component', baseProps.className),\n\t\t};\n\n\t\tif (usesLoaderPath({ loading, handlesLoading, strings })) {\n\t\t\tif (withTooltip) {\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t<LoaderButton\n\t\t\t\t\t\t\t\t\t{...actionProps}\n\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\tref={ref as React.ForwardedRef<HTMLButtonElement>}\n\t\t\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\t\t\thandlesLoading={handlesLoading}\n\t\t\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t\t\t\taria-label={baseProps['aria-label'] ?? withTooltip}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t\tactionProps.className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{baseProps.children}\n\t\t\t\t\t\t\t\t</LoaderButton>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TooltipContent className=\"px-2 py-1 text-pxs\">\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"text-inherit\">{withTooltip}</Text>\n\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<LoaderButton\n\t\t\t\t\t{...actionProps}\n\t\t\t\t\tref={ref as React.ForwardedRef<HTMLButtonElement>}\n\t\t\t\t\tloading={loading}\n\t\t\t\t\thandlesLoading={handlesLoading}\n\t\t\t\t\tstrings={strings}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (withTooltip) {\n\t\t\treturn (\n\t\t\t\t<TooltipButton\n\t\t\t\t\t{...actionProps}\n\t\t\t\t\tref={ref as React.ForwardedRef<HTMLButtonElement>}\n\t\t\t\t\twithTooltip={withTooltip}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseButton\n\t\t\t\t{...actionProps}\n\t\t\t\tref={ref as React.ForwardedRef<HTMLButtonElement>}\n\t\t\t/>\n\t\t);\n\t},\n);\n\ntype ButtonComponent = {\n\t(props: ButtonLinkProps & React.RefAttributes<HTMLAnchorElement>): React.ReactElement | null;\n\t(props: ButtonActionProps & React.RefAttributes<HTMLButtonElement>): React.ReactElement | null;\n\t(\n\t\tprops: ButtonProps &\n\t\t\tReact.RefAttributes<HTMLButtonElement | HTMLAnchorElement>,\n\t): React.ReactElement | null;\n\tdisplayName?: string;\n};\n\nconst Button = ButtonImplementation as ButtonComponent;\nButton.displayName = 'Button';\n\nexport { Button };\n","/**\n * TextButton — link-styled button (underline, primary tint, no padding).\n *\n * Wraps `BaseButton` with `tone=\"primary\" buttonStyle=\"ghost\"`. Routine\n * usage omits `size`; the shared component scale controls typography.\n */\nimport * as React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { BaseButton } from './base-button';\n\nexport type TextButtonSize = ComponentScale;\n\nconst sizeClasses: Record<TextButtonSize, string> = {\n\tsm: 'text-pxs leading-none h-auto px-0',\n\tmd: 'text-pxs leading-none h-auto px-0',\n\tlg: 'text-sm leading-none h-auto px-0',\n};\n\nexport type TextButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> & {\n\t/** Size preset. */\n\tsize?: TextButtonSize;\n\tchildren: React.ReactNode;\n};\n\nexport const TextButton = React.forwardRef<HTMLButtonElement, TextButtonProps>(\n\t({ className, type = 'button', size, disabled, ...props }, ref) => {\n\t\tconst { defaultScale } = useDensityConfig();\n\t\tconst resolvedSize = resolveComponentScale(size, defaultScale);\n\t\treturn (\n\t\t\t<BaseButton\n\t\t\t\tref={ref}\n\t\t\t\ttype={type}\n\t\t\t\ttone=\"primary\"\n\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\tsize={resolvedSize}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={cn('text-button--component',\n\t\t\t\t\t// `ghost` supplies the transparent resting state and the accent\n\t\t\t\t\t// colour, but its hover tint assumes a padded hit area. At\n\t\t\t\t\t// `px-0 h-auto` that tint paints a bare rectangle around the\n\t\t\t\t\t// glyphs, so the underline carries hover on its own. Both\n\t\t\t\t\t// variants are cleared: the light and dark tints are separate\n\t\t\t\t\t// declarations, so overriding one leaves the other painting.\n\t\t\t\t\t'hover:bg-transparent dark:hover:bg-transparent',\n\t\t\t\t\t'inline-flex items-center justify-center underline decoration-border underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current',\n\t\t\t\t\t'text-primary-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\t\t'disabled:pointer-events-none disabled:opacity-50',\n\t\t\t\t\tsizeClasses[resolvedSize],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nTextButton.displayName = 'TextButton';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,IAAMuC,MAAuB,EAAE,iBAAc,iBAA8D,CAAC,MAC1GC,MAAgB,aAAa,0BAA0B;AAEzD,SAASxC,GAAY,EACnB,cACA,iBAAc,cACd,GAAG0C,KACyE;CAC5E,OACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,oBAAkBF;EAClB,WAAWV,EAAG,2BAA2Ba,CAAS;EAClD,GAAID;CACL,CAAA;AAEL;AAEA,SAASzC,GAAgB,EACvB,cACA,WACA,GAAGyC,KAC+B;CAClC,OAAOG,GAAU;EACf,gBAAgB;EAChB,OAAOC,EACL,EACE,WAAWhB,EAAG,gCAAgCa,CAAS,EACzD,GACAD,CACF;EACA;EACA,OAAO,EACL,MAAM,oBACR;CACF,CAAC;AACH;AAEA,SAASxC,GAAqB,EAC5B,cACA,iBAAc,YACd,GAAGwC,KACsC;CACzC,OACE,kBAACX,GAAD;EACE,aAAU;EACG;EACb,WAAWD,EAAG,qCAAqCa,CAAS;EAC5D,GAAID;CACL,CAAA;AAEL;;;AC1DA,IAAaM,IAAqB;CACjC,MAAM;CACN,MAAM;CACN,WAAW;AACZ;;;AC4BA,SAASC,GAAY,EAAE,cAAW,GAAGP,KAA2B;CAC/D,OACC,kBAACvC,IAAD;EAAsB,WAAW2B,EAAG,2BAA2B1B,EAAO,MAAMuC,CAAS;EAAG,GAAID;CAAQ,CAAA;AAEtG;AAEA,SAASQ,EAAgB,GAAyD;CACjF,OAAO,OAAOC,KAAY,YAAY,OAAOA,KAAY,YAAY,OAAOA,KAAY;AACzF;AAGA,SAASC,EAAgB,EAAE,aAAU,cAAW,GAAGV,KAA+B;CACjF,OACC,kBAACrC,IAAD;EAA0B,WAAWyB,EAAG,gCAAgC1B,EAAO,MAAMuC,CAAS;EAAG,GAAID;EACnG,UAAAQ,EAAgBG,CAAQ,IACxB,kBAACrB,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,QAAO;GAAS,YAAW;GAAQ,WAAU;GAC3E;EACI,CAAA,IAENqB;CAEwB,CAAA;AAE5B;AAGA,SAASC,EAAqB,EAAE,cAAW,GAAGZ,KAAoC;CACjF,OACC,kBAACpC,IAAD;EACC,WAAWwB,EAAG,qCAAqC1B,EAAO,WAAWuC,CAAS;EAC9E,GAAID;CACJ,CAAA;AAEH;;;AC1DA,SAASnC,EAAgB,EACvB,WAAQ,GACR,kBACA,GAAGmC,KAC4D;CAC/D,OACE,kBAAClC,EAAiB,UAAlB;EACE,aAAU;EACV,OAAOiD,KAAiBC;EACxB,GAAIhB;CACL,CAAA;AAEL;AAEA,SAASjC,EAAQ,EAAE,GAAGiC,KAAsC;CAC1D,OACE,kBAACnC,GAAD,EAAA,UACE,kBAACC,EAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAIkC;CAAQ,CAAA,EACxC,CAAA;AAErB;AAEA,SAAShC,EAAe,EACtB,aAAU,IACV,WACA,aACA,GAAGgC,KACsD;CACzD,IAAMmB,IAAaC,IAAU,kBAAC3B,GAAD,CAAO,CAAA,IAAI,KAAA,GAClC4B,IAAuD,OAAOC,KAAW,eACzE,GAAa,MAAU;EACzB,IAAM,EAAE,cAAcC,GAAe,GAAGC,MAASC;EAEjD,OAAOH,EAAOE,GAA4BE,CAAK;CACjD,KACEJ;CAEJ,OACE,kBAACxD,EAAiB,SAAlB;EACE,aAAU;EACV,QAAQqD,KAAcE;EACtB,GAAIrB;EAEH;CACuB,CAAA;AAE9B;AAEA,SAAS/B,EAAe,EACtB,cACA,cACA,UAAO,OACP,gBAAa,GACb,WAAQ,UACR,iBAAc,GACd,oBAAiBsB,GACjB,aACA,GAAGS,KAKuC;CAC1C,IAAM4B,IAAoBC,EAAwBC,CAAS;CAC3D,OACE,kBAAChE,EAAiB,QAAlB;EAAyB,WAAW8D;EAClC,UAAA,kBAAC9D,EAAiB,YAAlB;GACkB;GACT;GACM;GACP;GACM;GACZ,WAAU;GAEV,UAAA,kBAACA,EAAiB,OAAlB;IACE,aAAU;IACV,WAAWsB,EACXI,EAAc,OACZ,gHACAS,CACF;IACA,GAAID;IAPN,UAAA,CASGW,GACD,kBAAC7C,EAAiB,OAAlB,EAAwB,WAAU,6hBAA8hB,CAAA,CAC1iB;;EACG,CAAA;CACN,CAAA;AAE7B;;;AChFA,IAAMiE,IAA4BC,EAAuE,KAAA,CAAS,GAE5GC,IAA+BD,EAAc,EAAK;AAGxD,SAAgB9D,EAAQ,GAAqB;CAC5C,IAAMiE,IAAoBC,EAAWH,CAA4B,GAC3DI,IAAcC,EAAM,GACpB,CAACC,GAAeC,KAAoBC,EAASJ,CAAW,GACxDK,IAAO,kBAACX,EAA0B,UAA3B;EAAoC,OAAO;GAAE,IAAIQ;GAAe,OAAOC;EAAiB;EAAG,UAAA,kBAACrE,EAAY,MAAb;GAAkB,aAAU;GAAU,GAAI6B;EAAQ,CAAA;CAAqC,CAAA;CAE/L,OAAOmC,IAAoBO,IAAO,kBAACtE,GAAD,EAAA,UAA2BsE,EAA+B,CAAA;AAC7F;AAGA,SAAgBC,EAAgB,GAA6B;CAC5D,OACC,kBAACV,EAA6B,UAA9B;EAAuC,OAAA;EACtC,UAAA,kBAAC7D,GAAD,EAA0B,GAAI4B,EAAQ,CAAA;CACA,CAAA;AAEzC;AAGA,SAAgB4C,EAAe,EAAE,cAAW,GAAG5C,KAA8B;CAE5E,IAAMuC,IADcH,EAAWL,CACT,CAAA,EAAa;CACnC,OACC,kBAAC1D,GAAD;EACC,WAAWe,EAAG,oDAAoDa,CAAS;EAC3E,GAAID;EACJ,oBAAkB,CAACA,EAAM,qBAAqBuC,CAAa,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,KAAA;CAC1F,CAAA;AAEH;AAGA,SAAgBM,EAAe,EAAE,aAAU,cAAW,GAAG7C,KAA8B;CACtF,IAAM8C,IAAcV,EAAWL,CAAyB,GAClDQ,IAAgBvC,EAAM,MAAM8C,GAAa;CAC/C,QAAsB;EAAE,AAAIP,KAAeO,GAAa,MAAMP,CAAa;CAAG,GAAG,CAACA,GAAeO,GAAa,KAAK,CAAC;CAEpH,IAAMrC,IADe,OAAOE,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa,WAEvG,kBAACrB,GAAD;EACC,KAAI;EACJ,MAAK;EAEL,YAAW;EACX,WAAU;EAET;CACI,CAAA,IACHqB;CAEL,OACC,kBAACrC,GAAD;EACC,IAAIiE;EACJ,MAAK;EACL,WAAWnD,EACV,mGACAa,CACD;EACA,GAAID;EAEH,UAAAS;CACuB,CAAA;AAE3B;AAEA,EAAQ,cAAc,WACtB,EAAgB,cAAc,mBAC9B,EAAe,cAAc,kBAC7B,EAAe,cAAc;;;ACtF7B,IAAasC,IAAiBC,GAAI,qcAAqc;CACre,UAAU;EACR,MAAM;GAAC,SAAS;GAAI,SAAS;GAAI,WAAW;GAAI,aAAa;GAAI,SAAS;GAAI,SAAS;GAAI,MAAM;EAAE;EACnG,aAAa;GACX,OAAO;GACP,SAAS;GACT,OAAO;EACT;EAGA,MAAM;GAAC,IAAI;GAAkD,IAAI;GAA4C,IAAI;EAA6C;EAC9J,UAAU;GAAC,MAAM;GAAQ,OAAO;EAAE;EAClC,WAAW;GAAC,MAAM;GAAU,OAAO;EAAE;CACvC;CACA,kBAAkB;EAChB;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAoC;EACnF;GAAC,MAAM;GAAW,aAAa;GAAW,OAAO;EAAuC;EACxF;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAqB;EACpE;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAA+B;EAC9E;GAAC,MAAM;GAAW,aAAa;GAAW,OAAO;EAAsC;EACvF;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAiB;EAChE;GAAC,MAAM;GAAa,aAAa;GAAS,OAAO;EAAwC;EACzF;GAAC,MAAM;GAAa,aAAa;GAAW,OAAO;EAA4C;EAC/F;GAAC,MAAM;GAAa,aAAa;GAAS,OAAO;EAAqG;EACtJ;GAAC,MAAM;GAAe,aAAa;GAAS,OAAO;EAA4C;EAC/F;GAAC,MAAM;GAAe,aAAa;GAAW,OAAO;EAAwC;EAC7F;GAAC,MAAM;GAAe,aAAa;GAAS,OAAO;EAAkB;EACrE;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAoC;EACnF;GAAC,MAAM;GAAW,aAAa;GAAW,OAAO;EAAgC;EACjF;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAc;EAC7D;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAoC;EACnF;GAAC,MAAM;GAAW,aAAa;GAAW,OAAO;EAAuC;EACxF;GAAC,MAAM;GAAW,aAAa;GAAS,OAAO;EAAqB;EACpE;GAAC,MAAM;GAAQ,aAAa;GAAS,OAAO;EAA8B;EAC1E;GAAC,MAAM;GAAQ,aAAa;GAAW,OAAO;EAA0B;EACxE;GAAC,MAAM;GAAQ,aAAa;GAAS,OAAO;EAAW;EACvD;GAAC,MAAM;GAAM,UAAU;GAAM,OAAO;EAAgB;EACpD;GAAC,MAAM;GAAM,UAAU;GAAM,OAAO;EAAa;EACjD;GAAC,MAAM;GAAM,UAAU;GAAM,OAAO;EAAgB;CACtD;CACA,iBAAiB;EAAC,MAAM;EAAW,aAAa;EAAS,MAAM;EAAM,UAAU;EAAO,WAAW;CAAK;AACxG,CAAC;;;ACtBD,SAASC,EAAgB,EAAC,SAAM,gBAAa,SAAM,cAAW,IAAO,eAAY,MAA2B;CAC1G,IAAMC,IAAWhE,EAAgB,GAC3B,EAAC,oBAAgBC,EAAiB,GAClCgE,IAAW;EAAC,MAAMC,KAAQF,EAAS;EAAa,aAAaG,KAAeH,EAAS;EAAoB,MAAMjE,EAAsBqE,GAAMC,CAAY;EAAG;EAAU;CAAS;CACnL,OAAO;EACL,GAAGJ;EACH,SAASJ,EAAeI,CAAQ;EAChC,YAAY;GAAC,aAAa;GAAU,aAAaA,EAAS;GAAM,cAAcA,EAAS;GAAa,aAAaA,EAAS;GAAM,kBAAkBK,KAAY,KAAA;GAAW,mBAAmBC,KAAa,KAAA;EAAS;CACpN;AACF;AAEA,SAASC,EAAQ,EAAC,MAAMC,GAAM,kBAAe,QAAQ,eAA0E;CAC7H,IAAMC,IAAQD,KAAQ,kBAACA,GAAD;EAAM,WAAU;EAAqB,eAAY;CAAQ,CAAA;CAC/E,OAAO,kBAAApF,GAAA,EAAA,UAAA;EAAGsF,MAAiB,UAAUD;EAAOjD;EAAUkD,MAAiB,WAAWD;CAAQ,EAAA,CAAA;AAC5F;AAEA,IAAaE,IAAaC,EAAyC,SAAoB,EAAC,SAAM,gBAAa,SAAM,aAAU,cAAW,SAAM,iBAAc,cAAW,aAAU,GAAG/D,KAAQ,GAAK;CAC7L,IAAMgE,IAAef,EAAgB;EAAC;EAAM;EAAa;EAAM;EAAU;EAAW;CAAQ,CAAC;CAC7F,OAAO,kBAACzE,GAAD;EAAiB,GAAIwB;EAAO,GAAIgE,EAAa;EAAiB;EAAK,YAAY,MAAU5E,EAAG,0BAA0B4E,EAAa,SAAS,OAAO/D,KAAc,aAAaA,EAAUyB,CAAK,IAAIzB,CAAS;EAAG,UAAA,kBAACyD,GAAD;GAAe;GAAoB;GAAe;EAAkB,CAAA;CAAkB,CAAA;AAC5S,CAAC,GAGYO,IAAiBF,EAAmD,SAAwB,EAAC,SAAM,gBAAa,SAAM,aAAU,cAAW,SAAM,iBAAc,cAAW,aAAU,cAAW,IAAO,aAAU,YAAS,QAAK,WAAQ,GAAG/D,KAAQ,GAAK;CACjQ,IAAMgE,IAAef,EAAgB;EAAC;EAAM;EAAa;EAAM;EAAU;EAAW;CAAQ,CAAC,GACvFiB,IAAY,IAAI,IAAIC,GAAK,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC;CAE3D,OADIC,GAAQ,YAAY,MAAM,aAAgBF,EAAU,QAAMA,EAAU,IAAI,YAAY,GAAGA,EAAU,IAAI,UAAU,IAC5G,kBAAC,KAAD;EAAG,GAAIlE;EAAO,GAAIgE,EAAa;EAAiB;EAAa;EAAQ,KAAKE,EAAU,OAAO,CAAC,GAAGA,CAAS,CAAC,CAAC,KAAK,GAAG,IAAI,KAAA;EAAW,iBAAeG,KAAYrE,EAAM,oBAAoB,KAAA;EAAW,UAAUqE,IAAW,KAAKC;EAAU,WAAWlF,EAAG,0BAA0B4E,EAAa,SAAS/D,CAAS;EAAG,UAAU,MAAU;GACxU,IAAIoE,GAAU;IAAyB,AAAxBE,EAAM,eAAe,GAAGA,EAAM,gBAAgB;IAAG;GAAO;GACvE,IAAUA,CAAK;EACjB;EAAG,UAAA,kBAACb,GAAD;GAAe;GAAoB;GAAe;EAAkB,CAAA;CAAI,CAAA;AAC7E,CAAC,GCnDYc,IAAgB;CAC5B,MAAM;CACN,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,YAAY;CACZ,aAAa;CACb,WAAW;CACX,YAAY;CACZ,cAAc;CACd,YAAY;CACZ,MAAM;CACN,SAAS;CACT,aAAa;CACb,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,aAAa;CACb,aAAa;CACb,UAAU;AACX,GCPaC,KAAoD;CAChE,SAAS;CACT,WAAW;AACZ;AAoBA,SAAgBC,EAAqB,EACpC,aAAU,IACV,mBACA,SAASC,KACsB;CAC/B,IAAMC,IAAUC,EAAWJ,IAA6BE,CAAW,GAC7D,CAACG,GAAWC,KAAgBtC,EAASuC,CAAO,GAC5C,GAAGC,KAAyBxC,EAAS,EAAK;CA4BhD,OA1BAyC,QAAgB;EACf,AAAIF,KACHD,EAAa,EAAI;CAEnB,GAAG,CAACC,CAAO,CAAC,GAEZE,QAAgB;EACf,AAAIC,KAAkBH,KACrBD,EAAa,EAAI;CAEnB,GAAG,CAACC,GAASG,CAAc,CAAC,GAE5BD,QAAgB;EACf,IAAIE;EAQJ,OAPI,CAACJ,KAAWF,MACfG,EAAsB,EAAI,GAC1B,IAAY,iBAAiB;GAE5B,AADAF,EAAa,EAAK,GAClBE,EAAsB,EAAK;EAC5B,GAAG,GAAG,UAEM;GACZ,AAAIG,KAAW,aAAaA,CAAS;EACtC;CACD,GAAG,CAACJ,GAASF,CAAS,CAAC,GAEhB;EAAE;EAAW;CAAQ;AAC7B;AAWA,SAAgBO,EAAoB,EACnC,cACA,gBACA,MAAM1B,GACN,kBAAe,QACf,MAAM2B,GACN,eAC4B;CAC5B,IAAM7E,IAAUqE,IAAYS,IAAc5E,GACpC6E,IAAe,OAAO/E,KAAY,YAAY,OAAOA,KAAY,YAAY,OAAOA,KAAY;CAEtG,OACC,kBAAAhC,GAAA,EAAA,UAAA;EACE,CAAC,CAACqG,KACF,kBAACW,IAAD;GACC,WAAWrG,EAAGV,EAAO,MAAMA,EAAO,OAAO;GACzC,eAAY;EACZ,CAAA;EAED,CAAC,CAACiF,KAAQE,MAAiB,UAAU,CAACiB,KACtC,kBAACnB,GAAD;GACC,WAAWjF,EAAO;GAClB,eAAY;EACZ,CAAA;EAED8G,IACA,kBAAClG,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,QAAO;GAAS,YAAW;GAAO,WAAU;GAC1E,UAAAmB;EACI,CAAA,IACHA;EACH,CAAC,CAACkD,KAAQE,MAAiB,WAAW,CAACiB,KACvC,kBAACnB,GAAD;GACC,WAAWjF,EAAO;GAClB,eAAY;EACZ,CAAA;CAED,EAAA,CAAA;AAEJ;AAEA,IAAMgH,IAAe/G,EAAM,YAEzB,EACC,aAAU,IACV,mBACA,SAASgG,GACT,MAAMhB,GACN,kBAAe,QACf,aACA,aACA,cACA,GAAG3D,KAEJ,MACI;CACJ,IAAM,EAAE,cAAW,eAAY0E,EAAqB;EACnD;EACA;EACA,SAASC;CACV,CAAC;CAED,OACC,kBAACb,GAAD;EACC,GAAI9D;EACC;EACL,UAAUqE,KAAYS;EACtB,aAAWA,KAAa,KAAA;EACxB,WAAW1F,EAAG,4BAA4B0F,KAAapG,EAAO,WAAWuB,CAAS;EAElF,UAAA,kBAACoF,GAAD;GACY;GACX,aAAaT,EAAQ;GACrB,MAAMjB;GACQ;GACd,MAAM3D,EAAM;GAEX;EACmB,CAAA;CACV,CAAA;AAEd,CACD;AAEA,EAAa,cAAc;;;ACzJ3B,IAAM2F,IAAgB/G,EAAM,YAC1B,EAAE,gBAAa,aAAU,GAAGoB,KAAS,MAEpC,kBAACnB,GAAD,EAAA,UAAA,CACC,kBAAC+D,GAAD,EACC,SAAS,MAAiB;CACzB,IAAMgD,IAAcxF,EACnBJ,GACA6F,CACD;CACA,OACC,kBAAC/B,GAAD;EACA,GAAI8B;EACJ,cAAY5F,EAAM,iBAAiB8F;EAC9B;EACL,WAAW1G,EAAG,6BAA6BwG,EAAY,SAAS;EAE/D;CACU,CAAA;AAEb,EACA,CAAA,GACD,kBAAC/C,GAAD;CAAgB,WAAU;CACzB,UAAA,kBAACvD,GAAD;EAAM,KAAI;EAAO,MAAK;EAAU,WAAU;EAAgB,UAAAwG;CAAkB,CAAA;AAC7D,CAAA,CACR,EAAA,CAAA,CAGZ;AAEA,EAAc,cAAc;;;ACkC5B,SAASC,EAAe,EACvB,YACA,mBACA,cAC0B;CAC1B,OACCf,MAAY,MACZ,EAAQG,KACRP,MAAY,KAAA;AAEd;AAEA,IAAMoB,IAAoBlH,EAAM,YAE9B,EACC,YACA,mBACA,YACA,SACA,kBAAe,QACf,aACA,aACA,SACA,cACA,GAAGkB,KAEJ,MACI;CACJ,IAAMiG,IAASvB,EAAqB;EACnC;EACA;EACA;CACD,CAAC;CAED,OACC,kBAACT,GAAD;EACC,GAAIjE;EACC;EACC;EACN,UAAUqE,KAAY4B,EAAO;EAC7B,aAAWA,EAAO,aAAa,KAAA;EAC/B,WAAW7G,EAAG,4BAA4Ba,CAAS;EAEnD,UAAA,kBAACoF,GAAD;GACC,WAAWY,EAAO;GAClB,aAAaA,EAAO,QAAQ;GACtB;GACQ;GACR;GAEL;EACmB,CAAA;CACN,CAAA;AAElB,CACD;AAEA,EAAkB,cAAc;AAEhC,IAAMC,IAAapH,EAAM,YACvB,EAAE,aAAaqH,GAAc,GAAGnG,KAAS,MAAQ;CACjD,IAAI+F,EAAe/F,CAAK,GACvB,OAAO,kBAACgG,GAAD;EAAwB;EAAK,GAAIhG;CAAQ,CAAA;CAGjD,IAAM,EACL,SAASoG,GACT,gBAAgBC,GAChB,SAASC,GACT,GAAGC,MACAvG;CACJ,OAAO,kBAACiE,GAAD;EAAqB;EAAK,GAAIsC;CAAY,CAAA;AAClD,CACD;AAEA,EAAW,cAAc;AAEzB,SAASC,GACR,GAI+D;CAC/D,IAAM,EACL,MAAMC,GACN,MAAMC,GACN,YAAYC,GACZ,aAAaC,GACb,YAAYC,GACZ,gBAAgBC,GAChB,YAAYC,GACZ,MAAMC,GACN,OAAOC,GACP,cAAc1F,GACd,uBAAuB2F,GACvB,QAAQC,GACR,GAAGZ,MACAvG;CAEJ,OAAOuG;AAIR;AAmIA,IAAMa,IAjIuBtI,EAAM,YAKjC,EACC,SACA,gBACA,YACA,mBACA,YACA,GAAGkB,KAEJ,MACI;CACJ,IAAIqH,MAAS,KAAA,GAAW;EACvB,IAAMd,IAAYC,GAAYxG,CAAK,GAC7BsH,IACL,kBAACpB,GAAD;GACC,GAAIK;GACC;GACC;GACG;GACO;GACP;GACT,cAAYvG,EAAM,iBAAiB8F;GACnC,WAAW1G,EAAG,qBAAqBmH,EAAU,SAAS;EACtD,CAAA;EAcF,OAXIT,IAEF,kBAAC/G,GAAD,EAAA,UAAA,CACC,kBAAC6D,GAAD,EAAgB,QAAQ0E,EAAO,CAAA,GAC/B,kBAACzE,GAAD;GAAgB,WAAU;GACzB,UAAA,kBAACvD,GAAD;IAAM,KAAI;IAAO,MAAK;IAAU,WAAU;IAAgB,UAAAwG;GAAkB,CAAA;EAC7D,CAAA,CACR,EAAA,CAAA,IAIJwB;CACR;CAEA,IAAM,EACL,UAAUC,GACV,UAAUC,GACV,OAAOC,GACP,MAAMC,GACN,gBAAgBC,GAChB,KAAKC,GACL,QAAQC,GACR,GAAGC,MACA9H,GACE+H,IAAc;EACnB,GAAGD;EACH,WAAW1I,EAAG,qBAAqB0I,EAAU,SAAS;CACvD;CAqDA,OAnDI/B,EAAe;EAAE;EAAS;EAAgB;CAAQ,CAAC,IAClDD,IAEF,kBAAC/G,GAAD,EAAA,UAAA,CACC,kBAAC6D,GAAD,EACC,SAAS,MACR,kBAAC8C,GAAD;EACC,GAAIqC;EACJ,GAAIlC;EACC;EACI;EACO;EACP;EACT,cAAYiC,EAAU,iBAAiBhC;EACvC,WAAW1G,EACTyG,EAAwC,WACzCkC,EAAY,SACb;EAEC,UAAAD,EAAU;CACE,CAAA,EAEf,CAAA,GACD,kBAACjF,GAAD;EAAgB,WAAU;EACzB,UAAA,kBAACvD,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,WAAU;GAAgB,UAAAwG;EAAkB,CAAA;CAC7D,CAAA,CACR,EAAA,CAAA,IAKV,kBAACJ,GAAD;EACC,GAAIqC;EACC;EACI;EACO;EACP;CACT,CAAA,IAICjC,IAEF,kBAACH,GAAD;EACC,GAAIoC;EACC;EACQ;CACb,CAAA,IAKF,kBAACjE,GAAD;EACC,GAAIiE;EACC;CACL,CAAA;AAEH,CAac;AACf,EAAO,cAAc;;;AC5SrB,IAAMC,KAA8C;CACnD,IAAI;CACJ,IAAI;CACJ,IAAI;AACL,GAQaC,IAAajJ,EAAM,YAC9B,EAAE,cAAW,UAAO,UAAU,SAAM,aAAU,GAAGgB,KAAS,MAAQ;CAClE,IAAM,EAAE,oBAAiBb,EAAiB,GACpC+I,IAAejJ,EAAsBqE,GAAMC,CAAY;CAC7D,OACC,kBAACO,GAAD;EACM;EACC;EACN,MAAK;EACL,aAAY;EACZ,MAAMoE;EACI;EACV,WAAW9I,EAAG,0BAOb,kDACA,2JACA,2HACA,oDACA4I,GAAYE,IACZjI,CACD;EACA,GAAID;CACJ,CAAA;AAEH,CACD;AAEA,EAAW,cAAc"}
|
package/dist/chart-DVfcwQu6.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./utils-C2EKeIw3.js";
|
|
3
|
-
import { a as t } from "./typography-Cv8MT-82.js";
|
|
4
|
-
import { m as n } from "./primitives-DKPOGVpj.js";
|
|
5
|
-
import { t as r } from "./number-BNT_BIzJ.js";
|
|
6
|
-
import * as i from "react";
|
|
7
|
-
import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
8
|
-
import * as c from "recharts";
|
|
9
|
-
//#region src/components/base/chart/chart.tsx
|
|
10
|
-
var l = {
|
|
11
|
-
light: "",
|
|
12
|
-
dark: ".dark"
|
|
13
|
-
}, u = {
|
|
14
|
-
width: 320,
|
|
15
|
-
height: 200
|
|
16
|
-
}, d = i.createContext(null);
|
|
17
|
-
function f() {
|
|
18
|
-
let e = i.useContext(d);
|
|
19
|
-
if (!e) throw Error("useChart must be used within a <ChartContainer />");
|
|
20
|
-
return e;
|
|
21
|
-
}
|
|
22
|
-
function p({ id: t, className: n, children: r, config: a, initialDimension: l = u, ...f }) {
|
|
23
|
-
let p = i.useId(), h = `chart-${t ?? p.replace(/:/g, "")}`;
|
|
24
|
-
return /* @__PURE__ */ o(d.Provider, {
|
|
25
|
-
value: { config: a },
|
|
26
|
-
children: /* @__PURE__ */ s("div", {
|
|
27
|
-
"data-slot": "chart",
|
|
28
|
-
"data-chart": h,
|
|
29
|
-
className: e("chart--component flex aspect-video w-full min-w-0 justify-center text-xs", "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-axis-tick-label]:fill-muted-foreground [&_.recharts-cartesian-axis-tick-value]:fill-muted-foreground", "[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50", "[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border", "[&_.recharts-dot[stroke=\"#fff\"]]:stroke-transparent", "[&_.recharts-layer]:outline-hidden", "[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border", "[&_.recharts-radial-bar-background-sector]:fill-muted", "[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted", "[&_.recharts-reference-line_[stroke='#ccc']]:stroke-border", "[&_.recharts-sector]:outline-hidden", "[&_.recharts-sector[stroke=\"#fff\"]]:stroke-transparent", "[&_.recharts-surface]:outline-hidden", n),
|
|
30
|
-
...f,
|
|
31
|
-
children: [/* @__PURE__ */ o(m, {
|
|
32
|
-
id: h,
|
|
33
|
-
config: a
|
|
34
|
-
}), /* @__PURE__ */ o(c.ResponsiveContainer, {
|
|
35
|
-
initialDimension: l,
|
|
36
|
-
children: r
|
|
37
|
-
})]
|
|
38
|
-
})
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
function m({ id: e, config: t }) {
|
|
42
|
-
let n = Object.entries(t).filter(([, e]) => e.theme ?? e.color);
|
|
43
|
-
return n.length ? /* @__PURE__ */ o("style", { dangerouslySetInnerHTML: { __html: Object.entries(l).map(([t, r]) => `
|
|
44
|
-
${r} [data-chart=${e}] {
|
|
45
|
-
${n.map(([e, n]) => {
|
|
46
|
-
let r = n.theme?.[t] ?? n.color;
|
|
47
|
-
return r ? ` --color-${e}: ${r};` : null;
|
|
48
|
-
}).join("\n")}
|
|
49
|
-
}
|
|
50
|
-
`).join("\n") } }) : null;
|
|
51
|
-
}
|
|
52
|
-
var h = c.Tooltip;
|
|
53
|
-
function g({ active: c, payload: l, className: u, indicator: d = "dot", hideLabel: p = !1, hideIndicator: m = !1, label: h, labelFormatter: g, labelClassName: _, formatter: v, color: b, nameKey: x, labelKey: S }) {
|
|
54
|
-
let { config: C } = f(), w = i.useMemo(() => {
|
|
55
|
-
if (p || !l?.length) return null;
|
|
56
|
-
let [n] = l, r = `${S ?? n?.dataKey ?? n?.name ?? "value"}`, i = y(C, n, r), a = !S && typeof h == "string" ? C[h]?.label ?? h : i?.label;
|
|
57
|
-
return g ? /* @__PURE__ */ o(t, {
|
|
58
|
-
tag: "div",
|
|
59
|
-
size: "xs",
|
|
60
|
-
weight: "medium",
|
|
61
|
-
className: e("chart--tooltip-label", _),
|
|
62
|
-
children: g(a, l)
|
|
63
|
-
}) : a ? /* @__PURE__ */ o(t, {
|
|
64
|
-
tag: "div",
|
|
65
|
-
size: "xs",
|
|
66
|
-
weight: "medium",
|
|
67
|
-
className: e("chart--tooltip-label", _),
|
|
68
|
-
children: a
|
|
69
|
-
}) : null;
|
|
70
|
-
}, [
|
|
71
|
-
h,
|
|
72
|
-
g,
|
|
73
|
-
l,
|
|
74
|
-
p,
|
|
75
|
-
_,
|
|
76
|
-
C,
|
|
77
|
-
S
|
|
78
|
-
]);
|
|
79
|
-
if (!c || !l?.length) return null;
|
|
80
|
-
let T = l.length === 1 && d !== "dot";
|
|
81
|
-
return /* @__PURE__ */ s("div", {
|
|
82
|
-
className: e("chart--tooltip grid min-w-32 items-start gap-space-sm rounded-radius border border-border/60 bg-popover px-2.5 py-1.5 text-xs text-popover-foreground shadow-xl", u),
|
|
83
|
-
children: [!T && w, /* @__PURE__ */ o("div", {
|
|
84
|
-
className: "grid gap-space-sm",
|
|
85
|
-
children: l.filter((e) => e.type !== "none").map((i, c) => {
|
|
86
|
-
let l = `${x ?? i.name ?? i.dataKey ?? "value"}`, u = y(C, i, l), f = typeof i.payload?.fill == "string" ? i.payload.fill : void 0, p = b ?? f ?? i.color ?? i.fill;
|
|
87
|
-
return /* @__PURE__ */ o("div", {
|
|
88
|
-
className: e("chart--tooltip-item flex w-full flex-wrap items-stretch gap-space-md [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground", d === "dot" && "items-center"),
|
|
89
|
-
children: v && i.value !== void 0 && i.name !== void 0 ? v(i.value, i.name, i, c, i.payload) : /* @__PURE__ */ s(a, { children: [u?.icon ? /* @__PURE__ */ o(u.icon, {}) : !m && /* @__PURE__ */ o("div", {
|
|
90
|
-
className: e("shrink-0 rounded-[2px] border-[var(--color-border)] bg-[var(--color-bg)]", d === "dot" && "size-2.5", d === "line" && "h-3 w-1", d === "dashed" && "h-0 w-0 border-[1.5px] border-dashed bg-transparent", T && d === "dashed" && "my-0.5"),
|
|
91
|
-
style: {
|
|
92
|
-
"--color-bg": p,
|
|
93
|
-
"--color-border": p
|
|
94
|
-
}
|
|
95
|
-
}), /* @__PURE__ */ s("div", {
|
|
96
|
-
className: e("flex flex-1 justify-between gap-space-lg leading-none", T ? "items-end" : "items-center"),
|
|
97
|
-
children: [/* @__PURE__ */ s("div", {
|
|
98
|
-
className: "grid gap-space-sm",
|
|
99
|
-
children: [T && w, /* @__PURE__ */ o(t, {
|
|
100
|
-
tag: "span",
|
|
101
|
-
size: "xs",
|
|
102
|
-
type: "secondary",
|
|
103
|
-
children: u?.label ?? i.name
|
|
104
|
-
})]
|
|
105
|
-
}), i.value !== void 0 && (typeof i.value == "number" ? /* @__PURE__ */ o(r, {
|
|
106
|
-
value: i.value,
|
|
107
|
-
size: "xs",
|
|
108
|
-
weight: "medium",
|
|
109
|
-
align: "right"
|
|
110
|
-
}) : /* @__PURE__ */ o(n, {
|
|
111
|
-
size: "xs",
|
|
112
|
-
children: Array.isArray(i.value) ? i.value.join(" - ") : String(i.value)
|
|
113
|
-
}))]
|
|
114
|
-
})] })
|
|
115
|
-
}, `${i.dataKey ?? i.name ?? "value"}-${c}`);
|
|
116
|
-
})
|
|
117
|
-
})]
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
var _ = c.Legend;
|
|
121
|
-
function v({ className: n, hideIcon: r = !1, payload: i, verticalAlign: a = "bottom", nameKey: c }) {
|
|
122
|
-
let { config: l } = f();
|
|
123
|
-
return i?.length ? /* @__PURE__ */ o("div", {
|
|
124
|
-
className: e("chart--legend flex flex-wrap items-center justify-center gap-x-space-xl gap-y-space-md text-xs", a === "top" ? "pb-space-lg" : "pt-space-lg", n),
|
|
125
|
-
children: i.filter((e) => e.type !== "none").map((e, n) => {
|
|
126
|
-
let i = `${c ?? e.dataKey ?? "value"}`, a = y(l, e, i), u = e.value ?? e.name ?? e.dataKey ?? i;
|
|
127
|
-
return /* @__PURE__ */ s("div", {
|
|
128
|
-
className: "chart--legend-item flex items-center gap-space-sm [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground",
|
|
129
|
-
children: [a?.icon && !r ? /* @__PURE__ */ o(a.icon, {}) : /* @__PURE__ */ o("div", {
|
|
130
|
-
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
131
|
-
style: { backgroundColor: e.color }
|
|
132
|
-
}), /* @__PURE__ */ o(t, {
|
|
133
|
-
tag: "span",
|
|
134
|
-
size: "xs",
|
|
135
|
-
children: a?.label ?? u
|
|
136
|
-
})]
|
|
137
|
-
}, `${e.value ?? i}-${n}`);
|
|
138
|
-
})
|
|
139
|
-
}) : null;
|
|
140
|
-
}
|
|
141
|
-
function y(e, t, n) {
|
|
142
|
-
if (typeof t != "object" || !t) return;
|
|
143
|
-
let r = "payload" in t && typeof t.payload == "object" && t.payload !== null ? t.payload : void 0, i = n;
|
|
144
|
-
return n in t && typeof t[n] == "string" ? i = t[n] : r && n in r && typeof r[n] == "string" && (i = r[n]), i in e ? e[i] : e[n];
|
|
145
|
-
}
|
|
146
|
-
//#endregion
|
|
147
|
-
export { h as a, m as i, _ as n, g as o, v as r, p as t };
|
|
148
|
-
|
|
149
|
-
//# sourceMappingURL=chart-DVfcwQu6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-DVfcwQu6.js","names":["React","_Fragment","NumberValue","cn","Text","MonoValue","Number","React$1","Fragment$1","RechartsPrimitive","THEMES","INITIAL_DIMENSION","ChartContext","useChart","context","ChartContainer","props","uniqueId","chartId","id","className","ChartStyle","colorConfig","config","item","theme","prefix","key","itemConfig","color","ChartTooltip","ChartTooltipContent","tooltipLabel","hideLabel","payload","labelKey","getPayloadConfigFromPayload","value","label","labelFormatter","labelClassName","active","nestLabel","indicator","nameKey","payloadFill","indicatorColor","formatter","index","hideIndicator","ChartLegend","ChartLegendContent","verticalAlign","fallbackLabel","hideIcon","payloadPayload","configLabelKey"],"sources":["../src/components/base/chart/chart.tsx"],"sourcesContent":["/**\n * Chart — Recharts helpers with shadcn-compatible configuration.\n *\n * Localized from the shadcn/ReUI chart helper into the base layer so chart\n * chrome uses this library's tokens, tooltip density, and BEM DOM hooks.\n * The Recharts peer stays isolated to the exact `base/chart` entrypoint.\n */\nimport * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { MonoValue, Number as NumberValue } from '../../primitives';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nconst THEMES = { light: '', dark: '.dark' } as const;\nconst INITIAL_DIMENSION = { width: 320, height: 200 } as const;\n\nexport type ChartConfig = Record<\n\tstring,\n\t{\n\t\t/** Axis label for the hovered position. Supplied by Recharts. */\n\t\tlabel?: React.ReactNode;\n\t\t/** Leading glyph. */\n\t\ticon?: React.ComponentType;\n\t} & (\n\t\t| { color?: string; theme?: never }\n\t\t| { color?: never; theme: Record<keyof typeof THEMES, string> }\n\t)\n>;\n\nexport type ChartPayloadItem = {\n\tdataKey?: string | number;\n\t/** Form field name, forwarded for native submits. */\n\tname?: string | number;\n\t/** Current value. Controlled. */\n\tvalue?: string | number | Array<string | number>;\n\ttype?: string;\n\t/** Overrides the colour of the tooltip indicator. */\n\tcolor?: string;\n\tfill?: string;\n\t/** Data points under the cursor. Supplied by Recharts. */\n\tpayload?: Record<string, unknown>;\n};\n\nexport interface ChartInitialDimension {\n\twidth: number;\n\theight: number;\n}\n\ninterface ChartContextProps {\n\t/** Maps each data key to its label, colour, and icon. */\n\tconfig: ChartConfig;\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart(): ChartContextProps {\n\tconst context = React.useContext(ChartContext);\n\n\tif (!context) {\n\t\tthrow new Error('useChart must be used within a <ChartContainer />');\n\t}\n\n\treturn context;\n}\n\nexport interface ChartContainerProps extends React.ComponentPropsWithoutRef<'div'> {\n\t/** Maps each data key to its label, colour, and icon. */\n\tconfig: ChartConfig;\n\tchildren: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n\t/** Starting width and height, so the chart renders before its container is measured. */\n\tinitialDimension?: ChartInitialDimension;\n}\n\nfunction ChartContainer({\n\tid,\n\tclassName,\n\tchildren,\n\tconfig,\n\tinitialDimension = INITIAL_DIMENSION,\n\t...props\n}: ChartContainerProps) {\n\tconst uniqueId = React.useId();\n\tconst chartId = `chart-${id ?? uniqueId.replace(/:/g, '')}`;\n\n\treturn (\n\t\t<ChartContext.Provider value={{ config }}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"chart\"\n\t\t\t\tdata-chart={chartId}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'chart--component flex aspect-video w-full min-w-0 justify-center text-xs',\n\t\t\t\t\t'[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-axis-tick-label]:fill-muted-foreground [&_.recharts-cartesian-axis-tick-value]:fill-muted-foreground',\n\t\t\t\t\t\"[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50\",\n\t\t\t\t\t'[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border',\n\t\t\t\t\t'[&_.recharts-dot[stroke=\"#fff\"]]:stroke-transparent',\n\t\t\t\t\t'[&_.recharts-layer]:outline-hidden',\n\t\t\t\t\t\"[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border\",\n\t\t\t\t\t'[&_.recharts-radial-bar-background-sector]:fill-muted',\n\t\t\t\t\t'[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted',\n\t\t\t\t\t\"[&_.recharts-reference-line_[stroke='#ccc']]:stroke-border\",\n\t\t\t\t\t'[&_.recharts-sector]:outline-hidden',\n\t\t\t\t\t'[&_.recharts-sector[stroke=\"#fff\"]]:stroke-transparent',\n\t\t\t\t\t'[&_.recharts-surface]:outline-hidden',\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<ChartStyle id={chartId} config={config} />\n\t\t\t\t<RechartsPrimitive.ResponsiveContainer initialDimension={initialDimension}>\n\t\t\t\t\t{children}\n\t\t\t\t</RechartsPrimitive.ResponsiveContainer>\n\t\t\t</div>\n\t\t</ChartContext.Provider>\n\t);\n}\n\nfunction ChartStyle({ id, config }: { id: string; config: ChartConfig }) {\n\tconst colorConfig = Object.entries(config).filter(([, item]) => item.theme ?? item.color);\n\n\tif (!colorConfig.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<style\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: Object.entries(THEMES)\n\t\t\t\t\t.map(\n\t\t\t\t\t\t([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n\t.map(([key, itemConfig]) => {\n\t\tconst color =\n\t\t\titemConfig.theme?.[theme as keyof typeof itemConfig.theme] ??\n\t\t\titemConfig.color;\n\t\treturn color ? ` --color-${key}: ${color};` : null;\n\t})\n\t.join('\\n')}\n}\n`,\n\t\t\t\t\t)\n\t\t\t\t\t.join('\\n'),\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nexport interface ChartTooltipContentProps extends React.ComponentPropsWithoutRef<'div'> {\n\t/** Whether the tooltip is showing. Supplied by Recharts. */\n\tactive?: boolean;\n\t/** Data points under the cursor. Supplied by Recharts. */\n\tpayload?: ChartPayloadItem[];\n\t/** Axis label for the hovered position. Supplied by Recharts. */\n\tlabel?: React.ReactNode;\n\t/** Merged onto the tooltip label. */\n\tlabelClassName?: string;\n\t/** Formats the tooltip label. */\n\tlabelFormatter?: (label: React.ReactNode, payload: ChartPayloadItem[]) => React.ReactNode;\n\t/** Formats each tooltip value. */\n\tformatter?: (\n\t\t/** Current value. Controlled. */\n\t\tvalue: NonNullable<ChartPayloadItem['value']>,\n\t\t/** Form field name, forwarded for native submits. */\n\t\tname: NonNullable<ChartPayloadItem['name']>,\n\t\titem: ChartPayloadItem,\n\t\tindex: number,\n\t\t/** Data points under the cursor. Supplied by Recharts. */\n\t\tpayload?: Record<string, unknown>,\n\t) => React.ReactNode;\n\t/** Overrides the colour of the tooltip indicator. */\n\tcolor?: string;\n\t/** Hides the tooltip label row. */\n\thideLabel?: boolean;\n\t/** Hides the colour indicator beside each value. */\n\thideIndicator?: boolean;\n\t/** Shape of the colour indicator. */\n\tindicator?: 'line' | 'dot' | 'dashed';\n\t/** Key in the payload holding each series name. */\n\tnameKey?: string;\n\t/** Key in the payload holding the tooltip label. */\n\tlabelKey?: string;\n}\n\nfunction ChartTooltipContent({\n\tactive,\n\tpayload,\n\tclassName,\n\tindicator = 'dot',\n\thideLabel = false,\n\thideIndicator = false,\n\tlabel,\n\tlabelFormatter,\n\tlabelClassName,\n\tformatter,\n\tcolor,\n\tnameKey,\n\tlabelKey,\n}: ChartTooltipContentProps) {\n\tconst { config } = useChart();\n\n\tconst tooltipLabel = React.useMemo(() => {\n\t\tif (hideLabel || !payload?.length) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [item] = payload;\n\t\tconst key = `${labelKey ?? item?.dataKey ?? item?.name ?? 'value'}`;\n\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\t\tconst value =\n\t\t\t!labelKey && typeof label === 'string'\n\t\t\t\t? (config[label]?.label ?? label)\n\t\t\t\t: itemConfig?.label;\n\n\t\tif (labelFormatter) {\n\t\t\treturn (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"div\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\tclassName={cn('chart--tooltip-label', labelClassName)}\n\t\t\t\t>\n\t\t\t\t\t{labelFormatter(value, payload)}\n\t\t\t\t</Text>\n\t\t\t);\n\t\t}\n\n\t\tif (!value) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<Text\n\t\t\t\ttag=\"div\"\n\t\t\t\tsize=\"xs\"\n\t\t\t\tweight=\"medium\"\n\t\t\t\tclassName={cn('chart--tooltip-label', labelClassName)}\n\t\t\t>\n\t\t\t\t{value}\n\t\t\t</Text>\n\t\t);\n\t}, [\n\t\tlabel,\n\t\tlabelFormatter,\n\t\tpayload,\n\t\thideLabel,\n\t\tlabelClassName,\n\t\tconfig,\n\t\tlabelKey,\n\t]);\n\n\tif (!active || !payload?.length) {\n\t\treturn null;\n\t}\n\n\tconst nestLabel = payload.length === 1 && indicator !== 'dot';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'chart--tooltip grid min-w-32 items-start gap-space-sm rounded-radius border border-border/60 bg-popover px-2.5 py-1.5 text-xs text-popover-foreground shadow-xl',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!nestLabel && tooltipLabel}\n\t\t\t<div className=\"grid gap-space-sm\">\n\t\t\t\t{payload\n\t\t\t\t\t.filter((item) => item.type !== 'none')\n\t\t\t\t\t.map((item, index) => {\n\t\t\t\t\t\tconst key = `${nameKey ?? item.name ?? item.dataKey ?? 'value'}`;\n\t\t\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\t\t\t\t\t\tconst payloadFill =\n\t\t\t\t\t\t\ttypeof item.payload?.fill === 'string'\n\t\t\t\t\t\t\t\t? item.payload.fill\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tconst indicatorColor = color ?? payloadFill ?? item.color ?? item.fill;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={`${item.dataKey ?? item.name ?? 'value'}-${index}`}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'chart--tooltip-item flex w-full flex-wrap items-stretch gap-space-md [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n\t\t\t\t\t\t\t\t\tindicator === 'dot' && 'items-center',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!formatter && item.value !== undefined && item.name !== undefined ? (\n\t\t\t\t\t\t\t\t\tformatter(item.value, item.name, item, index, item.payload)\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{itemConfig?.icon ? (\n\t\t\t\t\t\t\t\t\t\t\t<itemConfig.icon />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t!hideIndicator && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'shrink-0 rounded-[2px] border-[var(--color-border)] bg-[var(--color-bg)]',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindicator === 'dot' && 'size-2.5',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindicator === 'line' && 'h-3 w-1',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindicator === 'dashed' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'h-0 w-0 border-[1.5px] border-dashed bg-transparent',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnestLabel && indicator === 'dashed' && 'my-0.5',\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-bg': indicatorColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-border': indicatorColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'flex flex-1 justify-between gap-space-lg leading-none',\n\t\t\t\t\t\t\t\t\t\t\t\tnestLabel ? 'items-end' : 'items-center',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"grid gap-space-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t{nestLabel && tooltipLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{itemConfig?.label ?? item.name}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t{item.value !== undefined && (\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof item.value === 'number' ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<NumberValue value={item.value} size=\"xs\" weight=\"medium\" align=\"right\" />\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MonoValue size=\"xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{Array.isArray(item.value) ? item.value.join(' - ') : String(item.value)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</MonoValue>\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nexport interface ChartLegendContentProps extends React.ComponentPropsWithoutRef<'div'> {\n\thideIcon?: boolean;\n\t/** Data points under the cursor. Supplied by Recharts. */\n\tpayload?: ChartPayloadItem[];\n\tverticalAlign?: 'top' | 'bottom' | 'middle';\n\t/** Key in the payload holding each series name. */\n\tnameKey?: string;\n}\n\nfunction ChartLegendContent({\n\tclassName,\n\thideIcon = false,\n\tpayload,\n\tverticalAlign = 'bottom',\n\tnameKey,\n}: ChartLegendContentProps) {\n\tconst { config } = useChart();\n\n\tif (!payload?.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'chart--legend flex flex-wrap items-center justify-center gap-x-space-xl gap-y-space-md text-xs',\n\t\t\t\tverticalAlign === 'top' ? 'pb-space-lg' : 'pt-space-lg',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{payload\n\t\t\t\t.filter((item) => item.type !== 'none')\n\t\t\t\t.map((item, index) => {\n\t\t\t\t\tconst key = `${nameKey ?? item.dataKey ?? 'value'}`;\n\t\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\t\t\t\t\tconst fallbackLabel = item.value ?? item.name ?? item.dataKey ?? key;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={`${item.value ?? key}-${index}`}\n\t\t\t\t\t\t\tclassName=\"chart--legend-item flex items-center gap-space-sm [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{itemConfig?.icon && !hideIcon ? (\n\t\t\t\t\t\t\t\t<itemConfig.icon />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"h-2 w-2 shrink-0 rounded-[2px]\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: item.color,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\">\n\t\t\t\t\t\t\t\t{itemConfig?.label ?? fallbackLabel}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t</div>\n\t);\n}\n\nfunction getPayloadConfigFromPayload(\n\tconfig: ChartConfig,\n\tpayload: unknown,\n\tkey: string,\n) {\n\tif (typeof payload !== 'object' || payload === null) {\n\t\treturn undefined;\n\t}\n\n\tconst payloadPayload =\n\t\t'payload' in payload &&\n\t\ttypeof payload.payload === 'object' &&\n\t\tpayload.payload !== null\n\t\t\t? payload.payload\n\t\t\t: undefined;\n\n\tlet configLabelKey = key;\n\n\tif (\n\t\tkey in payload &&\n\t\ttypeof payload[key as keyof typeof payload] === 'string'\n\t) {\n\t\tconfigLabelKey = payload[key as keyof typeof payload] as string;\n\t} else if (\n\t\tpayloadPayload &&\n\t\tkey in payloadPayload &&\n\t\ttypeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n\t) {\n\t\tconfigLabelKey = payloadPayload[\n\t\t\tkey as keyof typeof payloadPayload\n\t\t] as string;\n\t}\n\n\treturn configLabelKey in config ? config[configLabelKey] : config[key];\n}\n\nexport {\n\tChartContainer,\n\tChartTooltip,\n\tChartTooltipContent,\n\tChartLegend,\n\tChartLegendContent,\n\tChartStyle,\n};\n"],"mappings":";;;;;;;;;AAcA,IAAMU,IAAS;CAAE,OAAO;CAAI,MAAM;AAAQ,GACpCC,IAAoB;CAAE,OAAO;CAAK,QAAQ;AAAI,GAuC9CC,IAAeZ,EAAM,cAAwC,IAAI;AAEvE,SAASa,IAA8B;CACtC,IAAMC,IAAUd,EAAM,WAAWY,CAAY;CAE7C,IAAI,CAACE,GACJ,MAAU,MAAM,mDAAmD;CAGpE,OAAOA;AACR;AAUA,SAASC,EAAe,EACvB,OACA,cACA,aACA,WACA,sBAAmBJ,GACnB,GAAGK,KACoB;CACvB,IAAMC,IAAWjB,EAAM,MAAM,GACvBkB,IAAU,SAASC,KAAMF,EAAS,QAAQ,MAAM,EAAE;CAExD,OACC,kBAACL,EAAa,UAAd;EAAuB,OAAO,EAAE,UAAO;EACtC,UAAA,kBAAC,OAAD;GACC,aAAU;GACV,cAAYM;GACZ,WAAWf,EACV,4EACA,4LACA,qEACA,6DACA,yDACA,sCACA,0DACA,yDACA,8DACA,8DACA,uCACA,4DACA,wCACAiB,CACD;GACA,GAAIJ;GAnBL,UAAA,CAqBC,kBAACK,GAAD;IAAY,IAAIH;IAAiB;GAAS,CAAA,GAC1C,kBAACT,EAAkB,qBAAnB;IAAyD;IACvD;GACqC,CAAA,CACnC;;CACiB,CAAA;AAEzB;AAEA,SAASY,EAAW,EAAE,OAAI,aAA+C;CACxE,IAAMC,IAAc,OAAO,QAAQC,CAAM,CAAC,CAAC,QAAQ,GAAGC,OAAUA,EAAK,SAASA,EAAK,KAAK;CAMxF,OAJKF,EAAY,SAKhB,kBAAC,SAAD,EACC,yBAAyB,EACxB,QAAQ,OAAO,QAAQZ,CAAM,CAAC,CAC5B,KACC,CAACe,GAAOC,OAAY;EACzBA,EAAO,eAAeP,EAAG;EACzBG,EACA,KAAK,CAACK,GAAKC,OAAgB;EAC3B,IAAMC,IACLD,EAAW,QAAQH,MACnBG,EAAW;EACZ,OAAOC,IAAQ,aAAaF,EAAI,IAAIE,EAAM,KAAK;CAChD,CAAC,CAAC,CACD,KAAK,IAAI,EAAA;;CAGN,CAAC,CACA,KAAK,IAAI,EACZ,EACA,CAAA,IAvBM;AAyBT;AAEA,IAAMC,IAAerB,EAAkB;AAsCvC,SAASsB,EAAoB,EAC5B,WACA,YACA,cACA,eAAY,OACZ,eAAY,IACZ,mBAAgB,IAChB,UACA,mBACA,mBACA,cACA,UACA,YACA,eAC4B;CAC5B,IAAM,EAAE,cAAWlB,EAAS,GAEtBmB,IAAehC,EAAM,cAAc;EACxC,IAAIiC,KAAa,CAACC,GAAS,QAC1B,OAAO;EAGR,IAAM,CAACV,KAAQU,GACTP,IAAM,GAAGQ,KAAYX,GAAM,WAAWA,GAAM,QAAQ,WACpDI,IAAaQ,EAA4Bb,GAAQC,GAAMG,CAAG,GAC1DU,IACL,CAACF,KAAY,OAAOG,KAAU,WAC1Bf,EAAOe,EAAM,EAAE,SAASA,IACzBV,GAAY;EAmBhB,OAjBIW,IAEF,kBAACnC,GAAD;GACC,KAAI;GACJ,MAAK;GACL,QAAO;GACP,WAAWD,EAAG,wBAAwBqC,CAAc;GAEnD,UAAAD,EAAeF,GAAOH,CAAO;EACzB,CAAA,IAIHG,IAKJ,kBAACjC,GAAD;GACC,KAAI;GACJ,MAAK;GACL,QAAO;GACP,WAAWD,EAAG,wBAAwBqC,CAAc;GAEnD,UAAAH;EACI,CAAA,IAXC;CAaT,GAAG;EACFC;EACAC;EACAL;EACAD;EACAO;EACAjB;EACAY;CACD,CAAC;CAED,IAAI,CAACM,KAAU,CAACP,GAAS,QACxB,OAAO;CAGR,IAAMQ,IAAYR,EAAQ,WAAW,KAAKS,MAAc;CAExD,OACC,kBAAC,OAAD;EACC,WAAWxC,EACV,mKACAiB,CACD;EAJD,UAAA,CAME,CAACsB,KAAaV,GACf,kBAAC,OAAD;GAAK,WAAU;GACb,UAAAE,EACC,QAAQ,MAASV,EAAK,SAAS,MAAM,CAAC,CACtC,KAAK,GAAM,MAAU;IACrB,IAAMG,IAAM,GAAGiB,KAAWpB,EAAK,QAAQA,EAAK,WAAW,WACjDI,IAAaQ,EAA4Bb,GAAQC,GAAMG,CAAG,GAC1DkB,IACL,OAAOrB,EAAK,SAAS,QAAS,WAC3BA,EAAK,QAAQ,OACb,KAAA,GACEsB,IAAiBjB,KAASgB,KAAerB,EAAK,SAASA,EAAK;IAElE,OACC,kBAAC,OAAD;KAEC,WAAWrB,EACV,kIACAwC,MAAc,SAAS,cACxB;KAEC,UAAEI,KAAavB,EAAK,UAAU,KAAA,KAAaA,EAAK,SAAS,KAAA,IACzDuB,EAAUvB,EAAK,OAAOA,EAAK,MAAMA,GAAMwB,GAAOxB,EAAK,OAAO,IAE1D,kBAAAvB,GAAA,EAAA,UAAA,CACE2B,GAAY,OACZ,kBAACA,EAAW,MAAZ,CAAkB,CAAA,IAElB,CAACqB,KACA,kBAAC,OAAD;MACC,WAAW9C,EACV,4EACAwC,MAAc,SAAS,YACvBA,MAAc,UAAU,WACxBA,MAAc,YACb,uDACDD,KAAaC,MAAc,YAAY,QACxC;MACA,OACC;OACC,cAAcG;OACd,kBAAkBA;MACnB;KAED,CAAA,GAGH,kBAAC,OAAD;MACC,WAAW3C,EACV,yDACAuC,IAAY,cAAc,cAC3B;MAJD,UAAA,CAMC,kBAAC,OAAD;OAAK,WAAU;OAAf,UAAA,CACEA,KAAaV,GACd,kBAAC5B,GAAD;QAAM,KAAI;QAAO,MAAK;QAAK,MAAK;QAC9B,UAAAwB,GAAY,SAASJ,EAAK;OACtB,CAAA,CACF;MACJ,CAAA,GAAAA,EAAK,UAAU,KAAA,MACf,OAAOA,EAAK,SAAU,WACrB,kBAACtB,GAAD;OAAa,OAAOsB,EAAK;OAAO,MAAK;OAAK,QAAO;OAAS,OAAM;MAAS,CAAA,IAEzE,kBAACnB,GAAD;OAAW,MAAK;OACd,UAAA,MAAM,QAAQmB,EAAK,KAAK,IAAIA,EAAK,MAAM,KAAK,KAAK,IAAI,OAAOA,EAAK,KAAK;MAC7D,CAAA,EAGT;KACJ,CAAA,CAAA,EAAA,CAAA;IAEC,GAxDC,GAAGA,EAAK,WAAWA,EAAK,QAAQ,QAAQ,GAAGwB,GAwD5C;GAEP,CAAC;EACE,CAAA,CACD;;AAEP;AAEA,IAAME,IAAczC,EAAkB;AAWtC,SAAS0C,EAAmB,EAC3B,cACA,cAAW,IACX,YACA,mBAAgB,UAChB,cAC2B;CAC3B,IAAM,EAAE,cAAWtC,EAAS;CAM5B,OAJKqB,GAAS,SAKb,kBAAC,OAAD;EACC,WAAW/B,EACV,kGACAiD,MAAkB,QAAQ,gBAAgB,eAC1ChC,CACD;EAEC,UAAAc,EACC,QAAQ,MAASV,EAAK,SAAS,MAAM,CAAC,CACtC,KAAK,GAAM,MAAU;GACrB,IAAMG,IAAM,GAAGiB,KAAWpB,EAAK,WAAW,WACpCI,IAAaQ,EAA4Bb,GAAQC,GAAMG,CAAG,GAC1D0B,IAAgB7B,EAAK,SAASA,EAAK,QAAQA,EAAK,WAAWG;GAEjE,OACC,kBAAC,OAAD;IAEC,WAAU;IAFX,UAAA,CAIEC,GAAY,QAAQ,CAAC0B,IACrB,kBAAC1B,EAAW,MAAZ,CAAkB,CAAA,IAElB,kBAAC,OAAD;KACC,WAAU;KACV,OAAO,EACN,iBAAiBJ,EAAK,MACvB;IACA,CAAA,GAEF,kBAACpB,GAAD;KAAM,KAAI;KAAO,MAAK;KACpB,UAAAwB,GAAY,SAASyB;IACjB,CAAA,CACF;GAhBC,GAAA,GAAG7B,EAAK,SAASG,EAAI,GAAGqB,GAgBzB;EAEP,CAAC;CACE,CAAA,IAvCE;AAyCT;AAEA,SAASZ,EACR,GACA,GACA,GACC;CACD,IAAI,OAAOF,KAAY,aAAYA,GAClC;CAGD,IAAMqB,IACL,aAAarB,KACb,OAAOA,EAAQ,WAAY,YAC3BA,EAAQ,YAAY,OACjBA,EAAQ,UACR,KAAA,GAEAsB,IAAiB7B;CAiBrB,OAdCA,KAAOO,KACP,OAAOA,EAAQP,MAAiC,WAEhD,IAAiBO,EAAQP,KAEzB4B,KACA5B,KAAO4B,KACP,OAAOA,EAAe5B,MAAwC,aAE9D,IAAiB4B,EAChB5B,KAIK6B,KAAkBjC,IAASA,EAAOiC,KAAkBjC,EAAOI;AACnE"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./utils-C2EKeIw3.js";
|
|
3
|
-
import { forwardRef as t } from "react";
|
|
4
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
5
|
-
import { CheckIcon as r } from "lucide-react";
|
|
6
|
-
import { Checkbox as i } from "@base-ui/react/checkbox";
|
|
7
|
-
//#region src/components/ui/checkbox.tsx
|
|
8
|
-
function a({ className: t, onCheckedChange: a, ...o }) {
|
|
9
|
-
return /* @__PURE__ */ n(i.Root, {
|
|
10
|
-
"data-slot": "checkbox",
|
|
11
|
-
className: e("peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-[color,box-shadow] outline-none", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 aria-invalid:border-destructive", "data-[checked]:bg-primary data-[checked]:border-primary data-[checked]:text-primary-foreground", "data-[indeterminate]:bg-primary data-[indeterminate]:border-primary data-[indeterminate]:text-primary-foreground", "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50", t),
|
|
12
|
-
onCheckedChange: a,
|
|
13
|
-
...o,
|
|
14
|
-
children: /* @__PURE__ */ n(i.Indicator, {
|
|
15
|
-
"data-slot": "checkbox-indicator",
|
|
16
|
-
className: "flex items-center justify-center text-current",
|
|
17
|
-
children: /* @__PURE__ */ n(r, { className: "size-3.5" })
|
|
18
|
-
})
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
22
|
-
//#region src/components/base/choice-inputs/checkbox.tsx
|
|
23
|
-
var o = t(function({ className: t, ...r }, i) {
|
|
24
|
-
return /* @__PURE__ */ n(a, {
|
|
25
|
-
ref: i,
|
|
26
|
-
className: e("checkbox--component inline-flex items-center justify-center rounded-radius-xs border-muted-foreground", t),
|
|
27
|
-
...r
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
o.displayName = "Checkbox";
|
|
31
|
-
//#endregion
|
|
32
|
-
export { o as t };
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=checkbox-BavDRjF7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-BavDRjF7.js","names":["Checkbox","CheckboxPrimitive","Checkbox","CheckboxPrimitive","cn","Checkbox$2","props","Checkbox","className","CheckIcon","Checkbox$1","forwardRef"],"sources":["../src/components/ui/checkbox.tsx","../src/components/base/choice-inputs/checkbox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"../../lib/utils\"\n\nexport interface CheckboxProps extends Omit<CheckboxPrimitive.Root.Props, 'onChange'> {\n\tonCheckedChange?: (checked: boolean | 'indeterminate') => void\n}\n\nfunction Checkbox({\n\tclassName,\n\tonCheckedChange,\n\t...props\n}: CheckboxProps) {\n\treturn (\n\t\t<CheckboxPrimitive.Root\n\t\t\tdata-slot=\"checkbox\"\n\t\t\tclassName={cn(\n\t\t\t\t\"peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-[color,box-shadow] outline-none\",\n\t\t\t\t\"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n\t\t\t\t\"aria-invalid:ring-destructive/20 aria-invalid:border-destructive\",\n\t\t\t\t\"data-[checked]:bg-primary data-[checked]:border-primary data-[checked]:text-primary-foreground\",\n\t\t\t\t\"data-[indeterminate]:bg-primary data-[indeterminate]:border-primary data-[indeterminate]:text-primary-foreground\",\n\t\t\t\t\"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonCheckedChange={onCheckedChange}\n\t\t\t{...props}\n\t\t>\n\t\t\t<CheckboxPrimitive.Indicator\n\t\t\t\tdata-slot=\"checkbox-indicator\"\n\t\t\t\tclassName=\"flex items-center justify-center text-current\"\n\t\t\t>\n\t\t\t\t<CheckIcon className=\"size-3.5\" />\n\t\t\t</CheckboxPrimitive.Indicator>\n\t\t</CheckboxPrimitive.Root>\n\t)\n}\n\nexport { Checkbox }\n","import { forwardRef } from 'react';\n\nimport { Checkbox as CheckboxPrimitive, type CheckboxProps } from '../../ui/checkbox';\nimport { cn } from '../../../lib/utils';\n\n/**\n * Checkbox — base wrapper around the shadcn/Base UI checkbox primitive.\n *\n * Base UI renders the root as an inline span; the wrapper makes it an\n * inline-flex control so token size utilities render as a square box instead\n * of collapsing to the two border lines.\n *\n * The root ref accepts the actual HTMLElement, including custom button renders.\n * The muted foreground border keeps the unchecked boundary visible in both themes.\n *\n * The wrapper retains its compact corner recipe while deriving it from the\n * shared theme radius, so scoped consumer radius overrides still apply.\n */\nconst Checkbox = forwardRef<HTMLElement, CheckboxProps>(function Checkbox({ className, ...props }, ref) {\n\treturn (\n\t\t<CheckboxPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'checkbox--component inline-flex items-center justify-center rounded-radius-xs border-muted-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\nexport type { CheckboxProps };\n"],"mappings":";;;;;;;AAWA,SAASA,EAAS,EACjB,cACA,oBACA,GAAGM,KACc;CACjB,OACC,kBAACL,EAAkB,MAAnB;EACC,aAAU;EACV,WAAWG,EACV,+GACA,iFACA,oEACA,kGACA,oHACA,iEACAI,CACD;EACiB;EACjB,GAAIF;EAEJ,UAAA,kBAACL,EAAkB,WAAnB;GACC,aAAU;GACV,WAAU;GAEV,UAAA,kBAACQ,GAAD,EAAW,WAAU,WAAY,CAAA;EACL,CAAA;CACN,CAAA;AAE1B;;;ACrBA,IAAMP,IAAWS,EAAuC,SAAkB,EAAE,cAAW,GAAGL,KAAS,GAAK;CACvG,OACC,kBAACH,GAAD;EACM;EACL,WAAWC,EACV,yGACAI,CACD;EACA,GAAIF;CACJ,CAAA;AAEH,CAAC;AAED,EAAS,cAAc"}
|