@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/ai/component-registry.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @logicplanes/kaeso-ui component registry
|
|
2
2
|
|
|
3
|
-
Version 0.
|
|
3
|
+
Version 0.3.0. Generated from the component types, their descriptions and variants; do not edit.
|
|
4
4
|
|
|
5
5
|
## app-frame
|
|
6
6
|
|
|
@@ -213,6 +213,8 @@ Bars for comparing values across categories: grouped, stacked, or horizontal for
|
|
|
213
213
|
| `layout` | `"horizontal" \| "grouped" \| "stacked"` | `grouped` | `grouped` puts each category's bars side by side (default), `stacked` stacks them, and `horizontal` draws bars across for rankings. |
|
|
214
214
|
| `loading` | `boolean` | | The data is loading: the chart keeps its height and shows a quiet loading bar. |
|
|
215
215
|
| `onRetry` | `(() => void)` | | Called when Try again is pressed after `error`; without it, the button doesn't show. |
|
|
216
|
+
| `partial` | `{ first?: boolean; last?: boolean; ongoing?: boolean \| undefined; } \| undefined` | | Marks the `first` or `last` category as covering only part of its span: its bars are drawn lighter and its tooltip says "partial". `ongoing` marks the last one as still counting, such as today, and says "so far". |
|
|
217
|
+
| `shares` | `boolean` | `true` | Shows each series' share of the category's total in the tooltip (on by default). Turn it off when one series is part of another, such as errors within requests. |
|
|
216
218
|
|
|
217
219
|
### ChartFrame
|
|
218
220
|
|
|
@@ -392,7 +394,8 @@ A line or area chart of values over time, such as usage, with a crosshair and to
|
|
|
392
394
|
| `empty` | `boolean` | | Shows the empty state (`emptyText`) in place of the data. By default it shows when every value is 0. |
|
|
393
395
|
| `emptyText` | `ReactNode` | | What the empty state says. Defaults to "No data for this period" in the provider's language. |
|
|
394
396
|
| `error` | `ReactNode` | | The data failed to load: the chart keeps its height, says so quietly and offers Try again. Errors are toasts, so the value isn't shown; toast the message where the request fails. |
|
|
395
|
-
| `
|
|
397
|
+
| `formatTick` | `((t: Date) => string)` | | Names the times under the axis ("3 Aug", "2026"). Defaults to calendar ticks in `timeZone`; pass it with `tickAt="points"` for buckets. |
|
|
398
|
+
| `formatTime` | `((t: Date) => string)` | | Names a point's time in the tooltip, the table and for screen readers, where a point stands for more than its instant: "Week of 3 Aug", "Aug 2026". |
|
|
396
399
|
| `formatValue` | `((v: number) => string)` | `(v) => formatNumber(v)` | Formats values on the axis and in the tooltip. |
|
|
397
400
|
| `height` | `number` | `240` | The plot's height in px (240 by default). |
|
|
398
401
|
| `hideLegend` | `boolean` | | Hide the legend (one series). |
|
|
@@ -400,7 +403,11 @@ A line or area chart of values over time, such as usage, with a crosshair and to
|
|
|
400
403
|
| `kind` | `"stacked" \| "line" \| "area"` | `line` | `line` draws lines (default), `area` adds a light fill under each line, and `stacked` stacks the areas. |
|
|
401
404
|
| `loading` | `boolean` | | The data is loading: the chart keeps its height and shows a quiet loading bar. |
|
|
402
405
|
| `onRetry` | `(() => void)` | | Called when Try again is pressed after `error`; without it, the button doesn't show. |
|
|
406
|
+
| `partial` | `{ first?: boolean; last?: boolean; ongoing?: boolean \| undefined; } \| undefined` | | Marks the `first` or `last` point as covering only part of its span: the line to it is dashed and its tooltip says "partial". `ongoing` marks the last one as still counting, such as today, and says "so far". |
|
|
407
|
+
| `shares` | `boolean` | `true` | Shows each series' share of the point's total in the tooltip (on by default). Turn it off when one series is part of another, such as errors within requests. |
|
|
403
408
|
| `threshold` | `{ value: number; label: string; }` | | A threshold line (a budget) in danger, dashed. |
|
|
409
|
+
| `tickAt` | `"time" \| "points"` | `time` | `time` labels round times, as many as fit (default). `points` sets each point in the middle of an equal step and labels every nth one, as a bar chart places and labels its categories, so a bar chart of the same days lines up with it. |
|
|
410
|
+
| `timeZone` | `string` | | The zone the axis and the default labels read times in, such as "UTC" for days counted in UTC. Defaults to the zone set with `setFormatTimeZone`, else the viewer's. |
|
|
404
411
|
|
|
405
412
|
## checkbox
|
|
406
413
|
|
|
@@ -600,7 +607,7 @@ Free text with suggestions.
|
|
|
600
607
|
| `defaultValue` | `string` | | The text in the input on first render. |
|
|
601
608
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
602
609
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
603
|
-
| `error` | `ReactNode` | |
|
|
610
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
604
611
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
605
612
|
| `label` | `ReactNode` | | The visible label. |
|
|
606
613
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -615,19 +622,20 @@ Free text with suggestions.
|
|
|
615
622
|
|
|
616
623
|
### Combobox
|
|
617
624
|
|
|
618
|
-
A pill input with a filtered list: matched characters highlighted, async, chips for many, create.
|
|
625
|
+
A pill input with a filtered list: matched characters highlighted, async, chips for many, create. It shows the first 100 matches and says how many more there are; for lists people scroll through, use `CommandList`.
|
|
619
626
|
|
|
620
627
|
| Prop | Type | Default | Description |
|
|
621
628
|
|---|---|---|---|
|
|
622
629
|
| `options` * | `ComboboxOption[]` | | The options to choose from. |
|
|
623
630
|
| `aria-label` | `string` | | The accessible name, for when there is no visible label. |
|
|
624
631
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
632
|
+
| `createLabel` | `((label: string) => string)` | | The words of the offer to add what was typed; `Add “…”` by default. |
|
|
625
633
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
626
634
|
| `defaultValue` | `string \| string[] \| null` | | The value on first render, when the component keeps its own value. |
|
|
627
635
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
628
636
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
629
637
|
| `emptyText` | `ReactNode` | | What the empty list says: "No models match". Defaults to "No results" in the provider's language. |
|
|
630
|
-
| `error` | `ReactNode` | |
|
|
638
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
631
639
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
632
640
|
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
633
641
|
| `label` | `ReactNode` | | The visible label. |
|
|
@@ -635,12 +643,13 @@ A pill input with a filtered list: matched characters highlighted, async, chips
|
|
|
635
643
|
| `loading` | `boolean` | | Shows a quiet progress line at the top of the list (async results). |
|
|
636
644
|
| `multiple` | `boolean` | | Allows choosing more than one option; `value` is then a list. |
|
|
637
645
|
| `name` | `string` | | The field name the value is sent under in a form. |
|
|
638
|
-
| `onCreate` | `((label: string) => void)` | | Offers "
|
|
646
|
+
| `onCreate` | `((label: string) => void)` | | Offers "Add “…”" when nothing matches exactly. |
|
|
639
647
|
| `onInputValueChange` | `((value: string) => void)` | | Called with the text typed into the input. |
|
|
640
648
|
| `onValueChange` | `((value: string \| null) => void) \| ((value: string[]) => void)` | | Called with the chosen value, or the list of values with `multiple`. |
|
|
641
649
|
| `optional` | `boolean` | | Adds “Optional” to the label, for forms where most fields are required. |
|
|
642
650
|
| `placeholder` | `string` | | Text shown while there is no value. |
|
|
643
651
|
| `required` | `boolean` | | Marks it as required in a form. |
|
|
652
|
+
| `searchDelay` | `number` | | Milliseconds of quiet typing before `onInputValueChange` is called, so a server search runs once per pause, not per keystroke. |
|
|
644
653
|
| `size` | `"md" \| "sm" \| "lg" \| "xl"` | | The height of the input. |
|
|
645
654
|
| `value` | `string \| string[] \| null` | | The chosen value, or a list of values with `multiple`, when you control it. |
|
|
646
655
|
|
|
@@ -653,6 +662,73 @@ Splits a label around the query: matched characters in text, the rest secondary
|
|
|
653
662
|
| `query` * | `string` | | The part of the text to highlight, ignoring case. |
|
|
654
663
|
| `text` * | `string` | | The text to show. |
|
|
655
664
|
|
|
665
|
+
## command-list
|
|
666
|
+
|
|
667
|
+
`import { CommandList, PickerPopover, PickerTrigger } from "@logicplanes/kaeso-ui/command-list";`
|
|
668
|
+
|
|
669
|
+
- **height** (command_list): `popover` (default) — At most 480px or 70% of the window, shrinking to its rows: a popover (default); `inline` — Its rows' height up to 360px in a raised frame, kept while searching: a dialog step; `fill` — Fills its parent: a phone sheet or a command palette
|
|
670
|
+
- **size** (command_list): `md` (default) — A 44px search over 34px rows (default); `lg` — A 56px search over 40px rows: the command palette
|
|
671
|
+
- **width** (picker_popover): `sm` — 320px: providers and short lists; `md` (default) — 400px (default); `lg` — 560px: models with their details
|
|
672
|
+
|
|
673
|
+
### CommandList
|
|
674
|
+
|
|
675
|
+
A search field over a long list that stays fast with thousands of rows: fuzzy matches on every row's words, groups with sticky captions, the best matches first, arrows, Home, End and Page keys, Enter to choose. The base of every picker.
|
|
676
|
+
|
|
677
|
+
| Prop | Type | Default | Description |
|
|
678
|
+
|---|---|---|---|
|
|
679
|
+
| `aria-label` * | `string` | | The list's accessible name. |
|
|
680
|
+
| `groups` * | `CommandListGroup[]` | | The rows, in groups; a group with a label gets a sticky caption with its mark and count, and a loading group keeps its caption while it has no rows yet. |
|
|
681
|
+
| `autoFocus` | `boolean` | | Focuses the search field when it appears, as in a popover or a dialog step. |
|
|
682
|
+
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
683
|
+
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
684
|
+
| `defaultQuery` | `string` | | The search text on first render. |
|
|
685
|
+
| `emptyText` | `ReactNode` | | What the list says when nothing matches: "No models match". |
|
|
686
|
+
| `escapeClears` | `boolean` | `true` | Escape first clears the search, and only an empty search lets Escape close what holds the list (true by default). |
|
|
687
|
+
| `footer` | `ReactNode` | | A line under the list, such as key hints. |
|
|
688
|
+
| `height` | `"fill" \| "popover" \| "inline"` | | How tall it is: bounded in a popover, a fixed raised frame in a dialog, or filling a phone sheet. Inside `PickerPopover` it follows the popover. |
|
|
689
|
+
| `inputProps` | `{ [attribute: `data-${string}`]: string; }` | | Data attributes for the search field, such as a marker other code looks for. |
|
|
690
|
+
| `loading` | `boolean` | | Shows a quiet progress line at the top while more rows load. |
|
|
691
|
+
| `match` | `((item: CommandListItem, query: string) => number)` | `(item: CommandListItem, query: string) => commandMatch(query, [item.label, ...(item.keywords ?? [])])` | Scores a row against the search: above 0 keeps it, and higher scores come first. Fuzzy matching on the label and keywords by default. |
|
|
692
|
+
| `multiple` | `boolean` | | Rows toggle with a checkbox instead of choosing one. |
|
|
693
|
+
| `onEscape` | `(() => void)` | | Called on Escape when the search field is already empty. |
|
|
694
|
+
| `onInputKeyDown` | `((event: KeyboardEvent<HTMLInputElement>) => void)` | | Called first with every key pressed in the search field; call `preventDefault` to replace the list's own handling. |
|
|
695
|
+
| `onQueryChange` | `((query: string) => void)` | | Called with the search text. |
|
|
696
|
+
| `onSelect` | `((value: string) => void)` | | Called with the value of the row chosen with Enter or a click. |
|
|
697
|
+
| `placeholder` | `string` | | The search field's placeholder and accessible name ("Search" by default). |
|
|
698
|
+
| `query` | `string` | | The search text, when you control it. |
|
|
699
|
+
| `searchPrefix` | `ReactNode` | | Something before the search text, such as the page a palette is on. |
|
|
700
|
+
| `size` | `"md" \| "lg"` | `md` | The search field's and the rows' height: 34px rows, or 40px in the command palette. |
|
|
701
|
+
| `toolbar` | `ReactNode` | | Controls under the search field: filter chips or a toggle. |
|
|
702
|
+
| `value` | `string \| readonly string[] \| null` | | The chosen value, or the chosen values with `multiple`. |
|
|
703
|
+
|
|
704
|
+
### PickerPopover
|
|
705
|
+
|
|
706
|
+
The frame a picker opens in: a popover under its trigger on wider screens, a full-screen sheet with the search on top on phones.
|
|
707
|
+
|
|
708
|
+
| Prop | Type | Default | Description |
|
|
709
|
+
|---|---|---|---|
|
|
710
|
+
| `children` * | `ReactNode` | | The `CommandList`. |
|
|
711
|
+
| `title` * | `string` | | The popover's accessible name and the sheet's title on phones. |
|
|
712
|
+
| `trigger` * | `ReactElement<unknown, string \| JSXElementConstructor<any>>` | | The button that opens it, usually a `PickerTrigger`. |
|
|
713
|
+
| `align` | `"start" \| "end"` | `start` | Which edge of the trigger the popover lines up with. |
|
|
714
|
+
| `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
|
|
715
|
+
| `open` | `boolean` | | Whether it is open, when you control it. |
|
|
716
|
+
| `width` | `"md" \| "sm" \| "lg"` | `md` | The popover's width on wider screens. |
|
|
717
|
+
|
|
718
|
+
### PickerTrigger
|
|
719
|
+
|
|
720
|
+
The pill that opens a picker and shows its value, in the same looks and sizes as `Select`.
|
|
721
|
+
|
|
722
|
+
| Prop | Type | Default | Description |
|
|
723
|
+
|---|---|---|---|
|
|
724
|
+
| `appearance` | `"ghost" \| "default" \| "header"` | `default` | A raised pill, quiet in a settings row, or transparent in a column header. |
|
|
725
|
+
| `children` | `ReactNode` | | The chosen value as it should read; the placeholder shows without it. |
|
|
726
|
+
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
727
|
+
| `fullWidth` | `boolean` | | Fills the container. |
|
|
728
|
+
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
729
|
+
| `placeholder` | `ReactNode` | | Text shown while nothing is chosen. |
|
|
730
|
+
| `size` | `"md" \| "sm" \| "lg" \| "xl"` | `md` | The height of the pill. |
|
|
731
|
+
|
|
656
732
|
## command-palette
|
|
657
733
|
|
|
658
734
|
`import { CommandPalette } from "@logicplanes/kaeso-ui/command-palette";`
|
|
@@ -748,6 +824,7 @@ A table for many rows: sorting, selection, loading and empty states, more rows o
|
|
|
748
824
|
| `loading` | `boolean` | | Shows skeleton rows while the first page loads. |
|
|
749
825
|
| `loadingMore` | `boolean` | | Shows that more rows are loading. |
|
|
750
826
|
| `manualSorting` | `boolean` | | Sorting happens on the server: the data arrives sorted. |
|
|
827
|
+
| `onHiddenColumnsChange` | `((ids: string[]) => void)` | | Called with the ids of the columns left out at the table's width, so a kept column can show what they held. |
|
|
751
828
|
| `onLoadMore` | `(() => void)` | | Called to load the next rows. |
|
|
752
829
|
| `onRetry` | `(() => void)` | | Shows a Retry button when loading failed. |
|
|
753
830
|
| `onRowClick` | `((row: T) => void)` | | Called when a row is clicked; rows then show that they can be opened. |
|
|
@@ -782,7 +859,7 @@ A pill showing the date; a popover with the calendar and a typed ISO field.
|
|
|
782
859
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
783
860
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
784
861
|
| `disabledDays` | `((date: Date) => boolean)` | | Returns `true` for days that can't be chosen. |
|
|
785
|
-
| `error` | `ReactNode` | |
|
|
862
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
786
863
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
787
864
|
| `label` | `ReactNode` | | The visible label. |
|
|
788
865
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -808,7 +885,7 @@ A pill showing the range ("Oct 1 – Oct 12") or its preset ("Last 30 days"); pr
|
|
|
808
885
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
809
886
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
810
887
|
| `disabledDays` | `((date: Date) => boolean)` | | Returns `true` for days that can't be chosen. |
|
|
811
|
-
| `error` | `ReactNode` | |
|
|
888
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
812
889
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
813
890
|
| `label` | `ReactNode` | | The visible label. |
|
|
814
891
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -834,7 +911,7 @@ Hours and minutes as two segments in one pill; arrows step, typing advances.
|
|
|
834
911
|
| `defaultValue` | `string` | | The time on first render, as `HH:mm`. |
|
|
835
912
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
836
913
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
837
|
-
| `error` | `ReactNode` | |
|
|
914
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
838
915
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
839
916
|
| `label` | `ReactNode` | | The visible label. |
|
|
840
917
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -874,7 +951,9 @@ Confirms deleting a resource: names the object and the consequence, asks for its
|
|
|
874
951
|
|
|
875
952
|
- **tone** (alert_dialog): `danger` (default) — Destructive (default); `warning` — Risky but reversible; `info` — Neutral confirmation
|
|
876
953
|
- **size** (dialog): `sm` — 440px: confirmations, short forms; `md` (default) — 560px: forms (default); `lg` — 720px: two columns, previews
|
|
954
|
+
- **anchor** (dialog): `center` (default) — Centered on the screen (default); `top` — A fixed top edge, for content that changes height, such as the steps of a StepDialog
|
|
877
955
|
- **size** (layer_dialog): `sm` — 440px: confirmations, short forms; `md` (default) — 560px: forms (default); `lg` — 720px: two columns, previews
|
|
956
|
+
- **anchor** (layer_dialog): `center` (default) — Centered on the screen (default); `top` — A fixed top edge, for content that changes height, such as the steps of a StepDialog
|
|
878
957
|
|
|
879
958
|
### AlertDialog
|
|
880
959
|
|
|
@@ -898,12 +977,13 @@ Confirms an irreversible action: names it, explains the consequence, optionally
|
|
|
898
977
|
|
|
899
978
|
### Dialog
|
|
900
979
|
|
|
901
|
-
A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions.
|
|
980
|
+
A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions. Enter in a single-line field and ⌘/Ctrl+Enter anywhere submit; Enter in a text area adds a line. It stays centered (or, with `anchor="top"`, keeps its top edge) while its content changes, growing or shrinking 200ms from the size it has; the body scrolls between the header and the footer when the content is taller than the screen. Its content unmounts once it has closed; state kept beside it, like a field, a step or a secret, goes in a component inside a DialogScope.
|
|
902
981
|
|
|
903
982
|
| Prop | Type | Default | Description |
|
|
904
983
|
|---|---|---|---|
|
|
905
984
|
| `title` * | `ReactNode` | | The dialog's heading, also its accessible name. |
|
|
906
|
-
| `
|
|
985
|
+
| `anchor` | `"center" \| "top"` | | Where it sits: centered, or with a fixed top edge for content that changes height, so the title never moves. |
|
|
986
|
+
| `busy` | `boolean` | | Keeps the dialog open while work it started is underway: Escape, a press outside, the close circle, Dialog.Close, Enter and ⌘Enter do nothing, so a request is never abandoned or sent twice. |
|
|
907
987
|
| `children` | `ReactNode` | | The dialog's content and actions. |
|
|
908
988
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
909
989
|
| `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
|
|
@@ -913,8 +993,9 @@ A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions.
|
|
|
913
993
|
| `hideClose` | `boolean` | | Hide the close circle (rare). |
|
|
914
994
|
| `inline` | `boolean` | | Render without a portal and backdrop, for documentation and state matrices. |
|
|
915
995
|
| `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
|
|
916
|
-
| `onSubmit` | `(() => void)` | |
|
|
996
|
+
| `onSubmit` | `(() => void)` | | Enter in a single-line field and ⌘/Ctrl+Enter anywhere call this (usually the primary action); Enter in a text area, a search field, a combobox or a picker, and the Enter that confirms an input method's text, keep their own meaning. |
|
|
917
997
|
| `open` | `boolean` | | Whether it is open, when you control it. |
|
|
998
|
+
| `persistent` | `boolean` | | A press outside doesn't close it, for forms that would lose what was typed; Escape and the close circle still do. Every StepDialog is persistent. |
|
|
918
999
|
| `size` | `"md" \| "sm" \| "lg"` | | The dialog's width. |
|
|
919
1000
|
| `trigger` | `ReactElement<unknown, string \| JSXElementConstructor<any>>` | | The trigger, a single element. |
|
|
920
1001
|
|
|
@@ -929,12 +1010,13 @@ Opens a dialog's flow fresh every time: its children mount anew when `open` turn
|
|
|
929
1010
|
|
|
930
1011
|
### LayerDialog
|
|
931
1012
|
|
|
932
|
-
A stacked dialog: a second layer slides over the first (add model → review values); back returns. The layers below stay as they were. Moving to a layer puts the focus on its first field, or its primary action; Back returns it to the control that opened the layer, scrolled where it was. ⌘/Ctrl+Enter
|
|
1013
|
+
A stacked dialog: a second layer slides over the first (add model → review values); back returns. The layers below stay as they were. Moving to a layer puts the focus on its first field, or its primary action; Back returns it to the control that opened the layer, scrolled where it was. Enter in a single-line field and ⌘/Ctrl+Enter call onSubmit on every layer.
|
|
933
1014
|
|
|
934
1015
|
| Prop | Type | Default | Description |
|
|
935
1016
|
|---|---|---|---|
|
|
936
1017
|
| `layers` * | `DialogLayer[]` | | The layers, each with its title, content and footer; one shows at a time, and the ones below it stay mounted and hidden. |
|
|
937
|
-
| `
|
|
1018
|
+
| `anchor` | `"center" \| "top"` | | Where it sits: centered, or with a fixed top edge for layers of different heights. |
|
|
1019
|
+
| `busy` | `boolean` | | Keeps the dialog open while work it started is underway: Escape, a press outside, the close circle, Dialog.Close, Enter and ⌘Enter do nothing, so a request is never abandoned or sent twice. |
|
|
938
1020
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
939
1021
|
| `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
|
|
940
1022
|
| `hideClose` | `boolean` | | Hide the close circle (rare). |
|
|
@@ -942,14 +1024,15 @@ A stacked dialog: a second layer slides over the first (add model → review val
|
|
|
942
1024
|
| `layer` | `number` | | The visible layer; layers above the first slide over it. |
|
|
943
1025
|
| `onLayerChange` | `((layer: number) => void)` | | Called with the index of the layer shown. |
|
|
944
1026
|
| `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
|
|
945
|
-
| `onSubmit` | `(() => void)` | | ⌘/Ctrl+Enter
|
|
1027
|
+
| `onSubmit` | `(() => void)` | | Enter in a single-line field and ⌘/Ctrl+Enter call this on every layer; pass the action of the layer shown. |
|
|
946
1028
|
| `open` | `boolean` | | Whether it is open, when you control it. |
|
|
1029
|
+
| `persistent` | `boolean` | | A press outside doesn't close it, for forms that would lose what was typed; Escape and the close circle still do. Every StepDialog is persistent. |
|
|
947
1030
|
| `size` | `"md" \| "sm" \| "lg"` | | The dialog's width. |
|
|
948
1031
|
| `trigger` | `ReactElement<unknown, string \| JSXElementConstructor<any>>` | | The trigger, a single element. |
|
|
949
1032
|
|
|
950
1033
|
### StepDialog
|
|
951
1034
|
|
|
952
|
-
A form split into steps, one question at a time, like sign-in: the step's title and fields, Back and Continue, the action on the last step. Enter in a field and ⌘/Ctrl+Enter continue. The dialog takes each step's own height and
|
|
1035
|
+
A form split into steps, one question at a time, like sign-in: the step's title and fields, Back and Continue, the action on the last step. Enter in a single-line field and ⌘/Ctrl+Enter continue. The dialog takes each step's own height and keeps its top edge where it opened: it grows or shrinks 200ms downward from the size it has as the step changes, so the title never jumps, and the new step drifts in from the side it comes from. With `result`, what the last step made (a key shown once) takes the steps' place in the same dialog, at its own size. Continue and Back move the focus into the step they show (its first field; without one, the primary action, or Back when the last step destroys), and a screen reader hears which step it is.
|
|
953
1036
|
|
|
954
1037
|
| Prop | Type | Default | Description |
|
|
955
1038
|
|---|---|---|---|
|
|
@@ -980,7 +1063,7 @@ Display options: view, grouping and ordering, toggles, properties.
|
|
|
980
1063
|
|---|---|---|---|
|
|
981
1064
|
| `footer` | `ReactNode` | | Content at the bottom of the options, such as a reset button. |
|
|
982
1065
|
| `inline` | `boolean` | | Render the panel inline (documentation and state matrices). |
|
|
983
|
-
| `properties` | `{ options: { value: string; label: string; }[]; value: string[]; onChange: (v: string[]) => void; }` | | The properties shown for each item. |
|
|
1066
|
+
| `properties` | `{ options: { value: string; label: string; }[]; value: string[]; onChange: (v: string[]) => void; hidden?: string[]; }` | | The properties shown for each item; `hidden` names those that are on but left out because they don't fit, such as table columns at a narrow width. |
|
|
984
1067
|
| `rows` | `DisplayOptionsRow[]` | | Rows of choices, such as grouping and ordering. |
|
|
985
1068
|
| `toggles` | `DisplayOptionsToggle[]` | | Switches, such as showing archived items. |
|
|
986
1069
|
| `trigger` | `"secondary" \| "ghost"` | `secondary` | The look of the button that opens the options. |
|
|
@@ -1018,7 +1101,7 @@ The aria wiring a control needs, whether it sits in a <Field> or wraps itself in
|
|
|
1018
1101
|
| Prop | Type | Default | Description |
|
|
1019
1102
|
|---|---|---|---|
|
|
1020
1103
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1021
|
-
| `error` | `ReactNode` | | The error message: it marks the field invalid and is read out with the description
|
|
1104
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color: it marks the field invalid and is read out with the description. |
|
|
1022
1105
|
| `id` | `string` | | The id of the control inside, so the label points to it. |
|
|
1023
1106
|
| `invalid` | `boolean` | | Marks the field invalid without a message. |
|
|
1024
1107
|
| `label` | `ReactNode` | | The field's label. |
|
|
@@ -1051,14 +1134,18 @@ A filter as one pill: "Status is 2xx ×", each part opening a menu.
|
|
|
1051
1134
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1052
1135
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1053
1136
|
| `defaultValuesOpen` | `boolean` | | Open the value menu when the chip appears: a filter just added asks for its value at once. |
|
|
1137
|
+
| `groups` | `CommandListGroup[]` | | Choices as ready-made searchable list groups, in place of `values`: rows with marks and details and headings with logos, such as `useModelGroups` or `useProviderGroups` build. |
|
|
1054
1138
|
| `multiple` | `boolean` | | Several values may be chosen. |
|
|
1055
1139
|
| `onOperatorChange` | `((operator: string) => void)` | | Called with the chosen comparison. |
|
|
1056
1140
|
| `onRemove` | `(() => void)` | | Called when the filter is removed. |
|
|
1057
1141
|
| `onSelectedChange` | `((selected: string[]) => void)` | | Called with the chosen values. |
|
|
1142
|
+
| `onValuesOpenChange` | `((open: boolean) => void)` | | Called when the value menu opens or closes, so a filter just added can go away when it closes without a value. |
|
|
1058
1143
|
| `operators` | `string[]` | | The comparisons people can choose, such as “is” and “is not”. |
|
|
1059
1144
|
| `propertyIcon` | `IconSvgElement` | | The icon of the property the filter applies to. |
|
|
1145
|
+
| `searchable` | `boolean` | | Gives the value menu a search field however few choices it has. |
|
|
1060
1146
|
| `selected` | `string[]` | `[]` | The chosen values. |
|
|
1061
|
-
| `values` | `FilterChipChoice[]` | | Choices for the value menu. |
|
|
1147
|
+
| `values` | `FilterChipChoice[]` | | Choices for the value menu: past 8 it gets a search field, past 50 it opens a fast searchable list grouped by each choice's `group`, such as models by provider. |
|
|
1148
|
+
| `width` | `"md" \| "sm" \| "lg"` | | How wide the searchable list opens: `sm` for providers, `lg` for models with their details. |
|
|
1062
1149
|
|
|
1063
1150
|
## filter-row
|
|
1064
1151
|
|
|
@@ -1175,7 +1262,7 @@ A pill text field with the secondary material and the field focus. Takes label,
|
|
|
1175
1262
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1176
1263
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1177
1264
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1178
|
-
| `error` | `ReactNode` | |
|
|
1265
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
1179
1266
|
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
1180
1267
|
| `label` | `ReactNode` | | The visible label. |
|
|
1181
1268
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -1211,8 +1298,9 @@ Numbers that stay exact: right-aligned tabular digits, a unit, stepper circles o
|
|
|
1211
1298
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1212
1299
|
| `defaultValue` | `string` | | The number on first render, as text. |
|
|
1213
1300
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1214
|
-
| `error` | `ReactNode` | |
|
|
1301
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
1215
1302
|
| `hideStepper` | `boolean` | | Hide the stepper circles. |
|
|
1303
|
+
| `integer` | `boolean` | | Whole numbers only, such as a count of days: a numeric keypad on phones and no thousands separators in the field. |
|
|
1216
1304
|
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
1217
1305
|
| `label` | `ReactNode` | | The visible label. |
|
|
1218
1306
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -1254,7 +1342,7 @@ Search: a leading icon, a clear circle when filled, an optional shortcut hint. E
|
|
|
1254
1342
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1255
1343
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1256
1344
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1257
|
-
| `error` | `ReactNode` | |
|
|
1345
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
1258
1346
|
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
1259
1347
|
| `label` | `ReactNode` | | The visible label. |
|
|
1260
1348
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -1276,7 +1364,7 @@ Masked by default with an eye circle to reveal. Monospace when revealed, never a
|
|
|
1276
1364
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1277
1365
|
| `defaultRevealed` | `boolean` | `false` | Start revealed. |
|
|
1278
1366
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1279
|
-
| `error` | `ReactNode` | |
|
|
1367
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
1280
1368
|
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
1281
1369
|
| `kind` | `"password" \| "secret"` | `secret` | A password (never revealed once saved) or a secret such as an API key. |
|
|
1282
1370
|
| `label` | `ReactNode` | | The visible label. |
|
|
@@ -1299,17 +1387,18 @@ Removable tags in a field: Enter, comma and paste split; Backspace removes the l
|
|
|
1299
1387
|
| `defaultValue` | `string[]` | | The tags on first render. |
|
|
1300
1388
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1301
1389
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
1302
|
-
| `error` | `ReactNode` | |
|
|
1390
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
1303
1391
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
1304
1392
|
| `label` | `ReactNode` | | The visible label. |
|
|
1305
1393
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
1306
1394
|
| `name` | `string` | | The field name the value is sent under in a form. |
|
|
1395
|
+
| `onInputValueChange` | `((draft: string) => void)` | | Called with the text typed but not added as a tag yet, so a form can count it before it is added. |
|
|
1307
1396
|
| `onValueChange` | `((value: string[]) => void)` | | Called with the tags whenever one is added or removed. |
|
|
1308
1397
|
| `optional` | `boolean` | | Adds “Optional” to the label, for forms where most fields are required. |
|
|
1309
1398
|
| `placeholder` | `string` | | Text shown while there is no value. |
|
|
1310
1399
|
| `required` | `boolean` | | Marks it as required in a form. |
|
|
1311
|
-
| `separators` | `string[]` | | Characters that end a tag, besides Enter. |
|
|
1312
|
-
| `validate` | `((tag: string) => string \| true)` | | Return true for a valid tag, or a message saying what is wrong. Invalid tags stay, marked with a danger ring, and show the message as their tooltip
|
|
1400
|
+
| `separators` | `string[]` | | Characters that end a tag, besides Enter; pasted text also splits at line breaks and tabs. |
|
|
1401
|
+
| `validate` | `((tag: string) => string \| true)` | | Return true for a valid tag, or a message saying what is wrong. Invalid tags stay, marked with a danger ring, and show the message as their tooltip; the first one also shows under the field. |
|
|
1313
1402
|
| `value` | `string[]` | | The tags, when you control them. |
|
|
1314
1403
|
|
|
1315
1404
|
### Textarea
|
|
@@ -1320,7 +1409,7 @@ A multi-line field: radius 14 (multi-line text cannot be a pill), the same mater
|
|
|
1320
1409
|
|---|---|---|---|
|
|
1321
1410
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1322
1411
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1323
|
-
| `error` | `ReactNode` | |
|
|
1412
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
1324
1413
|
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
1325
1414
|
| `label` | `ReactNode` | | The visible label. |
|
|
1326
1415
|
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
@@ -1331,20 +1420,30 @@ A multi-line field: radius 14 (multi-line text cannot be a pill), the same mater
|
|
|
1331
1420
|
|
|
1332
1421
|
## kaeso
|
|
1333
1422
|
|
|
1334
|
-
`import { ConversationView, EffectiveAccess, EnvironmentSnippet, KeyDisplay, LimitMeter, ModelLabel, ProviderBadge, ProviderCard, RequestTimeline, RightsMatrix, RolePicker, SecretReveal, StatusCode, UsageBreakdown } from "@logicplanes/kaeso-ui/kaeso";`
|
|
1423
|
+
`import { CapabilityIcons, ConversationView, EffectiveAccess, EnvironmentSnippet, KeyDisplay, LimitMeter, ModelLabel, ProviderBadge, ProviderCard, ProviderPicker, RequestTimeline, RightsMatrix, RolePicker, SecretReveal, StatusCode, UsageBreakdown } from "@logicplanes/kaeso-ui/kaeso";`
|
|
1335
1424
|
|
|
1336
1425
|
- **density** (conversation): `default` (default) — 24px between turns (default); `compact` — 16px, inside sheets
|
|
1337
1426
|
- **layout** (effective_access): `rows` (default) — A row per group: its name, what is granted in words, and how many (default)
|
|
1338
1427
|
- **provider** (identity): `sm` — 16px, inside table cells; `md` (default) — 20px (default); `lg` — 28px; `xl` — 40px: a provider's own page or card
|
|
1339
1428
|
- **secret** (moments): `md` (default) — The one-time secret on a well
|
|
1429
|
+
- **appearance** (provider_picker): `list` (default) — A search field over every provider, always open: a dialog step (default); `select` — A pill that opens the searchable list: forms and toolbars
|
|
1340
1430
|
- **origin** (rights_matrix): `preset` — Comes from the role; `added` — Added on top of the role; `removed` — Removed from the role; `none` (default) — Not granted
|
|
1341
1431
|
- **mode** (rights_matrix): `edit` (default) — Checkboxes, group toggles and requirement hints (default); `readOnly` — A mark per right and, under it, the roles that grant it
|
|
1342
1432
|
- **appearance** (role_picker): `list` (default) — Every role as a row with its description, built-in then custom (default): invites and role changes; `select` — A pill that opens the roles: filters, table rows and tight forms
|
|
1343
1433
|
- **limit** (usage): `hard` (default) — Requests over the limit are refused; `soft` — Over the limit only alerts
|
|
1344
1434
|
|
|
1435
|
+
### CapabilityIcons
|
|
1436
|
+
|
|
1437
|
+
A model's capabilities as small icons, each named in a tooltip and read as one list by screen readers.
|
|
1438
|
+
|
|
1439
|
+
| Prop | Type | Default | Description |
|
|
1440
|
+
|---|---|---|---|
|
|
1441
|
+
| `capabilities` | `Capability[]` | `[]` | The capabilities: tools, reasoning, vision, pdf, structuredOutput. |
|
|
1442
|
+
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1443
|
+
|
|
1345
1444
|
### ConversationView
|
|
1346
1445
|
|
|
1347
|
-
A model conversation from a request log: role captions, prose, tool calls and results, reasoning, images, refusals.
|
|
1446
|
+
A model conversation from a request log: role captions, prose, tool calls and results, reasoning, images, refusals. Inline images show; remote ones are links, so viewing a log never fetches them.
|
|
1348
1447
|
|
|
1349
1448
|
| Prop | Type | Default | Description |
|
|
1350
1449
|
|---|---|---|---|
|
|
@@ -1388,6 +1487,7 @@ A redacted key: mono 13 with its state dot, copy of the redacted form, and its a
|
|
|
1388
1487
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1389
1488
|
| `copy` | `boolean` | `true` | Hide the copy circle. |
|
|
1390
1489
|
| `state` | `KeyState` | `active` | The key's state; disabled, expired and archived keys are shown dimmed. |
|
|
1490
|
+
| `stateBadge` | `boolean` | `true` | Shows the state's badge beside a key that isn't active (on by default); turn it off where a heading already names the state. |
|
|
1391
1491
|
|
|
1392
1492
|
### LimitMeter
|
|
1393
1493
|
|
|
@@ -1416,16 +1516,19 @@ A model: provider mark, display name, then its id in mono, capability icons with
|
|
|
1416
1516
|
| `provider` * | `string` | | The provider id, such as `openai` or `anthropic`. |
|
|
1417
1517
|
| `capabilities` | `Capability[]` | `[]` | What the model can do, shown as small marks after its name. |
|
|
1418
1518
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1519
|
+
| `mark` | `boolean` | `true` | Shows the provider's mark first (default); turn it off in a list grouped under each provider's mark. |
|
|
1419
1520
|
| `name` | `string` | | The display name, first. |
|
|
1521
|
+
| `providerName` | `string` | | The provider's name from the gateway's provider list, which names its mark for screen readers; the id without it. |
|
|
1420
1522
|
|
|
1421
1523
|
### ProviderBadge
|
|
1422
1524
|
|
|
1423
|
-
A provider's mark on a quiet tile, in the
|
|
1525
|
+
A provider's mark on a quiet tile, in the provider's own one-colour version for the theme; for providers without one, the first letter of their name.
|
|
1424
1526
|
|
|
1425
1527
|
| Prop | Type | Default | Description |
|
|
1426
1528
|
|---|---|---|---|
|
|
1427
1529
|
| `provider` * | `string` | | The provider id, such as `openai` or `anthropic`. |
|
|
1428
1530
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1531
|
+
| `name` | `string` | | The provider's name from the gateway's provider list: the badge's accessible name, the text `withName` writes and the source of the letter; the id without it. |
|
|
1429
1532
|
| `size` | `"md" \| "sm" \| "lg" \| "xl"` | `md` | The badge's size. |
|
|
1430
1533
|
| `withName` | `boolean` | | Writes the provider's name next to its mark. |
|
|
1431
1534
|
|
|
@@ -1442,6 +1545,32 @@ A provider and how this place reaches it: its mark, name and connection, the key
|
|
|
1442
1545
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1443
1546
|
| `detail` | `ReactNode` | | A line under the provider's name, such as how many keys it has. |
|
|
1444
1547
|
| `keyLabel` | `ReactNode` | | The key: its name and last four characters, and when it was last used. |
|
|
1548
|
+
| `name` | `string` | | The provider's name from the gateway's provider list, as the card's title; the id without it. |
|
|
1549
|
+
|
|
1550
|
+
### ProviderPicker
|
|
1551
|
+
|
|
1552
|
+
Choosing a provider from any number of them: a search field over every provider, connected ones first with their key counts, then the rest from A to Z, each with its mark. Always open in a dialog step, or a pill that opens it in forms and toolbars.
|
|
1553
|
+
|
|
1554
|
+
| Prop | Type | Default | Description |
|
|
1555
|
+
|---|---|---|---|
|
|
1556
|
+
| `providers` * | `ProviderPickerOption[]` | | The providers: id, name, whether the organization has connected it, and a short hint such as its key count. |
|
|
1557
|
+
| `allLabel` | `string` | | Select only: a first option for no provider in particular, such as "All providers"; choosing it reports `null`. |
|
|
1558
|
+
| `appearance` | `"list" \| "select"` | | An always-open list for a dialog step, or a pill that opens it. |
|
|
1559
|
+
| `aria-label` | `string` | | The accessible name, for when there is no visible label. |
|
|
1560
|
+
| `autoFocus` | `boolean` | | List only: focuses the search field when it appears. |
|
|
1561
|
+
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1562
|
+
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
1563
|
+
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
1564
|
+
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
1565
|
+
| `error` | `ReactNode` | | Deprecated. Errors are toasts, never text under a field: `error` marks the control invalid and stays its description for screen readers, but isn't drawn. Pass `invalid` and toast the message. |
|
|
1566
|
+
| `label` | `ReactNode` | | The visible label. |
|
|
1567
|
+
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
1568
|
+
| `onValueChange` | `((id: string \| null) => void)` | | Called with the chosen provider's id, or `null` for `allLabel`. |
|
|
1569
|
+
| `optional` | `boolean` | | Adds “Optional” to the label, for forms where most fields are required. |
|
|
1570
|
+
| `placeholder` | `string` | | The search field's placeholder; in a pill without `allLabel`, also the text shown while nothing is chosen. |
|
|
1571
|
+
| `required` | `boolean` | | Marks it as required in a form. |
|
|
1572
|
+
| `size` | `"md" \| "sm"` | | Select only: the height of the pill. |
|
|
1573
|
+
| `value` | `string \| null` | | The chosen provider's id, when you control it. |
|
|
1445
1574
|
|
|
1446
1575
|
### RequestTimeline
|
|
1447
1576
|
|
|
@@ -1518,7 +1647,7 @@ A stacked bar of token kinds with the numbers under it, in the fixed series mapp
|
|
|
1518
1647
|
|
|
1519
1648
|
| Prop | Type | Default | Description |
|
|
1520
1649
|
|---|---|---|---|
|
|
1521
|
-
| `tokens` * | `Partial<Record<"input" \| "output" \| "cacheRead" \| "cacheWrite" \| "reasoning", number>>` | | Tokens by kind: input, output, cache reads and writes, reasoning. |
|
|
1650
|
+
| `tokens` * | `Partial<Record<"input" \| "output" \| "cacheRead" \| "cacheWrite" \| "reasoning", number>>` | | Tokens by kind: input, output, cache reads and writes, reasoning. A kind left out isn't listed, for kinds that can't apply, such as output for embeddings; pass 0 to list it. |
|
|
1522
1651
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
1523
1652
|
|
|
1524
1653
|
## kbd
|
|
@@ -1593,7 +1722,7 @@ A responsive grid.
|
|
|
1593
1722
|
|
|
1594
1723
|
| Prop | Type | Default | Description |
|
|
1595
1724
|
|---|---|---|---|
|
|
1596
|
-
| `align` | `"start" \| "end" \| "
|
|
1725
|
+
| `align` | `"start" \| "end" \| "center" \| "baseline" \| "stretch"` | `center` | How items line up within their cells. |
|
|
1597
1726
|
| `as` | `ElementType` | | The element or component to render as, such as `section` or `ul`. |
|
|
1598
1727
|
| `columns` | `4 \| 1 \| 2 \| 3 \| 6` | `2` | The number of columns. |
|
|
1599
1728
|
| `gap` | `0 \| 24 \| 20 \| 32 \| 40 \| 4 \| 2 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
|
|
@@ -1604,7 +1733,7 @@ A horizontal row that wraps.
|
|
|
1604
1733
|
|
|
1605
1734
|
| Prop | Type | Default | Description |
|
|
1606
1735
|
|---|---|---|---|
|
|
1607
|
-
| `align` | `"start" \| "end" \| "
|
|
1736
|
+
| `align` | `"start" \| "end" \| "center" \| "baseline" \| "stretch"` | `center` | How items line up across the row. |
|
|
1608
1737
|
| `as` | `ElementType` | | The element or component to render as, such as `section` or `ul`. |
|
|
1609
1738
|
| `gap` | `0 \| 24 \| 20 \| 32 \| 40 \| 4 \| 2 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
|
|
1610
1739
|
| `justify` | `"start" \| "end" \| "center" \| "between"` | | How items are spread along the main axis. |
|
|
@@ -1616,7 +1745,7 @@ A vertical stack.
|
|
|
1616
1745
|
|
|
1617
1746
|
| Prop | Type | Default | Description |
|
|
1618
1747
|
|---|---|---|---|
|
|
1619
|
-
| `align` | `"start" \| "end" \| "
|
|
1748
|
+
| `align` | `"start" \| "end" \| "center" \| "baseline" \| "stretch"` | `center` | How items line up across the column. |
|
|
1620
1749
|
| `as` | `ElementType` | | The element or component to render as, such as `section` or `ul`. |
|
|
1621
1750
|
| `gap` | `0 \| 24 \| 20 \| 32 \| 40 \| 4 \| 2 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
|
|
1622
1751
|
| `justify` | `"start" \| "end" \| "center" \| "between"` | | How items are spread along the main axis. |
|
|
@@ -1685,6 +1814,7 @@ The console list: 44px rows on the panel, no lines, metadata on the right, keybo
|
|
|
1685
1814
|
| `selectionActions` | `ReactNode` | | Actions in the floating selection bar. |
|
|
1686
1815
|
| `selectionBar` | `boolean` | `true` | The floating selection bar; off where the host shows the count itself, as in a dialog. |
|
|
1687
1816
|
| `virtualizeAbove` | `number` | `100` | Virtualize above this many rows (100). |
|
|
1817
|
+
| `wrapSubtitle` | `boolean` | `false` | Lets a subtitle under its title wrap instead of ending with an ellipsis, for descriptions people read in full. |
|
|
1688
1818
|
|
|
1689
1819
|
### ListRow
|
|
1690
1820
|
|
|
@@ -1707,6 +1837,7 @@ One row: checkbox, glyph, id, title, subtitle, metadata, date, avatar, hover act
|
|
|
1707
1837
|
| `selectable` | `boolean` | | Shows the row's checkbox. |
|
|
1708
1838
|
| `selected` | `boolean` | | Marks the row as selected. |
|
|
1709
1839
|
| `selecting` | `boolean` | | Shows checkboxes on every row while some are selected. |
|
|
1840
|
+
| `wrapSubtitle` | `boolean` | `false` | Lets a subtitle under its title wrap. Set by `List`. |
|
|
1710
1841
|
|
|
1711
1842
|
### SelectionAction
|
|
1712
1843
|
|
|
@@ -1964,15 +2095,16 @@ Moves through long lists by pages, by cursor, or with a Load more button.
|
|
|
1964
2095
|
|
|
1965
2096
|
## playground
|
|
1966
2097
|
|
|
1967
|
-
`import { CompareGrid, Composer, ModelPicker, ParameterPanel, ParameterPopover, PromptSuggestions, ResponseMetrics, ResponseView, Thread, UserMessage } from "@logicplanes/kaeso-ui/playground";`
|
|
2098
|
+
`import { CompareGrid, Composer, ModelPicker, ParameterPanel, ParameterPopover, PromptSuggestions, Reasoning, ResponseMetrics, ResponseView, Thread, UserMessage } from "@logicplanes/kaeso-ui/playground";`
|
|
1968
2099
|
|
|
1969
2100
|
- **divider** (compare_grid): `hairline` (default) — Columns separated by a hairline, edge to edge (default); `none` — No line between columns: columns that sit in panels of their own
|
|
1970
2101
|
- **size** (composer): `md` (default) — Text 14/20, 8px around the buttons; the outline concentric with them (16 + 8) (default); `sm` — The same box starting one line tall: a follow-up field under a thread
|
|
1971
2102
|
- **appearance** (model_picker): `ghost` (default) — Transparent until hovered: a column header (default); `default` — A raised pill with a ring: a form or toolbar
|
|
1972
2103
|
- **layout** (parameter_panel): `popover` (default) — Inside a 320px popover (ParameterPopover) (default); `panel` — A side panel or sheet: a little more room between groups
|
|
1973
2104
|
- **align** (prompt_suggestions): `start` (default) — Rows the composer's width, their text on its text (default); `center` — Centered under an empty thread's title
|
|
2105
|
+
- **state** (reasoning): `done` (default) — Finished: “Thought for 4.2 s”, closed until opened (default); `live` — Still reasoning: “Thinking” pulses quietly and the latest line shows beside it
|
|
1974
2106
|
- **size** (response_metrics): `sm` (default) — 12/16: a column footer or under a turn (default); `md` — 13/18: a response on its own
|
|
1975
|
-
- **status** (response_view): `pending` — Sent, nothing back yet: an empty line where the text will start, nothing drawn; `streaming` — Arriving: the text grows, earlier lines never re-wrap; Thinking is live; `done` (default) — Complete (default); `stopped` — Stopped by the person: the text so far and “Stopped”; `
|
|
2107
|
+
- **status** (response_view): `pending` — Sent, nothing back yet: an empty line where the text will start, nothing drawn; `streaming` — Arriving: the text grows, earlier lines never re-wrap; Thinking is live; `done` (default) — Complete (default); `stopped` — Stopped by the person: the text so far and “Stopped”; `incomplete` — Cut off by the model: the text so far and why, such as “Stopped at the output limit”; `error` — Failed: the error in place of the response, and Retry
|
|
1976
2108
|
|
|
1977
2109
|
### CompareGrid
|
|
1978
2110
|
|
|
@@ -2020,22 +2152,36 @@ The prompt box: a text box that grows with what is written up to `maxRows`, then
|
|
|
2020
2152
|
|
|
2021
2153
|
### ModelPicker
|
|
2022
2154
|
|
|
2023
|
-
A model
|
|
2155
|
+
A model from a catalogue of any size: a pill showing the chosen model that opens a searchable list, grouped by provider under sticky captions with marks and counts, connected providers first and recent models on top, with a Provider filter that lists only the providers whose models match the search. Each row shows the name, the id, capabilities, context and price; deprecated models wait behind a toggle.
|
|
2024
2156
|
|
|
2025
2157
|
| Prop | Type | Default | Description |
|
|
2026
2158
|
|---|---|---|---|
|
|
2027
|
-
| `options` * | `ModelPickerOption[]` | | The models
|
|
2028
|
-
| `
|
|
2159
|
+
| `options` * | `ModelPickerOption[]` | | The models: value, provider, id, name, capabilities, context window, a formatted price, a short note such as why it is disabled, and whether it is deprecated. |
|
|
2160
|
+
| `allLabel` | `string` | | Single only: a first option for no model in particular, such as "All models"; choosing it reports an empty string. |
|
|
2161
|
+
| `appearance` | `"ghost" \| "default"` | | A quiet button (`ghost`) or a filled one (`default`). |
|
|
2029
2162
|
| `aria-label` | `string` | | The picker's accessible name ("Model" by default). |
|
|
2030
2163
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2031
2164
|
| `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
|
|
2032
|
-
| `defaultValue` | `string \| null` | | The chosen model on first render. |
|
|
2165
|
+
| `defaultValue` | `string \| string[] \| null` | | The chosen model, or models with `multiple`, on first render. |
|
|
2166
|
+
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
2033
2167
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
2168
|
+
| `error` | `ReactNode` | | Deprecated. Errors are toasts, never text under a field: `error` marks the control invalid and stays its description for screen readers, but isn't drawn. Pass `invalid` and toast the message. |
|
|
2169
|
+
| `fullWidth` | `boolean` | | Fills the container. |
|
|
2034
2170
|
| `groupByProvider` | `boolean` | | Groups the list by provider (true by default when there are several). |
|
|
2035
|
-
| `
|
|
2171
|
+
| `invalid` | `boolean` | | Shows it as invalid; pair it with a message that says what to fix. |
|
|
2172
|
+
| `label` | `ReactNode` | | The visible label. |
|
|
2173
|
+
| `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
|
|
2174
|
+
| `multiple` | `boolean` | | Allows choosing several models; `value` is then a list. |
|
|
2175
|
+
| `onOpenChange` | `((open: boolean) => void)` | | Called when the list opens or closes. |
|
|
2176
|
+
| `onValueChange` | `((value: string) => void) \| ((value: string[]) => void)` | | Called with the chosen model, or the list of models with `multiple`. |
|
|
2177
|
+
| `open` | `boolean` | | Whether the list is open, when you control it. |
|
|
2178
|
+
| `optional` | `boolean` | | Adds “Optional” to the label, for forms where most fields are required. |
|
|
2036
2179
|
| `placeholder` | `string` | | Text shown while there is no value. |
|
|
2037
|
-
| `
|
|
2038
|
-
| `
|
|
2180
|
+
| `providers` | `ModelPickerProvider[]` | | The providers' names and whether each is connected; connected providers come first. |
|
|
2181
|
+
| `recent` | `readonly string[]` | | Values of recently used models, shown first while the search is empty. |
|
|
2182
|
+
| `required` | `boolean` | | Marks it as required in a form. |
|
|
2183
|
+
| `size` | `"md" \| "sm"` | | The button's height. |
|
|
2184
|
+
| `value` | `string \| string[] \| null` | | The chosen model, or models with `multiple`, when you control it. |
|
|
2039
2185
|
|
|
2040
2186
|
### ParameterPanel
|
|
2041
2187
|
|
|
@@ -2088,14 +2234,31 @@ Example prompts before a thread starts: up to three lines of plain secondary tex
|
|
|
2088
2234
|
| `aria-label` | `string` | | The list's accessible name. Defaults to "Example prompts" in the provider's language. |
|
|
2089
2235
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2090
2236
|
|
|
2237
|
+
### Reasoning
|
|
2238
|
+
|
|
2239
|
+
A model's reasoning behind a quiet disclosure, closed by default: “Thought for 4.2 s” when it is done, “Thinking” with the latest line beside it while it streams. Opened, the reasoning reads in small secondary text beside a line. The Playground and the request log show reasoning with it.
|
|
2240
|
+
|
|
2241
|
+
| Prop | Type | Default | Description |
|
|
2242
|
+
|---|---|---|---|
|
|
2243
|
+
| `children` | `ReactNode` | | What the open disclosure shows in place of `text`, such as why the reasoning can't be shown. |
|
|
2244
|
+
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2245
|
+
| `defaultOpen` | `boolean` | | Whether it starts open. |
|
|
2246
|
+
| `duration` | `number` | | How long the model reasoned, in milliseconds: “Thought for 4.2 s”. |
|
|
2247
|
+
| `hint` | `ReactNode` | | A short note beside the title, such as “Redacted by the provider”; while `live`, the latest line of the reasoning shows there instead. |
|
|
2248
|
+
| `live` | `boolean` | `false` | The reasoning is still arriving: “Thinking” pulses quietly and its latest line shows beside it. |
|
|
2249
|
+
| `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
|
|
2250
|
+
| `open` | `boolean` | | Whether it is open, when you control it. |
|
|
2251
|
+
| `text` | `string` | | The reasoning, as Markdown. |
|
|
2252
|
+
| `title` | `ReactNode` | | The title in place of “Thinking” or “Thought for …”, such as “Reasoning” in a request log. |
|
|
2253
|
+
|
|
2091
2254
|
### ResponseMetrics
|
|
2092
2255
|
|
|
2093
|
-
A response's numbers on one line: time to first token, total time, tokens in
|
|
2256
|
+
A response's numbers on one line: time to first token, total time, tokens ("412 in · 168 out", and reasoning), cost to the millionth of a dollar, as request logs show it. Tabular figures, labels in tertiary text. While `live`, values not known yet show "—" in the room they will take; before any response the line is empty, its height kept.
|
|
2094
2257
|
|
|
2095
2258
|
| Prop | Type | Default | Description |
|
|
2096
2259
|
|---|---|---|---|
|
|
2097
2260
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2098
|
-
| `cost` | `string \| null` | | USD as a decimal string: "0.004213". |
|
|
2261
|
+
| `cost` | `string \| null` | | USD as a decimal string: "0.004213" reads "$0.004213", and zero reads "$0". |
|
|
2099
2262
|
| `duration` | `number \| null` | | Milliseconds from sending to the last token. |
|
|
2100
2263
|
| `inputTokens` | `number \| null` | | The tokens sent, once known. |
|
|
2101
2264
|
| `live` | `boolean` | `false` | A response is arriving: values not known yet show a quiet "—" in the room they will take. |
|
|
@@ -2108,20 +2271,22 @@ A response's numbers on one line: time to first token, total time, tokens in →
|
|
|
2108
2271
|
|
|
2109
2272
|
### ResponseView
|
|
2110
2273
|
|
|
2111
|
-
A model's response as it arrives: Markdown text for reading (15/22), the reasoning summary in a "Thinking" disclosure (closed by default, live while it streams), and calm states for a stop
|
|
2274
|
+
A model's response as it arrives: Markdown text for reading (15/22), the reasoning summary in a "Thinking" disclosure (closed by default, live while it streams), and calm states for a stop, a cut-off reply or a failure, which shows its error in place.
|
|
2112
2275
|
|
|
2113
2276
|
| Prop | Type | Default | Description |
|
|
2114
2277
|
|---|---|---|---|
|
|
2115
2278
|
| `aria-label` | `string` | | The response's accessible name ("GPT-5 response" in a comparison). Defaults to "Response" in the provider's language. |
|
|
2116
2279
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2117
2280
|
| `defaultReasoningOpen` | `boolean` | | Whether the reasoning starts expanded. |
|
|
2281
|
+
| `error` | `string` | | Why the reply failed, shown under "No response" with status "error": the gateway's message in the reader's language; `code` spans render as code. |
|
|
2118
2282
|
| `footer` | `ReactNode` | | Under the response: its metrics, actions. |
|
|
2283
|
+
| `incompleteReason` | `string` | | Why the model cut the reply off, with status "incomplete": `max_output_tokens` reads "Stopped at the output limit", `content_filter` names the filter. |
|
|
2119
2284
|
| `onReasoningOpenChange` | `((open: boolean) => void)` | | Called when the reasoning is expanded or collapsed. |
|
|
2120
|
-
| `onRetry` | `(() => void)` | | Sends the turn again; shown with an error or a
|
|
2285
|
+
| `onRetry` | `(() => void)` | | Sends the turn again; shown with an error, a stop or a cut-off reply. |
|
|
2121
2286
|
| `reasoning` | `string` | | The reasoning summary so far, as Markdown. A "Thinking" disclosure shows it, closed by default. |
|
|
2122
2287
|
| `reasoningDuration` | `number` | | How long the model reasoned, in milliseconds: "Thought for 4.2 s". |
|
|
2123
2288
|
| `reasoningOpen` | `boolean` | | Whether the reasoning is expanded, when you control it. |
|
|
2124
|
-
| `status` | `"done" \| "error" \| "streaming" \| "pending" \| "stopped"` | `done` | Where the reply stands: waiting, streaming, done, stopped or failed. |
|
|
2289
|
+
| `status` | `"done" \| "error" \| "streaming" \| "pending" \| "stopped" \| "incomplete"` | `done` | Where the reply stands: waiting, streaming, done, stopped, cut off by the model (incomplete) or failed. |
|
|
2125
2290
|
| `text` | `string` | | The output text so far, as Markdown. |
|
|
2126
2291
|
|
|
2127
2292
|
### Thread
|
|
@@ -2260,6 +2425,26 @@ Choices with descriptions as rows in a settings group.
|
|
|
2260
2425
|
| `orientation` | `"horizontal" \| "vertical"` | `vertical` | Lays the items out in a row (`horizontal`) or a column (`vertical`). |
|
|
2261
2426
|
| `value` | `string` | | The chosen option, when you control it. |
|
|
2262
2427
|
|
|
2428
|
+
## release-art
|
|
2429
|
+
|
|
2430
|
+
`import { ReleaseArt } from "@logicplanes/kaeso-ui/release-art";`
|
|
2431
|
+
|
|
2432
|
+
- **shape** (release_art): `banner` (default) — 16:9: the head of a dialog or a card (default); `wide` — 21:9: a wide strip above a page's content
|
|
2433
|
+
|
|
2434
|
+
### ReleaseArt
|
|
2435
|
+
|
|
2436
|
+
A release's artwork: flat geometric art in one of eight styles and Kaeso's palettes, drawn from a stored art spec or a seed, with an optional title floating on it.
|
|
2437
|
+
|
|
2438
|
+
| Prop | Type | Default | Description |
|
|
2439
|
+
|---|---|---|---|
|
|
2440
|
+
| `label` * | `string` | | What the picture shows, read by screen readers: "Kaeso 0.1.0". |
|
|
2441
|
+
| `seed` * | `string` | | What the artwork is drawn from when there is no `art`, e.g. `0.1.0`; the same seed always draws the same picture. |
|
|
2442
|
+
| `art` | `ReleaseArtSpec` | | The release's stored artwork, e.g. from `nextReleaseArt`; it always draws the same picture and wins over `seed`. |
|
|
2443
|
+
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2444
|
+
| `eyebrow` | `ReactNode` | | Small text above the title, e.g. “What's new in Kaeso”. |
|
|
2445
|
+
| `shape` | `"banner" \| "wide"` | `banner` | The artwork's aspect ratio. |
|
|
2446
|
+
| `title` | `ReactNode` | | Large text on the artwork, e.g. the version number. |
|
|
2447
|
+
|
|
2263
2448
|
## resource-list
|
|
2264
2449
|
|
|
2265
2450
|
`import { ResourceList } from "@logicplanes/kaeso-ui/blocks/resource-list";`
|
|
@@ -2384,7 +2569,7 @@ A pill that opens a list on the menu surface: check on the selected item, groups
|
|
|
2384
2569
|
| `defaultValue` | `string \| string[] \| null` | | The value on first render, when the component keeps its own value. |
|
|
2385
2570
|
| `description` | `ReactNode` | | One sentence of help under the label. |
|
|
2386
2571
|
| `disabled` | `boolean` | | Turns it off: it can't be used, and it looks dimmed. |
|
|
2387
|
-
| `error` | `ReactNode` | |
|
|
2572
|
+
| `error` | `ReactNode` | | The error message, shown under the control in the danger color; it marks the control invalid and is read out with its description. |
|
|
2388
2573
|
| `fullWidth` | `boolean` | | Width of the trigger follows its content (default) or fills the container. |
|
|
2389
2574
|
| `icon` | `IconSvgElement` | | Leading icon in the trigger. |
|
|
2390
2575
|
| `id` | `string` | | The id of the control, so a label elsewhere can point to it. |
|
|
@@ -2474,7 +2659,7 @@ A settings section: a title-sm heading 48px above, 12px below; usually one Setti
|
|
|
2474
2659
|
|
|
2475
2660
|
### Sheet
|
|
2476
2661
|
|
|
2477
|
-
A panel that slides in from the edge of the screen, for details and longer forms.
|
|
2662
|
+
A panel that slides in from the edge of the screen, for details and longer forms. While it slides out it keeps showing what it showed when it was open, so a page can let go of the row as soon as it closes.
|
|
2478
2663
|
|
|
2479
2664
|
| Prop | Type | Default | Description |
|
|
2480
2665
|
|---|---|---|---|
|
|
@@ -2620,6 +2805,7 @@ One metric of a dashboard row: its label, the number, the change against the pre
|
|
|
2620
2805
|
| `change` | `{ value: number; better?: "up" \| "down"; }` | | The change against the previous period, as a fraction (0.12 is +12%). `better` says which direction is good: errors are better down. |
|
|
2621
2806
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2622
2807
|
| `detail` | `ReactNode` | | A quiet line under the number: "vs. the previous 30 days", "0.4% of requests". |
|
|
2808
|
+
| `loading` | `boolean` | | While the numbers load: the value, the change and the trend show their shape at the tile's final height. |
|
|
2623
2809
|
| `trend` | `number[]` | | One value per day (or step), drawn as a sparkline across the tile. A tile without it has no room for one; pass `[]` while a trend loads to keep it. |
|
|
2624
2810
|
| `trendColor` | `string` | | The trend's color; the first series color by default. |
|
|
2625
2811
|
|
|
@@ -2637,6 +2823,7 @@ The same component under its plain name.
|
|
|
2637
2823
|
|---|---|---|---|
|
|
2638
2824
|
| `children` | `ReactNode` | | The word that carries the meaning. |
|
|
2639
2825
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2826
|
+
| `icon` | `IconSvgElement` | | A mark before the word in the same color, e.g. `icons.success` for “Up to date”. |
|
|
2640
2827
|
| `size` | `"md" \| "sm"` | `md` | The text size. |
|
|
2641
2828
|
| `tone` | `"neutral" \| "success" \| "warning" \| "danger" \| "info"` | `neutral` | The status it marks. |
|
|
2642
2829
|
|
|
@@ -2648,6 +2835,7 @@ A status word: "Active", "Expiring", "Down".
|
|
|
2648
2835
|
|---|---|---|---|
|
|
2649
2836
|
| `children` | `ReactNode` | | The word that carries the meaning. |
|
|
2650
2837
|
| `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
|
|
2838
|
+
| `icon` | `IconSvgElement` | | A mark before the word in the same color, e.g. `icons.success` for “Up to date”. |
|
|
2651
2839
|
| `size` | `"md" \| "sm"` | `md` | The dot's size. |
|
|
2652
2840
|
| `tone` | `"neutral" \| "success" \| "warning" \| "danger" \| "info"` | `neutral` | The status the dot marks; keep it next to words that say the same. |
|
|
2653
2841
|
|