@logicplanes/kaeso-ui 0.4.3 → 0.4.5
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/ai/component-guides.md +279 -98
- package/ai/component-registry.json +352 -236
- package/ai/component-registry.md +241 -219
- package/ai/icons.md +2 -2
- package/ai/tokens.md +18 -14
- package/dist/blocks/delete-resource.js +3 -3
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +47 -42
- package/dist/blocks/pages.js.map +1 -1
- package/dist/blocks/resource-list.js +68 -55
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
- package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
- package/dist/chunks/app-frame-DysOel2X.js +232 -0
- package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
- package/dist/chunks/avatar-CYNMK7uY.js +110 -0
- package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
- package/dist/chunks/badge-C0GC3B9X.js +27 -0
- package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
- package/dist/chunks/banner-B3DGLTBu.js +88 -0
- package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
- package/dist/chunks/button-IblhXUyZ.js +202 -0
- package/dist/chunks/button-IblhXUyZ.js.map +1 -0
- package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
- package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
- package/dist/chunks/checkbox-9tbimmF3.js +141 -0
- package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
- package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
- package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
- package/dist/chunks/code-block-64e-Cy1S.js +346 -0
- package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
- package/dist/chunks/code-block-KIvuE8jg.js +352 -0
- package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
- package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
- package/dist/chunks/code-xqjww4Pv.js.map +1 -0
- package/dist/chunks/combobox-DkcjkWc6.js +352 -0
- package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
- package/dist/chunks/command-list-CypqsC4T.js +456 -0
- package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
- package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
- package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
- package/dist/chunks/core-CmK-8ObW.js +505 -0
- package/dist/chunks/core-CmK-8ObW.js.map +1 -0
- package/dist/chunks/data-table-CqY8_6IS.js +581 -0
- package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
- package/dist/chunks/date-popup-DAnjptFt.js +58 -0
- package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
- package/dist/chunks/{de-CPXJh9cq.js → de-CqC4aSIV.js} +81 -40
- package/dist/chunks/de-CqC4aSIV.js.map +1 -0
- package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
- package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
- package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
- package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
- package/dist/chunks/domain-obd_w9xk.js +28 -0
- package/dist/chunks/domain-obd_w9xk.js.map +1 -0
- package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
- package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
- package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
- package/dist/chunks/field-D7m-yl-D.js.map +1 -0
- package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
- package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
- package/dist/chunks/icon-CPJWE2N-.js +95 -0
- package/dist/chunks/{icon-DVooQfk4.js.map → icon-CPJWE2N-.js.map} +1 -1
- package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
- package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
- package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
- package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
- package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
- package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
- package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
- package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
- package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
- package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
- package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
- package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
- package/dist/chunks/label-DW24Aj0Z.js +26 -0
- package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
- package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
- package/dist/chunks/link-CMjkcLQK.js.map +1 -0
- package/dist/chunks/list-B4G-sWwV.js +540 -0
- package/dist/chunks/list-B4G-sWwV.js.map +1 -0
- package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
- package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
- package/dist/chunks/markdown-C565aBR7.js +338 -0
- package/dist/chunks/markdown-C565aBR7.js.map +1 -0
- package/dist/chunks/menu-Clvv6ftq.js +485 -0
- package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
- package/dist/chunks/meter-CASMHlxl.js +100 -0
- package/dist/chunks/meter-CASMHlxl.js.map +1 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
- package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
- package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
- package/dist/chunks/page-header-kS5tdmvb.js +45 -0
- package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
- package/dist/chunks/pagination-D7fAm8qg.js +147 -0
- package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
- package/dist/chunks/popover-Bl5QYqnh.js +51 -0
- package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
- package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
- package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
- package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
- package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
- package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
- package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
- package/dist/chunks/release-art-ChiT4T2S.js +582 -0
- package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
- package/dist/chunks/rights-B68ocZuq.js +312 -0
- package/dist/chunks/rights-B68ocZuq.js.map +1 -0
- package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
- package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
- package/dist/chunks/section-CFBYhsUi.js +77 -0
- package/dist/chunks/section-CFBYhsUi.js.map +1 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
- package/dist/chunks/segmented-D9i1avik.js +119 -0
- package/dist/chunks/segmented-D9i1avik.js.map +1 -0
- package/dist/chunks/select-BqjmQOqx.js +222 -0
- package/dist/chunks/select-BqjmQOqx.js.map +1 -0
- package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
- package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
- package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
- package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
- package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
- package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
- package/dist/chunks/slider-CcE8GtuV.js +58 -0
- package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
- package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
- package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
- package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
- package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
- package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
- package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
- package/dist/chunks/switch-ngywMQdl.js +76 -0
- package/dist/chunks/switch-ngywMQdl.js.map +1 -0
- package/dist/chunks/table-CTK5E0J7.js +102 -0
- package/dist/chunks/table-CTK5E0J7.js.map +1 -0
- package/dist/chunks/tag-BGr6lTSV.js +100 -0
- package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
- package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
- package/dist/chunks/text-DkKdTVUf.js.map +1 -0
- package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
- package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
- package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
- package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
- package/dist/chunks/truncated-d1afmUJT.js +33 -0
- package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
- package/dist/chunks/{zh-CN-29X4CDLE.js → zh-CN-BlpsT6d_.js} +80 -39
- package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
- package/dist/components/agent-avatar.js +1 -1
- package/dist/components/app-frame.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +22 -22
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +235 -160
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +144 -99
- package/dist/components/charts/donut.js.map +1 -1
- package/dist/components/charts/gauge.js +61 -49
- package/dist/components/charts/gauge.js.map +1 -1
- package/dist/components/charts/heatmap.js +179 -70
- package/dist/components/charts/heatmap.js.map +1 -1
- package/dist/components/charts/sankey.js +144 -77
- package/dist/components/charts/sankey.js.map +1 -1
- package/dist/components/charts/sparkline.js +54 -38
- package/dist/components/charts/sparkline.js.map +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +4 -3
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +77 -1
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -66
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +1 -459
- package/dist/components/date-picker.js +162 -151
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +74 -63
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +76 -64
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/figure.js +2 -2
- package/dist/components/filter-chip.js +36 -27
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +4 -4
- package/dist/components/filter-row.js.map +1 -1
- package/dist/components/flow.js +94 -63
- package/dist/components/flow.js.map +1 -1
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/input.js +176 -98
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +51 -46
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +23 -20
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +90 -74
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +200 -187
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +32 -47
- package/dist/components/key-value.js.map +1 -1
- package/dist/components/label.js +1 -25
- package/dist/components/layout.js +2 -2
- package/dist/components/layout.js.map +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +11 -10
- package/dist/components/loader.js.map +1 -1
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +644 -529
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal.js +1 -1
- package/dist/components/qr-code.js +2 -2
- package/dist/components/qr-code.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/settings.js +39 -46
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +10 -9
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/stat.js +98 -84
- package/dist/components/stat.js.map +1 -1
- package/dist/components/status-dot.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/swap-text.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +73 -55
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +1 -1
- package/dist/components/theme-menu.js +5 -2
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +35 -24
- package/dist/components/thumbnail.js.map +1 -1
- package/dist/components/timeline.js +51 -35
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.js +76 -66
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +14 -8
- package/dist/components/toc.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/visually-hidden.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +101 -101
- package/dist/kaeso.css +605 -67
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
- package/dist/types/components/badge/badge.d.ts +3 -3
- package/dist/types/components/banner/banner.d.ts +3 -3
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button-group/button-group.d.ts +1 -1
- package/dist/types/components/charts/domain.d.ts +11 -0
- package/dist/types/components/charts/marks.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +3 -3
- package/dist/types/components/code-block/diff-view.d.ts +30 -0
- package/dist/types/components/code-block/diff.d.ts +26 -0
- package/dist/types/components/code-block/docs.d.ts +14 -0
- package/dist/types/components/code-block/index.d.ts +1 -0
- package/dist/types/components/code-block/json-view.d.ts +2 -1
- package/dist/types/components/code-block/numbers.d.ts +1 -0
- package/dist/types/components/collapsible/collapsible.d.ts +2 -2
- package/dist/types/components/collapsible/disclosure.d.ts +2 -0
- package/dist/types/components/data-table/data-table.d.ts +6 -5
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/data-table/time-columns.d.ts +1 -0
- package/dist/types/components/date-picker/focus-day.d.ts +1 -0
- package/dist/types/components/date-picker/iso-field.d.ts +8 -1
- package/dist/types/components/dialog/dialog.d.ts +7 -7
- package/dist/types/components/field/field.d.ts +1 -1
- package/dist/types/components/flow/flow.d.ts +1 -1
- package/dist/types/components/icon-button/icon-button.d.ts +1 -1
- package/dist/types/components/input/input-group.d.ts +2 -0
- package/dist/types/components/input/number-input.d.ts +4 -4
- package/dist/types/components/input/otp-input.d.ts +3 -3
- package/dist/types/components/kaeso/client-button.d.ts +2 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
- package/dist/types/components/kaeso/rights.d.ts +1 -1
- package/dist/types/components/kaeso/role-picker.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +2 -2
- package/dist/types/components/layout/layout.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +4 -4
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -1
- package/dist/types/components/menu/styles.d.ts +3 -3
- package/dist/types/components/meter/meter.d.ts +3 -3
- package/dist/types/components/page-header/page-header.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
- package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
- package/dist/types/components/playground/reasoning.d.ts +1 -0
- package/dist/types/components/popover/popover.d.ts +1 -1
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/section/section-header.d.ts +6 -0
- package/dist/types/components/segmented/segmented.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +1 -1
- package/dist/types/components/sheet/sheet.d.ts +3 -3
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +6 -4
- package/dist/types/components/text/truncated.d.ts +7 -0
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/toc/toc.d.ts +1 -1
- package/dist/types/components/toolbar/toolbar.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
- package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
- package/dist/types/hooks/use-hydrating.d.ts +1 -0
- package/dist/types/icons/groups.d.ts +1 -1
- package/dist/types/icons/vocabulary.d.ts +5 -0
- package/dist/types/utils/arrow-focus.d.ts +4 -1
- package/dist/types/utils/cn.d.ts +33 -0
- package/dist/types/utils/portal-context.d.ts +7 -1
- package/dist/utils.js +2 -2
- package/foundations/accessibility.md +3 -2
- package/foundations/color.md +5 -1
- package/foundations/elevation.md +1 -0
- package/foundations/motion.md +1 -1
- package/foundations/shape.md +2 -2
- package/foundations/typography.md +12 -12
- package/package.json +2 -2
- package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
- package/dist/chunks/app-frame-DogGRmsu.js +0 -221
- package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
- package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
- package/dist/chunks/avatar-CWbdwbJv.js +0 -83
- package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
- package/dist/chunks/badge-C2KtxCLB.js +0 -26
- package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
- package/dist/chunks/banner-BA2ALw9M.js +0 -85
- package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
- package/dist/chunks/button-CzuxqawA.js +0 -164
- package/dist/chunks/button-CzuxqawA.js.map +0 -1
- package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
- package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
- package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
- package/dist/chunks/code-block-D5A-CGXG.js +0 -330
- package/dist/chunks/code-block-D5A-CGXG.js.map +0 -1
- package/dist/chunks/code-tqj0uhBL.js.map +0 -1
- package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
- package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
- package/dist/chunks/combobox-DjDI7SUC.js +0 -319
- package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
- package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
- package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
- package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
- package/dist/chunks/core-BYns5ytV.js +0 -472
- package/dist/chunks/core-BYns5ytV.js.map +0 -1
- package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
- package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
- package/dist/chunks/de-CPXJh9cq.js.map +0 -1
- package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
- package/dist/chunks/field-TviMvYa2.js.map +0 -1
- package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
- package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
- package/dist/chunks/icon-DVooQfk4.js +0 -94
- package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
- package/dist/chunks/input-2VJuj_M4.js.map +0 -1
- package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
- package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
- package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
- package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
- package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
- package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
- package/dist/chunks/link-KWI7PevW.js.map +0 -1
- package/dist/chunks/list-M1csq-d4.js +0 -494
- package/dist/chunks/list-M1csq-d4.js.map +0 -1
- package/dist/chunks/markdown-DULktoTK.js +0 -313
- package/dist/chunks/markdown-DULktoTK.js.map +0 -1
- package/dist/chunks/menu-DEmBfdPm.js +0 -450
- package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
- package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
- package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
- package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
- package/dist/chunks/page-header-DL2y2iZp.js +0 -41
- package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
- package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
- package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
- package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
- package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
- package/dist/chunks/popover-DNN4S47w.js +0 -50
- package/dist/chunks/popover-DNN4S47w.js.map +0 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
- package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
- package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
- package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
- package/dist/chunks/release-art-ZwfFQImt.js +0 -561
- package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
- package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
- package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
- package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
- package/dist/chunks/section-Ce1efbsP.js +0 -87
- package/dist/chunks/section-Ce1efbsP.js.map +0 -1
- package/dist/chunks/segmented-CErcoxwi.js +0 -114
- package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
- package/dist/chunks/select-x4XVsdCI.js +0 -210
- package/dist/chunks/select-x4XVsdCI.js.map +0 -1
- package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
- package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
- package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
- package/dist/chunks/slider-Ci83PGtj.js +0 -57
- package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
- package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
- package/dist/chunks/switch-BNMq_kGt.js +0 -59
- package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
- package/dist/chunks/table-BeOSKl_3.js +0 -84
- package/dist/chunks/table-BeOSKl_3.js.map +0 -1
- package/dist/chunks/tag-D_M1s2qS.js +0 -87
- package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
- package/dist/chunks/text-CIXH8rmT.js.map +0 -1
- package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
- package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
- package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
- package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
- package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
- package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
- package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
- package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
- package/dist/chunks/zh-CN-29X4CDLE.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/label.js.map +0 -1
package/dist/components/toast.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../chunks/cn-
|
|
3
|
-
import { r as t } from "../chunks/portal-context-
|
|
2
|
+
import { t as e } from "../chunks/cn-BjnOAUrA.js";
|
|
3
|
+
import { r as t } from "../chunks/portal-context-CTatR2Z8.js";
|
|
4
4
|
import { i as n } from "../chunks/context-BELWW79w.js";
|
|
5
|
-
import { t as r } from "../chunks/icon-
|
|
5
|
+
import { t as r } from "../chunks/icon-CBzOwqrX.js";
|
|
6
6
|
import { t as i } from "../chunks/observe-resize-DhxhmoyB.js";
|
|
7
|
-
import { r as a } from "../chunks/loader-
|
|
8
|
-
import { r as o } from "../chunks/swap-text-
|
|
7
|
+
import { r as a } from "../chunks/loader-zo8CCIGJ.js";
|
|
8
|
+
import { r as o } from "../chunks/swap-text-SlUjrTlG.js";
|
|
9
9
|
import { forwardRef as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
|
|
10
10
|
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
11
11
|
import { Alert02Icon as m, AlertCircleIcon as h, Cancel01Icon as g, CheckmarkCircle02Icon as _, InformationCircleIcon as v } from "@hugeicons/core-free-icons";
|
|
@@ -23,13 +23,14 @@ var b = { tone: {
|
|
|
23
23
|
error: h,
|
|
24
24
|
warning: m,
|
|
25
25
|
info: v
|
|
26
|
-
}, C = /* @__PURE__ */ y.createToastManager();
|
|
27
|
-
function
|
|
26
|
+
}, C = /* @__PURE__ */ y.createToastManager(), w = (e, t) => e === "error" || !!t.action;
|
|
27
|
+
function T(e, t, n = {}) {
|
|
28
|
+
let r = n.timeout ?? (w(e, n) ? 0 : void 0);
|
|
28
29
|
return C.add({
|
|
29
30
|
title: t,
|
|
30
31
|
type: e,
|
|
31
32
|
...n.description === void 0 ? {} : { description: n.description },
|
|
32
|
-
...
|
|
33
|
+
...r === void 0 ? {} : { timeout: r },
|
|
33
34
|
...n.id ? { id: n.id } : {},
|
|
34
35
|
...e === "error" ? { priority: "high" } : {},
|
|
35
36
|
...n.action ? { actionProps: {
|
|
@@ -38,11 +39,11 @@ function w(e, t, n = {}) {
|
|
|
38
39
|
} } : {}
|
|
39
40
|
});
|
|
40
41
|
}
|
|
41
|
-
var
|
|
42
|
-
success: (e, t) =>
|
|
43
|
-
error: (e, t) =>
|
|
44
|
-
warning: (e, t) =>
|
|
45
|
-
info: (e, t) =>
|
|
42
|
+
var E = /* @__PURE__ */ Object.assign((e, t) => T("neutral", e, t), {
|
|
43
|
+
success: (e, t) => T("success", e, t),
|
|
44
|
+
error: (e, t) => T("error", e, t),
|
|
45
|
+
warning: (e, t) => T("warning", e, t),
|
|
46
|
+
info: (e, t) => T("info", e, t),
|
|
46
47
|
dismiss: (e) => C.close(e),
|
|
47
48
|
promise: (e, t) => {
|
|
48
49
|
let n = [
|
|
@@ -66,41 +67,46 @@ var T = /* @__PURE__ */ Object.assign((e, t) => w("neutral", e, t), {
|
|
|
66
67
|
title: typeof t.error == "function" ? t.error(e) : t.error,
|
|
67
68
|
type: "error",
|
|
68
69
|
priority: "high",
|
|
70
|
+
timeout: 0,
|
|
69
71
|
data: { reserve: n }
|
|
70
72
|
})
|
|
71
73
|
});
|
|
72
74
|
}
|
|
73
75
|
});
|
|
74
|
-
function
|
|
76
|
+
function D({ tone: t, multi: n }) {
|
|
75
77
|
return t === "neutral" ? null : /* @__PURE__ */ f("span", {
|
|
76
|
-
className: e("flex shrink-0", b.tone[t].classes),
|
|
78
|
+
className: e("flex shrink-0", n && "mt-2 self-start", b.tone[t].classes),
|
|
77
79
|
children: t === "loading" ? /* @__PURE__ */ f(a, { size: "sm" }) : /* @__PURE__ */ f(r, {
|
|
78
80
|
icon: S[t],
|
|
79
81
|
size: "sm"
|
|
80
82
|
})
|
|
81
83
|
});
|
|
82
84
|
}
|
|
83
|
-
var
|
|
84
|
-
function
|
|
85
|
+
var O = "relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast", k = "inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring", A = "relative inline-flex size-24 shrink-0 cursor-pointer items-center justify-center rounded-pill text-toast-fg-secondary transition-control tap-target hover:bg-toast-action hover:text-toast-fg focus-ring", j = (e, t) => t ? "pr-10" : e ? "pr-6" : "pr-16";
|
|
86
|
+
function M(e, t) {
|
|
85
87
|
let n = l(null), [r, i] = u(!1);
|
|
86
88
|
return c(() => {
|
|
87
89
|
let e = n.current;
|
|
88
|
-
e && i(e.offsetHeight >
|
|
90
|
+
e && i(e.offsetHeight > (parseFloat(getComputedStyle(e).minHeight) || 0) + 2);
|
|
89
91
|
}, [e, t]), [n, r];
|
|
90
92
|
}
|
|
91
|
-
var
|
|
92
|
-
let [u, d] =
|
|
93
|
-
return /* @__PURE__ */
|
|
93
|
+
var N = /* @__PURE__ */ s(function({ tone: t = "neutral", title: i, description: a, action: o, closable: s, "data-force": c }, l) {
|
|
94
|
+
let [u, d] = M(i, a), m = n();
|
|
95
|
+
return /* @__PURE__ */ f("div", {
|
|
94
96
|
ref: l,
|
|
95
97
|
role: "status",
|
|
96
98
|
className: "k-toast-static relative w-max",
|
|
97
|
-
|
|
99
|
+
...t === "error" || o ? { "data-stays": "" } : {},
|
|
100
|
+
children: /* @__PURE__ */ p("div", {
|
|
98
101
|
ref: u,
|
|
99
|
-
className: e(
|
|
102
|
+
className: e(O, d ? "rounded-toast" : "rounded-pill", t === "neutral" ? "pl-16" : "pl-14", j(!!o, !!s)),
|
|
100
103
|
children: [
|
|
101
|
-
/* @__PURE__ */ f(
|
|
104
|
+
/* @__PURE__ */ f(D, {
|
|
105
|
+
tone: t,
|
|
106
|
+
multi: d
|
|
107
|
+
}),
|
|
102
108
|
/* @__PURE__ */ p("span", {
|
|
103
|
-
className: "min-w-0 text-pretty",
|
|
109
|
+
className: "min-w-0 text-pretty wrap-break-word",
|
|
104
110
|
children: [i, a && /* @__PURE__ */ p("span", {
|
|
105
111
|
className: "font-regular text-toast-fg-secondary",
|
|
106
112
|
children: [" ", a]
|
|
@@ -108,26 +114,26 @@ var j = /* @__PURE__ */ s(function({ tone: t = "neutral", title: i, description:
|
|
|
108
114
|
}),
|
|
109
115
|
o && /* @__PURE__ */ f("button", {
|
|
110
116
|
type: "button",
|
|
111
|
-
className:
|
|
117
|
+
className: k,
|
|
112
118
|
children: o
|
|
119
|
+
}),
|
|
120
|
+
s && /* @__PURE__ */ f("button", {
|
|
121
|
+
type: "button",
|
|
122
|
+
"aria-label": m("toast.dismiss", "Dismiss"),
|
|
123
|
+
className: A,
|
|
124
|
+
...c ? { "data-force": c } : {},
|
|
125
|
+
children: /* @__PURE__ */ f(r, {
|
|
126
|
+
icon: g,
|
|
127
|
+
size: "xs"
|
|
128
|
+
})
|
|
113
129
|
})
|
|
114
130
|
]
|
|
115
|
-
})
|
|
116
|
-
type: "button",
|
|
117
|
-
"aria-label": m("toast.dismiss", "Dismiss"),
|
|
118
|
-
className: k,
|
|
119
|
-
"data-force": c ? `visible ${c}` : "visible",
|
|
120
|
-
children: /* @__PURE__ */ f(r, {
|
|
121
|
-
icon: g,
|
|
122
|
-
size: "xs",
|
|
123
|
-
className: "size-12"
|
|
124
|
-
})
|
|
125
|
-
})]
|
|
131
|
+
})
|
|
126
132
|
});
|
|
127
133
|
});
|
|
128
|
-
process.env.NODE_ENV !== "production" && (
|
|
129
|
-
function
|
|
130
|
-
let u = n(), m = t.type ?? "neutral", h = t.data?.reserve, [_, v] =
|
|
134
|
+
process.env.NODE_ENV !== "production" && (N.displayName = "ToastCapsule");
|
|
135
|
+
function P({ item: t, index: a, limit: s, onFrontWidth: l }) {
|
|
136
|
+
let u = n(), m = t.type ?? "neutral", h = t.data?.reserve, [_, v] = M(t.title, t.description), b = t.timeout === 0 && m !== "loading";
|
|
131
137
|
return c(() => {
|
|
132
138
|
let e = _.current;
|
|
133
139
|
if (a !== 0 || !e) return;
|
|
@@ -137,7 +143,7 @@ function M({ item: t, index: a, limit: s, onFrontWidth: l }) {
|
|
|
137
143
|
a,
|
|
138
144
|
l,
|
|
139
145
|
_
|
|
140
|
-
]), /* @__PURE__ */
|
|
146
|
+
]), /* @__PURE__ */ f(y.Root, {
|
|
141
147
|
toast: t,
|
|
142
148
|
swipeDirection: [
|
|
143
149
|
"down",
|
|
@@ -145,17 +151,21 @@ function M({ item: t, index: a, limit: s, onFrontWidth: l }) {
|
|
|
145
151
|
"right"
|
|
146
152
|
],
|
|
147
153
|
className: "k-toast outline-none",
|
|
154
|
+
...b ? { "data-stays": "" } : {},
|
|
148
155
|
...a > 0 ? { "data-behind": "" } : {},
|
|
149
156
|
...a >= s ? { "data-index-hidden": "" } : {},
|
|
150
|
-
children:
|
|
157
|
+
children: /* @__PURE__ */ f("div", {
|
|
151
158
|
ref: _,
|
|
152
|
-
className: e("k-toast-surface",
|
|
159
|
+
className: e("k-toast-surface", O, v ? "rounded-toast" : "rounded-pill", m === "neutral" ? "pl-16" : "pl-14", j(!!t.actionProps, b)),
|
|
153
160
|
children: /* @__PURE__ */ p("div", {
|
|
154
161
|
className: "k-toast-content flex min-w-0 items-center gap-10",
|
|
155
162
|
children: [
|
|
156
|
-
/* @__PURE__ */ f(
|
|
163
|
+
/* @__PURE__ */ f(D, {
|
|
164
|
+
tone: m,
|
|
165
|
+
multi: v
|
|
166
|
+
}),
|
|
157
167
|
/* @__PURE__ */ p("span", {
|
|
158
|
-
className: "min-w-0 text-pretty",
|
|
168
|
+
className: "min-w-0 text-pretty wrap-break-word",
|
|
159
169
|
children: [h ? /* @__PURE__ */ f(o, {
|
|
160
170
|
reserve: h,
|
|
161
171
|
align: "start",
|
|
@@ -165,30 +175,30 @@ function M({ item: t, index: a, limit: s, onFrontWidth: l }) {
|
|
|
165
175
|
className: "font-regular text-toast-fg-secondary"
|
|
166
176
|
})] })]
|
|
167
177
|
}),
|
|
168
|
-
t.actionProps && /* @__PURE__ */ f(y.Action, { className:
|
|
178
|
+
t.actionProps && /* @__PURE__ */ f(y.Action, { className: k }),
|
|
179
|
+
b && /* @__PURE__ */ f(y.Close, {
|
|
180
|
+
"aria-label": u("toast.dismiss", "Dismiss"),
|
|
181
|
+
className: A,
|
|
182
|
+
children: /* @__PURE__ */ f(r, {
|
|
183
|
+
icon: g,
|
|
184
|
+
size: "xs"
|
|
185
|
+
})
|
|
186
|
+
})
|
|
169
187
|
]
|
|
170
188
|
})
|
|
171
|
-
})
|
|
172
|
-
"aria-label": u("toast.dismiss", "Dismiss"),
|
|
173
|
-
className: k,
|
|
174
|
-
children: /* @__PURE__ */ f(r, {
|
|
175
|
-
icon: g,
|
|
176
|
-
size: "xs",
|
|
177
|
-
className: "size-12"
|
|
178
|
-
})
|
|
179
|
-
})]
|
|
189
|
+
})
|
|
180
190
|
});
|
|
181
191
|
}
|
|
182
|
-
function
|
|
192
|
+
function F({ limit: e, viewportRef: r }) {
|
|
183
193
|
let { toasts: i } = y.useToastManager(), a = i.filter((e) => e.transitionStatus !== "ending"), [o, s] = u(0), c = n();
|
|
184
194
|
return /* @__PURE__ */ f(y.Portal, {
|
|
185
195
|
container: t(),
|
|
186
196
|
children: /* @__PURE__ */ f(y.Viewport, {
|
|
187
197
|
ref: r,
|
|
188
198
|
"aria-label": c("toast.notifications", "Notifications"),
|
|
189
|
-
className: "fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none",
|
|
199
|
+
className: "k-toast-viewport fixed right-0 bottom-safe-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none",
|
|
190
200
|
style: { "--k-front-width": o ? `${o}px` : "auto" },
|
|
191
|
-
children: i.map((t) => /* @__PURE__ */ f(
|
|
201
|
+
children: i.map((t) => /* @__PURE__ */ f(P, {
|
|
192
202
|
item: t,
|
|
193
203
|
index: Math.max(0, a.indexOf(t)),
|
|
194
204
|
limit: e,
|
|
@@ -197,26 +207,26 @@ function N({ limit: e, viewportRef: r }) {
|
|
|
197
207
|
})
|
|
198
208
|
});
|
|
199
209
|
}
|
|
200
|
-
var
|
|
210
|
+
var I = /* @__PURE__ */ s(function({ limit: e = 3, timeout: t = 5e3 }, n) {
|
|
201
211
|
return /* @__PURE__ */ f(y.Provider, {
|
|
202
212
|
toastManager: C,
|
|
203
213
|
limit: e,
|
|
204
214
|
timeout: t,
|
|
205
|
-
children: /* @__PURE__ */ f(
|
|
215
|
+
children: /* @__PURE__ */ f(F, {
|
|
206
216
|
limit: e,
|
|
207
217
|
viewportRef: n
|
|
208
218
|
})
|
|
209
219
|
});
|
|
210
220
|
});
|
|
211
|
-
process.env.NODE_ENV !== "production" && (
|
|
212
|
-
var
|
|
213
|
-
return /* @__PURE__ */ f(
|
|
221
|
+
process.env.NODE_ENV !== "production" && (I.displayName = "Toaster");
|
|
222
|
+
var L = /* @__PURE__ */ Object.assign(/* @__PURE__ */ s(function(e, t) {
|
|
223
|
+
return /* @__PURE__ */ f(I, {
|
|
214
224
|
ref: t,
|
|
215
225
|
...e
|
|
216
226
|
});
|
|
217
|
-
}), { add:
|
|
218
|
-
process.env.NODE_ENV !== "production" && (
|
|
227
|
+
}), { add: E });
|
|
228
|
+
process.env.NODE_ENV !== "production" && (L.displayName = "Toast");
|
|
219
229
|
//#endregion
|
|
220
|
-
export { x as KAESO_TOAST_DEFAULT_VARIANTS, b as KAESO_TOAST_VARIANTS,
|
|
230
|
+
export { x as KAESO_TOAST_DEFAULT_VARIANTS, b as KAESO_TOAST_VARIANTS, L as Toast, N as ToastCapsule, I as Toaster, E as toast, C as toastManager };
|
|
221
231
|
|
|
222
232
|
//# sourceMappingURL=toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":["__icon_CheckmarkCircle02Icon","__icon_AlertCircleIcon","__icon_Alert02Icon","__icon_InformationCircleIcon","__icon_Cancel01Icon","BaseToast","_Fragment","cn","usePortalContainer","useUiText","Icon","observeResize","Spinner","SwapText","Fragment$1","Toast$1","KAESO_TOAST_VARIANTS","KAESO_TOAST_DEFAULT_VARIANTS","ICON","CheckmarkCircle02Icon","AlertCircleIcon","Alert02Icon","InformationCircleIcon","toastManager","add","tone","o","toast","title","id","reserve","m","p","v","ToneIcon","SURFACE","ACTION","CLOSE","useMultiline","ref","useRef","multi","setMulti","useState","useLayoutEffect","el","description","ToastCapsule","force","surface","t","action","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","limit","List","live","toasts","frontWidth","setFrontWidth","viewportRef","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { forwardRef, useLayoutEffect, useRef, useState, type ReactNode, type Ref } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CheckmarkCircle02Icon as __icon_CheckmarkCircle02Icon, AlertCircleIcon as __icon_AlertCircleIcon, Alert02Icon as __icon_Alert02Icon, InformationCircleIcon as __icon_InformationCircleIcon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Spinner } from \"../loader/loader.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TOAST_VARIANTS = {\n tone: {\n neutral: { classes: \"\" },\n success: { classes: \"text-success\" },\n error: { classes: \"text-danger\" },\n warning: { classes: \"text-warning\" },\n info: { classes: \"text-info\" },\n loading: { classes: \"text-toast-fg-secondary\" },\n },\n} as const;\nexport const KAESO_TOAST_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\ntype Tone = keyof typeof KAESO_TOAST_VARIANTS.tone;\n\nconst ICON = { success: __icon_CheckmarkCircle02Icon, error: __icon_AlertCircleIcon, warning: __icon_Alert02Icon, info: __icon_InformationCircleIcon } as const;\n\nexport const toastManager = /* @__PURE__ */ BaseToast.createToastManager();\n\nexport interface ToastOptions {\n description?: ReactNode | undefined;\n action?: { label: string; onClick: () => void } | undefined;\n timeout?: number | undefined;\n id?: string | undefined;\n}\n\ninterface ToastData {\n reserve?: ReactNode[] | undefined;\n}\n\nfunction add(tone: Tone, title: ReactNode, o: ToastOptions = {}) {\n return toastManager.add({\n title,\n type: tone,\n ...(o.description !== undefined ? { description: o.description } : {}),\n ...(o.timeout !== undefined ? { timeout: o.timeout } : {}),\n ...(o.id ? { id: o.id } : {}),\n ...(tone === \"error\" ? { priority: \"high\" as const } : {}),\n ...(o.action ? { actionProps: { children: o.action.label, onClick: o.action.onClick } } : {}),\n });\n}\n\nexport const toast = /* @__PURE__ */ Object.assign((title: ReactNode, o?: ToastOptions) => add(\"neutral\", title, o), {\n success: (title: ReactNode, o?: ToastOptions) => add(\"success\", title, o),\n error: (title: ReactNode, o?: ToastOptions) => add(\"error\", title, o),\n warning: (title: ReactNode, o?: ToastOptions) => add(\"warning\", title, o),\n info: (title: ReactNode, o?: ToastOptions) => add(\"info\", title, o),\n dismiss: (id?: string) => toastManager.close(id),\n promise: <T,>(p: Promise<T>, m: { loading: string; success: string | ((v: T) => string); error: string | ((e: unknown) => string) }) => {\n const reserve = [m.loading, ...(typeof m.success === \"string\" ? [m.success] : []), ...(typeof m.error === \"string\" ? [m.error] : [])];\n return toastManager.promise(p, {\n loading: { title: m.loading, type: \"loading\", timeout: 0, data: { reserve } },\n success: (v: T) => ({ title: typeof m.success === \"function\" ? m.success(v) : m.success, type: \"success\", data: { reserve } }),\n error: (e: unknown) => ({ title: typeof m.error === \"function\" ? m.error(e) : m.error, type: \"error\", priority: \"high\", data: { reserve } }),\n });\n },\n});\n\nfunction ToneIcon({ tone }: { tone: Tone }) {\n if (tone === \"neutral\") return null;\n return (\n <span className={cn(\"flex shrink-0\", KAESO_TOAST_VARIANTS.tone[tone].classes)}>\n {tone === \"loading\" ? <Spinner size=\"sm\" /> : <Icon icon={ICON[tone]} size=\"sm\" />}\n </span>\n );\n}\n\nconst SURFACE = \"relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast\";\nconst ACTION =\n \"inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring\";\nconst CLOSE =\n \"k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring\";\n\nfunction useMultiline(title: ReactNode, description: ReactNode) {\n const ref = useRef<HTMLDivElement>(null);\n const [multi, setMulti] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (el) setMulti(el.offsetHeight > 46);\n }, [title, description]);\n return [ref, multi] as const;\n}\n\nexport interface ToastCapsuleProps {\n tone?: Tone | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n action?: string | undefined;\n closable?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const ToastCapsule = /* @__PURE__ */ forwardRef<HTMLDivElement, ToastCapsuleProps>(function ToastCapsule(\n { tone = \"neutral\", title, description, action, closable, \"data-force\": force },\n ref,\n) {\n const [surface, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div ref={ref} role=\"status\" className=\"k-toast-static relative w-max\">\n <div ref={surface} className={cn(SURFACE, multi ? \"rounded-toast\" : \"rounded-pill\", tone === \"neutral\" ? \"pl-16\" : \"pl-14\", action ? \"pr-6\" : \"pr-16\")}>\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {title}\n {description && <span className=\"font-regular text-toast-fg-secondary\"> {description}</span>}\n </span>\n {action && (\n <button type=\"button\" className={ACTION}>\n {action}\n </button>\n )}\n </div>\n {closable && (\n <button type=\"button\" aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE} data-force={force ? `visible ${force}` : \"visible\"}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </button>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ToastCapsule.displayName = \"ToastCapsule\";\n\ntype ManagedToast = ReturnType<typeof BaseToast.useToastManager>[\"toasts\"][number];\n\nfunction ToastItem({ item, index, limit, onFrontWidth }: { item: ManagedToast; index: number; limit: number; onFrontWidth: (w: number) => void }) {\n const t = useUiText();\n const tone = ((item.type as Tone) ?? \"neutral\") as Tone;\n const reserve = (item.data as ToastData | undefined)?.reserve;\n const [ref, multi] = useMultiline(item.title, item.description);\n useLayoutEffect(() => {\n const el = ref.current;\n if (index !== 0 || !el) return;\n const report = () => onFrontWidth(Math.round(el.offsetWidth));\n report();\n return observeResize([el], report);\n }, [index, onFrontWidth, ref]);\n return (\n <BaseToast.Root\n toast={item}\n swipeDirection={[\"down\", \"left\", \"right\"]}\n className=\"k-toast outline-none\"\n {...(index > 0 ? { \"data-behind\": \"\" } : {})}\n {...(index >= limit ? { \"data-index-hidden\": \"\" } : {})}\n >\n <div\n ref={ref}\n className={cn(\n \"k-toast-surface\",\n SURFACE,\n multi ? \"rounded-toast\" : \"rounded-pill\",\n tone === \"neutral\" ? \"pl-16\" : \"pl-14\",\n item.actionProps ? \"pr-6\" : \"pr-16\",\n )}\n >\n <div className=\"k-toast-content flex min-w-0 items-center gap-10\">\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {reserve ? (\n <SwapText reserve={reserve} align=\"start\">\n <BaseToast.Title render={<span />} />\n </SwapText>\n ) : (\n <BaseToast.Title render={<span />} />\n )}\n {item.description && (\n <>\n {\" \"}\n <BaseToast.Description render={<span />} className=\"font-regular text-toast-fg-secondary\" />\n </>\n )}\n </span>\n {item.actionProps && <BaseToast.Action className={ACTION} />}\n </div>\n </div>\n <BaseToast.Close aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction List({ limit, viewportRef }: { limit: number; viewportRef: Ref<HTMLDivElement> }) {\n const { toasts } = BaseToast.useToastManager();\n const live = toasts.filter((item) => item.transitionStatus !== \"ending\");\n const [frontWidth, setFrontWidth] = useState(0);\n const t = useUiText();\n return (\n <BaseToast.Portal container={usePortalContainer()}>\n <BaseToast.Viewport\n ref={viewportRef}\n aria-label={t(\"toast.notifications\", \"Notifications\")}\n className=\"fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none\"\n style={{ [\"--k-front-width\" as string]: frontWidth ? `${frontWidth}px` : \"auto\" }}\n >\n {toasts.map((item) => (\n <ToastItem key={item.id} item={item} index={Math.max(0, live.indexOf(item))} limit={limit} onFrontWidth={setFrontWidth} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nexport interface ToasterProps {\n limit?: number | undefined;\n timeout?: number | undefined;\n}\n\nexport const Toaster = /* @__PURE__ */ forwardRef<HTMLDivElement, ToasterProps>(function Toaster({ limit = 3, timeout = 5000 }, ref) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} viewportRef={ref} />\n </BaseToast.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n /* @__PURE__ */ forwardRef<HTMLDivElement, ToasterProps>(function Toast(props, ref) {\n return <Toaster ref={ref} {...props} />;\n }),\n { add: toast },\n);\nif (process.env.NODE_ENV !== \"production\") Toast.displayName = \"Toast\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast.js","names":["__icon_CheckmarkCircle02Icon","__icon_AlertCircleIcon","__icon_Alert02Icon","__icon_InformationCircleIcon","__icon_Cancel01Icon","BaseToast","_Fragment","cn","usePortalContainer","useUiText","Icon","observeResize","Spinner","SwapText","Fragment$1","Toast$1","KAESO_TOAST_VARIANTS","KAESO_TOAST_DEFAULT_VARIANTS","ICON","CheckmarkCircle02Icon","AlertCircleIcon","Alert02Icon","InformationCircleIcon","toastManager","stays","tone","o","add","timeout","toast","title","id","reserve","m","p","v","ToneIcon","multi","SURFACE","ACTION","CLOSE","padEnd","close","action","useMultiline","ref","useRef","setMulti","useState","useLayoutEffect","el","description","ToastCapsule","force","surface","t","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","limit","List","live","toasts","frontWidth","setFrontWidth","viewportRef","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { forwardRef, useLayoutEffect, useRef, useState, type ReactNode, type Ref } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CheckmarkCircle02Icon as __icon_CheckmarkCircle02Icon, AlertCircleIcon as __icon_AlertCircleIcon, Alert02Icon as __icon_Alert02Icon, InformationCircleIcon as __icon_InformationCircleIcon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Spinner } from \"../loader/loader.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TOAST_VARIANTS = {\n tone: {\n neutral: { classes: \"\" },\n success: { classes: \"text-success\" },\n error: { classes: \"text-danger\" },\n warning: { classes: \"text-warning\" },\n info: { classes: \"text-info\" },\n loading: { classes: \"text-toast-fg-secondary\" },\n },\n} as const;\nexport const KAESO_TOAST_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\ntype Tone = keyof typeof KAESO_TOAST_VARIANTS.tone;\n\nconst ICON = { success: __icon_CheckmarkCircle02Icon, error: __icon_AlertCircleIcon, warning: __icon_Alert02Icon, info: __icon_InformationCircleIcon } as const;\n\nexport const toastManager = /* @__PURE__ */ BaseToast.createToastManager();\n\nexport interface ToastOptions {\n description?: ReactNode | undefined;\n action?: { label: string; onClick: () => void } | undefined;\n timeout?: number | undefined;\n id?: string | undefined;\n}\n\ninterface ToastData {\n reserve?: ReactNode[] | undefined;\n}\n\nconst stays = (tone: Tone, o: ToastOptions) => tone === \"error\" || !!o.action;\n\nfunction add(tone: Tone, title: ReactNode, o: ToastOptions = {}) {\n const timeout = o.timeout ?? (stays(tone, o) ? 0 : undefined);\n return toastManager.add({\n title,\n type: tone,\n ...(o.description !== undefined ? { description: o.description } : {}),\n ...(timeout !== undefined ? { timeout } : {}),\n ...(o.id ? { id: o.id } : {}),\n ...(tone === \"error\" ? { priority: \"high\" as const } : {}),\n ...(o.action ? { actionProps: { children: o.action.label, onClick: o.action.onClick } } : {}),\n });\n}\n\nexport const toast = /* @__PURE__ */ Object.assign((title: ReactNode, o?: ToastOptions) => add(\"neutral\", title, o), {\n success: (title: ReactNode, o?: ToastOptions) => add(\"success\", title, o),\n error: (title: ReactNode, o?: ToastOptions) => add(\"error\", title, o),\n warning: (title: ReactNode, o?: ToastOptions) => add(\"warning\", title, o),\n info: (title: ReactNode, o?: ToastOptions) => add(\"info\", title, o),\n dismiss: (id?: string) => toastManager.close(id),\n promise: <T,>(p: Promise<T>, m: { loading: string; success: string | ((v: T) => string); error: string | ((e: unknown) => string) }) => {\n const reserve = [m.loading, ...(typeof m.success === \"string\" ? [m.success] : []), ...(typeof m.error === \"string\" ? [m.error] : [])];\n return toastManager.promise(p, {\n loading: { title: m.loading, type: \"loading\", timeout: 0, data: { reserve } },\n success: (v: T) => ({ title: typeof m.success === \"function\" ? m.success(v) : m.success, type: \"success\", data: { reserve } }),\n error: (e: unknown) => ({\n title: typeof m.error === \"function\" ? m.error(e) : m.error,\n type: \"error\",\n priority: \"high\",\n timeout: 0,\n data: { reserve },\n }),\n });\n },\n});\n\nfunction ToneIcon({ tone, multi }: { tone: Tone; multi: boolean }) {\n if (tone === \"neutral\") return null;\n return (\n <span className={cn(\"flex shrink-0\", multi && \"mt-2 self-start\", KAESO_TOAST_VARIANTS.tone[tone].classes)}>\n {tone === \"loading\" ? <Spinner size=\"sm\" /> : <Icon icon={ICON[tone]} size=\"sm\" />}\n </span>\n );\n}\n\nconst SURFACE = \"relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast\";\nconst ACTION =\n \"inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring\";\nconst CLOSE =\n \"relative inline-flex size-24 shrink-0 cursor-pointer items-center justify-center rounded-pill text-toast-fg-secondary transition-control tap-target hover:bg-toast-action hover:text-toast-fg focus-ring\";\nconst padEnd = (action: boolean, close: boolean) => (close ? \"pr-10\" : action ? \"pr-6\" : \"pr-16\");\n\nfunction useMultiline(title: ReactNode, description: ReactNode) {\n const ref = useRef<HTMLDivElement>(null);\n const [multi, setMulti] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (el) setMulti(el.offsetHeight > (parseFloat(getComputedStyle(el).minHeight) || 0) + 2);\n }, [title, description]);\n return [ref, multi] as const;\n}\n\nexport interface ToastCapsuleProps {\n tone?: Tone | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n action?: string | undefined;\n closable?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const ToastCapsule = /* @__PURE__ */ forwardRef<HTMLDivElement, ToastCapsuleProps>(function ToastCapsule(\n { tone = \"neutral\", title, description, action, closable, \"data-force\": force },\n ref,\n) {\n const [surface, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div ref={ref} role=\"status\" className=\"k-toast-static relative w-max\" {...(tone === \"error\" || action ? { \"data-stays\": \"\" } : {})}>\n <div\n ref={surface}\n className={cn(SURFACE, multi ? \"rounded-toast\" : \"rounded-pill\", tone === \"neutral\" ? \"pl-16\" : \"pl-14\", padEnd(!!action, !!closable))}\n >\n <ToneIcon tone={tone} multi={multi} />\n <span className=\"min-w-0 text-pretty wrap-break-word\">\n {title}\n {description && <span className=\"font-regular text-toast-fg-secondary\"> {description}</span>}\n </span>\n {action && (\n <button type=\"button\" className={ACTION}>\n {action}\n </button>\n )}\n {closable && (\n <button type=\"button\" aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE} {...(force ? { \"data-force\": force } : {})}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </button>\n )}\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ToastCapsule.displayName = \"ToastCapsule\";\n\ntype ManagedToast = ReturnType<typeof BaseToast.useToastManager>[\"toasts\"][number];\n\nfunction ToastItem({ item, index, limit, onFrontWidth }: { item: ManagedToast; index: number; limit: number; onFrontWidth: (w: number) => void }) {\n const t = useUiText();\n const tone = ((item.type as Tone) ?? \"neutral\") as Tone;\n const reserve = (item.data as ToastData | undefined)?.reserve;\n const [ref, multi] = useMultiline(item.title, item.description);\n const stays = item.timeout === 0 && tone !== \"loading\";\n useLayoutEffect(() => {\n const el = ref.current;\n if (index !== 0 || !el) return;\n const report = () => onFrontWidth(Math.round(el.offsetWidth));\n report();\n return observeResize([el], report);\n }, [index, onFrontWidth, ref]);\n return (\n <BaseToast.Root\n toast={item}\n swipeDirection={[\"down\", \"left\", \"right\"]}\n className=\"k-toast outline-none\"\n {...(stays ? { \"data-stays\": \"\" } : {})}\n {...(index > 0 ? { \"data-behind\": \"\" } : {})}\n {...(index >= limit ? { \"data-index-hidden\": \"\" } : {})}\n >\n <div\n ref={ref}\n className={cn(\n \"k-toast-surface\",\n SURFACE,\n multi ? \"rounded-toast\" : \"rounded-pill\",\n tone === \"neutral\" ? \"pl-16\" : \"pl-14\",\n padEnd(!!item.actionProps, stays),\n )}\n >\n <div className=\"k-toast-content flex min-w-0 items-center gap-10\">\n <ToneIcon tone={tone} multi={multi} />\n <span className=\"min-w-0 text-pretty wrap-break-word\">\n {reserve ? (\n <SwapText reserve={reserve} align=\"start\">\n <BaseToast.Title render={<span />} />\n </SwapText>\n ) : (\n <BaseToast.Title render={<span />} />\n )}\n {item.description && (\n <>\n {\" \"}\n <BaseToast.Description render={<span />} className=\"font-regular text-toast-fg-secondary\" />\n </>\n )}\n </span>\n {item.actionProps && <BaseToast.Action className={ACTION} />}\n {stays && (\n <BaseToast.Close aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </BaseToast.Close>\n )}\n </div>\n </div>\n </BaseToast.Root>\n );\n}\n\nfunction List({ limit, viewportRef }: { limit: number; viewportRef: Ref<HTMLDivElement> }) {\n const { toasts } = BaseToast.useToastManager();\n const live = toasts.filter((item) => item.transitionStatus !== \"ending\");\n const [frontWidth, setFrontWidth] = useState(0);\n const t = useUiText();\n return (\n <BaseToast.Portal container={usePortalContainer()}>\n <BaseToast.Viewport\n ref={viewportRef}\n aria-label={t(\"toast.notifications\", \"Notifications\")}\n className=\"k-toast-viewport fixed right-0 bottom-safe-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none\"\n style={{ [\"--k-front-width\" as string]: frontWidth ? `${frontWidth}px` : \"auto\" }}\n >\n {toasts.map((item) => (\n <ToastItem key={item.id} item={item} index={Math.max(0, live.indexOf(item))} limit={limit} onFrontWidth={setFrontWidth} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nexport interface ToasterProps {\n limit?: number | undefined;\n timeout?: number | undefined;\n}\n\nexport const Toaster = /* @__PURE__ */ forwardRef<HTMLDivElement, ToasterProps>(function Toaster({ limit = 3, timeout = 5000 }, ref) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} viewportRef={ref} />\n </BaseToast.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n /* @__PURE__ */ forwardRef<HTMLDivElement, ToasterProps>(function Toast(props, ref) {\n return <Toaster ref={ref} {...props} />;\n }),\n { add: toast },\n);\nif (process.env.NODE_ENV !== \"production\") Toast.displayName = \"Toast\";\n"],"mappings":";;;;;;;;;;;;;AAWA,IAAagB,IAAuB,EAClC,MAAM;CACJ,SAAS,EAAE,SAAS,GAAG;CACvB,SAAS,EAAE,SAAS,eAAe;CACnC,OAAO,EAAE,SAAS,cAAc;CAChC,SAAS,EAAE,SAAS,eAAe;CACnC,MAAM,EAAE,SAAS,YAAY;CAC7B,SAAS,EAAE,SAAS,0BAA0B;AAChD,EACF,GACaC,IAA+B,EAAE,MAAM,UAAU,GAGxDC,IAAO;CAAE,SAASlB;CAA8B,OAAOC;CAAwB,SAASC;CAAoB,MAAMC;AAA6B,GAExIoB,IAA+B,kBAAU,mBAAmB,GAanEC,KAAS,GAAY,MAAoBC,MAAS,WAAW,CAAC,CAACC,EAAE;AAEvE,SAASC,EAAI,GAAY,GAAkB,IAAkB,CAAC,GAAG;CAC/D,IAAMC,IAAUF,EAAE,YAAYF,EAAMC,GAAMC,CAAC,IAAI,IAAI,KAAA;CACnD,OAAOH,EAAa,IAAI;EACtB;EACA,MAAME;EACN,GAAIC,EAAE,gBAAgB,KAAA,IAA6C,CAAC,IAAlC,EAAE,aAAaA,EAAE,YAAY;EAC/D,GAAIE,MAAY,KAAA,IAA0B,CAAC,IAAf,EAAE,WAAQ;EACtC,GAAIF,EAAE,KAAK,EAAE,IAAIA,EAAE,GAAG,IAAI,CAAC;EAC3B,GAAID,MAAS,UAAU,EAAE,UAAU,OAAgB,IAAI,CAAC;EACxD,GAAIC,EAAE,SAAS,EAAE,aAAa;GAAE,UAAUA,EAAE,OAAO;GAAO,SAASA,EAAE,OAAO;EAAQ,EAAE,IAAI,CAAC;CAC7F,CAAC;AACH;AAEA,IAAaG,IAAwB,uBAAO,QAAQ,GAAkB,MAAqBF,EAAI,WAAWG,GAAOJ,CAAC,GAAG;CACnH,UAAU,GAAkB,MAAqBC,EAAI,WAAWG,GAAOJ,CAAC;CACxE,QAAQ,GAAkB,MAAqBC,EAAI,SAASG,GAAOJ,CAAC;CACpE,UAAU,GAAkB,MAAqBC,EAAI,WAAWG,GAAOJ,CAAC;CACxE,OAAO,GAAkB,MAAqBC,EAAI,QAAQG,GAAOJ,CAAC;CAClE,UAAU,MAAgBH,EAAa,MAAMQ,CAAE;CAC/C,UAAc,GAAe,MAA2G;EACtI,IAAMC,IAAU;GAACC,EAAE;GAAS,GAAI,OAAOA,EAAE,WAAY,WAAW,CAACA,EAAE,OAAO,IAAI,CAAC;GAAI,GAAI,OAAOA,EAAE,SAAU,WAAW,CAACA,EAAE,KAAK,IAAI,CAAC;EAAE;EACpI,OAAOV,EAAa,QAAQW,GAAG;GAC7B,SAAS;IAAE,OAAOD,EAAE;IAAS,MAAM;IAAW,SAAS;IAAG,MAAM,EAAE,WAAQ;GAAE;GAC5E,UAAU,OAAU;IAAE,OAAO,OAAOA,EAAE,WAAY,aAAaA,EAAE,QAAQE,CAAC,IAAIF,EAAE;IAAS,MAAM;IAAW,MAAM,EAAE,WAAQ;GAAE;GAC5H,QAAQ,OAAgB;IACtB,OAAO,OAAOA,EAAE,SAAU,aAAaA,EAAE,MAAM,CAAC,IAAIA,EAAE;IACtD,MAAM;IACN,UAAU;IACV,SAAS;IACT,MAAM,EAAE,WAAQ;GAClB;EACF,CAAC;CACH;AACF,CAAC;AAED,SAASG,EAAS,EAAE,SAAM,YAAyC;CAEjE,OADIX,MAAS,YAAkB,OAE7B,kBAAC,QAAD;EAAM,WAAWlB,EAAG,iBAAiB8B,KAAS,mBAAmBrB,EAAqB,KAAKS,EAAK,CAAC,OAAO;EACrG,UAAAA,MAAS,YAAY,kBAACb,GAAD,EAAS,MAAK,KAAM,CAAA,IAAI,kBAACF,GAAD;GAAM,MAAMQ,EAAKO;GAAO,MAAK;EAAM,CAAA;CAC7E,CAAA;AAEV;AAEA,IAAMa,IAAU,uHACVC,IACJ,0LACIC,IACJ,4MACIC,KAAU,GAAiB,MAAoBC,IAAQ,UAAUC,IAAS,SAAS;AAEzF,SAASC,EAAa,GAAkB,GAAwB;CAC9D,IAAMC,IAAMC,EAAuB,IAAI,GACjC,CAACT,GAAOU,KAAYC,EAAS,EAAK;CAKxC,OAJAC,QAAsB;EACpB,IAAMC,IAAKL,EAAI;EACf,AAAIK,KAAIH,EAASG,EAAG,gBAAgB,WAAW,iBAAiBA,CAAE,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC;CAC1F,GAAG,CAACpB,GAAOqB,CAAW,CAAC,GAChB,CAACN,GAAKR,CAAK;AACpB;AAWA,IAAae,IAA+B,kBAA8C,SACxF,EAAE,UAAO,WAAW,UAAO,gBAAa,WAAQ,aAAU,cAAcC,KACxE,GACA;CACA,IAAM,CAACC,GAASjB,KAASO,EAAad,GAAOqB,CAAW,GAClDI,IAAI9C,EAAU;CACpB,OACE,kBAAC,OAAD;EAAU;EAAK,MAAK;EAAS,WAAU;EAAgC,GAAKgB,MAAS,WAAWkB,IAAS,EAAE,cAAc,GAAG,IAAI,CAAC;EAC/H,UAAA,kBAAC,OAAD;GACE,KAAKW;GACL,WAAW/C,EAAG+B,GAASD,IAAQ,kBAAkB,gBAAgBZ,MAAS,YAAY,UAAU,SAASgB,EAAO,CAAC,CAACE,GAAQ,CAAC,CAACa,CAAQ,CAAC;GAFvI,UAAA;IAIE,kBAACpB,GAAD;KAAgB;KAAa;IAAQ,CAAA;IACrC,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACGN,GACAqB,KAAe,kBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CAAuD,KAAEA,CAAkB;KACvF,CAAA,CAAA;;IACLR,KACC,kBAAC,UAAD;KAAQ,MAAK;KAAS,WAAWJ;KAC9B,UAAAI;IACK,CAAA;IAETa,KACC,kBAAC,UAAD;KAAQ,MAAK;KAAS,cAAYD,EAAE,iBAAiB,SAAS;KAAG,WAAWf;KAAO,GAAKa,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC;KACzH,UAAA,kBAAC3C,GAAD;MAAM,MAAMN;MAAqB,MAAK;KAAM,CAAA;IACtC,CAAA;GAEP;;CACF,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAa,cAAc;AAItE,SAASsD,EAAU,EAAE,SAAM,UAAO,UAAO,mBAAyG;CAChJ,IAAMH,IAAI9C,EAAU,GACdgB,IAASkC,EAAK,QAAiB,WAC/B3B,IAAW2B,EAAK,MAAgC,SAChD,CAACd,GAAKR,KAASO,EAAae,EAAK,OAAOA,EAAK,WAAW,GACxDnC,IAAQmC,EAAK,YAAY,KAAKlC,MAAS;CAQ7C,OAPAwB,QAAsB;EACpB,IAAMC,IAAKL,EAAI;EACf,IAAIe,MAAU,KAAK,CAACV,GAAI;EACxB,IAAMW,UAAeC,EAAa,KAAK,MAAMZ,EAAG,WAAW,CAAC;EAE5D,OADAW,EAAO,GACAlD,EAAc,CAACuC,CAAE,GAAGW,CAAM;CACnC,GAAG;EAACD;EAAOE;EAAcjB;CAAG,CAAC,GAE3B,kBAACxC,EAAU,MAAX;EACE,OAAOsD;EACP,gBAAgB;GAAC;GAAQ;GAAQ;EAAO;EACxC,WAAU;EACV,GAAKnC,IAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;EACrC,GAAKoC,IAAQ,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;EAC1C,GAAKA,KAASG,IAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;EAErD,UAAA,kBAAC,OAAD;GACO;GACL,WAAWxD,EACT,mBACA+B,GACAD,IAAQ,kBAAkB,gBAC1BZ,MAAS,YAAY,UAAU,SAC/BgB,EAAO,CAAC,CAACkB,EAAK,aAAanC,CAAK,CAClC;GAEA,UAAA,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAACY,GAAD;MAAgB;MAAa;KAAQ,CAAA;KACrC,kBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CACGJ,IACC,kBAACnB,GAAD;OAAmB;OAAS,OAAM;OAChC,UAAA,kBAACR,EAAU,OAAX,EAAiB,QAAQ,kBAAC,QAAD,CAAO,CAAA,EAAI,CAAA;MAC5B,CAAA,IAEV,kBAACA,EAAU,OAAX,EAAiB,QAAQ,kBAAC,QAAD,CAAO,CAAA,EAAI,CAAA,GAErCsD,EAAK,eACJ,kBAAArD,GAAA,EAAA,UAAA,CACG,KACD,kBAACD,EAAU,aAAX;OAAuB,QAAQ,kBAAC,QAAD,CAAO,CAAA;OAAG,WAAU;MAAwC,CAAA,CAC3F,EAAA,CAAA,CAEA;;KACLsD,EAAK,eAAe,kBAACtD,EAAU,QAAX,EAAkB,WAAWkC,EAAS,CAAA;KAC1Df,KACC,kBAACnB,EAAU,OAAX;MAAiB,cAAYkD,EAAE,iBAAiB,SAAS;MAAG,WAAWf;MACrE,UAAA,kBAAC9B,GAAD;OAAM,MAAMN;OAAqB,MAAK;MAAM,CAAA;KAC7B,CAAA;IAEhB;;EACF,CAAA;CACS,CAAA;AAEpB;AAEA,SAAS4D,EAAK,EAAE,UAAO,kBAAoE;CACzF,IAAM,EAAE,cAAW3D,EAAU,gBAAgB,GACvC4D,IAAOC,EAAO,QAAQ,MAASP,EAAK,qBAAqB,QAAQ,GACjE,CAACQ,GAAYC,KAAiBpB,EAAS,CAAC,GACxCO,IAAI9C,EAAU;CACpB,OACE,kBAACJ,EAAU,QAAX;EAAkB,WAAWG,EAAmB;EAC9C,UAAA,kBAACH,EAAU,UAAX;GACE,KAAKgE;GACL,cAAYd,EAAE,uBAAuB,eAAe;GACpD,WAAU;GACV,OAAO,EAAG,mBAA8BY,IAAa,GAAGA,EAAW,MAAM,OAAO;GAE/E,UAAAD,EAAO,KAAK,MACX,kBAACR,GAAD;IAA+B;IAAM,OAAO,KAAK,IAAI,GAAGO,EAAK,QAAQN,CAAI,CAAC;IAAU;IAAO,cAAcS;GAAgB,GAAzGT,EAAK,EAAoG,CAC1H;EACiB,CAAA;CACJ,CAAA;AAEtB;AAOA,IAAaW,IAA0B,kBAAyC,SAAiB,EAAE,WAAQ,GAAG,aAAU,OAAQ,GAAK;CACnI,OACE,kBAACjE,EAAU,UAAX;EAAkC;EAAqB;EAAgB;EACrE,UAAA,kBAAC2D,GAAD;GAAa;GAAO,aAAanB;EAAM,CAAA;CACrB,CAAA;AAExB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc;AAEjE,IAAa0B,IAAwB,uBAAO,OAC1B,kBAAyC,SAAe,GAAO,GAAK;CAClF,OAAO,kBAACD,GAAD;EAAc;EAAK,GAAIE;CAAQ,CAAA;AACxC,CAAC,GACD,EAAE,KAAK3C,EAAM,CACf;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc"}
|
package/dist/components/toc.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../chunks/cn-
|
|
2
|
+
import { t as e } from "../chunks/cn-BjnOAUrA.js";
|
|
3
3
|
import { i as t } from "../chunks/context-BELWW79w.js";
|
|
4
4
|
import { forwardRef as n, useEffect as r, useState as i } from "react";
|
|
5
5
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
@@ -20,10 +20,16 @@ var d = /* @__PURE__ */ n(function({ items: n, title: c, active: d, className: f
|
|
|
20
20
|
if (!t) return;
|
|
21
21
|
let r = u(t), i = 0, a = () => {
|
|
22
22
|
i = 0;
|
|
23
|
-
let n =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
let n = r === document.scrollingElement || r === document.documentElement ? {
|
|
24
|
+
top: 0,
|
|
25
|
+
height: window.innerHeight
|
|
26
|
+
} : {
|
|
27
|
+
top: r.getBoundingClientRect().top,
|
|
28
|
+
height: r.clientHeight
|
|
29
|
+
}, a = n.top + n.height * l, o = t.id;
|
|
30
|
+
for (let t of e) t.getBoundingClientRect().top <= a && (o = t.id);
|
|
31
|
+
let s = r.scrollTop > 0 && r.scrollTop + r.clientHeight >= r.scrollHeight - 2;
|
|
32
|
+
_(s ? e.at(-1)?.id ?? o : o);
|
|
27
33
|
}, o = () => {
|
|
28
34
|
i ||= requestAnimationFrame(a);
|
|
29
35
|
};
|
|
@@ -43,14 +49,14 @@ var d = /* @__PURE__ */ n(function({ items: n, title: c, active: d, className: f
|
|
|
43
49
|
className: "mb-8 text-caption font-medium text-fg-secondary",
|
|
44
50
|
children: h
|
|
45
51
|
}), /* @__PURE__ */ a("ul", {
|
|
46
|
-
className: "flex flex-col
|
|
52
|
+
className: "relative flex flex-col before:absolute before:inset-y-0 before:start-0 before:w-1 before:bg-line-subtle before:forced-line",
|
|
47
53
|
children: n.map((t) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ o("a", {
|
|
48
54
|
href: `#${t.id}`,
|
|
49
55
|
"aria-current": t.id === v ? "location" : void 0,
|
|
50
|
-
className: e("relative flex min-h-
|
|
56
|
+
className: e("relative ms-4 flex min-h-32 items-center rounded-pill py-4 pe-8 text-small transition-control focus-ring-inset coarse:min-h-44", t.depth ? "ps-20" : "ps-8", s.state[t.id === v ? "active" : "default"].classes),
|
|
51
57
|
children: [t.id === v && /* @__PURE__ */ a("span", {
|
|
52
58
|
"aria-hidden": !0,
|
|
53
|
-
className: "absolute inset-y-
|
|
59
|
+
className: "absolute inset-y-6 -start-4 w-2 rounded-pill bg-ink forced-line"
|
|
54
60
|
}), t.label]
|
|
55
61
|
}) }, t.id))
|
|
56
62
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc.js","names":["cn","useUiText","KAESO_TABLE_OF_CONTENTS_VARIANTS","KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS","READING_LINE","scrollParent","parent","el","TableOfContents","titleProp","t","title","seen","setSeen","useState","items","active","headings","i","first","scroller","frame","pick","line","id","h","end","schedule","current","className"],"sources":["../../src/components/toc/toc.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TABLE_OF_CONTENTS_VARIANTS = {\n state: {\n default: { classes: \"text-fg-secondary hover:text-fg\" },\n active: { classes: \"text-fg\" },\n },\n} as const;\nexport const KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS = { state: \"default\" } as const;\n\nexport interface TocItem {\n id: string;\n label: string;\n depth?: 0 | 1 | undefined;\n}\n\nexport interface TableOfContentsProps {\n items: TocItem[];\n title?: string | undefined;\n active?: string | undefined;\n className?: string | undefined;\n}\n\nconst READING_LINE = 0.3;\n\nfunction scrollParent(el: HTMLElement): Element {\n for (let parent = el.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll)/.test(getComputedStyle(parent).overflowY) && parent.scrollHeight > parent.clientHeight) return parent;\n }\n return document.scrollingElement ?? document.documentElement;\n}\n\nexport const TableOfContents = /* @__PURE__ */ forwardRef<HTMLElement, TableOfContentsProps>(function TableOfContents({ items, title: titleProp, active, className }, ref) {\n const t = useUiText();\n const title = titleProp ?? t(\"tableOfContents.title\", \"On this page\");\n const [seen, setSeen] = useState(items[0]?.id);\n useEffect(() => {\n if (active !== undefined) return;\n const headings = items.map((i) => document.getElementById(i.id)).filter((el): el is HTMLElement => el !== null);\n const first = headings[0];\n if (!first) return;\n const scroller = scrollParent(first);\n let frame = 0;\n const pick = () => {\n frame = 0;\n const
|
|
1
|
+
{"version":3,"file":"toc.js","names":["cn","useUiText","KAESO_TABLE_OF_CONTENTS_VARIANTS","KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS","READING_LINE","scrollParent","parent","el","TableOfContents","titleProp","t","title","seen","setSeen","useState","items","active","headings","i","first","scroller","frame","pick","view","line","id","h","end","schedule","current","className"],"sources":["../../src/components/toc/toc.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TABLE_OF_CONTENTS_VARIANTS = {\n state: {\n default: { classes: \"text-fg-secondary hover:text-fg\" },\n active: { classes: \"text-fg\" },\n },\n} as const;\nexport const KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS = { state: \"default\" } as const;\n\nexport interface TocItem {\n id: string;\n label: string;\n depth?: 0 | 1 | undefined;\n}\n\nexport interface TableOfContentsProps {\n items: TocItem[];\n title?: string | undefined;\n active?: string | undefined;\n className?: string | undefined;\n}\n\nconst READING_LINE = 0.3;\n\nfunction scrollParent(el: HTMLElement): Element {\n for (let parent = el.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll)/.test(getComputedStyle(parent).overflowY) && parent.scrollHeight > parent.clientHeight) return parent;\n }\n return document.scrollingElement ?? document.documentElement;\n}\n\nexport const TableOfContents = /* @__PURE__ */ forwardRef<HTMLElement, TableOfContentsProps>(function TableOfContents({ items, title: titleProp, active, className }, ref) {\n const t = useUiText();\n const title = titleProp ?? t(\"tableOfContents.title\", \"On this page\");\n const [seen, setSeen] = useState(items[0]?.id);\n useEffect(() => {\n if (active !== undefined) return;\n const headings = items.map((i) => document.getElementById(i.id)).filter((el): el is HTMLElement => el !== null);\n const first = headings[0];\n if (!first) return;\n const scroller = scrollParent(first);\n let frame = 0;\n const pick = () => {\n frame = 0;\n const page = scroller === document.scrollingElement || scroller === document.documentElement;\n const view = page ? { top: 0, height: window.innerHeight } : { top: scroller.getBoundingClientRect().top, height: scroller.clientHeight };\n const line = view.top + view.height * READING_LINE;\n let id = first.id;\n for (const h of headings) if (h.getBoundingClientRect().top <= line) id = h.id;\n const end = scroller.scrollTop > 0 && scroller.scrollTop + scroller.clientHeight >= scroller.scrollHeight - 2;\n setSeen(end ? (headings.at(-1)?.id ?? id) : id);\n };\n const schedule = () => {\n frame ||= requestAnimationFrame(pick);\n };\n pick();\n document.addEventListener(\"scroll\", schedule, { capture: true, passive: true });\n window.addEventListener(\"resize\", schedule);\n return () => {\n cancelAnimationFrame(frame);\n document.removeEventListener(\"scroll\", schedule, { capture: true });\n window.removeEventListener(\"resize\", schedule);\n };\n }, [items, active]);\n const current = active ?? seen;\n return (\n <nav ref={ref} aria-label={title} className={cn(\"flex flex-col\", className)}>\n <span className=\"mb-8 text-caption font-medium text-fg-secondary\">{title}</span>\n <ul className=\"relative flex flex-col before:absolute before:inset-y-0 before:start-0 before:w-1 before:bg-line-subtle before:forced-line\">\n {items.map((i) => (\n <li key={i.id}>\n <a\n href={`#${i.id}`}\n aria-current={i.id === current ? \"location\" : undefined}\n className={cn(\n \"relative ms-4 flex min-h-32 items-center rounded-pill py-4 pe-8 text-small transition-control focus-ring-inset coarse:min-h-44\",\n i.depth ? \"ps-20\" : \"ps-8\",\n KAESO_TABLE_OF_CONTENTS_VARIANTS.state[i.id === current ? \"active\" : \"default\"].classes,\n )}\n >\n {i.id === current && <span aria-hidden className=\"absolute inset-y-6 -start-4 w-2 rounded-pill bg-ink forced-line\" />}\n {i.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TableOfContents.displayName = \"TableOfContents\";\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { t as KAESO_TOOLBAR_DEFAULT_VARIANTS, n as KAESO_TOOLBAR_VARIANTS, r as Toolbar } from "../chunks/toolbar-
|
|
2
|
+
export { t as KAESO_TOOLBAR_DEFAULT_VARIANTS, n as KAESO_TOOLBAR_VARIANTS, r as Toolbar } from "../chunks/toolbar-u0Gm7Q7-.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { i as e, n as t, r as n, t as r } from "../chunks/tooltip-
|
|
2
|
+
import { i as e, n as t, r as n, t as r } from "../chunks/tooltip-Tkm-urbi.js";
|
|
3
3
|
import { jsx as i } from "react/jsx-runtime";
|
|
4
4
|
import { Tooltip as a } from "@base-ui/react/tooltip";
|
|
5
5
|
//#region src/components/tooltip/tooltip-provider.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../chunks/cn-
|
|
2
|
+
import { t as e } from "../chunks/cn-BjnOAUrA.js";
|
|
3
3
|
import { forwardRef as t } from "react";
|
|
4
4
|
import { jsx as n } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/visually-hidden/visually-hidden.tsx
|
package/dist/i18n-provider.js
CHANGED
|
@@ -22,7 +22,7 @@ function s(e) {
|
|
|
22
22
|
}
|
|
23
23
|
async function c(e) {
|
|
24
24
|
let t = s(e);
|
|
25
|
-
return t === "de" ? (await import("./chunks/de-
|
|
25
|
+
return t === "de" ? (await import("./chunks/de-CqC4aSIV.js")).default : t === "zh-CN" ? (await import("./chunks/zh-CN-BlpsT6d_.js")).default : {};
|
|
26
26
|
}
|
|
27
27
|
//#endregion
|
|
28
28
|
export { o as LocaleProvider, c as loadUiMessages, s as resolveUiLocale };
|