@logicplanes/kaeso-ui 0.1.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 +124 -0
- package/CLAUDE.md +3 -0
- package/LICENSE +21 -0
- package/NOTICE.md +5 -0
- package/README.md +43 -0
- package/ai/component-guides.md +4760 -0
- package/ai/component-registry.json +12626 -0
- package/ai/component-registry.md +2950 -0
- package/ai/icons.md +28 -0
- package/ai/tokens.md +207 -0
- package/dist/blocks/delete-resource.js +35 -0
- package/dist/blocks/delete-resource.js.map +1 -0
- package/dist/blocks/pages.js +70 -0
- package/dist/blocks/pages.js.map +1 -0
- package/dist/blocks/resource-list.js +68 -0
- package/dist/blocks/resource-list.js.map +1 -0
- package/dist/chunks/app-frame-BBIMch8X.js +224 -0
- package/dist/chunks/app-frame-BBIMch8X.js.map +1 -0
- package/dist/chunks/arrow-focus-BcySmwwU.js +11 -0
- package/dist/chunks/arrow-focus-BcySmwwU.js.map +1 -0
- package/dist/chunks/avatar-D2nJNbtC.js +83 -0
- package/dist/chunks/avatar-D2nJNbtC.js.map +1 -0
- package/dist/chunks/badge-Dkyhs0_j.js +26 -0
- package/dist/chunks/badge-Dkyhs0_j.js.map +1 -0
- package/dist/chunks/banner-BiziJuBZ.js +85 -0
- package/dist/chunks/banner-BiziJuBZ.js.map +1 -0
- package/dist/chunks/button-BHKAE6ui.js +164 -0
- package/dist/chunks/button-BHKAE6ui.js.map +1 -0
- package/dist/chunks/calendar-B5SSTE56.js +104 -0
- package/dist/chunks/calendar-B5SSTE56.js.map +1 -0
- package/dist/chunks/checkbox-BgRdbfCE.js +124 -0
- package/dist/chunks/checkbox-BgRdbfCE.js.map +1 -0
- package/dist/chunks/cn-CidVUKMm.js +669 -0
- package/dist/chunks/cn-CidVUKMm.js.map +1 -0
- package/dist/chunks/code-DDyOlIFO.js +23 -0
- package/dist/chunks/code-DDyOlIFO.js.map +1 -0
- package/dist/chunks/code-block-BbK6E4Eo.js +273 -0
- package/dist/chunks/code-block-BbK6E4Eo.js.map +1 -0
- package/dist/chunks/collapsible-Cw_1aem5.js +87 -0
- package/dist/chunks/collapsible-Cw_1aem5.js.map +1 -0
- package/dist/chunks/combobox-D8pQk22r.js +291 -0
- package/dist/chunks/combobox-D8pQk22r.js.map +1 -0
- package/dist/chunks/context-BELWW79w.js +20 -0
- package/dist/chunks/context-BELWW79w.js.map +1 -0
- package/dist/chunks/copy-button-mAzHjYXq.js +109 -0
- package/dist/chunks/copy-button-mAzHjYXq.js.map +1 -0
- package/dist/chunks/core-Bgefcs3z.js +467 -0
- package/dist/chunks/core-Bgefcs3z.js.map +1 -0
- package/dist/chunks/date-popup-Er1oQwtU.js +35 -0
- package/dist/chunks/date-popup-Er1oQwtU.js.map +1 -0
- package/dist/chunks/de-BCg1eRVd.js +384 -0
- package/dist/chunks/de-BCg1eRVd.js.map +1 -0
- package/dist/chunks/dev-CR1p7gCm.js +30 -0
- package/dist/chunks/dev-CR1p7gCm.js.map +1 -0
- package/dist/chunks/dialog-CVqSVk3T.js +283 -0
- package/dist/chunks/dialog-CVqSVk3T.js.map +1 -0
- package/dist/chunks/empty-DIbBpytW.js +38 -0
- package/dist/chunks/empty-DIbBpytW.js.map +1 -0
- package/dist/chunks/field-d8V94bvZ.js +119 -0
- package/dist/chunks/field-d8V94bvZ.js.map +1 -0
- package/dist/chunks/field-press-DwzBFafd.js +10 -0
- package/dist/chunks/field-press-DwzBFafd.js.map +1 -0
- package/dist/chunks/i18n-0RW0IAf3.js +10 -0
- package/dist/chunks/i18n-0RW0IAf3.js.map +1 -0
- package/dist/chunks/icon-Bha63LaN.js +90 -0
- package/dist/chunks/icon-Bha63LaN.js.map +1 -0
- package/dist/chunks/icon-CeNQtobn.js +47 -0
- package/dist/chunks/icon-CeNQtobn.js.map +1 -0
- package/dist/chunks/icon-button-Bw67oKtx.js +50 -0
- package/dist/chunks/icon-button-Bw67oKtx.js.map +1 -0
- package/dist/chunks/identity-DQinp-Ep.js +342 -0
- package/dist/chunks/identity-DQinp-Ep.js.map +1 -0
- package/dist/chunks/input-Biakz6GB.js +114 -0
- package/dist/chunks/input-Biakz6GB.js.map +1 -0
- package/dist/chunks/input-group-DQqEPFj_.js +87 -0
- package/dist/chunks/input-group-DQqEPFj_.js.map +1 -0
- package/dist/chunks/inset-BLMdxX4I.js +18 -0
- package/dist/chunks/inset-BLMdxX4I.js.map +1 -0
- package/dist/chunks/iso-field-CznqNVrH.js +31 -0
- package/dist/chunks/iso-field-CznqNVrH.js.map +1 -0
- package/dist/chunks/json-view-B6KHIWzh.js +174 -0
- package/dist/chunks/json-view-B6KHIWzh.js.map +1 -0
- package/dist/chunks/kbd-CBcBDvqU.js +132 -0
- package/dist/chunks/kbd-CBcBDvqU.js.map +1 -0
- package/dist/chunks/labelled-D5udSPUI.js +16 -0
- package/dist/chunks/labelled-D5udSPUI.js.map +1 -0
- package/dist/chunks/link-provider---9JdxTg.js +27 -0
- package/dist/chunks/link-provider---9JdxTg.js.map +1 -0
- package/dist/chunks/link-tTapNTpM.js +47 -0
- package/dist/chunks/link-tTapNTpM.js.map +1 -0
- package/dist/chunks/list-CN8pO8lv.js +475 -0
- package/dist/chunks/list-CN8pO8lv.js.map +1 -0
- package/dist/chunks/loader-CUehxvSZ.js +57 -0
- package/dist/chunks/loader-CUehxvSZ.js.map +1 -0
- package/dist/chunks/logo-VmXYhIJL.js +149 -0
- package/dist/chunks/logo-VmXYhIJL.js.map +1 -0
- package/dist/chunks/markdown-C-iJsYnd.js +313 -0
- package/dist/chunks/markdown-C-iJsYnd.js.map +1 -0
- package/dist/chunks/menu-OURWt_hD.js +447 -0
- package/dist/chunks/menu-OURWt_hD.js.map +1 -0
- package/dist/chunks/message-BxTkh1oA.js +49 -0
- package/dist/chunks/message-BxTkh1oA.js.map +1 -0
- package/dist/chunks/meter-DWhyzFGQ.js +84 -0
- package/dist/chunks/meter-DWhyzFGQ.js.map +1 -0
- package/dist/chunks/page-header-BIRswR73.js +41 -0
- package/dist/chunks/page-header-BIRswR73.js.map +1 -0
- package/dist/chunks/pagination-DYdLm18-.js +85 -0
- package/dist/chunks/pagination-DYdLm18-.js.map +1 -0
- package/dist/chunks/popover-BE7VO-a4.js +50 -0
- package/dist/chunks/popover-BE7VO-a4.js.map +1 -0
- package/dist/chunks/popover-root-D3q89WNF.js +26 -0
- package/dist/chunks/popover-root-D3q89WNF.js.map +1 -0
- package/dist/chunks/portal-context-BBbzDKmY.js +33 -0
- package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -0
- package/dist/chunks/radio-CUxbLCvD.js +110 -0
- package/dist/chunks/radio-CUxbLCvD.js.map +1 -0
- package/dist/chunks/range-popup-AbRzgHtY.js +111 -0
- package/dist/chunks/range-popup-AbRzgHtY.js.map +1 -0
- package/dist/chunks/restore-focus-Cap1Q-R3.js +19 -0
- package/dist/chunks/restore-focus-Cap1Q-R3.js.map +1 -0
- package/dist/chunks/rights-CXo7zEf6.js +279 -0
- package/dist/chunks/rights-CXo7zEf6.js.map +1 -0
- package/dist/chunks/safe-href-G5DBNVwm.js +13 -0
- package/dist/chunks/safe-href-G5DBNVwm.js.map +1 -0
- package/dist/chunks/scroll-parent-WXvzQcUo.js +14 -0
- package/dist/chunks/scroll-parent-WXvzQcUo.js.map +1 -0
- package/dist/chunks/section-XStLtXKa.js +87 -0
- package/dist/chunks/section-XStLtXKa.js.map +1 -0
- package/dist/chunks/segmented-CDTx2n29.js +113 -0
- package/dist/chunks/segmented-CDTx2n29.js.map +1 -0
- package/dist/chunks/select-Ca3HGsN1.js +223 -0
- package/dist/chunks/select-Ca3HGsN1.js.map +1 -0
- package/dist/chunks/separator-D5AzVFTS.js +45 -0
- package/dist/chunks/separator-D5AzVFTS.js.map +1 -0
- package/dist/chunks/sidebar-C4fL_KMm.js +599 -0
- package/dist/chunks/sidebar-C4fL_KMm.js.map +1 -0
- package/dist/chunks/sidebar-menu-sd9vCpDy.js +33 -0
- package/dist/chunks/sidebar-menu-sd9vCpDy.js.map +1 -0
- package/dist/chunks/skeleton-kfuqdl1a.js +36 -0
- package/dist/chunks/skeleton-kfuqdl1a.js.map +1 -0
- package/dist/chunks/slider-DbhjJ3ML.js +57 -0
- package/dist/chunks/slider-DbhjJ3ML.js.map +1 -0
- package/dist/chunks/status-dot-CBoQpyL4.js +25 -0
- package/dist/chunks/status-dot-CBoQpyL4.js.map +1 -0
- package/dist/chunks/styles-Btvg2DCf.js +21 -0
- package/dist/chunks/styles-Btvg2DCf.js.map +1 -0
- package/dist/chunks/swap-text-BhPI8DOf.js +28 -0
- package/dist/chunks/swap-text-BhPI8DOf.js.map +1 -0
- package/dist/chunks/switch-CztLhA8F.js +59 -0
- package/dist/chunks/switch-CztLhA8F.js.map +1 -0
- package/dist/chunks/table-DYKa86af.js +67 -0
- package/dist/chunks/table-DYKa86af.js.map +1 -0
- package/dist/chunks/tag-BsmQ1xPj.js +87 -0
- package/dist/chunks/tag-BsmQ1xPj.js.map +1 -0
- package/dist/chunks/text-BPglS3vq.js +63 -0
- package/dist/chunks/text-BPglS3vq.js.map +1 -0
- package/dist/chunks/textarea-Bvk7N2bh.js +156 -0
- package/dist/chunks/textarea-Bvk7N2bh.js.map +1 -0
- package/dist/chunks/theme-provider-mgUaQK7L.js +69 -0
- package/dist/chunks/theme-provider-mgUaQK7L.js.map +1 -0
- package/dist/chunks/tone-CWpsHPb6.js +11 -0
- package/dist/chunks/tone-CWpsHPb6.js.map +1 -0
- package/dist/chunks/toolbar-Dw3uxpsE.js +36 -0
- package/dist/chunks/toolbar-Dw3uxpsE.js.map +1 -0
- package/dist/chunks/tooltip-CDu00nzg.js +124 -0
- package/dist/chunks/tooltip-CDu00nzg.js.map +1 -0
- package/dist/chunks/tooltip-root-DWhtAtFb.js +60 -0
- package/dist/chunks/tooltip-root-DWhtAtFb.js.map +1 -0
- package/dist/chunks/use-controllable-B5Fd12Bx.js +13 -0
- package/dist/chunks/use-controllable-B5Fd12Bx.js.map +1 -0
- package/dist/chunks/use-copy-Dm2ncvMX.js +24 -0
- package/dist/chunks/use-copy-Dm2ncvMX.js.map +1 -0
- package/dist/chunks/use-layout-width-DZaLOQMT.js +27 -0
- package/dist/chunks/use-layout-width-DZaLOQMT.js.map +1 -0
- package/dist/chunks/use-scroll-margin-DWcfIXac.js +25 -0
- package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +1 -0
- package/dist/chunks/use-truncated-DmQoePvG.js +25 -0
- package/dist/chunks/use-truncated-DmQoePvG.js.map +1 -0
- package/dist/chunks/utils-CdH72WEp.js +8 -0
- package/dist/chunks/utils-CdH72WEp.js.map +1 -0
- package/dist/chunks/virtual-rows-BgMdVelU.js +37 -0
- package/dist/chunks/virtual-rows-BgMdVelU.js.map +1 -0
- package/dist/chunks/when-idle-Cy3pinqO.js +12 -0
- package/dist/chunks/when-idle-Cy3pinqO.js.map +1 -0
- package/dist/chunks/zh-CN-cPjO1OOo.js +384 -0
- package/dist/chunks/zh-CN-cPjO1OOo.js.map +1 -0
- package/dist/components/app-frame.js +2 -0
- package/dist/components/avatar.js +2 -0
- package/dist/components/badge.js +2 -0
- package/dist/components/banner.js +2 -0
- package/dist/components/button-group.js +69 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.js +2 -0
- package/dist/components/calendar.js +2 -0
- package/dist/components/charts/bar.js +231 -0
- package/dist/components/charts/bar.js.map +1 -0
- package/dist/components/charts/donut.js +179 -0
- package/dist/components/charts/donut.js.map +1 -0
- package/dist/components/charts/gauge.js +70 -0
- package/dist/components/charts/gauge.js.map +1 -0
- package/dist/components/charts/heatmap.js +83 -0
- package/dist/components/charts/heatmap.js.map +1 -0
- package/dist/components/charts/sankey.js +110 -0
- package/dist/components/charts/sankey.js.map +1 -0
- package/dist/components/charts/sparkline.js +72 -0
- package/dist/components/charts/sparkline.js.map +1 -0
- package/dist/components/charts/timeseries.js +253 -0
- package/dist/components/charts/timeseries.js.map +1 -0
- package/dist/components/charts.js +10 -0
- package/dist/components/checkbox.js +2 -0
- package/dist/components/code-block.js +4 -0
- package/dist/components/code.js +2 -0
- package/dist/components/collapsible.js +2 -0
- package/dist/components/combobox.js +2 -0
- package/dist/components/command-palette.js +216 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/copy-button.js +2 -0
- package/dist/components/data-table.js +399 -0
- package/dist/components/data-table.js.map +1 -0
- package/dist/components/date-picker.js +327 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/dialog.js +178 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/display-options.js +112 -0
- package/dist/components/display-options.js.map +1 -0
- package/dist/components/empty.js +2 -0
- package/dist/components/field.js +2 -0
- package/dist/components/filter-chip.js +120 -0
- package/dist/components/filter-chip.js.map +1 -0
- package/dist/components/filter-row.js +35 -0
- package/dist/components/filter-row.js.map +1 -0
- package/dist/components/flow.js +111 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/components/heading.js +28 -0
- package/dist/components/heading.js.map +1 -0
- package/dist/components/icon-button.js +2 -0
- package/dist/components/icon.js +4 -0
- package/dist/components/input.js +181 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/kaeso/conversation.js +204 -0
- package/dist/components/kaeso/conversation.js.map +1 -0
- package/dist/components/kaeso/identity.js +2 -0
- package/dist/components/kaeso/moments.js +122 -0
- package/dist/components/kaeso/moments.js.map +1 -0
- package/dist/components/kaeso/rights.js +2 -0
- package/dist/components/kaeso/usage.js +101 -0
- package/dist/components/kaeso/usage.js.map +1 -0
- package/dist/components/kaeso.js +186 -0
- package/dist/components/kaeso.js.map +1 -0
- package/dist/components/kbd.js +2 -0
- package/dist/components/key-value.js +73 -0
- package/dist/components/key-value.js.map +1 -0
- package/dist/components/label.js +26 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layout.js +72 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/link.js +2 -0
- package/dist/components/list.js +2 -0
- package/dist/components/loader.js +38 -0
- package/dist/components/loader.js.map +1 -0
- package/dist/components/logo.js +2 -0
- package/dist/components/markdown.js +4 -0
- package/dist/components/menu.js +4 -0
- package/dist/components/meter.js +2 -0
- package/dist/components/page-header.js +2 -0
- package/dist/components/pagination.js +2 -0
- package/dist/components/playground.js +813 -0
- package/dist/components/playground.js.map +1 -0
- package/dist/components/popover.js +53 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/portal.js +15 -0
- package/dist/components/portal.js.map +1 -0
- package/dist/components/qr-code.js +38 -0
- package/dist/components/qr-code.js.map +1 -0
- package/dist/components/radio.js +2 -0
- package/dist/components/scroll-area.js +35 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/section.js +2 -0
- package/dist/components/segmented.js +2 -0
- package/dist/components/select.js +2 -0
- package/dist/components/separator.js +2 -0
- package/dist/components/settings.js +99 -0
- package/dist/components/settings.js.map +1 -0
- package/dist/components/sheet.js +94 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.js +2 -0
- package/dist/components/skeleton.js +2 -0
- package/dist/components/slider.js +2 -0
- package/dist/components/stat.js +195 -0
- package/dist/components/stat.js.map +1 -0
- package/dist/components/status-dot.js +2 -0
- package/dist/components/surface.js +26 -0
- package/dist/components/surface.js.map +1 -0
- package/dist/components/swap-text.js +2 -0
- package/dist/components/switch.js +2 -0
- package/dist/components/table.js +2 -0
- package/dist/components/tabs.js +96 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tag.js +2 -0
- package/dist/components/text.js +2 -0
- package/dist/components/theme-menu.js +50 -0
- package/dist/components/theme-menu.js.map +1 -0
- package/dist/components/timeline.js +58 -0
- package/dist/components/timeline.js.map +1 -0
- package/dist/components/toast.js +214 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toc.js +48 -0
- package/dist/components/toc.js.map +1 -0
- package/dist/components/toolbar.js +2 -0
- package/dist/components/tooltip.js +18 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/visually-hidden.js +17 -0
- package/dist/components/visually-hidden.js.map +1 -0
- package/dist/fonts/LICENSE-GeistMono.txt +93 -0
- package/dist/fonts/LICENSE-Inter.txt +93 -0
- package/dist/fonts/geist-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/geist-mono-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-opsz-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-opsz-normal.woff2 +0 -0
- package/dist/fonts.css +40 -0
- package/dist/format.js +178 -0
- package/dist/format.js.map +1 -0
- package/dist/i18n-locales.js +23 -0
- package/dist/i18n-locales.js.map +1 -0
- package/dist/i18n-provider.js +30 -0
- package/dist/i18n-provider.js.map +1 -0
- package/dist/i18n.js +7 -0
- package/dist/index.js +153 -0
- package/dist/kaeso.css +1099 -0
- package/dist/styles.css +2 -0
- package/dist/tailwind.css +10 -0
- package/dist/theme.js +2 -0
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +32 -0
- package/dist/types/blocks/delete-resource/docs.d.ts +17 -0
- package/dist/types/blocks/delete-resource/index.d.ts +1 -0
- package/dist/types/blocks/pages/docs.d.ts +42 -0
- package/dist/types/blocks/pages/index.d.ts +1 -0
- package/dist/types/blocks/pages/pages.d.ts +65 -0
- package/dist/types/blocks/resource-list/docs.d.ts +15 -0
- package/dist/types/blocks/resource-list/index.d.ts +1 -0
- package/dist/types/blocks/resource-list/resource-list.d.ts +36 -0
- package/dist/types/component-docs.d.ts +7 -0
- package/dist/types/components/app-frame/app-frame.d.ts +79 -0
- package/dist/types/components/app-frame/docs.d.ts +23 -0
- package/dist/types/components/app-frame/index.d.ts +1 -0
- package/dist/types/components/avatar/avatar.d.ts +60 -0
- package/dist/types/components/avatar/docs.d.ts +21 -0
- package/dist/types/components/avatar/index.d.ts +1 -0
- package/dist/types/components/badge/badge.d.ts +41 -0
- package/dist/types/components/badge/docs.d.ts +9 -0
- package/dist/types/components/badge/index.d.ts +1 -0
- package/dist/types/components/banner/banner.d.ts +51 -0
- package/dist/types/components/banner/docs.d.ts +14 -0
- package/dist/types/components/banner/index.d.ts +1 -0
- package/dist/types/components/button/button.d.ts +116 -0
- package/dist/types/components/button/docs.d.ts +23 -0
- package/dist/types/components/button/index.d.ts +1 -0
- package/dist/types/components/button-group/button-group.d.ts +55 -0
- package/dist/types/components/button-group/docs.d.ts +11 -0
- package/dist/types/components/button-group/index.d.ts +1 -0
- package/dist/types/components/calendar/calendar.d.ts +32 -0
- package/dist/types/components/calendar/docs.d.ts +16 -0
- package/dist/types/components/calendar/index.d.ts +1 -0
- package/dist/types/components/charts/bar.d.ts +39 -0
- package/dist/types/components/charts/core.d.ts +167 -0
- package/dist/types/components/charts/docs.d.ts +174 -0
- package/dist/types/components/charts/donut.d.ts +67 -0
- package/dist/types/components/charts/gauge.d.ts +20 -0
- package/dist/types/components/charts/heatmap.d.ts +24 -0
- package/dist/types/components/charts/index.d.ts +8 -0
- package/dist/types/components/charts/sankey.d.ts +29 -0
- package/dist/types/components/charts/sparkline.d.ts +18 -0
- package/dist/types/components/charts/timeseries.d.ts +47 -0
- package/dist/types/components/checkbox/checkbox.d.ts +53 -0
- package/dist/types/components/checkbox/docs.d.ts +58 -0
- package/dist/types/components/checkbox/index.d.ts +1 -0
- package/dist/types/components/code/code.d.ts +24 -0
- package/dist/types/components/code/docs.d.ts +8 -0
- package/dist/types/components/code/index.d.ts +1 -0
- package/dist/types/components/code-block/code-block.d.ts +37 -0
- package/dist/types/components/code-block/docs.d.ts +41 -0
- package/dist/types/components/code-block/highlighter.d.ts +23 -0
- package/dist/types/components/code-block/index.d.ts +4 -0
- package/dist/types/components/code-block/json-view.d.ts +23 -0
- package/dist/types/components/code-block/kaeso-theme.d.ts +66 -0
- package/dist/types/components/collapsible/collapsible.d.ts +39 -0
- package/dist/types/components/collapsible/docs.d.ts +21 -0
- package/dist/types/components/collapsible/index.d.ts +1 -0
- package/dist/types/components/combobox/combobox.d.ts +86 -0
- package/dist/types/components/combobox/docs.d.ts +62 -0
- package/dist/types/components/combobox/index.d.ts +1 -0
- package/dist/types/components/command-palette/command-palette.d.ts +44 -0
- package/dist/types/components/command-palette/docs.d.ts +17 -0
- package/dist/types/components/command-palette/index.d.ts +1 -0
- package/dist/types/components/copy-button/copy-button.d.ts +85 -0
- package/dist/types/components/copy-button/docs.d.ts +30 -0
- package/dist/types/components/copy-button/index.d.ts +1 -0
- package/dist/types/components/data-table/columns.d.ts +47 -0
- package/dist/types/components/data-table/data-table.d.ts +80 -0
- package/dist/types/components/data-table/docs.d.ts +32 -0
- package/dist/types/components/data-table/index.d.ts +3 -0
- package/dist/types/components/date-picker/date-picker.d.ts +55 -0
- package/dist/types/components/date-picker/date-popup.d.ts +9 -0
- package/dist/types/components/date-picker/docs.d.ts +73 -0
- package/dist/types/components/date-picker/index.d.ts +2 -0
- package/dist/types/components/date-picker/iso-field.d.ts +5 -0
- package/dist/types/components/date-picker/range-popup.d.ts +13 -0
- package/dist/types/components/date-picker/time-input.d.ts +39 -0
- package/dist/types/components/dialog/dialog.d.ts +118 -0
- package/dist/types/components/dialog/docs.d.ts +70 -0
- package/dist/types/components/dialog/focus.d.ts +2 -0
- package/dist/types/components/dialog/index.d.ts +2 -0
- package/dist/types/components/dialog/step-dialog.d.ts +26 -0
- package/dist/types/components/display-options/display-options.d.ts +55 -0
- package/dist/types/components/display-options/docs.d.ts +14 -0
- package/dist/types/components/display-options/index.d.ts +1 -0
- package/dist/types/components/empty/docs.d.ts +12 -0
- package/dist/types/components/empty/empty.d.ts +29 -0
- package/dist/types/components/empty/index.d.ts +1 -0
- package/dist/types/components/field/docs.d.ts +20 -0
- package/dist/types/components/field/field.d.ts +78 -0
- package/dist/types/components/field/index.d.ts +1 -0
- package/dist/types/components/filter-chip/docs.d.ts +19 -0
- package/dist/types/components/filter-chip/filter-chip.d.ts +37 -0
- package/dist/types/components/filter-chip/index.d.ts +1 -0
- package/dist/types/components/filter-row/docs.d.ts +11 -0
- package/dist/types/components/filter-row/filter-row.d.ts +23 -0
- package/dist/types/components/filter-row/index.d.ts +1 -0
- package/dist/types/components/flow/docs.d.ts +12 -0
- package/dist/types/components/flow/flow.d.ts +34 -0
- package/dist/types/components/flow/index.d.ts +1 -0
- package/dist/types/components/heading/docs.d.ts +10 -0
- package/dist/types/components/heading/heading.d.ts +30 -0
- package/dist/types/components/heading/index.d.ts +1 -0
- package/dist/types/components/icon/docs.d.ts +10 -0
- package/dist/types/components/icon/icon.d.ts +37 -0
- package/dist/types/components/icon/index.d.ts +2 -0
- package/dist/types/components/icon-button/docs.d.ts +17 -0
- package/dist/types/components/icon-button/icon-button.d.ts +75 -0
- package/dist/types/components/icon-button/index.d.ts +1 -0
- package/dist/types/components/input/decimal.d.ts +11 -0
- package/dist/types/components/input/docs.d.ts +149 -0
- package/dist/types/components/input/index.d.ts +8 -0
- package/dist/types/components/input/input-group.d.ts +55 -0
- package/dist/types/components/input/input.d.ts +45 -0
- package/dist/types/components/input/number-input.d.ts +28 -0
- package/dist/types/components/input/otp-input.d.ts +27 -0
- package/dist/types/components/input/sensitive-input.d.ts +21 -0
- package/dist/types/components/input/tag-input.d.ts +27 -0
- package/dist/types/components/input/textarea.d.ts +25 -0
- package/dist/types/components/kaeso/conversation.d.ts +58 -0
- package/dist/types/components/kaeso/docs.d.ts +139 -0
- package/dist/types/components/kaeso/effective-access.d.ts +21 -0
- package/dist/types/components/kaeso/identity.d.ts +70 -0
- package/dist/types/components/kaeso/index.d.ts +8 -0
- package/dist/types/components/kaeso/moments.d.ts +30 -0
- package/dist/types/components/kaeso/provider-marks.d.ts +1 -0
- package/dist/types/components/kaeso/rights-logic.d.ts +13 -0
- package/dist/types/components/kaeso/rights.d.ts +69 -0
- package/dist/types/components/kaeso/role-picker.d.ts +38 -0
- package/dist/types/components/kaeso/usage.d.ts +35 -0
- package/dist/types/components/kbd/docs.d.ts +16 -0
- package/dist/types/components/kbd/index.d.ts +1 -0
- package/dist/types/components/kbd/kbd.d.ts +31 -0
- package/dist/types/components/key-value/docs.d.ts +10 -0
- package/dist/types/components/key-value/index.d.ts +1 -0
- package/dist/types/components/key-value/key-value.d.ts +50 -0
- package/dist/types/components/label/docs.d.ts +10 -0
- package/dist/types/components/label/index.d.ts +1 -0
- package/dist/types/components/label/label.d.ts +22 -0
- package/dist/types/components/layout/docs.d.ts +30 -0
- package/dist/types/components/layout/index.d.ts +1 -0
- package/dist/types/components/layout/layout.d.ts +100 -0
- package/dist/types/components/link/docs.d.ts +11 -0
- package/dist/types/components/link/index.d.ts +1 -0
- package/dist/types/components/link/link.d.ts +27 -0
- package/dist/types/components/list/docs.d.ts +75 -0
- package/dist/types/components/list/index.d.ts +1 -0
- package/dist/types/components/list/list.d.ts +119 -0
- package/dist/types/components/list/row-checkbox.d.ts +5 -0
- package/dist/types/components/list/virtual-rows.d.ts +10 -0
- package/dist/types/components/loader/docs.d.ts +21 -0
- package/dist/types/components/loader/index.d.ts +2 -0
- package/dist/types/components/loader/loader.d.ts +35 -0
- package/dist/types/components/loader/status.d.ts +55 -0
- package/dist/types/components/logo/docs.d.ts +10 -0
- package/dist/types/components/logo/index.d.ts +1 -0
- package/dist/types/components/logo/logo.d.ts +59 -0
- package/dist/types/components/logo/paths.d.ts +16 -0
- package/dist/types/components/markdown/docs.d.ts +15 -0
- package/dist/types/components/markdown/index.d.ts +1 -0
- package/dist/types/components/markdown/markdown.d.ts +54 -0
- package/dist/types/components/menu/docs.d.ts +19 -0
- package/dist/types/components/menu/index.d.ts +2 -0
- package/dist/types/components/menu/menu.d.ts +213 -0
- package/dist/types/components/menu/styles.d.ts +7 -0
- package/dist/types/components/meter/docs.d.ts +23 -0
- package/dist/types/components/meter/index.d.ts +1 -0
- package/dist/types/components/meter/meter.d.ts +51 -0
- package/dist/types/components/page-header/docs.d.ts +12 -0
- package/dist/types/components/page-header/index.d.ts +1 -0
- package/dist/types/components/page-header/page-header.d.ts +22 -0
- package/dist/types/components/pagination/docs.d.ts +17 -0
- package/dist/types/components/pagination/index.d.ts +1 -0
- package/dist/types/components/pagination/pagination.d.ts +33 -0
- package/dist/types/components/playground/compare-grid.d.ts +41 -0
- package/dist/types/components/playground/composer.d.ts +40 -0
- package/dist/types/components/playground/docs.d.ts +141 -0
- package/dist/types/components/playground/index.d.ts +7 -0
- package/dist/types/components/playground/model-picker.d.ts +37 -0
- package/dist/types/components/playground/parameter-panel.d.ts +52 -0
- package/dist/types/components/playground/prompt-suggestions.d.ts +23 -0
- package/dist/types/components/playground/response-metrics.d.ts +30 -0
- package/dist/types/components/playground/response-view.d.ts +55 -0
- package/dist/types/components/popover/docs.d.ts +21 -0
- package/dist/types/components/popover/hover-card.d.ts +24 -0
- package/dist/types/components/popover/index.d.ts +2 -0
- package/dist/types/components/popover/popover-root.d.ts +24 -0
- package/dist/types/components/popover/popover.d.ts +40 -0
- package/dist/types/components/portal/docs.d.ts +9 -0
- package/dist/types/components/portal/index.d.ts +1 -0
- package/dist/types/components/portal/portal.d.ts +11 -0
- package/dist/types/components/qr-code/docs.d.ts +10 -0
- package/dist/types/components/qr-code/index.d.ts +1 -0
- package/dist/types/components/qr-code/qr-code.d.ts +22 -0
- package/dist/types/components/radio/docs.d.ts +42 -0
- package/dist/types/components/radio/index.d.ts +1 -0
- package/dist/types/components/radio/labelled.d.ts +13 -0
- package/dist/types/components/radio/radio.d.ts +51 -0
- package/dist/types/components/scroll-area/docs.d.ts +11 -0
- package/dist/types/components/scroll-area/index.d.ts +1 -0
- package/dist/types/components/scroll-area/scroll-area.d.ts +28 -0
- package/dist/types/components/section/docs.d.ts +28 -0
- package/dist/types/components/section/index.d.ts +1 -0
- package/dist/types/components/section/section.d.ts +37 -0
- package/dist/types/components/segmented/docs.d.ts +15 -0
- package/dist/types/components/segmented/index.d.ts +1 -0
- package/dist/types/components/segmented/segmented.d.ts +37 -0
- package/dist/types/components/select/docs.d.ts +32 -0
- package/dist/types/components/select/index.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +82 -0
- package/dist/types/components/separator/docs.d.ts +10 -0
- package/dist/types/components/separator/index.d.ts +1 -0
- package/dist/types/components/separator/separator.d.ts +33 -0
- package/dist/types/components/settings/docs.d.ts +32 -0
- package/dist/types/components/settings/index.d.ts +1 -0
- package/dist/types/components/settings/settings.d.ts +45 -0
- package/dist/types/components/sheet/docs.d.ts +20 -0
- package/dist/types/components/sheet/index.d.ts +1 -0
- package/dist/types/components/sheet/sheet.d.ts +51 -0
- package/dist/types/components/sidebar/docs.d.ts +20 -0
- package/dist/types/components/sidebar/index.d.ts +1 -0
- package/dist/types/components/sidebar/sidebar-menu.d.ts +16 -0
- package/dist/types/components/sidebar/sidebar.d.ts +178 -0
- package/dist/types/components/skeleton/docs.d.ts +14 -0
- package/dist/types/components/skeleton/index.d.ts +1 -0
- package/dist/types/components/skeleton/skeleton.d.ts +31 -0
- package/dist/types/components/slider/docs.d.ts +20 -0
- package/dist/types/components/slider/index.d.ts +1 -0
- package/dist/types/components/slider/slider.d.ts +29 -0
- package/dist/types/components/stat/docs.d.ts +35 -0
- package/dist/types/components/stat/index.d.ts +1 -0
- package/dist/types/components/stat/stat.d.ts +68 -0
- package/dist/types/components/status-dot/docs.d.ts +18 -0
- package/dist/types/components/status-dot/index.d.ts +1 -0
- package/dist/types/components/status-dot/status-dot.d.ts +36 -0
- package/dist/types/components/surface/docs.d.ts +8 -0
- package/dist/types/components/surface/index.d.ts +1 -0
- package/dist/types/components/surface/surface.d.ts +44 -0
- package/dist/types/components/swap-text/docs.d.ts +10 -0
- package/dist/types/components/swap-text/index.d.ts +1 -0
- package/dist/types/components/swap-text/swap-text.d.ts +22 -0
- package/dist/types/components/switch/docs.d.ts +21 -0
- package/dist/types/components/switch/index.d.ts +1 -0
- package/dist/types/components/switch/switch.d.ts +39 -0
- package/dist/types/components/table/docs.d.ts +6 -0
- package/dist/types/components/table/index.d.ts +1 -0
- package/dist/types/components/table/table.d.ts +30 -0
- package/dist/types/components/tabs/docs.d.ts +22 -0
- package/dist/types/components/tabs/index.d.ts +1 -0
- package/dist/types/components/tabs/tabs.d.ts +61 -0
- package/dist/types/components/tag/docs.d.ts +30 -0
- package/dist/types/components/tag/index.d.ts +1 -0
- package/dist/types/components/tag/tag.d.ts +63 -0
- package/dist/types/components/text/docs.d.ts +15 -0
- package/dist/types/components/text/index.d.ts +1 -0
- package/dist/types/components/text/text.d.ts +111 -0
- package/dist/types/components/theme-menu/docs.d.ts +9 -0
- package/dist/types/components/theme-menu/index.d.ts +1 -0
- package/dist/types/components/theme-menu/theme-menu.d.ts +22 -0
- package/dist/types/components/timeline/docs.d.ts +8 -0
- package/dist/types/components/timeline/index.d.ts +1 -0
- package/dist/types/components/timeline/timeline.d.ts +41 -0
- package/dist/types/components/toast/docs.d.ts +26 -0
- package/dist/types/components/toast/index.d.ts +1 -0
- package/dist/types/components/toast/toast.d.ts +91 -0
- package/dist/types/components/toc/docs.d.ts +10 -0
- package/dist/types/components/toc/index.d.ts +1 -0
- package/dist/types/components/toc/toc.d.ts +27 -0
- package/dist/types/components/toolbar/docs.d.ts +9 -0
- package/dist/types/components/toolbar/index.d.ts +1 -0
- package/dist/types/components/toolbar/toolbar.d.ts +28 -0
- package/dist/types/components/tooltip/docs.d.ts +33 -0
- package/dist/types/components/tooltip/index.d.ts +2 -0
- package/dist/types/components/tooltip/tooltip-provider.d.ts +8 -0
- package/dist/types/components/tooltip/tooltip-root.d.ts +9 -0
- package/dist/types/components/tooltip/tooltip.d.ts +60 -0
- package/dist/types/components/tooltip/trigger-props.d.ts +23 -0
- package/dist/types/components/visually-hidden/docs.d.ts +6 -0
- package/dist/types/components/visually-hidden/index.d.ts +1 -0
- package/dist/types/components/visually-hidden/visually-hidden.d.ts +4 -0
- package/dist/types/format/index.d.ts +26 -0
- package/dist/types/hooks/scroll-parent.d.ts +1 -0
- package/dist/types/hooks/use-copy.d.ts +4 -0
- package/dist/types/hooks/use-indicator.d.ts +9 -0
- package/dist/types/hooks/use-layout-width.d.ts +3 -0
- package/dist/types/hooks/use-scroll-margin.d.ts +2 -0
- package/dist/types/hooks/use-stored-state.d.ts +1 -0
- package/dist/types/hooks/use-truncated.d.ts +2 -0
- package/dist/types/i18n/context.d.ts +11 -0
- package/dist/types/i18n/index.d.ts +5 -0
- package/dist/types/i18n/locale-names.d.ts +2 -0
- package/dist/types/i18n/locale-tags.d.ts +4 -0
- package/dist/types/i18n/locales/de.d.ts +2 -0
- package/dist/types/i18n/locales/en.d.ts +2 -0
- package/dist/types/i18n/locales/zh-CN.d.ts +2 -0
- package/dist/types/i18n/message.d.ts +2 -0
- package/dist/types/i18n/provider.d.ts +10 -0
- package/dist/types/icons/groups.d.ts +8 -0
- package/dist/types/icons/vocabulary.d.ts +413 -0
- package/dist/types/index.d.ts +79 -0
- package/dist/types/theme/index.d.ts +1 -0
- package/dist/types/theme/theme-provider.d.ts +22 -0
- package/dist/types/utils/arrow-focus.d.ts +2 -0
- package/dist/types/utils/cn.d.ts +370 -0
- package/dist/types/utils/dev.d.ts +4 -0
- package/dist/types/utils/field-press.d.ts +2 -0
- package/dist/types/utils/index.d.ts +8 -0
- package/dist/types/utils/inset.d.ts +6 -0
- package/dist/types/utils/lazy-module.d.ts +8 -0
- package/dist/types/utils/link-provider.d.ts +15 -0
- package/dist/types/utils/portal-context.d.ts +10 -0
- package/dist/types/utils/restore-focus.d.ts +4 -0
- package/dist/types/utils/safe-href.d.ts +1 -0
- package/dist/types/utils/tone.d.ts +2 -0
- package/dist/types/utils/use-controllable.d.ts +1 -0
- package/dist/types/utils/variants.d.ts +5 -0
- package/dist/types/utils/when-idle.d.ts +1 -0
- package/dist/utils.js +9 -0
- package/foundations/accessibility.md +41 -0
- package/foundations/color.md +40 -0
- package/foundations/elevation.md +23 -0
- package/foundations/icons.md +14 -0
- package/foundations/motion.md +39 -0
- package/foundations/psychology.md +36 -0
- package/foundations/shape.md +41 -0
- package/foundations/tokens.md +24 -0
- package/foundations/typography.md +35 -0
- package/foundations/writing.md +39 -0
- package/package.json +144 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Elevation
|
|
2
|
+
|
|
3
|
+
Few levels, each with one job. Lines are rings drawn with shadows; depth comes from tone first and shadow second. Values: `../ai/tokens.md`.
|
|
4
|
+
|
|
5
|
+
## Levels
|
|
6
|
+
|
|
7
|
+
| Utility | Use |
|
|
8
|
+
| ---------------- | ------------------------------------------------------------------------------------- |
|
|
9
|
+
| `shadow-ring` | A hairline inside the edge: badges, tags, key caps, provider tiles. |
|
|
10
|
+
| `shadow-frame` | A hairline outside the edge, for content that reaches it: previews, embedded screens. |
|
|
11
|
+
| `shadow-control` | Secondary buttons, inputs, selects: a ring and a shadow you feel more than see. |
|
|
12
|
+
| `shadow-segment` | The raised item inside a segmented track. |
|
|
13
|
+
| `shadow-panel` | The content panel on the chrome. |
|
|
14
|
+
| `shadow-raised` | Menus, popovers, tooltips. |
|
|
15
|
+
| `shadow-dialog` | Dialogs, sheets, the command palette. |
|
|
16
|
+
| `shadow-toast` | The toast capsule. |
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
|
|
20
|
+
- Never a CSS border on a control: rings are box-shadows, so they never change the box size.
|
|
21
|
+
- A hairline is the same on all four sides. Controls and small marks draw it inside their own edge, so a scroller or a truncating table cell never cuts a side off; cards, tables and overlays, whose content reaches their edge, draw it outside, opaque and above their shadow. No top light: a highlight along one edge reads as that side drawn thicker.
|
|
22
|
+
- In light mode, shadows carry the lift. In dark mode they disappear into black, so a lighter ring does it instead.
|
|
23
|
+
- One overlay level at a time. A menu inside a dialog uses the raised level, not a deeper one.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Icons
|
|
2
|
+
|
|
3
|
+
Hugeicons, Stroke Rounded, one icon per Kaeso concept. The same idea always looks the same. Every name: `../ai/icons.md`.
|
|
4
|
+
|
|
5
|
+
## Vocabulary
|
|
6
|
+
|
|
7
|
+
Use the names, not the icons: `icons.key` always means a key, `icons.model` a model. Import `icons` from `@logicplanes/kaeso-ui` and pass one to a component's `icon`, `leadingIcon` or `trailingIcon`, or to `<Icon icon={icons.key} size="md" />`. Sizes: `xs`, `sm`, `md`, `lg`, `xl`.
|
|
8
|
+
|
|
9
|
+
## Rules
|
|
10
|
+
|
|
11
|
+
- An icon accompanies a word or names a button that has an accessible label. Decorative icons are hidden from assistive technology.
|
|
12
|
+
- No decorative icons: empty states, dialogs and badges carry words, not symbols.
|
|
13
|
+
- Icons sit quieter than their label (text secondary) and take the label's color when active.
|
|
14
|
+
- Stroke icons next to text are centered on the cap height, not the box.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Motion
|
|
2
|
+
|
|
3
|
+
Quick, decelerating, from the trigger, never bouncing and never in the way. Motion explains where something came from; it never decorates. Durations and curves: `../ai/tokens.md`.
|
|
4
|
+
|
|
5
|
+
## Durations
|
|
6
|
+
|
|
7
|
+
| Token | Use |
|
|
8
|
+
| ---------------------------------------------------- | -------------------------------------------- |
|
|
9
|
+
| `--k-duration-fast` | Hover, press and color changes |
|
|
10
|
+
| `--k-duration-overlay`, `--k-duration-close-overlay` | Menus and popovers opening, closing |
|
|
11
|
+
| `--k-duration-dialog`, `--k-duration-close-dialog` | Dialogs opening, closing |
|
|
12
|
+
| `--k-duration-sheet`, `--k-duration-close-sheet` | Sheets opening, closing |
|
|
13
|
+
| `--k-duration-toast-in`, `--k-duration-toast-out` | A toast arriving, leaving |
|
|
14
|
+
| `--k-duration-indicator` | Tab and segment indicators, the switch thumb |
|
|
15
|
+
| `--k-duration-disclosure` | Collapsibles and sidebar groups |
|
|
16
|
+
| `--k-duration-chart` | Chart values changing |
|
|
17
|
+
| `--k-duration-check`, `--k-duration-radio` | The checkmark drawing in, the radio dot |
|
|
18
|
+
| `--k-duration-copied` | How long "Copied" stays |
|
|
19
|
+
|
|
20
|
+
## Easing
|
|
21
|
+
|
|
22
|
+
Things that arrive decelerate (`standard`, `overlay`); things that leave accelerate (`exit`) and take less time. `pulse` is for loading only.
|
|
23
|
+
|
|
24
|
+
## Loading
|
|
25
|
+
|
|
26
|
+
Loading keeps one beat of 800ms on the pulse easing. The spinner is three routes on a ring, like the three branches of the mark; it advances a third of a turn per beat. The skeleton breathes over two beats.
|
|
27
|
+
|
|
28
|
+
- A busy control says so at once (`aria-busy`, clicks ignored); its spinner waits out the 300ms delay, then stays at least 400ms so it never flickers. `useDelayedLoading` times any other indicator the same way.
|
|
29
|
+
- A page's own indicator that goes away with the page can wait out the delay in CSS alone: `show-after-delay`.
|
|
30
|
+
- A skeleton shows at once: it is the shape of the page, not an indicator.
|
|
31
|
+
- With reduced motion the ring holds still and the light passes from route to route by opacity alone; skeletons hold still.
|
|
32
|
+
|
|
33
|
+
## Rules
|
|
34
|
+
|
|
35
|
+
- Overlays scale from 0.96 and fade from their trigger; dialogs from 0.98 in the center; sheets slide from their edge.
|
|
36
|
+
- No page-enter animation and no loops but loading's.
|
|
37
|
+
- Never `transition: all`; only the properties that change.
|
|
38
|
+
- With reduced motion, transforms are removed and only opacity changes remain.
|
|
39
|
+
- Input is never blocked by an animation: a closing menu does not delay the next click.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Psychology
|
|
2
|
+
|
|
3
|
+
People spend hours a day in this interface. Every rule in the library traces back to how people perceive, decide and feel; review every screen against the rules below.
|
|
4
|
+
|
|
5
|
+
## The rules
|
|
6
|
+
|
|
7
|
+
1. **One of everything.** One type scale, one spacing scale, one control height per size, one pattern per job. _(Processing fluency)_
|
|
8
|
+
2. **Polish is function.** Visual defects are bugs. _(Aesthetic–usability effect)_
|
|
9
|
+
3. **Space signals quality.** Generous margins and 48px section gaps; never cram. _(White space and prestige)_
|
|
10
|
+
4. **Round what people touch.** Pills for single-line controls, concentric radii for containers. _(Curved-shape preference)_
|
|
11
|
+
5. **Space before lines before boxes.** Group by proximity and tone; frame only the surfaces in `elevation.md`. _(Gestalt)_
|
|
12
|
+
6. **Big, close targets.** 32px minimum (44 coarse), row-wide hit areas, menus beside triggers, actions at row ends. _(Fitts)_
|
|
13
|
+
7. **Few choices at once.** One primary action per view; ≤ 7 items per menu group; advanced options disclosed. _(Hick–Hyman, choice overload)_
|
|
14
|
+
8. **Recognition over recall.** Names beside ids, providers beside models, units beside numbers. _(Cognitive load, working memory)_
|
|
15
|
+
9. **Color means something.** Monochrome interface; color only for status and data. _(Pre-attentive processing)_
|
|
16
|
+
10. **Steps you can see, and no bigger.** State fills ≈ 3–4 L* apart. _(Just-noticeable difference)_
|
|
17
|
+
11. **Never color alone.** Every status carries a word or an icon. _(Pre-attentive processing; WCAG 1.4.1)_
|
|
18
|
+
12. **Dark mode is designed, not inverted.** `#fafafa` text on black; weights 20 lighter; parity reviewed side by side. _(Halation and irradiation)_
|
|
19
|
+
13. **Measured contrast.** Every pair measured; 12px minimum text; tertiary never carries meaning alone. _(Contrast sensitivity, WCAG 2.2, APCA)_
|
|
20
|
+
14. **Read along an edge.** Left-aligned labels, right-aligned tabular numbers, prose ≤ 68ch. _(Reading and scanning)_
|
|
21
|
+
15. **Answer within 100 ms.** CSS-only hover and press; skeletons under 1 s; progress beyond. _(Response time limits)_
|
|
22
|
+
16. **Motion confirms, then stops.** 120–240 ms, decelerating, no overshoot, no page-enter, no loops. _(Motion perception)_
|
|
23
|
+
17. **Controls look like controls.** Fill + ring + shadow; non-controls never mimic them. _(Affordance and signifiers)_
|
|
24
|
+
18. **One ink button.** Exactly one primary per view. _(Von Restorff)_
|
|
25
|
+
19. **Important at the ends.** Most-used navigation first, account and help last, primary action last in a footer. _(Serial position)_
|
|
26
|
+
20. **Show progress, never nag.** No setup checklists or numbered step lists; a new project shows its normal screens with their empty states, and a task in several steps is a `StepDialog`. _(Goal-gradient, Zeigarnik)_
|
|
27
|
+
21. **Care for the peaks.** The key reveal, the first request and errors get extra space and calm copy. _(Peak–end rule)_
|
|
28
|
+
22. **Undo over confirm.** Reversible actions are instant and undoable; irreversible ones explain themselves. _(Self-determination, perceived control)_
|
|
29
|
+
23. **Quiet is premium.** Restraint, monochrome, precise type, nothing loud; simplify what looks busy at 50%. _(Luxury cues, visual complexity)_
|
|
30
|
+
|
|
31
|
+
### Learned in review
|
|
32
|
+
|
|
33
|
+
24. **Nothing moves when its state changes.** A button that reads “Copy page” keeps its width when it reads “Copied”; loading, hover, selected and open keep the box. Every label variant is reserved in one grid cell. _(Found in review: a shrinking button reads as a glitch and moves the pointer's target.)_
|
|
34
|
+
25. **Rings follow the keyboard.** Focus rings appear for keyboard focus only; a clicked control looks clean, never "stuck selected". _(Found in review: a ring left after a click reads as an error state.)_
|
|
35
|
+
26. **Words, not symbols.** Empty states, alert dialogs, badges and status labels carry words; a decorative icon or dot beside them adds noise without meaning. _(Found in review: the icon above an empty state and the dot in a badge made screens look cheaper.)_
|
|
36
|
+
27. **Every control text inherits the interface family.** No serif fallback ever renders, in portals and native controls included. _(Found in review.)_
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Shape
|
|
2
|
+
|
|
3
|
+
Pills for everything on one line, concentric corners for everything that holds something. Values: `../ai/tokens.md`.
|
|
4
|
+
|
|
5
|
+
## Radii
|
|
6
|
+
|
|
7
|
+
| Utility | Use |
|
|
8
|
+
| ----------------------------------------- | ------------------------------------------------------------------------------ |
|
|
9
|
+
| `rounded-pill` | Every single-line control: buttons, inputs, selects, tabs, tags, sidebar items |
|
|
10
|
+
| `rounded-panel` | The content panel of the app frame |
|
|
11
|
+
| `rounded-menu` | Menus and listbox popups |
|
|
12
|
+
| `rounded-item` | Rows inside menus and lists (menu radius minus its 6px inset) |
|
|
13
|
+
| `rounded-popover` | Popovers and hover cards |
|
|
14
|
+
| `rounded-dialog` | Dialogs and the command palette |
|
|
15
|
+
| `rounded-sheet` | Sheets, on the side that faces the content |
|
|
16
|
+
| `rounded-group` | Settings groups |
|
|
17
|
+
| `rounded-well` | Code wells and preview frames |
|
|
18
|
+
| `rounded-tooltip` | Single-line tooltips |
|
|
19
|
+
| `rounded-palette`, `rounded-palette-item` | The command palette and its rows |
|
|
20
|
+
| `rounded-checkbox` | Checkboxes |
|
|
21
|
+
| `rounded-org` | Organization avatars |
|
|
22
|
+
| `rounded-kbd` | Key caps |
|
|
23
|
+
| `rounded-code` | Inline code |
|
|
24
|
+
| `rounded-bar`, `rounded-cell` | Bars in charts, heatmap cells |
|
|
25
|
+
| `rounded-avatar` | Small square marks |
|
|
26
|
+
| `rounded-field` | Token fields that wrap |
|
|
27
|
+
| `rounded-textarea` | Textareas |
|
|
28
|
+
| `rounded-cell-lg` | One-time code cells |
|
|
29
|
+
| `rounded-tooltip-lg` | Tooltips that wrap |
|
|
30
|
+
| `rounded-frame` | An app frame embedded in a page |
|
|
31
|
+
| `rounded-toast` | A toast that wraps |
|
|
32
|
+
|
|
33
|
+
## Concentric corners
|
|
34
|
+
|
|
35
|
+
An inner corner is the outer corner minus the inset, so curves stay parallel. A 16px menu with a 6px inset holds 10px items; a 24px frame with an 8px inset holds 16px pills.
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
- A pill is a perfect stadium: its radius is at least half its height.
|
|
40
|
+
- Nothing mixes shapes: a square button never sits next to a pill.
|
|
41
|
+
- No decorative cards. Content sits on the panel; only the surfaces above it have corners of their own.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Tokens
|
|
2
|
+
|
|
3
|
+
Every value in the library is a token. Components use role names through CSS variables and the Tailwind theme; raw values never appear in a component. Every value, light and dark: `../ai/tokens.md`.
|
|
4
|
+
|
|
5
|
+
## Using tokens
|
|
6
|
+
|
|
7
|
+
Import the stylesheet once. It defines the `--k-*` variables for light and dark, and a Tailwind theme in which only token values exist: `bg-panel`, `text-fg-secondary`, `h-36`, `rounded-pill`. Classes like `bg-blue-500` or `p-7` are not generated.
|
|
8
|
+
|
|
9
|
+
```css
|
|
10
|
+
@import "tailwindcss";
|
|
11
|
+
@import "@logicplanes/kaeso-ui/tailwind.css";
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The values are also exported as JSON (`@logicplanes/kaeso-tokens/tokens.json`) and TypeScript (`@logicplanes/kaeso-tokens`).
|
|
15
|
+
|
|
16
|
+
## Lengths
|
|
17
|
+
|
|
18
|
+
Every length a component may use is on a fixed list; the class suffix is the pixel value (`h-36` is 36px). A length off the list does not exist. The list is at the end of `../ai/tokens.md`.
|
|
19
|
+
|
|
20
|
+
## Rules
|
|
21
|
+
|
|
22
|
+
- Use the role, never the step: `text-fg-secondary`, not a gray.
|
|
23
|
+
- No hex or rgb literals, no arbitrary Tailwind values or variants, no `dark:`: both themes come from the same role names.
|
|
24
|
+
- Change a token, not a component, when a value is wrong everywhere.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Typography
|
|
2
|
+
|
|
3
|
+
Inter for the interface, Geist Mono for ids, keys and code. Fourteen pixels is the base; nothing readable is smaller than twelve. Sizes, line heights and tracking: `../ai/tokens.md`.
|
|
4
|
+
|
|
5
|
+
## Scale
|
|
6
|
+
|
|
7
|
+
Ten steps, each with its own line height and tracking. Larger sizes tighten; small sizes open up slightly.
|
|
8
|
+
|
|
9
|
+
| Utility | Use |
|
|
10
|
+
| --------------- | ----------------------------------------- |
|
|
11
|
+
| `text-micro` | Key caps, tiny counts |
|
|
12
|
+
| `text-caption` | Group labels, column headers, field hints |
|
|
13
|
+
| `text-small` | Descriptions, secondary cells, metadata |
|
|
14
|
+
| `text-body` | The base: labels, rows, controls |
|
|
15
|
+
| `text-body-lg` | Lead sentences, settings titles |
|
|
16
|
+
| `text-title-sm` | Section titles |
|
|
17
|
+
| `text-title` | Dialog and sheet titles |
|
|
18
|
+
| `text-title-lg` | Page titles |
|
|
19
|
+
| `text-display` | The home page only |
|
|
20
|
+
| `text-metric` | Big numbers, tabular |
|
|
21
|
+
|
|
22
|
+
## Families
|
|
23
|
+
|
|
24
|
+
Inter for everything people read: "Request logs, keys and usage for every model you run." Geist Mono (`mono`) for what people copy or compare character by character: `req_01JAR2N7`, `sk-kso-AbC123…wxyz`.
|
|
25
|
+
|
|
26
|
+
## Numbers
|
|
27
|
+
|
|
28
|
+
Numbers that align in columns use tabular figures (`tabular`). Money keeps its exact decimal string from the API and is formatted only for display; token counts use thin grouping; durations pick their unit (`840 ms`, `2.4 s`). Use the formatters in `@logicplanes/kaeso-ui/format`.
|
|
29
|
+
|
|
30
|
+
## Rules
|
|
31
|
+
|
|
32
|
+
- Three weights: 400, 500 and 600. No faux bold, no light weights.
|
|
33
|
+
- Dark mode renders 500 and 600 twenty units lighter, so both themes look equally heavy.
|
|
34
|
+
- Sentence case everywhere, including buttons and titles.
|
|
35
|
+
- Never a serif. Every control and portal inherits the interface family.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Writing
|
|
2
|
+
|
|
3
|
+
Clear enough to act on, exact enough to trust, and calm enough to stay out of the way. These are the rules that interface copy meets every day.
|
|
4
|
+
|
|
5
|
+
## Rules
|
|
6
|
+
|
|
7
|
+
- **Sentence case** everywhere: buttons, titles, menu items, column headers.
|
|
8
|
+
- **A verb first on buttons**: "Create key", "Add model", "Disable". Never "OK" or "Submit".
|
|
9
|
+
- **No exclamation points, no emoji**, no jokes, no congratulations.
|
|
10
|
+
- **Errors say what did not happen and what to do next**: "Couldn't reach the provider. Check the provider key, then try again."
|
|
11
|
+
- **Name the object**: "Key copied", not "Copied to clipboard".
|
|
12
|
+
- **Use Kaeso's terms**: key, provider key, project, organization, model, alias, limit, budget, request log.
|
|
13
|
+
- **Realistic data in examples**, never lorem ipsum.
|
|
14
|
+
- **Straight apostrophes** in English: "Couldn't load these rows", "the key's name", never `’`.
|
|
15
|
+
|
|
16
|
+
## Labels and placeholders
|
|
17
|
+
|
|
18
|
+
A label names the field; a placeholder shows an example, never the label. Hints say what the value is used for. Required fields are the default; optional ones say "Optional".
|
|
19
|
+
|
|
20
|
+
| Do | Avoid |
|
|
21
|
+
| ------------------------------------- | ----------------------------------------- |
|
|
22
|
+
| Name, with placeholder "checkout-web" | Placeholder "Enter key name" and no label |
|
|
23
|
+
| "Used in request logs and alerts." | "Please enter a valid name." |
|
|
24
|
+
|
|
25
|
+
## Empty states
|
|
26
|
+
|
|
27
|
+
An empty state says what will appear and how to make it appear, in one sentence, with one action. No illustration, no icon.
|
|
28
|
+
|
|
29
|
+
| Do | Avoid |
|
|
30
|
+
| ----------------------------------------------------------------- | ---------------------- |
|
|
31
|
+
| "No requests yet. Send a request with a key and it appears here." | "Nothing to see here!" |
|
|
32
|
+
|
|
33
|
+
## Destructive actions
|
|
34
|
+
|
|
35
|
+
Say the consequence in plain words before the action. The button repeats the verb: "Archive project", "Delete key". Reversible actions skip the confirmation and offer Undo in the toast.
|
|
36
|
+
|
|
37
|
+
## Numbers and units
|
|
38
|
+
|
|
39
|
+
Units sit next to numbers: `$1,284.50`, `18.4M tokens`, `840 ms`. Money keeps the decimals the API sent; an amount below the smallest place shown reads `< $0.000001`, never `$0.000000`. Counts round only for display, keep at least three significant digits (`1.23M`, `1.02亿`) and show the exact value in a tooltip.
|
package/package.json
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@logicplanes/kaeso-ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Kaeso's UI library: React components on Base UI, Tailwind CSS v4 and the Kaeso tokens.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Devin Oldenburg",
|
|
7
|
+
"homepage": "https://ui.kaeso.app",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/logicplanes/kaeso.git",
|
|
11
|
+
"directory": "packages/ui"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/logicplanes/kaeso/issues"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public",
|
|
18
|
+
"provenance": true
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"kaeso",
|
|
22
|
+
"react",
|
|
23
|
+
"components",
|
|
24
|
+
"base-ui",
|
|
25
|
+
"tailwindcss",
|
|
26
|
+
"design-system"
|
|
27
|
+
],
|
|
28
|
+
"type": "module",
|
|
29
|
+
"sideEffects": [
|
|
30
|
+
"*.css"
|
|
31
|
+
],
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/types/index.d.ts",
|
|
35
|
+
"import": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./styles.css": "./dist/styles.css",
|
|
38
|
+
"./tailwind.css": "./dist/tailwind.css",
|
|
39
|
+
"./format": {
|
|
40
|
+
"types": "./dist/types/format/index.d.ts",
|
|
41
|
+
"import": "./dist/format.js"
|
|
42
|
+
},
|
|
43
|
+
"./theme": {
|
|
44
|
+
"types": "./dist/types/theme/index.d.ts",
|
|
45
|
+
"import": "./dist/theme.js"
|
|
46
|
+
},
|
|
47
|
+
"./utils": {
|
|
48
|
+
"types": "./dist/types/utils/index.d.ts",
|
|
49
|
+
"import": "./dist/utils.js"
|
|
50
|
+
},
|
|
51
|
+
"./i18n": {
|
|
52
|
+
"types": "./dist/types/i18n/index.d.ts",
|
|
53
|
+
"import": "./dist/i18n.js"
|
|
54
|
+
},
|
|
55
|
+
"./blocks/*": {
|
|
56
|
+
"types": "./dist/types/blocks/*/index.d.ts",
|
|
57
|
+
"import": "./dist/blocks/*.js"
|
|
58
|
+
},
|
|
59
|
+
"./ai/component-registry.json": "./ai/component-registry.json",
|
|
60
|
+
"./charts/*": {
|
|
61
|
+
"types": "./dist/types/components/charts/*.d.ts",
|
|
62
|
+
"import": "./dist/components/charts/*.js"
|
|
63
|
+
},
|
|
64
|
+
"./kaeso/*": {
|
|
65
|
+
"types": "./dist/types/components/kaeso/*.d.ts",
|
|
66
|
+
"import": "./dist/components/kaeso/*.js"
|
|
67
|
+
},
|
|
68
|
+
"./package.json": "./package.json",
|
|
69
|
+
"./*": {
|
|
70
|
+
"types": "./dist/types/components/*/index.d.ts",
|
|
71
|
+
"import": "./dist/components/*.js"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"files": [
|
|
75
|
+
"dist",
|
|
76
|
+
"ai",
|
|
77
|
+
"LICENSE",
|
|
78
|
+
"NOTICE.md",
|
|
79
|
+
"README.md",
|
|
80
|
+
"AGENTS.md",
|
|
81
|
+
"CLAUDE.md",
|
|
82
|
+
"foundations"
|
|
83
|
+
],
|
|
84
|
+
"peerDependencies": {
|
|
85
|
+
"@hugeicons/core-free-icons": "^4.2.0",
|
|
86
|
+
"@hugeicons/react": "^1.1.0",
|
|
87
|
+
"react": "^19.0.0",
|
|
88
|
+
"react-dom": "^19.0.0"
|
|
89
|
+
},
|
|
90
|
+
"dependencies": {
|
|
91
|
+
"@base-ui/react": "1.8.0",
|
|
92
|
+
"@tanstack/react-table": "8.21.3",
|
|
93
|
+
"@tanstack/react-virtual": "3.14.13",
|
|
94
|
+
"clsx": "2.1.1",
|
|
95
|
+
"d3-array": "3.2.4",
|
|
96
|
+
"d3-sankey": "0.12.3",
|
|
97
|
+
"d3-scale": "4.0.2",
|
|
98
|
+
"d3-shape": "3.2.0",
|
|
99
|
+
"d3-time": "3.1.0",
|
|
100
|
+
"marked": "18.0.14",
|
|
101
|
+
"react-day-picker": "9.14.0",
|
|
102
|
+
"shiki": "4.4.3",
|
|
103
|
+
"tailwind-merge": "3.7.0",
|
|
104
|
+
"uqr": "0.1.3",
|
|
105
|
+
"@logicplanes/kaeso-tokens": "0.1.0"
|
|
106
|
+
},
|
|
107
|
+
"devDependencies": {
|
|
108
|
+
"@hugeicons/core-free-icons": "4.3.5",
|
|
109
|
+
"@hugeicons/react": "1.1.10",
|
|
110
|
+
"@tailwindcss/node": "4.3.3",
|
|
111
|
+
"@tailwindcss/oxide": "4.3.3",
|
|
112
|
+
"@tailwindcss/vite": "4.3.3",
|
|
113
|
+
"@testing-library/jest-dom": "7.0.1",
|
|
114
|
+
"@testing-library/react": "16.3.3",
|
|
115
|
+
"@testing-library/user-event": "14.6.7",
|
|
116
|
+
"@types/d3-array": "3.2.2",
|
|
117
|
+
"@types/d3-sankey": "0.12.5",
|
|
118
|
+
"@types/d3-scale": "4.0.9",
|
|
119
|
+
"@types/d3-shape": "3.1.7",
|
|
120
|
+
"@types/d3-time": "3.0.4",
|
|
121
|
+
"@types/node": "24.13.6",
|
|
122
|
+
"@types/react": "19.2.7",
|
|
123
|
+
"@types/react-dom": "19.2.3",
|
|
124
|
+
"@vitejs/plugin-react": "6.1.2",
|
|
125
|
+
"@vitest/coverage-v8": "5.0.4",
|
|
126
|
+
"axe-core": "4.13.0",
|
|
127
|
+
"happy-dom": "21.0.1",
|
|
128
|
+
"oxlint": "1.85.0",
|
|
129
|
+
"react": "19.2.8",
|
|
130
|
+
"react-docgen-typescript": "2.4.0",
|
|
131
|
+
"react-dom": "19.2.8",
|
|
132
|
+
"tailwindcss": "4.3.3",
|
|
133
|
+
"tsx": "4.23.15",
|
|
134
|
+
"typescript": "5.9.3",
|
|
135
|
+
"vite": "8.3.4",
|
|
136
|
+
"vitest": "5.0.4"
|
|
137
|
+
},
|
|
138
|
+
"scripts": {
|
|
139
|
+
"build": "vite build && tsc -p tsconfig.build.json && node scripts/build-css.mjs && node scripts/registry.mjs && node scripts/references.mjs && node scripts/budgets.mjs",
|
|
140
|
+
"lint": "oxlint --deny-warnings . && node scripts/lint.mjs",
|
|
141
|
+
"typecheck": "tsc -p tsconfig.json && tsc -p tsconfig.build.json --noEmit",
|
|
142
|
+
"test": "vitest run --coverage"
|
|
143
|
+
}
|
|
144
|
+
}
|