themelia-react-ui 1.0.0 → 1.0.2
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 +190 -1
- package/README.md +92 -13
- package/dist/{accordion-BRWh3BM1.js → accordion-BRTcsp8J.js} +8 -8
- package/dist/accordion-BRTcsp8J.js.map +1 -0
- package/dist/{action-menu-Cx3SdfbN.js → action-menu-Drxw_vJk.js} +36 -36
- package/dist/action-menu-Drxw_vJk.js.map +1 -0
- package/dist/affordance-geometry.generated-CL84ZN9A.js +63 -0
- package/dist/affordance-geometry.generated-CL84ZN9A.js.map +1 -0
- package/dist/{ai-artifact-DkOArd3-.js → ai-artifact-DLVdK0Py.js} +151 -155
- package/dist/ai-artifact-DLVdK0Py.js.map +1 -0
- package/dist/{app-shell-BH_bGcE2.js → app-shell-C_fKpljx.js} +11 -10
- package/dist/app-shell-C_fKpljx.js.map +1 -0
- package/dist/{attachment-DsLgNHXt.js → attachment-DbjUWsP0.js} +12 -12
- package/dist/{attachment-DsLgNHXt.js.map → attachment-DbjUWsP0.js.map} +1 -1
- package/dist/auth-CAQcasMV.js +723 -0
- package/dist/auth-CAQcasMV.js.map +1 -0
- package/dist/{avatar-CsnWaYmt.js → avatar-Bu2HhitA.js} +76 -71
- package/dist/avatar-Bu2HhitA.js.map +1 -0
- package/dist/{badge-BZXZT9wd.js → badge-CzId1Wlm.js} +4 -4
- package/dist/{badge-BZXZT9wd.js.map → badge-CzId1Wlm.js.map} +1 -1
- 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 +25 -27
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +150 -148
- package/dist/base/cascader.js.map +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +3 -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 -3
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +233 -0
- package/dist/base/inline-edit.js.map +1 -0
- 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 +1 -1
- package/dist/base/repeaters.js +33 -33
- 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 +83 -81
- 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 +6 -6
- 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 +134 -134
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +120 -117
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +3 -0
- package/dist/blocks/analytics.js +530 -491
- 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 +395 -383
- 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 +311 -0
- package/dist/blocks/planning.js.map +1 -0
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-DdQ_I5ra.js → breadcrumbs-BuYz5SDU.js} +9 -8
- package/dist/breadcrumbs-BuYz5SDU.js.map +1 -0
- package/dist/button-BZDasD04.js +651 -0
- package/dist/button-BZDasD04.js.map +1 -0
- package/dist/{button-BS6l5JUw.js → button-BZyfTvwm.js} +3 -3
- package/dist/button-BZyfTvwm.js.map +1 -0
- package/dist/buttons-D_6KJvEE.js +99 -0
- package/dist/buttons-D_6KJvEE.js.map +1 -0
- package/dist/{cards-BMB0laLG.js → cards-qGSErLw_.js} +12 -12
- package/dist/{cards-BMB0laLG.js.map → cards-qGSErLw_.js.map} +1 -1
- package/dist/chart-Bsc5BICK.js +150 -0
- package/dist/chart-Bsc5BICK.js.map +1 -0
- package/dist/checkbox-BQNDjUCh.js +34 -0
- package/dist/checkbox-BQNDjUCh.js.map +1 -0
- package/dist/choice-inputs-Mk3iWbhr.js +725 -0
- package/dist/choice-inputs-Mk3iWbhr.js.map +1 -0
- package/dist/{code-block-DIlqzoiD.js → code-block-DzHKRybS.js} +23 -23
- package/dist/code-block-DzHKRybS.js.map +1 -0
- package/dist/{collapsible-DsnktFNv.js → collapsible-ClvC7Bj3.js} +3 -3
- package/dist/{collapsible-DsnktFNv.js.map → collapsible-ClvC7Bj3.js.map} +1 -1
- package/dist/{collection-content-C4fthJV_.js → collection-content-D6S8cv_n.js} +3 -3
- package/dist/{collection-content-C4fthJV_.js.map → collection-content-D6S8cv_n.js.map} +1 -1
- package/dist/{combobox-HDftpzxt.js → combobox-BFnbJJp3.js} +18 -18
- package/dist/combobox-BFnbJJp3.js.map +1 -0
- package/dist/{combobox-CHD750do.js → combobox-hozNwUcc.js} +313 -316
- package/dist/combobox-hozNwUcc.js.map +1 -0
- package/dist/{command-D0kWBZfd.js → command-BnmSchli.js} +9 -9
- package/dist/command-BnmSchli.js.map +1 -0
- package/dist/comments-u5L0OGip.js +1156 -0
- package/dist/comments-u5L0OGip.js.map +1 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +1 -1
- package/dist/components/base/buttons/button.recipes.d.ts +10 -19
- 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 +3 -1
- package/dist/components/base/date-pickers/date-picker.recipes.d.ts +5 -18
- package/dist/components/base/date-pickers/datepicker.types.d.ts +3 -0
- package/dist/components/base/forms/form-field.d.ts +1 -0
- package/dist/components/base/forms/form-sizing.d.ts +3 -3
- package/dist/components/base/inline-edit/index.d.ts +2 -0
- package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
- package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
- 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/structure/structure.recipes.d.ts +6 -0
- 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-trailing-action.d.ts +3 -0
- package/dist/components/blocks/analytics/index.d.ts +1 -0
- package/dist/components/blocks/analytics/types.d.ts +1 -1
- package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
- package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
- package/dist/components/blocks/collaboration/message/message.recipes.d.ts +12 -0
- 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/planning/index.d.ts +3 -0
- package/dist/components/blocks/planning/task-card.d.ts +3 -0
- package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
- package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
- 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/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/hooks/use-pending-overlay-focus.d.ts +2 -0
- package/dist/components/features/overlays/overlays.types.d.ts +5 -4
- 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/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/page.d.ts +0 -1
- package/dist/components/layout/page/page.types.d.ts +9 -3
- 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/typography/heading.d.ts +5 -2
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/text.styles.d.ts +10 -0
- package/dist/components/ui/popover.d.ts +1 -1
- package/dist/components/ui/sidebar.d.ts +1 -1
- 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-CPNyNo1_.js → containers-DqB-bSYE.js} +34 -56
- package/dist/containers-DqB-bSYE.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-BTSByfmq.js} +6 -6
- package/dist/{copyable-B7SBXJMr.js.map → copyable-BTSByfmq.js.map} +1 -1
- package/dist/{data-display-b3d1TfL4.js → data-display-Bihs9Ven.js} +542 -329
- package/dist/data-display-Bihs9Ven.js.map +1 -0
- package/dist/{date-BFNMnrS5.js → date-DOKhJPu7.js} +4 -4
- package/dist/{date-BFNMnrS5.js.map → date-DOKhJPu7.js.map} +1 -1
- package/dist/{date-picker-DI6kPNof.js → date-picker-DzP5HQq7.js} +492 -472
- package/dist/date-picker-DzP5HQq7.js.map +1 -0
- package/dist/date-pickers-BpgGz7S-.js +196 -0
- package/dist/date-pickers-BpgGz7S-.js.map +1 -0
- package/dist/{display-ByI5tkqy.js → display-CS6Hbk18.js} +8 -8
- package/dist/{display-ByI5tkqy.js.map → display-CS6Hbk18.js.map} +1 -1
- package/dist/{dropdown-menu-BlnyHr-9.js → dropdown-menu-D-boNgGO.js} +7 -7
- package/dist/{dropdown-menu-BlnyHr-9.js.map → dropdown-menu-D-boNgGO.js.map} +1 -1
- package/dist/features/activities.js +152 -141
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +182 -179
- 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 +103 -104
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +375 -373
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +222 -224
- 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 +856 -855
- 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 +1210 -1209
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +133 -132
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +29 -31
- 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 +82 -82
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +4 -4
- package/dist/features/sync.js.map +1 -1
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +456 -450
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-CJkUAapr.js +233 -0
- package/dist/feedback-CJkUAapr.js.map +1 -0
- package/dist/field-affordance-recipes-uKY4MsZ_.js +25 -0
- package/dist/field-affordance-recipes-uKY4MsZ_.js.map +1 -0
- package/dist/{field-state-recipes-CBTRt9Bt.js → field-state-recipes-DQQpiLWC.js} +3 -3
- package/dist/field-state-recipes-DQQpiLWC.js.map +1 -0
- package/dist/{filters-qtrcv1hf.js → filters-D6FF8L6s.js} +715 -720
- package/dist/filters-D6FF8L6s.js.map +1 -0
- package/dist/{form-field-C6W-y2hR.js → form-field-CZwrkP7m.js} +17 -9
- package/dist/form-field-CZwrkP7m.js.map +1 -0
- package/dist/{form-sizing-39NohSqn.js → form-sizing-QP8aIRaW.js} +10 -6
- package/dist/form-sizing-QP8aIRaW.js.map +1 -0
- package/dist/{forms-BF-HSbff.js → forms-B5NCbkSC.js} +35 -35
- package/dist/{forms-BF-HSbff.js.map → forms-B5NCbkSC.js.map} +1 -1
- package/dist/forms-numeric-Crrm80Lm.js +867 -0
- package/dist/forms-numeric-Crrm80Lm.js.map +1 -0
- package/dist/{header-B8ex54cY.js → header-kxruN3RM.js} +53 -49
- package/dist/header-kxruN3RM.js.map +1 -0
- package/dist/{hooks-D6UBVzf2.js → hooks-BrlnCwQd.js} +2 -2
- package/dist/{hooks-D6UBVzf2.js.map → hooks-BrlnCwQd.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-Btc6pQrp.js} +4 -4
- package/dist/{icon-badge-Dv0RYQwj.js.map → icon-badge-Btc6pQrp.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/input-SX9V0AL3.js +255 -0
- package/dist/input-SX9V0AL3.js.map +1 -0
- package/dist/input-vxcaNCYC.js +20 -0
- package/dist/input-vxcaNCYC.js.map +1 -0
- package/dist/{item-pJ0GsOiJ.js → item-DE4YnuJx.js} +18 -17
- package/dist/item-DE4YnuJx.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 +44 -4
- package/dist/lib/control-group-recipes.d.ts +22 -0
- package/dist/lib/field-affordance-recipes.d.ts +35 -2
- package/dist/lib/field-state-recipes.d.ts +2 -2
- package/dist/lib/navigation-row-recipes.d.ts +3 -2
- package/dist/lib/overlay-anatomy-recipes.d.ts +1 -1
- package/dist/lib/surface-recipes.d.ts +5 -2
- package/dist/lib/token-merge.generated.d.ts +144 -2
- package/dist/lib/ui-provider/types.d.ts +4 -2
- package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
- package/dist/lib/utils.js +1 -1
- package/dist/{media-gallery-Ca4YmvBi.js → media-gallery-DLp3HAz0.js} +75 -74
- package/dist/media-gallery-DLp3HAz0.js.map +1 -0
- package/dist/{mentions-CRio8mTm.js → mentions-Cl0Kt_Pd.js} +52 -50
- package/dist/{mentions-CRio8mTm.js.map → mentions-Cl0Kt_Pd.js.map} +1 -1
- package/dist/message-SZUNB1eX.js +127 -0
- package/dist/message-SZUNB1eX.js.map +1 -0
- package/dist/{navigation-BTrEb5u4.js → navigation-DnQSNMT0.js} +64 -55
- package/dist/navigation-DnQSNMT0.js.map +1 -0
- package/dist/{navigation-DqEITuD2.js → navigation-DyytsLRB.js} +37 -37
- package/dist/navigation-DyytsLRB.js.map +1 -0
- package/dist/{navigation-row-recipes-BFpvGPGE.js → navigation-row-recipes-DQEXQcqY.js} +3 -3
- package/dist/navigation-row-recipes-DQEXQcqY.js.map +1 -0
- package/dist/{number-BNT_BIzJ.js → number-DasMFWEG.js} +4 -4
- package/dist/{number-BNT_BIzJ.js.map → number-DasMFWEG.js.map} +1 -1
- package/dist/overlays-DUbs1KEi.js +1011 -0
- package/dist/overlays-DUbs1KEi.js.map +1 -0
- package/dist/{page-BMBGjJY8.js → page-hGmT4nWK.js} +75 -64
- package/dist/page-hGmT4nWK.js.map +1 -0
- package/dist/{page-header-BH41wCyY.js → page-header-D8nERkn5.js} +9 -9
- package/dist/page-header-D8nERkn5.js.map +1 -0
- package/dist/{pagination-C29vvt3I.js → pagination-NLGqRirf.js} +20 -20
- package/dist/pagination-NLGqRirf.js.map +1 -0
- package/dist/{popover-TInGXsjg.js → popover-CghIYdQf.js} +23 -22
- package/dist/popover-CghIYdQf.js.map +1 -0
- package/dist/{popover-menu-BzqXqE72.js → popover-menu-B4PoWhRl.js} +6 -6
- package/dist/{popover-menu-BzqXqE72.js.map → popover-menu-B4PoWhRl.js.map} +1 -1
- package/dist/{popover.recipes-zgBhMlUu.js → popover.recipes-QlD4JenO.js} +5 -5
- package/dist/popover.recipes-QlD4JenO.js.map +1 -0
- package/dist/{primitives-DKPOGVpj.js → primitives-C7ff0QaI.js} +120 -113
- package/dist/primitives-C7ff0QaI.js.map +1 -0
- package/dist/primitives.js +3 -3
- package/dist/progress-BroqrAyV.js +169 -0
- package/dist/progress-BroqrAyV.js.map +1 -0
- package/dist/{receipt-DYWTQGEc.js → receipt-BuJynLgf.js} +8 -8
- package/dist/{receipt-DYWTQGEc.js.map → receipt-BuJynLgf.js.map} +1 -1
- package/dist/{rich-text-B7sBAdDG.js → rich-text-DlxDOtf4.js} +4 -4
- package/dist/{rich-text-B7sBAdDG.js.map → rich-text-DlxDOtf4.js.map} +1 -1
- package/dist/rich-text-editor-BKyG7rWz.js +574 -0
- package/dist/rich-text-editor-BKyG7rWz.js.map +1 -0
- package/dist/{rich-text-editor.recipes-DxvOE0Lp.js → rich-text-editor.recipes-B72Nfuze.js} +35 -26
- package/dist/rich-text-editor.recipes-B72Nfuze.js.map +1 -0
- package/dist/{scroll-area-BheMQ270.js → scroll-area-D-pIhEKl.js} +3 -3
- package/dist/scroll-area-D-pIhEKl.js.map +1 -0
- package/dist/{separator-Gk_WXH-l.js → separator-BNIgG3au.js} +3 -3
- package/dist/{separator-Gk_WXH-l.js.map → separator-BNIgG3au.js.map} +1 -1
- package/dist/{separator-DO0EbCEm.js → separator-BhtFyo4x.js} +2 -2
- package/dist/{separator-DO0EbCEm.js.map → separator-BhtFyo4x.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/{settings-D9f_wdIC.js → settings-DOTOzeZ2.js} +10 -9
- package/dist/{settings-D9f_wdIC.js.map → settings-DOTOzeZ2.js.map} +1 -1
- package/dist/{sheet-vOUloJ4O.js → sheet-BFhrNehm.js} +11 -11
- package/dist/sheet-BFhrNehm.js.map +1 -0
- package/dist/{sidebar-CNBKFDRW.js → sidebar-CyR4XKwR.js} +219 -200
- package/dist/sidebar-CyR4XKwR.js.map +1 -0
- package/dist/{sidebar-C3UKkbC5.js → sidebar-SvGJ0Zwi.js} +63 -58
- package/dist/sidebar-SvGJ0Zwi.js.map +1 -0
- package/dist/{skeleton-BvRhK8y-.js → skeleton-3F0uhYn3.js} +4 -4
- package/dist/{skeleton-BvRhK8y-.js.map → skeleton-3F0uhYn3.js.map} +1 -1
- package/dist/{smart-card-B5FcKODh.js → smart-card-DjGVV2xr.js} +206 -199
- package/dist/smart-card-DjGVV2xr.js.map +1 -0
- package/dist/{spinner-JtlFJ7Nc.js → spinner-Cpf7oRkF.js} +5 -5
- package/dist/{spinner-JtlFJ7Nc.js.map → spinner-Cpf7oRkF.js.map} +1 -1
- package/dist/{structure-BvW4vG4H.js → structure-CRdqVawd.js} +14 -14
- package/dist/{structure-BvW4vG4H.js.map → structure-CRdqVawd.js.map} +1 -1
- package/dist/{structure.recipes-DjqnBpwz.js → structure.recipes-Bqhf9oIh.js} +2 -2
- package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-CQfRr-VL.js → surface-recipes-Dd__PD-w.js} +4 -3
- package/dist/surface-recipes-Dd__PD-w.js.map +1 -0
- package/dist/{table-DnlAJ-xR.js → table-CLtJTxoR.js} +17 -16
- package/dist/table-CLtJTxoR.js.map +1 -0
- package/dist/table-CcRDZiLP.js +1444 -0
- package/dist/table-CcRDZiLP.js.map +1 -0
- package/dist/tabs-BNgu7g0u.js +188 -0
- package/dist/tabs-BNgu7g0u.js.map +1 -0
- package/dist/text-inputs-DsR56TR-.js +330 -0
- package/dist/text-inputs-DsR56TR-.js.map +1 -0
- package/dist/{text.styles-BwB7vAF2.js → text.styles-Q4sGAIgA.js} +18 -10
- package/dist/text.styles-Q4sGAIgA.js.map +1 -0
- package/dist/theme.css +77 -115
- package/dist/{timelines-CnZ2S_Gr.js → timelines-D1pkt3se.js} +84 -78
- package/dist/timelines-D1pkt3se.js.map +1 -0
- package/dist/{tree-COD9BGdU.js → tree-BtmYyMZV.js} +8 -8
- package/dist/{tree-COD9BGdU.js.map → tree-BtmYyMZV.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-BxQgiZyw.js +96 -0
- package/dist/typography-BxQgiZyw.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-CftIB6TY.js → ui-provider-DRPn3qNl.js} +3 -2
- package/dist/ui-provider-DRPn3qNl.js.map +1 -0
- package/dist/ui-provider.js +1 -1
- package/dist/{upload-DIzw1dx1.js → upload-CDbYw1WN.js} +326 -323
- package/dist/upload-CDbYw1WN.js.map +1 -0
- package/dist/{upload-queue-xRJ3qDmd.js → upload-queue-CNd_hH_a.js} +25 -25
- package/dist/upload-queue-CNd_hH_a.js.map +1 -0
- package/dist/usage-card-VyJLUwRr.js +457 -0
- package/dist/usage-card-VyJLUwRr.js.map +1 -0
- package/dist/utils-BvH9PSmq.js +4275 -0
- package/dist/utils-BvH9PSmq.js.map +1 -0
- package/dist/value-inputs-D0KCrfVC.js +840 -0
- package/dist/value-inputs-D0KCrfVC.js.map +1 -0
- package/dist/{workspace-Cbqz4FzN.js → workspace-CcR8r-Nt.js} +115 -122
- package/dist/workspace-CcR8r-Nt.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +112 -18
- package/docs/consumer-skill/examples/analytics.tsx +34 -0
- package/docs/consumer-skill/examples/app-layout.tsx +42 -12
- package/docs/consumer-skill/examples/detail.tsx +24 -9
- package/docs/consumer-skill/examples/manifest.json +27 -1
- package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
- package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
- 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 +219 -2
- package/docs/consumer-skill/references/design-contract.md +37 -10
- package/docs/consumer-skill/references/discovery.md +93 -5
- package/docs/consumer-skill/references/installation.md +20 -3
- package/docs/consumer-skill/references/integration.md +26 -0
- package/docs/consumer-skill/references/public-api.json +2416 -388
- package/docs/consumer-skill/references/review.md +126 -0
- package/docs/consumer-skill/references/theming.md +52 -7
- package/docs/consumer-skill/references/tokens.json +177 -9
- package/docs/consumer-skill/references/workflows.md +129 -1
- package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
- package/docs/consumer-skill/scripts/composition-policy.mjs +317 -0
- package/docs/consumer-skill/scripts/discovery.mjs +65 -8
- package/docs/consumer-skill/scripts/surface-policy.mjs +66 -0
- package/package.json +30 -6
- package/dist/accordion-BRWh3BM1.js.map +0 -1
- package/dist/action-menu-Cx3SdfbN.js.map +0 -1
- package/dist/affordance-geometry.generated-DXl-Zb3Z.js +0 -23
- package/dist/affordance-geometry.generated-DXl-Zb3Z.js.map +0 -1
- package/dist/ai-artifact-DkOArd3-.js.map +0 -1
- package/dist/app-shell-BH_bGcE2.js.map +0 -1
- package/dist/auth-BDB1V_2q.js +0 -704
- package/dist/auth-BDB1V_2q.js.map +0 -1
- package/dist/avatar-CsnWaYmt.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/choice-inputs-CavA-SGV.js +0 -644
- package/dist/choice-inputs-CavA-SGV.js.map +0 -1
- package/dist/code-block-DIlqzoiD.js.map +0 -1
- package/dist/combobox-CHD750do.js.map +0 -1
- package/dist/combobox-HDftpzxt.js.map +0 -1
- package/dist/command-D0kWBZfd.js.map +0 -1
- package/dist/comments-CvYeglMS.js +0 -1132
- package/dist/comments-CvYeglMS.js.map +0 -1
- package/dist/containers-CPNyNo1_.js.map +0 -1
- package/dist/data-display-b3d1TfL4.js.map +0 -1
- package/dist/date-picker-DI6kPNof.js.map +0 -1
- package/dist/date-pickers-ByP6Cv2z.js +0 -224
- package/dist/date-pickers-ByP6Cv2z.js.map +0 -1
- package/dist/feedback-a9j9J-9A.js +0 -391
- package/dist/feedback-a9j9J-9A.js.map +0 -1
- package/dist/field-affordance-recipes-CHdUtn2Z.js +0 -17
- package/dist/field-affordance-recipes-CHdUtn2Z.js.map +0 -1
- package/dist/field-state-recipes-CBTRt9Bt.js.map +0 -1
- package/dist/filters-qtrcv1hf.js.map +0 -1
- package/dist/form-field-C6W-y2hR.js.map +0 -1
- package/dist/form-sizing-39NohSqn.js.map +0 -1
- package/dist/forms-numeric-Y15Bg5Nr.js +0 -867
- package/dist/forms-numeric-Y15Bg5Nr.js.map +0 -1
- package/dist/header-B8ex54cY.js.map +0 -1
- package/dist/http-CLTVJc5I.js.map +0 -1
- package/dist/input-DMorJiTI.js +0 -202
- package/dist/input-DMorJiTI.js.map +0 -1
- package/dist/input-ci9fIgFH.js +0 -20
- package/dist/input-ci9fIgFH.js.map +0 -1
- package/dist/item-pJ0GsOiJ.js.map +0 -1
- package/dist/media-gallery-Ca4YmvBi.js.map +0 -1
- package/dist/message-B5-6LeYl.js +0 -108
- package/dist/message-B5-6LeYl.js.map +0 -1
- package/dist/navigation-BTrEb5u4.js.map +0 -1
- package/dist/navigation-DqEITuD2.js.map +0 -1
- package/dist/navigation-row-recipes-BFpvGPGE.js.map +0 -1
- package/dist/overlays-DBqV0J_V.js +0 -982
- package/dist/overlays-DBqV0J_V.js.map +0 -1
- package/dist/page-BMBGjJY8.js.map +0 -1
- package/dist/page-header-BH41wCyY.js.map +0 -1
- package/dist/pagination-C29vvt3I.js.map +0 -1
- package/dist/popover-TInGXsjg.js.map +0 -1
- package/dist/popover.recipes-zgBhMlUu.js.map +0 -1
- package/dist/primitives-DKPOGVpj.js.map +0 -1
- package/dist/rich-text-editor-BZSJchAF.js +0 -575
- package/dist/rich-text-editor-BZSJchAF.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/sheet-vOUloJ4O.js.map +0 -1
- package/dist/sidebar-C3UKkbC5.js.map +0 -1
- package/dist/sidebar-CNBKFDRW.js.map +0 -1
- package/dist/smart-card-B5FcKODh.js.map +0 -1
- package/dist/structure.recipes-DjqnBpwz.js.map +0 -1
- package/dist/surface-recipes-CQfRr-VL.js.map +0 -1
- package/dist/table-DnlAJ-xR.js.map +0 -1
- package/dist/table-ghtAQ-JJ.js +0 -1424
- package/dist/table-ghtAQ-JJ.js.map +0 -1
- package/dist/tabs-DY09eoZg.js +0 -187
- package/dist/tabs-DY09eoZg.js.map +0 -1
- package/dist/text-inputs-BhOcedTo.js +0 -331
- package/dist/text-inputs-BhOcedTo.js.map +0 -1
- package/dist/text.styles-BwB7vAF2.js.map +0 -1
- package/dist/timelines-CnZ2S_Gr.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-DIzw1dx1.js.map +0 -1
- package/dist/upload-queue-xRJ3qDmd.js.map +0 -1
- package/dist/utils-C2EKeIw3.js +0 -72
- package/dist/utils-C2EKeIw3.js.map +0 -1
- package/dist/value-inputs-Co1fu-xv.js +0 -824
- package/dist/value-inputs-Co1fu-xv.js.map +0 -1
- package/dist/workspace-Cbqz4FzN.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-pickers-ByP6Cv2z.js","names":["React","CalendarIcon","useDatesConfig","cn","Button","Text","Label","Stack","PICKER_TRIGGER_CHROME","defaultDatePickerStrings","DatePickerHeader","DatePickerFooter","PopoverTrigger","Popover","PopoverContent","SelectValue","SelectItem","SelectContent","SelectTrigger","Select","React$1","DEFAULT_YEAR_SPAN","MonthYearPicker","dateFormat","currentYear","open","setOpen","selection","setSelection","value","defaultValue","dates","dateFnsLocale","locale","enUS","t","useStrings","strings","triggerId","describedBy","ariaDescribedBy","error","monthSelectId","yearSelectId","yearRange","start","fromYear","end","toYear","i","monthNames","format","createOutput","date","year","month","readableFormat","handleMonthChange","monthValue","handleYearChange","yearValue","handleConfirm","onValueChange","closeOnSelect","buttonText","placeholder","className","label","hint","triggerProps","iconOnly","Calendar","header","index","name","disabled","footer"],"sources":["../src/components/base/date-pickers/month-year-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '../buttons';\nimport { Stack } from '../structure';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue\n} from '../../ui/select';\nimport { Label, Text } from '../../typography';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useStrings } from '../../../lib/strings';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { PICKER_TRIGGER_CHROME } from './date-picker.recipes';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { MonthYearPickerProps, MonthYearOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\n\n/** Years offered on either side of the current year when no range is given. */\nconst DEFAULT_YEAR_SPAN = 10;\n\nexport const MonthYearPicker = React.forwardRef<HTMLDivElement, MonthYearPickerProps>(function MonthYearPicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tformat: dateFormat = 'yyyy-MM',\n\treadableFormat = 'MMMM yyyy',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tdisabled = false,\n\tclassName,\n\tcloseOnSelect = true,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tfromYear,\n\ttoYear,\n\ticonOnly = false\n}: MonthYearPickerProps, ref) {\n\tconst currentYear = new Date().getFullYear();\n\tconst [open, setOpen] = React.useState(false);\n\tconst [selection, setSelection] = React.useState<{\n\t\tmonth: number;\n\t\tyear: number;\n\t} | undefined>(value ?? defaultValue);\n\n\tconst dates = useDatesConfig();\n\tconst dateFnsLocale = locale ?? dates.locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings);\n\tconst triggerId = React.useId();\n\t// Mirrors the DatePicker variants: the error line is the trigger's\n\t// description, so screen readers announce it with the control.\n\tconst describedBy = `${triggerId}-description`;\n\tconst ariaDescribedBy = error ? describedBy : undefined;\n\t// Derived from useId so several pickers can coexist on one page; these were\n\t// previously the fixed literals \"month-select\" / \"year-select\".\n\tconst monthSelectId = `${triggerId}-month`;\n\tconst yearSelectId = `${triggerId}-year`;\n\n\t// Year range. Anchored to the current year rather than fixed literals: the\n\t// previous 2017–2035 defaults would have stopped offering any future year\n\t// once 2035 arrived.\n\tconst yearRange = React.useMemo(() => {\n\t\tconst start = fromYear ?? currentYear - DEFAULT_YEAR_SPAN;\n\t\tconst end = toYear ?? currentYear + DEFAULT_YEAR_SPAN;\n\t\treturn Array.from({ length: Math.max(end - start + 1, 1) }, (_, i) => start + i);\n\t}, [fromYear, toYear, currentYear]);\n\n\t// Month names (localized)\n\tconst monthNames = React.useMemo(() => {\n\t\treturn Array.from({ length: 12 }, (_, i) => {\n\t\t\tconst date = new Date(2000, i, 1);\n\t\t\treturn format(date, 'MMMM', { locale: dateFnsLocale });\n\t\t});\n\t}, [dateFnsLocale]);\n\n\t// Sync internal state with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetSelection(value);\n\t\t}\n\t}, [value]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(month: number, year: number): MonthYearOutput => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tyear,\n\t\t\t\tformatted: format(date, dateFormat, { locale: dateFnsLocale }),\n\t\t\t\treadable: format(date, readableFormat, { locale: dateFnsLocale }),\n\t\t\t\tdate\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection change\n\tconst handleMonthChange = React.useCallback(\n\t\t(monthValue: unknown) => {\n\t\t\tconst monthStr = String(monthValue);\n\t\t\tconst month = parseInt(monthStr, 10);\n\t\t\tconst year = selection?.year ?? currentYear;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.year, currentYear]\n\t);\n\n\tconst handleYearChange = React.useCallback(\n\t\t(yearValue: unknown) => {\n\t\t\tconst yearStr = String(yearValue);\n\t\t\tconst year = parseInt(yearStr, 10);\n\t\t\tconst month = selection?.month ?? 0;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.month]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tif (selection) {\n\t\t\tonValueChange?.(createOutput(selection.month, selection.year));\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t}, [selection, onValueChange, createOutput, closeOnSelect]);\n\n\t// Button display text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (selection) {\n\t\t\tconst date = new Date(selection.year, selection.month, 1);\n\t\t\treturn format(date, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectMonthYear;\n\t}, [selection, readableFormat, dateFnsLocale, placeholder, t.selectMonthYear]);\n\n\treturn (\n\t\t<Stack ref={ref} gap=\"md\" className={cn('month-year-picker--component', className)}>\n\t\t\t{!!(label || (hint && !error)) && (\n\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"xs\">\n\t\t\t\t\t{!!label && (\n\t\t\t\t\t\t<Label\n\t\t\t\t\t\t\thtmlFor={triggerId}\n\t\t\t\t\t\t\tclassName={cn('leading-6', error && 'text-destructive')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</Label>\n\t\t\t\t\t)}\n\t\t\t\t\t{!error && !!hint && (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t{hint}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t)}\n\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\taria-invalid={!!error}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t// Icon-only drops the visible value, so the action name has to\n\t\t\t\t\t\t\t// carry the button on its own.\n\t\t\t\t\t\t\taria-label={iconOnly ? t.selectMonthYear : undefined}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t// After the chrome: both set padding-x, and the square form\n\t\t\t\t\t\t\t\t// needs the later word.\n\t\t\t\t\t\t\t\ticonOnly && '!w-control shrink-0 justify-center !px-0',\n\t\t\t\t\t\t\t\t!selection && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className={cn('size-icon', !iconOnly && 'mr-control-gap')} />\n\t\t\t\t\t\t\t{!iconOnly && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tinset=\"flush\"\n\t\t\t\t\tclassName=\"w-80 gap-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t{/* Month and Year Selectors */}\n\t\t\t\t\t<div className=\"p-surface\">\n\t\t\t\t\t<Stack gap=\"xl\">\n\t\t\t\t\t\t{/* Month Selector */}\n\t\t\t\t\t\t<Stack gap=\"md\">\n\t\t\t\t\t\t\t<Label htmlFor={monthSelectId}>{t.month}</Label>\n\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\titems={monthNames.map((label, index) => ({ label, value: index.toString() }))}\n\t\t\t\t\t\t\t\tvalue={selection?.month?.toString()}\n\t\t\t\t\t\t\t\tonValueChange={handleMonthChange}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectTrigger id={monthSelectId} className=\"w-full\">\n\t\t\t\t\t\t\t\t<SelectValue placeholder={<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"text-inherit\">{t.month}</Text>} />\n\t\t\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t\t\t{monthNames.map((name, index) => (\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={name} value={index.toString()}>\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"text-inherit\">{name}</Text>\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t</Stack>\n\n\t\t\t\t\t\t{/* Year Selector */}\n\t\t\t\t\t\t<Stack gap=\"md\">\n\t\t\t\t\t\t\t<Label htmlFor={yearSelectId}>{t.year}</Label>\n\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\tvalue={selection?.year?.toString()}\n\t\t\t\t\t\t\t\tonValueChange={handleYearChange}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectTrigger id={yearSelectId} className=\"w-full\">\n\t\t\t\t\t\t\t\t<SelectValue placeholder={<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"text-inherit\">{t.year}</Text>} />\n\t\t\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t\t\t{yearRange.map((year) => (\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={year} value={year.toString()}>\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" numeric lineHeight=\"tight\" className=\"text-inherit\">{year}</Text>\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Confirm Button */}\n\t\t\t\t\t<div className=\"px-surface pb-surface\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\tdisabled={disabled || !selection}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!footer && !!selection && (\n\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\toutput={createOutput(selection.month, selection.year)}\n\t\t\t\t\t\t\thasSelection={!!selection}\n\t\t\t\t\t\t\tautoSummary={buttonText}\n\t\t\t\t\t\t/>\n\t\t)}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t\t{!!error && (\n\t\t\t\t<Text id={describedBy} size=\"xs\" type=\"error\" content={error} />\n\t\t\t)}\n\t\t</Stack>\n\t);\n});\n\n// Convenience export for type\nexport type { MonthYearPickerProps, MonthYearOutput };\n\nMonthYearPicker.displayName = 'MonthYearPicker';\n"],"mappings":"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"}
|
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { _ as e, c as t, s as n } from "./ui-provider-CftIB6TY.js";
|
|
3
|
-
import { useStrings as r } from "./lib/strings.js";
|
|
4
|
-
import { t as i } from "./utils-C2EKeIw3.js";
|
|
5
|
-
import { n as a } from "./buttons-Co6GavvM.js";
|
|
6
|
-
import { a as o } from "./typography-Cv8MT-82.js";
|
|
7
|
-
import { t as s } from "./structure-BvW4vG4H.js";
|
|
8
|
-
import { n as c } from "./track-recipes-LLPNVwFg.js";
|
|
9
|
-
import { t as l } from "./skeleton-BvRhK8y-.js";
|
|
10
|
-
import { createContext as u, forwardRef as d, useContext as f, useId as p, useMemo as m } from "react";
|
|
11
|
-
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
12
|
-
import { AlertCircle as v, Loader2 as y } from "lucide-react";
|
|
13
|
-
import { cva as b } from "class-variance-authority";
|
|
14
|
-
import { Progress as x } from "@base-ui/react/progress";
|
|
15
|
-
//#region src/components/ui/empty.tsx
|
|
16
|
-
function S({ className: e, ...t }) {
|
|
17
|
-
return /* @__PURE__ */ g("div", {
|
|
18
|
-
"data-slot": "empty",
|
|
19
|
-
className: i("gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance", e),
|
|
20
|
-
...t
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
function C({ className: e, ...t }) {
|
|
24
|
-
return /* @__PURE__ */ g("div", {
|
|
25
|
-
"data-slot": "empty-header",
|
|
26
|
-
className: i("gap-2 flex max-w-sm flex-col items-center", e),
|
|
27
|
-
...t
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
var w = b("mb-space-md flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
31
|
-
variants: { variant: {
|
|
32
|
-
default: "bg-transparent",
|
|
33
|
-
icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
|
|
34
|
-
} },
|
|
35
|
-
defaultVariants: { variant: "default" }
|
|
36
|
-
});
|
|
37
|
-
function ee({ className: e, variant: t = "default", ...n }) {
|
|
38
|
-
return /* @__PURE__ */ g("div", {
|
|
39
|
-
"data-slot": "empty-icon",
|
|
40
|
-
"data-variant": t,
|
|
41
|
-
className: i(w({
|
|
42
|
-
variant: t,
|
|
43
|
-
className: e
|
|
44
|
-
})),
|
|
45
|
-
...n
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function T({ className: e, ...t }) {
|
|
49
|
-
return /* @__PURE__ */ g("div", {
|
|
50
|
-
"data-slot": "empty-title",
|
|
51
|
-
className: i("text-lg font-medium tracking-tight", e),
|
|
52
|
-
...t
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
function E({ className: e, ...t }) {
|
|
56
|
-
return /* @__PURE__ */ g("div", {
|
|
57
|
-
"data-slot": "empty-description",
|
|
58
|
-
className: i("text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", e),
|
|
59
|
-
...t
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
function D({ className: e, ...t }) {
|
|
63
|
-
return /* @__PURE__ */ g("div", {
|
|
64
|
-
"data-slot": "empty-content",
|
|
65
|
-
className: i("gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance", e),
|
|
66
|
-
...t
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
//#endregion
|
|
70
|
-
//#region src/components/base/feedback/empty.tsx
|
|
71
|
-
function O(e) {
|
|
72
|
-
return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
|
|
73
|
-
}
|
|
74
|
-
function k({ className: e, ...t }) {
|
|
75
|
-
return /* @__PURE__ */ g(S, {
|
|
76
|
-
className: i("empty--component gap-space-lg rounded-radius-lg p-surface", e),
|
|
77
|
-
...t
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
function A({ className: e, ...t }) {
|
|
81
|
-
return /* @__PURE__ */ g(C, {
|
|
82
|
-
className: i("empty-header--component gap-normal", e),
|
|
83
|
-
...t
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
function j({ className: e, ...t }) {
|
|
87
|
-
return /* @__PURE__ */ g(ee, {
|
|
88
|
-
className: i("empty-media--component mb-space-sm", e),
|
|
89
|
-
...t
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
function M({ className: e, headingLevel: t = 3, role: n, "aria-level": r, children: a, ...s }) {
|
|
93
|
-
let c = n ?? "heading";
|
|
94
|
-
return /* @__PURE__ */ g(T, {
|
|
95
|
-
role: c,
|
|
96
|
-
"aria-level": r ?? (c === "heading" ? t : void 0),
|
|
97
|
-
className: i("empty-title--component tracking-normal", e),
|
|
98
|
-
...s,
|
|
99
|
-
children: O(a) ? /* @__PURE__ */ g(o, {
|
|
100
|
-
tag: "span",
|
|
101
|
-
size: "base",
|
|
102
|
-
weight: "semibold",
|
|
103
|
-
lineHeight: "tight",
|
|
104
|
-
children: a
|
|
105
|
-
}) : a
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
function N({ className: e, children: t, ...n }) {
|
|
109
|
-
return /* @__PURE__ */ g(E, {
|
|
110
|
-
className: i("empty-description--component", e),
|
|
111
|
-
...n,
|
|
112
|
-
children: O(t) ? /* @__PURE__ */ g(o, {
|
|
113
|
-
tag: "span",
|
|
114
|
-
type: "secondary",
|
|
115
|
-
lineHeight: "relaxed",
|
|
116
|
-
children: t
|
|
117
|
-
}) : t
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
function P({ className: e, children: t, ...n }) {
|
|
121
|
-
return /* @__PURE__ */ g(D, {
|
|
122
|
-
className: i("empty-content--component gap-space-md", e),
|
|
123
|
-
...n,
|
|
124
|
-
children: O(t) ? /* @__PURE__ */ g(o, { children: t }) : t
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
k.displayName = "Empty", A.displayName = "EmptyHeader", j.displayName = "EmptyMedia", M.displayName = "EmptyTitle", N.displayName = "EmptyDescription", P.displayName = "EmptyContent";
|
|
128
|
-
//#endregion
|
|
129
|
-
//#region src/components/base/feedback/progress.strings.ts
|
|
130
|
-
var F = { indeterminateValue: "In progress" }, I = u(null);
|
|
131
|
-
function L(e) {
|
|
132
|
-
return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
|
|
133
|
-
}
|
|
134
|
-
var R = {
|
|
135
|
-
neutral: "bg-muted-foreground",
|
|
136
|
-
primary: "bg-primary",
|
|
137
|
-
secondary: "bg-secondary-foreground",
|
|
138
|
-
success: "bg-success",
|
|
139
|
-
info: "bg-info",
|
|
140
|
-
warning: "bg-warning",
|
|
141
|
-
destructive: "bg-destructive"
|
|
142
|
-
};
|
|
143
|
-
function z(e, t) {
|
|
144
|
-
return typeof t == "function" ? (n) => i(e, t(n)) : i(e, t);
|
|
145
|
-
}
|
|
146
|
-
function te(e, t) {
|
|
147
|
-
let n = Number.isFinite(e) ? e : 0, r = Number.isFinite(t) ? t : 100;
|
|
148
|
-
return {
|
|
149
|
-
min: n,
|
|
150
|
-
max: r > n ? r : n + 100
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
function ne(e, t, n) {
|
|
154
|
-
return e === null || !Number.isFinite(e) ? null : Math.min(n, Math.max(t, e));
|
|
155
|
-
}
|
|
156
|
-
function B(e, t, n, r, i) {
|
|
157
|
-
if (e === null) return null;
|
|
158
|
-
if (i) return new Intl.NumberFormat(r, i).format(e);
|
|
159
|
-
let a = n === t ? 0 : (e - t) / (n - t);
|
|
160
|
-
return new Intl.NumberFormat(r, {
|
|
161
|
-
style: "percent",
|
|
162
|
-
maximumFractionDigits: 0
|
|
163
|
-
}).format(a);
|
|
164
|
-
}
|
|
165
|
-
var V = d(function({ value: i, min: a, max: c, format: l, locale: u, getAriaValueText: d, children: f, label: v, description: y, metadata: b, showValue: S, valueSlot: C, headerSlot: w, trackSlot: ee, size: T, tone: E = "primary", trackProps: D, indicatorProps: O, strings: k, className: A, "aria-describedby": j, ...M }, N) {
|
|
166
|
-
let P = r(F, k), R = t(), { defaultScale: V } = n(), K = e(T, V), q = u ?? R.locale, J = p(), { min: Y, max: X } = te(a, c), Z = ne(i, Y, X), Q = B(Z, Y, X, q, l), re = w === void 0 && f === void 0, $ = S ?? v !== void 0, ie = v !== void 0 || y !== void 0 || b !== void 0 || C !== void 0 || $, ae = [j, re && y !== void 0 ? J : void 0].filter(Boolean).join(" ") || void 0, oe = (e, t) => {
|
|
167
|
-
let n = B(t, Y, X, q, l);
|
|
168
|
-
return d ? d(n, t) : n ?? P.indeterminateValue;
|
|
169
|
-
}, se = m(() => ({
|
|
170
|
-
formattedValue: Q,
|
|
171
|
-
value: Z
|
|
172
|
-
}), [Q, Z]), ce = w ?? f ?? (ie ? /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ _("div", {
|
|
173
|
-
className: "progress--summary min-w-0",
|
|
174
|
-
children: [v !== void 0 && /* @__PURE__ */ g(W, { children: v }), y !== void 0 && (L(y) ? /* @__PURE__ */ g(o, {
|
|
175
|
-
id: J,
|
|
176
|
-
tag: "span",
|
|
177
|
-
size: "xs",
|
|
178
|
-
type: "secondary",
|
|
179
|
-
className: "progress--description mt-space-2xs block",
|
|
180
|
-
children: y
|
|
181
|
-
}) : /* @__PURE__ */ g("div", {
|
|
182
|
-
id: J,
|
|
183
|
-
className: "progress--description mt-space-2xs",
|
|
184
|
-
children: y
|
|
185
|
-
}))]
|
|
186
|
-
}), ($ || C !== void 0 || b !== void 0) && /* @__PURE__ */ _(s, {
|
|
187
|
-
gap: "2xs",
|
|
188
|
-
align: "end",
|
|
189
|
-
className: "progress--details text-right",
|
|
190
|
-
children: [C ?? ($ ? /* @__PURE__ */ g(G, {}) : null), b !== void 0 && (L(b) ? /* @__PURE__ */ g(o, {
|
|
191
|
-
tag: "span",
|
|
192
|
-
size: "xs",
|
|
193
|
-
type: "secondary",
|
|
194
|
-
className: "progress--metadata tabular-nums",
|
|
195
|
-
children: b
|
|
196
|
-
}) : b)]
|
|
197
|
-
})] }) : null), le = ee ?? /* @__PURE__ */ g(H, {
|
|
198
|
-
...D,
|
|
199
|
-
size: D?.size ?? K,
|
|
200
|
-
children: D?.children ?? /* @__PURE__ */ g(U, {
|
|
201
|
-
...O,
|
|
202
|
-
tone: O?.tone ?? E
|
|
203
|
-
})
|
|
204
|
-
});
|
|
205
|
-
return /* @__PURE__ */ g(I.Provider, {
|
|
206
|
-
value: se,
|
|
207
|
-
children: /* @__PURE__ */ _(x.Root, {
|
|
208
|
-
ref: N,
|
|
209
|
-
value: Z,
|
|
210
|
-
min: Y,
|
|
211
|
-
max: X,
|
|
212
|
-
format: l,
|
|
213
|
-
locale: q,
|
|
214
|
-
getAriaValueText: oe,
|
|
215
|
-
"aria-describedby": ae,
|
|
216
|
-
"data-slot": "progress",
|
|
217
|
-
"data-size": K,
|
|
218
|
-
"data-tone": E,
|
|
219
|
-
className: z("progress--component grid min-w-0 w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-space-lg gap-y-space-sm", A),
|
|
220
|
-
...M,
|
|
221
|
-
children: [ce, le]
|
|
222
|
-
})
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
V.displayName = "Progress";
|
|
226
|
-
var H = d(function({ className: t, size: r, ...a }, o) {
|
|
227
|
-
let { defaultScale: s } = n(), l = e(r, s);
|
|
228
|
-
return /* @__PURE__ */ g(x.Track, {
|
|
229
|
-
ref: o,
|
|
230
|
-
"data-slot": "progress-track",
|
|
231
|
-
"data-size": l,
|
|
232
|
-
className: z(i("progress-track--component progress--track relative col-span-full flex w-full items-center overflow-hidden rounded-full bg-muted", c[l]), t),
|
|
233
|
-
...a
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
H.displayName = "ProgressTrack";
|
|
237
|
-
var U = d(function({ className: e, tone: t = "primary", ...n }, r) {
|
|
238
|
-
return /* @__PURE__ */ g(x.Indicator, {
|
|
239
|
-
ref: r,
|
|
240
|
-
"data-slot": "progress-indicator",
|
|
241
|
-
"data-tone": t,
|
|
242
|
-
className: z(i("progress-indicator--component progress--indicator h-full rounded-full transition-[width] duration-300 ease-out motion-reduce:transition-none", "data-[indeterminate]:w-full motion-safe:data-[indeterminate]:animate-pulse", R[t]), e),
|
|
243
|
-
...n
|
|
244
|
-
});
|
|
245
|
-
});
|
|
246
|
-
U.displayName = "ProgressIndicator";
|
|
247
|
-
var W = d(function({ className: e, children: t, ...n }, r) {
|
|
248
|
-
return /* @__PURE__ */ g(x.Label, {
|
|
249
|
-
ref: r,
|
|
250
|
-
"data-slot": "progress-label",
|
|
251
|
-
className: z("progress-label--component progress--label min-w-0", e),
|
|
252
|
-
...n,
|
|
253
|
-
children: L(t) ? /* @__PURE__ */ g(o, {
|
|
254
|
-
tag: "span",
|
|
255
|
-
weight: "medium",
|
|
256
|
-
lineHeight: "tight",
|
|
257
|
-
className: "block",
|
|
258
|
-
children: t
|
|
259
|
-
}) : t
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
W.displayName = "ProgressLabel";
|
|
263
|
-
var G = d(function({ className: e, children: t, ...n }, r) {
|
|
264
|
-
let i = f(I);
|
|
265
|
-
return /* @__PURE__ */ g(x.Value, {
|
|
266
|
-
ref: r,
|
|
267
|
-
"data-slot": "progress-value",
|
|
268
|
-
className: z("progress-value--component progress--value whitespace-nowrap", e),
|
|
269
|
-
...n,
|
|
270
|
-
children: (e, n) => {
|
|
271
|
-
let r = i?.value ?? n, a = i?.formattedValue ?? e, s = t ? t(a, r) : a;
|
|
272
|
-
return s == null ? null : L(s) ? /* @__PURE__ */ g(o, {
|
|
273
|
-
tag: "span",
|
|
274
|
-
weight: "medium",
|
|
275
|
-
lineHeight: "tight",
|
|
276
|
-
className: "block tabular-nums",
|
|
277
|
-
children: s
|
|
278
|
-
}) : s;
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
G.displayName = "ProgressValue";
|
|
283
|
-
//#endregion
|
|
284
|
-
//#region src/components/base/feedback/state-display.tsx
|
|
285
|
-
var K = {
|
|
286
|
-
inline: "w-full max-w-full py-row-y",
|
|
287
|
-
panel: "w-full rounded-radius-lg border p-surface"
|
|
288
|
-
}, q = {
|
|
289
|
-
neutral: "border-border bg-card",
|
|
290
|
-
destructive: "border-destructive/30 bg-destructive/5"
|
|
291
|
-
};
|
|
292
|
-
function J(e) {
|
|
293
|
-
return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
|
|
294
|
-
}
|
|
295
|
-
var Y = d(function({ componentClassName: e, variant: t, tone: n, icon: r, title: a, description: c, action: l, details: u, className: d, ...f }, p) {
|
|
296
|
-
let m = e.replace("--component", "");
|
|
297
|
-
return /* @__PURE__ */ _("div", {
|
|
298
|
-
ref: p,
|
|
299
|
-
"data-variant": t,
|
|
300
|
-
"data-tone": n,
|
|
301
|
-
className: i(e, "grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-start gap-x-space-sm", "sm:grid-cols-[auto_minmax(0,1fr)_auto]", K[t], t === "panel" && q[n], d),
|
|
302
|
-
...f,
|
|
303
|
-
children: [
|
|
304
|
-
/* @__PURE__ */ g("span", {
|
|
305
|
-
"aria-hidden": "true",
|
|
306
|
-
className: i(`${m}--icon`, "mt-space-2xs inline-flex size-icon shrink-0 items-center justify-center"),
|
|
307
|
-
children: r
|
|
308
|
-
}),
|
|
309
|
-
(a !== void 0 || c !== void 0) && /* @__PURE__ */ _("div", {
|
|
310
|
-
className: i(`${m}--message`, "grid min-w-0", t === "inline" ? "gap-dense" : "gap-normal"),
|
|
311
|
-
children: [a !== void 0 && (J(a) ? /* @__PURE__ */ g(o, {
|
|
312
|
-
tag: "span",
|
|
313
|
-
weight: "semibold",
|
|
314
|
-
className: i(`${m}--title`, "block min-w-0"),
|
|
315
|
-
children: a
|
|
316
|
-
}) : /* @__PURE__ */ g("div", {
|
|
317
|
-
className: i(`${m}--title`, "min-w-0"),
|
|
318
|
-
children: a
|
|
319
|
-
})), c !== void 0 && (J(c) ? /* @__PURE__ */ g(o, {
|
|
320
|
-
tag: "span",
|
|
321
|
-
size: t === "inline" ? "xs" : void 0,
|
|
322
|
-
type: "secondary",
|
|
323
|
-
className: i(`${m}--description`, "block min-w-0"),
|
|
324
|
-
children: c
|
|
325
|
-
}) : /* @__PURE__ */ g("div", {
|
|
326
|
-
className: i(`${m}--description`, "min-w-0"),
|
|
327
|
-
children: c
|
|
328
|
-
}))]
|
|
329
|
-
}),
|
|
330
|
-
l !== void 0 && /* @__PURE__ */ g("div", {
|
|
331
|
-
className: i(`${m}--action`, "col-start-2 row-start-2 mt-space-sm justify-self-start", "sm:col-start-3 sm:row-start-1 sm:mt-0 sm:justify-self-end sm:self-start"),
|
|
332
|
-
children: l
|
|
333
|
-
}),
|
|
334
|
-
u !== void 0 && /* @__PURE__ */ g(s, {
|
|
335
|
-
gap: "md",
|
|
336
|
-
className: i(`${m}--details`, "col-start-2 col-end-[-1] mt-space-md"),
|
|
337
|
-
children: u
|
|
338
|
-
})
|
|
339
|
-
]
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
Y.displayName = "StateDisplayFrame";
|
|
343
|
-
var X = d(function({ label: e, description: t, progress: n, variant: r = "inline", skeleton: i = !1, lines: a = 3, icon: o, className: s, ...c }, u) {
|
|
344
|
-
let d = typeof n == "number" ? Math.min(100, Math.max(0, n)) : void 0;
|
|
345
|
-
return /* @__PURE__ */ g(Y, {
|
|
346
|
-
ref: u,
|
|
347
|
-
role: "status",
|
|
348
|
-
"aria-live": "polite",
|
|
349
|
-
componentClassName: "loading-state--component",
|
|
350
|
-
variant: r,
|
|
351
|
-
tone: "neutral",
|
|
352
|
-
icon: o ?? /* @__PURE__ */ g(y, { className: "size-icon animate-spin text-muted-foreground" }),
|
|
353
|
-
title: e,
|
|
354
|
-
description: t,
|
|
355
|
-
details: d !== void 0 || i ? /* @__PURE__ */ _(h, { children: [d !== void 0 && /* @__PURE__ */ g(V, {
|
|
356
|
-
value: d,
|
|
357
|
-
size: "sm",
|
|
358
|
-
showValue: !1,
|
|
359
|
-
"aria-label": typeof e == "string" ? e : void 0
|
|
360
|
-
}), i === !0 ? /* @__PURE__ */ g(l, { lines: a }) : i] }) : void 0,
|
|
361
|
-
className: s,
|
|
362
|
-
...c
|
|
363
|
-
});
|
|
364
|
-
});
|
|
365
|
-
X.displayName = "LoadingState";
|
|
366
|
-
var Z = d(function({ title: e, description: t, action: n, onRetry: r, retryLabel: i, variant: o = "panel", icon: s, className: c, ...l }, u) {
|
|
367
|
-
return /* @__PURE__ */ g(Y, {
|
|
368
|
-
ref: u,
|
|
369
|
-
role: "alert",
|
|
370
|
-
componentClassName: "error-state--component",
|
|
371
|
-
variant: o,
|
|
372
|
-
tone: "destructive",
|
|
373
|
-
icon: s ?? /* @__PURE__ */ g(v, { className: "size-icon text-destructive" }),
|
|
374
|
-
title: e,
|
|
375
|
-
description: t,
|
|
376
|
-
action: n ?? (r && i ? /* @__PURE__ */ g(a, {
|
|
377
|
-
type: "button",
|
|
378
|
-
tone: "destructive",
|
|
379
|
-
buttonStyle: "ghost",
|
|
380
|
-
onClick: r,
|
|
381
|
-
children: i
|
|
382
|
-
}) : void 0),
|
|
383
|
-
className: c,
|
|
384
|
-
...l
|
|
385
|
-
});
|
|
386
|
-
});
|
|
387
|
-
Z.displayName = "ErrorState";
|
|
388
|
-
//#endregion
|
|
389
|
-
export { W as a, F as c, N as d, A as f, U as i, k as l, M as m, X as n, H as o, j as p, V as r, G as s, Z as t, P as u };
|
|
390
|
-
|
|
391
|
-
//# sourceMappingURL=feedback-a9j9J-9A.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-a9j9J-9A.js","names":["Empty","EmptyHeader","EmptyMedia","EmptyTitle","EmptyDescription","EmptyContent","isSimpleText","EmptyPrimitive","EmptyHeaderPrimitive","EmptyMediaPrimitive","EmptyTitlePrimitive","EmptyDescriptionPrimitive","EmptyContentPrimitive","isSimpleText","Progress","_Fragment","ProgressPrimitive","_Fragment","Progress","resolveComponentScale","useFormattingConfig","useDensityConfig","cn","Button","Text","Stack","trackHeightClasses","ContentSkeleton","Fragment$1","Empty$1","props","className","EmptyHeader$1","emptyMediaVariants","cva","EmptyMedia$1","variant","EmptyTitle$1","EmptyDescription$1","EmptyContent$1","isSimpleText$2","value","Empty","EmptyHeader","EmptyMedia","EmptyTitle","ariaLevel","resolvedRole","role","headingLevel","children","EmptyDescription","EmptyContent","defaultProgressStrings","ProgressContext","createContext","isSimpleText$1","INDICATOR_TONE_CLASSNAMES","mergeStateClassName","baseClassName","state","normalizeRange","min","minProp","maxCandidate","maxProp","normalizeValue","max","formatProgressValue","format","locale","normalized","Progress$1","forwardRef","valueProp","showValueProp","sizeProp","stringsProp","ariaDescribedBy","strings","useStrings","formatting","size","defaultScale","resolvedLocale","descriptionId","useId","formattedValue","usesGeneratedHeader","headerSlot","showValue","label","hasSummary","description","metadata","valueSlot","descriptionIds","resolvedGetAriaValueText","normalizedFormattedValue","currentValue","getAriaValueText","contextValue","useMemo","resolvedHeader","ProgressLabel","ProgressValue","resolvedTrack","trackSlot","ProgressTrack","trackProps","ProgressIndicator","indicatorProps","tone","Progress","context","useContext","primitiveValue","_primitiveFormattedValue","content","frameVariantClass","frameToneClass","isSimpleText","StateDisplayFrame","regionPrefix","componentClassName","icon","title","action","details","LoadingState","resolvedProgress","progress","Loader2","skeleton","ErrorState","AlertCircle","onRetry","retryLabel"],"sources":["../src/components/ui/empty.tsx","../src/components/base/feedback/empty.tsx","../src/components/base/feedback/progress.strings.ts","../src/components/base/feedback/progress.tsx","../src/components/base/feedback/state-display.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"gap-2 flex max-w-sm flex-col items-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-space-md flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n","/**\n * Tokenized low-level empty-state parts.\n *\n * Use the blocks `EmptyState` for an opinionated ready-made state. These\n * parts are for consumers that need to assemble their own media/content/action\n * anatomy without importing the internal shadcn primitive.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport {\n\tEmpty as EmptyPrimitive,\n\tEmptyContent as EmptyContentPrimitive,\n\tEmptyDescription as EmptyDescriptionPrimitive,\n\tEmptyHeader as EmptyHeaderPrimitive,\n\tEmptyMedia as EmptyMediaPrimitive,\n\tEmptyTitle as EmptyTitlePrimitive,\n} from '../../ui/empty';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport type EmptyProps = ComponentProps<typeof EmptyPrimitive>;\nexport type EmptyContentProps = ComponentProps<typeof EmptyContentPrimitive>;\nexport type EmptyDescriptionProps = ComponentProps<typeof EmptyDescriptionPrimitive>;\nexport type EmptyHeaderProps = ComponentProps<typeof EmptyHeaderPrimitive>;\nexport type EmptyMediaProps = ComponentProps<typeof EmptyMediaPrimitive>;\nexport interface EmptyTitleProps extends ComponentProps<typeof EmptyTitlePrimitive> {\n\t/** Accessible heading level used by the default `role=\"heading\"` output. */\n\theadingLevel?: 2 | 3 | 4 | 5 | 6;\n}\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Root layout for a consumer-blocks empty state. */\nexport function Empty({ className, ...props }: EmptyProps) {\n\treturn (\n\t\t<EmptyPrimitive\n\t\t\tclassName={cn('empty--component gap-space-lg rounded-radius-lg p-surface', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n/** Centered title and description stack. */\nexport function EmptyHeader({ className, ...props }: EmptyHeaderProps) {\n\treturn <EmptyHeaderPrimitive className={cn('empty-header--component gap-normal', className)} {...props} />;\n}\n\n/** Optional icon or illustration region. */\nexport function EmptyMedia({ className, ...props }: EmptyMediaProps) {\n\treturn <EmptyMediaPrimitive className={cn('empty-media--component mb-space-sm', className)} {...props} />;\n}\n\n/** Empty-state heading calibrated to the admin typography scale. */\nexport function EmptyTitle({ className, headingLevel = 3, role, 'aria-level': ariaLevel, children, ...props }: EmptyTitleProps) {\n\tconst resolvedRole = role ?? 'heading';\n\treturn (\n\t\t<EmptyTitlePrimitive\n\t\t\trole={resolvedRole}\n\t\t\taria-level={ariaLevel ?? (resolvedRole === 'heading' ? headingLevel : undefined)}\n\t\t\tclassName={cn('empty-title--component tracking-normal', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"base\" weight=\"semibold\" lineHeight=\"tight\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</EmptyTitlePrimitive>\n\t);\n}\n\n/** Supporting explanation for the absence of content. */\nexport function EmptyDescription({ className, children, ...props }: EmptyDescriptionProps) {\n\treturn (\n\t\t<EmptyDescriptionPrimitive className={cn('empty-description--component', className)} {...props}>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" type=\"secondary\" lineHeight=\"relaxed\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</EmptyDescriptionPrimitive>\n\t);\n}\n\n/** Actions or next-step content rendered below the explanation. */\nexport function EmptyContent({ className, children, ...props }: EmptyContentProps) {\n\treturn (\n\t\t<EmptyContentPrimitive className={cn('empty-content--component gap-space-md', className)} {...props}>\n\t\t\t{isSimpleText(children) ? <Text>{children}</Text> : children}\n\t\t</EmptyContentPrimitive>\n\t);\n}\n\nEmpty.displayName = 'Empty';\nEmptyHeader.displayName = 'EmptyHeader';\nEmptyMedia.displayName = 'EmptyMedia';\nEmptyTitle.displayName = 'EmptyTitle';\nEmptyDescription.displayName = 'EmptyDescription';\nEmptyContent.displayName = 'EmptyContent';\n","export interface ProgressStrings {\n\t/** Screen-reader value announced while progress is indeterminate. */\n\tindeterminateValue: string;\n}\n\nexport const defaultProgressStrings: ProgressStrings = {\n\tindeterminateValue: 'In progress',\n};\n","import { trackHeightClasses } from '../../../lib/track-recipes';\n/**\n * Progress — token-driven Base UI progress wrapper for completion, quota,\n * and long-running task states.\n *\n * The root keeps the Base UI accessibility contract while adding a concise\n * admin summary API (`label`, `description`, `metadata`, `showValue`),\n * semantic tones, structural sizes, stable DOM hooks, and composition slots.\n * Consumers can still assemble `ProgressLabel`, `ProgressValue`,\n * `ProgressTrack`, and `ProgressIndicator` directly.\n */\nimport { Progress as ProgressPrimitive } from '@base-ui/react/progress';\nimport { createContext, forwardRef, useContext, useId, useMemo, type ReactNode } from 'react';\n\nimport { Text } from '../../typography';\nimport { Stack } from '../structure';\nimport { useDensityConfig, useFormattingConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport type { SemanticTone } from '../../../lib/component-vocabulary';\n\nimport { defaultProgressStrings, type ProgressStrings } from './progress.strings';\n\nexport type ProgressSize = ComponentScale;\nexport type ProgressTone = SemanticTone;\n\ntype ProgressRootState = ProgressPrimitive.Root.State;\ntype ProgressTrackState = ProgressPrimitive.Track.State;\ntype ProgressIndicatorState = ProgressPrimitive.Indicator.State;\ntype ProgressLabelState = ProgressPrimitive.Label.State;\ntype ProgressValueState = ProgressPrimitive.Value.State;\n\ntype StatefulClassName<TState> = string | ((state: TState) => string | undefined) | undefined;\n\nexport interface ProgressProps extends Omit<\n\tProgressPrimitive.Root.Props,\n\t'children' | 'format' | 'getAriaValueText' | 'locale' | 'max' | 'min' | 'value'\n> {\n\t/** Current value. `null` renders an indeterminate state. */\n\tvalue: number | null;\n\t/** Minimum value used to normalize the visual percentage. @default 0 */\n\tmin?: number;\n\t/** Maximum value used to normalize the visual percentage. @default 100 */\n\tmax?: number;\n\t/** Intl options for formatting the raw value instead of the default normalized percentage. */\n\tformat?: Intl.NumberFormatOptions;\n\t/** Locale forwarded to `Intl.NumberFormat`. */\n\tlocale?: Intl.LocalesArgument;\n\t/** Human-readable text for the current value. Receives the wrapper's normalized display value. */\n\tgetAriaValueText?: (formattedValue: string | null, value: number | null) => string;\n\t/** Low-level compound content. `headerSlot` takes precedence when both are supplied. */\n\tchildren?: ReactNode;\n\t/** Accessible visual label. Supplying it also enables `showValue` by default. */\n\tlabel?: ReactNode;\n\t/** Supporting text automatically connected with `aria-describedby`. */\n\tdescription?: ReactNode;\n\t/** Optional right-aligned task metadata, such as \"18,400 of 25,000 rows\". */\n\tmetadata?: ReactNode;\n\t/** Show the formatted value beside the label. Defaults to `true` when `label` is supplied. */\n\tshowValue?: boolean;\n\t/** Replaces the formatted value while retaining the default summary layout. */\n\tvalueSlot?: ReactNode;\n\t/** Replaces the entire content above the track. */\n\theaderSlot?: ReactNode;\n\t/** Replaces the default track and indicator composition. */\n\ttrackSlot?: ReactNode;\n\t/** Track thickness. @default \"default\" */\n\tsize?: ProgressSize;\n\t/** Semantic indicator color. @default \"primary\" */\n\ttone?: ProgressTone;\n\t/** Props forwarded to the default track. Ignored when `trackSlot` is supplied. */\n\ttrackProps?: ProgressTrackProps;\n\t/** Props forwarded to the default indicator. Ignored when `trackSlot` is supplied. */\n\tindicatorProps?: ProgressIndicatorProps;\n\t/** Override the indeterminate screen-reader copy. */\n\tstrings?: StringsProp<ProgressStrings>;\n}\n\nexport interface ProgressTrackProps extends ProgressPrimitive.Track.Props {\n\t/** Track thickness. @default \"default\" */\n\tsize?: ProgressSize;\n}\n\nexport interface ProgressIndicatorProps extends ProgressPrimitive.Indicator.Props {\n\t/** Semantic fill color. @default \"primary\" */\n\ttone?: ProgressTone;\n}\n\nexport interface ProgressLabelProps extends ProgressPrimitive.Label.Props {\n\t/** Accessible label content. */\n\tchildren?: ReactNode;\n}\n\nexport interface ProgressValueProps extends Omit<ProgressPrimitive.Value.Props, 'children'> {\n\t/** Customize the formatted display while preserving the value semantics. */\n\tchildren?: (formattedValue: string | null, value: number | null) => ReactNode;\n}\n\ninterface ProgressContextValue {\n\tformattedValue: string | null;\n\tvalue: number | null;\n}\n\nconst ProgressContext = createContext<ProgressContextValue | null>(null);\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n\n\nconst INDICATOR_TONE_CLASSNAMES: Record<ProgressTone, string> = {\n\tneutral: 'bg-muted-foreground',\n\tprimary: 'bg-primary',\n\tsecondary: 'bg-secondary-foreground',\n\tsuccess: 'bg-success',\n\tinfo: 'bg-info',\n\twarning: 'bg-warning',\n\tdestructive: 'bg-destructive',\n};\n\nfunction mergeStateClassName<TState>(\n\tbaseClassName: string,\n\tclassName: StatefulClassName<TState>,\n): string | ((state: TState) => string) {\n\tif (typeof className === 'function') {\n\t\treturn (state) => cn(baseClassName, className(state));\n\t}\n\n\treturn cn(baseClassName, className);\n}\n\nfunction normalizeRange(minProp: number | undefined, maxProp: number | undefined) {\n\tconst min = Number.isFinite(minProp) ? (minProp as number) : 0;\n\tconst maxCandidate = Number.isFinite(maxProp) ? (maxProp as number) : 100;\n\tconst max = maxCandidate > min ? maxCandidate : min + 100;\n\n\treturn { min, max };\n}\n\nfunction normalizeValue(value: number | null, min: number, max: number): number | null {\n\tif (value === null || !Number.isFinite(value)) return null;\n\treturn Math.min(max, Math.max(min, value));\n}\n\nfunction formatProgressValue(\n\tvalue: number | null,\n\tmin: number,\n\tmax: number,\n\tlocale: Intl.LocalesArgument | undefined,\n\tformat: Intl.NumberFormatOptions | undefined,\n): string | null {\n\tif (value === null) return null;\n\n\tif (format) {\n\t\treturn new Intl.NumberFormat(locale, format).format(value);\n\t}\n\n\tconst normalized = max === min ? 0 : (value - min) / (max - min);\n\treturn new Intl.NumberFormat(locale, {\n\t\tstyle: 'percent',\n\t\tmaximumFractionDigits: 0,\n\t}).format(normalized);\n}\n\nconst Progress = forwardRef<HTMLDivElement, ProgressProps>(function Progress(\n\t{\n\t\tvalue: valueProp,\n\t\tmin: minProp,\n\t\tmax: maxProp,\n\t\tformat,\n\t\tlocale,\n\t\tgetAriaValueText,\n\t\tchildren,\n\t\tlabel,\n\t\tdescription,\n\t\tmetadata,\n\t\tshowValue: showValueProp,\n\t\tvalueSlot,\n\t\theaderSlot,\n\t\ttrackSlot,\n\t\tsize: sizeProp,\n\t\ttone = 'primary',\n\t\ttrackProps,\n\t\tindicatorProps,\n\t\tstrings: stringsProp,\n\t\tclassName,\n\t\t'aria-describedby': ariaDescribedBy,\n\t\t...props\n\t},\n\tref,\n) {\n\tconst strings = useStrings(defaultProgressStrings, stringsProp);\n\tconst formatting = useFormattingConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst resolvedLocale = locale ?? formatting.locale;\n\tconst descriptionId = useId();\n\tconst { min, max } = normalizeRange(minProp, maxProp);\n\tconst value = normalizeValue(valueProp, min, max);\n\tconst formattedValue = formatProgressValue(value, min, max, resolvedLocale, format);\n\tconst usesGeneratedHeader = headerSlot === undefined && children === undefined;\n\tconst showValue = showValueProp ?? label !== undefined;\n\tconst hasSummary =\n\t\tlabel !== undefined || description !== undefined || metadata !== undefined || valueSlot !== undefined || showValue;\n\tconst descriptionIds =\n\t\t[ariaDescribedBy, usesGeneratedHeader && description !== undefined ? descriptionId : undefined]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ') || undefined;\n\tconst resolvedGetAriaValueText = (_formattedValue: string | null, currentValue: number | null) => {\n\t\tconst normalizedFormattedValue = formatProgressValue(currentValue, min, max, resolvedLocale, format);\n\t\tif (getAriaValueText) {\n\t\t\treturn getAriaValueText(normalizedFormattedValue, currentValue);\n\t\t}\n\t\treturn normalizedFormattedValue ?? strings.indeterminateValue;\n\t};\n\tconst contextValue = useMemo(() => ({ formattedValue, value }), [formattedValue, value]);\n\tconst resolvedHeader =\n\t\theaderSlot ??\n\t\tchildren ??\n\t\t(hasSummary ? (\n\t\t\t<>\n\t\t\t\t<div className=\"progress--summary min-w-0\">\n\t\t\t\t\t{label !== undefined && <ProgressLabel>{label}</ProgressLabel>}\n\t\t\t\t\t{description !== undefined &&\n\t\t\t\t\t\t(isSimpleText(description) ? (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tid={descriptionId}\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tclassName=\"progress--description mt-space-2xs block\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div id={descriptionId} className=\"progress--description mt-space-2xs\">\n\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t{(showValue || valueSlot !== undefined || metadata !== undefined) && (\n\t\t\t\t\t<Stack gap=\"2xs\" align=\"end\" className=\"progress--details text-right\">\n\t\t\t\t\t\t{valueSlot ?? (showValue ? <ProgressValue /> : null)}\n\t\t\t\t\t\t{metadata !== undefined &&\n\t\t\t\t\t\t\t(isSimpleText(metadata) ? (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"progress--metadata tabular-nums\">\n\t\t\t\t\t\t\t\t\t{metadata}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tmetadata\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</>\n\t\t) : null);\n\tconst resolvedTrack = trackSlot ?? (\n\t\t<ProgressTrack {...trackProps} size={trackProps?.size ?? size}>\n\t\t\t{trackProps?.children ?? <ProgressIndicator {...indicatorProps} tone={indicatorProps?.tone ?? tone} />}\n\t\t</ProgressTrack>\n\t);\n\n\treturn (\n\t\t<ProgressContext.Provider value={contextValue}>\n\t\t\t<ProgressPrimitive.Root\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tmin={min}\n\t\t\t\tmax={max}\n\t\t\t\tformat={format}\n\t\t\t\tlocale={resolvedLocale}\n\t\t\t\tgetAriaValueText={resolvedGetAriaValueText}\n\t\t\t\taria-describedby={descriptionIds}\n\t\t\t\tdata-slot=\"progress\"\n\t\t\t\tdata-size={size}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tclassName={mergeStateClassName<ProgressRootState>(\n\t\t\t\t\t'progress--component grid min-w-0 w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-space-lg gap-y-space-sm',\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{resolvedHeader}\n\t\t\t\t{resolvedTrack}\n\t\t\t</ProgressPrimitive.Root>\n\t\t</ProgressContext.Provider>\n\t);\n});\nProgress.displayName = 'Progress';\n\nconst ProgressTrack = forwardRef<HTMLDivElement, ProgressTrackProps>(function ProgressTrack(\n\t{ className, size: sizeProp, ...props },\n\tref,\n) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\treturn (\n\t\t<ProgressPrimitive.Track\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-track\"\n\t\t\tdata-size={size}\n\t\t\tclassName={mergeStateClassName<ProgressTrackState>(\n\t\t\t\tcn(\n\t\t\t\t\t'progress-track--component progress--track relative col-span-full flex w-full items-center overflow-hidden rounded-full bg-muted',\n\t\t\t\t\ttrackHeightClasses[size],\n\t\t\t\t),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nProgressTrack.displayName = 'ProgressTrack';\n\nconst ProgressIndicator = forwardRef<HTMLDivElement, ProgressIndicatorProps>(function ProgressIndicator(\n\t{ className, tone = 'primary', ...props },\n\tref,\n) {\n\treturn (\n\t\t<ProgressPrimitive.Indicator\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-indicator\"\n\t\t\tdata-tone={tone}\n\t\t\tclassName={mergeStateClassName<ProgressIndicatorState>(\n\t\t\t\tcn(\n\t\t\t\t\t'progress-indicator--component progress--indicator h-full rounded-full transition-[width] duration-300 ease-out motion-reduce:transition-none',\n\t\t\t\t\t'data-[indeterminate]:w-full motion-safe:data-[indeterminate]:animate-pulse',\n\t\t\t\t\tINDICATOR_TONE_CLASSNAMES[tone],\n\t\t\t\t),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nProgressIndicator.displayName = 'ProgressIndicator';\n\nconst ProgressLabel = forwardRef<HTMLSpanElement, ProgressLabelProps>(function ProgressLabel(\n\t{ className, children, ...props },\n\tref,\n) {\n\treturn (\n\t\t<ProgressPrimitive.Label\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-label\"\n\t\t\tclassName={mergeStateClassName<ProgressLabelState>(\n\t\t\t\t'progress-label--component progress--label min-w-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" weight=\"medium\" lineHeight=\"tight\" className=\"block\">\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</ProgressPrimitive.Label>\n\t);\n});\nProgressLabel.displayName = 'ProgressLabel';\n\nconst ProgressValue = forwardRef<HTMLSpanElement, ProgressValueProps>(function ProgressValue(\n\t{ className, children, ...props },\n\tref,\n) {\n\tconst context = useContext(ProgressContext);\n\n\treturn (\n\t\t<ProgressPrimitive.Value\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-value\"\n\t\t\tclassName={mergeStateClassName<ProgressValueState>(\n\t\t\t\t'progress-value--component progress--value whitespace-nowrap',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{(_primitiveFormattedValue, primitiveValue) => {\n\t\t\t\tconst value = context?.value ?? primitiveValue;\n\t\t\t\tconst formattedValue = context?.formattedValue ?? _primitiveFormattedValue;\n\t\t\t\tconst content = children ? children(formattedValue, value) : formattedValue;\n\n\t\t\t\tif (content === null || content === undefined) return null;\n\t\t\t\treturn isSimpleText(content) ? (\n\t\t\t\t\t// The percentage is the bar's primary value, so it mirrors\n\t\t\t\t\t// ProgressLabel: provider-default size and medium weight. Pinning\n\t\t\t\t\t// it to `xs`/secondary demoted the headline number below its own\n\t\t\t\t\t// caption and left the two off a shared baseline.\n\t\t\t\t\t<Text tag=\"span\" weight=\"medium\" lineHeight=\"tight\" className=\"block tabular-nums\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t);\n\t\t\t}}\n\t\t</ProgressPrimitive.Value>\n\t);\n});\nProgressValue.displayName = 'ProgressValue';\n\nexport { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue, defaultProgressStrings };\nexport type { ProgressStrings };\n","/**\n * Shared async-state presentations for bounded admin surfaces.\n *\n * `inline` is a compact, chrome-free status for menus, table regions, and\n * existing panels. `panel` owns one deliberate frame so consumers do not\n * have to recreate card padding around loading and error states. Loading and\n * error use the same icon/message/action grid, which keeps transitions between\n * states visually stable.\n */\nimport { AlertCircle, Loader2 } from 'lucide-react';\nimport {\n\tforwardRef,\n\ttype ComponentPropsWithoutRef,\n\ttype ReactNode,\n} from 'react';\n\nimport { Button } from '../buttons';\nimport { Stack } from '../structure';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nimport { Progress } from './progress';\nimport { ContentSkeleton } from '../skeleton/skeleton';\n\ntype DivProps = ComponentPropsWithoutRef<'div'>;\ntype StateDisplayVariant = 'inline' | 'panel';\ntype StateDisplayTone = 'neutral' | 'destructive';\n\ninterface StateDisplayFrameProps extends Omit<DivProps, 'title'> {\n\tcomponentClassName: string;\n\t/** Which state is shown — loading, empty, or error. */\n\tvariant: StateDisplayVariant;\n\ttone: StateDisplayTone;\n\t/** Glyph shown above the message. */\n\ticon: ReactNode;\n\t/** Heading above the description. */\n\ttitle?: ReactNode;\n\t/** Supporting copy under the label. */\n\tdescription?: ReactNode;\n\t/** Control offered alongside the message. */\n\taction?: ReactNode;\n\tdetails?: ReactNode;\n}\n\nconst frameVariantClass: Record<StateDisplayVariant, string> = {\n\tinline: 'w-full max-w-full py-row-y',\n\tpanel: 'w-full rounded-radius-lg border p-surface',\n};\n\nconst frameToneClass: Record<StateDisplayTone, string> = {\n\tneutral: 'border-border bg-card',\n\tdestructive: 'border-destructive/30 bg-destructive/5',\n};\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nconst StateDisplayFrame = forwardRef<HTMLDivElement, StateDisplayFrameProps>(\n\tfunction StateDisplayFrame({\n\t\tcomponentClassName,\n\t\tvariant,\n\t\ttone,\n\t\ticon,\n\t\ttitle,\n\t\tdescription,\n\t\taction,\n\t\tdetails,\n\t\tclassName,\n\t\t...props\n\t}, ref) {\n\t\tconst regionPrefix = componentClassName.replace('--component', '');\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tclassName={cn(\n\t\t\t\t\tcomponentClassName,\n\t\t\t\t\t'grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-start gap-x-space-sm',\n\t\t\t\t\t'sm:grid-cols-[auto_minmax(0,1fr)_auto]',\n\t\t\t\t\tframeVariantClass[variant],\n\t\t\t\t\tvariant === 'panel' && frameToneClass[tone],\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<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t`${regionPrefix}--icon`,\n\t\t\t\t\t\t'mt-space-2xs inline-flex size-icon shrink-0 items-center justify-center',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{icon}\n\t\t\t\t</span>\n\t\t\t\t{(title !== undefined || description !== undefined) && (\n\t\t\t\t\t<div className={cn(`${regionPrefix}--message`, 'grid min-w-0', variant === 'inline' ? 'gap-dense' : 'gap-normal')}>\n\t\t\t\t\t\t{title !== undefined && (\n\t\t\t\t\t\t\tisSimpleText(title) ? (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className={cn(`${regionPrefix}--title`, 'block min-w-0')}>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) : <div className={cn(`${regionPrefix}--title`, 'min-w-0')}>{title}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{description !== undefined && (\n\t\t\t\t\t\t\tisSimpleText(description) ? (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\tsize={variant === 'inline' ? 'xs' : undefined}\n\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\tclassName={cn(`${regionPrefix}--description`, 'block min-w-0')}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div className={cn(`${regionPrefix}--description`, 'min-w-0')}>\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{action !== undefined && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t`${regionPrefix}--action`,\n\t\t\t\t\t\t\t'col-start-2 row-start-2 mt-space-sm justify-self-start',\n\t\t\t\t\t\t\t'sm:col-start-3 sm:row-start-1 sm:mt-0 sm:justify-self-end sm:self-start',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{action}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{details !== undefined && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t`${regionPrefix}--details`,\n\t\t\t\t\t\t\t'col-start-2 col-end-[-1] mt-space-md',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{details}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\nStateDisplayFrame.displayName = 'StateDisplayFrame';\n\nexport type LoadingStateVariant = StateDisplayVariant;\n\nexport interface LoadingStateProps extends DivProps {\n\t/** Primary line of the state message. */\n\tlabel?: ReactNode;\n\t/** Supporting copy under the label. */\n\tdescription?: ReactNode;\n\t/** Completion percentage, 0-100, for determinate loading. */\n\tprogress?: number;\n\t/** Which state is shown — loading, empty, or error. */\n\tvariant?: LoadingStateVariant;\n\t/** Renders placeholder bars instead of a message. */\n\tskeleton?: boolean | ReactNode;\n\t/** How many skeleton bars to draw. */\n\tlines?: number;\n\t/** Glyph shown above the message. */\n\ticon?: ReactNode;\n}\n\nexport const LoadingState = forwardRef<HTMLDivElement, LoadingStateProps>(\n\tfunction LoadingState({\n\t\tlabel,\n\t\tdescription,\n\t\tprogress,\n\t\tvariant = 'inline',\n\t\tskeleton = false,\n\t\tlines = 3,\n\t\ticon,\n\t\tclassName,\n\t\t...props\n\t}, ref) {\n\t\tconst resolvedProgress = typeof progress === 'number'\n\t\t\t? Math.min(100, Math.max(0, progress))\n\t\t\t: undefined;\n\t\tconst details = resolvedProgress !== undefined || skeleton\n\t\t\t? (\n\t\t\t\t<>\n\t\t\t\t\t{resolvedProgress !== undefined && (\n\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\tvalue={resolvedProgress}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tshowValue={false}\n\t\t\t\t\t\t\taria-label={typeof label === 'string' ? label : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{skeleton === true ? <ContentSkeleton lines={lines} /> : skeleton}\n\t\t\t\t</>\n\t\t\t)\n\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t<StateDisplayFrame\n\t\t\t\tref={ref}\n\t\t\t\trole=\"status\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\tcomponentClassName=\"loading-state--component\"\n\t\t\t\tvariant={variant}\n\t\t\t\ttone=\"neutral\"\n\t\t\t\ticon={icon ?? (\n\t\t\t\t\t<Loader2 className=\"size-icon animate-spin text-muted-foreground\" />\n\t\t\t\t)}\n\t\t\t\ttitle={label}\n\t\t\t\tdescription={description}\n\t\t\t\tdetails={details}\n\t\t\t\tclassName={className}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nLoadingState.displayName = 'LoadingState';\n\nexport type ErrorStateVariant = StateDisplayVariant;\n\nexport interface ErrorStateProps extends Omit<DivProps, 'title'> {\n\t/** Heading above the description. */\n\ttitle?: ReactNode;\n\t/** Supporting copy under the label. */\n\tdescription?: ReactNode;\n\t/** Control offered alongside the message. */\n\taction?: ReactNode;\n\tonRetry?: () => void;\n\t/** Copy for the retry action in the error state. */\n\tretryLabel?: ReactNode;\n\t/** Which state is shown — loading, empty, or error. */\n\tvariant?: ErrorStateVariant;\n\t/** Glyph shown above the message. */\n\ticon?: ReactNode;\n}\n\nexport const ErrorState = forwardRef<HTMLDivElement, ErrorStateProps>(\n\tfunction ErrorState({\n\t\ttitle,\n\t\tdescription,\n\t\taction,\n\t\tonRetry,\n\t\tretryLabel,\n\t\tvariant = 'panel',\n\t\ticon,\n\t\tclassName,\n\t\t...props\n\t}, ref) {\n\t\tconst retryAction = action ?? (onRetry && retryLabel ? (\n\t\t\t<Button\n\t\t\t\ttype=\"button\"\n\t\t\t\ttone=\"destructive\"\n\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\tonClick={onRetry}\n\t\t\t>\n\t\t\t\t{retryLabel}\n\t\t\t</Button>\n\t\t) : undefined);\n\n\t\treturn (\n\t\t\t<StateDisplayFrame\n\t\t\t\tref={ref}\n\t\t\t\trole=\"alert\"\n\t\t\t\tcomponentClassName=\"error-state--component\"\n\t\t\t\tvariant={variant}\n\t\t\t\ttone=\"destructive\"\n\t\t\t\ticon={icon ?? <AlertCircle className=\"size-icon text-destructive\" />}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\taction={retryAction}\n\t\t\t\tclassName={className}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nErrorState.displayName = 'ErrorState';\n"],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./affordance-geometry.generated-DXl-Zb3Z.js";
|
|
2
|
-
//#region src/lib/field-affordance-recipes.ts
|
|
3
|
-
var t = {
|
|
4
|
-
target: "inline-flex size-control-clear shrink-0 items-center justify-center rounded-inner p-0 outline-none transition-[color,box-shadow]",
|
|
5
|
-
focus: "focus-visible:z-10 focus-visible:border-input focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
6
|
-
clear: "text-muted-foreground hover:text-foreground",
|
|
7
|
-
toggle: "text-muted-foreground hover:bg-accent hover:text-accent-foreground",
|
|
8
|
-
icon: "size-control-clear-icon shrink-0 max-h-full max-w-full",
|
|
9
|
-
centered: "absolute top-1/2 -translate-y-1/2",
|
|
10
|
-
clearEnd: e.clearEnd,
|
|
11
|
-
clearPadding: e.clearPadding,
|
|
12
|
-
togglePadding: e.togglePadding
|
|
13
|
-
};
|
|
14
|
-
//#endregion
|
|
15
|
-
export { t };
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=field-affordance-recipes-CHdUtn2Z.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-affordance-recipes-CHdUtn2Z.js","names":["affordanceGeometry","fieldAffordanceRecipes"],"sources":["../src/lib/field-affordance-recipes.ts"],"sourcesContent":["import { affordanceGeometry } from './affordance-geometry.generated';\n\n/** Field affordances have one target/clearance owner. Primitives own behavior. */\nexport const fieldAffordanceRecipes = {\n\ttarget: 'inline-flex size-control-clear shrink-0 items-center justify-center rounded-inner p-0 outline-none transition-[color,box-shadow]',\n\tfocus: 'focus-visible:z-10 focus-visible:border-input focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\tclear: 'text-muted-foreground hover:text-foreground',\n\ttoggle: 'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n\ticon: 'size-control-clear-icon shrink-0 max-h-full max-w-full',\n\tcentered: 'absolute top-1/2 -translate-y-1/2',\n\tclearEnd: affordanceGeometry.clearEnd,\n\tclearPadding: affordanceGeometry.clearPadding,\n\ttogglePadding: affordanceGeometry.togglePadding,\n} as const;\n"],"mappings":";;AAGA,IAAaC,IAAyB;CACrC,QAAQ;CACR,OAAO;CACP,OAAO;CACP,QAAQ;CACR,MAAM;CACN,UAAU;CACV,UAAUD,EAAmB;CAC7B,cAAcA,EAAmB;CACjC,eAAeA,EAAmB;AACnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-state-recipes-CBTRt9Bt.js","names":["fieldStateRecipes"],"sources":["../src/lib/field-state-recipes.ts"],"sourcesContent":["/** Native fields and field-shaped triggers share one frame-state contract.\n * Validation marks the frame; editable values retain the semantic foreground.\n * Compound fields apply the same state to their outer frame, never each child.\n */\nexport const fieldStateRecipes = {\n\tfocus: 'focus-visible:border-input focus-visible:ring-ring/50 focus-visible:ring-2',\n\tinvalid: 'aria-invalid:ring-2 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n\tgroupFocus: 'has-[[data-slot=input-group-control]:focus-visible]:border-input has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-2',\n\tgroupInvalid: 'has-[[data-slot][aria-invalid=true]]:ring-2 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[[data-slot][aria-invalid=true]]:border-destructive',\n} as const;\n"],"mappings":";AAIA,IAAaA,IAAoB;CAChC,OAAO;CACP,SAAS;CACT,YAAY;CACZ,cAAc;AACf"}
|