@logicplanes/kaeso-ui 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-guides.md +279 -98
- package/ai/component-registry.json +352 -236
- package/ai/component-registry.md +241 -219
- package/ai/icons.md +2 -2
- package/ai/tokens.md +18 -14
- package/dist/blocks/delete-resource.js +3 -3
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +47 -42
- package/dist/blocks/pages.js.map +1 -1
- package/dist/blocks/resource-list.js +68 -55
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
- package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
- package/dist/chunks/app-frame-DysOel2X.js +232 -0
- package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
- package/dist/chunks/avatar-CYNMK7uY.js +110 -0
- package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
- package/dist/chunks/badge-C0GC3B9X.js +27 -0
- package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
- package/dist/chunks/banner-B3DGLTBu.js +88 -0
- package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
- package/dist/chunks/button-IblhXUyZ.js +202 -0
- package/dist/chunks/button-IblhXUyZ.js.map +1 -0
- package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
- package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
- package/dist/chunks/checkbox-9tbimmF3.js +141 -0
- package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
- package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
- package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
- package/dist/chunks/code-block-64e-Cy1S.js +346 -0
- package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
- package/dist/chunks/code-block-KIvuE8jg.js +352 -0
- package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
- package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
- package/dist/chunks/code-xqjww4Pv.js.map +1 -0
- package/dist/chunks/combobox-DkcjkWc6.js +352 -0
- package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
- package/dist/chunks/command-list-CypqsC4T.js +456 -0
- package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
- package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
- package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
- package/dist/chunks/core-CmK-8ObW.js +505 -0
- package/dist/chunks/core-CmK-8ObW.js.map +1 -0
- package/dist/chunks/data-table-CqY8_6IS.js +581 -0
- package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
- package/dist/chunks/date-popup-DAnjptFt.js +58 -0
- package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
- package/dist/chunks/{de-CPXJh9cq.js → de-CqC4aSIV.js} +81 -40
- package/dist/chunks/de-CqC4aSIV.js.map +1 -0
- package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
- package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
- package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
- package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
- package/dist/chunks/domain-obd_w9xk.js +28 -0
- package/dist/chunks/domain-obd_w9xk.js.map +1 -0
- package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
- package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
- package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
- package/dist/chunks/field-D7m-yl-D.js.map +1 -0
- package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
- package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
- package/dist/chunks/icon-CPJWE2N-.js +95 -0
- package/dist/chunks/{icon-DVooQfk4.js.map → icon-CPJWE2N-.js.map} +1 -1
- package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
- package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
- package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
- package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
- package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
- package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
- package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
- package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
- package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
- package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
- package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
- package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
- package/dist/chunks/label-DW24Aj0Z.js +26 -0
- package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
- package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
- package/dist/chunks/link-CMjkcLQK.js.map +1 -0
- package/dist/chunks/list-B4G-sWwV.js +540 -0
- package/dist/chunks/list-B4G-sWwV.js.map +1 -0
- package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
- package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
- package/dist/chunks/markdown-C565aBR7.js +338 -0
- package/dist/chunks/markdown-C565aBR7.js.map +1 -0
- package/dist/chunks/menu-Clvv6ftq.js +485 -0
- package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
- package/dist/chunks/meter-CASMHlxl.js +100 -0
- package/dist/chunks/meter-CASMHlxl.js.map +1 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
- package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
- package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
- package/dist/chunks/page-header-kS5tdmvb.js +45 -0
- package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
- package/dist/chunks/pagination-D7fAm8qg.js +147 -0
- package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
- package/dist/chunks/popover-Bl5QYqnh.js +51 -0
- package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
- package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
- package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
- package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
- package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
- package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
- package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
- package/dist/chunks/release-art-ChiT4T2S.js +582 -0
- package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
- package/dist/chunks/rights-B68ocZuq.js +312 -0
- package/dist/chunks/rights-B68ocZuq.js.map +1 -0
- package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
- package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
- package/dist/chunks/section-CFBYhsUi.js +77 -0
- package/dist/chunks/section-CFBYhsUi.js.map +1 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
- package/dist/chunks/segmented-D9i1avik.js +119 -0
- package/dist/chunks/segmented-D9i1avik.js.map +1 -0
- package/dist/chunks/select-BqjmQOqx.js +222 -0
- package/dist/chunks/select-BqjmQOqx.js.map +1 -0
- package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
- package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
- package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
- package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
- package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
- package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
- package/dist/chunks/slider-CcE8GtuV.js +58 -0
- package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
- package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
- package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
- package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
- package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
- package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
- package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
- package/dist/chunks/switch-ngywMQdl.js +76 -0
- package/dist/chunks/switch-ngywMQdl.js.map +1 -0
- package/dist/chunks/table-CTK5E0J7.js +102 -0
- package/dist/chunks/table-CTK5E0J7.js.map +1 -0
- package/dist/chunks/tag-BGr6lTSV.js +100 -0
- package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
- package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
- package/dist/chunks/text-DkKdTVUf.js.map +1 -0
- package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
- package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
- package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
- package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
- package/dist/chunks/truncated-d1afmUJT.js +33 -0
- package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
- package/dist/chunks/{zh-CN-29X4CDLE.js → zh-CN-BlpsT6d_.js} +80 -39
- package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
- package/dist/components/agent-avatar.js +1 -1
- package/dist/components/app-frame.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +22 -22
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +235 -160
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +144 -99
- package/dist/components/charts/donut.js.map +1 -1
- package/dist/components/charts/gauge.js +61 -49
- package/dist/components/charts/gauge.js.map +1 -1
- package/dist/components/charts/heatmap.js +179 -70
- package/dist/components/charts/heatmap.js.map +1 -1
- package/dist/components/charts/sankey.js +144 -77
- package/dist/components/charts/sankey.js.map +1 -1
- package/dist/components/charts/sparkline.js +54 -38
- package/dist/components/charts/sparkline.js.map +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +4 -3
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +77 -1
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -66
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +1 -459
- package/dist/components/date-picker.js +162 -151
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +74 -63
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +76 -64
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/figure.js +2 -2
- package/dist/components/filter-chip.js +36 -27
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +4 -4
- package/dist/components/filter-row.js.map +1 -1
- package/dist/components/flow.js +94 -63
- package/dist/components/flow.js.map +1 -1
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/input.js +176 -98
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +51 -46
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +23 -20
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +90 -74
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +200 -187
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +32 -47
- package/dist/components/key-value.js.map +1 -1
- package/dist/components/label.js +1 -25
- package/dist/components/layout.js +2 -2
- package/dist/components/layout.js.map +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +11 -10
- package/dist/components/loader.js.map +1 -1
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +644 -529
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal.js +1 -1
- package/dist/components/qr-code.js +2 -2
- package/dist/components/qr-code.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/settings.js +39 -46
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +10 -9
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/stat.js +98 -84
- package/dist/components/stat.js.map +1 -1
- package/dist/components/status-dot.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/swap-text.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +73 -55
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +1 -1
- package/dist/components/theme-menu.js +5 -2
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +35 -24
- package/dist/components/thumbnail.js.map +1 -1
- package/dist/components/timeline.js +51 -35
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.js +76 -66
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +14 -8
- package/dist/components/toc.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/visually-hidden.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +101 -101
- package/dist/kaeso.css +605 -67
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
- package/dist/types/components/badge/badge.d.ts +3 -3
- package/dist/types/components/banner/banner.d.ts +3 -3
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button-group/button-group.d.ts +1 -1
- package/dist/types/components/charts/domain.d.ts +11 -0
- package/dist/types/components/charts/marks.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +3 -3
- package/dist/types/components/code-block/diff-view.d.ts +30 -0
- package/dist/types/components/code-block/diff.d.ts +26 -0
- package/dist/types/components/code-block/docs.d.ts +14 -0
- package/dist/types/components/code-block/index.d.ts +1 -0
- package/dist/types/components/code-block/json-view.d.ts +2 -1
- package/dist/types/components/code-block/numbers.d.ts +1 -0
- package/dist/types/components/collapsible/collapsible.d.ts +2 -2
- package/dist/types/components/collapsible/disclosure.d.ts +2 -0
- package/dist/types/components/data-table/data-table.d.ts +6 -5
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/data-table/time-columns.d.ts +1 -0
- package/dist/types/components/date-picker/focus-day.d.ts +1 -0
- package/dist/types/components/date-picker/iso-field.d.ts +8 -1
- package/dist/types/components/dialog/dialog.d.ts +7 -7
- package/dist/types/components/field/field.d.ts +1 -1
- package/dist/types/components/flow/flow.d.ts +1 -1
- package/dist/types/components/icon-button/icon-button.d.ts +1 -1
- package/dist/types/components/input/input-group.d.ts +2 -0
- package/dist/types/components/input/number-input.d.ts +4 -4
- package/dist/types/components/input/otp-input.d.ts +3 -3
- package/dist/types/components/kaeso/client-button.d.ts +2 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
- package/dist/types/components/kaeso/rights.d.ts +1 -1
- package/dist/types/components/kaeso/role-picker.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +2 -2
- package/dist/types/components/layout/layout.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +4 -4
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -1
- package/dist/types/components/menu/styles.d.ts +3 -3
- package/dist/types/components/meter/meter.d.ts +3 -3
- package/dist/types/components/page-header/page-header.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
- package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
- package/dist/types/components/playground/reasoning.d.ts +1 -0
- package/dist/types/components/popover/popover.d.ts +1 -1
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/section/section-header.d.ts +6 -0
- package/dist/types/components/segmented/segmented.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +1 -1
- package/dist/types/components/sheet/sheet.d.ts +3 -3
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +6 -4
- package/dist/types/components/text/truncated.d.ts +7 -0
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/toc/toc.d.ts +1 -1
- package/dist/types/components/toolbar/toolbar.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
- package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
- package/dist/types/hooks/use-hydrating.d.ts +1 -0
- package/dist/types/icons/groups.d.ts +1 -1
- package/dist/types/icons/vocabulary.d.ts +5 -0
- package/dist/types/utils/arrow-focus.d.ts +4 -1
- package/dist/types/utils/cn.d.ts +33 -0
- package/dist/types/utils/portal-context.d.ts +7 -1
- package/dist/utils.js +2 -2
- package/foundations/accessibility.md +3 -2
- package/foundations/color.md +5 -1
- package/foundations/elevation.md +1 -0
- package/foundations/motion.md +1 -1
- package/foundations/shape.md +2 -2
- package/foundations/typography.md +12 -12
- package/package.json +2 -2
- package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
- package/dist/chunks/app-frame-DogGRmsu.js +0 -221
- package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
- package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
- package/dist/chunks/avatar-CWbdwbJv.js +0 -83
- package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
- package/dist/chunks/badge-C2KtxCLB.js +0 -26
- package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
- package/dist/chunks/banner-BA2ALw9M.js +0 -85
- package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
- package/dist/chunks/button-CzuxqawA.js +0 -164
- package/dist/chunks/button-CzuxqawA.js.map +0 -1
- package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
- package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
- package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
- package/dist/chunks/code-block-D5A-CGXG.js +0 -330
- package/dist/chunks/code-block-D5A-CGXG.js.map +0 -1
- package/dist/chunks/code-tqj0uhBL.js.map +0 -1
- package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
- package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
- package/dist/chunks/combobox-DjDI7SUC.js +0 -319
- package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
- package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
- package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
- package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
- package/dist/chunks/core-BYns5ytV.js +0 -472
- package/dist/chunks/core-BYns5ytV.js.map +0 -1
- package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
- package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
- package/dist/chunks/de-CPXJh9cq.js.map +0 -1
- package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
- package/dist/chunks/field-TviMvYa2.js.map +0 -1
- package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
- package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
- package/dist/chunks/icon-DVooQfk4.js +0 -94
- package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
- package/dist/chunks/input-2VJuj_M4.js.map +0 -1
- package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
- package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
- package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
- package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
- package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
- package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
- package/dist/chunks/link-KWI7PevW.js.map +0 -1
- package/dist/chunks/list-M1csq-d4.js +0 -494
- package/dist/chunks/list-M1csq-d4.js.map +0 -1
- package/dist/chunks/markdown-DULktoTK.js +0 -313
- package/dist/chunks/markdown-DULktoTK.js.map +0 -1
- package/dist/chunks/menu-DEmBfdPm.js +0 -450
- package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
- package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
- package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
- package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
- package/dist/chunks/page-header-DL2y2iZp.js +0 -41
- package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
- package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
- package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
- package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
- package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
- package/dist/chunks/popover-DNN4S47w.js +0 -50
- package/dist/chunks/popover-DNN4S47w.js.map +0 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
- package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
- package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
- package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
- package/dist/chunks/release-art-ZwfFQImt.js +0 -561
- package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
- package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
- package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
- package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
- package/dist/chunks/section-Ce1efbsP.js +0 -87
- package/dist/chunks/section-Ce1efbsP.js.map +0 -1
- package/dist/chunks/segmented-CErcoxwi.js +0 -114
- package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
- package/dist/chunks/select-x4XVsdCI.js +0 -210
- package/dist/chunks/select-x4XVsdCI.js.map +0 -1
- package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
- package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
- package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
- package/dist/chunks/slider-Ci83PGtj.js +0 -57
- package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
- package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
- package/dist/chunks/switch-BNMq_kGt.js +0 -59
- package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
- package/dist/chunks/table-BeOSKl_3.js +0 -84
- package/dist/chunks/table-BeOSKl_3.js.map +0 -1
- package/dist/chunks/tag-D_M1s2qS.js +0 -87
- package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
- package/dist/chunks/text-CIXH8rmT.js.map +0 -1
- package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
- package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
- package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
- package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
- package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
- package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
- package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
- package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
- package/dist/chunks/zh-CN-29X4CDLE.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/label.js.map +0 -1
package/dist/components/input.js
CHANGED
|
@@ -1,183 +1,261 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../chunks/cn-
|
|
2
|
+
import { t as e } from "../chunks/cn-BjnOAUrA.js";
|
|
3
3
|
import { i as t } from "../chunks/context-BELWW79w.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { a as
|
|
7
|
-
import { a as
|
|
8
|
-
import { a as
|
|
9
|
-
import { a as E } from "../chunks/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
4
|
+
import { t as n } from "../chunks/icon-CBzOwqrX.js";
|
|
5
|
+
import { r } from "../chunks/tooltip-Tkm-urbi.js";
|
|
6
|
+
import { a as i, o as a, s as o } from "../chunks/field-D7m-yl-D.js";
|
|
7
|
+
import { a as s, i as c, n as l, o as u, r as d, t as f } from "../chunks/input-group-jPcK9T_a.js";
|
|
8
|
+
import { a as p, i as m, n as h, o as g, r as _, t as v } from "../chunks/input-Bo5-UZg2.js";
|
|
9
|
+
import { a as y, c as b, i as x, l as S, n as C, o as w, r as T, s as E, t as D } from "../chunks/textarea-CO0HP6fK.js";
|
|
10
|
+
import { a as O } from "../chunks/tag-BGr6lTSV.js";
|
|
11
|
+
import { forwardRef as k, useId as A, useLayoutEffect as j, useRef as M, useState as N } from "react";
|
|
12
|
+
import { Fragment as P, jsx as F, jsxs as I } from "react/jsx-runtime";
|
|
13
|
+
import { Alert02Icon as L, ViewIcon as R, ViewOffSlashIcon as z } from "@hugeicons/core-free-icons";
|
|
13
14
|
//#region src/components/input/sensitive-input.tsx
|
|
14
|
-
var
|
|
15
|
+
var B = { kind: {
|
|
15
16
|
secret: { classes: "" },
|
|
16
17
|
password: { classes: "" }
|
|
17
|
-
} },
|
|
18
|
-
let
|
|
19
|
-
return /* @__PURE__ */
|
|
20
|
-
ref:
|
|
21
|
-
type:
|
|
22
|
-
autoComplete:
|
|
18
|
+
} }, V = { kind: "secret" }, H = /* @__PURE__ */ k(function({ kind: e = "secret", defaultRevealed: r = !1, onKeyDown: i, onKeyUp: a, onBlur: o, ...s }, c) {
|
|
19
|
+
let u = t(), [d, f] = N(r), [p, m] = N(!1), h = (t) => m(e === "password" && t.getModifierState?.("CapsLock"));
|
|
20
|
+
return /* @__PURE__ */ F(v, {
|
|
21
|
+
ref: c,
|
|
22
|
+
type: d ? "text" : "password",
|
|
23
|
+
autoComplete: e === "password" ? "current-password" : "off",
|
|
23
24
|
autoCorrect: "off",
|
|
24
25
|
autoCapitalize: "off",
|
|
25
26
|
spellCheck: !1,
|
|
26
|
-
"data-1p-ignore":
|
|
27
|
-
"data-lpignore":
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
"data-1p-ignore": e === "secret" || void 0,
|
|
28
|
+
"data-lpignore": e === "secret" ? "true" : void 0,
|
|
29
|
+
"data-mono": d || void 0,
|
|
30
|
+
onBlur: (e) => {
|
|
31
|
+
m(!1), o?.(e);
|
|
32
|
+
},
|
|
30
33
|
onKeyDown: (e) => {
|
|
31
|
-
|
|
34
|
+
h(e), i?.(e);
|
|
32
35
|
},
|
|
33
36
|
onKeyUp: (e) => {
|
|
34
|
-
|
|
37
|
+
h(e), a?.(e);
|
|
35
38
|
},
|
|
36
|
-
trailing: /* @__PURE__ */
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
trailing: /* @__PURE__ */ I(P, { children: [e === "password" && /* @__PURE__ */ I("span", {
|
|
40
|
+
className: "inline-flex shrink-0 items-center gap-4 text-small text-warning-text select-none",
|
|
41
|
+
children: [
|
|
42
|
+
p && /* @__PURE__ */ F(n, {
|
|
43
|
+
icon: L,
|
|
44
|
+
size: "sm"
|
|
45
|
+
}),
|
|
46
|
+
p && u("sensitiveInput.capsLockShort", "Caps Lock"),
|
|
47
|
+
/* @__PURE__ */ F("span", {
|
|
48
|
+
role: "status",
|
|
49
|
+
className: "sr-only",
|
|
50
|
+
children: p ? u("sensitiveInput.capsLock", "Caps Lock is on.") : ""
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
}), /* @__PURE__ */ F(l.Button, {
|
|
54
|
+
icon: d ? z : R,
|
|
55
|
+
"aria-label": e === "password" ? d ? u("sensitiveInput.hidePassword", "Hide password") : u("sensitiveInput.showPassword", "Show password") : d ? u("sensitiveInput.hideKey", "Hide key") : u("sensitiveInput.showKey", "Show key"),
|
|
56
|
+
onClick: () => f((e) => !e),
|
|
57
|
+
disabled: s.disabled
|
|
58
|
+
})] }),
|
|
59
|
+
...s
|
|
43
60
|
});
|
|
44
61
|
});
|
|
45
|
-
process.env.NODE_ENV !== "production" && (
|
|
62
|
+
process.env.NODE_ENV !== "production" && (H.displayName = "SensitiveInput");
|
|
46
63
|
//#endregion
|
|
47
64
|
//#region src/components/input/otp-input.tsx
|
|
48
|
-
var
|
|
49
|
-
md: { classes: "
|
|
50
|
-
sm: { classes: "
|
|
51
|
-
} },
|
|
52
|
-
let
|
|
65
|
+
var U = { size: {
|
|
66
|
+
md: { classes: "w-48 text-title" },
|
|
67
|
+
sm: { classes: "w-40 text-title-sm" }
|
|
68
|
+
} }, W = { size: "md" }, G = /* @__PURE__ */ k(function({ length: n = 6, value: r, defaultValue: a = "", onValueChange: o, onComplete: s, invalid: c, size: l = "md", disabled: u, className: d, id: f, "aria-label": p, "data-force": m, onFocus: h, onBlur: g, onKeyDown: _, onPaste: v, onClick: y, ...b }, x) {
|
|
69
|
+
let S = i(), C = t(), [w, T] = N(a), [E, D] = N(!1), O = (r ?? w).slice(0, n), [k, P] = N(O.length), L = A(), R = M(null), z = M([]), B = M(null), V = (e) => {
|
|
53
70
|
let t = e.replace(/\D/g, "").slice(0, n);
|
|
54
|
-
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
71
|
+
return r === void 0 && T(t), o?.(t), t.length === n && s?.(t), t;
|
|
72
|
+
}, H = (e, t = O) => {
|
|
73
|
+
let r = Math.max(0, Math.min(e, t.length, n - 1));
|
|
74
|
+
R.current?.setSelectionRange(r, r < t.length ? r + 1 : r), P(r);
|
|
75
|
+
};
|
|
76
|
+
j(() => {
|
|
77
|
+
if (B.current === null) return;
|
|
78
|
+
let e = B.current;
|
|
79
|
+
B.current = null, document.activeElement === R.current && H(e);
|
|
80
|
+
});
|
|
81
|
+
let W = E || m?.includes("focus") ? Math.min(k, n - 1) : -1, G = (e, t, r) => {
|
|
82
|
+
let i = r.replace(/\D/g, ""), a = i.length >= n ? V(i) : V(O.slice(0, e) + i + O.slice(t));
|
|
83
|
+
B.current = Math.min(i.length >= n ? a.length : e + i.length, a.length);
|
|
84
|
+
};
|
|
85
|
+
return /* @__PURE__ */ I("div", {
|
|
86
|
+
className: e("relative inline-flex max-w-full gap-8", d),
|
|
87
|
+
"data-invalid": c || S?.invalid || void 0,
|
|
59
88
|
children: [Array.from({ length: n }, (t, r) => {
|
|
60
|
-
let i =
|
|
61
|
-
return /* @__PURE__ */
|
|
89
|
+
let i = O[r] ?? "", a = r === W;
|
|
90
|
+
return /* @__PURE__ */ F("div", {
|
|
91
|
+
ref: (e) => {
|
|
92
|
+
z.current[r] = e;
|
|
93
|
+
},
|
|
62
94
|
"aria-hidden": !0,
|
|
63
|
-
className: e("flex items-center justify-center rounded-cell-lg font-semibold tabular text-fg material-field transition-control",
|
|
64
|
-
...c ||
|
|
95
|
+
className: e("flex aspect-square min-w-0 shrink items-center justify-center rounded-cell-lg font-semibold tabular text-fg material-field transition-control", U.size[l].classes, r === 2 && n === 6 && "mr-8"),
|
|
96
|
+
...c || S?.invalid ? { "data-invalid": "" } : {},
|
|
65
97
|
...u ? { "data-disabled": "" } : {},
|
|
66
98
|
...a ? { "data-focused": "" } : {},
|
|
67
|
-
children: i || (a ? /* @__PURE__ */
|
|
99
|
+
children: i || (a ? /* @__PURE__ */ F("span", { className: "h-20 w-1 bg-fg forced-line" }) : null)
|
|
68
100
|
}, r);
|
|
69
|
-
}), /* @__PURE__ */
|
|
101
|
+
}), /* @__PURE__ */ F("input", {
|
|
70
102
|
ref: (e) => {
|
|
71
|
-
|
|
103
|
+
R.current = e, typeof x == "function" ? x(e) : x && (x.current = e);
|
|
72
104
|
},
|
|
73
|
-
id:
|
|
105
|
+
id: S?.controlId ?? f ?? `k-otp-${L}`,
|
|
74
106
|
type: "text",
|
|
75
107
|
inputMode: "numeric",
|
|
76
108
|
autoComplete: "one-time-code",
|
|
77
109
|
pattern: "\\d*",
|
|
78
|
-
|
|
79
|
-
value: D,
|
|
110
|
+
value: O,
|
|
80
111
|
disabled: u,
|
|
81
|
-
"aria-label": p ?? (
|
|
82
|
-
...
|
|
83
|
-
...c ||
|
|
112
|
+
"aria-label": p ?? (S ? void 0 : C("otpInput.label", "Verification code")),
|
|
113
|
+
...S?.controlProps["aria-describedby"] ? { "aria-describedby": S.controlProps["aria-describedby"] } : {},
|
|
114
|
+
...c || S?.invalid ? { "aria-invalid": !0 } : {},
|
|
84
115
|
onChange: (e) => {
|
|
85
|
-
|
|
116
|
+
let t = e.target.value, n = e.target.selectionStart ?? t.length, r = V(t);
|
|
117
|
+
B.current = Math.min(t.slice(0, n).replace(/\D/g, "").length, r.length);
|
|
118
|
+
},
|
|
119
|
+
onPaste: (e) => {
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
let t = e.currentTarget;
|
|
122
|
+
G(t.selectionStart ?? O.length, t.selectionEnd ?? O.length, e.clipboardData.getData("text")), v?.(e);
|
|
123
|
+
},
|
|
124
|
+
onKeyDown: (e) => {
|
|
125
|
+
let t = e.currentTarget.selectionStart ?? O.length, n = {
|
|
126
|
+
ArrowLeft: t - 1,
|
|
127
|
+
ArrowRight: t + 1,
|
|
128
|
+
Home: 0,
|
|
129
|
+
End: O.length
|
|
130
|
+
}[e.key];
|
|
131
|
+
n !== void 0 && !e.shiftKey && !e.metaKey && !e.ctrlKey && !e.altKey && (e.preventDefault(), H(n)), _?.(e);
|
|
132
|
+
},
|
|
133
|
+
onClick: (e) => {
|
|
134
|
+
let t = z.current.findIndex((t) => {
|
|
135
|
+
let n = t?.getBoundingClientRect();
|
|
136
|
+
return !!n && n.width > 0 && e.clientX >= n.left - 4 && e.clientX <= n.right + 4;
|
|
137
|
+
});
|
|
138
|
+
H(t < 0 ? O.length : t), y?.(e);
|
|
139
|
+
},
|
|
140
|
+
onSelect: (e) => P(e.target.selectionStart ?? 0),
|
|
141
|
+
onFocus: (e) => {
|
|
142
|
+
D(!0), h?.(e), H(O.length);
|
|
143
|
+
},
|
|
144
|
+
onBlur: (e) => {
|
|
145
|
+
D(!1), g?.(e);
|
|
86
146
|
},
|
|
87
|
-
onSelect: (e) => w(e.target.selectionStart ?? 0),
|
|
88
|
-
onFocus: () => S(!0),
|
|
89
|
-
onBlur: () => S(!1),
|
|
90
147
|
className: "absolute inset-0 h-full w-full cursor-text bg-transparent text-transparent caret-transparent opacity-0 outline-none disabled:cursor-not-allowed",
|
|
91
|
-
...
|
|
148
|
+
...b
|
|
92
149
|
})]
|
|
93
150
|
});
|
|
94
151
|
});
|
|
95
|
-
process.env.NODE_ENV !== "production" && (
|
|
152
|
+
process.env.NODE_ENV !== "production" && (G.displayName = "OTPInput");
|
|
96
153
|
//#endregion
|
|
97
154
|
//#region src/components/input/tag-input.tsx
|
|
98
|
-
var
|
|
155
|
+
var K = { size: { md: { classes: "min-h-36 p-4" } } }, q = { size: "md" }, J = /* @__PURE__ */ k(function(n, s) {
|
|
99
156
|
let { value: c, defaultValue: l = [], onValueChange: u, onInputValueChange: d, placeholder: f, validate: p, separators: m = [
|
|
100
157
|
",",
|
|
101
158
|
" ",
|
|
102
159
|
";"
|
|
103
|
-
], disabled: h, id: g, name: _, className: v, label: y, description: b, error: x, optional: S, required: C, layout: w, "aria-label": T, "data-force":
|
|
160
|
+
], disabled: h, id: g, name: _, className: v, label: y, description: b, error: x, optional: S, required: C, layout: w, "aria-label": T, "data-force": E } = n, D = i(), k = a(n), A = t(), [j, P] = N(l), [L, R] = N(""), z = (e) => {
|
|
104
161
|
R(e), d?.(e);
|
|
105
|
-
}, B =
|
|
106
|
-
c === void 0 &&
|
|
107
|
-
},
|
|
108
|
-
let t = e.split(
|
|
109
|
-
t.length &&
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
|
|
162
|
+
}, B = M(null), [V, H] = N(null), [U, W] = N(""), G = c ?? j, q = (e) => {
|
|
163
|
+
c === void 0 && P(e), u?.(e);
|
|
164
|
+
}, J = RegExp(`[${m.map((e) => e.replace(/[\]\\^-]/g, "\\$&")).join("")}\\n\\t]+`), Y = (e) => {
|
|
165
|
+
let t = e.split(J).map((e) => e.trim()).filter(Boolean).filter((e) => !G.includes(e));
|
|
166
|
+
t.length && q([...G, ...t]), z("");
|
|
167
|
+
}, X = (e) => {
|
|
168
|
+
let t = G[e];
|
|
169
|
+
t !== void 0 && (q(G.filter((t, n) => n !== e)), H(null), W(A("tagInput.removed", "Removed {tag}", { tag: t })));
|
|
170
|
+
}, Z = (e) => {
|
|
171
|
+
H(e);
|
|
172
|
+
let t = e === null ? void 0 : G[e];
|
|
173
|
+
W(t === void 0 ? "" : A("tagInput.selected", "{tag} selected. Press Backspace to remove it.", { tag: t }));
|
|
174
|
+
}, Q = G.map((e) => !p || p(e)), ee = Q.find((e) => e !== !0), $ = x ?? (typeof ee == "string" ? ee : void 0), te = /* @__PURE__ */ I("div", {
|
|
175
|
+
className: e("flex w-full min-w-0 flex-wrap items-center gap-4 rounded-field material-field transition-control cursor-text", K.size.md.classes, h && "cursor-not-allowed", !(y || b || $) && v),
|
|
176
|
+
...$ || D?.invalid ? { "data-invalid": "" } : {},
|
|
113
177
|
...h ? { "data-disabled": "" } : {},
|
|
114
|
-
...
|
|
178
|
+
...E ? { "data-force": E } : {},
|
|
115
179
|
onMouseDown: (e) => {
|
|
116
180
|
e.target === e.currentTarget && (e.preventDefault(), B.current?.focus());
|
|
117
181
|
},
|
|
118
182
|
children: [
|
|
119
|
-
|
|
120
|
-
let
|
|
121
|
-
return /* @__PURE__ */
|
|
122
|
-
invalid:
|
|
183
|
+
G.map((e, t) => {
|
|
184
|
+
let n = Q[t];
|
|
185
|
+
return /* @__PURE__ */ F(O, {
|
|
186
|
+
invalid: n !== !0,
|
|
187
|
+
...h ? { variant: "soft" } : {},
|
|
188
|
+
className: "focus-ring",
|
|
189
|
+
...V === t ? { "data-force": "focus" } : {},
|
|
123
190
|
...h ? {} : {
|
|
124
|
-
onRemove: () =>
|
|
125
|
-
|
|
191
|
+
onRemove: () => {
|
|
192
|
+
X(t), B.current?.focus();
|
|
193
|
+
},
|
|
194
|
+
removeLabel: A("tagInput.remove", "Remove {tag}", { tag: e })
|
|
126
195
|
},
|
|
127
|
-
children: typeof
|
|
128
|
-
content:
|
|
129
|
-
children: /* @__PURE__ */
|
|
196
|
+
children: typeof n == "string" ? /* @__PURE__ */ F(r, {
|
|
197
|
+
content: n,
|
|
198
|
+
children: /* @__PURE__ */ F("span", { children: e })
|
|
130
199
|
}) : e
|
|
131
200
|
}, e);
|
|
132
201
|
}),
|
|
133
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ F("input", {
|
|
134
203
|
ref: (e) => {
|
|
135
204
|
B.current = e, typeof s == "function" ? s(e) : s && (s.current = e);
|
|
136
205
|
},
|
|
137
206
|
...g ? { id: g } : {},
|
|
138
|
-
...
|
|
207
|
+
...k.controlProps,
|
|
139
208
|
...T ? { "aria-label": T } : {},
|
|
140
|
-
|
|
209
|
+
...$ ? { "aria-invalid": !0 } : {},
|
|
141
210
|
disabled: h,
|
|
142
|
-
required: C &&
|
|
211
|
+
required: C && G.length === 0,
|
|
143
212
|
...C ? { "aria-required": !0 } : {},
|
|
144
213
|
value: L,
|
|
145
|
-
placeholder:
|
|
214
|
+
placeholder: G.length ? void 0 : f,
|
|
146
215
|
onChange: (e) => {
|
|
216
|
+
V !== null && Z(null);
|
|
147
217
|
let t = e.target.value;
|
|
148
|
-
m.some((e) => t.endsWith(e)) ?
|
|
218
|
+
m.some((e) => t.endsWith(e)) ? Y(t) : z(t);
|
|
149
219
|
},
|
|
150
220
|
onKeyDown: (e) => {
|
|
151
|
-
|
|
221
|
+
let t = e.currentTarget.selectionStart === 0 && e.currentTarget.selectionEnd === 0;
|
|
222
|
+
e.key === "Enter" && L.trim() ? (e.preventDefault(), Y(L)) : (e.key === "Backspace" || e.key === "Delete") && V !== null ? (e.preventDefault(), X(V)) : e.key === "Backspace" && t && G.length ? (e.preventDefault(), Z(G.length - 1)) : e.key === "ArrowLeft" && t && G.length ? (e.preventDefault(), Z(V === null ? G.length - 1 : Math.max(0, V - 1))) : e.key === "ArrowRight" && V !== null ? (e.preventDefault(), Z(V + 1 < G.length ? V + 1 : null)) : e.key === "Escape" && V !== null && (e.stopPropagation(), Z(null));
|
|
152
223
|
},
|
|
153
224
|
onPaste: (e) => {
|
|
154
225
|
let t = e.clipboardData.getData("text");
|
|
155
|
-
|
|
226
|
+
J.test(t) && (e.preventDefault(), Y(L + t));
|
|
156
227
|
},
|
|
157
|
-
onBlur: () =>
|
|
158
|
-
|
|
228
|
+
onBlur: () => {
|
|
229
|
+
H(null), L.trim() && Y(L);
|
|
230
|
+
},
|
|
231
|
+
className: e("my-4 min-w-32 flex-1 bg-transparent px-8 text-body text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed", G.length === 0 && "ps-10")
|
|
159
232
|
}),
|
|
160
|
-
_ && /* @__PURE__ */
|
|
233
|
+
_ && /* @__PURE__ */ F("input", {
|
|
161
234
|
type: "hidden",
|
|
162
235
|
name: _,
|
|
163
|
-
value:
|
|
236
|
+
value: G.join(",")
|
|
237
|
+
}),
|
|
238
|
+
/* @__PURE__ */ F("span", {
|
|
239
|
+
role: "status",
|
|
240
|
+
className: "sr-only",
|
|
241
|
+
children: U
|
|
164
242
|
})
|
|
165
243
|
]
|
|
166
244
|
});
|
|
167
|
-
return
|
|
245
|
+
return D ? te : o({
|
|
168
246
|
label: y,
|
|
169
247
|
description: b,
|
|
170
|
-
error:
|
|
248
|
+
error: $,
|
|
171
249
|
optional: S,
|
|
172
250
|
required: C,
|
|
173
251
|
layout: w,
|
|
174
|
-
id:
|
|
252
|
+
id: k.wrapId ?? g,
|
|
175
253
|
disabled: h,
|
|
176
254
|
className: v
|
|
177
|
-
},
|
|
255
|
+
}, te);
|
|
178
256
|
});
|
|
179
|
-
process.env.NODE_ENV !== "production" && (
|
|
257
|
+
process.env.NODE_ENV !== "production" && (J.displayName = "TagInput");
|
|
180
258
|
//#endregion
|
|
181
|
-
export {
|
|
259
|
+
export { f as INPUT_ICON_SIZE, v as Input, l as InputGroup, h as KAESO_INPUT_DEFAULT_VARIANTS, d as KAESO_INPUT_GROUP_DEFAULT_VARIANTS, c as KAESO_INPUT_GROUP_VARIANTS, _ as KAESO_INPUT_VARIANTS, x as KAESO_NUMBER_INPUT_DEFAULT_VARIANTS, y as KAESO_NUMBER_INPUT_VARIANTS, W as KAESO_OTP_INPUT_DEFAULT_VARIANTS, U as KAESO_OTP_INPUT_VARIANTS, m as KAESO_SEARCH_INPUT_DEFAULT_VARIANTS, p as KAESO_SEARCH_INPUT_VARIANTS, V as KAESO_SENSITIVE_INPUT_DEFAULT_VARIANTS, B as KAESO_SENSITIVE_INPUT_VARIANTS, q as KAESO_TAG_INPUT_DEFAULT_VARIANTS, K as KAESO_TAG_INPUT_VARIANTS, D as KAESO_TEXTAREA_DEFAULT_VARIANTS, C as KAESO_TEXTAREA_VARIANTS, s as LEADING, w as NumberInput, G as OTPInput, g as SearchInput, H as SensitiveInput, J as TagInput, T as Textarea, E as addDecimal, b as compareDecimal, S as groupDecimal, u as useInputGroupSize };
|
|
182
260
|
|
|
183
261
|
//# sourceMappingURL=input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","names":["__icon_ViewOffSlashIcon","__icon_ViewIcon","cn","useUiText","Tooltip","useField","useFieldControl","withField","useInputGroupSize","KAESO_INPUT_GROUP_VARIANTS","InputGroup","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","INPUT_ICON_SIZE","KAESO_SEARCH_INPUT_VARIANTS","KAESO_SEARCH_INPUT_DEFAULT_VARIANTS","KAESO_INPUT_DEFAULT_VARIANTS","SearchInput","KAESO_INPUT_VARIANTS","Input","KAESO_NUMBER_INPUT_VARIANTS","compareDecimal","KAESO_NUMBER_INPUT_DEFAULT_VARIANTS","groupDecimal","KAESO_TEXTAREA_VARIANTS","NumberInput","Textarea","addDecimal","KAESO_TEXTAREA_DEFAULT_VARIANTS","Tag","KAESO_SENSITIVE_INPUT_VARIANTS","KAESO_SENSITIVE_INPUT_DEFAULT_VARIANTS","SensitiveInput","props","t","revealed","setRevealed","useState","defaultRevealed","caps","setCaps","checkCaps","kind","className","description","onKeyDown","onKeyUp","ViewOffSlashIcon","ViewIcon","r","KAESO_OTP_INPUT_VARIANTS","KAESO_OTP_INPUT_DEFAULT_VARIANTS","OTPInput","ariaLabel","force","field","inner","setInner","defaultValue","focused","setFocused","sel","setSel","auto","useId","input","useRef","current","value","length","set","clean","v","onValueChange","onComplete","active","isFocused","invalid","char","i","isActive","size","disabled","el","ref","id","KAESO_TAG_INPUT_VARIANTS","KAESO_TAG_INPUT_DEFAULT_VARIANTS","TagInput","fc","draft","setDraftState","setDraft","next","onInputValueChange","tags","splitter","separators","s","add","parts","raw","p","messages","validate","tag","firstError","m","fieldError","error","control","label","message","x","required","placeholder","text","name"],"sources":["../../src/components/input/sensitive-input.tsx","../../src/components/input/otp-input.tsx","../../src/components/input/tag-input.tsx"],"sourcesContent":["import { forwardRef, useState, type KeyboardEvent } from \"react\";\nimport { Input, type InputProps } from \"./input.js\";\nimport { InputGroup } from \"./input-group.js\";\nimport { ViewOffSlashIcon as __icon_ViewOffSlashIcon, ViewIcon as __icon_ViewIcon } from \"@hugeicons/core-free-icons\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_SENSITIVE_INPUT_VARIANTS = {\n kind: {\n secret: { classes: \"\" },\n password: { classes: \"\" },\n },\n} as const;\nexport const KAESO_SENSITIVE_INPUT_DEFAULT_VARIANTS = { kind: \"secret\" } as const;\n\nexport interface SensitiveInputProps extends Omit<InputProps, \"type\" | \"trailing\"> {\n kind?: keyof typeof KAESO_SENSITIVE_INPUT_VARIANTS.kind | undefined;\n defaultRevealed?: boolean | undefined;\n}\n\nexport const SensitiveInput = /* @__PURE__ */ forwardRef<HTMLInputElement, SensitiveInputProps>(function SensitiveInput(\n { kind = \"secret\", defaultRevealed = false, description, onKeyDown, onKeyUp, className, ...props },\n ref,\n) {\n const t = useUiText();\n const [revealed, setRevealed] = useState(defaultRevealed);\n const [caps, setCaps] = useState(false);\n const checkCaps = (e: KeyboardEvent<HTMLInputElement>) => setCaps(kind === \"password\" && e.getModifierState?.(\"CapsLock\"));\n return (\n <Input\n ref={ref}\n type={revealed ? \"text\" : \"password\"}\n autoComplete={kind === \"password\" ? \"current-password\" : \"off\"}\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n data-1p-ignore={kind === \"secret\" ? true : undefined}\n data-lpignore={kind === \"secret\" ? \"true\" : undefined}\n className={cn(className, revealed && \"mono\")}\n description={caps ? t(\"sensitiveInput.capsLock\", \"Caps Lock is on.\") : description}\n onKeyDown={(e) => {\n checkCaps(e);\n onKeyDown?.(e);\n }}\n onKeyUp={(e) => {\n checkCaps(e);\n onKeyUp?.(e);\n }}\n trailing={\n <InputGroup.Button\n icon={revealed ? __icon_ViewOffSlashIcon : __icon_ViewIcon}\n aria-label={\n kind === \"password\"\n ? revealed\n ? t(\"sensitiveInput.hidePassword\", \"Hide password\")\n : t(\"sensitiveInput.showPassword\", \"Show password\")\n : revealed\n ? t(\"sensitiveInput.hide\", \"Hide\")\n : t(\"sensitiveInput.show\", \"Show\")\n }\n onClick={() => setRevealed((r) => !r)}\n disabled={props.disabled}\n />\n }\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") SensitiveInput.displayName = \"SensitiveInput\";\n","import { forwardRef, useId, useRef, useState, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useField } from \"../field/field.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_OTP_INPUT_VARIANTS = {\n size: {\n md: { classes: \"size-48 text-title\" },\n sm: { classes: \"size-40 text-title-sm\" },\n },\n} as const;\nexport const KAESO_OTP_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface OTPInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"value\" | \"defaultValue\" | \"onChange\" | \"size\" | \"maxLength\"> {\n length?: number | undefined;\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n onComplete?: ((value: string) => void) | undefined;\n invalid?: boolean | undefined;\n size?: keyof typeof KAESO_OTP_INPUT_VARIANTS.size | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const OTPInput = /* @__PURE__ */ forwardRef<HTMLInputElement, OTPInputProps>(function OTPInput(\n {\n length = 6,\n value,\n defaultValue = \"\",\n onValueChange,\n onComplete,\n invalid,\n size = \"md\",\n disabled,\n className,\n id,\n \"aria-label\": ariaLabel,\n \"data-force\": force,\n ...props\n },\n ref,\n) {\n const field = useField();\n const t = useUiText();\n const [inner, setInner] = useState(defaultValue);\n const [focused, setFocused] = useState(false);\n const [sel, setSel] = useState(0);\n const auto = useId();\n const input = useRef<HTMLInputElement | null>(null);\n const current = (value ?? inner).slice(0, length);\n const set = (v: string) => {\n const clean = v.replace(/\\D/g, \"\").slice(0, length);\n if (value === undefined) setInner(clean);\n onValueChange?.(clean);\n if (clean.length === length) onComplete?.(clean);\n };\n const active = Math.min(sel, length - 1);\n const isFocused = focused || force?.includes(\"focus\");\n return (\n <div className={cn(\"relative inline-flex gap-8\", className)} data-invalid={invalid || field?.invalid || undefined}>\n {Array.from({ length }, (_, i) => {\n const char = current[i] ?? \"\";\n const isActive = isFocused && i === Math.min(current.length, length - 1) && (sel >= current.length || i === active);\n return (\n <div\n key={i}\n aria-hidden\n className={cn(\n \"flex items-center justify-center rounded-cell-lg font-semibold tabular text-fg material-field transition-control\",\n KAESO_OTP_INPUT_VARIANTS.size[size].classes,\n i === 2 && length === 6 && \"mr-8\",\n )}\n {...(invalid || field?.invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(isActive ? { \"data-focused\": \"\" } : {})}\n >\n {char || (isActive ? <span className=\"h-20 w-1 animate-pulse-quiet bg-fg\" /> : null)}\n </div>\n );\n })}\n <input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n id={field?.controlId ?? id ?? `k-otp-${auto}`}\n type=\"text\"\n inputMode=\"numeric\"\n autoComplete=\"one-time-code\"\n pattern=\"\\d*\"\n maxLength={length}\n value={current}\n disabled={disabled}\n aria-label={ariaLabel ?? (field ? undefined : t(\"otpInput.label\", \"Verification code\"))}\n {...(field?.controlProps[\"aria-describedby\"] ? { \"aria-describedby\": field.controlProps[\"aria-describedby\"] } : {})}\n {...(invalid || field?.invalid ? { \"aria-invalid\": true } : {})}\n onChange={(e) => {\n set(e.target.value);\n setSel(e.target.selectionStart ?? e.target.value.length);\n }}\n onSelect={(e) => setSel((e.target as HTMLInputElement).selectionStart ?? 0)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className=\"absolute inset-0 h-full w-full cursor-text bg-transparent text-transparent caret-transparent opacity-0 outline-none disabled:cursor-not-allowed\"\n {...props}\n />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") OTPInput.displayName = \"OTPInput\";\n","import { forwardRef, useRef, useState, type ClipboardEvent, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { Tag } from \"../tag/tag.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TAG_INPUT_VARIANTS = {\n size: {\n md: { classes: \"min-h-36 p-4\" },\n },\n} as const;\nexport const KAESO_TAG_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface TagInputProps extends FieldWrapProps {\n value?: string[] | undefined;\n defaultValue?: string[] | undefined;\n onValueChange?: ((value: string[]) => void) | undefined;\n onInputValueChange?: ((draft: string) => void) | undefined;\n placeholder?: string | undefined;\n validate?: ((tag: string) => true | string) | undefined;\n separators?: string[] | undefined;\n disabled?: boolean | undefined;\n id?: string | undefined;\n name?: string | undefined;\n className?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const TagInput = /* @__PURE__ */ forwardRef<HTMLInputElement, TagInputProps>(function TagInput(props, ref) {\n const {\n value,\n defaultValue = [],\n onValueChange,\n onInputValueChange,\n placeholder,\n validate,\n separators = [\",\", \" \", \";\"],\n disabled,\n id,\n name,\n className,\n label,\n description,\n error,\n optional,\n required,\n layout,\n \"aria-label\": ariaLabel,\n \"data-force\": force,\n } = props;\n const field = useField();\n const fc = useFieldControl(props);\n const t = useUiText();\n const [inner, setInner] = useState<string[]>(defaultValue);\n const [draft, setDraftState] = useState(\"\");\n const setDraft = (next: string) => {\n setDraftState(next);\n onInputValueChange?.(next);\n };\n const input = useRef<HTMLInputElement | null>(null);\n const tags = value ?? inner;\n const set = (next: string[]) => {\n if (value === undefined) setInner(next);\n onValueChange?.(next);\n };\n const splitter = new RegExp(`[${separators.map((s) => s.replace(/[\\]\\\\^-]/g, \"\\\\$&\")).join(\"\")}\\\\n\\\\t]+`);\n const add = (raw: string) => {\n const parts = raw\n .split(splitter)\n .map((p) => p.trim())\n .filter(Boolean)\n .filter((p) => !tags.includes(p));\n if (parts.length) set([...tags, ...parts]);\n setDraft(\"\");\n };\n const messages = tags.map((tag) => (validate ? validate(tag) : true));\n const firstError = messages.find((m) => m !== true);\n const fieldError = error ?? (typeof firstError === \"string\" ? firstError : undefined);\n const control = (\n <div\n className={cn(\n \"flex w-full min-w-0 flex-wrap items-center gap-4 rounded-field material-field transition-control cursor-text\",\n KAESO_TAG_INPUT_VARIANTS.size.md.classes,\n disabled && \"cursor-not-allowed\",\n !(label || description || fieldError) && className,\n )}\n {...(fieldError || field?.invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(force ? { \"data-force\": force } : {})}\n onMouseDown={(e) => {\n if (e.target === e.currentTarget) {\n e.preventDefault();\n input.current?.focus();\n }\n }}\n >\n {tags.map((tag, i) => {\n const message = messages[i];\n return (\n <Tag\n key={tag}\n invalid={message !== true}\n {...(disabled ? {} : { onRemove: () => set(tags.filter((x) => x !== tag)), removeLabel: t(\"tagInput.remove\", \"Remove {tag}\", { tag }) })}\n >\n {typeof message === \"string\" ? (\n <Tooltip content={message}>\n <span>{tag}</span>\n </Tooltip>\n ) : (\n tag\n )}\n </Tag>\n );\n })}\n <input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(fieldError ? { \"aria-invalid\": true } : {})}\n disabled={disabled}\n required={required && tags.length === 0}\n {...(required ? { \"aria-required\": true } : {})}\n value={draft}\n placeholder={tags.length ? undefined : placeholder}\n onChange={(e) => {\n const v = e.target.value;\n if (separators.some((s) => v.endsWith(s))) add(v);\n else setDraft(v);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" && draft.trim()) {\n e.preventDefault();\n add(draft);\n } else if (e.key === \"Backspace\" && !draft && tags.length) {\n set(tags.slice(0, -1));\n }\n }}\n onPaste={(e: ClipboardEvent<HTMLInputElement>) => {\n const text = e.clipboardData.getData(\"text\");\n if (splitter.test(text)) {\n e.preventDefault();\n add(draft + text);\n }\n }}\n onBlur={() => draft.trim() && add(draft)}\n className={cn(\n \"my-4 min-w-80 flex-1 bg-transparent px-8 text-body text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed\",\n tags.length === 0 && \"pl-12\",\n )}\n />\n {name && <input type=\"hidden\" name={name} value={tags.join(\",\")} />}\n </div>\n );\n if (field) return control;\n return withField({ label, description, error: fieldError, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") TagInput.displayName = \"TagInput\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input.js","names":["_Fragment","__icon_Alert02Icon","__icon_ViewOffSlashIcon","__icon_ViewIcon","cn","useUiText","Icon","useField","useFieldControl","withField","LEADING","KAESO_INPUT_GROUP_VARIANTS","InputGroup","useInputGroupSize","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","INPUT_ICON_SIZE","KAESO_SEARCH_INPUT_VARIANTS","KAESO_SEARCH_INPUT_DEFAULT_VARIANTS","KAESO_INPUT_DEFAULT_VARIANTS","SearchInput","KAESO_INPUT_VARIANTS","Input","KAESO_NUMBER_INPUT_VARIANTS","compareDecimal","KAESO_NUMBER_INPUT_DEFAULT_VARIANTS","groupDecimal","KAESO_TEXTAREA_VARIANTS","NumberInput","Textarea","addDecimal","KAESO_TEXTAREA_DEFAULT_VARIANTS","Tag","Fragment$1","KAESO_SENSITIVE_INPUT_VARIANTS","KAESO_SENSITIVE_INPUT_DEFAULT_VARIANTS","SensitiveInput","props","t","revealed","setRevealed","useState","defaultRevealed","caps","setCaps","checkCaps","kind","e","onBlur","onKeyDown","onKeyUp","Alert02Icon","ViewOffSlashIcon","ViewIcon","r","KAESO_OTP_INPUT_VARIANTS","KAESO_OTP_INPUT_DEFAULT_VARIANTS","OTPInput","ariaLabel","force","field","inner","setInner","defaultValue","focused","setFocused","current","value","length","sel","setSel","auto","useId","input","useRef","cells","pending","set","clean","v","onValueChange","onComplete","select","at","i","text","caret","edit","digits","next","start","end","className","invalid","char","isActive","el","size","disabled","ref","id","typed","onPaste","to","hit","c","onClick","onFocus","KAESO_TAG_INPUT_VARIANTS","KAESO_TAG_INPUT_DEFAULT_VARIANTS","TagInput","fc","draft","setDraftState","setDraft","onInputValueChange","armed","setArmed","status","setStatus","tags","splitter","separators","s","add","parts","raw","p","remove","tag","index","arm","messages","validate","firstError","m","fieldError","error","control","label","description","message","Tooltip","required","placeholder","atStart","name"],"sources":["../../src/components/input/sensitive-input.tsx","../../src/components/input/otp-input.tsx","../../src/components/input/tag-input.tsx"],"sourcesContent":["import { forwardRef, useState, type KeyboardEvent } from \"react\";\nimport { Input, type InputProps } from \"./input.js\";\nimport { InputGroup } from \"./input-group.js\";\nimport { Alert02Icon as __icon_Alert02Icon, ViewOffSlashIcon as __icon_ViewOffSlashIcon, ViewIcon as __icon_ViewIcon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_SENSITIVE_INPUT_VARIANTS = {\n kind: {\n secret: { classes: \"\" },\n password: { classes: \"\" },\n },\n} as const;\nexport const KAESO_SENSITIVE_INPUT_DEFAULT_VARIANTS = { kind: \"secret\" } as const;\n\nexport interface SensitiveInputProps extends Omit<InputProps, \"type\" | \"trailing\"> {\n kind?: keyof typeof KAESO_SENSITIVE_INPUT_VARIANTS.kind | undefined;\n defaultRevealed?: boolean | undefined;\n}\n\nexport const SensitiveInput = /* @__PURE__ */ forwardRef<HTMLInputElement, SensitiveInputProps>(function SensitiveInput(\n { kind = \"secret\", defaultRevealed = false, onKeyDown, onKeyUp, onBlur, ...props },\n ref,\n) {\n const t = useUiText();\n const [revealed, setRevealed] = useState(defaultRevealed);\n const [caps, setCaps] = useState(false);\n const checkCaps = (e: KeyboardEvent<HTMLInputElement>) => setCaps(kind === \"password\" && e.getModifierState?.(\"CapsLock\"));\n return (\n <Input\n ref={ref}\n type={revealed ? \"text\" : \"password\"}\n autoComplete={kind === \"password\" ? \"current-password\" : \"off\"}\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n data-1p-ignore={kind === \"secret\" ? true : undefined}\n data-lpignore={kind === \"secret\" ? \"true\" : undefined}\n data-mono={revealed || undefined}\n onBlur={(e) => {\n setCaps(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n checkCaps(e);\n onKeyDown?.(e);\n }}\n onKeyUp={(e) => {\n checkCaps(e);\n onKeyUp?.(e);\n }}\n trailing={\n <>\n {kind === \"password\" && (\n <span className=\"inline-flex shrink-0 items-center gap-4 text-small text-warning-text select-none\">\n {caps && <Icon icon={__icon_Alert02Icon} size=\"sm\" />}\n {caps && t(\"sensitiveInput.capsLockShort\", \"Caps Lock\")}\n <span role=\"status\" className=\"sr-only\">\n {caps ? t(\"sensitiveInput.capsLock\", \"Caps Lock is on.\") : \"\"}\n </span>\n </span>\n )}\n <InputGroup.Button\n icon={revealed ? __icon_ViewOffSlashIcon : __icon_ViewIcon}\n aria-label={\n kind === \"password\"\n ? revealed\n ? t(\"sensitiveInput.hidePassword\", \"Hide password\")\n : t(\"sensitiveInput.showPassword\", \"Show password\")\n : revealed\n ? t(\"sensitiveInput.hideKey\", \"Hide key\")\n : t(\"sensitiveInput.showKey\", \"Show key\")\n }\n onClick={() => setRevealed((r) => !r)}\n disabled={props.disabled}\n />\n </>\n }\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") SensitiveInput.displayName = \"SensitiveInput\";\n","import {\n forwardRef,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ClipboardEvent,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n} from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useField } from \"../field/field.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_OTP_INPUT_VARIANTS = {\n size: {\n md: { classes: \"w-48 text-title\" },\n sm: { classes: \"w-40 text-title-sm\" },\n },\n} as const;\nexport const KAESO_OTP_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface OTPInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"value\" | \"defaultValue\" | \"onChange\" | \"size\" | \"maxLength\"> {\n length?: number | undefined;\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n onComplete?: ((value: string) => void) | undefined;\n invalid?: boolean | undefined;\n size?: keyof typeof KAESO_OTP_INPUT_VARIANTS.size | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const OTPInput = /* @__PURE__ */ forwardRef<HTMLInputElement, OTPInputProps>(function OTPInput(\n {\n length = 6,\n value,\n defaultValue = \"\",\n onValueChange,\n onComplete,\n invalid,\n size = \"md\",\n disabled,\n className,\n id,\n \"aria-label\": ariaLabel,\n \"data-force\": force,\n onFocus,\n onBlur,\n onKeyDown,\n onPaste,\n onClick,\n ...props\n },\n ref,\n) {\n const field = useField();\n const t = useUiText();\n const [inner, setInner] = useState(defaultValue);\n const [focused, setFocused] = useState(false);\n const current = (value ?? inner).slice(0, length);\n const [sel, setSel] = useState(current.length);\n const auto = useId();\n const input = useRef<HTMLInputElement | null>(null);\n const cells = useRef<(HTMLDivElement | null)[]>([]);\n const pending = useRef<number | null>(null);\n const set = (v: string) => {\n const clean = v.replace(/\\D/g, \"\").slice(0, length);\n if (value === undefined) setInner(clean);\n onValueChange?.(clean);\n if (clean.length === length) onComplete?.(clean);\n return clean;\n };\n const select = (i: number, text = current) => {\n const at = Math.max(0, Math.min(i, text.length, length - 1));\n input.current?.setSelectionRange(at, at < text.length ? at + 1 : at);\n setSel(at);\n };\n useLayoutEffect(() => {\n if (pending.current === null) return;\n const at = pending.current;\n pending.current = null;\n if (document.activeElement === input.current) select(at);\n });\n const isFocused = focused || !!force?.includes(\"focus\");\n const caret = isFocused ? Math.min(sel, length - 1) : -1;\n const edit = (start: number, end: number, text: string) => {\n const digits = text.replace(/\\D/g, \"\");\n const next = digits.length >= length ? set(digits) : set(current.slice(0, start) + digits + current.slice(end));\n pending.current = Math.min(digits.length >= length ? next.length : start + digits.length, next.length);\n };\n return (\n <div className={cn(\"relative inline-flex max-w-full gap-8\", className)} data-invalid={invalid || field?.invalid || undefined}>\n {Array.from({ length }, (_, i) => {\n const char = current[i] ?? \"\";\n const isActive = i === caret;\n return (\n <div\n key={i}\n ref={(el) => {\n cells.current[i] = el;\n }}\n aria-hidden\n className={cn(\n \"flex aspect-square min-w-0 shrink items-center justify-center rounded-cell-lg font-semibold tabular text-fg material-field transition-control\",\n KAESO_OTP_INPUT_VARIANTS.size[size].classes,\n i === 2 && length === 6 && \"mr-8\",\n )}\n {...(invalid || field?.invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(isActive ? { \"data-focused\": \"\" } : {})}\n >\n {char || (isActive ? <span className=\"h-20 w-1 bg-fg forced-line\" /> : null)}\n </div>\n );\n })}\n <input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n id={field?.controlId ?? id ?? `k-otp-${auto}`}\n type=\"text\"\n inputMode=\"numeric\"\n autoComplete=\"one-time-code\"\n pattern=\"\\d*\"\n value={current}\n disabled={disabled}\n aria-label={ariaLabel ?? (field ? undefined : t(\"otpInput.label\", \"Verification code\"))}\n {...(field?.controlProps[\"aria-describedby\"] ? { \"aria-describedby\": field.controlProps[\"aria-describedby\"] } : {})}\n {...(invalid || field?.invalid ? { \"aria-invalid\": true } : {})}\n onChange={(e) => {\n const typed = e.target.value;\n const at = e.target.selectionStart ?? typed.length;\n const next = set(typed);\n pending.current = Math.min(typed.slice(0, at).replace(/\\D/g, \"\").length, next.length);\n }}\n onPaste={(e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const el = e.currentTarget;\n edit(el.selectionStart ?? current.length, el.selectionEnd ?? current.length, e.clipboardData.getData(\"text\"));\n onPaste?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n const start = e.currentTarget.selectionStart ?? current.length;\n const moves: Record<string, number> = { ArrowLeft: start - 1, ArrowRight: start + 1, Home: 0, End: current.length };\n const to = moves[e.key];\n if (to !== undefined && !e.shiftKey && !e.metaKey && !e.ctrlKey && !e.altKey) {\n e.preventDefault();\n select(to);\n }\n onKeyDown?.(e);\n }}\n onClick={(e: MouseEvent<HTMLInputElement>) => {\n const hit = cells.current.findIndex((c) => {\n const r = c?.getBoundingClientRect();\n return !!r && r.width > 0 && e.clientX >= r.left - 4 && e.clientX <= r.right + 4;\n });\n select(hit < 0 ? current.length : hit);\n onClick?.(e);\n }}\n onSelect={(e) => setSel((e.target as HTMLInputElement).selectionStart ?? 0)}\n onFocus={(e) => {\n setFocused(true);\n onFocus?.(e);\n select(current.length);\n }}\n onBlur={(e) => {\n setFocused(false);\n onBlur?.(e);\n }}\n className=\"absolute inset-0 h-full w-full cursor-text bg-transparent text-transparent caret-transparent opacity-0 outline-none disabled:cursor-not-allowed\"\n {...props}\n />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") OTPInput.displayName = \"OTPInput\";\n","import { forwardRef, useRef, useState, type ClipboardEvent, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { Tag } from \"../tag/tag.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TAG_INPUT_VARIANTS = {\n size: {\n md: { classes: \"min-h-36 p-4\" },\n },\n} as const;\nexport const KAESO_TAG_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface TagInputProps extends FieldWrapProps {\n value?: string[] | undefined;\n defaultValue?: string[] | undefined;\n onValueChange?: ((value: string[]) => void) | undefined;\n onInputValueChange?: ((draft: string) => void) | undefined;\n placeholder?: string | undefined;\n validate?: ((tag: string) => true | string) | undefined;\n separators?: string[] | undefined;\n disabled?: boolean | undefined;\n id?: string | undefined;\n name?: string | undefined;\n className?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const TagInput = /* @__PURE__ */ forwardRef<HTMLInputElement, TagInputProps>(function TagInput(props, ref) {\n const {\n value,\n defaultValue = [],\n onValueChange,\n onInputValueChange,\n placeholder,\n validate,\n separators = [\",\", \" \", \";\"],\n disabled,\n id,\n name,\n className,\n label,\n description,\n error,\n optional,\n required,\n layout,\n \"aria-label\": ariaLabel,\n \"data-force\": force,\n } = props;\n const field = useField();\n const fc = useFieldControl(props);\n const t = useUiText();\n const [inner, setInner] = useState<string[]>(defaultValue);\n const [draft, setDraftState] = useState(\"\");\n const setDraft = (next: string) => {\n setDraftState(next);\n onInputValueChange?.(next);\n };\n const input = useRef<HTMLInputElement | null>(null);\n const [armed, setArmed] = useState<number | null>(null);\n const [status, setStatus] = useState(\"\");\n const tags = value ?? inner;\n const set = (next: string[]) => {\n if (value === undefined) setInner(next);\n onValueChange?.(next);\n };\n const splitter = new RegExp(`[${separators.map((s) => s.replace(/[\\]\\\\^-]/g, \"\\\\$&\")).join(\"\")}\\\\n\\\\t]+`);\n const add = (raw: string) => {\n const parts = raw\n .split(splitter)\n .map((p) => p.trim())\n .filter(Boolean)\n .filter((p) => !tags.includes(p));\n if (parts.length) set([...tags, ...parts]);\n setDraft(\"\");\n };\n const remove = (index: number) => {\n const tag = tags[index];\n if (tag === undefined) return;\n set(tags.filter((_, i) => i !== index));\n setArmed(null);\n setStatus(t(\"tagInput.removed\", \"Removed {tag}\", { tag }));\n };\n const arm = (index: number | null) => {\n setArmed(index);\n const tag = index === null ? undefined : tags[index];\n setStatus(tag === undefined ? \"\" : t(\"tagInput.selected\", \"{tag} selected. Press Backspace to remove it.\", { tag }));\n };\n const messages = tags.map((tag) => (validate ? validate(tag) : true));\n const firstError = messages.find((m) => m !== true);\n const fieldError = error ?? (typeof firstError === \"string\" ? firstError : undefined);\n const control = (\n <div\n className={cn(\n \"flex w-full min-w-0 flex-wrap items-center gap-4 rounded-field material-field transition-control cursor-text\",\n KAESO_TAG_INPUT_VARIANTS.size.md.classes,\n disabled && \"cursor-not-allowed\",\n !(label || description || fieldError) && className,\n )}\n {...(fieldError || field?.invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(force ? { \"data-force\": force } : {})}\n onMouseDown={(e) => {\n if (e.target === e.currentTarget) {\n e.preventDefault();\n input.current?.focus();\n }\n }}\n >\n {tags.map((tag, i) => {\n const message = messages[i];\n return (\n <Tag\n key={tag}\n invalid={message !== true}\n {...(disabled ? { variant: \"soft\" as const } : {})}\n className=\"focus-ring\"\n {...(armed === i ? { \"data-force\": \"focus\" } : {})}\n {...(disabled\n ? {}\n : {\n onRemove: () => {\n remove(i);\n input.current?.focus();\n },\n removeLabel: t(\"tagInput.remove\", \"Remove {tag}\", { tag }),\n })}\n >\n {typeof message === \"string\" ? (\n <Tooltip content={message}>\n <span>{tag}</span>\n </Tooltip>\n ) : (\n tag\n )}\n </Tag>\n );\n })}\n <input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(fieldError ? { \"aria-invalid\": true } : {})}\n disabled={disabled}\n required={required && tags.length === 0}\n {...(required ? { \"aria-required\": true } : {})}\n value={draft}\n placeholder={tags.length ? undefined : placeholder}\n onChange={(e) => {\n if (armed !== null) arm(null);\n const v = e.target.value;\n if (separators.some((s) => v.endsWith(s))) add(v);\n else setDraft(v);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n const atStart = e.currentTarget.selectionStart === 0 && e.currentTarget.selectionEnd === 0;\n if (e.key === \"Enter\" && draft.trim()) {\n e.preventDefault();\n add(draft);\n } else if ((e.key === \"Backspace\" || e.key === \"Delete\") && armed !== null) {\n e.preventDefault();\n remove(armed);\n } else if (e.key === \"Backspace\" && atStart && tags.length) {\n e.preventDefault();\n arm(tags.length - 1);\n } else if (e.key === \"ArrowLeft\" && atStart && tags.length) {\n e.preventDefault();\n arm(armed === null ? tags.length - 1 : Math.max(0, armed - 1));\n } else if (e.key === \"ArrowRight\" && armed !== null) {\n e.preventDefault();\n arm(armed + 1 < tags.length ? armed + 1 : null);\n } else if (e.key === \"Escape\" && armed !== null) {\n e.stopPropagation();\n arm(null);\n }\n }}\n onPaste={(e: ClipboardEvent<HTMLInputElement>) => {\n const text = e.clipboardData.getData(\"text\");\n if (splitter.test(text)) {\n e.preventDefault();\n add(draft + text);\n }\n }}\n onBlur={() => {\n setArmed(null);\n if (draft.trim()) add(draft);\n }}\n className={cn(\n \"my-4 min-w-32 flex-1 bg-transparent px-8 text-body text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed\",\n tags.length === 0 && \"ps-10\",\n )}\n />\n {name && <input type=\"hidden\" name={name} value={tags.join(\",\")} />}\n <span role=\"status\" className=\"sr-only\">\n {status}\n </span>\n </div>\n );\n if (field) return control;\n return withField({ label, description, error: fieldError, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") TagInput.displayName = \"TagInput\";\n"],"mappings":"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"}
|