@logicplanes/kaeso-ui 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-guides.md +250 -98
- package/ai/component-registry.json +264 -236
- package/ai/component-registry.md +222 -218
- package/ai/icons.md +1 -1
- package/ai/tokens.md +18 -14
- package/dist/blocks/delete-resource.js +3 -3
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +47 -42
- package/dist/blocks/pages.js.map +1 -1
- package/dist/blocks/resource-list.js +68 -55
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
- package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
- package/dist/chunks/app-frame-DysOel2X.js +232 -0
- package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
- package/dist/chunks/avatar-CYNMK7uY.js +110 -0
- package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
- package/dist/chunks/badge-C0GC3B9X.js +27 -0
- package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
- package/dist/chunks/banner-B3DGLTBu.js +88 -0
- package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
- package/dist/chunks/button-IblhXUyZ.js +202 -0
- package/dist/chunks/button-IblhXUyZ.js.map +1 -0
- package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
- package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
- package/dist/chunks/checkbox-9tbimmF3.js +141 -0
- package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
- package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
- package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
- package/dist/chunks/code-block-64e-Cy1S.js +346 -0
- package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
- package/dist/chunks/{code-block-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
- package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
- package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
- package/dist/chunks/code-xqjww4Pv.js.map +1 -0
- package/dist/chunks/combobox-DkcjkWc6.js +352 -0
- package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
- package/dist/chunks/command-list-CypqsC4T.js +456 -0
- package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
- package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
- package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
- package/dist/chunks/core-CmK-8ObW.js +505 -0
- package/dist/chunks/core-CmK-8ObW.js.map +1 -0
- package/dist/chunks/data-table-CqY8_6IS.js +581 -0
- package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
- package/dist/chunks/date-popup-DAnjptFt.js +58 -0
- package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
- package/dist/chunks/{de-D_0mmG-k.js → de-CqC4aSIV.js} +74 -40
- package/dist/chunks/de-CqC4aSIV.js.map +1 -0
- package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
- package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
- package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
- package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
- package/dist/chunks/domain-obd_w9xk.js +28 -0
- package/dist/chunks/domain-obd_w9xk.js.map +1 -0
- package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
- package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
- package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
- package/dist/chunks/field-D7m-yl-D.js.map +1 -0
- package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
- package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
- package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
- package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
- package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
- package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
- package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
- package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
- package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
- package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
- package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
- package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
- package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
- package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
- package/dist/chunks/label-DW24Aj0Z.js +26 -0
- package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
- package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
- package/dist/chunks/link-CMjkcLQK.js.map +1 -0
- package/dist/chunks/list-B4G-sWwV.js +540 -0
- package/dist/chunks/list-B4G-sWwV.js.map +1 -0
- package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
- package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
- package/dist/chunks/markdown-C565aBR7.js +338 -0
- package/dist/chunks/markdown-C565aBR7.js.map +1 -0
- package/dist/chunks/menu-Clvv6ftq.js +485 -0
- package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
- package/dist/chunks/meter-CASMHlxl.js +100 -0
- package/dist/chunks/meter-CASMHlxl.js.map +1 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
- package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
- package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
- package/dist/chunks/page-header-kS5tdmvb.js +45 -0
- package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
- package/dist/chunks/pagination-D7fAm8qg.js +147 -0
- package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
- package/dist/chunks/popover-Bl5QYqnh.js +51 -0
- package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
- package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
- package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
- package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
- package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
- package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
- package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
- package/dist/chunks/release-art-ChiT4T2S.js +582 -0
- package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
- package/dist/chunks/rights-B68ocZuq.js +312 -0
- package/dist/chunks/rights-B68ocZuq.js.map +1 -0
- package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
- package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
- package/dist/chunks/section-CFBYhsUi.js +77 -0
- package/dist/chunks/section-CFBYhsUi.js.map +1 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
- package/dist/chunks/segmented-D9i1avik.js +119 -0
- package/dist/chunks/segmented-D9i1avik.js.map +1 -0
- package/dist/chunks/select-BqjmQOqx.js +222 -0
- package/dist/chunks/select-BqjmQOqx.js.map +1 -0
- package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
- package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
- package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
- package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
- package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
- package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
- package/dist/chunks/slider-CcE8GtuV.js +58 -0
- package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
- package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
- package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
- package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
- package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
- package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
- package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
- package/dist/chunks/switch-ngywMQdl.js +76 -0
- package/dist/chunks/switch-ngywMQdl.js.map +1 -0
- package/dist/chunks/table-CTK5E0J7.js +102 -0
- package/dist/chunks/table-CTK5E0J7.js.map +1 -0
- package/dist/chunks/tag-BGr6lTSV.js +100 -0
- package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
- package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
- package/dist/chunks/text-DkKdTVUf.js.map +1 -0
- package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
- package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
- package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
- package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
- package/dist/chunks/truncated-d1afmUJT.js +33 -0
- package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
- package/dist/chunks/{zh-CN-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -39
- package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
- package/dist/components/agent-avatar.js +1 -1
- package/dist/components/app-frame.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +22 -22
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +235 -160
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +144 -99
- package/dist/components/charts/donut.js.map +1 -1
- package/dist/components/charts/gauge.js +61 -49
- package/dist/components/charts/gauge.js.map +1 -1
- package/dist/components/charts/heatmap.js +179 -70
- package/dist/components/charts/heatmap.js.map +1 -1
- package/dist/components/charts/sankey.js +144 -77
- package/dist/components/charts/sankey.js.map +1 -1
- package/dist/components/charts/sparkline.js +54 -38
- package/dist/components/charts/sparkline.js.map +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +3 -3
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +77 -1
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -66
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +1 -459
- package/dist/components/date-picker.js +162 -151
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +74 -63
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +76 -64
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/figure.js +2 -2
- package/dist/components/filter-chip.js +36 -27
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +4 -4
- package/dist/components/filter-row.js.map +1 -1
- package/dist/components/flow.js +94 -63
- package/dist/components/flow.js.map +1 -1
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +176 -98
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +51 -46
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +23 -20
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +90 -74
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +200 -187
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +32 -47
- package/dist/components/key-value.js.map +1 -1
- package/dist/components/label.js +1 -25
- package/dist/components/layout.js +2 -2
- package/dist/components/layout.js.map +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +11 -10
- package/dist/components/loader.js.map +1 -1
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +644 -529
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal.js +1 -1
- package/dist/components/qr-code.js +2 -2
- package/dist/components/qr-code.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/settings.js +39 -46
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +10 -9
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/stat.js +98 -84
- package/dist/components/stat.js.map +1 -1
- package/dist/components/status-dot.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/swap-text.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +73 -55
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +1 -1
- package/dist/components/theme-menu.js +5 -2
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +35 -24
- package/dist/components/thumbnail.js.map +1 -1
- package/dist/components/timeline.js +51 -35
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.js +76 -66
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +14 -8
- package/dist/components/toc.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/visually-hidden.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +100 -100
- package/dist/kaeso.css +605 -67
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
- package/dist/types/components/badge/badge.d.ts +3 -3
- package/dist/types/components/banner/banner.d.ts +3 -3
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button-group/button-group.d.ts +1 -1
- package/dist/types/components/charts/domain.d.ts +11 -0
- package/dist/types/components/charts/marks.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +3 -3
- package/dist/types/components/code-block/json-view.d.ts +2 -1
- package/dist/types/components/code-block/numbers.d.ts +1 -0
- package/dist/types/components/collapsible/collapsible.d.ts +2 -2
- package/dist/types/components/collapsible/disclosure.d.ts +2 -0
- package/dist/types/components/data-table/data-table.d.ts +6 -5
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/data-table/time-columns.d.ts +1 -0
- package/dist/types/components/date-picker/focus-day.d.ts +1 -0
- package/dist/types/components/date-picker/iso-field.d.ts +8 -1
- package/dist/types/components/dialog/dialog.d.ts +7 -7
- package/dist/types/components/field/field.d.ts +1 -1
- package/dist/types/components/flow/flow.d.ts +1 -1
- package/dist/types/components/icon-button/icon-button.d.ts +1 -1
- package/dist/types/components/input/input-group.d.ts +2 -0
- package/dist/types/components/input/number-input.d.ts +4 -4
- package/dist/types/components/input/otp-input.d.ts +3 -3
- package/dist/types/components/kaeso/client-button.d.ts +2 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
- package/dist/types/components/kaeso/rights.d.ts +1 -1
- package/dist/types/components/kaeso/role-picker.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +2 -2
- package/dist/types/components/layout/layout.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +4 -4
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -1
- package/dist/types/components/menu/styles.d.ts +3 -3
- package/dist/types/components/meter/meter.d.ts +3 -3
- package/dist/types/components/page-header/page-header.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
- package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
- package/dist/types/components/playground/reasoning.d.ts +1 -0
- package/dist/types/components/popover/popover.d.ts +1 -1
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/section/section-header.d.ts +6 -0
- package/dist/types/components/segmented/segmented.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +1 -1
- package/dist/types/components/sheet/sheet.d.ts +3 -3
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +6 -4
- package/dist/types/components/text/truncated.d.ts +7 -0
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/toc/toc.d.ts +1 -1
- package/dist/types/components/toolbar/toolbar.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
- package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
- package/dist/types/hooks/use-hydrating.d.ts +1 -0
- package/dist/types/utils/arrow-focus.d.ts +4 -1
- package/dist/types/utils/cn.d.ts +33 -0
- package/dist/types/utils/portal-context.d.ts +7 -1
- package/dist/utils.js +2 -2
- package/foundations/accessibility.md +3 -2
- package/foundations/color.md +5 -1
- package/foundations/elevation.md +1 -0
- package/foundations/motion.md +1 -1
- package/foundations/shape.md +2 -2
- package/foundations/typography.md +12 -12
- package/package.json +2 -2
- package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
- package/dist/chunks/app-frame-DogGRmsu.js +0 -221
- package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
- package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
- package/dist/chunks/avatar-CWbdwbJv.js +0 -83
- package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
- package/dist/chunks/badge-C2KtxCLB.js +0 -26
- package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
- package/dist/chunks/banner-BA2ALw9M.js +0 -85
- package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
- package/dist/chunks/button-CzuxqawA.js +0 -164
- package/dist/chunks/button-CzuxqawA.js.map +0 -1
- package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
- package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
- package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
- package/dist/chunks/code-block-BZIe_B9l.js +0 -334
- package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
- package/dist/chunks/code-block-DdNPHEzI.js.map +0 -1
- package/dist/chunks/code-tqj0uhBL.js.map +0 -1
- package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
- package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
- package/dist/chunks/combobox-DjDI7SUC.js +0 -319
- package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
- package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
- package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
- package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
- package/dist/chunks/core-BYns5ytV.js +0 -472
- package/dist/chunks/core-BYns5ytV.js.map +0 -1
- package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
- package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
- package/dist/chunks/de-D_0mmG-k.js.map +0 -1
- package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
- package/dist/chunks/field-TviMvYa2.js.map +0 -1
- package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
- package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
- package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
- package/dist/chunks/input-2VJuj_M4.js.map +0 -1
- package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
- package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
- package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
- package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
- package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
- package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
- package/dist/chunks/link-KWI7PevW.js.map +0 -1
- package/dist/chunks/list-M1csq-d4.js +0 -494
- package/dist/chunks/list-M1csq-d4.js.map +0 -1
- package/dist/chunks/markdown-BupwFOae.js +0 -313
- package/dist/chunks/markdown-BupwFOae.js.map +0 -1
- package/dist/chunks/menu-DEmBfdPm.js +0 -450
- package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
- package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
- package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
- package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
- package/dist/chunks/page-header-DL2y2iZp.js +0 -41
- package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
- package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
- package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
- package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
- package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
- package/dist/chunks/popover-DNN4S47w.js +0 -50
- package/dist/chunks/popover-DNN4S47w.js.map +0 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
- package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
- package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
- package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
- package/dist/chunks/release-art-ZwfFQImt.js +0 -561
- package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
- package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
- package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
- package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
- package/dist/chunks/section-Ce1efbsP.js +0 -87
- package/dist/chunks/section-Ce1efbsP.js.map +0 -1
- package/dist/chunks/segmented-CErcoxwi.js +0 -114
- package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
- package/dist/chunks/select-x4XVsdCI.js +0 -210
- package/dist/chunks/select-x4XVsdCI.js.map +0 -1
- package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
- package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
- package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
- package/dist/chunks/slider-Ci83PGtj.js +0 -57
- package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
- package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
- package/dist/chunks/switch-BNMq_kGt.js +0 -59
- package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
- package/dist/chunks/table-BeOSKl_3.js +0 -84
- package/dist/chunks/table-BeOSKl_3.js.map +0 -1
- package/dist/chunks/tag-D_M1s2qS.js +0 -87
- package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
- package/dist/chunks/text-CIXH8rmT.js.map +0 -1
- package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
- package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
- package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
- package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
- package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
- package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
- package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
- package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
- package/dist/chunks/zh-CN-Bm6UPIbW.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/label.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"de-D_0mmG-k.js","names":["de"],"sources":["../../src/i18n/locales/de.ts"],"sourcesContent":["const de: Readonly<Record<string, string>> = {\n \"agentAttribution.label\": \"{name} über {agent} ({model})\",\n \"agentAvatar.unknownModel\": \"Unbekannt\",\n \"alertDialog.cancel\": \"Abbrechen\",\n \"alertDialog.typeToConfirm\": \"Zur Bestätigung {text} eingeben\",\n \"appFrame.expandSidebar\": \"Seitenleiste ausklappen\",\n \"appFrame.navigation\": \"Navigation\",\n \"appFrame.openNavigation\": \"Navigation öffnen\",\n \"appFrame.skipToContent\": \"Zum Inhalt springen\",\n \"avatarGroup.listSeparator\": \", \",\n \"banner.dismiss\": \"Ausblenden\",\n \"barChart.category\": \"Kategorie\",\n \"calendar.navigation\": \"Navigationsleiste\",\n \"calendar.nextMonth\": \"Zum nächsten Monat\",\n \"calendar.previousMonth\": \"Zum vorherigen Monat\",\n \"calendar.selected\": \"{date}, ausgewählt\",\n \"calendar.today\": \"Heute, {date}\",\n \"chart.listSeparator\": \", \",\n \"chart.liveLine\": \"{heading}: {values}\",\n \"chart.liveValue\": \"{label} {value}\",\n \"chart.partial\": \"{heading}, unvollständig\",\n \"chart.soFar\": \"{heading}, bisher\",\n \"chartFrame.loadFailed\": \"Diagramm konnte nicht geladen werden\",\n \"chartFrame.noData\": \"Keine Daten für diesen Zeitraum\",\n \"chartFrame.tryAgain\": \"Erneut versuchen\",\n \"chartFrame.viewAsChart\": \"Diagramm anzeigen\",\n \"chartFrame.viewAsTable\": \"Tabelle anzeigen\",\n \"chartLegend.label\": \"Legende\",\n \"codeBlock.code\": \"Code\",\n \"codeBlock.copy\": \"Code kopieren\",\n \"codeBlock.language\": \"Sprache\",\n \"codeBlock.showAllLines\": \"Alle {count} Zeilen anzeigen\",\n \"codeBlock.showLess\": \"Weniger anzeigen\",\n \"codeBlock.titledCode\": \"Code: {title}\",\n \"combobox.add\": \"„{label}“ hinzufügen\",\n \"combobox.loading\": \"Wird geladen…\",\n \"combobox.loadingResults\": \"Ergebnisse werden geladen\",\n \"combobox.more\": \"{count, plural, one {# weiterer Eintrag; tippen, um einzugrenzen} other {# weitere Einträge; tippen, um einzugrenzen}}\",\n \"combobox.noResults\": \"Keine Ergebnisse\",\n \"combobox.remove\": \"{label} entfernen\",\n \"combobox.showOptions\": \"Optionen anzeigen\",\n \"commandList.loading\": \"Wird geladen…\",\n \"commandList.noResults\": \"Keine Ergebnisse\",\n \"commandList.search\": \"Suchen\",\n \"commandPalette.label\": \"Befehlspalette\",\n \"commandPalette.noResults\": \"Keine Ergebnisse\",\n \"commandPalette.placeholder\": \"Suchen oder Befehl ausführen\",\n \"commandPalette.results\": \"Ergebnisse\",\n \"commandPalette.toClose\": \"zum Schließen\",\n \"commandPalette.toGoBack\": \"zum Zurückgehen\",\n \"commandPalette.toNavigate\": \"zum Navigieren\",\n \"commandPalette.toOpen\": \"zum Öffnen\",\n \"compareGrid.addModel\": \"Modell hinzufügen\",\n \"compareGrid.columnName\": \"{label}, \",\n \"compareGrid.compareUpTo\": \"Bis zu {max} gleichzeitig vergleichen\",\n \"compareGrid.nextColumn\": \"Nächste Spalte\",\n \"compareGrid.position\": \"{index} von {count}\",\n \"compareGrid.previousColumn\": \"Vorherige Spalte\",\n \"compareGrid.remove\": \"{label} entfernen\",\n \"compareGrid.thread\": \"Verlauf {label}\",\n \"composer.placeholder\": \"Prompt schreiben\",\n \"composer.prompt\": \"Prompt\",\n \"composer.send\": \"Senden\",\n \"composer.stop\": \"Stoppen\",\n \"conversationView.assistant\": \"Assistent\",\n \"conversationView.called\": \"**{name}** aufgerufen\",\n \"conversationView.developer\": \"Entwickler\",\n \"conversationView.document\": \"Dokument\",\n \"conversationView.encrypted\": \"Der Anbieter hat dieses Reasoning verschlüsselt zurückgegeben.\",\n \"conversationView.error\": \"Fehler\",\n \"conversationView.image\": \"Bild\",\n \"conversationView.imageFrom\": \"Bild von {host}\",\n \"conversationView.imageInput\": \"Bildeingabe\",\n \"conversationView.reasoning\": \"Reasoning\",\n \"conversationView.redacted\": \"Vom Anbieter geschwärzt\",\n \"conversationView.refused\": \"Das Modell hat abgelehnt.\",\n \"conversationView.result\": \"Ergebnis\",\n \"conversationView.system\": \"System\",\n \"conversationView.tool\": \"Tool\",\n \"conversationView.user\": \"Benutzer\",\n \"copyButton.copied\": \"Kopiert\",\n \"copyButton.copy\": \"Kopieren\",\n \"dataTable.loadFailed\": \"Zeilen konnten nicht geladen werden\",\n \"dataTable.noMatches\": \"Nichts passt zu diesen Filtern.\",\n \"dataTable.noRows\": \"Keine Zeilen\",\n \"dataTable.resizeColumn\": \"Spaltenbreite ändern\",\n \"dataTable.selectAllRows\": \"Alle Zeilen auswählen\",\n \"dataTable.selectNamed\": \"{name} auswählen\",\n \"dataTable.selectRow\": \"Zeile auswählen\",\n \"dataTable.tokenCount\": \"{count} Token\",\n \"dataTable.tryAgain\": \"Erneut versuchen\",\n \"datePicker.apply\": \"Anwenden\",\n \"datePicker.chooseDate\": \"Datum auswählen\",\n \"datePicker.chooseRange\": \"Zeitraum auswählen\",\n \"datePicker.custom\": \"Benutzerdefiniert\",\n \"datePicker.date\": \"Datum\",\n \"datePicker.endDate\": \"Enddatum\",\n \"datePicker.isoPlaceholder\": \"JJJJ-MM-TT\",\n \"datePicker.last24Hours\": \"Letzte 24 Stunden\",\n \"datePicker.last30Days\": \"Letzte 30 Tage\",\n \"datePicker.last7Days\": \"Letzte 7 Tage\",\n \"datePicker.lastMonth\": \"Letzter Monat\",\n \"datePicker.pickDate\": \"Datum wählen\",\n \"datePicker.pickRange\": \"Zeitraum wählen\",\n \"datePicker.presets\": \"Vorgaben\",\n \"datePicker.startDate\": \"Startdatum\",\n \"datePicker.thisMonth\": \"Dieser Monat\",\n \"deleteResource.confirm\": \"{kind} {verb}\",\n \"deleteResource.deleteConfirm\": \"{kind} löschen\",\n \"deleteResource.deleteTitle\": \"{kind} löschen?\",\n \"deleteResource.title\": \"{kind} {verb}?\",\n \"dialog.back\": \"Zurück\",\n \"dialog.close\": \"Schließen\",\n \"diffView.added\": \"Hinzugefügt\",\n \"diffView.copy\": \"Änderungen kopieren\",\n \"diffView.label\": \"Änderungen\",\n \"diffView.noChanges\": \"Keine Änderungen\",\n \"diffView.removed\": \"Entfernt\",\n \"diffView.showUnchanged\": \"{count, plural, one {# unveränderte Zeile anzeigen} other {# unveränderte Zeilen anzeigen}}\",\n \"diffView.summary\": \"{added, plural, one {# Zeile hinzugefügt} other {# Zeilen hinzugefügt}}, {removed, plural, one {# entfernt} other {# entfernt}}\",\n \"displayOptions.displayOptions\": \"Anzeigeoptionen\",\n \"displayOptions.doesNotFit\": \"Passt bei dieser Breite nicht\",\n \"displayOptions.hiddenProperties\": \"{count, plural, one {{properties} passt bei dieser Breite nicht.} other {{properties} passen bei dieser Breite nicht.}}\",\n \"displayOptions.properties\": \"Angezeigte Eigenschaften\",\n \"displayOptions.view\": \"Ansicht\",\n \"donut.legend\": \"Legende\",\n \"donut.other\": \"Sonstige\",\n \"donut.share\": \"Anteil\",\n \"donut.slice\": \"Segment\",\n \"donut.total\": \"Gesamt\",\n \"donut.underOnePercent\": \"<1 %\",\n \"donut.value\": \"Wert\",\n \"effectiveAccess.access\": \"Zugriff\",\n \"effectiveAccess.everyRight\": \"Alle Rechte\",\n \"effectiveAccess.from\": \"Über\",\n \"effectiveAccess.grantedOfTotal\": \"{granted} von {total}\",\n \"effectiveAccess.listSeparator\": \", \",\n \"effectiveAccess.noRights\": \"Keine Rechte\",\n \"effectiveAccess.noRightsIn\": \"Keine Rechte in\",\n \"environmentSnippet.apiKey\": \"API-Schlüssel\",\n \"environmentSnippet.baseUrl\": \"Basis-URL\",\n \"environmentSnippet.copyBaseUrl\": \"Basis-URL kopieren\",\n \"environmentSnippet.copyVariableName\": \"Variablennamen kopieren\",\n \"field.optional\": \"Optional\",\n \"filterChip.filter\": \"Filter\",\n \"filterChip.filterNamed\": \"Filter: {property}\",\n \"filterChip.noMatches\": \"Keine passenden Werte\",\n \"filterChip.remove\": \"Filter entfernen\",\n \"filterChip.removeNamed\": \"Filter „{property}“ entfernen\",\n \"filterChip.search\": \"Suchen\",\n \"filterChip.searchNamedValues\": \"Werte für „{property}“ durchsuchen\",\n \"filterChip.searchValues\": \"Werte durchsuchen\",\n \"filterRow.filters\": \"Filter\",\n \"flow.connection\": \"Von {from} zu {to}\",\n \"flow.label\": \"Flussdiagramm\",\n \"format.daysAgo\": \"{count, plural, one {vor # Tag} other {vor # Tagen}}\",\n \"format.hoursAgo\": \"vor {count} Std.\",\n \"format.hoursMinutes\": \"{h} h {min} min\",\n \"format.inDays\": \"{count, plural, one {in # Tag} other {in # Tagen}}\",\n \"format.inHours\": \"in {count} Std.\",\n \"format.inMinutes\": \"in {count} Min.\",\n \"format.justNow\": \"gerade eben\",\n \"format.milliseconds\": \"{ms} ms\",\n \"format.minutes\": \"{min} min\",\n \"format.minutesAgo\": \"vor {count} Min.\",\n \"format.minutesSeconds\": \"{min} min {s} s\",\n \"format.seconds\": \"{s} s\",\n \"format.thousands\": \"{value}\\u00a0Tsd.\",\n \"format.yesterday\": \"gestern\",\n \"heatmap.cell\": \"{row} {column}: {value}\",\n \"heatmap.less\": \"Weniger\",\n \"heatmap.more\": \"Mehr\",\n \"jsonView.collapse\": \"Einklappen\",\n \"jsonView.collapsePath\": \"{path} einklappen\",\n \"jsonView.copyPath\": \"Pfad {path} kopieren\",\n \"jsonView.expand\": \"Ausklappen\",\n \"jsonView.expandPath\": \"{path} ausklappen\",\n \"jsonView.items\": \"{count, plural, one {{n} Element} other {{n} Elemente}}\",\n \"jsonView.keys\": \"{count, plural, one {{n} Schlüssel} other {{n} Schlüssel}}\",\n \"jsonView.label\": \"JSON\",\n \"jsonView.pathCopied\": \"Pfad kopiert\",\n \"kbd.backspace\": \"Rücktaste\",\n \"kbd.backspaceName\": \"Rücktaste\",\n \"kbd.commandName\": \"Befehlstaste\",\n \"kbd.controlName\": \"Steuerungstaste\",\n \"kbd.ctrl\": \"Strg\",\n \"kbd.downName\": \"Nach unten\",\n \"kbd.enterName\": \"Eingabetaste\",\n \"kbd.escapeName\": \"Esc-Taste\",\n \"kbd.leftName\": \"Nach links\",\n \"kbd.optionName\": \"Wahltaste\",\n \"kbd.rightName\": \"Nach rechts\",\n \"kbd.shift\": \"Umschalt\",\n \"kbd.shiftName\": \"Umschalttaste\",\n \"kbd.tabName\": \"Tabulatortaste\",\n \"kbd.then\": \"dann\",\n \"kbd.upName\": \"Nach oben\",\n \"keyDisplay.active\": \"Aktiv\",\n \"keyDisplay.archived\": \"Archiviert\",\n \"keyDisplay.copyRedactedKey\": \"Maskierten Schlüssel kopieren\",\n \"keyDisplay.disabled\": \"Deaktiviert\",\n \"keyDisplay.expired\": \"Abgelaufen\",\n \"keyDisplay.inference\": \"Inferenz\",\n \"keyDisplay.inferenceAndPlatform\": \"Inferenz + Plattform\",\n \"keyDisplay.platform\": \"Plattform\",\n \"label.optional\": \"Optional\",\n \"limitMeter.hard\": \"Hart\",\n \"limitMeter.label\": \"{kind, select, requests {Anfragelimit} tokens {Token-Limit} other {Ausgabenlimit}}\",\n \"limitMeter.soft\": \"Weich\",\n \"link.opensInNewTab\": \" (öffnet in einem neuen Tab)\",\n \"list.add\": \"Hinzufügen\",\n \"list.clearSelection\": \"Auswahl aufheben\",\n \"list.selectItem\": \"{name} auswählen\",\n \"list.selected\": \"{count} ausgewählt\",\n \"list.selection\": \"Auswahl\",\n \"loader.loading\": \"Wird geladen\",\n \"markdown.showAllCharacters\": \"Alle {count} Zeichen anzeigen\",\n \"modelLabel.capabilities\": \"Fähigkeiten: {list}\",\n \"modelLabel.imageInput\": \"Bildeingabe\",\n \"modelLabel.listSeparator\": \", \",\n \"modelLabel.pdfInput\": \"PDF-Eingabe\",\n \"modelLabel.reasoning\": \"Reasoning\",\n \"modelLabel.structuredOutput\": \"Strukturierte Ausgabe\",\n \"modelLabel.toolCalling\": \"Tool-Aufrufe\",\n \"modelPicker.choose\": \"Modell wählen\",\n \"modelPicker.chooseSome\": \"Modelle wählen\",\n \"modelPicker.everyProvider\": \"Alle Anbieter\",\n \"modelPicker.firstAndMore\": \"{first} +{count}\",\n \"modelPicker.model\": \"Modell\",\n \"modelPicker.noMatch\": \"Kein Modell passt\",\n \"modelPicker.provider\": \"Anbieter\",\n \"modelPicker.recent\": \"Zuletzt verwendet\",\n \"modelPicker.search\": \"Modelle suchen\",\n \"modelPicker.showDeprecated\": \"Veraltete\",\n \"numberInput.decrease\": \"Verringern\",\n \"numberInput.increase\": \"Erhöhen\",\n \"otpInput.label\": \"Bestätigungscode\",\n \"pagination.label\": \"Seitennavigation\",\n \"pagination.loadMore\": \"Mehr laden\",\n \"pagination.next\": \"Nächste Seite\",\n \"pagination.page\": \"Seite {page}\",\n \"pagination.previous\": \"Vorherige Seite\",\n \"parameterPanel.effortExtraHigh\": \"Sehr hoch\",\n \"parameterPanel.effortHigh\": \"Hoch\",\n \"parameterPanel.effortLow\": \"Niedrig\",\n \"parameterPanel.effortMax\": \"Maximal\",\n \"parameterPanel.effortMedium\": \"Mittel\",\n \"parameterPanel.effortMinimal\": \"Minimal\",\n \"parameterPanel.effortNone\": \"Ohne\",\n \"parameterPanel.instructionsPlaceholder\": \"Sie sind ein hilfreicher Assistent.\",\n \"parameterPanel.maxOutputTokens\": \"Max. Ausgabe-Token\",\n \"parameterPanel.modelDefault\": \"Modell-Standard\",\n \"parameterPanel.reasoningEffort\": \"Reasoning-Aufwand\",\n \"parameterPanel.reasoningSummary\": \"Reasoning-Zusammenfassung\",\n \"parameterPanel.resetToDefaults\": \"Auf Standard zurücksetzen\",\n \"parameterPanel.summaryAuto\": \"Auto\",\n \"parameterPanel.summaryConcise\": \"Knapp\",\n \"parameterPanel.summaryDetailed\": \"Detailliert\",\n \"parameterPanel.summaryOff\": \"Aus\",\n \"parameterPanel.systemInstructions\": \"Systemanweisungen\",\n \"parameterPanel.temperature\": \"Temperatur\",\n \"parameterPanel.topP\": \"Top P\",\n \"parameterPanel.valueDefault\": \"{value} (Standard)\",\n \"parameterPopover.parameters\": \"Parameter\",\n \"pickerPopover.close\": \"Schließen\",\n \"promptSuggestions.examplePrompts\": \"Beispiel-Prompts\",\n \"providerCard.connected\": \"Verbunden\",\n \"providerCard.notConnected\": \"Nicht verbunden\",\n \"providerPicker.choose\": \"Anbieter wählen\",\n \"providerPicker.connected\": \"Verbunden\",\n \"providerPicker.noMatch\": \"Kein Anbieter passt\",\n \"providerPicker.other\": \"Weitere Anbieter\",\n \"providerPicker.providers\": \"Anbieter\",\n \"providerPicker.search\": \"Anbieter suchen\",\n \"requestTimeline.label\": \"Zeit bis zum ersten Byte: {ttfb} von insgesamt {total}\",\n \"requestTimeline.firstByte\": \"Erstes Byte\",\n \"requestTimeline.totalTime\": \"Gesamt\",\n \"resourceList.filters\": \"Filter\",\n \"resourceList.noMatches\": \"Keine Treffer\",\n \"resourceList.nothingHereYet\": \"Noch nichts vorhanden\",\n \"resourceList.search\": \"Suchen\",\n \"resourceList.tryShorterSearch\": \"Kürzeren Suchbegriff versuchen.\",\n \"responseMetrics.cost\": \"Kosten\",\n \"responseMetrics.firstToken\": \"Erstes Token\",\n \"responseMetrics.metrics\": \"Kennzahlen\",\n \"responseMetrics.notYetKnown\": \"noch unbekannt\",\n \"responseMetrics.reasoning\": \"Reasoning\",\n \"responseMetrics.tokens\": \"Token\",\n \"responseMetrics.tokensValue\": \"{input} Eingabe · {output} Ausgabe\",\n \"responseMetrics.total\": \"Gesamt\",\n \"responseView.contentFilter\": \"Vom Inhaltsfilter des Anbieters gestoppt\",\n \"responseView.incomplete\": \"Das Modell hat die Antwort vorzeitig beendet\",\n \"responseView.noResponse\": \"Keine Antwort\",\n \"responseView.noText\": \"Das Modell hat keinen Text zurückgegeben\",\n \"responseView.outputLimit\": \"Am Ausgabelimit gestoppt\",\n \"responseView.responding\": \"Antwortet\",\n \"responseView.response\": \"Antwort\",\n \"responseView.retry\": \"Erneut versuchen\",\n \"responseView.stopped\": \"Gestoppt\",\n \"responseView.stoppedBeforeResponse\": \"Vor einer Antwort gestoppt\",\n \"responseView.stoppedEarly\": \"Die Antwort brach vorzeitig ab\",\n \"responseView.thinking\": \"Denkt nach\",\n \"responseView.thoughtFor\": \"{duration} nachgedacht\",\n \"responseView.waiting\": \"Warten auf die Antwort\",\n \"rightsMatrix.added\": \"Hinzugefügt\",\n \"rightsMatrix.alsoGranted\": \"Ebenfalls gewährt: {rights}\",\n \"rightsMatrix.alsoRemoved\": \"Ebenfalls entzogen: {rights}\",\n \"rightsMatrix.everyRightIn\": \"Alle Rechte in {group}\",\n \"rightsMatrix.everyRightShownIn\": \"Alle angezeigten Rechte in {group}\",\n \"rightsMatrix.fromRole\": \"Über Rolle\",\n \"rightsMatrix.granted\": \"Gewährt\",\n \"rightsMatrix.grantedOfTotal\": \"{granted} von {total}\",\n \"rightsMatrix.listSeparator\": \", \",\n \"rightsMatrix.needs\": \"Erfordert {rights}\",\n \"rightsMatrix.noMatch\": \"Keine passenden Rechte\",\n \"rightsMatrix.noMatchHint\": \"Namen, Code oder ein Wort aus der Beschreibung eines Rechts versuchen.\",\n \"rightsMatrix.notGranted\": \"Nicht gewährt\",\n \"rightsMatrix.removed\": \"Entfernt\",\n \"rightsMatrix.rights\": \"Rechte\",\n \"rightsMatrix.searchRights\": \"Rechte suchen\",\n \"rightsMatrix.sensitive\": \"Sensibel\",\n \"rightsMatrix.sensitiveHint\": \"Sensibel: legt Daten offen oder ist schwer rückgängig zu machen\",\n \"rolePicker.builtInRoles\": \"Integrierte Rollen\",\n \"rolePicker.customRoles\": \"Eigene Rollen\",\n \"rolePicker.role\": \"Rolle\",\n \"sankey.from\": \"Von\",\n \"sankey.link\": \"{source} → {target}: {value}\",\n \"sankey.requests\": \"Anfragen\",\n \"sankey.to\": \"Nach\",\n \"searchInput.clear\": \"Suche leeren\",\n \"searchInput.placeholder\": \"Suchen\",\n \"secretReveal.copied\": \"Kopiert\",\n \"secretReveal.copyKey\": \"Schlüssel kopieren\",\n \"secretReveal.secret\": \"Secret\",\n \"secretReveal.secretFor\": \"Secret für {name}\",\n \"secretReveal.shownOnce\": \"Nur einmal sichtbar. Jetzt sicher speichern.\",\n \"select.firstAndMore\": \"{first} +{count}\",\n \"select.placeholder\": \"Auswählen\",\n \"sensitiveInput.capsLock\": \"Feststelltaste ist aktiviert.\",\n \"sensitiveInput.hide\": \"Ausblenden\",\n \"sensitiveInput.hidePassword\": \"Passwort ausblenden\",\n \"sensitiveInput.show\": \"Anzeigen\",\n \"sensitiveInput.showPassword\": \"Passwort anzeigen\",\n \"shareBar.listSeparator\": \", \",\n \"shareBar.segment\": \"{label}: {value}\",\n \"shareBar.share\": \"{label} {share}\",\n \"shareBar.summary\": \"{label}: {shares}\",\n \"sheet.close\": \"Schließen\",\n \"sidebar.backToApp\": \"Zurück zur App\",\n \"sidebar.clickToCollapse\": \"**Klicken** zum Einklappen\",\n \"sidebar.closeNavigation\": \"Navigation schließen\",\n \"sidebar.collapse\": \"Seitenleiste einklappen\",\n \"sidebar.dragToResize\": \"**Ziehen** zum Ändern der Breite\",\n \"sidebar.expand\": \"Seitenleiste ausklappen\",\n \"sidebar.keepOpen\": \"Seitenleiste offen lassen\",\n \"sidebar.main\": \"Hauptmenü\",\n \"sidebar.resizeOrCollapse\": \"Breite der Seitenleiste ändern; klicken zum Einklappen\",\n \"sidebar.switchOrOpenSettings\": \"Wechseln oder Einstellungen öffnen\",\n \"sidebar.switchPlace\": \"Wechseln\",\n \"slider.rangeEnd\": \"Bereichsende: {value}\",\n \"slider.rangeStart\": \"Bereichsanfang: {value}\",\n \"statTile.percent\": \"{value} %\",\n \"statTile.trend\": \"Verlauf\",\n \"statTile.trendPerDay\": \"{label} pro Tag\",\n \"statusCode.badGateway\": \"Bad Gateway\",\n \"statusCode.badRequest\": \"Ungültige Anfrage\",\n \"statusCode.clientClosed\": \"Client getrennt\",\n \"statusCode.conflict\": \"Konflikt\",\n \"statusCode.created\": \"Erstellt\",\n \"statusCode.forbidden\": \"Verboten\",\n \"statusCode.gatewayTimeout\": \"Gateway-Timeout\",\n \"statusCode.noContent\": \"Kein Inhalt\",\n \"statusCode.notFound\": \"Nicht gefunden\",\n \"statusCode.ok\": \"OK\",\n \"statusCode.overloaded\": \"Überlastet\",\n \"statusCode.rateLimited\": \"Ratenlimit erreicht\",\n \"statusCode.serverError\": \"Serverfehler\",\n \"statusCode.timeout\": \"Zeitüberschreitung\",\n \"statusCode.tooLarge\": \"Zu groß\",\n \"statusCode.tooltip\": \"{code} {text}\",\n \"statusCode.unauthorized\": \"Nicht autorisiert\",\n \"statusCode.unavailable\": \"Nicht verfügbar\",\n \"statusCode.unprocessable\": \"Nicht verarbeitbar\",\n \"stepDialog.back\": \"Zurück\",\n \"stepDialog.cancel\": \"Abbrechen\",\n \"stepDialog.continue\": \"Weiter\",\n \"stepDialog.stepAnnouncement\": \"Schritt {current} von {total}: {title}\",\n \"stepDialog.stepOf\": \"Schritt {current} von {total}\",\n \"tableOfContents.title\": \"Auf dieser Seite\",\n \"tag.remove\": \"Entfernen\",\n \"tag.removeNamed\": \"{label} entfernen\",\n \"tagInput.remove\": \"{tag} entfernen\",\n \"themeMenu.dark\": \"Dunkel\",\n \"themeMenu.light\": \"Hell\",\n \"themeMenu.system\": \"System\",\n \"themeMenu.theme\": \"Design\",\n \"timeInput.hours\": \"Stunden\",\n \"timeInput.minutes\": \"Minuten\",\n \"timeInput.time\": \"Uhrzeit\",\n \"timeseriesChart.time\": \"Zeit\",\n \"toast.dismiss\": \"Ausblenden\",\n \"toast.notifications\": \"Benachrichtigungen\",\n \"tokenKind.cacheRead\": \"Cache-Lesen\",\n \"tokenKind.cacheWrite\": \"Cache-Schreiben\",\n \"tokenKind.input\": \"Eingabe\",\n \"tokenKind.output\": \"Ausgabe\",\n \"tokenKind.reasoning\": \"Reasoning\",\n \"usageBreakdown.cacheRead\": \"Cache-Lesen\",\n \"usageBreakdown.cacheWrite\": \"Cache-Schreiben\",\n \"usageBreakdown.input\": \"Eingabe\",\n \"usageBreakdown.kindCount\": \"{kind} {count}\",\n \"usageBreakdown.listSeparator\": \", \",\n \"usageBreakdown.output\": \"Ausgabe\",\n \"usageBreakdown.reasoning\": \"Reasoning\",\n \"usageBreakdown.tokenCount\": \"{count} Token\",\n \"usageBreakdown.tokens\": \"Token: {list}\",\n \"userMessage.prompt\": \"Prompt\",\n \"userMessage.showAll\": \"Alles anzeigen\",\n \"userMessage.showLess\": \"Weniger anzeigen\",\n};\nexport default de;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-Cg9A_6SF.js","names":["BaseDialog","__icon_Cancel01Icon","Dialog","BaseAlertDialog","AlertDialog","__icon_ArrowLeft01Icon","cn","usePortalContainer","GutterContent","useUiText","mergeRefs","KAESO_BUTTON_VARIANTS","Button","IconButton","Input","useRestoreFocus","useScopedDialog","useResizeMotion","OverNonModalSheet","DIALOG_FIELD","FOCUSABLE","usable","el","firstUsable","scope","selector","initialDialogControl","content","frame","toolbar","footer","actions","dangerSecondary","safe","a","danger","primary","focusDialogSection","section","previous","KAESO_DIALOG_VARIANTS","KAESO_DIALOG_DEFAULT_VARIANTS","BACKDROP","DIALOG_VIEWPORT","DIALOG_POPUP","DialogBusy","LayerSlots","useScrolledUnder","ref","useRef","under","setUnder","useState","scrolled","setScrolled","check","useCallback","useEffect","useKeepFocus","rendered","first","active","inline","box","SINGLE_LINE","submitsOnEnter","target","useBox","setBox","DialogFrame","slots","use","boxRef","frameRef","useMemo","rootRef","t","Title","Dialog","closeButton","Cancel01Icon","busy","close","hideClose","Description","anchor","size","className","onSubmit","headerStart","title","description","children","footerStart","RaisedContent","focusFirstControl","open","Root","props","focus","container","overSheet","settled","defaultOpen","o","details","persistent","trigger","InsetContent","Close","cloneElement","Dialog$1","KAESO_ALERT_DIALOG_VARIANTS","KAESO_ALERT_DIALOG_DEFAULT_VARIANTS","AlertFrame","cancelProp","typed","setTyped","pending","cancelLabel","typeBefore","typeAfter","AlertDialog","ok","confirmText","confirm","loading","r","onConfirm","setBusy","done","tone","confirmLabel","AlertDialog$1","inner","setInner","isOpen","setOpen","onOpenChange","KAESO_LAYER_DIALOG_VARIANTS","KAESO_LAYER_DIALOG_DEFAULT_VARIANTS","bodyOf","LayerDialog","wanted","layer","index","layers","sections","focused","tops","left","shown","useLayoutEffect","from","back","body","go","i","onLayerChange","stack","current","remember","e","l","ArrowLeft01Icon"],"sources":["../../src/components/dialog/focus.ts","../../src/components/dialog/dialog.tsx"],"sourcesContent":["import { KAESO_BUTTON_VARIANTS } from \"../button/button.js\";\n\nconst DIALOG_FIELD =\n 'input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"], button[data-picker]';\nconst FOCUSABLE = 'a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst usable = (el: HTMLElement) => !el.closest(\"[hidden], [inert]\") && !el.matches(\":disabled, [aria-disabled=true]\");\nconst firstUsable = (scope: ParentNode, selector: string) => [...scope.querySelectorAll<HTMLElement>(selector)].find(usable) ?? null;\n\nexport function initialDialogControl(frame: HTMLElement, scope?: HTMLElement | undefined): HTMLElement | null {\n const content = scope ?? frame.querySelector<HTMLElement>(\"[data-dialog-body]\");\n const toolbar = frame.querySelector<HTMLElement>(\"[data-dialog-toolbar]\");\n const footer = frame.querySelector<HTMLElement>(\"[data-dialog-footer]\");\n const actions = footer ? [...footer.querySelectorAll<HTMLElement>(\"button, a[href]\")].filter(usable) : [];\n const { primary, danger, \"danger-secondary\": dangerSecondary } = KAESO_BUTTON_VARIANTS.variant;\n const safe = actions.filter((a) => !a.classList.contains(danger.classes) && !a.classList.contains(dangerSecondary.classes));\n return (\n (toolbar && firstUsable(toolbar, \"[data-autofocus]\")) ??\n (content && (firstUsable(content, \"[data-autofocus]\") ?? firstUsable(content, DIALOG_FIELD))) ??\n (toolbar && firstUsable(toolbar, DIALOG_FIELD)) ??\n safe.find((a) => a.classList.contains(primary.classes)) ??\n safe[0] ??\n (content && firstUsable(content, FOCUSABLE)) ??\n firstUsable(frame, FOCUSABLE)\n );\n}\n\nexport function focusDialogSection(section: HTMLElement | null | undefined, previous?: HTMLElement | null | undefined) {\n const frame = section?.closest<HTMLElement>(\"[data-dialog-frame]\");\n if (!section || !frame || frame.closest(\"[data-closed]\")) return;\n const back = previous?.isConnected && frame.contains(previous) && usable(previous) ? previous : null;\n (back ?? initialDialogControl(frame, section))?.focus({ preventScroll: true });\n}\n","import { GutterContent, InsetContent, RaisedContent } from \"../../utils/inset.js\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport {\n cloneElement,\n createContext,\n forwardRef,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { AlertDialog as BaseAlertDialog } from \"@base-ui/react/alert-dialog\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useRestoreFocus } from \"../../utils/restore-focus.js\";\nimport { useScopedDialog } from \"../../utils/dialog-scope.js\";\nimport { OverNonModalSheet } from \"../../utils/over-sheet.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowLeft01Icon as __icon_ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Button } from \"../button/button.js\";\nimport { Input } from \"../input/input.js\";\nimport { focusDialogSection, initialDialogControl } from \"./focus.js\";\nimport { useResizeMotion } from \"../../utils/resize-motion.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\n\nexport const KAESO_DIALOG_VARIANTS = {\n size: {\n sm: { classes: \"w-440\" },\n md: { classes: \"w-560\" },\n lg: { classes: \"w-720\" },\n },\n anchor: {\n center: { classes: \"items-center\" },\n top: { classes: \"items-start pt-dialog-top\" },\n },\n} as const;\nexport const KAESO_DIALOG_DEFAULT_VARIANTS = { size: \"md\", anchor: \"center\" } as const;\n\nconst BACKDROP = \"fixed inset-0 z-50 bg-overlay backdrop-motion\";\nconst DIALOG_VIEWPORT = \"fixed inset-0 z-50 flex justify-center p-16\";\nconst DIALOG_POPUP = \"relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion\";\n\nconst DialogBusy = /* @__PURE__ */ createContext(false);\nconst LayerSlots = /* @__PURE__ */ createContext({ toolbar: true, footerStart: true });\n\nfunction useScrolledUnder<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [under, setUnder] = useState(false);\n const [scrolled, setScrolled] = useState(false);\n const check = useCallback(() => {\n const el = ref.current;\n if (!el || el.closest(\"[data-resizing]\")) return;\n setUnder(el.scrollHeight - el.scrollTop - el.clientHeight > 1);\n setScrolled(el.scrollTop > 0);\n }, []);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n check();\n el.addEventListener(\"scroll\", check, { passive: true });\n window.addEventListener(\"resize\", check);\n return () => {\n el.removeEventListener(\"scroll\", check);\n window.removeEventListener(\"resize\", check);\n };\n }, [check]);\n return { ref, under, scrolled, check };\n}\n\nfunction useKeepFocus(box: HTMLElement | null, inline: boolean | undefined) {\n const rendered = useRef(false);\n useEffect(() => {\n const first = !rendered.current;\n rendered.current = true;\n const active = document.activeElement;\n if (first || inline || !box || (active && active !== document.body) || box.matches(\"[data-ending-style], [data-closed]\")) return;\n const frame = box.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n if (frame) initialDialogControl(frame)?.focus({ preventScroll: true });\n });\n}\n\nconst SINGLE_LINE = new Set([\"text\", \"email\", \"password\", \"tel\", \"url\", \"number\"]);\n\nfunction submitsOnEnter(e: KeyboardEvent): boolean {\n // Safari ends composition before the Enter that confirms it, leaving only keyCode 229: https://bugs.webkit.org/show_bug.cgi?id=165004\n if (e.key !== \"Enter\" || e.altKey || e.nativeEvent.isComposing || e.keyCode === 229) return false;\n if (e.metaKey || e.ctrlKey) return true;\n const target = e.target as HTMLElement;\n return !e.defaultPrevented && !e.shiftKey && target instanceof HTMLInputElement && SINGLE_LINE.has(target.type) && target.getAttribute(\"role\") !== \"combobox\";\n}\n\nfunction useBox(inline: boolean | undefined) {\n const [box, setBox] = useState<HTMLElement | null>(null);\n const ref = useCallback((el: HTMLElement | null) => setBox(inline ? el : (el?.parentElement ?? null)), [inline]);\n return [box, ref] as const;\n}\n\nexport interface DialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n busy?: boolean | undefined;\n size?: keyof typeof KAESO_DIALOG_VARIANTS.size | undefined;\n anchor?: keyof typeof KAESO_DIALOG_VARIANTS.anchor | undefined;\n children?: ReactNode | undefined;\n toolbar?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n footerStart?: ReactNode | undefined;\n onSubmit?: (() => void) | undefined;\n hideClose?: boolean | undefined;\n headerStart?: ReactNode | undefined;\n className?: string | undefined;\n inline?: boolean | undefined;\n persistent?: boolean | undefined;\n}\n\nfunction DialogFrame({\n title,\n description,\n children,\n toolbar,\n footer,\n footerStart,\n onSubmit,\n hideClose,\n headerStart,\n size = \"md\",\n anchor = \"center\",\n className,\n inline,\n busy,\n rootRef,\n}: DialogProps & { rootRef?: Ref<HTMLDivElement> | undefined }) {\n const { ref, under, scrolled, check } = useScrolledUnder<HTMLDivElement>();\n const slots = use(LayerSlots);\n const [box, boxRef] = useBox(inline);\n const frameRef = useMemo(() => mergeRefs(boxRef, rootRef), [boxRef, rootRef]);\n useResizeMotion(box, check);\n useKeepFocus(box, inline);\n const t = useUiText();\n const Title = inline ? \"h2\" : BaseDialog.Title;\n const closeButton = <IconButton icon={__icon_Cancel01Icon} aria-label={t(\"dialog.close\", \"Close\")} tooltip={false} disabled={!!busy} />;\n const close = hideClose ? null : inline ? closeButton : <BaseDialog.Close render={closeButton} />;\n const Description = inline ? \"p\" : BaseDialog.Description;\n return (\n <DialogBusy value={!!busy}>\n <div\n ref={frameRef}\n data-dialog-frame=\"\"\n className={cn(\n \"flex min-h-0 flex-col\",\n inline ? \"rounded-dialog bg-raised shadow-dialog\" : cn(\"flex-1 self-center\", anchor === \"top\" ? \"dialog-limits-top\" : \"dialog-limits\"),\n KAESO_DIALOG_VARIANTS.size[size].classes,\n className,\n )}\n onKeyDown={(e: KeyboardEvent) => {\n if (onSubmit && !busy && submitsOnEnter(e)) {\n e.preventDefault();\n onSubmit();\n }\n }}\n >\n <div className=\"flex items-start gap-12 px-24 pt-20 pb-4\">\n {headerStart ? <span className=\"flex shrink-0 items-center\">{headerStart}</span> : null}\n <div className=\"flex min-w-0 flex-1 flex-col gap-4 pt-4\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n {description && <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>}\n </div>\n {close && <span className=\"flex\">{close}</span>}\n </div>\n {toolbar && (\n <div\n data-dialog-toolbar=\"\"\n hidden={!slots.toolbar}\n className={cn(\"flex shrink-0 flex-wrap items-center gap-8 px-24 pt-16 pb-12 transition-control\", scrolled && \"hairline-b\")}\n >\n {toolbar}\n </div>\n )}\n {children && (\n <div\n ref={ref}\n data-dialog-body=\"\"\n className={cn(\"min-h-0 flex-1 overflow-y-auto px-24 scrollbar-quiet\", toolbar ? \"pt-0\" : \"pt-16\", footer || footerStart ? \"pb-8\" : \"pb-24\")}\n >\n <GutterContent>\n <RaisedContent>{children}</RaisedContent>\n </GutterContent>\n </div>\n )}\n {(footer || footerStart) && (\n <div\n data-dialog-footer=\"\"\n className={cn(\"flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control\", under && \"hairline-t\")}\n >\n {footerStart && (\n <div hidden={!slots.footerStart} className=\"mr-auto flex min-w-0 items-center gap-8\">\n {footerStart}\n </div>\n )}\n {footer}\n </div>\n )}\n </div>\n </DialogBusy>\n );\n}\n\nfunction focusFirstControl(): HTMLElement | true {\n const open = [...document.querySelectorAll<HTMLElement>(\"[role=dialog], [role=alertdialog]\")].pop();\n const frame = open?.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n return (frame && initialDialogControl(frame)) ?? open ?? true;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, DialogProps>(function Dialog(props, ref) {\n const { open, defaultOpen, onOpenChange, trigger, size = \"md\", anchor = \"center\", inline, busy, persistent } = props;\n const focus = useRestoreFocus(open, focusFirstControl);\n const container = usePortalContainer();\n const overSheet = use(OverNonModalSheet);\n const settled = useScopedDialog(inline ? false : open);\n if (inline) return <DialogFrame {...props} rootRef={ref} />;\n return (\n <BaseDialog.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n onOpenChange={(o: boolean, details: BaseDialog.Root.ChangeEventDetails) => {\n if (!o && busy) return details.cancel();\n onOpenChange?.(o);\n }}\n onOpenChangeComplete={settled}\n {...(persistent ? { disablePointerDismissal: true } : {})}\n >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className={BACKDROP} forceRender={overSheet} />\n <BaseDialog.Viewport className={cn(DIALOG_VIEWPORT, KAESO_DIALOG_VARIANTS.anchor[anchor].classes)}>\n <BaseDialog.Popup\n ref={ref}\n initialFocus={focus.initialFocus}\n finalFocus={focus.finalFocus}\n className={cn(DIALOG_POPUP, KAESO_DIALOG_VARIANTS.size[size].classes, anchor === \"top\" && \"dialog-limits-top\")}\n >\n <InsetContent inset={false}>\n <OverNonModalSheet value={false}>\n <DialogFrame {...props} />\n </OverNonModalSheet>\n </InsetContent>\n </BaseDialog.Popup>\n </BaseDialog.Viewport>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Dialog\";\n\nfunction Close({ children }: { children: ReactElement<{ disabled?: boolean | undefined }> }) {\n const busy = use(DialogBusy);\n return <BaseDialog.Close render={busy ? cloneElement(children, { disabled: true }) : children} />;\n}\nif (process.env.NODE_ENV !== \"production\") Close.displayName = \"Dialog.Close\";\n\nexport const Dialog = /* @__PURE__ */ Object.assign(Root, { Close });\n\nexport const KAESO_ALERT_DIALOG_VARIANTS = {\n tone: {\n danger: { classes: \"bg-danger-tint text-danger-text\" },\n warning: { classes: \"bg-warning-tint text-warning-text\" },\n info: { classes: \"bg-info-tint text-info-text\" },\n },\n} as const;\nexport const KAESO_ALERT_DIALOG_DEFAULT_VARIANTS = { tone: \"danger\" } as const;\n\nexport interface AlertDialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description: ReactNode;\n confirmLabel: string;\n cancelLabel?: string | undefined;\n onConfirm: () => void | Promise<unknown>;\n tone?: keyof typeof KAESO_ALERT_DIALOG_VARIANTS.tone | undefined;\n confirmText?: string | undefined;\n loading?: boolean | undefined;\n inline?: boolean | undefined;\n}\n\nfunction AlertFrame({\n title,\n description,\n confirmLabel,\n cancelLabel: cancelProp,\n onConfirm,\n tone = \"danger\",\n confirmText,\n loading,\n inline,\n close,\n busy,\n setBusy,\n rootRef,\n}: AlertDialogProps & { close: () => void; busy: boolean; setBusy: (busy: boolean) => void; rootRef?: Ref<HTMLDivElement> | undefined }) {\n const [typed, setTyped] = useState(\"\");\n const pending = useRef(false);\n const t = useUiText();\n const [box, boxRef] = useBox(inline);\n const frameRef = useMemo(() => mergeRefs(boxRef, rootRef), [boxRef, rootRef]);\n useResizeMotion(box);\n const cancelLabel = cancelProp ?? t(\"alertDialog.cancel\", \"Cancel\");\n const [typeBefore, typeAfter = \"\"] = t(\"alertDialog.typeToConfirm\", \"Type {text} to confirm\").split(\"{text}\");\n const Title = inline ? \"h2\" : BaseAlertDialog.Title;\n const Description = inline ? \"p\" : BaseAlertDialog.Description;\n const ok = !confirmText || typed === confirmText;\n const confirm = async () => {\n if (!ok || loading || pending.current) return;\n const r = onConfirm();\n if (!(r instanceof Promise)) return close();\n pending.current = true;\n setBusy(true);\n const done = await r.then(\n () => true,\n () => false,\n );\n pending.current = false;\n setBusy(false);\n if (done) close();\n };\n return (\n <div ref={frameRef} className={cn(\"flex w-440 flex-col gap-20 p-24\", inline ? \"rounded-dialog bg-raised shadow-dialog\" : \"self-center dialog-limits\")}>\n <div className=\"flex flex-col gap-6\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>\n </div>\n {confirmText && (\n <Input\n label={\n <span className=\"font-regular text-fg-secondary\">\n {typeBefore}\n <span className=\"mono font-medium text-fg\">{confirmText}</span>\n {typeAfter}\n </span>\n }\n value={typed}\n onChange={(e) => setTyped(e.target.value)}\n autoComplete=\"off\"\n spellCheck={false}\n onKeyDown={(e) => e.key === \"Enter\" && confirm()}\n />\n )}\n <div className=\"flex flex-wrap justify-end gap-8\">\n {inline ? <Button>{cancelLabel}</Button> : <BaseAlertDialog.Close render={<Button disabled={busy || !!loading}>{cancelLabel}</Button>} />}\n <Button variant={tone === \"danger\" ? \"danger\" : \"primary\"} onClick={confirm} disabled={!ok} loading={busy || loading}>\n {confirmLabel}\n </Button>\n </div>\n </div>\n );\n}\n\nexport const AlertDialog = /* @__PURE__ */ forwardRef<HTMLDivElement, AlertDialogProps>(function AlertDialog(props, ref) {\n const { open, defaultOpen, onOpenChange, trigger, inline } = props;\n const [inner, setInner] = useState(defaultOpen ?? false);\n const isOpen = open ?? inner;\n const setOpen = (o: boolean) => {\n if (open === undefined) setInner(o);\n onOpenChange?.(o);\n };\n const [busy, setBusy] = useState(false);\n const focus = useRestoreFocus(isOpen);\n const container = usePortalContainer();\n const overSheet = use(OverNonModalSheet);\n const settled = useScopedDialog(inline ? false : isOpen);\n if (inline) return <AlertFrame {...props} close={() => undefined} busy={busy} setBusy={setBusy} rootRef={ref} />;\n return (\n <BaseAlertDialog.Root\n open={isOpen}\n onOpenChange={(o: boolean, details: BaseAlertDialog.Root.ChangeEventDetails) => {\n if (!o && (busy || props.loading)) return details.cancel();\n setOpen(o);\n }}\n onOpenChangeComplete={settled}\n >\n {trigger && <BaseAlertDialog.Trigger render={trigger} />}\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop className={BACKDROP} forceRender={overSheet} />\n <BaseAlertDialog.Viewport className={cn(DIALOG_VIEWPORT, KAESO_DIALOG_VARIANTS.anchor.center.classes)}>\n <BaseAlertDialog.Popup ref={ref} initialFocus={focus.initialFocus} finalFocus={focus.finalFocus} className={cn(DIALOG_POPUP, \"w-440\")}>\n <InsetContent inset={false}>\n <AlertFrame {...props} close={() => setOpen(false)} busy={busy} setBusy={setBusy} />\n </InsetContent>\n </BaseAlertDialog.Popup>\n </BaseAlertDialog.Viewport>\n </BaseAlertDialog.Portal>\n </BaseAlertDialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") AlertDialog.displayName = \"AlertDialog\";\n\nexport const KAESO_LAYER_DIALOG_VARIANTS = KAESO_DIALOG_VARIANTS;\nexport const KAESO_LAYER_DIALOG_DEFAULT_VARIANTS = KAESO_DIALOG_DEFAULT_VARIANTS;\n\nexport interface DialogLayer {\n title: ReactNode;\n description?: ReactNode | undefined;\n toolbar?: ReactNode | undefined;\n content: ReactNode;\n footer?: ReactNode | undefined;\n footerStart?: ReactNode | undefined;\n}\n\nexport interface LayerDialogProps extends Omit<DialogProps, \"title\" | \"description\" | \"children\" | \"toolbar\" | \"footer\" | \"footerStart\" | \"headerStart\"> {\n layers: DialogLayer[];\n layer?: number | undefined;\n onLayerChange?: ((layer: number) => void) | undefined;\n}\n\nconst bodyOf = (el: HTMLElement | null | undefined) => el?.closest<HTMLElement>(\"[data-dialog-body]\") ?? null;\n\nexport const LayerDialog = /* @__PURE__ */ forwardRef<HTMLDivElement, LayerDialogProps>(function LayerDialog({ layers, layer, onLayerChange, ...props }, ref) {\n const [inner, setInner] = useState(0);\n const t = useUiText();\n const wanted = layer ?? inner;\n const index = wanted > 0 && wanted < layers.length ? wanted : 0;\n const sections = useRef<(HTMLDivElement | null)[]>([]);\n const focused = useRef<(HTMLElement | null)[]>([]);\n const tops = useRef<number[]>([]);\n const left = useRef(index);\n const shown = useRef(index);\n if (left.current !== index) {\n tops.current[left.current] = bodyOf(sections.current[left.current])?.scrollTop ?? 0;\n left.current = index;\n }\n useLayoutEffect(() => {\n const from = shown.current;\n shown.current = index;\n if (from === index) return;\n const back = index < from;\n if (!back) focused.current[index] = null;\n focused.current.length = index + 1;\n const section = sections.current[index];\n const body = bodyOf(section);\n if (body) body.scrollTop = back ? (tops.current[index] ?? 0) : 0;\n focusDialogSection(section, back ? focused.current[index] : null);\n }, [index]);\n const go = (i: number) => {\n if (props.busy) return;\n if (layer === undefined) setInner(i);\n onLayerChange?.(i);\n };\n const stack = layers.slice(0, index + 1);\n const current = stack[index];\n if (!current) return null;\n const remember = (i: number) => (e: FocusEvent<HTMLElement>) => {\n if (e.target instanceof HTMLElement) focused.current[i] = e.target;\n };\n return (\n <LayerSlots value={{ toolbar: !!current.toolbar, footerStart: !!current.footerStart }}>\n <Dialog\n ref={ref}\n {...props}\n title={current.title}\n description={current.description}\n toolbar={\n stack.some((l) => l.toolbar)\n ? stack.map((l, i) =>\n l.toolbar ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.toolbar}\n </div>\n ) : null,\n )\n : undefined\n }\n footerStart={\n stack.some((l) => l.footerStart)\n ? stack.map((l, i) =>\n l.footerStart ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.footerStart}\n </div>\n ) : null,\n )\n : undefined\n }\n footer={\n current.footer\n ? stack.map((l, i) =>\n l.footer ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.footer}\n </div>\n ) : null,\n )\n : undefined\n }\n headerStart={\n index > 0 ? (\n <IconButton\n key=\"back\"\n icon={__icon_ArrowLeft01Icon}\n aria-label={t(\"dialog.back\", \"Back\")}\n onClick={() => go(index - 1)}\n disabled={!!props.busy}\n className=\"animate-layer-in\"\n />\n ) : null\n }\n >\n {stack.map((l, i) => (\n <div\n key={i}\n ref={(el) => {\n sections.current[i] = el;\n }}\n hidden={i !== index}\n className=\"animate-layer-in\"\n onFocus={remember(i)}\n >\n {l.content}\n </div>\n ))}\n </Dialog>\n </LayerSlots>\n );\n});\nif (process.env.NODE_ENV !== \"production\") LayerDialog.displayName = \"LayerDialog\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-TviMvYa2.js","names":["cn","useUiText","KAESO_FIELD_VARIANTS","KAESO_FIELD_DEFAULT_VARIANTS","FieldContext","useField","useContext","Field","invalidProp","props","auto","useId","t","controlId","id","labelId","label","descriptionId","description","errorId","error","invalid","describedBy","value","required","layout","className","disabled","optional","children","Fieldset","legend","useFieldControl","field","withField","control"],"sources":["../../src/components/field/field.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useId, type FieldsetHTMLAttributes, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FIELD_VARIANTS = {\n layout: {\n vertical: { classes: \"flex flex-col gap-8\" },\n horizontal: {\n classes: \"grid grid-cols-1 gap-8 md:grid-cols-label md:gap-x-24\",\n },\n },\n} as const;\nexport const KAESO_FIELD_DEFAULT_VARIANTS = { layout: \"vertical\" } as const;\n\nexport interface FieldContextValue {\n controlId: string;\n labelId: string | undefined;\n descriptionId: string | undefined;\n errorId: string | undefined;\n invalid: boolean;\n disabled: boolean;\n required: boolean;\n controlProps: { id: string; \"aria-describedby\"?: string | undefined; \"aria-invalid\"?: true | undefined; \"aria-required\"?: true | undefined };\n}\n\nconst FieldContext = /* @__PURE__ */ createContext<FieldContextValue | null>(null);\nexport const useField = () => useContext(FieldContext);\n\nexport interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n invalid?: boolean | undefined;\n error?: ReactNode | undefined;\n optional?: boolean | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n layout?: keyof typeof KAESO_FIELD_VARIANTS.layout | undefined;\n id?: string | undefined;\n children: ReactNode;\n}\n\nexport const Field = /* @__PURE__ */ forwardRef<HTMLDivElement, FieldProps>(function Field(\n { label, description, invalid: invalidProp, error, optional, required = false, disabled = false, layout = \"vertical\", id, className, children, ...props },\n ref,\n) {\n const auto = useId();\n const t = useUiText();\n const controlId = id ?? `k-field-${auto}`;\n const labelId = label ? `${controlId}-label` : undefined;\n const descriptionId = description ? `${controlId}-description` : undefined;\n const errorId = error ? `${controlId}-error` : undefined;\n const invalid = !!invalidProp || !!error;\n const describedBy = [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\n const value: FieldContextValue = {\n controlId,\n labelId,\n descriptionId,\n errorId,\n invalid,\n disabled,\n required,\n controlProps: {\n id: controlId,\n ...(describedBy ? { \"aria-describedby\": describedBy } : {}),\n ...(invalid ? { \"aria-invalid\": true as const } : {}),\n ...(required ? { \"aria-required\": true as const } : {}),\n },\n };\n return (\n <FieldContext.Provider value={value}>\n <div ref={ref} className={cn(KAESO_FIELD_VARIANTS.layout[layout].classes, className)} data-disabled={disabled || undefined} {...props}>\n {label && (\n <label\n id={labelId}\n htmlFor={controlId}\n className={cn(\"flex items-baseline gap-6 text-body font-medium text-fg\", layout === \"horizontal\" && \"md:pt-8\", disabled && \"text-fg-disabled\")}\n >\n {label}\n {optional && <span className=\"text-small font-regular text-fg-tertiary\">{t(\"field.optional\", \"Optional\")}</span>}\n </label>\n )}\n <div className=\"flex min-w-0 flex-col gap-6\">\n {children}\n {description && (\n <p id={descriptionId} className=\"text-small text-fg-secondary\">\n {description}\n </p>\n )}\n {error && (\n <p id={errorId} className=\"text-small text-danger-text\">\n {error}\n </p>\n )}\n </div>\n </div>\n </FieldContext.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Field.displayName = \"Field\";\n\nexport interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {\n legend: ReactNode;\n description?: ReactNode | undefined;\n}\n\nexport const Fieldset = /* @__PURE__ */ forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset({ legend, description, className, children, ...props }, ref) {\n return (\n <fieldset ref={ref} className={cn(\"flex min-w-0 flex-col gap-16\", className)} {...props}>\n <div className=\"flex flex-col gap-4\">\n <legend className=\"text-body-lg font-semibold text-fg\">{legend}</legend>\n {description && <p className=\"text-small text-fg-secondary\">{description}</p>}\n </div>\n {children}\n </fieldset>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Fieldset.displayName = \"Fieldset\";\n\nexport function useFieldControl(props: {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n error?: ReactNode | undefined;\n invalid?: boolean | undefined;\n required?: boolean | undefined;\n id?: string | undefined;\n}) {\n const field = useField();\n const auto = useId();\n if (field) return { controlProps: field.controlProps as Record<string, unknown>, wrapId: undefined };\n const wraps = props.label !== undefined || props.description !== undefined || props.error !== undefined;\n if (!wraps) return { controlProps: (props.invalid ? { \"aria-invalid\": true } : {}) as Record<string, unknown>, wrapId: undefined };\n const controlId = props.id ?? `k-field-${auto}`;\n const describedBy = [props.description ? `${controlId}-description` : \"\", props.error ? `${controlId}-error` : \"\"].filter(Boolean).join(\" \");\n return {\n controlProps: {\n id: controlId,\n ...(describedBy ? { \"aria-describedby\": describedBy } : {}),\n ...(props.error || props.invalid ? { \"aria-invalid\": true } : {}),\n ...(props.required ? { \"aria-required\": true } : {}),\n } as Record<string, unknown>,\n wrapId: controlId,\n };\n}\n\nexport interface FieldWrapProps {\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n error?: ReactNode | undefined;\n optional?: boolean | undefined;\n required?: boolean | undefined;\n layout?: keyof typeof KAESO_FIELD_VARIANTS.layout | undefined;\n}\n\nexport function withField(\n props: FieldWrapProps & { id?: string | undefined; disabled?: boolean | undefined; invalid?: boolean | undefined; className?: string | undefined },\n control: ReactNode,\n) {\n const { label, description, error, optional, required, layout } = props;\n if (label === undefined && description === undefined && error === undefined) return control;\n return (\n <Field\n label={label}\n description={description}\n error={error}\n invalid={props.invalid}\n optional={optional}\n required={required}\n layout={layout}\n id={props.id}\n disabled={props.disabled}\n className={props.className}\n >\n {control}\n </Field>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useId as e } from "react";
|
|
3
|
-
import { jsx as t } from "react/jsx-runtime";
|
|
4
|
-
//#region src/utils/hidden-description.tsx
|
|
5
|
-
function n(n) {
|
|
6
|
-
let r = e();
|
|
7
|
-
return n ? {
|
|
8
|
-
id: r,
|
|
9
|
-
node: /* @__PURE__ */ t("span", {
|
|
10
|
-
id: r,
|
|
11
|
-
hidden: !0,
|
|
12
|
-
children: n
|
|
13
|
-
})
|
|
14
|
-
} : {
|
|
15
|
-
id: void 0,
|
|
16
|
-
node: null
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
var r = (...e) => e.filter(Boolean).join(" ") || void 0, i = (e) => e != null && e !== !1 && e !== !0 && (typeof e != "string" || e.trim() !== "");
|
|
20
|
-
//#endregion
|
|
21
|
-
export { i as n, n as r, r as t };
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=hidden-description-B2zSmLcn.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hidden-description-B2zSmLcn.js","names":["useHiddenDescription","id","useId","text","joinIds","ids","showsText","node"],"sources":["../../src/utils/hidden-description.tsx"],"sourcesContent":["import { useId, type ReactNode } from \"react\";\n\ninterface HiddenDescription {\n id: string | undefined;\n node: ReactNode;\n}\n\nexport function useHiddenDescription(text: string | undefined): HiddenDescription {\n const id = useId();\n if (!text) return { id: undefined, node: null };\n return {\n id,\n node: (\n <span id={id} hidden>\n {text}\n </span>\n ),\n };\n}\n\nexport const joinIds = (...ids: (string | false | null | undefined)[]): string | undefined => ids.filter(Boolean).join(\" \") || undefined;\n\nexport const showsText = (node: ReactNode): boolean =>\n node !== undefined && node !== null && node !== false && node !== true && !(typeof node === \"string\" && node.trim() === \"\");\n"],"mappings":";;;;AAOA,SAAgBA,EAAqB,GAA6C;CAChF,IAAMC,IAAKC,EAAM;CAEjB,OADKC,IACE;EACL;EACA,MACE,kBAAC,QAAD;GAAU;GAAI,QAAA;GACX,UAAAA;EACG,CAAA;CAEV,IARkB;EAAE,IAAI,KAAA;EAAW,MAAM;CAAK;AAShD;AAEA,IAAaC,KAAW,GAAGC,MAAmEA,EAAI,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,KAAA,GAElHC,KAAa,MACxBC,KAA+B,QAAQA,MAAS,MAASA,MAAS,OAAU,OAAOA,KAAS,YAAYA,EAAK,KAAK,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-CrdF_eMG.js","names":["Tooltip","Button","KAESO_ICON_BUTTON_VARIANTS","KAESO_ICON_BUTTON_DEFAULT_VARIANTS","IconButton","label","props","btn","disabled","disabledReason","tooltip","tooltipSide","shortcut"],"sources":["../../src/components/icon-button/icon-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonSize, type ButtonVariant } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport type { IconData } from \"../icon/icon.js\";\n\nexport const KAESO_ICON_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n quiet: { classes: \"material-ghost text-fg-secondary hover:text-fg\" },\n secondary: { classes: \"material-secondary\" },\n soft: { classes: \"material-soft\" },\n primary: { classes: \"material-primary\" },\n danger: { classes: \"material-danger\" },\n \"danger-secondary\": { classes: \"material-danger-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_ICON_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n icon: IconData;\n \"aria-label\": string;\n variant?: Exclude<ButtonVariant, \"link\"> | undefined;\n size?: ButtonSize | undefined;\n shortcut?: string[] | string[][] | undefined;\n tooltip?: boolean | undefined;\n tooltipSide?: \"top\" | \"bottom\" | \"left\" | \"right\" | undefined;\n loading?: boolean | undefined;\n disabledReason?: string | undefined;\n href?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const IconButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { icon, variant = \"ghost\", size = \"sm\", shortcut, tooltip = true, tooltipSide = \"top\", \"aria-label\": label, disabledReason, disabled, ...props },\n ref,\n) {\n const btn = (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n icon={icon}\n aria-label={label}\n variant={variant}\n size={size}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(disabledReason !== undefined ? { disabledReason } : {})}\n {...props}\n />\n );\n if (!tooltip || disabled) return btn;\n return (\n <Tooltip content={label} side={tooltipSide} {...(shortcut ? { shortcut } : {})}>\n {btn}\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") IconButton.displayName = \"IconButton\";\n"],"mappings":";;;;;;AAMA,IAAaE,IAA6B;CACxC,SAAS;EACP,OAAO,EAAE,SAAS,iBAAiB;EACnC,OAAO,EAAE,SAAS,iDAAiD;EACnE,WAAW,EAAE,SAAS,qBAAqB;EAC3C,MAAM,EAAE,SAAS,gBAAgB;EACjC,SAAS,EAAE,SAAS,mBAAmB;EACvC,QAAQ,EAAE,SAAS,kBAAkB;EACrC,oBAAoB,EAAE,SAAS,4BAA4B;CAC7D;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;CAC3B;AACF,GACaC,IAAqC;CAAE,SAAS;CAAS,MAAM;AAAK,GAgBpEC,IAA6B,kBAA+C,SACvF,EAAE,SAAM,aAAU,SAAS,UAAO,MAAM,aAAU,aAAU,IAAM,iBAAc,OAAO,cAAcC,GAAO,mBAAgB,aAAU,GAAGC,KACzI,GACA;CACA,IAAMC,IACJ,kBAACN,GAAD;EACO;EACL,OAAM;EACA;EACN,cAAYI;EACH;EACH;EACN,GAAKG,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;EACzC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAIH;CACL,CAAA;CAGH,OADI,CAACI,KAAWF,IAAiBD,IAE/B,kBAACP,GAAD;EAAS,SAASK;EAAO,MAAMM;EAAa,GAAKC,IAAW,EAAE,YAAS,IAAI,CAAC;EACzE,UAAAL;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-2VJuj_M4.js","names":["__icon_Search01Icon","__icon_Cancel01Icon","warnStylingClassName","useUiText","Icon","KbdSequence","useField","useFieldControl","withField","InputGroup","INPUT_ICON_SIZE","KAESO_INPUT_VARIANTS","KAESO_INPUT_DEFAULT_VARIANTS","Input","force","rest","props","className","field","fc","inner","InputGroupFromField","invalid","error","label","description","align","id","leadingIcon","trailing","size","prefix","children","suffix","KAESO_SEARCH_INPUT_VARIANTS","KAESO_SEARCH_INPUT_DEFAULT_VARIANTS","SearchInput","t","setInner","useState","defaultValue","controlled","value","current","input","useRef","clear","el","onClear","ref","Search01Icon","placeholder","onChange","onKeyDown","Cancel01Icon","shortcut"],"sources":["../../src/components/input/input.tsx"],"sourcesContent":["import { forwardRef, useRef, useState, type InputHTMLAttributes, type KeyboardEvent, type ReactNode } from \"react\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { InputGroup, INPUT_ICON_SIZE, type InputSize } from \"./input-group.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { Search01Icon as __icon_Search01Icon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_INPUT_VARIANTS = {\n size: {\n sm: { classes: \"h-32\" },\n md: { classes: \"h-36\" },\n lg: { classes: \"h-40\" },\n xl: { classes: \"h-48\" },\n },\n} as const;\nexport const KAESO_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\" | \"prefix\">, FieldWrapProps {\n size?: InputSize | undefined;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n align?: \"start\" | \"end\" | undefined;\n \"data-force\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport const Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(props, ref) {\n const {\n size = \"md\",\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n align,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n disabled,\n readOnly,\n id,\n \"data-force\": force,\n ...rest\n } = props;\n warnStylingClassName(\"Input\", className);\n const field = useField();\n const fc = useFieldControl(props);\n const inner = (\n <InputGroupFromField\n size={size}\n leadingIcon={leadingIcon}\n prefix={prefix}\n suffix={suffix}\n trailing={trailing}\n invalid={invalid || !!error}\n disabled={disabled}\n readOnly={readOnly}\n force={force}\n className={label || description || error ? undefined : className}\n >\n <InputGroup.Input\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n className={align === \"end\" ? \"text-right tabular\" : undefined}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...rest}\n />\n </InputGroupFromField>\n );\n if (field) return inner;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, inner);\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"Input\";\n\nfunction InputGroupFromField({\n size,\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n disabled,\n readOnly,\n force,\n className,\n children,\n}: {\n size: InputSize;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n force?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <InputGroup\n size={size}\n leadingIcon={!!leadingIcon}\n trailingButton={!!trailing}\n invalid={invalid}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n {...(force ? { \"data-force\": force } : {})}\n >\n {leadingIcon && <Icon icon={leadingIcon} size={INPUT_ICON_SIZE[size]} className=\"text-fg-tertiary\" />}\n {prefix && <InputGroup.Addon>{prefix}</InputGroup.Addon>}\n {children}\n {suffix && <InputGroup.Addon>{suffix}</InputGroup.Addon>}\n {trailing}\n </InputGroup>\n );\n}\n\nexport const KAESO_SEARCH_INPUT_VARIANTS = {\n size: {\n sm: { classes: KAESO_INPUT_VARIANTS.size.sm.classes },\n md: { classes: KAESO_INPUT_VARIANTS.size.md.classes },\n lg: { classes: KAESO_INPUT_VARIANTS.size.lg.classes },\n xl: { classes: KAESO_INPUT_VARIANTS.size.xl.classes },\n },\n} as const;\nexport const KAESO_SEARCH_INPUT_DEFAULT_VARIANTS = { size: \"sm\" } as const;\n\nexport interface SearchInputProps extends Omit<InputProps, \"leadingIcon\" | \"type\" | \"prefix\" | \"suffix\"> {\n shortcut?: string[] | undefined;\n onClear?: (() => void) | undefined;\n placeholder?: string | undefined;\n}\n\nexport const SearchInput = /* @__PURE__ */ forwardRef<HTMLInputElement, SearchInputProps>(function SearchInput(\n { shortcut, onClear, value, defaultValue, onChange, onKeyDown, placeholder, size = \"sm\", ...props },\n ref,\n) {\n const t = useUiText();\n const [inner, setInner] = useState(String(defaultValue ?? \"\"));\n const controlled = value !== undefined;\n const current = controlled ? String(value) : inner;\n const input = useRef<HTMLInputElement | null>(null);\n const clear = () => {\n const el = input.current;\n if (!controlled) setInner(\"\");\n else if (el && !onClear) {\n Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, \"value\")?.set?.call(el, \"\");\n el.dispatchEvent(new Event(\"input\", { bubbles: true }));\n }\n onClear?.();\n el?.focus();\n };\n return (\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 type=\"search\"\n size={size}\n leadingIcon={__icon_Search01Icon}\n placeholder={placeholder ?? t(\"searchInput.placeholder\", \"Search\")}\n autoComplete=\"off\"\n spellCheck={false}\n value={current}\n onChange={(e) => {\n if (!controlled) setInner(e.target.value);\n onChange?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\" && current) {\n e.stopPropagation();\n clear();\n }\n onKeyDown?.(e);\n }}\n trailing={current ? <InputGroup.Button icon={__icon_Cancel01Icon} aria-label={t(\"searchInput.clear\", \"Clear search\")} onClick={clear} /> : undefined}\n suffix={!current && shortcut ? <KbdSequence keys={shortcut} /> : undefined}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") SearchInput.displayName = \"SearchInput\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-group-DQ_4DoXg.js","names":["cn","focusInputOnPress","input","KAESO_INPUT_GROUP_VARIANTS","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","LEADING","TRAILING_BUTTON","INPUT_ICON_SIZE","Ctx","Root","props","size","leadingIcon","trailingButton","disabled","className","invalid","readOnly","Input","Addon","useContext","icon","Icon","children","GroupButton","Button","InputGroup","useInputGroupSize"],"sources":["../../src/utils/field-press.ts","../../src/components/input/input-group.tsx"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n","import type * as React from \"react\";\nimport { createContext, forwardRef, useContext, type HTMLAttributes, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { focusInputOnPress } from \"../../utils/field-press.js\";\nimport { Icon, type IconData, type IconSize } from \"../icon/icon.js\";\nimport { Button } from \"../button/button.js\";\n\nexport const KAESO_INPUT_GROUP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 px-12 gap-6 text-body\" },\n md: { classes: \"h-36 px-16 gap-8 text-body\" },\n lg: { classes: \"h-40 px-18 gap-8 text-body\" },\n xl: { classes: \"h-48 px-22 gap-8 text-body-lg\" },\n },\n} as const;\nexport const KAESO_INPUT_GROUP_DEFAULT_VARIANTS = { size: \"md\" } as const;\nexport type InputSize = keyof typeof KAESO_INPUT_GROUP_VARIANTS.size;\n\nconst LEADING: Record<InputSize, string> = { sm: \"pl-10\", md: \"pl-14\", lg: \"pl-16\", xl: \"pl-20\" };\nconst TRAILING_BUTTON: Record<InputSize, string> = { sm: \"pr-4\", md: \"pr-2\", lg: \"pr-4\", xl: \"pr-6\" };\nexport const INPUT_ICON_SIZE: Record<InputSize, IconSize> = { sm: \"sm\", md: \"sm\", lg: \"md\", xl: \"lg\" };\n\nconst Ctx = /* @__PURE__ */ createContext<{ size: InputSize }>({ size: \"md\" });\n\nexport interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {\n size?: InputSize | undefined;\n leadingIcon?: boolean | undefined;\n trailingButton?: boolean | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n { size = \"md\", leadingIcon, trailingButton, invalid, disabled, readOnly, className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ size }}>\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_INPUT_GROUP_VARIANTS.size[size].classes,\n leadingIcon && LEADING[size],\n trailingButton && TRAILING_BUTTON[size],\n disabled && \"cursor-not-allowed\",\n className,\n )}\n {...(invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(readOnly ? { \"data-readonly\": \"\" } : {})}\n onMouseDown={focusInputOnPress}\n {...props}\n >\n {children}\n </div>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"InputGroup\";\n\nexport interface InputGroupInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {}\n\nconst Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputGroupInputProps>(function InputGroupInput({ className, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={cn(\n \"min-w-0 flex-1 bg-transparent bidi-plaintext text-inherit text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed disabled:text-fg-disabled read-only:cursor-text\",\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"InputGroup.Input\";\n\nexport interface InputGroupAddonProps extends HTMLAttributes<HTMLSpanElement> {\n icon?: IconData | undefined;\n}\n\nconst Addon = /* @__PURE__ */ forwardRef<HTMLSpanElement, InputGroupAddonProps>(function InputGroupAddon({ icon, className, children, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <span ref={ref} className={cn(\"inline-flex shrink-0 items-center gap-4 bidi-plaintext text-fg-secondary select-none\", className)} {...props}>\n {icon && <Icon icon={icon} size={INPUT_ICON_SIZE[size]} />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Addon.displayName = \"InputGroup.Addon\";\n\nexport interface InputGroupButtonProps {\n icon: IconData;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n}\n\nconst GroupButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, InputGroupButtonProps>(function InputGroupButton({ icon, className, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n variant=\"quiet\"\n size={size === \"xl\" ? \"md\" : size === \"lg\" ? \"sm\" : size === \"md\" ? \"sm\" : \"xs\"}\n icon={icon}\n className={className}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") GroupButton.displayName = \"InputGroup.Button\";\n\nexport const InputGroup = /* @__PURE__ */ Object.assign(Root, { Input, Addon, Button: GroupButton });\nexport const useInputGroupSize = () => useContext(Ctx).size;\n"],"mappings":";;;;;;;AAEA,SAAgBC,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd;;;ACDA,IAAaC,IAA6B,EACxC,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,gCAAgC;AACjD,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAGzDC,IAAqC;CAAE,IAAI;CAAS,IAAI;CAAS,IAAI;CAAS,IAAI;AAAQ,GAC1FC,IAA6C;CAAE,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,IAAI;AAAO,GACvFC,IAA+C;CAAE,IAAI;CAAM,IAAI;CAAM,IAAI;CAAM,IAAI;AAAK,GAE/FC,IAAsB,kBAAmC,EAAE,MAAM,KAAK,CAAC,GAYvEC,IAAuB,kBAA4C,SACvE,EAAE,UAAO,MAAM,gBAAa,mBAAgB,YAAS,aAAU,aAAU,cAAW,aAAU,GAAGC,KACjG,GACA;CACA,OACE,kBAACF,EAAI,UAAL;EAAc,OAAO,EAAE,QAAK;EAC1B,UAAA,kBAAC,OAAD;GACO;GACL,WAAWR,EACT,wGACAG,EAA2B,KAAKQ,EAAK,CAAC,SACtCC,KAAeP,EAAQM,IACvBE,KAAkBP,EAAgBK,IAClCG,KAAY,sBACZC,CACF;GACA,GAAKC,IAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;GACzC,GAAKF,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,GAAKG,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,aAAahB;GACb,GAAIS;GAEH;EACE,CAAA;CACO,CAAA;AAElB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAI9D,IAAMQ,IAAwB,kBAAmD,SAAyB,EAAE,cAAW,GAAGR,KAAS,GAAK;CACtI,OACE,kBAAC,SAAD;EACO;EACL,WAAWV,EACT,2LACAe,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAM/D,IAAMS,IAAwB,kBAAkD,SAAyB,EAAE,SAAM,cAAW,aAAU,GAAGT,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWR,EAAG,wFAAwFe,CAAS;EAAG,GAAIL;EAAtI,UAAA,CACGW,KAAQ,kBAACC,GAAD;GAAY;GAAM,MAAMf,EAAgBI;EAAQ,CAAA,GACxDY,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAU/D,IAAMC,IAA8B,kBAAqD,SAA0B,EAAE,SAAM,cAAW,GAAGd,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAACiB,GAAD;EACO;EACL,OAAM;EACN,SAAQ;EACR,MAAMd,MAAS,OAAO,OAAOA,MAAS,QAAcA,MAAS,OAAhB,OAA8B;EACrE;EACK;EACX,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,IAAagB,IAA6B,uBAAO,OAAOjB,GAAM;CAAE;CAAO;CAAO,QAAQe;AAAY,CAAC,GACtFG,UAA0BP,EAAWZ,CAAG,CAAC,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { i as e } from "./context-BELWW79w.js";
|
|
3
|
-
import { formatISODate as t, parseISODate as n } from "../format.js";
|
|
4
|
-
import { n as r } from "./input-group-DQ_4DoXg.js";
|
|
5
|
-
import { useState as i } from "react";
|
|
6
|
-
import { jsx as a } from "react/jsx-runtime";
|
|
7
|
-
//#region src/components/date-picker/iso-field.tsx
|
|
8
|
-
function o({ label: o, value: s, onCommit: c }) {
|
|
9
|
-
let l = e(), [u, d] = i(s ? t(s) : ""), [f, p] = i(s);
|
|
10
|
-
return s !== f && (p(s), d(s ? t(s) : "")), /* @__PURE__ */ a(r, {
|
|
11
|
-
size: "sm",
|
|
12
|
-
className: "flex-1",
|
|
13
|
-
children: /* @__PURE__ */ a(r.Input, {
|
|
14
|
-
"aria-label": o,
|
|
15
|
-
placeholder: l("datePicker.isoPlaceholder", "YYYY-MM-DD"),
|
|
16
|
-
value: u,
|
|
17
|
-
inputMode: "numeric",
|
|
18
|
-
className: "mono text-small",
|
|
19
|
-
onChange: (e) => d(e.target.value),
|
|
20
|
-
onBlur: () => {
|
|
21
|
-
let e = n(u);
|
|
22
|
-
(!e || c(e) === !1) && d(s ? t(s) : "");
|
|
23
|
-
},
|
|
24
|
-
onKeyDown: (e) => {
|
|
25
|
-
e.key === "Enter" && (e.preventDefault(), e.target.blur());
|
|
26
|
-
}
|
|
27
|
-
})
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//#endregion
|
|
31
|
-
export { o as t };
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=iso-field-B2rTwiBo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iso-field-B2rTwiBo.js","names":["useUiText","InputGroup","IsoField","t","text","setText","useState","value","formatISODate","shown","setShown","label","d","parseISODate","onCommit"],"sources":["../../src/components/date-picker/iso-field.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { InputGroup } from \"../input/input-group.js\";\nimport { formatISODate, parseISODate } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport function IsoField({ label, value, onCommit }: { label: string; value: Date | undefined; onCommit: (d: Date) => boolean | void }) {\n const t = useUiText();\n const [text, setText] = useState(value ? formatISODate(value) : \"\");\n const [shown, setShown] = useState(value);\n if (value !== shown) {\n setShown(value);\n setText(value ? formatISODate(value) : \"\");\n }\n return (\n <InputGroup size=\"sm\" className=\"flex-1\">\n <InputGroup.Input\n aria-label={label}\n placeholder={t(\"datePicker.isoPlaceholder\", \"YYYY-MM-DD\")}\n value={text}\n inputMode=\"numeric\"\n className=\"mono text-small\"\n onChange={(e) => setText(e.target.value)}\n onBlur={() => {\n const d = parseISODate(text);\n if (!d || onCommit(d) === false) setText(value ? formatISODate(value) : \"\");\n }}\n onKeyDown={(e) => {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n (e.target as HTMLInputElement).blur();\n }}\n />\n </InputGroup>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBE,EAAS,EAAE,UAAO,UAAO,eAA+F;CACtI,IAAMC,IAAIH,EAAU,GACd,CAACI,GAAMC,KAAWC,EAASC,IAAQC,EAAcD,CAAK,IAAI,EAAE,GAC5D,CAACE,GAAOC,KAAYJ,EAASC,CAAK;CAKxC,OAJIA,MAAUE,MACZC,EAASH,CAAK,GACdF,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE,IAGzC,kBAACN,GAAD;EAAY,MAAK;EAAK,WAAU;EAC9B,UAAA,kBAACA,EAAW,OAAZ;GACE,cAAYU;GACZ,aAAaR,EAAE,6BAA6B,YAAY;GACxD,OAAOC;GACP,WAAU;GACV,WAAU;GACV,WAAW,MAAMC,EAAQ,EAAE,OAAO,KAAK;GACvC,cAAc;IACZ,IAAMO,IAAIC,EAAaT,CAAI;IAC3B,CAAI,CAACQ,KAAKE,EAASF,CAAC,MAAM,OAAOP,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE;GAC5E;GACA,YAAY,MAAM;IAChB,AAAI,EAAE,QAAQ,YACd,EAAE,eAAe,GACjB,EAAG,OAA4B,KAAK;GACtC;EACD,CAAA;CACS,CAAA;AAEhB"}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./cn-Dj6sRgkF.js";
|
|
3
|
-
import { i as t } from "./context-BELWW79w.js";
|
|
4
|
-
import { t as n } from "./icon-D7ja-_Yk.js";
|
|
5
|
-
import { t as r } from "./use-copy-Dm2ncvMX.js";
|
|
6
|
-
import { forwardRef as i, useState as a } from "react";
|
|
7
|
-
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
8
|
-
import { ArrowRight01Icon as l, Copy01Icon as u, Tick02Icon as d } from "@hugeicons/core-free-icons";
|
|
9
|
-
//#region src/components/code-block/json-view.tsx
|
|
10
|
-
var f = { surface: {
|
|
11
|
-
well: { classes: "rounded-well bg-fill-1 p-16" },
|
|
12
|
-
plain: { classes: "" }
|
|
13
|
-
} }, p = { surface: "well" };
|
|
14
|
-
function m({ text: e, query: t }) {
|
|
15
|
-
if (!t) return /* @__PURE__ */ s(o, { children: e });
|
|
16
|
-
let n = e.toLowerCase().indexOf(t.toLowerCase());
|
|
17
|
-
return n < 0 ? /* @__PURE__ */ s(o, { children: e }) : /* @__PURE__ */ c(o, { children: [
|
|
18
|
-
e.slice(0, n),
|
|
19
|
-
/* @__PURE__ */ s("mark", {
|
|
20
|
-
className: "rounded-cell bg-warning-tint text-inherit ring-mark",
|
|
21
|
-
children: e.slice(n, n + t.length)
|
|
22
|
-
}),
|
|
23
|
-
e.slice(n + t.length)
|
|
24
|
-
] });
|
|
25
|
-
}
|
|
26
|
-
function h({ v: e, query: t }) {
|
|
27
|
-
return e === null ? /* @__PURE__ */ s("span", {
|
|
28
|
-
className: "font-semibold text-fg",
|
|
29
|
-
children: "null"
|
|
30
|
-
}) : typeof e == "boolean" ? /* @__PURE__ */ s("span", {
|
|
31
|
-
className: "font-semibold text-fg",
|
|
32
|
-
children: String(e)
|
|
33
|
-
}) : typeof e == "number" ? /* @__PURE__ */ s("span", {
|
|
34
|
-
className: "text-warning-text tabular",
|
|
35
|
-
children: e
|
|
36
|
-
}) : /* @__PURE__ */ c("span", {
|
|
37
|
-
className: "break-all text-info-text",
|
|
38
|
-
children: [
|
|
39
|
-
"\"",
|
|
40
|
-
/* @__PURE__ */ s(m, {
|
|
41
|
-
text: String(e),
|
|
42
|
-
query: t
|
|
43
|
-
}),
|
|
44
|
-
"\""
|
|
45
|
-
]
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function g({ path: e }) {
|
|
49
|
-
let { copied: i, copy: a } = r(), o = t();
|
|
50
|
-
return /* @__PURE__ */ s("button", {
|
|
51
|
-
type: "button",
|
|
52
|
-
"aria-label": i ? o("jsonView.pathCopied", "Path copied") : o("jsonView.copyPath", "Copy path {path}", { path: e }),
|
|
53
|
-
onClick: (t) => {
|
|
54
|
-
t.stopPropagation(), a(e);
|
|
55
|
-
},
|
|
56
|
-
className: "relative ml-8 inline-flex size-20 items-center justify-center rounded-pill text-fg-tertiary tap-target opacity-0 transition-control group-hover/row:opacity-100 coarse:opacity-100 hover:bg-fill-2 hover:text-fg focus-visible:opacity-100",
|
|
57
|
-
children: /* @__PURE__ */ s(n, {
|
|
58
|
-
icon: i ? d : u,
|
|
59
|
-
size: "xs"
|
|
60
|
-
})
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function _({ name: r, value: i, path: u, depth: d, open: f, query: p, last: v }) {
|
|
64
|
-
let [y, b] = a(d < f), x = t(), S = typeof i == "object" && !!i, C = S ? Array.isArray(i) ? i.map((e, t) => [t, e]) : Object.entries(i) : [], w = r === void 0 ? null : typeof r == "number" ? /* @__PURE__ */ c("span", {
|
|
65
|
-
className: "text-fg-tertiary tabular",
|
|
66
|
-
children: [r, ": "]
|
|
67
|
-
}) : /* @__PURE__ */ c("span", {
|
|
68
|
-
className: "text-fg",
|
|
69
|
-
children: [
|
|
70
|
-
"\"",
|
|
71
|
-
/* @__PURE__ */ s(m, {
|
|
72
|
-
text: r,
|
|
73
|
-
query: p
|
|
74
|
-
}),
|
|
75
|
-
"\"",
|
|
76
|
-
/* @__PURE__ */ s("span", {
|
|
77
|
-
className: "text-fg-tertiary",
|
|
78
|
-
children: ": "
|
|
79
|
-
})
|
|
80
|
-
]
|
|
81
|
-
}), T = v ? "" : ",";
|
|
82
|
-
if (!S) return /* @__PURE__ */ c("div", {
|
|
83
|
-
className: "group/row flex min-h-20 items-start pl-20",
|
|
84
|
-
style: { paddingLeft: d * 16 + 20 },
|
|
85
|
-
children: [/* @__PURE__ */ c("span", { children: [
|
|
86
|
-
w,
|
|
87
|
-
/* @__PURE__ */ s(h, {
|
|
88
|
-
v: i,
|
|
89
|
-
query: p
|
|
90
|
-
}),
|
|
91
|
-
/* @__PURE__ */ s("span", {
|
|
92
|
-
className: "text-fg-tertiary",
|
|
93
|
-
children: T
|
|
94
|
-
})
|
|
95
|
-
] }), u && /* @__PURE__ */ s(g, { path: u })]
|
|
96
|
-
});
|
|
97
|
-
let [E, D] = Array.isArray(i) ? ["[", "]"] : ["{", "}"];
|
|
98
|
-
return /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ c("div", {
|
|
99
|
-
className: "group/row flex min-h-24 items-center",
|
|
100
|
-
style: { paddingLeft: d * 16 },
|
|
101
|
-
children: [
|
|
102
|
-
/* @__PURE__ */ s("button", {
|
|
103
|
-
type: "button",
|
|
104
|
-
"aria-expanded": y,
|
|
105
|
-
"aria-label": u ? y ? x("jsonView.collapsePath", "Collapse {path}", { path: u }) : x("jsonView.expandPath", "Expand {path}", { path: u }) : y ? x("jsonView.collapse", "Collapse") : x("jsonView.expand", "Expand"),
|
|
106
|
-
onClick: () => b(!y),
|
|
107
|
-
className: "-ml-4 inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary hover:bg-fill-2 hover:text-fg focus-ring",
|
|
108
|
-
children: /* @__PURE__ */ s(n, {
|
|
109
|
-
icon: l,
|
|
110
|
-
size: "xs",
|
|
111
|
-
className: e("transition-transform duration-180", y && "rotate-90")
|
|
112
|
-
})
|
|
113
|
-
}),
|
|
114
|
-
/* @__PURE__ */ c("span", { children: [
|
|
115
|
-
w,
|
|
116
|
-
/* @__PURE__ */ s("span", {
|
|
117
|
-
className: "text-fg-tertiary",
|
|
118
|
-
children: E
|
|
119
|
-
}),
|
|
120
|
-
!y && /* @__PURE__ */ s("button", {
|
|
121
|
-
type: "button",
|
|
122
|
-
onClick: () => b(!0),
|
|
123
|
-
className: "mx-4 cursor-pointer rounded-code px-4 text-fg-tertiary hover:bg-fill-2",
|
|
124
|
-
children: Array.isArray(i) ? x("jsonView.items", "{count, plural, one {{n} item} other {{n} items}}", {
|
|
125
|
-
count: C.length,
|
|
126
|
-
n: String(C.length)
|
|
127
|
-
}) : x("jsonView.keys", "{count, plural, one {{n} key} other {{n} keys}}", {
|
|
128
|
-
count: C.length,
|
|
129
|
-
n: String(C.length)
|
|
130
|
-
})
|
|
131
|
-
}),
|
|
132
|
-
!y && /* @__PURE__ */ c("span", {
|
|
133
|
-
className: "text-fg-tertiary",
|
|
134
|
-
children: [D, T]
|
|
135
|
-
})
|
|
136
|
-
] }),
|
|
137
|
-
u && /* @__PURE__ */ s(g, { path: u })
|
|
138
|
-
]
|
|
139
|
-
}), y && /* @__PURE__ */ c(o, { children: [C.map(([e, t], n) => /* @__PURE__ */ s(_, {
|
|
140
|
-
name: e,
|
|
141
|
-
value: t,
|
|
142
|
-
path: typeof e == "number" ? `${u}[${e}]` : u ? `${u}.${e}` : String(e),
|
|
143
|
-
depth: d + 1,
|
|
144
|
-
open: f,
|
|
145
|
-
query: p,
|
|
146
|
-
last: n === C.length - 1
|
|
147
|
-
}, e)), /* @__PURE__ */ c("div", {
|
|
148
|
-
className: "min-h-20 text-fg-tertiary",
|
|
149
|
-
style: { paddingLeft: d * 16 + 20 },
|
|
150
|
-
children: [D, T]
|
|
151
|
-
})] })] });
|
|
152
|
-
}
|
|
153
|
-
var v = /* @__PURE__ */ i(function({ value: n, defaultDepth: r = 2, query: i, surface: a = "well", className: o }, c) {
|
|
154
|
-
let l = t();
|
|
155
|
-
return /* @__PURE__ */ s("div", {
|
|
156
|
-
ref: c,
|
|
157
|
-
tabIndex: 0,
|
|
158
|
-
role: "region",
|
|
159
|
-
"aria-label": l("jsonView.label", "JSON"),
|
|
160
|
-
className: e("mono overflow-x-auto text-small focus-ring-inset leading-code text-fg scrollbar-quiet", f.surface[a].classes, o),
|
|
161
|
-
children: /* @__PURE__ */ s(_, {
|
|
162
|
-
value: n,
|
|
163
|
-
path: "",
|
|
164
|
-
depth: 0,
|
|
165
|
-
open: r,
|
|
166
|
-
query: i,
|
|
167
|
-
last: !0
|
|
168
|
-
})
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
process.env.NODE_ENV !== "production" && (v.displayName = "JsonView");
|
|
172
|
-
//#endregion
|
|
173
|
-
export { p as n, f as r, v as t };
|
|
174
|
-
|
|
175
|
-
//# sourceMappingURL=json-view-Dqd2TDkc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-view-Dqd2TDkc.js","names":["_Fragment","__icon_Tick02Icon","__icon_Copy01Icon","__icon_ArrowRight01Icon","cn","useUiText","Icon","useCopy","Fragment$1","KAESO_JSON_VIEW_VARIANTS","KAESO_JSON_VIEW_DEFAULT_VARIANTS","Mark","query","text","i","Scalar","v","CopyPath","t","copied","e","copy","path","Tick02Icon","Copy01Icon","Node","initialOpen","open","setOpen","useState","depth","isObj","value","entries","keyLabel","name","comma","last","o","c","ArrowRight01Icon","k","JsonView","surface","className","defaultDepth"],"sources":["../../src/components/code-block/json-view.tsx"],"sourcesContent":["import { forwardRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon, ArrowRight01Icon as __icon_ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_JSON_VIEW_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1 p-16\" },\n plain: { classes: \"\" },\n },\n} as const;\nexport const KAESO_JSON_VIEW_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\ntype Json = string | number | boolean | null | Json[] | { [k: string]: Json };\n\nexport interface JsonViewProps {\n value: unknown;\n defaultDepth?: number | undefined;\n query?: string | undefined;\n surface?: keyof typeof KAESO_JSON_VIEW_VARIANTS.surface | undefined;\n className?: string | undefined;\n}\n\nfunction Mark({ text, query }: { text: string; query?: string | undefined }) {\n if (!query) return <>{text}</>;\n const i = text.toLowerCase().indexOf(query.toLowerCase());\n if (i < 0) return <>{text}</>;\n return (\n <>\n {text.slice(0, i)}\n <mark className=\"rounded-cell bg-warning-tint text-inherit ring-mark\">{text.slice(i, i + query.length)}</mark>\n {text.slice(i + query.length)}\n </>\n );\n}\n\nfunction Scalar({ v, query }: { v: Json; query?: string | undefined }) {\n if (v === null) return <span className=\"font-semibold text-fg\">null</span>;\n if (typeof v === \"boolean\") return <span className=\"font-semibold text-fg\">{String(v)}</span>;\n if (typeof v === \"number\") return <span className=\"text-warning-text tabular\">{v}</span>;\n return (\n <span className=\"break-all text-info-text\">\n \"<Mark text={String(v)} query={query} />\"\n </span>\n );\n}\n\nfunction CopyPath({ path }: { path: string }) {\n const { copied, copy } = useCopy();\n const t = useUiText();\n return (\n <button\n type=\"button\"\n aria-label={copied ? t(\"jsonView.pathCopied\", \"Path copied\") : t(\"jsonView.copyPath\", \"Copy path {path}\", { path })}\n onClick={(e) => {\n e.stopPropagation();\n void copy(path);\n }}\n className=\"relative ml-8 inline-flex size-20 items-center justify-center rounded-pill text-fg-tertiary tap-target opacity-0 transition-control group-hover/row:opacity-100 coarse:opacity-100 hover:bg-fill-2 hover:text-fg focus-visible:opacity-100\"\n >\n <Icon icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon} size=\"xs\" />\n </button>\n );\n}\n\nfunction Node({\n name,\n value,\n path,\n depth,\n open: initialOpen,\n query,\n last,\n}: {\n name?: string | number | undefined;\n value: Json;\n path: string;\n depth: number;\n open: number;\n query?: string | undefined;\n last: boolean;\n}) {\n const [open, setOpen] = useState(depth < initialOpen);\n const t = useUiText();\n const isObj = value !== null && typeof value === \"object\";\n const entries: [string | number, Json][] = isObj ? (Array.isArray(value) ? value.map((v, i) => [i, v]) : Object.entries(value)) : [];\n const keyLabel: ReactNode =\n name === undefined ? null : typeof name === \"number\" ? (\n <span className=\"text-fg-tertiary tabular\">{name}: </span>\n ) : (\n <span className=\"text-fg\">\n \"<Mark text={name} query={query} />\"<span className=\"text-fg-tertiary\">: </span>\n </span>\n );\n const comma = last ? \"\" : \",\";\n if (!isObj) {\n return (\n <div className=\"group/row flex min-h-20 items-start pl-20\" style={{ paddingLeft: depth * 16 + 20 }}>\n <span>\n {keyLabel}\n <Scalar v={value} query={query} />\n <span className=\"text-fg-tertiary\">{comma}</span>\n </span>\n {path && <CopyPath path={path} />}\n </div>\n );\n }\n const [o, c] = Array.isArray(value) ? [\"[\", \"]\"] : [\"{\", \"}\"];\n return (\n <div>\n <div className=\"group/row flex min-h-24 items-center\" style={{ paddingLeft: depth * 16 }}>\n <button\n type=\"button\"\n aria-expanded={open}\n aria-label={\n path\n ? open\n ? t(\"jsonView.collapsePath\", \"Collapse {path}\", { path })\n : t(\"jsonView.expandPath\", \"Expand {path}\", { path })\n : open\n ? t(\"jsonView.collapse\", \"Collapse\")\n : t(\"jsonView.expand\", \"Expand\")\n }\n onClick={() => setOpen(!open)}\n className=\"-ml-4 inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n <Icon icon={__icon_ArrowRight01Icon} size=\"xs\" className={cn(\"transition-transform duration-180\", open && \"rotate-90\")} />\n </button>\n <span>\n {keyLabel}\n <span className=\"text-fg-tertiary\">{o}</span>\n {!open && (\n <button type=\"button\" onClick={() => setOpen(true)} className=\"mx-4 cursor-pointer rounded-code px-4 text-fg-tertiary hover:bg-fill-2\">\n {Array.isArray(value)\n ? t(\"jsonView.items\", \"{count, plural, one {{n} item} other {{n} items}}\", { count: entries.length, n: String(entries.length) })\n : t(\"jsonView.keys\", \"{count, plural, one {{n} key} other {{n} keys}}\", { count: entries.length, n: String(entries.length) })}\n </button>\n )}\n {!open && (\n <span className=\"text-fg-tertiary\">\n {c}\n {comma}\n </span>\n )}\n </span>\n {path && <CopyPath path={path} />}\n </div>\n {open && (\n <>\n {entries.map(([k, v], i) => (\n <Node\n key={k}\n name={k}\n value={v}\n path={typeof k === \"number\" ? `${path}[${k}]` : path ? `${path}.${k}` : String(k)}\n depth={depth + 1}\n open={initialOpen}\n query={query}\n last={i === entries.length - 1}\n />\n ))}\n <div className=\"min-h-20 text-fg-tertiary\" style={{ paddingLeft: depth * 16 + 20 }}>\n {c}\n {comma}\n </div>\n </>\n )}\n </div>\n );\n}\n\nexport const JsonView = /* @__PURE__ */ forwardRef<HTMLDivElement, JsonViewProps>(function JsonView({ value, defaultDepth = 2, query, surface = \"well\", className }, ref) {\n const t = useUiText();\n return (\n <div\n ref={ref}\n tabIndex={0}\n role=\"region\"\n aria-label={t(\"jsonView.label\", \"JSON\")}\n className={cn(\n \"mono overflow-x-auto text-small focus-ring-inset leading-code text-fg scrollbar-quiet\",\n KAESO_JSON_VIEW_VARIANTS.surface[surface].classes,\n className,\n )}\n >\n <Node value={value as Json} path=\"\" depth={0} open={defaultDepth} query={query} last />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") JsonView.displayName = \"JsonView\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kbd-BF1vKXJf.js","names":["cn","useUiText","KAESO_KBD_VARIANTS","KAESO_KBD_DEFAULT_VARIANTS","isMac","subscribePlatform","useMac","useSyncExternalStore","modifiers","ctrl","t","option","keyLabel","englishText","m","key","mac","Kbd","props","label","children","tone","className","KbdSequence","steps","keys","Fragment","i","chord","k"],"sources":["../../src/components/kbd/kbd.tsx"],"sourcesContent":["import { forwardRef, Fragment, useSyncExternalStore, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { englishText, useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport const KAESO_KBD_VARIANTS = {\n tone: {\n default: { classes: \"bg-fill-1 text-fg-secondary shadow-ring\" },\n onInk: { classes: \"bg-on-ink/15 text-on-ink/80 shadow-none\" },\n },\n} as const;\nexport const KAESO_KBD_DEFAULT_VARIANTS = { tone: \"default\" } as const;\n\nconst isMac = () => typeof navigator !== \"undefined\" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent);\nconst subscribePlatform = () => () => undefined;\nconst useMac = () => useSyncExternalStore(subscribePlatform, isMac, () => false);\n\nfunction modifiers(t: UiText): Record<string, [mac: string, other: string, name: string]> {\n const ctrl = t(\"kbd.ctrl\", \"Ctrl\");\n const option = t(\"kbd.optionName\", \"Option\");\n return {\n mod: [\"⌘\", ctrl, t(\"kbd.commandName\", \"Command\")],\n cmd: [\"⌘\", ctrl, t(\"kbd.commandName\", \"Command\")],\n ctrl: [\"⌃\", ctrl, t(\"kbd.controlName\", \"Control\")],\n alt: [\"⌥\", \"Alt\", option],\n option: [\"⌥\", \"Alt\", option],\n shift: [\"⇧\", t(\"kbd.shift\", \"Shift\"), t(\"kbd.shiftName\", \"Shift\")],\n enter: [\"↵\", \"Enter\", t(\"kbd.enterName\", \"Enter\")],\n esc: [\"esc\", \"Esc\", t(\"kbd.escapeName\", \"Escape\")],\n backspace: [\"⌫\", t(\"kbd.backspace\", \"Backspace\"), t(\"kbd.backspaceName\", \"Backspace\")],\n up: [\"↑\", \"↑\", t(\"kbd.upName\", \"Up\")],\n down: [\"↓\", \"↓\", t(\"kbd.downName\", \"Down\")],\n left: [\"←\", \"←\", t(\"kbd.leftName\", \"Left\")],\n right: [\"→\", \"→\", t(\"kbd.rightName\", \"Right\")],\n tab: [\"⇥\", \"Tab\", t(\"kbd.tabName\", \"Tab\")],\n };\n}\n\nexport function keyLabel(key: string, t: UiText = englishText, mac: boolean = isMac()): { visual: string; spoken: string } {\n const m = modifiers(t)[key.toLowerCase()];\n if (!m) return { visual: key.length === 1 ? key.toUpperCase() : key, spoken: key };\n return { visual: mac ? m[0] : m[1], spoken: m[2] };\n}\n\nexport interface KbdProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode;\n tone?: keyof typeof KAESO_KBD_VARIANTS.tone | undefined;\n}\n\nexport const Kbd = /* @__PURE__ */ forwardRef<HTMLElement, KbdProps>(function Kbd({ children, tone = \"default\", className, ...props }, ref) {\n const t = useUiText();\n const mac = useMac();\n const label = typeof children === \"string\" ? keyLabel(children, t, mac) : null;\n return (\n <kbd\n ref={ref}\n className={cn(\n \"inline-flex h-20 min-w-20 shrink-0 items-center justify-center rounded-kbd px-5 font-sans text-micro font-medium tabular\",\n KAESO_KBD_VARIANTS.tone[tone].classes,\n className,\n )}\n {...(label && label.spoken !== label.visual ? { \"aria-label\": label.spoken, title: label.spoken } : {})}\n {...props}\n >\n {label ? label.visual : children}\n </kbd>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Kbd.displayName = \"Kbd\";\n\nexport interface KbdSequenceProps extends HTMLAttributes<HTMLSpanElement> {\n keys: string[][] | string[];\n tone?: keyof typeof KAESO_KBD_VARIANTS.tone | undefined;\n}\n\nexport const KbdSequence = /* @__PURE__ */ forwardRef<HTMLSpanElement, KbdSequenceProps>(function KbdSequence({ keys, tone = \"default\", className, ...props }, ref) {\n const t = useUiText();\n const steps: string[][] = keys.length > 0 && Array.isArray(keys[0]) ? (keys as string[][]) : [keys as string[]];\n return (\n <span ref={ref} className={cn(\"inline-flex items-center gap-4 align-middle\", className)} {...props}>\n {steps.map((chord, i) => (\n <Fragment key={i}>\n {i > 0 && <span className={cn(\"text-caption font-medium\", tone === \"onInk\" ? \"text-on-ink/70\" : \"text-fg-secondary\")}>{t(\"kbd.then\", \"then\")}</span>}\n <span className=\"inline-flex items-center gap-2\">\n {chord.map((k) => (\n <Kbd key={k} tone={tone}>\n {k}\n </Kbd>\n ))}\n </span>\n </Fragment>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") KbdSequence.displayName = \"KbdSequence\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link-KWI7PevW.js","names":["__icon_ArrowUpRight01Icon","cn","isExternalHref","useLinkComponent","useUiText","Icon","KAESO_LINK_VARIANTS","KAESO_LINK_DEFAULT_VARIANTS","Link","props","LinkComp","t","isExternal","external","href","variant","className","children","ArrowUpRight01Icon"],"sources":["../../src/components/link/link.tsx"],"sourcesContent":["import { forwardRef, type AnchorHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { isExternalHref, useLinkComponent } from \"../../utils/link-provider.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { ArrowUpRight01Icon as __icon_ArrowUpRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_LINK_VARIANTS = {\n variant: {\n inline: {\n classes: \"text-inherit underline decoration-line-strong decoration-1 underline-offset-3 hover:decoration-current\",\n },\n quiet: {\n classes: \"text-fg-secondary no-underline hover:text-fg\",\n },\n standalone: {\n classes: \"font-medium text-fg no-underline hover:underline hover:decoration-line-strong hover:underline-offset-3\",\n },\n heading: {\n classes: \"group/heading text-inherit no-underline\",\n },\n card: {\n classes: \"mx-0 flex flex-col gap-4 rounded-well bg-fill-1 px-16 py-12 text-fg no-underline hover:bg-fill-2\",\n },\n },\n} as const;\nexport const KAESO_LINK_DEFAULT_VARIANTS = { variant: \"inline\" } as const;\n\nexport interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n href: string;\n variant?: keyof typeof KAESO_LINK_VARIANTS.variant | undefined;\n external?: boolean | undefined;\n children: ReactNode;\n}\n\nexport const Link = /* @__PURE__ */ forwardRef<HTMLAnchorElement, LinkProps>(function Link({ href, variant = \"inline\", external, className, children, ...props }, ref) {\n const LinkComp = useLinkComponent();\n const t = useUiText();\n const isExternal = external ?? isExternalHref(href);\n return (\n <LinkComp\n ref={ref}\n href={href}\n className={cn(\n \"relative -mx-2 box-decoration-clone rounded-code px-2 transition-control focus-ring tap-target\",\n KAESO_LINK_VARIANTS.variant[variant].classes,\n className,\n )}\n {...(isExternal ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n {...props}\n >\n {children}\n {variant === \"heading\" && (\n <span\n aria-hidden=\"true\"\n className=\"ml-8 inline-block text-fg-tertiary opacity-0 transition-control group-hover/heading:opacity-100 group-focus-visible/heading:opacity-100\"\n >\n #\n </span>\n )}\n {isExternal && (\n <span aria-hidden=\"true\" className=\"whitespace-nowrap\">\n {\"\\u2060\"}\n <Icon icon={__icon_ArrowUpRight01Icon} size=\"xs\" className=\"ml-2 inline-block align-middle\" />\n </span>\n )}\n {isExternal && <span className=\"sr-only\">{t(\"link.opensInNewTab\", \" (opens in a new tab)\")}</span>}\n </LinkComp>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Link.displayName = \"Link\";\n"],"mappings":";;;;;;;;;AAOA,IAAaM,IAAsB,EACjC,SAAS;CACP,QAAQ,EACN,SAAS,yGACX;CACA,OAAO,EACL,SAAS,+CACX;CACA,YAAY,EACV,SAAS,yGACX;CACA,SAAS,EACP,SAAS,0CACX;CACA,MAAM,EACJ,SAAS,mGACX;AACF,EACF,GACaC,IAA8B,EAAE,SAAS,SAAS,GASlDC,IAAuB,kBAAyC,SAAc,EAAE,SAAM,aAAU,UAAU,aAAU,cAAW,aAAU,GAAGC,KAAS,GAAK;CACrK,IAAMC,IAAWP,EAAiB,GAC5BQ,IAAIP,EAAU,GACdQ,IAAaC,KAAYX,EAAeY,CAAI;CAClD,OACE,kBAACJ,GAAD;EACO;EACC;EACN,WAAWT,EACT,kGACAK,EAAoB,QAAQS,EAAQ,CAAC,SACrCC,CACF;EACA,GAAKJ,IAAa;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACtE,GAAIH;EATN,UAAA;GAWGQ;GACAF,MAAY,aACX,kBAAC,QAAD;IACE,eAAY;IACZ,WAAU;IACX,UAAA;GAEK,CAAA;GAEPH,KACC,kBAAC,QAAD;IAAM,eAAY;IAAO,WAAU;IAAnC,UAAA,CACG,KACD,kBAACP,GAAD;KAAM,MAAML;KAA2B,MAAK;KAAK,WAAU;IAAkC,CAAA,CACzF;;GAEPY,KAAc,kBAAC,QAAD;IAAM,WAAU;IAAW,UAAAD,EAAE,sBAAsB,uBAAuB;GAAQ,CAAA;EACzF;;AAEd,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
|