@logicplanes/kaeso-ui 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +1 -1
- package/ai/component-guides.md +283 -21
- package/ai/component-registry.json +528 -25
- package/ai/component-registry.md +135 -25
- package/ai/icons.md +3 -3
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +15 -14
- package/dist/blocks/delete-resource.js.map +1 -1
- package/dist/blocks/pages.js +2 -2
- package/dist/blocks/resource-list.js +41 -40
- package/dist/blocks/resource-list.js.map +1 -1
- package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
- package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
- package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
- package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
- package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
- package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
- package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
- package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
- package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
- package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
- package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
- package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
- package/dist/chunks/{code-block-U5fCqwgC.js → code-block-D5A-CGXG.js} +2 -2
- package/dist/chunks/{code-block-U5fCqwgC.js.map → code-block-D5A-CGXG.js.map} +1 -1
- package/dist/chunks/combobox-DjDI7SUC.js +319 -0
- package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
- package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
- package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
- package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
- package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
- package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
- package/dist/chunks/core-BYns5ytV.js.map +1 -0
- package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
- package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
- package/dist/chunks/{de-BnNQtBSV.js → de-CPXJh9cq.js} +3 -1
- package/dist/chunks/de-CPXJh9cq.js.map +1 -0
- package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
- package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
- package/dist/chunks/icon-DVooQfk4.js +94 -0
- package/dist/chunks/icon-DVooQfk4.js.map +1 -0
- package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
- package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
- package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
- package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
- package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
- package/dist/chunks/input-2VJuj_M4.js.map +1 -0
- package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
- package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
- package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
- package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
- package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
- package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
- package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
- package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
- package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
- package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
- package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
- package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
- package/dist/chunks/{markdown-BEgwZFlu.js → markdown-DULktoTK.js} +5 -5
- package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-DULktoTK.js.map} +1 -1
- package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
- package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
- package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
- package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
- package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
- package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
- package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
- package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
- package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
- package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
- package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
- package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
- package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
- package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
- package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
- package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
- package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
- package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
- package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
- package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
- package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
- package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
- package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
- package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
- package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
- package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
- package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
- package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
- package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
- package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
- package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
- package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
- package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
- package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
- package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
- package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
- package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
- package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
- package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
- package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
- package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
- package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
- package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
- package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
- package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
- package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-29X4CDLE.js} +3 -1
- package/dist/chunks/zh-CN-29X4CDLE.js.map +1 -0
- package/dist/components/agent-avatar.js +2 -0
- package/dist/components/app-frame.js +2 -2
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +1 -1
- package/dist/components/charts/donut.js +1 -1
- package/dist/components/charts/gauge.js +1 -1
- package/dist/components/charts/sankey.js +1 -1
- package/dist/components/charts/timeseries.js +1 -1
- package/dist/components/charts.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-block.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-list.js +2 -2
- package/dist/components/command-palette.js +85 -81
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +191 -187
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +6 -4
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +125 -91
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +49 -46
- package/dist/components/display-options.js.map +1 -1
- package/dist/components/filter-chip.js +3 -3
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/filter-row.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +49 -49
- package/dist/components/input.js.map +1 -1
- package/dist/components/kaeso/conversation.js +3 -3
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +3 -3
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +8 -8
- package/dist/components/kaeso/usage.js.map +1 -1
- package/dist/components/kaeso.js +263 -95
- package/dist/components/kaeso.js.map +1 -1
- package/dist/components/key-value.js +2 -2
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +27 -26
- package/dist/components/playground.js.map +1 -1
- package/dist/components/popover.js +12 -11
- package/dist/components/popover.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/settings.js +8 -8
- package/dist/components/settings.js.map +1 -1
- package/dist/components/sheet.js +2 -2
- package/dist/components/sidebar.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tabs.js +22 -22
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-menu.js +33 -30
- package/dist/components/theme-menu.js.map +1 -1
- package/dist/components/thumbnail.js +41 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/toast.js +96 -87
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/format.js.map +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +89 -87
- package/dist/kaeso.css +3 -0
- package/dist/styles.css +1 -1
- package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
- package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
- package/dist/types/component-docs.d.ts +1 -1
- package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
- package/dist/types/components/agent-avatar/docs.d.ts +19 -0
- package/dist/types/components/agent-avatar/index.d.ts +3 -0
- package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
- package/dist/types/components/agent-avatar/models.d.ts +4 -0
- package/dist/types/components/app-frame/app-frame.d.ts +3 -8
- package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
- package/dist/types/components/calendar/calendar.d.ts +1 -4
- package/dist/types/components/charts/core.d.ts +11 -18
- package/dist/types/components/checkbox/checkbox.d.ts +2 -0
- package/dist/types/components/combobox/combobox.d.ts +26 -2
- package/dist/types/components/command-list/picker-popover.d.ts +1 -4
- package/dist/types/components/command-palette/command-palette.d.ts +1 -4
- package/dist/types/components/data-table/data-table.d.ts +2 -1
- package/dist/types/components/data-table/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +7 -9
- package/dist/types/components/dialog/docs.d.ts +2 -0
- package/dist/types/components/dialog/scope.d.ts +2 -0
- package/dist/types/components/dialog/step-dialog.d.ts +38 -5
- package/dist/types/components/display-options/display-options.d.ts +2 -5
- package/dist/types/components/input/input.d.ts +23 -0
- package/dist/types/components/kaeso/client-button.d.ts +17 -0
- package/dist/types/components/kaeso/docs.d.ts +18 -0
- package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
- package/dist/types/components/kaeso/identity.d.ts +2 -0
- package/dist/types/components/kaeso/index.d.ts +2 -0
- package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
- package/dist/types/components/kaeso/usage.d.ts +2 -0
- package/dist/types/components/list/list.d.ts +4 -8
- package/dist/types/components/menu/docs.d.ts +8 -1
- package/dist/types/components/menu/menu.d.ts +19 -31
- package/dist/types/components/playground/parameter-panel.d.ts +1 -4
- package/dist/types/components/popover/hover-card.d.ts +2 -0
- package/dist/types/components/radio/docs.d.ts +15 -0
- package/dist/types/components/radio/radio.d.ts +2 -4
- package/dist/types/components/settings/settings.d.ts +2 -0
- package/dist/types/components/sidebar/sidebar.d.ts +13 -35
- package/dist/types/components/tabs/tabs.d.ts +15 -0
- package/dist/types/components/theme-menu/docs.d.ts +2 -0
- package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
- package/dist/types/components/thumbnail/docs.d.ts +10 -0
- package/dist/types/components/thumbnail/index.d.ts +1 -0
- package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
- package/dist/types/components/toast/toast.d.ts +5 -12
- package/dist/types/components/toolbar/toolbar.d.ts +1 -6
- package/dist/types/components/tooltip/tooltip.d.ts +2 -4
- package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
- package/dist/types/format/index.d.ts +5 -5
- package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
- package/dist/types/icons/groups.d.ts +2 -2
- package/dist/types/icons/vocabulary.d.ts +15 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/utils/inset.d.ts +4 -0
- package/dist/types/utils/link-provider.d.ts +1 -1
- package/dist/types/utils/merge-refs.d.ts +3 -0
- package/dist/types/utils/portal-context.d.ts +1 -1
- package/dist/utils.js +3 -3
- package/foundations/shape.md +1 -1
- package/package.json +2 -2
- package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
- package/dist/chunks/calendar--YemJsv4.js.map +0 -1
- package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
- package/dist/chunks/combobox-BARyrpXH.js +0 -314
- package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
- package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
- package/dist/chunks/de-BnNQtBSV.js.map +0 -1
- package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
- package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
- package/dist/chunks/icon-CBzvyEqC.js +0 -91
- package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
- package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
- package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
- package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
- package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
- package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
- package/dist/chunks/menu-fl_QQb38.js.map +0 -1
- package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
- package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
- package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
- package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
- package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
- package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button-7-irieJw.js","names":["__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","useTruncated","Button","useCopy","KAESO_COPY_BUTTON_VARIANTS","KAESO_COPY_BUTTON_DEFAULT_VARIANTS","CopyButton","labelProp","props","hover","setHover","useState","t","label","done","Tooltip","copied","Tick02Icon","Copy01Icon","copy","value","onCopy","KAESO_CLIPBOARD_TEXT_VARIANTS","KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","ClipboardText","size","className","display","ICON_ROOM","sharesLine","sibling","style","parent","hasRoomAfter","node","el","overflow","useRoomAfter","button","setButton","room","setRoom","useLayoutEffect","touch","check","watch","InlineCopyText","buttonRef","useCallback","ref","text","useRef","cut","children"],"sources":["../../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useCallback, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Button, type ButtonSize } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COPY_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n secondary: { classes: \"material-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_COPY_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface CopyButtonProps {\n value: string;\n label?: string | undefined;\n size?: ButtonSize | undefined;\n variant?: keyof typeof KAESO_COPY_BUTTON_VARIANTS.variant | undefined;\n onCopy?: ((value: string) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const CopyButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, CopyButtonProps>(function CopyButton(\n { value, label: labelProp, size = \"sm\", variant = \"ghost\", onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const t = useUiText();\n const label = labelProp ?? t(\"copyButton.copy\", \"Copy\");\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip content={copied ? done : label} open={copied || hover} onOpenChange={setHover}>\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n size={size}\n variant={variant}\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n aria-label={copied ? done : label}\n className={className}\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n {...props}\n />\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CopyButton.displayName = \"CopyButton\";\n\nexport const KAESO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: { classes: \"h-32 pl-12 pr-0 text-small\" },\n md: { classes: \"h-36 pl-16 pr-2 text-small\" },\n lg: { classes: \"h-40 pl-18 pr-4 text-small\" },\n },\n} as const;\nexport const KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ClipboardTextProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n value: string;\n display?: ReactNode | undefined;\n label?: string | undefined;\n size?: keyof typeof KAESO_CLIPBOARD_TEXT_VARIANTS.size | undefined;\n}\n\nexport const ClipboardText = /* @__PURE__ */ forwardRef<HTMLDivElement, ClipboardTextProps>(function ClipboardText(\n { value, display, label, size = \"md\", className, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn(\"inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1\", KAESO_CLIPBOARD_TEXT_VARIANTS.size[size].classes, className)}\n {...props}\n >\n <span className=\"mono min-w-0 flex-1 truncate text-fg select-all\">{display ?? value}</span>\n <CopyButton value={value} label={label} size=\"sm\" />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClipboardText.displayName = \"ClipboardText\";\n\nexport interface InlineCopyTextProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"children\" | \"onCopy\"> {\n value: string;\n children?: ReactNode | undefined;\n label?: string | undefined;\n onCopy?: ((value: string) => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ICON_ROOM = 18;\n\nfunction sharesLine(sibling: Node, parent: CSSStyleDeclaration): boolean {\n if (sibling.nodeType === Node.TEXT_NODE) return !!sibling.textContent?.trim();\n if (!(sibling instanceof Element)) return false;\n const style = getComputedStyle(sibling);\n if (style.display === \"none\" || style.position === \"absolute\" || style.position === \"fixed\") return false;\n if (parent.display.endsWith(\"flex\")) return !parent.flexDirection.startsWith(\"column\");\n if (parent.display === \"block\" || parent.display === \"flow-root\" || parent.display === \"list-item\") return style.display.startsWith(\"inline\");\n return true;\n}\n\nfunction hasRoomAfter(el: Element): boolean {\n let node = el;\n for (let parent = el.parentElement; parent; node = parent, parent = parent.parentElement) {\n const style = getComputedStyle(parent);\n for (let sibling = node.nextSibling; sibling; sibling = sibling.nextSibling) if (sharesLine(sibling, style)) return false;\n if ((parseFloat(style.direction === \"rtl\" ? style.paddingLeft : style.paddingRight) || 0) >= ICON_ROOM) return true;\n const overflow = style.overflowX || style.overflow;\n if (overflow && overflow !== \"visible\") return false;\n }\n return true;\n}\n\nfunction useRoomAfter() {\n const [button, setButton] = useState<HTMLButtonElement | null>(null);\n const [room, setRoom] = useState(false);\n useLayoutEffect(() => {\n const parent = button?.parentElement;\n if (!button || !parent) return;\n const touch = typeof window.matchMedia === \"function\" ? window.matchMedia(\"(pointer: coarse)\") : null;\n const check = () => setRoom(!touch?.matches && hasRoomAfter(button));\n check();\n const watch = new MutationObserver(check);\n watch.observe(parent, { childList: true });\n touch?.addEventListener(\"change\", check);\n return () => {\n watch.disconnect();\n touch?.removeEventListener(\"change\", check);\n };\n }, [button]);\n return [room, setButton] as const;\n}\n\nexport const InlineCopyText = /* @__PURE__ */ forwardRef<HTMLButtonElement, InlineCopyTextProps>(function InlineCopyText(\n { value, children, label, onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const [room, setButton] = useRoomAfter();\n const buttonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n setButton(el);\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [ref, setButton],\n );\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const t = useUiText();\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip\n content={copied ? done : cut ? value : (label ?? t(\"copyButton.copy\", \"Copy\"))}\n shape={cut && !copied ? \"multiline\" : \"pill\"}\n open={copied || hover}\n onOpenChange={setHover}\n >\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n className={cn(\n \"group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target\",\n \"hover:bg-fill-1 active:bg-fill-2 cursor-copy\",\n className,\n )}\n {...props}\n >\n <span ref={text} className=\"min-w-0 truncate\">\n {children ?? value}\n </span>\n <Icon\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n size=\"xs\"\n className={cn(\n room && \"pointer-events-none absolute start-full group-hover/copy:pointer-events-auto group-focus-visible/copy:pointer-events-auto\",\n \"text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100\",\n copied && \"pointer-events-auto opacity-100 text-fg\",\n )}\n />\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? done : \"\"}\n </span>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") InlineCopyText.displayName = \"InlineCopyText\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"copy-button-FJvPJn72.js","names":["__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","useTruncated","Button","useCopy","KAESO_COPY_BUTTON_VARIANTS","KAESO_COPY_BUTTON_DEFAULT_VARIANTS","CopyButton","labelProp","props","hover","setHover","useState","t","label","done","Tooltip","copied","Tick02Icon","Copy01Icon","copy","value","onCopy","KAESO_CLIPBOARD_TEXT_VARIANTS","KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","ClipboardText","size","className","display","ICON_ROOM","sharesLine","sibling","style","parent","hasRoomAfter","node","el","overflow","useRoomAfter","button","setButton","room","setRoom","useLayoutEffect","touch","check","watch","InlineCopyText","buttonRef","useCallback","ref","text","useRef","cut","children"],"sources":["../../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useCallback, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Button, type ButtonSize } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COPY_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n secondary: { classes: \"material-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_COPY_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface CopyButtonProps {\n value: string;\n label?: string | undefined;\n size?: ButtonSize | undefined;\n variant?: keyof typeof KAESO_COPY_BUTTON_VARIANTS.variant | undefined;\n onCopy?: ((value: string) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const CopyButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, CopyButtonProps>(function CopyButton(\n { value, label: labelProp, size = \"sm\", variant = \"ghost\", onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const t = useUiText();\n const label = labelProp ?? t(\"copyButton.copy\", \"Copy\");\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip content={copied ? done : label} open={copied || hover} onOpenChange={setHover}>\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n size={size}\n variant={variant}\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n aria-label={copied ? done : label}\n className={className}\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n {...props}\n />\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CopyButton.displayName = \"CopyButton\";\n\nexport const KAESO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: { classes: \"h-32 pl-12 pr-0 text-small\" },\n md: { classes: \"h-36 pl-16 pr-2 text-small\" },\n lg: { classes: \"h-40 pl-18 pr-4 text-small\" },\n },\n} as const;\nexport const KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ClipboardTextProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n value: string;\n display?: ReactNode | undefined;\n label?: string | undefined;\n size?: keyof typeof KAESO_CLIPBOARD_TEXT_VARIANTS.size | undefined;\n}\n\nexport const ClipboardText = /* @__PURE__ */ forwardRef<HTMLDivElement, ClipboardTextProps>(function ClipboardText(\n { value, display, label, size = \"md\", className, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn(\"inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1\", KAESO_CLIPBOARD_TEXT_VARIANTS.size[size].classes, className)}\n {...props}\n >\n <span className=\"mono min-w-0 flex-1 truncate text-fg select-all\">{display ?? value}</span>\n <CopyButton value={value} label={label} size=\"sm\" />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClipboardText.displayName = \"ClipboardText\";\n\nexport interface InlineCopyTextProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"children\" | \"onCopy\"> {\n value: string;\n children?: ReactNode | undefined;\n label?: string | undefined;\n onCopy?: ((value: string) => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ICON_ROOM = 18;\n\nfunction sharesLine(sibling: Node, parent: CSSStyleDeclaration): boolean {\n if (sibling.nodeType === Node.TEXT_NODE) return !!sibling.textContent?.trim();\n if (!(sibling instanceof Element)) return false;\n const style = getComputedStyle(sibling);\n if (style.display === \"none\" || style.position === \"absolute\" || style.position === \"fixed\") return false;\n if (parent.display.endsWith(\"flex\")) return !parent.flexDirection.startsWith(\"column\");\n if (parent.display === \"block\" || parent.display === \"flow-root\" || parent.display === \"list-item\") return style.display.startsWith(\"inline\");\n return true;\n}\n\nfunction hasRoomAfter(el: Element): boolean {\n let node = el;\n for (let parent = el.parentElement; parent; node = parent, parent = parent.parentElement) {\n const style = getComputedStyle(parent);\n for (let sibling = node.nextSibling; sibling; sibling = sibling.nextSibling) if (sharesLine(sibling, style)) return false;\n if ((parseFloat(style.direction === \"rtl\" ? style.paddingLeft : style.paddingRight) || 0) >= ICON_ROOM) return true;\n const overflow = style.overflowX || style.overflow;\n if (overflow && overflow !== \"visible\") return false;\n }\n return true;\n}\n\nfunction useRoomAfter() {\n const [button, setButton] = useState<HTMLButtonElement | null>(null);\n const [room, setRoom] = useState(false);\n useLayoutEffect(() => {\n const parent = button?.parentElement;\n if (!button || !parent) return;\n const touch = typeof window.matchMedia === \"function\" ? window.matchMedia(\"(pointer: coarse)\") : null;\n const check = () => setRoom(!touch?.matches && hasRoomAfter(button));\n check();\n const watch = new MutationObserver(check);\n watch.observe(parent, { childList: true });\n touch?.addEventListener(\"change\", check);\n return () => {\n watch.disconnect();\n touch?.removeEventListener(\"change\", check);\n };\n }, [button]);\n return [room, setButton] as const;\n}\n\nexport const InlineCopyText = /* @__PURE__ */ forwardRef<HTMLButtonElement, InlineCopyTextProps>(function InlineCopyText(\n { value, children, label, onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const [room, setButton] = useRoomAfter();\n const buttonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n setButton(el);\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [ref, setButton],\n );\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const t = useUiText();\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip\n content={copied ? done : cut ? value : (label ?? t(\"copyButton.copy\", \"Copy\"))}\n shape={cut && !copied ? \"multiline\" : \"pill\"}\n open={copied || hover}\n onOpenChange={setHover}\n >\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n className={cn(\n \"group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target\",\n \"hover:bg-fill-1 active:bg-fill-2 cursor-copy\",\n className,\n )}\n {...props}\n >\n <span ref={text} className=\"min-w-0 truncate\">\n {children ?? value}\n </span>\n <Icon\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n size=\"xs\"\n className={cn(\n room && \"pointer-events-none absolute start-full group-hover/copy:pointer-events-auto group-focus-visible/copy:pointer-events-auto\",\n \"text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100\",\n copied && \"pointer-events-auto opacity-100 text-fg\",\n )}\n />\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? done : \"\"}\n </span>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") InlineCopyText.displayName = \"InlineCopyText\";\n"],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as e } from "./cn-Dj6sRgkF.js";
|
|
3
3
|
import { i as t, n } from "./context-BELWW79w.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
4
|
+
import { s as r } from "./tooltip-OcwO0VUT.js";
|
|
5
|
+
import { t as i } from "./observe-resize-DhxhmoyB.js";
|
|
6
|
+
import { n as a } from "./button-CzuxqawA.js";
|
|
7
|
+
import { r as o } from "./skeleton-Dcz57Zyp.js";
|
|
8
|
+
import { forwardRef as s, useEffect as c, useLayoutEffect as l, useMemo as u, useRef as d, useState as f } from "react";
|
|
9
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
10
|
+
import { motion as h, tokenKindSeries as g, tokenKindTint as _ } from "@logicplanes/kaeso-tokens";
|
|
10
11
|
//#region src/components/charts/core.tsx
|
|
11
|
-
function
|
|
12
|
+
function v(e, t) {
|
|
12
13
|
return t.every(Number.isInteger) ? e.filter(Number.isInteger) : e;
|
|
13
14
|
}
|
|
14
|
-
var
|
|
15
|
+
var y = [
|
|
15
16
|
"var(--k-viz-1)",
|
|
16
17
|
"var(--k-viz-2)",
|
|
17
18
|
"var(--k-viz-3)",
|
|
@@ -20,7 +21,7 @@ var g = [
|
|
|
20
21
|
"var(--k-viz-6)",
|
|
21
22
|
"var(--k-viz-7)",
|
|
22
23
|
"var(--k-viz-8)"
|
|
23
|
-
],
|
|
24
|
+
], b = [
|
|
24
25
|
"var(--k-viz-thin-1)",
|
|
25
26
|
"var(--k-viz-thin-2)",
|
|
26
27
|
"var(--k-viz-thin-3)",
|
|
@@ -30,12 +31,12 @@ var g = [
|
|
|
30
31
|
"var(--k-viz-thin-7)",
|
|
31
32
|
"var(--k-viz-thin-8)"
|
|
32
33
|
];
|
|
33
|
-
function
|
|
34
|
+
function x(e) {
|
|
34
35
|
let t = 2166136261;
|
|
35
36
|
for (let n = 0; n < e.length; n++) t = Math.imul(t ^ e.charCodeAt(n), 16777619);
|
|
36
37
|
return Math.abs(t);
|
|
37
38
|
}
|
|
38
|
-
var
|
|
39
|
+
var S = {
|
|
39
40
|
1: 6,
|
|
40
41
|
6: 1,
|
|
41
42
|
2: 5,
|
|
@@ -43,33 +44,33 @@ var y = {
|
|
|
43
44
|
3: 7,
|
|
44
45
|
7: 3
|
|
45
46
|
};
|
|
46
|
-
function
|
|
47
|
-
return
|
|
47
|
+
function C(e) {
|
|
48
|
+
return x(e) % y.length;
|
|
48
49
|
}
|
|
49
|
-
function
|
|
50
|
-
let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = (e) => n.has(e) ||
|
|
50
|
+
function w(e) {
|
|
51
|
+
let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = (e) => n.has(e) || S[e] !== void 0 && n.has(S[e]);
|
|
51
52
|
for (let i of e) {
|
|
52
53
|
if (t.has(i)) continue;
|
|
53
|
-
let e =
|
|
54
|
+
let e = C(i);
|
|
54
55
|
if (r(e)) {
|
|
55
|
-
let t = [...
|
|
56
|
+
let t = [...y.keys()];
|
|
56
57
|
e = t.find((e) => !r(e)) ?? t.find((e) => !n.has(e)) ?? e;
|
|
57
58
|
}
|
|
58
59
|
n.add(e), t.set(i, e);
|
|
59
60
|
}
|
|
60
61
|
return t;
|
|
61
62
|
}
|
|
62
|
-
function
|
|
63
|
-
return new Map([...
|
|
63
|
+
function T(e, t = !1) {
|
|
64
|
+
return new Map([...w(e)].map(([e, n]) => [e, (t ? b : y)[n]]));
|
|
64
65
|
}
|
|
65
|
-
var
|
|
66
|
+
var E = (e, t = !1) => (t ? b : y)[C(e)], D = (e, t = !1) => _[e] ? "var(--k-viz-1-soft)" : (t ? b : y)[g[e] - 1], O = [
|
|
66
67
|
"input",
|
|
67
68
|
"cacheRead",
|
|
68
69
|
"cacheWrite",
|
|
69
70
|
"output",
|
|
70
71
|
"reasoning"
|
|
71
72
|
];
|
|
72
|
-
function
|
|
73
|
+
function ee(e, t = n) {
|
|
73
74
|
switch (e) {
|
|
74
75
|
case "input": return t("tokenKind.input", "Input");
|
|
75
76
|
case "output": return t("tokenKind.output", "Output");
|
|
@@ -78,26 +79,26 @@ function E(e, t = n) {
|
|
|
78
79
|
case "reasoning": return t("tokenKind.reasoning", "Reasoning");
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
|
-
function
|
|
82
|
-
let [e, t] =
|
|
82
|
+
function te() {
|
|
83
|
+
let [e, t] = f(null), [n, r] = f({
|
|
83
84
|
width: 0,
|
|
84
85
|
height: 0
|
|
85
86
|
});
|
|
86
|
-
return
|
|
87
|
+
return l(() => {
|
|
87
88
|
if (!e) return;
|
|
88
|
-
let t = () =>
|
|
89
|
+
let t = () => r({
|
|
89
90
|
width: Math.round(e.clientWidth),
|
|
90
91
|
height: Math.round(e.clientHeight)
|
|
91
92
|
});
|
|
92
|
-
return t(),
|
|
93
|
+
return t(), i([e], t);
|
|
93
94
|
}, [e]), [t, n];
|
|
94
95
|
}
|
|
95
|
-
var
|
|
96
|
-
function
|
|
97
|
-
return e.length === t.length && e.some((e) => e !== 0) && t.some((e) => e !== 0) && e.some((e, n) => e !== t[n]) && !
|
|
96
|
+
var k = (e) => 1 - (1 - e) ** 3, A = () => typeof matchMedia < "u" && matchMedia("(prefers-reduced-motion: reduce)").matches, j = (e, t, n) => n >= 1 ? t : t.map((t, r) => (e[r] ?? t) + (t - (e[r] ?? t)) * k(n));
|
|
97
|
+
function M(e, t) {
|
|
98
|
+
return e.length === t.length && e.some((e) => e !== 0) && t.some((e) => e !== 0) && e.some((e, n) => e !== t[n]) && !A();
|
|
98
99
|
}
|
|
99
|
-
function
|
|
100
|
-
let n = e.join(","), [r, i] =
|
|
100
|
+
function N(e, t = !1) {
|
|
101
|
+
let n = e.join(","), [r, i] = f({
|
|
101
102
|
key: n,
|
|
102
103
|
from: e,
|
|
103
104
|
to: e,
|
|
@@ -105,8 +106,8 @@ function j(e, t = !1) {
|
|
|
105
106
|
still: t
|
|
106
107
|
}), a = r;
|
|
107
108
|
if (r.key !== n || r.still !== t) {
|
|
108
|
-
let o =
|
|
109
|
-
a = !t && !r.still &&
|
|
109
|
+
let o = j(r.from, r.to, r.t);
|
|
110
|
+
a = !t && !r.still && M(o, e) ? {
|
|
110
111
|
key: n,
|
|
111
112
|
from: o,
|
|
112
113
|
to: e,
|
|
@@ -120,21 +121,21 @@ function j(e, t = !1) {
|
|
|
120
121
|
still: t
|
|
121
122
|
}, i(a);
|
|
122
123
|
}
|
|
123
|
-
let
|
|
124
|
-
return
|
|
125
|
-
if (!
|
|
124
|
+
let o = a.t < 1;
|
|
125
|
+
return c(() => {
|
|
126
|
+
if (!o) return;
|
|
126
127
|
let e = performance.now(), t = 0, r = () => {
|
|
127
|
-
let a = Math.max(0, Math.min(1, (performance.now() - e) /
|
|
128
|
+
let a = Math.max(0, Math.min(1, (performance.now() - e) / h.duration.chart));
|
|
128
129
|
i((e) => e.key === n ? {
|
|
129
130
|
...e,
|
|
130
131
|
t: a
|
|
131
132
|
} : e), a < 1 && (t = requestAnimationFrame(r));
|
|
132
133
|
};
|
|
133
134
|
return t = requestAnimationFrame(r), () => cancelAnimationFrame(t);
|
|
134
|
-
}, [n,
|
|
135
|
+
}, [n, o]), j(a.from, a.to, a.t);
|
|
135
136
|
}
|
|
136
|
-
function
|
|
137
|
-
let r = e.some((e) => e !== 0), i =
|
|
137
|
+
function P(e, t, n = !1) {
|
|
138
|
+
let r = e.some((e) => e !== 0), i = N(r ? [...e, t] : e, n);
|
|
138
139
|
return r ? {
|
|
139
140
|
values: i.slice(0, -1),
|
|
140
141
|
top: i[i.length - 1] ?? t
|
|
@@ -143,82 +144,84 @@ function M(e, t, n = !1) {
|
|
|
143
144
|
top: t
|
|
144
145
|
};
|
|
145
146
|
}
|
|
146
|
-
|
|
147
|
-
let [
|
|
148
|
-
return /* @__PURE__ */
|
|
149
|
-
|
|
147
|
+
var F = /* @__PURE__ */ s(function({ label: n, height: r, children: i, table: s, legend: c, state: l = {}, className: u, toggle: d = !0 }, h) {
|
|
148
|
+
let [g, _] = f(!1), v = t();
|
|
149
|
+
return /* @__PURE__ */ m("figure", {
|
|
150
|
+
ref: h,
|
|
151
|
+
className: e("@container flex min-w-0 flex-col gap-12", u),
|
|
150
152
|
"aria-label": n,
|
|
151
153
|
children: [
|
|
152
|
-
|
|
154
|
+
l.error ? /* @__PURE__ */ m("div", {
|
|
153
155
|
className: "flex flex-col items-center justify-center gap-8 text-center",
|
|
154
156
|
style: { height: r },
|
|
155
|
-
children: [/* @__PURE__ */
|
|
157
|
+
children: [/* @__PURE__ */ p("p", {
|
|
156
158
|
role: "alert",
|
|
157
159
|
className: "text-body text-fg-secondary",
|
|
158
|
-
children:
|
|
159
|
-
}),
|
|
160
|
+
children: v("chartFrame.loadFailed", "Couldn't load this chart")
|
|
161
|
+
}), l.onRetry && /* @__PURE__ */ p(a, {
|
|
160
162
|
size: "sm",
|
|
161
|
-
onClick:
|
|
162
|
-
children:
|
|
163
|
+
onClick: l.onRetry,
|
|
164
|
+
children: v("chartFrame.tryAgain", "Try again")
|
|
163
165
|
})]
|
|
164
|
-
}) :
|
|
166
|
+
}) : g && s ? /* @__PURE__ */ p("div", {
|
|
165
167
|
className: "overflow-auto scrollbar-quiet",
|
|
166
168
|
style: { minHeight: r },
|
|
167
|
-
children: /* @__PURE__ */
|
|
168
|
-
}) : /* @__PURE__ */
|
|
169
|
+
children: /* @__PURE__ */ p(I, { table: s })
|
|
170
|
+
}) : /* @__PURE__ */ m("div", {
|
|
169
171
|
className: "relative",
|
|
170
172
|
style: { height: r },
|
|
171
173
|
children: [
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
l.loading && l.empty ? /* @__PURE__ */ p(o, { className: "absolute inset-0" }) : i,
|
|
175
|
+
l.loading && !l.empty && /* @__PURE__ */ p(o, { className: "absolute inset-x-0 bottom-0 h-2 rounded-pill" }),
|
|
176
|
+
l.empty && !l.loading && /* @__PURE__ */ p("div", {
|
|
175
177
|
className: "absolute inset-0 flex items-center justify-center text-body text-fg-secondary",
|
|
176
|
-
children:
|
|
178
|
+
children: l.emptyText ?? v("chartFrame.noData", "No data for this period")
|
|
177
179
|
})
|
|
178
180
|
]
|
|
179
181
|
}),
|
|
180
|
-
(c ||
|
|
182
|
+
(c || d && s) && /* @__PURE__ */ m("div", {
|
|
181
183
|
className: "flex flex-col gap-8 @chart-legend:flex-row @chart-legend:gap-12",
|
|
182
|
-
children: [!
|
|
184
|
+
children: [!g && c && /* @__PURE__ */ p("div", {
|
|
183
185
|
className: "min-w-0 @chart-legend:flex-1",
|
|
184
186
|
children: c
|
|
185
|
-
}),
|
|
187
|
+
}), d && s && /* @__PURE__ */ p("button", {
|
|
186
188
|
type: "button",
|
|
187
|
-
onClick: () =>
|
|
188
|
-
"aria-pressed":
|
|
189
|
+
onClick: () => _((e) => !e),
|
|
190
|
+
"aria-pressed": g,
|
|
189
191
|
className: "relative ml-auto inline-flex h-28 shrink-0 cursor-pointer items-center self-end rounded-pill px-10 text-small font-medium text-fg-secondary transition-control hover:bg-fill-1 hover:text-fg focus-ring tap-target",
|
|
190
|
-
children:
|
|
192
|
+
children: g ? v("chartFrame.viewAsChart", "View as chart") : v("chartFrame.viewAsTable", "View as table")
|
|
191
193
|
})]
|
|
192
194
|
}),
|
|
193
|
-
s && !
|
|
195
|
+
s && !g && /* @__PURE__ */ p("div", {
|
|
194
196
|
className: "sr-only",
|
|
195
|
-
children: /* @__PURE__ */
|
|
197
|
+
children: /* @__PURE__ */ p(I, {
|
|
196
198
|
table: s,
|
|
197
199
|
caption: n
|
|
198
200
|
})
|
|
199
201
|
})
|
|
200
202
|
]
|
|
201
203
|
});
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
204
|
+
});
|
|
205
|
+
process.env.NODE_ENV !== "production" && (F.displayName = "ChartFrame");
|
|
206
|
+
function I({ table: t, caption: n }) {
|
|
207
|
+
return /* @__PURE__ */ m("table", {
|
|
205
208
|
className: "w-full text-body",
|
|
206
209
|
children: [
|
|
207
|
-
n && /* @__PURE__ */
|
|
210
|
+
n && /* @__PURE__ */ p("caption", {
|
|
208
211
|
className: "sr-only",
|
|
209
212
|
children: n
|
|
210
213
|
}),
|
|
211
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ p("thead", { children: /* @__PURE__ */ p("tr", {
|
|
212
215
|
className: "hairline-b-strong",
|
|
213
|
-
children: t.columns.map((t, n) => /* @__PURE__ */
|
|
216
|
+
children: t.columns.map((t, n) => /* @__PURE__ */ p("th", {
|
|
214
217
|
scope: "col",
|
|
215
218
|
className: e("h-36 px-12 text-caption font-medium text-fg-secondary first:pl-0", n > 0 ? "text-right" : "text-left"),
|
|
216
219
|
children: t
|
|
217
220
|
}, t))
|
|
218
221
|
}) }),
|
|
219
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ p("tbody", { children: t.rows.map((t, n) => /* @__PURE__ */ p("tr", {
|
|
220
223
|
className: "hairline-b",
|
|
221
|
-
children: t.map((t, n) => /* @__PURE__ */
|
|
224
|
+
children: t.map((t, n) => /* @__PURE__ */ p("td", {
|
|
222
225
|
className: e("h-36 px-12 first:pl-0", n > 0 ? "text-right tabular" : "text-left"),
|
|
223
226
|
children: t
|
|
224
227
|
}, n))
|
|
@@ -226,16 +229,17 @@ function P({ table: t, caption: n }) {
|
|
|
226
229
|
]
|
|
227
230
|
});
|
|
228
231
|
}
|
|
229
|
-
|
|
230
|
-
return /* @__PURE__ */
|
|
232
|
+
var L = /* @__PURE__ */ s(function({ color: t, shape: n = "square", off: r }, i) {
|
|
233
|
+
return /* @__PURE__ */ p("span", {
|
|
234
|
+
ref: i,
|
|
231
235
|
"aria-hidden": !0,
|
|
232
236
|
className: e("shrink-0 transition-control", n === "line" ? "h-2 w-12 rounded-pill" : "size-10 rounded-bar", r && "opacity-30"),
|
|
233
237
|
style: { background: t }
|
|
234
238
|
});
|
|
235
|
-
}
|
|
236
|
-
process.env.NODE_ENV !== "production" && (
|
|
237
|
-
var
|
|
238
|
-
function
|
|
239
|
+
});
|
|
240
|
+
process.env.NODE_ENV !== "production" && (L.displayName = "Swatch");
|
|
241
|
+
var R = (e) => (t) => e(t).replace(/[.,]00(?=\D*$)/, "");
|
|
242
|
+
function z(e, t, n = 4) {
|
|
239
243
|
for (let r = n; r >= 1; r--) {
|
|
240
244
|
let n = e.ticks(r);
|
|
241
245
|
if (new Set(n.map(t)).size === n.length) return n;
|
|
@@ -243,29 +247,29 @@ function L(e, t, n = 4) {
|
|
|
243
247
|
let [r = 0, i = 0] = e.domain();
|
|
244
248
|
return t(r) === t(i) ? [r] : [r, i];
|
|
245
249
|
}
|
|
246
|
-
function
|
|
250
|
+
function B(e) {
|
|
247
251
|
if (e instanceof Date) return Number.isNaN(e.getTime()) ? NaN : Date.UTC(e.getFullYear(), e.getMonth(), e.getDate()) / 864e5;
|
|
248
252
|
let t = /^(\d{4})-(\d{2})-(\d{2})/.exec(e);
|
|
249
253
|
return t ? Date.UTC(Number(t[1]), Number(t[2]) - 1, Number(t[3])) / 864e5 : NaN;
|
|
250
254
|
}
|
|
251
|
-
var
|
|
252
|
-
function
|
|
253
|
-
let t = e.map(
|
|
255
|
+
var V = (e) => (/* @__PURE__ */ new Date(e * 864e5)).getUTCFullYear();
|
|
256
|
+
function H(e) {
|
|
257
|
+
let t = e.map(B), n = [];
|
|
254
258
|
return t.forEach((e, r) => {
|
|
255
259
|
let i = r > 0 ? t[r - 1] : t.length > 1 ? 2 * e - t[1] : NaN;
|
|
256
|
-
Number.isFinite(e) && Number.isFinite(i) &&
|
|
260
|
+
Number.isFinite(e) && Number.isFinite(i) && V(e) !== V(i) && n.push(r);
|
|
257
261
|
}), n;
|
|
258
262
|
}
|
|
259
|
-
var
|
|
260
|
-
function
|
|
263
|
+
var U = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\u3000-\u303f\uff00-\uffef]/u;
|
|
264
|
+
function W(e) {
|
|
261
265
|
let t = 0;
|
|
262
|
-
for (let n of e) t +=
|
|
263
|
-
return t *
|
|
266
|
+
for (let n of e) t += U.test(n) ? 1 : /\p{Lu}/u.test(n) ? .8 : /\p{Ll}/u.test(n) ? .6 : /\p{Nd}/u.test(n) ? .66 : /\s/.test(n) ? .3 : .4;
|
|
267
|
+
return t * X.label.fontSize;
|
|
264
268
|
}
|
|
265
|
-
var
|
|
266
|
-
function
|
|
269
|
+
var G = 8;
|
|
270
|
+
function K(e, t) {
|
|
267
271
|
let n = e.map((e) => {
|
|
268
|
-
let n =
|
|
272
|
+
let n = W(e.label), r = e.at - n / 2 < 0 ? "start" : e.at + n / 2 > t ? "end" : "middle", i = r === "start" ? Math.max(e.at, 0) : e.at, a = r === "start" ? i : r === "end" ? i - n : i - n / 2;
|
|
269
273
|
return {
|
|
270
274
|
key: e.key,
|
|
271
275
|
x: i,
|
|
@@ -274,7 +278,7 @@ function W(e, t) {
|
|
|
274
278
|
left: a,
|
|
275
279
|
right: a + n
|
|
276
280
|
};
|
|
277
|
-
}), r = (e, t) => !e || !t || e.right +
|
|
281
|
+
}), r = (e, t) => !e || !t || e.right + G <= t.left;
|
|
278
282
|
n.length > 2 && !r(n[0], n[1]) && n.splice(1, 1), n.length > 2 && !r(n[n.length - 2], n[n.length - 1]) && n.splice(n.length - 2, 1);
|
|
279
283
|
let i = [];
|
|
280
284
|
for (let e of n) r(i[i.length - 1], e) && i.push(e);
|
|
@@ -285,13 +289,13 @@ function W(e, t) {
|
|
|
285
289
|
label: r
|
|
286
290
|
}));
|
|
287
291
|
}
|
|
288
|
-
function
|
|
292
|
+
function q(e, t, n = {
|
|
289
293
|
start: Infinity,
|
|
290
294
|
end: Infinity
|
|
291
295
|
}, r) {
|
|
292
296
|
let i = e.length;
|
|
293
297
|
if (i === 0) return [];
|
|
294
|
-
let a = (r) =>
|
|
298
|
+
let a = (r) => W(e[r]) / 2 <= Math.min(n.start + r * t, n.end + (i - 1 - r) * t) + 1e-6, o = Math.max(48, Math.max(...e.map(W)) + 16), s = t > 0 ? Math.max(1, Math.ceil(o / t - 1e-6)) : i, c = r && r.length === i ? H(r) : [], l = s;
|
|
295
299
|
for (let e = s; s > 1 && e <= s * 2; e++) if (c.every((t) => (t - c[0]) % e === 0)) {
|
|
296
300
|
l = e;
|
|
297
301
|
break;
|
|
@@ -310,14 +314,15 @@ function G(e, t, n = {
|
|
|
310
314
|
for (let e = d; e < i; e += l) a(e) && f.push(e);
|
|
311
315
|
return f;
|
|
312
316
|
}
|
|
313
|
-
|
|
314
|
-
let
|
|
315
|
-
return /* @__PURE__ */
|
|
317
|
+
var J = /* @__PURE__ */ s(function({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }, s) {
|
|
318
|
+
let c = t();
|
|
319
|
+
return /* @__PURE__ */ p("ul", {
|
|
320
|
+
ref: s,
|
|
316
321
|
className: "flex flex-wrap items-center gap-4",
|
|
317
|
-
"aria-label":
|
|
322
|
+
"aria-label": c("chartLegend.label", "Legend"),
|
|
318
323
|
children: n.map((t) => {
|
|
319
324
|
let n = r?.has(t.id);
|
|
320
|
-
return /* @__PURE__ */
|
|
325
|
+
return /* @__PURE__ */ p("li", { children: /* @__PURE__ */ m(i ? "button" : "span", {
|
|
321
326
|
...i ? {
|
|
322
327
|
type: "button",
|
|
323
328
|
"aria-pressed": !n,
|
|
@@ -329,13 +334,13 @@ function K({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }
|
|
|
329
334
|
onBlur: () => a?.(null),
|
|
330
335
|
className: e("inline-flex h-28 items-center gap-8 rounded-pill px-10 text-small font-medium transition-control", i && "relative cursor-pointer hover:bg-fill-1 focus-ring tap-target", n ? "text-fg-tertiary" : "text-fg"),
|
|
331
336
|
children: [
|
|
332
|
-
/* @__PURE__ */
|
|
337
|
+
/* @__PURE__ */ p(L, {
|
|
333
338
|
color: t.color,
|
|
334
339
|
shape: o,
|
|
335
340
|
off: n
|
|
336
341
|
}),
|
|
337
342
|
t.label,
|
|
338
|
-
t.value !== void 0 && /* @__PURE__ */
|
|
343
|
+
t.value !== void 0 && /* @__PURE__ */ p("span", {
|
|
339
344
|
className: "text-fg-secondary tabular",
|
|
340
345
|
children: t.value
|
|
341
346
|
})
|
|
@@ -343,47 +348,47 @@ function K({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }
|
|
|
343
348
|
}) }, t.id);
|
|
344
349
|
})
|
|
345
350
|
});
|
|
346
|
-
}
|
|
347
|
-
process.env.NODE_ENV !== "production" && (
|
|
348
|
-
|
|
349
|
-
let
|
|
350
|
-
|
|
351
|
-
let e =
|
|
352
|
-
e !==
|
|
351
|
+
});
|
|
352
|
+
process.env.NODE_ENV !== "production" && (J.displayName = "Legend");
|
|
353
|
+
var Y = /* @__PURE__ */ s(function({ x: t, xLeft: n = t, y: i, width: a, heading: o, rows: s, visible: c }, h) {
|
|
354
|
+
let g = d(null), _ = u(() => r(g, h), [h]), [v, y] = f(0);
|
|
355
|
+
l(() => {
|
|
356
|
+
let e = g.current?.offsetWidth ?? 0;
|
|
357
|
+
e !== v && y(e);
|
|
353
358
|
}, [
|
|
354
|
-
|
|
355
|
-
a,
|
|
359
|
+
v,
|
|
356
360
|
o,
|
|
357
|
-
|
|
361
|
+
s,
|
|
362
|
+
c
|
|
358
363
|
]);
|
|
359
|
-
let
|
|
360
|
-
return /* @__PURE__ */
|
|
361
|
-
ref:
|
|
364
|
+
let b = t > a / 2, x = b ? n - 16 - v : t + 16, S = v ? Math.round(Math.max(0, Math.min(x, a - v))) : void 0;
|
|
365
|
+
return /* @__PURE__ */ m("div", {
|
|
366
|
+
ref: _,
|
|
362
367
|
role: "presentation",
|
|
363
368
|
"aria-hidden": !0,
|
|
364
|
-
className: e("pointer-events-none absolute z-10 w-max min-w-200 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion",
|
|
369
|
+
className: e("pointer-events-none absolute z-10 w-max min-w-200 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion", c && v ? "opacity-100" : "opacity-0"),
|
|
365
370
|
style: {
|
|
366
|
-
...
|
|
367
|
-
top: Math.round(Math.max(0,
|
|
371
|
+
...S === void 0 ? b ? { right: Math.round(a - n + 16) } : { left: Math.round(t + 16) } : { left: S },
|
|
372
|
+
top: Math.round(Math.max(0, i - 24))
|
|
368
373
|
},
|
|
369
|
-
children: [/* @__PURE__ */
|
|
374
|
+
children: [/* @__PURE__ */ p("div", {
|
|
370
375
|
className: "mb-6 text-caption font-medium text-fg tabular",
|
|
371
|
-
children:
|
|
372
|
-
}), /* @__PURE__ */
|
|
376
|
+
children: o
|
|
377
|
+
}), /* @__PURE__ */ p("div", {
|
|
373
378
|
className: "flex flex-col gap-4",
|
|
374
|
-
children:
|
|
379
|
+
children: s.map((e) => /* @__PURE__ */ m("div", {
|
|
375
380
|
className: "flex items-center gap-8",
|
|
376
381
|
children: [
|
|
377
|
-
/* @__PURE__ */
|
|
378
|
-
/* @__PURE__ */
|
|
382
|
+
/* @__PURE__ */ p(L, { color: e.color }),
|
|
383
|
+
/* @__PURE__ */ p("span", {
|
|
379
384
|
className: "min-w-0 flex-1 truncate pr-12 text-fg-secondary",
|
|
380
385
|
children: e.label
|
|
381
386
|
}),
|
|
382
|
-
/* @__PURE__ */
|
|
387
|
+
/* @__PURE__ */ p("span", {
|
|
383
388
|
className: "font-medium text-fg tabular",
|
|
384
389
|
children: e.value
|
|
385
390
|
}),
|
|
386
|
-
e.share !== void 0 && /* @__PURE__ */
|
|
391
|
+
e.share !== void 0 && /* @__PURE__ */ p("span", {
|
|
387
392
|
className: "w-40 text-right text-fg-tertiary tabular",
|
|
388
393
|
children: e.share
|
|
389
394
|
})
|
|
@@ -391,9 +396,9 @@ function q({ x: t, xLeft: n = t, y: r, width: i, heading: a, rows: o, visible: f
|
|
|
391
396
|
}, e.id))
|
|
392
397
|
})]
|
|
393
398
|
});
|
|
394
|
-
}
|
|
395
|
-
process.env.NODE_ENV !== "production" && (
|
|
396
|
-
var
|
|
399
|
+
});
|
|
400
|
+
process.env.NODE_ENV !== "production" && (Y.displayName = "ChartTooltip");
|
|
401
|
+
var X = {
|
|
397
402
|
grid: {
|
|
398
403
|
stroke: "var(--k-line)",
|
|
399
404
|
strokeDasharray: "3 3",
|
|
@@ -409,8 +414,8 @@ var J = {
|
|
|
409
414
|
fontWeight: 500,
|
|
410
415
|
style: { fontVariantNumeric: "tabular-nums" }
|
|
411
416
|
}
|
|
412
|
-
},
|
|
413
|
-
function
|
|
417
|
+
}, Z = { chrome: { default: { classes: "" } } }, ne = { chrome: "default" };
|
|
418
|
+
function Q(e, t, n, { vertical: r = !1, start: i = n - 1 } = {}) {
|
|
414
419
|
if (n <= 0) return;
|
|
415
420
|
let a = r ? "ArrowUp" : "ArrowLeft", o = r ? "ArrowDown" : "ArrowRight";
|
|
416
421
|
if (e === a) return t === null ? i : Math.max(0, t - 1);
|
|
@@ -419,8 +424,8 @@ function Z(e, t, n, { vertical: r = !1, start: i = n - 1 } = {}) {
|
|
|
419
424
|
if (e === "End") return n - 1;
|
|
420
425
|
if (e === "Escape") return t === null ? void 0 : null;
|
|
421
426
|
}
|
|
422
|
-
function
|
|
423
|
-
let [n, r] =
|
|
427
|
+
function re(e, t = {}) {
|
|
428
|
+
let [n, r] = f(null), i = t.start ?? e - 1;
|
|
424
429
|
return {
|
|
425
430
|
index: n !== null && n < e ? n : null,
|
|
426
431
|
props: {
|
|
@@ -435,7 +440,7 @@ function Q(e, t = {}) {
|
|
|
435
440
|
},
|
|
436
441
|
onBlur: () => r(null),
|
|
437
442
|
onKeyDown: (a) => {
|
|
438
|
-
let o =
|
|
443
|
+
let o = Q(a.key, n, e, {
|
|
439
444
|
vertical: !!t.vertical,
|
|
440
445
|
start: i
|
|
441
446
|
});
|
|
@@ -444,16 +449,17 @@ function Q(e, t = {}) {
|
|
|
444
449
|
}
|
|
445
450
|
};
|
|
446
451
|
}
|
|
447
|
-
|
|
448
|
-
return /* @__PURE__ */
|
|
452
|
+
var $ = /* @__PURE__ */ s(function({ children: e }, t) {
|
|
453
|
+
return /* @__PURE__ */ p("div", {
|
|
454
|
+
ref: t,
|
|
449
455
|
className: "sr-only",
|
|
450
456
|
"aria-live": "polite",
|
|
451
457
|
"aria-atomic": !0,
|
|
452
458
|
children: e
|
|
453
459
|
});
|
|
454
|
-
}
|
|
460
|
+
});
|
|
455
461
|
process.env.NODE_ENV !== "production" && ($.displayName = "ChartLive");
|
|
456
|
-
var
|
|
462
|
+
var ie = (e, t, r = n) => r("chart.liveLine", "{heading}: {values}", {
|
|
457
463
|
heading: String(e),
|
|
458
464
|
values: t.map((e) => r("chart.liveValue", "{label} {value}", {
|
|
459
465
|
label: String(e.label),
|
|
@@ -461,6 +467,6 @@ var te = (e, t, r = n) => r("chart.liveLine", "{heading}: {values}", {
|
|
|
461
467
|
})).join(r("chart.listSeparator", ", "))
|
|
462
468
|
});
|
|
463
469
|
//#endregion
|
|
464
|
-
export {
|
|
470
|
+
export { v as A, D as C, te as D, re as E, N as O, R as S, M as T, K as _, ne as a, T as b, L as c, b as d, w as f, ie as g, W as h, Y as i, H as j, P as k, O as l, Q as m, F as n, Z as o, q as p, $ as r, J as s, X as t, y as u, z as v, ee as w, C as x, E as y };
|
|
465
471
|
|
|
466
|
-
//# sourceMappingURL=core-
|
|
472
|
+
//# sourceMappingURL=core-BYns5ytV.js.map
|