@cloudflare/kumo 2.0.0 → 2.0.2
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/CHANGELOG.md +17 -0
- package/ai/component-registry.json +220 -30
- package/ai/component-registry.md +305 -19
- package/dist/.build-complete +1 -1
- package/dist/blocks-source/resource-list/resource-list.tsx +1 -1
- package/dist/chunks/{autocomplete-cs3fwy6lwzlyirpq.js → autocomplete-48aq0d244bs2e8zv.js} +3 -3
- package/dist/chunks/{autocomplete-cs3fwy6lwzlyirpq.js.map → autocomplete-48aq0d244bs2e8zv.js.map} +1 -1
- package/dist/chunks/{checkbox-eren6w2csum1xghg.js → checkbox-hvxfvhtx1qjo2mww.js} +2 -2
- package/dist/chunks/{checkbox-eren6w2csum1xghg.js.map → checkbox-hvxfvhtx1qjo2mww.js.map} +1 -1
- package/dist/chunks/{clipboard-text-f9q753udny1uyxr5.js → clipboard-text-hswydzx3iql369sd.js} +2 -2
- package/dist/chunks/{clipboard-text-f9q753udny1uyxr5.js.map → clipboard-text-hswydzx3iql369sd.js.map} +1 -1
- package/dist/chunks/{code-cz0w1y5z4h29a9eg.js → code-f9v1ikwhekqw274q.js} +4 -4
- package/dist/chunks/{code-cz0w1y5z4h29a9eg.js.map → code-f9v1ikwhekqw274q.js.map} +1 -1
- package/dist/chunks/{collapsible-k8urhi16pg90jvxa.js → collapsible-nlp2jvcyuzxmq28o.js} +12 -11
- package/dist/chunks/{collapsible-k8urhi16pg90jvxa.js.map → collapsible-nlp2jvcyuzxmq28o.js.map} +1 -1
- package/dist/chunks/{combobox-n9qht9h9ag6kh5sn.js → combobox-fq36ye0hstote16x.js} +10 -10
- package/dist/chunks/{combobox-n9qht9h9ag6kh5sn.js.map → combobox-fq36ye0hstote16x.js.map} +1 -1
- package/dist/chunks/{command-palette-gk9m34ymp2b3hfc5.js → command-palette-md65owxt5hv4rt9r.js} +142 -142
- package/dist/chunks/{command-palette-gk9m34ymp2b3hfc5.js.map → command-palette-md65owxt5hv4rt9r.js.map} +1 -1
- package/dist/chunks/{date-range-picker-c9wnx9tbwohai7jy.js → date-range-picker-o8uyril1kogvhoei.js} +19 -19
- package/dist/chunks/{date-range-picker-c9wnx9tbwohai7jy.js.map → date-range-picker-o8uyril1kogvhoei.js.map} +1 -1
- package/dist/chunks/{dialog-94v7wiz7j3in6528.js → dialog-k3f1fbam6nt96k8x.js} +2 -2
- package/dist/chunks/{dialog-94v7wiz7j3in6528.js.map → dialog-k3f1fbam6nt96k8x.js.map} +1 -1
- package/dist/chunks/{empty-kpymw59thjf2ip8g.js → empty-b82oer7npkhtkx7k.js} +6 -6
- package/dist/chunks/{empty-kpymw59thjf2ip8g.js.map → empty-b82oer7npkhtkx7k.js.map} +1 -1
- package/dist/chunks/{field-lnj619xpe8zjd26r.js → field-c0wf94plit2gci59.js} +2 -2
- package/dist/chunks/{field-lnj619xpe8zjd26r.js.map → field-c0wf94plit2gci59.js.map} +1 -1
- package/dist/chunks/{input-area-h8xbqturegdfm1mi.js → input-area-bkyzu6f7gsck479h.js} +3 -3
- package/dist/chunks/{input-area-h8xbqturegdfm1mi.js.map → input-area-bkyzu6f7gsck479h.js.map} +1 -1
- package/dist/chunks/{input-group-dh4pg8p20rh4mdi0.js → input-group-bidweffa0zyg8gt0.js} +3 -3
- package/dist/chunks/{input-group-dh4pg8p20rh4mdi0.js.map → input-group-bidweffa0zyg8gt0.js.map} +1 -1
- package/dist/chunks/{input-lpa5fc75tgrraafv.js → input-ncfowphv81yq7fyy.js} +18 -18
- package/dist/chunks/input-ncfowphv81yq7fyy.js.map +1 -0
- package/dist/chunks/{label-be8m7qzlakzig2sl.js → label-c3h9i3y4wiccelt7.js} +22 -22
- package/dist/chunks/{label-be8m7qzlakzig2sl.js.map → label-c3h9i3y4wiccelt7.js.map} +1 -1
- package/dist/chunks/{layer-card-hvivdirwwnyq88wa.js → layer-card-ikm31xemd70w3lru.js} +2 -2
- package/dist/chunks/{layer-card-hvivdirwwnyq88wa.js.map → layer-card-ikm31xemd70w3lru.js.map} +1 -1
- package/dist/chunks/{meter-bqetlujwg8gm2u7m.js → meter-n34a7yb8c3rim26i.js} +2 -2
- package/dist/chunks/{meter-bqetlujwg8gm2u7m.js.map → meter-n34a7yb8c3rim26i.js.map} +1 -1
- package/dist/chunks/{pagination-ho8zesqfyp6ckmrl.js → pagination-jb3mncivbwsoi1se.js} +40 -40
- package/dist/chunks/{pagination-ho8zesqfyp6ckmrl.js.map → pagination-jb3mncivbwsoi1se.js.map} +1 -1
- package/dist/chunks/{select-kpfbib9l8xrrmzpz.js → select-g261chvosodu22i8.js} +3 -3
- package/dist/chunks/{select-kpfbib9l8xrrmzpz.js.map → select-g261chvosodu22i8.js.map} +1 -1
- package/dist/chunks/{sensitive-input-i1upqytzaw2pus8v.js → sensitive-input-cijagk551mesdtk4.js} +3 -3
- package/dist/chunks/{sensitive-input-i1upqytzaw2pus8v.js.map → sensitive-input-cijagk551mesdtk4.js.map} +1 -1
- package/dist/chunks/{sidebar-kh37grvfxto14ek6.js → sidebar-kb9kykqfgy5yzqwr.js} +4 -4
- package/dist/chunks/{sidebar-kh37grvfxto14ek6.js.map → sidebar-kb9kykqfgy5yzqwr.js.map} +1 -1
- package/dist/chunks/{surface-o63tktyrifcjejyb.js → surface-k0e8mq1x00b7i8r6.js} +2 -2
- package/dist/chunks/{surface-o63tktyrifcjejyb.js.map → surface-k0e8mq1x00b7i8r6.js.map} +1 -1
- package/dist/chunks/{switch-lclhiplr9zqf73tj.js → switch-jdfsr3j3oa1qxegw.js} +2 -2
- package/dist/chunks/{switch-lclhiplr9zqf73tj.js.map → switch-jdfsr3j3oa1qxegw.js.map} +1 -1
- package/dist/chunks/{table-fyy8gl875yyevqs3.js → table-iudje0lva0z68jto.js} +2 -2
- package/dist/chunks/{table-fyy8gl875yyevqs3.js.map → table-iudje0lva0z68jto.js.map} +1 -1
- package/dist/chunks/{tabs-jywwt8ebjqjkux75.js → tabs-mkhf1uemgr3ij0ps.js} +3 -3
- package/dist/chunks/{tabs-jywwt8ebjqjkux75.js.map → tabs-mkhf1uemgr3ij0ps.js.map} +1 -1
- package/dist/chunks/toast-h573o0tc7tefivk2.js.map +1 -1
- package/dist/code.js +30 -30
- package/dist/code.js.map +1 -1
- package/dist/components/autocomplete.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +1 -1
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/input-group.js +1 -1
- package/dist/components/input.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layer-card.js +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sensitive-input.js +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/index.js +27 -27
- package/dist/scripts/theme-generator/config.js +11 -4
- package/dist/scripts/theme-generator/config.js.map +1 -1
- package/dist/src/components/code/code.d.ts +2 -2
- package/dist/src/components/collapsible/collapsible.d.ts +1 -1
- package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts +1 -1
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/styles/theme-kumo.css +8 -8
- package/package.json +1 -1
- package/scripts/component-registry/index.test.ts +42 -0
- package/scripts/component-registry/index.ts +18 -4
- package/scripts/component-registry/metadata.ts +222 -2
- package/scripts/theme-generator/config.ts +9 -9
- package/dist/chunks/input-lpa5fc75tgrraafv.js.map +0 -1
package/dist/code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sources":["../src/code/context.ts","../src/code/provider.tsx","../src/code/use-shiki-highlighter.ts","../src/code/code-highlighted.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport type { HighlighterCore } from \"shiki/core\";\nimport type { SupportedLanguage, CodeHighlightedLabels } from \"./types\";\n\nexport interface ShikiContextValue {\n /** The initialized Shiki highlighter instance */\n highlighter: HighlighterCore | null;\n\n /** True while Shiki is loading */\n isLoading: boolean;\n\n /** Error if initialization failed */\n error: Error | null;\n\n /** Configured languages */\n languages: SupportedLanguage[];\n\n /** Localized labels for UI elements */\n labels: CodeHighlightedLabels;\n}\n\nexport const ShikiContext = createContext<ShikiContextValue | null>(null);\n","\"use client\";\n\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { ShikiContext, type ShikiContextValue } from \"./context\";\nimport type { ShikiProviderProps, SupportedLanguage } from \"./types\";\n\n/**\n * Pre-bundled languages - only these languages are included in the Kumo bundle.\n * Using fine-grained imports from @shikijs/langs to minimize bundle size.\n */\nconst BUNDLED_LANGS: Record<\n SupportedLanguage,\n () => Promise<{ default: unknown }>\n> = {\n javascript: () => import(\"@shikijs/langs/javascript\"),\n typescript: () => import(\"@shikijs/langs/typescript\"),\n jsx: () => import(\"@shikijs/langs/jsx\"),\n tsx: () => import(\"@shikijs/langs/tsx\"),\n json: () => import(\"@shikijs/langs/json\"),\n jsonc: () => import(\"@shikijs/langs/jsonc\"),\n html: () => import(\"@shikijs/langs/html\"),\n css: () => import(\"@shikijs/langs/css\"),\n python: () => import(\"@shikijs/langs/python\"),\n yaml: () => import(\"@shikijs/langs/yaml\"),\n markdown: () => import(\"@shikijs/langs/markdown\"),\n graphql: () => import(\"@shikijs/langs/graphql\"),\n sql: () => import(\"@shikijs/langs/sql\"),\n bash: () => import(\"@shikijs/langs/bash\"),\n shell: () => import(\"@shikijs/langs/shellscript\"),\n diff: () => import(\"@shikijs/langs/diff\"),\n hcl: () => import(\"@shikijs/langs/hcl\"),\n toml: () => import(\"@shikijs/langs/toml\"),\n};\n\n/**\n * Provider component that initializes and manages Shiki highlighting.\n *\n * Shiki is lazy-loaded on first render — no JavaScript is downloaded\n * until this provider mounts. While loading, child components can\n * render code as plain text.\n *\n * Uses hardcoded themes: `github-light` for light mode, `vesper` for dark mode.\n *\n * @example\n * ```tsx\n * import { ShikiProvider, CodeHighlighted } from \"@cloudflare/kumo/code\";\n *\n * function App() {\n * return (\n * <ShikiProvider\n * engine=\"javascript\"\n * languages={['tsx', 'bash', 'json']}\n * >\n * <CodeHighlighted code=\"const x = 1;\" lang=\"tsx\" />\n * </ShikiProvider>\n * );\n * }\n * ```\n */\nconst DEFAULT_LABELS = {\n copy: \"Copy\",\n copied: \"Copied!\",\n};\n\nexport function ShikiProvider({\n engine,\n languages,\n labels,\n children,\n}: ShikiProviderProps): React.JSX.Element {\n const [state, setState] = useState<{\n highlighter: ShikiContextValue[\"highlighter\"];\n isLoading: boolean;\n error: Error | null;\n }>({\n highlighter: null,\n isLoading: true,\n error: null,\n });\n\n useEffect(() => {\n let cancelled = false;\n\n async function initializeShiki() {\n try {\n // Dynamic import of shiki/core — only loads the core, not all languages\n const { createHighlighterCore } = await import(\"shiki/core\");\n\n // Load the appropriate engine\n const engineInstance =\n engine === \"wasm\"\n ? await import(\"shiki/engine/oniguruma\").then((m) =>\n m.createOnigurumaEngine(import(\"shiki/wasm\")),\n )\n : await import(\"shiki/engine/javascript\").then((m) =>\n m.createJavaScriptRegexEngine(),\n );\n\n // Load themes\n const [githubLight, vesper] = await Promise.all([\n import(\"@shikijs/themes/github-light\"),\n import(\"@shikijs/themes/vesper\"),\n ]);\n\n // Load only the requested languages from our bundled set\n const validLanguages = languages.filter(\n (lang): lang is SupportedLanguage => lang in BUNDLED_LANGS,\n );\n\n const langModules = await Promise.all(\n validLanguages.map((lang) => BUNDLED_LANGS[lang]()),\n );\n\n const highlighter = await createHighlighterCore({\n themes: [githubLight.default, vesper.default],\n\n langs: langModules.map((m) => m.default) as any,\n engine: engineInstance,\n });\n\n if (!cancelled) {\n setState({\n highlighter,\n isLoading: false,\n error: null,\n });\n }\n } catch (err) {\n if (!cancelled) {\n setState({\n highlighter: null,\n isLoading: false,\n error:\n err instanceof Error ? err : new Error(\"Failed to load Shiki\"),\n });\n }\n }\n }\n\n void initializeShiki();\n\n return () => {\n cancelled = true;\n };\n }, [engine, languages]);\n\n const mergedLabels = useMemo(\n () => ({ ...DEFAULT_LABELS, ...labels }),\n [labels],\n );\n\n const contextValue = useMemo<ShikiContextValue>(\n () => ({\n highlighter: state.highlighter,\n isLoading: state.isLoading,\n error: state.error,\n languages: languages as SupportedLanguage[],\n labels: mergedLabels,\n }),\n [state.highlighter, state.isLoading, state.error, languages, mergedLabels],\n );\n\n return (\n <ShikiContext.Provider value={contextValue}>\n {children}\n </ShikiContext.Provider>\n );\n}\n\nShikiProvider.displayName = \"ShikiProvider\";\n","\"use client\";\n\nimport { useContext, useCallback } from \"react\";\nimport { ShikiContext } from \"./context\";\nimport type { UseShikiHighlighterResult, SupportedLanguage } from \"./types\";\n\n/**\n * Hook for accessing Shiki highlighting in custom implementations.\n *\n * Must be used within a ShikiProvider.\n *\n * Uses hardcoded themes: `github-light` for light mode, `vesper` for dark mode.\n *\n * @example\n * ```tsx\n * import { useShikiHighlighter } from \"@cloudflare/kumo/code\";\n *\n * function CustomCodeBlock({ code, lang }) {\n * const { highlight, isLoading, isReady, error } = useShikiHighlighter();\n *\n * if (error) {\n * return <div>Failed to load highlighter</div>;\n * }\n *\n * if (isLoading) {\n * return <pre><code>{code}</code></pre>;\n * }\n *\n * const html = highlight(code, lang);\n *\n * // null means highlighting failed — render plain text\n * if (html === null) {\n * return <pre><code>{code}</code></pre>;\n * }\n *\n * return <pre dangerouslySetInnerHTML={{ __html: html }} />;\n * }\n * ```\n */\nexport function useShikiHighlighter(): UseShikiHighlighterResult {\n const context = useContext(ShikiContext);\n\n if (!context) {\n throw new Error(\n \"useShikiHighlighter must be used within a ShikiProvider. \" +\n \"Wrap your app with <ShikiProvider> from '@cloudflare/kumo/code'.\",\n );\n }\n\n const { highlighter, isLoading, error, languages, labels } = context;\n\n const highlight = useCallback(\n (code: string, lang: SupportedLanguage): string | null => {\n if (!highlighter) {\n return null;\n }\n\n // Check if the language is supported\n if (!languages.includes(lang)) {\n console.warn(\n `[Kumo CodeHighlighted] Language \"${lang}\" is not in the ShikiProvider's languages list. ` +\n `Add it to the languages array: languages={[...existing, '${lang}']}. ` +\n `Rendering as plain text.`,\n );\n return null;\n }\n\n try {\n // Use dual theme for light/dark mode support with hardcoded themes\n const html = highlighter.codeToHtml(code, {\n lang,\n themes: {\n light: \"github-light\",\n dark: \"vesper\",\n },\n });\n\n return html;\n } catch (err) {\n console.warn(\n `[Kumo CodeHighlighted] Failed to highlight code with language \"${lang}\":`,\n err,\n );\n return null;\n }\n },\n [highlighter, languages],\n );\n\n return {\n highlight,\n isLoading,\n isReady: !isLoading && highlighter !== null,\n error,\n labels,\n };\n}\n","\"use client\";\n\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { Button } from \"../components/button\";\nimport { useShikiHighlighter } from \"./use-shiki-highlighter\";\nimport type { CodeHighlightedProps } from \"./types\";\n\n/**\n * Syntax-highlighted code block powered by Shiki.\n *\n * Must be used within a ShikiProvider. While Shiki is loading,\n * displays code as plain text (no layout shift, immediately readable).\n *\n * Uses hardcoded themes: `github-light` for light mode, `vesper` for dark mode.\n *\n * @example\n * ```tsx\n * import { ShikiProvider, CodeHighlighted } from \"@cloudflare/kumo/code\";\n *\n * <ShikiProvider\n * engine=\"javascript\"\n * languages={['tsx', 'bash']}\n * >\n * <CodeHighlighted\n * code={`const greeting = \"Hello!\";`}\n * lang=\"tsx\"\n * showLineNumbers\n * showCopyButton\n * />\n * </ShikiProvider>\n * ```\n */\nexport function CodeHighlighted({\n code,\n lang,\n showLineNumbers = false,\n highlightLines,\n showCopyButton = false,\n labels: labelOverrides,\n className,\n}: CodeHighlightedProps): React.JSX.Element {\n const {\n highlight,\n isLoading,\n error,\n labels: providerLabels,\n } = useShikiHighlighter();\n const [copied, setCopied] = useState(false);\n\n // Merge provider labels with component-level overrides\n const labels = useMemo(\n () => ({ ...providerLabels, ...labelOverrides }),\n [providerLabels, labelOverrides],\n );\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch (err) {\n console.error(\"[Kumo CodeHighlighted] Failed to copy to clipboard:\", err);\n }\n }, [code]);\n\n // Get highlighted HTML (or null if not ready/failed)\n const html = highlight(code, lang);\n\n // Count lines for line numbers\n const lineCount = useMemo(() => code.split(\"\\n\").length, [code]);\n\n // Detect single-line code for layout adjustments\n const isSingleLine = lineCount === 1;\n\n // Container styles - use flex layout for single-line with copy button\n // Includes defensive resets (m-0, p-0) to prevent global CSS pollution\n const containerClasses = cn(\n \"group relative m-0 w-full min-w-0 rounded-md border border-kumo-fill bg-kumo-base p-0\",\n showCopyButton && isSingleLine && \"flex items-center\",\n className,\n );\n\n // Copy button - inline for single-line, absolute for multi-line\n // Hidden until hover (or when showing \"Copied!\" feedback)\n const copyButton = showCopyButton ? (\n <div\n className={cn(\n isSingleLine ? \"shrink-0 px-2\" : \"absolute right-2 top-2\",\n !copied && \"opacity-0 transition-opacity group-hover:opacity-100\",\n )}\n >\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={handleCopy}\n aria-label={copied ? labels.copied : labels.copy}\n >\n {copied ? labels.copied : labels.copy}\n </Button>\n </div>\n ) : null;\n\n // Line numbers column\n const lineNumbers =\n showLineNumbers && !isSingleLine ? (\n <div\n className=\"kumo-line-numbers shrink-0 select-none py-4 pr-4 text-right font-mono text-sm opacity-40\"\n aria-hidden=\"true\"\n >\n {Array.from({ length: lineCount }, (_, i) => (\n <div key={i + 1} className=\"leading-relaxed\">\n {i + 1}\n </div>\n ))}\n </div>\n ) : null;\n\n // Error state — still show code, just log the error\n if (error) {\n console.error(\"[Kumo CodeHighlighted] Shiki initialization error:\", error);\n }\n\n // Loading or failed to highlight — show plain text\n if (isLoading || html === null) {\n return (\n <div className={containerClasses}>\n {lineNumbers && (\n <div className=\"flex\">\n {lineNumbers}\n <pre className=\"!m-0 min-w-0 flex-1 overflow-x-auto !p-4 font-mono text-sm leading-relaxed text-kumo-strong\">\n <code className=\"!m-0 !p-0\">{code}</code>\n </pre>\n </div>\n )}\n {!lineNumbers && (\n <pre className=\"!m-0 min-w-0 flex-1 overflow-x-auto !p-4 font-mono text-sm leading-relaxed text-kumo-strong\">\n <code className=\"!m-0 !p-0\">{code}</code>\n </pre>\n )}\n {copyButton}\n </div>\n );\n }\n\n // Highlighted code\n return (\n <div className={containerClasses}>\n {lineNumbers && (\n <div className=\"flex w-full\">\n {lineNumbers}\n <div className=\"min-w-0 flex-1 overflow-x-auto\">\n <div\n className=\"kumo-shiki [&>pre]:!m-0 [&>pre]:!border-0 [&>pre]:!rounded-none [&>pre]:!bg-transparent [&>pre]:!p-4 [&>pre]:font-mono [&>pre]:text-sm [&>pre]:leading-relaxed [&_code]:!m-0 [&_code]:!p-0 [&_code]:!bg-transparent [&_code]:!border-0\"\n dangerouslySetInnerHTML={{\n __html: processHighlightedHtml(html, highlightLines),\n }}\n />\n </div>\n </div>\n )}\n {!lineNumbers && (\n <div className=\"overflow-x-auto\">\n <div\n className=\"kumo-shiki [&>pre]:!m-0 [&>pre]:!border-0 [&>pre]:!rounded-none [&>pre]:!bg-transparent [&>pre]:!p-4 [&>pre]:font-mono [&>pre]:text-sm [&>pre]:leading-relaxed [&_code]:!m-0 [&_code]:!p-0 [&_code]:!bg-transparent [&_code]:!border-0\"\n dangerouslySetInnerHTML={{\n __html: processHighlightedHtml(html, highlightLines),\n }}\n />\n </div>\n )}\n {copyButton}\n </div>\n );\n}\n\nCodeHighlighted.displayName = \"CodeHighlighted\";\n\n/**\n * Process Shiki's HTML output to add line highlighting classes.\n * Does NOT modify Shiki's token structure - only adds classes to line spans.\n */\nfunction processHighlightedHtml(\n html: string,\n highlightLines?: number[],\n): string {\n // Line numbers are not yet supported - would require more complex approach\n // For now, only handle line highlighting which just adds a class\n\n if (!highlightLines?.length) {\n return html;\n }\n\n const highlightSet = new Set(highlightLines);\n let lineNumber = 0;\n\n // Only add the highlight class to lines, don't restructure the HTML\n return html.replace(/<span class=\"line\">/g, () => {\n lineNumber++;\n const isHighlighted = highlightSet.has(lineNumber);\n return isHighlighted\n ? '<span class=\"line line-highlighted\">'\n : '<span class=\"line\">';\n });\n}\n"],"names":["ShikiContext","createContext","BUNDLED_LANGS","n","DEFAULT_LABELS","ShikiProvider","engine","languages","labels","children","state","setState","useState","useEffect","cancelled","initializeShiki","createHighlighterCore","engineInstance","m","githubLight","vesper","validLanguages","lang","langModules","highlighter","err","mergedLabels","useMemo","contextValue","useShikiHighlighter","context","useContext","isLoading","error","useCallback","code","CodeHighlighted","showLineNumbers","highlightLines","showCopyButton","labelOverrides","className","highlight","providerLabels","copied","setCopied","handleCopy","html","lineCount","isSingleLine","containerClasses","cn","copyButton","jsx","Button","lineNumbers","_","i","jsxs","processHighlightedHtml","highlightSet","lineNumber"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code.js","sources":["../src/code/context.ts","../src/code/provider.tsx","../src/code/use-shiki-highlighter.ts","../src/code/code-highlighted.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport type { HighlighterCore } from \"shiki/core\";\nimport type { SupportedLanguage, CodeHighlightedLabels } from \"./types\";\n\nexport interface ShikiContextValue {\n /** The initialized Shiki highlighter instance */\n highlighter: HighlighterCore | null;\n\n /** True while Shiki is loading */\n isLoading: boolean;\n\n /** Error if initialization failed */\n error: Error | null;\n\n /** Configured languages */\n languages: SupportedLanguage[];\n\n /** Localized labels for UI elements */\n labels: CodeHighlightedLabels;\n}\n\nexport const ShikiContext = createContext<ShikiContextValue | null>(null);\n","\"use client\";\n\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { ShikiContext, type ShikiContextValue } from \"./context\";\nimport type { ShikiProviderProps, SupportedLanguage } from \"./types\";\n\n/**\n * Pre-bundled languages - only these languages are included in the Kumo bundle.\n * Using fine-grained imports from @shikijs/langs to minimize bundle size.\n */\nconst BUNDLED_LANGS: Record<\n SupportedLanguage,\n () => Promise<{ default: unknown }>\n> = {\n javascript: () => import(\"@shikijs/langs/javascript\"),\n typescript: () => import(\"@shikijs/langs/typescript\"),\n jsx: () => import(\"@shikijs/langs/jsx\"),\n tsx: () => import(\"@shikijs/langs/tsx\"),\n json: () => import(\"@shikijs/langs/json\"),\n jsonc: () => import(\"@shikijs/langs/jsonc\"),\n html: () => import(\"@shikijs/langs/html\"),\n css: () => import(\"@shikijs/langs/css\"),\n python: () => import(\"@shikijs/langs/python\"),\n yaml: () => import(\"@shikijs/langs/yaml\"),\n markdown: () => import(\"@shikijs/langs/markdown\"),\n graphql: () => import(\"@shikijs/langs/graphql\"),\n sql: () => import(\"@shikijs/langs/sql\"),\n bash: () => import(\"@shikijs/langs/bash\"),\n shell: () => import(\"@shikijs/langs/shellscript\"),\n diff: () => import(\"@shikijs/langs/diff\"),\n hcl: () => import(\"@shikijs/langs/hcl\"),\n toml: () => import(\"@shikijs/langs/toml\"),\n};\n\n/**\n * Provider component that initializes and manages Shiki highlighting.\n *\n * Shiki is lazy-loaded on first render — no JavaScript is downloaded\n * until this provider mounts. While loading, child components can\n * render code as plain text.\n *\n * Uses hardcoded themes: `github-light` for light mode, `vesper` for dark mode.\n *\n * @example\n * ```tsx\n * import { ShikiProvider, CodeHighlighted } from \"@cloudflare/kumo/code\";\n *\n * function App() {\n * return (\n * <ShikiProvider\n * engine=\"javascript\"\n * languages={['tsx', 'bash', 'json']}\n * >\n * <CodeHighlighted code=\"const x = 1;\" lang=\"tsx\" />\n * </ShikiProvider>\n * );\n * }\n * ```\n */\nconst DEFAULT_LABELS = {\n copy: \"Copy\",\n copied: \"Copied!\",\n};\n\nexport function ShikiProvider({\n engine,\n languages,\n labels,\n children,\n}: ShikiProviderProps): React.JSX.Element {\n const [state, setState] = useState<{\n highlighter: ShikiContextValue[\"highlighter\"];\n isLoading: boolean;\n error: Error | null;\n }>({\n highlighter: null,\n isLoading: true,\n error: null,\n });\n\n useEffect(() => {\n let cancelled = false;\n\n async function initializeShiki() {\n try {\n // Dynamic import of shiki/core — only loads the core, not all languages\n const { createHighlighterCore } = await import(\"shiki/core\");\n\n // Load the appropriate engine\n const engineInstance =\n engine === \"wasm\"\n ? await import(\"shiki/engine/oniguruma\").then((m) =>\n m.createOnigurumaEngine(import(\"shiki/wasm\")),\n )\n : await import(\"shiki/engine/javascript\").then((m) =>\n m.createJavaScriptRegexEngine(),\n );\n\n // Load themes\n const [githubLight, vesper] = await Promise.all([\n import(\"@shikijs/themes/github-light\"),\n import(\"@shikijs/themes/vesper\"),\n ]);\n\n // Load only the requested languages from our bundled set\n const validLanguages = languages.filter(\n (lang): lang is SupportedLanguage => lang in BUNDLED_LANGS,\n );\n\n const langModules = await Promise.all(\n validLanguages.map((lang) => BUNDLED_LANGS[lang]()),\n );\n\n const highlighter = await createHighlighterCore({\n themes: [githubLight.default, vesper.default],\n\n langs: langModules.map((m) => m.default) as any,\n engine: engineInstance,\n });\n\n if (!cancelled) {\n setState({\n highlighter,\n isLoading: false,\n error: null,\n });\n }\n } catch (err) {\n if (!cancelled) {\n setState({\n highlighter: null,\n isLoading: false,\n error:\n err instanceof Error ? err : new Error(\"Failed to load Shiki\"),\n });\n }\n }\n }\n\n void initializeShiki();\n\n return () => {\n cancelled = true;\n };\n }, [engine, languages]);\n\n const mergedLabels = useMemo(\n () => ({ ...DEFAULT_LABELS, ...labels }),\n [labels],\n );\n\n const contextValue = useMemo<ShikiContextValue>(\n () => ({\n highlighter: state.highlighter,\n isLoading: state.isLoading,\n error: state.error,\n languages: languages as SupportedLanguage[],\n labels: mergedLabels,\n }),\n [state.highlighter, state.isLoading, state.error, languages, mergedLabels],\n );\n\n return (\n <ShikiContext.Provider value={contextValue}>\n {children}\n </ShikiContext.Provider>\n );\n}\n\nShikiProvider.displayName = \"ShikiProvider\";\n","\"use client\";\n\nimport { useContext, useCallback } from \"react\";\nimport { ShikiContext } from \"./context\";\nimport type { UseShikiHighlighterResult, SupportedLanguage } from \"./types\";\n\n/**\n * Hook for accessing Shiki highlighting in custom implementations.\n *\n * Must be used within a ShikiProvider.\n *\n * Uses hardcoded themes: `github-light` for light mode, `vesper` for dark mode.\n *\n * @example\n * ```tsx\n * import { useShikiHighlighter } from \"@cloudflare/kumo/code\";\n *\n * function CustomCodeBlock({ code, lang }) {\n * const { highlight, isLoading, isReady, error } = useShikiHighlighter();\n *\n * if (error) {\n * return <div>Failed to load highlighter</div>;\n * }\n *\n * if (isLoading) {\n * return <pre><code>{code}</code></pre>;\n * }\n *\n * const html = highlight(code, lang);\n *\n * // null means highlighting failed — render plain text\n * if (html === null) {\n * return <pre><code>{code}</code></pre>;\n * }\n *\n * return <pre dangerouslySetInnerHTML={{ __html: html }} />;\n * }\n * ```\n */\nexport function useShikiHighlighter(): UseShikiHighlighterResult {\n const context = useContext(ShikiContext);\n\n if (!context) {\n throw new Error(\n \"useShikiHighlighter must be used within a ShikiProvider. \" +\n \"Wrap your app with <ShikiProvider> from '@cloudflare/kumo/code'.\",\n );\n }\n\n const { highlighter, isLoading, error, languages, labels } = context;\n\n const highlight = useCallback(\n (code: string, lang: SupportedLanguage): string | null => {\n if (!highlighter) {\n return null;\n }\n\n // Check if the language is supported\n if (!languages.includes(lang)) {\n console.warn(\n `[Kumo CodeHighlighted] Language \"${lang}\" is not in the ShikiProvider's languages list. ` +\n `Add it to the languages array: languages={[...existing, '${lang}']}. ` +\n `Rendering as plain text.`,\n );\n return null;\n }\n\n try {\n // Use dual theme for light/dark mode support with hardcoded themes\n const html = highlighter.codeToHtml(code, {\n lang,\n themes: {\n light: \"github-light\",\n dark: \"vesper\",\n },\n });\n\n return html;\n } catch (err) {\n console.warn(\n `[Kumo CodeHighlighted] Failed to highlight code with language \"${lang}\":`,\n err,\n );\n return null;\n }\n },\n [highlighter, languages],\n );\n\n return {\n highlight,\n isLoading,\n isReady: !isLoading && highlighter !== null,\n error,\n labels,\n };\n}\n","\"use client\";\n\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { Button } from \"../components/button\";\nimport { useShikiHighlighter } from \"./use-shiki-highlighter\";\nimport type { CodeHighlightedProps } from \"./types\";\n\n/**\n * Syntax-highlighted code block powered by Shiki.\n *\n * Must be used within a ShikiProvider. While Shiki is loading,\n * displays code as plain text (no layout shift, immediately readable).\n *\n * Uses hardcoded themes: `github-light` for light mode, `vesper` for dark mode.\n *\n * @example\n * ```tsx\n * import { ShikiProvider, CodeHighlighted } from \"@cloudflare/kumo/code\";\n *\n * <ShikiProvider\n * engine=\"javascript\"\n * languages={['tsx', 'bash']}\n * >\n * <CodeHighlighted\n * code={`const greeting = \"Hello!\";`}\n * lang=\"tsx\"\n * showLineNumbers\n * showCopyButton\n * />\n * </ShikiProvider>\n * ```\n */\nexport function CodeHighlighted({\n code,\n lang,\n showLineNumbers = false,\n highlightLines,\n showCopyButton = false,\n labels: labelOverrides,\n className,\n}: CodeHighlightedProps): React.JSX.Element {\n const {\n highlight,\n isLoading,\n error,\n labels: providerLabels,\n } = useShikiHighlighter();\n const [copied, setCopied] = useState(false);\n\n // Merge provider labels with component-level overrides\n const labels = useMemo(\n () => ({ ...providerLabels, ...labelOverrides }),\n [providerLabels, labelOverrides],\n );\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch (err) {\n console.error(\"[Kumo CodeHighlighted] Failed to copy to clipboard:\", err);\n }\n }, [code]);\n\n // Get highlighted HTML (or null if not ready/failed)\n const html = highlight(code, lang);\n\n // Count lines for line numbers\n const lineCount = useMemo(() => code.split(\"\\n\").length, [code]);\n\n // Detect single-line code for layout adjustments\n const isSingleLine = lineCount === 1;\n\n // Container styles - use flex layout for single-line with copy button\n // Includes defensive resets (m-0, p-0) to prevent global CSS pollution\n const containerClasses = cn(\n \"group relative m-0 w-full min-w-0 rounded-md border border-kumo-fill bg-kumo-base p-0\",\n showCopyButton && isSingleLine && \"flex items-center\",\n className,\n );\n\n // Copy button - inline for single-line, absolute for multi-line\n // Hidden until hover (or when showing \"Copied!\" feedback)\n const copyButton = showCopyButton ? (\n <div\n className={cn(\n isSingleLine ? \"shrink-0 px-2\" : \"absolute right-2 top-2\",\n !copied && \"opacity-0 transition-opacity group-hover:opacity-100\",\n )}\n >\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={handleCopy}\n aria-label={copied ? labels.copied : labels.copy}\n >\n {copied ? labels.copied : labels.copy}\n </Button>\n </div>\n ) : null;\n\n // Line numbers column\n const lineNumbers =\n showLineNumbers && !isSingleLine ? (\n <div\n className=\"kumo-line-numbers shrink-0 select-none py-4 pr-4 text-right font-mono text-sm opacity-40\"\n aria-hidden=\"true\"\n >\n {Array.from({ length: lineCount }, (_, i) => (\n <div key={i + 1} className=\"leading-relaxed\">\n {i + 1}\n </div>\n ))}\n </div>\n ) : null;\n\n // Error state — still show code, just log the error\n if (error) {\n console.error(\"[Kumo CodeHighlighted] Shiki initialization error:\", error);\n }\n\n // Loading or failed to highlight — show plain text\n if (isLoading || html === null) {\n return (\n <div className={containerClasses}>\n {lineNumbers && (\n <div className=\"flex\">\n {lineNumbers}\n <pre className=\"!m-0 min-w-0 flex-1 overflow-x-auto !p-4 font-mono text-sm leading-relaxed text-kumo-subtle\">\n <code className=\"!m-0 !p-0\">{code}</code>\n </pre>\n </div>\n )}\n {!lineNumbers && (\n <pre className=\"!m-0 min-w-0 flex-1 overflow-x-auto !p-4 font-mono text-sm leading-relaxed text-kumo-subtle\">\n <code className=\"!m-0 !p-0\">{code}</code>\n </pre>\n )}\n {copyButton}\n </div>\n );\n }\n\n // Highlighted code\n return (\n <div className={containerClasses}>\n {lineNumbers && (\n <div className=\"flex w-full\">\n {lineNumbers}\n <div className=\"min-w-0 flex-1 overflow-x-auto\">\n <div\n className=\"kumo-shiki [&>pre]:!m-0 [&>pre]:!border-0 [&>pre]:!rounded-none [&>pre]:!bg-transparent [&>pre]:!p-4 [&>pre]:font-mono [&>pre]:text-sm [&>pre]:leading-relaxed [&_code]:!m-0 [&_code]:!p-0 [&_code]:!bg-transparent [&_code]:!border-0\"\n dangerouslySetInnerHTML={{\n __html: processHighlightedHtml(html, highlightLines),\n }}\n />\n </div>\n </div>\n )}\n {!lineNumbers && (\n <div className=\"overflow-x-auto\">\n <div\n className=\"kumo-shiki [&>pre]:!m-0 [&>pre]:!border-0 [&>pre]:!rounded-none [&>pre]:!bg-transparent [&>pre]:!p-4 [&>pre]:font-mono [&>pre]:text-sm [&>pre]:leading-relaxed [&_code]:!m-0 [&_code]:!p-0 [&_code]:!bg-transparent [&_code]:!border-0\"\n dangerouslySetInnerHTML={{\n __html: processHighlightedHtml(html, highlightLines),\n }}\n />\n </div>\n )}\n {copyButton}\n </div>\n );\n}\n\nCodeHighlighted.displayName = \"CodeHighlighted\";\n\n/**\n * Process Shiki's HTML output to add line highlighting classes.\n * Does NOT modify Shiki's token structure - only adds classes to line spans.\n */\nfunction processHighlightedHtml(\n html: string,\n highlightLines?: number[],\n): string {\n // Line numbers are not yet supported - would require more complex approach\n // For now, only handle line highlighting which just adds a class\n\n if (!highlightLines?.length) {\n return html;\n }\n\n const highlightSet = new Set(highlightLines);\n let lineNumber = 0;\n\n // Only add the highlight class to lines, don't restructure the HTML\n return html.replace(/<span class=\"line\">/g, () => {\n lineNumber++;\n const isHighlighted = highlightSet.has(lineNumber);\n return isHighlighted\n ? '<span class=\"line line-highlighted\">'\n : '<span class=\"line\">';\n });\n}\n"],"names":["ShikiContext","createContext","BUNDLED_LANGS","n","DEFAULT_LABELS","ShikiProvider","engine","languages","labels","children","state","setState","useState","useEffect","cancelled","initializeShiki","createHighlighterCore","engineInstance","m","githubLight","vesper","validLanguages","lang","langModules","highlighter","err","mergedLabels","useMemo","contextValue","useShikiHighlighter","context","useContext","isLoading","error","useCallback","code","CodeHighlighted","showLineNumbers","highlightLines","showCopyButton","labelOverrides","className","highlight","providerLabels","copied","setCopied","handleCopy","html","lineCount","isSingleLine","containerClasses","cn","copyButton","jsx","Button","lineNumbers","_","i","jsxs","processHighlightedHtml","highlightSet","lineNumber"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { A as e, b as t, K as T, a as o } from "../chunks/autocomplete-
|
|
2
|
+
import { A as e, b as t, K as T, a as o } from "../chunks/autocomplete-48aq0d244bs2e8zv.js";
|
|
3
3
|
export {
|
|
4
4
|
e as Autocomplete,
|
|
5
5
|
t as KUMO_AUTOCOMPLETE_DEFAULT_VARIANTS,
|
package/dist/components/code.js
CHANGED
package/dist/components/empty.js
CHANGED
package/dist/components/field.js
CHANGED
package/dist/components/input.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { I as t, i as I } from "../chunks/input-
|
|
3
|
-
import { I as e, T as p } from "../chunks/input-area-
|
|
4
|
-
import { I as T, a as U, K as _ } from "../chunks/input-group-
|
|
2
|
+
import { I as t, i as I } from "../chunks/input-ncfowphv81yq7fyy.js";
|
|
3
|
+
import { I as e, T as p } from "../chunks/input-area-bkyzu6f7gsck479h.js";
|
|
4
|
+
import { I as T, a as U, K as _ } from "../chunks/input-group-bidweffa0zyg8gt0.js";
|
|
5
5
|
export {
|
|
6
6
|
t as Input,
|
|
7
7
|
e as InputArea,
|
package/dist/components/label.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { b as e, K as l, L as A, a as L, l as t } from "../chunks/label-
|
|
2
|
+
import { b as e, K as l, L as A, a as L, l as t } from "../chunks/label-c3h9i3y4wiccelt7.js";
|
|
3
3
|
export {
|
|
4
4
|
e as KUMO_LABEL_DEFAULT_VARIANTS,
|
|
5
5
|
l as KUMO_LABEL_VARIANTS,
|
package/dist/components/meter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { a as T, K as _, S as N } from "../chunks/sensitive-input-
|
|
2
|
+
import { a as T, K as _, S as N } from "../chunks/sensitive-input-cijagk551mesdtk4.js";
|
|
3
3
|
export {
|
|
4
4
|
T as KUMO_SENSITIVE_INPUT_DEFAULT_VARIANTS,
|
|
5
5
|
_ as KUMO_SENSITIVE_INPUT_VARIANTS,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { A as r, B as i, K as S, S as s, w as b, y as d, x as n, d as o, e as u, f as t, h as l, g as M, c as p, r as A, i as I, l as R, m as B, k as C, v as _, j as g, n as T, p as m, o as D, a as E, t as G, u as K, b as U, q as c, s as v, z as L } from "../chunks/sidebar-
|
|
2
|
+
import { A as r, B as i, K as S, S as s, w as b, y as d, x as n, d as o, e as u, f as t, h as l, g as M, c as p, r as A, i as I, l as R, m as B, k as C, v as _, j as g, n as T, p as m, o as D, a as E, t as G, u as K, b as U, q as c, s as v, z as L } from "../chunks/sidebar-kb9kykqfgy5yzqwr.js";
|
|
3
3
|
export {
|
|
4
4
|
r as KUMO_SIDEBAR_DEFAULT_VARIANTS,
|
|
5
5
|
i as KUMO_SIDEBAR_STYLING,
|
package/dist/components/table.js
CHANGED
package/dist/components/tabs.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -4,49 +4,49 @@ import { B as O } from "./chunks/banner-eiwcnk7ts21s3bnb.js";
|
|
|
4
4
|
import { a as Q } from "./chunks/banner-eiwcnk7ts21s3bnb.js";
|
|
5
5
|
import { B as n } from "./chunks/button-6by9ntsa3nj553mq.js";
|
|
6
6
|
import { L as aa, R as ea, b as oa } from "./chunks/button-6by9ntsa3nj553mq.js";
|
|
7
|
-
import { D as sa } from "./chunks/date-range-picker-
|
|
8
|
-
import { C as ia } from "./chunks/checkbox-
|
|
9
|
-
import { C as na } from "./chunks/clipboard-text-
|
|
10
|
-
import { C as ma, a as pa } from "./chunks/code-
|
|
11
|
-
import { C as Ta } from "./chunks/combobox-
|
|
12
|
-
import { a as M, D as U, c as N, e as u } from "./chunks/dialog-
|
|
13
|
-
import { d as Aa, b as ba } from "./chunks/dialog-
|
|
7
|
+
import { D as sa } from "./chunks/date-range-picker-o8uyril1kogvhoei.js";
|
|
8
|
+
import { C as ia } from "./chunks/checkbox-hvxfvhtx1qjo2mww.js";
|
|
9
|
+
import { C as na } from "./chunks/clipboard-text-hswydzx3iql369sd.js";
|
|
10
|
+
import { C as ma, a as pa } from "./chunks/code-f9v1ikwhekqw274q.js";
|
|
11
|
+
import { C as Ta } from "./chunks/combobox-fq36ye0hstote16x.js";
|
|
12
|
+
import { a as M, D as U, c as N, e as u } from "./chunks/dialog-k3f1fbam6nt96k8x.js";
|
|
13
|
+
import { d as Aa, b as ba } from "./chunks/dialog-k3f1fbam6nt96k8x.js";
|
|
14
14
|
import { D as Sa } from "./chunks/dropdown-zbax0zowy6m9zhmt.js";
|
|
15
|
-
import { C as _a } from "./chunks/collapsible-
|
|
16
|
-
import { F as Ia, a as La, K as Ra, f as Ea } from "./chunks/field-
|
|
17
|
-
import { b as Ma, K as Ua, L as Na, a as Ka, l as ga } from "./chunks/label-
|
|
18
|
-
import { I as K } from "./chunks/input-
|
|
19
|
-
import { i as Da } from "./chunks/input-
|
|
20
|
-
import { I as va, T as Pa } from "./chunks/input-area-
|
|
21
|
-
import { I as ka } from "./chunks/input-group-
|
|
22
|
-
import { L as ya } from "./chunks/layer-card-
|
|
15
|
+
import { C as _a } from "./chunks/collapsible-nlp2jvcyuzxmq28o.js";
|
|
16
|
+
import { F as Ia, a as La, K as Ra, f as Ea } from "./chunks/field-c0wf94plit2gci59.js";
|
|
17
|
+
import { b as Ma, K as Ua, L as Na, a as Ka, l as ga } from "./chunks/label-c3h9i3y4wiccelt7.js";
|
|
18
|
+
import { I as K } from "./chunks/input-ncfowphv81yq7fyy.js";
|
|
19
|
+
import { i as Da } from "./chunks/input-ncfowphv81yq7fyy.js";
|
|
20
|
+
import { I as va, T as Pa } from "./chunks/input-area-bkyzu6f7gsck479h.js";
|
|
21
|
+
import { I as ka } from "./chunks/input-group-bidweffa0zyg8gt0.js";
|
|
22
|
+
import { L as ya } from "./chunks/layer-card-ikm31xemd70w3lru.js";
|
|
23
23
|
import { L as Ga } from "./chunks/loader-hr2w7cpqeev3p3vl.js";
|
|
24
24
|
import { S as ja } from "./chunks/skeleton-line-epxenksfesr2fkcv.js";
|
|
25
25
|
import { M as qa, u as Ha } from "./chunks/menubar-hwev159bm4rw9ixk.js";
|
|
26
|
-
import { M as Xa } from "./chunks/meter-
|
|
27
|
-
import { P as Ja } from "./chunks/pagination-
|
|
28
|
-
import { S as Za } from "./chunks/select-
|
|
29
|
-
import { S as ee } from "./chunks/surface-
|
|
30
|
-
import { S as re } from "./chunks/switch-
|
|
31
|
-
import { T as te } from "./chunks/tabs-
|
|
32
|
-
import { T as le } from "./chunks/table-
|
|
26
|
+
import { M as Xa } from "./chunks/meter-n34a7yb8c3rim26i.js";
|
|
27
|
+
import { P as Ja } from "./chunks/pagination-jb3mncivbwsoi1se.js";
|
|
28
|
+
import { S as Za } from "./chunks/select-g261chvosodu22i8.js";
|
|
29
|
+
import { S as ee } from "./chunks/surface-k0e8mq1x00b7i8r6.js";
|
|
30
|
+
import { S as re } from "./chunks/switch-jdfsr3j3oa1qxegw.js";
|
|
31
|
+
import { T as te } from "./chunks/tabs-mkhf1uemgr3ij0ps.js";
|
|
32
|
+
import { T as le } from "./chunks/table-iudje0lva0z68jto.js";
|
|
33
33
|
import { T as de } from "./chunks/text-f7t467waymhb30sx.js";
|
|
34
34
|
import { a as pe, T as fe, u as Te } from "./chunks/toast-h573o0tc7tefivk2.js";
|
|
35
35
|
import { T as Ae, a as be } from "./chunks/tooltip-odudhkxe282wxinq.js";
|
|
36
36
|
import { g as Se, K as xe, P as _e } from "./chunks/popover-iayd9ya5yhujz6ve.js";
|
|
37
|
-
import { a as Ie, K as Le, S as Re } from "./chunks/sensitive-input-
|
|
37
|
+
import { a as Ie, K as Le, S as Re } from "./chunks/sensitive-input-cijagk551mesdtk4.js";
|
|
38
38
|
import { b as Oe, K as Me, R as Ue, a as Ne, r as Ke } from "./chunks/radio-datzh3pilz8ojak1.js";
|
|
39
|
-
import { C as he, a as De, K as Ve } from "./chunks/command-palette-
|
|
39
|
+
import { C as he, a as De, K as Ve } from "./chunks/command-palette-md65owxt5hv4rt9r.js";
|
|
40
40
|
import { a as Pe, K as Be, L as ke, l as Fe } from "./chunks/link-kt74pxkud4olmcer.js";
|
|
41
41
|
import { B as we } from "./chunks/breadcrumbs-cxcwf2l1ki3ffg5d.js";
|
|
42
|
-
import { E as ze } from "./chunks/empty-
|
|
42
|
+
import { E as ze } from "./chunks/empty-b82oer7npkhtkx7k.js";
|
|
43
43
|
import { G as $e, a as qe, c as He, K as We, b as Xe, g as Ye } from "./chunks/grid-hj1ylz16p7g5uelh.js";
|
|
44
44
|
import { C as Qe, a as Ze, K as ao, P as eo, g as oo } from "./chunks/cloudflare-logo-pbavoe1wu8nr5c4n.js";
|
|
45
45
|
import { D as so } from "./chunks/date-picker-mjocqqbggb76n8rt.js";
|
|
46
46
|
import { Flow as io } from "./components/flow.js";
|
|
47
47
|
import { C as no, a as mo, b as po, T as fo } from "./chunks/Legend-ibjxhfm9pn2vrb6f.js";
|
|
48
|
-
import { A as co, b as Ao, K as bo, a as uo } from "./chunks/autocomplete-
|
|
49
|
-
import { A as xo, B as _o, K as Co, S as Io, w as Lo, y as Ro, x as Eo, d as Oo, e as Mo, f as Uo, h as No, g as Ko, c as go, r as ho, i as Do, l as Vo, m as vo, k as Po, v as Bo, j as ko, n as Fo, p as yo, o as wo, a as Go, t as zo, u as jo, b as $o, q as qo, s as Ho, z as Wo } from "./chunks/sidebar-
|
|
48
|
+
import { A as co, b as Ao, K as bo, a as uo } from "./chunks/autocomplete-48aq0d244bs2e8zv.js";
|
|
49
|
+
import { A as xo, B as _o, K as Co, S as Io, w as Lo, y as Ro, x as Eo, d as Oo, e as Mo, f as Uo, h as No, g as Ko, c as go, r as ho, i as Do, l as Vo, m as vo, k as Po, v as Bo, j as ko, n as Fo, p as yo, o as wo, a as Go, t as zo, u as jo, b as $o, q as qo, s as Ho, z as Wo } from "./chunks/sidebar-kb9kykqfgy5yzqwr.js";
|
|
50
50
|
import { a as Yo, K as Jo, T as Qo } from "./chunks/table-of-contents-fzyv7uhnnyr13dqu.js";
|
|
51
51
|
import { c as g } from "./chunks/cn-ct4n7r74mh8y0f48.js";
|
|
52
52
|
import { s as ar } from "./chunks/cn-ct4n7r74mh8y0f48.js";
|
|
@@ -28,8 +28,10 @@ const o = {
|
|
|
28
28
|
newName: "",
|
|
29
29
|
theme: {
|
|
30
30
|
kumo: {
|
|
31
|
-
light: "var(--color-neutral-
|
|
32
|
-
|
|
31
|
+
light: "var(--color-neutral-950, oklch(14.5% 0 0))",
|
|
32
|
+
// darker than default
|
|
33
|
+
dark: "var(--color-neutral-50, oklch(98.5% 0 0))"
|
|
34
|
+
// lighter than default
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
},
|
|
@@ -38,7 +40,9 @@ const o = {
|
|
|
38
40
|
theme: {
|
|
39
41
|
kumo: {
|
|
40
42
|
light: "var(--color-neutral-500, oklch(55.6% 0 0))",
|
|
43
|
+
// lighter than default
|
|
41
44
|
dark: "var(--color-neutral-400, oklch(70.8% 0 0))"
|
|
45
|
+
// darker than default
|
|
42
46
|
}
|
|
43
47
|
}
|
|
44
48
|
},
|
|
@@ -46,12 +50,15 @@ const o = {
|
|
|
46
50
|
newName: "",
|
|
47
51
|
theme: {
|
|
48
52
|
kumo: {
|
|
49
|
-
light: "var(--color-neutral-
|
|
50
|
-
|
|
53
|
+
light: "var(--color-neutral-300, oklch(87% 0 0))",
|
|
54
|
+
// lighter than subtle
|
|
55
|
+
dark: "var(--color-neutral-600, oklch(43.9% 0 0))"
|
|
56
|
+
// darker than subtle
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
59
|
},
|
|
54
60
|
"kumo-placeholder": {
|
|
61
|
+
// in between subtle and inactive
|
|
55
62
|
newName: "",
|
|
56
63
|
theme: {
|
|
57
64
|
kumo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../scripts/theme-generator/config.ts"],"sourcesContent":["/**\n * Kumo Theme Configuration\n *\n * Single source of truth for all semantic color tokens and typography.\n * This config is used to generate:\n * - theme-kumo.css (base theme)\n * - theme-fedramp.css (fedramp overrides)\n * - Any future theme files\n *\n * Token naming:\n * - Key = current token name used in codebase\n * - newName = future name (empty string = no migration planned)\n */\n\nimport type { ThemeConfig } from \"./types.js\";\n\nexport const THEME_CONFIG: ThemeConfig = {\n /**\n * Text color tokens\n * Used with: text-{token}\n * CSS variable: --text-color-{token}\n */\n text: {\n \"kumo-default\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-900, oklch(21% 0.006 285.885))\",\n dark: \"var(--color-neutral-100, oklch(97% 0 0))\",\n },\n },\n },\n \"kumo-inverse\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-100, oklch(97% 0 0))\",\n dark: \"var(--color-neutral-900, oklch(20.5% 0 0))\",\n },\n },\n },\n \"kumo-strong\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-600, oklch(43.9% 0 0))\",\n dark: \"var(--color-neutral-400, oklch(70.8% 0 0))\",\n },\n },\n },\n \"kumo-subtle\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-500, oklch(55.6% 0 0))\",\n dark: \"var(--color-neutral-400, oklch(70.8% 0 0))\",\n },\n },\n },\n \"kumo-inactive\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-400, oklch(70.8% 0 0))\",\n dark: \"var(--color-neutral-600, oklch(70.8% 0 0))\",\n },\n },\n },\n \"kumo-placeholder\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-400, oklch(70.8% 0 0))\",\n dark: \"var(--color-neutral-500, oklch(55.6% 0 0))\",\n },\n },\n },\n \"kumo-brand\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"#f6821f\",\n dark: \"#f6821f\",\n },\n },\n },\n \"kumo-link\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-800, oklch(42.4% 0.199 265.638))\",\n dark: \"var(--color-blue-400, oklch(70.7% 0.165 254.624))\",\n },\n },\n },\n \"kumo-info\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-800, oklch(42.4% 0.199 265.638))\",\n dark: \"var(--color-blue-400, oklch(70.7% 0.165 254.624))\",\n },\n },\n },\n \"kumo-success\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-emerald-800, oklch(43.2% 0.095 166.913))\",\n dark: \"var(--color-emerald-200, oklch(90.5% 0.093 164.15))\",\n },\n },\n },\n \"kumo-danger\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-red-700, oklch(50.5% 0.213 27.518))\",\n dark: \"var(--color-red-400, oklch(70.4% 0.191 22.216))\",\n },\n },\n },\n \"kumo-warning\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-yellow-800, oklch(47.6% 0.114 61.907))\",\n dark: \"var(--color-yellow-400, oklch(85.2% 0.199 91.936))\",\n },\n },\n },\n\n /*\n * Badge text color tokens\n * Subtle variants need colored text; inverted needs flipping text\n */\n \"kumo-badge-orange-subtle\": {\n newName: \"\",\n description: \"Text color for subtle orange badge\",\n theme: {\n kumo: {\n light: \"var(--color-orange-800, oklch(47% 0.157 37.304))\",\n dark: \"var(--color-orange-200, oklch(90.1% 0.076 70.697))\",\n },\n },\n },\n \"kumo-badge-teal-subtle\": {\n newName: \"\",\n description: \"Text color for subtle teal badge\",\n theme: {\n kumo: {\n light: \"var(--color-teal-800, oklch(43.7% 0.078 188.216))\",\n dark: \"var(--color-teal-200, oklch(91% 0.096 180.426))\",\n },\n },\n },\n \"kumo-badge-neutral-subtle\": {\n newName: \"\",\n description: \"Text color for subtle neutral badge\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n dark: \"var(--color-neutral-200, oklch(92.2% 0 0))\",\n },\n },\n },\n \"kumo-badge-inverted\": {\n newName: \"\",\n description:\n \"Text color for inverted badge (white in light, black in dark)\",\n theme: {\n kumo: {\n light: \"var(--color-white, #fff)\",\n dark: \"var(--color-black, #000)\",\n },\n },\n },\n },\n\n /**\n * Color tokens\n * Used with: bg-{token}, border-{token}, ring-{token}, etc.\n * CSS variable: --color-{token}\n */\n color: {\n \"kumo-canvas\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-25, oklch(98.75% 0 0))\",\n dark: \"var(--color-kumo-neutral-1000, oklch(10% 0 0))\",\n },\n fedramp: {\n light: \"#5b697c\",\n dark: \"#5b697c\",\n },\n },\n },\n \"kumo-elevated\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-75, oklch(98% 0 0))\",\n dark: \"var(--color-kumo-neutral-975, oklch(12% 0 0))\",\n },\n },\n },\n \"kumo-recessed\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-125, oklch(96% 0 0))\",\n dark: \"var(--color-kumo-neutral-950, oklch(15% 0 0))\",\n },\n },\n },\n \"kumo-base\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-white, #fff)\",\n dark: \"var(--color-kumo-neutral-925, oklch(17% 0 0))\",\n },\n fedramp: {\n light: \"#5b697c\",\n dark: \"#5b697c\",\n },\n },\n },\n \"kumo-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-100, oklch(97% 0 0))\",\n dark: \"var(--color-kumo-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-contrast\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-975, oklch(8.5% 0 0))\",\n dark: \"var(--color-kumo-neutral-25, oklch(98.5% 0 0))\",\n },\n },\n },\n \"kumo-overlay\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-50, oklch(97.5% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-control\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-white, #fff)\",\n dark: \"var(--color-neutral-900, oklch(21% 0.006 285.885))\",\n },\n },\n },\n \"kumo-interact\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-300, oklch(87% 0 0))\",\n dark: \"var(--color-neutral-700, oklch(37.1% 0 0))\",\n },\n },\n },\n \"kumo-fill\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-200, oklch(92.2% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-fill-hover\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-125, oklch(96.5% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(37.1% 0 0))\",\n },\n },\n },\n \"kumo-brand\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"oklch(0.5772 0.2324 260)\",\n dark: \"oklch(0.5772 0.2324 260)\",\n },\n },\n },\n \"kumo-brand-hover\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-700, oklch(48.8% 0.243 264.376))\",\n dark: \"var(--color-blue-700, oklch(48.8% 0.243 264.376))\",\n },\n },\n },\n \"kumo-line\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"oklch(14.5% 0 0 / 0.1)\",\n dark: \"var(--color-kumo-neutral-750, oklch(32% 0 0))\",\n },\n },\n },\n \"kumo-hairline\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-150, oklch(93.5% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n fedramp: {\n light: \"#c8d4e5\",\n dark: \"#c8d4e5\",\n },\n },\n },\n \"kumo-focus\": {\n newName: \"\",\n description: \"Primary focus ring/border color\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-950, oklch(15% 0 0))\",\n dark: \"var(--color-kumo-neutral-150, oklch(93.5% 0 0))\",\n },\n },\n },\n \"kumo-shadow-edge\": {\n newName: \"\",\n description: \"Tight spread shadow color for control thumbs/knobs\",\n theme: {\n kumo: {\n light: \"oklch(0% 0 0 / 0.12)\",\n dark: \"oklch(100% 0 0 / 0.1)\",\n },\n },\n },\n \"kumo-shadow-drop\": {\n newName: \"\",\n description: \"Drop shadow color for control thumbs/knobs\",\n theme: {\n kumo: {\n light: \"oklch(0% 0 0 / 0.08)\",\n dark: \"oklch(0% 0 0 / 0.3)\",\n },\n },\n },\n \"kumo-tip-shadow\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-gray-200, oklch(92.8% 0.006 264.531))\",\n dark: \"transparent\",\n },\n },\n },\n \"kumo-tip-stroke\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"transparent\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-info-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-100, oklch(93.2% 0.032 255.585))\",\n dark: \"var(--color-blue-900, oklch(37.9% 0.146 265.522))\",\n },\n },\n },\n \"kumo-info\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-300, oklch(80.9% 0.105 251.813))\",\n dark: \"var(--color-blue-900, oklch(37.9% 0.146 265.522))\",\n },\n },\n },\n \"kumo-warning-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-yellow-100, oklch(97.3% 0.071 103.193))\",\n dark: \"var(--color-yellow-700, oklch(55.4% 0.135 66.442))\",\n },\n },\n },\n \"kumo-warning\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-yellow-300, oklch(90.5% 0.182 98.111))\",\n dark: \"var(--color-yellow-900, oklch(42.1% 0.095 57.708))\",\n },\n },\n },\n \"kumo-danger-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-red-100, oklch(93.6% 0.032 17.717))\",\n dark: \"var(--color-red-900, oklch(39.6% 0.141 25.723))\",\n },\n },\n },\n \"kumo-danger\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-red-500, oklch(63.7% 0.237 25.331))\",\n dark: \"var(--color-red-900, oklch(39.6% 0.141 25.723))\",\n },\n },\n },\n \"kumo-success-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-emerald-100, oklch(95% 0.052 163.051))\",\n dark: \"var(--color-emerald-900, oklch(37.8% 0.077 168.94))\",\n },\n },\n },\n \"kumo-success\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-green-300, oklch(87.1% 0.15 154.449))\",\n dark: \"var(--color-green-900, oklch(39.3% 0.095 152.535))\",\n },\n },\n },\n\n /*\n * Badge color tokens\n * Solid variants: vivid background, white text\n * Subtle variants: tinted background, darker text (flips in dark mode)\n */\n\n // Red\n \"kumo-badge-red\": {\n newName: \"\",\n description: \"Red badge background\",\n theme: {\n kumo: {\n light: \"var(--color-red-600, oklch(57.7% 0.245 27.325))\",\n dark: \"var(--color-red-700, oklch(50.5% 0.213 27.518))\",\n },\n },\n },\n\n // Orange\n \"kumo-badge-orange\": {\n newName: \"\",\n description: \"Orange badge background\",\n theme: {\n kumo: {\n light: \"var(--color-orange-650, oklch(81.5% 0.197 76))\",\n dark: \"var(--color-orange-650, oklch(81.5% 0.197 76))\",\n },\n },\n },\n \"kumo-badge-orange-subtle\": {\n newName: \"\",\n description: \"Subtle orange badge background\",\n theme: {\n kumo: {\n light: \"var(--color-orange-100, oklch(95.4% 0.038 75.164))\",\n dark: \"var(--color-orange-900, oklch(40.8% 0.123 38.172))\",\n },\n },\n },\n\n \"kumo-badge-purple\": {\n newName: \"\",\n description: \"Purple badge background\",\n theme: {\n kumo: {\n light: \"var(--color-purple-600, oklch(60% 0.118 184.704))\",\n dark: \"var(--color-purple-700, oklch(50.8% 0.118 165.612))\",\n },\n },\n },\n\n // Green (emerald scale)\n \"kumo-badge-green\": {\n newName: \"\",\n description: \"Green badge background\",\n theme: {\n kumo: {\n light: \"var(--color-emerald-700, oklch(50.8% 0.118 165.612))\",\n dark: \"var(--color-emerald-700, oklch(50.8% 0.118 165.612))\",\n },\n },\n },\n\n // Teal\n \"kumo-badge-teal\": {\n newName: \"\",\n description: \"Teal badge background\",\n theme: {\n kumo: {\n light: \"var(--color-teal-650, oklch(54.9% 0.096 184.565))\",\n dark: \"var(--color-teal-700, oklch(51.1% 0.096 186.391))\",\n },\n },\n },\n \"kumo-badge-teal-subtle\": {\n newName: \"\",\n description: \"Subtle teal badge background\",\n theme: {\n kumo: {\n light: \"var(--color-teal-100, oklch(95.3% 0.051 180.801))\",\n dark: \"var(--color-teal-900, oklch(38.6% 0.063 188.416))\",\n },\n },\n },\n\n // Blue\n \"kumo-badge-blue\": {\n newName: \"\",\n description: \"Blue badge background\",\n theme: {\n kumo: {\n light: \"var(--color-blue-600, oklch(54.6% 0.245 262.881))\",\n dark: \"var(--color-blue-700, oklch(48.8% 0.243 264.376))\",\n },\n },\n },\n\n // Neutral\n \"kumo-badge-neutral\": {\n newName: \"\",\n description: \"Neutral badge background\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-600, oklch(43.9% 0 0))\",\n dark: \"var(--color-neutral-600, oklch(43.9% 0 0))\",\n },\n },\n },\n // NOTE: kumo-badge-neutral-subtle omitted — same pair as kumo-fill.\n // Badge uses bg-kumo-fill instead.\n\n // Inverted\n \"kumo-badge-inverted\": {\n newName: \"\",\n description:\n \"Inverted badge background (near-black in light, white in dark)\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-950, oklch(14.5% 0 0))\",\n dark: \"var(--color-white, #fff)\",\n },\n },\n },\n },\n\n /**\n * Typography tokens\n * Used with: text-{size} utilities\n * CSS variables: --text-{size}, --text-{size}--line-height\n *\n * Note: Typography is NOT theme-dependent (no light/dark mode).\n * Values are the same across color modes but may differ per theme.\n */\n typography: {\n xs: {\n newName: \"\",\n theme: {\n kumo: \"12px\",\n },\n },\n \"xs--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1 / 0.75)\",\n },\n },\n sm: {\n newName: \"\",\n theme: {\n kumo: \"13px\",\n },\n },\n \"sm--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1 / 0.85)\",\n },\n },\n base: {\n newName: \"\",\n theme: {\n kumo: \"14px\",\n },\n },\n \"base--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1.25 / 0.875)\",\n },\n },\n lg: {\n newName: \"\",\n theme: {\n kumo: \"16px\",\n },\n },\n \"lg--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1.25 / 1)\",\n },\n },\n },\n};\n\n/** List of all available themes */\nexport const AVAILABLE_THEMES = [\"kumo\", \"fedramp\"] as const;\nexport type AvailableTheme = (typeof AVAILABLE_THEMES)[number];\n"],"names":["THEME_CONFIG","AVAILABLE_THEMES"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../scripts/theme-generator/config.ts"],"sourcesContent":["/**\n * Kumo Theme Configuration\n *\n * Single source of truth for all semantic color tokens and typography.\n * This config is used to generate:\n * - theme-kumo.css (base theme)\n * - theme-fedramp.css (fedramp overrides)\n * - Any future theme files\n *\n * Token naming:\n * - Key = current token name used in codebase\n * - newName = future name (empty string = no migration planned)\n */\n\nimport type { ThemeConfig } from \"./types.js\";\n\nexport const THEME_CONFIG: ThemeConfig = {\n /**\n * Text color tokens\n * Used with: text-{token}\n * CSS variable: --text-color-{token}\n */\n text: {\n \"kumo-default\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-900, oklch(21% 0.006 285.885))\",\n dark: \"var(--color-neutral-100, oklch(97% 0 0))\",\n },\n },\n },\n \"kumo-inverse\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-100, oklch(97% 0 0))\",\n dark: \"var(--color-neutral-900, oklch(20.5% 0 0))\",\n },\n },\n },\n \"kumo-strong\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-950, oklch(14.5% 0 0))\", // darker than default\n dark: \"var(--color-neutral-50, oklch(98.5% 0 0))\", // lighter than default\n },\n },\n },\n \"kumo-subtle\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-500, oklch(55.6% 0 0))\", // lighter than default\n dark: \"var(--color-neutral-400, oklch(70.8% 0 0))\", // darker than default\n },\n },\n },\n \"kumo-inactive\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-300, oklch(87% 0 0))\", // lighter than subtle\n dark: \"var(--color-neutral-600, oklch(43.9% 0 0))\", // darker than subtle\n },\n },\n },\n \"kumo-placeholder\": { // in between subtle and inactive\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-400, oklch(70.8% 0 0))\",\n dark: \"var(--color-neutral-500, oklch(55.6% 0 0))\", \n },\n },\n },\n \"kumo-brand\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"#f6821f\",\n dark: \"#f6821f\",\n },\n },\n },\n \"kumo-link\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-800, oklch(42.4% 0.199 265.638))\",\n dark: \"var(--color-blue-400, oklch(70.7% 0.165 254.624))\",\n },\n },\n },\n \"kumo-info\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-800, oklch(42.4% 0.199 265.638))\",\n dark: \"var(--color-blue-400, oklch(70.7% 0.165 254.624))\",\n },\n },\n },\n \"kumo-success\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-emerald-800, oklch(43.2% 0.095 166.913))\",\n dark: \"var(--color-emerald-200, oklch(90.5% 0.093 164.15))\",\n },\n },\n },\n \"kumo-danger\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-red-700, oklch(50.5% 0.213 27.518))\",\n dark: \"var(--color-red-400, oklch(70.4% 0.191 22.216))\",\n },\n },\n },\n \"kumo-warning\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-yellow-800, oklch(47.6% 0.114 61.907))\",\n dark: \"var(--color-yellow-400, oklch(85.2% 0.199 91.936))\",\n },\n },\n },\n\n /*\n * Badge text color tokens\n * Subtle variants need colored text; inverted needs flipping text\n */\n \"kumo-badge-orange-subtle\": {\n newName: \"\",\n description: \"Text color for subtle orange badge\",\n theme: {\n kumo: {\n light: \"var(--color-orange-800, oklch(47% 0.157 37.304))\",\n dark: \"var(--color-orange-200, oklch(90.1% 0.076 70.697))\",\n },\n },\n },\n \"kumo-badge-teal-subtle\": {\n newName: \"\",\n description: \"Text color for subtle teal badge\",\n theme: {\n kumo: {\n light: \"var(--color-teal-800, oklch(43.7% 0.078 188.216))\",\n dark: \"var(--color-teal-200, oklch(91% 0.096 180.426))\",\n },\n },\n },\n \"kumo-badge-neutral-subtle\": {\n newName: \"\",\n description: \"Text color for subtle neutral badge\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n dark: \"var(--color-neutral-200, oklch(92.2% 0 0))\",\n },\n },\n },\n \"kumo-badge-inverted\": {\n newName: \"\",\n description:\n \"Text color for inverted badge (white in light, black in dark)\",\n theme: {\n kumo: {\n light: \"var(--color-white, #fff)\",\n dark: \"var(--color-black, #000)\",\n },\n },\n },\n },\n\n /**\n * Color tokens\n * Used with: bg-{token}, border-{token}, ring-{token}, etc.\n * CSS variable: --color-{token}\n */\n color: {\n \"kumo-canvas\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-25, oklch(98.75% 0 0))\",\n dark: \"var(--color-kumo-neutral-1000, oklch(10% 0 0))\",\n },\n fedramp: {\n light: \"#5b697c\",\n dark: \"#5b697c\",\n },\n },\n },\n \"kumo-elevated\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-75, oklch(98% 0 0))\",\n dark: \"var(--color-kumo-neutral-975, oklch(12% 0 0))\",\n },\n },\n },\n \"kumo-recessed\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-125, oklch(96% 0 0))\",\n dark: \"var(--color-kumo-neutral-950, oklch(15% 0 0))\",\n },\n },\n },\n \"kumo-base\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-white, #fff)\",\n dark: \"var(--color-kumo-neutral-925, oklch(17% 0 0))\",\n },\n fedramp: {\n light: \"#5b697c\",\n dark: \"#5b697c\",\n },\n },\n },\n \"kumo-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-100, oklch(97% 0 0))\",\n dark: \"var(--color-kumo-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-contrast\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-975, oklch(8.5% 0 0))\",\n dark: \"var(--color-kumo-neutral-25, oklch(98.5% 0 0))\",\n },\n },\n },\n \"kumo-overlay\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-50, oklch(97.5% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-control\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-white, #fff)\",\n dark: \"var(--color-neutral-900, oklch(21% 0.006 285.885))\",\n },\n },\n },\n \"kumo-interact\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-300, oklch(87% 0 0))\",\n dark: \"var(--color-neutral-700, oklch(37.1% 0 0))\",\n },\n },\n },\n \"kumo-fill\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-200, oklch(92.2% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-fill-hover\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-125, oklch(96.5% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(37.1% 0 0))\",\n },\n },\n },\n \"kumo-brand\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"oklch(0.5772 0.2324 260)\",\n dark: \"oklch(0.5772 0.2324 260)\",\n },\n },\n },\n \"kumo-brand-hover\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-700, oklch(48.8% 0.243 264.376))\",\n dark: \"var(--color-blue-700, oklch(48.8% 0.243 264.376))\",\n },\n },\n },\n \"kumo-line\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"oklch(14.5% 0 0 / 0.1)\",\n dark: \"var(--color-kumo-neutral-750, oklch(32% 0 0))\",\n },\n },\n },\n \"kumo-hairline\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-150, oklch(93.5% 0 0))\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n fedramp: {\n light: \"#c8d4e5\",\n dark: \"#c8d4e5\",\n },\n },\n },\n \"kumo-focus\": {\n newName: \"\",\n description: \"Primary focus ring/border color\",\n theme: {\n kumo: {\n light: \"var(--color-kumo-neutral-950, oklch(15% 0 0))\",\n dark: \"var(--color-kumo-neutral-150, oklch(93.5% 0 0))\",\n },\n },\n },\n \"kumo-shadow-edge\": {\n newName: \"\",\n description: \"Tight spread shadow color for control thumbs/knobs\",\n theme: {\n kumo: {\n light: \"oklch(0% 0 0 / 0.12)\",\n dark: \"oklch(100% 0 0 / 0.1)\",\n },\n },\n },\n \"kumo-shadow-drop\": {\n newName: \"\",\n description: \"Drop shadow color for control thumbs/knobs\",\n theme: {\n kumo: {\n light: \"oklch(0% 0 0 / 0.08)\",\n dark: \"oklch(0% 0 0 / 0.3)\",\n },\n },\n },\n \"kumo-tip-shadow\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-gray-200, oklch(92.8% 0.006 264.531))\",\n dark: \"transparent\",\n },\n },\n },\n \"kumo-tip-stroke\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"transparent\",\n dark: \"var(--color-neutral-800, oklch(26.9% 0 0))\",\n },\n },\n },\n \"kumo-info-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-100, oklch(93.2% 0.032 255.585))\",\n dark: \"var(--color-blue-900, oklch(37.9% 0.146 265.522))\",\n },\n },\n },\n \"kumo-info\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-blue-300, oklch(80.9% 0.105 251.813))\",\n dark: \"var(--color-blue-900, oklch(37.9% 0.146 265.522))\",\n },\n },\n },\n \"kumo-warning-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-yellow-100, oklch(97.3% 0.071 103.193))\",\n dark: \"var(--color-yellow-700, oklch(55.4% 0.135 66.442))\",\n },\n },\n },\n \"kumo-warning\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-yellow-300, oklch(90.5% 0.182 98.111))\",\n dark: \"var(--color-yellow-900, oklch(42.1% 0.095 57.708))\",\n },\n },\n },\n \"kumo-danger-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-red-100, oklch(93.6% 0.032 17.717))\",\n dark: \"var(--color-red-900, oklch(39.6% 0.141 25.723))\",\n },\n },\n },\n \"kumo-danger\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-red-500, oklch(63.7% 0.237 25.331))\",\n dark: \"var(--color-red-900, oklch(39.6% 0.141 25.723))\",\n },\n },\n },\n \"kumo-success-tint\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-emerald-100, oklch(95% 0.052 163.051))\",\n dark: \"var(--color-emerald-900, oklch(37.8% 0.077 168.94))\",\n },\n },\n },\n \"kumo-success\": {\n newName: \"\",\n theme: {\n kumo: {\n light: \"var(--color-green-300, oklch(87.1% 0.15 154.449))\",\n dark: \"var(--color-green-900, oklch(39.3% 0.095 152.535))\",\n },\n },\n },\n\n /*\n * Badge color tokens\n * Solid variants: vivid background, white text\n * Subtle variants: tinted background, darker text (flips in dark mode)\n */\n\n // Red\n \"kumo-badge-red\": {\n newName: \"\",\n description: \"Red badge background\",\n theme: {\n kumo: {\n light: \"var(--color-red-600, oklch(57.7% 0.245 27.325))\",\n dark: \"var(--color-red-700, oklch(50.5% 0.213 27.518))\",\n },\n },\n },\n\n // Orange\n \"kumo-badge-orange\": {\n newName: \"\",\n description: \"Orange badge background\",\n theme: {\n kumo: {\n light: \"var(--color-orange-650, oklch(81.5% 0.197 76))\",\n dark: \"var(--color-orange-650, oklch(81.5% 0.197 76))\",\n },\n },\n },\n \"kumo-badge-orange-subtle\": {\n newName: \"\",\n description: \"Subtle orange badge background\",\n theme: {\n kumo: {\n light: \"var(--color-orange-100, oklch(95.4% 0.038 75.164))\",\n dark: \"var(--color-orange-900, oklch(40.8% 0.123 38.172))\",\n },\n },\n },\n\n \"kumo-badge-purple\": {\n newName: \"\",\n description: \"Purple badge background\",\n theme: {\n kumo: {\n light: \"var(--color-purple-600, oklch(60% 0.118 184.704))\",\n dark: \"var(--color-purple-700, oklch(50.8% 0.118 165.612))\",\n },\n },\n },\n\n // Green (emerald scale)\n \"kumo-badge-green\": {\n newName: \"\",\n description: \"Green badge background\",\n theme: {\n kumo: {\n light: \"var(--color-emerald-700, oklch(50.8% 0.118 165.612))\",\n dark: \"var(--color-emerald-700, oklch(50.8% 0.118 165.612))\",\n },\n },\n },\n\n // Teal\n \"kumo-badge-teal\": {\n newName: \"\",\n description: \"Teal badge background\",\n theme: {\n kumo: {\n light: \"var(--color-teal-650, oklch(54.9% 0.096 184.565))\",\n dark: \"var(--color-teal-700, oklch(51.1% 0.096 186.391))\",\n },\n },\n },\n \"kumo-badge-teal-subtle\": {\n newName: \"\",\n description: \"Subtle teal badge background\",\n theme: {\n kumo: {\n light: \"var(--color-teal-100, oklch(95.3% 0.051 180.801))\",\n dark: \"var(--color-teal-900, oklch(38.6% 0.063 188.416))\",\n },\n },\n },\n\n // Blue\n \"kumo-badge-blue\": {\n newName: \"\",\n description: \"Blue badge background\",\n theme: {\n kumo: {\n light: \"var(--color-blue-600, oklch(54.6% 0.245 262.881))\",\n dark: \"var(--color-blue-700, oklch(48.8% 0.243 264.376))\",\n },\n },\n },\n\n // Neutral\n \"kumo-badge-neutral\": {\n newName: \"\",\n description: \"Neutral badge background\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-600, oklch(43.9% 0 0))\",\n dark: \"var(--color-neutral-600, oklch(43.9% 0 0))\",\n },\n },\n },\n // NOTE: kumo-badge-neutral-subtle omitted — same pair as kumo-fill.\n // Badge uses bg-kumo-fill instead.\n\n // Inverted\n \"kumo-badge-inverted\": {\n newName: \"\",\n description:\n \"Inverted badge background (near-black in light, white in dark)\",\n theme: {\n kumo: {\n light: \"var(--color-neutral-950, oklch(14.5% 0 0))\",\n dark: \"var(--color-white, #fff)\",\n },\n },\n },\n },\n\n /**\n * Typography tokens\n * Used with: text-{size} utilities\n * CSS variables: --text-{size}, --text-{size}--line-height\n *\n * Note: Typography is NOT theme-dependent (no light/dark mode).\n * Values are the same across color modes but may differ per theme.\n */\n typography: {\n xs: {\n newName: \"\",\n theme: {\n kumo: \"12px\",\n },\n },\n \"xs--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1 / 0.75)\",\n },\n },\n sm: {\n newName: \"\",\n theme: {\n kumo: \"13px\",\n },\n },\n \"sm--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1 / 0.85)\",\n },\n },\n base: {\n newName: \"\",\n theme: {\n kumo: \"14px\",\n },\n },\n \"base--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1.25 / 0.875)\",\n },\n },\n lg: {\n newName: \"\",\n theme: {\n kumo: \"16px\",\n },\n },\n \"lg--line-height\": {\n newName: \"\",\n theme: {\n kumo: \"calc(1.25 / 1)\",\n },\n },\n },\n};\n\n/** List of all available themes */\nexport const AVAILABLE_THEMES = [\"kumo\", \"fedramp\"] as const;\nexport type AvailableTheme = (typeof AVAILABLE_THEMES)[number];\n"],"names":["THEME_CONFIG","AVAILABLE_THEMES"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export declare const KUMO_CODE_DEFAULT_VARIANTS: {
|
|
|
32
32
|
*/
|
|
33
33
|
export declare const KUMO_CODE_STYLING: {
|
|
34
34
|
/** Base semantic tokens used */
|
|
35
|
-
readonly baseTokens: readonly ["text-kumo-
|
|
35
|
+
readonly baseTokens: readonly ["text-kumo-subtle"];
|
|
36
36
|
/** Typography and layout */
|
|
37
37
|
readonly typography: {
|
|
38
38
|
readonly fontFamily: "font-mono";
|
|
@@ -122,7 +122,7 @@ export interface CodeProps extends KumoCodeVariantsProps {
|
|
|
122
122
|
*
|
|
123
123
|
* **Styling:**
|
|
124
124
|
* - Typography: `font-mono text-sm leading-[20px]`
|
|
125
|
-
* - Colors: `text-kumo-
|
|
125
|
+
* - Colors: `text-kumo-subtle` with `bg-transparent`
|
|
126
126
|
* - No borders or padding (use CodeBlock for styled container)
|
|
127
127
|
* - Supports all semantic tokens via className prop
|
|
128
128
|
*
|
|
@@ -41,7 +41,7 @@ export interface CollapsibleDefaultTriggerProps {
|
|
|
41
41
|
/** Additional CSS classes */
|
|
42
42
|
className?: string;
|
|
43
43
|
}
|
|
44
|
-
export interface CollapsibleDefaultPanelProps {
|
|
44
|
+
export interface CollapsibleDefaultPanelProps extends BasePanelProps {
|
|
45
45
|
/** Panel content */
|
|
46
46
|
children: ReactNode;
|
|
47
47
|
/** Additional CSS classes */
|