@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,112 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../chunks/cn-CidVUKMm.js";
|
|
3
|
+
import { t } from "../chunks/dev-CR1p7gCm.js";
|
|
4
|
+
import { i as n } from "../chunks/context-BELWW79w.js";
|
|
5
|
+
import { t as r } from "../chunks/icon-CeNQtobn.js";
|
|
6
|
+
import { t as i } from "../chunks/icon-button-Bw67oKtx.js";
|
|
7
|
+
import { a } from "../chunks/tag-BsmQ1xPj.js";
|
|
8
|
+
import { r as o } from "../chunks/switch-CztLhA8F.js";
|
|
9
|
+
import { r as s } from "../chunks/segmented-CDTx2n29.js";
|
|
10
|
+
import { r as c } from "../chunks/select-Ca3HGsN1.js";
|
|
11
|
+
import { i as l } from "../chunks/popover-BE7VO-a4.js";
|
|
12
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
13
|
+
import { SlidersHorizontalIcon as f } from "@hugeicons/core-free-icons";
|
|
14
|
+
//#region src/components/display-options/display-options.tsx
|
|
15
|
+
var p = { trigger: {
|
|
16
|
+
secondary: { classes: "" },
|
|
17
|
+
ghost: { classes: "" }
|
|
18
|
+
} }, m = { trigger: "secondary" };
|
|
19
|
+
function h({ view: e, rows: t, toggles: i, properties: l, footer: f }) {
|
|
20
|
+
let p = n();
|
|
21
|
+
return /* @__PURE__ */ d("div", {
|
|
22
|
+
className: "flex w-320 flex-col",
|
|
23
|
+
children: [
|
|
24
|
+
e && /* @__PURE__ */ u("div", {
|
|
25
|
+
className: "p-12 pb-8",
|
|
26
|
+
children: /* @__PURE__ */ u(s, {
|
|
27
|
+
"aria-label": p("displayOptions.view", "View"),
|
|
28
|
+
options: e.options,
|
|
29
|
+
value: e.value,
|
|
30
|
+
onValueChange: e.onChange,
|
|
31
|
+
fullWidth: !0,
|
|
32
|
+
size: "sm",
|
|
33
|
+
className: "bg-item-hover"
|
|
34
|
+
})
|
|
35
|
+
}),
|
|
36
|
+
t && t.length > 0 && /* @__PURE__ */ u("div", {
|
|
37
|
+
className: "flex flex-col px-12 py-4",
|
|
38
|
+
children: t.map((e) => /* @__PURE__ */ d("div", {
|
|
39
|
+
className: "flex h-40 items-center justify-between gap-12",
|
|
40
|
+
children: [/* @__PURE__ */ d("span", {
|
|
41
|
+
className: "flex items-center gap-8 text-body text-fg-secondary",
|
|
42
|
+
children: [e.icon && /* @__PURE__ */ u(r, {
|
|
43
|
+
icon: e.icon,
|
|
44
|
+
size: "sm"
|
|
45
|
+
}), e.label]
|
|
46
|
+
}), /* @__PURE__ */ u(c, {
|
|
47
|
+
size: "sm",
|
|
48
|
+
appearance: "default",
|
|
49
|
+
"aria-label": e.label,
|
|
50
|
+
options: e.options,
|
|
51
|
+
value: e.value,
|
|
52
|
+
onValueChange: e.onChange
|
|
53
|
+
})]
|
|
54
|
+
}, e.label))
|
|
55
|
+
}),
|
|
56
|
+
i && i.length > 0 && /* @__PURE__ */ u("div", {
|
|
57
|
+
className: "flex flex-col px-12 py-4 hairline-t",
|
|
58
|
+
children: i.map((e) => /* @__PURE__ */ u(o, {
|
|
59
|
+
size: "sm",
|
|
60
|
+
label: e.label,
|
|
61
|
+
checked: e.checked,
|
|
62
|
+
onCheckedChange: e.onChange,
|
|
63
|
+
className: "h-40"
|
|
64
|
+
}, e.label))
|
|
65
|
+
}),
|
|
66
|
+
l && /* @__PURE__ */ d("div", {
|
|
67
|
+
className: "flex flex-col gap-8 p-12 hairline-t",
|
|
68
|
+
children: [/* @__PURE__ */ u("span", {
|
|
69
|
+
className: "text-caption font-medium text-fg-secondary",
|
|
70
|
+
children: p("displayOptions.properties", "Display properties")
|
|
71
|
+
}), /* @__PURE__ */ u("div", {
|
|
72
|
+
className: "flex flex-wrap gap-6",
|
|
73
|
+
children: l.options.map((e) => {
|
|
74
|
+
let t = l.value.includes(e.value);
|
|
75
|
+
return /* @__PURE__ */ u(a, {
|
|
76
|
+
size: "sm",
|
|
77
|
+
variant: t ? "soft" : "outline",
|
|
78
|
+
pressed: t,
|
|
79
|
+
onClick: () => l.onChange(t ? l.value.filter((t) => t !== e.value) : [...l.value, e.value]),
|
|
80
|
+
children: e.label
|
|
81
|
+
}, e.value);
|
|
82
|
+
})
|
|
83
|
+
})]
|
|
84
|
+
}),
|
|
85
|
+
f && /* @__PURE__ */ u("div", {
|
|
86
|
+
className: "p-12 hairline-t",
|
|
87
|
+
children: f
|
|
88
|
+
})
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function g({ trigger: r = "secondary", inline: a, ...o }) {
|
|
93
|
+
let s = n();
|
|
94
|
+
return !o.view && !o.rows?.length && !o.toggles?.length && !o.properties && t("DisplayOptions: pass view, rows, toggles or properties; an empty panel is never useful."), a ? /* @__PURE__ */ u("div", {
|
|
95
|
+
className: e("rounded-popover bg-raised shadow-raised"),
|
|
96
|
+
children: /* @__PURE__ */ u(h, { ...o })
|
|
97
|
+
}) : /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(l.Trigger, { children: /* @__PURE__ */ u(i, {
|
|
98
|
+
icon: f,
|
|
99
|
+
"aria-label": s("displayOptions.displayOptions", "Display options"),
|
|
100
|
+
variant: r
|
|
101
|
+
}) }), /* @__PURE__ */ u(l.Content, {
|
|
102
|
+
padding: "none",
|
|
103
|
+
align: "end",
|
|
104
|
+
"aria-label": s("displayOptions.displayOptions", "Display options"),
|
|
105
|
+
children: /* @__PURE__ */ u(h, { ...o })
|
|
106
|
+
})] });
|
|
107
|
+
}
|
|
108
|
+
process.env.NODE_ENV !== "production" && (g.displayName = "DisplayOptions");
|
|
109
|
+
//#endregion
|
|
110
|
+
export { g as DisplayOptions, m as KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS, p as KAESO_DISPLAY_OPTIONS_VARIANTS };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=display-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-options.js","names":["__icon_SlidersHorizontalIcon","cn","useUiText","Icon","IconButton","Switch","Segmented","Select","Popover","KAESO_DISPLAY_OPTIONS_VARIANTS","KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS","Panel","t","view","rows","r","toggles","toggle","properties","on","o","Tag","v","footer","DisplayOptions","props","devWarn","inline","SlidersHorizontalIcon","trigger"],"sources":["../../src/components/display-options/display-options.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { SlidersHorizontalIcon as __icon_SlidersHorizontalIcon } from \"@hugeicons/core-free-icons\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Popover } from \"../popover/popover.js\";\nimport { Segmented, type SegmentedOption } from \"../segmented/segmented.js\";\nimport { Select, type SelectOption } from \"../select/select.js\";\nimport { Switch } from \"../switch/switch.js\";\nimport { Tag } from \"../tag/tag.js\";\nimport type { IconData } from \"../icon/icon.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_DISPLAY_OPTIONS_VARIANTS = {\n trigger: {\n secondary: { classes: \"\" },\n ghost: { classes: \"\" },\n },\n} as const;\nexport const KAESO_DISPLAY_OPTIONS_DEFAULT_VARIANTS = { trigger: \"secondary\" } as const;\n\nexport interface DisplayOptionsRow {\n label: string;\n icon?: IconData | undefined;\n value: string;\n options: SelectOption[];\n onChange: (value: string) => void;\n}\nexport interface DisplayOptionsToggle {\n label: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport interface DisplayOptionsProps {\n view?: { value: string; options: SegmentedOption[]; onChange: (v: string) => void } | undefined;\n rows?: DisplayOptionsRow[] | undefined;\n toggles?: DisplayOptionsToggle[] | undefined;\n properties?: { options: { value: string; label: string }[]; value: string[]; onChange: (v: string[]) => void } | undefined;\n trigger?: keyof typeof KAESO_DISPLAY_OPTIONS_VARIANTS.trigger | undefined;\n inline?: boolean | undefined;\n footer?: ReactNode | undefined;\n}\n\nfunction Panel({ view, rows, toggles, properties, footer }: DisplayOptionsProps) {\n const t = useUiText();\n return (\n <div className=\"flex w-320 flex-col\">\n {view && (\n <div className=\"p-12 pb-8\">\n <Segmented\n aria-label={t(\"displayOptions.view\", \"View\")}\n options={view.options}\n value={view.value}\n onValueChange={view.onChange}\n fullWidth\n size=\"sm\"\n className=\"bg-item-hover\"\n />\n </div>\n )}\n {rows && rows.length > 0 && (\n <div className=\"flex flex-col px-12 py-4\">\n {rows.map((r) => (\n <div key={r.label} className=\"flex h-40 items-center justify-between gap-12\">\n <span className=\"flex items-center gap-8 text-body text-fg-secondary\">\n {r.icon && <Icon icon={r.icon} size=\"sm\" />}\n {r.label}\n </span>\n <Select size=\"sm\" appearance=\"default\" aria-label={r.label} options={r.options} value={r.value} onValueChange={r.onChange} />\n </div>\n ))}\n </div>\n )}\n {toggles && toggles.length > 0 && (\n <div className=\"flex flex-col px-12 py-4 hairline-t\">\n {toggles.map((toggle) => (\n <Switch key={toggle.label} size=\"sm\" label={toggle.label} checked={toggle.checked} onCheckedChange={toggle.onChange} className=\"h-40\" />\n ))}\n </div>\n )}\n {properties && (\n <div className=\"flex flex-col gap-8 p-12 hairline-t\">\n <span className=\"text-caption font-medium text-fg-secondary\">{t(\"displayOptions.properties\", \"Display properties\")}</span>\n <div className=\"flex flex-wrap gap-6\">\n {properties.options.map((o) => {\n const on = properties.value.includes(o.value);\n return (\n <Tag\n key={o.value}\n size=\"sm\"\n variant={on ? \"soft\" : \"outline\"}\n pressed={on}\n onClick={() => properties.onChange(on ? properties.value.filter((v) => v !== o.value) : [...properties.value, o.value])}\n >\n {o.label}\n </Tag>\n );\n })}\n </div>\n </div>\n )}\n {footer && <div className=\"p-12 hairline-t\">{footer}</div>}\n </div>\n );\n}\n\nexport function DisplayOptions({ trigger = \"secondary\", inline, ...props }: DisplayOptionsProps) {\n const t = useUiText();\n if (!props.view && !props.rows?.length && !props.toggles?.length && !props.properties)\n devWarn(\"DisplayOptions: pass view, rows, toggles or properties; an empty panel is never useful.\");\n if (inline) {\n return (\n <div className={cn(\"rounded-popover bg-raised shadow-raised\")}>\n <Panel {...props} />\n </div>\n );\n }\n return (\n <Popover>\n <Popover.Trigger>\n <IconButton icon={__icon_SlidersHorizontalIcon} aria-label={t(\"displayOptions.displayOptions\", \"Display options\")} variant={trigger} />\n </Popover.Trigger>\n <Popover.Content padding=\"none\" align=\"end\" aria-label={t(\"displayOptions.displayOptions\", \"Display options\")}>\n <Panel {...props} />\n </Popover.Content>\n </Popover>\n );\n}\nif (process.env.NODE_ENV !== \"production\") DisplayOptions.displayName = \"DisplayOptions\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../chunks/cn-CidVUKMm.js";
|
|
3
|
+
import { i as t, r as n } from "../chunks/context-BELWW79w.js";
|
|
4
|
+
import { t as r } from "../chunks/icon-CeNQtobn.js";
|
|
5
|
+
import { i } from "../chunks/menu-OURWt_hD.js";
|
|
6
|
+
import { forwardRef as a, useEffect as o, useRef as s, useState as c } from "react";
|
|
7
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
8
|
+
import { Cancel01Icon as d } from "@hugeicons/core-free-icons";
|
|
9
|
+
//#region src/components/filter-chip/filter-chip.tsx
|
|
10
|
+
var f = { size: { sm: { classes: "h-32 text-body" } } }, p = { size: "sm" }, m = 8, h = (e) => e.textValue ?? (typeof e.label == "string" || typeof e.label == "number" ? String(e.label) : e.value), g = "relative inline-flex h-full cursor-pointer items-center gap-6 px-10 font-medium transition-control tap-target hover:bg-fill-1 active:bg-fill-2 open:bg-fill-1 focus-ring-segment", _ = /* @__PURE__ */ a(function({ property: a, propertyIcon: p, operator: _, operators: v, onOperatorChange: y, value: b, values: x, selected: S = [], multiple: C, onSelectedChange: w, onRemove: T, defaultValuesOpen: E, className: D, "data-force": O }, k) {
|
|
11
|
+
let A = t(), j = n(), [M, N] = c(!!E && !!x?.length), [P, F] = c(""), I = s(null), L = (x?.length ?? 0) > m, R = P.trim().toLowerCase(), z = L && R ? (x ?? []).filter((e) => h(e).toLowerCase().includes(R) || e.value.toLowerCase().includes(R)) : x ?? [];
|
|
12
|
+
return o(() => {
|
|
13
|
+
if (!M || !L) return;
|
|
14
|
+
let e = setTimeout(() => I.current?.focus(), 0);
|
|
15
|
+
return () => clearTimeout(e);
|
|
16
|
+
}, [M, L]), /* @__PURE__ */ u("div", {
|
|
17
|
+
ref: k,
|
|
18
|
+
role: "group",
|
|
19
|
+
"aria-label": typeof a == "string" ? A("filterChip.filterNamed", "Filter: {property}", { property: a }) : A("filterChip.filter", "Filter"),
|
|
20
|
+
...O ? { "data-force": O } : {},
|
|
21
|
+
className: e("group/fc inline-flex shrink-0 items-stretch overflow-hidden rounded-pill bg-raised text-fg ring-over", f.size.sm.classes, D),
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ u("span", {
|
|
24
|
+
className: e(g, "cursor-default pl-12 text-fg-secondary hover:bg-transparent active:bg-transparent"),
|
|
25
|
+
children: [p && /* @__PURE__ */ l(r, {
|
|
26
|
+
icon: p,
|
|
27
|
+
size: "sm"
|
|
28
|
+
}), a]
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ u(i, { children: [/* @__PURE__ */ l(i.Trigger, { children: /* @__PURE__ */ l("button", {
|
|
31
|
+
type: "button",
|
|
32
|
+
className: e(g, "text-fg-secondary divider-l"),
|
|
33
|
+
disabled: !v?.length,
|
|
34
|
+
children: _
|
|
35
|
+
}) }), v && /* @__PURE__ */ l(i.Content, { children: /* @__PURE__ */ l(i.RadioGroup, {
|
|
36
|
+
value: _,
|
|
37
|
+
onValueChange: (e) => y?.(e),
|
|
38
|
+
children: v.map((e) => /* @__PURE__ */ l(i.RadioItem, {
|
|
39
|
+
value: e,
|
|
40
|
+
children: e
|
|
41
|
+
}, e))
|
|
42
|
+
}) })] }),
|
|
43
|
+
/* @__PURE__ */ u(i, {
|
|
44
|
+
open: M,
|
|
45
|
+
onOpenChange: (e) => {
|
|
46
|
+
N(e), e || F("");
|
|
47
|
+
},
|
|
48
|
+
children: [/* @__PURE__ */ l(i.Trigger, { children: /* @__PURE__ */ l("button", {
|
|
49
|
+
type: "button",
|
|
50
|
+
className: e(g, "divider-l", !T && "pr-12"),
|
|
51
|
+
disabled: !x?.length,
|
|
52
|
+
children: b
|
|
53
|
+
}) }), x && /* @__PURE__ */ l(i.Content, {
|
|
54
|
+
...L ? { className: "w-280" } : {},
|
|
55
|
+
...L ? {
|
|
56
|
+
header: /* @__PURE__ */ l("input", {
|
|
57
|
+
ref: I,
|
|
58
|
+
type: "search",
|
|
59
|
+
"aria-label": typeof a == "string" ? A("filterChip.searchNamedValues", "Search {property} values", { property: j === "en" ? a.toLowerCase() : a }) : A("filterChip.searchValues", "Search values"),
|
|
60
|
+
placeholder: A("filterChip.search", "Search"),
|
|
61
|
+
autoComplete: "off",
|
|
62
|
+
value: P,
|
|
63
|
+
onChange: (e) => F(e.target.value),
|
|
64
|
+
onKeyDown: (e) => {
|
|
65
|
+
[
|
|
66
|
+
"ArrowDown",
|
|
67
|
+
"ArrowUp",
|
|
68
|
+
"Escape",
|
|
69
|
+
"Tab",
|
|
70
|
+
"Enter"
|
|
71
|
+
].includes(e.key) || e.stopPropagation();
|
|
72
|
+
},
|
|
73
|
+
className: "h-28 w-full bg-transparent text-body text-fg outline-none placeholder:text-fg-tertiary coarse:h-36"
|
|
74
|
+
}),
|
|
75
|
+
...z.length === 0 ? { footer: A("filterChip.noMatches", "No values match") } : {}
|
|
76
|
+
} : {},
|
|
77
|
+
children: C ? z.map((e) => /* @__PURE__ */ l(i.CheckboxItem, {
|
|
78
|
+
checked: S.includes(e.value),
|
|
79
|
+
onCheckedChange: (t) => w?.(t ? [...S, e.value] : S.filter((t) => t !== e.value)),
|
|
80
|
+
...e.icon ? { icon: e.icon } : {},
|
|
81
|
+
children: /* @__PURE__ */ u("span", {
|
|
82
|
+
className: "inline-flex items-center gap-8",
|
|
83
|
+
children: [e.leading, e.label]
|
|
84
|
+
})
|
|
85
|
+
}, e.value)) : /* @__PURE__ */ l(i.RadioGroup, {
|
|
86
|
+
value: S[0] ?? "",
|
|
87
|
+
onValueChange: (e) => w?.([e]),
|
|
88
|
+
children: z.map((e) => /* @__PURE__ */ l(i.RadioItem, {
|
|
89
|
+
value: e.value,
|
|
90
|
+
closeOnClick: !0,
|
|
91
|
+
...e.icon ? { icon: e.icon } : {},
|
|
92
|
+
children: /* @__PURE__ */ u("span", {
|
|
93
|
+
className: "inline-flex items-center gap-8",
|
|
94
|
+
children: [e.leading, e.label]
|
|
95
|
+
})
|
|
96
|
+
}, e.value))
|
|
97
|
+
})
|
|
98
|
+
})]
|
|
99
|
+
}),
|
|
100
|
+
T && /* @__PURE__ */ l("span", {
|
|
101
|
+
className: "flex items-center pr-4 divider-l pl-4",
|
|
102
|
+
children: /* @__PURE__ */ l("button", {
|
|
103
|
+
type: "button",
|
|
104
|
+
"aria-label": typeof a == "string" ? A("filterChip.removeNamed", "Remove the {property} filter", { property: a }) : A("filterChip.remove", "Remove filter"),
|
|
105
|
+
onClick: T,
|
|
106
|
+
className: "relative inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg focus-ring tap-target",
|
|
107
|
+
children: /* @__PURE__ */ l(r, {
|
|
108
|
+
icon: d,
|
|
109
|
+
size: "xs"
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
})
|
|
113
|
+
]
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
process.env.NODE_ENV !== "production" && (_.displayName = "FilterChip");
|
|
117
|
+
//#endregion
|
|
118
|
+
export { _ as FilterChip, p as KAESO_FILTER_CHIP_DEFAULT_VARIANTS, f as KAESO_FILTER_CHIP_VARIANTS };
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=filter-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-chip.js","names":["__icon_Cancel01Icon","cn","useUiText","useLocale","Icon","KAESO_FILTER_CHIP_VARIANTS","KAESO_FILTER_CHIP_DEFAULT_VARIANTS","SEARCH_ABOVE","textOf","v","SEG","FilterChip","force","t","locale","open","setOpen","useState","defaultValuesOpen","values","query","setQuery","search","useRef","searchable","q","shown","useEffect","timer","property","className","propertyIcon","Menu","operators","operator","onOperatorChange","o","onRemove","value","multiple","selected","onSelectedChange","c","s","Cancel01Icon"],"sources":["../../src/components/filter-chip/filter-chip.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Menu } from \"../menu/menu.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FILTER_CHIP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 text-body\" },\n },\n} as const;\nexport const KAESO_FILTER_CHIP_DEFAULT_VARIANTS = { size: \"sm\" } as const;\n\nexport interface FilterChipChoice {\n value: string;\n label: ReactNode;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n textValue?: string | undefined;\n}\n\nconst SEARCH_ABOVE = 8;\n\nexport interface FilterChipProps {\n property: ReactNode;\n propertyIcon?: IconData | undefined;\n operator: string;\n operators?: string[] | undefined;\n onOperatorChange?: ((operator: string) => void) | undefined;\n value: ReactNode;\n values?: FilterChipChoice[] | undefined;\n selected?: string[] | undefined;\n multiple?: boolean | undefined;\n onSelectedChange?: ((selected: string[]) => void) | undefined;\n onRemove?: (() => void) | undefined;\n defaultValuesOpen?: boolean | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst textOf = (v: FilterChipChoice) => v.textValue ?? (typeof v.label === \"string\" || typeof v.label === \"number\" ? String(v.label) : v.value);\n\nconst SEG =\n \"relative inline-flex h-full cursor-pointer items-center gap-6 px-10 font-medium transition-control tap-target hover:bg-fill-1 active:bg-fill-2 open:bg-fill-1 focus-ring-segment\";\n\nexport const FilterChip = /* @__PURE__ */ forwardRef<HTMLDivElement, FilterChipProps>(function FilterChip(\n {\n property,\n propertyIcon,\n operator,\n operators,\n onOperatorChange,\n value,\n values,\n selected = [],\n multiple,\n onSelectedChange,\n onRemove,\n defaultValuesOpen,\n className,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const [open, setOpen] = useState(!!defaultValuesOpen && !!values?.length);\n const [query, setQuery] = useState(\"\");\n const search = useRef<HTMLInputElement | null>(null);\n const searchable = (values?.length ?? 0) > SEARCH_ABOVE;\n const q = query.trim().toLowerCase();\n const shown = searchable && q ? (values ?? []).filter((v) => textOf(v).toLowerCase().includes(q) || v.value.toLowerCase().includes(q)) : (values ?? []);\n useEffect(() => {\n if (!open || !searchable) return;\n const timer = setTimeout(() => search.current?.focus(), 0);\n return () => clearTimeout(timer);\n }, [open, searchable]);\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={typeof property === \"string\" ? t(\"filterChip.filterNamed\", \"Filter: {property}\", { property }) : t(\"filterChip.filter\", \"Filter\")}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"group/fc inline-flex shrink-0 items-stretch overflow-hidden rounded-pill bg-raised text-fg ring-over\",\n KAESO_FILTER_CHIP_VARIANTS.size.sm.classes,\n className,\n )}\n >\n <span className={cn(SEG, \"cursor-default pl-12 text-fg-secondary hover:bg-transparent active:bg-transparent\")}>\n {propertyIcon && <Icon icon={propertyIcon} size=\"sm\" />}\n {property}\n </span>\n <Menu>\n <Menu.Trigger>\n <button type=\"button\" className={cn(SEG, \"text-fg-secondary divider-l\")} disabled={!operators?.length}>\n {operator}\n </button>\n </Menu.Trigger>\n {operators && (\n <Menu.Content>\n <Menu.RadioGroup value={operator} onValueChange={(v) => onOperatorChange?.(v)}>\n {operators.map((o) => (\n <Menu.RadioItem key={o} value={o}>\n {o}\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n )}\n </Menu>\n <Menu\n open={open}\n onOpenChange={(o) => {\n setOpen(o);\n if (!o) setQuery(\"\");\n }}\n >\n <Menu.Trigger>\n <button type=\"button\" className={cn(SEG, \"divider-l\", !onRemove && \"pr-12\")} disabled={!values?.length}>\n {value}\n </button>\n </Menu.Trigger>\n {values && (\n <Menu.Content\n {...(searchable ? { className: \"w-280\" } : {})}\n {...(searchable\n ? {\n header: (\n <input\n ref={search}\n type=\"search\"\n aria-label={\n typeof property === \"string\"\n ? t(\"filterChip.searchNamedValues\", \"Search {property} values\", { property: locale === \"en\" ? property.toLowerCase() : property })\n : t(\"filterChip.searchValues\", \"Search values\")\n }\n placeholder={t(\"filterChip.search\", \"Search\")}\n autoComplete=\"off\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (![\"ArrowDown\", \"ArrowUp\", \"Escape\", \"Tab\", \"Enter\"].includes(e.key)) e.stopPropagation();\n }}\n className=\"h-28 w-full bg-transparent text-body text-fg outline-none placeholder:text-fg-tertiary coarse:h-36\"\n />\n ),\n ...(shown.length === 0 ? { footer: t(\"filterChip.noMatches\", \"No values match\") } : {}),\n }\n : {})}\n >\n {multiple ? (\n shown.map((v) => (\n <Menu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={(c) => onSelectedChange?.(c ? [...selected, v.value] : selected.filter((s) => s !== v.value))}\n {...(v.icon ? { icon: v.icon } : {})}\n >\n <span className=\"inline-flex items-center gap-8\">\n {v.leading}\n {v.label}\n </span>\n </Menu.CheckboxItem>\n ))\n ) : (\n <Menu.RadioGroup value={selected[0] ?? \"\"} onValueChange={(s) => onSelectedChange?.([s])}>\n {shown.map((v) => (\n <Menu.RadioItem key={v.value} value={v.value} closeOnClick {...(v.icon ? { icon: v.icon } : {})}>\n <span className=\"inline-flex items-center gap-8\">\n {v.leading}\n {v.label}\n </span>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n )}\n </Menu.Content>\n )}\n </Menu>\n {onRemove && (\n <span className=\"flex items-center pr-4 divider-l pl-4\">\n <button\n type=\"button\"\n aria-label={\n typeof property === \"string\" ? t(\"filterChip.removeNamed\", \"Remove the {property} filter\", { property }) : t(\"filterChip.remove\", \"Remove filter\")\n }\n onClick={onRemove}\n className=\"relative inline-flex size-24 cursor-pointer items-center justify-center rounded-pill text-fg-tertiary transition-control hover:bg-fill-2 hover:text-fg focus-ring tap-target\"\n >\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" />\n </button>\n </span>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") FilterChip.displayName = \"FilterChip\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../chunks/cn-CidVUKMm.js";
|
|
3
|
+
import { n as t } from "../chunks/inset-BLMdxX4I.js";
|
|
4
|
+
import { i as n } from "../chunks/context-BELWW79w.js";
|
|
5
|
+
import { t as r } from "../chunks/arrow-focus-BcySmwwU.js";
|
|
6
|
+
import { forwardRef as i } from "react";
|
|
7
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/filter-row/filter-row.tsx
|
|
9
|
+
var s = { size: {
|
|
10
|
+
md: { classes: "px-24 py-8" },
|
|
11
|
+
inset: { classes: "pt-16 pb-16" }
|
|
12
|
+
} }, c = { size: "md" }, l = /* @__PURE__ */ i(function({ tabs: i, children: c, filtersLabel: l, size: u, className: d, ...f }, p) {
|
|
13
|
+
let m = t(), h = n(), g = u ?? (m ? "inset" : "md");
|
|
14
|
+
return /* @__PURE__ */ o("div", {
|
|
15
|
+
ref: p,
|
|
16
|
+
className: e("flex min-w-0 shrink-0 flex-wrap items-center justify-between gap-x-16 gap-y-8", s.size[g].classes, d),
|
|
17
|
+
...f,
|
|
18
|
+
children: [i && /* @__PURE__ */ a("div", {
|
|
19
|
+
className: "flex max-w-full min-w-0",
|
|
20
|
+
children: i
|
|
21
|
+
}), c && /* @__PURE__ */ a("div", {
|
|
22
|
+
role: "toolbar",
|
|
23
|
+
"aria-label": l ?? h("filterRow.filters", "Filters"),
|
|
24
|
+
"aria-orientation": "horizontal",
|
|
25
|
+
className: "flex max-w-full min-w-0 flex-wrap items-center gap-8",
|
|
26
|
+
onKeyDown: (e) => r(e),
|
|
27
|
+
children: c
|
|
28
|
+
})]
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
process.env.NODE_ENV !== "production" && (l.displayName = "FilterRow");
|
|
32
|
+
//#endregion
|
|
33
|
+
export { l as FilterRow, c as KAESO_FILTER_ROW_DEFAULT_VARIANTS, s as KAESO_FILTER_ROW_VARIANTS };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=filter-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-row.js","names":["cn","useInset","useUiText","arrowFocus","KAESO_FILTER_ROW_VARIANTS","KAESO_FILTER_ROW_DEFAULT_VARIANTS","FilterRow","sizeProp","props","inset","t","size","className","tabs","children","filtersLabel"],"sources":["../../src/components/filter-row/filter-row.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type KeyboardEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useInset } from \"../../utils/inset.js\";\nimport { arrowFocus } from \"../../utils/arrow-focus.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FILTER_ROW_VARIANTS = {\n size: {\n md: { classes: \"px-24 py-8\" },\n inset: {\n classes: \"pt-16 pb-16\",\n },\n },\n} as const;\nexport const KAESO_FILTER_ROW_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface FilterRowProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n tabs?: ReactNode | undefined;\n children?: ReactNode | undefined;\n filtersLabel?: string | undefined;\n size?: keyof typeof KAESO_FILTER_ROW_VARIANTS.size | undefined;\n}\n\nexport const FilterRow = /* @__PURE__ */ forwardRef<HTMLDivElement, FilterRowProps>(function FilterRow(\n { tabs, children, filtersLabel, size: sizeProp, className, ...props },\n ref,\n) {\n const inset = useInset();\n const t = useUiText();\n const size = sizeProp ?? (inset ? \"inset\" : \"md\");\n return (\n <div\n ref={ref}\n className={cn(\"flex min-w-0 shrink-0 flex-wrap items-center justify-between gap-x-16 gap-y-8\", KAESO_FILTER_ROW_VARIANTS.size[size].classes, className)}\n {...props}\n >\n {tabs && <div className=\"flex max-w-full min-w-0\">{tabs}</div>}\n {children && (\n <div\n role=\"toolbar\"\n aria-label={filtersLabel ?? t(\"filterRow.filters\", \"Filters\")}\n aria-orientation=\"horizontal\"\n className=\"flex max-w-full min-w-0 flex-wrap items-center gap-8\"\n onKeyDown={(e: KeyboardEvent<HTMLDivElement>) => arrowFocus(e)}\n >\n {children}\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") FilterRow.displayName = \"FilterRow\";\n"],"mappings":";;;;;;;;AAMA,IAAaI,IAA4B,EACvC,MAAM;CACJ,IAAI,EAAE,SAAS,aAAa;CAC5B,OAAO,EACL,SAAS,cACX;AACF,EACF,GACaC,IAAoC,EAAE,MAAM,KAAK,GASjDC,IAA4B,kBAA2C,SAClF,EAAE,SAAM,aAAU,iBAAc,MAAMC,GAAU,cAAW,GAAGC,KAC9D,GACA;CACA,IAAMC,IAAQR,EAAS,GACjBS,IAAIR,EAAU,GACdS,IAAOJ,MAAaE,IAAQ,UAAU;CAC5C,OACE,kBAAC,OAAD;EACO;EACL,WAAWT,EAAG,iFAAiFI,EAA0B,KAAKO,EAAK,CAAC,SAASC,CAAS;EACtJ,GAAIJ;EAHN,UAAA,CAKGK,KAAQ,kBAAC,OAAD;GAAK,WAAU;GAA2B,UAAAA;EAAU,CAAA,GAC5DC,KACC,kBAAC,OAAD;GACE,MAAK;GACL,cAAYC,KAAgBL,EAAE,qBAAqB,SAAS;GAC5D,oBAAiB;GACjB,WAAU;GACV,YAAY,MAAqCP,EAAW,CAAC;GAE5D;EACE,CAAA,CAEJ;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../chunks/cn-CidVUKMm.js";
|
|
3
|
+
import { i as t } from "../chunks/context-BELWW79w.js";
|
|
4
|
+
import { t as n } from "../chunks/icon-CeNQtobn.js";
|
|
5
|
+
import { forwardRef as r, useLayoutEffect as i, useRef as a, useState as o } from "react";
|
|
6
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/flow/flow.tsx
|
|
8
|
+
var l = { node: {
|
|
9
|
+
pill: { classes: "h-36 rounded-pill px-14" },
|
|
10
|
+
box: { classes: "min-h-56 rounded-well px-16 py-10" }
|
|
11
|
+
} }, u = { node: "pill" }, d = /* @__PURE__ */ r(function({ columns: r, edges: u, node: d = "pill", animated: f = !1, className: p, "aria-label": m }, h) {
|
|
12
|
+
let g = t(), [_, v = ""] = g("flow.connection", "{from} to {to}").split("{from}"), [y, b = ""] = v.split("{to}"), x = new Map(r.flat().map((e) => [e.id, e.label])), S = u.filter(([e, t]) => x.has(e) && x.has(t)), C = a(null), [w, T] = o([]), [E, D] = o({
|
|
13
|
+
w: 0,
|
|
14
|
+
h: 0
|
|
15
|
+
});
|
|
16
|
+
return i(() => {
|
|
17
|
+
let e = C.current;
|
|
18
|
+
if (!e) return;
|
|
19
|
+
let t = () => {
|
|
20
|
+
let t = e.getBoundingClientRect(), n = (t) => e.querySelector(`[data-flow-node="${t}"]`)?.getBoundingClientRect();
|
|
21
|
+
D({
|
|
22
|
+
w: Math.round(t.width),
|
|
23
|
+
h: Math.round(t.height)
|
|
24
|
+
}), T(u.flatMap(([e, r]) => {
|
|
25
|
+
let i = n(e), a = n(r);
|
|
26
|
+
if (!i || !a) return [];
|
|
27
|
+
let o = Math.round(i.right - t.left), s = Math.round(i.top + i.height / 2 - t.top) + .5, c = Math.round(a.left - t.left), l = Math.round(a.top + a.height / 2 - t.top) + .5, u = Math.round((o + c) / 2), d = Math.min(12, Math.abs(l - s) / 2, (c - o) / 4);
|
|
28
|
+
if (Math.abs(l - s) < 1) return [{
|
|
29
|
+
key: `${e}-${r}`,
|
|
30
|
+
d: `M${o} ${s}H${c}`
|
|
31
|
+
}];
|
|
32
|
+
let f = l > s ? 1 : -1;
|
|
33
|
+
return [{
|
|
34
|
+
key: `${e}-${r}`,
|
|
35
|
+
d: `M${o} ${s}H${u - d}Q${u} ${s} ${u} ${s + f * d}V${l - f * d}Q${u} ${l} ${u + d} ${l}H${c}`
|
|
36
|
+
}];
|
|
37
|
+
}));
|
|
38
|
+
};
|
|
39
|
+
t();
|
|
40
|
+
let n = typeof ResizeObserver < "u" ? new ResizeObserver(t) : null;
|
|
41
|
+
return n?.observe(e), document.fonts?.ready.then(t), () => n?.disconnect();
|
|
42
|
+
}, [r, u]), /* @__PURE__ */ c("div", {
|
|
43
|
+
ref: (e) => {
|
|
44
|
+
C.current = e, typeof h == "function" ? h(e) : h && (h.current = e);
|
|
45
|
+
},
|
|
46
|
+
role: "figure",
|
|
47
|
+
"aria-label": m ?? g("flow.label", "Flow diagram"),
|
|
48
|
+
className: e("relative -m-4 inline-flex max-w-full-bleed-4 items-center gap-64 overflow-x-auto p-4 scrollbar-quiet", p),
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ s("svg", {
|
|
51
|
+
"aria-hidden": !0,
|
|
52
|
+
className: "pointer-events-none absolute inset-0 overflow-visible",
|
|
53
|
+
width: E.w,
|
|
54
|
+
height: E.h,
|
|
55
|
+
children: w.map((e) => /* @__PURE__ */ c("g", { children: [/* @__PURE__ */ s("path", {
|
|
56
|
+
d: e.d,
|
|
57
|
+
fill: "none",
|
|
58
|
+
stroke: "var(--k-line-strong)",
|
|
59
|
+
strokeWidth: 1.5,
|
|
60
|
+
strokeLinecap: "round",
|
|
61
|
+
strokeLinejoin: "round"
|
|
62
|
+
}), f && /* @__PURE__ */ s("circle", {
|
|
63
|
+
r: 2.5,
|
|
64
|
+
fill: "var(--k-text-secondary)",
|
|
65
|
+
children: /* @__PURE__ */ s("animateMotion", {
|
|
66
|
+
dur: "2.4s",
|
|
67
|
+
repeatCount: "indefinite",
|
|
68
|
+
path: e.d
|
|
69
|
+
})
|
|
70
|
+
})] }, e.key))
|
|
71
|
+
}),
|
|
72
|
+
r.map((t, r) => /* @__PURE__ */ s("div", {
|
|
73
|
+
className: "relative flex shrink-0 flex-col items-start gap-16",
|
|
74
|
+
children: t.map((t) => /* @__PURE__ */ c("div", {
|
|
75
|
+
"data-flow-node": t.id,
|
|
76
|
+
className: e("inline-flex items-center gap-8 bg-raised text-body font-medium text-fg", l.node[d].classes, t.emphasis ? "ring-step" : "shadow-control"),
|
|
77
|
+
children: [
|
|
78
|
+
t.leading,
|
|
79
|
+
t.icon && /* @__PURE__ */ s(n, {
|
|
80
|
+
icon: t.icon,
|
|
81
|
+
size: "sm",
|
|
82
|
+
className: "text-fg-secondary"
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ c("span", {
|
|
85
|
+
className: "flex flex-col whitespace-nowrap",
|
|
86
|
+
children: [/* @__PURE__ */ s("span", { children: t.label }), t.description && d === "box" && /* @__PURE__ */ s("span", {
|
|
87
|
+
className: "text-small font-regular text-fg-secondary",
|
|
88
|
+
children: t.description
|
|
89
|
+
})]
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
}, t.id))
|
|
93
|
+
}, r)),
|
|
94
|
+
S.length > 0 && /* @__PURE__ */ s("ul", {
|
|
95
|
+
className: "sr-only",
|
|
96
|
+
children: S.map(([e, t]) => /* @__PURE__ */ c("li", { children: [
|
|
97
|
+
_,
|
|
98
|
+
x.get(e),
|
|
99
|
+
y,
|
|
100
|
+
x.get(t),
|
|
101
|
+
b
|
|
102
|
+
] }, `${e}-${t}`))
|
|
103
|
+
})
|
|
104
|
+
]
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
process.env.NODE_ENV !== "production" && (d.displayName = "Flow");
|
|
108
|
+
//#endregion
|
|
109
|
+
export { d as Flow, u as KAESO_FLOW_DEFAULT_VARIANTS, l as KAESO_FLOW_VARIANTS };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.js","names":["cn","useUiText","Icon","KAESO_FLOW_VARIANTS","KAESO_FLOW_DEFAULT_VARIANTS","Flow","ariaLabel","t","beforeFrom","fromRest","beforeTo","afterTo","labels","columns","n","connections","edges","a","b","root","useRef","paths","setPaths","useState","size","setSize","useLayoutEffect","el","measure","box","pos","id","p","q","x1","y1","x2","y2","mx","r","dir","ro","ref","className","animated","col","node","ci"],"sources":["../../src/components/flow/flow.tsx"],"sourcesContent":["import { forwardRef, useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_FLOW_VARIANTS = {\n node: {\n pill: { classes: \"h-36 rounded-pill px-14\" },\n box: { classes: \"min-h-56 rounded-well px-16 py-10\" },\n },\n} as const;\nexport const KAESO_FLOW_DEFAULT_VARIANTS = { node: \"pill\" } as const;\n\nexport interface FlowNode {\n id: string;\n label: ReactNode;\n description?: ReactNode | undefined;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n emphasis?: boolean | undefined;\n}\n\nexport interface FlowProps {\n columns: FlowNode[][];\n edges: [string, string][];\n node?: keyof typeof KAESO_FLOW_VARIANTS.node | undefined;\n animated?: boolean | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\ninterface Path {\n d: string;\n key: string;\n}\n\nexport const Flow = /* @__PURE__ */ forwardRef<HTMLDivElement, FlowProps>(function Flow(\n { columns, edges, node = \"pill\", animated = false, className, \"aria-label\": ariaLabel },\n ref,\n) {\n const t = useUiText();\n const [beforeFrom, fromRest = \"\"] = t(\"flow.connection\", \"{from} to {to}\").split(\"{from}\");\n const [beforeTo, afterTo = \"\"] = fromRest.split(\"{to}\");\n const labels = new Map(columns.flat().map((n) => [n.id, n.label]));\n const connections = edges.filter(([a, b]) => labels.has(a) && labels.has(b));\n const root = useRef<HTMLDivElement | null>(null);\n const [paths, setPaths] = useState<Path[]>([]);\n const [size, setSize] = useState({ w: 0, h: 0 });\n useLayoutEffect(() => {\n const el = root.current;\n if (!el) return;\n const measure = () => {\n const box = el.getBoundingClientRect();\n const pos = (id: string) => el.querySelector<HTMLElement>(`[data-flow-node=\"${id}\"]`)?.getBoundingClientRect();\n setSize({ w: Math.round(box.width), h: Math.round(box.height) });\n setPaths(\n edges.flatMap(([a, b]) => {\n const p = pos(a);\n const q = pos(b);\n if (!p || !q) return [];\n const x1 = Math.round(p.right - box.left);\n const y1 = Math.round(p.top + p.height / 2 - box.top) + 0.5;\n const x2 = Math.round(q.left - box.left);\n const y2 = Math.round(q.top + q.height / 2 - box.top) + 0.5;\n const mx = Math.round((x1 + x2) / 2);\n const r = Math.min(12, Math.abs(y2 - y1) / 2, (x2 - x1) / 4);\n if (Math.abs(y2 - y1) < 1) return [{ key: `${a}-${b}`, d: `M${x1} ${y1}H${x2}` }];\n const dir = y2 > y1 ? 1 : -1;\n return [{ key: `${a}-${b}`, d: `M${x1} ${y1}H${mx - r}Q${mx} ${y1} ${mx} ${y1 + dir * r}V${y2 - dir * r}Q${mx} ${y2} ${mx + r} ${y2}H${x2}` }];\n }),\n );\n };\n measure();\n const ro = typeof ResizeObserver !== \"undefined\" ? new ResizeObserver(measure) : null;\n ro?.observe(el);\n document.fonts?.ready.then(measure);\n return () => ro?.disconnect();\n }, [columns, edges]);\n return (\n <div\n ref={(e) => {\n root.current = e;\n if (typeof ref === \"function\") ref(e);\n else if (ref) ref.current = e;\n }}\n role=\"figure\"\n aria-label={ariaLabel ?? t(\"flow.label\", \"Flow diagram\")}\n className={cn(\"relative -m-4 inline-flex max-w-full-bleed-4 items-center gap-64 overflow-x-auto p-4 scrollbar-quiet\", className)}\n >\n <svg aria-hidden className=\"pointer-events-none absolute inset-0 overflow-visible\" width={size.w} height={size.h}>\n {paths.map((p) => (\n <g key={p.key}>\n <path d={p.d} fill=\"none\" stroke=\"var(--k-line-strong)\" strokeWidth={1.5} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n {animated && (\n <circle r={2.5} fill=\"var(--k-text-secondary)\">\n <animateMotion dur=\"2.4s\" repeatCount=\"indefinite\" path={p.d} />\n </circle>\n )}\n </g>\n ))}\n </svg>\n {columns.map((col, ci) => (\n <div key={ci} className=\"relative flex shrink-0 flex-col items-start gap-16\">\n {col.map((n) => (\n <div\n key={n.id}\n data-flow-node={n.id}\n className={cn(\n \"inline-flex items-center gap-8 bg-raised text-body font-medium text-fg\",\n KAESO_FLOW_VARIANTS.node[node].classes,\n n.emphasis ? \"ring-step\" : \"shadow-control\",\n )}\n >\n {n.leading}\n {n.icon && <Icon icon={n.icon} size=\"sm\" className=\"text-fg-secondary\" />}\n <span className=\"flex flex-col whitespace-nowrap\">\n <span>{n.label}</span>\n {n.description && node === \"box\" && <span className=\"text-small font-regular text-fg-secondary\">{n.description}</span>}\n </span>\n </div>\n ))}\n </div>\n ))}\n {connections.length > 0 && (\n <ul className=\"sr-only\">\n {connections.map(([a, b]) => (\n <li key={`${a}-${b}`}>\n {beforeFrom}\n {labels.get(a)}\n {beforeTo}\n {labels.get(b)}\n {afterTo}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Flow.displayName = \"Flow\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../chunks/cn-CidVUKMm.js";
|
|
3
|
+
import { forwardRef as t } from "react";
|
|
4
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/heading/heading.tsx
|
|
6
|
+
var r = { size: {
|
|
7
|
+
"title-sm": { classes: "text-title-sm font-semibold" },
|
|
8
|
+
title: { classes: "text-title font-semibold" },
|
|
9
|
+
"title-lg": { classes: "text-title-lg font-semibold" },
|
|
10
|
+
display: { classes: "text-display font-semibold" }
|
|
11
|
+
} }, i = { size: "title-sm" }, a = {
|
|
12
|
+
display: 1,
|
|
13
|
+
"title-lg": 1,
|
|
14
|
+
title: 2,
|
|
15
|
+
"title-sm": 2
|
|
16
|
+
}, o = /* @__PURE__ */ t(function({ size: t = i.size, level: o, balance: s = !0, className: c, ...l }, u) {
|
|
17
|
+
let d = `h${o ?? a[t]}`;
|
|
18
|
+
return /* @__PURE__ */ n(d, {
|
|
19
|
+
ref: u,
|
|
20
|
+
className: e("text-fg", r.size[t].classes, s && "text-balance", c),
|
|
21
|
+
...l
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
process.env.NODE_ENV !== "production" && (o.displayName = "Heading");
|
|
25
|
+
//#endregion
|
|
26
|
+
export { o as Heading, i as KAESO_HEADING_DEFAULT_VARIANTS, r as KAESO_HEADING_VARIANTS };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.js","names":["cn","KAESO_HEADING_VARIANTS","KAESO_HEADING_DEFAULT_VARIANTS","DEFAULT_LEVEL","Heading","props","Tag","level","size","balance","className"],"sources":["../../src/components/heading/heading.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_HEADING_VARIANTS = {\n size: {\n \"title-sm\": { classes: \"text-title-sm font-semibold\" },\n title: { classes: \"text-title font-semibold\" },\n \"title-lg\": { classes: \"text-title-lg font-semibold\" },\n display: { classes: \"text-display font-semibold\" },\n },\n} as const;\nexport const KAESO_HEADING_DEFAULT_VARIANTS = { size: \"title-sm\" } as const;\n\nconst DEFAULT_LEVEL: Record<keyof typeof KAESO_HEADING_VARIANTS.size, 1 | 2 | 3> = {\n display: 1,\n \"title-lg\": 1,\n title: 2,\n \"title-sm\": 2,\n};\n\nexport interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n size?: keyof typeof KAESO_HEADING_VARIANTS.size | undefined;\n level?: 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n balance?: boolean | undefined;\n}\n\nexport const Heading = /* @__PURE__ */ forwardRef<HTMLHeadingElement, HeadingProps>(function Heading(\n { size = KAESO_HEADING_DEFAULT_VARIANTS.size, level, balance = true, className, ...props },\n ref,\n) {\n const Tag = `h${level ?? DEFAULT_LEVEL[size]}` as \"h1\";\n return <Tag ref={ref} className={cn(\"text-fg\", KAESO_HEADING_VARIANTS.size[size].classes, balance && \"text-balance\", className)} {...props} />;\n});\nif (process.env.NODE_ENV !== \"production\") Heading.displayName = \"Heading\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAyB,EACpC,MAAM;CACJ,YAAY,EAAE,SAAS,8BAA8B;CACrD,OAAO,EAAE,SAAS,2BAA2B;CAC7C,YAAY,EAAE,SAAS,8BAA8B;CACrD,SAAS,EAAE,SAAS,6BAA6B;AACnD,EACF,GACaC,IAAiC,EAAE,MAAM,WAAW,GAE3DC,IAA6E;CACjF,SAAS;CACT,YAAY;CACZ,OAAO;CACP,YAAY;AACd,GAQaC,IAA0B,kBAA6C,SAClF,EAAE,UAAOF,EAA+B,MAAM,UAAO,aAAU,IAAM,cAAW,GAAGG,KACnF,GACA;CACA,IAAMC,IAAM,IAAIC,KAASJ,EAAcK;CACvC,OAAO,kBAACF,GAAD;EAAU;EAAK,WAAWN,EAAG,WAAWC,EAAuB,KAAKO,EAAK,CAAC,SAASC,KAAW,gBAAgBC,CAAS;EAAG,GAAIL;CAAQ,CAAA;AAC/I,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc"}
|