@logicplanes/kaeso-ui 0.4.4 → 0.4.6
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,456 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { a as e, i as t } from "./styles-hkFkoBbi.js";
|
|
3
|
+
import { t as n } from "./cn-BjnOAUrA.js";
|
|
4
|
+
import { i as r } from "./context-BELWW79w.js";
|
|
5
|
+
import { t as i } from "./icon-CBzOwqrX.js";
|
|
6
|
+
import { t as a } from "./option-checkbox-Df7WhGn4.js";
|
|
7
|
+
import { r as o } from "./combobox-DkcjkWc6.js";
|
|
8
|
+
import { createContext as s, forwardRef as c, useCallback as l, useContext as ee, useEffect as te, useId as ne, useLayoutEffect as u, useMemo as d, useRef as f, useState as p, useSyncExternalStore as re } from "react";
|
|
9
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
10
|
+
import { Search01Icon as ie, Tick02Icon as ae } from "@hugeicons/core-free-icons";
|
|
11
|
+
import { defaultRangeExtractor as oe, observeElementRect as g, useVirtualizer as se } from "@tanstack/react-virtual";
|
|
12
|
+
//#region src/components/command-list/match.ts
|
|
13
|
+
var _ = /[\s\-_./:@]/g, ce = /[\s\-_./:@]/;
|
|
14
|
+
function v(e, t) {
|
|
15
|
+
if (t === e) return 100;
|
|
16
|
+
if (t.startsWith(e)) return 80;
|
|
17
|
+
let n = t.indexOf(e);
|
|
18
|
+
if (n > 0) return ce.test(t[n - 1] ?? "") ? 70 : 50;
|
|
19
|
+
let r = e.replace(_, "");
|
|
20
|
+
if (r && t.replace(_, "").includes(r)) return 40;
|
|
21
|
+
if (e.length < 3) return 0;
|
|
22
|
+
let i = 0, a = -1, o = 0;
|
|
23
|
+
for (let n = 0; n < t.length && i < e.length; n++) t[n] === e[i] && (a >= 0 && n !== a + 1 && (o += 1), a = n, i += 1);
|
|
24
|
+
return i < e.length ? 0 : Math.max(1, 30 - o * 3);
|
|
25
|
+
}
|
|
26
|
+
function y(e, t) {
|
|
27
|
+
let n = e.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
28
|
+
if (n.length === 0) return 1;
|
|
29
|
+
let r = t.map((e) => e.toLowerCase()), i = 0;
|
|
30
|
+
for (let e of n) {
|
|
31
|
+
let t = 0;
|
|
32
|
+
if (r.forEach((n, r) => {
|
|
33
|
+
t = Math.max(t, v(e, n) * (r === 0 ? 1 : .9));
|
|
34
|
+
}), t === 0) return 0;
|
|
35
|
+
i += t;
|
|
36
|
+
}
|
|
37
|
+
return i / n.length;
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/components/command-list/command-list.tsx
|
|
41
|
+
var le = {
|
|
42
|
+
height: {
|
|
43
|
+
popover: { classes: "picker-limits" },
|
|
44
|
+
inline: { classes: "max-h-360 rounded-group bg-raised shadow-xs" },
|
|
45
|
+
fill: { classes: "min-h-0 flex-1" }
|
|
46
|
+
},
|
|
47
|
+
size: {
|
|
48
|
+
md: { classes: "" },
|
|
49
|
+
lg: { classes: "" }
|
|
50
|
+
}
|
|
51
|
+
}, ue = {
|
|
52
|
+
height: "popover",
|
|
53
|
+
size: "md"
|
|
54
|
+
}, de = {
|
|
55
|
+
md: {
|
|
56
|
+
search: "h-44 gap-10 px-16",
|
|
57
|
+
input: "text-body",
|
|
58
|
+
row: 34,
|
|
59
|
+
item: "",
|
|
60
|
+
caption: "px-16"
|
|
61
|
+
},
|
|
62
|
+
lg: {
|
|
63
|
+
search: "h-56 gap-12 px-20",
|
|
64
|
+
input: "text-body-lg font-regular",
|
|
65
|
+
row: 40,
|
|
66
|
+
item: "rounded-palette-item gap-12 px-12",
|
|
67
|
+
caption: "px-18"
|
|
68
|
+
}
|
|
69
|
+
}, b = "(pointer: coarse)", fe = (e) => {
|
|
70
|
+
if (typeof window > "u" || !window.matchMedia) return () => {};
|
|
71
|
+
let t = window.matchMedia(b);
|
|
72
|
+
return t.addEventListener("change", e), () => t.removeEventListener("change", e);
|
|
73
|
+
}, pe = () => typeof window < "u" && !!window.matchMedia?.(b).matches, x = 28, me = 8, S = 6, he = 500, ge = {
|
|
74
|
+
md: 44,
|
|
75
|
+
lg: 56
|
|
76
|
+
}, _e = 80, C = 480, ve = 200, ye = /* @__PURE__ */ s(null);
|
|
77
|
+
function be(e) {
|
|
78
|
+
let t = [], n = [], r = [];
|
|
79
|
+
return e.forEach(({ group: e, items: i }, a) => {
|
|
80
|
+
let o = t.length;
|
|
81
|
+
e.label && t.push({
|
|
82
|
+
kind: "header",
|
|
83
|
+
group: e,
|
|
84
|
+
gi: a
|
|
85
|
+
}), e.loading && i.length === 0 && t.push({
|
|
86
|
+
kind: "loading",
|
|
87
|
+
gi: a
|
|
88
|
+
});
|
|
89
|
+
for (let { item: e, score: r } of i) n.push({
|
|
90
|
+
row: t.length,
|
|
91
|
+
item: e,
|
|
92
|
+
gi: a
|
|
93
|
+
}), t.push({
|
|
94
|
+
kind: "item",
|
|
95
|
+
item: e,
|
|
96
|
+
gi: a,
|
|
97
|
+
option: n.length - 1,
|
|
98
|
+
score: r
|
|
99
|
+
});
|
|
100
|
+
r.push({
|
|
101
|
+
first: o,
|
|
102
|
+
last: t.length - 1
|
|
103
|
+
});
|
|
104
|
+
}), {
|
|
105
|
+
rows: t,
|
|
106
|
+
options: n,
|
|
107
|
+
spans: r
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
var w = (e, t) => e?.kind === "header" ? x : t, xe = (e, t) => e[t + 1]?.kind === "header" ? me : 0;
|
|
111
|
+
function Se(e, t) {
|
|
112
|
+
let n = [S];
|
|
113
|
+
return e.forEach((r, i) => n.push((n[i] ?? S) + w(r, t) + xe(e, i))), n;
|
|
114
|
+
}
|
|
115
|
+
var Ce = (e, t) => y(t, [e.label, ...e.keywords ?? []]);
|
|
116
|
+
function we(e, t, n) {
|
|
117
|
+
let r = t.trim(), i = (e) => e.items.length > 0 || !!e.group.loading;
|
|
118
|
+
return r ? e.map((e, t) => {
|
|
119
|
+
let i = e.items.map((e) => ({
|
|
120
|
+
item: e,
|
|
121
|
+
score: n(e, r)
|
|
122
|
+
})).filter((e) => e.score > 0).sort((e, t) => t.score - e.score);
|
|
123
|
+
return {
|
|
124
|
+
group: e,
|
|
125
|
+
items: i,
|
|
126
|
+
order: t,
|
|
127
|
+
best: i[0]?.score ?? 0
|
|
128
|
+
};
|
|
129
|
+
}).filter(i).sort((e, t) => t.best - e.best || e.order - t.order) : e.map((e) => ({
|
|
130
|
+
group: e,
|
|
131
|
+
items: e.items.map((e) => ({
|
|
132
|
+
item: e,
|
|
133
|
+
score: 1
|
|
134
|
+
}))
|
|
135
|
+
})).filter(i);
|
|
136
|
+
}
|
|
137
|
+
function Te(e, t) {
|
|
138
|
+
return g(e, (e) => t(e.height > 0 ? e : {
|
|
139
|
+
width: e.width,
|
|
140
|
+
height: C
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
var T = /* @__PURE__ */ c(function({ groups: s, "aria-label": c, value: g, multiple: _, onSelect: ce, query: v, defaultQuery: y = "", onQueryChange: ue, placeholder: b, emptyText: me, toolbar: T, footer: Ee, searchPrefix: De, loading: E, onInputKeyDown: Oe, size: D = "md", height: ke, autoFocus: Ae, onEscape: je, escapeClears: Me = !0, match: O = Ce, counts: Ne = !0, inputProps: Pe, className: Fe, "data-force": Ie }, Le) {
|
|
144
|
+
let k = r(), Re = ee(ye), A = ke ?? Re ?? "popover", j = ne(), ze = `${j}-list`, [Be, Ve] = p(y), M = v ?? Be, He = re(fe, pe, () => !1), N = de[D], P = He ? Math.max(44, N.row) : N.row, Ue = g === void 0 && !_, We = !_ && !Ue, Ge = d(() => new Set(g == null ? [] : typeof g == "string" ? [g] : g), [g]), F = d(() => we(s, M, O), [
|
|
145
|
+
s,
|
|
146
|
+
M,
|
|
147
|
+
O
|
|
148
|
+
]), { rows: I, options: L, spans: Ke } = d(() => be(F), [F]), qe = F.some((e) => e.group.label), R = A === "inline" && !T && !Ee, Je = d(() => {
|
|
149
|
+
if (!R) return 0;
|
|
150
|
+
let e = be(we(s, "", O)).rows;
|
|
151
|
+
return (Se(e, P)[e.length] ?? S) - S;
|
|
152
|
+
}, [
|
|
153
|
+
R,
|
|
154
|
+
s,
|
|
155
|
+
O,
|
|
156
|
+
P
|
|
157
|
+
]), Ye = R ? { height: ge[D] + 12 + Math.max(Je, _e) } : void 0, z = d(() => Se(I, P), [I, P]), B = l((e, t) => {
|
|
158
|
+
for (let n = e; n >= 0 && n < L.length; n += t) if (!L[n]?.item.disabled) return n;
|
|
159
|
+
return -1;
|
|
160
|
+
}, [L]), Xe = () => {
|
|
161
|
+
let e = L.findIndex((e) => Ge.has(e.item.value) && !e.item.disabled);
|
|
162
|
+
return e >= 0 ? e : B(0, 1);
|
|
163
|
+
}, [V, H] = p(Xe), U = d(() => `${M.trim()}\u0000${L.map((e) => e.item.value).join("\0")}`, [L, M]), [Ze, Qe] = p(U);
|
|
164
|
+
Ze !== U && (Qe(U), H(M.trim() ? B(0, 1) : Xe()));
|
|
165
|
+
let $e = f(V);
|
|
166
|
+
$e.current = V;
|
|
167
|
+
let W = f(null), G = I.length > ve, K = se({
|
|
168
|
+
enabled: G,
|
|
169
|
+
count: I.length,
|
|
170
|
+
getScrollElement: () => W.current,
|
|
171
|
+
estimateSize: (e) => w(I[e], P) + xe(I, e),
|
|
172
|
+
overscan: 8,
|
|
173
|
+
useFlushSync: !1,
|
|
174
|
+
paddingStart: S,
|
|
175
|
+
paddingEnd: S,
|
|
176
|
+
scrollPaddingStart: qe ? x : 0,
|
|
177
|
+
observeElementRect: Te,
|
|
178
|
+
initialRect: {
|
|
179
|
+
width: 0,
|
|
180
|
+
height: C
|
|
181
|
+
},
|
|
182
|
+
rangeExtractor: (e) => {
|
|
183
|
+
let t = L[$e.current]?.row, n = oe(e);
|
|
184
|
+
return t === void 0 || n.includes(t) ? n : [...n, t].sort((e, t) => e - t);
|
|
185
|
+
}
|
|
186
|
+
}), q = f(!1);
|
|
187
|
+
u(() => {
|
|
188
|
+
G && K.measure();
|
|
189
|
+
}, [
|
|
190
|
+
P,
|
|
191
|
+
K,
|
|
192
|
+
G
|
|
193
|
+
]);
|
|
194
|
+
let et = (e, t) => {
|
|
195
|
+
if (G) return K.scrollToIndex(e, { align: t });
|
|
196
|
+
let n = L.find((t) => t.row === e);
|
|
197
|
+
(n ? document.getElementById(Y(L.indexOf(n))) : null)?.scrollIntoView?.({ block: t === "auto" ? "nearest" : "center" });
|
|
198
|
+
};
|
|
199
|
+
te(() => {
|
|
200
|
+
let e = L[V]?.row;
|
|
201
|
+
e !== void 0 && q.current && (q.current = !1, et(e, "auto"));
|
|
202
|
+
});
|
|
203
|
+
let tt = f(!1);
|
|
204
|
+
u(() => {
|
|
205
|
+
if (tt.current) return;
|
|
206
|
+
tt.current = !0;
|
|
207
|
+
let e = L[V]?.row;
|
|
208
|
+
e !== void 0 && e > 0 && et(e, "center");
|
|
209
|
+
});
|
|
210
|
+
let nt = (e) => {
|
|
211
|
+
v === void 0 && Ve(e), ue?.(e);
|
|
212
|
+
}, J = (e) => {
|
|
213
|
+
e < 0 || (q.current = !0, H(e));
|
|
214
|
+
}, rt = Math.max(1, Math.floor((W.current?.clientHeight || C) / P) - 1), it = (e) => {
|
|
215
|
+
let t = L[e];
|
|
216
|
+
t && !t.item.disabled && (H(e), ce?.(t.item.value));
|
|
217
|
+
}, at = (e) => {
|
|
218
|
+
if (Oe?.(e), e.defaultPrevented || e.altKey || e.metaKey || e.ctrlKey) return;
|
|
219
|
+
let t = L.length - 1;
|
|
220
|
+
switch (e.key) {
|
|
221
|
+
case "ArrowDown":
|
|
222
|
+
e.preventDefault(), J(V < 0 ? B(0, 1) : B(V + 1, 1) >= 0 ? B(V + 1, 1) : B(0, 1));
|
|
223
|
+
break;
|
|
224
|
+
case "ArrowUp":
|
|
225
|
+
e.preventDefault(), J(V < 0 ? B(t, -1) : B(V - 1, -1) >= 0 ? B(V - 1, -1) : B(t, -1));
|
|
226
|
+
break;
|
|
227
|
+
case "Home":
|
|
228
|
+
if (e.shiftKey) return;
|
|
229
|
+
e.preventDefault(), J(B(0, 1));
|
|
230
|
+
break;
|
|
231
|
+
case "End":
|
|
232
|
+
if (e.shiftKey) return;
|
|
233
|
+
e.preventDefault(), J(B(t, -1));
|
|
234
|
+
break;
|
|
235
|
+
case "PageDown":
|
|
236
|
+
e.preventDefault(), J(B(Math.min(t, Math.max(V, 0) + rt), -1));
|
|
237
|
+
break;
|
|
238
|
+
case "PageUp":
|
|
239
|
+
e.preventDefault(), J(B(Math.max(0, V - rt), 1));
|
|
240
|
+
break;
|
|
241
|
+
case "Enter":
|
|
242
|
+
if (V < 0) return;
|
|
243
|
+
e.preventDefault(), e.stopPropagation(), it(V);
|
|
244
|
+
break;
|
|
245
|
+
case "Escape": M && Me ? (e.preventDefault(), e.stopPropagation(), nt("")) : je && (e.preventDefault(), e.stopPropagation(), je());
|
|
246
|
+
}
|
|
247
|
+
}, Y = (e) => `${j}-${e}-${(L[e]?.item.value ?? "").replace(/\s/g, "_")}`, ot = (e) => `${j}-g-${e}`, st = (t, r) => {
|
|
248
|
+
let i = !Ne || t.loading ? void 0 : M.trim() ? F[r]?.items.length ?? 0 : t.count;
|
|
249
|
+
return /* @__PURE__ */ h("div", {
|
|
250
|
+
"aria-hidden": !0,
|
|
251
|
+
className: n(e, "sticky top-0 z-10 gap-10 bg-raised forced-colors:mx-1", N.caption),
|
|
252
|
+
children: [
|
|
253
|
+
t.leading,
|
|
254
|
+
/* @__PURE__ */ m("span", {
|
|
255
|
+
id: ot(r),
|
|
256
|
+
className: "min-w-0 truncate",
|
|
257
|
+
children: t.label
|
|
258
|
+
}),
|
|
259
|
+
i !== void 0 && /* @__PURE__ */ m("span", {
|
|
260
|
+
className: "ml-auto shrink-0 font-regular text-fg-tertiary tabular",
|
|
261
|
+
children: i
|
|
262
|
+
}),
|
|
263
|
+
i !== void 0 && We && /* @__PURE__ */ m("span", { className: "size-16 shrink-0" })
|
|
264
|
+
]
|
|
265
|
+
});
|
|
266
|
+
}, ct = (e) => {
|
|
267
|
+
let { item: r, option: s } = e, c = s === V, l = Ue ? c : Ge.has(r.value), ee = {
|
|
268
|
+
query: M,
|
|
269
|
+
active: c,
|
|
270
|
+
selected: l
|
|
271
|
+
};
|
|
272
|
+
return /* @__PURE__ */ h("div", {
|
|
273
|
+
id: Y(s),
|
|
274
|
+
role: "option",
|
|
275
|
+
"aria-selected": l,
|
|
276
|
+
"aria-setsize": L.length,
|
|
277
|
+
"aria-posinset": s + 1,
|
|
278
|
+
...r.disabled ? {
|
|
279
|
+
"aria-disabled": !0,
|
|
280
|
+
"data-disabled": ""
|
|
281
|
+
} : {},
|
|
282
|
+
...c ? { "data-highlighted": "" } : {},
|
|
283
|
+
...l ? { "data-selected": "" } : {},
|
|
284
|
+
onMouseMove: () => !c && !r.disabled && H(s),
|
|
285
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
286
|
+
onClick: () => it(s),
|
|
287
|
+
className: n(t, "group/opt mx-6 w-auto", N.item),
|
|
288
|
+
children: [
|
|
289
|
+
_ && /* @__PURE__ */ m(a, {}),
|
|
290
|
+
r.leading,
|
|
291
|
+
r.render ? /* @__PURE__ */ m("span", {
|
|
292
|
+
className: "flex min-w-0 flex-1 items-center gap-8",
|
|
293
|
+
children: r.render(ee)
|
|
294
|
+
}) : /* @__PURE__ */ m("span", {
|
|
295
|
+
className: "min-w-0 flex-1 truncate",
|
|
296
|
+
children: /* @__PURE__ */ m(o, {
|
|
297
|
+
text: r.label,
|
|
298
|
+
query: M
|
|
299
|
+
})
|
|
300
|
+
}),
|
|
301
|
+
r.meta !== void 0 && /* @__PURE__ */ m("span", {
|
|
302
|
+
className: n("ml-auto flex shrink-0 items-center gap-4 pl-16 text-caption font-medium text-fg-tertiary tabular group-data-highlighted/item:text-fg-secondary forced-colors:text-current", "pl-8 font-regular"),
|
|
303
|
+
children: r.meta
|
|
304
|
+
}),
|
|
305
|
+
We && /* @__PURE__ */ m("span", {
|
|
306
|
+
"aria-hidden": !0,
|
|
307
|
+
className: n("flex size-16 shrink-0 items-center justify-center text-fg", !l && "opacity-0"),
|
|
308
|
+
children: /* @__PURE__ */ m(i, {
|
|
309
|
+
icon: ae,
|
|
310
|
+
size: "sm"
|
|
311
|
+
})
|
|
312
|
+
})
|
|
313
|
+
]
|
|
314
|
+
});
|
|
315
|
+
}, lt = G ? K.getVirtualItems().map((e) => e.index) : I.map((e, t) => t), X = /* @__PURE__ */ new Map();
|
|
316
|
+
for (let e of lt) {
|
|
317
|
+
let t = I[e];
|
|
318
|
+
if (!t) continue;
|
|
319
|
+
let n = X.get(t.gi) ?? [];
|
|
320
|
+
t.kind !== "header" && n.push(e), X.set(t.gi, n);
|
|
321
|
+
}
|
|
322
|
+
let Z = I.length === 0, Q = M.trim(), ut = E ? k("commandList.loading", "Loading…") : me ?? (Q ? k("commandList.noResultsFor", "No results for “{query}”", { query: Q }) : k("commandList.noResults", "No results")), [$, dt] = p(null), ft = f(M);
|
|
323
|
+
te(() => {
|
|
324
|
+
if (M === ft.current) return;
|
|
325
|
+
let e = setTimeout(() => dt({
|
|
326
|
+
query: Q,
|
|
327
|
+
count: L.length,
|
|
328
|
+
empty: Z
|
|
329
|
+
}), he);
|
|
330
|
+
return () => clearTimeout(e);
|
|
331
|
+
}, [
|
|
332
|
+
M,
|
|
333
|
+
Q,
|
|
334
|
+
L.length,
|
|
335
|
+
Z
|
|
336
|
+
]);
|
|
337
|
+
let pt = l((e) => {
|
|
338
|
+
e && e.style.setProperty("--scroll-area-overflow-y-end", `${Math.max(0, e.scrollHeight - e.scrollTop - e.clientHeight)}px`);
|
|
339
|
+
}, []);
|
|
340
|
+
return u(() => pt(W.current)), /* @__PURE__ */ h("div", {
|
|
341
|
+
...Ie ? { "data-force": Ie } : {},
|
|
342
|
+
className: n("relative flex min-w-0 flex-col overflow-hidden", le.height[A].classes, Fe),
|
|
343
|
+
...Ye ? { style: Ye } : {},
|
|
344
|
+
children: [
|
|
345
|
+
E && /* @__PURE__ */ m("span", {
|
|
346
|
+
"aria-hidden": !0,
|
|
347
|
+
className: "absolute inset-x-0 top-0 h-2 overflow-hidden",
|
|
348
|
+
children: /* @__PURE__ */ m("span", { className: "block h-full w-1/3 animate-indeterminate bg-fg-tertiary reduced:w-full reduced-pulse" })
|
|
349
|
+
}),
|
|
350
|
+
/* @__PURE__ */ h("div", {
|
|
351
|
+
onMouseDown: (e) => {
|
|
352
|
+
e.target === e.currentTarget && (e.preventDefault(), e.currentTarget.querySelector("input")?.focus());
|
|
353
|
+
},
|
|
354
|
+
className: n("flex shrink-0 cursor-text items-center hairline-b", N.search),
|
|
355
|
+
children: [
|
|
356
|
+
/* @__PURE__ */ m(i, {
|
|
357
|
+
icon: ie,
|
|
358
|
+
size: D === "lg" ? "md" : "sm",
|
|
359
|
+
className: "text-fg-tertiary"
|
|
360
|
+
}),
|
|
361
|
+
De,
|
|
362
|
+
/* @__PURE__ */ m("input", {
|
|
363
|
+
ref: Le,
|
|
364
|
+
...Pe,
|
|
365
|
+
role: "combobox",
|
|
366
|
+
"aria-expanded": "true",
|
|
367
|
+
"aria-controls": ze,
|
|
368
|
+
"aria-autocomplete": "list",
|
|
369
|
+
"aria-label": b ?? k("commandList.search", "Search"),
|
|
370
|
+
...V >= 0 && L.length > 0 ? { "aria-activedescendant": Y(V) } : {},
|
|
371
|
+
...Ae ? {
|
|
372
|
+
autoFocus: !0,
|
|
373
|
+
"data-autofocus": ""
|
|
374
|
+
} : {},
|
|
375
|
+
type: "text",
|
|
376
|
+
autoComplete: "off",
|
|
377
|
+
spellCheck: !1,
|
|
378
|
+
placeholder: b ?? k("commandList.search", "Search"),
|
|
379
|
+
value: M,
|
|
380
|
+
onChange: (e) => nt(e.target.value),
|
|
381
|
+
onKeyDown: at,
|
|
382
|
+
className: n("min-w-0 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary", N.input)
|
|
383
|
+
})
|
|
384
|
+
]
|
|
385
|
+
}),
|
|
386
|
+
T && /* @__PURE__ */ m("div", {
|
|
387
|
+
className: "flex shrink-0 flex-wrap items-center gap-8 px-12 py-8 hairline-b",
|
|
388
|
+
children: T
|
|
389
|
+
}),
|
|
390
|
+
/* @__PURE__ */ m("div", {
|
|
391
|
+
ref: W,
|
|
392
|
+
id: ze,
|
|
393
|
+
role: "listbox",
|
|
394
|
+
"aria-label": c,
|
|
395
|
+
..._ ? { "aria-multiselectable": !0 } : {},
|
|
396
|
+
...E ? { "aria-busy": !0 } : {},
|
|
397
|
+
"data-dialog-body": "",
|
|
398
|
+
onScroll: (e) => pt(e.currentTarget),
|
|
399
|
+
...qe ? { style: { scrollPaddingTop: x } } : {},
|
|
400
|
+
className: n("min-h-0 overflow-y-auto overscroll-contain scroll-fade-y scrollbar-quiet", A === "popover" ? "flex-initial" : "flex-1"),
|
|
401
|
+
children: Z ? /* @__PURE__ */ m("div", {
|
|
402
|
+
"aria-hidden": !0,
|
|
403
|
+
className: "flex h-full min-h-80 items-center justify-center px-16 text-center text-body text-fg-secondary text-balance wrap-anywhere",
|
|
404
|
+
children: ut
|
|
405
|
+
}) : /* @__PURE__ */ m("div", {
|
|
406
|
+
role: "presentation",
|
|
407
|
+
className: "relative w-full",
|
|
408
|
+
style: { height: (z[I.length] ?? 0) + S },
|
|
409
|
+
children: [...X].map(([e, t]) => {
|
|
410
|
+
let r = Ke[e], i = F[e]?.group;
|
|
411
|
+
if (!r || !i) return null;
|
|
412
|
+
let a = z[r.first] ?? 0, o = (z[r.last] ?? a) + w(I[r.last], P);
|
|
413
|
+
return /* @__PURE__ */ h("div", {
|
|
414
|
+
...i.label ? {
|
|
415
|
+
role: "group",
|
|
416
|
+
"aria-labelledby": ot(e)
|
|
417
|
+
} : { role: "presentation" },
|
|
418
|
+
className: "absolute left-0 w-full",
|
|
419
|
+
style: {
|
|
420
|
+
top: a,
|
|
421
|
+
height: o - a
|
|
422
|
+
},
|
|
423
|
+
children: [i.label && st(i, e), t.map((e) => {
|
|
424
|
+
let t = I[e];
|
|
425
|
+
return t?.kind !== "item" && t?.kind !== "loading" ? null : /* @__PURE__ */ m("div", {
|
|
426
|
+
role: "presentation",
|
|
427
|
+
className: "absolute left-0 w-full",
|
|
428
|
+
style: {
|
|
429
|
+
top: (z[e] ?? 0) - a,
|
|
430
|
+
height: w(t, P)
|
|
431
|
+
},
|
|
432
|
+
children: t.kind === "item" ? ct(t) : /* @__PURE__ */ m("div", {
|
|
433
|
+
"aria-hidden": !0,
|
|
434
|
+
className: n("flex h-full items-center text-body text-fg-tertiary", N.caption),
|
|
435
|
+
children: k("commandList.loading", "Loading…")
|
|
436
|
+
})
|
|
437
|
+
}, e);
|
|
438
|
+
})]
|
|
439
|
+
}, i.id);
|
|
440
|
+
})
|
|
441
|
+
})
|
|
442
|
+
}),
|
|
443
|
+
/* @__PURE__ */ m("span", {
|
|
444
|
+
role: "status",
|
|
445
|
+
className: "sr-only",
|
|
446
|
+
children: $ && ($.empty ? ut : k("commandList.results", "{count, plural, one {# result} other {# results}}", { count: $.count }))
|
|
447
|
+
}),
|
|
448
|
+
Ee
|
|
449
|
+
]
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
process.env.NODE_ENV !== "production" && (T.displayName = "CommandList");
|
|
453
|
+
//#endregion
|
|
454
|
+
export { y as a, le as i, ye as n, ue as r, T as t };
|
|
455
|
+
|
|
456
|
+
//# sourceMappingURL=command-list-CypqsC4T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-list-CypqsC4T.js","names":["__icon_Tick02Icon","__icon_Search01Icon","MENU_LABEL","MENU_ITEM","cn","useUiText","Icon","OptionCheckbox","Highlight","SEPARATORS","SEPARATOR","wordScore","field","word","at","compactWord","next","last","gaps","i","commandMatch","words","query","lower","fields","f","total","best","KAESO_COMMAND_LIST_VARIANTS","KAESO_COMMAND_LIST_DEFAULT_VARIANTS","SIZES","COARSE","subscribeCoarse","q","onChange","isCoarse","HEADER","GROUP_GAP","EDGE","ANNOUNCE_AFTER","SEARCH","EMPTY","FALLBACK_VIEWPORT","VIRTUALIZE_ABOVE","CommandListHeightContext","buildRows","rows","options","spans","shown","first","group","items","sizeOf","row","rowHeight","gapAfter","rowOffsets","out","fuzzy","item","visibleGroups","kept","g","groups","match","m","b","a","observeWithFallback","observeElementRect","instance","cb","rect","CommandList","ariaLabel","controlledQuery","heightProp","force","t","fromFrame","useContext","height","uid","useId","listId","ownQuery","setOwnQuery","useState","defaultQuery","coarse","useSyncExternalStore","look","size","commands","value","multiple","checks","selected","useMemo","labelled","fits","toolbar","footer","unfiltered","all","fitted","offsets","firstEnabled","useCallback","from","step","initialActive","chosen","o","active","setActive","signature","shownFor","setShownFor","activeRef","useRef","scroller","virtual","virtualizer","useVirtualizer","activeRow","keep","defaultRangeExtractor","range","keyboardMove","reveal","option","optionId","align","opened","setQuery","onQueryChange","move","to","page","choose","onSelect","onKeyDown","onInputKeyDown","escapeClears","onEscape","groupLabelId","gi","header","count","counts","isActive","isSelected","state","Tick02Icon","indexes","v","rendered","index","list","empty","trimmed","emptyMessage","loading","emptyText","heard","setHeard","typedFrom","timer","fade","el","useLayoutEffect","className","Search01Icon","searchPrefix","inputProps","placeholder","autoFocus","span","top","bottom"],"sources":["../../src/components/command-list/match.ts","../../src/components/command-list/command-list.tsx"],"sourcesContent":["const SEPARATORS = /[\\s\\-_./:@]/g;\nconst SEPARATOR = /[\\s\\-_./:@]/;\n\nfunction wordScore(word: string, field: string): number {\n if (field === word) return 100;\n if (field.startsWith(word)) return 80;\n const at = field.indexOf(word);\n if (at > 0) return SEPARATOR.test(field[at - 1] ?? \"\") ? 70 : 50;\n const compactWord = word.replace(SEPARATORS, \"\");\n if (compactWord && field.replace(SEPARATORS, \"\").includes(compactWord)) return 40;\n if (word.length < 3) return 0;\n let next = 0;\n let last = -1;\n let gaps = 0;\n for (let i = 0; i < field.length && next < word.length; i++) {\n if (field[i] !== word[next]) continue;\n if (last >= 0 && i !== last + 1) gaps += 1;\n last = i;\n next += 1;\n }\n return next < word.length ? 0 : Math.max(1, 30 - gaps * 3);\n}\n\nexport function commandMatch(query: string, fields: readonly string[]): number {\n const words = query.trim().toLowerCase().split(/\\s+/).filter(Boolean);\n if (words.length === 0) return 1;\n const lower = fields.map((f) => f.toLowerCase());\n let total = 0;\n for (const word of words) {\n let best = 0;\n lower.forEach((field, i) => {\n best = Math.max(best, wordScore(word, field) * (i === 0 ? 1 : 0.9));\n });\n if (best === 0) return 0;\n total += best;\n }\n return total / words.length;\n}\n","import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport { defaultRangeExtractor, observeElementRect, useVirtualizer, type Range, type Virtualizer } from \"@tanstack/react-virtual\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Search01Icon as __icon_Search01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Highlight } from \"../combobox/combobox.js\";\nimport { MENU_HINT, MENU_ITEM, MENU_LABEL } from \"../menu/styles.js\";\nimport { OptionCheckbox } from \"../select/option-checkbox.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { commandMatch } from \"./match.js\";\n\nexport const KAESO_COMMAND_LIST_VARIANTS = {\n height: {\n popover: { classes: \"picker-limits\" },\n inline: {\n classes: \"max-h-360 rounded-group bg-raised shadow-xs\",\n },\n fill: { classes: \"min-h-0 flex-1\" },\n },\n size: {\n md: { classes: \"\" },\n lg: { classes: \"\" },\n },\n} as const;\nexport const KAESO_COMMAND_LIST_DEFAULT_VARIANTS = { height: \"popover\", size: \"md\" } as const;\n\nconst SIZES = {\n md: { search: \"h-44 gap-10 px-16\", input: \"text-body\", row: 34, item: \"\", caption: \"px-16\" },\n lg: { search: \"h-56 gap-12 px-20\", input: \"text-body-lg font-regular\", row: 40, item: \"rounded-palette-item gap-12 px-12\", caption: \"px-18\" },\n} as const;\n\nexport type CommandListHeight = keyof typeof KAESO_COMMAND_LIST_VARIANTS.height;\n\nexport interface CommandListRowState {\n query: string;\n active: boolean;\n selected: boolean;\n}\n\nexport interface CommandListItem {\n value: string;\n label: string;\n keywords?: readonly string[] | undefined;\n leading?: ReactNode | undefined;\n meta?: ReactNode | undefined;\n render?: ((state: CommandListRowState) => ReactNode) | undefined;\n disabled?: boolean | undefined;\n}\n\nexport interface CommandListGroup {\n id: string;\n label?: string | undefined;\n leading?: ReactNode | undefined;\n count?: ReactNode | undefined;\n loading?: boolean | undefined;\n items: CommandListItem[];\n}\n\nexport interface CommandListProps {\n groups: CommandListGroup[];\n \"aria-label\": string;\n value?: string | readonly string[] | null | undefined;\n multiple?: boolean | undefined;\n onSelect?: ((value: string) => void) | undefined;\n query?: string | undefined;\n defaultQuery?: string | undefined;\n onQueryChange?: ((query: string) => void) | undefined;\n placeholder?: string | undefined;\n emptyText?: ReactNode | undefined;\n toolbar?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n searchPrefix?: ReactNode | undefined;\n loading?: boolean | undefined;\n onInputKeyDown?: ((event: KeyboardEvent<HTMLInputElement>) => void) | undefined;\n size?: keyof typeof KAESO_COMMAND_LIST_VARIANTS.size | undefined;\n height?: CommandListHeight | undefined;\n autoFocus?: boolean | undefined;\n onEscape?: (() => void) | undefined;\n escapeClears?: boolean | undefined;\n match?: ((item: CommandListItem, query: string) => number) | undefined;\n counts?: boolean | undefined;\n inputProps?: { [attribute: `data-${string}`]: string } | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst COARSE = \"(pointer: coarse)\";\nconst subscribeCoarse = (onChange: () => void) => {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const q = window.matchMedia(COARSE);\n q.addEventListener(\"change\", onChange);\n return () => q.removeEventListener(\"change\", onChange);\n};\nconst isCoarse = () => typeof window !== \"undefined\" && !!window.matchMedia?.(COARSE).matches;\n\nconst HEADER = 28;\nconst GROUP_GAP = 8;\nconst EDGE = 6;\nconst ANNOUNCE_AFTER = 500;\nconst SEARCH = { md: 44, lg: 56 } as const;\nconst EMPTY = 80;\nconst FALLBACK_VIEWPORT = 480;\nconst VIRTUALIZE_ABOVE = 200;\n\nexport const CommandListHeightContext = /* @__PURE__ */ createContext<CommandListHeight | null>(null);\n\ntype Row =\n | { kind: \"header\"; group: CommandListGroup; gi: number }\n | { kind: \"loading\"; gi: number }\n | { kind: \"item\"; item: CommandListItem; gi: number; option: number; score: number };\n\nfunction buildRows(shown: { group: CommandListGroup; items: { item: CommandListItem; score: number }[] }[]) {\n const rows: Row[] = [];\n const options: { row: number; item: CommandListItem; gi: number }[] = [];\n const spans: { first: number; last: number }[] = [];\n shown.forEach(({ group, items }, gi) => {\n const first = rows.length;\n if (group.label) rows.push({ kind: \"header\", group, gi });\n if (group.loading && items.length === 0) rows.push({ kind: \"loading\", gi });\n for (const { item, score } of items) {\n options.push({ row: rows.length, item, gi });\n rows.push({ kind: \"item\", item, gi, option: options.length - 1, score });\n }\n spans.push({ first, last: rows.length - 1 });\n });\n return { rows, options, spans };\n}\n\nconst sizeOf = (row: Row | undefined, rowHeight: number) => (row?.kind === \"header\" ? HEADER : rowHeight);\nconst gapAfter = (rows: Row[], i: number) => (rows[i + 1]?.kind === \"header\" ? GROUP_GAP : 0);\n\nfunction rowOffsets(rows: Row[], rowHeight: number) {\n const out = [EDGE];\n rows.forEach((row, i) => out.push((out[i] ?? EDGE) + sizeOf(row, rowHeight) + gapAfter(rows, i)));\n return out;\n}\n\nconst fuzzy = (item: CommandListItem, query: string) => commandMatch(query, [item.label, ...(item.keywords ?? [])]);\n\nfunction visibleGroups(groups: CommandListGroup[], query: string, match: (item: CommandListItem, query: string) => number) {\n const q = query.trim();\n const kept = (g: { group: CommandListGroup; items: unknown[] }) => g.items.length > 0 || !!g.group.loading;\n if (!q) return groups.map((g) => ({ group: g, items: g.items.map((item) => ({ item, score: 1 })) })).filter(kept);\n return groups\n .map((g, order) => {\n const items = g.items\n .map((item) => ({ item, score: match(item, q) }))\n .filter((m) => m.score > 0)\n .sort((a, b) => b.score - a.score);\n return { group: g, items, order, best: items[0]?.score ?? 0 };\n })\n .filter(kept)\n .sort((a, b) => b.best - a.best || a.order - b.order);\n}\n\nfunction observeWithFallback(instance: Virtualizer<HTMLDivElement, Element>, cb: (rect: { width: number; height: number }) => void) {\n return observeElementRect(instance, (rect) => cb(rect.height > 0 ? rect : { width: rect.width, height: FALLBACK_VIEWPORT }));\n}\n\nexport const CommandList = /* @__PURE__ */ forwardRef<HTMLInputElement, CommandListProps>(function CommandList(\n {\n groups,\n \"aria-label\": ariaLabel,\n value,\n multiple,\n onSelect,\n query: controlledQuery,\n defaultQuery = \"\",\n onQueryChange,\n placeholder,\n emptyText,\n toolbar,\n footer,\n searchPrefix,\n loading,\n onInputKeyDown,\n size = \"md\",\n height: heightProp,\n autoFocus,\n onEscape,\n escapeClears = true,\n match = fuzzy,\n counts = true,\n inputProps,\n className,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const fromFrame = useContext(CommandListHeightContext);\n const height = heightProp ?? fromFrame ?? \"popover\";\n const uid = useId();\n const listId = `${uid}-list`;\n const [ownQuery, setOwnQuery] = useState(defaultQuery);\n const query = controlledQuery ?? ownQuery;\n const coarse = useSyncExternalStore(subscribeCoarse, isCoarse, () => false);\n const look = SIZES[size];\n const rowHeight = coarse ? Math.max(44, look.row) : look.row;\n const commands = value === undefined && !multiple;\n const checks = !multiple && !commands;\n const selected = useMemo(() => new Set(value == null ? [] : typeof value === \"string\" ? [value] : value), [value]);\n\n const shown = useMemo(() => visibleGroups(groups, query, match), [groups, query, match]);\n const { rows, options, spans } = useMemo(() => buildRows(shown), [shown]);\n const labelled = shown.some((g) => g.group.label);\n const fits = height === \"inline\" && !toolbar && !footer;\n const unfiltered = useMemo(() => {\n if (!fits) return 0;\n const all = buildRows(visibleGroups(groups, \"\", match)).rows;\n return (rowOffsets(all, rowHeight)[all.length] ?? EDGE) - EDGE;\n }, [fits, groups, match, rowHeight]);\n const fitted = fits ? { height: SEARCH[size] + 2 * EDGE + Math.max(unfiltered, EMPTY) } : undefined;\n const offsets = useMemo(() => rowOffsets(rows, rowHeight), [rows, rowHeight]);\n\n const firstEnabled = useCallback(\n (from: number, step: 1 | -1) => {\n for (let i = from; i >= 0 && i < options.length; i += step) if (!options[i]?.item.disabled) return i;\n return -1;\n },\n [options],\n );\n const initialActive = () => {\n const chosen = options.findIndex((o) => selected.has(o.item.value) && !o.item.disabled);\n return chosen >= 0 ? chosen : firstEnabled(0, 1);\n };\n const [active, setActive] = useState(initialActive);\n const signature = useMemo(() => `${query.trim()}\\u0000${options.map((o) => o.item.value).join(\"\\u0000\")}`, [options, query]);\n const [shownFor, setShownFor] = useState(signature);\n if (shownFor !== signature) {\n setShownFor(signature);\n setActive(query.trim() ? firstEnabled(0, 1) : initialActive());\n }\n const activeRef = useRef(active);\n activeRef.current = active;\n\n const scroller = useRef<HTMLDivElement | null>(null);\n const virtual = rows.length > VIRTUALIZE_ABOVE;\n const virtualizer = useVirtualizer<HTMLDivElement, Element>({\n enabled: virtual,\n count: rows.length,\n getScrollElement: () => scroller.current,\n estimateSize: (i) => sizeOf(rows[i], rowHeight) + gapAfter(rows, i),\n overscan: 8,\n useFlushSync: false,\n paddingStart: EDGE,\n paddingEnd: EDGE,\n scrollPaddingStart: labelled ? HEADER : 0,\n observeElementRect: observeWithFallback,\n initialRect: { width: 0, height: FALLBACK_VIEWPORT },\n rangeExtractor: (range: Range) => {\n const activeRow = options[activeRef.current]?.row;\n const keep = defaultRangeExtractor(range);\n return activeRow === undefined || keep.includes(activeRow) ? keep : [...keep, activeRow].sort((a, b) => a - b);\n },\n });\n const keyboardMove = useRef(false);\n useLayoutEffect(() => {\n if (virtual) virtualizer.measure();\n }, [rowHeight, virtualizer, virtual]);\n const reveal = (row: number, align: \"auto\" | \"center\") => {\n if (virtual) return virtualizer.scrollToIndex(row, { align });\n const option = options.find((o) => o.row === row);\n const el = option ? document.getElementById(optionId(options.indexOf(option))) : null;\n el?.scrollIntoView?.({ block: align === \"auto\" ? \"nearest\" : \"center\" });\n };\n useEffect(() => {\n const row = options[active]?.row;\n if (row === undefined) return;\n if (keyboardMove.current) {\n keyboardMove.current = false;\n reveal(row, \"auto\");\n }\n });\n const opened = useRef(false);\n useLayoutEffect(() => {\n if (opened.current) return;\n opened.current = true;\n const row = options[active]?.row;\n if (row !== undefined && row > 0) reveal(row, \"center\");\n });\n\n const setQuery = (next: string) => {\n if (controlledQuery === undefined) setOwnQuery(next);\n onQueryChange?.(next);\n };\n const move = (to: number) => {\n if (to < 0) return;\n keyboardMove.current = true;\n setActive(to);\n };\n const page = Math.max(1, Math.floor((scroller.current?.clientHeight || FALLBACK_VIEWPORT) / rowHeight) - 1);\n const choose = (i: number) => {\n const o = options[i];\n if (!o || o.item.disabled) return;\n setActive(i);\n onSelect?.(o.item.value);\n };\n const onKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n onInputKeyDown?.(e);\n if (e.defaultPrevented || e.altKey || e.metaKey || e.ctrlKey) return;\n const last = options.length - 1;\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n move(active < 0 ? firstEnabled(0, 1) : firstEnabled(active + 1, 1) >= 0 ? firstEnabled(active + 1, 1) : firstEnabled(0, 1));\n break;\n case \"ArrowUp\":\n e.preventDefault();\n move(active < 0 ? firstEnabled(last, -1) : firstEnabled(active - 1, -1) >= 0 ? firstEnabled(active - 1, -1) : firstEnabled(last, -1));\n break;\n case \"Home\":\n if (e.shiftKey) return;\n e.preventDefault();\n move(firstEnabled(0, 1));\n break;\n case \"End\":\n if (e.shiftKey) return;\n e.preventDefault();\n move(firstEnabled(last, -1));\n break;\n case \"PageDown\":\n e.preventDefault();\n move(firstEnabled(Math.min(last, Math.max(active, 0) + page), -1));\n break;\n case \"PageUp\":\n e.preventDefault();\n move(firstEnabled(Math.max(0, active - page), 1));\n break;\n case \"Enter\":\n if (active < 0) return;\n e.preventDefault();\n e.stopPropagation();\n choose(active);\n break;\n case \"Escape\":\n if (query && escapeClears) {\n e.preventDefault();\n e.stopPropagation();\n setQuery(\"\");\n } else if (onEscape) {\n e.preventDefault();\n e.stopPropagation();\n onEscape();\n }\n break;\n }\n };\n\n const optionId = (i: number) => `${uid}-${i}-${(options[i]?.item.value ?? \"\").replace(/\\s/g, \"_\")}`;\n const groupLabelId = (gi: number) => `${uid}-g-${gi}`;\n const header = (group: CommandListGroup, gi: number) => {\n const count = !counts || group.loading ? undefined : query.trim() ? (shown[gi]?.items.length ?? 0) : group.count;\n return (\n <div aria-hidden className={cn(MENU_LABEL, \"sticky top-0 z-10 gap-10 bg-raised forced-colors:mx-1\", look.caption)}>\n {group.leading}\n <span id={groupLabelId(gi)} className=\"min-w-0 truncate\">\n {group.label}\n </span>\n {count !== undefined && <span className=\"ml-auto shrink-0 font-regular text-fg-tertiary tabular\">{count}</span>}\n {count !== undefined && checks && <span className=\"size-16 shrink-0\" />}\n </div>\n );\n };\n const option = (row: Extract<Row, { kind: \"item\" }>) => {\n const { item, option: i } = row;\n const isActive = i === active;\n const isSelected = commands ? isActive : selected.has(item.value);\n const state = { query, active: isActive, selected: isSelected };\n return (\n <div\n id={optionId(i)}\n role=\"option\"\n aria-selected={isSelected}\n aria-setsize={options.length}\n aria-posinset={i + 1}\n {...(item.disabled ? { \"aria-disabled\": true, \"data-disabled\": \"\" } : {})}\n {...(isActive ? { \"data-highlighted\": \"\" } : {})}\n {...(isSelected ? { \"data-selected\": \"\" } : {})}\n onMouseMove={() => !isActive && !item.disabled && setActive(i)}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => choose(i)}\n className={cn(MENU_ITEM, \"group/opt mx-6 w-auto\", look.item)}\n >\n {multiple && <OptionCheckbox />}\n {item.leading}\n {item.render ? (\n <span className=\"flex min-w-0 flex-1 items-center gap-8\">{item.render(state)}</span>\n ) : (\n <span className=\"min-w-0 flex-1 truncate\">\n <Highlight text={item.label} query={query} />\n </span>\n )}\n {item.meta !== undefined && <span className={cn(MENU_HINT, \"pl-8 font-regular\")}>{item.meta}</span>}\n {checks && (\n <span aria-hidden className={cn(\"flex size-16 shrink-0 items-center justify-center text-fg\", !isSelected && \"opacity-0\")}>\n <Icon icon={__icon_Tick02Icon} size=\"sm\" />\n </span>\n )}\n </div>\n );\n };\n\n const indexes = virtual ? virtualizer.getVirtualItems().map((v) => v.index) : rows.map((_, i) => i);\n const rendered = new Map<number, number[]>();\n for (const index of indexes) {\n const row = rows[index];\n if (!row) continue;\n const list = rendered.get(row.gi) ?? [];\n if (row.kind !== \"header\") list.push(index);\n rendered.set(row.gi, list);\n }\n const empty = rows.length === 0;\n const trimmed = query.trim();\n const emptyMessage = loading\n ? t(\"commandList.loading\", \"Loading…\")\n : (emptyText ?? (trimmed ? t(\"commandList.noResultsFor\", \"No results for “{query}”\", { query: trimmed }) : t(\"commandList.noResults\", \"No results\")));\n const [heard, setHeard] = useState<{ query: string; count: number; empty: boolean } | null>(null);\n const typedFrom = useRef(query);\n useEffect(() => {\n if (query === typedFrom.current) return;\n const timer = setTimeout(() => setHeard({ query: trimmed, count: options.length, empty }), ANNOUNCE_AFTER);\n return () => clearTimeout(timer);\n }, [query, trimmed, options.length, empty]);\n const fade = useCallback((el: HTMLElement | null) => {\n if (el) el.style.setProperty(\"--scroll-area-overflow-y-end\", `${Math.max(0, el.scrollHeight - el.scrollTop - el.clientHeight)}px`);\n }, []);\n useLayoutEffect(() => fade(scroller.current));\n return (\n <div\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\"relative flex min-w-0 flex-col overflow-hidden\", KAESO_COMMAND_LIST_VARIANTS.height[height].classes, className)}\n {...(fitted ? { style: fitted } : {})}\n >\n {loading && (\n <span aria-hidden className=\"absolute inset-x-0 top-0 h-2 overflow-hidden\">\n <span className=\"block h-full w-1/3 animate-indeterminate bg-fg-tertiary reduced:w-full reduced-pulse\" />\n </span>\n )}\n <div\n onMouseDown={(e) => {\n if (e.target !== e.currentTarget) return;\n e.preventDefault();\n e.currentTarget.querySelector(\"input\")?.focus();\n }}\n className={cn(\"flex shrink-0 cursor-text items-center hairline-b\", look.search)}\n >\n <Icon icon={__icon_Search01Icon} size={size === \"lg\" ? \"md\" : \"sm\"} className=\"text-fg-tertiary\" />\n {searchPrefix}\n <input\n ref={ref}\n {...inputProps}\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-label={placeholder ?? t(\"commandList.search\", \"Search\")}\n {...(active >= 0 && options.length > 0 ? { \"aria-activedescendant\": optionId(active) } : {})}\n {...(autoFocus ? { autoFocus: true, \"data-autofocus\": \"\" } : {})}\n type=\"text\"\n autoComplete=\"off\"\n spellCheck={false}\n placeholder={placeholder ?? t(\"commandList.search\", \"Search\")}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={onKeyDown}\n className={cn(\"min-w-0 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-tertiary\", look.input)}\n />\n </div>\n {toolbar && <div className=\"flex shrink-0 flex-wrap items-center gap-8 px-12 py-8 hairline-b\">{toolbar}</div>}\n <div\n ref={scroller}\n id={listId}\n role=\"listbox\"\n aria-label={ariaLabel}\n {...(multiple ? { \"aria-multiselectable\": true } : {})}\n {...(loading ? { \"aria-busy\": true } : {})}\n data-dialog-body=\"\"\n onScroll={(e) => fade(e.currentTarget)}\n {...(labelled ? { style: { scrollPaddingTop: HEADER } } : {})}\n className={cn(\"min-h-0 overflow-y-auto overscroll-contain scroll-fade-y scrollbar-quiet\", height === \"popover\" ? \"flex-initial\" : \"flex-1\")}\n >\n {empty ? (\n <div\n aria-hidden\n className=\"flex h-full min-h-80 items-center justify-center px-16 text-center text-body text-fg-secondary text-balance wrap-anywhere\"\n >\n {emptyMessage}\n </div>\n ) : (\n <div role=\"presentation\" className=\"relative w-full\" style={{ height: (offsets[rows.length] ?? 0) + EDGE }}>\n {[...rendered].map(([gi, indexes]) => {\n const span = spans[gi];\n const group = shown[gi]?.group;\n if (!span || !group) return null;\n const top = offsets[span.first] ?? 0;\n const bottom = (offsets[span.last] ?? top) + sizeOf(rows[span.last], rowHeight);\n return (\n <div\n key={group.id}\n {...(group.label ? { role: \"group\", \"aria-labelledby\": groupLabelId(gi) } : { role: \"presentation\" })}\n className=\"absolute left-0 w-full\"\n style={{ top, height: bottom - top }}\n >\n {group.label && header(group, gi)}\n {indexes.map((index) => {\n const row = rows[index];\n if (row?.kind !== \"item\" && row?.kind !== \"loading\") return null;\n return (\n <div\n key={index}\n role=\"presentation\"\n className=\"absolute left-0 w-full\"\n style={{ top: (offsets[index] ?? 0) - top, height: sizeOf(row, rowHeight) }}\n >\n {row.kind === \"item\" ? (\n option(row)\n ) : (\n <div aria-hidden className={cn(\"flex h-full items-center text-body text-fg-tertiary\", look.caption)}>\n {t(\"commandList.loading\", \"Loading…\")}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n )}\n </div>\n <span role=\"status\" className=\"sr-only\">\n {heard && (heard.empty ? emptyMessage : t(\"commandList.results\", \"{count, plural, one {# result} other {# results}}\", { count: heard.count }))}\n </span>\n {footer}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CommandList.displayName = \"CommandList\";\n"],"mappings":";;;;;;;;;;;;AAAA,IAAMS,IAAa,gBACbC,KAAY;AAElB,SAASC,EAAU,GAAc,GAAuB;CACtD,IAAIC,MAAUC,GAAM,OAAO;CAC3B,IAAID,EAAM,WAAWC,CAAI,GAAG,OAAO;CACnC,IAAMC,IAAKF,EAAM,QAAQC,CAAI;CAC7B,IAAIC,IAAK,GAAG,OAAOJ,GAAU,KAAKE,EAAME,IAAK,MAAM,EAAE,IAAI,KAAK;CAC9D,IAAMC,IAAcF,EAAK,QAAQJ,GAAY,EAAE;CAC/C,IAAIM,KAAeH,EAAM,QAAQH,GAAY,EAAE,CAAC,CAAC,SAASM,CAAW,GAAG,OAAO;CAC/E,IAAIF,EAAK,SAAS,GAAG,OAAO;CAC5B,IAAIG,IAAO,GACPC,IAAO,IACPC,IAAO;CACX,KAAK,IAAIC,IAAI,GAAGA,IAAIP,EAAM,UAAUI,IAAOH,EAAK,QAAQ,KACtD,AAAID,EAAMO,OAAON,EAAKG,OAClBC,KAAQ,KAAKE,MAAMF,IAAO,MAAG,KAAQ,IACzC,IAAOE,GACP,KAAQ;CAEV,OAAOH,IAAOH,EAAK,SAAS,IAAI,KAAK,IAAI,GAAG,KAAKK,IAAO,CAAC;AAC3D;AAEA,SAAgBE,EAAa,GAAe,GAAmC;CAC7E,IAAMC,IAAQC,EAAM,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO;CACpE,IAAID,EAAM,WAAW,GAAG,OAAO;CAC/B,IAAME,IAAQC,EAAO,KAAK,MAAMC,EAAE,YAAY,CAAC,GAC3CC,IAAQ;CACZ,KAAK,IAAMb,KAAQQ,GAAO;EACxB,IAAIM,IAAO;EAIX,IAHAJ,EAAM,SAAS,GAAO,MAAM;GAC1B,IAAO,KAAK,IAAII,GAAMhB,EAAUE,GAAMD,CAAK,KAAKO,MAAM,IAAI,IAAI,GAAI;EACpE,CAAC,GACGQ,MAAS,GAAG,OAAO;EACvB,KAASA;CACX;CACA,OAAOD,IAAQL,EAAM;AACvB;;;ACZA,IAAaO,KAA8B;CACzC,QAAQ;EACN,SAAS,EAAE,SAAS,gBAAgB;EACpC,QAAQ,EACN,SAAS,8CACX;EACA,MAAM,EAAE,SAAS,iBAAiB;CACpC;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,GAAG;EAClB,IAAI,EAAE,SAAS,GAAG;CACpB;AACF,GACaC,KAAsC;CAAE,QAAQ;CAAW,MAAM;AAAK,GAE7EC,KAAQ;CACZ,IAAI;EAAE,QAAQ;EAAqB,OAAO;EAAa,KAAK;EAAI,MAAM;EAAI,SAAS;CAAQ;CAC3F,IAAI;EAAE,QAAQ;EAAqB,OAAO;EAA6B,KAAK;EAAI,MAAM;EAAqC,SAAS;CAAQ;AAC9I,GAyDMC,IAAS,qBACTC,MAAmB,MAAyB;CAChD,IAAI,OAAO,SAAW,OAAe,CAAC,OAAO,YAAY,aAAa,CAAC;CACvE,IAAMC,IAAI,OAAO,WAAWF,CAAM;CAElC,OADAE,EAAE,iBAAiB,UAAUC,CAAQ,SACxBD,EAAE,oBAAoB,UAAUC,CAAQ;AACvD,GACMC,WAAiB,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,aAAaJ,CAAM,CAAC,CAAC,SAEhFK,IAAS,IACTC,KAAY,GACZC,IAAO,GACPC,KAAiB,KACjBC,KAAS;CAAE,IAAI;CAAI,IAAI;AAAG,GAC1BC,KAAQ,IACRC,IAAoB,KACpBC,KAAmB,KAEZC,KAA2C,kBAAwC,IAAI;AAOpG,SAASC,GAAU,GAAyF;CAC1G,IAAMC,IAAc,CAAC,GACfC,IAAgE,CAAC,GACjEC,IAA2C,CAAC;CAWlD,OAVAC,EAAM,SAAS,EAAE,UAAO,YAAS,MAAO;EACtC,IAAMC,IAAQJ,EAAK;EAEnB,AADIK,EAAM,SAAOL,EAAK,KAAK;GAAE,MAAM;GAAU;GAAO;EAAG,CAAC,GACpDK,EAAM,WAAWC,EAAM,WAAW,KAAGN,EAAK,KAAK;GAAE,MAAM;GAAW;EAAG,CAAC;EAC1E,KAAK,IAAM,EAAE,SAAM,cAAWM,GAE5B,AADAL,EAAQ,KAAK;GAAE,KAAKD,EAAK;GAAQ;GAAM;EAAG,CAAC,GAC3CA,EAAK,KAAK;GAAE,MAAM;GAAQ;GAAM;GAAI,QAAQC,EAAQ,SAAS;GAAG;EAAM,CAAC;EAEzE,EAAM,KAAK;GAAE;GAAO,MAAMD,EAAK,SAAS;EAAE,CAAC;CAC7C,CAAC,GACM;EAAE;EAAM;EAAS;CAAM;AAChC;AAEA,IAAMO,KAAU,GAAsB,MAAuBC,GAAK,SAAS,WAAWlB,IAASmB,GACzFC,MAAY,GAAa,MAAeV,EAAK3B,IAAI,EAAE,EAAE,SAAS,WAAWkB,KAAY;AAE3F,SAASoB,GAAW,GAAa,GAAmB;CAClD,IAAMC,IAAM,CAACpB,CAAI;CAEjB,OADAQ,EAAK,SAAS,GAAK,MAAMY,EAAI,MAAMA,EAAI,MAAMpB,KAAQe,EAAOC,GAAKC,CAAS,IAAIC,GAASV,GAAM,CAAC,CAAC,CAAC,GACzFY;AACT;AAEA,IAAMC,MAAS,GAAuB,MAAkBvC,EAAaE,GAAO,CAACsC,EAAK,OAAO,GAAIA,EAAK,YAAY,CAAC,CAAE,CAAC;AAElH,SAASC,GAAc,GAA4B,GAAe,GAAyD;CACzH,IAAM5B,IAAIX,EAAM,KAAK,GACfwC,KAAQ,MAAqDC,EAAE,MAAM,SAAS,KAAK,CAAC,CAACA,EAAE,MAAM;CAEnG,OADK9B,IACE+B,EACJ,KAAK,GAAG,MAAU;EACjB,IAAMZ,IAAQW,EAAE,MACb,KAAK,OAAU;GAAE;GAAM,OAAOE,EAAML,GAAM3B,CAAC;EAAE,EAAE,CAAC,CAChD,QAAQ,MAAMiC,EAAE,QAAQ,CAAC,CAAC,CAC1B,MAAM,GAAG,MAAMC,EAAE,QAAQC,EAAE,KAAK;EACnC,OAAO;GAAE,OAAOL;GAAG;GAAO;GAAO,MAAMX,EAAM,EAAE,EAAE,SAAS;EAAE;CAC9D,CAAC,CAAC,CACD,OAAOU,CAAI,CAAC,CACZ,MAAM,GAAG,MAAMK,EAAE,OAAOC,EAAE,QAAQA,EAAE,QAAQD,EAAE,KAAK,IAVvCH,EAAO,KAAK,OAAO;EAAE,OAAOD;EAAG,OAAOA,EAAE,MAAM,KAAK,OAAU;GAAE;GAAM,OAAO;EAAE,EAAE;CAAE,EAAE,CAAC,CAAC,OAAOD,CAAI;AAWlH;AAEA,SAASO,GAAoB,GAAgD,GAAuD;CAClI,OAAOC,EAAmBC,IAAW,MAASC,EAAGC,EAAK,SAAS,IAAIA,IAAO;EAAE,OAAOA,EAAK;EAAO,QAAQ/B;CAAkB,CAAC,CAAC;AAC7H;AAEA,IAAagC,IAA8B,kBAA+C,SACxF,EACE,WACA,cAAcC,GACd,UACA,aACA,cACA,OAAOC,GACP,kBAAe,IACf,mBACA,gBACA,eACA,YACA,YACA,kBACA,YACA,oBACA,UAAO,MACP,QAAQC,IACR,eACA,cACA,mBAAe,IACf,WAAQlB,IACR,aAAS,IACT,gBACA,eACA,cAAcmB,MAEhB,IACA;CACA,IAAMC,IAAI1E,EAAU,GACd2E,KAAYC,GAAWrC,EAAwB,GAC/CsC,IAASL,MAAcG,MAAa,WACpCG,IAAMC,GAAM,GACZC,KAAS,GAAGF,EAAI,QAChB,CAACG,IAAUC,MAAeC,EAASC,CAAY,GAC/CnE,IAAQsD,KAAmBU,IAC3BI,KAASC,GAAqB3D,IAAiBG,UAAgB,EAAK,GACpEyD,IAAO9D,GAAM+D,IACbtC,IAAYmC,KAAS,KAAK,IAAI,IAAIE,EAAK,GAAG,IAAIA,EAAK,KACnDE,KAAWC,MAAU,KAAA,KAAa,CAACC,GACnCC,KAAS,CAACD,KAAY,CAACF,IACvBI,KAAWC,QAAc,IAAI,IAAIJ,KAAS,OAAO,CAAC,IAAI,OAAOA,KAAU,WAAW,CAACA,CAAK,IAAIA,CAAK,GAAG,CAACA,CAAK,CAAC,GAE3G9C,IAAQkD,QAActC,GAAcG,GAAQ1C,GAAO2C,CAAK,GAAG;EAACD;EAAQ1C;EAAO2C;CAAK,CAAC,GACjF,EAAE,SAAM,YAAS,cAAUkC,QAActD,GAAUI,CAAK,GAAG,CAACA,CAAK,CAAC,GAClEmD,KAAWnD,EAAM,MAAM,MAAMc,EAAE,MAAM,KAAK,GAC1CsC,IAAOnB,MAAW,YAAY,CAACoB,KAAW,CAACC,IAC3CC,KAAaL,QAAc;EAC/B,IAAI,CAACE,GAAM,OAAO;EAClB,IAAMI,IAAM5D,GAAUgB,GAAcG,GAAQ,IAAIC,CAAK,CAAC,CAAC,CAAC;EACxD,QAAQR,GAAWgD,GAAKlD,CAAS,CAAC,CAACkD,EAAI,WAAWnE,KAAQA;CAC5D,GAAG;EAAC+D;EAAMrC;EAAQC;EAAOV;CAAS,CAAC,GAC7BmD,KAASL,IAAO,EAAE,QAAQ7D,GAAOqD,KAAQ,KAAW,KAAK,IAAIW,IAAY/D,EAAK,EAAE,IAAI,KAAA,GACpFkE,IAAUR,QAAc1C,GAAWX,GAAMS,CAAS,GAAG,CAACT,GAAMS,CAAS,CAAC,GAEtEqD,IAAeC,GAClB,GAAc,MAAiB;EAC9B,KAAK,IAAI1F,IAAI2F,GAAM3F,KAAK,KAAKA,IAAI4B,EAAQ,QAAQ,KAAKgE,GAAM,IAAI,CAAChE,EAAQ5B,EAAE,EAAE,KAAK,UAAU,OAAOA;EACnG,OAAO;CACT,GACA,CAAC4B,CAAO,CACV,GACMiE,WAAsB;EAC1B,IAAMC,IAASlE,EAAQ,WAAW,MAAMmD,GAAS,IAAIgB,EAAE,KAAK,KAAK,KAAK,CAACA,EAAE,KAAK,QAAQ;EACtF,OAAOD,KAAU,IAAIA,IAASL,EAAa,GAAG,CAAC;CACjD,GACM,CAACO,GAAQC,KAAa5B,EAASwB,EAAa,GAC5CK,IAAYlB,QAAc,GAAG7E,EAAM,KAAK,EAAE,QAAQyB,EAAQ,KAAK,MAAMmE,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,IAAQ,KAAK,CAACnE,GAASzB,CAAK,CAAC,GACrH,CAACgG,IAAUC,MAAe/B,EAAS6B,CAAS;CAClD,AAAIC,OAAaD,MACfE,GAAYF,CAAS,GACrBD,EAAU9F,EAAM,KAAK,IAAIsF,EAAa,GAAG,CAAC,IAAII,GAAc,CAAC;CAE/D,IAAMQ,KAAYC,EAAON,CAAM;CAC/B,GAAU,UAAUA;CAEpB,IAAMO,IAAWD,EAA8B,IAAI,GAC7CE,IAAU7E,EAAK,SAASH,IACxBiF,IAAcC,GAAwC;EAC1D,SAASF;EACT,OAAO7E,EAAK;EACZ,wBAAwB4E,EAAS;EACjC,eAAe,MAAMrE,EAAOP,EAAK3B,IAAIoC,CAAS,IAAIC,GAASV,GAAM3B,CAAC;EAClE,UAAU;EACV,cAAc;EACd,cAAcmB;EACd,YAAYA;EACZ,oBAAoB8D,KAAWhE,IAAS;EACxC,oBAAoBiC;EACpB,aAAa;GAAE,OAAO;GAAG,QAAQ3B;EAAkB;EACnD,iBAAiB,MAAiB;GAChC,IAAMoF,IAAY/E,EAAQyE,GAAU,QAAQ,EAAE,KACxCO,IAAOC,GAAsBC,CAAK;GACxC,OAAOH,MAAc,KAAA,KAAaC,EAAK,SAASD,CAAS,IAAIC,IAAO,CAAC,GAAGA,GAAMD,CAAS,CAAC,CAAC,MAAM,GAAG,MAAM1D,IAAID,CAAC;EAC/G;CACF,CAAC,GACK+D,IAAeT,EAAO,EAAK;CACjC,QAAsB;EACpB,AAAIE,KAASC,EAAY,QAAQ;CACnC,GAAG;EAACrE;EAAWqE;EAAaD;CAAO,CAAC;CACpC,IAAMQ,MAAU,GAAa,MAA6B;EACxD,IAAIR,GAAS,OAAOC,EAAY,cAActE,GAAK,EAAE,SAAM,CAAC;EAC5D,IAAM8E,IAASrF,EAAQ,MAAM,MAAMmE,EAAE,QAAQ5D,CAAG;EAEhD,CADW8E,IAAS,SAAS,eAAeC,EAAStF,EAAQ,QAAQqF,CAAM,CAAC,CAAC,IAAI,KAAA,EAC7E,iBAAiB,EAAE,OAAOE,MAAU,SAAS,YAAY,SAAS,CAAC;CACzE;CACA,SAAgB;EACd,IAAMhF,IAAMP,EAAQoE,EAAO,EAAE;EAC7B,AAAI7D,MAAQ,KAAA,KACR4E,EAAa,YACf,EAAa,UAAU,IACvBC,GAAO7E,GAAK,MAAM;CAEtB,CAAC;CACD,IAAMiF,KAASd,EAAO,EAAK;CAC3B,QAAsB;EACpB,IAAIc,GAAO,SAAS;EACpB,GAAO,UAAU;EACjB,IAAMjF,IAAMP,EAAQoE,EAAO,EAAE;EAC7B,AAAI7D,MAAQ,KAAA,KAAaA,IAAM,KAAG6E,GAAO7E,GAAK,QAAQ;CACxD,CAAC;CAED,IAAMkF,MAAY,MAAiB;EAEjC,AADI5D,MAAoB,KAAA,KAAWW,GAAYvE,CAAI,GACnDyH,KAAgBzH,CAAI;CACtB,GACM0H,KAAQ,MAAe;EAC3B,AAAIC,IAAK,MACT,EAAa,UAAU,IACvBvB,EAAUuB,CAAE;CACd,GACMC,KAAO,KAAK,IAAI,GAAG,KAAK,OAAOlB,EAAS,SAAS,gBAAgBhF,KAAqBa,CAAS,IAAI,CAAC,GACpGsF,MAAU,MAAc;EAC5B,IAAM3B,IAAInE,EAAQ5B;EAClB,AAAK+F,KAAK,GAAE,KAAK,aACjBE,EAAUjG,CAAC,GACX2H,KAAW5B,EAAE,KAAK,KAAK;CACzB,GACM6B,MAAa,MAAuC;EAExD,IADAC,KAAiB,CAAC,GACd,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS;EAC9D,IAAM/H,IAAO8B,EAAQ,SAAS;EAC9B,QAAQ,EAAE,KAAV;GACE,KAAK;IAEH,AADA,EAAE,eAAe,GACjB2F,EAAKvB,IAAS,IAAIP,EAAa,GAAG,CAAC,IAAIA,EAAaO,IAAS,GAAG,CAAC,KAAK,IAAIP,EAAaO,IAAS,GAAG,CAAC,IAAIP,EAAa,GAAG,CAAC,CAAC;IAC1H;GACF,KAAK;IAEH,AADA,EAAE,eAAe,GACjB8B,EAAKvB,IAAS,IAAIP,EAAa3F,GAAM,EAAE,IAAI2F,EAAaO,IAAS,GAAG,EAAE,KAAK,IAAIP,EAAaO,IAAS,GAAG,EAAE,IAAIP,EAAa3F,GAAM,EAAE,CAAC;IACpI;GACF,KAAK;IACH,IAAI,EAAE,UAAU;IAEhB,AADA,EAAE,eAAe,GACjByH,EAAK9B,EAAa,GAAG,CAAC,CAAC;IACvB;GACF,KAAK;IACH,IAAI,EAAE,UAAU;IAEhB,AADA,EAAE,eAAe,GACjB8B,EAAK9B,EAAa3F,GAAM,EAAE,CAAC;IAC3B;GACF,KAAK;IAEH,AADA,EAAE,eAAe,GACjByH,EAAK9B,EAAa,KAAK,IAAI3F,GAAM,KAAK,IAAIkG,GAAQ,CAAC,IAAIyB,EAAI,GAAG,EAAE,CAAC;IACjE;GACF,KAAK;IAEH,AADA,EAAE,eAAe,GACjBF,EAAK9B,EAAa,KAAK,IAAI,GAAGO,IAASyB,EAAI,GAAG,CAAC,CAAC;IAChD;GACF,KAAK;IACH,IAAIzB,IAAS,GAAG;IAGhB,AAFA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB0B,GAAO1B,CAAM;IACb;GACF,KAAK,UACH,AAAI7F,KAAS2H,MACX,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClBT,GAAS,EAAE,KACFU,OACT,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClBA,GAAS;EAGf;CACF,GAEMb,KAAY,MAAc,GAAGlD,EAAI,GAAGhE,EAAE,IAAI4B,EAAQ5B,EAAE,EAAE,KAAK,SAAS,GAAA,CAAI,QAAQ,OAAO,GAAG,KAC1FgI,MAAgB,MAAe,GAAGhE,EAAI,KAAKiE,KAC3CC,MAAU,GAAyB,MAAe;EACtD,IAAMC,IAAQ,CAACC,MAAUpG,EAAM,UAAU,KAAA,IAAY7B,EAAM,KAAK,IAAK2B,EAAMmG,EAAG,EAAE,MAAM,UAAU,IAAKjG,EAAM;EAC3G,OACE,kBAAC,OAAD;GAAK,eAAA;GAAY,WAAW/C,EAAGF,GAAY,yDAAyD0F,EAAK,OAAO;GAAhH,UAAA;IACGzC,EAAM;IACP,kBAAC,QAAD;KAAM,IAAIgG,GAAaC,CAAE;KAAG,WAAU;KACnC,UAAAjG,EAAM;IACH,CAAA;IACLmG,MAAU,KAAA,KAAa,kBAAC,QAAD;KAAM,WAAU;KAA0D,UAAAA;IAAY,CAAA;IAC7GA,MAAU,KAAA,KAAarD,MAAU,kBAAC,QAAD,EAAM,WAAU,mBAAoB,CAAA;GACnE;;CAET,GACMmC,MAAU,MAAwC;EACtD,IAAM,EAAE,SAAM,QAAQjH,MAAMmC,GACtBkG,IAAWrI,MAAMgG,GACjBsC,IAAa3D,KAAW0D,IAAWtD,GAAS,IAAItC,EAAK,KAAK,GAC1D8F,KAAQ;GAAE;GAAO,QAAQF;GAAU,UAAUC;EAAW;EAC9D,OACE,kBAAC,OAAD;GACE,IAAIpB,EAASlH,CAAC;GACd,MAAK;GACL,iBAAesI;GACf,gBAAc1G,EAAQ;GACtB,iBAAe5B,IAAI;GACnB,GAAKyC,EAAK,WAAW;IAAE,iBAAiB;IAAM,iBAAiB;GAAG,IAAI,CAAC;GACvE,GAAK4F,IAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;GAC9C,GAAKC,IAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC7C,mBAAmB,CAACD,KAAY,CAAC5F,EAAK,YAAYwD,EAAUjG,CAAC;GAC7D,cAAc,MAAM,EAAE,eAAe;GACrC,eAAe0H,GAAO1H,CAAC;GACvB,WAAWf,EAAGD,GAAW,yBAAyByF,EAAK,IAAI;GAZ7D,UAAA;IAcGI,KAAY,kBAACzF,GAAD,CAAiB,CAAA;IAC7BqD,EAAK;IACLA,EAAK,SACJ,kBAAC,QAAD;KAAM,WAAU;KAA0C,UAAAA,EAAK,OAAO8F,EAAK;IAAQ,CAAA,IAEnF,kBAAC,QAAD;KAAM,WAAU;KACd,UAAA,kBAAClJ,GAAD;MAAW,MAAMoD,EAAK;MAAc;KAAQ,CAAA;IACxC,CAAA;IAEPA,EAAK,SAAS,KAAA,KAAa,kBAAC,QAAD;KAAM,WAAWxD,EAAA,6KAAc,mBAAmB;KAAI,UAAAwD,EAAK;IAAW,CAAA;IACjGqC,MACC,kBAAC,QAAD;KAAM,eAAA;KAAY,WAAW7F,EAAG,6DAA6D,CAACqJ,KAAc,WAAW;KACrH,UAAA,kBAACnJ,GAAD;MAAM,MAAMN;MAAmB,MAAK;KAAM,CAAA;IACtC,CAAA;GAEL;;CAET,GAEM4J,KAAUjC,IAAUC,EAAY,gBAAgB,CAAC,CAAC,KAAK,MAAMiC,EAAE,KAAK,IAAI/G,EAAK,KAAK,GAAG,MAAM3B,CAAC,GAC5F2I,oBAAW,IAAI,IAAsB;CAC3C,KAAK,IAAMC,KAASH,IAAS;EAC3B,IAAMtG,IAAMR,EAAKiH;EACjB,IAAI,CAACzG,GAAK;EACV,IAAM0G,IAAOF,EAAS,IAAIxG,EAAI,EAAE,KAAK,CAAC;EAEtC,AADIA,EAAI,SAAS,YAAU0G,EAAK,KAAKD,CAAK,GAC1CD,EAAS,IAAIxG,EAAI,IAAI0G,CAAI;CAC3B;CACA,IAAMC,IAAQnH,EAAK,WAAW,GACxBoH,IAAU5I,EAAM,KAAK,GACrB6I,KAAeC,IACjBrF,EAAE,uBAAuB,UAAU,IAClCsF,OAAcH,IAAUnF,EAAE,4BAA4B,4BAA4B,EAAE,OAAOmF,EAAQ,CAAC,IAAInF,EAAE,yBAAyB,YAAY,IAC9I,CAACuF,GAAOC,MAAY/E,EAAkE,IAAI,GAC1FgF,KAAY/C,EAAOnG,CAAK;CAC9B,SAAgB;EACd,IAAIA,MAAUkJ,GAAU,SAAS;EACjC,IAAMC,IAAQ,iBAAiBF,GAAS;GAAE,OAAOL;GAAS,OAAOnH,EAAQ;GAAQ;EAAM,CAAC,GAAGR,EAAc;EACzG,aAAa,aAAakI,CAAK;CACjC,GAAG;EAACnJ;EAAO4I;EAASnH,EAAQ;EAAQkH;CAAK,CAAC;CAC1C,IAAMS,KAAO7D,GAAa,MAA2B;EACnD,AAAI8D,KAAIA,EAAG,MAAM,YAAY,gCAAgC,GAAG,KAAK,IAAI,GAAGA,EAAG,eAAeA,EAAG,YAAYA,EAAG,YAAY,EAAE,GAAG;CACnI,GAAG,CAAC,CAAC;CAEL,OADAC,QAAsBF,GAAKhD,EAAS,OAAO,CAAC,GAE1C,kBAAC,OAAD;EACE,GAAK5C,KAAQ,EAAE,cAAcA,GAAM,IAAI,CAAC;EACxC,WAAW1E,EAAG,kDAAkDwB,GAA4B,OAAOsD,EAAO,CAAC,SAAS2F,EAAS;EAC7H,GAAKnE,KAAS,EAAE,OAAOA,GAAO,IAAI,CAAC;EAHrC,UAAA;GAKG0D,KACC,kBAAC,QAAD;IAAM,eAAA;IAAY,WAAU;IAC1B,UAAA,kBAAC,QAAD,EAAM,WAAU,uFAAwF,CAAA;GACpG,CAAA;GAER,kBAAC,OAAD;IACE,cAAc,MAAM;KAClB,AAAI,EAAE,WAAW,EAAE,kBACnB,EAAE,eAAe,GACjB,EAAE,cAAc,cAAc,OAAO,CAAC,EAAE,MAAM;IAChD;IACA,WAAWhK,EAAG,qDAAqDwF,EAAK,MAAM;IANhF,UAAA;KAQE,kBAACtF,GAAD;MAAM,MAAML;MAAqB,MAAM4F,MAAS,OAAO,OAAO;MAAM,WAAU;KAAoB,CAAA;KACjGkF;KACD,kBAAC,SAAD;MACO;MACL,GAAIC;MACJ,MAAK;MACL,iBAAc;MACd,iBAAe3F;MACf,qBAAkB;MAClB,cAAY4F,KAAelG,EAAE,sBAAsB,QAAQ;MAC3D,GAAKoC,KAAU,KAAKpE,EAAQ,SAAS,IAAI,EAAE,yBAAyBsF,EAASlB,CAAM,EAAE,IAAI,CAAC;MAC1F,GAAK+D,KAAY;OAAE,WAAW;OAAM,kBAAkB;MAAG,IAAI,CAAC;MAC9D,MAAK;MACL,cAAa;MACb,YAAY;MACZ,aAAaD,KAAelG,EAAE,sBAAsB,QAAQ;MAC5D,OAAOzD;MACP,WAAW,MAAMkH,GAAS,EAAE,OAAO,KAAK;MAC7B;MACX,WAAWpI,EAAG,mFAAmFwF,EAAK,KAAK;KAC5G,CAAA;IACE;;GACJU,KAAW,kBAAC,OAAD;IAAK,WAAU;IAAoE,UAAAA;GAAa,CAAA;GAC5G,kBAAC,OAAD;IACE,KAAKoB;IACL,IAAIrC;IACJ,MAAK;IACL,cAAYV;IACZ,GAAKqB,IAAW,EAAE,wBAAwB,GAAK,IAAI,CAAC;IACpD,GAAKoE,IAAU,EAAE,aAAa,GAAK,IAAI,CAAC;IACxC,oBAAiB;IACjB,WAAW,MAAMM,GAAK,EAAE,aAAa;IACrC,GAAKtE,KAAW,EAAE,OAAO,EAAE,kBAAkBhE,EAAO,EAAE,IAAI,CAAC;IAC3D,WAAWhC,EAAG,4EAA4E8E,MAAW,YAAY,iBAAiB,QAAQ;IAEzI,UAAA+E,IACC,kBAAC,OAAD;KACE,eAAA;KACA,WAAU;KAET,UAAAE;IACE,CAAA,IAEL,kBAAC,OAAD;KAAK,MAAK;KAAe,WAAU;KAAkB,OAAO,EAAE,SAASxD,EAAQ7D,EAAK,WAAW,KAAKR,EAAK;KACtG,UAAA,CAAC,GAAGwH,CAAQ,CAAC,CAAC,KAAK,CAACV,GAAIQ,OAAa;MACpC,IAAMuB,IAAOnI,GAAMoG,IACbjG,IAAQF,EAAMmG,EAAG,EAAE;MACzB,IAAI,CAAC+B,KAAQ,CAAChI,GAAO,OAAO;MAC5B,IAAMiI,IAAMzE,EAAQwE,EAAK,UAAU,GAC7BE,KAAU1E,EAAQwE,EAAK,SAASC,KAAO/H,EAAOP,EAAKqI,EAAK,OAAO5H,CAAS;MAC9E,OACE,kBAAC,OAAD;OAEE,GAAKJ,EAAM,QAAQ;QAAE,MAAM;QAAS,mBAAmBgG,GAAaC,CAAE;OAAE,IAAI,EAAE,MAAM,eAAe;OACnG,WAAU;OACV,OAAO;QAAE;QAAK,QAAQiC,IAASD;OAAI;OAJrC,UAAA,CAMGjI,EAAM,SAASkG,GAAOlG,GAAOiG,CAAE,GAC/BQ,EAAQ,KAAK,MAAU;QACtB,IAAMtG,IAAMR,EAAKiH;QAEjB,OADIzG,GAAK,SAAS,UAAUA,GAAK,SAAS,YAAkB,OAE1D,kBAAC,OAAD;SAEE,MAAK;SACL,WAAU;SACV,OAAO;UAAE,MAAMqD,EAAQoD,MAAU,KAAKqB;UAAK,QAAQ/H,EAAOC,GAAKC,CAAS;SAAE;SAEzE,UAAAD,EAAI,SAAS,SACZ8E,GAAO9E,CAAG,IAEV,kBAAC,OAAD;UAAK,eAAA;UAAY,WAAWlD,EAAG,uDAAuDwF,EAAK,OAAO;UAC/F,UAAAb,EAAE,uBAAuB,UAAU;SACjC,CAAA;QAEJ,GAZEgF,CAYF;OAET,CAAC,CACE;MA1BE,GAAA5G,EAAM,EA0BR;KAET,CAAC;IACE,CAAA;GAEJ,CAAA;GACL,kBAAC,QAAD;IAAM,MAAK;IAAS,WAAU;IAC3B,UAAAmH,MAAUA,EAAM,QAAQH,KAAepF,EAAE,uBAAuB,qDAAqD,EAAE,OAAOuF,EAAM,MAAM,CAAC;GACxI,CAAA;GACL/D;EACE;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./cn-
|
|
2
|
+
import { t as e } from "./cn-BjnOAUrA.js";
|
|
3
3
|
import { i as t } from "./context-BELWW79w.js";
|
|
4
|
-
import { t as n } from "./icon-
|
|
5
|
-
import { r } from "./tooltip-
|
|
4
|
+
import { t as n } from "./icon-CBzOwqrX.js";
|
|
5
|
+
import { r } from "./tooltip-Tkm-urbi.js";
|
|
6
6
|
import { t as i } from "./use-truncated-CW0hByYt.js";
|
|
7
|
-
import { n as a } from "./button-
|
|
7
|
+
import { n as a } from "./button-IblhXUyZ.js";
|
|
8
8
|
import { t as o } from "./use-copy-Dm2ncvMX.js";
|
|
9
9
|
import { forwardRef as s, useCallback as c, useLayoutEffect as l, useRef as u, useState as d } from "react";
|
|
10
10
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
@@ -51,17 +51,24 @@ var y = { size: {
|
|
|
51
51
|
sm: { classes: "h-32 pl-12 pr-0 text-small" },
|
|
52
52
|
md: { classes: "h-36 pl-16 pr-2 text-small" },
|
|
53
53
|
lg: { classes: "h-40 pl-18 pr-4 text-small" }
|
|
54
|
-
} }, b = { size: "md" }, x = /* @__PURE__ */ s(function({ value: t, display: n, label:
|
|
54
|
+
} }, b = { size: "md" }, x = /* @__PURE__ */ s(function({ value: t, display: n, label: a, size: o = "md", className: s, ...c }, l) {
|
|
55
|
+
let d = u(null), m = i(d), h = /* @__PURE__ */ f("span", {
|
|
56
|
+
ref: d,
|
|
57
|
+
className: "mono min-w-0 flex-1 truncate rounded-code text-fg select-all focus-ring",
|
|
58
|
+
...m ? { tabIndex: 0 } : {},
|
|
59
|
+
children: n ?? t
|
|
60
|
+
});
|
|
55
61
|
return /* @__PURE__ */ p("div", {
|
|
56
|
-
ref:
|
|
57
|
-
className: e("inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1", y.size[
|
|
58
|
-
...
|
|
59
|
-
children: [/* @__PURE__ */ f(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
ref: l,
|
|
63
|
+
className: e("inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1", y.size[o].classes, s),
|
|
64
|
+
...c,
|
|
65
|
+
children: [m ? /* @__PURE__ */ f(r, {
|
|
66
|
+
content: t,
|
|
67
|
+
shape: "multiline",
|
|
68
|
+
children: h
|
|
69
|
+
}) : h, /* @__PURE__ */ f(v, {
|
|
63
70
|
value: t,
|
|
64
|
-
label:
|
|
71
|
+
label: a,
|
|
65
72
|
size: "sm"
|
|
66
73
|
})]
|
|
67
74
|
});
|
|
@@ -113,7 +120,7 @@ var E = /* @__PURE__ */ s(function({ value: a, children: s, label: l, onCopy: g,
|
|
|
113
120
|
onClick: async () => {
|
|
114
121
|
await x(a) && g?.(a);
|
|
115
122
|
},
|
|
116
|
-
className: e("group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target", "hover:bg-fill-1 active:bg-fill-2 cursor-copy", _),
|
|
123
|
+
className: e("group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring-inset tap-target", "hover:bg-fill-1 active:bg-fill-2 cursor-copy", _),
|
|
117
124
|
...v,
|
|
118
125
|
children: [
|
|
119
126
|
/* @__PURE__ */ f("span", {
|
|
@@ -139,4 +146,4 @@ process.env.NODE_ENV !== "production" && (E.displayName = "InlineCopyText");
|
|
|
139
146
|
//#endregion
|
|
140
147
|
export { y as a, b as i, v as n, _ as o, E as r, g as s, x as t };
|
|
141
148
|
|
|
142
|
-
//# sourceMappingURL=copy-button-
|
|
149
|
+
//# sourceMappingURL=copy-button-CwU8t_9_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-button-CwU8t_9_.js","names":["__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","useTruncated","Button","useCopy","KAESO_COPY_BUTTON_VARIANTS","KAESO_COPY_BUTTON_DEFAULT_VARIANTS","CopyButton","labelProp","props","hover","setHover","useState","t","label","done","Tooltip","copied","Tick02Icon","Copy01Icon","copy","value","onCopy","KAESO_CLIPBOARD_TEXT_VARIANTS","KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","ClipboardText","text","useRef","cut","shown","display","size","className","ICON_ROOM","sharesLine","sibling","style","parent","hasRoomAfter","node","el","overflow","useRoomAfter","button","setButton","room","setRoom","useLayoutEffect","touch","check","watch","InlineCopyText","buttonRef","useCallback","ref","children"],"sources":["../../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useCallback, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Button, type ButtonSize } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COPY_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n secondary: { classes: \"material-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_COPY_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface CopyButtonProps {\n value: string;\n label?: string | undefined;\n size?: ButtonSize | undefined;\n variant?: keyof typeof KAESO_COPY_BUTTON_VARIANTS.variant | undefined;\n onCopy?: ((value: string) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const CopyButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, CopyButtonProps>(function CopyButton(\n { value, label: labelProp, size = \"sm\", variant = \"ghost\", onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const t = useUiText();\n const label = labelProp ?? t(\"copyButton.copy\", \"Copy\");\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip content={copied ? done : label} open={copied || hover} onOpenChange={setHover}>\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n size={size}\n variant={variant}\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n aria-label={copied ? done : label}\n className={className}\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n {...props}\n />\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CopyButton.displayName = \"CopyButton\";\n\nexport const KAESO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: { classes: \"h-32 pl-12 pr-0 text-small\" },\n md: { classes: \"h-36 pl-16 pr-2 text-small\" },\n lg: { classes: \"h-40 pl-18 pr-4 text-small\" },\n },\n} as const;\nexport const KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ClipboardTextProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n value: string;\n display?: ReactNode | undefined;\n label?: string | undefined;\n size?: keyof typeof KAESO_CLIPBOARD_TEXT_VARIANTS.size | undefined;\n}\n\nexport const ClipboardText = /* @__PURE__ */ forwardRef<HTMLDivElement, ClipboardTextProps>(function ClipboardText(\n { value, display, label, size = \"md\", className, ...props },\n ref,\n) {\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const shown = (\n <span ref={text} className=\"mono min-w-0 flex-1 truncate rounded-code text-fg select-all focus-ring\" {...(cut ? { tabIndex: 0 } : {})}>\n {display ?? value}\n </span>\n );\n return (\n <div\n ref={ref}\n className={cn(\"inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1\", KAESO_CLIPBOARD_TEXT_VARIANTS.size[size].classes, className)}\n {...props}\n >\n {cut ? (\n <Tooltip content={value} shape=\"multiline\">\n {shown}\n </Tooltip>\n ) : (\n shown\n )}\n <CopyButton value={value} label={label} size=\"sm\" />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClipboardText.displayName = \"ClipboardText\";\n\nexport interface InlineCopyTextProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"children\" | \"onCopy\"> {\n value: string;\n children?: ReactNode | undefined;\n label?: string | undefined;\n onCopy?: ((value: string) => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ICON_ROOM = 18;\n\nfunction sharesLine(sibling: Node, parent: CSSStyleDeclaration): boolean {\n if (sibling.nodeType === Node.TEXT_NODE) return !!sibling.textContent?.trim();\n if (!(sibling instanceof Element)) return false;\n const style = getComputedStyle(sibling);\n if (style.display === \"none\" || style.position === \"absolute\" || style.position === \"fixed\") return false;\n if (parent.display.endsWith(\"flex\")) return !parent.flexDirection.startsWith(\"column\");\n if (parent.display === \"block\" || parent.display === \"flow-root\" || parent.display === \"list-item\") return style.display.startsWith(\"inline\");\n return true;\n}\n\nfunction hasRoomAfter(el: Element): boolean {\n let node = el;\n for (let parent = el.parentElement; parent; node = parent, parent = parent.parentElement) {\n const style = getComputedStyle(parent);\n for (let sibling = node.nextSibling; sibling; sibling = sibling.nextSibling) if (sharesLine(sibling, style)) return false;\n if ((parseFloat(style.direction === \"rtl\" ? style.paddingLeft : style.paddingRight) || 0) >= ICON_ROOM) return true;\n const overflow = style.overflowX || style.overflow;\n if (overflow && overflow !== \"visible\") return false;\n }\n return true;\n}\n\nfunction useRoomAfter() {\n const [button, setButton] = useState<HTMLButtonElement | null>(null);\n const [room, setRoom] = useState(false);\n useLayoutEffect(() => {\n const parent = button?.parentElement;\n if (!button || !parent) return;\n const touch = typeof window.matchMedia === \"function\" ? window.matchMedia(\"(pointer: coarse)\") : null;\n const check = () => setRoom(!touch?.matches && hasRoomAfter(button));\n check();\n const watch = new MutationObserver(check);\n watch.observe(parent, { childList: true });\n touch?.addEventListener(\"change\", check);\n return () => {\n watch.disconnect();\n touch?.removeEventListener(\"change\", check);\n };\n }, [button]);\n return [room, setButton] as const;\n}\n\nexport const InlineCopyText = /* @__PURE__ */ forwardRef<HTMLButtonElement, InlineCopyTextProps>(function InlineCopyText(\n { value, children, label, onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const [room, setButton] = useRoomAfter();\n const buttonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n setButton(el);\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [ref, setButton],\n );\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const t = useUiText();\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip\n content={copied ? done : cut ? value : (label ?? t(\"copyButton.copy\", \"Copy\"))}\n shape={cut && !copied ? \"multiline\" : \"pill\"}\n open={copied || hover}\n onOpenChange={setHover}\n >\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n className={cn(\n \"group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring-inset tap-target\",\n \"hover:bg-fill-1 active:bg-fill-2 cursor-copy\",\n className,\n )}\n {...props}\n >\n <span ref={text} className=\"min-w-0 truncate\">\n {children ?? value}\n </span>\n <Icon\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n size=\"xs\"\n className={cn(\n room && \"pointer-events-none absolute start-full group-hover/copy:pointer-events-auto group-focus-visible/copy:pointer-events-auto\",\n \"text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100\",\n copied && \"pointer-events-auto opacity-100 text-fg\",\n )}\n />\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? done : \"\"}\n </span>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") InlineCopyText.displayName = \"InlineCopyText\";\n"],"mappings":"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"}
|