@logicplanes/kaeso-ui 0.1.0 → 0.2.1
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 +1 -0
- package/LICENSE +1 -1
- package/ai/component-guides.md +269 -7
- package/ai/component-registry.json +600 -800
- package/ai/component-registry.md +200 -141
- package/ai/icons.md +2 -2
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +1 -1
- package/dist/blocks/pages.js +3 -3
- package/dist/blocks/resource-list.js +2 -2
- package/dist/chunks/app-frame-BXh-06HL.js +214 -0
- package/dist/chunks/app-frame-BXh-06HL.js.map +1 -0
- package/dist/chunks/{banner-BiziJuBZ.js → banner-DxGBPQ7p.js} +2 -2
- package/dist/chunks/{banner-BiziJuBZ.js.map → banner-DxGBPQ7p.js.map} +1 -1
- package/dist/chunks/{button-BHKAE6ui.js → button-DQvoOxVQ.js} +2 -2
- package/dist/chunks/{button-BHKAE6ui.js.map → button-DQvoOxVQ.js.map} +1 -1
- package/dist/chunks/{calendar-B5SSTE56.js → calendar-CN3YJi2k.js} +3 -3
- package/dist/chunks/{calendar-B5SSTE56.js.map → calendar-CN3YJi2k.js.map} +1 -1
- package/dist/chunks/code-BADhvsgC.js +33 -0
- package/dist/chunks/code-BADhvsgC.js.map +1 -0
- package/dist/chunks/{code-block-BbK6E4Eo.js → code-block-DxtladFW.js} +41 -37
- package/dist/chunks/code-block-DxtladFW.js.map +1 -0
- package/dist/chunks/{combobox-D8pQk22r.js → combobox-D30Wt11R.js} +4 -4
- package/dist/chunks/{combobox-D8pQk22r.js.map → combobox-D30Wt11R.js.map} +1 -1
- package/dist/chunks/{copy-button-mAzHjYXq.js → copy-button-DXxn-YYZ.js} +4 -4
- package/dist/chunks/{copy-button-mAzHjYXq.js.map → copy-button-DXxn-YYZ.js.map} +1 -1
- package/dist/chunks/{core-Bgefcs3z.js → core-K960A4OT.js} +119 -120
- package/dist/chunks/core-K960A4OT.js.map +1 -0
- package/dist/chunks/{date-popup-Er1oQwtU.js → date-popup-B-6xhb-1.js} +3 -3
- package/dist/chunks/{date-popup-Er1oQwtU.js.map → date-popup-B-6xhb-1.js.map} +1 -1
- package/dist/chunks/{de-BCg1eRVd.js → de-CTAo4KL7.js} +10 -10
- package/dist/chunks/de-CTAo4KL7.js.map +1 -0
- package/dist/chunks/dialog-LNKgPEsV.js +319 -0
- package/dist/chunks/dialog-LNKgPEsV.js.map +1 -0
- package/dist/chunks/{icon-Bha63LaN.js → icon-CBzvyEqC.js} +30 -29
- package/dist/chunks/icon-CBzvyEqC.js.map +1 -0
- package/dist/chunks/{icon-button-Bw67oKtx.js → icon-button-_x1RUphC.js} +3 -3
- package/dist/chunks/{icon-button-Bw67oKtx.js.map → icon-button-_x1RUphC.js.map} +1 -1
- package/dist/chunks/{identity-DQinp-Ep.js → identity-BtZC_d_Q.js} +3 -3
- package/dist/chunks/{identity-DQinp-Ep.js.map → identity-BtZC_d_Q.js.map} +1 -1
- package/dist/chunks/{input-Biakz6GB.js → input-CNTfI6YE.js} +2 -2
- package/dist/chunks/{input-Biakz6GB.js.map → input-CNTfI6YE.js.map} +1 -1
- package/dist/chunks/{input-group-DQqEPFj_.js → input-group-CYA1MEoZ.js} +2 -2
- package/dist/chunks/{input-group-DQqEPFj_.js.map → input-group-CYA1MEoZ.js.map} +1 -1
- package/dist/chunks/{iso-field-CznqNVrH.js → iso-field-1qmg7TP8.js} +2 -2
- package/dist/chunks/{iso-field-CznqNVrH.js.map → iso-field-1qmg7TP8.js.map} +1 -1
- package/dist/chunks/linear-scale-BWKeRqDX.js +37 -0
- package/dist/chunks/linear-scale-BWKeRqDX.js.map +1 -0
- package/dist/chunks/{link-tTapNTpM.js → link-vz9aV8WX.js} +9 -2
- package/dist/chunks/link-vz9aV8WX.js.map +1 -0
- package/dist/chunks/{list-CN8pO8lv.js → list-CzaiyNja.js} +119 -111
- package/dist/chunks/list-CzaiyNja.js.map +1 -0
- package/dist/chunks/{markdown-C-iJsYnd.js → markdown-5NyaHHfN.js} +6 -6
- package/dist/chunks/{markdown-C-iJsYnd.js.map → markdown-5NyaHHfN.js.map} +1 -1
- package/dist/chunks/{menu-OURWt_hD.js → menu-DyVPwgfF.js} +2 -2
- package/dist/chunks/{menu-OURWt_hD.js.map → menu-DyVPwgfF.js.map} +1 -1
- package/dist/chunks/nav-sheet-BIErlV74.js +58 -0
- package/dist/chunks/nav-sheet-BIErlV74.js.map +1 -0
- package/dist/chunks/{logo-VmXYhIJL.js → nav-wordmark-DLkItdvo.js} +12 -93
- package/dist/chunks/nav-wordmark-DLkItdvo.js.map +1 -0
- package/dist/chunks/observe-resize-DhxhmoyB.js +25 -0
- package/dist/chunks/observe-resize-DhxhmoyB.js.map +1 -0
- package/dist/chunks/{page-header-BIRswR73.js → page-header-CEPZzhRp.js} +2 -2
- package/dist/chunks/{page-header-BIRswR73.js.map → page-header-CEPZzhRp.js.map} +1 -1
- package/dist/chunks/{pagination-DYdLm18-.js → pagination-CCMxQ5pH.js} +3 -3
- package/dist/chunks/{pagination-DYdLm18-.js.map → pagination-CCMxQ5pH.js.map} +1 -1
- package/dist/chunks/{range-popup-AbRzgHtY.js → range-popup-DGOnGGag.js} +4 -4
- package/dist/chunks/{range-popup-AbRzgHtY.js.map → range-popup-DGOnGGag.js.map} +1 -1
- package/dist/chunks/resize-motion-CMaidkwe.js +101 -0
- package/dist/chunks/resize-motion-CMaidkwe.js.map +1 -0
- package/dist/chunks/{rights-CXo7zEf6.js → rights-BbiJ0AJB.js} +4 -4
- package/dist/chunks/{rights-CXo7zEf6.js.map → rights-BbiJ0AJB.js.map} +1 -1
- package/dist/chunks/{section-XStLtXKa.js → section-DzOLLN1p.js} +3 -3
- package/dist/chunks/section-DzOLLN1p.js.map +1 -0
- package/dist/chunks/{segmented-CDTx2n29.js → segmented-MrinfDL8.js} +36 -35
- package/dist/chunks/segmented-MrinfDL8.js.map +1 -0
- package/dist/chunks/select-Bc4kRiSG.js +227 -0
- package/dist/chunks/select-Bc4kRiSG.js.map +1 -0
- package/dist/chunks/{sidebar-C4fL_KMm.js → sidebar-5IA18LuP.js} +180 -183
- package/dist/chunks/sidebar-5IA18LuP.js.map +1 -0
- package/dist/chunks/{sidebar-menu-sd9vCpDy.js → sidebar-menu-DRWRxcJ3.js} +2 -2
- package/dist/chunks/{sidebar-menu-sd9vCpDy.js.map → sidebar-menu-DRWRxcJ3.js.map} +1 -1
- package/dist/chunks/{switch-CztLhA8F.js → switch-XMY_CQE-.js} +2 -2
- package/dist/chunks/{switch-CztLhA8F.js.map → switch-XMY_CQE-.js.map} +1 -1
- package/dist/chunks/{tag-BsmQ1xPj.js → tag-Dg89uYpV.js} +3 -3
- package/dist/chunks/{tag-BsmQ1xPj.js.map → tag-Dg89uYpV.js.map} +1 -1
- package/dist/chunks/{text-BPglS3vq.js → text--5MKh2G4.js} +3 -3
- package/dist/chunks/{text-BPglS3vq.js.map → text--5MKh2G4.js.map} +1 -1
- package/dist/chunks/{textarea-Bvk7N2bh.js → textarea-Cj8iR82R.js} +3 -3
- package/dist/chunks/{textarea-Bvk7N2bh.js.map → textarea-Cj8iR82R.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js +72 -0
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -0
- package/dist/chunks/tooltip-DEbCCsru.js +151 -0
- package/dist/chunks/tooltip-DEbCCsru.js.map +1 -0
- package/dist/chunks/{tooltip-root-DWhtAtFb.js → tooltip-root-DRd4ciUv.js} +2 -2
- package/dist/chunks/{tooltip-root-DWhtAtFb.js.map → tooltip-root-DRd4ciUv.js.map} +1 -1
- package/dist/chunks/use-layout-width-CbSDbRb0.js +28 -0
- package/dist/chunks/use-layout-width-CbSDbRb0.js.map +1 -0
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js +26 -0
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +1 -0
- package/dist/chunks/use-truncated-CW0hByYt.js +24 -0
- package/dist/chunks/use-truncated-CW0hByYt.js.map +1 -0
- package/dist/chunks/{virtual-rows-BgMdVelU.js → virtual-rows-BZe49bKi.js} +2 -2
- package/dist/chunks/{virtual-rows-BgMdVelU.js.map → virtual-rows-BZe49bKi.js.map} +1 -1
- package/dist/chunks/{zh-CN-cPjO1OOo.js → zh-CN-C7GmVswt.js} +15 -15
- package/dist/chunks/zh-CN-C7GmVswt.js.map +1 -0
- package/dist/components/app-frame.js +3 -1
- 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 +78 -77
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +2 -2
- package/dist/components/charts/gauge.js +1 -1
- package/dist/components/charts/sankey.js +1 -1
- package/dist/components/charts/timeseries.js +75 -75
- package/dist/components/charts/timeseries.js.map +1 -1
- package/dist/components/charts.js +1 -1
- package/dist/components/code-block.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +105 -97
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +94 -95
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +3 -3
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +141 -153
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +5 -5
- package/dist/components/filter-chip.js +1 -1
- package/dist/components/flow.js +37 -36
- package/dist/components/flow.js.map +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +5 -5
- package/dist/components/kaeso/conversation.js +2 -2
- 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 +1 -1
- package/dist/components/kaeso.js +4 -4
- package/dist/components/key-value.js +3 -3
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/logo.js +101 -1
- package/dist/components/logo.js.map +1 -0
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +8 -8
- package/dist/components/scroll-area.js +30 -23
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sheet.js +46 -41
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/stat.js +75 -76
- package/dist/components/stat.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +38 -0
- package/dist/components/theme-image.js.map +1 -0
- package/dist/components/theme-menu.js +3 -3
- package/dist/components/theme-select.js +58 -0
- package/dist/components/theme-select.js.map +1 -0
- package/dist/components/toast.js +91 -92
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +76 -74
- package/dist/kaeso.css +39 -16
- package/dist/styles.css +1 -1
- package/dist/theme.js +1 -1
- package/dist/types/components/app-frame/app-frame.d.ts +2 -10
- package/dist/types/components/app-frame/docs.d.ts +1 -0
- package/dist/types/components/app-frame/index.d.ts +1 -0
- package/dist/types/components/app-frame/nav-sheet.d.ts +11 -0
- package/dist/types/components/charts/linear-scale.d.ts +17 -0
- package/dist/types/components/code/code.d.ts +16 -0
- package/dist/types/components/code/docs.d.ts +1 -0
- package/dist/types/components/code-block/code-block.d.ts +2 -0
- package/dist/types/components/code-block/docs.d.ts +4 -0
- package/dist/types/components/command-palette/command-palette.d.ts +1 -0
- package/dist/types/components/command-palette/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +5 -2
- package/dist/types/components/dialog/docs.d.ts +10 -0
- package/dist/types/components/dialog/index.d.ts +1 -0
- package/dist/types/components/dialog/scope.d.ts +9 -0
- package/dist/types/components/dialog/step-dialog.d.ts +9 -1
- package/dist/types/components/link/link.d.ts +8 -0
- package/dist/types/components/logo/nav-wordmark.d.ts +6 -0
- package/dist/types/components/scroll-area/scroll-area.d.ts +3 -3
- package/dist/types/components/theme-image/docs.d.ts +13 -0
- package/dist/types/components/theme-image/index.d.ts +1 -0
- package/dist/types/components/theme-image/theme-image.d.ts +23 -0
- package/dist/types/components/theme-select/docs.d.ts +10 -0
- package/dist/types/components/theme-select/index.d.ts +1 -0
- package/dist/types/components/theme-select/theme-select.d.ts +34 -0
- package/dist/types/icons/groups.d.ts +1 -1
- package/dist/types/icons/vocabulary.d.ts +5 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/theme/theme-provider.d.ts +1 -1
- package/dist/types/utils/dialog-scope.d.ts +7 -0
- package/dist/types/utils/lazy-module.d.ts +7 -2
- package/dist/types/utils/observe-resize.d.ts +1 -0
- package/dist/types/utils/resize-motion.d.ts +2 -0
- package/foundations/motion.md +1 -0
- package/package.json +2 -2
- package/dist/chunks/app-frame-BBIMch8X.js +0 -224
- package/dist/chunks/app-frame-BBIMch8X.js.map +0 -1
- package/dist/chunks/code-DDyOlIFO.js +0 -23
- package/dist/chunks/code-DDyOlIFO.js.map +0 -1
- package/dist/chunks/code-block-BbK6E4Eo.js.map +0 -1
- package/dist/chunks/core-Bgefcs3z.js.map +0 -1
- package/dist/chunks/de-BCg1eRVd.js.map +0 -1
- package/dist/chunks/dialog-CVqSVk3T.js +0 -283
- package/dist/chunks/dialog-CVqSVk3T.js.map +0 -1
- package/dist/chunks/icon-Bha63LaN.js.map +0 -1
- package/dist/chunks/link-tTapNTpM.js.map +0 -1
- package/dist/chunks/list-CN8pO8lv.js.map +0 -1
- package/dist/chunks/logo-VmXYhIJL.js.map +0 -1
- package/dist/chunks/restore-focus-Cap1Q-R3.js +0 -19
- package/dist/chunks/restore-focus-Cap1Q-R3.js.map +0 -1
- package/dist/chunks/section-XStLtXKa.js.map +0 -1
- package/dist/chunks/segmented-CDTx2n29.js.map +0 -1
- package/dist/chunks/select-Ca3HGsN1.js +0 -223
- package/dist/chunks/select-Ca3HGsN1.js.map +0 -1
- package/dist/chunks/sidebar-C4fL_KMm.js.map +0 -1
- package/dist/chunks/theme-provider-mgUaQK7L.js +0 -69
- package/dist/chunks/theme-provider-mgUaQK7L.js.map +0 -1
- package/dist/chunks/tooltip-CDu00nzg.js +0 -124
- package/dist/chunks/tooltip-CDu00nzg.js.map +0 -1
- package/dist/chunks/use-layout-width-DZaLOQMT.js +0 -27
- package/dist/chunks/use-layout-width-DZaLOQMT.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DWcfIXac.js +0 -25
- package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +0 -1
- package/dist/chunks/use-truncated-DmQoePvG.js +0 -25
- package/dist/chunks/use-truncated-DmQoePvG.js.map +0 -1
- package/dist/chunks/zh-CN-cPjO1OOo.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame-BBIMch8X.js","names":["__icon_SidebarLeftIcon","cn","usePortalContainer","InsetContent","useUiText","buttonClasses","IconButton","SidebarSheetContext","useSidebar","SidebarFloatingContext","BrandWordmark","KAESO_APP_FRAME_VARIANTS","KAESO_APP_FRAME_DEFAULT_VARIANTS","Ctx","useAppFrame","useContext","Root","navOpen","setNavOpen","useState","toggle","useRef","mainId","useId","Main","fill","className","SkipLink","sidebar","PhoneBar","brandHref","brandLabel","corner","FrameSheet","t","target","main","Bar","banner","toggleRef","SidebarLeftIcon","open","onOpen","NavSheet","leave","useEffect","peek","wide","onChange","onOpenChange","Dialog","o","returnFocus","PEEK_DELAY","peeking","setPeeking","MenuButton","intent","collapsed","setCollapsed","openNav","KAESO_APP_FRAME_BODY_VARIANTS","KAESO_APP_FRAME_BODY_DEFAULT_VARIANTS","Body","props","padding","Settings","title","actions","description","AppFrame"],"sources":["../../src/components/app-frame/app-frame.tsx"],"sourcesContent":["import { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { createContext, forwardRef, useContext, useId, useState, type HTMLAttributes, type ReactNode, type RefObject } from \"react\";\nimport { Dialog } from \"@base-ui/react/dialog\";\nimport { InsetContent } from \"../../utils/inset.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { SidebarLeftIcon as __icon_SidebarLeftIcon } from \"@hugeicons/core-free-icons\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { buttonClasses } from \"../button/button.js\";\nimport { useSidebar, BrandWordmark, SidebarFloatingContext, SidebarSheetContext } from \"../sidebar/sidebar.js\";\nimport { useEffect, useRef } from \"react\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_APP_FRAME_VARIANTS = {\n fill: {\n screen: { classes: \"h-dvh\" },\n parent: { classes: \"h-full\" },\n },\n} as const;\nexport const KAESO_APP_FRAME_DEFAULT_VARIANTS = { fill: \"screen\" } as const;\n\nconst Ctx = /* @__PURE__ */ createContext<{ openNav: () => void; embedded: boolean }>({ openNav: () => undefined, embedded: false });\nexport const useAppFrame = () => useContext(Ctx);\n\nexport interface AppFrameProps {\n sidebar: ReactNode;\n children: ReactNode;\n corner?: ReactNode | undefined;\n fill?: keyof typeof KAESO_APP_FRAME_VARIANTS.fill | undefined;\n brandHref?: string | undefined;\n brandLabel?: string | undefined;\n className?: string | undefined;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, AppFrameProps>(function AppFrame(\n { sidebar, children, corner, fill = \"screen\", brandHref, brandLabel, className },\n ref,\n) {\n const [navOpen, setNavOpen] = useState(false);\n const toggle = useRef<HTMLButtonElement | null>(null);\n const mainId = `k-main-${useId().replace(/[^\\w-]/g, \"\")}`;\n const Main = fill === \"screen\" ? \"main\" : \"div\";\n return (\n <Ctx.Provider value={{ openNav: () => setNavOpen(true), embedded: fill === \"parent\" }}>\n <div\n ref={ref}\n className={cn(\n \"relative isolate flex w-full flex-col overflow-hidden bg-chrome text-fg lg:flex-row\",\n KAESO_APP_FRAME_VARIANTS.fill[fill].classes,\n className,\n )}\n >\n <SkipLink target={mainId} />\n <div className=\"hidden h-full lg:flex\">{sidebar}</div>\n <PhoneBar banner={fill === \"screen\"} href={brandHref} label={brandLabel} open={navOpen} onOpen={() => setNavOpen(true)} toggleRef={toggle} />\n <Main\n id={mainId}\n className=\"relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-panel outline-none safe-area-panel lg:my-8 lg:mr-8 lg:rounded-panel lg:shadow-panel\"\n >\n {children}\n </Main>\n {corner && <div className=\"fixed right-16 bottom-16 z-10 flex items-center gap-8\">{corner}</div>}\n </div>\n <FrameSheet navOpen={navOpen} setNavOpen={setNavOpen} returnFocus={toggle}>\n {sidebar}\n </FrameSheet>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"AppFrame\";\n\nfunction SkipLink({ target }: { target: string }) {\n const t = useUiText();\n return (\n <a\n href={`#${target}`}\n onClick={(e) => {\n const main = document.getElementById(target);\n if (!main) return;\n e.preventDefault();\n main.setAttribute(\"tabindex\", \"-1\");\n main.addEventListener(\"blur\", () => main.removeAttribute(\"tabindex\"), { once: true });\n main.focus();\n }}\n className={cn(buttonClasses({ size: \"sm\" }), \"absolute top-8 left-8 z-50 not-focus:sr-only\")}\n >\n {t(\"appFrame.skipToContent\", \"Skip to content\")}\n </a>\n );\n}\nif (process.env.NODE_ENV !== \"production\") SkipLink.displayName = \"AppFrame.SkipLink\";\n\nfunction PhoneBar({\n banner,\n href,\n label,\n open,\n onOpen,\n toggleRef,\n}: {\n banner: boolean;\n href: string | undefined;\n label: string | undefined;\n open: boolean;\n onOpen: () => void;\n toggleRef: RefObject<HTMLButtonElement | null>;\n}) {\n const Bar = banner ? \"header\" : \"div\";\n const t = useUiText();\n return (\n <Bar data-phone-bar=\"\" className=\"shrink-0 bg-panel safe-area-bar lg:hidden\">\n <div className=\"mt-8 flex h-52 items-center justify-between pr-20 pl-28\">\n <BrandWordmark href={href} label={label} />\n <IconButton\n ref={toggleRef}\n icon={__icon_SidebarLeftIcon}\n aria-label={t(\"appFrame.openNavigation\", \"Open navigation\")}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n tooltip={false}\n onClick={onOpen}\n />\n </div>\n </Bar>\n );\n}\nif (process.env.NODE_ENV !== \"production\") PhoneBar.displayName = \"AppFrame.PhoneBar\";\n\nexport function NavSheet({\n open,\n onOpenChange,\n peek = false,\n returnFocus,\n children,\n}: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n peek?: boolean | undefined;\n returnFocus?: RefObject<HTMLElement | null> | undefined;\n children: ReactNode;\n}) {\n const leave = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const t = useUiText();\n useEffect(() => {\n if (!open || peek || typeof window === \"undefined\") return;\n const wide = window.matchMedia(\"(min-width: 1024px)\");\n const onChange = () => wide.matches && onOpenChange(false);\n onChange();\n wide.addEventListener(\"change\", onChange);\n return () => wide.removeEventListener(\"change\", onChange);\n }, [open, peek, onOpenChange]);\n return (\n <Dialog.Root open={open} onOpenChange={(o: boolean) => onOpenChange(o)} modal={!peek}>\n <Dialog.Portal container={usePortalContainer()}>\n <Dialog.Backdrop className=\"fixed inset-0 z-40 bg-overlay opacity-60 backdrop-motion\" />\n <Dialog.Popup\n aria-label={t(\"appFrame.navigation\", \"Navigation\")}\n data-side=\"left\"\n initialFocus={!peek}\n {...(returnFocus ? { finalFocus: returnFocus } : {})}\n className=\"fixed top-0 bottom-0 left-0 z-40 flex overflow-hidden rounded-r-sheet bg-chrome shadow-dialog outline-none safe-area-sheet sheet-motion\"\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"a[href]\")) onOpenChange(false);\n }}\n onPointerEnter={() => clearTimeout(leave.current)}\n onPointerLeave={() => {\n if (!peek) return;\n leave.current = setTimeout(() => onOpenChange(false), 160);\n }}\n >\n <SidebarFloatingContext.Provider value>\n <SidebarSheetContext.Provider value={{ close: () => onOpenChange(false), peek }}>{children}</SidebarSheetContext.Provider>\n </SidebarFloatingContext.Provider>\n </Dialog.Popup>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") NavSheet.displayName = \"NavSheet\";\n\nexport const PEEK_DELAY = 750;\n\nfunction FrameSheet({\n navOpen,\n setNavOpen,\n returnFocus,\n children,\n}: {\n navOpen: boolean;\n setNavOpen: (o: boolean) => void;\n returnFocus: RefObject<HTMLElement | null>;\n children: ReactNode;\n}) {\n const { peeking, setPeeking } = useSidebar();\n return (\n <NavSheet\n open={navOpen || peeking}\n peek={peeking && !navOpen}\n {...(navOpen ? { returnFocus } : {})}\n onOpenChange={(o) => {\n if (!o) {\n setNavOpen(false);\n setPeeking(false);\n }\n }}\n >\n {children}\n </NavSheet>\n );\n}\n\nfunction MenuButton({ className }: { className?: string | undefined }) {\n const { openNav } = useAppFrame();\n const { collapsed, setCollapsed, setPeeking } = useSidebar();\n const intent = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const t = useUiText();\n const wide = () => typeof window !== \"undefined\" && window.matchMedia(\"(min-width: 1024px)\").matches;\n return (\n <IconButton\n onPointerEnter={() => {\n if (collapsed && wide()) intent.current = setTimeout(() => setPeeking(true), PEEK_DELAY);\n }}\n onPointerLeave={() => clearTimeout(intent.current)}\n icon={__icon_SidebarLeftIcon}\n data-sidebar-expand=\"\"\n aria-label={collapsed ? t(\"appFrame.expandSidebar\", \"Expand sidebar\") : t(\"appFrame.openNavigation\", \"Open navigation\")}\n shortcut={collapsed ? [\"[\"] : undefined}\n onClick={() => {\n clearTimeout(intent.current);\n if (collapsed && wide()) setCollapsed(false);\n else openNav();\n }}\n className={cn(\"hidden\", collapsed && \"lg:inline-flex\", className)}\n />\n );\n}\nif (process.env.NODE_ENV !== \"production\") MenuButton.displayName = \"AppFrame.MenuButton\";\n\nexport const KAESO_APP_FRAME_BODY_VARIANTS = {\n padding: {\n none: { classes: \"\" },\n list: { classes: \"pt-8 pb-24\" },\n page: { classes: \"px-24 pt-16 pb-48\" },\n },\n} as const;\nexport const KAESO_APP_FRAME_BODY_DEFAULT_VARIANTS = { padding: \"none\" } as const;\n\nexport interface AppFrameBodyProps extends HTMLAttributes<HTMLDivElement> {\n padding?: keyof typeof KAESO_APP_FRAME_BODY_VARIANTS.padding | undefined;\n}\n\nconst Body = /* @__PURE__ */ forwardRef<HTMLDivElement, AppFrameBodyProps>(function AppFrameBody({ className, padding = \"none\", ...props }, ref) {\n return (\n <div\n ref={ref}\n className={cn(\"min-h-0 flex-1 overflow-y-auto overscroll-contain scrollbar-quiet\", KAESO_APP_FRAME_BODY_VARIANTS.padding[padding].classes, className)}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Body.displayName = \"AppFrame.Body\";\n\nexport interface SettingsPageProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n title: ReactNode;\n description?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n}\n\nconst Settings = /* @__PURE__ */ forwardRef<HTMLDivElement, SettingsPageProps>(function AppFrameSettings({ title, description, actions, className, children, ...props }, ref) {\n return (\n <Body ref={ref} className=\"relative\">\n <MenuButton className=\"absolute top-10 left-12 z-10\" />\n <div className={cn(\"mx-auto w-full max-w-settings px-24 pt-64 pb-96\", className)} {...props}>\n <header className=\"flex flex-col gap-8\">\n <div className=\"flex items-start justify-between gap-16\">\n <h1 className=\"min-w-0 text-title-lg font-semibold text-fg text-balance\">{title}</h1>\n {actions && <div className=\"flex h-34 shrink-0 items-center gap-8\">{actions}</div>}\n </div>\n {description && <p className=\"text-body-lg font-regular text-fg-secondary\">{description}</p>}\n </header>\n <div className=\"mt-8\">\n <InsetContent>{children}</InsetContent>\n </div>\n </div>\n </Body>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Settings.displayName = \"AppFrame.Settings\";\n\nexport const AppFrame = /* @__PURE__ */ Object.assign(Root, { MenuButton, Body, Settings });\n"],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./cn-CidVUKMm.js";
|
|
3
|
-
import { forwardRef as t } from "react";
|
|
4
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
5
|
-
//#region src/components/code/code.tsx
|
|
6
|
-
var r = { shape: {
|
|
7
|
-
auto: { classes: "" },
|
|
8
|
-
pill: { classes: "rounded-pill" },
|
|
9
|
-
rounded: { classes: "rounded-code" }
|
|
10
|
-
} }, i = { shape: "auto" }, a = /* @__PURE__ */ t(function({ shape: t = "auto", className: i, children: a, ...o }, s) {
|
|
11
|
-
let c = typeof a == "string" && !/\s/.test(a);
|
|
12
|
-
return /* @__PURE__ */ n("code", {
|
|
13
|
-
ref: s,
|
|
14
|
-
className: e("mono inline-block bg-fill-1 px-6 py-2 align-baseline text-small leading-none text-fg", t === "auto" ? c ? "rounded-pill" : "rounded-code" : r.shape[t].classes, i),
|
|
15
|
-
...o,
|
|
16
|
-
children: a
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
process.env.NODE_ENV !== "production" && (a.displayName = "Code");
|
|
20
|
-
//#endregion
|
|
21
|
-
export { i as n, r, a as t };
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=code-DDyOlIFO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-DDyOlIFO.js","names":["cn","KAESO_CODE_VARIANTS","KAESO_CODE_DEFAULT_VARIANTS","Code","props","oneWord","children","shape","className"],"sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_CODE_VARIANTS = {\n shape: {\n auto: { classes: \"\" },\n pill: { classes: \"rounded-pill\" },\n rounded: { classes: \"rounded-code\" },\n },\n} as const;\nexport const KAESO_CODE_DEFAULT_VARIANTS = { shape: \"auto\" } as const;\n\nexport interface CodeProps extends HTMLAttributes<HTMLElement> {\n shape?: keyof typeof KAESO_CODE_VARIANTS.shape | undefined;\n}\n\nexport const Code = /* @__PURE__ */ forwardRef<HTMLElement, CodeProps>(function Code({ shape = \"auto\", className, children, ...props }, ref) {\n const oneWord = typeof children === \"string\" && !/\\s/.test(children);\n return (\n <code\n ref={ref}\n className={cn(\n \"mono inline-block bg-fill-1 px-6 py-2 align-baseline text-small leading-none text-fg\",\n shape === \"auto\" ? (oneWord ? \"rounded-pill\" : \"rounded-code\") : KAESO_CODE_VARIANTS.shape[shape].classes,\n className,\n )}\n {...props}\n >\n {children}\n </code>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Code.displayName = \"Code\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAsB,EACjC,OAAO;CACL,MAAM,EAAE,SAAS,GAAG;CACpB,MAAM,EAAE,SAAS,eAAe;CAChC,SAAS,EAAE,SAAS,eAAe;AACrC,EACF,GACaC,IAA8B,EAAE,OAAO,OAAO,GAM9CC,IAAuB,kBAAmC,SAAc,EAAE,WAAQ,QAAQ,cAAW,aAAU,GAAGC,KAAS,GAAK;CAC3I,IAAMC,IAAU,OAAOC,KAAa,YAAY,CAAC,KAAK,KAAKA,CAAQ;CACnE,OACE,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,wFACAO,MAAU,SAAUF,IAAU,iBAAiB,iBAAkBJ,EAAoB,MAAMM,EAAM,CAAC,SAClGC,CACF;EACA,GAAIJ;EAEH;CACG,CAAA;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-block-BbK6E4Eo.js","names":["BaseTabs","cn","useUiText","TONES","ITALIC","BOLD","codeTokenClass","style","fontStyle","tone","color","kaesoShikiTheme","instance","CODE_LANGS","getHighlighter","createHighlighterCore","createJavaScriptRegexEngine","LOADERS","highlight","lang","h","loader","code","line","token","KAESO_CODE_BLOCK_VARIANTS","KAESO_CODE_BLOCK_DEFAULT_VARIANTS","CodeBlock","tab","setTab","useState","t","current","tabs","text","lines","useMemo","highlighted","setHighlighted","expanded","setExpanded","alive","tokenLines","collapsed","collapseAfter","visible","codeClass","source","wrap","highlightLines","i","lineNumbers","j","surface","className","Tabs","v","title","item","copy","CopyButton","CodeHighlighted"],"sources":["../../src/components/code-block/kaeso-theme.ts","../../src/components/code-block/highlighter.ts","../../src/components/code-block/code-block.tsx"],"sourcesContent":["const TONES = {\n text: { color: \"var(--k-text)\", className: \"\" },\n quiet: { color: \"var(--k-text-tertiary)\", className: \"text-fg-tertiary\" },\n secondary: { color: \"var(--k-text-secondary)\", className: \"text-fg-secondary\" },\n string: { color: \"var(--k-info-text)\", className: \"text-info-text\" },\n constant: { color: \"var(--k-warning-text)\", className: \"text-warning-text\" },\n} as const;\n\nconst ITALIC = 1;\nconst BOLD = 2;\n\nexport function codeTokenClass(color: string | undefined, fontStyle: number | undefined): string {\n const style = fontStyle ?? 0;\n return [\n Object.values(TONES).find((tone) => tone.color === color?.toLowerCase())?.className ?? \"\",\n style & ITALIC ? \"italic\" : \"\",\n style & BOLD ? \"font-semibold\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const kaesoShikiTheme = {\n name: \"kaeso\",\n type: \"light\" as const,\n colors: { \"editor.background\": \"transparent\", \"editor.foreground\": TONES.text.color },\n settings: [\n { settings: { foreground: TONES.text.color, background: \"transparent\" } },\n { scope: [\"comment\", \"punctuation.definition.comment\"], settings: { foreground: TONES.quiet.color, fontStyle: \"italic\" } },\n {\n scope: [\"string\", \"string.quoted\", \"string.template\", \"punctuation.definition.string\", \"markup.inline.raw\"],\n settings: { foreground: TONES.string.color },\n },\n {\n scope: [\"constant.numeric\", \"constant.language.boolean\", \"constant.language.null\", \"constant.language\"],\n settings: { foreground: TONES.constant.color },\n },\n {\n scope: [\"keyword\", \"storage\", \"storage.type\", \"storage.modifier\", \"keyword.control\", \"keyword.operator.new\", \"variable.language\"],\n settings: { foreground: TONES.text.color, fontStyle: \"bold\" },\n },\n {\n scope: [\"punctuation\", \"meta.brace\", \"punctuation.separator\", \"punctuation.terminator\", \"keyword.operator\", \"meta.tag punctuation\"],\n settings: { foreground: TONES.quiet.color },\n },\n { scope: [\"entity.name.function\", \"support.function\", \"entity.name.tag\", \"support.class.component\"], settings: { foreground: TONES.text.color } },\n {\n scope: [\"support.type.property-name\", \"meta.object-literal.key\", \"entity.other.attribute-name\", \"variable.other.property\"],\n settings: { foreground: TONES.text.color },\n },\n { scope: [\"entity.name.type\", \"support.type\", \"entity.other.inherited-class\"], settings: { foreground: TONES.secondary.color } },\n ],\n};\n","import { codeTokenClass, kaesoShikiTheme } from \"./kaeso-theme.js\";\n\ntype Highlighter = {\n codeToTokens: (\n code: string,\n o: { lang: string; theme: string },\n ) => { tokens: { content: string; color?: string | undefined; fontStyle?: number | undefined }[][] };\n getLoadedLanguages: () => string[];\n loadLanguage: (...l: unknown[]) => Promise<void>;\n};\nlet instance: Promise<Highlighter> | null = null;\n\nexport const CODE_LANGS = [\"ts\", \"tsx\", \"js\", \"json\", \"bash\", \"python\", \"yaml\", \"diff\"] as const;\nexport type CodeLang = (typeof CODE_LANGS)[number] | \"text\";\n\nexport function getHighlighter(): Promise<Highlighter> {\n instance ??= (async () => {\n const [{ createHighlighterCore }, { createJavaScriptRegexEngine }] = await Promise.all([import(\"shiki/core\"), import(\"shiki/engine/javascript\")]);\n return (await createHighlighterCore({ themes: [kaesoShikiTheme as never], langs: [], engine: createJavaScriptRegexEngine() })) as unknown as Highlighter;\n })();\n return instance;\n}\n\nconst LOADERS: Record<Exclude<CodeLang, \"text\">, () => Promise<{ default: unknown }>> = {\n ts: () => import(\"shiki/dist/langs/typescript.mjs\"),\n tsx: () => import(\"shiki/dist/langs/tsx.mjs\"),\n js: () => import(\"shiki/dist/langs/javascript.mjs\"),\n json: () => import(\"shiki/dist/langs/json.mjs\"),\n bash: () => import(\"shiki/dist/langs/bash.mjs\"),\n python: () => import(\"shiki/dist/langs/python.mjs\"),\n yaml: () => import(\"shiki/dist/langs/yaml.mjs\"),\n diff: () => import(\"shiki/dist/langs/diff.mjs\"),\n};\n\nexport interface CodeToken {\n content: string;\n className: string;\n}\n\nexport async function highlight(code: string, lang: CodeLang): Promise<CodeToken[][] | null> {\n if (lang === \"text\") return null;\n const h = await getHighlighter();\n if (!h.getLoadedLanguages().includes(lang)) {\n const loader = LOADERS[lang];\n if (!loader) return null;\n await h.loadLanguage((await loader()).default);\n }\n return h\n .codeToTokens(code, { lang, theme: \"kaeso\" })\n .tokens.map((line) => line.map((token) => ({ content: token.content, className: codeTokenClass(token.color, token.fontStyle) })));\n}\n","import { forwardRef, useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { highlight, type CodeLang, type CodeToken } from \"./highlighter.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_CODE_BLOCK_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1\" },\n plain: { classes: \"bg-transparent\" },\n },\n} as const;\nexport const KAESO_CODE_BLOCK_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\nexport interface CodeTab {\n label: string;\n code: string;\n lang?: CodeLang | undefined;\n}\n\nexport interface CodeBlockProps {\n code?: string | undefined;\n lang?: CodeLang | undefined;\n tabs?: CodeTab[] | undefined;\n title?: ReactNode | undefined;\n lineNumbers?: boolean | undefined;\n highlightLines?: number[] | undefined;\n collapseAfter?: number | undefined;\n surface?: keyof typeof KAESO_CODE_BLOCK_VARIANTS.surface | undefined;\n copy?: boolean | undefined;\n wrap?: boolean | undefined;\n className?: string | undefined;\n}\n\nexport const CodeBlock = /* @__PURE__ */ forwardRef<HTMLDivElement, CodeBlockProps>(function CodeBlock(\n { code = \"\", lang = \"ts\", tabs, title, lineNumbers, highlightLines = [], collapseAfter = 24, surface = \"well\", copy = true, wrap = false, className },\n ref,\n) {\n const [tab, setTab] = useState(0);\n const t = useUiText();\n const current = tabs?.[tab] ?? { label: \"\", code, lang };\n const text = current.code.replace(/\\n$/, \"\");\n const lines = useMemo(() => text.split(\"\\n\"), [text]);\n const [highlighted, setHighlighted] = useState<{ text: string; lang: CodeLang; tokens: CodeToken[][] | null } | null>(null);\n const [expanded, setExpanded] = useState(false);\n useEffect(() => {\n let alive = true;\n const lang = current.lang ?? \"ts\";\n highlight(text, lang)\n .then((tokens) => alive && setHighlighted({ text, lang, tokens }))\n .catch(() => undefined);\n return () => {\n alive = false;\n };\n }, [text, current.lang]);\n const tokenLines = highlighted && highlighted.lang === (current.lang ?? \"ts\") && highlighted.text === text ? highlighted.tokens : null;\n const collapsed = collapseAfter > 0 && lines.length > collapseAfter && !expanded;\n const visible = collapsed ? collapseAfter : lines.length;\n const codeClass = cn(\"relative overflow-x-auto py-16 scrollbar-quiet focus-ring-inset\", collapsed && \"overflow-y-hidden\");\n const source = (\n <pre className=\"mono text-small text-fg\">\n <code className={cn(\"grid\", !wrap && \"min-w-max\")}>\n {lines.slice(0, visible).map((line, i) => (\n <span key={i} className={cn(\"flex px-16 leading-code\", wrap && \"whitespace-pre-wrap wrap-anywhere\", highlightLines.includes(i + 1) && \"bg-fill-2\")}>\n {lineNumbers && <span className=\"mr-16 inline-block w-24 shrink-0 text-right text-fg-tertiary select-none tabular\">{i + 1}</span>}\n <span className=\"min-w-0\">\n {tokenLines?.[i]?.length\n ? tokenLines[i].map((token, j) => (\n <span key={j} className={token.className || undefined}>\n {token.content}\n </span>\n ))\n : line || \" \"}\n </span>\n </span>\n ))}\n </code>\n </pre>\n );\n\n return (\n <div ref={ref} className={cn(\"group/code relative min-w-0\", KAESO_CODE_BLOCK_VARIANTS.surface[surface].classes, className)}>\n <BaseTabs.Root value={tab} onValueChange={(v: unknown) => setTab(Number(v))}>\n {(title || tabs) && (\n <div className=\"flex h-44 items-center gap-4 px-8 hairline-b\">\n {title && <span className=\"px-8 mono text-small text-fg-secondary\">{title}</span>}\n {tabs && (\n <BaseTabs.List aria-label={t(\"codeBlock.language\", \"Language\")} className=\"flex items-center gap-2\">\n {tabs.map((item, i) => (\n <BaseTabs.Tab\n key={item.label}\n value={i}\n className={cn(\n \"inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium transition-control focus-ring\",\n i === tab ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-2 hover:text-fg\",\n )}\n >\n {item.label}\n </BaseTabs.Tab>\n ))}\n </BaseTabs.List>\n )}\n </div>\n )}\n {tabs ? (\n <BaseTabs.Panel value={tab} className={codeClass}>\n {source}\n </BaseTabs.Panel>\n ) : (\n <div\n tabIndex={0}\n role=\"region\"\n aria-label={typeof title === \"string\" ? t(\"codeBlock.titledCode\", \"{title} code\", { title }) : t(\"codeBlock.code\", \"Code\")}\n className={codeClass}\n >\n {source}\n </div>\n )}\n </BaseTabs.Root>\n {collapseAfter > 0 && lines.length > collapseAfter && (\n <div className=\"flex justify-center pb-12\">\n <button\n type=\"button\"\n onClick={() => setExpanded((e) => !e)}\n className=\"inline-flex h-28 cursor-pointer items-center rounded-pill px-12 text-small font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n {expanded ? t(\"codeBlock.showLess\", \"Show less\") : t(\"codeBlock.showAllLines\", \"Show all {count} lines\", { count: String(lines.length) })}\n </button>\n </div>\n )}\n {copy && (\n <div\n className={cn(\n \"absolute right-8 opacity-0 transition-control group-hover/code:opacity-100 coarse:opacity-100 focus-within:opacity-100\",\n title || tabs ? \"top-52\" : \"top-8\",\n )}\n >\n <CopyButton value={text} label={t(\"codeBlock.copy\", \"Copy code\")} />\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CodeBlock.displayName = \"CodeBlock\";\n\nexport const CodeHighlighted = CodeBlock;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core-Bgefcs3z.js","names":["cn","useUiText","Button","Skeleton","wholeTicks","values","ticks","VIZ","VIZ_THIN","hash","h","i","s","NEAR","seriesIndex","id","assignSeries","out","used","clash","k","ids","keys","seriesColors","thin","seriesColor","tokenKindColor","tokenKindTint","tokenKindSeries","TOKEN_KIND_ORDER","tokenKindLabel","englishText","kind","useSize","ref","useRef","size","setSize","useState","useLayoutEffect","el","set","ro","ease","t","reducedMotion","mix","to","from","v","tweens","useTweened","key","tween","setTween","current","still","drawn","running","useEffect","start","raf","step","useTweenedScale","any","top","ChartFrame","asTable","setAsTable","className","label","state","table","height","DataTablePlain","children","legend","toggle","caption","c","r","j","Swatch","shape","off","color","tickLabel","format","readableTicks","n","count","scale","lo","hi","dayNumber","d","m","yearOfDay","yearStarts","days","dates","prev","WIDE","labelWidth","em","ch","AXIS","LABEL_GAP","placeTimeLabels","placed","width","anchor","right","x","left","clear","a","b","kept","l","axisLabelIndexes","labels","fits","edges","room","every","starts","stride","score","p","best","Legend","items","hidden","it","onToggle","onHover","ChartTooltip","own","setOwn","w","heading","rows","visible","flip","wanted","xLeft","y","KAESO_CHARTS_VARIANTS","KAESO_CHARTS_DEFAULT_VARIANTS","chartKeyIndex","back","vertical","forward","index","useChartKeys","setIndex","options","keyboard","next","e","ChartLive","liveLine"],"sources":["../../src/components/charts/core.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { useEffect, useLayoutEffect, useRef, useState, type ReactNode, type RefObject } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { tokenKindSeries, tokenKindTint } from \"@logicplanes/kaeso-tokens\";\nimport { Skeleton } from \"../skeleton/skeleton.js\";\nimport { Button } from \"../button/button.js\";\nimport { englishText, useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport function wholeTicks(ticks: number[], values: number[]): number[] {\n return values.every(Number.isInteger) ? ticks.filter(Number.isInteger) : ticks;\n}\nexport const VIZ = [\n \"var(--k-viz-1)\",\n \"var(--k-viz-2)\",\n \"var(--k-viz-3)\",\n \"var(--k-viz-4)\",\n \"var(--k-viz-5)\",\n \"var(--k-viz-6)\",\n \"var(--k-viz-7)\",\n \"var(--k-viz-8)\",\n] as const;\nexport const VIZ_THIN = [\n \"var(--k-viz-thin-1)\",\n \"var(--k-viz-thin-2)\",\n \"var(--k-viz-thin-3)\",\n \"var(--k-viz-thin-4)\",\n \"var(--k-viz-thin-5)\",\n \"var(--k-viz-thin-6)\",\n \"var(--k-viz-thin-7)\",\n \"var(--k-viz-thin-8)\",\n] as const;\n\nfunction hash(s: string) {\n let h = 2166136261;\n for (let i = 0; i < s.length; i++) h = Math.imul(h ^ s.charCodeAt(i), 16777619);\n return Math.abs(h);\n}\nconst NEAR: Record<number, number> = { 1: 6, 6: 1, 2: 5, 5: 2, 3: 7, 7: 3 };\n\nexport function seriesIndex(id: string): number {\n return hash(id) % VIZ.length;\n}\n\nexport function assignSeries(ids: string[]): Map<string, number> {\n const out = new Map<string, number>();\n const used = new Set<number>();\n const clash = (k: number) => used.has(k) || (NEAR[k] !== undefined && used.has(NEAR[k]!));\n for (const id of ids) {\n if (out.has(id)) continue;\n let i = seriesIndex(id);\n if (clash(i)) {\n const keys = [...VIZ.keys()];\n i = keys.find((k) => !clash(k)) ?? keys.find((k) => !used.has(k)) ?? i;\n }\n used.add(i);\n out.set(id, i);\n }\n return out;\n}\n\nexport function seriesColors(ids: string[], thin = false): Map<string, string> {\n return new Map([...assignSeries(ids)].map(([id, i]) => [id, (thin ? VIZ_THIN : VIZ)[i]!]));\n}\n\nexport const seriesColor = (id: string, thin = false) => (thin ? VIZ_THIN : VIZ)[seriesIndex(id)]!;\n\nexport type TokenKind = keyof typeof tokenKindSeries;\nexport const tokenKindColor = (k: TokenKind, thin = false) => {\n if (tokenKindTint[k]) return \"var(--k-viz-1-soft)\";\n return (thin ? VIZ_THIN : VIZ)[tokenKindSeries[k] - 1]!;\n};\nexport const TOKEN_KIND_ORDER: TokenKind[] = [\"input\", \"cacheRead\", \"cacheWrite\", \"output\", \"reasoning\"];\nexport function tokenKindLabel(kind: TokenKind, t: UiText = englishText): string {\n switch (kind) {\n case \"input\":\n return t(\"tokenKind.input\", \"Input\");\n case \"output\":\n return t(\"tokenKind.output\", \"Output\");\n case \"cacheRead\":\n return t(\"tokenKind.cacheRead\", \"Cache read\");\n case \"cacheWrite\":\n return t(\"tokenKind.cacheWrite\", \"Cache write\");\n case \"reasoning\":\n return t(\"tokenKind.reasoning\", \"Reasoning\");\n }\n}\n\nexport function useSize<T extends HTMLElement>(): [RefObject<T | null>, { width: number; height: number }] {\n const ref = useRef<T | null>(null);\n const [size, setSize] = useState({ width: 0, height: 0 });\n useLayoutEffect(() => {\n const el = ref.current;\n if (!el) return;\n const set = () => setSize({ width: Math.round(el.clientWidth), height: Math.round(el.clientHeight) });\n set();\n if (typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(set);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n return [ref, size];\n}\n\nconst ease = (t: number) => 1 - Math.pow(1 - t, 3);\nconst reducedMotion = () => typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\nconst mix = (from: number[], to: number[], t: number) => (t >= 1 ? to : to.map((v, i) => (from[i] ?? v) + (v - (from[i] ?? v)) * ease(t)));\n\nexport function tweens(from: number[], to: number[]): boolean {\n return from.length === to.length && from.some((v) => v !== 0) && to.some((v) => v !== 0) && from.some((v, i) => v !== to[i]) && !reducedMotion();\n}\n\nexport function useTweened(values: number[], still = false): number[] {\n const key = values.join(\",\");\n const [tween, setTween] = useState({ key, from: values, to: values, t: 1, still });\n let current = tween;\n if (tween.key !== key || tween.still !== still) {\n const drawn = mix(tween.from, tween.to, tween.t);\n const animate = !still && !tween.still && tweens(drawn, values);\n current = animate ? { key, from: drawn, to: values, t: 0, still } : { key, from: values, to: values, t: 1, still };\n setTween(current);\n }\n const running = current.t < 1;\n useEffect(() => {\n if (!running) return;\n const start = performance.now();\n let raf = 0;\n const step = () => {\n const t = Math.max(0, Math.min(1, (performance.now() - start) / 240));\n setTween((s) => (s.key === key ? { ...s, t } : s));\n if (t < 1) raf = requestAnimationFrame(step);\n };\n raf = requestAnimationFrame(step);\n return () => cancelAnimationFrame(raf);\n }, [key, running]);\n return mix(current.from, current.to, current.t);\n}\n\nexport function useTweenedScale(values: number[], top: number, still = false): { values: number[]; top: number } {\n const any = values.some((v) => v !== 0);\n const drawn = useTweened(any ? [...values, top] : values, still);\n return any ? { values: drawn.slice(0, -1), top: drawn[drawn.length - 1] ?? top } : { values: drawn, top };\n}\n\nexport interface ChartState {\n loading?: boolean | undefined;\n error?: ReactNode | undefined;\n onRetry?: (() => void) | undefined;\n empty?: boolean | undefined;\n emptyText?: ReactNode | undefined;\n}\n\nexport interface TableData {\n columns: string[];\n rows: (string | number)[][];\n}\n\nexport function ChartFrame({\n label,\n height,\n children,\n table,\n legend,\n state = {},\n className,\n toggle = true,\n}: {\n label: string;\n height: number;\n children: ReactNode;\n table?: TableData | undefined;\n legend?: ReactNode | undefined;\n state?: ChartState | undefined;\n className?: string | undefined;\n toggle?: boolean | undefined;\n}) {\n const [asTable, setAsTable] = useState(false);\n const t = useUiText();\n return (\n <figure className={cn(\"flex min-w-0 flex-col gap-12\", className)} aria-label={label}>\n {state.error ? (\n <div className=\"flex flex-col items-center justify-center gap-8 text-center\" style={{ height }}>\n <p className=\"text-body text-fg-secondary\">{t(\"chartFrame.loadFailed\", \"Couldn't load this chart\")}</p>\n {state.onRetry && (\n <Button size=\"sm\" onClick={state.onRetry}>\n {t(\"chartFrame.tryAgain\", \"Try again\")}\n </Button>\n )}\n </div>\n ) : asTable && table ? (\n <div className=\"overflow-auto scrollbar-quiet\" style={{ minHeight: height }}>\n <DataTablePlain table={table} />\n </div>\n ) : (\n <div className=\"relative\" style={{ height }}>\n {children}\n {state.loading && <Skeleton className=\"absolute inset-x-0 bottom-0 h-2 rounded-pill\" />}\n {state.empty && !state.loading && (\n <div className=\"absolute inset-0 flex items-center justify-center text-body text-fg-secondary\">\n {state.emptyText ?? t(\"chartFrame.noData\", \"No data for this period\")}\n </div>\n )}\n </div>\n )}\n {(legend || (toggle && table)) && (\n <div className=\"flex flex-wrap items-center gap-12\">\n <div className=\"min-w-0 flex-1\">{!asTable && legend}</div>\n {toggle && table && (\n <button\n type=\"button\"\n onClick={() => setAsTable((v) => !v)}\n aria-pressed={asTable}\n className=\"relative inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium text-fg-secondary transition-control hover:bg-fill-1 hover:text-fg focus-ring tap-target\"\n >\n {asTable ? t(\"chartFrame.viewAsChart\", \"View as chart\") : t(\"chartFrame.viewAsTable\", \"View as table\")}\n </button>\n )}\n </div>\n )}\n {table && !asTable && (\n <div className=\"sr-only\">\n <DataTablePlain table={table} caption={label} />\n </div>\n )}\n </figure>\n );\n}\n\nfunction DataTablePlain({ table, caption }: { table: TableData; caption?: string | undefined }) {\n return (\n <table className=\"w-full text-body\">\n {caption && <caption className=\"sr-only\">{caption}</caption>}\n <thead>\n <tr className=\"hairline-b-strong\">\n {table.columns.map((c, i) => (\n <th key={c} scope=\"col\" className={cn(\"h-36 px-12 text-caption font-medium text-fg-secondary first:pl-0\", i > 0 ? \"text-right\" : \"text-left\")}>\n {c}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {table.rows.map((r, i) => (\n <tr key={i} className=\"hairline-b\">\n {r.map((v, j) => (\n <td key={j} className={cn(\"h-36 px-12 first:pl-0\", j > 0 ? \"text-right tabular\" : \"text-left\")}>\n {v}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\nexport interface LegendItem {\n id: string;\n label: ReactNode;\n color: string;\n value?: ReactNode | undefined;\n}\n\nexport function Swatch({ color, shape = \"square\", off }: { color: string; shape?: \"square\" | \"line\" | undefined; off?: boolean | undefined }) {\n return (\n <span\n aria-hidden\n className={cn(\"shrink-0 transition-control\", shape === \"line\" ? \"h-2 w-12 rounded-pill\" : \"size-10 rounded-bar\", off && \"opacity-30\")}\n style={{ background: color }}\n />\n );\n}\nif (process.env.NODE_ENV !== \"production\") Swatch.displayName = \"Swatch\";\n\nexport const tickLabel = (format: (v: number) => string) => (v: number) => format(v).replace(/[.,]00(?=\\D*$)/, \"\");\n\nexport function readableTicks(scale: { ticks: (count: number) => number[]; domain: () => number[] }, label: (v: number) => string, count = 4): number[] {\n for (let n = count; n >= 1; n--) {\n const ticks = scale.ticks(n);\n if (new Set(ticks.map(label)).size === ticks.length) return ticks;\n }\n const [lo = 0, hi = 0] = scale.domain();\n return label(lo) === label(hi) ? [lo] : [lo, hi];\n}\n\nexport type AxisDate = Date | string;\n\nfunction dayNumber(d: AxisDate): number {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? NaN : Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()) / 86_400_000;\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(d);\n return m ? Date.UTC(Number(m[1]), Number(m[2]) - 1, Number(m[3])) / 86_400_000 : NaN;\n}\nconst yearOfDay = (n: number) => new Date(n * 86_400_000).getUTCFullYear();\n\nexport function yearStarts(dates: readonly AxisDate[]): number[] {\n const days = dates.map(dayNumber);\n const out: number[] = [];\n days.forEach((d, i) => {\n const prev = i > 0 ? days[i - 1]! : days.length > 1 ? 2 * d - days[1]! : NaN;\n if (Number.isFinite(d) && Number.isFinite(prev) && yearOfDay(d) !== yearOfDay(prev)) out.push(i);\n });\n return out;\n}\n\nconst WIDE = /[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}\\u3000-\\u303f\\uff00-\\uffef]/u;\n\nexport function labelWidth(label: string): number {\n let em = 0;\n for (const ch of label) em += WIDE.test(ch) ? 1 : /\\p{Lu}/u.test(ch) ? 0.8 : /\\p{Ll}/u.test(ch) ? 0.6 : /\\p{Nd}/u.test(ch) ? 0.66 : /\\s/.test(ch) ? 0.3 : 0.4;\n return em * AXIS.label.fontSize;\n}\n\nconst LABEL_GAP = 8;\n\nexport function placeTimeLabels(\n ticks: { key: number; at: number; label: string }[],\n right: number,\n): { key: number; x: number; anchor: \"start\" | \"middle\" | \"end\"; label: string }[] {\n const placed = ticks.map((t) => {\n const width = labelWidth(t.label);\n const anchor: \"start\" | \"middle\" | \"end\" = t.at - width / 2 < 0 ? \"start\" : t.at + width / 2 > right ? \"end\" : \"middle\";\n const x = anchor === \"start\" ? Math.max(t.at, 0) : t.at;\n const left = anchor === \"start\" ? x : anchor === \"end\" ? x - width : x - width / 2;\n return { key: t.key, x, anchor, label: t.label, left, right: left + width };\n });\n const clear = (a: { right: number } | undefined, b: { left: number } | undefined) => !a || !b || a.right + LABEL_GAP <= b.left;\n if (placed.length > 2 && !clear(placed[0], placed[1])) placed.splice(1, 1);\n if (placed.length > 2 && !clear(placed[placed.length - 2], placed[placed.length - 1])) placed.splice(placed.length - 2, 1);\n const kept: typeof placed = [];\n for (const l of placed) if (clear(kept[kept.length - 1], l)) kept.push(l);\n return kept.map(({ key, x, anchor, label }) => ({ key, x, anchor, label }));\n}\n\nexport function axisLabelIndexes(\n labels: string[],\n step: number,\n edges: { start: number; end: number } = { start: Infinity, end: Infinity },\n dates?: readonly AxisDate[] | undefined,\n): number[] {\n const n = labels.length;\n if (n === 0) return [];\n const fits = (i: number) => labelWidth(labels[i]!) / 2 <= Math.min(edges.start + i * step, edges.end + (n - 1 - i) * step) + 1e-6;\n const room = Math.max(48, Math.max(...labels.map(labelWidth)) + 16);\n const every = step > 0 ? Math.max(1, Math.ceil(room / step - 1e-6)) : n;\n const starts = dates && dates.length === n ? yearStarts(dates) : [];\n let stride = every;\n for (let s = every; every > 1 && s <= every * 2; s++) {\n if (starts.every((i) => (i - starts[0]!) % s === 0)) {\n stride = s;\n break;\n }\n }\n const score = (p: number) => [\n starts.filter((i) => i % stride === p && fits(i)).length,\n (n - 1) % stride === p && fits(n - 1) ? 1 : 0,\n p === 0 && fits(0) ? 1 : 0,\n n - 1 - ((n - 1 - p) % stride),\n ];\n let best = 0;\n for (let p = 1; p < Math.min(stride, n); p++) {\n const a = score(p);\n const b = score(best);\n const k = a.findIndex((v, j) => v !== b[j]);\n if (k >= 0 && a[k]! > b[k]!) best = p;\n }\n const out: number[] = [];\n for (let i = best; i < n; i += stride) if (fits(i)) out.push(i);\n return out;\n}\n\nexport function Legend({\n items,\n hidden,\n onToggle,\n onHover,\n shape = \"square\",\n}: {\n items: LegendItem[];\n hidden?: Set<string> | undefined;\n onToggle?: ((id: string) => void) | undefined;\n onHover?: ((id: string | null) => void) | undefined;\n shape?: \"square\" | \"line\" | undefined;\n}) {\n const t = useUiText();\n return (\n <ul className=\"flex flex-wrap items-center gap-4\" aria-label={t(\"chartLegend.label\", \"Legend\")}>\n {items.map((it) => {\n const off = hidden?.has(it.id);\n const Comp = onToggle ? \"button\" : \"span\";\n return (\n <li key={it.id}>\n <Comp\n {...(onToggle ? { type: \"button\" as const, \"aria-pressed\": !off, onClick: () => onToggle(it.id) } : {})}\n onMouseEnter={() => onHover?.(it.id)}\n onMouseLeave={() => onHover?.(null)}\n onFocus={() => onHover?.(it.id)}\n onBlur={() => onHover?.(null)}\n className={cn(\n \"inline-flex h-28 items-center gap-8 rounded-pill px-10 text-small font-medium transition-control\",\n onToggle && \"relative cursor-pointer hover:bg-fill-1 focus-ring tap-target\",\n off ? \"text-fg-tertiary\" : \"text-fg\",\n )}\n >\n <Swatch color={it.color} shape={shape} off={off} />\n {it.label}\n {it.value !== undefined && <span className=\"text-fg-secondary tabular\">{it.value}</span>}\n </Comp>\n </li>\n );\n })}\n </ul>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Legend.displayName = \"Legend\";\n\nexport interface TooltipRow {\n id: string;\n label: ReactNode;\n color: string;\n value: ReactNode;\n share?: ReactNode | undefined;\n}\n\nexport function ChartTooltip({\n x,\n xLeft = x,\n y,\n width,\n heading,\n rows,\n visible,\n}: {\n x: number;\n xLeft?: number | undefined;\n y: number;\n width: number;\n heading: ReactNode;\n rows: TooltipRow[];\n visible: boolean;\n}) {\n const el = useRef<HTMLDivElement | null>(null);\n const [own, setOwn] = useState(0);\n useLayoutEffect(() => {\n const w = el.current?.offsetWidth ?? 0;\n if (w !== own) setOwn(w);\n }, [own, heading, rows, visible]);\n const flip = x > width / 2;\n const wanted = flip ? xLeft - 16 - own : x + 16;\n const left = own ? Math.round(Math.max(0, Math.min(wanted, width - own))) : undefined;\n return (\n <div\n ref={el}\n role=\"presentation\"\n aria-hidden\n className={cn(\n \"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\",\n visible && own ? \"opacity-100\" : \"opacity-0\",\n )}\n style={{\n ...(left !== undefined ? { left } : flip ? { right: Math.round(width - xLeft + 16) } : { left: Math.round(x + 16) }),\n top: Math.round(Math.max(0, y - 24)),\n }}\n >\n <div className=\"mb-6 text-caption font-medium text-fg tabular\">{heading}</div>\n <div className=\"flex flex-col gap-4\">\n {rows.map((r) => (\n <div key={r.id} className=\"flex items-center gap-8\">\n <Swatch color={r.color} />\n <span className=\"min-w-0 flex-1 truncate pr-12 text-fg-secondary\">{r.label}</span>\n <span className=\"font-medium text-fg tabular\">{r.value}</span>\n {r.share !== undefined && <span className=\"w-40 text-right text-fg-tertiary tabular\">{r.share}</span>}\n </div>\n ))}\n </div>\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ChartTooltip.displayName = \"ChartTooltip\";\n\nexport const AXIS = {\n grid: { stroke: \"var(--k-line)\", strokeDasharray: \"3 3\", strokeWidth: 1 },\n baseline: { stroke: \"var(--k-line-strong)\", strokeWidth: 1 },\n label: { fill: \"var(--k-text-tertiary)\", fontSize: 12, fontWeight: 500, style: { fontVariantNumeric: \"tabular-nums\" as const } },\n};\n\nexport const KAESO_CHARTS_VARIANTS = {\n chrome: { default: { classes: \"\" } },\n} as const;\nexport const KAESO_CHARTS_DEFAULT_VARIANTS = { chrome: \"default\" } as const;\n\nexport function chartKeyIndex(\n key: string,\n index: number | null,\n count: number,\n { vertical = false, start = count - 1 }: { vertical?: boolean | undefined; start?: number | undefined } = {},\n): number | null | undefined {\n if (count <= 0) return undefined;\n const back = vertical ? \"ArrowUp\" : \"ArrowLeft\";\n const forward = vertical ? \"ArrowDown\" : \"ArrowRight\";\n if (key === back) return index === null ? start : Math.max(0, index - 1);\n if (key === forward) return index === null ? start : Math.min(count - 1, index + 1);\n if (key === \"Home\") return 0;\n if (key === \"End\") return count - 1;\n if (key === \"Escape\") return index === null ? undefined : null;\n return undefined;\n}\n\nexport function useChartKeys(count: number, options: { vertical?: boolean | undefined; start?: number | undefined } = {}) {\n const [index, setIndex] = useState<number | null>(null);\n const start = options.start ?? count - 1;\n const props = {\n tabIndex: count > 0 ? 0 : -1,\n onFocus: (e: React.FocusEvent<HTMLElement>) => {\n if (e.target !== e.currentTarget) return;\n let keyboard = true;\n try {\n keyboard = e.currentTarget.matches(\":focus-visible\");\n } catch {}\n if (keyboard && !document.documentElement.hasAttribute(\"data-k-pointer\")) setIndex(Math.max(0, start));\n },\n onBlur: () => setIndex(null),\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => {\n const next = chartKeyIndex(e.key, index, count, { vertical: !!options.vertical, start });\n if (next === undefined) return;\n e.preventDefault();\n if (next === null) e.stopPropagation();\n setIndex(next);\n },\n };\n return { index: index !== null && index < count ? index : null, props };\n}\n\nexport function ChartLive({ children }: { children?: ReactNode | undefined }) {\n return (\n <div className=\"sr-only\" aria-live=\"polite\" aria-atomic>\n {children}\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ChartLive.displayName = \"ChartLive\";\n\nexport const liveLine = (heading: ReactNode, rows: { label: ReactNode; value: ReactNode }[], t: UiText = englishText) =>\n t(\"chart.liveLine\", \"{heading}: {values}\", {\n heading: String(heading),\n values: rows.map((r) => t(\"chart.liveValue\", \"{label} {value}\", { label: String(r.label), value: String(r.value) })).join(t(\"chart.listSeparator\", \", \")),\n });\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"de-BCg1eRVd.js","names":["de"],"sources":["../../src/i18n/locales/de.ts"],"sourcesContent":["const de: Readonly<Record<string, string>> = {\n \"alertDialog.cancel\": \"Abbrechen\",\n \"alertDialog.typeToConfirm\": \"Zur Bestätigung {text} eingeben\",\n \"appFrame.expandSidebar\": \"Seitenleiste ausklappen\",\n \"appFrame.navigation\": \"Navigation\",\n \"appFrame.openNavigation\": \"Navigation öffnen\",\n \"appFrame.skipToContent\": \"Zum Inhalt springen\",\n \"avatarGroup.listSeparator\": \", \",\n \"banner.dismiss\": \"Ausblenden\",\n \"barChart.category\": \"Kategorie\",\n \"calendar.navigation\": \"Navigationsleiste\",\n \"calendar.nextMonth\": \"Zum nächsten Monat\",\n \"calendar.previousMonth\": \"Zum vorherigen Monat\",\n \"calendar.selected\": \"{date}, ausgewählt\",\n \"calendar.today\": \"Heute, {date}\",\n \"chart.listSeparator\": \", \",\n \"chart.liveLine\": \"{heading}: {values}\",\n \"chart.liveValue\": \"{label} {value}\",\n \"chartFrame.loadFailed\": \"Diagramm konnte nicht geladen werden\",\n \"chartFrame.noData\": \"Keine Daten für diesen Zeitraum\",\n \"chartFrame.tryAgain\": \"Erneut versuchen\",\n \"chartFrame.viewAsChart\": \"Diagramm anzeigen\",\n \"chartFrame.viewAsTable\": \"Tabelle anzeigen\",\n \"chartLegend.label\": \"Legende\",\n \"codeBlock.code\": \"Code\",\n \"codeBlock.copy\": \"Code kopieren\",\n \"codeBlock.language\": \"Sprache\",\n \"codeBlock.showAllLines\": \"Alle {count} Zeilen anzeigen\",\n \"codeBlock.showLess\": \"Weniger anzeigen\",\n \"codeBlock.titledCode\": \"Code: {title}\",\n \"combobox.create\": \"„{label}“ erstellen\",\n \"combobox.loading\": \"Wird geladen…\",\n \"combobox.loadingResults\": \"Ergebnisse werden geladen\",\n \"combobox.noResults\": \"Keine Ergebnisse\",\n \"combobox.remove\": \"{label} entfernen\",\n \"combobox.showOptions\": \"Optionen anzeigen\",\n \"commandPalette.label\": \"Befehlspalette\",\n \"commandPalette.noResults\": \"Keine Ergebnisse\",\n \"commandPalette.placeholder\": \"Suchen oder Befehl ausführen\",\n \"commandPalette.results\": \"Ergebnisse\",\n \"commandPalette.toClose\": \"zum Schließen\",\n \"commandPalette.toGoBack\": \"zum Zurückgehen\",\n \"commandPalette.toNavigate\": \"zum Navigieren\",\n \"commandPalette.toOpen\": \"zum Öffnen\",\n \"compareGrid.addModel\": \"Modell hinzufügen\",\n \"compareGrid.columnName\": \"{label}, \",\n \"compareGrid.compareUpTo\": \"Bis zu {max} gleichzeitig vergleichen\",\n \"compareGrid.nextColumn\": \"Nächste Spalte\",\n \"compareGrid.position\": \"{index} von {count}\",\n \"compareGrid.previousColumn\": \"Vorherige Spalte\",\n \"compareGrid.remove\": \"{label} entfernen\",\n \"compareGrid.thread\": \"Verlauf {label}\",\n \"composer.placeholder\": \"Prompt schreiben\",\n \"composer.prompt\": \"Prompt\",\n \"composer.send\": \"Senden\",\n \"composer.stop\": \"Stoppen\",\n \"conversationView.assistant\": \"Assistent\",\n \"conversationView.called\": \"**{name}** aufgerufen\",\n \"conversationView.developer\": \"Entwickler\",\n \"conversationView.document\": \"Dokument\",\n \"conversationView.encrypted\": \"Der Anbieter hat dieses Reasoning verschlüsselt zurückgegeben.\",\n \"conversationView.error\": \"Fehler\",\n \"conversationView.image\": \"Bild\",\n \"conversationView.imageInput\": \"Bildeingabe\",\n \"conversationView.reasoning\": \"Reasoning\",\n \"conversationView.redacted\": \"Vom Anbieter geschwärzt\",\n \"conversationView.refused\": \"Das Modell hat abgelehnt.\",\n \"conversationView.result\": \"Ergebnis\",\n \"conversationView.system\": \"System\",\n \"conversationView.tool\": \"Tool\",\n \"conversationView.user\": \"Nutzer\",\n \"copyButton.copied\": \"Kopiert\",\n \"copyButton.copy\": \"Kopieren\",\n \"dataTable.loadFailed\": \"Zeilen konnten nicht geladen werden\",\n \"dataTable.noMatches\": \"Nichts passt zu diesen Filtern.\",\n \"dataTable.noRows\": \"Keine Zeilen\",\n \"dataTable.resizeColumn\": \"Spaltenbreite ändern\",\n \"dataTable.selectAllRows\": \"Alle Zeilen auswählen\",\n \"dataTable.selectRow\": \"Zeile auswählen\",\n \"dataTable.tokenCount\": \"{count} Token\",\n \"dataTable.tryAgain\": \"Erneut versuchen\",\n \"datePicker.apply\": \"Anwenden\",\n \"datePicker.chooseDate\": \"Datum auswählen\",\n \"datePicker.chooseRange\": \"Zeitraum auswählen\",\n \"datePicker.custom\": \"Benutzerdefiniert\",\n \"datePicker.date\": \"Datum\",\n \"datePicker.endDate\": \"Enddatum\",\n \"datePicker.isoPlaceholder\": \"JJJJ-MM-TT\",\n \"datePicker.last24Hours\": \"Letzte 24 Stunden\",\n \"datePicker.last30Days\": \"Letzte 30 Tage\",\n \"datePicker.last7Days\": \"Letzte 7 Tage\",\n \"datePicker.lastMonth\": \"Letzter Monat\",\n \"datePicker.pickDate\": \"Datum wählen\",\n \"datePicker.pickRange\": \"Zeitraum wählen\",\n \"datePicker.presets\": \"Vorgaben\",\n \"datePicker.startDate\": \"Startdatum\",\n \"datePicker.thisMonth\": \"Dieser Monat\",\n \"deleteResource.confirm\": \"{kind} {verb}\",\n \"deleteResource.deleteConfirm\": \"{kind} löschen\",\n \"deleteResource.deleteTitle\": \"{kind} löschen?\",\n \"deleteResource.title\": \"{kind} {verb}?\",\n \"dialog.back\": \"Zurück\",\n \"dialog.close\": \"Schließen\",\n \"displayOptions.displayOptions\": \"Anzeigeoptionen\",\n \"displayOptions.properties\": \"Angezeigte Eigenschaften\",\n \"displayOptions.view\": \"Ansicht\",\n \"donut.legend\": \"Legende\",\n \"donut.other\": \"Sonstige\",\n \"donut.share\": \"Anteil\",\n \"donut.slice\": \"Segment\",\n \"donut.total\": \"Gesamt\",\n \"donut.underOnePercent\": \"<1 %\",\n \"donut.value\": \"Wert\",\n \"effectiveAccess.access\": \"Zugriff\",\n \"effectiveAccess.everyRight\": \"Alle Rechte\",\n \"effectiveAccess.from\": \"Über\",\n \"effectiveAccess.grantedOfTotal\": \"{granted} von {total}\",\n \"effectiveAccess.listSeparator\": \", \",\n \"effectiveAccess.noRights\": \"Keine Rechte\",\n \"effectiveAccess.noneIn\": \"Keine in\",\n \"environmentSnippet.apiKey\": \"API-Schlüssel\",\n \"environmentSnippet.baseUrl\": \"Basis-URL\",\n \"environmentSnippet.copyBaseUrl\": \"Basis-URL kopieren\",\n \"environmentSnippet.copyVariableName\": \"Variablennamen kopieren\",\n \"field.optional\": \"Optional\",\n \"filterChip.filter\": \"Filter\",\n \"filterChip.filterNamed\": \"Filter: {property}\",\n \"filterChip.noMatches\": \"Keine passenden Werte\",\n \"filterChip.remove\": \"Filter entfernen\",\n \"filterChip.removeNamed\": \"Filter „{property}“ entfernen\",\n \"filterChip.search\": \"Suchen\",\n \"filterChip.searchNamedValues\": \"Werte für „{property}“ durchsuchen\",\n \"filterChip.searchValues\": \"Werte durchsuchen\",\n \"filterRow.filters\": \"Filter\",\n \"flow.connection\": \"Von {from} zu {to}\",\n \"flow.label\": \"Flussdiagramm\",\n \"format.daysAgo\": \"{count, plural, one {vor # Tag} other {vor # Tagen}}\",\n \"format.hoursAgo\": \"vor {count} Std.\",\n \"format.hoursMinutes\": \"{h} h {min} min\",\n \"format.inDays\": \"{count, plural, one {in # Tag} other {in # Tagen}}\",\n \"format.inHours\": \"in {count} Std.\",\n \"format.inMinutes\": \"in {count} Min.\",\n \"format.justNow\": \"jetzt\",\n \"format.milliseconds\": \"{ms} ms\",\n \"format.minutes\": \"{min} min\",\n \"format.minutesAgo\": \"vor {count} Min.\",\n \"format.minutesSeconds\": \"{min} min {s} s\",\n \"format.seconds\": \"{s} s\",\n \"format.yesterday\": \"gestern\",\n \"heatmap.cell\": \"{row} {column}: {value}\",\n \"heatmap.less\": \"Weniger\",\n \"heatmap.more\": \"Mehr\",\n \"jsonView.collapse\": \"Einklappen\",\n \"jsonView.collapsePath\": \"{path} einklappen\",\n \"jsonView.copyPath\": \"Pfad {path} kopieren\",\n \"jsonView.expand\": \"Ausklappen\",\n \"jsonView.expandPath\": \"{path} ausklappen\",\n \"jsonView.items\": \"{count, plural, one {{n} Element} other {{n} Elemente}}\",\n \"jsonView.keys\": \"{count, plural, one {{n} Schlüssel} other {{n} Schlüssel}}\",\n \"jsonView.pathCopied\": \"Pfad kopiert\",\n \"kbd.backspace\": \"Rücktaste\",\n \"kbd.backspaceName\": \"Rücktaste\",\n \"kbd.commandName\": \"Befehlstaste\",\n \"kbd.controlName\": \"Steuerung\",\n \"kbd.ctrl\": \"Strg\",\n \"kbd.downName\": \"Nach unten\",\n \"kbd.enterName\": \"Eingabetaste\",\n \"kbd.escapeName\": \"Escape\",\n \"kbd.leftName\": \"Nach links\",\n \"kbd.optionName\": \"Wahltaste\",\n \"kbd.rightName\": \"Nach rechts\",\n \"kbd.shift\": \"Umschalt\",\n \"kbd.shiftName\": \"Umschalttaste\",\n \"kbd.tabName\": \"Tabulator\",\n \"kbd.then\": \"dann\",\n \"kbd.upName\": \"Nach oben\",\n \"keyDisplay.active\": \"Aktiv\",\n \"keyDisplay.archived\": \"Archiviert\",\n \"keyDisplay.copyRedactedKey\": \"Maskierten Schlüssel kopieren\",\n \"keyDisplay.disabled\": \"Deaktiviert\",\n \"keyDisplay.expired\": \"Abgelaufen\",\n \"keyDisplay.inference\": \"Inferenz\",\n \"keyDisplay.inferenceAndPlatform\": \"Inferenz + Plattform\",\n \"keyDisplay.platform\": \"Plattform\",\n \"label.optional\": \"Optional\",\n \"limitMeter.hard\": \"Hart\",\n \"limitMeter.label\": \"{kind, select, requests {Anfragelimit} tokens {Token-Limit} other {Ausgabenlimit}}\",\n \"limitMeter.soft\": \"Weich\",\n \"link.opensInNewTab\": \" (öffnet in neuem Tab)\",\n \"list.add\": \"Hinzufügen\",\n \"list.clearSelection\": \"Auswahl aufheben\",\n \"list.selectItem\": \"{name} auswählen\",\n \"list.selected\": \"{count} ausgewählt\",\n \"list.selection\": \"Auswahl\",\n \"loader.loading\": \"Wird geladen\",\n \"markdown.showAllCharacters\": \"Alle {count} Zeichen anzeigen\",\n \"modelLabel.capabilities\": \"Fähigkeiten: {list}\",\n \"modelLabel.imageInput\": \"Bildeingabe\",\n \"modelLabel.listSeparator\": \", \",\n \"modelLabel.pdfInput\": \"PDF-Eingabe\",\n \"modelLabel.reasoning\": \"Reasoning\",\n \"modelLabel.structuredOutput\": \"Strukturierte Ausgabe\",\n \"modelLabel.toolCalling\": \"Tool-Aufrufe\",\n \"modelPicker.choose\": \"Modell wählen\",\n \"modelPicker.model\": \"Modell\",\n \"numberInput.decrease\": \"Verringern\",\n \"numberInput.increase\": \"Erhöhen\",\n \"otpInput.label\": \"Bestätigungscode\",\n \"pagination.label\": \"Seitennavigation\",\n \"pagination.loadMore\": \"Mehr laden\",\n \"pagination.next\": \"Nächste Seite\",\n \"pagination.previous\": \"Vorherige Seite\",\n \"parameterPanel.effortExtraHigh\": \"Sehr hoch\",\n \"parameterPanel.effortHigh\": \"Hoch\",\n \"parameterPanel.effortLow\": \"Niedrig\",\n \"parameterPanel.effortMax\": \"Maximal\",\n \"parameterPanel.effortMedium\": \"Mittel\",\n \"parameterPanel.effortMinimal\": \"Minimal\",\n \"parameterPanel.effortNone\": \"Ohne\",\n \"parameterPanel.instructionsPlaceholder\": \"Du bist ein hilfreicher Assistent.\",\n \"parameterPanel.maxOutputTokens\": \"Max. Ausgabe-Token\",\n \"parameterPanel.modelDefault\": \"Modell-Standard\",\n \"parameterPanel.reasoningEffort\": \"Reasoning-Aufwand\",\n \"parameterPanel.reasoningSummary\": \"Reasoning-Zusammenfassung\",\n \"parameterPanel.resetToDefaults\": \"Auf Standard zurücksetzen\",\n \"parameterPanel.summaryAuto\": \"Auto\",\n \"parameterPanel.summaryConcise\": \"Knapp\",\n \"parameterPanel.summaryDetailed\": \"Detailliert\",\n \"parameterPanel.summaryOff\": \"Aus\",\n \"parameterPanel.systemInstructions\": \"Systemanweisungen\",\n \"parameterPanel.temperature\": \"Temperatur\",\n \"parameterPanel.topP\": \"Top P\",\n \"parameterPanel.valueDefault\": \"{value} (Standard)\",\n \"parameterPopover.parameters\": \"Parameter\",\n \"promptSuggestions.examplePrompts\": \"Beispiel-Prompts\",\n \"providerCard.connected\": \"Verbunden\",\n \"providerCard.notConnected\": \"Nicht verbunden\",\n \"requestTimeline.label\": \"Zeit bis zum ersten Byte {ttfb} von {total} gesamt\",\n \"requestTimeline.firstByte\": \"Erstes Byte\",\n \"requestTimeline.totalTime\": \"Gesamt\",\n \"resourceList.filters\": \"Filter\",\n \"resourceList.noMatches\": \"Keine Treffer\",\n \"resourceList.nothingHereYet\": \"Noch nichts vorhanden\",\n \"resourceList.search\": \"Suchen\",\n \"resourceList.tryShorterSearch\": \"Kürzeren Suchbegriff versuchen.\",\n \"responseMetrics.cost\": \"Kosten\",\n \"responseMetrics.firstToken\": \"Erstes Token\",\n \"responseMetrics.metrics\": \"Kennzahlen\",\n \"responseMetrics.notYetKnown\": \"noch unbekannt\",\n \"responseMetrics.reasoning\": \"Reasoning\",\n \"responseMetrics.tokens\": \"Token\",\n \"responseMetrics.tokensInOut\": \"{input} ein, {output} aus\",\n \"responseMetrics.total\": \"Gesamt\",\n \"responseMetrics.unknown\": \"unbekannt\",\n \"responseView.noResponse\": \"Keine Antwort\",\n \"responseView.noText\": \"Das Modell hat keinen Text zurückgegeben\",\n \"responseView.responding\": \"Antwortet\",\n \"responseView.response\": \"Antwort\",\n \"responseView.retry\": \"Erneut versuchen\",\n \"responseView.stopped\": \"Gestoppt\",\n \"responseView.stoppedBeforeResponse\": \"Vor einer Antwort gestoppt\",\n \"responseView.stoppedEarly\": \"Die Antwort brach vorzeitig ab\",\n \"responseView.thinking\": \"Denkt nach\",\n \"responseView.thoughtFor\": \"{duration} nachgedacht\",\n \"responseView.waiting\": \"Warten auf die Antwort\",\n \"rightsMatrix.added\": \"Hinzugefügt\",\n \"rightsMatrix.alsoGranted\": \"Ebenfalls gewährt: {rights}\",\n \"rightsMatrix.alsoRemoved\": \"Ebenfalls entzogen: {rights}\",\n \"rightsMatrix.everyRightIn\": \"Alle Rechte in {group}\",\n \"rightsMatrix.everyRightShownIn\": \"Alle angezeigten Rechte in {group}\",\n \"rightsMatrix.fromRole\": \"Über Rolle\",\n \"rightsMatrix.granted\": \"Gewährt\",\n \"rightsMatrix.grantedOfTotal\": \"{granted} von {total}\",\n \"rightsMatrix.listSeparator\": \", \",\n \"rightsMatrix.needs\": \"Erfordert {rights}\",\n \"rightsMatrix.noMatch\": \"Keine passenden Rechte\",\n \"rightsMatrix.noMatchHint\": \"Namen, Code oder ein Wort aus der Beschreibung eines Rechts versuchen.\",\n \"rightsMatrix.notGranted\": \"Nicht gewährt\",\n \"rightsMatrix.removed\": \"Entfernt\",\n \"rightsMatrix.rights\": \"Rechte\",\n \"rightsMatrix.searchRights\": \"Rechte suchen\",\n \"rightsMatrix.sensitive\": \"Sensibel\",\n \"rightsMatrix.sensitiveHint\": \"Sensibel: legt Daten offen oder ist schwer rückgängig zu machen\",\n \"rolePicker.builtInRoles\": \"Integrierte Rollen\",\n \"rolePicker.customRoles\": \"Eigene Rollen\",\n \"rolePicker.role\": \"Rolle\",\n \"sankey.from\": \"Von\",\n \"sankey.link\": \"{source} → {target}: {value}\",\n \"sankey.requests\": \"Anfragen\",\n \"sankey.to\": \"Nach\",\n \"searchInput.clear\": \"Suche leeren\",\n \"searchInput.placeholder\": \"Suchen\",\n \"secretReveal.copied\": \"Kopiert\",\n \"secretReveal.copyKey\": \"Schlüssel kopieren\",\n \"secretReveal.secret\": \"Secret\",\n \"secretReveal.secretFor\": \"Secret für {name}\",\n \"secretReveal.shownOnce\": \"Nur einmal sichtbar. Jetzt sicher speichern.\",\n \"select.firstAndMore\": \"{first} +{count}\",\n \"select.placeholder\": \"Auswählen\",\n \"sensitiveInput.capsLock\": \"Feststelltaste ist aktiviert.\",\n \"sensitiveInput.hide\": \"Ausblenden\",\n \"sensitiveInput.show\": \"Anzeigen\",\n \"shareBar.listSeparator\": \", \",\n \"shareBar.segment\": \"{label}: {value}\",\n \"shareBar.share\": \"{label} {share}\",\n \"shareBar.summary\": \"{label}: {shares}\",\n \"sheet.close\": \"Schließen\",\n \"sidebar.backToApp\": \"Zurück zur App\",\n \"sidebar.clickToCollapse\": \"**Klicken** zum Einklappen\",\n \"sidebar.closeNavigation\": \"Navigation schließen\",\n \"sidebar.collapse\": \"Seitenleiste einklappen\",\n \"sidebar.dragToResize\": \"**Ziehen** zum Ändern der Breite\",\n \"sidebar.expand\": \"Seitenleiste ausklappen\",\n \"sidebar.keepOpen\": \"Seitenleiste offen lassen\",\n \"sidebar.main\": \"Hauptmenü\",\n \"sidebar.resizeOrCollapse\": \"Breite der Seitenleiste ändern; klicken zum Einklappen\",\n \"sidebar.switchOrOpenSettings\": \"{label}: wechseln oder Einstellungen öffnen\",\n \"sidebar.switchPlace\": \"{label}: wechseln\",\n \"slider.rangeEnd\": \"Bereichsende: {value}\",\n \"slider.rangeStart\": \"Bereichsanfang: {value}\",\n \"statTile.percent\": \"{value} %\",\n \"statTile.trend\": \"Verlauf\",\n \"statTile.trendPerDay\": \"{label} pro Tag\",\n \"statusCode.badGateway\": \"Bad Gateway\",\n \"statusCode.badRequest\": \"Ungültige Anfrage\",\n \"statusCode.clientClosed\": \"Client getrennt\",\n \"statusCode.conflict\": \"Konflikt\",\n \"statusCode.created\": \"Erstellt\",\n \"statusCode.forbidden\": \"Verboten\",\n \"statusCode.gatewayTimeout\": \"Gateway-Timeout\",\n \"statusCode.noContent\": \"Kein Inhalt\",\n \"statusCode.notFound\": \"Nicht gefunden\",\n \"statusCode.ok\": \"OK\",\n \"statusCode.overloaded\": \"Überlastet\",\n \"statusCode.rateLimited\": \"Ratenlimit erreicht\",\n \"statusCode.serverError\": \"Serverfehler\",\n \"statusCode.timeout\": \"Zeitüberschreitung\",\n \"statusCode.tooLarge\": \"Zu groß\",\n \"statusCode.tooltip\": \"{code} {text}\",\n \"statusCode.unauthorized\": \"Nicht autorisiert\",\n \"statusCode.unavailable\": \"Nicht verfügbar\",\n \"statusCode.unprocessable\": \"Nicht verarbeitbar\",\n \"stepDialog.back\": \"Zurück\",\n \"stepDialog.cancel\": \"Abbrechen\",\n \"stepDialog.continue\": \"Weiter\",\n \"stepDialog.stepAnnouncement\": \"Schritt {current} von {total}: {title}\",\n \"stepDialog.stepOf\": \"Schritt {current} von {total}\",\n \"tableOfContents.title\": \"Auf dieser Seite\",\n \"tag.remove\": \"Entfernen\",\n \"tag.removeNamed\": \"{label} entfernen\",\n \"tagInput.remove\": \"{tag} entfernen\",\n \"themeMenu.dark\": \"Dunkel\",\n \"themeMenu.light\": \"Hell\",\n \"themeMenu.system\": \"System\",\n \"themeMenu.theme\": \"Design\",\n \"timeInput.hours\": \"Stunden\",\n \"timeInput.minutes\": \"Minuten\",\n \"timeInput.time\": \"Uhrzeit\",\n \"timeseriesChart.time\": \"Zeit\",\n \"toast.dismiss\": \"Ausblenden\",\n \"toast.notifications\": \"Benachrichtigungen\",\n \"tokenKind.cacheRead\": \"Cache-Lesen\",\n \"tokenKind.cacheWrite\": \"Cache-Schreiben\",\n \"tokenKind.input\": \"Eingabe\",\n \"tokenKind.output\": \"Ausgabe\",\n \"tokenKind.reasoning\": \"Reasoning\",\n \"usageBreakdown.cacheRead\": \"Cache-Lesen\",\n \"usageBreakdown.cacheWrite\": \"Cache-Schreiben\",\n \"usageBreakdown.input\": \"Eingabe\",\n \"usageBreakdown.kindCount\": \"{kind} {count}\",\n \"usageBreakdown.listSeparator\": \", \",\n \"usageBreakdown.output\": \"Ausgabe\",\n \"usageBreakdown.reasoning\": \"Reasoning\",\n \"usageBreakdown.tokenCount\": \"{count} Token\",\n \"usageBreakdown.tokens\": \"Token: {list}\",\n \"userMessage.prompt\": \"Prompt\",\n \"userMessage.showAll\": \"Alles anzeigen\",\n \"userMessage.showLess\": \"Weniger anzeigen\",\n};\nexport default de;\n"],"mappings":"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"}
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { t as e } from "./cn-CidVUKMm.js";
|
|
3
|
-
import { r as t } from "./portal-context-BBbzDKmY.js";
|
|
4
|
-
import { t as n } from "./inset-BLMdxX4I.js";
|
|
5
|
-
import { i as r } from "./context-BELWW79w.js";
|
|
6
|
-
import { i, n as a } from "./button-BHKAE6ui.js";
|
|
7
|
-
import { t as o } from "./icon-button-Bw67oKtx.js";
|
|
8
|
-
import { t as s } from "./input-Biakz6GB.js";
|
|
9
|
-
import { t as c } from "./restore-focus-Cap1Q-R3.js";
|
|
10
|
-
import { forwardRef as l, useEffect as u, useLayoutEffect as d, useRef as f, useState as p } from "react";
|
|
11
|
-
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
12
|
-
import { ArrowLeft01Icon as _, Cancel01Icon as v } from "@hugeicons/core-free-icons";
|
|
13
|
-
import { Dialog as y } from "@base-ui/react/dialog";
|
|
14
|
-
import { AlertDialog as b } from "@base-ui/react/alert-dialog";
|
|
15
|
-
//#region src/components/dialog/focus.ts
|
|
16
|
-
var x = "input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"]", S = "a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])", C = (e) => !e.closest("[hidden], [inert]") && !e.matches(":disabled, [aria-disabled=true]"), w = (e, t) => [...e.querySelectorAll(t)].find(C) ?? null;
|
|
17
|
-
function T(e, t) {
|
|
18
|
-
let n = t ?? e.querySelector("[data-dialog-body]"), r = e.querySelector("[data-dialog-footer]"), a = r ? [...r.querySelectorAll("button, a[href]")].filter(C) : [], { primary: o, danger: s, "danger-secondary": c } = i.variant, l = a.filter((e) => !e.classList.contains(s.classes) && !e.classList.contains(c.classes));
|
|
19
|
-
return (n && (w(n, "[data-autofocus]") ?? w(n, x))) ?? l.find((e) => e.classList.contains(o.classes)) ?? l[0] ?? (n && w(n, S)) ?? w(e, S);
|
|
20
|
-
}
|
|
21
|
-
function E(e, t) {
|
|
22
|
-
let n = e?.closest("[data-dialog-frame]");
|
|
23
|
-
e && n && !n.closest("[data-closed]") && ((t?.isConnected && n.contains(t) && C(t) ? t : null) ?? T(n, e))?.focus({ preventScroll: !0 });
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region src/components/dialog/dialog.tsx
|
|
27
|
-
var D = { size: {
|
|
28
|
-
sm: { classes: "w-440" },
|
|
29
|
-
md: { classes: "w-560" },
|
|
30
|
-
lg: { classes: "w-720" }
|
|
31
|
-
} }, O = { size: "md" }, k = "fixed inset-0 z-50 bg-overlay backdrop-motion", A = "fixed inset-0 z-50 flex items-center justify-center p-16", j = "relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion";
|
|
32
|
-
function M() {
|
|
33
|
-
let e = f(null), [t, n] = p(!1);
|
|
34
|
-
return u(() => {
|
|
35
|
-
let t = e.current;
|
|
36
|
-
if (!t) return;
|
|
37
|
-
let r = () => n(t.scrollHeight - t.scrollTop - t.clientHeight > 1);
|
|
38
|
-
r(), t.addEventListener("scroll", r, { passive: !0 });
|
|
39
|
-
let i = typeof ResizeObserver < "u" ? new ResizeObserver(r) : null, a = () => {
|
|
40
|
-
for (let e of t.children) i?.observe(e);
|
|
41
|
-
};
|
|
42
|
-
i?.observe(t), a();
|
|
43
|
-
let o = new MutationObserver(() => {
|
|
44
|
-
a(), r();
|
|
45
|
-
});
|
|
46
|
-
return o.observe(t, { childList: !0 }), () => {
|
|
47
|
-
t.removeEventListener("scroll", r), i?.disconnect(), o.disconnect();
|
|
48
|
-
};
|
|
49
|
-
}, []), {
|
|
50
|
-
ref: e,
|
|
51
|
-
under: t
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function N({ title: t, description: n, children: i, footer: a, onSubmit: s, hideClose: c, headerStart: l, size: u = "md", className: d, inline: f }) {
|
|
55
|
-
let { ref: p, under: _ } = M(), b = r(), x = f ? "h2" : y.Title, S = /* @__PURE__ */ h(o, {
|
|
56
|
-
icon: v,
|
|
57
|
-
"aria-label": b("dialog.close", "Close"),
|
|
58
|
-
tooltip: !1
|
|
59
|
-
}), C = c ? null : f ? S : /* @__PURE__ */ h(y.Close, { render: S }), w = f ? "p" : y.Description;
|
|
60
|
-
return /* @__PURE__ */ g("div", {
|
|
61
|
-
"data-dialog-frame": "",
|
|
62
|
-
className: e("flex min-h-0 flex-col", f && "rounded-dialog bg-raised shadow-dialog", f && D.size[u].classes, d),
|
|
63
|
-
onKeyDown: (e) => {
|
|
64
|
-
s && e.key === "Enter" && (e.metaKey || e.ctrlKey) && (e.preventDefault(), s());
|
|
65
|
-
},
|
|
66
|
-
children: [
|
|
67
|
-
l === void 0 ? /* @__PURE__ */ g("div", {
|
|
68
|
-
className: "flex items-start gap-12 px-24 pt-20 pb-4",
|
|
69
|
-
children: [/* @__PURE__ */ g("div", {
|
|
70
|
-
className: "flex min-w-0 flex-1 flex-col gap-4 pt-4",
|
|
71
|
-
children: [/* @__PURE__ */ h(x, {
|
|
72
|
-
className: "text-title-sm font-semibold text-fg text-balance",
|
|
73
|
-
children: t
|
|
74
|
-
}), n && /* @__PURE__ */ h(w, {
|
|
75
|
-
className: "text-body text-fg-secondary text-pretty",
|
|
76
|
-
children: n
|
|
77
|
-
})]
|
|
78
|
-
}), C && /* @__PURE__ */ h("span", {
|
|
79
|
-
className: "-mr-8 flex",
|
|
80
|
-
children: C
|
|
81
|
-
})]
|
|
82
|
-
}) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ g("div", {
|
|
83
|
-
className: "flex h-32 items-center justify-between px-16 pt-16 box-content",
|
|
84
|
-
children: [/* @__PURE__ */ h("span", {
|
|
85
|
-
className: "flex items-center",
|
|
86
|
-
children: l
|
|
87
|
-
}), C]
|
|
88
|
-
}), /* @__PURE__ */ g("div", {
|
|
89
|
-
className: "flex flex-col gap-4 px-24 pt-8 pb-4",
|
|
90
|
-
children: [/* @__PURE__ */ h(x, {
|
|
91
|
-
className: "text-title-sm font-semibold text-fg text-balance",
|
|
92
|
-
children: t
|
|
93
|
-
}), n && /* @__PURE__ */ h(w, {
|
|
94
|
-
className: "text-body text-fg-secondary text-pretty",
|
|
95
|
-
children: n
|
|
96
|
-
})]
|
|
97
|
-
})] }),
|
|
98
|
-
i && /* @__PURE__ */ h("div", {
|
|
99
|
-
ref: p,
|
|
100
|
-
"data-dialog-body": "",
|
|
101
|
-
className: e("min-h-0 flex-1 overflow-y-auto px-24 pt-16 scrollbar-quiet", a ? "pb-8" : "pb-24"),
|
|
102
|
-
children: i
|
|
103
|
-
}),
|
|
104
|
-
a && /* @__PURE__ */ h("div", {
|
|
105
|
-
"data-dialog-footer": "",
|
|
106
|
-
className: e("flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control", _ && "hairline-t"),
|
|
107
|
-
children: a
|
|
108
|
-
})
|
|
109
|
-
]
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
function P() {
|
|
113
|
-
let e = [...document.querySelectorAll("[role=dialog], [role=alertdialog]")].pop(), t = e?.querySelector("[data-dialog-frame]");
|
|
114
|
-
return (t && T(t)) ?? e ?? !0;
|
|
115
|
-
}
|
|
116
|
-
var F = /* @__PURE__ */ l(function(r, i) {
|
|
117
|
-
let { open: a, defaultOpen: o, onOpenChange: s, trigger: l, size: u = "md", inline: d } = r, f = c(a, P), p = t();
|
|
118
|
-
return d ? /* @__PURE__ */ h(N, { ...r }) : /* @__PURE__ */ g(y.Root, {
|
|
119
|
-
...a === void 0 ? {} : { open: a },
|
|
120
|
-
...o === void 0 ? {} : { defaultOpen: o },
|
|
121
|
-
...s ? { onOpenChange: (e) => s(e) } : {},
|
|
122
|
-
children: [l && /* @__PURE__ */ h(y.Trigger, { render: l }), /* @__PURE__ */ g(y.Portal, {
|
|
123
|
-
container: p,
|
|
124
|
-
children: [/* @__PURE__ */ h(y.Backdrop, { className: k }), /* @__PURE__ */ h(y.Viewport, {
|
|
125
|
-
className: A,
|
|
126
|
-
children: /* @__PURE__ */ h(y.Popup, {
|
|
127
|
-
ref: i,
|
|
128
|
-
initialFocus: f.initialFocus,
|
|
129
|
-
finalFocus: f.finalFocus,
|
|
130
|
-
className: e(j, D.size[u].classes),
|
|
131
|
-
children: /* @__PURE__ */ h(n, {
|
|
132
|
-
inset: !1,
|
|
133
|
-
children: /* @__PURE__ */ h(N, { ...r })
|
|
134
|
-
})
|
|
135
|
-
})
|
|
136
|
-
})]
|
|
137
|
-
})]
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
process.env.NODE_ENV !== "production" && (F.displayName = "Dialog");
|
|
141
|
-
function I({ children: e }) {
|
|
142
|
-
return /* @__PURE__ */ h(y.Close, { render: e });
|
|
143
|
-
}
|
|
144
|
-
process.env.NODE_ENV !== "production" && (I.displayName = "Dialog.Close");
|
|
145
|
-
var L = /* @__PURE__ */ Object.assign(F, { Close: I }), R = { tone: {
|
|
146
|
-
danger: { classes: "bg-danger-tint text-danger-text" },
|
|
147
|
-
warning: { classes: "bg-warning-tint text-warning-text" },
|
|
148
|
-
info: { classes: "bg-info-tint text-info-text" }
|
|
149
|
-
} }, z = { tone: "danger" };
|
|
150
|
-
function B({ title: t, description: n, confirmLabel: i, cancelLabel: o, onConfirm: c, tone: l = "danger", confirmText: u, loading: d, inline: m, close: _ }) {
|
|
151
|
-
let [v, y] = p(""), [x, S] = p(!1), C = f(!1), w = r(), T = o ?? w("alertDialog.cancel", "Cancel"), [E, D = ""] = w("alertDialog.typeToConfirm", "Type {text} to confirm").split("{text}"), O = m ? "h2" : b.Title, k = m ? "p" : b.Description, A = !u || v === u, j = async () => {
|
|
152
|
-
if (!A || d || C.current) return;
|
|
153
|
-
let e = c();
|
|
154
|
-
if (!(e instanceof Promise)) return _();
|
|
155
|
-
C.current = !0, S(!0);
|
|
156
|
-
let t = await e.then(() => !0, () => !1);
|
|
157
|
-
C.current = !1, S(!1), t && _();
|
|
158
|
-
};
|
|
159
|
-
return /* @__PURE__ */ g("div", {
|
|
160
|
-
className: e("flex flex-col gap-20 p-24", m && "w-440 rounded-dialog bg-raised shadow-dialog"),
|
|
161
|
-
children: [
|
|
162
|
-
/* @__PURE__ */ g("div", {
|
|
163
|
-
className: "flex flex-col gap-6",
|
|
164
|
-
children: [/* @__PURE__ */ h(O, {
|
|
165
|
-
className: "text-title-sm font-semibold text-fg text-balance",
|
|
166
|
-
children: t
|
|
167
|
-
}), /* @__PURE__ */ h(k, {
|
|
168
|
-
className: "text-body text-fg-secondary text-pretty",
|
|
169
|
-
children: n
|
|
170
|
-
})]
|
|
171
|
-
}),
|
|
172
|
-
u && /* @__PURE__ */ h(s, {
|
|
173
|
-
label: /* @__PURE__ */ g("span", {
|
|
174
|
-
className: "font-regular text-fg-secondary",
|
|
175
|
-
children: [
|
|
176
|
-
E,
|
|
177
|
-
/* @__PURE__ */ h("span", {
|
|
178
|
-
className: "mono font-medium text-fg",
|
|
179
|
-
children: u
|
|
180
|
-
}),
|
|
181
|
-
D
|
|
182
|
-
]
|
|
183
|
-
}),
|
|
184
|
-
value: v,
|
|
185
|
-
onChange: (e) => y(e.target.value),
|
|
186
|
-
autoComplete: "off",
|
|
187
|
-
spellCheck: !1,
|
|
188
|
-
onKeyDown: (e) => e.key === "Enter" && j()
|
|
189
|
-
}),
|
|
190
|
-
/* @__PURE__ */ g("div", {
|
|
191
|
-
className: "flex flex-wrap justify-end gap-8",
|
|
192
|
-
children: [m ? /* @__PURE__ */ h(a, { children: T }) : /* @__PURE__ */ h(b.Close, { render: /* @__PURE__ */ h(a, { children: T }) }), /* @__PURE__ */ h(a, {
|
|
193
|
-
variant: l === "danger" ? "danger" : "primary",
|
|
194
|
-
onClick: j,
|
|
195
|
-
disabled: !A,
|
|
196
|
-
loading: x || d,
|
|
197
|
-
children: i
|
|
198
|
-
})]
|
|
199
|
-
})
|
|
200
|
-
]
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
function V(r) {
|
|
204
|
-
let { open: i, defaultOpen: a, onOpenChange: o, trigger: s, inline: l } = r, [u, d] = p(a ?? !1), f = i ?? u, m = (e) => {
|
|
205
|
-
i === void 0 && d(e), o?.(e);
|
|
206
|
-
}, _ = c(f), v = t();
|
|
207
|
-
return l ? /* @__PURE__ */ h(B, {
|
|
208
|
-
...r,
|
|
209
|
-
close: () => void 0
|
|
210
|
-
}) : /* @__PURE__ */ g(b.Root, {
|
|
211
|
-
open: f,
|
|
212
|
-
onOpenChange: (e) => m(e),
|
|
213
|
-
children: [s && /* @__PURE__ */ h(b.Trigger, { render: s }), /* @__PURE__ */ g(b.Portal, {
|
|
214
|
-
container: v,
|
|
215
|
-
children: [/* @__PURE__ */ h(b.Backdrop, { className: k }), /* @__PURE__ */ h(b.Viewport, {
|
|
216
|
-
className: A,
|
|
217
|
-
children: /* @__PURE__ */ h(b.Popup, {
|
|
218
|
-
initialFocus: _.initialFocus,
|
|
219
|
-
finalFocus: _.finalFocus,
|
|
220
|
-
className: e(j, "w-440"),
|
|
221
|
-
children: /* @__PURE__ */ h(n, {
|
|
222
|
-
inset: !1,
|
|
223
|
-
children: /* @__PURE__ */ h(B, {
|
|
224
|
-
...r,
|
|
225
|
-
close: () => m(!1)
|
|
226
|
-
})
|
|
227
|
-
})
|
|
228
|
-
})
|
|
229
|
-
})]
|
|
230
|
-
})]
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
process.env.NODE_ENV !== "production" && (V.displayName = "AlertDialog");
|
|
234
|
-
var H = D, U = O, W = (e) => e?.closest("[data-dialog-body]") ?? null;
|
|
235
|
-
function G({ layers: e, layer: t, onLayerChange: n, ...i }) {
|
|
236
|
-
let [a, s] = p(0), c = r(), l = t ?? a, u = l > 0 && l < e.length ? l : 0, m = f([]), g = f([]), v = f([]), y = f(u), b = f(u);
|
|
237
|
-
y.current !== u && (v.current[y.current] = W(m.current[y.current])?.scrollTop ?? 0, y.current = u), d(() => {
|
|
238
|
-
let e = b.current;
|
|
239
|
-
if (b.current = u, e === u) return;
|
|
240
|
-
let t = u < e;
|
|
241
|
-
t || (g.current[u] = null), g.current.length = u + 1;
|
|
242
|
-
let n = m.current[u], r = W(n);
|
|
243
|
-
r && (r.scrollTop = t ? v.current[u] ?? 0 : 0), E(n, t ? g.current[u] : null);
|
|
244
|
-
}, [u]);
|
|
245
|
-
let x = (e) => {
|
|
246
|
-
t === void 0 && s(e), n?.(e);
|
|
247
|
-
}, S = e.slice(0, u + 1), C = S[u];
|
|
248
|
-
if (!C) return null;
|
|
249
|
-
let w = (e) => (t) => {
|
|
250
|
-
t.target instanceof HTMLElement && (g.current[e] = t.target);
|
|
251
|
-
};
|
|
252
|
-
return /* @__PURE__ */ h(L, {
|
|
253
|
-
...i,
|
|
254
|
-
title: C.title,
|
|
255
|
-
description: C.description,
|
|
256
|
-
footer: C.footer ? S.map((e, t) => e.footer ? /* @__PURE__ */ h("div", {
|
|
257
|
-
hidden: t !== u,
|
|
258
|
-
className: "contents",
|
|
259
|
-
onFocus: w(t),
|
|
260
|
-
children: e.footer
|
|
261
|
-
}, t) : null) : void 0,
|
|
262
|
-
headerStart: u > 0 ? /* @__PURE__ */ h(o, {
|
|
263
|
-
icon: _,
|
|
264
|
-
"aria-label": c("dialog.back", "Back"),
|
|
265
|
-
onClick: () => x(u - 1),
|
|
266
|
-
className: "animate-layer-in"
|
|
267
|
-
}, "back") : null,
|
|
268
|
-
children: S.map((e, t) => /* @__PURE__ */ h("div", {
|
|
269
|
-
ref: (e) => {
|
|
270
|
-
m.current[t] = e;
|
|
271
|
-
},
|
|
272
|
-
hidden: t !== u,
|
|
273
|
-
className: "animate-layer-in",
|
|
274
|
-
onFocus: w(t),
|
|
275
|
-
children: e.content
|
|
276
|
-
}, t))
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
process.env.NODE_ENV !== "production" && (G.displayName = "LayerDialog");
|
|
280
|
-
//#endregion
|
|
281
|
-
export { O as a, H as c, R as i, G as l, L as n, D as o, z as r, U as s, V as t, E as u };
|
|
282
|
-
|
|
283
|
-
//# sourceMappingURL=dialog-CVqSVk3T.js.map
|