@logicplanes/kaeso-ui 0.4.1 → 0.4.3
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/NOTICE.md +1 -1
- package/ai/component-guides.md +333 -21
- package/ai/component-registry.json +631 -32
- package/ai/component-registry.md +164 -28
- package/ai/icons.md +3 -3
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +15 -14
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +5 -5
- package/dist/blocks/resource-list.js +42 -41
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
- package/dist/chunks/{app-frame-DZPEf2NQ.js → app-frame-DogGRmsu.js} +23 -22
- package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
- package/dist/chunks/{avatar-HnvBUoe5.js → avatar-CWbdwbJv.js} +2 -2
- package/dist/chunks/{avatar-HnvBUoe5.js.map → avatar-CWbdwbJv.js.map} +1 -1
- package/dist/chunks/{badge-CM8ahjDR.js → badge-C2KtxCLB.js} +2 -2
- package/dist/chunks/{badge-CM8ahjDR.js.map → badge-C2KtxCLB.js.map} +1 -1
- package/dist/chunks/{banner-CvYgPwCc.js → banner-BA2ALw9M.js} +4 -4
- package/dist/chunks/{banner-CvYgPwCc.js.map → banner-BA2ALw9M.js.map} +1 -1
- package/dist/chunks/{button-9q66Ta23.js → button-CzuxqawA.js} +8 -8
- package/dist/chunks/{button-9q66Ta23.js.map → button-CzuxqawA.js.map} +1 -1
- package/dist/chunks/{calendar-CeNcqLFd.js → calendar-BWaf2MXc.js} +58 -42
- package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
- package/dist/chunks/{checkbox-C_DrNA2N.js → checkbox-CQjwCPkc.js} +12 -10
- package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
- package/dist/chunks/{cn-Isw2DnQX.js → cn-Dj6sRgkF.js} +8 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
- package/dist/chunks/{code-block-mEH6Sy3h.js → code-block-D5A-CGXG.js} +75 -54
- package/dist/chunks/code-block-D5A-CGXG.js.map +1 -0
- package/dist/chunks/{code-Bp2p9AuD.js → code-tqj0uhBL.js} +2 -2
- package/dist/chunks/{code-Bp2p9AuD.js.map → code-tqj0uhBL.js.map} +1 -1
- package/dist/chunks/{collapsible-CtQNJn9b.js → collapsible-CKrCX_T9.js} +3 -3
- package/dist/chunks/{collapsible-CtQNJn9b.js.map → collapsible-CKrCX_T9.js.map} +1 -1
- package/dist/chunks/combobox-DjDI7SUC.js +319 -0
- package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
- package/dist/chunks/{command-list-CzMbdtJs.js → command-list-C2Y7V_lt.js} +54 -54
- package/dist/chunks/command-list-C2Y7V_lt.js.map +1 -0
- package/dist/chunks/{copy-button-Cdea0wKl.js → copy-button-FJvPJn72.js} +5 -5
- package/dist/chunks/{copy-button-Cdea0wKl.js.map → copy-button-FJvPJn72.js.map} +1 -1
- package/dist/chunks/{core-FtMDNELx.js → core-BYns5ytV.js} +146 -140
- package/dist/chunks/core-BYns5ytV.js.map +1 -0
- package/dist/chunks/{date-popup-NytWvSNh.js → date-popup-CPA_zt6o.js} +4 -4
- package/dist/chunks/{date-popup-NytWvSNh.js.map → date-popup-CPA_zt6o.js.map} +1 -1
- package/dist/chunks/{de-BnNQtBSV.js → de-CPXJh9cq.js} +3 -1
- package/dist/chunks/de-CPXJh9cq.js.map +1 -0
- package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
- package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
- package/dist/chunks/{empty-By1qTJr6.js → empty-DvhyMXQq.js} +2 -2
- package/dist/chunks/{empty-By1qTJr6.js.map → empty-DvhyMXQq.js.map} +1 -1
- package/dist/chunks/{field-DfITT6Jm.js → field-TviMvYa2.js} +2 -2
- package/dist/chunks/{field-DfITT6Jm.js.map → field-TviMvYa2.js.map} +1 -1
- package/dist/chunks/{icon-D5uD_mnL.js → icon-D7ja-_Yk.js} +2 -2
- package/dist/chunks/{icon-D5uD_mnL.js.map → icon-D7ja-_Yk.js.map} +1 -1
- package/dist/chunks/icon-DVooQfk4.js +94 -0
- package/dist/chunks/icon-DVooQfk4.js.map +1 -0
- package/dist/chunks/{icon-button-C7Du4pvb.js → icon-button-CrdF_eMG.js} +3 -3
- package/dist/chunks/{icon-button-C7Du4pvb.js.map → icon-button-CrdF_eMG.js.map} +1 -1
- package/dist/chunks/{identity-BcVQd-7H.js → identity-BmhQ6BQ-.js} +18 -18
- package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
- package/dist/chunks/{input-B6Docqrk.js → input-2VJuj_M4.js} +13 -8
- package/dist/chunks/input-2VJuj_M4.js.map +1 -0
- package/dist/chunks/{input-group-Dgdb0JpZ.js → input-group-DQ_4DoXg.js} +4 -4
- package/dist/chunks/{input-group-Dgdb0JpZ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
- package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
- package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
- package/dist/chunks/{iso-field-SOZ7Z-yE.js → iso-field-B2rTwiBo.js} +2 -2
- package/dist/chunks/{iso-field-SOZ7Z-yE.js.map → iso-field-B2rTwiBo.js.map} +1 -1
- package/dist/chunks/{json-view-DCTMY_j4.js → json-view-Dqd2TDkc.js} +3 -3
- package/dist/chunks/{json-view-DCTMY_j4.js.map → json-view-Dqd2TDkc.js.map} +1 -1
- package/dist/chunks/{kbd-9A9rX60U.js → kbd-BF1vKXJf.js} +2 -2
- package/dist/chunks/{kbd-9A9rX60U.js.map → kbd-BF1vKXJf.js.map} +1 -1
- package/dist/chunks/{link-CtII7u3h.js → link-KWI7PevW.js} +4 -4
- package/dist/chunks/{link-CtII7u3h.js.map → link-KWI7PevW.js.map} +1 -1
- package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
- package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
- package/dist/chunks/{list-CMXBTVkI.js → list-M1csq-d4.js} +21 -19
- package/dist/chunks/{list-CMXBTVkI.js.map → list-M1csq-d4.js.map} +1 -1
- package/dist/chunks/{loader-DqOUwS1j.js → loader-DCfPndXa.js} +2 -2
- package/dist/chunks/{loader-DqOUwS1j.js.map → loader-DCfPndXa.js.map} +1 -1
- package/dist/chunks/{markdown-CwVQ0niB.js → markdown-DULktoTK.js} +9 -9
- package/dist/chunks/{markdown-CwVQ0niB.js.map → markdown-DULktoTK.js.map} +1 -1
- package/dist/chunks/{menu-Cjg4RggA.js → menu-DEmBfdPm.js} +32 -29
- package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
- package/dist/chunks/{meter-VrC2J2GF.js → meter-Bj4N3Xuh.js} +2 -2
- package/dist/chunks/{meter-VrC2J2GF.js.map → meter-Bj4N3Xuh.js.map} +1 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
- package/dist/chunks/{nav-wordmark-CjWM3NYa.js → nav-wordmark-_pjheAsZ.js} +2 -2
- package/dist/chunks/{nav-wordmark-CjWM3NYa.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
- package/dist/chunks/{page-header-CZCQVHYE.js → page-header-DL2y2iZp.js} +4 -4
- package/dist/chunks/{page-header-CZCQVHYE.js.map → page-header-DL2y2iZp.js.map} +1 -1
- package/dist/chunks/{pagination-BStrMDqM.js → pagination-Cn_qF4cg.js} +4 -4
- package/dist/chunks/{pagination-BStrMDqM.js.map → pagination-Cn_qF4cg.js.map} +1 -1
- package/dist/chunks/{picker-popover-BerQAEBT.js → picker-popover-BxyU1U9F.js} +17 -16
- package/dist/chunks/{picker-popover-BerQAEBT.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
- package/dist/chunks/{popover-CgLt_4yG.js → popover-DNN4S47w.js} +3 -3
- package/dist/chunks/{popover-CgLt_4yG.js.map → popover-DNN4S47w.js.map} +1 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
- package/dist/chunks/{radio-07Muf4cX.js → radio-CDDFpdtL.js} +5 -5
- package/dist/chunks/{radio-07Muf4cX.js.map → radio-CDDFpdtL.js.map} +1 -1
- package/dist/chunks/{range-popup-BCov1iPe.js → range-popup-CRyWYUB1.js} +6 -6
- package/dist/chunks/{range-popup-BCov1iPe.js.map → range-popup-CRyWYUB1.js.map} +1 -1
- package/dist/chunks/{release-art-69WpgVik.js → release-art-ZwfFQImt.js} +2 -2
- package/dist/chunks/{release-art-69WpgVik.js.map → release-art-ZwfFQImt.js.map} +1 -1
- package/dist/chunks/{rights-UVngOX_4.js → rights-Cyp0Pzp-.js} +9 -9
- package/dist/chunks/{rights-UVngOX_4.js.map → rights-Cyp0Pzp-.js.map} +1 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js +42 -0
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +1 -0
- package/dist/chunks/{section-Bvg0EUnr.js → section-Ce1efbsP.js} +3 -3
- package/dist/chunks/{section-Bvg0EUnr.js.map → section-Ce1efbsP.js.map} +1 -1
- package/dist/chunks/{segmented-DRLDN8EW.js → segmented-CErcoxwi.js} +4 -4
- package/dist/chunks/{segmented-DRLDN8EW.js.map → segmented-CErcoxwi.js.map} +1 -1
- package/dist/chunks/{select-eFTHLeYG.js → select-x4XVsdCI.js} +4 -4
- package/dist/chunks/{select-eFTHLeYG.js.map → select-x4XVsdCI.js.map} +1 -1
- package/dist/chunks/{separator-D86IW7Ge.js → separator-D7TzNHmX.js} +2 -2
- package/dist/chunks/{separator-D86IW7Ge.js.map → separator-D7TzNHmX.js.map} +1 -1
- package/dist/chunks/{sidebar-DifJ5KgE.js → sidebar-3r1ZRXlN.js} +255 -237
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
- package/dist/chunks/{sidebar-menu-XKOiwrQp.js → sidebar-menu-BN3jkTlK.js} +2 -2
- package/dist/chunks/{sidebar-menu-XKOiwrQp.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
- package/dist/chunks/{skeleton-Cu74kGJA.js → skeleton-Dcz57Zyp.js} +2 -2
- package/dist/chunks/{skeleton-Cu74kGJA.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
- package/dist/chunks/{slider-Dh0qq1wa.js → slider-Ci83PGtj.js} +2 -2
- package/dist/chunks/{slider-Dh0qq1wa.js.map → slider-Ci83PGtj.js.map} +1 -1
- package/dist/chunks/{status-dot-u4Izk-uC.js → status-dot-QJTF0Yv4.js} +3 -3
- package/dist/chunks/{status-dot-u4Izk-uC.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
- package/dist/chunks/{swap-text-CC77iKJF.js → swap-text-Dr0Irxz6.js} +2 -2
- package/dist/chunks/{swap-text-CC77iKJF.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
- package/dist/chunks/{switch-CbU9m9gi.js → switch-BNMq_kGt.js} +3 -3
- package/dist/chunks/{switch-CbU9m9gi.js.map → switch-BNMq_kGt.js.map} +1 -1
- package/dist/chunks/table-BeOSKl_3.js +84 -0
- package/dist/chunks/table-BeOSKl_3.js.map +1 -0
- package/dist/chunks/{tag-CqSk8F7M.js → tag-D_M1s2qS.js} +4 -4
- package/dist/chunks/{tag-CqSk8F7M.js.map → tag-D_M1s2qS.js.map} +1 -1
- package/dist/chunks/{text-hFc6TDp9.js → text-CIXH8rmT.js} +3 -3
- package/dist/chunks/{text-hFc6TDp9.js.map → text-CIXH8rmT.js.map} +1 -1
- package/dist/chunks/{textarea-17Ftvph_.js → textarea--4FRL3Pb.js} +5 -5
- package/dist/chunks/{textarea-17Ftvph_.js.map → textarea--4FRL3Pb.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
- package/dist/chunks/{timeseries-CbnSFD5q.js → timeseries-D1xjRXfk.js} +3 -3
- package/dist/chunks/{timeseries-CbnSFD5q.js.map → timeseries-D1xjRXfk.js.map} +1 -1
- package/dist/chunks/{toolbar-B_960Ttx.js → toolbar-WA_oZgu-.js} +6 -5
- package/dist/chunks/{toolbar-B_960Ttx.js.map → toolbar-WA_oZgu-.js.map} +1 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
- package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
- package/dist/chunks/{tooltip-root-Dssjjp-E.js → tooltip-root-DzahJDVj.js} +4 -4
- package/dist/chunks/{tooltip-root-Dssjjp-E.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
- package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
- package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
- package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
- package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
- package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-29X4CDLE.js} +3 -1
- package/dist/chunks/zh-CN-29X4CDLE.js.map +1 -0
- package/dist/components/agent-avatar.js +2 -0
- 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 +4 -4
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +2 -2
- package/dist/components/charts/donut.js +2 -2
- package/dist/components/charts/gauge.js +2 -2
- package/dist/components/charts/heatmap.js +1 -1
- package/dist/components/charts/sankey.js +2 -2
- package/dist/components/charts/sparkline.js +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 +2 -2
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -84
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +193 -189
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +9 -7
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +125 -91
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +52 -49
- 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 +60 -0
- package/dist/components/figure.js.map +1 -0
- package/dist/components/filter-chip.js +5 -5
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +2 -2
- package/dist/components/flow.js +2 -2
- 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 +51 -51
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +8 -8
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +5 -5
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +12 -12
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +264 -96
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layout.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +2 -2
- 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 +32 -31
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +13 -12
- package/dist/components/popover.js.map +1 -1
- package/dist/components/qr-code.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +1 -1
- package/dist/components/scroll-area.js +1 -41
- 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 +10 -10
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +3 -3
- 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 +3 -3
- 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 +24 -24
- 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 +33 -30
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +41 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/timeline.js +1 -1
- package/dist/components/toast.js +100 -91
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +37 -22
- 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/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +99 -95
- package/dist/kaeso.css +3 -0
- package/dist/styles.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
- package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
- package/dist/types/component-docs.d.ts +1 -1
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
- package/dist/types/components/agent-avatar/docs.d.ts +19 -0
- package/dist/types/components/agent-avatar/index.d.ts +3 -0
- package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
- package/dist/types/components/agent-avatar/models.d.ts +4 -0
- package/dist/types/components/app-frame/app-frame.d.ts +3 -8
- package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
- package/dist/types/components/calendar/calendar.d.ts +1 -4
- package/dist/types/components/charts/core.d.ts +11 -18
- package/dist/types/components/checkbox/checkbox.d.ts +2 -0
- package/dist/types/components/code-block/code-block.d.ts +1 -1
- package/dist/types/components/code-block/indent.d.ts +3 -0
- package/dist/types/components/combobox/combobox.d.ts +26 -2
- package/dist/types/components/command-list/command-list.d.ts +1 -0
- package/dist/types/components/command-list/docs.d.ts +1 -0
- package/dist/types/components/command-list/picker-popover.d.ts +1 -4
- package/dist/types/components/command-palette/command-palette.d.ts +2 -4
- package/dist/types/components/command-palette/docs.d.ts +1 -0
- package/dist/types/components/data-table/data-table.d.ts +2 -1
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +7 -9
- package/dist/types/components/dialog/docs.d.ts +2 -0
- package/dist/types/components/dialog/scope.d.ts +2 -0
- package/dist/types/components/dialog/step-dialog.d.ts +38 -5
- package/dist/types/components/display-options/display-options.d.ts +2 -5
- package/dist/types/components/figure/docs.d.ts +12 -0
- package/dist/types/components/figure/figure.d.ts +25 -0
- package/dist/types/components/figure/index.d.ts +1 -0
- package/dist/types/components/input/input.d.ts +23 -0
- package/dist/types/components/kaeso/client-button.d.ts +17 -0
- package/dist/types/components/kaeso/docs.d.ts +18 -0
- package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
- package/dist/types/components/kaeso/identity.d.ts +2 -0
- package/dist/types/components/kaeso/index.d.ts +2 -0
- package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
- package/dist/types/components/kaeso/usage.d.ts +2 -0
- package/dist/types/components/list/list.d.ts +4 -8
- package/dist/types/components/menu/docs.d.ts +8 -1
- package/dist/types/components/menu/menu.d.ts +19 -31
- package/dist/types/components/playground/parameter-panel.d.ts +1 -4
- package/dist/types/components/popover/hover-card.d.ts +2 -0
- package/dist/types/components/radio/docs.d.ts +15 -0
- package/dist/types/components/radio/radio.d.ts +2 -4
- package/dist/types/components/settings/settings.d.ts +2 -0
- package/dist/types/components/sidebar/sidebar.d.ts +13 -35
- package/dist/types/components/table/docs.d.ts +3 -1
- package/dist/types/components/table/table.d.ts +18 -1
- package/dist/types/components/tabs/tabs.d.ts +15 -0
- package/dist/types/components/theme-menu/docs.d.ts +2 -0
- package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
- package/dist/types/components/thumbnail/docs.d.ts +10 -0
- package/dist/types/components/thumbnail/index.d.ts +1 -0
- package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
- package/dist/types/components/toast/toast.d.ts +5 -12
- package/dist/types/components/toolbar/toolbar.d.ts +1 -6
- package/dist/types/components/tooltip/tooltip.d.ts +2 -4
- package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
- package/dist/types/format/index.d.ts +5 -5
- package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
- package/dist/types/icons/groups.d.ts +2 -2
- package/dist/types/icons/vocabulary.d.ts +15 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/utils/cn.d.ts +4 -0
- package/dist/types/utils/inset.d.ts +4 -0
- package/dist/types/utils/link-provider.d.ts +1 -1
- package/dist/types/utils/merge-refs.d.ts +3 -0
- package/dist/types/utils/portal-context.d.ts +1 -1
- package/dist/utils.js +4 -4
- package/foundations/shape.md +1 -1
- package/package.json +3 -3
- package/dist/chunks/app-frame-DZPEf2NQ.js.map +0 -1
- package/dist/chunks/calendar-CeNcqLFd.js.map +0 -1
- package/dist/chunks/checkbox-C_DrNA2N.js.map +0 -1
- package/dist/chunks/cn-Isw2DnQX.js.map +0 -1
- package/dist/chunks/code-block-mEH6Sy3h.js.map +0 -1
- package/dist/chunks/combobox-D8ZOm8uT.js +0 -314
- package/dist/chunks/combobox-D8ZOm8uT.js.map +0 -1
- package/dist/chunks/command-list-CzMbdtJs.js.map +0 -1
- package/dist/chunks/core-FtMDNELx.js.map +0 -1
- package/dist/chunks/de-BnNQtBSV.js.map +0 -1
- package/dist/chunks/dialog-BZCVFmGF.js +0 -353
- package/dist/chunks/dialog-BZCVFmGF.js.map +0 -1
- package/dist/chunks/icon-CBzvyEqC.js +0 -91
- package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
- package/dist/chunks/identity-BcVQd-7H.js.map +0 -1
- package/dist/chunks/input-B6Docqrk.js.map +0 -1
- package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
- package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
- package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
- package/dist/chunks/menu-Cjg4RggA.js.map +0 -1
- package/dist/chunks/nav-sheet-Y2Ite-iF.js +0 -60
- package/dist/chunks/nav-sheet-Y2Ite-iF.js.map +0 -1
- package/dist/chunks/sidebar-DifJ5KgE.js.map +0 -1
- package/dist/chunks/table-CTxDp7zC.js +0 -67
- package/dist/chunks/table-CTxDp7zC.js.map +0 -1
- package/dist/chunks/tooltip-CRApbLF6.js +0 -151
- package/dist/chunks/tooltip-CRApbLF6.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
- package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
package/dist/components/toast.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../chunks/cn-
|
|
2
|
+
import { t as e } from "../chunks/cn-Dj6sRgkF.js";
|
|
3
3
|
import { r as t } from "../chunks/portal-context-BBbzDKmY.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-D7ja-_Yk.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-
|
|
9
|
-
import {
|
|
10
|
-
import { Fragment as
|
|
11
|
-
import { Alert02Icon as
|
|
12
|
-
import { Toast as
|
|
7
|
+
import { r as a } from "../chunks/loader-DCfPndXa.js";
|
|
8
|
+
import { r as o } from "../chunks/swap-text-Dr0Irxz6.js";
|
|
9
|
+
import { forwardRef as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
|
|
10
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
11
|
+
import { Alert02Icon as m, AlertCircleIcon as h, Cancel01Icon as g, CheckmarkCircle02Icon as _, InformationCircleIcon as v } from "@hugeicons/core-free-icons";
|
|
12
|
+
import { Toast as y } from "@base-ui/react/toast";
|
|
13
13
|
//#region src/components/toast/toast.tsx
|
|
14
|
-
var
|
|
14
|
+
var b = { tone: {
|
|
15
15
|
neutral: { classes: "" },
|
|
16
16
|
success: { classes: "text-success" },
|
|
17
17
|
error: { classes: "text-danger" },
|
|
18
18
|
warning: { classes: "text-warning" },
|
|
19
19
|
info: { classes: "text-info" },
|
|
20
20
|
loading: { classes: "text-toast-fg-secondary" }
|
|
21
|
-
} },
|
|
22
|
-
success:
|
|
23
|
-
error:
|
|
24
|
-
warning:
|
|
25
|
-
info:
|
|
26
|
-
},
|
|
27
|
-
function
|
|
28
|
-
return
|
|
21
|
+
} }, x = { tone: "neutral" }, S = {
|
|
22
|
+
success: _,
|
|
23
|
+
error: h,
|
|
24
|
+
warning: m,
|
|
25
|
+
info: v
|
|
26
|
+
}, C = /* @__PURE__ */ y.createToastManager();
|
|
27
|
+
function w(e, t, n = {}) {
|
|
28
|
+
return C.add({
|
|
29
29
|
title: t,
|
|
30
30
|
type: e,
|
|
31
31
|
...n.description === void 0 ? {} : { description: n.description },
|
|
@@ -38,19 +38,19 @@ function C(e, t, n = {}) {
|
|
|
38
38
|
} } : {}
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
var
|
|
42
|
-
success: (e, t) =>
|
|
43
|
-
error: (e, t) =>
|
|
44
|
-
warning: (e, t) =>
|
|
45
|
-
info: (e, t) =>
|
|
46
|
-
dismiss: (e) =>
|
|
41
|
+
var T = /* @__PURE__ */ Object.assign((e, t) => w("neutral", e, t), {
|
|
42
|
+
success: (e, t) => w("success", e, t),
|
|
43
|
+
error: (e, t) => w("error", e, t),
|
|
44
|
+
warning: (e, t) => w("warning", e, t),
|
|
45
|
+
info: (e, t) => w("info", e, t),
|
|
46
|
+
dismiss: (e) => C.close(e),
|
|
47
47
|
promise: (e, t) => {
|
|
48
48
|
let n = [
|
|
49
49
|
t.loading,
|
|
50
50
|
...typeof t.success == "string" ? [t.success] : [],
|
|
51
51
|
...typeof t.error == "string" ? [t.error] : []
|
|
52
52
|
];
|
|
53
|
-
return
|
|
53
|
+
return C.promise(e, {
|
|
54
54
|
loading: {
|
|
55
55
|
title: t.loading,
|
|
56
56
|
type: "loading",
|
|
@@ -71,63 +71,64 @@ var w = /* @__PURE__ */ Object.assign((e, t) => C("neutral", e, t), {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
|
-
function
|
|
75
|
-
return t === "neutral" ? null : /* @__PURE__ */
|
|
76
|
-
className: e("flex shrink-0",
|
|
77
|
-
children: t === "loading" ? /* @__PURE__ */
|
|
78
|
-
icon:
|
|
74
|
+
function E({ tone: t }) {
|
|
75
|
+
return t === "neutral" ? null : /* @__PURE__ */ f("span", {
|
|
76
|
+
className: e("flex shrink-0", b.tone[t].classes),
|
|
77
|
+
children: t === "loading" ? /* @__PURE__ */ f(a, { size: "sm" }) : /* @__PURE__ */ f(r, {
|
|
78
|
+
icon: S[t],
|
|
79
79
|
size: "sm"
|
|
80
80
|
})
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
|
-
var
|
|
84
|
-
function
|
|
85
|
-
let n =
|
|
86
|
-
return
|
|
83
|
+
var D = "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", O = "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", k = "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";
|
|
84
|
+
function A(e, t) {
|
|
85
|
+
let n = l(null), [r, i] = u(!1);
|
|
86
|
+
return c(() => {
|
|
87
87
|
let e = n.current;
|
|
88
88
|
e && i(e.offsetHeight > 46);
|
|
89
89
|
}, [e, t]), [n, r];
|
|
90
90
|
}
|
|
91
|
-
|
|
92
|
-
let [
|
|
93
|
-
return /* @__PURE__ */
|
|
91
|
+
var j = /* @__PURE__ */ s(function({ tone: t = "neutral", title: i, description: a, action: o, closable: s, "data-force": c }, l) {
|
|
92
|
+
let [u, d] = A(i, a), m = n();
|
|
93
|
+
return /* @__PURE__ */ p("div", {
|
|
94
|
+
ref: l,
|
|
94
95
|
role: "status",
|
|
95
96
|
className: "k-toast-static relative w-max",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
97
|
-
ref:
|
|
98
|
-
className: e(
|
|
97
|
+
children: [/* @__PURE__ */ p("div", {
|
|
98
|
+
ref: u,
|
|
99
|
+
className: e(D, d ? "rounded-toast" : "rounded-pill", t === "neutral" ? "pl-16" : "pl-14", o ? "pr-6" : "pr-16"),
|
|
99
100
|
children: [
|
|
100
|
-
/* @__PURE__ */
|
|
101
|
-
/* @__PURE__ */
|
|
101
|
+
/* @__PURE__ */ f(E, { tone: t }),
|
|
102
|
+
/* @__PURE__ */ p("span", {
|
|
102
103
|
className: "min-w-0 text-pretty",
|
|
103
|
-
children: [i, a && /* @__PURE__ */
|
|
104
|
+
children: [i, a && /* @__PURE__ */ p("span", {
|
|
104
105
|
className: "font-regular text-toast-fg-secondary",
|
|
105
106
|
children: [" ", a]
|
|
106
107
|
})]
|
|
107
108
|
}),
|
|
108
|
-
o && /* @__PURE__ */
|
|
109
|
+
o && /* @__PURE__ */ f("button", {
|
|
109
110
|
type: "button",
|
|
110
|
-
className:
|
|
111
|
+
className: O,
|
|
111
112
|
children: o
|
|
112
113
|
})
|
|
113
114
|
]
|
|
114
|
-
}), s && /* @__PURE__ */
|
|
115
|
+
}), s && /* @__PURE__ */ f("button", {
|
|
115
116
|
type: "button",
|
|
116
|
-
"aria-label":
|
|
117
|
-
className:
|
|
117
|
+
"aria-label": m("toast.dismiss", "Dismiss"),
|
|
118
|
+
className: k,
|
|
118
119
|
"data-force": c ? `visible ${c}` : "visible",
|
|
119
|
-
children: /* @__PURE__ */
|
|
120
|
-
icon:
|
|
120
|
+
children: /* @__PURE__ */ f(r, {
|
|
121
|
+
icon: g,
|
|
121
122
|
size: "xs",
|
|
122
123
|
className: "size-12"
|
|
123
124
|
})
|
|
124
125
|
})]
|
|
125
126
|
});
|
|
126
|
-
}
|
|
127
|
-
process.env.NODE_ENV !== "production" && (
|
|
128
|
-
function
|
|
129
|
-
let
|
|
130
|
-
return
|
|
127
|
+
});
|
|
128
|
+
process.env.NODE_ENV !== "production" && (j.displayName = "ToastCapsule");
|
|
129
|
+
function M({ item: t, index: a, limit: s, onFrontWidth: l }) {
|
|
130
|
+
let u = n(), m = t.type ?? "neutral", h = t.data?.reserve, [_, v] = A(t.title, t.description);
|
|
131
|
+
return c(() => {
|
|
131
132
|
let e = _.current;
|
|
132
133
|
if (a !== 0 || !e) return;
|
|
133
134
|
let t = () => l(Math.round(e.offsetWidth));
|
|
@@ -136,7 +137,7 @@ function j({ item: t, index: a, limit: c, onFrontWidth: l }) {
|
|
|
136
137
|
a,
|
|
137
138
|
l,
|
|
138
139
|
_
|
|
139
|
-
]), /* @__PURE__ */
|
|
140
|
+
]), /* @__PURE__ */ p(y.Root, {
|
|
140
141
|
toast: t,
|
|
141
142
|
swipeDirection: [
|
|
142
143
|
"down",
|
|
@@ -145,69 +146,77 @@ function j({ item: t, index: a, limit: c, onFrontWidth: l }) {
|
|
|
145
146
|
],
|
|
146
147
|
className: "k-toast outline-none",
|
|
147
148
|
...a > 0 ? { "data-behind": "" } : {},
|
|
148
|
-
...a >=
|
|
149
|
-
children: [/* @__PURE__ */
|
|
149
|
+
...a >= s ? { "data-index-hidden": "" } : {},
|
|
150
|
+
children: [/* @__PURE__ */ f("div", {
|
|
150
151
|
ref: _,
|
|
151
|
-
className: e("k-toast-surface",
|
|
152
|
-
children: /* @__PURE__ */
|
|
152
|
+
className: e("k-toast-surface", D, v ? "rounded-toast" : "rounded-pill", m === "neutral" ? "pl-16" : "pl-14", t.actionProps ? "pr-6" : "pr-16"),
|
|
153
|
+
children: /* @__PURE__ */ p("div", {
|
|
153
154
|
className: "k-toast-content flex min-w-0 items-center gap-10",
|
|
154
155
|
children: [
|
|
155
|
-
/* @__PURE__ */
|
|
156
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ f(E, { tone: m }),
|
|
157
|
+
/* @__PURE__ */ p("span", {
|
|
157
158
|
className: "min-w-0 text-pretty",
|
|
158
|
-
children: [
|
|
159
|
-
reserve:
|
|
159
|
+
children: [h ? /* @__PURE__ */ f(o, {
|
|
160
|
+
reserve: h,
|
|
160
161
|
align: "start",
|
|
161
|
-
children: /* @__PURE__ */
|
|
162
|
-
}) : /* @__PURE__ */
|
|
163
|
-
render: /* @__PURE__ */
|
|
162
|
+
children: /* @__PURE__ */ f(y.Title, { render: /* @__PURE__ */ f("span", {}) })
|
|
163
|
+
}) : /* @__PURE__ */ f(y.Title, { render: /* @__PURE__ */ f("span", {}) }), t.description && /* @__PURE__ */ p(d, { children: [" ", /* @__PURE__ */ f(y.Description, {
|
|
164
|
+
render: /* @__PURE__ */ f("span", {}),
|
|
164
165
|
className: "font-regular text-toast-fg-secondary"
|
|
165
166
|
})] })]
|
|
166
167
|
}),
|
|
167
|
-
t.actionProps && /* @__PURE__ */
|
|
168
|
+
t.actionProps && /* @__PURE__ */ f(y.Action, { className: O })
|
|
168
169
|
]
|
|
169
170
|
})
|
|
170
|
-
}), /* @__PURE__ */
|
|
171
|
-
"aria-label":
|
|
172
|
-
className:
|
|
173
|
-
children: /* @__PURE__ */
|
|
174
|
-
icon:
|
|
171
|
+
}), /* @__PURE__ */ f(y.Close, {
|
|
172
|
+
"aria-label": u("toast.dismiss", "Dismiss"),
|
|
173
|
+
className: k,
|
|
174
|
+
children: /* @__PURE__ */ f(r, {
|
|
175
|
+
icon: g,
|
|
175
176
|
size: "xs",
|
|
176
177
|
className: "size-12"
|
|
177
178
|
})
|
|
178
179
|
})]
|
|
179
180
|
});
|
|
180
181
|
}
|
|
181
|
-
function
|
|
182
|
-
let { toasts:
|
|
183
|
-
return /* @__PURE__ */
|
|
182
|
+
function N({ limit: e, viewportRef: r }) {
|
|
183
|
+
let { toasts: i } = y.useToastManager(), a = i.filter((e) => e.transitionStatus !== "ending"), [o, s] = u(0), c = n();
|
|
184
|
+
return /* @__PURE__ */ f(y.Portal, {
|
|
184
185
|
container: t(),
|
|
185
|
-
children: /* @__PURE__ */
|
|
186
|
-
|
|
186
|
+
children: /* @__PURE__ */ f(y.Viewport, {
|
|
187
|
+
ref: r,
|
|
188
|
+
"aria-label": c("toast.notifications", "Notifications"),
|
|
187
189
|
className: "fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none",
|
|
188
|
-
style: { "--k-front-width":
|
|
189
|
-
children:
|
|
190
|
+
style: { "--k-front-width": o ? `${o}px` : "auto" },
|
|
191
|
+
children: i.map((t) => /* @__PURE__ */ f(M, {
|
|
190
192
|
item: t,
|
|
191
|
-
index: Math.max(0,
|
|
193
|
+
index: Math.max(0, a.indexOf(t)),
|
|
192
194
|
limit: e,
|
|
193
|
-
onFrontWidth:
|
|
195
|
+
onFrontWidth: s
|
|
194
196
|
}, t.id))
|
|
195
197
|
})
|
|
196
198
|
});
|
|
197
199
|
}
|
|
198
|
-
|
|
199
|
-
return /* @__PURE__ */
|
|
200
|
-
toastManager:
|
|
200
|
+
var P = /* @__PURE__ */ s(function({ limit: e = 3, timeout: t = 5e3 }, n) {
|
|
201
|
+
return /* @__PURE__ */ f(y.Provider, {
|
|
202
|
+
toastManager: C,
|
|
201
203
|
limit: e,
|
|
202
204
|
timeout: t,
|
|
203
|
-
children: /* @__PURE__ */
|
|
205
|
+
children: /* @__PURE__ */ f(N, {
|
|
206
|
+
limit: e,
|
|
207
|
+
viewportRef: n
|
|
208
|
+
})
|
|
204
209
|
});
|
|
205
|
-
}
|
|
206
|
-
process.env.NODE_ENV !== "production" && (
|
|
207
|
-
var
|
|
208
|
-
return /* @__PURE__ */
|
|
209
|
-
|
|
210
|
+
});
|
|
211
|
+
process.env.NODE_ENV !== "production" && (P.displayName = "Toaster");
|
|
212
|
+
var F = /* @__PURE__ */ Object.assign(/* @__PURE__ */ s(function(e, t) {
|
|
213
|
+
return /* @__PURE__ */ f(P, {
|
|
214
|
+
ref: t,
|
|
215
|
+
...e
|
|
216
|
+
});
|
|
217
|
+
}), { add: T });
|
|
218
|
+
process.env.NODE_ENV !== "production" && (F.displayName = "Toast");
|
|
210
219
|
//#endregion
|
|
211
|
-
export {
|
|
220
|
+
export { x as KAESO_TOAST_DEFAULT_VARIANTS, b as KAESO_TOAST_VARIANTS, F as Toast, j as ToastCapsule, P as Toaster, T as toast, C as toastManager };
|
|
212
221
|
|
|
213
222
|
//# 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","t","action","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","limit","List","live","toasts","frontWidth","setFrontWidth","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type ReactNode } 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 function ToastCapsule({\n tone = \"neutral\",\n title,\n description,\n action,\n closable,\n \"data-force\": force,\n}: {\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 const [ref, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div role=\"status\" className=\"k-toast-static relative w-max\">\n <div ref={ref} 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 }: { limit: number }) {\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 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 function Toaster({ limit = 3, timeout = 5000 }: { limit?: number | undefined; timeout?: number | undefined }) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} />\n </BaseToast.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n function Toast(props: { limit?: number | undefined; timeout?: number | undefined }) {\n return <Toaster {...props} />;\n },\n { add: toast },\n);\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","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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"}
|
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-Dj6sRgkF.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";
|
|
@@ -7,33 +7,48 @@ import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
|
7
7
|
var s = { state: {
|
|
8
8
|
default: { classes: "text-fg-secondary hover:text-fg" },
|
|
9
9
|
active: { classes: "text-fg" }
|
|
10
|
-
} }, c = { state: "default" }, l =
|
|
11
|
-
|
|
10
|
+
} }, c = { state: "default" }, l = .3;
|
|
11
|
+
function u(e) {
|
|
12
|
+
for (let t = e.parentElement; t; t = t.parentElement) if (/(auto|scroll)/.test(getComputedStyle(t).overflowY) && t.scrollHeight > t.clientHeight) return t;
|
|
13
|
+
return document.scrollingElement ?? document.documentElement;
|
|
14
|
+
}
|
|
15
|
+
var d = /* @__PURE__ */ n(function({ items: n, title: c, active: d, className: f }, p) {
|
|
16
|
+
let m = t(), h = c ?? m("tableOfContents.title", "On this page"), [g, _] = i(n[0]?.id);
|
|
12
17
|
r(() => {
|
|
13
|
-
if (
|
|
14
|
-
let e =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
let n =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
if (d !== void 0) return;
|
|
19
|
+
let e = n.map((e) => document.getElementById(e.id)).filter((e) => e !== null), t = e[0];
|
|
20
|
+
if (!t) return;
|
|
21
|
+
let r = u(t), i = 0, a = () => {
|
|
22
|
+
i = 0;
|
|
23
|
+
let n = window.innerHeight * l, a = t.id;
|
|
24
|
+
for (let t of e) t.getBoundingClientRect().top <= n && (a = t.id);
|
|
25
|
+
let o = r.scrollTop > 0 && r.scrollTop + r.clientHeight >= r.scrollHeight - 2;
|
|
26
|
+
_(o ? e.at(-1)?.id ?? a : a);
|
|
27
|
+
}, o = () => {
|
|
28
|
+
i ||= requestAnimationFrame(a);
|
|
29
|
+
};
|
|
30
|
+
return a(), document.addEventListener("scroll", o, {
|
|
31
|
+
capture: !0,
|
|
32
|
+
passive: !0
|
|
33
|
+
}), window.addEventListener("resize", o), () => {
|
|
34
|
+
cancelAnimationFrame(i), document.removeEventListener("scroll", o, { capture: !0 }), window.removeEventListener("resize", o);
|
|
35
|
+
};
|
|
36
|
+
}, [n, d]);
|
|
37
|
+
let v = d ?? g;
|
|
23
38
|
return /* @__PURE__ */ o("nav", {
|
|
24
|
-
ref:
|
|
25
|
-
"aria-label":
|
|
26
|
-
className: e("flex flex-col",
|
|
39
|
+
ref: p,
|
|
40
|
+
"aria-label": h,
|
|
41
|
+
className: e("flex flex-col", f),
|
|
27
42
|
children: [/* @__PURE__ */ a("span", {
|
|
28
43
|
className: "mb-8 text-caption font-medium text-fg-secondary",
|
|
29
|
-
children:
|
|
44
|
+
children: h
|
|
30
45
|
}), /* @__PURE__ */ a("ul", {
|
|
31
46
|
className: "flex flex-col hairline-l",
|
|
32
47
|
children: n.map((t) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ o("a", {
|
|
33
48
|
href: `#${t.id}`,
|
|
34
|
-
"aria-current": t.id ===
|
|
35
|
-
className: e("relative flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code", t.depth ? "pl-24" : "pl-12", s.state[t.id ===
|
|
36
|
-
children: [t.id ===
|
|
49
|
+
"aria-current": t.id === v ? "location" : void 0,
|
|
50
|
+
className: e("relative flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code", t.depth ? "pl-24" : "pl-12", s.state[t.id === v ? "active" : "default"].classes),
|
|
51
|
+
children: [t.id === v && /* @__PURE__ */ a("span", {
|
|
37
52
|
"aria-hidden": !0,
|
|
38
53
|
className: "absolute inset-y-4 left-0 w-2 rounded-pill bg-ink"
|
|
39
54
|
}), t.label]
|
|
@@ -41,8 +56,8 @@ var s = { state: {
|
|
|
41
56
|
})]
|
|
42
57
|
});
|
|
43
58
|
});
|
|
44
|
-
process.env.NODE_ENV !== "production" && (
|
|
59
|
+
process.env.NODE_ENV !== "production" && (d.displayName = "TableOfContents");
|
|
45
60
|
//#endregion
|
|
46
|
-
export { c as KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS, s as KAESO_TABLE_OF_CONTENTS_VARIANTS,
|
|
61
|
+
export { c as KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS, s as KAESO_TABLE_OF_CONTENTS_VARIANTS, d as TableOfContents };
|
|
47
62
|
|
|
48
63
|
//# sourceMappingURL=toc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc.js","names":["cn","useUiText","KAESO_TABLE_OF_CONTENTS_VARIANTS","KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS","TableOfContents","titleProp","t","title","seen","setSeen","useState","items","active","
|
|
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 line = window.innerHeight * 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=\"flex flex-col hairline-l\">\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 flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code\",\n i.depth ? \"pl-24\" : \"pl-12\",\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-4 left-0 w-2 rounded-pill bg-ink\" />}\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":";;;;;;AAIA,IAAaE,IAAmC,EAC9C,OAAO;CACL,SAAS,EAAE,SAAS,kCAAkC;CACtD,QAAQ,EAAE,SAAS,UAAU;AAC/B,EACF,GACaC,IAA2C,EAAE,OAAO,UAAU,GAerEC,IAAe;AAErB,SAASC,EAAa,GAA0B;CAC9C,KAAK,IAAIC,IAASC,EAAG,eAAeD,GAAQ,IAASA,EAAO,eAC1D,IAAI,gBAAgB,KAAK,iBAAiBA,CAAM,CAAC,CAAC,SAAS,KAAKA,EAAO,eAAeA,EAAO,cAAc,OAAOA;CAEpH,OAAO,SAAS,oBAAoB,SAAS;AAC/C;AAEA,IAAaE,IAAkC,kBAA8C,SAAyB,EAAE,UAAO,OAAOC,GAAW,WAAQ,gBAAa,GAAK;CACzK,IAAMC,IAAIT,EAAU,GACdU,IAAQF,KAAaC,EAAE,yBAAyB,cAAc,GAC9D,CAACE,GAAMC,KAAWC,EAASC,EAAM,EAAE,EAAE,EAAE;CAC7C,QAAgB;EACd,IAAIC,MAAW,KAAA,GAAW;EAC1B,IAAMC,IAAWF,EAAM,KAAK,MAAM,SAAS,eAAeG,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,MAA0BX,MAAO,IAAI,GACxGY,IAAQF,EAAS;EACvB,IAAI,CAACE,GAAO;EACZ,IAAMC,IAAWf,EAAac,CAAK,GAC/BE,IAAQ,GACNC,UAAa;GACjB,IAAQ;GACR,IAAMC,IAAO,OAAO,cAAcnB,GAC9BoB,IAAKL,EAAM;GACf,KAAK,IAAMM,KAAKR,GAAU,AAAIQ,EAAE,sBAAsB,CAAC,CAAC,OAAOF,MAAM,IAAKE,EAAE;GAC5E,IAAMC,IAAMN,EAAS,YAAY,KAAKA,EAAS,YAAYA,EAAS,gBAAgBA,EAAS,eAAe;GAC5G,EAAQM,IAAOT,EAAS,GAAG,EAAE,CAAC,EAAE,MAAMO,IAAMA,CAAE;EAChD,GACMG,UAAiB;GACrB,MAAU,sBAAsBL,CAAI;EACtC;EAIA,OAHAA,EAAK,GACL,SAAS,iBAAiB,UAAUK,GAAU;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC,GAC9E,OAAO,iBAAiB,UAAUA,CAAQ,SAC7B;GAGX,AAFA,qBAAqBN,CAAK,GAC1B,SAAS,oBAAoB,UAAUM,GAAU,EAAE,SAAS,GAAK,CAAC,GAClE,OAAO,oBAAoB,UAAUA,CAAQ;EAC/C;CACF,GAAG,CAACZ,GAAOC,CAAM,CAAC;CAClB,IAAMY,IAAUZ,KAAUJ;CAC1B,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYD;EAAO,WAAWX,EAAG,iBAAiB6B,CAAS;EAA1E,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAAmD,UAAAlB;EAAY,CAAA,GAC/E,kBAAC,MAAD;GAAI,WAAU;GACX,UAAAI,EAAM,KAAK,MACV,kBAAC,MAAD,EAAA,UACE,kBAAC,KAAD;IACE,MAAM,IAAIG,EAAE;IACZ,gBAAcA,EAAE,OAAOU,IAAU,aAAa,KAAA;IAC9C,WAAW5B,EACT,wGACAkB,EAAE,QAAQ,UAAU,SACpBhB,EAAiC,MAAMgB,EAAE,OAAOU,IAAU,WAAW,UAAU,CAAC,OAClF;IAPF,UAAA,CASGV,EAAE,OAAOU,KAAW,kBAAC,QAAD;KAAM,eAAA;KAAY,WAAU;IAAqD,CAAA,GACrGV,EAAE,KACF;GACD,CAAA,EAAA,GAbKA,EAAE,EAaP,CACL;EACC,CAAA,CACD;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc"}
|
|
@@ -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-WA_oZgu-.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-OcwO0VUT.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-Dj6sRgkF.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
|