themelia-react-ui 2.0.2 → 2.0.4
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 +67 -7
- package/README.md +70 -37
- package/THIRD_PARTY_NOTICES.md +6 -12
- package/dist/{accordion-Cjb6sx0G.js → accordion-96o0pN62.js} +5 -5
- package/dist/{accordion-Cjb6sx0G.js.map → accordion-96o0pN62.js.map} +1 -1
- package/dist/action-menu-CHgs8vmj.js +281 -0
- package/dist/action-menu-CHgs8vmj.js.map +1 -0
- package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-B8yGOr8-.js} +7 -1
- package/dist/affordance-geometry.generated-B8yGOr8-.js.map +1 -0
- package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-BZUGwBq6.js} +277 -276
- package/dist/ai-artifact-BZUGwBq6.js.map +1 -0
- package/dist/{app-shell-C4FhvCqF.js → app-shell-D63ATkIK.js} +84 -83
- package/dist/app-shell-D63ATkIK.js.map +1 -0
- package/dist/{attachment-BxDfL2mw.js → attachment-DkoqHPPl.js} +7 -7
- package/dist/{attachment-BxDfL2mw.js.map → attachment-DkoqHPPl.js.map} +1 -1
- package/dist/{auth-ax2BqjrI.js → auth-D2FVZ1MH.js} +10 -10
- package/dist/{auth-ax2BqjrI.js.map → auth-D2FVZ1MH.js.map} +1 -1
- package/dist/{avatar-DAPlDvhJ.js → avatar-DWO_HHhB.js} +5 -5
- package/dist/{avatar-DAPlDvhJ.js.map → avatar-DWO_HHhB.js.map} +1 -1
- package/dist/{badge-HpFqoqSY.js → badge-DErMA7ul.js} +4 -4
- package/dist/{badge-HpFqoqSY.js.map → badge-DErMA7ul.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/batch-action-bar.js +1 -1
- package/dist/base/buttons.js +1 -1
- package/dist/base/cards.js +2 -2
- package/dist/base/carousel.js +3 -3
- package/dist/base/cascader.js +13 -13
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +2 -2
- package/dist/base/command.js +1 -1
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +2 -2
- package/dist/base/display.js +6 -6
- package/dist/base/feedback.js +3 -3
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +3 -3
- package/dist/base/inline-edit.js +10 -10
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/metadata-list.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 +9 -9
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/signature-pad.js +6 -6
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +4 -4
- 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 +3 -3
- 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/{batch-action-bar-DnUJ21NQ.js → batch-action-bar-CdfIkCsV.js} +4 -4
- package/dist/{batch-action-bar-DnUJ21NQ.js.map → batch-action-bar-CdfIkCsV.js.map} +1 -1
- package/dist/blocks/admin.js +20 -20
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +15 -15
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +17 -17
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +1 -1
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +570 -567
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -2
- package/dist/blocks/onboarding.js +5 -5
- package/dist/blocks/planning.js +11 -11
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-C-oqs1sQ.js → breadcrumbs-B-WFKecD.js} +4 -4
- package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-B-WFKecD.js.map} +1 -1
- package/dist/{button-DVzspB_G.js → button-DkmK-z8E.js} +2 -2
- package/dist/{button-DVzspB_G.js.map → button-DkmK-z8E.js.map} +1 -1
- package/dist/{buttons-DPZekJFu.js → buttons-BbfzgczK.js} +8 -8
- package/dist/{buttons-DPZekJFu.js.map → buttons-BbfzgczK.js.map} +1 -1
- package/dist/{cards-BaBZR-AU.js → cards-4JTWqvVe.js} +10 -10
- package/dist/cards-4JTWqvVe.js.map +1 -0
- package/dist/{chart-ZOYyK2xG.js → chart-C19flDQb.js} +4 -4
- package/dist/{chart-ZOYyK2xG.js.map → chart-C19flDQb.js.map} +1 -1
- package/dist/{checkbox-AWIhNhmo.js → checkbox-CzYUTPeJ.js} +9 -5
- package/dist/checkbox-CzYUTPeJ.js.map +1 -0
- package/dist/{choice-inputs-CNHvARCJ.js → choice-inputs-JLtij2y4.js} +182 -176
- package/dist/choice-inputs-JLtij2y4.js.map +1 -0
- package/dist/{code-block-DeneBJR_.js → code-block-CGNaUtAE.js} +7 -7
- package/dist/{code-block-DeneBJR_.js.map → code-block-CGNaUtAE.js.map} +1 -1
- package/dist/{collapsible-C-_l4hpy.js → collapsible-Do4G0zcC.js} +3 -3
- package/dist/{collapsible-C-_l4hpy.js.map → collapsible-Do4G0zcC.js.map} +1 -1
- package/dist/{collection-content-By56pLog.js → collection-content-C0e8SsTm.js} +3 -3
- package/dist/{collection-content-By56pLog.js.map → collection-content-C0e8SsTm.js.map} +1 -1
- package/dist/{combobox-C0EQW6dr.js → combobox-CBJDs6w_.js} +349 -347
- package/dist/combobox-CBJDs6w_.js.map +1 -0
- package/dist/{combobox-xCQ2RMNE.js → combobox-hbhSS18O.js} +158 -112
- package/dist/combobox-hbhSS18O.js.map +1 -0
- package/dist/{command-C25VMRII.js → command-D8NrBj-b.js} +7 -7
- package/dist/{command-C25VMRII.js.map → command-D8NrBj-b.js.map} +1 -1
- package/dist/{comments-BYYlTA8E.js → comments-Di4w0H_S.js} +383 -382
- package/dist/comments-Di4w0H_S.js.map +1 -0
- package/dist/components/base/action-menu/action-menu.d.ts +2 -0
- package/dist/components/base/cards/card.recipes.d.ts +12 -5
- package/dist/components/base/cards/smart-card.types.d.ts +12 -7
- package/dist/components/base/choice-inputs/checkbox.d.ts +7 -2
- package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
- package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
- package/dist/components/base/combobox/combobox-field.d.ts +16 -0
- package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
- package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
- package/dist/components/base/forms/form-field.d.ts +5 -3
- package/dist/components/base/forms/index.d.ts +1 -0
- package/dist/components/base/forms/server-errors.d.ts +16 -0
- package/dist/components/base/forms/workflow.d.ts +5 -2
- package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts +4 -2
- package/dist/components/base/structure/composition.recipes.d.ts +17 -0
- package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
- package/dist/components/base/text-inputs/input.d.ts +4 -2
- package/dist/components/base/text-inputs/textarea.d.ts +4 -2
- package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
- package/dist/components/base/value-inputs/slider.d.ts +5 -1
- package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
- package/dist/components/typography/text.styles.d.ts +26 -1
- package/dist/components/ui/combobox-dismiss.d.ts +16 -0
- package/dist/components/ui/combobox.d.ts +11 -6
- package/dist/components/ui/dialog.d.ts +1 -1
- package/dist/components/ui/popover.d.ts +1 -1
- package/dist/components/ui/sheet.d.ts +1 -1
- package/dist/composition.recipes-COdiFhxB.js +19 -0
- package/dist/composition.recipes-COdiFhxB.js.map +1 -0
- package/dist/containers-CRmHf7GP.js +104 -0
- package/dist/containers-CRmHf7GP.js.map +1 -0
- package/dist/{copyable-ClBuk_UK.js → copyable-CnGCZdX4.js} +4 -4
- package/dist/{copyable-ClBuk_UK.js.map → copyable-CnGCZdX4.js.map} +1 -1
- package/dist/{data-display-DT_khPl_.js → data-display-D4oujtx0.js} +239 -238
- package/dist/data-display-D4oujtx0.js.map +1 -0
- package/dist/{date-DCrsDTZc.js → date-Q7jnXxpk.js} +5 -5
- package/dist/{date-DCrsDTZc.js.map → date-Q7jnXxpk.js.map} +1 -1
- package/dist/{date-picker-ay0Pha_a.js → date-picker-zOt1oNss.js} +102 -90
- package/dist/date-picker-zOt1oNss.js.map +1 -0
- package/dist/date-pickers-cj8IXbDC.js +179 -0
- package/dist/date-pickers-cj8IXbDC.js.map +1 -0
- package/dist/{display-hAc1HjpI.js → display-BB4BL_-K.js} +8 -8
- package/dist/{display-hAc1HjpI.js.map → display-BB4BL_-K.js.map} +1 -1
- package/dist/{dropdown-menu-Cl4X7L5S.js → dropdown-menu-CjY8Vt7W.js} +8 -8
- package/dist/{dropdown-menu-Cl4X7L5S.js.map → dropdown-menu-CjY8Vt7W.js.map} +1 -1
- package/dist/features/activities.js +11 -11
- package/dist/features/ai-chat.js +9 -9
- package/dist/features/appointment-calendar.js +222 -220
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +8 -8
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +10 -10
- package/dist/features/email-composer.js +275 -274
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +199 -198
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +12 -12
- package/dist/features/kanban.js +4 -4
- package/dist/features/map.js +7 -7
- package/dist/features/media-library.js +623 -622
- 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 +973 -969
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +12 -12
- package/dist/features/resource-assignment.js +8 -8
- package/dist/features/resource.js +113 -112
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +2 -2
- package/dist/features/schema-form.js +254 -253
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +19 -19
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-BYIhtitP.js → feedback-DZNL5Lg1.js} +9 -9
- package/dist/{feedback-BYIhtitP.js.map → feedback-DZNL5Lg1.js.map} +1 -1
- package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DjwGx8eM.js} +2 -2
- package/dist/{field-affordance-recipes-DZhnIL_Y.js.map → field-affordance-recipes-DjwGx8eM.js.map} +1 -1
- package/dist/{filters-BGfvjP4d.js → filters-BcT-uoFy.js} +19 -19
- package/dist/{filters-BGfvjP4d.js.map → filters-BcT-uoFy.js.map} +1 -1
- package/dist/{form-field-CwH9y77i.js → form-field-CsgRmdit.js} +14 -8
- package/dist/form-field-CsgRmdit.js.map +1 -0
- package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-NXgjkmBG.js} +3 -3
- package/dist/{form-sizing-BdP_Mf5p.js.map → form-sizing-NXgjkmBG.js.map} +1 -1
- package/dist/{forms-B9G_xwzi.js → forms-BV5m5aQF.js} +83 -65
- package/dist/forms-BV5m5aQF.js.map +1 -0
- package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-Cd33AKbD.js} +288 -288
- package/dist/forms-numeric-Cd33AKbD.js.map +1 -0
- package/dist/{header-CGXuhcRm.js → header-BA697l4a.js} +14 -14
- package/dist/{header-CGXuhcRm.js.map → header-BA697l4a.js.map} +1 -1
- package/dist/hooks/useFormErrors.d.ts +1 -1
- package/dist/{hooks-Dkz0K2WT.js → hooks-BQ-L7Uu2.js} +2 -2
- package/dist/{hooks-Dkz0K2WT.js.map → hooks-BQ-L7Uu2.js.map} +1 -1
- package/dist/{icon-badge-DYKIwvOV.js → icon-badge-COWbCCWu.js} +3 -3
- package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-COWbCCWu.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/input-Cdw4k0fb.js +289 -0
- package/dist/input-Cdw4k0fb.js.map +1 -0
- package/dist/{input-CZw8iU99.js → input-DOPL5_QE.js} +3 -3
- package/dist/{input-CZw8iU99.js.map → input-DOPL5_QE.js.map} +1 -1
- package/dist/item-BvZ2DR_x.js +277 -0
- package/dist/item-BvZ2DR_x.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 +6 -0
- package/dist/lib/ui-provider/types.d.ts +1 -1
- package/dist/lib/use-popup-focus-recovery.d.ts +8 -0
- package/dist/lib/utils.js +1 -1
- package/dist/{media-gallery-3zIVLMWH.js → media-gallery-CSl5W1Fy.js} +6 -6
- package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-CSl5W1Fy.js.map} +1 -1
- package/dist/{mentions-utuUvH1K.js → mentions-RKOQaaIB.js} +8 -8
- package/dist/{mentions-utuUvH1K.js.map → mentions-RKOQaaIB.js.map} +1 -1
- package/dist/{message-DZ_ruyUV.js → message-INU2xsxu.js} +4 -4
- package/dist/{message-DZ_ruyUV.js.map → message-INU2xsxu.js.map} +1 -1
- package/dist/metadata-list-qVV7AVxa.js +443 -0
- package/dist/metadata-list-qVV7AVxa.js.map +1 -0
- package/dist/{navigation-BzhHI3lo.js → navigation-BQNcg1jT.js} +8 -8
- package/dist/{navigation-BzhHI3lo.js.map → navigation-BQNcg1jT.js.map} +1 -1
- package/dist/{navigation-Bnotn4AQ.js → navigation-DLF3E1IC.js} +7 -7
- package/dist/{navigation-Bnotn4AQ.js.map → navigation-DLF3E1IC.js.map} +1 -1
- package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-WZEs-hYo.js} +2 -2
- package/dist/{navigation-row-recipes-BFLCk_Aq.js.map → navigation-row-recipes-WZEs-hYo.js.map} +1 -1
- package/dist/{number-DbV1Dija.js → number-E_OiIfJz.js} +5 -5
- package/dist/{number-DbV1Dija.js.map → number-E_OiIfJz.js.map} +1 -1
- package/dist/{overflow-tab-bar-CWY7Nogn.js → overflow-tab-bar-CrbqMteP.js} +107 -105
- package/dist/overflow-tab-bar-CrbqMteP.js.map +1 -0
- package/dist/{overlays-DNWmZrJ4.js → overlays-BlKynmde.js} +322 -319
- package/dist/overlays-BlKynmde.js.map +1 -0
- package/dist/page-CIwNUtGr.js +227 -0
- package/dist/page-CIwNUtGr.js.map +1 -0
- package/dist/page-header-commands-DFMlNYzN.js +128 -0
- package/dist/page-header-commands-DFMlNYzN.js.map +1 -0
- package/dist/{pagination-BL25hu2s.js → pagination-Ch8X_47u.js} +5 -5
- package/dist/{pagination-BL25hu2s.js.map → pagination-Ch8X_47u.js.map} +1 -1
- package/dist/{popover-menu-B9WWygpa.js → popover-menu-BYaCdFhf.js} +6 -6
- package/dist/{popover-menu-B9WWygpa.js.map → popover-menu-BYaCdFhf.js.map} +1 -1
- package/dist/{popover-7_m66eYW.js → popover-uwzX2vo7.js} +65 -63
- package/dist/popover-uwzX2vo7.js.map +1 -0
- package/dist/{primitives-BFK08r9M.js → primitives-Du64iDbb.js} +6 -6
- package/dist/{primitives-BFK08r9M.js.map → primitives-Du64iDbb.js.map} +1 -1
- package/dist/primitives.js +4 -4
- package/dist/{progress-B1VnCT0K.js → progress-BvF2oCdV.js} +5 -5
- package/dist/{progress-B1VnCT0K.js.map → progress-BvF2oCdV.js.map} +1 -1
- package/dist/{receipt-BVSOH3Xo.js → receipt-D789Jwyy.js} +6 -6
- package/dist/{receipt-BVSOH3Xo.js.map → receipt-D789Jwyy.js.map} +1 -1
- package/dist/{rich-text-GOUyKQ-s.js → rich-text-CLJEf76s.js} +4 -4
- package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-CLJEf76s.js.map} +1 -1
- package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-Cm1dpUpQ.js} +10 -10
- package/dist/{rich-text-editor-cRLC-eBK.js.map → rich-text-editor-Cm1dpUpQ.js.map} +1 -1
- package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-L__e4x47.js} +4 -4
- package/dist/{rich-text-editor-toolbar-DfXg0-VC.js.map → rich-text-editor-toolbar-L__e4x47.js.map} +1 -1
- package/dist/{scroll-area-DcI-M1UT.js → scroll-area-La5RXsEk.js} +2 -2
- package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-La5RXsEk.js.map} +1 -1
- package/dist/{separator-Bom7NsGO.js → separator-DAEV0w65.js} +2 -2
- package/dist/{separator-Bom7NsGO.js.map → separator-DAEV0w65.js.map} +1 -1
- package/dist/{separator-BDV-Y648.js → separator-GNfPG-90.js} +3 -3
- package/dist/{separator-BDV-Y648.js.map → separator-GNfPG-90.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/settings-BA2iboic.js +174 -0
- package/dist/settings-BA2iboic.js.map +1 -0
- package/dist/{sheet-CGpB3omz.js → sheet-DoAxTb2J.js} +75 -73
- package/dist/sheet-DoAxTb2J.js.map +1 -0
- package/dist/{sidebar-A0ElHINE.js → sidebar-ByqKR_W5.js} +13 -13
- package/dist/{sidebar-A0ElHINE.js.map → sidebar-ByqKR_W5.js.map} +1 -1
- package/dist/{sidebar-CPx_7YBa.js → sidebar-D2iSnGJ7.js} +11 -11
- package/dist/{sidebar-CPx_7YBa.js.map → sidebar-D2iSnGJ7.js.map} +1 -1
- package/dist/{skeleton-Byjnt7qr.js → skeleton-CUj8O5Bd.js} +3 -3
- package/dist/{skeleton-Byjnt7qr.js.map → skeleton-CUj8O5Bd.js.map} +1 -1
- package/dist/smart-card-CqkzQsK-.js +614 -0
- package/dist/smart-card-CqkzQsK-.js.map +1 -0
- package/dist/{structure-BmisBK-3.js → structure-C0V0_Fyf.js} +3 -3
- package/dist/{structure-BmisBK-3.js.map → structure-C0V0_Fyf.js.map} +1 -1
- package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
- package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{table-DsfzoUia.js → table-CpvnzJn9.js} +3 -3
- package/dist/{table-DsfzoUia.js.map → table-CpvnzJn9.js.map} +1 -1
- package/dist/{table-BweFy_P9.js → table-DH7rozUv.js} +19 -19
- package/dist/{table-BweFy_P9.js.map → table-DH7rozUv.js.map} +1 -1
- package/dist/{tabs-CDocW5D1.js → tabs-eqVsJZWO.js} +7 -7
- package/dist/{tabs-CDocW5D1.js.map → tabs-eqVsJZWO.js.map} +1 -1
- package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-DXItiR0O.js} +101 -98
- package/dist/text-inputs-DXItiR0O.js.map +1 -0
- package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
- package/dist/text.styles-B64My8RZ.js.map +1 -0
- package/dist/theme.css +152 -112
- package/dist/{timelines-CwM_9IhD.js → timelines-DmtztAY_.js} +10 -10
- package/dist/{timelines-CwM_9IhD.js.map → timelines-DmtztAY_.js.map} +1 -1
- package/dist/{tooltip-yiRJUFjp.js → tooltip-B4hjKtoV.js} +3 -3
- package/dist/{tooltip-yiRJUFjp.js.map → tooltip-B4hjKtoV.js.map} +1 -1
- package/dist/{tree-WnKQzwbq.js → tree-CV11PURP.js} +8 -8
- package/dist/{tree-WnKQzwbq.js.map → tree-CV11PURP.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-CSyJrh28.js +117 -0
- package/dist/typography-CSyJrh28.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-C_U0Xma4.js → ui-provider-CQCuCBcy.js} +3 -3
- package/dist/ui-provider-CQCuCBcy.js.map +1 -0
- package/dist/ui-provider.js +1 -1
- package/dist/{upload-CXyxmQBP.js → upload-C9SA0X-8.js} +11 -11
- package/dist/{upload-CXyxmQBP.js.map → upload-C9SA0X-8.js.map} +1 -1
- package/dist/{upload-queue-Boscubn9.js → upload-queue-DhQJiSRc.js} +9 -9
- package/dist/{upload-queue-Boscubn9.js.map → upload-queue-DhQJiSRc.js.map} +1 -1
- package/dist/{usage-card-BhO5eqkX.js → usage-card-DVTRDmGz.js} +134 -133
- package/dist/usage-card-DVTRDmGz.js.map +1 -0
- package/dist/use-popup-focus-recovery-C0QPvgOR.js +36 -0
- package/dist/use-popup-focus-recovery-C0QPvgOR.js.map +1 -0
- package/dist/{utils-BRhFDwuU.js → utils-CF3c95Io.js} +68 -5
- package/dist/utils-CF3c95Io.js.map +1 -0
- package/dist/value-inputs-C0o70p-U.js +980 -0
- package/dist/value-inputs-C0o70p-U.js.map +1 -0
- package/dist/{value-typography-BP8OG6h5.js → value-typography-ClupF0Gz.js} +2 -2
- package/dist/{value-typography-BP8OG6h5.js.map → value-typography-ClupF0Gz.js.map} +1 -1
- package/dist/workspace-9EFVXUyk.js +410 -0
- package/dist/workspace-9EFVXUyk.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +14 -129
- package/docs/consumer-skill/examples/app-layout.tsx +22 -12
- package/docs/consumer-skill/examples/authentication.tsx +77 -0
- package/docs/consumer-skill/examples/edit.tsx +30 -38
- package/docs/consumer-skill/examples/manifest.json +51 -1
- package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
- package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
- package/docs/consumer-skill/examples/rhf-overlay-form.tsx +92 -0
- package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
- package/docs/consumer-skill/references/agents-md.md +17 -7
- package/docs/consumer-skill/references/authentication.md +42 -0
- package/docs/consumer-skill/references/component-contracts.json +319824 -0
- package/docs/consumer-skill/references/composition-mapping.md +92 -0
- package/docs/consumer-skill/references/composition.md +43 -19
- package/docs/consumer-skill/references/design-contract.md +32 -0
- package/docs/consumer-skill/references/discovery.md +84 -7
- package/docs/consumer-skill/references/installation.md +45 -35
- package/docs/consumer-skill/references/integration.md +6 -2
- package/docs/consumer-skill/references/public-api.json +1520 -66
- package/docs/consumer-skill/references/review.md +9 -4
- package/docs/consumer-skill/references/rhf-workflows.md +86 -0
- package/docs/consumer-skill/references/screen-archetypes.md +22 -0
- package/docs/consumer-skill/references/theming.md +8 -9
- package/docs/consumer-skill/references/tokens.json +12 -3
- package/docs/consumer-skill/references/workflows.md +7 -5
- package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
- package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
- package/docs/consumer-skill/scripts/composition.mjs +198 -0
- package/docs/consumer-skill/scripts/discovery.mjs +42 -10
- package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
- package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
- package/docs/consumer-skill/scripts/inspection.mjs +138 -0
- package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
- package/docs/consumer-skill/scripts/setup-skills.mjs +76 -0
- package/docs/consumer-skills/themelia-components/SKILL.md +30 -0
- package/docs/consumer-skills/themelia-composition/SKILL.md +35 -0
- package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
- package/docs/consumer-skills/themelia-foundation/SKILL.md +14 -0
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +35 -0
- package/package.json +6 -4
- package/templates/README.md +39 -0
- package/templates/admin-shell-template.tsx +382 -0
- package/templates/analytics-operations-template.tsx +376 -0
- package/templates/customers-template.tsx +509 -0
- package/templates/index.ts +29 -0
- package/templates/orders-template.tsx +1102 -0
- package/templates/products-template.tsx +834 -0
- package/templates/user-permissions-template.tsx +450 -0
- package/dist/action-menu-CllU52Mm.js +0 -280
- package/dist/action-menu-CllU52Mm.js.map +0 -1
- package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
- package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
- package/dist/app-shell-C4FhvCqF.js.map +0 -1
- package/dist/cards-BaBZR-AU.js.map +0 -1
- package/dist/checkbox-AWIhNhmo.js.map +0 -1
- package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
- package/dist/combobox-C0EQW6dr.js.map +0 -1
- package/dist/combobox-xCQ2RMNE.js.map +0 -1
- package/dist/comments-BYYlTA8E.js.map +0 -1
- package/dist/containers-Mu1LMGV1.js +0 -103
- package/dist/containers-Mu1LMGV1.js.map +0 -1
- package/dist/data-display-DT_khPl_.js.map +0 -1
- package/dist/date-picker-ay0Pha_a.js.map +0 -1
- package/dist/date-pickers-Ccw8DL2b.js +0 -175
- package/dist/date-pickers-Ccw8DL2b.js.map +0 -1
- package/dist/form-field-CwH9y77i.js.map +0 -1
- package/dist/forms-B9G_xwzi.js.map +0 -1
- package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
- package/dist/input-DQdEd0YD.js +0 -263
- package/dist/input-DQdEd0YD.js.map +0 -1
- package/dist/item-K5_ghvze.js +0 -275
- package/dist/item-K5_ghvze.js.map +0 -1
- package/dist/metadata-list-8N16ZMW_.js +0 -405
- package/dist/metadata-list-8N16ZMW_.js.map +0 -1
- package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
- package/dist/overlays-DNWmZrJ4.js.map +0 -1
- package/dist/page-Bgl1F560.js +0 -224
- package/dist/page-Bgl1F560.js.map +0 -1
- package/dist/page-header-commands-DOb6WsfD.js +0 -126
- package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
- package/dist/popover-7_m66eYW.js.map +0 -1
- package/dist/settings-ybnjVwbd.js +0 -171
- package/dist/settings-ybnjVwbd.js.map +0 -1
- package/dist/sheet-CGpB3omz.js.map +0 -1
- package/dist/smart-card-DiC5aac3.js +0 -604
- package/dist/smart-card-DiC5aac3.js.map +0 -1
- package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
- package/dist/text.styles-g4He6UIW.js.map +0 -1
- package/dist/typography-UTnveOEy.js +0 -117
- package/dist/typography-UTnveOEy.js.map +0 -1
- package/dist/ui-provider-C_U0Xma4.js.map +0 -1
- package/dist/usage-card-BhO5eqkX.js.map +0 -1
- package/dist/utils-BRhFDwuU.js.map +0 -1
- package/dist/value-inputs-DXPDjvBU.js +0 -963
- package/dist/value-inputs-DXPDjvBU.js.map +0 -1
- package/dist/workspace-Cdrg7k9f.js +0 -408
- package/dist/workspace-Cdrg7k9f.js.map +0 -1
|
@@ -27,17 +27,32 @@ var t = {
|
|
|
27
27
|
"3xl": "text-3xl leading-tight tracking-tight",
|
|
28
28
|
"4xl": "text-4xl leading-tight tracking-tight"
|
|
29
29
|
}, i = {
|
|
30
|
+
route: "xl",
|
|
31
|
+
subject: "base",
|
|
32
|
+
subsection: "sm"
|
|
33
|
+
}, a = {
|
|
34
|
+
primary: { type: "inherit" },
|
|
35
|
+
structuralDescription: { type: "secondary" },
|
|
36
|
+
supporting: {
|
|
37
|
+
type: "secondary",
|
|
38
|
+
size: "xs"
|
|
39
|
+
},
|
|
40
|
+
subsection: {
|
|
41
|
+
type: "inherit",
|
|
42
|
+
weight: "semibold"
|
|
43
|
+
}
|
|
44
|
+
}, o = {
|
|
30
45
|
normal: "font-normal",
|
|
31
46
|
regular: "font-normal",
|
|
32
47
|
medium: "font-medium",
|
|
33
48
|
semibold: "font-semibold",
|
|
34
49
|
bold: "font-bold",
|
|
35
50
|
inherit: ""
|
|
36
|
-
},
|
|
51
|
+
}, s = {
|
|
37
52
|
left: "text-start",
|
|
38
53
|
center: "text-center",
|
|
39
54
|
right: "text-end"
|
|
40
|
-
},
|
|
55
|
+
}, c = {
|
|
41
56
|
normal: "leading-normal",
|
|
42
57
|
relaxed: "leading-relaxed",
|
|
43
58
|
loose: "leading-loose",
|
|
@@ -45,13 +60,13 @@ var t = {
|
|
|
45
60
|
snug: "leading-snug",
|
|
46
61
|
none: "leading-none",
|
|
47
62
|
inherit: ""
|
|
48
|
-
},
|
|
63
|
+
}, l = e("m-0 font-sans", {
|
|
49
64
|
variants: {
|
|
50
65
|
type: t,
|
|
51
66
|
size: n,
|
|
52
|
-
weight:
|
|
53
|
-
align:
|
|
54
|
-
lineHeight:
|
|
67
|
+
weight: o,
|
|
68
|
+
align: s,
|
|
69
|
+
lineHeight: c,
|
|
55
70
|
numeric: {
|
|
56
71
|
true: "font-mono tabular-nums",
|
|
57
72
|
false: ""
|
|
@@ -66,10 +81,10 @@ var t = {
|
|
|
66
81
|
numeric: !1
|
|
67
82
|
}
|
|
68
83
|
});
|
|
69
|
-
function
|
|
70
|
-
return
|
|
84
|
+
function u(e) {
|
|
85
|
+
return l(e);
|
|
71
86
|
}
|
|
72
87
|
//#endregion
|
|
73
|
-
export {
|
|
88
|
+
export { s as a, l as c, u as i, o as l, i as n, c as o, r, n as s, a as t };
|
|
74
89
|
|
|
75
|
-
//# sourceMappingURL=text.styles-
|
|
90
|
+
//# sourceMappingURL=text.styles-B64My8RZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.styles-B64My8RZ.js","names":["textTypes","textSizes","headingSizes","headingRoleSizes","copyRoleProps","textWeights","textAlignments","textLineHeights","textVariants","cva","resolveTextClassNames","options"],"sources":["../src/components/typography/text.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\n/**\n * Text roles. `inherit` keeps the surrounding text's role: an inline span inside\n * a sentence takes its colour, weight or leading instead of resetting them. Colour\n * uses an explicit inherit utility because anchors otherwise fall back to the\n * browser link colour without preflight; weight and leading emit no class.\n */\nexport const textTypes = {\n main: 'text-foreground', inverse: 'text-inverse-foreground',\n secondary: 'text-muted-foreground', discrete: 'text-muted-foreground',\n error: 'text-destructive', success: 'text-success', primary: 'text-primary-accent',\n inherit: 'text-inherit',\n} as const;\nexport const textSizes = {\n inherit: '[font-size:inherit]', xxs: 'text-xxs', xs: 'text-xs', pxs: 'text-pxs',\n sm: 'text-sm', base: 'text-base', lg: 'text-lg', xl: 'text-xl',\n} as const;\n/**\n * Semantic heading level is independent of visual emphasis. No additional theme\n * roots: compact admin sizes keep snug leading; display sizes (xl and up) tighten\n * tracking and 2xl and up tighten leading so multi-line titles stay one block.\n */\nexport const headingSizes = {\n sm: 'text-sm leading-snug', base: 'text-base leading-snug', lg: 'text-lg leading-snug',\n xl: 'text-xl leading-snug tracking-tight', '2xl': 'text-2xl leading-tight tracking-tight',\n '3xl': 'text-3xl leading-tight tracking-tight', '4xl': 'text-4xl leading-tight tracking-tight',\n} as const;\n/** Library-owned title responsibilities; semantic heading tags remain separate.\n * A nested record title is a subject, even when its component is called a header. */\nexport const headingRoleSizes = {\n route: 'xl', subject: 'base', subsection: 'sm',\n} as const satisfies Record<string, keyof typeof headingSizes>;\n\n/** Shared copy intent without fixing the provider's ordinary text size.\n * Compact supporting copy deliberately uses the smaller secondary role. */\nexport const copyRoleProps = {\n primary: {type: 'inherit'},\n structuralDescription: {type: 'secondary'},\n supporting: {type: 'secondary', size: 'xs'},\n subsection: {type: 'inherit', weight: 'semibold'},\n} as const;\nexport const textWeights = {normal: 'font-normal', regular: 'font-normal', medium: 'font-medium', semibold: 'font-semibold', bold: 'font-bold', inherit: ''} as const;\n/**\n * `left` and `right` follow the reading direction (start and end), so default\n * text and right-aligned figures mirror correctly under `dir=\"rtl\"`.\n */\nexport const textAlignments = {left: 'text-start', center: 'text-center', right: 'text-end'} as const;\nexport const textLineHeights = {normal: 'leading-normal', relaxed: 'leading-relaxed', loose: 'leading-loose', tight: 'leading-tight', snug: 'leading-snug', none: 'leading-none', inherit: ''} as const;\n\n/**\n * `numeric` is the monospace treatment for identifiers and code-like values\n * (`font-mono tabular-nums`). Numbers, amounts, dates and durations use the\n * number primitives, which keep the sans UI font with tabular figures.\n */\nexport const textVariants = cva('m-0 font-sans', {\n variants: {type: textTypes, size: textSizes, weight: textWeights, align: textAlignments, lineHeight: textLineHeights, numeric: {true: 'font-mono tabular-nums', false: ''}},\n defaultVariants: {type: 'main', size: 'sm', weight: 'regular', align: 'left', lineHeight: 'normal', numeric: false},\n});\n\nexport function resolveTextClassNames(options: Parameters<typeof textVariants>[0] & {className?: string}): string {\n return textVariants(options);\n}\n"],"mappings":";;AAQA,IAAaA,IAAY;CACvB,MAAM;CAAmB,SAAS;CAClC,WAAW;CAAyB,UAAU;CAC9C,OAAO;CAAoB,SAAS;CAAgB,SAAS;CAC7D,SAAS;AACX,GACaC,IAAY;CACvB,SAAS;CAAuB,KAAK;CAAY,IAAI;CAAW,KAAK;CACrE,IAAI;CAAW,MAAM;CAAa,IAAI;CAAW,IAAI;AACvD,GAMaC,IAAe;CAC1B,IAAI;CAAwB,MAAM;CAA0B,IAAI;CAChE,IAAI;CAAuC,OAAO;CAClD,OAAO;CAAyC,OAAO;AACzD,GAGaC,IAAmB;CAC9B,OAAO;CAAM,SAAS;CAAQ,YAAY;AAC5C,GAIaC,IAAgB;CAC3B,SAAS,EAAC,MAAM,UAAS;CACzB,uBAAuB,EAAC,MAAM,YAAW;CACzC,YAAY;EAAC,MAAM;EAAa,MAAM;CAAI;CAC1C,YAAY;EAAC,MAAM;EAAW,QAAQ;CAAU;AAClD,GACaC,IAAc;CAAC,QAAQ;CAAe,SAAS;CAAe,QAAQ;CAAe,UAAU;CAAiB,MAAM;CAAa,SAAS;AAAE,GAK9IC,IAAiB;CAAC,MAAM;CAAc,QAAQ;CAAe,OAAO;AAAU,GAC9EC,IAAkB;CAAC,QAAQ;CAAkB,SAAS;CAAmB,OAAO;CAAiB,OAAO;CAAiB,MAAM;CAAgB,MAAM;CAAgB,SAAS;AAAE,GAOhLC,IAAeC,EAAI,iBAAiB;CAC/C,UAAU;EAAC,MAAMT;EAAW,MAAMC;EAAW,QAAQI;EAAa,OAAOC;EAAgB,YAAYC;EAAiB,SAAS;GAAC,MAAM;GAA0B,OAAO;EAAE;CAAC;CAC1K,iBAAiB;EAAC,MAAM;EAAQ,MAAM;EAAM,QAAQ;EAAW,OAAO;EAAQ,YAAY;EAAU,SAAS;CAAK;AACpH,CAAC;AAED,SAAgBG,EAAsB,GAA4E;CAChH,OAAOF,EAAaG,CAAO;AAC7B"}
|
package/dist/theme.css
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
--destructive: oklch(0.50 0.2039 27.325); /* Destructive action, error, and invalid-state color. */
|
|
84
84
|
--destructive-foreground: oklch(0.99 0 0); /* Text and icons on solid destructive fills. */
|
|
85
85
|
--border: oklch(0.922 0 0); /* Default divider, outline, and surface-border color. */
|
|
86
|
-
--input: oklch(0.
|
|
86
|
+
--input: oklch(0.922 0 0); /* Shadcn neutral control boundary. Focus and invalid states use their own semantic roles. */
|
|
87
87
|
--ring: oklch(0.60 0 0); /* Focus color: a focused control's frame takes it at full strength (3:1) inside a soft 3px halo of it at 50%. */
|
|
88
88
|
/*
|
|
89
89
|
* Categorical chart series. Hues are held identical in light and dark so a
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
--destructive: oklch(0.704 0.1876 22.216);
|
|
139
139
|
--destructive-foreground: oklch(0.18 0.05 22);
|
|
140
140
|
--border: oklch(1 0 0 / 10%);
|
|
141
|
-
--input: oklch(1 0 0 /
|
|
141
|
+
--input: oklch(1 0 0 / 15%);
|
|
142
142
|
--ring: oklch(0.65 0 0);
|
|
143
143
|
--chart-1: oklch(0.74 0.13 167);
|
|
144
144
|
--chart-2: oklch(0.72 0.14 230);
|
|
@@ -434,6 +434,154 @@
|
|
|
434
434
|
}
|
|
435
435
|
|
|
436
436
|
/* Generated geometry utilities:start */
|
|
437
|
+
@utility px-surface-xs {
|
|
438
|
+
padding-inline: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
@utility ps-surface-xs {
|
|
442
|
+
padding-inline-start: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
@utility pe-surface-xs {
|
|
446
|
+
padding-inline-end: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
@utility pl-surface-xs {
|
|
450
|
+
padding-left: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
@utility pr-surface-xs {
|
|
454
|
+
padding-right: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
@utility py-surface-xs {
|
|
458
|
+
padding-block: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
@utility pt-surface-xs {
|
|
462
|
+
padding-top: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
@utility pb-surface-xs {
|
|
466
|
+
padding-bottom: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
@utility p-surface-xs {
|
|
470
|
+
padding-block: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
471
|
+
padding-inline: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
@utility px-surface-sm {
|
|
475
|
+
padding-inline: calc(var(--surface-x) * 2 / 3 * var(--space-scale));
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
@utility ps-surface-sm {
|
|
479
|
+
padding-inline-start: calc(var(--surface-x) * 2 / 3 * var(--space-scale));
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
@utility pe-surface-sm {
|
|
483
|
+
padding-inline-end: calc(var(--surface-x) * 2 / 3 * var(--space-scale));
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
@utility pl-surface-sm {
|
|
487
|
+
padding-left: calc(var(--surface-x) * 2 / 3 * var(--space-scale));
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
@utility pr-surface-sm {
|
|
491
|
+
padding-right: calc(var(--surface-x) * 2 / 3 * var(--space-scale));
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
@utility py-surface-sm {
|
|
495
|
+
padding-block: calc(var(--surface-y) * 2 / 3 * var(--space-scale));
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
@utility pt-surface-sm {
|
|
499
|
+
padding-top: calc(var(--surface-y) * 2 / 3 * var(--space-scale));
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
@utility pb-surface-sm {
|
|
503
|
+
padding-bottom: calc(var(--surface-y) * 2 / 3 * var(--space-scale));
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
@utility p-surface-sm {
|
|
507
|
+
padding-block: calc(var(--surface-y) * 2 / 3 * var(--space-scale));
|
|
508
|
+
padding-inline: calc(var(--surface-x) * 2 / 3 * var(--space-scale));
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
@utility px-surface {
|
|
512
|
+
padding-inline: calc(var(--surface-x) * var(--space-scale));
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
@utility ps-surface {
|
|
516
|
+
padding-inline-start: calc(var(--surface-x) * var(--space-scale));
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
@utility pe-surface {
|
|
520
|
+
padding-inline-end: calc(var(--surface-x) * var(--space-scale));
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
@utility pl-surface {
|
|
524
|
+
padding-left: calc(var(--surface-x) * var(--space-scale));
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
@utility pr-surface {
|
|
528
|
+
padding-right: calc(var(--surface-x) * var(--space-scale));
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
@utility py-surface {
|
|
532
|
+
padding-block: calc(var(--surface-y) * var(--space-scale));
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
@utility pt-surface {
|
|
536
|
+
padding-top: calc(var(--surface-y) * var(--space-scale));
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
@utility pb-surface {
|
|
540
|
+
padding-bottom: calc(var(--surface-y) * var(--space-scale));
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
@utility p-surface {
|
|
544
|
+
padding-block: calc(var(--surface-y) * var(--space-scale));
|
|
545
|
+
padding-inline: calc(var(--surface-x) * var(--space-scale));
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
@utility px-surface-lg {
|
|
549
|
+
padding-inline: calc(var(--surface-x) * 4 / 3 * var(--space-scale));
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
@utility ps-surface-lg {
|
|
553
|
+
padding-inline-start: calc(var(--surface-x) * 4 / 3 * var(--space-scale));
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
@utility pe-surface-lg {
|
|
557
|
+
padding-inline-end: calc(var(--surface-x) * 4 / 3 * var(--space-scale));
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
@utility pl-surface-lg {
|
|
561
|
+
padding-left: calc(var(--surface-x) * 4 / 3 * var(--space-scale));
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
@utility pr-surface-lg {
|
|
565
|
+
padding-right: calc(var(--surface-x) * 4 / 3 * var(--space-scale));
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
@utility py-surface-lg {
|
|
569
|
+
padding-block: calc(var(--surface-y) * 4 / 3 * var(--space-scale));
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
@utility pt-surface-lg {
|
|
573
|
+
padding-top: calc(var(--surface-y) * 4 / 3 * var(--space-scale));
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
@utility pb-surface-lg {
|
|
577
|
+
padding-bottom: calc(var(--surface-y) * 4 / 3 * var(--space-scale));
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
@utility p-surface-lg {
|
|
581
|
+
padding-block: calc(var(--surface-y) * 4 / 3 * var(--space-scale));
|
|
582
|
+
padding-inline: calc(var(--surface-x) * 4 / 3 * var(--space-scale));
|
|
583
|
+
}
|
|
584
|
+
|
|
437
585
|
@utility h-action-xs {
|
|
438
586
|
height: calc(var(--height-action) * 7 / 9 * var(--density-scale));
|
|
439
587
|
}
|
|
@@ -727,8 +875,8 @@
|
|
|
727
875
|
/* Surface base measurements. Utilities apply --space-scale at use time.
|
|
728
876
|
* The xs inset is half the surface root for action menus,
|
|
729
877
|
* option lists, selects, and equivalent item popovers. */
|
|
730
|
-
--surface-x: 1.
|
|
731
|
-
--surface-y: 1.
|
|
878
|
+
--surface-x: 1.5rem; /* Default inline inset for cards and multi-content surfaces. */
|
|
879
|
+
--surface-y: 1.5rem; /* Default block inset for cards and multi-content surfaces. */
|
|
732
880
|
|
|
733
881
|
/* Data visualization canvas */
|
|
734
882
|
--chart-min-height: 13.75rem; /* Minimum readable canvas height for package chart frames. */
|
|
@@ -750,114 +898,6 @@
|
|
|
750
898
|
display: none;
|
|
751
899
|
}
|
|
752
900
|
|
|
753
|
-
@utility px-surface-xs {
|
|
754
|
-
padding-inline: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
@utility px-surface {
|
|
758
|
-
padding-inline: calc(var(--surface-x) * var(--space-scale));
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
@utility px-surface-lg {
|
|
762
|
-
padding-inline: calc(var(--surface-x) * 1.8 * var(--space-scale));
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
@utility ps-surface-xs {
|
|
766
|
-
padding-inline-start: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
@utility ps-surface {
|
|
770
|
-
padding-inline-start: calc(var(--surface-x) * var(--space-scale));
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
@utility ps-surface-lg {
|
|
774
|
-
padding-inline-start: calc(var(--surface-x) * 1.8 * var(--space-scale));
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
@utility pe-surface-xs {
|
|
778
|
-
padding-inline-end: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
@utility pe-surface {
|
|
782
|
-
padding-inline-end: calc(var(--surface-x) * var(--space-scale));
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
@utility pe-surface-lg {
|
|
786
|
-
padding-inline-end: calc(var(--surface-x) * 1.8 * var(--space-scale));
|
|
787
|
-
}
|
|
788
|
-
|
|
789
|
-
@utility pl-surface-xs {
|
|
790
|
-
padding-left: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
@utility pl-surface {
|
|
794
|
-
padding-left: calc(var(--surface-x) * var(--space-scale));
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
@utility pl-surface-lg {
|
|
798
|
-
padding-left: calc(var(--surface-x) * 1.8 * var(--space-scale));
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
@utility pr-surface-xs {
|
|
802
|
-
padding-right: calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
803
|
-
}
|
|
804
|
-
|
|
805
|
-
@utility pr-surface {
|
|
806
|
-
padding-right: calc(var(--surface-x) * var(--space-scale));
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
@utility pr-surface-lg {
|
|
810
|
-
padding-right: calc(var(--surface-x) * 1.8 * var(--space-scale));
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
@utility py-surface-xs {
|
|
814
|
-
padding-block: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
@utility py-surface {
|
|
818
|
-
padding-block: calc(var(--surface-y) * var(--space-scale));
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
@utility py-surface-lg {
|
|
822
|
-
padding-block: calc(var(--surface-y) * 1.8 * var(--space-scale));
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
@utility pt-surface-xs {
|
|
826
|
-
padding-top: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
@utility pt-surface {
|
|
830
|
-
padding-top: calc(var(--surface-y) * var(--space-scale));
|
|
831
|
-
}
|
|
832
|
-
|
|
833
|
-
@utility pt-surface-lg {
|
|
834
|
-
padding-top: calc(var(--surface-y) * 1.8 * var(--space-scale));
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
@utility pb-surface-xs {
|
|
838
|
-
padding-bottom: calc(var(--surface-y) * 0.5 * var(--space-scale));
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
@utility pb-surface {
|
|
842
|
-
padding-bottom: calc(var(--surface-y) * var(--space-scale));
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
@utility pb-surface-lg {
|
|
846
|
-
padding-bottom: calc(var(--surface-y) * 1.8 * var(--space-scale));
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
@utility p-surface-xs {
|
|
850
|
-
padding: calc(var(--surface-y) * 0.5 * var(--space-scale)) calc(var(--surface-x) * 0.5 * var(--space-scale));
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
@utility p-surface {
|
|
854
|
-
padding: calc(var(--surface-y) * var(--space-scale)) calc(var(--surface-x) * var(--space-scale));
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
@utility p-surface-lg {
|
|
858
|
-
padding: calc(var(--surface-y) * 1.8 * var(--space-scale)) calc(var(--surface-x) * 1.8 * var(--space-scale));
|
|
859
|
-
}
|
|
860
|
-
|
|
861
901
|
/* Private inherited mode marker: style queries read the nearest boundary with
|
|
862
902
|
* no size containment or DOM synchronization. Keep the own-element branches:
|
|
863
903
|
* container queries inspect ancestors, while a utility may itself own a mode. */
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useStrings as e } from "./lib/strings.js";
|
|
3
|
-
import { t } from "./utils-
|
|
4
|
-
import { c as n } from "./typography-
|
|
5
|
-
import { t as r } from "./structure-
|
|
3
|
+
import { t } from "./utils-CF3c95Io.js";
|
|
4
|
+
import { c as n } from "./typography-CSyJrh28.js";
|
|
5
|
+
import { t as r } from "./structure-C0V0_Fyf.js";
|
|
6
6
|
import { i } from "./tone-recipes-BPsRAvhu.js";
|
|
7
|
-
import { t as a } from "./progress-
|
|
8
|
-
import { g as o, m as s } from "./primitives-
|
|
9
|
-
import { n as c } from "./number-
|
|
10
|
-
import { t as l } from "./icon-badge-
|
|
11
|
-
import { t as u } from "./badge-
|
|
12
|
-
import { n as d } from "./display-
|
|
7
|
+
import { t as a } from "./progress-BvF2oCdV.js";
|
|
8
|
+
import { g as o, m as s } from "./primitives-Du64iDbb.js";
|
|
9
|
+
import { n as c } from "./number-E_OiIfJz.js";
|
|
10
|
+
import { t as l } from "./icon-badge-COWbCCWu.js";
|
|
11
|
+
import { t as u } from "./badge-DErMA7ul.js";
|
|
12
|
+
import { n as d } from "./display-BB4BL_-K.js";
|
|
13
13
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
14
14
|
import { Check as m, Circle as h, Clock as g, GitCommit as _, Loader2 as v, Minus as y, Plus as b, Wrench as x, X as S } from "lucide-react";
|
|
15
15
|
//#region src/components/blocks/timelines/shared/timeline.tsx
|
|
@@ -454,4 +454,4 @@ R.displayName = "MilestonesTimeline";
|
|
|
454
454
|
//#endregion
|
|
455
455
|
export { O as a, j as i, P as n, A as o, N as r, E as s, R as t };
|
|
456
456
|
|
|
457
|
-
//# sourceMappingURL=timelines-
|
|
457
|
+
//# sourceMappingURL=timelines-DmtztAY_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timelines-CwM_9IhD.js","names":["Text","Stack","Progress","SecondaryValue","MonoValue","Percent","IconBadge","Badge","ContentBlock","DOT_PX","ICON_PX","STATUS_TONE","toneRecipes","Timeline","cn","className","items","status","item","tone","Icon","isLast","i","dotSize","statusStyles","Check","Loader2","Circle","StepsCard","steps","titleType","step","HorizontalDot","stepNumber","StepsHorizontal","title","description","idx","lineColor","footerText","defaultChangelogTimelineStrings","KIND_ICON","Plus","Minus","Wrench","GitCommit","ChangelogTimeline","stringsProp","strings","useStrings","labelByKind","entries","entry","defaultMilestonesTimelineStrings","STATUS_TO_TIMELINE","STATUS_ICON","Clock","X","STATUS_BADGE","MilestonesTimeline","labelByStatus","milestones","m"],"sources":["../src/components/blocks/timelines/shared/timeline.tsx","../src/components/blocks/timelines/steps-card/steps-card.tsx","../src/components/blocks/timelines/changelog/types.ts","../src/components/blocks/timelines/changelog/changelog-timeline.tsx","../src/components/blocks/timelines/milestones/types.ts","../src/components/blocks/timelines/milestones/milestones-timeline.tsx"],"sourcesContent":["/**\n * Timeline — shared base primitive for the blocks timeline family.\n *\n * Renders a vertical, dot-and-line list of events. Each item supports an\n * icon (Lucide component), a status that maps to dot tone, a title row, an\n * optional description block, an optional timestamp, and free-form content\n * via `children`. Use this primitive directly for new timeline variants\n * instead of reinventing the dot/line geometry — see `ChangeLogTimeline`,\n * `MilestonesTimeline`, and the existing OrderTimeline / PaymentTimeline /\n * ActivityStream consumers for examples.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { SecondaryValue } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { Stack } from '../../../base/structure';\nimport type { ComponentScale } from '../../../../lib/component-vocabulary';\nimport { cn } from '../../../../lib/utils';\nimport { toneRecipes } from '../../../../lib/tone-recipes';\n\nexport type TimelineStatus =\n\t| 'completed'\n\t| 'current'\n\t| 'pending'\n\t| 'success'\n\t| 'warning'\n\t| 'error'\n\t| 'neutral';\n\nexport type TimelineDotSize = ComponentScale;\n\nexport interface TimelineItem {\n\t/** Stable identity for this entry. */\n\tid: string;\n\t/** Surface title. */\n\ttitle: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\t/** Formatted time for the entry. */\n\ttimestamp?: ReactNode;\n\t/** Leading glyph. */\n\ticon?: LucideIcon;\n\tstatus?: TimelineStatus;\n\tchildren?: ReactNode;\n}\n\nexport interface TimelineProps {\n\titems: TimelineItem[];\n\tdotSize?: TimelineDotSize;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nconst DOT_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2.5',\n\tmd: 'size-icon-md',\n\tlg: 'size-icon-lg',\n};\n\nconst ICON_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2',\n\tmd: 'size-2.5',\n\tlg: 'size-icon-sm',\n};\n\nconst STATUS_TONE: Record<TimelineStatus, { bg: string; text: string; ring: string; line: string }> = {\n\tcompleted: { bg: toneRecipes.success.solid, text: 'text-success-foreground', ring: toneRecipes.success.halo, line: toneRecipes.success.line },\n\tcurrent: { bg: toneRecipes.primary.solid, text: 'text-primary-foreground', ring: toneRecipes.primary.halo, line: toneRecipes.primary.line },\n\tpending: { bg: 'bg-muted', text: 'text-muted-foreground', ring: 'ring-border', line: 'bg-border' },\n\tsuccess: { bg: toneRecipes.success.solid, text: 'text-success-foreground', ring: toneRecipes.success.halo, line: toneRecipes.success.line },\n\twarning: { bg: toneRecipes.warning.solid, text: 'text-warning-foreground', ring: toneRecipes.warning.halo, line: toneRecipes.warning.line },\n\terror: { bg: toneRecipes.destructive.solid, text: 'text-destructive-foreground', ring: toneRecipes.destructive.halo, line: toneRecipes.destructive.line },\n\tneutral: { bg: 'bg-card', text: 'text-card-foreground', ring: 'ring-border', line: 'bg-border' },\n};\n\nexport function Timeline({ items, dotSize = 'md', className }: TimelineProps) {\n\treturn (\n\t\t<Stack render={<ol />} gap=\"xl\" className={cn('timeline--component', 'relative m-0 p-0 list-none', className)}>\n\t\t\t{items.map((item, i) => {\n\t\t\t\tconst status = item.status ?? 'neutral';\n\t\t\t\tconst tone = STATUS_TONE[status];\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\tconst isLast = i === items.length - 1;\n\n\t\t\t\treturn (\n\t\t\t\t\t// `data-status` exposes the state as a hook; the current step is\n\t\t\t\t\t// announced through `aria-current`, independently of its colour.\n\t\t\t\t\t<li\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\tdata-status={status}\n\t\t\t\t\t\taria-current={status === 'current' ? 'step' : undefined}\n\t\t\t\t\t\tclassName=\"timeline--item relative flex gap-space-lg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Connector line — fills available space below dot until last */}\n\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute left-[7px] top-4 bottom-[-1rem] w-px',\n\t\t\t\t\t\t\t\t\ttone.line,\n\t\t\t\t\t\t\t\t\tdotSize === 'lg' && 'left-[10px]',\n\t\t\t\t\t\t\t\t\tdotSize === 'sm' && 'left-[5px]',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"relative z-[1] mt-0.5 flex shrink-0 items-start\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'inline-flex items-center justify-center rounded-full ring-2',\n\t\t\t\t\t\t\t\t\ttone.bg,\n\t\t\t\t\t\t\t\t\ttone.text,\n\t\t\t\t\t\t\t\t\ttone.ring,\n\t\t\t\t\t\t\t\t\tDOT_PX[dotSize],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!Icon && <Icon className={ICON_PX[dotSize]} />}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<Stack gap=\"md\" className=\"min-w-0 flex-1 pb-space-md\">\n\t\t\t\t\t\t\t<Stack gap=\"dense\">\n\t\t\t\t\t\t\t\t<div className=\"flex items-baseline justify-between gap-space-md\">\n\t\t\t\t\t\t\t\t\t<Text type=\"inherit\" weight=\"medium\" lineHeight=\"tight\">\n\t\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!item.timestamp && (\n\t\t\t\t\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t{item.timestamp}\n\t\t\t\t\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t{!!item.children && <div className=\"min-w-0\">{item.children}</div>}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</Stack>\n\t);\n}\n\nTimeline.displayName = 'Timeline';\n","import { Stack } from '../../../base/structure';\nimport { Text } from '../../../typography/text';\nimport { Badge } from '../../../base/badge';\nimport { ContentBlock, IconBadge } from '../../../base/display';\nimport { cn } from '../../../../lib/utils';\nimport { Check, Circle, Loader2 } from 'lucide-react';\nimport { Timeline, type TimelineItem } from '../shared';\nimport { type StepStatus, type StepsCardProps, type StepsHorizontalProps } from './types';\n\nconst statusStyles: Record<StepStatus, {\n\ttitle: 'inherit' | 'secondary';\n\tIcon: typeof Check;\n}> = {\n\tcompleted: { title: 'inherit', Icon: Check },\n\tcurrent: { title: 'inherit', Icon: Loader2 },\n\tupcoming: { title: 'secondary', Icon: Circle },\n};\n\n/* ─── Vertical StepsCard (original) ────────────────────────────────────────── */\n\nexport function StepsCard({ title, description, steps, footerText, className }: StepsCardProps) {\n\tconst items: TimelineItem[] = steps.map((step) => {\n\t\tconst { Icon, title: titleType } = statusStyles[step.status];\n\t\treturn {\n\t\t\tid: step.id,\n\t\t\ttitle: (\n\t\t\t\t<span className=\"inline-flex flex-wrap items-center gap-space-sm\">\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"semibold\" type={titleType}>\n\t\t\t\t\t\t{step.title}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{step.badge ? (\n\t\t\t\t\t\t<Badge tone={step.badgeTone ?? 'secondary'}>{step.badge}</Badge>\n\t\t\t\t\t) : null}\n\t\t\t\t</span>\n\t\t\t),\n\t\t\tdescription: step.description,\n\t\t\ttimestamp: step.timestamp,\n\t\t\ticon: Icon,\n\t\t\tstatus: step.status === 'upcoming' ? 'pending' : step.status,\n\t\t\tchildren: step.content,\n\t\t};\n\t});\n\n\treturn (\n\t\t<ContentBlock\n\t\t\tdata-component=\"steps-card\"\n\t\t\tdata-slot=\"steps-card\"\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tfooterText={footerText}\n\t\t\tclassName={cn('steps-card--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"lg\" />\n\t\t</ContentBlock>\n\t);\n}\n\nStepsCard.displayName = 'StepsCard';\n\n/*──────────────────────────────────────────────────────────────────────────────\n * STEPS HORIZONTAL — Horizontal step bar with connecting lines\n *────────────────────────────────────────────────────────────────────────────*/\n\n/** Step marker on the shared IconBadge tile: reached steps show a check, the rest their number. */\nfunction HorizontalDot({ status, stepNumber }: { status: StepStatus; stepNumber: number }) {\n\tif (status === 'completed') {\n\t\treturn <IconBadge icon={Check} tone=\"success\" solid shape=\"square\" size=\"md\" className=\"relative z-10\" />;\n\t}\n\n\t// The number is the step's position, so it stays readable to assistive technology.\n\treturn (\n\t\t<IconBadge\n\t\t\ttone={status === 'current' ? 'primary' : 'neutral'}\n\t\t\tsolid={status === 'current'}\n\t\t\tshape=\"square\"\n\t\t\tsize=\"md\"\n\t\t\taria-hidden={false}\n\t\t\tclassName=\"relative z-10\"\n\t\t>\n\t\t\t<Text tag=\"span\" type=\"inherit\" weight={status === 'current' ? 'bold' : 'medium'} className=\"tabular-nums\">\n\t\t\t\t{stepNumber}\n\t\t\t</Text>\n\t\t</IconBadge>\n\t);\n}\n\nexport function StepsHorizontal({ title, description, steps, footerText, className }: StepsHorizontalProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"steps-horizontal\"\n\t\t\tdata-slot=\"steps-horizontal\"\n\t\t\tclassName={cn('steps-horizontal--component @container/steps-horizontal grid min-w-0 gap-space-md', className)}\n\t\t>\n\t\t\t{!!(title || description) && (\n\t\t\t\t<div className=\"steps-horizontal--header grid min-w-0 gap-normal\">\n\t\t\t\t\t{!!title && <Text type=\"inherit\" weight=\"semibold\">{title}</Text>}\n\t\t\t\t\t{!!description && <Text type=\"secondary\">{description}</Text>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<Stack gap=\"lg\" className=\"@xl/steps-horizontal:hidden\">\n\t\t\t\t{steps.map((step, idx) => {\n\t\t\t\t\tconst isLast = idx === steps.length - 1;\n\t\t\t\t\tconst lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={step.id} className=\"flex gap-space-lg\">\n\t\t\t\t\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t\t\t\t\t<HorizontalDot status={step.status} stepNumber={idx + 1} />\n\t\t\t\t\t\t\t\t{!isLast && <div className={cn('mt-1 w-0.5 flex-1 min-h-5', lineColor)} />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Stack gap=\"dense\" className={cn('min-w-0 flex-1 pb-space-md', isLast && 'pb-0')}>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" lineHeight=\"snug\" type={statusStyles[step.status].title}>\n\t\t\t\t\t\t\t\t\t{step.title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!step.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"line-clamp-2\">\n\t\t\t\t\t\t\t\t\t\t{step.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Stack>\n\n\t\t\t{/* Horizontal scroll wrapper — when total step width exceeds the\n\t\t\t\tcard, this lets users scroll instead of clipping labels. */}\n\t\t\t<div className=\"hidden overflow-x-auto @xl/steps-horizontal:block\">\n\t\t\t\t<div className=\"flex min-w-fit items-start\">\n\t\t\t\t\t{steps.map((step, idx) => {\n\t\t\t\t\t\tconst isLast = idx === steps.length - 1;\n\t\t\t\t\t\tconst lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div key={step.id} className=\"flex min-w-28 flex-1 items-start\">\n\t\t\t\t\t\t\t\t<Stack gap=\"md\" align=\"center\" className=\"w-full\">\n\t\t\t\t\t\t\t\t\t<div className=\"flex w-full items-center\">\n\t\t\t\t\t\t\t\t\t\t{idx > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t<div className={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tsteps[idx - 1].status === 'completed' ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t\t)} />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{idx === 0 && <div className=\"flex-1\" />}\n\n\t\t\t\t\t\t\t\t\t\t<HorizontalDot status={step.status} stepNumber={idx + 1} />\n\n\t\t\t\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t\t\t\t<div className={cn('h-0.5 flex-1', lineColor)} />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{!!isLast && <div className=\"flex-1\" />}\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Labels below dot — clamped to 2 lines so long step\n\t\t\t\t\t\t\t\t\t\tnames break gracefully instead of pushing the\n\t\t\t\t\t\t\t\t\t\trow taller. */}\n\t\t\t\t\t\t\t\t\t<Stack gap=\"dense\" align=\"center\" className=\"w-full px-space-xs\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"semibold\" lineHeight=\"snug\" align=\"center\" type={statusStyles[step.status].title} className=\"line-clamp-2\">\n\t\t\t\t\t\t\t\t\t\t\t{step.title}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t{!!step.description && (\n\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" lineHeight=\"snug\" align=\"center\" className=\"line-clamp-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t{step.description}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{!!footerText && <Text size=\"xs\" type=\"secondary\">{footerText}</Text>}\n\t\t</div>\n\t);\n}\n\nStepsHorizontal.displayName = 'StepsHorizontal';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '../../../../lib/strings';\n\nexport type ChangelogEntryKind = 'added' | 'removed' | 'modified' | 'fixed';\n\nexport interface ChangelogEntry {\n\t/** Stable identity for this entry. */\n\tid: string;\n\tkind: ChangelogEntryKind;\n\t/** Surface title. */\n\ttitle: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\tversion?: string;\n\t/** Formatted time for the entry. */\n\ttimestamp?: string;\n\t/** Who produced the entry. */\n\tauthor?: string;\n}\n\nexport interface ChangelogTimelineStrings {\n\t/** Surface title. */\n\ttitle: string;\n\tadded: string;\n\tremoved: string;\n\tmodified: string;\n\tfixed: string;\n}\n\nexport const defaultChangelogTimelineStrings: ChangelogTimelineStrings = {\n\ttitle: 'Changelog',\n\tadded: 'Added',\n\tremoved: 'Removed',\n\tmodified: 'Modified',\n\tfixed: 'Fixed',\n};\n\nexport interface ChangelogTimelineProps {\n\tentries: ChangelogEntry[];\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<ChangelogTimelineStrings>;\n}\n","/**\n * ChangelogTimeline — code/release changelog rendered through the shared\n * `Timeline` primitive. Each entry's kind (added / removed / modified /\n * fixed) is a neutral chip plus the marker glyph: a kind is a category, not a\n * status, so it carries no colour. An optional version label and timestamp\n * follow. Strings overridable for i18n.\n */\nimport { GitCommit, Minus, Plus, Wrench } from 'lucide-react';\nimport { Badge } from '../../../base/badge';\nimport { MonoValue } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { Stack } from '../../../base/structure';\nimport { useStrings } from '../../../../lib/strings';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n} from '../shared';\nimport {\n\tdefaultChangelogTimelineStrings,\n\ttype ChangelogEntry,\n\ttype ChangelogEntryKind,\n\ttype ChangelogTimelineProps,\n} from './types';\n\nimport { cn } from '../../../../lib/utils';\nconst KIND_ICON = {\n\tadded: Plus,\n\tremoved: Minus,\n\tmodified: Wrench,\n\tfixed: GitCommit,\n} as const;\n\nexport function ChangelogTimeline({\n\tentries,\n\tclassName,\n\tstrings: stringsProp,\n}: ChangelogTimelineProps) {\n\tconst strings = useStrings(defaultChangelogTimelineStrings, stringsProp);\n\tconst labelByKind: Record<ChangelogEntryKind, string> = {\n\t\tadded: strings.added,\n\t\tremoved: strings.removed,\n\t\tmodified: strings.modified,\n\t\tfixed: strings.fixed,\n\t};\n\n\tconst items: TimelineItem[] = entries.map((entry: ChangelogEntry) => ({\n\t\tid: entry.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-space-sm\">\n\t\t\t\t<Badge>\n\t\t\t\t\t{labelByKind[entry.kind]}\n\t\t\t\t</Badge>\n\t\t\t\t<Text type=\"inherit\" tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\">\n\t\t\t\t\t{entry.title}\n\t\t\t\t</Text>\n\t\t\t\t{!!entry.version && (\n\t\t\t\t\t<MonoValue size=\"xs\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t{entry.version}\n\t\t\t\t\t</MonoValue>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t),\n\t\tdescription: entry.author ? (\n\t\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"md\" className=\"inline-flex\">\n\t\t\t\t{entry.description}\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\">\n\t\t\t\t\t— {entry.author}\n\t\t\t\t</Text>\n\t\t\t</Stack>\n\t\t) : (\n\t\t\tentry.description\n\t\t),\n\t\ttimestamp: entry.timestamp,\n\t\ticon: KIND_ICON[entry.kind],\n\t\tstatus: 'neutral',\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"changelog-timeline\"\n\t\t\tdata-slot=\"changelog-timeline\"\n\t\t\tclassName={cn('changelog-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"md\" />\n\t\t</div>\n\t);\n}\n\nChangelogTimeline.displayName = 'ChangelogTimeline';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '../../../../lib/strings';\n\nexport type MilestoneStatus = 'completed' | 'in_progress' | 'upcoming' | 'blocked';\n\nexport interface MilestoneItem {\n\t/** Stable identity for this entry. */\n\tid: string;\n\t/** Surface title. */\n\ttitle: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\tdueDate?: string;\n\tstatus: MilestoneStatus;\n\t/** 0–100; only used when status is `in_progress`. */\n\tprogress?: number;\n}\n\nexport interface MilestonesTimelineStrings {\n\t/** Surface title. */\n\ttitle: string;\n\tcompleted: string;\n\tin_progress: string;\n\tupcoming: string;\n\tblocked: string;\n\tdueOn: string;\n}\n\nexport const defaultMilestonesTimelineStrings: MilestonesTimelineStrings = {\n\ttitle: 'Milestones',\n\tcompleted: 'Completed',\n\tin_progress: 'In progress',\n\tupcoming: 'Upcoming',\n\tblocked: 'Blocked',\n\tdueOn: 'Due',\n};\n\nexport interface MilestonesTimelineProps {\n\tmilestones: MilestoneItem[];\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<MilestonesTimelineStrings>;\n}\n","/**\n * MilestonesTimeline — project / goal milestones rendered through the\n * shared `Timeline` primitive. Each milestone has a status (completed /\n * in-progress / upcoming / blocked) that drives the dot tone, and an\n * optional `progress` percent that renders an inline progress bar when the\n * milestone is in flight. Strings overridable for i18n.\n */\nimport { Check, Circle, Clock, X } from 'lucide-react';\nimport { Badge } from '../../../base/badge';\nimport { Progress } from '../../../base/feedback';\nimport { Stack } from '../../../base/structure';\nimport { Percent } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { useStrings } from '../../../../lib/strings';\nimport { cn } from '../../../../lib/utils';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultMilestonesTimelineStrings,\n\ttype MilestoneItem,\n\ttype MilestoneStatus,\n\ttype MilestonesTimelineProps,\n} from './types';\n\nconst STATUS_TO_TIMELINE: Record<MilestoneStatus, TimelineStatus> = {\n\tcompleted: 'completed',\n\tin_progress: 'current',\n\tupcoming: 'pending',\n\tblocked: 'error',\n};\n\nconst STATUS_ICON = {\n\tcompleted: Check,\n\tin_progress: Clock,\n\tupcoming: Circle,\n\tblocked: X,\n} as const;\n\n// In progress is a status (info); primary is reserved for the main command.\nconst STATUS_BADGE: Record<MilestoneStatus, 'success' | 'info' | 'secondary' | 'destructive'> = {\n\tcompleted: 'success',\n\tin_progress: 'info',\n\tupcoming: 'secondary',\n\tblocked: 'destructive',\n};\n\nexport function MilestonesTimeline({\n\tmilestones,\n\tclassName,\n\tstrings: stringsProp,\n}: MilestonesTimelineProps) {\n\tconst strings = useStrings(defaultMilestonesTimelineStrings, stringsProp);\n\tconst labelByStatus: Record<MilestoneStatus, string> = {\n\t\tcompleted: strings.completed,\n\t\tin_progress: strings.in_progress,\n\t\tupcoming: strings.upcoming,\n\t\tblocked: strings.blocked,\n\t};\n\n\tconst items: TimelineItem[] = milestones.map((m: MilestoneItem) => ({\n\t\tid: m.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-space-sm\">\n\t\t\t\t<Text type=\"inherit\" tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\">\n\t\t\t\t\t{m.title}\n\t\t\t\t</Text>\n\t\t\t\t<Badge tone={STATUS_BADGE[m.status]}>\n\t\t\t\t\t{labelByStatus[m.status]}\n\t\t\t\t</Badge>\n\t\t\t</span>\n\t\t),\n\t\tdescription: m.description,\n\t\ttimestamp: m.dueDate ? `${strings.dueOn} ${m.dueDate}` : undefined,\n\t\ticon: STATUS_ICON[m.status],\n\t\tstatus: STATUS_TO_TIMELINE[m.status],\n\t\tchildren:\n\t\t\tm.status === 'in_progress' && typeof m.progress === 'number' ? (\n\t\t\t\t<Stack gap=\"xs\" className=\"milestones-timeline--progress\">\n\t\t\t\t\t<Progress value={m.progress} aria-label={labelByStatus.in_progress} />\n\t\t\t\t\t<Percent value={Math.round(m.progress)} scaled size=\"xs\" type=\"secondary\" align=\"left\" />\n\t\t\t\t</Stack>\n\t\t\t) : undefined,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"milestones-timeline\"\n\t\t\tdata-slot=\"milestones-timeline\"\n\t\t\tclassName={cn('milestones-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"md\" />\n\t\t</div>\n\t);\n}\n\nMilestonesTimeline.displayName = 'MilestonesTimeline';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timelines-DmtztAY_.js","names":["Text","Stack","Progress","SecondaryValue","MonoValue","Percent","IconBadge","Badge","ContentBlock","DOT_PX","ICON_PX","STATUS_TONE","toneRecipes","Timeline","cn","className","items","status","item","tone","Icon","isLast","i","dotSize","statusStyles","Check","Loader2","Circle","StepsCard","steps","titleType","step","HorizontalDot","stepNumber","StepsHorizontal","title","description","idx","lineColor","footerText","defaultChangelogTimelineStrings","KIND_ICON","Plus","Minus","Wrench","GitCommit","ChangelogTimeline","stringsProp","strings","useStrings","labelByKind","entries","entry","defaultMilestonesTimelineStrings","STATUS_TO_TIMELINE","STATUS_ICON","Clock","X","STATUS_BADGE","MilestonesTimeline","labelByStatus","milestones","m"],"sources":["../src/components/blocks/timelines/shared/timeline.tsx","../src/components/blocks/timelines/steps-card/steps-card.tsx","../src/components/blocks/timelines/changelog/types.ts","../src/components/blocks/timelines/changelog/changelog-timeline.tsx","../src/components/blocks/timelines/milestones/types.ts","../src/components/blocks/timelines/milestones/milestones-timeline.tsx"],"sourcesContent":["/**\n * Timeline — shared base primitive for the blocks timeline family.\n *\n * Renders a vertical, dot-and-line list of events. Each item supports an\n * icon (Lucide component), a status that maps to dot tone, a title row, an\n * optional description block, an optional timestamp, and free-form content\n * via `children`. Use this primitive directly for new timeline variants\n * instead of reinventing the dot/line geometry — see `ChangeLogTimeline`,\n * `MilestonesTimeline`, and the existing OrderTimeline / PaymentTimeline /\n * ActivityStream consumers for examples.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { SecondaryValue } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { Stack } from '../../../base/structure';\nimport type { ComponentScale } from '../../../../lib/component-vocabulary';\nimport { cn } from '../../../../lib/utils';\nimport { toneRecipes } from '../../../../lib/tone-recipes';\n\nexport type TimelineStatus =\n\t| 'completed'\n\t| 'current'\n\t| 'pending'\n\t| 'success'\n\t| 'warning'\n\t| 'error'\n\t| 'neutral';\n\nexport type TimelineDotSize = ComponentScale;\n\nexport interface TimelineItem {\n\t/** Stable identity for this entry. */\n\tid: string;\n\t/** Surface title. */\n\ttitle: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\t/** Formatted time for the entry. */\n\ttimestamp?: ReactNode;\n\t/** Leading glyph. */\n\ticon?: LucideIcon;\n\tstatus?: TimelineStatus;\n\tchildren?: ReactNode;\n}\n\nexport interface TimelineProps {\n\titems: TimelineItem[];\n\tdotSize?: TimelineDotSize;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nconst DOT_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2.5',\n\tmd: 'size-icon-md',\n\tlg: 'size-icon-lg',\n};\n\nconst ICON_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2',\n\tmd: 'size-2.5',\n\tlg: 'size-icon-sm',\n};\n\nconst STATUS_TONE: Record<TimelineStatus, { bg: string; text: string; ring: string; line: string }> = {\n\tcompleted: { bg: toneRecipes.success.solid, text: 'text-success-foreground', ring: toneRecipes.success.halo, line: toneRecipes.success.line },\n\tcurrent: { bg: toneRecipes.primary.solid, text: 'text-primary-foreground', ring: toneRecipes.primary.halo, line: toneRecipes.primary.line },\n\tpending: { bg: 'bg-muted', text: 'text-muted-foreground', ring: 'ring-border', line: 'bg-border' },\n\tsuccess: { bg: toneRecipes.success.solid, text: 'text-success-foreground', ring: toneRecipes.success.halo, line: toneRecipes.success.line },\n\twarning: { bg: toneRecipes.warning.solid, text: 'text-warning-foreground', ring: toneRecipes.warning.halo, line: toneRecipes.warning.line },\n\terror: { bg: toneRecipes.destructive.solid, text: 'text-destructive-foreground', ring: toneRecipes.destructive.halo, line: toneRecipes.destructive.line },\n\tneutral: { bg: 'bg-card', text: 'text-card-foreground', ring: 'ring-border', line: 'bg-border' },\n};\n\nexport function Timeline({ items, dotSize = 'md', className }: TimelineProps) {\n\treturn (\n\t\t<Stack render={<ol />} gap=\"xl\" className={cn('timeline--component', 'relative m-0 p-0 list-none', className)}>\n\t\t\t{items.map((item, i) => {\n\t\t\t\tconst status = item.status ?? 'neutral';\n\t\t\t\tconst tone = STATUS_TONE[status];\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\tconst isLast = i === items.length - 1;\n\n\t\t\t\treturn (\n\t\t\t\t\t// `data-status` exposes the state as a hook; the current step is\n\t\t\t\t\t// announced through `aria-current`, independently of its colour.\n\t\t\t\t\t<li\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\tdata-status={status}\n\t\t\t\t\t\taria-current={status === 'current' ? 'step' : undefined}\n\t\t\t\t\t\tclassName=\"timeline--item relative flex gap-space-lg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Connector line — fills available space below dot until last */}\n\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute left-[7px] top-4 bottom-[-1rem] w-px',\n\t\t\t\t\t\t\t\t\ttone.line,\n\t\t\t\t\t\t\t\t\tdotSize === 'lg' && 'left-[10px]',\n\t\t\t\t\t\t\t\t\tdotSize === 'sm' && 'left-[5px]',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"relative z-[1] mt-0.5 flex shrink-0 items-start\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'inline-flex items-center justify-center rounded-full ring-2',\n\t\t\t\t\t\t\t\t\ttone.bg,\n\t\t\t\t\t\t\t\t\ttone.text,\n\t\t\t\t\t\t\t\t\ttone.ring,\n\t\t\t\t\t\t\t\t\tDOT_PX[dotSize],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!Icon && <Icon className={ICON_PX[dotSize]} />}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<Stack gap=\"md\" className=\"min-w-0 flex-1 pb-space-md\">\n\t\t\t\t\t\t\t<Stack gap=\"dense\">\n\t\t\t\t\t\t\t\t<div className=\"flex items-baseline justify-between gap-space-md\">\n\t\t\t\t\t\t\t\t\t<Text type=\"inherit\" weight=\"medium\" lineHeight=\"tight\">\n\t\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!item.timestamp && (\n\t\t\t\t\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t{item.timestamp}\n\t\t\t\t\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t{!!item.children && <div className=\"min-w-0\">{item.children}</div>}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</Stack>\n\t);\n}\n\nTimeline.displayName = 'Timeline';\n","import { Stack } from '../../../base/structure';\nimport { Text } from '../../../typography/text';\nimport { Badge } from '../../../base/badge';\nimport { ContentBlock, IconBadge } from '../../../base/display';\nimport { cn } from '../../../../lib/utils';\nimport { Check, Circle, Loader2 } from 'lucide-react';\nimport { Timeline, type TimelineItem } from '../shared';\nimport { type StepStatus, type StepsCardProps, type StepsHorizontalProps } from './types';\n\nconst statusStyles: Record<StepStatus, {\n\ttitle: 'inherit' | 'secondary';\n\tIcon: typeof Check;\n}> = {\n\tcompleted: { title: 'inherit', Icon: Check },\n\tcurrent: { title: 'inherit', Icon: Loader2 },\n\tupcoming: { title: 'secondary', Icon: Circle },\n};\n\n/* ─── Vertical StepsCard (original) ────────────────────────────────────────── */\n\nexport function StepsCard({ title, description, steps, footerText, className }: StepsCardProps) {\n\tconst items: TimelineItem[] = steps.map((step) => {\n\t\tconst { Icon, title: titleType } = statusStyles[step.status];\n\t\treturn {\n\t\t\tid: step.id,\n\t\t\ttitle: (\n\t\t\t\t<span className=\"inline-flex flex-wrap items-center gap-space-sm\">\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"semibold\" type={titleType}>\n\t\t\t\t\t\t{step.title}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{step.badge ? (\n\t\t\t\t\t\t<Badge tone={step.badgeTone ?? 'secondary'}>{step.badge}</Badge>\n\t\t\t\t\t) : null}\n\t\t\t\t</span>\n\t\t\t),\n\t\t\tdescription: step.description,\n\t\t\ttimestamp: step.timestamp,\n\t\t\ticon: Icon,\n\t\t\tstatus: step.status === 'upcoming' ? 'pending' : step.status,\n\t\t\tchildren: step.content,\n\t\t};\n\t});\n\n\treturn (\n\t\t<ContentBlock\n\t\t\tdata-component=\"steps-card\"\n\t\t\tdata-slot=\"steps-card\"\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tfooterText={footerText}\n\t\t\tclassName={cn('steps-card--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"lg\" />\n\t\t</ContentBlock>\n\t);\n}\n\nStepsCard.displayName = 'StepsCard';\n\n/*──────────────────────────────────────────────────────────────────────────────\n * STEPS HORIZONTAL — Horizontal step bar with connecting lines\n *────────────────────────────────────────────────────────────────────────────*/\n\n/** Step marker on the shared IconBadge tile: reached steps show a check, the rest their number. */\nfunction HorizontalDot({ status, stepNumber }: { status: StepStatus; stepNumber: number }) {\n\tif (status === 'completed') {\n\t\treturn <IconBadge icon={Check} tone=\"success\" solid shape=\"square\" size=\"md\" className=\"relative z-10\" />;\n\t}\n\n\t// The number is the step's position, so it stays readable to assistive technology.\n\treturn (\n\t\t<IconBadge\n\t\t\ttone={status === 'current' ? 'primary' : 'neutral'}\n\t\t\tsolid={status === 'current'}\n\t\t\tshape=\"square\"\n\t\t\tsize=\"md\"\n\t\t\taria-hidden={false}\n\t\t\tclassName=\"relative z-10\"\n\t\t>\n\t\t\t<Text tag=\"span\" type=\"inherit\" weight={status === 'current' ? 'bold' : 'medium'} className=\"tabular-nums\">\n\t\t\t\t{stepNumber}\n\t\t\t</Text>\n\t\t</IconBadge>\n\t);\n}\n\nexport function StepsHorizontal({ title, description, steps, footerText, className }: StepsHorizontalProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"steps-horizontal\"\n\t\t\tdata-slot=\"steps-horizontal\"\n\t\t\tclassName={cn('steps-horizontal--component @container/steps-horizontal grid min-w-0 gap-space-md', className)}\n\t\t>\n\t\t\t{!!(title || description) && (\n\t\t\t\t<div className=\"steps-horizontal--header grid min-w-0 gap-normal\">\n\t\t\t\t\t{!!title && <Text type=\"inherit\" weight=\"semibold\">{title}</Text>}\n\t\t\t\t\t{!!description && <Text type=\"secondary\">{description}</Text>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<Stack gap=\"lg\" className=\"@xl/steps-horizontal:hidden\">\n\t\t\t\t{steps.map((step, idx) => {\n\t\t\t\t\tconst isLast = idx === steps.length - 1;\n\t\t\t\t\tconst lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={step.id} className=\"flex gap-space-lg\">\n\t\t\t\t\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t\t\t\t\t<HorizontalDot status={step.status} stepNumber={idx + 1} />\n\t\t\t\t\t\t\t\t{!isLast && <div className={cn('mt-1 w-0.5 flex-1 min-h-5', lineColor)} />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Stack gap=\"dense\" className={cn('min-w-0 flex-1 pb-space-md', isLast && 'pb-0')}>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" lineHeight=\"snug\" type={statusStyles[step.status].title}>\n\t\t\t\t\t\t\t\t\t{step.title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!step.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"line-clamp-2\">\n\t\t\t\t\t\t\t\t\t\t{step.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Stack>\n\n\t\t\t{/* Horizontal scroll wrapper — when total step width exceeds the\n\t\t\t\tcard, this lets users scroll instead of clipping labels. */}\n\t\t\t<div className=\"hidden overflow-x-auto @xl/steps-horizontal:block\">\n\t\t\t\t<div className=\"flex min-w-fit items-start\">\n\t\t\t\t\t{steps.map((step, idx) => {\n\t\t\t\t\t\tconst isLast = idx === steps.length - 1;\n\t\t\t\t\t\tconst lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div key={step.id} className=\"flex min-w-28 flex-1 items-start\">\n\t\t\t\t\t\t\t\t<Stack gap=\"md\" align=\"center\" className=\"w-full\">\n\t\t\t\t\t\t\t\t\t<div className=\"flex w-full items-center\">\n\t\t\t\t\t\t\t\t\t\t{idx > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t<div className={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tsteps[idx - 1].status === 'completed' ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t\t)} />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{idx === 0 && <div className=\"flex-1\" />}\n\n\t\t\t\t\t\t\t\t\t\t<HorizontalDot status={step.status} stepNumber={idx + 1} />\n\n\t\t\t\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t\t\t\t<div className={cn('h-0.5 flex-1', lineColor)} />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{!!isLast && <div className=\"flex-1\" />}\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Labels below dot — clamped to 2 lines so long step\n\t\t\t\t\t\t\t\t\t\tnames break gracefully instead of pushing the\n\t\t\t\t\t\t\t\t\t\trow taller. */}\n\t\t\t\t\t\t\t\t\t<Stack gap=\"dense\" align=\"center\" className=\"w-full px-space-xs\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"semibold\" lineHeight=\"snug\" align=\"center\" type={statusStyles[step.status].title} className=\"line-clamp-2\">\n\t\t\t\t\t\t\t\t\t\t\t{step.title}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t{!!step.description && (\n\t\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" lineHeight=\"snug\" align=\"center\" className=\"line-clamp-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t{step.description}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{!!footerText && <Text size=\"xs\" type=\"secondary\">{footerText}</Text>}\n\t\t</div>\n\t);\n}\n\nStepsHorizontal.displayName = 'StepsHorizontal';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '../../../../lib/strings';\n\nexport type ChangelogEntryKind = 'added' | 'removed' | 'modified' | 'fixed';\n\nexport interface ChangelogEntry {\n\t/** Stable identity for this entry. */\n\tid: string;\n\tkind: ChangelogEntryKind;\n\t/** Surface title. */\n\ttitle: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\tversion?: string;\n\t/** Formatted time for the entry. */\n\ttimestamp?: string;\n\t/** Who produced the entry. */\n\tauthor?: string;\n}\n\nexport interface ChangelogTimelineStrings {\n\t/** Surface title. */\n\ttitle: string;\n\tadded: string;\n\tremoved: string;\n\tmodified: string;\n\tfixed: string;\n}\n\nexport const defaultChangelogTimelineStrings: ChangelogTimelineStrings = {\n\ttitle: 'Changelog',\n\tadded: 'Added',\n\tremoved: 'Removed',\n\tmodified: 'Modified',\n\tfixed: 'Fixed',\n};\n\nexport interface ChangelogTimelineProps {\n\tentries: ChangelogEntry[];\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<ChangelogTimelineStrings>;\n}\n","/**\n * ChangelogTimeline — code/release changelog rendered through the shared\n * `Timeline` primitive. Each entry's kind (added / removed / modified /\n * fixed) is a neutral chip plus the marker glyph: a kind is a category, not a\n * status, so it carries no colour. An optional version label and timestamp\n * follow. Strings overridable for i18n.\n */\nimport { GitCommit, Minus, Plus, Wrench } from 'lucide-react';\nimport { Badge } from '../../../base/badge';\nimport { MonoValue } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { Stack } from '../../../base/structure';\nimport { useStrings } from '../../../../lib/strings';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n} from '../shared';\nimport {\n\tdefaultChangelogTimelineStrings,\n\ttype ChangelogEntry,\n\ttype ChangelogEntryKind,\n\ttype ChangelogTimelineProps,\n} from './types';\n\nimport { cn } from '../../../../lib/utils';\nconst KIND_ICON = {\n\tadded: Plus,\n\tremoved: Minus,\n\tmodified: Wrench,\n\tfixed: GitCommit,\n} as const;\n\nexport function ChangelogTimeline({\n\tentries,\n\tclassName,\n\tstrings: stringsProp,\n}: ChangelogTimelineProps) {\n\tconst strings = useStrings(defaultChangelogTimelineStrings, stringsProp);\n\tconst labelByKind: Record<ChangelogEntryKind, string> = {\n\t\tadded: strings.added,\n\t\tremoved: strings.removed,\n\t\tmodified: strings.modified,\n\t\tfixed: strings.fixed,\n\t};\n\n\tconst items: TimelineItem[] = entries.map((entry: ChangelogEntry) => ({\n\t\tid: entry.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-space-sm\">\n\t\t\t\t<Badge>\n\t\t\t\t\t{labelByKind[entry.kind]}\n\t\t\t\t</Badge>\n\t\t\t\t<Text type=\"inherit\" tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\">\n\t\t\t\t\t{entry.title}\n\t\t\t\t</Text>\n\t\t\t\t{!!entry.version && (\n\t\t\t\t\t<MonoValue size=\"xs\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t{entry.version}\n\t\t\t\t\t</MonoValue>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t),\n\t\tdescription: entry.author ? (\n\t\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"md\" className=\"inline-flex\">\n\t\t\t\t{entry.description}\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\">\n\t\t\t\t\t— {entry.author}\n\t\t\t\t</Text>\n\t\t\t</Stack>\n\t\t) : (\n\t\t\tentry.description\n\t\t),\n\t\ttimestamp: entry.timestamp,\n\t\ticon: KIND_ICON[entry.kind],\n\t\tstatus: 'neutral',\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"changelog-timeline\"\n\t\t\tdata-slot=\"changelog-timeline\"\n\t\t\tclassName={cn('changelog-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"md\" />\n\t\t</div>\n\t);\n}\n\nChangelogTimeline.displayName = 'ChangelogTimeline';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '../../../../lib/strings';\n\nexport type MilestoneStatus = 'completed' | 'in_progress' | 'upcoming' | 'blocked';\n\nexport interface MilestoneItem {\n\t/** Stable identity for this entry. */\n\tid: string;\n\t/** Surface title. */\n\ttitle: ReactNode;\n\t/** Supporting copy shown under the label. */\n\tdescription?: ReactNode;\n\tdueDate?: string;\n\tstatus: MilestoneStatus;\n\t/** 0–100; only used when status is `in_progress`. */\n\tprogress?: number;\n}\n\nexport interface MilestonesTimelineStrings {\n\t/** Surface title. */\n\ttitle: string;\n\tcompleted: string;\n\tin_progress: string;\n\tupcoming: string;\n\tblocked: string;\n\tdueOn: string;\n}\n\nexport const defaultMilestonesTimelineStrings: MilestonesTimelineStrings = {\n\ttitle: 'Milestones',\n\tcompleted: 'Completed',\n\tin_progress: 'In progress',\n\tupcoming: 'Upcoming',\n\tblocked: 'Blocked',\n\tdueOn: 'Due',\n};\n\nexport interface MilestonesTimelineProps {\n\tmilestones: MilestoneItem[];\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<MilestonesTimelineStrings>;\n}\n","/**\n * MilestonesTimeline — project / goal milestones rendered through the\n * shared `Timeline` primitive. Each milestone has a status (completed /\n * in-progress / upcoming / blocked) that drives the dot tone, and an\n * optional `progress` percent that renders an inline progress bar when the\n * milestone is in flight. Strings overridable for i18n.\n */\nimport { Check, Circle, Clock, X } from 'lucide-react';\nimport { Badge } from '../../../base/badge';\nimport { Progress } from '../../../base/feedback';\nimport { Stack } from '../../../base/structure';\nimport { Percent } from '../../../primitives';\nimport { Text } from '../../../typography';\nimport { useStrings } from '../../../../lib/strings';\nimport { cn } from '../../../../lib/utils';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultMilestonesTimelineStrings,\n\ttype MilestoneItem,\n\ttype MilestoneStatus,\n\ttype MilestonesTimelineProps,\n} from './types';\n\nconst STATUS_TO_TIMELINE: Record<MilestoneStatus, TimelineStatus> = {\n\tcompleted: 'completed',\n\tin_progress: 'current',\n\tupcoming: 'pending',\n\tblocked: 'error',\n};\n\nconst STATUS_ICON = {\n\tcompleted: Check,\n\tin_progress: Clock,\n\tupcoming: Circle,\n\tblocked: X,\n} as const;\n\n// In progress is a status (info); primary is reserved for the main command.\nconst STATUS_BADGE: Record<MilestoneStatus, 'success' | 'info' | 'secondary' | 'destructive'> = {\n\tcompleted: 'success',\n\tin_progress: 'info',\n\tupcoming: 'secondary',\n\tblocked: 'destructive',\n};\n\nexport function MilestonesTimeline({\n\tmilestones,\n\tclassName,\n\tstrings: stringsProp,\n}: MilestonesTimelineProps) {\n\tconst strings = useStrings(defaultMilestonesTimelineStrings, stringsProp);\n\tconst labelByStatus: Record<MilestoneStatus, string> = {\n\t\tcompleted: strings.completed,\n\t\tin_progress: strings.in_progress,\n\t\tupcoming: strings.upcoming,\n\t\tblocked: strings.blocked,\n\t};\n\n\tconst items: TimelineItem[] = milestones.map((m: MilestoneItem) => ({\n\t\tid: m.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-space-sm\">\n\t\t\t\t<Text type=\"inherit\" tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\">\n\t\t\t\t\t{m.title}\n\t\t\t\t</Text>\n\t\t\t\t<Badge tone={STATUS_BADGE[m.status]}>\n\t\t\t\t\t{labelByStatus[m.status]}\n\t\t\t\t</Badge>\n\t\t\t</span>\n\t\t),\n\t\tdescription: m.description,\n\t\ttimestamp: m.dueDate ? `${strings.dueOn} ${m.dueDate}` : undefined,\n\t\ticon: STATUS_ICON[m.status],\n\t\tstatus: STATUS_TO_TIMELINE[m.status],\n\t\tchildren:\n\t\t\tm.status === 'in_progress' && typeof m.progress === 'number' ? (\n\t\t\t\t<Stack gap=\"xs\" className=\"milestones-timeline--progress\">\n\t\t\t\t\t<Progress value={m.progress} aria-label={labelByStatus.in_progress} />\n\t\t\t\t\t<Percent value={Math.round(m.progress)} scaled size=\"xs\" type=\"secondary\" align=\"left\" />\n\t\t\t\t</Stack>\n\t\t\t) : undefined,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"milestones-timeline\"\n\t\t\tdata-slot=\"milestones-timeline\"\n\t\t\tclassName={cn('milestones-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"md\" />\n\t\t</div>\n\t);\n}\n\nMilestonesTimeline.displayName = 'MilestonesTimeline';\n"],"mappings":";;;;;;;;;;;;;;;AAsDA,IAAMS,IAA0C;CAC/C,IAAI;CACJ,IAAI;CACJ,IAAI;AACL,GAEMC,IAA2C;CAChD,IAAI;CACJ,IAAI;CACJ,IAAI;AACL,GAEMC,IAAgG;CACrG,WAAW;EAAE,IAAIC,EAAY,QAAQ;EAAO,MAAM;EAA2B,MAAMA,EAAY,QAAQ;EAAM,MAAMA,EAAY,QAAQ;CAAK;CAC5I,SAAS;EAAE,IAAIA,EAAY,QAAQ;EAAO,MAAM;EAA2B,MAAMA,EAAY,QAAQ;EAAM,MAAMA,EAAY,QAAQ;CAAK;CAC1I,SAAS;EAAE,IAAI;EAAY,MAAM;EAAyB,MAAM;EAAe,MAAM;CAAY;CACjG,SAAS;EAAE,IAAIA,EAAY,QAAQ;EAAO,MAAM;EAA2B,MAAMA,EAAY,QAAQ;EAAM,MAAMA,EAAY,QAAQ;CAAK;CAC1I,SAAS;EAAE,IAAIA,EAAY,QAAQ;EAAO,MAAM;EAA2B,MAAMA,EAAY,QAAQ;EAAM,MAAMA,EAAY,QAAQ;CAAK;CAC1I,OAAO;EAAE,IAAIA,EAAY,YAAY;EAAO,MAAM;EAA+B,MAAMA,EAAY,YAAY;EAAM,MAAMA,EAAY,YAAY;CAAK;CACxJ,SAAS;EAAE,IAAI;EAAW,MAAM;EAAwB,MAAM;EAAe,MAAM;CAAY;AAChG;AAEA,SAAgBC,EAAS,EAAE,UAAO,aAAU,MAAM,gBAA4B;CAC7E,OACC,kBAACZ,GAAD;EAAO,QAAQ,kBAAC,MAAD,CAAK,CAAA;EAAG,KAAI;EAAK,WAAWa,EAAG,uBAAuB,8BAA8BC,CAAS;EAC1G,UAAAC,EAAM,KAAK,GAAM,MAAM;GACvB,IAAMC,IAASC,EAAK,UAAU,WACxBC,IAAOR,EAAYM,IACnBG,IAAOF,EAAK,MACZG,IAASC,MAAMN,EAAM,SAAS;GAEpC,OAGC,kBAAC,MAAD;IAEC,eAAaC;IACb,gBAAcA,MAAW,YAAY,SAAS,KAAA;IAC9C,WAAU;IAJX,UAAA;KAOE,CAACI,KACD,kBAAC,QAAD;MACC,eAAY;MACZ,WAAWP,EACV,iDACAK,EAAK,MACLI,MAAY,QAAQ,eACpBA,MAAY,QAAQ,YACrB;KACA,CAAA;KAGF,kBAAC,OAAD;MAAK,WAAU;MACd,UAAA,kBAAC,QAAD;OACC,WAAWT,EACV,+DACAK,EAAK,IACLA,EAAK,MACLA,EAAK,MACLV,EAAOc,EACR;OAEC,UAAA,CAAC,CAACH,KAAQ,kBAACA,GAAD,EAAM,WAAWV,EAAQa,GAAW,CAAA;MAC1C,CAAA;KACF,CAAA;KAEL,kBAACtB,GAAD;MAAO,KAAI;MAAK,WAAU;MAA1B,UAAA,CACC,kBAACA,GAAD;OAAO,KAAI;OAAX,UAAA,CACC,kBAAC,OAAD;QAAK,WAAU;QAAf,UAAA,CACC,kBAACD,GAAD;SAAM,MAAK;SAAU,QAAO;SAAS,YAAW;SAC9C,UAAAkB,EAAK;QACD,CAAA,GACL,CAAC,CAACA,EAAK,aACP,kBAACf,GAAD;SAAgB,MAAK;SAAK,WAAU;SAClC,UAAAe,EAAK;QACS,CAAA,CAEb;OACJ,CAAA,GAAA,CAAC,CAACA,EAAK,eACP,kBAAClB,GAAD;QAAM,MAAK;QAAK,MAAK;QACnB,UAAAkB,EAAK;OACD,CAAA,CAED;MACN,CAAA,GAAA,CAAC,CAACA,EAAK,YAAY,kBAAC,OAAD;OAAK,WAAU;OAAW,UAAAA,EAAK;MAAc,CAAA,CAC3D;;IACJ;GApDE,GAAAA,EAAK,EAoDP;EAEN,CAAC;CACK,CAAA;AAET;AAEA,EAAS,cAAc;;;AC3IvB,IAAMM,IAGD;CACJ,WAAW;EAAE,OAAO;EAAW,MAAMC;CAAM;CAC3C,SAAS;EAAE,OAAO;EAAW,MAAMC;CAAQ;CAC3C,UAAU;EAAE,OAAO;EAAa,MAAMC;CAAO;AAC9C;AAIA,SAAgBC,EAAU,EAAE,UAAO,gBAAa,UAAO,eAAY,gBAA6B;CAC/F,IAAMZ,IAAwBa,EAAM,KAAK,MAAS;EACjD,IAAM,EAAE,SAAM,OAAOC,MAAcN,EAAaO,EAAK;EACrD,OAAO;GACN,IAAIA,EAAK;GACT,OACC,kBAAC,QAAD;IAAM,WAAU;IAAhB,UAAA,CACC,kBAAC/B,GAAD;KAAM,KAAI;KAAO,MAAK;KAAU,QAAO;KAAW,MAAM8B;KACtD,UAAAC,EAAK;IACD,CAAA,GACLA,EAAK,QACL,kBAACxB,GAAD;KAAO,MAAMwB,EAAK,aAAa;KAAc,UAAAA,EAAK;IAAa,CAAA,IAC5D,IACC;;GAEP,aAAaA,EAAK;GAClB,WAAWA,EAAK;GAChB,MAAMX;GACN,QAAQW,EAAK,WAAW,aAAa,YAAYA,EAAK;GACtD,UAAUA,EAAK;EAChB;CACD,CAAC;CAED,OACC,kBAACvB,GAAD;EACC,kBAAe;EACf,aAAU;EACH;EACM;EACD;EACZ,WAAWM,EAAG,yBAAyBC,CAAS;EAEhD,UAAA,kBAACF,GAAD;GAAiB;GAAO,SAAQ;EAAM,CAAA;CACzB,CAAA;AAEhB;AAEA,EAAU,cAAc;AAOxB,SAASmB,EAAc,EAAE,WAAQ,iBAA0D;CAM1F,OALIf,MAAW,cACP,kBAACX,GAAD;EAAW,MAAMmB;EAAO,MAAK;EAAU,OAAA;EAAM,OAAM;EAAS,MAAK;EAAK,WAAU;CAAiB,CAAA,IAKxG,kBAACnB,GAAD;EACC,MAAMW,MAAW,YAAY,YAAY;EACzC,OAAOA,MAAW;EAClB,OAAM;EACN,MAAK;EACL,eAAa;EACb,WAAU;EAEV,UAAA,kBAACjB,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,QAAQiB,MAAW,YAAY,SAAS;GAAU,WAAU;GAC1F,UAAAgB;EACI,CAAA;CACI,CAAA;AAEb;AAEA,SAAgBC,EAAgB,EAAE,UAAO,gBAAa,UAAO,eAAY,gBAAmC;CAC3G,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWpB,EAAG,qFAAqFC,CAAS;EAH7G,UAAA;GAKE,CAAC,EAAEoB,KAASC,MACZ,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,CAAC,CAACD,KAAS,kBAACnC,GAAD;KAAM,MAAK;KAAU,QAAO;KAAY,UAAAmC;IAAY,CAAA,GAC/D,CAAC,CAACC,KAAe,kBAACpC,GAAD;KAAM,MAAK;KAAa,UAAAoC;IAAkB,CAAA,CACxD;;GAEN,kBAACnC,GAAD;IAAO,KAAI;IAAK,WAAU;IACxB,UAAA4B,EAAM,KAAK,GAAM,MAAQ;KACzB,IAAMR,IAASgB,MAAQR,EAAM,SAAS,GAChCS,IAAYP,EAAK,WAAW,cAAc,eAAe;KAE/D,OACC,kBAAC,OAAD;MAAmB,WAAU;MAA7B,UAAA,CACC,kBAAC,OAAD;OAAK,WAAU;OAAf,UAAA,CACC,kBAACC,GAAD;QAAe,QAAQD,EAAK;QAAQ,YAAYM,IAAM;OAAI,CAAA,GACzD,CAAChB,KAAU,kBAAC,OAAD,EAAK,WAAWP,EAAG,6BAA6BwB,CAAS,EAAI,CAAA,CACrE;MACL,CAAA,GAAA,kBAACrC,GAAD;OAAO,KAAI;OAAQ,WAAWa,EAAG,8BAA8BO,KAAU,MAAM;OAA/E,UAAA,CACC,kBAACrB,GAAD;QAAM,QAAO;QAAW,YAAW;QAAO,MAAMwB,EAAaO,EAAK,OAAO,CAAC;QACxE,UAAAA,EAAK;OACD,CAAA,GACL,CAAC,CAACA,EAAK,eACP,kBAAC/B,GAAD;QAAM,MAAK;QAAK,MAAK;QAAY,WAAU;QACzC,UAAA+B,EAAK;OACD,CAAA,CAED;MACH,CAAA,CAAA;KAfK,GAAAA,EAAK,EAeV;IAEP,CAAC;GACK,CAAA;GAIP,kBAAC,OAAD;IAAK,WAAU;IACd,UAAA,kBAAC,OAAD;KAAK,WAAU;KACb,UAAAF,EAAM,KAAK,GAAM,MAAQ;MACzB,IAAMR,IAASgB,MAAQR,EAAM,SAAS,GAChCS,IAAYP,EAAK,WAAW,cAAc,eAAe;MAE/D,OACC,kBAAC,OAAD;OAAmB,WAAU;OAC5B,UAAA,kBAAC9B,GAAD;QAAO,KAAI;QAAK,OAAM;QAAS,WAAU;QAAzC,UAAA,CACC,kBAAC,OAAD;SAAK,WAAU;SAAf,UAAA;UACEoC,IAAM,KACN,kBAAC,OAAD,EAAK,WAAWvB,EACf,gBACAe,EAAMQ,IAAM,EAAE,CAAC,WAAW,cAAc,eAAe,WACxD,EAAI,CAAA;UAEJA,MAAQ,KAAK,kBAAC,OAAD,EAAK,WAAU,SAAU,CAAA;UAEvC,kBAACL,GAAD;WAAe,QAAQD,EAAK;WAAQ,YAAYM,IAAM;UAAI,CAAA;UAEzD,CAAChB,KACD,kBAAC,OAAD,EAAK,WAAWP,EAAG,gBAAgBwB,CAAS,EAAI,CAAA;UAEhD,CAAC,CAACjB,KAAU,kBAAC,OAAD,EAAK,WAAU,SAAU,CAAA;SAClC;QAKL,CAAA,GAAA,kBAACpB,GAAD;SAAO,KAAI;SAAQ,OAAM;SAAS,WAAU;SAA5C,UAAA,CACC,kBAACD,GAAD;UAAM,QAAO;UAAW,YAAW;UAAO,OAAM;UAAS,MAAMwB,EAAaO,EAAK,OAAO,CAAC;UAAO,WAAU;UACxG,UAAAA,EAAK;SACD,CAAA,GACL,CAAC,CAACA,EAAK,eACP,kBAAC/B,GAAD;UAAM,MAAK;UAAK,MAAK;UAAY,YAAW;UAAO,OAAM;UAAS,WAAU;UAC1E,UAAA+B,EAAK;SACD,CAAA,CAED;QACD,CAAA,CAAA;;MACH,GAjCKA,EAAK,EAiCV;KAEP,CAAC;IACG,CAAA;GACD,CAAA;GACJ,CAAC,CAACQ,KAAc,kBAACvC,GAAD;IAAM,MAAK;IAAK,MAAK;IAAa,UAAAuC;GAAiB,CAAA;EAChE;;AAEP;AAEA,EAAgB,cAAc;;;ACpJ9B,IAAaC,IAA4D;CACxE,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;CACV,OAAO;AACR,GCTMC,IAAY;CACjB,OAAOC;CACP,SAASC;CACT,UAAUC;CACV,OAAOC;AACR;AAEA,SAAgBC,EAAkB,EACjC,YACA,cACA,SAASC,KACiB;CAC1B,IAAMC,IAAUC,EAAWT,GAAiCO,CAAW,GACjEG,IAAkD;EACvD,OAAOF,EAAQ;EACf,SAASA,EAAQ;EACjB,UAAUA,EAAQ;EAClB,OAAOA,EAAQ;CAChB,GAEMhC,IAAwBmC,EAAQ,KAAK,OAA2B;EACrE,IAAIC,EAAM;EACV,OACC,kBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA;IACC,kBAAC7C,GAAD,EAAA,UACE2C,EAAYE,EAAM,MACb,CAAA;IACP,kBAACpD,GAAD;KAAM,MAAK;KAAU,KAAI;KAAO,MAAK;KAAU,QAAO;KAAS,YAAW;KACxE,UAAAoD,EAAM;IACF,CAAA;IACL,CAAC,CAACA,EAAM,WACR,kBAAChD,GAAD;KAAW,MAAK;KAAK,WAAU;KAC7B,UAAAgD,EAAM;IACG,CAAA;GAEP;;EAEP,aAAaA,EAAM,SAClB,kBAACnD,GAAD;GAAO,QAAQ,kBAAC,QAAD,CAAO,CAAA;GAAG,WAAU;GAAa,KAAI;GAAK,WAAU;GAAnE,UAAA,CACEmD,EAAM,aACP,kBAACpD,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,MAAK;IAAhC,UAAA,CAA2C,MACvCoD,EAAM,MACJ;GACA,CAAA,CAAA;EAEP,CAAA,IAAAA,EAAM;EAEP,WAAWA,EAAM;EACjB,MAAMX,EAAUW,EAAM;EACtB,QAAQ;CACT,EAAE;CAEF,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWtC,EAAG,iCAAiCC,CAAS;EAExD,UAAA,kBAACF,GAAD;GAAiB;GAAO,SAAQ;EAAM,CAAA;CAClC,CAAA;AAEP;AAEA,EAAkB,cAAc;;;AC7DhC,IAAawC,IAA8D;CAC1E,OAAO;CACP,WAAW;CACX,aAAa;CACb,UAAU;CACV,SAAS;CACT,OAAO;AACR,GCPMC,IAA8D;CACnE,WAAW;CACX,aAAa;CACb,UAAU;CACV,SAAS;AACV,GAEMC,IAAc;CACnB,WAAW9B;CACX,aAAa+B;CACb,UAAU7B;CACV,SAAS8B;AACV,GAGMC,IAA0F;CAC/F,WAAW;CACX,aAAa;CACb,UAAU;CACV,SAAS;AACV;AAEA,SAAgBC,EAAmB,EAClC,eACA,cACA,SAASZ,KACkB;CAC3B,IAAMC,IAAUC,EAAWI,GAAkCN,CAAW,GAClEa,IAAiD;EACtD,WAAWZ,EAAQ;EACnB,aAAaA,EAAQ;EACrB,UAAUA,EAAQ;EAClB,SAASA,EAAQ;CAClB,GAEMhC,IAAwB6C,EAAW,KAAK,OAAsB;EACnE,IAAIC,EAAE;EACN,OACC,kBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACC,kBAAC9D,GAAD;IAAM,MAAK;IAAU,KAAI;IAAO,MAAK;IAAU,QAAO;IAAS,YAAW;IACxE,UAAA8D,EAAE;GACE,CAAA,GACN,kBAACvD,GAAD;IAAO,MAAMmD,EAAaI,EAAE;IAC1B,UAAAF,EAAcE,EAAE;GACX,CAAA,CACF;;EAEP,aAAaA,EAAE;EACf,WAAWA,EAAE,UAAU,GAAGd,EAAQ,MAAM,GAAGc,EAAE,YAAY,KAAA;EACzD,MAAMP,EAAYO,EAAE;EACpB,QAAQR,EAAmBQ,EAAE;EAC7B,UACCA,EAAE,WAAW,iBAAiB,OAAOA,EAAE,YAAa,WACnD,kBAAC7D,GAAD;GAAO,KAAI;GAAK,WAAU;GAA1B,UAAA,CACC,kBAACC,GAAD;IAAU,OAAO4D,EAAE;IAAU,cAAYF,EAAc;GAAc,CAAA,GACrE,kBAACvD,GAAD;IAAS,OAAO,KAAK,MAAMyD,EAAE,QAAQ;IAAG,QAAA;IAAO,MAAK;IAAK,MAAK;IAAY,OAAM;GAAQ,CAAA,CAClF;EACJ,CAAA,IAAA,KAAA;CACN,EAAE;CAEF,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWhD,EAAG,kCAAkCC,CAAS;EAEzD,UAAA,kBAACF,GAAD;GAAiB;GAAO,SAAQ;EAAM,CAAA;CAClC,CAAA;AAEP;AAEA,EAAmB,cAAc"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as e } from "./theme-scope-BJ6eE2xt.js";
|
|
3
|
-
import { t } from "./utils-
|
|
4
|
-
import { c as n } from "./typography-
|
|
3
|
+
import { t } from "./utils-CF3c95Io.js";
|
|
4
|
+
import { c as n } from "./typography-CSyJrh28.js";
|
|
5
5
|
import { t as r } from "./anchored-positioning-DPnKTvNs.js";
|
|
6
6
|
import { t as i } from "./motion-recipes-ChBg4HBq.js";
|
|
7
7
|
import { t as a } from "./slot-CLF9kLrS.js";
|
|
@@ -108,4 +108,4 @@ b.displayName = "Tooltip", x.displayName = "TooltipProvider", S.displayName = "T
|
|
|
108
108
|
//#endregion
|
|
109
109
|
export { h as a, S as i, C as n, _ as o, x as r, g as s, b as t };
|
|
110
110
|
|
|
111
|
-
//# sourceMappingURL=tooltip-
|
|
111
|
+
//# sourceMappingURL=tooltip-B4hjKtoV.js.map
|