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,30 +1,31 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./utils-
|
|
3
|
-
import { n as t } from "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { t as e } from "./utils-BvH9PSmq.js";
|
|
3
|
+
import { n as t } from "./text.styles-Q4sGAIgA.js";
|
|
4
|
+
import { t as n } from "./button-BZDasD04.js";
|
|
5
|
+
import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
import { Code2 as o } from "lucide-react";
|
|
6
7
|
//#region src/components/features/rich-text-editor/partials/rich-text-editor-toolbar.tsx
|
|
7
|
-
function
|
|
8
|
+
function s({ buttons: t, extraToolbarItems: s, hideSourceToggle: c = !1, sourceMode: l, toggleSourceMode: u, disabled: d = !1, hasEditor: f = !0, toolbarTrailing: p, strings: m, className: h }) {
|
|
8
9
|
let g = (s?.length ?? 0) > 0;
|
|
9
|
-
return /* @__PURE__ */
|
|
10
|
+
return /* @__PURE__ */ a("div", {
|
|
10
11
|
className: e("rich-text-editor-toolbar--component border-border flex flex-wrap items-center gap-space-xs border-b p-surface-xs", h),
|
|
11
12
|
children: [
|
|
12
|
-
|
|
13
|
-
let
|
|
14
|
-
return /* @__PURE__ */
|
|
13
|
+
t.map((e) => {
|
|
14
|
+
let t = e.icon, r = e.isActive();
|
|
15
|
+
return /* @__PURE__ */ i(n, {
|
|
15
16
|
type: "button",
|
|
16
|
-
tone:
|
|
17
|
-
buttonStyle:
|
|
17
|
+
tone: r ? "primary" : "secondary",
|
|
18
|
+
buttonStyle: r ? "solid" : "ghost",
|
|
18
19
|
size: "sm",
|
|
19
20
|
iconOnly: !0,
|
|
20
21
|
onClick: e.run,
|
|
21
22
|
disabled: d || !f || l || e.disabled,
|
|
22
23
|
"aria-label": e.label,
|
|
23
24
|
title: e.label,
|
|
24
|
-
children: /* @__PURE__ */
|
|
25
|
+
children: /* @__PURE__ */ i(t, { className: "size-icon" })
|
|
25
26
|
}, e.id);
|
|
26
27
|
}),
|
|
27
|
-
!c && /* @__PURE__ */
|
|
28
|
+
!c && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("div", { className: "bg-border mx-space-xs size-icon w-px" }), /* @__PURE__ */ i(n, {
|
|
28
29
|
type: "button",
|
|
29
30
|
tone: l ? "primary" : "secondary",
|
|
30
31
|
buttonStyle: l ? "solid" : "ghost",
|
|
@@ -34,39 +35,47 @@ function o({ buttons: o, extraToolbarItems: s, hideSourceToggle: c = !1, sourceM
|
|
|
34
35
|
disabled: d || !f,
|
|
35
36
|
"aria-label": m.toolbar.sourceCode,
|
|
36
37
|
title: m.toolbar.sourceCode,
|
|
37
|
-
children: /* @__PURE__ */
|
|
38
|
+
children: /* @__PURE__ */ i(o, { className: "size-icon" })
|
|
38
39
|
})] }),
|
|
39
|
-
g && /* @__PURE__ */
|
|
40
|
-
let
|
|
41
|
-
return /* @__PURE__ */
|
|
40
|
+
g && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("div", { className: "bg-border mx-space-xs size-icon w-px" }), s?.map((e) => {
|
|
41
|
+
let t = e.icon, r = e.isActive?.() ?? !1;
|
|
42
|
+
return /* @__PURE__ */ i(n, {
|
|
42
43
|
type: "button",
|
|
43
|
-
tone:
|
|
44
|
-
buttonStyle:
|
|
44
|
+
tone: r ? "primary" : "secondary",
|
|
45
|
+
buttonStyle: r ? "solid" : "ghost",
|
|
45
46
|
size: "sm",
|
|
46
47
|
iconOnly: !0,
|
|
47
48
|
onClick: e.onClick,
|
|
48
49
|
disabled: d || !f || l || e.disabled,
|
|
49
50
|
"aria-label": e.label,
|
|
50
51
|
title: e.label,
|
|
51
|
-
children: /* @__PURE__ */
|
|
52
|
+
children: /* @__PURE__ */ i(t, { className: "size-icon" })
|
|
52
53
|
}, e.id);
|
|
53
54
|
})] }),
|
|
54
|
-
!!p && /* @__PURE__ */
|
|
55
|
+
!!p && /* @__PURE__ */ i("div", {
|
|
55
56
|
className: "ml-auto flex items-center gap-space-xs",
|
|
56
57
|
children: p
|
|
57
58
|
})
|
|
58
59
|
]
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
+
s.displayName = "RichTextEditorToolbar";
|
|
62
63
|
//#endregion
|
|
63
64
|
//#region src/components/features/rich-text-editor/rich-text-editor.recipes.ts
|
|
64
|
-
var
|
|
65
|
-
|
|
65
|
+
var c = {
|
|
66
|
+
source: e("rich-text-editor--source box-border m-0 block min-h-0 w-full resize-y rounded-none border-0 bg-transparent px-control py-control-y-offset outline-none disabled:cursor-not-allowed disabled:opacity-50", t({
|
|
67
|
+
type: "main",
|
|
68
|
+
size: "xs",
|
|
69
|
+
weight: "regular",
|
|
70
|
+
align: "left",
|
|
71
|
+
lineHeight: "relaxed",
|
|
72
|
+
numeric: !0
|
|
73
|
+
})),
|
|
74
|
+
frame: "min-w-0 overflow-hidden border-input bg-background rounded-inner border",
|
|
66
75
|
disabled: "opacity-70",
|
|
67
76
|
content: "h-full [&_.ProseMirror]:h-full [&_.ProseMirror]:min-h-full [&_.ProseMirror]:outline-none"
|
|
68
77
|
};
|
|
69
78
|
//#endregion
|
|
70
|
-
export {
|
|
79
|
+
export { s as n, c as t };
|
|
71
80
|
|
|
72
|
-
//# sourceMappingURL=rich-text-editor.recipes-
|
|
81
|
+
//# sourceMappingURL=rich-text-editor.recipes-B72Nfuze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-text-editor.recipes-B72Nfuze.js","names":["_Fragment","cn","resolveTextClassNames","Button","RichTextEditorToolbar","hasExtras","extraToolbarItems","className","buttons","Icon","button","isActive","disabled","hasEditor","sourceMode","hideSourceToggle","Fragment","toggleSourceMode","strings","Code2","item","toolbarTrailing","richTextEditorRecipes"],"sources":["../src/components/features/rich-text-editor/partials/rich-text-editor-toolbar.tsx","../src/components/features/rich-text-editor/rich-text-editor.recipes.ts"],"sourcesContent":["import { Code2 } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '../../../base/buttons/button';\nimport { cn } from '../../../../lib/utils';\n\nimport type { RichTextEditorStrings } from '../rich-text-editor.strings';\nimport type {\n\tRichTextEditorToolbarItem,\n\tToolbarButtonConfig,\n} from '../rich-text-editor.types';\n\nexport interface RichTextEditorToolbarProps {\n\t/** Formatting controls to show, in order. */\n\tbuttons: ToolbarButtonConfig[];\n\t/** Additional controls appended to the toolbar. */\n\textraToolbarItems?: ReadonlyArray<RichTextEditorToolbarItem>;\n\t/** Hides the control that switches to HTML source. */\n\thideSourceToggle?: boolean;\n\t/** Whether the editor is currently showing HTML source. */\n\tsourceMode: boolean;\n\t/** Switches between rich text and HTML source. */\n\ttoggleSourceMode: () => void;\n\t/** Renders the entry as unselectable. */\n\tdisabled?: boolean;\n\t/**\n\t * The TipTap variant disables built-in buttons until the editor instance\n\t * is ready; the fallback variant simply marks them disabled. This flag\n\t * lets callers force the disabled state without re-deriving it per button.\n\t */\n\thasEditor?: boolean;\n\t/** Content pinned to the end of the toolbar. */\n\ttoolbarTrailing?: ReactNode;\n\t/** Overrides this surface's own copy. */\n\tstrings: RichTextEditorStrings;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nexport function RichTextEditorToolbar({\n\tbuttons,\n\textraToolbarItems,\n\thideSourceToggle = false,\n\tsourceMode,\n\ttoggleSourceMode,\n\tdisabled = false,\n\thasEditor = true,\n\ttoolbarTrailing,\n\tstrings,\n\tclassName,\n}: RichTextEditorToolbarProps) {\n\tconst hasExtras = (extraToolbarItems?.length ?? 0) > 0;\n\n\treturn (\n\t\t<div className={cn('rich-text-editor-toolbar--component border-border flex flex-wrap items-center gap-space-xs border-b p-surface-xs', className)}>\n\t\t\t{buttons.map((button) => {\n\t\t\t\tconst Icon = button.icon;\n\t\t\t\tconst isActive = button.isActive();\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={button.id}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttone={isActive ? 'primary' : 'secondary'}\n\t\t\t\t\t\tbuttonStyle={isActive ? 'solid' : 'ghost'}\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\tonClick={button.run}\n\t\t\t\t\t\tdisabled={disabled || !hasEditor || sourceMode || button.disabled}\n\t\t\t\t\t\taria-label={button.label}\n\t\t\t\t\t\ttitle={button.label}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon className=\"size-icon\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{!hideSourceToggle && (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"bg-border mx-space-xs size-icon w-px\" />\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttone={sourceMode ? 'primary' : 'secondary'}\n\t\t\t\t\t\tbuttonStyle={sourceMode ? 'solid' : 'ghost'}\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\tonClick={toggleSourceMode}\n\t\t\t\t\t\tdisabled={disabled || !hasEditor}\n\t\t\t\t\t\taria-label={strings.toolbar.sourceCode}\n\t\t\t\t\t\ttitle={strings.toolbar.sourceCode}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Code2 className=\"size-icon\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{hasExtras && (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"bg-border mx-space-xs size-icon w-px\" />\n\t\t\t\t\t{extraToolbarItems?.map((item) => {\n\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\tconst isActive = item.isActive?.() ?? false;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ttone={isActive ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\t\tbuttonStyle={isActive ? 'solid' : 'ghost'}\n\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\tonClick={item.onClick}\n\t\t\t\t\t\t\t\tdisabled={disabled || !hasEditor || sourceMode || item.disabled}\n\t\t\t\t\t\t\t\taria-label={item.label}\n\t\t\t\t\t\t\t\ttitle={item.label}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"size-icon\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{!!toolbarTrailing && (\n\t\t\t\t<div className=\"ml-auto flex items-center gap-space-xs\">{toolbarTrailing}</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nRichTextEditorToolbar.displayName = 'RichTextEditorToolbar';\n","import { resolveTextClassNames } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\n/** Shared field anatomy for rich editors, including specialized document schemas. */\nexport const richTextEditorRecipes = {\n source: cn('rich-text-editor--source box-border m-0 block min-h-0 w-full resize-y rounded-none border-0 bg-transparent px-control py-control-y-offset outline-none disabled:cursor-not-allowed disabled:opacity-50', resolveTextClassNames({type: 'main', size: 'xs', weight: 'regular', align: 'left', lineHeight: 'relaxed', numeric: true})),\n frame: 'min-w-0 overflow-hidden border-input bg-background rounded-inner border',\n disabled: 'opacity-70',\n content: 'h-full [&_.ProseMirror]:h-full [&_.ProseMirror]:min-h-full [&_.ProseMirror]:outline-none',\n} as const;\n"],"mappings":";;;;;;;AAuCA,SAAgBI,EAAsB,EACrC,YACA,sBACA,sBAAmB,IACnB,eACA,qBACA,cAAW,IACX,eAAY,IACZ,oBACA,YACA,gBAC8B;CAC9B,IAAMC,KAAaC,GAAmB,UAAU,KAAK;CAErD,OACC,kBAAC,OAAD;EAAK,WAAWL,EAAG,oHAAoHM,CAAS;EAAhJ,UAAA;GACEC,EAAQ,KAAK,MAAW;IACxB,IAAMC,IAAOC,EAAO,MACdC,IAAWD,EAAO,SAAS;IAEjC,OACC,kBAACP,GAAD;KAEC,MAAK;KACL,MAAMQ,IAAW,YAAY;KAC7B,aAAaA,IAAW,UAAU;KAClC,MAAK;KAAK,UAAA;KACV,SAASD,EAAO;KAChB,UAAUE,KAAY,CAACC,KAAaC,KAAcJ,EAAO;KACzD,cAAYA,EAAO;KACnB,OAAOA,EAAO;KAEd,UAAA,kBAACD,GAAD,EAAM,WAAU,YAAa,CAAA;IACtB,GAXFC,EAAO,EAWL;GAEV,CAAC;GAEA,CAACK,KACD,kBAAAf,GAAA,EAAA,UAAA,CACC,kBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA,GAEvD,kBAACG,GAAD;IACC,MAAK;IACL,MAAMW,IAAa,YAAY;IAC/B,aAAaA,IAAa,UAAU;IACpC,MAAK;IAAK,UAAA;IACV,SAASG;IACT,UAAUL,KAAY,CAACC;IACvB,cAAYK,EAAQ,QAAQ;IAC5B,OAAOA,EAAQ,QAAQ;IAEvB,UAAA,kBAACC,GAAD,EAAO,WAAU,YAAa,CAAA;GACvB,CAAA,CACP,EAAA,CAAA;GAGFd,KACA,kBAAAL,GAAA,EAAA,UAAA,CACC,kBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA,GACtDM,GAAmB,KAAK,MAAS;IACjC,IAAMG,IAAOW,EAAK,MACZT,IAAWS,EAAK,WAAW,KAAK;IACtC,OACC,kBAACjB,GAAD;KAEC,MAAK;KACL,MAAMQ,IAAW,YAAY;KAC7B,aAAaA,IAAW,UAAU;KAClC,MAAK;KAAK,UAAA;KACV,SAASS,EAAK;KACd,UAAUR,KAAY,CAACC,KAAaC,KAAcM,EAAK;KACvD,cAAYA,EAAK;KACjB,OAAOA,EAAK;KAEZ,UAAA,kBAACX,GAAD,EAAM,WAAU,YAAa,CAAA;IACtB,GAXFW,EAAK,EAWH;GAEV,CAAC,CACA,EAAA,CAAA;GAGF,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,WAAU;IAA0C,UAAAA;GAAqB,CAAA;EAE3E;;AAEP;AAEA,EAAsB,cAAc;;;AC3HpC,IAAaC,IAAwB;CACpC,QAAQrB,EAAG,0MAA0MC,EAAsB;EAAC,MAAM;EAAQ,MAAM;EAAM,QAAQ;EAAW,OAAO;EAAQ,YAAY;EAAW,SAAS;CAAI,CAAC,CAAC;CAC9U,OAAO;CACP,UAAU;CACV,SAAS;AACV"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./utils-
|
|
2
|
+
import { t as e } from "./utils-BvH9PSmq.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
5
5
|
import { ScrollArea as r } from "@base-ui/react/scroll-area";
|
|
@@ -13,7 +13,7 @@ function i({ orientation: i = "vertical", className: o, viewportClassName: s, sc
|
|
|
13
13
|
/* @__PURE__ */ t(r.Viewport, {
|
|
14
14
|
ref: l,
|
|
15
15
|
"data-slot": "scroll-area-viewport",
|
|
16
|
-
className: e("size-full rounded-[inherit] outline-none transition-[color,box-shadow]", "focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring
|
|
16
|
+
className: e("size-full rounded-[inherit] outline-none transition-[color,box-shadow]", "focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring", s),
|
|
17
17
|
children: u
|
|
18
18
|
}),
|
|
19
19
|
i !== "horizontal" && /* @__PURE__ */ t(a, { className: c }),
|
|
@@ -44,4 +44,4 @@ function a({ className: n, orientation: i = "vertical", ...a }) {
|
|
|
44
44
|
//#endregion
|
|
45
45
|
export { a as n, i as t };
|
|
46
46
|
|
|
47
|
-
//# sourceMappingURL=scroll-area-
|
|
47
|
+
//# sourceMappingURL=scroll-area-D-pIhEKl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area-D-pIhEKl.js","names":["ScrollArea","ScrollAreaPrimitive","cn","ScrollArea$1","props","ScrollArea","className","viewportRef","viewportClassName","orientation","ScrollBar","scrollbarClassName"],"sources":["../src/components/base/display/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { cn } from '../../../lib/utils';\n\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props & {\n\t/** Axes with custom scrollbar chrome. Defaults to vertical. */\n\torientation?: 'vertical' | 'horizontal' | 'both';\n\tviewportRef?: React.Ref<HTMLDivElement>;\n\tviewportClassName?: string;\n\tscrollbarClassName?: string;\n};\n\nfunction ScrollArea({\n\torientation = 'vertical',\n\tclassName,\n\tviewportClassName,\n\tscrollbarClassName,\n\tviewportRef,\n\tchildren,\n\t...props\n}: ScrollAreaProps) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root\n\t\t\tdata-slot=\"scroll-area\"\n\t\t\tclassName={cn('scroll-area--component group/scroll-area relative overflow-hidden', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tref={viewportRef}\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'size-full rounded-[inherit] outline-none transition-[color,box-shadow]',\n\t\t\t\t\t'focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring',\n\t\t\t\t\tviewportClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t{orientation !== 'horizontal' && <ScrollBar className={scrollbarClassName} />}\n\t\t\t{orientation !== 'vertical' && <ScrollBar orientation=\"horizontal\" className={scrollbarClassName} />}\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({\n\tclassName,\n\torientation = 'vertical',\n\t...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Scrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\tdata-orientation={orientation}\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t{\n\t\t\t\t\t'h-2.5 flex-col border-t border-t-transparent': orientation === 'horizontal',\n\t\t\t\t\t'h-full w-2 border-l border-l-transparent': orientation === 'vertical',\n\t\t\t\t},\n\t\t\t\t// `rounded-full`, not a scale value: the track is 8-10px on its short\n\t\t\t\t// axis, so any radius past half of that already clamps to a pill.\n\t\t\t\t// Saying `rounded-full` states the intent and stops the value drifting\n\t\t\t\t// with the radius scale.\n\t\t\t\t'flex touch-none select-none rounded-full p-px opacity-0 transition-opacity',\n\t\t\t\t'data-hovering:opacity-100 data-scrolling:opacity-100 group-focus-within/scroll-area:opacity-100',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Thumb\n\t\t\t\tdata-slot=\"scroll-area-thumb\"\n\t\t\t\tclassName=\"relative flex-1 rounded-full bg-border\"\n\t\t\t/>\n\t\t</ScrollAreaPrimitive.Scrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":";;;;;;AAaA,SAASA,EAAW,EACnB,iBAAc,YACd,cACA,sBACA,uBACA,gBACA,aACA,GAAGI,KACgB;CACnB,OACC,kBAACH,EAAoB,MAArB;EACC,aAAU;EACV,WAAWC,EAAG,qEAAqEI,CAAS;EAC5F,GAAIF;EAHL,UAAA;GAKC,kBAACH,EAAoB,UAArB;IACC,KAAKM;IACL,aAAU;IACV,WAAWL,EACV,0EACA,4EACAM,CACD;IAEC;GAC4B,CAAA;GAC7BC,MAAgB,gBAAgB,kBAACC,GAAD,EAAW,WAAWC,EAAqB,CAAA;GAC3EF,MAAgB,cAAc,kBAACC,GAAD;IAAW,aAAY;IAAa,WAAWC;GAAqB,CAAA;GACnG,kBAACV,EAAoB,QAArB,CAA6B,CAAA;EACJ;;AAE5B;AAEA,SAASS,EAAU,EAClB,cACA,iBAAc,YACd,GAAGN,KACoC;CACvC,OACC,kBAACH,EAAoB,WAArB;EACC,aAAU;EACV,oBAAkBQ;EACL;EACb,WAAWP,EACV;GACC,gDAAgDO,MAAgB;GAChE,4CAA4CA,MAAgB;EAC7D,GAKA,8EACA,mGACAH,CACD;EACA,GAAIF;EAEJ,UAAA,kBAACH,EAAoB,OAArB;GACC,aAAU;GACV,WAAU;EACV,CAAA;CAC6B,CAAA;AAEjC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./utils-
|
|
3
|
-
import { t } from "./separator-
|
|
2
|
+
import { t as e } from "./utils-BvH9PSmq.js";
|
|
3
|
+
import { t } from "./separator-BhtFyo4x.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx as n } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/base/display/separator.tsx
|
|
@@ -18,4 +18,4 @@ r.displayName = "Separator";
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { r as t };
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=separator-
|
|
21
|
+
//# sourceMappingURL=separator-BNIgG3au.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator-
|
|
1
|
+
{"version":3,"file":"separator-BNIgG3au.js","names":["PrimitiveSeparator","cn","Separator","props","Separator$1","dashed","className"],"sources":["../src/components/base/display/separator.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Separator as PrimitiveSeparator } from '../../ui/separator';\nimport { cn } from '../../../lib/utils';\n\nexport interface SeparatorProps extends React.ComponentPropsWithoutRef<typeof PrimitiveSeparator> {\n\t/** Render the rule as a dashed line instead of a solid border fill. */\n\tdashed?: boolean;\n}\n\nexport function Separator({\n\tclassName,\n\tdashed = false,\n\t...props\n}: SeparatorProps) {\n\treturn (\n\t\t<PrimitiveSeparator\n\t\t\tclassName={cn(\n\t\t\t\t'separator--component',\n\t\t\t\tdashed && [\n\t\t\t\t\t'bg-transparent border-border border-dashed',\n\t\t\t\t\t'data-[orientation=horizontal]:h-0 data-[orientation=horizontal]:border-t',\n\t\t\t\t\t'data-[orientation=vertical]:w-0 data-[orientation=vertical]:border-l',\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}\n\nSeparator.displayName = 'Separator';\n"],"mappings":";;;;;;AAUA,SAAgBE,EAAU,EACzB,cACA,YAAS,IACT,GAAGC,KACe;CAClB,OACC,kBAACH,GAAD;EACC,WAAWC,EACV,wBACAI,KAAU;GACT;GACA;GACA;EACD,GACAC,CACD;EACA,GAAIH;CACJ,CAAA;AAEH;AAEA,EAAU,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./utils-
|
|
2
|
+
import { t as e } from "./utils-BvH9PSmq.js";
|
|
3
3
|
import { jsx as t } from "react/jsx-runtime";
|
|
4
4
|
import { Separator as n } from "@base-ui/react/separator";
|
|
5
5
|
//#region src/components/ui/separator.tsx
|
|
@@ -14,4 +14,4 @@ function r({ className: r, orientation: i = "horizontal", ...a }) {
|
|
|
14
14
|
//#endregion
|
|
15
15
|
export { r as t };
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=separator-
|
|
17
|
+
//# sourceMappingURL=separator-BhtFyo4x.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator-
|
|
1
|
+
{"version":3,"file":"separator-BhtFyo4x.js","names":["Separator","SeparatorPrimitive","cn","Separator$1","props","Separator","className"],"sources":["../src/components/ui/separator.tsx"],"sourcesContent":["\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n"],"mappings":";;;;;AAMA,SAASA,EAAU,EACjB,cACA,iBAAc,cACd,GAAGI,KACwB;CAC3B,OACE,kBAACH,GAAD;EACE,aAAU;EACG;EACb,WAAWC,EACT,wKACAI,CACF;EACA,GAAIF;CACL,CAAA;AAEL"}
|
package/dist/services/actions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useStrings as e } from "../lib/strings.js";
|
|
3
|
-
import { n as t, r as n, t as r } from "../overlays-
|
|
3
|
+
import { n as t, r as n, t as r } from "../overlays-DUbs1KEi.js";
|
|
4
4
|
import { createContext as i, createElement as a, useContext as o, useEffect as s, useId as c, useMemo as l, useRef as u, useSyncExternalStore as d } from "react";
|
|
5
5
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
6
6
|
//#region src/services/actions/actions.types.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useStrings as e } from "./lib/strings.js";
|
|
3
|
-
import { t } from "./utils-
|
|
4
|
-
import { a as n, i as r, r as i } from "./typography-
|
|
5
|
-
import { t as a } from "./structure-
|
|
6
|
-
import { t as o } from "./smart-card-
|
|
7
|
-
import { t as s } from "./badge-
|
|
3
|
+
import { t } from "./utils-BvH9PSmq.js";
|
|
4
|
+
import { a as n, i as r, r as i } from "./typography-BxQgiZyw.js";
|
|
5
|
+
import { t as a } from "./structure-CRdqVawd.js";
|
|
6
|
+
import { t as o } from "./smart-card-DjGVV2xr.js";
|
|
7
|
+
import { t as s } from "./badge-CzId1Wlm.js";
|
|
8
8
|
import { n as c } from "./layout.types-Cn7aUzJp.js";
|
|
9
9
|
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
10
10
|
//#region src/components/layout/settings/settings.tsx
|
|
@@ -95,7 +95,7 @@ function m({ title: f, description: m, groups: h, currentId: g, currentPath: _,
|
|
|
95
95
|
active: i,
|
|
96
96
|
disabled: e.disabled,
|
|
97
97
|
external: e.external,
|
|
98
|
-
className: t("aside-nav-shell--item flex min-w-0 rounded-
|
|
98
|
+
className: t("aside-nav-shell--item flex min-w-0 rounded-inner px-row-x py-row-y transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", i ? "bg-accent text-accent-foreground" : "text-foreground hover:bg-accent hover:text-accent-foreground", e.disabled && "pointer-events-none opacity-50"),
|
|
99
99
|
"aria-label": typeof e.label == "string" ? e.label : void 0
|
|
100
100
|
})
|
|
101
101
|
}, e.id);
|
|
@@ -119,7 +119,8 @@ function m({ title: f, description: m, groups: h, currentId: g, currentPath: _,
|
|
|
119
119
|
align: { sm: "start" },
|
|
120
120
|
justify: { sm: "between" },
|
|
121
121
|
className: "aside-nav-shell--header",
|
|
122
|
-
children: [/* @__PURE__ */ u(
|
|
122
|
+
children: [/* @__PURE__ */ u(a, {
|
|
123
|
+
gap: "normal",
|
|
123
124
|
className: "min-w-0 flex-1",
|
|
124
125
|
children: [!!f && /* @__PURE__ */ l(r, {
|
|
125
126
|
tag: "h2",
|
|
@@ -127,7 +128,7 @@ function m({ title: f, description: m, groups: h, currentId: g, currentPath: _,
|
|
|
127
128
|
children: f
|
|
128
129
|
}), !!m && /* @__PURE__ */ l(n, {
|
|
129
130
|
type: "secondary",
|
|
130
|
-
className: "
|
|
131
|
+
className: "max-w-3xl",
|
|
131
132
|
children: m
|
|
132
133
|
})]
|
|
133
134
|
}), !!b && /* @__PURE__ */ l(a, {
|
|
@@ -157,4 +158,4 @@ m.displayName = "AsideNavShell";
|
|
|
157
158
|
//#endregion
|
|
158
159
|
export { h as n, d as r, m as t };
|
|
159
160
|
|
|
160
|
-
//# sourceMappingURL=settings-
|
|
161
|
+
//# sourceMappingURL=settings-DOTOzeZ2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-D9f_wdIC.js","names":["Text","Heading","DisplayLabel","Stack","Card","Badge","resolveLayoutLinkRenderer","defaultAsideNavShellStrings","normalizePath","rawUrl","baseOrigin","trimmed","isActiveItem","currentId","item","currentPath","activePath","itemPath","AsideNavShell","stringsProp","strings","useStrings","linkRenderer","cn","className","navClassName","aside","groups","group","Icon","active","content","contentClassName","title","description","actions","footer","SettingsShell"],"sources":["../src/components/layout/settings/settings.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from 'react';\n\nimport { Badge } from '../../base/badge';\nimport { Card } from '../../base/cards';\nimport { Stack } from '../../base/structure';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport interface AsideNavShellStrings {\n\tnavigationAriaLabel: string;\n}\n\nexport const defaultAsideNavShellStrings: AsideNavShellStrings = {\n\tnavigationAriaLabel: 'Settings navigation',\n};\n\nexport interface AsideNavItem {\n\tid: string;\n\t/** Display label. */\n\tlabel: ReactNode;\n\t/** Destination for the entry, when it navigates. */\n\thref?: string;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Leading glyph. */\n\ticon?: ComponentType<{ className?: string }>;\n\t/** Chip rendered beside the label. */\n\tbadge?: ReactNode;\n\t/** Disables the control. */\n\tdisabled?: boolean;\n\texternal?: boolean;\n\tonSelect?: (id: string) => void;\n}\n\nexport interface AsideNavGroup {\n\tid: string;\n\t/** Display label. */\n\tlabel?: ReactNode;\n\t/** Entries to render, in order. */\n\titems: AsideNavItem[];\n}\n\nexport interface AsideNavShellProps extends LayoutNavigationAdapter {\n\t/** Surface title. */\n\ttitle?: ReactNode;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Sections of the settings navigation. */\n\tgroups: AsideNavGroup[];\n\t/** Id of the active entry. */\n\tcurrentId?: string;\n\t/** Path of the active route. */\n\tcurrentPath?: string;\n\tchildren?: ReactNode;\n\t/** Content beside the main settings panel. */\n\taside?: ReactNode;\n\t/** Controls offered on the surface. */\n\tactions?: ReactNode;\n\t/** Content below the body. */\n\tfooter?: ReactNode;\n\tclassName?: string;\n\t/** Merged onto the navigation region. */\n\tnavClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<AsideNavShellStrings>;\n}\n\nexport type SettingsShellProps = AsideNavShellProps;\n\nfunction normalizePath(rawUrl?: string): string {\n\tif (!rawUrl) return '';\n\ttry {\n\t\tconst baseOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';\n\t\tconst parsed = new URL(rawUrl, baseOrigin);\n\t\tconst trimmed = parsed.pathname.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t} catch {\n\t\tconst clean = rawUrl.split('?')[0] ?? rawUrl;\n\t\tconst trimmed = clean.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t}\n}\n\nfunction isActiveItem(item: AsideNavItem, currentId?: string, currentPath?: string): boolean {\n\tif (currentId) return item.id === currentId;\n\tif (!currentPath || !item.href) return false;\n\tconst activePath = normalizePath(currentPath);\n\tconst itemPath = normalizePath(item.href);\n\treturn activePath === itemPath || activePath.startsWith(`${itemPath}/`);\n}\n\nexport function AsideNavShell({\n\ttitle,\n\tdescription,\n\tgroups,\n\tcurrentId,\n\tcurrentPath,\n\tchildren,\n\taside,\n\tactions,\n\tfooter,\n\tclassName,\n\tnavClassName,\n\tcontentClassName,\n\trenderLink,\n\tstrings: stringsProp,\n}: AsideNavShellProps) {\n\tconst strings = useStrings(defaultAsideNavShellStrings, stringsProp);\n\tconst linkRenderer = resolveLayoutLinkRenderer({ renderLink });\n\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"aside-nav-shell\"\n\t\t\tdata-slot=\"aside-nav-shell\"\n\t\t\tclassName={cn('aside-nav-shell--component grid min-w-0 gap-space-xl lg:grid-cols-[17rem_minmax(0,1fr)]', className)}\n\t\t>\n\t\t\t<aside data-slot=\"aside-nav-shell-aside\" className=\"aside-nav-shell--aside min-w-0\">\n\t\t\t\t<Card\n\t\t\t\t\tsurface=\"card\"\n\t\t\t\t\tclassName={cn('aside-nav-shell--nav-card sticky top-[calc(var(--shell-header-height)_+_var(--spacing-space-xl))]', navClassName)}\n\t\t\t\t\tcontentClassName=\"grid gap-space-xl\"\n\t\t\t\t>\n\t\t\t\t\t{!!aside && <div className=\"aside-nav-shell--aside-header\">{aside}</div>}\n\t\t\t\t\t<Stack render={<nav aria-label={strings.navigationAriaLabel} />} gap=\"xl\">\n\t\t\t\t\t\t{groups.map((group) => (\n\t\t\t\t\t\t\t<Stack key={group.id} gap=\"sm\">\n\t\t\t\t\t\t\t\t{!!group.label && (\n\t\t\t\t\t\t\t\t\t<DisplayLabel className=\"px-row-x\">\n\t\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Stack gap=\"2xs\">\n\t\t\t\t\t\t\t\t\t{group.items.map((item) => {\n\t\t\t\t\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\t\t\t\t\tconst active = isActiveItem(item, currentId, currentPath);\n\t\t\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"start\" gap=\"md\" wrap={false} render={<span />} className=\"min-w-0 w-full\">\n\t\t\t\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-icon shrink-0 mt-space-2xs',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive ? 'text-primary-accent' : 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t<Stack render={<span />} gap=\"dense\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight={active ? 'semibold' : 'medium'} className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Badge tone={active ? 'primary' : 'secondary'} className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<div key={item.id} onClick={() => { if (!item.disabled) item.onSelect?.(item.id); }}>\n\t\t\t\t\t\t\t\t\t\t\t\t{linkRenderer({\n\t\t\t\t\t\t\t\t\t\t\t\t\thref: item.href,\n\t\t\t\t\t\t\t\t\t\t\t\t\tchildren: content,\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled: item.disabled,\n\t\t\t\t\t\t\t\t\t\t\t\t\texternal: item.external,\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'aside-nav-shell--item flex min-w-0 rounded-radius-md px-row-x py-row-y transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-accent text-accent-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'text-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t'aria-label': typeof item.label === 'string' ? item.label : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Stack>\n\t\t\t\t</Card>\n\t\t\t</aside>\n\n\t\t\t\t<Stack gap=\"xl\" data-slot=\"aside-nav-shell-main\" className={cn('aside-nav-shell--main', contentClassName)}>\n\t\t\t\t{(title || description || actions) && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\trender={<header />}\n\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\talign={{ sm: 'start' }}\n\t\t\t\t\t\tjustify={{ sm: 'between' }}\n\t\t\t\t\t\tclassName=\"aside-nav-shell--header\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* `flex-1` so the text yields width to the actions instead of\n\t\t\t\t\t\t claiming its full content width. The header wraps on `sm`,\n\t\t\t\t\t\t and the description's `max-w-3xl` is wider than the content\n\t\t\t\t\t\t column, so without this the actions wrapped onto their own\n\t\t\t\t\t\t line below the description rather than sitting beside the\n\t\t\t\t\t\t title. */}\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && <Heading tag=\"h2\" className=\"border-0 pb-0\">{title}</Heading>}\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text type=\"secondary\" className=\"mt-space-xs max-w-3xl\">\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</div>\n\t\t\t\t\t\t{!!actions && <Stack direction=\"horizontal\" wrap align=\"center\" gap=\"md\" className=\"shrink-0\">{actions}</Stack>}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t\t\t<div data-slot=\"aside-nav-shell-content\" className=\"aside-nav-shell--content min-w-0\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!footer && <footer className=\"aside-nav-shell--footer\">{footer}</footer>}\n\t\t\t\t</Stack>\n\t\t</section>\n\t);\n}\n\nexport const SettingsShell = AsideNavShell;\n\nAsideNavShell.displayName = 'AsideNavShell';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings-DOTOzeZ2.js","names":["Text","Heading","DisplayLabel","Stack","Card","Badge","resolveLayoutLinkRenderer","defaultAsideNavShellStrings","normalizePath","rawUrl","baseOrigin","trimmed","isActiveItem","currentId","item","currentPath","activePath","itemPath","AsideNavShell","stringsProp","strings","useStrings","linkRenderer","cn","className","navClassName","aside","groups","group","Icon","active","content","contentClassName","title","description","actions","footer","SettingsShell"],"sources":["../src/components/layout/settings/settings.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from 'react';\n\nimport { Badge } from '../../base/badge';\nimport { Card } from '../../base/cards';\nimport { Stack } from '../../base/structure';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport interface AsideNavShellStrings {\n\tnavigationAriaLabel: string;\n}\n\nexport const defaultAsideNavShellStrings: AsideNavShellStrings = {\n\tnavigationAriaLabel: 'Settings navigation',\n};\n\nexport interface AsideNavItem {\n\tid: string;\n\t/** Display label. */\n\tlabel: ReactNode;\n\t/** Destination for the entry, when it navigates. */\n\thref?: string;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Leading glyph. */\n\ticon?: ComponentType<{ className?: string }>;\n\t/** Chip rendered beside the label. */\n\tbadge?: ReactNode;\n\t/** Disables the control. */\n\tdisabled?: boolean;\n\texternal?: boolean;\n\tonSelect?: (id: string) => void;\n}\n\nexport interface AsideNavGroup {\n\tid: string;\n\t/** Display label. */\n\tlabel?: ReactNode;\n\t/** Entries to render, in order. */\n\titems: AsideNavItem[];\n}\n\nexport interface AsideNavShellProps extends LayoutNavigationAdapter {\n\t/** Surface title. */\n\ttitle?: ReactNode;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Sections of the settings navigation. */\n\tgroups: AsideNavGroup[];\n\t/** Id of the active entry. */\n\tcurrentId?: string;\n\t/** Path of the active route. */\n\tcurrentPath?: string;\n\tchildren?: ReactNode;\n\t/** Content beside the main settings panel. */\n\taside?: ReactNode;\n\t/** Controls offered on the surface. */\n\tactions?: ReactNode;\n\t/** Content below the body. */\n\tfooter?: ReactNode;\n\tclassName?: string;\n\t/** Merged onto the navigation region. */\n\tnavClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<AsideNavShellStrings>;\n}\n\nexport type SettingsShellProps = AsideNavShellProps;\n\nfunction normalizePath(rawUrl?: string): string {\n\tif (!rawUrl) return '';\n\ttry {\n\t\tconst baseOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';\n\t\tconst parsed = new URL(rawUrl, baseOrigin);\n\t\tconst trimmed = parsed.pathname.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t} catch {\n\t\tconst clean = rawUrl.split('?')[0] ?? rawUrl;\n\t\tconst trimmed = clean.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t}\n}\n\nfunction isActiveItem(item: AsideNavItem, currentId?: string, currentPath?: string): boolean {\n\tif (currentId) return item.id === currentId;\n\tif (!currentPath || !item.href) return false;\n\tconst activePath = normalizePath(currentPath);\n\tconst itemPath = normalizePath(item.href);\n\treturn activePath === itemPath || activePath.startsWith(`${itemPath}/`);\n}\n\nexport function AsideNavShell({\n\ttitle,\n\tdescription,\n\tgroups,\n\tcurrentId,\n\tcurrentPath,\n\tchildren,\n\taside,\n\tactions,\n\tfooter,\n\tclassName,\n\tnavClassName,\n\tcontentClassName,\n\trenderLink,\n\tstrings: stringsProp,\n}: AsideNavShellProps) {\n\tconst strings = useStrings(defaultAsideNavShellStrings, stringsProp);\n\tconst linkRenderer = resolveLayoutLinkRenderer({ renderLink });\n\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"aside-nav-shell\"\n\t\t\tdata-slot=\"aside-nav-shell\"\n\t\t\tclassName={cn('aside-nav-shell--component grid min-w-0 gap-space-xl lg:grid-cols-[17rem_minmax(0,1fr)]', className)}\n\t\t>\n\t\t\t<aside data-slot=\"aside-nav-shell-aside\" className=\"aside-nav-shell--aside min-w-0\">\n\t\t\t\t<Card\n\t\t\t\t\tsurface=\"card\"\n\t\t\t\t\tclassName={cn('aside-nav-shell--nav-card sticky top-[calc(var(--shell-header-height)_+_var(--spacing-space-xl))]', navClassName)}\n\t\t\t\t\tcontentClassName=\"grid gap-space-xl\"\n\t\t\t\t>\n\t\t\t\t\t{!!aside && <div className=\"aside-nav-shell--aside-header\">{aside}</div>}\n\t\t\t\t\t<Stack render={<nav aria-label={strings.navigationAriaLabel} />} gap=\"xl\">\n\t\t\t\t\t\t{groups.map((group) => (\n\t\t\t\t\t\t\t<Stack key={group.id} gap=\"sm\">\n\t\t\t\t\t\t\t\t{!!group.label && (\n\t\t\t\t\t\t\t\t\t<DisplayLabel className=\"px-row-x\">\n\t\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Stack gap=\"2xs\">\n\t\t\t\t\t\t\t\t\t{group.items.map((item) => {\n\t\t\t\t\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\t\t\t\t\tconst active = isActiveItem(item, currentId, currentPath);\n\t\t\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"start\" gap=\"md\" wrap={false} render={<span />} className=\"min-w-0 w-full\">\n\t\t\t\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-icon shrink-0 mt-space-2xs',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive ? 'text-primary-accent' : 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t<Stack render={<span />} gap=\"dense\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight={active ? 'semibold' : 'medium'} className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Badge tone={active ? 'primary' : 'secondary'} className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<div key={item.id} onClick={() => { if (!item.disabled) item.onSelect?.(item.id); }}>\n\t\t\t\t\t\t\t\t\t\t\t\t{linkRenderer({\n\t\t\t\t\t\t\t\t\t\t\t\t\thref: item.href,\n\t\t\t\t\t\t\t\t\t\t\t\t\tchildren: content,\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled: item.disabled,\n\t\t\t\t\t\t\t\t\t\t\t\t\texternal: item.external,\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'aside-nav-shell--item flex min-w-0 rounded-inner px-row-x py-row-y transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-accent text-accent-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'text-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t'aria-label': typeof item.label === 'string' ? item.label : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Stack>\n\t\t\t\t</Card>\n\t\t\t</aside>\n\n\t\t\t\t<Stack gap=\"xl\" data-slot=\"aside-nav-shell-main\" className={cn('aside-nav-shell--main', contentClassName)}>\n\t\t\t\t{(title || description || actions) && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\trender={<header />}\n\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\talign={{ sm: 'start' }}\n\t\t\t\t\t\tjustify={{ sm: 'between' }}\n\t\t\t\t\t\tclassName=\"aside-nav-shell--header\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* `flex-1` so the text yields width to the actions instead of\n\t\t\t\t\t\t claiming its full content width. The header wraps on `sm`,\n\t\t\t\t\t\t and the description's `max-w-3xl` is wider than the content\n\t\t\t\t\t\t column, so without this the actions wrapped onto their own\n\t\t\t\t\t\t line below the description rather than sitting beside the\n\t\t\t\t\t\t title. */}\n\t\t\t\t\t\t<Stack gap=\"normal\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && <Heading tag=\"h2\" className=\"border-0 pb-0\">{title}</Heading>}\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text type=\"secondary\" className=\"max-w-3xl\">\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</Stack>\n\t\t\t\t\t\t{!!actions && <Stack direction=\"horizontal\" wrap align=\"center\" gap=\"md\" className=\"shrink-0\">{actions}</Stack>}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t\t\t<div data-slot=\"aside-nav-shell-content\" className=\"aside-nav-shell--content min-w-0\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!footer && <footer className=\"aside-nav-shell--footer\">{footer}</footer>}\n\t\t\t\t</Stack>\n\t\t</section>\n\t);\n}\n\nexport const SettingsShell = AsideNavShell;\n\nAsideNavShell.displayName = 'AsideNavShell';\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as e } from "./theme-scope-kStaAer0.js";
|
|
3
|
-
import { t } from "./utils-
|
|
4
|
-
import { t as n } from "./affordance-geometry.generated-
|
|
5
|
-
import { a as r } from "./typography-
|
|
3
|
+
import { t } from "./utils-BvH9PSmq.js";
|
|
4
|
+
import { t as n } from "./affordance-geometry.generated-CL84ZN9A.js";
|
|
5
|
+
import { a as r } from "./typography-BxQgiZyw.js";
|
|
6
6
|
import { t as i } from "./motion-recipes-B6jKXEcN.js";
|
|
7
7
|
import { t as a } from "./slot-CLF9kLrS.js";
|
|
8
|
-
import { t as o } from "./button-
|
|
9
|
-
import { t as s } from "./surface-recipes-
|
|
8
|
+
import { t as o } from "./button-BZyfTvwm.js";
|
|
9
|
+
import { t as s } from "./surface-recipes-Dd__PD-w.js";
|
|
10
10
|
import { t as c } from "./overlay.recipes-BxW5FIfK.js";
|
|
11
11
|
import * as l from "react";
|
|
12
12
|
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
@@ -64,7 +64,7 @@ function b({ className: n, container: r, children: a, side: s = "right", showClo
|
|
|
64
64
|
children: [/* @__PURE__ */ u(y, {}), /* @__PURE__ */ d(p.Popup, {
|
|
65
65
|
"data-slot": "sheet-content",
|
|
66
66
|
"data-side": s,
|
|
67
|
-
className: t(i.drawer, "border-border bg-background fixed z-50 flex flex-col gap-
|
|
67
|
+
className: t(i.drawer, "border-border bg-background fixed z-50 flex flex-col gap-space-xl bg-clip-padding text-sm shadow-lg data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", n),
|
|
68
68
|
...l,
|
|
69
69
|
children: [a, !!c && /* @__PURE__ */ d(p.Close, {
|
|
70
70
|
"data-slot": "sheet-close",
|
|
@@ -85,14 +85,14 @@ function b({ className: n, container: r, children: a, side: s = "right", showClo
|
|
|
85
85
|
function x({ className: e, ...n }) {
|
|
86
86
|
return /* @__PURE__ */ u("div", {
|
|
87
87
|
"data-slot": "sheet-header",
|
|
88
|
-
className: t("
|
|
88
|
+
className: t("flex flex-col", e),
|
|
89
89
|
...n
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
function S({ className: e, ...n }) {
|
|
93
93
|
return /* @__PURE__ */ u("div", {
|
|
94
94
|
"data-slot": "sheet-footer",
|
|
95
|
-
className: t("
|
|
95
|
+
className: t("mt-auto flex flex-col", e),
|
|
96
96
|
...n
|
|
97
97
|
});
|
|
98
98
|
}
|
|
@@ -171,7 +171,7 @@ M.displayName = "SheetFooter";
|
|
|
171
171
|
var N = l.forwardRef(function({ children: e, className: n, ...i }, a) {
|
|
172
172
|
return /* @__PURE__ */ u(C, {
|
|
173
173
|
ref: a,
|
|
174
|
-
className: t("sheet-title--component", n),
|
|
174
|
+
className: t("sheet-title--component m-0", n),
|
|
175
175
|
...i,
|
|
176
176
|
children: T(e) ? /* @__PURE__ */ u(r, {
|
|
177
177
|
tag: "span",
|
|
@@ -187,7 +187,7 @@ N.displayName = "SheetTitle";
|
|
|
187
187
|
var P = l.forwardRef(function({ children: e, className: n, ...i }, a) {
|
|
188
188
|
return /* @__PURE__ */ u(w, {
|
|
189
189
|
ref: a,
|
|
190
|
-
className: t("sheet-description--component", n),
|
|
190
|
+
className: t("sheet-description--component m-0", n),
|
|
191
191
|
...i,
|
|
192
192
|
children: T(e) ? /* @__PURE__ */ u(r, {
|
|
193
193
|
tag: "span",
|
|
@@ -202,4 +202,4 @@ P.displayName = "SheetDescription";
|
|
|
202
202
|
//#endregion
|
|
203
203
|
export { P as a, N as c, k as i, D as l, j as n, M as o, O as r, A as s, E as t, m as u };
|
|
204
204
|
|
|
205
|
-
//# sourceMappingURL=sheet-
|
|
205
|
+
//# sourceMappingURL=sheet-BFhrNehm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet-BFhrNehm.js","names":["Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription","SheetPrimitive","React","SheetTriggerPrimitive","SheetClosePrimitive","SheetContentPrimitive","SheetHeaderPrimitive","SheetFooterPrimitive","SheetTitlePrimitive","SheetDescriptionPrimitive","useThemePortalContainer","affordanceGeometry","Text","motionRecipes","Slot","Button","modalRegionRecipes","modalBackdropRecipe","React$1","overlayAnatomyRecipes","Sheet$1","props","Dialog","SheetTrigger$1","renderSlot","asChild","SheetClose$1","SheetPortal","resolvedContainer","container","SheetOverlay","cn","className","SheetContent$1","side","children","showCloseButton","XIcon","SheetHeader$1","SheetFooter$1","SheetTitle$1","SheetDescription$1","isSimpleText","value","Sheet","SheetTrigger","SheetClose","SheetContent","SheetHeader","textGap","SheetBody","SheetFooter","SheetTitle","SheetDescription"],"sources":["../src/lib/overlay-anatomy-recipes.ts","../src/components/ui/sheet.tsx","../src/components/base/sheet/sheet.tsx"],"sourcesContent":["import { affordanceGeometry } from './affordance-geometry.generated';\n/** Dismiss controls follow the surface's logical inset; headers reserve the\n * actual small-action width plus an action gap only when a close control exists.\n * These are derived recipes, not additional theme settings.\n */\nexport const overlayAnatomyRecipes = {\n\tclose: affordanceGeometry.overlayClose,\n\theader: affordanceGeometry.overlayHeader,\n} as const;\n","\"use client\";\n\nimport { overlayAnatomyRecipes } from '../../lib/overlay-anatomy-recipes';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\n\nimport { useThemePortalContainer, type ThemePortalContainer } from '../../lib/theme-scope';\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"./button\"\nimport { Slot } from \"./slot\"\nimport { cn } from \"../../lib/utils\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" modal=\"trap-focus\" {...props} />\n}\n\nfunction SheetTrigger({\n asChild = false,\n ...props\n}: SheetPrimitive.Trigger.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Trigger\n data-slot=\"sheet-trigger\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction SheetClose({\n asChild = false,\n ...props\n}: SheetPrimitive.Close.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction SheetPortal({ container, ...props }: SheetPrimitive.Portal.Props) {\n const resolvedContainer = useThemePortalContainer(container)\n return <SheetPrimitive.Portal container={resolvedContainer} data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(modalBackdropRecipe, motionRecipes.backdrop, className)}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n container,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n} & { container?: ThemePortalContainer }) {\n const resolvedContainer = useThemePortalContainer(container)\n return (\n <SheetPortal container={resolvedContainer}>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n motionRecipes.drawer,\n \"border-border bg-background fixed z-50 flex flex-col gap-space-xl bg-clip-padding text-sm shadow-lg data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {!!showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n data-overlay-close=\"\"\n className={overlayAnatomyRecipes.close}\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({\n className,\n asChild = false,\n ...props\n}: SheetPrimitive.Title.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n render={renderSlot}\n className={cn(\"text-foreground font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n asChild = false,\n ...props\n}: SheetPrimitive.Description.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n render={renderSlot}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import { modalRegionRecipes } from '../../../lib/surface-recipes';\nimport { overlayAnatomyRecipes } from '../../../lib/overlay-anatomy-recipes';\nimport type { TextGap } from '../structure';\n/**\n * Sheet — design-system wrapper around the shadcn compound primitive.\n *\n * The root and trigger behavior stay primitive-compatible. The package layer\n * adds a deliberate header / scrollable body / footer structure, calm admin\n * spacing, and stable BEM hooks without narrowing primitive props.\n */\nimport * as React from 'react';\n\nimport {\n\tSheet as SheetPrimitive,\n\tSheetClose as SheetClosePrimitive,\n\tSheetContent as SheetContentPrimitive,\n\tSheetDescription as SheetDescriptionPrimitive,\n\tSheetFooter as SheetFooterPrimitive,\n\tSheetHeader as SheetHeaderPrimitive,\n\tSheetTitle as SheetTitlePrimitive,\n\tSheetTrigger as SheetTriggerPrimitive,\n} from '../../ui/sheet';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport const Sheet = SheetPrimitive;\n\nexport const SheetTrigger = React.forwardRef<\n\tReact.ElementRef<typeof SheetTriggerPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetTriggerPrimitive>\n>(function SheetTrigger({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetTriggerPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-trigger--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetTrigger.displayName = 'SheetTrigger';\n\nexport const SheetClose = React.forwardRef<\n\tReact.ElementRef<typeof SheetClosePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetClosePrimitive>\n>(function SheetClose({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetClosePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-close--component active:translate-y-0!', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetClose.displayName = 'SheetClose';\n\nexport const SheetContent = React.forwardRef<\n\tReact.ElementRef<typeof SheetContentPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetContentPrimitive>\n>(function SheetContent({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetContentPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t// The shell stays flush so its separated regions can each own the\n\t\t\t\t// same default p-surface inset without stacking padding.\n\t\t\t\t'sheet-content--component border-0 data-[side=left]:border-r-0 data-[side=right]:border-l-0 data-[side=top]:border-b-0 data-[side=bottom]:border-t-0 min-h-0 gap-0 overflow-hidden bg-background text-foreground [&_[data-slot=sheet-close]]:active:translate-y-0!',\n\t\t\t\t'data-[side=top]:max-h-[85vh] data-[side=bottom]:max-h-[85vh]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetContent.displayName = 'SheetContent';\n\nexport const SheetHeader = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof SheetHeaderPrimitive> & { textGap?: TextGap }\n>(function SheetHeader({ className, textGap = 'normal', ...props }, ref) {\n\treturn (\n\t\t<SheetHeaderPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'sheet-header--component', modalRegionRecipes.header,\n\t\t\t\toverlayAnatomyRecipes.header,\n\t\t\t\ttextGap === 'dense' ? 'gap-dense' : 'gap-normal',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetHeader.displayName = 'SheetHeader';\n\n/** Scroll-owning content region between the fixed sheet header and footer. */\nexport const SheetBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\tfunction SheetBody({ className, ...props }, ref) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"sheet-body\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'sheet-body--component bg-muted/10', modalRegionRecipes.body,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nSheetBody.displayName = 'SheetBody';\n\nexport const SheetFooter = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof SheetFooterPrimitive>\n>(function SheetFooter({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetFooterPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'sheet-footer--component mt-auto flex-row items-center justify-end', modalRegionRecipes.footer,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetFooter.displayName = 'SheetFooter';\n\nexport const SheetTitle = React.forwardRef<\n\tReact.ElementRef<typeof SheetTitlePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetTitlePrimitive>\n>(function SheetTitle({ children, className, ...props }, ref) {\n\treturn (\n\t\t<SheetTitlePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-title--component m-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"base\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\tclassName=\"sheet-title--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</SheetTitlePrimitive>\n\t);\n});\n\nSheetTitle.displayName = 'SheetTitle';\n\nexport const SheetDescription = React.forwardRef<\n\tReact.ElementRef<typeof SheetDescriptionPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetDescriptionPrimitive>\n>(function SheetDescription({ children, className, ...props }, ref) {\n\treturn (\n\t\t<SheetDescriptionPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-description--component m-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tlineHeight=\"relaxed\"\n\t\t\t\t\tclassName=\"sheet-description--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</SheetDescriptionPrimitive>\n\t);\n});\n\nSheetDescription.displayName = 'SheetDescription';\n"],"mappings":"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"}
|