@logicplanes/kaeso-ui 0.4.4 → 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 +250 -98
- package/ai/component-registry.json +264 -236
- package/ai/component-registry.md +222 -218
- package/ai/icons.md +1 -1
- 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-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
- 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-D_0mmG-k.js → de-CqC4aSIV.js} +74 -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-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-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -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 +3 -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 +1 -1
- 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 +100 -100
- 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/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/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-BZIe_B9l.js +0 -334
- package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
- package/dist/chunks/code-block-DdNPHEzI.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-D_0mmG-k.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-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-BupwFOae.js +0 -313
- package/dist/chunks/markdown-BupwFOae.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-Bm6UPIbW.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/label.js.map +0 -1
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-BjnOAUrA.js";
|
|
3
|
+
import { r as t } from "./portal-context-CTatR2Z8.js";
|
|
4
|
+
import { i as n } from "./kbd-8A0ML_up.js";
|
|
5
|
+
import { n as r, t as i } from "./merge-refs-BN1FyQt9.js";
|
|
6
|
+
import { cloneElement as a, forwardRef as o, isValidElement as s, useEffect as c, useId as l, useLayoutEffect as u, useMemo as d, useReducer as f, useRef as p, useState as m, useSyncExternalStore as h } from "react";
|
|
7
|
+
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
8
|
+
import { createPortal as y } from "react-dom";
|
|
9
|
+
//#region src/utils/hidden-description.tsx
|
|
10
|
+
function b(e) {
|
|
11
|
+
let t = l();
|
|
12
|
+
return e ? {
|
|
13
|
+
id: t,
|
|
14
|
+
node: /* @__PURE__ */ _("span", {
|
|
15
|
+
id: t,
|
|
16
|
+
hidden: !0,
|
|
17
|
+
children: e
|
|
18
|
+
})
|
|
19
|
+
} : {
|
|
20
|
+
id: void 0,
|
|
21
|
+
node: null
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
var x = (...e) => e.filter(Boolean).join(" ") || void 0, S = (e) => e != null && e !== !1 && e !== !0 && (typeof e != "string" || e.trim() !== ""), C;
|
|
25
|
+
function w(e) {
|
|
26
|
+
let t = C ??= /* @__PURE__ */ new Set();
|
|
27
|
+
t.add(e);
|
|
28
|
+
let n = () => t.delete(e);
|
|
29
|
+
return e.then(n, n), e;
|
|
30
|
+
}
|
|
31
|
+
var T = /^Failed to fetch dynamically imported module: (\S+)$/, E = /\bimport\(\s*(["'`])([^"'`$]+)\1\s*\)/, D = (e) => e instanceof Error && T.test(e.message);
|
|
32
|
+
function O(e, t, n) {
|
|
33
|
+
let r = e instanceof Error ? T.exec(e.message)?.[1] : void 0, i = n?.(), a = r ?? (i ? E.exec(String(t))?.[2] : void 0);
|
|
34
|
+
return a && URL.canParse(a, i) ? new URL(a, i).href : void 0;
|
|
35
|
+
}
|
|
36
|
+
function k(e, t) {
|
|
37
|
+
let n = new URL(e);
|
|
38
|
+
return n.searchParams.set("retry", String(t)), n.href;
|
|
39
|
+
}
|
|
40
|
+
function A(e, { base: t, reimport: n = (e) => import(e) } = {}) {
|
|
41
|
+
let r, i, a = 0, o, s = () => o ? n(k(o, a)).catch((t) => D(t) ? Promise.reject(t) : e()) : e();
|
|
42
|
+
return {
|
|
43
|
+
current: () => r,
|
|
44
|
+
load: () => i ??= w(s().then((e) => r = e, (n) => {
|
|
45
|
+
throw i = void 0, a += 1, o = O(n, e, t) ?? o, n;
|
|
46
|
+
}))
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function j(e) {
|
|
50
|
+
e.load().catch(() => void 0);
|
|
51
|
+
}
|
|
52
|
+
function M(e, t, n) {
|
|
53
|
+
let [, r] = f((e) => e + 1, 0), i = p(n);
|
|
54
|
+
u(() => {
|
|
55
|
+
i.current = n;
|
|
56
|
+
});
|
|
57
|
+
let a = e.current();
|
|
58
|
+
return c(() => {
|
|
59
|
+
if (!t || a) return;
|
|
60
|
+
let n = !0;
|
|
61
|
+
return e.load().then(() => n && r(), () => n && i.current?.()), () => {
|
|
62
|
+
n = !1;
|
|
63
|
+
};
|
|
64
|
+
}, [
|
|
65
|
+
e,
|
|
66
|
+
t,
|
|
67
|
+
a
|
|
68
|
+
]), t ? a : void 0;
|
|
69
|
+
}
|
|
70
|
+
function N(e, t) {
|
|
71
|
+
let [n, r] = m(!1);
|
|
72
|
+
return [M(e, t && !n, () => r(!0)), () => r(!1)];
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/components/tooltip/trigger-props.ts
|
|
76
|
+
function P() {
|
|
77
|
+
let e = null, t = null, n, i, a = /* @__PURE__ */ new Set(), o = () => {
|
|
78
|
+
i?.(), i = t && n ? r(n, t) : void 0;
|
|
79
|
+
};
|
|
80
|
+
return {
|
|
81
|
+
get: () => e,
|
|
82
|
+
set: (t) => {
|
|
83
|
+
t?.ref !== n && (n = t?.ref, o()), e = t;
|
|
84
|
+
for (let e of a) e();
|
|
85
|
+
},
|
|
86
|
+
subscribe: (e) => (a.add(e), () => void a.delete(e)),
|
|
87
|
+
ref: (e) => {
|
|
88
|
+
t = e, o();
|
|
89
|
+
},
|
|
90
|
+
element: () => t
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function F({ store: e, merge: t, extra: n, children: r }) {
|
|
94
|
+
let o = h(e.subscribe, e.get, e.get), s = {
|
|
95
|
+
...r.props,
|
|
96
|
+
...n
|
|
97
|
+
}, c = d(() => i(s.ref, e.ref), [s.ref, e]);
|
|
98
|
+
return a(r, {
|
|
99
|
+
...o && t ? t(o, s) : n,
|
|
100
|
+
ref: c
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
process.env.NODE_ENV !== "production" && (F.displayName = "HandedTrigger");
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/components/tooltip/tooltip.tsx
|
|
106
|
+
var I = {
|
|
107
|
+
side: {
|
|
108
|
+
top: { classes: "" },
|
|
109
|
+
bottom: { classes: "" },
|
|
110
|
+
left: { classes: "" },
|
|
111
|
+
right: { classes: "" }
|
|
112
|
+
},
|
|
113
|
+
shape: {
|
|
114
|
+
pill: { classes: "rounded-pill h-28 px-12 whitespace-nowrap" },
|
|
115
|
+
multiline: { classes: "rounded-tooltip px-12 py-8 max-w-280 text-pretty wrap-anywhere" }
|
|
116
|
+
}
|
|
117
|
+
}, L = {
|
|
118
|
+
side: "top",
|
|
119
|
+
shape: "pill"
|
|
120
|
+
}, R = /* @__PURE__ */ A(() => import("./tooltip-root-BC_RNNiP.js"), { base: () => import.meta.url }), z = (e) => (e ?? "").replace(/\s+/g, " ").trim().toLowerCase();
|
|
121
|
+
function B(e) {
|
|
122
|
+
let t = e.getAttribute("aria-labelledby");
|
|
123
|
+
return t ? t.split(/\s+/).map((t) => e.ownerDocument.getElementById(t)?.textContent ?? "").join(" ") : e.getAttribute("aria-label") ?? e.textContent ?? "";
|
|
124
|
+
}
|
|
125
|
+
function V(e, t) {
|
|
126
|
+
let n = (t["aria-describedby"] ?? "").split(/\s+/).filter(Boolean);
|
|
127
|
+
return n.length ? n.map((t) => e.getElementById(t)?.textContent ?? "").join(" ") : t["aria-description"] ?? "";
|
|
128
|
+
}
|
|
129
|
+
function H(e, n, r, i) {
|
|
130
|
+
let a = l(), o = t(), s = p(null), [d, f] = m(!1), [h, g] = m(!1), v = typeof e == "string" || typeof e == "number" ? String(e) : null, b = v !== null && !i["aria-describedby"];
|
|
131
|
+
c(() => f(!0), []);
|
|
132
|
+
let { "aria-describedby": S, "aria-description": C } = i;
|
|
133
|
+
u(() => {
|
|
134
|
+
let e = n.element(), t = z(v ?? s.current?.textContent), i = !r && !!e && t !== "" && t !== z(B(e)) && !z(V(e.ownerDocument, {
|
|
135
|
+
"aria-describedby": S,
|
|
136
|
+
"aria-description": C
|
|
137
|
+
})).includes(t);
|
|
138
|
+
i !== h && g(i);
|
|
139
|
+
}, [
|
|
140
|
+
v,
|
|
141
|
+
r,
|
|
142
|
+
d,
|
|
143
|
+
e,
|
|
144
|
+
h,
|
|
145
|
+
n,
|
|
146
|
+
S,
|
|
147
|
+
C
|
|
148
|
+
]);
|
|
149
|
+
let w = d && (v === null || h && !b) && typeof document < "u" ? y(/* @__PURE__ */ _("span", {
|
|
150
|
+
ref: s,
|
|
151
|
+
id: a,
|
|
152
|
+
hidden: !0,
|
|
153
|
+
children: e
|
|
154
|
+
}), o ?? document.body) : null;
|
|
155
|
+
return h ? {
|
|
156
|
+
props: b ? { "aria-description": v } : { "aria-describedby": x(i["aria-describedby"], a) },
|
|
157
|
+
node: w
|
|
158
|
+
} : {
|
|
159
|
+
props: void 0,
|
|
160
|
+
node: w
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function U(e) {
|
|
164
|
+
let [t, n] = N(R, !0), [r] = m(P), i = s(e.children) ? e.children.props : {}, a = H(e.content, r, !!e.disabled, i);
|
|
165
|
+
if (!s(e.children)) return e.children;
|
|
166
|
+
let o = a.props, c = t ? o : {
|
|
167
|
+
...o,
|
|
168
|
+
onPointerEnter: (e) => {
|
|
169
|
+
i.onPointerEnter?.(e), n();
|
|
170
|
+
},
|
|
171
|
+
onFocus: (e) => {
|
|
172
|
+
i.onFocus?.(e), n();
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
return /* @__PURE__ */ v(g, { children: [
|
|
176
|
+
/* @__PURE__ */ _(F, {
|
|
177
|
+
store: r,
|
|
178
|
+
merge: t?.mergeTriggerProps,
|
|
179
|
+
extra: c,
|
|
180
|
+
children: e.children
|
|
181
|
+
}),
|
|
182
|
+
a.node,
|
|
183
|
+
t && /* @__PURE__ */ _(t.TooltipRoot, {
|
|
184
|
+
...e,
|
|
185
|
+
triggerProps: r
|
|
186
|
+
})
|
|
187
|
+
] });
|
|
188
|
+
}
|
|
189
|
+
process.env.NODE_ENV !== "production" && (U.displayName = "Tooltip");
|
|
190
|
+
var W = /* @__PURE__ */ o(function({ children: t, shortcut: r, shape: i = "pill" }, a) {
|
|
191
|
+
return /* @__PURE__ */ v("div", {
|
|
192
|
+
ref: a,
|
|
193
|
+
role: "tooltip",
|
|
194
|
+
className: e("inline-flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised", I.shape[i].classes),
|
|
195
|
+
children: [/* @__PURE__ */ _("span", { children: t }), r && /* @__PURE__ */ _(n, { keys: r })]
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
process.env.NODE_ENV !== "production" && (W.displayName = "TooltipSurface");
|
|
199
|
+
//#endregion
|
|
200
|
+
export { F as a, j as c, x as d, S as f, W as i, M as l, I as n, P as o, b as p, U as r, A as s, L as t, N as u };
|
|
201
|
+
|
|
202
|
+
//# sourceMappingURL=tooltip-Tkm-urbi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-Tkm-urbi.js","names":["_Fragment","cn","usePortalContainer","KbdSequence","setRef","mergeRefs","Fragment$1","useHiddenDescription","id","useId","text","joinIds","ids","showsText","node","loading","track","all","promise","settle","CHROMIUM_FAILED_FETCH","IMPORTED","downloadFailed","error","failedAddress","named","from","base","address","load","fresh","url","attempt","lazyModule","mod","pending","failures","reimport","m","preload","useLazyModule","loaded","useReducer","n","failed","useRef","onFail","useEffect","wanted","live","useLazyModuleRetried","setFailed","useState","triggerPropsStore","props","element","given","detach","listeners","attach","next","listener","HandedTrigger","useSyncExternalStore","store","own","children","extra","ref","useMemo","cloneElement","merge","KAESO_TOOLTIP_VARIANTS","KAESO_TOOLTIP_DEFAULT_VARIANTS","tooltipRoot","words","accessibleName","labelledBy","el","ownDescription","doc","useDescription","container","mounted","setMounted","describes","setDescribes","plain","content","asAttribute","describedBy","description","trigger","off","hidden","createPortal","Tooltip","retry","isValidElement","retryOnIntent","TooltipSurface","shape","shortcut"],"sources":["../../src/utils/hidden-description.tsx","../../src/utils/lazy-module.ts","../../src/components/tooltip/trigger-props.ts","../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["import { useId, type ReactNode } from \"react\";\n\ninterface HiddenDescription {\n id: string | undefined;\n node: ReactNode;\n}\n\nexport function useHiddenDescription(text: string | undefined): HiddenDescription {\n const id = useId();\n if (!text) return { id: undefined, node: null };\n return {\n id,\n node: (\n <span id={id} hidden>\n {text}\n </span>\n ),\n };\n}\n\nexport const joinIds = (...ids: (string | false | null | undefined)[]): string | undefined => ids.filter(Boolean).join(\" \") || undefined;\n\nexport const showsText = (node: ReactNode): boolean =>\n node !== undefined && node !== null && node !== false && node !== true && !(typeof node === \"string\" && node.trim() === \"\");\n","import { useEffect, useLayoutEffect, useReducer, useRef, useState } from \"react\";\n\nexport interface LazyModule<T> {\n current: () => T | undefined;\n load: () => Promise<T>;\n}\n\nlet loading: Set<Promise<unknown>> | undefined;\n\nfunction track<T>(promise: Promise<T>): Promise<T> {\n const all = (loading ??= new Set());\n all.add(promise);\n const settle = () => all.delete(promise);\n promise.then(settle, settle);\n return promise;\n}\n\nexport async function lazyModulesSettled(): Promise<void> {\n while (loading?.size) await Promise.allSettled(loading);\n}\n\nexport interface LazyModuleOptions<T> {\n base?: (() => string) | undefined;\n reimport?: ((url: string) => Promise<T>) | undefined;\n}\n\nconst CHROMIUM_FAILED_FETCH = /^Failed to fetch dynamically imported module: (\\S+)$/;\nconst IMPORTED = /\\bimport\\(\\s*([\"'`])([^\"'`$]+)\\1\\s*\\)/;\n\nconst downloadFailed = (error: unknown) => error instanceof Error && CHROMIUM_FAILED_FETCH.test(error.message);\n\nfunction failedAddress(error: unknown, load: () => unknown, base: (() => string) | undefined): string | undefined {\n const named = error instanceof Error ? CHROMIUM_FAILED_FETCH.exec(error.message)?.[1] : undefined;\n const from = base?.();\n const address = named ?? (from ? IMPORTED.exec(String(load))?.[2] : undefined);\n return address && URL.canParse(address, from) ? new URL(address, from).href : undefined;\n}\n\nfunction fresh(address: string, attempt: number): string {\n const url = new URL(address);\n url.searchParams.set(\"retry\", String(attempt));\n return url.href;\n}\n\nexport function lazyModule<T>(load: () => Promise<T>, { base, reimport = (url) => import(url) as Promise<T> }: LazyModuleOptions<T> = {}): LazyModule<T> {\n let mod: T | undefined;\n let pending: Promise<T> | undefined;\n let failures = 0;\n let address: string | undefined;\n const attempt = () =>\n address ? reimport(fresh(address, failures)).catch((error: unknown) => (downloadFailed(error) ? Promise.reject(error) : load())) : load();\n return {\n current: () => mod,\n load: () =>\n (pending ??= track(\n attempt().then(\n (m) => (mod = m),\n (error: unknown) => {\n pending = undefined;\n failures += 1;\n address = failedAddress(error, load, base) ?? address;\n throw error;\n },\n ),\n )),\n };\n}\n\nexport function preload<T>(m: LazyModule<T>): void {\n m.load().catch(() => undefined);\n}\n\nexport function useLazyModule<T>(m: LazyModule<T>, wanted: boolean, onFail?: (() => void) | undefined): T | undefined {\n const [, loaded] = useReducer((n: number) => n + 1, 0);\n const failed = useRef(onFail);\n useLayoutEffect(() => {\n failed.current = onFail;\n });\n const mod = m.current();\n useEffect(() => {\n if (!wanted || mod) return;\n let live = true;\n m.load().then(\n () => live && loaded(),\n () => live && failed.current?.(),\n );\n return () => {\n live = false;\n };\n }, [m, wanted, mod]);\n return wanted ? mod : undefined;\n}\n\nexport function useLazyModuleRetried<T>(m: LazyModule<T>, wanted: boolean): [T | undefined, () => void] {\n const [failed, setFailed] = useState(false);\n const mod = useLazyModule(m, wanted && !failed, () => setFailed(true));\n return [mod, () => setFailed(false)];\n}\n","import { cloneElement, useMemo, useSyncExternalStore, type HTMLAttributes, type ReactElement, type Ref, type RefCallback } from \"react\";\nimport { mergeRefs, setRef } from \"../../utils/merge-refs.js\";\n\nexport type TriggerProps = HTMLAttributes<Element> & { ref?: Ref<Element> | undefined };\n\nexport interface TriggerPropsStore {\n get: () => TriggerProps | null;\n set: (props: TriggerProps | null) => void;\n subscribe: (listener: () => void) => () => void;\n ref: RefCallback<Element>;\n element: () => Element | null;\n}\n\nexport function triggerPropsStore(): TriggerPropsStore {\n let props: TriggerProps | null = null;\n let element: Element | null = null;\n let given: Ref<Element> | undefined;\n let detach: (() => void) | undefined;\n const listeners = new Set<() => void>();\n const attach = () => {\n detach?.();\n detach = element && given ? setRef(given, element) : undefined;\n };\n return {\n get: () => props,\n set: (next) => {\n if (next?.ref !== given) {\n given = next?.ref;\n attach();\n }\n props = next;\n for (const listener of listeners) listener();\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => void listeners.delete(listener);\n },\n ref: (node) => {\n element = node;\n attach();\n },\n element: () => element,\n };\n}\n\nexport function HandedTrigger({\n store,\n merge,\n extra,\n children,\n}: {\n store: TriggerPropsStore;\n merge: ((given: TriggerProps, own: object) => object) | undefined;\n extra?: object | undefined;\n children: ReactElement;\n}) {\n const given = useSyncExternalStore(store.subscribe, store.get, store.get);\n const own = { ...(children.props as object), ...extra } as { ref?: Ref<Element> | undefined };\n const ref = useMemo(() => mergeRefs(own.ref, store.ref), [own.ref, store]);\n return cloneElement(children as ReactElement<{ ref?: Ref<Element> | undefined }>, { ...(given && merge ? merge(given, own) : extra), ref });\n}\nif (process.env.NODE_ENV !== \"production\") HandedTrigger.displayName = \"HandedTrigger\";\n","import {\n forwardRef,\n isValidElement,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type FocusEvent,\n type PointerEvent,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { joinIds } from \"../../utils/hidden-description.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { lazyModule, useLazyModuleRetried } from \"../../utils/lazy-module.js\";\nimport { HandedTrigger, triggerPropsStore, type TriggerPropsStore } from \"./trigger-props.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\n\nexport const KAESO_TOOLTIP_VARIANTS = {\n side: {\n top: { classes: \"\" },\n bottom: { classes: \"\" },\n left: { classes: \"\" },\n right: { classes: \"\" },\n },\n shape: {\n pill: {\n classes: \"rounded-pill h-28 px-12 whitespace-nowrap\",\n },\n multiline: {\n classes: \"rounded-tooltip px-12 py-8 max-w-280 text-pretty wrap-anywhere\",\n },\n },\n} as const;\nexport const KAESO_TOOLTIP_DEFAULT_VARIANTS = { side: \"top\", shape: \"pill\" } as const;\n\nexport interface TooltipProps {\n content: ReactNode;\n shortcut?: string[] | string[][] | undefined;\n children: ReactElement;\n side?: keyof typeof KAESO_TOOLTIP_VARIANTS.side | undefined;\n shape?: keyof typeof KAESO_TOOLTIP_VARIANTS.shape | undefined;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n disabled?: boolean | undefined;\n delay?: number | undefined;\n sideOffset?: number | undefined;\n}\n\nconst tooltipRoot = /* @__PURE__ */ lazyModule(() => import(\"./tooltip-root.js\"), { base: () => import.meta.url });\n\nconst words = (text: string | null | undefined) => (text ?? \"\").replace(/\\s+/g, \" \").trim().toLowerCase();\n\nfunction accessibleName(el: Element): string {\n const labelledBy = el.getAttribute(\"aria-labelledby\");\n if (labelledBy)\n return labelledBy\n .split(/\\s+/)\n .map((id) => el.ownerDocument.getElementById(id)?.textContent ?? \"\")\n .join(\" \");\n return el.getAttribute(\"aria-label\") ?? el.textContent ?? \"\";\n}\n\ninterface OwnDescription {\n \"aria-describedby\"?: string | undefined;\n \"aria-description\"?: string | undefined;\n}\n\nfunction ownDescription(doc: Document, own: OwnDescription): string {\n const ids = (own[\"aria-describedby\"] ?? \"\").split(/\\s+/).filter(Boolean);\n if (!ids.length) return own[\"aria-description\"] ?? \"\";\n return ids.map((id) => doc.getElementById(id)?.textContent ?? \"\").join(\" \");\n}\n\nfunction useDescription(content: ReactNode, store: TriggerPropsStore, off: boolean, own: OwnDescription) {\n const id = useId();\n const container = usePortalContainer();\n const node = useRef<HTMLSpanElement>(null);\n const [mounted, setMounted] = useState(false);\n const [describes, setDescribes] = useState(false);\n const plain = typeof content === \"string\" || typeof content === \"number\" ? String(content) : null;\n // aria-describedby overrides aria-description, so only a trigger without its own describedby can take plain text as an attribute.\n const asAttribute = plain !== null && !own[\"aria-describedby\"];\n useEffect(() => setMounted(true), []);\n const { \"aria-describedby\": describedBy, \"aria-description\": description } = own;\n useLayoutEffect(() => {\n const trigger = store.element();\n const text = words(plain ?? node.current?.textContent);\n const next =\n !off &&\n !!trigger &&\n text !== \"\" &&\n text !== words(accessibleName(trigger)) &&\n !words(ownDescription(trigger.ownerDocument, { \"aria-describedby\": describedBy, \"aria-description\": description })).includes(text);\n if (next !== describes) setDescribes(next);\n }, [plain, off, mounted, content, describes, store, describedBy, description]);\n const hidden =\n mounted && (plain === null || (describes && !asAttribute)) && typeof document !== \"undefined\"\n ? createPortal(\n <span ref={node} id={id} hidden>\n {content}\n </span>,\n container ?? document.body,\n )\n : null;\n if (!describes) return { props: undefined, node: hidden };\n return { props: asAttribute ? { \"aria-description\": plain } : { \"aria-describedby\": joinIds(own[\"aria-describedby\"], id) }, node: hidden };\n}\n\nexport function Tooltip(props: TooltipProps) {\n const [mod, retry] = useLazyModuleRetried(tooltipRoot, true);\n const [store] = useState(triggerPropsStore);\n const own = (isValidElement(props.children) ? props.children.props : {}) as OwnDescription & {\n onPointerEnter?: ((e: PointerEvent<Element>) => void) | undefined;\n onFocus?: ((e: FocusEvent<Element>) => void) | undefined;\n };\n const description = useDescription(props.content, store, !!props.disabled, own);\n if (!isValidElement(props.children)) return props.children;\n const describedBy = description.props;\n const retryOnIntent = mod\n ? describedBy\n : {\n ...describedBy,\n onPointerEnter: (e: PointerEvent<Element>) => {\n own.onPointerEnter?.(e);\n retry();\n },\n onFocus: (e: FocusEvent<Element>) => {\n own.onFocus?.(e);\n retry();\n },\n };\n return (\n <>\n <HandedTrigger store={store} merge={mod?.mergeTriggerProps} extra={retryOnIntent}>\n {props.children}\n </HandedTrigger>\n {description.node}\n {mod && <mod.TooltipRoot {...props} triggerProps={store} />}\n </>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Tooltip.displayName = \"Tooltip\";\n\nexport interface TooltipSurfaceProps {\n children: ReactNode;\n shortcut?: string[] | string[][] | undefined;\n shape?: keyof typeof KAESO_TOOLTIP_VARIANTS.shape | undefined;\n}\n\nexport const TooltipSurface = /* @__PURE__ */ forwardRef<HTMLDivElement, TooltipSurfaceProps>(function TooltipSurface({ children, shortcut, shape = \"pill\" }, ref) {\n return (\n <div\n ref={ref}\n role=\"tooltip\"\n className={cn(\"inline-flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised\", KAESO_TOOLTIP_VARIANTS.shape[shape].classes)}\n >\n <span>{children}</span>\n {shortcut && <KbdSequence keys={shortcut} />}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TooltipSurface.displayName = \"TooltipSurface\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-BjnOAUrA.js";
|
|
3
|
+
import { n as t, r as n } from "./portal-context-CTatR2Z8.js";
|
|
4
|
+
import { i as r } from "./kbd-8A0ML_up.js";
|
|
5
|
+
import { n as i, t as a } from "./tooltip-Tkm-urbi.js";
|
|
6
|
+
import { t as o } from "./observe-resize-DhxhmoyB.js";
|
|
7
|
+
import { useLayoutEffect as s, useRef as c, useState as l } from "react";
|
|
8
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
9
|
+
import { Tooltip as f } from "@base-ui/react/tooltip";
|
|
10
|
+
import { mergeProps as p } from "@base-ui/react/merge-props";
|
|
11
|
+
//#region src/components/tooltip/tooltip-root.tsx
|
|
12
|
+
var m = "z-70 flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised popup-motion";
|
|
13
|
+
function h({ content: e, shortcut: i, triggerProps: o, side: s = a.side, shape: c = a.shape, open: l, defaultOpen: p, onOpenChange: m, disabled: h, delay: _, sideOffset: y = 8 }) {
|
|
14
|
+
return /* @__PURE__ */ d(f.Root, {
|
|
15
|
+
...l === void 0 ? {} : { open: l },
|
|
16
|
+
...p === void 0 ? {} : { defaultOpen: p },
|
|
17
|
+
...m ? { onOpenChange: (e) => m(e) } : {},
|
|
18
|
+
...h === void 0 ? {} : { disabled: h },
|
|
19
|
+
children: [/* @__PURE__ */ u(f.Trigger, {
|
|
20
|
+
render: (e) => /* @__PURE__ */ u(g, {
|
|
21
|
+
store: o,
|
|
22
|
+
props: e
|
|
23
|
+
}),
|
|
24
|
+
..._ === void 0 ? {} : { delay: _ }
|
|
25
|
+
}), /* @__PURE__ */ u(f.Portal, {
|
|
26
|
+
container: n(),
|
|
27
|
+
children: /* @__PURE__ */ u(f.Positioner, {
|
|
28
|
+
positionMethod: "fixed",
|
|
29
|
+
collisionBoundary: t(),
|
|
30
|
+
side: s,
|
|
31
|
+
sideOffset: y,
|
|
32
|
+
collisionPadding: 8,
|
|
33
|
+
children: /* @__PURE__ */ d(v, {
|
|
34
|
+
shape: c,
|
|
35
|
+
children: [/* @__PURE__ */ u("span", { children: e }), i && /* @__PURE__ */ u(r, { keys: i })]
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
})]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
process.env.NODE_ENV !== "production" && (h.displayName = "Tooltip.Root");
|
|
42
|
+
function g({ store: e, props: t }) {
|
|
43
|
+
return s(() => e.set(t)), s(() => () => e.set(null), [e]), null;
|
|
44
|
+
}
|
|
45
|
+
process.env.NODE_ENV !== "production" && (g.displayName = "Tooltip.HandOver");
|
|
46
|
+
function _(e, t) {
|
|
47
|
+
let { ref: n, ...r } = e;
|
|
48
|
+
return p(r, t);
|
|
49
|
+
}
|
|
50
|
+
function v({ shape: t, children: n }) {
|
|
51
|
+
let r = c(null), [a, d] = l(!1);
|
|
52
|
+
return s(() => {
|
|
53
|
+
let e = r.current;
|
|
54
|
+
if (t !== "pill" || a || !e) return;
|
|
55
|
+
let n = () => {
|
|
56
|
+
e.scrollWidth > e.clientWidth + 1 && d(!0);
|
|
57
|
+
};
|
|
58
|
+
return n(), o([e], n);
|
|
59
|
+
}, [t, a]), /* @__PURE__ */ u(f.Popup, {
|
|
60
|
+
ref: r,
|
|
61
|
+
role: "tooltip",
|
|
62
|
+
className: e(m, i.shape[a ? "multiline" : t].classes),
|
|
63
|
+
style: { maxWidth: a || t === "multiline" ? "min(var(--k-width-tooltip), var(--available-width))" : "var(--available-width)" },
|
|
64
|
+
children: n
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { h as TooltipRoot, _ as mergeTriggerProps };
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=tooltip-root-BC_RNNiP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-root-BC_RNNiP.js","names":["BaseTooltip","cn","pageBoundary","usePortalContainer","KbdSequence","KAESO_TOOLTIP_VARIANTS","KAESO_TOOLTIP_DEFAULT_VARIANTS","observeResize","popupClasses","TooltipRoot","Tooltip","open","defaultOpen","onOpenChange","o","disabled","HandOver","triggerProps","delay","TooltipPopup","content","shortcut","useLayoutEffect","store","props","mergeTriggerProps","_ref","given","mergeProps","own","ref","useRef","wraps","setWraps","useState","el","shape","check"],"sources":["../../src/components/tooltip/tooltip-root.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { KAESO_TOOLTIP_DEFAULT_VARIANTS, KAESO_TOOLTIP_VARIANTS, type TooltipProps } from \"./tooltip.js\";\nimport type { TriggerProps, TriggerPropsStore } from \"./trigger-props.js\";\n\nconst popupClasses = \"z-70 flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised popup-motion\";\n\nexport function TooltipRoot({\n content,\n shortcut,\n triggerProps,\n side = KAESO_TOOLTIP_DEFAULT_VARIANTS.side,\n shape = KAESO_TOOLTIP_DEFAULT_VARIANTS.shape,\n open,\n defaultOpen,\n onOpenChange,\n disabled,\n delay,\n sideOffset = 8,\n}: TooltipProps & { triggerProps: TriggerPropsStore }) {\n return (\n <BaseTooltip.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n >\n <BaseTooltip.Trigger render={(props) => <HandOver store={triggerProps} props={props} />} {...(delay !== undefined ? { delay } : {})} />\n <BaseTooltip.Portal container={usePortalContainer()}>\n <BaseTooltip.Positioner positionMethod=\"fixed\" collisionBoundary={pageBoundary()} side={side} sideOffset={sideOffset} collisionPadding={8}>\n <TooltipPopup shape={shape}>\n <span>{content}</span>\n {shortcut && <KbdSequence keys={shortcut} />}\n </TooltipPopup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n </BaseTooltip.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") TooltipRoot.displayName = \"Tooltip.Root\";\n\nfunction HandOver({ store, props }: { store: TriggerPropsStore; props: TriggerProps }) {\n useLayoutEffect(() => store.set(props));\n useLayoutEffect(() => () => store.set(null), [store]);\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") HandOver.displayName = \"Tooltip.HandOver\";\n\nexport function mergeTriggerProps(given: TriggerProps, own: object): object {\n const { ref: _ref, ...props } = given;\n return mergeProps<\"button\">(props, own);\n}\n\nfunction TooltipPopup({ shape, children }: { shape: keyof typeof KAESO_TOOLTIP_VARIANTS.shape; children: ReactNode }) {\n const ref = useRef<HTMLDivElement>(null);\n const [wraps, setWraps] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (shape !== \"pill\" || wraps || !el) return;\n const check = () => {\n if (el.scrollWidth > el.clientWidth + 1) setWraps(true);\n };\n check();\n return observeResize([el], check);\n }, [shape, wraps]);\n return (\n <BaseTooltip.Popup\n ref={ref}\n role=\"tooltip\"\n className={cn(popupClasses, KAESO_TOOLTIP_VARIANTS.shape[wraps ? \"multiline\" : shape].classes)}\n style={{ maxWidth: wraps || shape === \"multiline\" ? \"min(var(--k-width-tooltip), var(--available-width))\" : \"var(--available-width)\" }}\n >\n {children}\n </BaseTooltip.Popup>\n );\n}\n"],"mappings":";;;;;;;;;;;AAUA,IAAMQ,IAAe;AAErB,SAAgBC,EAAY,EAC1B,YACA,aACA,iBACA,UAAOH,EAA+B,MACtC,WAAQA,EAA+B,OACvC,SACA,gBACA,iBACA,aACA,UACA,gBAAa,KACwC;CACrD,OACE,kBAACN,EAAY,MAAb;EACE,GAAKW,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKC,MAAgB,KAAA,IAA8B,CAAC,IAAnB,EAAE,eAAY;EAC/C,GAAKC,IAAe,EAAE,eAAe,MAAeA,EAAaC,CAAC,EAAE,IAAI,CAAC;EACzE,GAAKC,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;EAJ3C,UAAA,CAME,kBAACf,EAAY,SAAb;GAAqB,SAAS,MAAU,kBAACgB,GAAD;IAAU,OAAOC;IAAqB;GAAQ,CAAA;GAAG,GAAKC,MAAU,KAAA,IAAwB,CAAC,IAAb,EAAE,SAAM;EAAU,CAAA,GACtI,kBAAClB,EAAY,QAAb;GAAoB,WAAWG,EAAmB;GAChD,UAAA,kBAACH,EAAY,YAAb;IAAwB,gBAAe;IAAQ,mBAAmBE,EAAa;IAAS;IAAkB;IAAY,kBAAkB;IACtI,UAAA,kBAACiB,GAAD;KAAqB;KAArB,UAAA,CACE,kBAAC,QAAD,EAAA,UAAOC,EAAc,CAAA,GACpBC,KAAY,kBAACjB,GAAD,EAAa,MAAMiB,EAAW,CAAA,CAC/B;;GACQ,CAAA;EACN,CAAA,CACJ;;AAEtB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,SAASL,EAAS,EAAE,UAAO,YAA4D;CAGrF,OAFAM,QAAsBC,EAAM,IAAIC,CAAK,CAAC,GACtCF,cAA4BC,EAAM,IAAI,IAAI,GAAG,CAACA,CAAK,CAAC,GAC7C;AACT;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc;AAElE,SAAgBE,EAAkB,GAAqB,GAAqB;CAC1E,IAAM,EAAE,KAAKC,GAAM,GAAGF,MAAUG;CAChC,OAAOC,EAAqBJ,GAAOK,CAAG;AACxC;AAEA,SAASV,EAAa,EAAE,UAAO,eAAuF;CACpH,IAAMW,IAAMC,EAAuB,IAAI,GACjC,CAACC,GAAOC,KAAYC,EAAS,EAAK;CAUxC,OATAZ,QAAsB;EACpB,IAAMa,IAAKL,EAAI;EACf,IAAIM,MAAU,UAAUJ,KAAS,CAACG,GAAI;EACtC,IAAME,UAAc;GAClB,AAAIF,EAAG,cAAcA,EAAG,cAAc,KAAGF,EAAS,EAAI;EACxD;EAEA,OADAI,EAAM,GACC9B,EAAc,CAAC4B,CAAE,GAAGE,CAAK;CAClC,GAAG,CAACD,GAAOJ,CAAK,CAAC,GAEf,kBAAChC,EAAY,OAAb;EACO;EACL,MAAK;EACL,WAAWC,EAAGO,GAAcH,EAAuB,MAAM2B,IAAQ,cAAcI,EAAM,CAAC,OAAO;EAC7F,OAAO,EAAE,UAAUJ,KAASI,MAAU,cAAc,wDAAwD,yBAAyB;EAEpI;CACgB,CAAA;AAEvB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./cn-BjnOAUrA.js";
|
|
3
|
+
import { r as t } from "./tooltip-Tkm-urbi.js";
|
|
4
|
+
import { t as n } from "./merge-refs-BN1FyQt9.js";
|
|
5
|
+
import { t as r } from "./use-truncated-CW0hByYt.js";
|
|
6
|
+
import { forwardRef as i, useLayoutEffect as a, useRef as o, useState as s } from "react";
|
|
7
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/text/truncated.tsx
|
|
9
|
+
var l = "a[href], button, input, select, textarea, [tabindex]", u = /* @__PURE__ */ i(function({ children: i, className: u, wrap: d = !1, ...f }, p) {
|
|
10
|
+
let m = o(null), h = r(m, !d), [g, _] = s(""), [v, y] = s(!1);
|
|
11
|
+
a(() => {
|
|
12
|
+
let e = m.current;
|
|
13
|
+
h && e && (_(typeof i == "string" ? i : (e.textContent ?? "").trim()), y(!!e.querySelector(l)));
|
|
14
|
+
}, [h, i]);
|
|
15
|
+
let b = /* @__PURE__ */ c("span", {
|
|
16
|
+
...f,
|
|
17
|
+
ref: n(p, m),
|
|
18
|
+
className: e(d ? "text-pretty" : "truncate", h && g && !v && "rounded-code focus-ring", u),
|
|
19
|
+
...h && g && !v ? { tabIndex: 0 } : {},
|
|
20
|
+
children: i
|
|
21
|
+
});
|
|
22
|
+
return /* @__PURE__ */ c(t, {
|
|
23
|
+
content: g,
|
|
24
|
+
shape: "multiline",
|
|
25
|
+
disabled: !(h && g),
|
|
26
|
+
children: b
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
process.env.NODE_ENV !== "production" && (u.displayName = "TruncatedText");
|
|
30
|
+
//#endregion
|
|
31
|
+
export { u as t };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=truncated-d1afmUJT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncated-d1afmUJT.js","names":["cn","Tooltip","mergeRefs","useTruncated","FOCUSABLE","TruncatedText","props","inner","useRef","cut","wrap","full","setFull","useState","nested","setNested","el","children","ref","className"],"sources":["../../src/components/text/truncated.tsx"],"sourcesContent":["import { forwardRef, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nconst FOCUSABLE = \"a[href], button, input, select, textarea, [tabindex]\";\n\nexport interface TruncatedTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n children: ReactNode;\n className?: string | undefined;\n wrap?: boolean | undefined;\n}\n\nexport const TruncatedText = /* @__PURE__ */ forwardRef<HTMLSpanElement, TruncatedTextProps>(function TruncatedText({ children, className, wrap = false, ...props }, ref) {\n const inner = useRef<HTMLSpanElement | null>(null);\n const cut = useTruncated(inner, !wrap);\n const [full, setFull] = useState(\"\");\n const [nested, setNested] = useState(false);\n useLayoutEffect(() => {\n const el = inner.current;\n if (!cut || !el) return;\n setFull(typeof children === \"string\" ? children : (el.textContent ?? \"\").trim());\n setNested(!!el.querySelector(FOCUSABLE));\n }, [cut, children]);\n const el = (\n <span\n {...props}\n ref={mergeRefs(ref, inner)}\n className={cn(wrap ? \"text-pretty\" : \"truncate\", cut && full && !nested && \"rounded-code focus-ring\", className)}\n {...(cut && full && !nested ? { tabIndex: 0 } : {})}\n >\n {children}\n </span>\n );\n return (\n <Tooltip content={full} shape=\"multiline\" disabled={!(cut && full)}>\n {el}\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TruncatedText.displayName = \"TruncatedText\";\n"],"mappings":";;;;;;;;AAMA,IAAMI,IAAY,wDAQLC,IAAgC,kBAAgD,SAAuB,EAAE,aAAU,cAAW,UAAO,IAAO,GAAGC,KAAS,GAAK;CACxK,IAAMC,IAAQC,EAA+B,IAAI,GAC3CC,IAAMN,EAAaI,GAAO,CAACG,CAAI,GAC/B,CAACC,GAAMC,KAAWC,EAAS,EAAE,GAC7B,CAACC,GAAQC,KAAaF,EAAS,EAAK;CAC1C,QAAsB;EACpB,IAAMG,IAAKT,EAAM;EACjB,AAAKE,KAAQO,MACbJ,EAAQ,OAAOK,KAAa,WAAWA,KAAYD,EAAG,eAAe,GAAA,CAAI,KAAK,CAAC,GAC/ED,EAAU,CAAC,CAACC,EAAG,cAAcZ,CAAS,CAAC;CACzC,GAAG,CAACK,GAAKQ,CAAQ,CAAC;CAClB,IAAMD,IACJ,kBAAC,QAAD;EACE,GAAIV;EACJ,KAAKJ,EAAUgB,GAAKX,CAAK;EACzB,WAAWP,EAAGU,IAAO,gBAAgB,YAAYD,KAAOE,KAAQ,CAACG,KAAU,2BAA2BK,CAAS;EAC/G,GAAKV,KAAOE,KAAQ,CAACG,IAAS,EAAE,UAAU,EAAE,IAAI,CAAC;EAEhD;CACG,CAAA;CAER,OACE,kBAACb,GAAD;EAAS,SAASU;EAAM,OAAM;EAAY,UAAU,EAAEF,KAAOE;EAC1D,UAAAK;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSyncExternalStore as e } from "react";
|
|
3
|
+
//#region src/hooks/scroll-parent.ts
|
|
4
|
+
function t(e) {
|
|
5
|
+
let t = e?.parentElement ?? null;
|
|
6
|
+
for (; t;) {
|
|
7
|
+
let e = getComputedStyle(t);
|
|
8
|
+
if (/(auto|scroll|overlay)/.test(e.overflowY) && t.scrollHeight > t.clientHeight) return t;
|
|
9
|
+
t = t.parentElement;
|
|
10
|
+
}
|
|
11
|
+
return document.scrollingElement ?? null;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/hooks/use-coarse-pointer.ts
|
|
15
|
+
var n = "(pointer: coarse)";
|
|
16
|
+
function r(e) {
|
|
17
|
+
if (typeof window > "u" || !window.matchMedia) return () => {};
|
|
18
|
+
let t = window.matchMedia(n);
|
|
19
|
+
return t.addEventListener("change", e), () => t.removeEventListener("change", e);
|
|
20
|
+
}
|
|
21
|
+
var i = () => typeof window < "u" && !!window.matchMedia?.(n).matches;
|
|
22
|
+
function a() {
|
|
23
|
+
return e(r, i, () => !1);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { t as n, a as t };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=use-coarse-pointer-Ml5oE6oX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-coarse-pointer-Ml5oE6oX.js","names":["scrollParent","p","el","s","COARSE","subscribe","query","onChange","coarse","useCoarsePointer","useSyncExternalStore"],"sources":["../../src/hooks/scroll-parent.ts","../../src/hooks/use-coarse-pointer.ts"],"sourcesContent":["export function scrollParent(el: HTMLElement | null): HTMLElement | null {\n let p = el?.parentElement ?? null;\n while (p) {\n const s = getComputedStyle(p);\n if (/(auto|scroll|overlay)/.test(s.overflowY) && p.scrollHeight > p.clientHeight) return p;\n p = p.parentElement;\n }\n return (document.scrollingElement as HTMLElement | null) ?? null;\n}\n","import { useSyncExternalStore } from \"react\";\n\nconst COARSE = \"(pointer: coarse)\";\n\nfunction subscribe(onChange: () => void) {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const query = window.matchMedia(COARSE);\n query.addEventListener(\"change\", onChange);\n return () => query.removeEventListener(\"change\", onChange);\n}\n\nconst coarse = () => typeof window !== \"undefined\" && !!window.matchMedia?.(COARSE).matches;\n\nexport function useCoarsePointer(): boolean {\n return useSyncExternalStore(subscribe, coarse, () => false);\n}\n"],"mappings":";;;AAAA,SAAgBA,EAAa,GAA4C;CACvE,IAAIC,IAAIC,GAAI,iBAAiB;CAC7B,OAAOD,IAAG;EACR,IAAME,IAAI,iBAAiBF,CAAC;EAC5B,IAAI,wBAAwB,KAAKE,EAAE,SAAS,KAAKF,EAAE,eAAeA,EAAE,cAAc,OAAOA;EACzF,IAAIA,EAAE;CACR;CACA,OAAQ,SAAS,oBAA2C;AAC9D;;;ACNA,IAAMG,IAAS;AAEf,SAASC,EAAU,GAAsB;CACvC,IAAI,OAAO,SAAW,OAAe,CAAC,OAAO,YAAY,aAAa,CAAC;CACvE,IAAMC,IAAQ,OAAO,WAAWF,CAAM;CAEtC,OADAE,EAAM,iBAAiB,UAAUC,CAAQ,SAC5BD,EAAM,oBAAoB,UAAUC,CAAQ;AAC3D;AAEA,IAAMC,UAAe,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,aAAaJ,CAAM,CAAC,CAAC;AAEpF,SAAgBK,IAA4B;CAC1C,OAAOC,EAAqBL,GAAWG,SAAc,EAAK;AAC5D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSyncExternalStore as e } from "react";
|
|
3
|
+
//#region src/hooks/use-hydrating.ts
|
|
4
|
+
var t = () => () => void 0, n = () => !1, r = () => !0, i = () => e(t, n, r);
|
|
5
|
+
//#endregion
|
|
6
|
+
export { i as t };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=use-hydrating-COtYVRo4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-hydrating-COtYVRo4.js","names":["noSubscription","notHydrating","isHydrating","useHydrating","useSyncExternalStore"],"sources":["../../src/hooks/use-hydrating.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\n\nconst noSubscription = () => () => undefined;\nconst notHydrating = () => false;\nconst isHydrating = () => true;\n\nexport const useHydrating = (): boolean => useSyncExternalStore(noSubscription, notHydrating, isHydrating);\n"],"mappings":";;;AAEA,IAAMA,gBAA6B,KAAA,GAC7BC,UAAqB,IACrBC,UAAoB,IAEbC,UAA8BC,EAAqBJ,GAAgBC,GAAcC,CAAW"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "./observe-resize-DhxhmoyB.js";
|
|
3
|
+
import { useEffect as t } from "react";
|
|
4
|
+
//#region src/hooks/use-scroll-fade.ts
|
|
5
|
+
function n(e, t, n) {
|
|
6
|
+
n > 0 ? e.style.setProperty(t, `${n}px`) : e.style.removeProperty(t);
|
|
7
|
+
}
|
|
8
|
+
function r(r, i, a) {
|
|
9
|
+
t(() => {
|
|
10
|
+
let t = r.current;
|
|
11
|
+
if (!t) return;
|
|
12
|
+
let a = () => {
|
|
13
|
+
let e = Math.abs(t.scrollLeft);
|
|
14
|
+
n(t, "--scroll-area-overflow-x-start", e), n(t, "--scroll-area-overflow-x-end", t.scrollWidth - t.clientWidth - e);
|
|
15
|
+
};
|
|
16
|
+
a(), t.addEventListener("scroll", a, { passive: !0 });
|
|
17
|
+
let o = t.querySelector(i), s = e(o ? [t, o] : [t], a);
|
|
18
|
+
return () => {
|
|
19
|
+
t.removeEventListener("scroll", a), s();
|
|
20
|
+
};
|
|
21
|
+
}, [
|
|
22
|
+
r,
|
|
23
|
+
i,
|
|
24
|
+
a
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { r as t };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=use-scroll-fade-uc8mWSDX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-scroll-fade-uc8mWSDX.js","names":["observeResize","setLength","px","el","name","useScrollFadeX","ref","update","start","inner","content","stop","key"],"sources":["../../src/hooks/use-scroll-fade.ts"],"sourcesContent":["import { useEffect, type RefObject } from \"react\";\nimport { observeResize } from \"../utils/observe-resize.js\";\n\nfunction setLength(el: HTMLElement, name: string, px: number) {\n if (px > 0) el.style.setProperty(name, `${px}px`);\n else el.style.removeProperty(name);\n}\n\nexport function useScrollFadeX(ref: RefObject<HTMLElement | null>, content: string, key?: unknown) {\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const update = () => {\n const start = Math.abs(el.scrollLeft);\n setLength(el, \"--scroll-area-overflow-x-start\", start);\n setLength(el, \"--scroll-area-overflow-x-end\", el.scrollWidth - el.clientWidth - start);\n };\n update();\n el.addEventListener(\"scroll\", update, { passive: true });\n const inner = el.querySelector(content);\n const stop = observeResize(inner ? [el, inner] : [el], update);\n return () => {\n el.removeEventListener(\"scroll\", update);\n stop();\n };\n }, [ref, content, key]);\n}\n"],"mappings":";;;;AAGA,SAASC,EAAU,GAAiB,GAAc,GAAY;CAC5D,AAAIC,IAAK,IAAGC,EAAG,MAAM,YAAYC,GAAM,GAAGF,EAAG,GAAG,IAC3CC,EAAG,MAAM,eAAeC,CAAI;AACnC;AAEA,SAAgBC,EAAe,GAAoC,GAAiB,GAAe;CACjG,QAAgB;EACd,IAAMF,IAAKG,EAAI;EACf,IAAI,CAACH,GAAI;EACT,IAAMI,UAAe;GACnB,IAAMC,IAAQ,KAAK,IAAIL,EAAG,UAAU;GAEpC,AADAF,EAAUE,GAAI,kCAAkCK,CAAK,GACrDP,EAAUE,GAAI,gCAAgCA,EAAG,cAAcA,EAAG,cAAcK,CAAK;EACvF;EAEA,AADAD,EAAO,GACPJ,EAAG,iBAAiB,UAAUI,GAAQ,EAAE,SAAS,GAAK,CAAC;EACvD,IAAME,IAAQN,EAAG,cAAcO,CAAO,GAChCC,IAAOX,EAAcS,IAAQ,CAACN,GAAIM,CAAK,IAAI,CAACN,CAAE,GAAGI,CAAM;EAC7D,aAAa;GAEX,AADAJ,EAAG,oBAAoB,UAAUI,CAAM,GACvCI,EAAK;EACP;CACF,GAAG;EAACL;EAAKI;EAASE;CAAG,CAAC;AACxB"}
|