@logicplanes/kaeso-ui 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-guides.md +279 -98
- package/ai/component-registry.json +352 -236
- package/ai/component-registry.md +241 -219
- package/ai/icons.md +2 -2
- package/ai/tokens.md +18 -14
- package/dist/blocks/delete-resource.js +3 -3
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +47 -42
- package/dist/blocks/pages.js.map +1 -1
- package/dist/blocks/resource-list.js +68 -55
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
- package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
- package/dist/chunks/app-frame-DysOel2X.js +232 -0
- package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
- package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
- package/dist/chunks/avatar-CYNMK7uY.js +110 -0
- package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
- package/dist/chunks/badge-C0GC3B9X.js +27 -0
- package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
- package/dist/chunks/banner-B3DGLTBu.js +88 -0
- package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
- package/dist/chunks/button-IblhXUyZ.js +202 -0
- package/dist/chunks/button-IblhXUyZ.js.map +1 -0
- package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
- package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
- package/dist/chunks/checkbox-9tbimmF3.js +141 -0
- package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
- package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
- package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
- package/dist/chunks/code-block-64e-Cy1S.js +346 -0
- package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
- package/dist/chunks/code-block-KIvuE8jg.js +352 -0
- package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
- package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
- package/dist/chunks/code-xqjww4Pv.js.map +1 -0
- package/dist/chunks/combobox-DkcjkWc6.js +352 -0
- package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
- package/dist/chunks/command-list-CypqsC4T.js +456 -0
- package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
- package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
- package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
- package/dist/chunks/core-CmK-8ObW.js +505 -0
- package/dist/chunks/core-CmK-8ObW.js.map +1 -0
- package/dist/chunks/data-table-CqY8_6IS.js +581 -0
- package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
- package/dist/chunks/date-popup-DAnjptFt.js +58 -0
- package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
- package/dist/chunks/{de-CPXJh9cq.js → de-CqC4aSIV.js} +81 -40
- package/dist/chunks/de-CqC4aSIV.js.map +1 -0
- package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
- package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
- package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
- package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
- package/dist/chunks/domain-obd_w9xk.js +28 -0
- package/dist/chunks/domain-obd_w9xk.js.map +1 -0
- package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
- package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
- package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
- package/dist/chunks/field-D7m-yl-D.js.map +1 -0
- package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
- package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
- package/dist/chunks/icon-CPJWE2N-.js +95 -0
- package/dist/chunks/{icon-DVooQfk4.js.map → icon-CPJWE2N-.js.map} +1 -1
- package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
- package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
- package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
- package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
- package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
- package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
- package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
- package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
- package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
- package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
- package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
- package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
- package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
- package/dist/chunks/label-DW24Aj0Z.js +26 -0
- package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
- package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
- package/dist/chunks/link-CMjkcLQK.js.map +1 -0
- package/dist/chunks/list-B4G-sWwV.js +540 -0
- package/dist/chunks/list-B4G-sWwV.js.map +1 -0
- package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
- package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
- package/dist/chunks/markdown-C565aBR7.js +338 -0
- package/dist/chunks/markdown-C565aBR7.js.map +1 -0
- package/dist/chunks/menu-Clvv6ftq.js +485 -0
- package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
- package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
- package/dist/chunks/meter-CASMHlxl.js +100 -0
- package/dist/chunks/meter-CASMHlxl.js.map +1 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
- package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
- package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
- package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
- package/dist/chunks/page-header-kS5tdmvb.js +45 -0
- package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
- package/dist/chunks/pagination-D7fAm8qg.js +147 -0
- package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
- package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
- package/dist/chunks/popover-Bl5QYqnh.js +51 -0
- package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
- package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
- package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
- package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
- package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
- package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
- package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
- package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
- package/dist/chunks/release-art-ChiT4T2S.js +582 -0
- package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
- package/dist/chunks/rights-B68ocZuq.js +312 -0
- package/dist/chunks/rights-B68ocZuq.js.map +1 -0
- package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
- package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
- package/dist/chunks/section-CFBYhsUi.js +77 -0
- package/dist/chunks/section-CFBYhsUi.js.map +1 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
- package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
- package/dist/chunks/segmented-D9i1avik.js +119 -0
- package/dist/chunks/segmented-D9i1avik.js.map +1 -0
- package/dist/chunks/select-BqjmQOqx.js +222 -0
- package/dist/chunks/select-BqjmQOqx.js.map +1 -0
- package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
- package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
- package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
- package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
- package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
- package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
- package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
- package/dist/chunks/slider-CcE8GtuV.js +58 -0
- package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
- package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
- package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
- package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
- package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
- package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
- package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
- package/dist/chunks/switch-ngywMQdl.js +76 -0
- package/dist/chunks/switch-ngywMQdl.js.map +1 -0
- package/dist/chunks/table-CTK5E0J7.js +102 -0
- package/dist/chunks/table-CTK5E0J7.js.map +1 -0
- package/dist/chunks/tag-BGr6lTSV.js +100 -0
- package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
- package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
- package/dist/chunks/text-DkKdTVUf.js.map +1 -0
- package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
- package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
- package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
- package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
- package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
- package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
- package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
- package/dist/chunks/truncated-d1afmUJT.js +33 -0
- package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
- package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
- package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
- package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
- package/dist/chunks/{zh-CN-29X4CDLE.js → zh-CN-BlpsT6d_.js} +80 -39
- package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
- package/dist/components/agent-avatar.js +1 -1
- package/dist/components/app-frame.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +22 -22
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +235 -160
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +144 -99
- package/dist/components/charts/donut.js.map +1 -1
- package/dist/components/charts/gauge.js +61 -49
- package/dist/components/charts/gauge.js.map +1 -1
- package/dist/components/charts/heatmap.js +179 -70
- package/dist/components/charts/heatmap.js.map +1 -1
- package/dist/components/charts/sankey.js +144 -77
- package/dist/components/charts/sankey.js.map +1 -1
- package/dist/components/charts/sparkline.js +54 -38
- package/dist/components/charts/sparkline.js.map +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +4 -3
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +77 -1
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +89 -66
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +1 -459
- package/dist/components/date-picker.js +162 -151
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +74 -63
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +76 -64
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/figure.js +2 -2
- package/dist/components/filter-chip.js +36 -27
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +4 -4
- package/dist/components/filter-row.js.map +1 -1
- package/dist/components/flow.js +94 -63
- package/dist/components/flow.js.map +1 -1
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/input.js +176 -98
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +51 -46
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +23 -20
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +90 -74
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +200 -187
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +32 -47
- package/dist/components/key-value.js.map +1 -1
- package/dist/components/label.js +1 -25
- package/dist/components/layout.js +2 -2
- package/dist/components/layout.js.map +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +11 -10
- package/dist/components/loader.js.map +1 -1
- package/dist/components/logo.js +2 -2
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/meter.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +644 -529
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +4 -4
- package/dist/components/popover.js.map +1 -1
- package/dist/components/portal.js +1 -1
- package/dist/components/qr-code.js +2 -2
- package/dist/components/qr-code.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/settings.js +39 -46
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +10 -9
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/stat.js +98 -84
- package/dist/components/stat.js.map +1 -1
- package/dist/components/status-dot.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/swap-text.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +73 -55
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +1 -1
- package/dist/components/theme-menu.js +5 -2
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/theme-select.js +1 -1
- package/dist/components/thumbnail.js +35 -24
- package/dist/components/thumbnail.js.map +1 -1
- package/dist/components/timeline.js +51 -35
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.js +76 -66
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toc.js +14 -8
- package/dist/components/toc.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/visually-hidden.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +101 -101
- package/dist/kaeso.css +605 -67
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
- package/dist/types/components/badge/badge.d.ts +3 -3
- package/dist/types/components/banner/banner.d.ts +3 -3
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button-group/button-group.d.ts +1 -1
- package/dist/types/components/charts/domain.d.ts +11 -0
- package/dist/types/components/charts/marks.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +3 -3
- package/dist/types/components/code-block/diff-view.d.ts +30 -0
- package/dist/types/components/code-block/diff.d.ts +26 -0
- package/dist/types/components/code-block/docs.d.ts +14 -0
- package/dist/types/components/code-block/index.d.ts +1 -0
- package/dist/types/components/code-block/json-view.d.ts +2 -1
- package/dist/types/components/code-block/numbers.d.ts +1 -0
- package/dist/types/components/collapsible/collapsible.d.ts +2 -2
- package/dist/types/components/collapsible/disclosure.d.ts +2 -0
- package/dist/types/components/data-table/data-table.d.ts +6 -5
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/data-table/time-columns.d.ts +1 -0
- package/dist/types/components/date-picker/focus-day.d.ts +1 -0
- package/dist/types/components/date-picker/iso-field.d.ts +8 -1
- package/dist/types/components/dialog/dialog.d.ts +7 -7
- package/dist/types/components/field/field.d.ts +1 -1
- package/dist/types/components/flow/flow.d.ts +1 -1
- package/dist/types/components/icon-button/icon-button.d.ts +1 -1
- package/dist/types/components/input/input-group.d.ts +2 -0
- package/dist/types/components/input/number-input.d.ts +4 -4
- package/dist/types/components/input/otp-input.d.ts +3 -3
- package/dist/types/components/kaeso/client-button.d.ts +2 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
- package/dist/types/components/kaeso/rights.d.ts +1 -1
- package/dist/types/components/kaeso/role-picker.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +2 -2
- package/dist/types/components/layout/layout.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +4 -4
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -1
- package/dist/types/components/menu/styles.d.ts +3 -3
- package/dist/types/components/meter/meter.d.ts +3 -3
- package/dist/types/components/page-header/page-header.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
- package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
- package/dist/types/components/playground/reasoning.d.ts +1 -0
- package/dist/types/components/popover/popover.d.ts +1 -1
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/section/section-header.d.ts +6 -0
- package/dist/types/components/segmented/segmented.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +1 -1
- package/dist/types/components/sheet/sheet.d.ts +3 -3
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +6 -4
- package/dist/types/components/text/truncated.d.ts +7 -0
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/toc/toc.d.ts +1 -1
- package/dist/types/components/toolbar/toolbar.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
- package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
- package/dist/types/hooks/use-hydrating.d.ts +1 -0
- package/dist/types/icons/groups.d.ts +1 -1
- package/dist/types/icons/vocabulary.d.ts +5 -0
- package/dist/types/utils/arrow-focus.d.ts +4 -1
- package/dist/types/utils/cn.d.ts +33 -0
- package/dist/types/utils/portal-context.d.ts +7 -1
- package/dist/utils.js +2 -2
- package/foundations/accessibility.md +3 -2
- package/foundations/color.md +5 -1
- package/foundations/elevation.md +1 -0
- package/foundations/motion.md +1 -1
- package/foundations/shape.md +2 -2
- package/foundations/typography.md +12 -12
- package/package.json +2 -2
- package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
- package/dist/chunks/app-frame-DogGRmsu.js +0 -221
- package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
- package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
- package/dist/chunks/avatar-CWbdwbJv.js +0 -83
- package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
- package/dist/chunks/badge-C2KtxCLB.js +0 -26
- package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
- package/dist/chunks/banner-BA2ALw9M.js +0 -85
- package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
- package/dist/chunks/button-CzuxqawA.js +0 -164
- package/dist/chunks/button-CzuxqawA.js.map +0 -1
- package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
- package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
- package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
- package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
- package/dist/chunks/code-block-D5A-CGXG.js +0 -330
- package/dist/chunks/code-block-D5A-CGXG.js.map +0 -1
- package/dist/chunks/code-tqj0uhBL.js.map +0 -1
- package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
- package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
- package/dist/chunks/combobox-DjDI7SUC.js +0 -319
- package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
- package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
- package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
- package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
- package/dist/chunks/core-BYns5ytV.js +0 -472
- package/dist/chunks/core-BYns5ytV.js.map +0 -1
- package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
- package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
- package/dist/chunks/de-CPXJh9cq.js.map +0 -1
- package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
- package/dist/chunks/field-TviMvYa2.js.map +0 -1
- package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
- package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
- package/dist/chunks/icon-DVooQfk4.js +0 -94
- package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
- package/dist/chunks/input-2VJuj_M4.js.map +0 -1
- package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
- package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
- package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
- package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
- package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
- package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
- package/dist/chunks/link-KWI7PevW.js.map +0 -1
- package/dist/chunks/list-M1csq-d4.js +0 -494
- package/dist/chunks/list-M1csq-d4.js.map +0 -1
- package/dist/chunks/markdown-DULktoTK.js +0 -313
- package/dist/chunks/markdown-DULktoTK.js.map +0 -1
- package/dist/chunks/menu-DEmBfdPm.js +0 -450
- package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
- package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
- package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
- package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
- package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
- package/dist/chunks/page-header-DL2y2iZp.js +0 -41
- package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
- package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
- package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
- package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
- package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
- package/dist/chunks/popover-DNN4S47w.js +0 -50
- package/dist/chunks/popover-DNN4S47w.js.map +0 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
- package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
- package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
- package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
- package/dist/chunks/release-art-ZwfFQImt.js +0 -561
- package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
- package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
- package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
- package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
- package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
- package/dist/chunks/section-Ce1efbsP.js +0 -87
- package/dist/chunks/section-Ce1efbsP.js.map +0 -1
- package/dist/chunks/segmented-CErcoxwi.js +0 -114
- package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
- package/dist/chunks/select-x4XVsdCI.js +0 -210
- package/dist/chunks/select-x4XVsdCI.js.map +0 -1
- package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
- package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
- package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
- package/dist/chunks/slider-Ci83PGtj.js +0 -57
- package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
- package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
- package/dist/chunks/switch-BNMq_kGt.js +0 -59
- package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
- package/dist/chunks/table-BeOSKl_3.js +0 -84
- package/dist/chunks/table-BeOSKl_3.js.map +0 -1
- package/dist/chunks/tag-D_M1s2qS.js +0 -87
- package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
- package/dist/chunks/text-CIXH8rmT.js.map +0 -1
- package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
- package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
- package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
- package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
- package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
- package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
- package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
- package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
- package/dist/chunks/zh-CN-29X4CDLE.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/label.js.map +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../../chunks/cn-
|
|
2
|
+
import { t as e } from "../../chunks/cn-BjnOAUrA.js";
|
|
3
3
|
import { i as t } from "../../chunks/context-BELWW79w.js";
|
|
4
|
-
import { t as n } from "../../chunks/icon-
|
|
5
|
-
import { r } from "../../chunks/link-
|
|
6
|
-
import { t as i } from "../../chunks/banner-
|
|
7
|
-
import { t as a } from "../../chunks/json-view-
|
|
8
|
-
import { t as o } from "../../chunks/badge-
|
|
9
|
-
import {
|
|
4
|
+
import { t as n } from "../../chunks/icon-CBzOwqrX.js";
|
|
5
|
+
import { r } from "../../chunks/link-CMjkcLQK.js";
|
|
6
|
+
import { t as i } from "../../chunks/banner-B3DGLTBu.js";
|
|
7
|
+
import { t as a } from "../../chunks/json-view-DZ2nL2Ir.js";
|
|
8
|
+
import { t as o } from "../../chunks/badge-C0GC3B9X.js";
|
|
9
|
+
import { t as s } from "../../chunks/reasoning-frame-C3HdQRRS.js";
|
|
10
10
|
import { t as c } from "../../chunks/safe-href-G5DBNVwm.js";
|
|
11
11
|
import { Suspense as l, forwardRef as u, lazy as d } from "react";
|
|
12
12
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
13
13
|
import { Image01Icon as m, Pdf01Icon as h, ToolsIcon as g } from "@hugeicons/core-free-icons";
|
|
14
14
|
//#region src/components/kaeso/conversation.tsx
|
|
15
|
-
var _ = /* @__PURE__ */ d(() => import("../../chunks/markdown-
|
|
15
|
+
var _ = /* @__PURE__ */ d(() => import("../../chunks/markdown-C565aBR7.js").then((e) => e.o).then((e) => ({ default: e.Markdown }))), v = { density: {
|
|
16
16
|
default: { classes: "gap-24" },
|
|
17
17
|
compact: { classes: "gap-16" }
|
|
18
18
|
} }, y = { density: "default" };
|
|
@@ -89,7 +89,7 @@ function T({ blocks: e, markdown: c }) {
|
|
|
89
89
|
})]
|
|
90
90
|
}, t);
|
|
91
91
|
case "tool_result": return /* @__PURE__ */ p("div", {
|
|
92
|
-
className: "flex flex-col gap-8 pl-
|
|
92
|
+
className: "flex flex-col gap-8 pl-12 hairline-l",
|
|
93
93
|
children: [/* @__PURE__ */ p("span", {
|
|
94
94
|
className: "inline-flex items-center gap-8 text-small font-medium text-fg-secondary",
|
|
95
95
|
children: [
|
|
@@ -103,11 +103,14 @@ function T({ blocks: e, markdown: c }) {
|
|
|
103
103
|
children: l("conversationView.error", "Error")
|
|
104
104
|
})
|
|
105
105
|
]
|
|
106
|
-
}), typeof e.content == "string" ?
|
|
106
|
+
}), typeof e.content == "string" ? C(e.content) ? /* @__PURE__ */ f(a, {
|
|
107
|
+
value: JSON.parse(e.content),
|
|
108
|
+
defaultDepth: 3
|
|
109
|
+
}) : c ? /* @__PURE__ */ f(w, {
|
|
107
110
|
text: e.content,
|
|
108
111
|
markdown: !0
|
|
109
112
|
}) : /* @__PURE__ */ f("pre", {
|
|
110
|
-
className: "mono text-small whitespace-pre-wrap wrap-
|
|
113
|
+
className: "mono text-small whitespace-pre-wrap wrap-break-word text-fg",
|
|
111
114
|
children: e.content
|
|
112
115
|
}) : /* @__PURE__ */ f(T, {
|
|
113
116
|
blocks: e.content,
|
|
@@ -115,11 +118,8 @@ function T({ blocks: e, markdown: c }) {
|
|
|
115
118
|
})]
|
|
116
119
|
}, t);
|
|
117
120
|
case "reasoning": return /* @__PURE__ */ f(s, {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
children: l("conversationView.reasoning", "Reasoning")
|
|
121
|
-
}),
|
|
122
|
-
hint: e.redacted ? l("conversationView.redacted", "Redacted by the provider") : void 0,
|
|
121
|
+
heading: l("conversationView.reasoning", "Reasoning"),
|
|
122
|
+
preview: e.redacted ? l("conversationView.redacted", "Redacted by the provider") : void 0,
|
|
123
123
|
children: e.redacted ? /* @__PURE__ */ f("p", {
|
|
124
124
|
className: "max-w-prose text-small text-fg-secondary",
|
|
125
125
|
children: l("conversationView.encrypted", "The provider returned this reasoning in encrypted form.")
|
|
@@ -146,7 +146,7 @@ function T({ blocks: e, markdown: c }) {
|
|
|
146
146
|
className: "w-max max-w-full wrap-anywhere",
|
|
147
147
|
children: l("conversationView.imageFrom", "Image from {host}", { host: new URL(i).host })
|
|
148
148
|
}, t) : /* @__PURE__ */ p("span", {
|
|
149
|
-
className: "inline-flex
|
|
149
|
+
className: "inline-flex w-max max-w-full items-center gap-8 text-small text-fg-secondary",
|
|
150
150
|
children: [
|
|
151
151
|
/* @__PURE__ */ f(n, {
|
|
152
152
|
icon: m,
|
|
@@ -154,24 +154,22 @@ function T({ blocks: e, markdown: c }) {
|
|
|
154
154
|
}),
|
|
155
155
|
" ",
|
|
156
156
|
l("conversationView.image", "Image"),
|
|
157
|
-
" ",
|
|
158
157
|
e.media_type && /* @__PURE__ */ f("span", {
|
|
159
|
-
className: "mono",
|
|
158
|
+
className: "mono text-fg-tertiary",
|
|
160
159
|
children: e.media_type
|
|
161
160
|
})
|
|
162
161
|
]
|
|
163
162
|
}, t);
|
|
164
163
|
}
|
|
165
164
|
case "document": return /* @__PURE__ */ p("span", {
|
|
166
|
-
className: "inline-flex
|
|
167
|
-
children: [
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
" "
|
|
173
|
-
|
|
174
|
-
]
|
|
165
|
+
className: "inline-flex w-max max-w-full items-center gap-8 text-small text-fg-secondary",
|
|
166
|
+
children: [/* @__PURE__ */ f(n, {
|
|
167
|
+
icon: h,
|
|
168
|
+
size: "xs"
|
|
169
|
+
}), /* @__PURE__ */ f("span", {
|
|
170
|
+
className: "min-w-0 wrap-break-word",
|
|
171
|
+
children: e.name ?? l("conversationView.document", "Document")
|
|
172
|
+
})]
|
|
175
173
|
}, t);
|
|
176
174
|
case "refusal": return /* @__PURE__ */ f(i, {
|
|
177
175
|
tone: "warning",
|
|
@@ -183,27 +181,34 @@ function T({ blocks: e, markdown: c }) {
|
|
|
183
181
|
});
|
|
184
182
|
}
|
|
185
183
|
var E = /* @__PURE__ */ u(function({ messages: n, density: r = "default", markdown: i = !1, className: a, footer: o }, s) {
|
|
186
|
-
let c =
|
|
184
|
+
let c = t(), l = b(c);
|
|
187
185
|
return /* @__PURE__ */ p("div", {
|
|
188
186
|
ref: s,
|
|
189
187
|
className: e("flex flex-col", v.density[r].classes, a),
|
|
190
|
-
children: [
|
|
191
|
-
"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
className:
|
|
198
|
-
children: /* @__PURE__ */ f(
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
188
|
+
children: [
|
|
189
|
+
n.length === 0 && /* @__PURE__ */ f("p", {
|
|
190
|
+
className: "text-small text-fg-secondary",
|
|
191
|
+
children: c("conversationView.empty", "This request has no messages.")
|
|
192
|
+
}),
|
|
193
|
+
n.map((t, n) => /* @__PURE__ */ p("section", {
|
|
194
|
+
"aria-label": l[t.role],
|
|
195
|
+
className: "flex flex-col gap-8",
|
|
196
|
+
children: [/* @__PURE__ */ f("span", {
|
|
197
|
+
className: e("text-caption font-medium", t.role === "assistant" ? "text-fg" : "text-fg-secondary"),
|
|
198
|
+
children: l[t.role]
|
|
199
|
+
}), /* @__PURE__ */ f("div", {
|
|
200
|
+
className: e(t.role === "system" || t.role === "developer" ? "rounded-well bg-fill-1 px-12 py-12" : ""),
|
|
201
|
+
children: /* @__PURE__ */ f(T, {
|
|
202
|
+
blocks: typeof t.content == "string" ? [{
|
|
203
|
+
type: "text",
|
|
204
|
+
text: t.content
|
|
205
|
+
}] : t.content,
|
|
206
|
+
markdown: i
|
|
207
|
+
})
|
|
208
|
+
})]
|
|
209
|
+
}, n)),
|
|
210
|
+
o
|
|
211
|
+
]
|
|
207
212
|
});
|
|
208
213
|
});
|
|
209
214
|
process.env.NODE_ENV !== "production" && (E.displayName = "ConversationView");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","names":["__icon_ToolsIcon","__icon_Image01Icon","__icon_Pdf01Icon","cn","useUiText","Icon","Banner","JsonView","Badge","Collapsible","safeHref","LazyMarkdown","n","m","KAESO_CONVERSATION_VARIANTS","KAESO_CONVERSATION_DEFAULT_VARIANTS","roleNames","t","DATA_IMAGE","webHref","href","src","isJson","s","Prose","plain","small","text","markdown","Suspense","Blocks","blocks","b","i","ToolsIcon","j","part","Link","Image01Icon","Pdf01Icon","ConversationView","role","density","className","messages","footer"],"sources":["../../../src/components/kaeso/conversation.tsx"],"sourcesContent":["import { forwardRef, lazy, Suspense, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ToolsIcon as __icon_ToolsIcon, Image01Icon as __icon_Image01Icon, Pdf01Icon as __icon_Pdf01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Banner } from \"../banner/banner.js\";\nimport { Collapsible } from \"../collapsible/collapsible.js\";\nimport { JsonView } from \"../code-block/json-view.js\";\nimport { Badge } from \"../badge/badge.js\";\nimport { Link } from \"../link/link.js\";\nimport { safeHref } from \"../../utils/safe-href.js\";\nimport { useUiText, type UiText } from \"../../i18n/context.js\";\n\nconst LazyMarkdown = /* @__PURE__ */ lazy(() => import(\"../markdown/markdown.js\").then((m) => ({ default: m.Markdown })));\n\nexport const KAESO_CONVERSATION_VARIANTS = {\n density: {\n default: { classes: \"gap-24\" },\n compact: { classes: \"gap-16\" },\n },\n} as const;\nexport const KAESO_CONVERSATION_DEFAULT_VARIANTS = { density: \"default\" } as const;\n\nexport type ContentBlock =\n | { type: \"text\"; text: string }\n | { type: \"tool_call\"; id?: string | undefined; name: string; arguments: unknown }\n | { type: \"tool_result\"; tool_call_id?: string | undefined; content: string | ContentBlock[]; is_error?: boolean | undefined }\n | { type: \"reasoning\"; text: string; redacted?: boolean | undefined }\n | { type: \"image\"; src?: string | undefined; alt?: string | undefined; media_type?: string | undefined }\n | { type: \"document\"; name?: string | undefined; media_type?: string | undefined }\n | { type: \"refusal\"; text: string };\n\nexport interface ConversationMessage {\n role: \"system\" | \"user\" | \"assistant\" | \"tool\" | \"developer\";\n content: string | ContentBlock[];\n}\n\nfunction roleNames(t: UiText): Record<ConversationMessage[\"role\"], string> {\n return {\n system: t(\"conversationView.system\", \"System\"),\n developer: t(\"conversationView.developer\", \"Developer\"),\n user: t(\"conversationView.user\", \"User\"),\n assistant: t(\"conversationView.assistant\", \"Assistant\"),\n tool: t(\"conversationView.tool\", \"Tool\"),\n };\n}\n\nconst DATA_IMAGE = /^data:image\\/[a-z0-9.+-]+;/i;\n\nfunction webHref(src: string): string | null {\n const href = safeHref(src);\n return href && /^https?:/.test(href) ? href : null;\n}\n\nfunction isJson(s: string) {\n const t = s.trim();\n if (!/^[[{]/.test(t)) return false;\n try {\n JSON.parse(t);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction Prose({ text, markdown, small }: { text: string; markdown: boolean; small?: boolean | undefined }) {\n const plain = (\n <p className={cn(\"max-w-prose whitespace-pre-wrap wrap-break-word text-pretty\", small ? \"text-small text-fg-secondary\" : \"text-body text-fg\")}>{text}</p>\n );\n if (!markdown) return plain;\n return (\n <Suspense fallback={plain}>\n <LazyMarkdown text={text} {...(small ? { size: \"small\" as const, tone: \"secondary\" as const } : {})} />\n </Suspense>\n );\n}\n\nfunction Blocks({ blocks, markdown }: { blocks: ContentBlock[]; markdown: boolean }) {\n const t = useUiText();\n return (\n <div className=\"flex flex-col gap-12\">\n {blocks.map((b, i) => {\n switch (b.type) {\n case \"text\":\n return <Prose key={i} text={b.text} markdown={markdown} />;\n case \"tool_call\":\n return (\n <div key={i} className=\"flex flex-col gap-8\">\n <span className=\"inline-flex items-center gap-8 text-small font-medium text-fg-secondary\">\n <Icon icon={__icon_ToolsIcon} size=\"xs\" />\n {t(\"conversationView.called\", \"Called **{name}**\", { name: b.name })\n .split(\"**\")\n .map((part, j) =>\n j % 2 ? (\n <span key={j} className=\"mono text-fg\">\n {part}\n </span>\n ) : (\n part\n ),\n )}\n {b.id && <span className=\"mono text-fg-tertiary\">{b.id}</span>}\n </span>\n <JsonView value={b.arguments} defaultDepth={3} />\n </div>\n );\n case \"tool_result\":\n return (\n <div key={i} className=\"flex flex-col gap-8 pl-16 hairline-l\">\n <span className=\"inline-flex items-center gap-8 text-small font-medium text-fg-secondary\">\n {t(\"conversationView.result\", \"Result\")}\n {b.tool_call_id && <span className=\"mono text-fg-tertiary\">{b.tool_call_id}</span>}\n {b.is_error && <Badge tone=\"danger\">{t(\"conversationView.error\", \"Error\")}</Badge>}\n </span>\n {typeof b.content !== \"string\" ? (\n <Blocks blocks={b.content} markdown={markdown} />\n ) : markdown && !isJson(b.content) ? (\n <Prose text={b.content} markdown />\n ) : (\n <pre className=\"mono text-small whitespace-pre-wrap wrap-anywhere text-fg\">{b.content}</pre>\n )}\n </div>\n );\n case \"reasoning\":\n return (\n <Collapsible\n key={i}\n title={<span className=\"text-fg-secondary\">{t(\"conversationView.reasoning\", \"Reasoning\")}</span>}\n hint={b.redacted ? t(\"conversationView.redacted\", \"Redacted by the provider\") : undefined}\n >\n {b.redacted ? (\n <p className=\"max-w-prose text-small text-fg-secondary\">\n {t(\"conversationView.encrypted\", \"The provider returned this reasoning in encrypted form.\")}\n </p>\n ) : (\n <Prose text={b.text} markdown={markdown} small />\n )}\n </Collapsible>\n );\n case \"image\": {\n if (b.src && DATA_IMAGE.test(b.src))\n return (\n <span key={i} className=\"block w-120 overflow-hidden rounded-well ring-over ring-over-line\">\n <img src={b.src} alt={b.alt ?? t(\"conversationView.imageInput\", \"Image input\")} className=\"block h-120 w-120 object-cover\" />\n </span>\n );\n const href = b.src ? webHref(b.src) : null;\n return href ? (\n <Link key={i} href={href} external rel=\"noopener noreferrer nofollow\" className=\"w-max max-w-full wrap-anywhere\">\n {t(\"conversationView.imageFrom\", \"Image from {host}\", { host: new URL(href).host })}\n </Link>\n ) : (\n <span key={i} className=\"inline-flex h-32 w-max items-center gap-8 rounded-pill bg-fill-1 px-12 text-small text-fg-secondary\">\n <Icon icon={__icon_Image01Icon} size=\"xs\" /> {t(\"conversationView.image\", \"Image\")} {b.media_type && <span className=\"mono\">{b.media_type}</span>}\n </span>\n );\n }\n case \"document\":\n return (\n <span key={i} className=\"inline-flex h-32 w-max items-center gap-8 rounded-pill bg-fill-1 px-12 text-small text-fg-secondary\">\n <Icon icon={__icon_Pdf01Icon} size=\"xs\" /> {b.name ?? t(\"conversationView.document\", \"Document\")}\n </span>\n );\n case \"refusal\":\n return (\n <Banner key={i} tone=\"warning\" title={t(\"conversationView.refused\", \"The model refused.\")}>\n {b.text}\n </Banner>\n );\n }\n })}\n </div>\n );\n}\n\nexport interface ConversationViewProps {\n messages: ConversationMessage[];\n density?: keyof typeof KAESO_CONVERSATION_VARIANTS.density | undefined;\n markdown?: boolean | undefined;\n className?: string | undefined;\n footer?: ReactNode | undefined;\n}\n\nexport const ConversationView = /* @__PURE__ */ forwardRef<HTMLDivElement, ConversationViewProps>(function ConversationView(\n { messages, density = \"default\", markdown = false, className, footer },\n ref,\n) {\n const t = useUiText();\n const role = roleNames(t);\n return (\n <div ref={ref} className={cn(\"flex flex-col\", KAESO_CONVERSATION_VARIANTS.density[density].classes, className)}>\n {messages.map((m, i) => (\n <section key={i} aria-label={role[m.role]} className=\"flex flex-col gap-8\">\n <span className={cn(\"text-caption font-medium\", m.role === \"assistant\" ? \"text-fg\" : \"text-fg-secondary\")}>{role[m.role]}</span>\n <div className={cn(m.role === \"system\" || m.role === \"developer\" ? \"rounded-well bg-fill-1 px-16 py-12\" : \"\")}>\n <Blocks blocks={typeof m.content === \"string\" ? [{ type: \"text\", text: m.content }] : m.content} markdown={markdown} />\n </div>\n </section>\n ))}\n {footer}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ConversationView.displayName = \"ConversationView\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation.js","names":["__icon_ToolsIcon","__icon_Image01Icon","__icon_Pdf01Icon","cn","useUiText","Icon","Banner","JsonView","Badge","ReasoningFrame","safeHref","LazyMarkdown","n","m","KAESO_CONVERSATION_VARIANTS","KAESO_CONVERSATION_DEFAULT_VARIANTS","roleNames","t","DATA_IMAGE","webHref","href","src","isJson","s","Prose","plain","small","text","markdown","Suspense","Blocks","blocks","b","i","ToolsIcon","j","part","Link","Image01Icon","Pdf01Icon","ConversationView","role","density","className","messages","footer"],"sources":["../../../src/components/kaeso/conversation.tsx"],"sourcesContent":["import { forwardRef, lazy, Suspense, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ToolsIcon as __icon_ToolsIcon, Image01Icon as __icon_Image01Icon, Pdf01Icon as __icon_Pdf01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Banner } from \"../banner/banner.js\";\nimport { ReasoningFrame } from \"../playground/reasoning-frame.js\";\nimport { JsonView } from \"../code-block/json-view.js\";\nimport { Badge } from \"../badge/badge.js\";\nimport { Link } from \"../link/link.js\";\nimport { safeHref } from \"../../utils/safe-href.js\";\nimport { useUiText, type UiText } from \"../../i18n/context.js\";\n\nconst LazyMarkdown = /* @__PURE__ */ lazy(() => import(\"../markdown/markdown.js\").then((m) => ({ default: m.Markdown })));\n\nexport const KAESO_CONVERSATION_VARIANTS = {\n density: {\n default: { classes: \"gap-24\" },\n compact: { classes: \"gap-16\" },\n },\n} as const;\nexport const KAESO_CONVERSATION_DEFAULT_VARIANTS = { density: \"default\" } as const;\n\nexport type ContentBlock =\n | { type: \"text\"; text: string }\n | { type: \"tool_call\"; id?: string | undefined; name: string; arguments: unknown }\n | { type: \"tool_result\"; tool_call_id?: string | undefined; content: string | ContentBlock[]; is_error?: boolean | undefined }\n | { type: \"reasoning\"; text: string; redacted?: boolean | undefined }\n | { type: \"image\"; src?: string | undefined; alt?: string | undefined; media_type?: string | undefined }\n | { type: \"document\"; name?: string | undefined; media_type?: string | undefined }\n | { type: \"refusal\"; text: string };\n\nexport interface ConversationMessage {\n role: \"system\" | \"user\" | \"assistant\" | \"tool\" | \"developer\";\n content: string | ContentBlock[];\n}\n\nfunction roleNames(t: UiText): Record<ConversationMessage[\"role\"], string> {\n return {\n system: t(\"conversationView.system\", \"System\"),\n developer: t(\"conversationView.developer\", \"Developer\"),\n user: t(\"conversationView.user\", \"User\"),\n assistant: t(\"conversationView.assistant\", \"Assistant\"),\n tool: t(\"conversationView.tool\", \"Tool\"),\n };\n}\n\nconst DATA_IMAGE = /^data:image\\/[a-z0-9.+-]+;/i;\n\nfunction webHref(src: string): string | null {\n const href = safeHref(src);\n return href && /^https?:/.test(href) ? href : null;\n}\n\nfunction isJson(s: string) {\n const t = s.trim();\n if (!/^[[{]/.test(t)) return false;\n try {\n JSON.parse(t);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction Prose({ text, markdown, small }: { text: string; markdown: boolean; small?: boolean | undefined }) {\n const plain = (\n <p className={cn(\"max-w-prose whitespace-pre-wrap wrap-break-word text-pretty\", small ? \"text-small text-fg-secondary\" : \"text-body text-fg\")}>{text}</p>\n );\n if (!markdown) return plain;\n return (\n <Suspense fallback={plain}>\n <LazyMarkdown text={text} {...(small ? { size: \"small\" as const, tone: \"secondary\" as const } : {})} />\n </Suspense>\n );\n}\n\nfunction Blocks({ blocks, markdown }: { blocks: ContentBlock[]; markdown: boolean }) {\n const t = useUiText();\n return (\n <div className=\"flex flex-col gap-12\">\n {blocks.map((b, i) => {\n switch (b.type) {\n case \"text\":\n return <Prose key={i} text={b.text} markdown={markdown} />;\n case \"tool_call\":\n return (\n <div key={i} className=\"flex flex-col gap-8\">\n <span className=\"inline-flex items-center gap-8 text-small font-medium text-fg-secondary\">\n <Icon icon={__icon_ToolsIcon} size=\"xs\" />\n {t(\"conversationView.called\", \"Called **{name}**\", { name: b.name })\n .split(\"**\")\n .map((part, j) =>\n j % 2 ? (\n <span key={j} className=\"mono text-fg\">\n {part}\n </span>\n ) : (\n part\n ),\n )}\n {b.id && <span className=\"mono text-fg-tertiary\">{b.id}</span>}\n </span>\n <JsonView value={b.arguments} defaultDepth={3} />\n </div>\n );\n case \"tool_result\":\n return (\n <div key={i} className=\"flex flex-col gap-8 pl-12 hairline-l\">\n <span className=\"inline-flex items-center gap-8 text-small font-medium text-fg-secondary\">\n {t(\"conversationView.result\", \"Result\")}\n {b.tool_call_id && <span className=\"mono text-fg-tertiary\">{b.tool_call_id}</span>}\n {b.is_error && <Badge tone=\"danger\">{t(\"conversationView.error\", \"Error\")}</Badge>}\n </span>\n {typeof b.content !== \"string\" ? (\n <Blocks blocks={b.content} markdown={markdown} />\n ) : isJson(b.content) ? (\n <JsonView value={JSON.parse(b.content)} defaultDepth={3} />\n ) : markdown ? (\n <Prose text={b.content} markdown />\n ) : (\n <pre className=\"mono text-small whitespace-pre-wrap wrap-break-word text-fg\">{b.content}</pre>\n )}\n </div>\n );\n case \"reasoning\":\n return (\n <ReasoningFrame\n key={i}\n heading={t(\"conversationView.reasoning\", \"Reasoning\")}\n preview={b.redacted ? t(\"conversationView.redacted\", \"Redacted by the provider\") : undefined}\n >\n {b.redacted ? (\n <p className=\"max-w-prose text-small text-fg-secondary\">\n {t(\"conversationView.encrypted\", \"The provider returned this reasoning in encrypted form.\")}\n </p>\n ) : (\n <Prose text={b.text} markdown={markdown} small />\n )}\n </ReasoningFrame>\n );\n case \"image\": {\n if (b.src && DATA_IMAGE.test(b.src))\n return (\n <span key={i} className=\"block w-120 overflow-hidden rounded-well ring-over ring-over-line\">\n <img src={b.src} alt={b.alt ?? t(\"conversationView.imageInput\", \"Image input\")} className=\"block h-120 w-120 object-cover\" />\n </span>\n );\n const href = b.src ? webHref(b.src) : null;\n return href ? (\n <Link key={i} href={href} external rel=\"noopener noreferrer nofollow\" className=\"w-max max-w-full wrap-anywhere\">\n {t(\"conversationView.imageFrom\", \"Image from {host}\", { host: new URL(href).host })}\n </Link>\n ) : (\n <span key={i} className=\"inline-flex w-max max-w-full items-center gap-8 text-small text-fg-secondary\">\n <Icon icon={__icon_Image01Icon} size=\"xs\" /> {t(\"conversationView.image\", \"Image\")}\n {b.media_type && <span className=\"mono text-fg-tertiary\">{b.media_type}</span>}\n </span>\n );\n }\n case \"document\":\n return (\n <span key={i} className=\"inline-flex w-max max-w-full items-center gap-8 text-small text-fg-secondary\">\n <Icon icon={__icon_Pdf01Icon} size=\"xs\" />\n <span className=\"min-w-0 wrap-break-word\">{b.name ?? t(\"conversationView.document\", \"Document\")}</span>\n </span>\n );\n case \"refusal\":\n return (\n <Banner key={i} tone=\"warning\" title={t(\"conversationView.refused\", \"The model refused.\")}>\n {b.text}\n </Banner>\n );\n }\n })}\n </div>\n );\n}\n\nexport interface ConversationViewProps {\n messages: ConversationMessage[];\n density?: keyof typeof KAESO_CONVERSATION_VARIANTS.density | undefined;\n markdown?: boolean | undefined;\n className?: string | undefined;\n footer?: ReactNode | undefined;\n}\n\nexport const ConversationView = /* @__PURE__ */ forwardRef<HTMLDivElement, ConversationViewProps>(function ConversationView(\n { messages, density = \"default\", markdown = false, className, footer },\n ref,\n) {\n const t = useUiText();\n const role = roleNames(t);\n return (\n <div ref={ref} className={cn(\"flex flex-col\", KAESO_CONVERSATION_VARIANTS.density[density].classes, className)}>\n {messages.length === 0 && <p className=\"text-small text-fg-secondary\">{t(\"conversationView.empty\", \"This request has no messages.\")}</p>}\n {messages.map((m, i) => (\n <section key={i} aria-label={role[m.role]} className=\"flex flex-col gap-8\">\n <span className={cn(\"text-caption font-medium\", m.role === \"assistant\" ? \"text-fg\" : \"text-fg-secondary\")}>{role[m.role]}</span>\n <div className={cn(m.role === \"system\" || m.role === \"developer\" ? \"rounded-well bg-fill-1 px-12 py-12\" : \"\")}>\n <Blocks blocks={typeof m.content === \"string\" ? [{ type: \"text\", text: m.content }] : m.content} markdown={markdown} />\n </div>\n </section>\n ))}\n {footer}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ConversationView.displayName = \"ConversationView\";\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { t as CapabilityIcons, n as KAESO_IDENTITY_DEFAULT_VARIANTS, r as KAESO_IDENTITY_VARIANTS, i as KAESO_KEY_DISPLAY_DEFAULT_VARIANTS, a as KAESO_KEY_DISPLAY_VARIANTS, o as KeyDisplay, s as ModelLabel, c as ProviderBadge, l as ProviderCard, u as RequestTimeline, d as StatusCode, f as providerName } from "../../chunks/identity-
|
|
2
|
+
export { t as CapabilityIcons, n as KAESO_IDENTITY_DEFAULT_VARIANTS, r as KAESO_IDENTITY_VARIANTS, i as KAESO_KEY_DISPLAY_DEFAULT_VARIANTS, a as KAESO_KEY_DISPLAY_VARIANTS, o as KeyDisplay, s as ModelLabel, c as ProviderBadge, l as ProviderCard, u as RequestTimeline, d as StatusCode, f as providerName } from "../../chunks/identity-3Foi5F8w.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../../chunks/cn-
|
|
2
|
+
import { t as e } from "../../chunks/cn-BjnOAUrA.js";
|
|
3
3
|
import { i as t } from "../../chunks/context-BELWW79w.js";
|
|
4
|
-
import { t as n } from "../../chunks/icon-
|
|
5
|
-
import { n as r } from "../../chunks/button-
|
|
4
|
+
import { t as n } from "../../chunks/icon-CBzOwqrX.js";
|
|
5
|
+
import { n as r } from "../../chunks/button-IblhXUyZ.js";
|
|
6
6
|
import { t as i } from "../../chunks/use-copy-Dm2ncvMX.js";
|
|
7
|
-
import { t as a } from "../../chunks/copy-button-
|
|
8
|
-
import { t as o } from "../../chunks/code-block-
|
|
7
|
+
import { t as a } from "../../chunks/copy-button-CwU8t_9_.js";
|
|
8
|
+
import { t as o } from "../../chunks/code-block-64e-Cy1S.js";
|
|
9
9
|
import { forwardRef as s } from "react";
|
|
10
10
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
11
11
|
import { Alert02Icon as u, Copy01Icon as d, Tick02Icon as f } from "@hugeicons/core-free-icons";
|
|
@@ -32,7 +32,14 @@ function h({ baseUrl: e, apiKey: t = "$KAESO_API_KEY", model: n = "gpt-5" }) {
|
|
|
32
32
|
];
|
|
33
33
|
}
|
|
34
34
|
var g = /* @__PURE__ */ s(function({ secret: a, name: s, baseUrl: p, model: m, onCopied: g, snippets: _, className: v }, y) {
|
|
35
|
-
let b = t(), { copied: x, copy: S } = i(2400), C = b("secretReveal.copyKey", "Copy key"), w = b("secretReveal.copied", "
|
|
35
|
+
let b = t(), { copied: x, copy: S } = i(2400), C = b("secretReveal.copyKey", "Copy key"), w = b("secretReveal.copied", "Key copied"), T = _ || [{
|
|
36
|
+
label: ".env",
|
|
37
|
+
lang: "bash",
|
|
38
|
+
code: `KAESO_BASE_URL=${p}/v1\nKAESO_API_KEY=${a}`
|
|
39
|
+
}, ...h({
|
|
40
|
+
baseUrl: p,
|
|
41
|
+
...m ? { model: m } : {}
|
|
42
|
+
})];
|
|
36
43
|
return /* @__PURE__ */ l("div", {
|
|
37
44
|
ref: y,
|
|
38
45
|
className: e("flex flex-col gap-24", v),
|
|
@@ -43,7 +50,7 @@ var g = /* @__PURE__ */ s(function({ secret: a, name: s, baseUrl: p, model: m, o
|
|
|
43
50
|
tabIndex: 0,
|
|
44
51
|
role: "textbox",
|
|
45
52
|
"aria-readonly": !0,
|
|
46
|
-
"aria-label": typeof s == "string" ? b("secretReveal.
|
|
53
|
+
"aria-label": typeof s == "string" ? b("secretReveal.keyFor", "Key for {name}", { name: s }) : b("secretReveal.key", "Key"),
|
|
47
54
|
onClick: (e) => {
|
|
48
55
|
let t = document.createRange();
|
|
49
56
|
t.selectNodeContents(e.currentTarget);
|
|
@@ -53,6 +60,13 @@ var g = /* @__PURE__ */ s(function({ secret: a, name: s, baseUrl: p, model: m, o
|
|
|
53
60
|
className: "w-full cursor-text rounded-well bg-fill-1 px-20 py-16 mono text-body-lg leading-code break-all text-fg select-all focus-ring",
|
|
54
61
|
children: a
|
|
55
62
|
}),
|
|
63
|
+
/* @__PURE__ */ l("p", {
|
|
64
|
+
className: "inline-flex items-center gap-6 text-body text-warning-text",
|
|
65
|
+
children: [/* @__PURE__ */ c(n, {
|
|
66
|
+
icon: u,
|
|
67
|
+
size: "sm"
|
|
68
|
+
}), b("secretReveal.shownOnce", "Shown once. Store it now.")]
|
|
69
|
+
}),
|
|
56
70
|
/* @__PURE__ */ c(r, {
|
|
57
71
|
variant: "primary",
|
|
58
72
|
size: "xl",
|
|
@@ -62,21 +76,10 @@ var g = /* @__PURE__ */ s(function({ secret: a, name: s, baseUrl: p, model: m, o
|
|
|
62
76
|
await S(a) && g?.();
|
|
63
77
|
},
|
|
64
78
|
children: x ? w : C
|
|
65
|
-
}),
|
|
66
|
-
/* @__PURE__ */ l("p", {
|
|
67
|
-
className: "inline-flex items-center gap-6 text-body text-warning-text",
|
|
68
|
-
children: [/* @__PURE__ */ c(n, {
|
|
69
|
-
icon: u,
|
|
70
|
-
size: "sm"
|
|
71
|
-
}), b("secretReveal.shownOnce", "Shown once. Store it now.")]
|
|
72
79
|
})
|
|
73
80
|
]
|
|
74
81
|
}), _ !== !1 && /* @__PURE__ */ c(o, {
|
|
75
|
-
tabs:
|
|
76
|
-
baseUrl: p,
|
|
77
|
-
apiKey: a,
|
|
78
|
-
...m ? { model: m } : {}
|
|
79
|
-
}),
|
|
82
|
+
tabs: T,
|
|
80
83
|
copy: !0
|
|
81
84
|
})]
|
|
82
85
|
});
|
|
@@ -102,7 +105,7 @@ var _ = /* @__PURE__ */ s(function({ baseUrl: n, apiKey: r = "$KAESO_API_KEY", m
|
|
|
102
105
|
className: "flex min-w-0 flex-col gap-6",
|
|
103
106
|
children: [/* @__PURE__ */ c("span", {
|
|
104
107
|
className: "text-small font-medium text-fg-secondary",
|
|
105
|
-
children: d("environmentSnippet.
|
|
108
|
+
children: d("environmentSnippet.apiKeyVariable", "API key variable")
|
|
106
109
|
}), /* @__PURE__ */ c(a, {
|
|
107
110
|
value: r,
|
|
108
111
|
label: d("environmentSnippet.copyVariableName", "Copy variable name")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moments.js","names":["
|
|
1
|
+
{"version":3,"file":"moments.js","names":["__icon_Alert02Icon","__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","Button","useCopy","ClipboardText","CodeBlock","KAESO_MOMENTS_VARIANTS","KAESO_MOMENTS_DEFAULT_VARIANTS","sdkSnippets","envKey","apiKey","nodeKey","baseUrl","model","SecretReveal","t","copyKey","done","tabs","snippets","secret","className","name","range","selection","Alert02Icon","copied","Tick02Icon","Copy01Icon","copy","onCopied","EnvironmentSnippet"],"sources":["../../../src/components/kaeso/moments.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Alert02Icon as __icon_Alert02Icon, Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Button } from \"../button/button.js\";\nimport { CodeBlock, type CodeTab } from \"../code-block/code-block.js\";\nimport { ClipboardText } from \"../copy-button/copy-button.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_MOMENTS_VARIANTS = {\n secret: { md: { classes: \"rounded-well bg-fill-1 px-20 py-16\" } },\n} as const;\nexport const KAESO_MOMENTS_DEFAULT_VARIANTS = { secret: \"md\" } as const;\n\nexport interface SnippetOptions {\n baseUrl: string;\n apiKey?: string | undefined;\n model?: string | undefined;\n}\n\nexport function sdkSnippets({ baseUrl, apiKey = \"$KAESO_API_KEY\", model = \"gpt-5\" }: SnippetOptions): CodeTab[] {\n const envKey = apiKey.startsWith(\"$\") ? `os.environ[\"${apiKey.slice(1)}\"]` : `\"${apiKey}\"`;\n const nodeKey = apiKey.startsWith(\"$\") ? `process.env.${apiKey.slice(1)}` : `\"${apiKey}\"`;\n return [\n {\n label: \"Python\",\n lang: \"python\",\n code: `from openai import OpenAI\\n${apiKey.startsWith(\"$\") ? \"import os\\n\" : \"\"}\\nclient = OpenAI(\\n base_url=\"${baseUrl}/v1\",\\n api_key=${envKey},\\n)\\n\\nresponse = client.responses.create(\\n model=\"${model}\",\\n input=\"Write one sentence about gateways.\",\\n)\\nprint(response.output_text)`,\n },\n {\n label: \"Node\",\n lang: \"ts\",\n code: `import OpenAI from \"openai\";\\n\\nconst client = new OpenAI({\\n baseURL: \"${baseUrl}/v1\",\\n apiKey: ${nodeKey},\\n});\\n\\nconst response = await client.responses.create({\\n model: \"${model}\",\\n input: \"Write one sentence about gateways.\",\\n});\\nconsole.log(response.output_text);`,\n },\n {\n label: \"curl\",\n lang: \"bash\",\n code: `${apiKey.startsWith(\"$\") ? \"\" : `KAESO_API_KEY=${apiKey}\\n`}curl ${baseUrl}/v1/responses \\\\\\n -H \"Authorization: Bearer ${apiKey.startsWith(\"$\") ? apiKey : \"$KAESO_API_KEY\"}\" \\\\\\n -H \"Content-Type: application/json\" \\\\\\n -d '{\\n \"model\": \"${model}\",\\n \"input\": \"Write one sentence about gateways.\"\\n }'`,\n },\n ];\n}\n\nexport interface SecretRevealProps extends SnippetOptions {\n secret: string;\n name?: ReactNode | undefined;\n onCopied?: (() => void) | undefined;\n snippets?: CodeTab[] | false | undefined;\n className?: string | undefined;\n}\n\nexport const SecretReveal = /* @__PURE__ */ forwardRef<HTMLDivElement, SecretRevealProps>(function SecretReveal(\n { secret, name, baseUrl, model, onCopied, snippets, className },\n ref,\n) {\n const t = useUiText();\n const { copied, copy } = useCopy(2400);\n const copyKey = t(\"secretReveal.copyKey\", \"Copy key\");\n const done = t(\"secretReveal.copied\", \"Key copied\");\n const tabs = snippets || [\n { label: \".env\", lang: \"bash\" as const, code: `KAESO_BASE_URL=${baseUrl}/v1\\nKAESO_API_KEY=${secret}` },\n ...sdkSnippets({ baseUrl, ...(model ? { model } : {}) }),\n ];\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-24\", className)}>\n <div className=\"flex flex-col items-center gap-16 text-center\">\n <div\n tabIndex={0}\n role=\"textbox\"\n aria-readonly\n aria-label={typeof name === \"string\" ? t(\"secretReveal.keyFor\", \"Key for {name}\", { name }) : t(\"secretReveal.key\", \"Key\")}\n onClick={(e) => {\n const range = document.createRange();\n range.selectNodeContents(e.currentTarget);\n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(range);\n }}\n className=\"w-full cursor-text rounded-well bg-fill-1 px-20 py-16 mono text-body-lg leading-code break-all text-fg select-all focus-ring\"\n >\n {secret}\n </div>\n <p className=\"inline-flex items-center gap-6 text-body text-warning-text\">\n <Icon icon={__icon_Alert02Icon} size=\"sm\" />\n {t(\"secretReveal.shownOnce\", \"Shown once. Store it now.\")}\n </p>\n <Button\n variant=\"primary\"\n size=\"xl\"\n leadingIcon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n reserveLabels={[copyKey, done]}\n onClick={async () => {\n if (await copy(secret)) onCopied?.();\n }}\n >\n {copied ? done : copyKey}\n </Button>\n </div>\n {snippets !== false && <CodeBlock tabs={tabs} copy />}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SecretReveal.displayName = \"SecretReveal\";\n\nexport const EnvironmentSnippet = /* @__PURE__ */ forwardRef<HTMLDivElement, SnippetOptions & { className?: string | undefined }>(function EnvironmentSnippet(\n { baseUrl, apiKey = \"$KAESO_API_KEY\", model, className },\n ref,\n) {\n const t = useUiText();\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-16\", className)}>\n <div className=\"grid gap-12 md:grid-cols-2\">\n <div className=\"flex min-w-0 flex-col gap-6\">\n <span className=\"text-small font-medium text-fg-secondary\">{t(\"environmentSnippet.baseUrl\", \"Base URL\")}</span>\n <ClipboardText value={`${baseUrl}/v1`} label={t(\"environmentSnippet.copyBaseUrl\", \"Copy base URL\")} />\n </div>\n <div className=\"flex min-w-0 flex-col gap-6\">\n <span className=\"text-small font-medium text-fg-secondary\">{t(\"environmentSnippet.apiKeyVariable\", \"API key variable\")}</span>\n <ClipboardText value={apiKey} label={t(\"environmentSnippet.copyVariableName\", \"Copy variable name\")} />\n </div>\n </div>\n <CodeBlock tabs={sdkSnippets({ baseUrl, apiKey, ...(model ? { model } : {}) })} />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") EnvironmentSnippet.displayName = \"EnvironmentSnippet\";\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { t as KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS, n as KAESO_RIGHTS_MATRIX_VARIANTS, r as RightsMatrix } from "../../chunks/rights-
|
|
2
|
+
export { t as KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS, n as KAESO_RIGHTS_MATRIX_VARIANTS, r as RightsMatrix } from "../../chunks/rights-B68ocZuq.js";
|
|
@@ -1,101 +1,117 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "../../chunks/cn-
|
|
2
|
+
import { t as e } from "../../chunks/cn-BjnOAUrA.js";
|
|
3
3
|
import { i as t } from "../../chunks/context-BELWW79w.js";
|
|
4
4
|
import { formatNumber as n, formatTokens as r } from "../../format.js";
|
|
5
|
-
import { t as i } from "../../chunks/icon-
|
|
6
|
-
import { a } from "../../chunks/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
5
|
+
import { t as i } from "../../chunks/icon-CBzOwqrX.js";
|
|
6
|
+
import { r as a } from "../../chunks/tooltip-Tkm-urbi.js";
|
|
7
|
+
import { r as o } from "../../chunks/text-DkKdTVUf.js";
|
|
8
|
+
import { a as s } from "../../chunks/meter-CASMHlxl.js";
|
|
9
|
+
import { t as c } from "../../chunks/badge-C0GC3B9X.js";
|
|
10
|
+
import { C as l, M as u, c as d, l as f, w as p } from "../../chunks/core-CmK-8ObW.js";
|
|
11
|
+
import { forwardRef as m } from "react";
|
|
12
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
13
|
+
import { Layers01Icon as v, LeftToRightListBulletIcon as y, Wallet01Icon as b } from "@hugeicons/core-free-icons";
|
|
12
14
|
//#region src/components/kaeso/usage.tsx
|
|
13
|
-
var
|
|
15
|
+
var x = { limit: {
|
|
14
16
|
hard: { classes: "" },
|
|
15
17
|
soft: { classes: "" }
|
|
16
|
-
} },
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
cacheWrite: e("usageBreakdown.cacheWrite", "Cache write"),
|
|
23
|
-
reasoning: e("usageBreakdown.reasoning", "Reasoning")
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
var b = {}, x = {}, S = /* @__PURE__ */ u(function({ tokens: i, className: a }, o) {
|
|
27
|
-
let l = t(), u = y(l), p = v.filter((e) => (i[e] ?? 0) > 0), m = p.reduce((e, t) => e + (i[t] ?? 0), 0) || 1;
|
|
28
|
-
return /* @__PURE__ */ f("div", {
|
|
29
|
-
ref: o,
|
|
30
|
-
className: e("flex flex-col gap-12", a),
|
|
31
|
-
children: [/* @__PURE__ */ d("div", {
|
|
18
|
+
} }, S = { limit: "hard" }, C = f, w = {}, T = {}, E = /* @__PURE__ */ m(function({ tokens: i, className: o }, s) {
|
|
19
|
+
let c = t(), f = C.filter((e) => (i[e] ?? 0) > 0), m = f.reduce((e, t) => e + (i[t] ?? 0), 0) || 1;
|
|
20
|
+
return /* @__PURE__ */ _("div", {
|
|
21
|
+
ref: s,
|
|
22
|
+
className: e("flex flex-col gap-12", o),
|
|
23
|
+
children: [/* @__PURE__ */ g("div", {
|
|
32
24
|
role: "img",
|
|
33
|
-
"aria-label":
|
|
34
|
-
kind:
|
|
25
|
+
"aria-label": c("usageBreakdown.tokens", "Tokens: {list}", { list: f.map((e) => c("usageBreakdown.kindCount", "{kind} {count}", {
|
|
26
|
+
kind: p(e, c),
|
|
35
27
|
count: n(i[e] ?? 0)
|
|
36
|
-
})).join(
|
|
37
|
-
className: "flex h-8 w-full gap-2 overflow-hidden rounded-pill",
|
|
38
|
-
children:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
28
|
+
})).join(c("usageBreakdown.listSeparator", ", ")) }),
|
|
29
|
+
className: e("flex h-8 w-full gap-2 overflow-hidden rounded-pill", f.length === 0 && "bg-fill-2"),
|
|
30
|
+
children: f.map((e) => {
|
|
31
|
+
let t = u(l(e));
|
|
32
|
+
return /* @__PURE__ */ g("span", {
|
|
33
|
+
className: "h-full min-w-2 data-mark first:rounded-l-pill last:rounded-r-pill width-motion",
|
|
34
|
+
style: {
|
|
35
|
+
width: `${(i[e] ?? 0) / m * 100}%`,
|
|
36
|
+
background: l(e),
|
|
37
|
+
...t ? { boxShadow: `inset 0 0 0 1px ${t}` } : {}
|
|
38
|
+
}
|
|
39
|
+
}, e);
|
|
40
|
+
})
|
|
41
|
+
}), /* @__PURE__ */ g("dl", {
|
|
46
42
|
className: "flex flex-wrap gap-x-24 gap-y-8",
|
|
47
|
-
children:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
className: "flex
|
|
51
|
-
children: [/* @__PURE__ */
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
43
|
+
children: C.filter((e) => i[e] !== void 0).map((e) => {
|
|
44
|
+
let t = i[e] ?? 0, o = r(t), s = c("usageBreakdown.tokenCount", "{count} tokens", { count: n(t) });
|
|
45
|
+
return /* @__PURE__ */ _("div", {
|
|
46
|
+
className: "flex flex-col gap-2",
|
|
47
|
+
children: [/* @__PURE__ */ _("dt", {
|
|
48
|
+
className: "flex items-center gap-8 text-small text-fg-secondary",
|
|
49
|
+
children: [/* @__PURE__ */ g(d, { color: l(e) }), p(e, c)]
|
|
50
|
+
}), /* @__PURE__ */ g("dd", {
|
|
51
|
+
className: "pl-18 text-body font-medium text-fg tabular",
|
|
52
|
+
children: Math.abs(t) < 1e3 ? o : /* @__PURE__ */ g(a, {
|
|
53
|
+
content: s,
|
|
54
|
+
children: /* @__PURE__ */ g("span", {
|
|
55
|
+
tabIndex: 0,
|
|
56
|
+
"aria-label": s,
|
|
57
|
+
className: "rounded-code focus-ring",
|
|
58
|
+
children: o
|
|
59
|
+
})
|
|
60
|
+
})
|
|
61
|
+
})]
|
|
62
|
+
}, e);
|
|
63
|
+
})
|
|
58
64
|
})]
|
|
59
65
|
});
|
|
60
66
|
});
|
|
61
|
-
process.env.NODE_ENV !== "production" && (
|
|
62
|
-
var
|
|
63
|
-
requests:
|
|
64
|
-
tokens:
|
|
65
|
-
spend:
|
|
66
|
-
},
|
|
67
|
-
let
|
|
68
|
-
return /* @__PURE__ */
|
|
69
|
-
ref:
|
|
70
|
-
className:
|
|
71
|
-
value:
|
|
67
|
+
process.env.NODE_ENV !== "production" && (E.displayName = "UsageBreakdown");
|
|
68
|
+
var D = {
|
|
69
|
+
requests: y,
|
|
70
|
+
tokens: v,
|
|
71
|
+
spend: b
|
|
72
|
+
}, O = /* @__PURE__ */ m(function({ kind: n, scope: r, window: a, used: l, limit: u, valueLabel: d, hard: f = !0, alerts: p = [.8], resets: m, className: v }, y) {
|
|
73
|
+
let b = t(), x = u > 0 && l > u, S = b("limitMeter.label", "{kind, select, requests {requests limit} tokens {tokens limit} other {spend limit}}", { kind: n });
|
|
74
|
+
return /* @__PURE__ */ g(s, {
|
|
75
|
+
ref: y,
|
|
76
|
+
className: v,
|
|
77
|
+
value: u > 0 ? l / u : 0,
|
|
72
78
|
thresholds: p,
|
|
73
|
-
leading: /* @__PURE__ */
|
|
74
|
-
icon:
|
|
79
|
+
leading: /* @__PURE__ */ g(i, {
|
|
80
|
+
icon: D[n],
|
|
75
81
|
size: "sm",
|
|
76
82
|
className: "text-fg-secondary"
|
|
77
83
|
}),
|
|
78
|
-
label:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
label: typeof r == "string" ? /* @__PURE__ */ g(o, {
|
|
85
|
+
truncate: !0,
|
|
86
|
+
children: r
|
|
87
|
+
}) : r,
|
|
88
|
+
trailing: /* @__PURE__ */ g(c, {
|
|
89
|
+
tone: f ? "neutral" : "outline",
|
|
90
|
+
children: f ? b("limitMeter.hard", "Hard limit") : b("limitMeter.soft", "Soft limit")
|
|
82
91
|
}),
|
|
83
|
-
caption: /* @__PURE__ */
|
|
92
|
+
caption: /* @__PURE__ */ _("span", {
|
|
84
93
|
className: "flex flex-wrap items-baseline justify-between gap-x-12 gap-y-2",
|
|
85
|
-
children: [/* @__PURE__ */
|
|
86
|
-
/* @__PURE__ */
|
|
94
|
+
children: [/* @__PURE__ */ _("span", { children: [
|
|
95
|
+
x && /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g("span", {
|
|
96
|
+
className: e("font-medium", f ? "text-danger-text" : "text-warning-text"),
|
|
97
|
+
children: f ? b("limitMeter.overHard", "Over the limit, requests refused") : b("limitMeter.overSoft", "Over the limit, alerts only")
|
|
98
|
+
}), " · "] }),
|
|
99
|
+
/* @__PURE__ */ g("span", {
|
|
87
100
|
className: "font-medium text-fg-secondary tabular",
|
|
88
|
-
children:
|
|
101
|
+
children: d
|
|
89
102
|
}),
|
|
90
103
|
" · ",
|
|
91
|
-
|
|
92
|
-
] }), m && /* @__PURE__ */
|
|
104
|
+
a
|
|
105
|
+
] }), m && /* @__PURE__ */ g("span", { children: m })]
|
|
93
106
|
}),
|
|
94
|
-
"aria-label":
|
|
107
|
+
"aria-label": typeof r == "string" ? b("limitMeter.scopedLabel", "{scope}, {limit}", {
|
|
108
|
+
scope: r,
|
|
109
|
+
limit: S
|
|
110
|
+
}) : S
|
|
95
111
|
});
|
|
96
112
|
});
|
|
97
|
-
process.env.NODE_ENV !== "production" && (
|
|
113
|
+
process.env.NODE_ENV !== "production" && (O.displayName = "LimitMeter");
|
|
98
114
|
//#endregion
|
|
99
|
-
export {
|
|
115
|
+
export { T as KAESO_USAGE_BREAKDOWN_DEFAULT_VARIANTS, w as KAESO_USAGE_BREAKDOWN_VARIANTS, S as KAESO_USAGE_DEFAULT_VARIANTS, x as KAESO_USAGE_VARIANTS, O as LimitMeter, E as UsageBreakdown };
|
|
100
116
|
|
|
101
117
|
//# sourceMappingURL=usage.js.map
|