@logicplanes/kaeso-ui 0.2.1 → 0.3.0
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/AGENTS.md +2 -0
- package/NOTICE.md +1 -1
- package/ai/component-guides.md +249 -24
- package/ai/component-registry.json +1044 -67
- package/ai/component-registry.md +238 -50
- package/ai/icons.md +1 -1
- package/ai/tokens.md +7 -3
- package/dist/blocks/delete-resource.js +1 -1
- package/dist/blocks/pages.js +5 -5
- package/dist/blocks/resource-list.js +4 -4
- package/dist/chunks/app-frame-B9vrgwaE.js +220 -0
- package/dist/chunks/app-frame-B9vrgwaE.js.map +1 -0
- package/dist/chunks/{avatar-D2nJNbtC.js → avatar-DOzOhYJr.js} +2 -2
- package/dist/chunks/{avatar-D2nJNbtC.js.map → avatar-DOzOhYJr.js.map} +1 -1
- package/dist/chunks/{badge-Dkyhs0_j.js → badge-wUHlj7m3.js} +2 -2
- package/dist/chunks/{badge-Dkyhs0_j.js.map → badge-wUHlj7m3.js.map} +1 -1
- package/dist/chunks/{banner-DxGBPQ7p.js → banner-BBlNFHd-.js} +4 -4
- package/dist/chunks/{banner-DxGBPQ7p.js.map → banner-BBlNFHd-.js.map} +1 -1
- package/dist/chunks/{button-DQvoOxVQ.js → button-CAPyW-v8.js} +8 -8
- package/dist/chunks/{button-DQvoOxVQ.js.map → button-CAPyW-v8.js.map} +1 -1
- package/dist/chunks/{calendar-CN3YJi2k.js → calendar-CBeptQFq.js} +2 -2
- package/dist/chunks/{calendar-CN3YJi2k.js.map → calendar-CBeptQFq.js.map} +1 -1
- package/dist/chunks/{checkbox-BgRdbfCE.js → checkbox-C5yvSS7O.js} +3 -3
- package/dist/chunks/{checkbox-BgRdbfCE.js.map → checkbox-C5yvSS7O.js.map} +1 -1
- package/dist/chunks/{cn-CidVUKMm.js → cn-DUDmdLpZ.js} +3 -1
- package/dist/chunks/cn-DUDmdLpZ.js.map +1 -0
- package/dist/chunks/{code-BADhvsgC.js → code-C49NzHUQ.js} +2 -2
- package/dist/chunks/{code-BADhvsgC.js.map → code-C49NzHUQ.js.map} +1 -1
- package/dist/chunks/{code-block-DxtladFW.js → code-block-DREsvJ-g.js} +24 -21
- package/dist/chunks/code-block-DREsvJ-g.js.map +1 -0
- package/dist/chunks/{collapsible-Cw_1aem5.js → collapsible-CDQq1Y9x.js} +6 -6
- package/dist/chunks/collapsible-CDQq1Y9x.js.map +1 -0
- package/dist/chunks/combobox-DqtzsAKG.js +314 -0
- package/dist/chunks/combobox-DqtzsAKG.js.map +1 -0
- package/dist/chunks/command-list-D5k0uvkR.js +417 -0
- package/dist/chunks/command-list-D5k0uvkR.js.map +1 -0
- package/dist/chunks/{copy-button-DXxn-YYZ.js → copy-button-CNpEnS04.js} +6 -6
- package/dist/chunks/{copy-button-DXxn-YYZ.js.map → copy-button-CNpEnS04.js.map} +1 -1
- package/dist/chunks/{core-K960A4OT.js → core-CqLWVMDI.js} +36 -36
- package/dist/chunks/core-CqLWVMDI.js.map +1 -0
- package/dist/chunks/{date-popup-B-6xhb-1.js → date-popup-BgDz6SUj.js} +4 -4
- package/dist/chunks/{date-popup-B-6xhb-1.js.map → date-popup-BgDz6SUj.js.map} +1 -1
- package/dist/chunks/{de-CTAo4KL7.js → de-CkXZKaBD.js} +37 -5
- package/dist/chunks/de-CkXZKaBD.js.map +1 -0
- package/dist/chunks/dialog-truWH0qe.js +353 -0
- package/dist/chunks/dialog-truWH0qe.js.map +1 -0
- package/dist/chunks/{empty-DIbBpytW.js → empty-YXmSkKzR.js} +2 -2
- package/dist/chunks/{empty-DIbBpytW.js.map → empty-YXmSkKzR.js.map} +1 -1
- package/dist/chunks/{field-d8V94bvZ.js → field-BZriODU7.js} +3 -3
- package/dist/chunks/field-BZriODU7.js.map +1 -0
- package/dist/chunks/{icon-CeNQtobn.js → icon-BqujXDUc.js} +2 -2
- package/dist/chunks/{icon-CeNQtobn.js.map → icon-BqujXDUc.js.map} +1 -1
- package/dist/chunks/{icon-button-_x1RUphC.js → icon-button-D4O4puwH.js} +3 -3
- package/dist/chunks/{icon-button-_x1RUphC.js.map → icon-button-D4O4puwH.js.map} +1 -1
- package/dist/chunks/identity-CsZvAUwu.js +361 -0
- package/dist/chunks/identity-CsZvAUwu.js.map +1 -0
- package/dist/chunks/{input-CNTfI6YE.js → input-B0wtkcNh.js} +5 -5
- package/dist/chunks/{input-CNTfI6YE.js.map → input-B0wtkcNh.js.map} +1 -1
- package/dist/chunks/{input-group-CYA1MEoZ.js → input-group-BQLw06B0.js} +33 -27
- package/dist/chunks/input-group-BQLw06B0.js.map +1 -0
- package/dist/chunks/{inset-BLMdxX4I.js → inset-BnBj8NJV.js} +12 -2
- package/dist/chunks/inset-BnBj8NJV.js.map +1 -0
- package/dist/chunks/{iso-field-1qmg7TP8.js → iso-field-BUXgY1dB.js} +5 -3
- package/dist/chunks/{iso-field-1qmg7TP8.js.map → iso-field-BUXgY1dB.js.map} +1 -1
- package/dist/chunks/{json-view-B6KHIWzh.js → json-view-BkG2hTXV.js} +11 -10
- package/dist/chunks/{json-view-B6KHIWzh.js.map → json-view-BkG2hTXV.js.map} +1 -1
- package/dist/chunks/{kbd-CBcBDvqU.js → kbd-DqWmbr_e.js} +2 -2
- package/dist/chunks/{kbd-CBcBDvqU.js.map → kbd-DqWmbr_e.js.map} +1 -1
- package/dist/chunks/{link-vz9aV8WX.js → link-YMcxM-BZ.js} +4 -4
- package/dist/chunks/{link-vz9aV8WX.js.map → link-YMcxM-BZ.js.map} +1 -1
- package/dist/chunks/{link-provider---9JdxTg.js → link-provider-BsUxhZKG.js} +2 -2
- package/dist/chunks/{link-provider---9JdxTg.js.map → link-provider-BsUxhZKG.js.map} +1 -1
- package/dist/chunks/list-wXZIZo_s.js +492 -0
- package/dist/chunks/list-wXZIZo_s.js.map +1 -0
- package/dist/chunks/{loader-CUehxvSZ.js → loader-ENBh2Fbt.js} +2 -2
- package/dist/chunks/{loader-CUehxvSZ.js.map → loader-ENBh2Fbt.js.map} +1 -1
- package/dist/chunks/{markdown-5NyaHHfN.js → markdown-DWyxjsSY.js} +10 -10
- package/dist/chunks/{markdown-5NyaHHfN.js.map → markdown-DWyxjsSY.js.map} +1 -1
- package/dist/chunks/{menu-DyVPwgfF.js → menu-Bnfi9P3t.js} +7 -7
- package/dist/chunks/{menu-DyVPwgfF.js.map → menu-Bnfi9P3t.js.map} +1 -1
- package/dist/chunks/{meter-DWhyzFGQ.js → meter-DhTnem4k.js} +2 -2
- package/dist/chunks/{meter-DWhyzFGQ.js.map → meter-DhTnem4k.js.map} +1 -1
- package/dist/chunks/nav-sheet-QqNRHo-y.js +60 -0
- package/dist/chunks/nav-sheet-QqNRHo-y.js.map +1 -0
- package/dist/chunks/{nav-wordmark-DLkItdvo.js → nav-wordmark-DmbT1Aiw.js} +2 -2
- package/dist/chunks/{nav-wordmark-DLkItdvo.js.map → nav-wordmark-DmbT1Aiw.js.map} +1 -1
- package/dist/chunks/option-checkbox-Df7WhGn4.js +25 -0
- package/dist/chunks/option-checkbox-Df7WhGn4.js.map +1 -0
- package/dist/chunks/over-sheet-B8vzr_zU.js +8 -0
- package/dist/chunks/over-sheet-B8vzr_zU.js.map +1 -0
- package/dist/chunks/{page-header-CEPZzhRp.js → page-header-Ccnrspbp.js} +5 -5
- package/dist/chunks/{page-header-CEPZzhRp.js.map → page-header-Ccnrspbp.js.map} +1 -1
- package/dist/chunks/{pagination-CCMxQ5pH.js → pagination-CEmWZNjp.js} +5 -4
- package/dist/chunks/{pagination-CCMxQ5pH.js.map → pagination-CEmWZNjp.js.map} +1 -1
- package/dist/chunks/picker-popover-C4ElNk7t.js +102 -0
- package/dist/chunks/picker-popover-C4ElNk7t.js.map +1 -0
- package/dist/chunks/{popover-BE7VO-a4.js → popover-bjxg020P.js} +3 -3
- package/dist/chunks/{popover-BE7VO-a4.js.map → popover-bjxg020P.js.map} +1 -1
- package/dist/chunks/{radio-CUxbLCvD.js → radio-DwYcXAzv.js} +2 -2
- package/dist/chunks/{radio-CUxbLCvD.js.map → radio-DwYcXAzv.js.map} +1 -1
- package/dist/chunks/range-popup-CG9Jo5B7.js +128 -0
- package/dist/chunks/range-popup-CG9Jo5B7.js.map +1 -0
- package/dist/chunks/release-art-Chd8l9Rf.js +555 -0
- package/dist/chunks/release-art-Chd8l9Rf.js.map +1 -0
- package/dist/chunks/{resize-motion-CMaidkwe.js → resize-motion-BWGMchyP.js} +27 -23
- package/dist/chunks/resize-motion-BWGMchyP.js.map +1 -0
- package/dist/chunks/{rights-BbiJ0AJB.js → rights-hMoaFasn.js} +12 -12
- package/dist/chunks/rights-hMoaFasn.js.map +1 -0
- package/dist/chunks/{section-DzOLLN1p.js → section-BsET7Fo-.js} +4 -4
- package/dist/chunks/{section-DzOLLN1p.js.map → section-BsET7Fo-.js.map} +1 -1
- package/dist/chunks/{segmented-MrinfDL8.js → segmented-DXKVF-nY.js} +4 -4
- package/dist/chunks/{segmented-MrinfDL8.js.map → segmented-DXKVF-nY.js.map} +1 -1
- package/dist/chunks/{select-Bc4kRiSG.js → select-Bbv2f5F8.js} +63 -80
- package/dist/chunks/select-Bbv2f5F8.js.map +1 -0
- package/dist/chunks/{separator-D5AzVFTS.js → separator-CpAUELNs.js} +2 -2
- package/dist/chunks/{separator-D5AzVFTS.js.map → separator-CpAUELNs.js.map} +1 -1
- package/dist/chunks/{sidebar-5IA18LuP.js → sidebar-Dey1ZfGt.js} +54 -51
- package/dist/chunks/sidebar-Dey1ZfGt.js.map +1 -0
- package/dist/chunks/{sidebar-menu-DRWRxcJ3.js → sidebar-menu-ct8IiL4z.js} +2 -2
- package/dist/chunks/{sidebar-menu-DRWRxcJ3.js.map → sidebar-menu-ct8IiL4z.js.map} +1 -1
- package/dist/chunks/{skeleton-kfuqdl1a.js → skeleton-BM797MAg.js} +2 -2
- package/dist/chunks/{skeleton-kfuqdl1a.js.map → skeleton-BM797MAg.js.map} +1 -1
- package/dist/chunks/{slider-DbhjJ3ML.js → slider-Ds-tqY-1.js} +2 -2
- package/dist/chunks/{slider-DbhjJ3ML.js.map → slider-Ds-tqY-1.js.map} +1 -1
- package/dist/chunks/status-dot-BqVOlShY.js +29 -0
- package/dist/chunks/status-dot-BqVOlShY.js.map +1 -0
- package/dist/chunks/{styles-Btvg2DCf.js → styles-CVJU9t9v.js} +2 -2
- package/dist/chunks/{styles-Btvg2DCf.js.map → styles-CVJU9t9v.js.map} +1 -1
- package/dist/chunks/{swap-text-BhPI8DOf.js → swap-text-Cica0pUr.js} +2 -2
- package/dist/chunks/{swap-text-BhPI8DOf.js.map → swap-text-Cica0pUr.js.map} +1 -1
- package/dist/chunks/{switch-XMY_CQE-.js → switch-CSKMEomo.js} +3 -3
- package/dist/chunks/{switch-XMY_CQE-.js.map → switch-CSKMEomo.js.map} +1 -1
- package/dist/chunks/{table-DYKa86af.js → table-D-36EM7f.js} +2 -2
- package/dist/chunks/{table-DYKa86af.js.map → table-D-36EM7f.js.map} +1 -1
- package/dist/chunks/{tag-Dg89uYpV.js → tag-CwDKXVHj.js} +4 -4
- package/dist/chunks/{tag-Dg89uYpV.js.map → tag-CwDKXVHj.js.map} +1 -1
- package/dist/chunks/{text--5MKh2G4.js → text-Dvvgg5Jt.js} +3 -3
- package/dist/chunks/{text--5MKh2G4.js.map → text-Dvvgg5Jt.js.map} +1 -1
- package/dist/chunks/{textarea-Cj8iR82R.js → textarea-2d373OyU.js} +35 -31
- package/dist/chunks/textarea-2d373OyU.js.map +1 -0
- package/dist/chunks/timeseries-LRDAZHV0.js +339 -0
- package/dist/chunks/timeseries-LRDAZHV0.js.map +1 -0
- package/dist/chunks/{toolbar-Dw3uxpsE.js → toolbar-nVLFWH2i.js} +3 -3
- package/dist/chunks/{toolbar-Dw3uxpsE.js.map → toolbar-nVLFWH2i.js.map} +1 -1
- package/dist/chunks/{tooltip-DEbCCsru.js → tooltip-S1DmyLVl.js} +4 -4
- package/dist/chunks/{tooltip-DEbCCsru.js.map → tooltip-S1DmyLVl.js.map} +1 -1
- package/dist/chunks/{tooltip-root-DRd4ciUv.js → tooltip-root-vjylFUqw.js} +4 -4
- package/dist/chunks/{tooltip-root-DRd4ciUv.js.map → tooltip-root-vjylFUqw.js.map} +1 -1
- package/dist/chunks/{virtual-rows-BZe49bKi.js → virtual-rows-yAMjeAwj.js} +4 -3
- package/dist/chunks/virtual-rows-yAMjeAwj.js.map +1 -0
- package/dist/chunks/{zh-CN-C7GmVswt.js → zh-CN-CqEA4PCM.js} +37 -5
- package/dist/chunks/zh-CN-CqEA4PCM.js.map +1 -0
- 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 +33 -32
- 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 +34 -31
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +2 -2
- package/dist/components/charts/gauge.js +2 -2
- package/dist/components/charts/heatmap.js +1 -1
- package/dist/components/charts/sankey.js +2 -2
- package/dist/components/charts/sparkline.js +1 -1
- package/dist/components/charts/timeseries.js +1 -252
- package/dist/components/charts.js +3 -3
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +2 -2
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +4 -0
- package/dist/components/command-palette.js +120 -171
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +251 -193
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +7 -7
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +7 -9
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +67 -53
- 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/filter-chip.js +138 -63
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +2 -2
- package/dist/components/flow.js +2 -2
- 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 +56 -54
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +88 -79
- package/dist/components/kaeso/conversation.js.map +1 -1
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +8 -8
- package/dist/components/kaeso/moments.js.map +1 -1
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +6 -6
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +212 -84
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/key-value.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layout.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/loader.js +2 -2
- 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 +654 -381
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +2 -2
- package/dist/components/qr-code.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/release-art.js +2 -0
- 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 +3 -3
- package/dist/components/sheet.js +69 -52
- 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 +88 -74
- 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 +48 -49
- 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 +2 -2
- package/dist/components/theme-select.js +1 -1
- package/dist/components/timeline.js +1 -1
- package/dist/components/toast.js +4 -4
- package/dist/components/toc.js +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/format.js +132 -79
- package/dist/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +115 -111
- package/dist/kaeso.css +43 -8
- package/dist/styles.css +1 -1
- package/dist/types/components/charts/bar.d.ts +6 -0
- package/dist/types/components/charts/core.d.ts +2 -2
- package/dist/types/components/charts/docs.d.ts +7 -0
- package/dist/types/components/charts/time-axis.d.ts +5 -0
- package/dist/types/components/charts/timeseries.d.ts +9 -0
- package/dist/types/components/code-block/highlighter.d.ts +2 -0
- package/dist/types/components/combobox/combobox.d.ts +2 -0
- package/dist/types/components/combobox/docs.d.ts +2 -4
- package/dist/types/components/command-list/command-list.d.ts +84 -0
- package/dist/types/components/command-list/docs.d.ts +52 -0
- package/dist/types/components/command-list/index.d.ts +3 -0
- package/dist/types/components/command-list/match.d.ts +1 -0
- package/dist/types/components/command-list/picker-popover.d.ts +44 -0
- package/dist/types/components/data-table/data-table.d.ts +3 -2
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/date-picker/docs.d.ts +0 -6
- package/dist/types/components/dialog/dialog.d.ts +24 -0
- package/dist/types/components/dialog/docs.d.ts +4 -0
- package/dist/types/components/display-options/display-options.d.ts +1 -0
- package/dist/types/components/filter-chip/docs.d.ts +4 -0
- package/dist/types/components/filter-chip/filter-chip.d.ts +7 -0
- package/dist/types/components/input/docs.d.ts +2 -12
- package/dist/types/components/input/number-input.d.ts +1 -0
- package/dist/types/components/input/tag-input.d.ts +1 -0
- package/dist/types/components/kaeso/docs.d.ts +34 -0
- package/dist/types/components/kaeso/identity.d.ts +10 -1
- package/dist/types/components/kaeso/index.d.ts +1 -0
- package/dist/types/components/kaeso/provider-marks.d.ts +5 -1
- package/dist/types/components/kaeso/provider-picker.d.ts +42 -0
- package/dist/types/components/list/docs.d.ts +2 -0
- package/dist/types/components/list/list.d.ts +2 -0
- package/dist/types/components/menu/styles.d.ts +1 -1
- package/dist/types/components/playground/docs.d.ts +32 -0
- package/dist/types/components/playground/index.d.ts +1 -0
- package/dist/types/components/playground/model-picker.d.ts +39 -4
- package/dist/types/components/playground/reasoning.d.ts +29 -0
- package/dist/types/components/playground/response-view.d.ts +7 -1
- package/dist/types/components/release-art/docs.d.ts +13 -0
- package/dist/types/components/release-art/drawing.d.ts +48 -0
- package/dist/types/components/release-art/index.d.ts +1 -0
- package/dist/types/components/release-art/release-art.d.ts +37 -0
- package/dist/types/components/select/docs.d.ts +0 -2
- package/dist/types/components/select/option-checkbox.d.ts +1 -0
- package/dist/types/components/sidebar/sidebar.d.ts +1 -0
- package/dist/types/components/stat/docs.d.ts +1 -0
- package/dist/types/components/stat/stat.d.ts +1 -0
- package/dist/types/components/status-dot/docs.d.ts +2 -0
- package/dist/types/components/status-dot/status-dot.d.ts +2 -0
- package/dist/types/format/index.d.ts +8 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/inset.d.ts +5 -0
- package/dist/types/utils/over-sheet.d.ts +1 -0
- package/dist/types/utils/restore-focus.d.ts +1 -1
- package/dist/utils.js +4 -4
- package/foundations/accessibility.md +1 -0
- package/foundations/layout.md +45 -0
- package/foundations/writing.md +1 -0
- package/package.json +2 -2
- package/dist/chunks/app-frame-BXh-06HL.js +0 -214
- package/dist/chunks/app-frame-BXh-06HL.js.map +0 -1
- package/dist/chunks/cn-CidVUKMm.js.map +0 -1
- package/dist/chunks/code-block-DxtladFW.js.map +0 -1
- package/dist/chunks/collapsible-Cw_1aem5.js.map +0 -1
- package/dist/chunks/combobox-D30Wt11R.js +0 -291
- package/dist/chunks/combobox-D30Wt11R.js.map +0 -1
- package/dist/chunks/core-K960A4OT.js.map +0 -1
- package/dist/chunks/de-CTAo4KL7.js.map +0 -1
- package/dist/chunks/dialog-LNKgPEsV.js +0 -319
- package/dist/chunks/dialog-LNKgPEsV.js.map +0 -1
- package/dist/chunks/field-d8V94bvZ.js.map +0 -1
- package/dist/chunks/field-press-DwzBFafd.js +0 -10
- package/dist/chunks/field-press-DwzBFafd.js.map +0 -1
- package/dist/chunks/identity-BtZC_d_Q.js +0 -342
- package/dist/chunks/identity-BtZC_d_Q.js.map +0 -1
- package/dist/chunks/input-group-CYA1MEoZ.js.map +0 -1
- package/dist/chunks/inset-BLMdxX4I.js.map +0 -1
- package/dist/chunks/list-CzaiyNja.js +0 -483
- package/dist/chunks/list-CzaiyNja.js.map +0 -1
- package/dist/chunks/nav-sheet-BIErlV74.js +0 -58
- package/dist/chunks/nav-sheet-BIErlV74.js.map +0 -1
- package/dist/chunks/range-popup-DGOnGGag.js +0 -111
- package/dist/chunks/range-popup-DGOnGGag.js.map +0 -1
- package/dist/chunks/resize-motion-CMaidkwe.js.map +0 -1
- package/dist/chunks/rights-BbiJ0AJB.js.map +0 -1
- package/dist/chunks/select-Bc4kRiSG.js.map +0 -1
- package/dist/chunks/sidebar-5IA18LuP.js.map +0 -1
- package/dist/chunks/status-dot-CBoQpyL4.js +0 -25
- package/dist/chunks/status-dot-CBoQpyL4.js.map +0 -1
- package/dist/chunks/textarea-Cj8iR82R.js.map +0 -1
- package/dist/chunks/virtual-rows-BZe49bKi.js.map +0 -1
- package/dist/chunks/zh-CN-C7GmVswt.js.map +0 -1
- package/dist/components/charts/timeseries.js.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -29,6 +29,7 @@ The design system behind the components, in `node_modules/@logicplanes/kaeso-ui/
|
|
|
29
29
|
| `foundations/typography.md` | Setting text, numbers, ids or code |
|
|
30
30
|
| `foundations/shape.md` | Choosing a radius, nesting surfaces |
|
|
31
31
|
| `foundations/elevation.md` | Drawing a line, a ring or a raised surface |
|
|
32
|
+
| `foundations/layout.md` | Placing anything on a page: one gutter, one edge |
|
|
32
33
|
| `foundations/motion.md` | Animating anything, showing loading |
|
|
33
34
|
| `foundations/icons.md` | Placing an icon |
|
|
34
35
|
| `foundations/writing.md` | Writing any label, message, empty state or error |
|
|
@@ -83,6 +84,7 @@ export function Providers({ children }: { children: React.ReactNode }) {
|
|
|
83
84
|
9. **Use the icon vocabulary**: `icons.key`, `icons.model`, never an icon picked by look.
|
|
84
85
|
10. **Copy follows the voice**: sentence case, a verb first on buttons, no exclamation points or emoji, errors that say what to do next.
|
|
85
86
|
11. **Leave room.** Let the panel breathe: the components bring their own spacing, so don't pack screens with extra wrappers, borders or headings. Fewer elements, each one clear.
|
|
87
|
+
12. **One edge per page.** Every box, from a button to a row's hover fill, starts on the 24px gutter, and the text inside a box 12px further in. Never pull a component into the gutter with a negative margin.
|
|
86
88
|
|
|
87
89
|
## Which component for which job
|
|
88
90
|
|
package/NOTICE.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Notices
|
|
2
2
|
|
|
3
|
-
Fonts: Inter (SIL Open Font License 1.1) and Geist Mono (SIL Open Font License 1.1), self-hosted as unmodified subsets of their Fontsource builds and shipped in `dist/fonts/` with `LICENSE-Inter.txt` and `LICENSE-GeistMono.txt`. Icons: Hugeicons free, Stroke Rounded (MIT).
|
|
3
|
+
Fonts: Inter (SIL Open Font License 1.1) and Geist Mono (SIL Open Font License 1.1), self-hosted as unmodified subsets of their Fontsource builds and shipped in `dist/fonts/` with `LICENSE-Inter.txt` and `LICENSE-GeistMono.txt`. Icons: Hugeicons free, Stroke Rounded (MIT). Provider marks: the trademarks of the providers they name, shown only to identify each provider, from each provider's own vector in one colour. The repository's `NOTICE.md` lists the source of each.
|
|
4
4
|
|
|
5
5
|
The runtime dependencies are listed in `package.json`; each is MIT, ISC, BSD-2-Clause, BSD-3-Clause, Apache-2.0 or 0BSD licensed.
|
package/ai/component-guides.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @logicplanes/kaeso-ui component guides
|
|
2
2
|
|
|
3
|
-
Version 0.
|
|
3
|
+
Version 0.3.0. Generated from the showcase's demo modules (apps/showcase/src/demos); do not edit. For each component: what it is for, its import, keyboard, accessibility, do and don't, and every example's code. Props and variants: `component-registry.md`.
|
|
4
4
|
|
|
5
5
|
## AlertDialog
|
|
6
6
|
|
|
@@ -795,6 +795,89 @@ function Create() {
|
|
|
795
795
|
}
|
|
796
796
|
```
|
|
797
797
|
|
|
798
|
+
## CommandList
|
|
799
|
+
|
|
800
|
+
A search field over a long list that stays fast with thousands of rows, grouped under sticky captions.
|
|
801
|
+
|
|
802
|
+
`import { CommandList } from "@logicplanes/kaeso-ui";`
|
|
803
|
+
|
|
804
|
+
### Keyboard
|
|
805
|
+
|
|
806
|
+
| Key | Action |
|
|
807
|
+
|---|---|
|
|
808
|
+
| Up Down | Moves through rows, skipping disabled ones |
|
|
809
|
+
| Home End | Goes to the first or last row |
|
|
810
|
+
| PageUp PageDown | Moves a page at a time |
|
|
811
|
+
| Enter | Chooses the active row |
|
|
812
|
+
| Escape | Clears the search, then closes |
|
|
813
|
+
|
|
814
|
+
### Accessibility
|
|
815
|
+
|
|
816
|
+
- The search field is a combobox that points at the active row; the list is a listbox with one group per caption.
|
|
817
|
+
- Each row says its position in the whole list, so a screen reader counts every row, not just those drawn.
|
|
818
|
+
|
|
819
|
+
### Examples
|
|
820
|
+
|
|
821
|
+
#### In a dialog step
|
|
822
|
+
|
|
823
|
+
```tsx
|
|
824
|
+
function Inline() {
|
|
825
|
+
const [value, setValue] = useState("gpt-5");
|
|
826
|
+
return (
|
|
827
|
+
<div className="w-400 max-w-full">
|
|
828
|
+
<CommandList height="inline" aria-label="Models" groups={groups} value={value} onSelect={setValue} placeholder="Search models" />
|
|
829
|
+
</div>
|
|
830
|
+
);
|
|
831
|
+
}
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
#### In a picker
|
|
835
|
+
|
|
836
|
+
```tsx
|
|
837
|
+
function Picker() {
|
|
838
|
+
const [open, setOpen] = useState(false);
|
|
839
|
+
const [value, setValue] = useState<string | null>(null);
|
|
840
|
+
const chosen = models.find((m) => m.model === value);
|
|
841
|
+
return (
|
|
842
|
+
<PickerPopover
|
|
843
|
+
title="Model"
|
|
844
|
+
open={open}
|
|
845
|
+
onOpenChange={setOpen}
|
|
846
|
+
trigger={
|
|
847
|
+
<PickerTrigger aria-label="Model" placeholder="Choose a model">
|
|
848
|
+
{chosen?.name}
|
|
849
|
+
</PickerTrigger>
|
|
850
|
+
}
|
|
851
|
+
>
|
|
852
|
+
<CommandList
|
|
853
|
+
aria-label="Models"
|
|
854
|
+
groups={groups}
|
|
855
|
+
value={value}
|
|
856
|
+
autoFocus
|
|
857
|
+
placeholder="Search models"
|
|
858
|
+
onSelect={(v) => {
|
|
859
|
+
setValue(v);
|
|
860
|
+
setOpen(false);
|
|
861
|
+
}}
|
|
862
|
+
/>
|
|
863
|
+
</PickerPopover>
|
|
864
|
+
);
|
|
865
|
+
}
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
#### Ten thousand rows
|
|
869
|
+
|
|
870
|
+
```tsx
|
|
871
|
+
function Thousands() {
|
|
872
|
+
const [value, setValue] = useState<string | null>(null);
|
|
873
|
+
return (
|
|
874
|
+
<div className="w-400 max-w-full">
|
|
875
|
+
<CommandList height="inline" aria-label="Models" groups={thousands} value={value} onSelect={setValue} placeholder="Search 10,000 models" />
|
|
876
|
+
</div>
|
|
877
|
+
);
|
|
878
|
+
}
|
|
879
|
+
```
|
|
880
|
+
|
|
798
881
|
## CommandPalette
|
|
799
882
|
|
|
800
883
|
⌘K: every page and action, grouped; nested pages; async groups with a quiet progress line.
|
|
@@ -1012,15 +1095,20 @@ The console's table: a 36px header, 40px rows without lines, numbers right, sort
|
|
|
1012
1095
|
|
|
1013
1096
|
| Key | Action |
|
|
1014
1097
|
|---|---|
|
|
1015
|
-
| Tab | Moves to the
|
|
1098
|
+
| Tab | Moves into the table, to the row last in focus, and out again |
|
|
1099
|
+
| Up Down | Move between rows |
|
|
1100
|
+
| Home End | First and last row |
|
|
1101
|
+
| Page Up Page Down | A screen of rows up or down |
|
|
1016
1102
|
| Enter | Opens the row |
|
|
1103
|
+
| Space | Selects the row, in a selectable table |
|
|
1104
|
+
| Left Right | Resize a column, on its handle |
|
|
1017
1105
|
| shift F10 | Opens the row menu |
|
|
1018
1106
|
|
|
1019
1107
|
### Accessibility
|
|
1020
1108
|
|
|
1021
1109
|
- role=table with column headers; sorted columns carry aria-sort.
|
|
1022
1110
|
- Columns declare a priority; low-priority columns hide first when space is short. A growing column then shrinks to its readable minimum (minWidth, 136px by default) and truncates. On a screen narrower still, the other priority 1 columns give way from the row's end backwards, keeping its last column (the actions) and the selection boxes; only a row with nothing left to give way scrolls sideways, its last column pinned at the end.
|
|
1023
|
-
- Over 100 rows render virtually; the row count is in aria-rowcount.
|
|
1111
|
+
- Over 100 rows render virtually; the row count is in aria-rowcount and each row's place in aria-rowindex.
|
|
1024
1112
|
|
|
1025
1113
|
### Examples
|
|
1026
1114
|
|
|
@@ -1132,6 +1220,7 @@ A pill showing the date; a calendar with circles, today ringed, and a typed ISO
|
|
|
1132
1220
|
| Arrows | Move between days |
|
|
1133
1221
|
| Page Up Page Down | Previous and next month |
|
|
1134
1222
|
| Enter | Chooses the day |
|
|
1223
|
+
| Up Down | Move between the range's presets |
|
|
1135
1224
|
|
|
1136
1225
|
### Accessibility
|
|
1137
1226
|
|
|
@@ -1184,7 +1273,7 @@ The destructive flow: the object and the consequence, typed confirmation, a dang
|
|
|
1184
1273
|
|
|
1185
1274
|
## Dialog
|
|
1186
1275
|
|
|
1187
|
-
A modal dialog: 440, 560 or 720 wide, radius 20; title, description, body, actions. ⌘Enter
|
|
1276
|
+
A modal dialog: 440, 560 or 720 wide, radius 20; title, description, body, actions. Enter in a field and ⌘Enter submit. Longer forms use StepDialog: one question per step.
|
|
1188
1277
|
|
|
1189
1278
|
`import { Dialog } from "@logicplanes/kaeso-ui";`
|
|
1190
1279
|
|
|
@@ -1194,7 +1283,8 @@ A modal dialog: 440, 560 or 720 wide, radius 20; title, description, body, actio
|
|
|
1194
1283
|
|---|---|
|
|
1195
1284
|
| Escape | Closes and returns focus to the trigger |
|
|
1196
1285
|
| Tab | Moves within the dialog |
|
|
1197
|
-
|
|
|
1286
|
+
| Enter | Submits from a single-line field |
|
|
1287
|
+
| mod Enter | Submits from anywhere in the dialog |
|
|
1198
1288
|
|
|
1199
1289
|
### Accessibility
|
|
1200
1290
|
|
|
@@ -1600,14 +1690,14 @@ What is absent and the next step: an icon circle, a title, one sentence, one or
|
|
|
1600
1690
|
|
|
1601
1691
|
## Field
|
|
1602
1692
|
|
|
1603
|
-
A label, a control and its help, wired together;
|
|
1693
|
+
A label, a control and its help, wired together; an error shows under the control.
|
|
1604
1694
|
|
|
1605
1695
|
`import { Field, Fieldset } from "@logicplanes/kaeso-ui";`
|
|
1606
1696
|
|
|
1607
1697
|
### Accessibility
|
|
1608
1698
|
|
|
1609
1699
|
- The label points at the control; help is in aria-describedby.
|
|
1610
|
-
- invalid sets aria-invalid and the danger ring;
|
|
1700
|
+
- invalid sets aria-invalid and the danger ring; error shows what is wrong under the control and is its description for a screen reader.
|
|
1611
1701
|
- Optional fields are marked, not required ones.
|
|
1612
1702
|
|
|
1613
1703
|
### Examples
|
|
@@ -1988,7 +2078,7 @@ A pill text field with the secondary material and a soft focus halo.
|
|
|
1988
2078
|
|
|
1989
2079
|
### Accessibility
|
|
1990
2080
|
|
|
1991
|
-
- Pass label and description and the input wraps itself in Field, wiring aria-describedby; invalid sets aria-invalid
|
|
2081
|
+
- Pass label and description and the input wraps itself in Field, wiring aria-describedby; invalid sets aria-invalid, and an error shows under the input.
|
|
1992
2082
|
- Placeholders are hints, never labels.
|
|
1993
2083
|
- Read-only fields stay selectable and focusable.
|
|
1994
2084
|
|
|
@@ -2138,7 +2228,7 @@ Kaeso's identities: a redacted key with its state, a model with its provider and
|
|
|
2138
2228
|
|
|
2139
2229
|
### Accessibility
|
|
2140
2230
|
|
|
2141
|
-
- Providers show their mark in
|
|
2231
|
+
- Providers show their mark in its owner's one-colour version for the theme; others a letter. The name is always next to it or its accessible label.
|
|
2142
2232
|
- Capability icons have tooltips and are summarized in an accessible label.
|
|
2143
2233
|
- Status codes carry their phrase for screen readers.
|
|
2144
2234
|
|
|
@@ -2160,11 +2250,11 @@ Kaeso's identities: a redacted key with its state, a model with its provider and
|
|
|
2160
2250
|
```tsx
|
|
2161
2251
|
<div className="flex flex-col gap-12">
|
|
2162
2252
|
{models.map((m) => (
|
|
2163
|
-
<ModelLabel key={m.id} provider={m.provider} model={m.model} name={m.name} capabilities={m.capabilities} />
|
|
2253
|
+
<ModelLabel key={m.id} provider={m.provider} providerName={providerNames[m.provider]} model={m.model} name={m.name} capabilities={m.capabilities} />
|
|
2164
2254
|
))}
|
|
2165
2255
|
<div className="flex gap-12">
|
|
2166
|
-
<ProviderBadge provider="openai" withName />
|
|
2167
|
-
<ProviderBadge provider="anthropic" withName />
|
|
2256
|
+
<ProviderBadge provider="openai" name="OpenAI" withName />
|
|
2257
|
+
<ProviderBadge provider="anthropic" name="Anthropic" withName />
|
|
2168
2258
|
</div>
|
|
2169
2259
|
</div>
|
|
2170
2260
|
```
|
|
@@ -2188,6 +2278,7 @@ Kaeso's identities: a redacted key with its state, a model with its provider and
|
|
|
2188
2278
|
<div className="grid w-full grid-cols-1 gap-16 md:grid-cols-2">
|
|
2189
2279
|
<ProviderCard
|
|
2190
2280
|
provider="openai"
|
|
2281
|
+
name="OpenAI"
|
|
2191
2282
|
connected
|
|
2192
2283
|
status="The organization's key"
|
|
2193
2284
|
keyLabel="Production …4f2a"
|
|
@@ -2196,6 +2287,7 @@ Kaeso's identities: a redacted key with its state, a model with its provider and
|
|
|
2196
2287
|
/>
|
|
2197
2288
|
<ProviderCard
|
|
2198
2289
|
provider="anthropic"
|
|
2290
|
+
name="Anthropic"
|
|
2199
2291
|
connected={false}
|
|
2200
2292
|
status="No key yet: requests to Anthropic fail"
|
|
2201
2293
|
actions={
|
|
@@ -2323,7 +2415,11 @@ function Wizard() {
|
|
|
2323
2415
|
<List
|
|
2324
2416
|
aria-label="Models on models.dev"
|
|
2325
2417
|
density="compact"
|
|
2326
|
-
items={models.map((x) => ({
|
|
2418
|
+
items={models.map((x) => ({
|
|
2419
|
+
id: x.model,
|
|
2420
|
+
textValue: x.model,
|
|
2421
|
+
title: <ModelLabel provider={x.provider} providerName={providerNames[x.provider]} model={x.model} name={x.name} />,
|
|
2422
|
+
}))}
|
|
2327
2423
|
onOpen={(item) => {
|
|
2328
2424
|
setModel(item.id);
|
|
2329
2425
|
setView("review");
|
|
@@ -2344,7 +2440,7 @@ function Wizard() {
|
|
|
2344
2440
|
description: "Prices come from models.dev; you can override them.",
|
|
2345
2441
|
content: m && (
|
|
2346
2442
|
<div className="flex flex-col gap-16">
|
|
2347
|
-
<ModelLabel provider={m.provider} model={m.model} name={m.name} capabilities={m.capabilities} />
|
|
2443
|
+
<ModelLabel provider={m.provider} providerName={providerNames[m.provider]} model={m.model} name={m.name} capabilities={m.capabilities} />
|
|
2348
2444
|
<KeyValue
|
|
2349
2445
|
items={[
|
|
2350
2446
|
{ label: "Input", value: `$${m.input} / M` },
|
|
@@ -2867,7 +2963,7 @@ A limit or quota: label and value, a 6px pill track, threshold ticks and a capti
|
|
|
2867
2963
|
|
|
2868
2964
|
## ModelPicker
|
|
2869
2965
|
|
|
2870
|
-
A model from
|
|
2966
|
+
A model from a catalogue of any size: searchable, grouped by provider, recent models on top. The start of a comparison column's header.
|
|
2871
2967
|
|
|
2872
2968
|
`import { ModelPicker } from "@logicplanes/kaeso-ui/playground";`
|
|
2873
2969
|
|
|
@@ -2875,13 +2971,17 @@ A model from the project's catalogue: provider mark, name and id, grouped by pro
|
|
|
2875
2971
|
|
|
2876
2972
|
| Key | Action |
|
|
2877
2973
|
|---|---|
|
|
2878
|
-
| Enter Space | Opens the list |
|
|
2974
|
+
| Enter Space | Opens the list with its search focused |
|
|
2975
|
+
| A–Z | Searches by name, id or provider |
|
|
2879
2976
|
| Up Down | Moves through models |
|
|
2880
|
-
|
|
|
2977
|
+
| Enter | Chooses the active model |
|
|
2978
|
+
| Escape | Clears the search, then closes |
|
|
2881
2979
|
|
|
2882
2980
|
### Accessibility
|
|
2883
2981
|
|
|
2884
|
-
- A
|
|
2982
|
+
- A button named “Model” by default opens a search field over a listbox, one group per provider.
|
|
2983
|
+
- Above the list, a Provider select narrows it to one provider; it offers only the providers whose models match the search.
|
|
2984
|
+
- On phones the list opens as a full-screen sheet with the search on top.
|
|
2885
2985
|
|
|
2886
2986
|
### Examples
|
|
2887
2987
|
|
|
@@ -2892,7 +2992,7 @@ function Basic() {
|
|
|
2892
2992
|
const [model, setModel] = useState("claude-sonnet-4-5");
|
|
2893
2993
|
return (
|
|
2894
2994
|
<div className="flex h-52 w-full max-w-360 items-center pl-8 hairline-b">
|
|
2895
|
-
<ModelPicker value={model} onValueChange={setModel} options={playgroundModels} />
|
|
2995
|
+
<ModelPicker value={model} onValueChange={setModel} options={playgroundModels} providers={providers} />
|
|
2896
2996
|
</div>
|
|
2897
2997
|
);
|
|
2898
2998
|
}
|
|
@@ -2901,7 +3001,26 @@ function Basic() {
|
|
|
2901
3001
|
#### Raised
|
|
2902
3002
|
|
|
2903
3003
|
```tsx
|
|
2904
|
-
<ModelPicker appearance="default" size="md" defaultValue="gpt-5" options={playgroundModels} />
|
|
3004
|
+
<ModelPicker appearance="default" size="md" defaultValue="gpt-5" options={playgroundModels} providers={providers} />
|
|
3005
|
+
```
|
|
3006
|
+
|
|
3007
|
+
#### With details and recent models
|
|
3008
|
+
|
|
3009
|
+
```tsx
|
|
3010
|
+
function Catalogue() {
|
|
3011
|
+
const [model, setModel] = useState<string | null>(null);
|
|
3012
|
+
return (
|
|
3013
|
+
<ModelPicker
|
|
3014
|
+
appearance="default"
|
|
3015
|
+
size="md"
|
|
3016
|
+
options={catalogue}
|
|
3017
|
+
providers={providers.map((p) => ({ ...p, connected: p.id === "anthropic" }))}
|
|
3018
|
+
recent={["claude-sonnet-4-5"]}
|
|
3019
|
+
value={model}
|
|
3020
|
+
onValueChange={setModel}
|
|
3021
|
+
/>
|
|
3022
|
+
);
|
|
3023
|
+
}
|
|
2905
3024
|
```
|
|
2906
3025
|
|
|
2907
3026
|
## NumberInput
|
|
@@ -3213,7 +3332,7 @@ A floating panel next to its trigger; HoverCard previews on hover, never as the
|
|
|
3213
3332
|
</HoverCard.Trigger>
|
|
3214
3333
|
<HoverCard.Content>
|
|
3215
3334
|
<div className="flex flex-col gap-12">
|
|
3216
|
-
<ModelLabel provider="anthropic" model="claude-sonnet-4-5" capabilities={["tools", "reasoning", "vision", "pdf"]} />
|
|
3335
|
+
<ModelLabel provider="anthropic" providerName="Anthropic" model="claude-sonnet-4-5" capabilities={["tools", "reasoning", "vision", "pdf"]} />
|
|
3217
3336
|
<KeyValue
|
|
3218
3337
|
items={[
|
|
3219
3338
|
{ label: "Input", value: "$3.00 / M" },
|
|
@@ -3252,6 +3371,58 @@ function Basic() {
|
|
|
3252
3371
|
}
|
|
3253
3372
|
```
|
|
3254
3373
|
|
|
3374
|
+
## ProviderPicker
|
|
3375
|
+
|
|
3376
|
+
Choosing a provider from any number of them: connected ones first with their key counts, then the rest.
|
|
3377
|
+
|
|
3378
|
+
`import { ProviderPicker } from "@logicplanes/kaeso-ui";`
|
|
3379
|
+
|
|
3380
|
+
### Keyboard
|
|
3381
|
+
|
|
3382
|
+
| Key | Action |
|
|
3383
|
+
|---|---|
|
|
3384
|
+
| A–Z | Searches by name or id |
|
|
3385
|
+
| Up Down | Moves through providers |
|
|
3386
|
+
| Enter | Chooses the active provider |
|
|
3387
|
+
|
|
3388
|
+
### Accessibility
|
|
3389
|
+
|
|
3390
|
+
- A search field over a listbox, with Connected and Other providers as groups; each option reads the provider's name and hint.
|
|
3391
|
+
|
|
3392
|
+
### Examples
|
|
3393
|
+
|
|
3394
|
+
#### In a dialog step
|
|
3395
|
+
|
|
3396
|
+
```tsx
|
|
3397
|
+
function List() {
|
|
3398
|
+
const [provider, setProvider] = useState<string | null>("openai");
|
|
3399
|
+
return (
|
|
3400
|
+
<div className="w-400 max-w-full">
|
|
3401
|
+
<ProviderPicker aria-label="Provider" providers={providers} value={provider} onValueChange={setProvider} />
|
|
3402
|
+
</div>
|
|
3403
|
+
);
|
|
3404
|
+
}
|
|
3405
|
+
```
|
|
3406
|
+
|
|
3407
|
+
#### In a toolbar
|
|
3408
|
+
|
|
3409
|
+
```tsx
|
|
3410
|
+
function Select() {
|
|
3411
|
+
const [provider, setProvider] = useState<string | null>(null);
|
|
3412
|
+
return (
|
|
3413
|
+
<ProviderPicker
|
|
3414
|
+
appearance="select"
|
|
3415
|
+
size="sm"
|
|
3416
|
+
aria-label="Provider"
|
|
3417
|
+
allLabel="All providers"
|
|
3418
|
+
providers={providers}
|
|
3419
|
+
value={provider}
|
|
3420
|
+
onValueChange={setProvider}
|
|
3421
|
+
/>
|
|
3422
|
+
);
|
|
3423
|
+
}
|
|
3424
|
+
```
|
|
3425
|
+
|
|
3255
3426
|
## QRCode
|
|
3256
3427
|
|
|
3257
3428
|
A scannable code drawn as one SVG path: dark modules on white in both themes, with a quiet zone.
|
|
@@ -3310,6 +3481,60 @@ One of a few choices: an ink donut around a panel center; RadioCards for choices
|
|
|
3310
3481
|
</div>
|
|
3311
3482
|
```
|
|
3312
3483
|
|
|
3484
|
+
## Reasoning
|
|
3485
|
+
|
|
3486
|
+
A model's reasoning behind a quiet disclosure: “Thought for 4.2 s” when it is done, “Thinking” with its latest line while it streams.
|
|
3487
|
+
|
|
3488
|
+
`import { Reasoning } from "@logicplanes/kaeso-ui/playground";`
|
|
3489
|
+
|
|
3490
|
+
### Accessibility
|
|
3491
|
+
|
|
3492
|
+
- A disclosure button: Enter or Space opens and closes it, and the reasoning follows it in reading order.
|
|
3493
|
+
|
|
3494
|
+
### Examples
|
|
3495
|
+
|
|
3496
|
+
#### Finished reasoning
|
|
3497
|
+
|
|
3498
|
+
```tsx
|
|
3499
|
+
<Reasoning text={REASONING} duration={4200} />
|
|
3500
|
+
```
|
|
3501
|
+
|
|
3502
|
+
#### In a request log
|
|
3503
|
+
|
|
3504
|
+
```tsx
|
|
3505
|
+
<Reasoning title="Reasoning" hint="Redacted by the provider">
|
|
3506
|
+
<Text variant="small" tone="secondary">
|
|
3507
|
+
The provider redacted this reasoning; only its encrypted form was returned.
|
|
3508
|
+
</Text>
|
|
3509
|
+
</Reasoning>
|
|
3510
|
+
```
|
|
3511
|
+
|
|
3512
|
+
## ReleaseArt
|
|
3513
|
+
|
|
3514
|
+
Flat geometric artwork for a release, from a stored spec or a seed: the same picture every time, a new one for every release.
|
|
3515
|
+
|
|
3516
|
+
`import { ReleaseArt } from "@logicplanes/kaeso-ui";`
|
|
3517
|
+
|
|
3518
|
+
### Accessibility
|
|
3519
|
+
|
|
3520
|
+
- The artwork is an image with a label; the title drawn on it is part of the picture, so say it in the label too.
|
|
3521
|
+
|
|
3522
|
+
### Examples
|
|
3523
|
+
|
|
3524
|
+
#### What's new
|
|
3525
|
+
|
|
3526
|
+
```tsx
|
|
3527
|
+
<div className="w-full max-w-640">
|
|
3528
|
+
<ReleaseArt
|
|
3529
|
+
seed="0.3.0"
|
|
3530
|
+
art={{ version: 1, seed: 2886621037, style: "stripes", palette: 6 }}
|
|
3531
|
+
label="Kaeso 0.3.0"
|
|
3532
|
+
eyebrow="What's new in Kaeso"
|
|
3533
|
+
title="0.3.0"
|
|
3534
|
+
/>
|
|
3535
|
+
</div>
|
|
3536
|
+
```
|
|
3537
|
+
|
|
3313
3538
|
## ResourceList
|
|
3314
3539
|
|
|
3315
3540
|
A searchable list with group headers, row actions and a selection bar.
|
|
@@ -3357,7 +3582,7 @@ A response's numbers on one line: time to first token, total time, tokens in and
|
|
|
3357
3582
|
|
|
3358
3583
|
## ResponseView
|
|
3359
3584
|
|
|
3360
|
-
A model's response as it arrives: Markdown with a quiet caret, reasoning in a Thinking disclosure, and calm stopped and failed states.
|
|
3585
|
+
A model's response as it arrives: Markdown with a quiet caret, reasoning in a Thinking disclosure, and calm stopped, cut-off and failed states.
|
|
3361
3586
|
|
|
3362
3587
|
`import { ResponseView, UserMessage, Thread } from "@logicplanes/kaeso-ui/playground";`
|
|
3363
3588
|
|
|
@@ -3371,7 +3596,7 @@ A model's response as it arrives: Markdown with a quiet caret, reasoning in a Th
|
|
|
3371
3596
|
|
|
3372
3597
|
- Each response is an article named by aria-label (“GPT-5 response” in a comparison) and is aria-busy while it streams, so its words aren't read out one by one.
|
|
3373
3598
|
- Thinking is a disclosure button; closed, its row shows the latest line of the summary, hidden from screen readers, which read the summary when opened.
|
|
3374
|
-
- A failure
|
|
3599
|
+
- A failure is an alert in place of the response: “No response”, then the error.
|
|
3375
3600
|
|
|
3376
3601
|
### Examples
|
|
3377
3602
|
|
|
@@ -4562,7 +4787,7 @@ Removable tags in a field: Enter, comma and paste split them; Backspace removes
|
|
|
4562
4787
|
### Accessibility
|
|
4563
4788
|
|
|
4564
4789
|
- Each tag's remove circle is named “Remove …”.
|
|
4565
|
-
- Invalid tags stay, marked with the danger ring; each says what is wrong in its tooltip, and the first problem
|
|
4790
|
+
- Invalid tags stay, marked with the danger ring; each says what is wrong in its tooltip, and the first problem shows under the field.
|
|
4566
4791
|
|
|
4567
4792
|
### Examples
|
|
4568
4793
|
|