@logicplanes/kaeso-ui 0.4.2 → 0.4.4
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/NOTICE.md +1 -1
- package/ai/component-guides.md +312 -21
- package/ai/component-registry.json +616 -25
- package/ai/component-registry.md +154 -26
- package/ai/icons.md +4 -4
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +15 -14
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +2 -2
- package/dist/blocks/resource-list.js +41 -40
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
- package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
- package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
- package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
- package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
- package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
- package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
- package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
- package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
- package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
- package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
- package/dist/chunks/{code-block-U5fCqwgC.js → code-block-BZIe_B9l.js} +41 -37
- package/dist/chunks/code-block-BZIe_B9l.js.map +1 -0
- package/dist/chunks/code-block-DdNPHEzI.js +344 -0
- package/dist/chunks/code-block-DdNPHEzI.js.map +1 -0
- package/dist/chunks/combobox-DjDI7SUC.js +319 -0
- package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
- package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
- package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
- package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
- package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
- package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
- package/dist/chunks/core-BYns5ytV.js.map +1 -0
- package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
- package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
- package/dist/chunks/{de-BnNQtBSV.js → de-D_0mmG-k.js} +10 -1
- package/dist/chunks/de-D_0mmG-k.js.map +1 -0
- package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
- package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
- package/dist/chunks/icon-CPJWE2N-.js +95 -0
- package/dist/chunks/icon-CPJWE2N-.js.map +1 -0
- package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
- package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
- package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
- package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
- package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
- package/dist/chunks/input-2VJuj_M4.js.map +1 -0
- package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
- package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
- package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
- package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
- package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
- package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
- package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
- package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
- package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
- package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
- package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
- package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
- package/dist/chunks/{markdown-BEgwZFlu.js → markdown-BupwFOae.js} +5 -5
- package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-BupwFOae.js.map} +1 -1
- package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
- package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
- package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
- package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
- package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
- package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
- package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
- package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
- package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
- package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
- package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
- package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
- package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
- package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
- package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
- package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
- package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
- package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
- package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
- package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
- package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
- package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
- package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
- package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
- package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
- package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
- package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
- package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
- package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
- package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
- package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
- package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
- package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
- package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
- package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
- package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
- package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
- package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
- package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
- package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
- package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
- package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-Bm6UPIbW.js} +10 -1
- package/dist/chunks/zh-CN-Bm6UPIbW.js.map +1 -0
- package/dist/components/agent-avatar.js +2 -0
- package/dist/components/app-frame.js +2 -2
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +1 -1
- package/dist/components/charts/donut.js +1 -1
- package/dist/components/charts/gauge.js +1 -1
- package/dist/components/charts/sankey.js +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +3 -2
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +85 -81
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +191 -187
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +6 -4
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +125 -91
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +49 -46
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/filter-chip.js +3 -3
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +49 -49
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +3 -3
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +3 -3
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +8 -8
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +263 -95
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/key-value.js +2 -2
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +27 -26
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +12 -11
- package/dist/components/popover.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/settings.js +8 -8
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +2 -2
- package/dist/components/sidebar.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tabs.js +22 -22
- 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-menu.js +33 -30
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/thumbnail.js +41 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/toast.js +96 -87
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +90 -88
- package/dist/kaeso.css +3 -0
- package/dist/styles.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
- package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
- package/dist/types/component-docs.d.ts +1 -1
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
- package/dist/types/components/agent-avatar/docs.d.ts +19 -0
- package/dist/types/components/agent-avatar/index.d.ts +3 -0
- package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
- package/dist/types/components/agent-avatar/models.d.ts +4 -0
- package/dist/types/components/app-frame/app-frame.d.ts +3 -8
- package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
- package/dist/types/components/calendar/calendar.d.ts +1 -4
- package/dist/types/components/charts/core.d.ts +11 -18
- package/dist/types/components/checkbox/checkbox.d.ts +2 -0
- package/dist/types/components/code-block/diff-view.d.ts +30 -0
- package/dist/types/components/code-block/diff.d.ts +26 -0
- package/dist/types/components/code-block/docs.d.ts +14 -0
- package/dist/types/components/code-block/index.d.ts +1 -0
- package/dist/types/components/combobox/combobox.d.ts +26 -2
- package/dist/types/components/command-list/picker-popover.d.ts +1 -4
- package/dist/types/components/command-palette/command-palette.d.ts +1 -4
- package/dist/types/components/data-table/data-table.d.ts +2 -1
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +7 -9
- package/dist/types/components/dialog/docs.d.ts +2 -0
- package/dist/types/components/dialog/scope.d.ts +2 -0
- package/dist/types/components/dialog/step-dialog.d.ts +38 -5
- package/dist/types/components/display-options/display-options.d.ts +2 -5
- package/dist/types/components/input/input.d.ts +23 -0
- package/dist/types/components/kaeso/client-button.d.ts +17 -0
- package/dist/types/components/kaeso/docs.d.ts +18 -0
- package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
- package/dist/types/components/kaeso/identity.d.ts +2 -0
- package/dist/types/components/kaeso/index.d.ts +2 -0
- package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
- package/dist/types/components/kaeso/usage.d.ts +2 -0
- package/dist/types/components/list/list.d.ts +4 -8
- package/dist/types/components/menu/docs.d.ts +8 -1
- package/dist/types/components/menu/menu.d.ts +19 -31
- package/dist/types/components/playground/parameter-panel.d.ts +1 -4
- package/dist/types/components/popover/hover-card.d.ts +2 -0
- package/dist/types/components/radio/docs.d.ts +15 -0
- package/dist/types/components/radio/radio.d.ts +2 -4
- package/dist/types/components/settings/settings.d.ts +2 -0
- package/dist/types/components/sidebar/sidebar.d.ts +13 -35
- package/dist/types/components/tabs/tabs.d.ts +15 -0
- package/dist/types/components/theme-menu/docs.d.ts +2 -0
- package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
- package/dist/types/components/thumbnail/docs.d.ts +10 -0
- package/dist/types/components/thumbnail/index.d.ts +1 -0
- package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
- package/dist/types/components/toast/toast.d.ts +5 -12
- package/dist/types/components/toolbar/toolbar.d.ts +1 -6
- package/dist/types/components/tooltip/tooltip.d.ts +2 -4
- package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
- package/dist/types/format/index.d.ts +5 -5
- package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
- package/dist/types/icons/groups.d.ts +3 -3
- package/dist/types/icons/vocabulary.d.ts +20 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/utils/inset.d.ts +4 -0
- package/dist/types/utils/link-provider.d.ts +1 -1
- package/dist/types/utils/merge-refs.d.ts +3 -0
- package/dist/types/utils/portal-context.d.ts +1 -1
- package/dist/utils.js +3 -3
- package/foundations/shape.md +1 -1
- package/package.json +2 -2
- package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
- package/dist/chunks/calendar--YemJsv4.js.map +0 -1
- package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
- package/dist/chunks/code-block-U5fCqwgC.js.map +0 -1
- package/dist/chunks/combobox-BARyrpXH.js +0 -314
- package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
- package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
- package/dist/chunks/de-BnNQtBSV.js.map +0 -1
- package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
- package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
- package/dist/chunks/icon-CBzvyEqC.js +0 -91
- package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
- package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
- package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
- package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
- package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
- package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
- package/dist/chunks/menu-fl_QQb38.js.map +0 -1
- package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
- package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
- package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
- package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
- package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
- package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
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). 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.
|
|
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. Client marks: the trademarks of the agent clients they name, from Simple Icons (CC0 1.0), 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,85 @@
|
|
|
1
1
|
# @logicplanes/kaeso-ui component guides
|
|
2
2
|
|
|
3
|
-
Version 0.4.
|
|
3
|
+
Version 0.4.4. 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
|
+
|
|
5
|
+
## AgentAttribution
|
|
6
|
+
|
|
7
|
+
A person's avatar with the agent that acted for them as a badge on its corner, for audit rows and activity.
|
|
8
|
+
|
|
9
|
+
`import { AgentAttribution } from "@logicplanes/kaeso-ui";`
|
|
10
|
+
|
|
11
|
+
### Accessibility
|
|
12
|
+
|
|
13
|
+
- One role=img named after both, such as “Ada Okafor via Release helper (Claude)”, in the page's language.
|
|
14
|
+
|
|
15
|
+
### Examples
|
|
16
|
+
|
|
17
|
+
#### Activity
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
<div className="flex flex-col gap-16">
|
|
21
|
+
{activity.map((a) => (
|
|
22
|
+
<div key={a.person} className="flex items-center gap-12">
|
|
23
|
+
<AgentAttribution name={a.person} agent={a.agent} />
|
|
24
|
+
<Text>{a.action}</Text>
|
|
25
|
+
</div>
|
|
26
|
+
))}
|
|
27
|
+
</div>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
#### Sizes
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<div className="flex flex-wrap items-end gap-16">
|
|
34
|
+
{([20, 24, 28, 32, 40] as const).map((s) => (
|
|
35
|
+
<AgentAttribution key={s} name="Ada Okafor" agent={{ name: "Release helper", model: "claude" }} size={s} />
|
|
36
|
+
))}
|
|
37
|
+
</div>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## AgentAvatar
|
|
41
|
+
|
|
42
|
+
An agent acting for a person: one bot face on an ink square, the same for every agent.
|
|
43
|
+
|
|
44
|
+
`import { AgentAvatar, useModelName } from "@logicplanes/kaeso-ui";`
|
|
45
|
+
|
|
46
|
+
### Accessibility
|
|
47
|
+
|
|
48
|
+
- role=img named after the agent; pass decorative when the name is written next to it.
|
|
49
|
+
- Every agent looks the same; write its model family with useModelName where it matters.
|
|
50
|
+
|
|
51
|
+
### Examples
|
|
52
|
+
|
|
53
|
+
#### Agents
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
function Agents() {
|
|
57
|
+
const modelName = useModelName();
|
|
58
|
+
return (
|
|
59
|
+
<div className="flex flex-col gap-12">
|
|
60
|
+
{agents.map((a) => (
|
|
61
|
+
<div key={a.model} className="flex items-center gap-8">
|
|
62
|
+
<AgentAvatar name={a.name} decorative />
|
|
63
|
+
<Text>{a.name}</Text>
|
|
64
|
+
<Text variant="small" tone="secondary">
|
|
65
|
+
{modelName(a.model)}
|
|
66
|
+
</Text>
|
|
67
|
+
</div>
|
|
68
|
+
))}
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### Sizes
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
<div className="flex flex-wrap items-end gap-12">
|
|
78
|
+
{([20, 24, 28, 32, 40] as const).map((s) => (
|
|
79
|
+
<AgentAvatar key={s} name="Release helper" size={s} />
|
|
80
|
+
))}
|
|
81
|
+
</div>
|
|
82
|
+
```
|
|
4
83
|
|
|
5
84
|
## AlertDialog
|
|
6
85
|
|
|
@@ -595,6 +674,28 @@ An 18px box: raised and ringed, ink when checked, with a check that draws itself
|
|
|
595
674
|
</CheckboxGroup>
|
|
596
675
|
```
|
|
597
676
|
|
|
677
|
+
## ClientButton
|
|
678
|
+
|
|
679
|
+
An agent client's mark on a raised tile, such as Claude, Cursor or GitHub Copilot, that opens how to connect it.
|
|
680
|
+
|
|
681
|
+
`import { ClientButton } from "@logicplanes/kaeso-ui";`
|
|
682
|
+
|
|
683
|
+
### Accessibility
|
|
684
|
+
|
|
685
|
+
- A button named by `aria-label`, which is also its tooltip; the mark is decorative.
|
|
686
|
+
|
|
687
|
+
### Examples
|
|
688
|
+
|
|
689
|
+
#### Clients
|
|
690
|
+
|
|
691
|
+
```tsx
|
|
692
|
+
<div className="flex gap-8">
|
|
693
|
+
<ClientButton client="claude" aria-label="Add to Claude Code" />
|
|
694
|
+
<ClientButton client="cursor" aria-label="Add to Cursor" />
|
|
695
|
+
<ClientButton client="github-copilot" aria-label="Add to GitHub Copilot" />
|
|
696
|
+
</div>
|
|
697
|
+
```
|
|
698
|
+
|
|
598
699
|
## ClipboardText
|
|
599
700
|
|
|
600
701
|
Copy a value: a read-only pill field, a copy circle, or inline text that copies itself.
|
|
@@ -622,7 +723,7 @@ A read-only pill with the value in mono and a copy circle inside.
|
|
|
622
723
|
|
|
623
724
|
```tsx
|
|
624
725
|
<div className="w-400">
|
|
625
|
-
<ClipboardText value="https://
|
|
726
|
+
<ClipboardText value="https://kaeso.example.com/v1" label="Copy base URL" />
|
|
626
727
|
</div>
|
|
627
728
|
```
|
|
628
729
|
|
|
@@ -679,7 +780,7 @@ Highlighted code on a well in Kaeso's monochrome theme: copy on hover, tabs, lin
|
|
|
679
780
|
|
|
680
781
|
```tsx
|
|
681
782
|
<div className="w-full">
|
|
682
|
-
<CodeBlock tabs={sdkSnippets({ baseUrl: "https://
|
|
783
|
+
<CodeBlock tabs={sdkSnippets({ baseUrl: "https://kaeso.example.com" })} />
|
|
683
784
|
</div>
|
|
684
785
|
```
|
|
685
786
|
|
|
@@ -1456,7 +1557,7 @@ function WithResult() {
|
|
|
1456
1557
|
title: "Key created",
|
|
1457
1558
|
description: "Copy the key now: it's shown once, and Kaeso keeps only a hash of it.",
|
|
1458
1559
|
size: "lg",
|
|
1459
|
-
content: <SecretReveal secret={SECRET} name={name.trim()} baseUrl="https://
|
|
1560
|
+
content: <SecretReveal secret={SECRET} name={name.trim()} baseUrl="https://kaeso.example.com" model="gpt-5-mini" />,
|
|
1460
1561
|
footer: <Button onClick={close}>Done</Button>,
|
|
1461
1562
|
}
|
|
1462
1563
|
: undefined
|
|
@@ -1585,6 +1686,35 @@ function CreateKey() {
|
|
|
1585
1686
|
}
|
|
1586
1687
|
```
|
|
1587
1688
|
|
|
1689
|
+
## DiffView
|
|
1690
|
+
|
|
1691
|
+
Two versions in one column: removed lines on red, added on green, changed words marked, unchanged runs folded.
|
|
1692
|
+
|
|
1693
|
+
`import { DiffView } from "@logicplanes/kaeso-ui";`
|
|
1694
|
+
|
|
1695
|
+
### Accessibility
|
|
1696
|
+
|
|
1697
|
+
- Each changed line starts with “Added” or “Removed” for screen readers; the + and − marks and the colour are only for sight.
|
|
1698
|
+
- The title bar says how many lines were added and removed, and each folded run is a button that names how many lines it shows.
|
|
1699
|
+
|
|
1700
|
+
### Examples
|
|
1701
|
+
|
|
1702
|
+
#### An audit event
|
|
1703
|
+
|
|
1704
|
+
```tsx
|
|
1705
|
+
<div className="w-560 max-w-full">
|
|
1706
|
+
<DiffView title="Before → after" lang="json" before={json(credential)} after={json(moved)} wrap />
|
|
1707
|
+
</div>
|
|
1708
|
+
```
|
|
1709
|
+
|
|
1710
|
+
#### With line numbers
|
|
1711
|
+
|
|
1712
|
+
```tsx
|
|
1713
|
+
<div className="w-560 max-w-full">
|
|
1714
|
+
<DiffView title="limit.json" lang="json" before={json(limit)} after={json(raised)} lineNumbers />
|
|
1715
|
+
</div>
|
|
1716
|
+
```
|
|
1717
|
+
|
|
1588
1718
|
## DisplayOptions
|
|
1589
1719
|
|
|
1590
1720
|
View, grouping and ordering, toggles, and the properties to show, behind one circle at the end of a toolbar.
|
|
@@ -1924,6 +2054,29 @@ A semicircle for “budget used”; thresholds as ticks.
|
|
|
1924
2054
|
<Gauge aria-label="Monthly budget used" value={0.64} label="of $500.00 budget" valueLabel="$320.00" />
|
|
1925
2055
|
```
|
|
1926
2056
|
|
|
2057
|
+
## GrantSummary
|
|
2058
|
+
|
|
2059
|
+
What an agent may do in a few short lines, each after a check mark, as on its consent page.
|
|
2060
|
+
|
|
2061
|
+
`import { GrantSummary } from "@logicplanes/kaeso-ui";`
|
|
2062
|
+
|
|
2063
|
+
### Accessibility
|
|
2064
|
+
|
|
2065
|
+
- A list named by `aria-label`; the check marks are decorative.
|
|
2066
|
+
|
|
2067
|
+
### Examples
|
|
2068
|
+
|
|
2069
|
+
#### An agent's rights
|
|
2070
|
+
|
|
2071
|
+
```tsx
|
|
2072
|
+
<GrantSummary
|
|
2073
|
+
className="w-360"
|
|
2074
|
+
aria-label="What it can do"
|
|
2075
|
+
items={["Manages projects, keys, and models in Northwind", "Reads the rest of Northwind", "Also in organizations you join later"]}
|
|
2076
|
+
footer="For 90 days; revoke it any time in your account settings."
|
|
2077
|
+
/>
|
|
2078
|
+
```
|
|
2079
|
+
|
|
1927
2080
|
## Grid
|
|
1928
2081
|
|
|
1929
2082
|
Grid, Stack and Inline: layout with gaps from the spacing scale only.
|
|
@@ -2139,7 +2292,7 @@ An invalid value gets the danger ring; what is wrong goes in a toast.
|
|
|
2139
2292
|
```tsx
|
|
2140
2293
|
<div className="flex w-360 flex-col gap-12">
|
|
2141
2294
|
<Input aria-label="Email" leadingIcon={icons.mail} placeholder="ada@northwind.example" />
|
|
2142
|
-
<Input aria-label="Gateway URL" prefix="https://" placeholder="
|
|
2295
|
+
<Input aria-label="Gateway URL" prefix="https://" placeholder="kaeso.example.com" />
|
|
2143
2296
|
<Input aria-label="Rate limit" suffix="/ min" defaultValue="600" align="end" />
|
|
2144
2297
|
</div>
|
|
2145
2298
|
```
|
|
@@ -2171,7 +2324,7 @@ Addons inside the pill: text, icons, a ghost circle or a key cap, sharing one fo
|
|
|
2171
2324
|
<div className="flex w-400 flex-col gap-12">
|
|
2172
2325
|
<InputGroup>
|
|
2173
2326
|
<InputGroup.Addon>https://</InputGroup.Addon>
|
|
2174
|
-
<InputGroup.Input aria-label="Host" placeholder="
|
|
2327
|
+
<InputGroup.Input aria-label="Host" placeholder="kaeso.example.com" />
|
|
2175
2328
|
<InputGroup.Addon>/v1</InputGroup.Addon>
|
|
2176
2329
|
</InputGroup>
|
|
2177
2330
|
<InputGroup trailingButton>
|
|
@@ -2415,11 +2568,13 @@ function Wizard() {
|
|
|
2415
2568
|
const [view, setView] = useState<"pick" | "review" | "custom">("pick");
|
|
2416
2569
|
const [model, setModel] = useState("");
|
|
2417
2570
|
const [custom, setCustom] = useState("");
|
|
2571
|
+
const [query, setQuery] = useState("");
|
|
2418
2572
|
const m = models.find((x) => x.model === model);
|
|
2419
2573
|
const start = () => {
|
|
2420
2574
|
setView("pick");
|
|
2421
2575
|
setModel("");
|
|
2422
2576
|
setCustom("");
|
|
2577
|
+
setQuery("");
|
|
2423
2578
|
setOpen(true);
|
|
2424
2579
|
};
|
|
2425
2580
|
const close = () => setOpen(false);
|
|
@@ -2431,29 +2586,31 @@ function Wizard() {
|
|
|
2431
2586
|
const pick = {
|
|
2432
2587
|
title: "Add model",
|
|
2433
2588
|
description: "Pick a model from the models.dev catalogue.",
|
|
2589
|
+
toolbar: <SearchInput aria-label="Search models" placeholder="Search" value={query} onChange={(e) => setQuery(e.target.value)} data-autofocus />,
|
|
2434
2590
|
content: (
|
|
2435
2591
|
<div className="flex flex-col gap-12">
|
|
2436
2592
|
<List
|
|
2437
2593
|
aria-label="Models on models.dev"
|
|
2438
2594
|
density="compact"
|
|
2439
|
-
items={models
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2595
|
+
items={models
|
|
2596
|
+
.filter((x) => x.model.includes(query.trim().toLowerCase()))
|
|
2597
|
+
.map((x) => ({
|
|
2598
|
+
id: x.model,
|
|
2599
|
+
textValue: x.model,
|
|
2600
|
+
title: <ModelLabel provider={x.provider} providerName={providerNames[x.provider]} model={x.model} name={x.name} />,
|
|
2601
|
+
}))}
|
|
2444
2602
|
onOpen={(item) => {
|
|
2445
2603
|
setModel(item.id);
|
|
2446
2604
|
setView("review");
|
|
2447
2605
|
}}
|
|
2448
2606
|
/>
|
|
2449
|
-
<Text variant="small" tone="secondary">
|
|
2450
|
-
Not on models.dev?{" "}
|
|
2451
|
-
<Button variant="link" size="sm" onClick={() => setView("custom")}>
|
|
2452
|
-
Add a custom model
|
|
2453
|
-
</Button>
|
|
2454
|
-
</Text>
|
|
2455
2607
|
</div>
|
|
2456
2608
|
),
|
|
2609
|
+
footerStart: (
|
|
2610
|
+
<Button variant="ghost" leadingIcon={icons.add} onClick={() => setView("custom")}>
|
|
2611
|
+
Add a custom model
|
|
2612
|
+
</Button>
|
|
2613
|
+
),
|
|
2457
2614
|
};
|
|
2458
2615
|
const second = {
|
|
2459
2616
|
review: {
|
|
@@ -3409,9 +3566,23 @@ Choosing a provider from any number of them: connected ones first with their key
|
|
|
3409
3566
|
### Accessibility
|
|
3410
3567
|
|
|
3411
3568
|
- A search field over a listbox, with Connected and Other providers as groups; each option reads the provider's name and hint.
|
|
3569
|
+
- As tiles, a radio group: arrow keys move the choice, and a press or click on a tile calls onChoose, so a dialog step can continue at once.
|
|
3412
3570
|
|
|
3413
3571
|
### Examples
|
|
3414
3572
|
|
|
3573
|
+
#### Tiles in a dialog's first step
|
|
3574
|
+
|
|
3575
|
+
```tsx
|
|
3576
|
+
function Grid() {
|
|
3577
|
+
const [provider, setProvider] = useState<string | null>(null);
|
|
3578
|
+
return (
|
|
3579
|
+
<div className="w-512 max-w-full">
|
|
3580
|
+
<ProviderPicker appearance="grid" aria-label="Provider" providers={providers} value={provider} onValueChange={setProvider} />
|
|
3581
|
+
</div>
|
|
3582
|
+
);
|
|
3583
|
+
}
|
|
3584
|
+
```
|
|
3585
|
+
|
|
3415
3586
|
#### In a dialog step
|
|
3416
3587
|
|
|
3417
3588
|
```tsx
|
|
@@ -3924,7 +4095,7 @@ The one-time secret: calm, centered, certain. Copy it, store it, see how to use
|
|
|
3924
4095
|
|
|
3925
4096
|
```tsx
|
|
3926
4097
|
<div className="w-560">
|
|
3927
|
-
<SecretReveal secret={SECRET} name="checkout-web" baseUrl="https://
|
|
4098
|
+
<SecretReveal secret={SECRET} name="checkout-web" baseUrl="https://kaeso.example.com" model="gpt-5-mini" />
|
|
3928
4099
|
</div>
|
|
3929
4100
|
```
|
|
3930
4101
|
|
|
@@ -3932,7 +4103,7 @@ The one-time secret: calm, centered, certain. Copy it, store it, see how to use
|
|
|
3932
4103
|
|
|
3933
4104
|
```tsx
|
|
3934
4105
|
<div className="w-640">
|
|
3935
|
-
<EnvironmentSnippet baseUrl="https://
|
|
4106
|
+
<EnvironmentSnippet baseUrl="https://kaeso.example.com" />
|
|
3936
4107
|
</div>
|
|
3937
4108
|
```
|
|
3938
4109
|
|
|
@@ -3943,12 +4114,12 @@ The one-time secret: calm, centered, certain. Copy it, store it, see how to use
|
|
|
3943
4114
|
<SecretReveal
|
|
3944
4115
|
secret={SECRET}
|
|
3945
4116
|
name="terraform"
|
|
3946
|
-
baseUrl="https://
|
|
4117
|
+
baseUrl="https://kaeso.example.com"
|
|
3947
4118
|
snippets={[
|
|
3948
4119
|
{
|
|
3949
4120
|
label: "curl",
|
|
3950
4121
|
lang: "bash",
|
|
3951
|
-
code: `curl https://
|
|
4122
|
+
code: `curl https://kaeso.example.com/platform/v1/orgs/org_01/projects \\\n -H "Authorization: Bearer ${SECRET}"`,
|
|
3952
4123
|
},
|
|
3953
4124
|
]}
|
|
3954
4125
|
/>
|
|
@@ -4545,6 +4716,59 @@ An 8px semantic dot with its word. Status is never color alone.
|
|
|
4545
4716
|
</div>
|
|
4546
4717
|
```
|
|
4547
4718
|
|
|
4719
|
+
## SwapText
|
|
4720
|
+
|
|
4721
|
+
Text that changes with state in a place sized for its widest version, so nothing around it moves.
|
|
4722
|
+
|
|
4723
|
+
`import { SwapText } from "@logicplanes/kaeso-ui";`
|
|
4724
|
+
|
|
4725
|
+
### Accessibility
|
|
4726
|
+
|
|
4727
|
+
- Only the current text is read; the reserved versions are hidden from screen readers.
|
|
4728
|
+
- Buttons take reserveLabels, which wraps their label in SwapText; reach for SwapText itself for text outside a button.
|
|
4729
|
+
|
|
4730
|
+
### Examples
|
|
4731
|
+
|
|
4732
|
+
#### Basic
|
|
4733
|
+
|
|
4734
|
+
```tsx
|
|
4735
|
+
function Basic() {
|
|
4736
|
+
const [active, setActive] = useState(true);
|
|
4737
|
+
return (
|
|
4738
|
+
<div className="flex items-center gap-12 text-body">
|
|
4739
|
+
<Switch size="sm" aria-label="Key active" checked={active} onCheckedChange={setActive} />
|
|
4740
|
+
<span className="font-medium text-fg">
|
|
4741
|
+
<SwapText reserve={["Active", "Paused"]} align="start">
|
|
4742
|
+
{active ? "Active" : "Paused"}
|
|
4743
|
+
</SwapText>
|
|
4744
|
+
</span>
|
|
4745
|
+
<span className="text-fg-secondary">production</span>
|
|
4746
|
+
</div>
|
|
4747
|
+
);
|
|
4748
|
+
}
|
|
4749
|
+
```
|
|
4750
|
+
|
|
4751
|
+
#### Aligned at the start
|
|
4752
|
+
|
|
4753
|
+
In a column, start-aligned labels keep the text after them on one line.
|
|
4754
|
+
|
|
4755
|
+
```tsx
|
|
4756
|
+
<div className="flex flex-col gap-8 text-body">
|
|
4757
|
+
{[
|
|
4758
|
+
{ status: "Streaming", model: "gpt-5-mini" },
|
|
4759
|
+
{ status: "Done", model: "claude-sonnet-4-5" },
|
|
4760
|
+
{ status: "Failed", model: "gpt-4.1-nano" },
|
|
4761
|
+
].map((row) => (
|
|
4762
|
+
<div key={row.model} className="flex items-center gap-12">
|
|
4763
|
+
<SwapText reserve={STATUSES} align="start" className="font-medium text-fg">
|
|
4764
|
+
{row.status}
|
|
4765
|
+
</SwapText>
|
|
4766
|
+
<span className="mono text-fg-secondary">{row.model}</span>
|
|
4767
|
+
</div>
|
|
4768
|
+
))}
|
|
4769
|
+
</div>
|
|
4770
|
+
```
|
|
4771
|
+
|
|
4548
4772
|
## Switch
|
|
4549
4773
|
|
|
4550
4774
|
A pill track and a round thumb that travels in 180ms.
|
|
@@ -4962,6 +5186,44 @@ An image drawn twice, once for each theme, such as a diagram: it follows the the
|
|
|
4962
5186
|
<ThemeImage light="/demos/route.light.svg" dark="/demos/route.dark.svg" alt="Route of a request: app, Kaeso, provider" width={364} height={49} />
|
|
4963
5187
|
```
|
|
4964
5188
|
|
|
5189
|
+
## ThemeMenu
|
|
5190
|
+
|
|
5191
|
+
A circle that opens system, light or dark, stored as `kaeso:theme`; its icon shows the theme in use.
|
|
5192
|
+
|
|
5193
|
+
`import { ThemeMenu } from "@logicplanes/kaeso-ui";`
|
|
5194
|
+
|
|
5195
|
+
### Keyboard
|
|
5196
|
+
|
|
5197
|
+
| Key | Action |
|
|
5198
|
+
|---|---|
|
|
5199
|
+
| Enter Space | Opens the menu |
|
|
5200
|
+
| Up Down | Moves between the choices |
|
|
5201
|
+
| Enter | Chooses and closes |
|
|
5202
|
+
| Escape | Closes and returns focus |
|
|
5203
|
+
|
|
5204
|
+
### Accessibility
|
|
5205
|
+
|
|
5206
|
+
- Named Theme in the provider's language; the menu marks the current choice as checked.
|
|
5207
|
+
- Reads and sets the choice of the nearest ThemeProvider; every provider on the page follows it.
|
|
5208
|
+
|
|
5209
|
+
### Examples
|
|
5210
|
+
|
|
5211
|
+
#### Basic
|
|
5212
|
+
|
|
5213
|
+
```tsx
|
|
5214
|
+
<ThemeProvider>
|
|
5215
|
+
<ThemeMenu />
|
|
5216
|
+
</ThemeProvider>
|
|
5217
|
+
```
|
|
5218
|
+
|
|
5219
|
+
#### Raised
|
|
5220
|
+
|
|
5221
|
+
```tsx
|
|
5222
|
+
<ThemeProvider>
|
|
5223
|
+
<ThemeMenu variant="secondary" size="md" />
|
|
5224
|
+
</ThemeProvider>
|
|
5225
|
+
```
|
|
5226
|
+
|
|
4965
5227
|
## ThemeSelect
|
|
4966
5228
|
|
|
4967
5229
|
A select for system, light or dark, stored as `kaeso:theme`, with its label in the provider's language.
|
|
@@ -5022,6 +5284,35 @@ A select for system, light or dark, stored as `kaeso:theme`, with its label in t
|
|
|
5022
5284
|
</ThemeProvider>
|
|
5023
5285
|
```
|
|
5024
5286
|
|
|
5287
|
+
## Thumbnail
|
|
5288
|
+
|
|
5289
|
+
A square image someone sent, such as a photo in a request's conversation, cropped to fill a well.
|
|
5290
|
+
|
|
5291
|
+
`import { Thumbnail } from "@logicplanes/kaeso-ui";`
|
|
5292
|
+
|
|
5293
|
+
### Accessibility
|
|
5294
|
+
|
|
5295
|
+
- Alt is required: say what the image shows, or the sender's own description when the request carried one.
|
|
5296
|
+
- When the image can't load, its text alternative takes its place, so nothing is lost.
|
|
5297
|
+
|
|
5298
|
+
### Examples
|
|
5299
|
+
|
|
5300
|
+
#### An image in a message
|
|
5301
|
+
|
|
5302
|
+
```tsx
|
|
5303
|
+
<Thumbnail src="/demos/receipt.svg" alt="A receipt from Northwind Labs" />
|
|
5304
|
+
```
|
|
5305
|
+
|
|
5306
|
+
#### Sizes
|
|
5307
|
+
|
|
5308
|
+
```tsx
|
|
5309
|
+
<div className="flex flex-wrap items-end gap-12">
|
|
5310
|
+
<Thumbnail src="/demos/receipt.svg" alt="A receipt, 64px" size="sm" />
|
|
5311
|
+
<Thumbnail src="/demos/receipt.svg" alt="A receipt, 120px" />
|
|
5312
|
+
<Thumbnail src="/demos/receipt.svg" alt="A receipt, 160px" size="lg" />
|
|
5313
|
+
</div>
|
|
5314
|
+
```
|
|
5315
|
+
|
|
5025
5316
|
## Timeline
|
|
5026
5317
|
|
|
5027
5318
|
Events down a 1px line: the audit log.
|