@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,83 @@
|
|
|
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 { formatNumber as n } from "../../format.js";
|
|
5
|
+
import { forwardRef as r } from "react";
|
|
6
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
7
|
+
import { max as o } from "d3-array";
|
|
8
|
+
//#region src/components/charts/heatmap.tsx
|
|
9
|
+
var s = { layout: {
|
|
10
|
+
week: { classes: "" },
|
|
11
|
+
year: { classes: "" }
|
|
12
|
+
} }, c = { layout: "week" }, l = [
|
|
13
|
+
"var(--k-fill-1)",
|
|
14
|
+
"color-mix(in oklab, var(--k-viz-1) 25%, var(--k-fill-1))",
|
|
15
|
+
"color-mix(in oklab, var(--k-viz-1) 50%, var(--k-fill-1))",
|
|
16
|
+
"color-mix(in oklab, var(--k-viz-1) 75%, var(--k-fill-1))",
|
|
17
|
+
"var(--k-viz-1)"
|
|
18
|
+
], u = /* @__PURE__ */ r(function({ rows: r, columns: s, values: c, formatValue: u = (e) => n(e), className: d, "aria-label": f, columnLabelEvery: p = 3 }, m) {
|
|
19
|
+
let h = t(), g = o(c.flat()) ?? 0, _ = (e) => e <= 0 || g === 0 ? 0 : Math.min(4, Math.ceil(e / g * 4));
|
|
20
|
+
return /* @__PURE__ */ a("div", {
|
|
21
|
+
ref: m,
|
|
22
|
+
className: e("flex min-w-0 max-w-full flex-col gap-12", d),
|
|
23
|
+
children: [/* @__PURE__ */ a("div", {
|
|
24
|
+
role: "table",
|
|
25
|
+
tabIndex: 0,
|
|
26
|
+
"aria-label": f,
|
|
27
|
+
className: "inline-grid max-w-full gap-3 overflow-x-auto scrollbar-quiet rounded-cell focus-ring",
|
|
28
|
+
style: { gridTemplateColumns: `40px repeat(${s.length}, 12px)` },
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ i("span", {}),
|
|
31
|
+
s.map((e, t) => /* @__PURE__ */ i("span", {
|
|
32
|
+
className: "h-16 text-micro text-fg-tertiary tabular whitespace-nowrap",
|
|
33
|
+
"aria-hidden": !0,
|
|
34
|
+
children: t % p === 0 ? e : ""
|
|
35
|
+
}, e)),
|
|
36
|
+
r.map((e, t) => /* @__PURE__ */ a("div", {
|
|
37
|
+
role: "row",
|
|
38
|
+
className: "contents",
|
|
39
|
+
children: [/* @__PURE__ */ i("span", {
|
|
40
|
+
role: "rowheader",
|
|
41
|
+
className: "flex h-12 items-center text-micro text-fg-tertiary",
|
|
42
|
+
children: e
|
|
43
|
+
}), s.map((n, r) => {
|
|
44
|
+
let a = c[t]?.[r] ?? 0, o = h("heatmap.cell", "{row} {column}: {value}", {
|
|
45
|
+
row: e,
|
|
46
|
+
column: n,
|
|
47
|
+
value: u(a)
|
|
48
|
+
});
|
|
49
|
+
return /* @__PURE__ */ i("span", {
|
|
50
|
+
role: "cell",
|
|
51
|
+
"aria-label": o,
|
|
52
|
+
title: o,
|
|
53
|
+
className: "size-12 rounded-cell",
|
|
54
|
+
style: { background: l[_(a)] }
|
|
55
|
+
}, n);
|
|
56
|
+
})]
|
|
57
|
+
}, e))
|
|
58
|
+
]
|
|
59
|
+
}), /* @__PURE__ */ a("div", {
|
|
60
|
+
className: "flex items-center gap-3 text-caption font-medium text-fg-tertiary",
|
|
61
|
+
"aria-hidden": !0,
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ i("span", {
|
|
64
|
+
className: "mr-4",
|
|
65
|
+
children: h("heatmap.less", "Less")
|
|
66
|
+
}),
|
|
67
|
+
l.map((e) => /* @__PURE__ */ i("span", {
|
|
68
|
+
className: "size-12 rounded-cell",
|
|
69
|
+
style: { background: e }
|
|
70
|
+
}, e)),
|
|
71
|
+
/* @__PURE__ */ i("span", {
|
|
72
|
+
className: "ml-4",
|
|
73
|
+
children: h("heatmap.more", "More")
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
process.env.NODE_ENV !== "production" && (u.displayName = "Heatmap");
|
|
80
|
+
//#endregion
|
|
81
|
+
export { u as Heatmap, c as KAESO_HEATMAP_DEFAULT_VARIANTS, s as KAESO_HEATMAP_VARIANTS };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=heatmap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap.js","names":["d3max","cn","useUiText","KAESO_HEATMAP_VARIANTS","KAESO_HEATMAP_DEFAULT_VARIANTS","RAMP","Heatmap","formatNumber","v","ariaLabel","t","hi","max","values","level","className","columns","i","columnLabelEvery","c","rows","r","ri","ci","cell","formatValue"],"sources":["../../../src/components/charts/heatmap.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { max as d3max } from \"d3-array\";\nimport { cn } from \"../../utils/cn.js\";\nimport { formatNumber } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_HEATMAP_VARIANTS = {\n layout: {\n week: { classes: \"\" },\n year: { classes: \"\" },\n },\n} as const;\nexport const KAESO_HEATMAP_DEFAULT_VARIANTS = { layout: \"week\" } as const;\n\nconst RAMP = [\n \"var(--k-fill-1)\",\n \"color-mix(in oklab, var(--k-viz-1) 25%, var(--k-fill-1))\",\n \"color-mix(in oklab, var(--k-viz-1) 50%, var(--k-fill-1))\",\n \"color-mix(in oklab, var(--k-viz-1) 75%, var(--k-fill-1))\",\n \"var(--k-viz-1)\",\n];\n\nexport const Heatmap = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n {\n rows: string[];\n columns: string[];\n values: number[][];\n formatValue?: ((v: number) => string) | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n columnLabelEvery?: number | undefined;\n }\n>(function Heatmap({ rows, columns, values, formatValue = (v) => formatNumber(v), className, \"aria-label\": ariaLabel, columnLabelEvery = 3 }, ref) {\n const t = useUiText();\n const hi = d3max(values.flat()) ?? 0;\n const level = (v: number) => (v <= 0 || hi === 0 ? 0 : Math.min(4, Math.ceil((v / hi) * 4)));\n return (\n <div ref={ref} className={cn(\"flex min-w-0 max-w-full flex-col gap-12\", className)}>\n <div\n role=\"table\"\n tabIndex={0}\n aria-label={ariaLabel}\n className=\"inline-grid max-w-full gap-3 overflow-x-auto scrollbar-quiet rounded-cell focus-ring\"\n style={{ gridTemplateColumns: `40px repeat(${columns.length}, 12px)` }}\n >\n <span />\n {columns.map((c, i) => (\n <span key={c} className=\"h-16 text-micro text-fg-tertiary tabular whitespace-nowrap\" aria-hidden>\n {i % columnLabelEvery === 0 ? c : \"\"}\n </span>\n ))}\n {rows.map((r, ri) => (\n <div key={r} role=\"row\" className=\"contents\">\n <span role=\"rowheader\" className=\"flex h-12 items-center text-micro text-fg-tertiary\">\n {r}\n </span>\n {columns.map((c, ci) => {\n const v = values[ri]?.[ci] ?? 0;\n const cell = t(\"heatmap.cell\", \"{row} {column}: {value}\", { row: r, column: c, value: formatValue(v) });\n return <span key={c} role=\"cell\" aria-label={cell} title={cell} className=\"size-12 rounded-cell\" style={{ background: RAMP[level(v)] }} />;\n })}\n </div>\n ))}\n </div>\n <div className=\"flex items-center gap-3 text-caption font-medium text-fg-tertiary\" aria-hidden>\n <span className=\"mr-4\">{t(\"heatmap.less\", \"Less\")}</span>\n {RAMP.map((c) => (\n <span key={c} className=\"size-12 rounded-cell\" style={{ background: c }} />\n ))}\n <span className=\"ml-4\">{t(\"heatmap.more\", \"More\")}</span>\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Heatmap.displayName = \"Heatmap\";\n"],"mappings":";;;;;;;;AAMA,IAAaG,IAAyB,EACpC,QAAQ;CACN,MAAM,EAAE,SAAS,GAAG;CACpB,MAAM,EAAE,SAAS,GAAG;AACtB,EACF,GACaC,IAAiC,EAAE,QAAQ,OAAO,GAEzDC,IAAO;CACX;CACA;CACA;CACA;CACA;AACF,GAEaC,IAA0B,kBAWrC,SAAiB,EAAE,SAAM,YAAS,WAAQ,kBAAe,MAAMC,EAAaC,CAAC,GAAG,cAAW,cAAcC,GAAW,sBAAmB,KAAK,GAAK;CACjJ,IAAMC,IAAIR,EAAU,GACdS,IAAKX,EAAMa,EAAO,KAAK,CAAC,KAAK,GAC7BC,KAAS,MAAeN,KAAK,KAAKG,MAAO,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,KAAMH,IAAIG,IAAM,CAAC,CAAC;CAC1F,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWV,EAAG,2CAA2Cc,CAAS;EAAjF,UAAA,CACE,kBAAC,OAAD;GACE,MAAK;GACL,UAAU;GACV,cAAYN;GACZ,WAAU;GACV,OAAO,EAAE,qBAAqB,eAAeO,EAAQ,OAAO,SAAS;GALvE,UAAA;IAOE,kBAAC,QAAD,CAAO,CAAA;IACNA,EAAQ,KAAK,GAAG,MACf,kBAAC,QAAD;KAAc,WAAU;KAA6D,eAAA;KAClF,UAAAC,IAAIC,MAAqB,IAAIC,IAAI;IAC9B,GAFKA,CAEL,CACP;IACAC,EAAK,KAAK,GAAG,MACZ,kBAAC,OAAD;KAAa,MAAK;KAAM,WAAU;KAAlC,UAAA,CACE,kBAAC,QAAD;MAAM,MAAK;MAAY,WAAU;MAC9B,UAAAC;KACG,CAAA,GACLL,EAAQ,KAAK,GAAG,MAAO;MACtB,IAAMR,IAAIK,EAAOS,EAAG,GAAGC,MAAO,GACxBC,IAAOd,EAAE,gBAAgB,2BAA2B;OAAE,KAAKW;OAAG,QAAQF;OAAG,OAAOM,EAAYjB,CAAC;MAAE,CAAC;MACtG,OAAO,kBAAC,QAAD;OAAc,MAAK;OAAO,cAAYgB;OAAM,OAAOA;OAAM,WAAU;OAAuB,OAAO,EAAE,YAAYnB,EAAKS,EAAMN,CAAC,GAAG;MAAI,GAAvHW,CAAuH;KAC3I,CAAC,CACE;IATK,GAAAE,CASL,CACN;GACE;EACL,CAAA,GAAA,kBAAC,OAAD;GAAK,WAAU;GAAoE,eAAA;GAAnF,UAAA;IACE,kBAAC,QAAD;KAAM,WAAU;KAAQ,UAAAX,EAAE,gBAAgB,MAAM;IAAQ,CAAA;IACvDL,EAAK,KAAK,MACT,kBAAC,QAAD;KAAc,WAAU;KAAuB,OAAO,EAAE,YAAYc,EAAE;IAAI,GAA/DA,CAA+D,CAC3E;IACD,kBAAC,QAAD;KAAM,WAAU;KAAQ,UAAAT,EAAE,gBAAgB,MAAM;IAAQ,CAAA;GACrD;EACF,CAAA,CAAA;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc"}
|
|
@@ -0,0 +1,110 @@
|
|
|
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 { formatNumber as n } from "../../format.js";
|
|
5
|
+
import { D as r, b as i, n as a } from "../../chunks/core-Bgefcs3z.js";
|
|
6
|
+
import { forwardRef as o, useId as s, useMemo as c, useState as l } from "react";
|
|
7
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
8
|
+
import { sankey as f, sankeyLinkHorizontal as p } from "d3-sankey";
|
|
9
|
+
//#region src/components/charts/sankey.tsx
|
|
10
|
+
var m = { size: { md: { classes: "" } } }, h = { size: "md" }, g = /* @__PURE__ */ o(function({ nodes: o, links: m, height: h = 320, formatValue: g = (e) => n(e), className: _, "aria-label": v, ...y }, b) {
|
|
11
|
+
let x = t(), [S, C] = r(), [w, T] = l(null), E = s().replace(/:/g, ""), D = c(() => i(o.map((e) => e.id)), [o]), O = (e) => D.get(e), k = c(() => C.width ? f().nodeId((e) => e.id).nodeWidth(8).nodePadding(16).extent([[0, 4], [C.width - 140, h - 4]])({
|
|
12
|
+
nodes: o.map((e) => ({ ...e })),
|
|
13
|
+
links: m.map((e) => ({ ...e }))
|
|
14
|
+
}) : null, [
|
|
15
|
+
o,
|
|
16
|
+
m,
|
|
17
|
+
C.width,
|
|
18
|
+
h
|
|
19
|
+
]), A = {
|
|
20
|
+
columns: [
|
|
21
|
+
x("sankey.from", "From"),
|
|
22
|
+
x("sankey.to", "To"),
|
|
23
|
+
x("sankey.requests", "Requests")
|
|
24
|
+
],
|
|
25
|
+
rows: m.map((e) => [
|
|
26
|
+
o.find((t) => t.id === e.source)?.label ?? e.source,
|
|
27
|
+
o.find((t) => t.id === e.target)?.label ?? e.target,
|
|
28
|
+
g(e.value)
|
|
29
|
+
])
|
|
30
|
+
}, j = p(), M = (e) => !w || e.source.id === w || e.target.id === w;
|
|
31
|
+
return /* @__PURE__ */ u("div", {
|
|
32
|
+
ref: b,
|
|
33
|
+
className: e("min-w-0", _),
|
|
34
|
+
children: /* @__PURE__ */ u(a, {
|
|
35
|
+
label: v,
|
|
36
|
+
height: h,
|
|
37
|
+
table: A,
|
|
38
|
+
state: y,
|
|
39
|
+
children: /* @__PURE__ */ u("div", {
|
|
40
|
+
ref: S,
|
|
41
|
+
className: "absolute inset-0",
|
|
42
|
+
children: k && /* @__PURE__ */ d("svg", {
|
|
43
|
+
width: C.width,
|
|
44
|
+
height: h,
|
|
45
|
+
role: "presentation",
|
|
46
|
+
className: "overflow-visible",
|
|
47
|
+
children: [
|
|
48
|
+
/* @__PURE__ */ u("defs", { children: k.links.map((e, t) => /* @__PURE__ */ d("linearGradient", {
|
|
49
|
+
id: `${E}-${t}`,
|
|
50
|
+
gradientUnits: "userSpaceOnUse",
|
|
51
|
+
x1: e.source.x1,
|
|
52
|
+
x2: e.target.x0,
|
|
53
|
+
children: [/* @__PURE__ */ u("stop", {
|
|
54
|
+
offset: "0%",
|
|
55
|
+
stopColor: O(e.source.id)
|
|
56
|
+
}), /* @__PURE__ */ u("stop", {
|
|
57
|
+
offset: "100%",
|
|
58
|
+
stopColor: O(e.target.id)
|
|
59
|
+
})]
|
|
60
|
+
}, t)) }),
|
|
61
|
+
/* @__PURE__ */ u("g", { children: k.links.map((e, t) => /* @__PURE__ */ u("path", {
|
|
62
|
+
d: j(e) ?? "",
|
|
63
|
+
fill: "none",
|
|
64
|
+
stroke: `url(#${E}-${t})`,
|
|
65
|
+
strokeOpacity: w ? M(e) ? .5 : .06 : .24,
|
|
66
|
+
strokeWidth: Math.max(1, e.width ?? 1),
|
|
67
|
+
className: "opacity-motion",
|
|
68
|
+
children: /* @__PURE__ */ u("title", { children: x("sankey.link", "{source} → {target}: {value}", {
|
|
69
|
+
source: e.source.label,
|
|
70
|
+
target: e.target.label,
|
|
71
|
+
value: g(e.value)
|
|
72
|
+
}) })
|
|
73
|
+
}, t)) }),
|
|
74
|
+
/* @__PURE__ */ u("g", { children: k.nodes.map((e) => /* @__PURE__ */ d("g", {
|
|
75
|
+
onMouseEnter: () => T(e.id),
|
|
76
|
+
onMouseLeave: () => T(null),
|
|
77
|
+
className: "cursor-default",
|
|
78
|
+
children: [/* @__PURE__ */ u("rect", {
|
|
79
|
+
x: e.x0,
|
|
80
|
+
y: e.y0,
|
|
81
|
+
width: (e.x1 ?? 0) - (e.x0 ?? 0),
|
|
82
|
+
height: Math.max(2, (e.y1 ?? 0) - (e.y0 ?? 0)),
|
|
83
|
+
rx: 4,
|
|
84
|
+
fill: O(e.id)
|
|
85
|
+
}), /* @__PURE__ */ d("text", {
|
|
86
|
+
x: (e.x1 ?? 0) + 10,
|
|
87
|
+
y: ((e.y0 ?? 0) + (e.y1 ?? 0)) / 2,
|
|
88
|
+
dy: "0.32em",
|
|
89
|
+
fill: "var(--k-text)",
|
|
90
|
+
fontSize: 13,
|
|
91
|
+
fontWeight: 500,
|
|
92
|
+
children: [e.label, /* @__PURE__ */ u("tspan", {
|
|
93
|
+
fill: "var(--k-text-tertiary)",
|
|
94
|
+
dx: 6,
|
|
95
|
+
style: { fontVariantNumeric: "tabular-nums" },
|
|
96
|
+
children: g(e.value ?? 0)
|
|
97
|
+
})]
|
|
98
|
+
})]
|
|
99
|
+
}, e.id)) })
|
|
100
|
+
]
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
process.env.NODE_ENV !== "production" && (g.displayName = "Sankey");
|
|
107
|
+
//#endregion
|
|
108
|
+
export { h as KAESO_SANKEY_DEFAULT_VARIANTS, m as KAESO_SANKEY_VARIANTS, g as Sankey };
|
|
109
|
+
|
|
110
|
+
//# sourceMappingURL=sankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sankey.js","names":["d3sankey","cn","useUiText","useSize","seriesColors","ChartFrame","KAESO_SANKEY_VARIANTS","KAESO_SANKEY_DEFAULT_VARIANTS","Sankey","formatNumber","v","ariaLabel","state","t","box","size","focus","setFocus","useState","gid","useId","palette","useMemo","nodes","n","seriesColor","id","graph","sankey","d","height","links","l","table","formatValue","linkPath","sankeyLinkHorizontal","lit","className","i"],"sources":["../../../src/components/charts/sankey.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo, useState } from \"react\";\nimport { sankey as d3sankey, sankeyLinkHorizontal, type SankeyLink, type SankeyNode } from \"d3-sankey\";\nimport { cn } from \"../../utils/cn.js\";\nimport { formatNumber } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { ChartFrame, seriesColors, useSize, type ChartState } from \"./core.js\";\n\nexport const KAESO_SANKEY_VARIANTS = {\n size: { md: { classes: \"\" } },\n} as const;\nexport const KAESO_SANKEY_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface SankeyNodeIn {\n id: string;\n label: string;\n}\nexport interface SankeyLinkIn {\n source: string;\n target: string;\n value: number;\n}\n\ntype N = SankeyNode<SankeyNodeIn, SankeyLinkIn>;\ntype L = SankeyLink<SankeyNodeIn, SankeyLinkIn>;\n\nexport const Sankey = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n {\n nodes: SankeyNodeIn[];\n links: SankeyLinkIn[];\n height?: number | undefined;\n formatValue?: ((v: number) => string) | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n } & ChartState\n>(function Sankey({ nodes, links, height = 320, formatValue = (v) => formatNumber(v), className, \"aria-label\": ariaLabel, ...state }, ref) {\n const t = useUiText();\n const [box, size] = useSize<HTMLDivElement>();\n const [focus, setFocus] = useState<string | null>(null);\n const gid = useId().replace(/:/g, \"\");\n const palette = useMemo(() => seriesColors(nodes.map((n) => n.id)), [nodes]);\n const seriesColor = (id: string) => palette.get(id)!;\n const graph = useMemo(() => {\n if (!size.width) return null;\n const layout = d3sankey<SankeyNodeIn, SankeyLinkIn>()\n .nodeId((d) => d.id)\n .nodeWidth(8)\n .nodePadding(16)\n .extent([\n [0, 4],\n [size.width - 140, height - 4],\n ]);\n return layout({ nodes: nodes.map((n) => ({ ...n })), links: links.map((l) => ({ ...l })) });\n }, [nodes, links, size.width, height]);\n const table = {\n columns: [t(\"sankey.from\", \"From\"), t(\"sankey.to\", \"To\"), t(\"sankey.requests\", \"Requests\")],\n rows: links.map((l) => [\n nodes.find((n) => n.id === l.source)?.label ?? l.source,\n nodes.find((n) => n.id === l.target)?.label ?? l.target,\n formatValue(l.value),\n ]),\n };\n const linkPath = sankeyLinkHorizontal<SankeyNodeIn, SankeyLinkIn>();\n const lit = (l: L) => !focus || (l.source as N).id === focus || (l.target as N).id === focus;\n return (\n <div ref={ref} className={cn(\"min-w-0\", className)}>\n <ChartFrame label={ariaLabel} height={height} table={table} state={state}>\n <div ref={box} className=\"absolute inset-0\">\n {graph && (\n <svg width={size.width} height={height} role=\"presentation\" className=\"overflow-visible\">\n <defs>\n {(graph.links as L[]).map((l, i) => (\n <linearGradient key={i} id={`${gid}-${i}`} gradientUnits=\"userSpaceOnUse\" x1={(l.source as N).x1} x2={(l.target as N).x0}>\n <stop offset=\"0%\" stopColor={seriesColor((l.source as N).id)} />\n <stop offset=\"100%\" stopColor={seriesColor((l.target as N).id)} />\n </linearGradient>\n ))}\n </defs>\n <g>\n {(graph.links as L[]).map((l, i) => (\n <path\n key={i}\n d={linkPath(l) ?? \"\"}\n fill=\"none\"\n stroke={`url(#${gid}-${i})`}\n strokeOpacity={focus ? (lit(l) ? 0.5 : 0.06) : 0.24}\n strokeWidth={Math.max(1, l.width ?? 1)}\n className=\"opacity-motion\"\n >\n <title>\n {t(\"sankey.link\", \"{source} → {target}: {value}\", {\n source: (l.source as N).label,\n target: (l.target as N).label,\n value: formatValue(l.value),\n })}\n </title>\n </path>\n ))}\n </g>\n <g>\n {(graph.nodes as N[]).map((n) => (\n <g key={n.id} onMouseEnter={() => setFocus(n.id)} onMouseLeave={() => setFocus(null)} className=\"cursor-default\">\n <rect x={n.x0} y={n.y0} width={(n.x1 ?? 0) - (n.x0 ?? 0)} height={Math.max(2, (n.y1 ?? 0) - (n.y0 ?? 0))} rx={4} fill={seriesColor(n.id)} />\n <text x={(n.x1 ?? 0) + 10} y={((n.y0 ?? 0) + (n.y1 ?? 0)) / 2} dy=\"0.32em\" fill=\"var(--k-text)\" fontSize={13} fontWeight={500}>\n {n.label}\n <tspan fill=\"var(--k-text-tertiary)\" dx={6} style={{ fontVariantNumeric: \"tabular-nums\" }}>\n {formatValue(n.value ?? 0)}\n </tspan>\n </text>\n </g>\n ))}\n </g>\n </svg>\n )}\n </div>\n </ChartFrame>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Sankey.displayName = \"Sankey\";\n"],"mappings":";;;;;;;;;AAOA,IAAaM,IAAwB,EACnC,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAC9B,GACaC,IAAgC,EAAE,MAAM,KAAK,GAe7CC,IAAyB,kBAUpC,SAAgB,EAAE,UAAO,UAAO,YAAS,KAAK,kBAAe,MAAMC,EAAaC,CAAC,GAAG,cAAW,cAAcC,GAAW,GAAGC,KAAS,GAAK;CACzI,IAAMC,IAAIX,EAAU,GACd,CAACY,GAAKC,KAAQZ,EAAwB,GACtC,CAACa,GAAOC,KAAYC,EAAwB,IAAI,GAChDC,IAAMC,EAAM,CAAC,CAAC,QAAQ,MAAM,EAAE,GAC9BC,IAAUC,QAAclB,EAAamB,EAAM,KAAK,MAAMC,EAAE,EAAE,CAAC,GAAG,CAACD,CAAK,CAAC,GACrEE,KAAe,MAAeJ,EAAQ,IAAIK,CAAE,GAC5CC,IAAQL,QACPP,EAAK,QACKf,EAAqC,CAAC,CAClD,QAAQ,MAAM6B,EAAE,EAAE,CAAC,CACnB,UAAU,CAAC,CAAC,CACZ,YAAY,EAAE,CAAC,CACf,OAAO,CACN,CAAC,GAAG,CAAC,GACL,CAACd,EAAK,QAAQ,KAAKe,IAAS,CAAC,CAC/B,CACK,CAAA,CAAO;EAAE,OAAOP,EAAM,KAAK,OAAO,EAAE,GAAGC,EAAE,EAAE;EAAG,OAAOO,EAAM,KAAK,OAAO,EAAE,GAAGC,EAAE,EAAE;CAAE,CAAC,IATlE,MAUvB;EAACT;EAAOQ;EAAOhB,EAAK;EAAOe;CAAM,CAAC,GAC/BG,IAAQ;EACZ,SAAS;GAACpB,EAAE,eAAe,MAAM;GAAGA,EAAE,aAAa,IAAI;GAAGA,EAAE,mBAAmB,UAAU;EAAC;EAC1F,MAAMkB,EAAM,KAAK,MAAM;GACrBR,EAAM,MAAM,MAAMC,EAAE,OAAOQ,EAAE,MAAM,CAAC,EAAE,SAASA,EAAE;GACjDT,EAAM,MAAM,MAAMC,EAAE,OAAOQ,EAAE,MAAM,CAAC,EAAE,SAASA,EAAE;GACjDE,EAAYF,EAAE,KAAK;EACrB,CAAC;CACH,GACMG,IAAWC,EAAiD,GAC5DC,KAAO,MAAS,CAACrB,KAAUgB,EAAE,OAAa,OAAOhB,KAAUgB,EAAE,OAAa,OAAOhB;CACvF,OACE,kBAAC,OAAD;EAAU;EAAK,WAAWf,EAAG,WAAWqC,CAAS;EAC/C,UAAA,kBAACjC,GAAD;GAAY,OAAOM;GAAmB;GAAe;GAAc;GACjE,UAAA,kBAAC,OAAD;IAAK,KAAKG;IAAK,WAAU;IACtB,UAAAa,KACC,kBAAC,OAAD;KAAK,OAAOZ,EAAK;KAAe;KAAQ,MAAK;KAAe,WAAU;KAAtE,UAAA;MACE,kBAAC,QAAD,EAAA,UACIY,EAAM,MAAc,KAAK,GAAG,MAC5B,kBAAC,kBAAD;OAAwB,IAAI,GAAGR,EAAI,GAAGoB;OAAK,eAAc;OAAiB,IAAKP,EAAE,OAAa;OAAI,IAAKA,EAAE,OAAa;OAAtH,UAAA,CACE,kBAAC,QAAD;QAAM,QAAO;QAAK,WAAWP,EAAaO,EAAE,OAAa,EAAE;OAAI,CAAA,GAC/D,kBAAC,QAAD;QAAM,QAAO;QAAO,WAAWP,EAAaO,EAAE,OAAa,EAAE;OAAI,CAAA,CACnD;MAHK,GAAAO,CAGL,CACjB,EACG,CAAA;MACN,kBAAC,KAAD,EAAA,UACIZ,EAAM,MAAc,KAAK,GAAG,MAC5B,kBAAC,QAAD;OAEE,GAAGQ,EAASH,CAAC,KAAK;OAClB,MAAK;OACL,QAAQ,QAAQb,EAAI,GAAGoB,EAAE;OACzB,eAAevB,IAASqB,EAAIL,CAAC,IAAI,KAAM,MAAQ;OAC/C,aAAa,KAAK,IAAI,GAAGA,EAAE,SAAS,CAAC;OACrC,WAAU;OAEV,UAAA,kBAAC,SAAD,EAAA,UACGnB,EAAE,eAAe,gCAAgC;QAChD,QAASmB,EAAE,OAAa;QACxB,QAASA,EAAE,OAAa;QACxB,OAAOE,EAAYF,EAAE,KAAK;OAC5B,CAAC,EACI,CAAA;MACH,GAfCO,CAeD,CACP,EACA,CAAA;MACH,kBAAC,KAAD,EAAA,UACIZ,EAAM,MAAc,KAAK,MACzB,kBAAC,KAAD;OAAc,oBAAoBV,EAASO,EAAE,EAAE;OAAG,oBAAoBP,EAAS,IAAI;OAAG,WAAU;OAAhG,UAAA,CACE,kBAAC,QAAD;QAAM,GAAGO,EAAE;QAAI,GAAGA,EAAE;QAAI,QAAQA,EAAE,MAAM,MAAMA,EAAE,MAAM;QAAI,QAAQ,KAAK,IAAI,IAAIA,EAAE,MAAM,MAAMA,EAAE,MAAM,EAAE;QAAG,IAAI;QAAG,MAAMC,EAAYD,EAAE,EAAE;OAAI,CAAA,GAC3I,kBAAC,QAAD;QAAM,IAAIA,EAAE,MAAM,KAAK;QAAI,KAAKA,EAAE,MAAM,MAAMA,EAAE,MAAM,MAAM;QAAG,IAAG;QAAS,MAAK;QAAgB,UAAU;QAAI,YAAY;QAA1H,UAAA,CACGA,EAAE,OACH,kBAAC,SAAD;SAAO,MAAK;SAAyB,IAAI;SAAG,OAAO,EAAE,oBAAoB,eAAe;SACrF,UAAAU,EAAYV,EAAE,SAAS,CAAC;QACpB,CAAA,CACH;OACL,CAAA,CAAA;MARK,GAAAA,EAAE,EAQP,CACJ,EACA,CAAA;KACA;;GAEJ,CAAA;EACK,CAAA;CACT,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as e } from "../../chunks/cn-CidVUKMm.js";
|
|
3
|
+
import { forwardRef as t, useId as n } from "react";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
import { area as a, curveMonotoneX as o, line as s } from "d3-shape";
|
|
6
|
+
import { max as c, min as l } from "d3-array";
|
|
7
|
+
//#region src/components/charts/sparkline.tsx
|
|
8
|
+
function u(e, t, n, r) {
|
|
9
|
+
let i = t - e;
|
|
10
|
+
return (t) => {
|
|
11
|
+
let a = i ? (t - e) / i : Number.isNaN(i) ? NaN : .5;
|
|
12
|
+
return n * (1 - a) + r * a;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
var d = { size: { md: { classes: "w-80 h-24" } } }, f = { size: "md" }, p = /* @__PURE__ */ t(function({ values: t, color: d = "var(--k-viz-1)", fluid: f, className: p, "aria-label": m }, h) {
|
|
16
|
+
let g = f ? 240 : 80, _ = f ? 32 : 24, v = u(0, Math.max(1, t.length - 1), 2, g - 4), y = l(t) ?? 0, b = c(t) ?? 1, x = u(y, b === y ? y + 1 : b, _ - 3, 3), S = s().x((e, t) => v(t)).y((e) => x(e)).curve(o), C = a().x((e, t) => v(t)).y0(_).y1((e) => x(e)).curve(o), w = t[t.length - 1] ?? 0, T = n().replace(/:/g, "");
|
|
17
|
+
return /* @__PURE__ */ i("svg", {
|
|
18
|
+
ref: h,
|
|
19
|
+
width: f ? "100%" : g,
|
|
20
|
+
height: _,
|
|
21
|
+
viewBox: `0 0 ${g} ${_}`,
|
|
22
|
+
...f ? { preserveAspectRatio: "none" } : {},
|
|
23
|
+
role: "img",
|
|
24
|
+
"aria-label": m,
|
|
25
|
+
className: e("block shrink-0 overflow-visible", p),
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ r("defs", { children: /* @__PURE__ */ i("linearGradient", {
|
|
28
|
+
id: T,
|
|
29
|
+
x1: "0",
|
|
30
|
+
y1: "0",
|
|
31
|
+
x2: "0",
|
|
32
|
+
y2: "1",
|
|
33
|
+
children: [/* @__PURE__ */ r("stop", {
|
|
34
|
+
offset: "0%",
|
|
35
|
+
stopColor: d,
|
|
36
|
+
className: "chart-fill-top"
|
|
37
|
+
}), /* @__PURE__ */ r("stop", {
|
|
38
|
+
offset: "100%",
|
|
39
|
+
stopColor: d,
|
|
40
|
+
stopOpacity: 0
|
|
41
|
+
})]
|
|
42
|
+
}) }),
|
|
43
|
+
/* @__PURE__ */ r("path", {
|
|
44
|
+
d: C(t) ?? "",
|
|
45
|
+
fill: `url(#${T})`
|
|
46
|
+
}),
|
|
47
|
+
/* @__PURE__ */ r("path", {
|
|
48
|
+
d: S(t) ?? "",
|
|
49
|
+
fill: "none",
|
|
50
|
+
stroke: d,
|
|
51
|
+
strokeWidth: 1.5,
|
|
52
|
+
strokeLinejoin: "round",
|
|
53
|
+
strokeLinecap: "round",
|
|
54
|
+
vectorEffect: "non-scaling-stroke"
|
|
55
|
+
}),
|
|
56
|
+
!f && /* @__PURE__ */ r("circle", {
|
|
57
|
+
cx: v(t.length - 1),
|
|
58
|
+
cy: x(w),
|
|
59
|
+
r: 2.5,
|
|
60
|
+
fill: d,
|
|
61
|
+
stroke: "var(--k-bg-panel)",
|
|
62
|
+
strokeWidth: 1.5,
|
|
63
|
+
paintOrder: "stroke"
|
|
64
|
+
})
|
|
65
|
+
]
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
process.env.NODE_ENV !== "production" && (p.displayName = "Sparkline");
|
|
69
|
+
//#endregion
|
|
70
|
+
export { f as KAESO_SPARKLINE_DEFAULT_VARIANTS, d as KAESO_SPARKLINE_VARIANTS, p as Sparkline };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=sparkline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparkline.js","names":["d3min","d3max","line","d3line","area","d3area","cn","linear","span","d1","d0","t","v","r0","r1","KAESO_SPARKLINE_VARIANTS","KAESO_SPARKLINE_DEFAULT_VARIANTS","Sparkline","ariaLabel","W","fluid","H","x","values","lo","min","hi","max","y","line$1","line","i","curveMonotoneX","area$1","area","last","gid","useId","className","color"],"sources":["../../../src/components/charts/sparkline.tsx"],"sourcesContent":["import { forwardRef, useId } from \"react\";\nimport { area as d3area, curveMonotoneX, line as d3line } from \"d3-shape\";\nimport { max as d3max, min as d3min } from \"d3-array\";\nimport { cn } from \"../../utils/cn.js\";\n\nfunction linear(d0: number, d1: number, r0: number, r1: number): (v: number) => number {\n const span = d1 - d0;\n return (v) => {\n const t = span ? (v - d0) / span : Number.isNaN(span) ? NaN : 0.5;\n return r0 * (1 - t) + r1 * t;\n };\n}\n\nexport const KAESO_SPARKLINE_VARIANTS = {\n size: { md: { classes: \"w-80 h-24\" } },\n} as const;\nexport const KAESO_SPARKLINE_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport const Sparkline = /* @__PURE__ */ forwardRef<\n SVGSVGElement,\n { values: number[]; color?: string | undefined; fluid?: boolean | undefined; \"aria-label\": string; className?: string | undefined }\n>(function Sparkline({ values, color = \"var(--k-viz-1)\", fluid, className, \"aria-label\": ariaLabel }, ref) {\n const W = fluid ? 240 : 80;\n const H = fluid ? 32 : 24;\n const x = linear(0, Math.max(1, values.length - 1), 2, W - 4);\n const lo = d3min(values) ?? 0;\n const hi = d3max(values) ?? 1;\n const y = linear(lo, hi === lo ? lo + 1 : hi, H - 3, 3);\n const line = d3line<number>()\n .x((_, i) => x(i))\n .y((v) => y(v))\n .curve(curveMonotoneX);\n const area = d3area<number>()\n .x((_, i) => x(i))\n .y0(H)\n .y1((v) => y(v))\n .curve(curveMonotoneX);\n const last = values[values.length - 1] ?? 0;\n const gid = useId().replace(/:/g, \"\");\n return (\n <svg\n ref={ref}\n width={fluid ? \"100%\" : W}\n height={H}\n viewBox={`0 0 ${W} ${H}`}\n {...(fluid ? { preserveAspectRatio: \"none\" } : {})}\n role=\"img\"\n aria-label={ariaLabel}\n className={cn(\"block shrink-0 overflow-visible\", className)}\n >\n <defs>\n <linearGradient id={gid} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={color} className=\"chart-fill-top\" />\n <stop offset=\"100%\" stopColor={color} stopOpacity={0} />\n </linearGradient>\n </defs>\n <path d={area(values) ?? \"\"} fill={`url(#${gid})`} />\n <path\n d={line(values) ?? \"\"}\n fill=\"none\"\n stroke={color}\n strokeWidth={1.5}\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n />\n {!fluid && <circle cx={x(values.length - 1)} cy={y(last)} r={2.5} fill={color} stroke=\"var(--k-bg-panel)\" strokeWidth={1.5} paintOrder=\"stroke\" />}\n </svg>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Sparkline.displayName = \"Sparkline\";\n"],"mappings":";;;;;;;AAKA,SAASO,EAAO,GAAY,GAAY,GAAY,GAAmC;CACrF,IAAMC,IAAOC,IAAKC;CAClB,QAAQ,MAAM;EACZ,IAAMC,IAAIH,KAAQI,IAAIF,KAAMF,IAAO,OAAO,MAAMA,CAAI,IAAI,MAAM;EAC9D,OAAOK,KAAM,IAAIF,KAAKG,IAAKH;CAC7B;AACF;AAEA,IAAaI,IAA2B,EACtC,MAAM,EAAE,IAAI,EAAE,SAAS,YAAY,EAAE,EACvC,GACaC,IAAmC,EAAE,MAAM,KAAK,GAEhDC,IAA4B,kBAGvC,SAAmB,EAAE,WAAQ,WAAQ,kBAAkB,UAAO,cAAW,cAAcC,KAAa,GAAK;CACzG,IAAMC,IAAIC,IAAQ,MAAM,IAClBC,IAAID,IAAQ,KAAK,IACjBE,IAAIf,EAAO,GAAG,KAAK,IAAI,GAAGgB,EAAO,SAAS,CAAC,GAAG,GAAGJ,IAAI,CAAC,GACtDK,IAAKxB,EAAMuB,CAAM,KAAK,GACtBG,IAAKzB,EAAMsB,CAAM,KAAK,GACtBK,IAAIrB,EAAOiB,GAAIE,MAAOF,IAAKA,IAAK,IAAIE,GAAIL,IAAI,GAAG,CAAC,GAChDnB,IAAOC,EAAe,CAAC,CAC1B,GAAG,GAAG,MAAMmB,EAAES,CAAC,CAAC,CAAC,CACjB,GAAG,MAAMH,EAAEhB,CAAC,CAAC,CAAC,CACd,MAAMoB,CAAc,GACjB5B,IAAOC,EAAe,CAAC,CAC1B,GAAG,GAAG,MAAMiB,EAAES,CAAC,CAAC,CAAC,CACjB,GAAGV,CAAC,CAAC,CACL,IAAI,MAAMO,EAAEhB,CAAC,CAAC,CAAC,CACf,MAAMoB,CAAc,GACjBG,IAAOZ,EAAOA,EAAO,SAAS,MAAM,GACpCa,IAAMC,EAAM,CAAC,CAAC,QAAQ,MAAM,EAAE;CACpC,OACE,kBAAC,OAAD;EACO;EACL,OAAOjB,IAAQ,SAASD;EACxB,QAAQE;EACR,SAAS,OAAOF,EAAE,GAAGE;EACrB,GAAKD,IAAQ,EAAE,qBAAqB,OAAO,IAAI,CAAC;EAChD,MAAK;EACL,cAAYF;EACZ,WAAWZ,EAAG,mCAAmCgC,CAAS;EAR5D,UAAA;GAUE,kBAAC,QAAD,EAAA,UACE,kBAAC,kBAAD;IAAgB,IAAIF;IAAK,IAAG;IAAI,IAAG;IAAI,IAAG;IAAI,IAAG;IAAjD,UAAA,CACE,kBAAC,QAAD;KAAM,QAAO;KAAK,WAAWG;KAAO,WAAU;IAAkB,CAAA,GAChE,kBAAC,QAAD;KAAM,QAAO;KAAO,WAAWA;KAAO,aAAa;IAAI,CAAA,CACzC;GACZ,CAAA,EAAA,CAAA;GACN,kBAAC,QAAD;IAAM,GAAGnC,EAAKmB,CAAM,KAAK;IAAI,MAAM,QAAQa,EAAI;GAAK,CAAA;GACpD,kBAAC,QAAD;IACE,GAAGlC,EAAKqB,CAAM,KAAK;IACnB,MAAK;IACL,QAAQgB;IACR,aAAa;IACb,gBAAe;IACf,eAAc;IACd,cAAa;GACd,CAAA;GACA,CAACnB,KAAS,kBAAC,UAAD;IAAQ,IAAIE,EAAEC,EAAO,SAAS,CAAC;IAAG,IAAIK,EAAEO,CAAI;IAAG,GAAG;IAAK,MAAMI;IAAO,QAAO;IAAoB,aAAa;IAAK,YAAW;GAAU,CAAA;EAC9I;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc"}
|
|
@@ -0,0 +1,253 @@
|
|
|
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 { formatNumber as r, formatPercent as ee } from "../../format.js";
|
|
5
|
+
import { A as te, D as ne, E as re, S as ie, _ as ae, b as oe, g as se, i as ce, k as le, n as ue, r as de, s as fe, t as i, v as pe } from "../../chunks/core-Bgefcs3z.js";
|
|
6
|
+
import { forwardRef as a, useId as me, useMemo as o, useState as s } from "react";
|
|
7
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
|
+
import { area as u, curveMonotoneX as d, line as he, stack as ge } from "d3-shape";
|
|
9
|
+
import { bisector as _e, max as f, min as ve } from "d3-array";
|
|
10
|
+
import { scaleLinear as p } from "d3-scale";
|
|
11
|
+
import { timeTicks as ye } from "d3-time";
|
|
12
|
+
//#region src/components/charts/timeseries.tsx
|
|
13
|
+
var m = { kind: {
|
|
14
|
+
line: { classes: "" },
|
|
15
|
+
area: { classes: "" },
|
|
16
|
+
stacked: { classes: "" }
|
|
17
|
+
} }, h = { kind: "line" }, g = {
|
|
18
|
+
top: 8,
|
|
19
|
+
right: 52,
|
|
20
|
+
bottom: 28,
|
|
21
|
+
left: 0
|
|
22
|
+
};
|
|
23
|
+
function _(e, t) {
|
|
24
|
+
let n = new Intl.DateTimeFormat(e === "en" ? "en-US" : e, t);
|
|
25
|
+
return (e) => n.format(e);
|
|
26
|
+
}
|
|
27
|
+
var be = {
|
|
28
|
+
hour: "2-digit",
|
|
29
|
+
minute: "2-digit",
|
|
30
|
+
hourCycle: "h23"
|
|
31
|
+
}, v = {
|
|
32
|
+
month: "short",
|
|
33
|
+
day: "numeric"
|
|
34
|
+
};
|
|
35
|
+
function xe(e, t) {
|
|
36
|
+
let n = 36e5;
|
|
37
|
+
if (t <= 48 * n) return _(e, be);
|
|
38
|
+
if (t <= 2160 * n) return _(e, v);
|
|
39
|
+
let r = _(e, { month: "short" });
|
|
40
|
+
return (e) => e.getMonth() === 0 ? String(e.getFullYear()) : r(e);
|
|
41
|
+
}
|
|
42
|
+
var y = /* @__PURE__ */ a(function({ series: a, kind: m = "line", height: h = 240, formatValue: y = (e) => r(e), threshold: b, hideLegend: Se, highlight: x, formatTime: S, className: Ce, "aria-label": C, ...w }, we) {
|
|
43
|
+
let Te = t(), T = n(), [Ee, E] = ne(), D = me().replace(/:/g, ""), O = ie(y), [k, De] = s(/* @__PURE__ */ new Set()), [A, Oe] = s(null), [j, ke] = s(null), M = a.filter((e) => !k.has(e.id)), N = o(() => (a[0]?.points ?? []).map((e) => new Date(e.t)), [a]), P = M.flatMap((e) => e.points.map((e) => e.v)), F = Math.max(0, E.width - g.left - g.right), I = Math.max(0, h - g.top - g.bottom), L = m === "stacked", Ae = L ? f(N.map((e, t) => M.reduce((e, n) => e + (n.points[t]?.v ?? 0), 0))) ?? 0 : f(P) ?? 0, R = p().domain([0, Math.max(Ae, b?.value ?? 0) * 1.08 || 1]).nice(4).range([I, 0]), z = le(P, R.domain()[1] ?? 1, !!w.loading), B = o(() => {
|
|
44
|
+
let e = 0;
|
|
45
|
+
return M.map((t) => t.points.map(() => z.values[e++] ?? 0));
|
|
46
|
+
}, [M, z.values]), je = R.copy().domain([0, z.top || 1]), V = ve(N) ?? /* @__PURE__ */ new Date(), H = f(N) ?? /* @__PURE__ */ new Date(), U = p().domain([V.getTime(), H.getTime()]).range([0, F]), W = L ? ge().keys(M.map((e, t) => String(t)))(N.map((e, t) => M.map((e, n) => B[n]?.[t] ?? 0))) : null, G = (e) => Math.max(0, je(e)), Me = (w.loading ? R.ticks(4) : te(pe(R, O), P)).filter((e) => e <= (z.top || 1) + 1e-9), Ne = ye(V, H, Math.max(2, Math.min(8, Math.floor(F / 96)))), K = (N[N.length - 1]?.getTime() ?? 0) - (N[0]?.getTime() ?? 0), q = xe(T, K), J = (N[1]?.getTime() ?? 0) - (N[0]?.getTime() ?? 0), Pe = S ?? _(T, J && J < 864e5 ? {
|
|
47
|
+
weekday: "short",
|
|
48
|
+
...v,
|
|
49
|
+
...be
|
|
50
|
+
} : K <= 7776e6 ? {
|
|
51
|
+
weekday: "short",
|
|
52
|
+
...v
|
|
53
|
+
} : {
|
|
54
|
+
...v,
|
|
55
|
+
year: "numeric"
|
|
56
|
+
}), Fe = he().x((e, t) => Math.round(U(N[t] ?? /* @__PURE__ */ new Date()))).y((e) => G(e)).curve(d), Ie = u().x((e, t) => Math.round(U(N[t] ?? /* @__PURE__ */ new Date()))).y0(I).y1((e) => G(e)).curve(d), Le = u().x((e, t) => Math.round(U(N[t] ?? /* @__PURE__ */ new Date()))).y0((e) => G(e[0])).y1((e) => G(e[1])).curve(d), Re = he().x((e, t) => Math.round(U(N[t] ?? /* @__PURE__ */ new Date()))).y((e) => G(e[1])).curve(d), ze = o(() => oe(a.map((e) => e.id)), [a]), Y = (e) => e.color ?? ze.get(e.id), Be = _e((e) => e.getTime()).center, Ve = (e) => {
|
|
57
|
+
let t = e.currentTarget.getBoundingClientRect(), n = Be(N, U.invert(e.clientX - t.left));
|
|
58
|
+
ke({
|
|
59
|
+
i: n,
|
|
60
|
+
y: Math.round(e.clientY - t.top + g.top)
|
|
61
|
+
});
|
|
62
|
+
}, He = {
|
|
63
|
+
columns: [Te("timeseriesChart.time", "Time"), ...a.map((e) => e.label)],
|
|
64
|
+
rows: N.map((e, t) => [(S ?? q)(e), ...a.map((e) => y(e.points[t]?.v ?? 0))])
|
|
65
|
+
}, Ue = w.empty ?? a.every((e) => e.points.every((e) => e.v === 0)), X = !!w.loading || Ue, Z = re(X || w.error ? 0 : N.length), Q = X || w.error ? null : j?.i ?? Z.index ?? (x !== void 0 && x < N.length ? x : null), $ = Q === null ? 0 : Math.round(U(N[Q])) + g.left, We = Q === null ? 0 : j && j.i === Q ? j.y : g.top + Math.round(G(L ? W?.[W.length - 1]?.[Q]?.[1] ?? 0 : Math.max(0, ...B.map((e) => e[Q] ?? 0)))), Ge = (e) => M.map((t) => {
|
|
66
|
+
let n = t.points[e]?.v ?? 0, r = M.reduce((t, n) => t + (n.points[e]?.v ?? 0), 0);
|
|
67
|
+
return {
|
|
68
|
+
id: t.id,
|
|
69
|
+
label: t.label,
|
|
70
|
+
color: Y(t),
|
|
71
|
+
value: y(n),
|
|
72
|
+
...M.length > 1 && r ? { share: ee(Math.round(n / r * 100) / 100, 0) } : {}
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
return /* @__PURE__ */ c("div", {
|
|
76
|
+
ref: we,
|
|
77
|
+
className: e("min-w-0", Ce),
|
|
78
|
+
children: /* @__PURE__ */ c(ue, {
|
|
79
|
+
label: C,
|
|
80
|
+
height: h,
|
|
81
|
+
table: He,
|
|
82
|
+
state: {
|
|
83
|
+
...w,
|
|
84
|
+
empty: Ue
|
|
85
|
+
},
|
|
86
|
+
legend: !Se && a.length > 1 ? /* @__PURE__ */ c(fe, {
|
|
87
|
+
items: a.map((e) => ({
|
|
88
|
+
id: e.id,
|
|
89
|
+
label: e.label,
|
|
90
|
+
color: Y(e)
|
|
91
|
+
})),
|
|
92
|
+
hidden: k,
|
|
93
|
+
shape: m === "line" ? "line" : "square",
|
|
94
|
+
onToggle: (e) => {
|
|
95
|
+
let t = new Set(k);
|
|
96
|
+
t.has(e) ? t.delete(e) : t.add(e), De(t);
|
|
97
|
+
},
|
|
98
|
+
onHover: Oe
|
|
99
|
+
}) : void 0,
|
|
100
|
+
children: /* @__PURE__ */ l("div", {
|
|
101
|
+
ref: Ee,
|
|
102
|
+
role: "group",
|
|
103
|
+
"aria-label": C,
|
|
104
|
+
...Z.props,
|
|
105
|
+
className: "absolute inset-0 rounded-cell focus-ring",
|
|
106
|
+
children: [
|
|
107
|
+
E.width > 0 && /* @__PURE__ */ l("svg", {
|
|
108
|
+
width: E.width,
|
|
109
|
+
height: h,
|
|
110
|
+
className: "block overflow-visible",
|
|
111
|
+
role: "presentation",
|
|
112
|
+
children: [/* @__PURE__ */ c("defs", { children: M.map((e) => /* @__PURE__ */ l("linearGradient", {
|
|
113
|
+
id: `${D}-${e.id}`,
|
|
114
|
+
x1: "0",
|
|
115
|
+
y1: "0",
|
|
116
|
+
x2: "0",
|
|
117
|
+
y2: "1",
|
|
118
|
+
children: [/* @__PURE__ */ c("stop", {
|
|
119
|
+
offset: "0%",
|
|
120
|
+
stopColor: Y(e),
|
|
121
|
+
className: "chart-fill-top"
|
|
122
|
+
}), /* @__PURE__ */ c("stop", {
|
|
123
|
+
offset: "100%",
|
|
124
|
+
stopColor: Y(e),
|
|
125
|
+
stopOpacity: 0
|
|
126
|
+
})]
|
|
127
|
+
}, e.id)) }), /* @__PURE__ */ l("g", {
|
|
128
|
+
transform: `translate(${g.left},${g.top})`,
|
|
129
|
+
children: [
|
|
130
|
+
Me.map((e) => /* @__PURE__ */ l("g", {
|
|
131
|
+
transform: `translate(0,${Math.round(G(e)) + .5})`,
|
|
132
|
+
children: [e !== 0 && /* @__PURE__ */ c("line", {
|
|
133
|
+
x2: F,
|
|
134
|
+
...i.grid
|
|
135
|
+
}), !w.loading && /* @__PURE__ */ c("text", {
|
|
136
|
+
x: F + 12,
|
|
137
|
+
dy: "0.32em",
|
|
138
|
+
...i.label,
|
|
139
|
+
children: O(e)
|
|
140
|
+
})]
|
|
141
|
+
}, e)),
|
|
142
|
+
/* @__PURE__ */ c("line", {
|
|
143
|
+
x2: F,
|
|
144
|
+
y1: I + .5,
|
|
145
|
+
y2: I + .5,
|
|
146
|
+
...i.baseline
|
|
147
|
+
}),
|
|
148
|
+
ae(Ne.map((e) => ({
|
|
149
|
+
key: e.getTime(),
|
|
150
|
+
at: Math.round(U(e)),
|
|
151
|
+
label: q(e)
|
|
152
|
+
})), F + g.right).map((e) => /* @__PURE__ */ c("text", {
|
|
153
|
+
x: e.x,
|
|
154
|
+
y: I + 20,
|
|
155
|
+
textAnchor: e.anchor,
|
|
156
|
+
...i.label,
|
|
157
|
+
children: e.label
|
|
158
|
+
}, e.key)),
|
|
159
|
+
X ? null : L && W ? W.map((e, t) => {
|
|
160
|
+
let n = M[t];
|
|
161
|
+
return /* @__PURE__ */ l("g", {
|
|
162
|
+
opacity: A && A !== n.id ? .3 : 1,
|
|
163
|
+
className: "opacity-motion",
|
|
164
|
+
children: [/* @__PURE__ */ c("path", {
|
|
165
|
+
d: Le(e) ?? "",
|
|
166
|
+
fill: Y(n),
|
|
167
|
+
className: "chart-stack-fill"
|
|
168
|
+
}), /* @__PURE__ */ c("path", {
|
|
169
|
+
d: Re(e) ?? "",
|
|
170
|
+
fill: "none",
|
|
171
|
+
stroke: Y(n),
|
|
172
|
+
strokeWidth: 1.5,
|
|
173
|
+
strokeLinejoin: "round",
|
|
174
|
+
strokeLinecap: "round"
|
|
175
|
+
})]
|
|
176
|
+
}, n.id);
|
|
177
|
+
}) : M.map((e, t) => /* @__PURE__ */ l("g", {
|
|
178
|
+
opacity: A && A !== e.id ? .3 : 1,
|
|
179
|
+
className: "opacity-motion",
|
|
180
|
+
children: [m === "area" && /* @__PURE__ */ c("path", {
|
|
181
|
+
d: Ie(B[t] ?? []) ?? "",
|
|
182
|
+
fill: `url(#${D}-${e.id})`
|
|
183
|
+
}), /* @__PURE__ */ c("path", {
|
|
184
|
+
d: Fe(B[t] ?? []) ?? "",
|
|
185
|
+
fill: "none",
|
|
186
|
+
stroke: Y(e),
|
|
187
|
+
strokeWidth: 2,
|
|
188
|
+
strokeLinejoin: "round",
|
|
189
|
+
strokeLinecap: "round"
|
|
190
|
+
})]
|
|
191
|
+
}, e.id)),
|
|
192
|
+
b && /* @__PURE__ */ l("g", {
|
|
193
|
+
transform: `translate(0,${Math.round(G(b.value)) + .5})`,
|
|
194
|
+
children: [/* @__PURE__ */ c("line", {
|
|
195
|
+
x2: F,
|
|
196
|
+
stroke: "var(--k-danger)",
|
|
197
|
+
strokeDasharray: "4 4",
|
|
198
|
+
strokeWidth: 1
|
|
199
|
+
}), /* @__PURE__ */ c("text", {
|
|
200
|
+
x: 0,
|
|
201
|
+
dy: -6,
|
|
202
|
+
fill: "var(--k-danger-text)",
|
|
203
|
+
fontSize: 12,
|
|
204
|
+
fontWeight: 500,
|
|
205
|
+
children: b.label
|
|
206
|
+
})]
|
|
207
|
+
}),
|
|
208
|
+
Q !== null && /* @__PURE__ */ l("g", {
|
|
209
|
+
"aria-hidden": !0,
|
|
210
|
+
children: [/* @__PURE__ */ c("line", {
|
|
211
|
+
x1: $ - g.left + .5,
|
|
212
|
+
x2: $ - g.left + .5,
|
|
213
|
+
y2: I,
|
|
214
|
+
...i.grid,
|
|
215
|
+
stroke: "var(--k-line-strong)"
|
|
216
|
+
}), !L && M.map((e, t) => /* @__PURE__ */ c("circle", {
|
|
217
|
+
cx: $ - g.left,
|
|
218
|
+
cy: G(B[t]?.[Q] ?? 0),
|
|
219
|
+
r: 4,
|
|
220
|
+
fill: Y(e),
|
|
221
|
+
stroke: "var(--k-bg-panel)",
|
|
222
|
+
strokeWidth: 2
|
|
223
|
+
}, e.id))]
|
|
224
|
+
}),
|
|
225
|
+
/* @__PURE__ */ c("rect", {
|
|
226
|
+
width: F,
|
|
227
|
+
height: I,
|
|
228
|
+
fill: "transparent",
|
|
229
|
+
onPointerMove: Ve,
|
|
230
|
+
onPointerLeave: () => ke(null)
|
|
231
|
+
})
|
|
232
|
+
]
|
|
233
|
+
})]
|
|
234
|
+
}),
|
|
235
|
+
Q !== null && N[Q] && /* @__PURE__ */ c(ce, {
|
|
236
|
+
x: $,
|
|
237
|
+
y: We,
|
|
238
|
+
width: E.width,
|
|
239
|
+
visible: !0,
|
|
240
|
+
heading: Pe(N[Q]),
|
|
241
|
+
rows: Ge(Q)
|
|
242
|
+
}),
|
|
243
|
+
/* @__PURE__ */ c(de, { children: Z.index !== null && Q !== null && N[Z.index] ? se(Pe(N[Z.index]), Ge(Z.index), Te) : null })
|
|
244
|
+
]
|
|
245
|
+
})
|
|
246
|
+
})
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
process.env.NODE_ENV !== "production" && (y.displayName = "TimeseriesChart");
|
|
250
|
+
//#endregion
|
|
251
|
+
export { h as KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS, m as KAESO_TIMESERIES_CHART_VARIANTS, y as TimeseriesChart };
|
|
252
|
+
|
|
253
|
+
//# sourceMappingURL=timeseries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeseries.js","names":["d3max","d3min","d3stack","d3line","d3area","cn","useUiText","useLocale","wholeTicks","useSize","useChartKeys","tickLabel","placeTimeLabels","seriesColors","liveLine","ChartTooltip","useTweenedScale","ChartFrame","ChartLive","Legend","AXIS","readableTicks","KAESO_TIMESERIES_CHART_VARIANTS","KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS","M","timeFormat","f","locale","options","d","CLOCK","DAY","tickFormat","h","span","month","TimeseriesChart","formatNumber","v","ariaLabel","state","t","box","size","gid","useId","axisLabel","formatValue","hidden","setHidden","useState","focus","setFocus","hover","setHover","visible","series","s","times","useMemo","p","flatValues","w","height","stacked","kind","top","max","a","ti","axis","scaleLinear","threshold","tween","values","k","yScale","t0","min","t1","x","stackData","stack","i","si","y","yTicks","xTicks","timeTicks","fmt","step","headingFormat","formatTime","lineGen","line","curveMonotoneX","areaGen","area","stackArea","stackTop","palette","color","bis","bisector","onMove","r","table","empty","blank","keys","active","highlight","activeX","activeY","sv","rowsFor","total","acc","ss","formatPercent","className","hideLegend","n","id","l","li","layer"],"sources":["../../../src/components/charts/timeseries.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useId, useMemo, useState, type ReactNode } from \"react\";\nimport { scaleLinear } from \"d3-scale\";\nimport { area as d3area, curveMonotoneX, line as d3line, stack as d3stack } from \"d3-shape\";\nimport { bisector, max as d3max, min as d3min } from \"d3-array\";\nimport { timeTicks } from \"d3-time\";\nimport { cn } from \"../../utils/cn.js\";\nimport { formatNumber, formatPercent } from \"../../format/index.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\nimport {\n AXIS,\n ChartFrame,\n ChartLive,\n ChartTooltip,\n Legend,\n placeTimeLabels,\n liveLine,\n seriesColors,\n readableTicks,\n tickLabel,\n useChartKeys,\n useSize,\n useTweenedScale,\n wholeTicks,\n type ChartState,\n} from \"./core.js\";\n\nexport const KAESO_TIMESERIES_CHART_VARIANTS = {\n kind: {\n line: { classes: \"\" },\n area: { classes: \"\" },\n stacked: { classes: \"\" },\n },\n} as const;\nexport const KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS = { kind: \"line\" } as const;\n\nexport interface TimePoint {\n t: Date | number | string;\n v: number;\n}\nexport interface TimeSeries {\n id: string;\n label: string;\n points: TimePoint[];\n color?: string | undefined;\n}\n\nexport interface TimeseriesChartProps extends ChartState {\n series: TimeSeries[];\n kind?: keyof typeof KAESO_TIMESERIES_CHART_VARIANTS.kind | undefined;\n height?: number | undefined;\n formatValue?: ((v: number) => string) | undefined;\n threshold?: { value: number; label: string } | undefined;\n hideLegend?: boolean | undefined;\n highlight?: number | undefined;\n formatTime?: ((t: Date) => string) | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\nconst M = { top: 8, right: 52, bottom: 28, left: 0 };\n\nfunction timeFormat(locale: string, options: Intl.DateTimeFormatOptions): (d: Date) => string {\n const f = new Intl.DateTimeFormat(locale === \"en\" ? \"en-US\" : locale, options);\n return (d) => f.format(d);\n}\nconst CLOCK = { hour: \"2-digit\", minute: \"2-digit\", hourCycle: \"h23\" } as const;\nconst DAY = { month: \"short\", day: \"numeric\" } as const;\n\nfunction tickFormat(locale: string, span: number) {\n const h = 3_600_000;\n if (span <= 48 * h) return timeFormat(locale, CLOCK);\n if (span <= 90 * 24 * h) return timeFormat(locale, DAY);\n const month = timeFormat(locale, { month: \"short\" });\n return (d: Date) => (d.getMonth() === 0 ? String(d.getFullYear()) : month(d));\n}\n\nexport const TimeseriesChart = /* @__PURE__ */ forwardRef<HTMLDivElement, TimeseriesChartProps>(function TimeseriesChart(\n {\n series,\n kind = \"line\",\n height = 240,\n formatValue = (v) => formatNumber(v),\n threshold,\n hideLegend,\n highlight,\n formatTime,\n className,\n \"aria-label\": ariaLabel,\n ...state\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const [box, size] = useSize<HTMLDivElement>();\n const gid = useId().replace(/:/g, \"\");\n const axisLabel = tickLabel(formatValue);\n const [hidden, setHidden] = useState<Set<string>>(new Set());\n const [focus, setFocus] = useState<string | null>(null);\n const [hover, setHover] = useState<{ i: number; y: number } | null>(null);\n const visible = series.filter((s) => !hidden.has(s.id));\n const times = useMemo(() => (series[0]?.points ?? []).map((p) => new Date(p.t)), [series]);\n const flatValues = visible.flatMap((s) => s.points.map((p) => p.v));\n const w = Math.max(0, size.width - M.left - M.right);\n const h = Math.max(0, height - M.top - M.bottom);\n const stacked = kind === \"stacked\";\n const top = stacked ? (d3max(times.map((_, ti) => visible.reduce((a, s) => a + (s.points[ti]?.v ?? 0), 0))) ?? 0) : (d3max(flatValues) ?? 0);\n const axis = scaleLinear()\n .domain([0, Math.max(top, threshold?.value ?? 0) * 1.08 || 1])\n .nice(4)\n .range([h, 0]);\n const tween = useTweenedScale(flatValues, axis.domain()[1] ?? 1, !!state.loading);\n const values = useMemo(() => {\n let k = 0;\n return visible.map((s) => s.points.map(() => tween.values[k++] ?? 0));\n }, [visible, tween.values]);\n const yScale = axis.copy().domain([0, tween.top || 1]);\n const t0 = d3min(times) ?? new Date();\n const t1 = d3max(times) ?? new Date();\n const x = scaleLinear().domain([t0.getTime(), t1.getTime()]).range([0, w]);\n const stackData = stacked\n ? d3stack<number[]>().keys(visible.map((_, i) => String(i)))(times.map((_, ti) => visible.map((_, si) => values[si]?.[ti] ?? 0)))\n : null;\n const y = (v: number) => Math.max(0, yScale(v));\n const yTicks = (state.loading ? axis.ticks(4) : wholeTicks(readableTicks(axis, axisLabel), flatValues)).filter((t) => t <= (tween.top || 1) + 1e-9);\n const xTicks = timeTicks(t0, t1, Math.max(2, Math.min(8, Math.floor(w / 96))));\n const span = (times[times.length - 1]?.getTime() ?? 0) - (times[0]?.getTime() ?? 0);\n const fmt = tickFormat(locale, span);\n const step = (times[1]?.getTime() ?? 0) - (times[0]?.getTime() ?? 0);\n const headingFormat =\n formatTime ??\n timeFormat(\n locale,\n step && step < 86_400_000 ? { weekday: \"short\", ...DAY, ...CLOCK } : span <= 90 * 86_400_000 ? { weekday: \"short\", ...DAY } : { ...DAY, year: \"numeric\" },\n );\n const lineGen = d3line<number>()\n .x((_, i) => Math.round(x(times[i] ?? new Date())))\n .y((v) => y(v))\n .curve(curveMonotoneX);\n const areaGen = d3area<number>()\n .x((_, i) => Math.round(x(times[i] ?? new Date())))\n .y0(h)\n .y1((v) => y(v))\n .curve(curveMonotoneX);\n const stackArea = d3area<[number, number]>()\n .x((_, i) => Math.round(x(times[i] ?? new Date())))\n .y0((d) => y(d[0]))\n .y1((d) => y(d[1]))\n .curve(curveMonotoneX);\n\n const stackTop = d3line<[number, number]>()\n .x((_, i) => Math.round(x(times[i] ?? new Date())))\n .y((d) => y(d[1]))\n .curve(curveMonotoneX);\n const palette = useMemo(() => seriesColors(series.map((s) => s.id)), [series]);\n const color = (s: TimeSeries) => s.color ?? palette.get(s.id)!;\n const bis = bisector((d: Date) => d.getTime()).center;\n const onMove = (e: React.PointerEvent<SVGRectElement>) => {\n const r = e.currentTarget.getBoundingClientRect();\n const i = bis(times, x.invert(e.clientX - r.left));\n setHover({ i, y: Math.round(e.clientY - r.top + M.top) });\n };\n\n const table = {\n columns: [t(\"timeseriesChart.time\", \"Time\"), ...series.map((s) => s.label)],\n rows: times.map((t, i) => [(formatTime ?? fmt)(t), ...series.map((s) => formatValue(s.points[i]?.v ?? 0))]),\n };\n\n const empty = state.empty ?? series.every((s) => s.points.every((p) => p.v === 0));\n const blank = !!state.loading || empty;\n const keys = useChartKeys(blank || state.error ? 0 : times.length);\n const active = blank || !!state.error ? null : (hover?.i ?? keys.index ?? (highlight !== undefined && highlight < times.length ? highlight : null));\n const activeX = active === null ? 0 : Math.round(x(times[active]!)) + M.left;\n const activeY =\n active === null\n ? 0\n : hover && hover.i === active\n ? hover.y\n : M.top + Math.round(y(stacked ? (stackData?.[stackData.length - 1]?.[active]?.[1] ?? 0) : Math.max(0, ...values.map((sv) => sv[active] ?? 0))));\n const rowsFor = (i: number) =>\n visible.map((s) => {\n const v = s.points[i]?.v ?? 0;\n const total = visible.reduce((acc, ss) => acc + (ss.points[i]?.v ?? 0), 0);\n return {\n id: s.id,\n label: s.label,\n color: color(s),\n value: formatValue(v),\n ...(visible.length > 1 && total ? { share: formatPercent(Math.round((v / total) * 100) / 100, 0) } : {}),\n } as { id: string; label: ReactNode; color: string; value: ReactNode; share?: ReactNode | undefined };\n });\n\n return (\n <div ref={ref} className={cn(\"min-w-0\", className)}>\n <ChartFrame\n label={ariaLabel}\n height={height}\n table={table}\n state={{ ...state, empty }}\n legend={\n !hideLegend && series.length > 1 ? (\n <Legend\n items={series.map((s) => ({ id: s.id, label: s.label, color: color(s) }))}\n hidden={hidden}\n shape={kind === \"line\" ? \"line\" : \"square\"}\n onToggle={(id) => {\n const n = new Set(hidden);\n if (n.has(id)) n.delete(id);\n else n.add(id);\n setHidden(n);\n }}\n onHover={setFocus}\n />\n ) : undefined\n }\n >\n <div ref={box} role=\"group\" aria-label={ariaLabel} {...keys.props} className=\"absolute inset-0 rounded-cell focus-ring\">\n {size.width > 0 && (\n <svg width={size.width} height={height} className=\"block overflow-visible\" role=\"presentation\">\n <defs>\n {visible.map((s) => (\n <linearGradient key={s.id} id={`${gid}-${s.id}`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={color(s)} className=\"chart-fill-top\" />\n <stop offset=\"100%\" stopColor={color(s)} stopOpacity={0} />\n </linearGradient>\n ))}\n </defs>\n <g transform={`translate(${M.left},${M.top})`}>\n {yTicks.map((t) => (\n <g key={t} transform={`translate(0,${Math.round(y(t)) + 0.5})`}>\n {t !== 0 && <line x2={w} {...AXIS.grid} />}\n {!state.loading && (\n <text x={w + 12} dy=\"0.32em\" {...AXIS.label}>\n {axisLabel(t)}\n </text>\n )}\n </g>\n ))}\n <line x2={w} y1={h + 0.5} y2={h + 0.5} {...AXIS.baseline} />\n {placeTimeLabels(\n xTicks.map((t) => ({ key: t.getTime(), at: Math.round(x(t)), label: fmt(t) })),\n w + M.right,\n ).map((l) => (\n <text key={l.key} x={l.x} y={h + 20} textAnchor={l.anchor} {...AXIS.label}>\n {l.label}\n </text>\n ))}\n {blank\n ? null\n : stacked && stackData\n ? stackData.map((layer, li) => {\n const s = visible[li]!;\n return (\n <g key={s.id} opacity={focus && focus !== s.id ? 0.3 : 1} className=\"opacity-motion\">\n <path d={stackArea(layer as unknown as [number, number][]) ?? \"\"} fill={color(s)} className=\"chart-stack-fill\" />\n <path\n d={stackTop(layer as unknown as [number, number][]) ?? \"\"}\n fill=\"none\"\n stroke={color(s)}\n strokeWidth={1.5}\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </g>\n );\n })\n : visible.map((s, si) => (\n <g key={s.id} opacity={focus && focus !== s.id ? 0.3 : 1} className=\"opacity-motion\">\n {kind === \"area\" && <path d={areaGen(values[si] ?? []) ?? \"\"} fill={`url(#${gid}-${s.id})`} />}\n <path\n d={lineGen(values[si] ?? []) ?? \"\"}\n fill=\"none\"\n stroke={color(s)}\n strokeWidth={2}\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </g>\n ))}\n {threshold && (\n <g transform={`translate(0,${Math.round(y(threshold.value)) + 0.5})`}>\n <line x2={w} stroke=\"var(--k-danger)\" strokeDasharray=\"4 4\" strokeWidth={1} />\n <text x={0} dy={-6} fill=\"var(--k-danger-text)\" fontSize={12} fontWeight={500}>\n {threshold.label}\n </text>\n </g>\n )}\n {active !== null && (\n <g aria-hidden>\n <line x1={activeX - M.left + 0.5} x2={activeX - M.left + 0.5} y2={h} {...AXIS.grid} stroke=\"var(--k-line-strong)\" />\n {!stacked &&\n visible.map((s, si) => (\n <circle\n key={s.id}\n cx={activeX - M.left}\n cy={y(values[si]?.[active] ?? 0)}\n r={4}\n fill={color(s)}\n stroke=\"var(--k-bg-panel)\"\n strokeWidth={2}\n />\n ))}\n </g>\n )}\n <rect width={w} height={h} fill=\"transparent\" onPointerMove={onMove} onPointerLeave={() => setHover(null)} />\n </g>\n </svg>\n )}\n {active !== null && times[active] && (\n <ChartTooltip x={activeX} y={activeY} width={size.width} visible heading={headingFormat(times[active]!)} rows={rowsFor(active)} />\n )}\n <ChartLive>\n {keys.index !== null && active !== null && times[keys.index] ? liveLine(headingFormat(times[keys.index]!), rowsFor(keys.index), t) : null}\n </ChartLive>\n </div>\n </ChartFrame>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TimeseriesChart.displayName = \"TimeseriesChart\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { KAESO_SPARKLINE_DEFAULT_VARIANTS as e, KAESO_SPARKLINE_VARIANTS as t, Sparkline as n } from "./charts/sparkline.js";
|
|
3
|
+
import { A as r, C as i, D as a, E as o, O as s, S as c, T as l, _ as u, a as d, b as f, c as p, d as m, f as h, g, h as _, i as v, j as y, k as b, l as x, m as S, n as C, o as w, p as T, r as E, s as D, t as O, u as k, v as A, w as j, x as M, y as N } from "../chunks/core-Bgefcs3z.js";
|
|
4
|
+
import { KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS as P, KAESO_TIMESERIES_CHART_VARIANTS as F, TimeseriesChart as I } from "./charts/timeseries.js";
|
|
5
|
+
import { BarChart as L, KAESO_BAR_CHART_DEFAULT_VARIANTS as R, KAESO_BAR_CHART_VARIANTS as z } from "./charts/bar.js";
|
|
6
|
+
import { Donut as B, KAESO_DONUT_DEFAULT_VARIANTS as V, KAESO_DONUT_VARIANTS as H, KAESO_SHARE_BAR_DEFAULT_VARIANTS as U, KAESO_SHARE_BAR_VARIANTS as W, Ring as G, ShareBar as K, groupSmall as q, shareLabel as J, wholeShares as Y } from "./charts/donut.js";
|
|
7
|
+
import { Heatmap as X, KAESO_HEATMAP_DEFAULT_VARIANTS as Z, KAESO_HEATMAP_VARIANTS as Q } from "./charts/heatmap.js";
|
|
8
|
+
import { Gauge as $, KAESO_GAUGE_DEFAULT_VARIANTS as ee, KAESO_GAUGE_VARIANTS as te } from "./charts/gauge.js";
|
|
9
|
+
import { KAESO_SANKEY_DEFAULT_VARIANTS as ne, KAESO_SANKEY_VARIANTS as re, Sankey as ie } from "./charts/sankey.js";
|
|
10
|
+
export { O as AXIS, L as BarChart, C as ChartFrame, E as ChartLive, v as ChartTooltip, B as Donut, $ as Gauge, X as Heatmap, R as KAESO_BAR_CHART_DEFAULT_VARIANTS, z as KAESO_BAR_CHART_VARIANTS, d as KAESO_CHARTS_DEFAULT_VARIANTS, w as KAESO_CHARTS_VARIANTS, V as KAESO_DONUT_DEFAULT_VARIANTS, H as KAESO_DONUT_VARIANTS, ee as KAESO_GAUGE_DEFAULT_VARIANTS, te as KAESO_GAUGE_VARIANTS, Z as KAESO_HEATMAP_DEFAULT_VARIANTS, Q as KAESO_HEATMAP_VARIANTS, ne as KAESO_SANKEY_DEFAULT_VARIANTS, re as KAESO_SANKEY_VARIANTS, U as KAESO_SHARE_BAR_DEFAULT_VARIANTS, W as KAESO_SHARE_BAR_VARIANTS, e as KAESO_SPARKLINE_DEFAULT_VARIANTS, t as KAESO_SPARKLINE_VARIANTS, P as KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS, F as KAESO_TIMESERIES_CHART_VARIANTS, D as Legend, G as Ring, ie as Sankey, K as ShareBar, n as Sparkline, p as Swatch, x as TOKEN_KIND_ORDER, I as TimeseriesChart, k as VIZ, m as VIZ_THIN, h as assignSeries, T as axisLabelIndexes, S as chartKeyIndex, q as groupSmall, _ as labelWidth, g as liveLine, u as placeTimeLabels, A as readableTicks, N as seriesColor, f as seriesColors, M as seriesIndex, J as shareLabel, c as tickLabel, i as tokenKindColor, j as tokenKindLabel, l as tweens, o as useChartKeys, a as useSize, s as useTweened, b as useTweenedScale, Y as wholeShares, r as wholeTicks, y as yearStarts };
|