@djangocfg/ui-tools 2.1.103 → 2.1.105
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/dist/{LottiePlayer.client-WFMG2OOW.cjs → LottiePlayer.client-6WVWDO75.cjs} +6 -6
- package/dist/{LottiePlayer.client-WFMG2OOW.cjs.map → LottiePlayer.client-6WVWDO75.cjs.map} +1 -1
- package/dist/{LottiePlayer.client-LBEC2JKY.mjs → LottiePlayer.client-B4I6WNZM.mjs} +4 -4
- package/dist/{LottiePlayer.client-LBEC2JKY.mjs.map → LottiePlayer.client-B4I6WNZM.mjs.map} +1 -1
- package/dist/{Mermaid.client-4TU2TSH3.mjs → Mermaid.client-4OCKJ6QD.mjs} +3 -3
- package/dist/{Mermaid.client-4TU2TSH3.mjs.map → Mermaid.client-4OCKJ6QD.mjs.map} +1 -1
- package/dist/{Mermaid.client-SBYY364Q.cjs → Mermaid.client-ZP6OE46Z.cjs} +23 -23
- package/dist/{Mermaid.client-SBYY364Q.cjs.map → Mermaid.client-ZP6OE46Z.cjs.map} +1 -1
- package/dist/{PlaygroundLayout-4DYBORAS.mjs → PlaygroundLayout-LMQTVXSP.mjs} +4 -4
- package/dist/{PlaygroundLayout-4DYBORAS.mjs.map → PlaygroundLayout-LMQTVXSP.mjs.map} +1 -1
- package/dist/{PlaygroundLayout-3YVSAEAF.cjs → PlaygroundLayout-XXVBU4WZ.cjs} +51 -51
- package/dist/{PlaygroundLayout-3YVSAEAF.cjs.map → PlaygroundLayout-XXVBU4WZ.cjs.map} +1 -1
- package/dist/{PrettyCode.client-PNPLXRH6.cjs → PrettyCode.client-2CLSV2VD.cjs} +5 -5
- package/dist/{PrettyCode.client-PNPLXRH6.cjs.map → PrettyCode.client-2CLSV2VD.cjs.map} +1 -1
- package/dist/{PrettyCode.client-LCBPPTIX.mjs → PrettyCode.client-Y2BVON7R.mjs} +3 -3
- package/dist/{PrettyCode.client-LCBPPTIX.mjs.map → PrettyCode.client-Y2BVON7R.mjs.map} +1 -1
- package/dist/{chunk-YFRNE2IR.mjs → chunk-6JTB2X72.mjs} +3 -3
- package/dist/{chunk-YFRNE2IR.mjs.map → chunk-6JTB2X72.mjs.map} +1 -1
- package/dist/{chunk-37ZI6VD4.mjs → chunk-CGILA3WO.mjs} +2 -2
- package/dist/{chunk-37ZI6VD4.mjs.map → chunk-CGILA3WO.mjs.map} +1 -1
- package/dist/{chunk-7DGDQVQW.cjs → chunk-FB5QBSI3.cjs} +46 -46
- package/dist/{chunk-7DGDQVQW.cjs.map → chunk-FB5QBSI3.cjs.map} +1 -1
- package/dist/{chunk-M6P2FU7L.mjs → chunk-L6UHASYQ.mjs} +4 -4
- package/dist/{chunk-M6P2FU7L.mjs.map → chunk-L6UHASYQ.mjs.map} +1 -1
- package/dist/{chunk-3HK2OE62.cjs → chunk-PRPG2T2E.cjs} +6 -6
- package/dist/{chunk-3HK2OE62.cjs.map → chunk-PRPG2T2E.cjs.map} +1 -1
- package/dist/{chunk-UQ3XI5MY.cjs → chunk-WGEGR3DF.cjs} +2 -2
- package/dist/{chunk-UQ3XI5MY.cjs.map → chunk-WGEGR3DF.cjs.map} +1 -1
- package/dist/index.cjs +227 -227
- package/dist/index.mjs +7 -7
- package/package.json +3 -3
- package/src/index.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tools/PrettyCode/PrettyCode.client.tsx"],"names":["__name","useResolvedTheme","themes","bgClass","jsx","Highlight","className","jsxs","CopyButton"],"mappings":"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","file":"PrettyCode.client-PNPLXRH6.cjs","sourcesContent":["'use client';\n\nimport { Highlight, Language, themes } from 'prism-react-renderer';\nimport React from 'react';\n\nimport { CopyButton } from '@djangocfg/ui-core/components';\n\nimport { useResolvedTheme } from '@djangocfg/ui-core/hooks';\n\ninterface PrettyCodeProps {\n data: string | object;\n language: Language;\n className?: string;\n mode?: 'dark' | 'light';\n inline?: boolean;\n customBg?: string; // Custom background class\n isCompact?: boolean; // Compact mode for smaller font sizes\n}\n\nconst PrettyCode = ({ data, language, className, mode, inline = false, customBg, isCompact = false }: PrettyCodeProps) => {\n const detectedTheme = useResolvedTheme();\n\n // Font size based on compact mode\n const fontSize = isCompact ? '0.75rem' : '0.875rem'; // 12px vs 14px\n\n // Use provided mode or fall back to detected theme\n const currentTheme = mode || detectedTheme;\n const isDarkMode = currentTheme === 'dark';\n\n // Select the Prism theme based on the current theme\n const prismTheme = isDarkMode ? themes.vsDark : themes.vsLight;\n\n // Convert form object to JSON string with proper formatting\n const contentJson = typeof data === 'string' ? data : JSON.stringify(data || {}, null, 2);\n \n // Handle empty content\n if (!contentJson || contentJson.trim() === '') {\n const bgClass = customBg || 'bg-muted dark:bg-zinc-900';\n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-700 ${className || ''}`}>\n <div className=\"h-full overflow-auto p-4\">\n <p className=\"text-muted-foreground text-sm italic\">No content available</p>\n </div>\n </div>\n );\n }\n\n // Get display name for language badge\n const getLanguageDisplayName = (lang: string): string => {\n switch (lang.toLowerCase()) {\n case 'bash':\n case 'shell':\n return 'Bash';\n case 'python':\n case 'py':\n return 'Python';\n case 'javascript':\n case 'js':\n return 'JavaScript';\n case 'typescript':\n case 'ts':\n return 'TypeScript';\n case 'json':\n return 'JSON';\n case 'yaml':\n case 'yml':\n return 'YAML';\n case 'html':\n return 'HTML';\n case 'css':\n return 'CSS';\n case 'sql':\n return 'SQL';\n case 'xml':\n return 'XML';\n case 'markdown':\n case 'md':\n return 'Markdown';\n case 'plaintext':\n case 'text':\n return 'Text';\n case 'mermaid':\n return 'Mermaid';\n default:\n return lang.charAt(0).toUpperCase() + lang.slice(1);\n }\n };\n\n // Normalize language for Prism - use only basic supported languages\n const normalizedLanguage = (() => {\n const lang = language.toLowerCase();\n \n // Try basic languages that are definitely supported\n switch (lang) {\n case 'javascript':\n case 'js':\n return 'javascript';\n case 'typescript':\n case 'ts':\n return 'typescript'; // Try TypeScript first\n case 'python':\n case 'py':\n return 'python';\n case 'json':\n return 'json';\n case 'css':\n return 'css';\n case 'html':\n return 'markup';\n case 'xml':\n return 'markup';\n case 'bash':\n case 'shell':\n return 'bash';\n case 'sql':\n return 'sql';\n case 'yaml':\n case 'yml':\n return 'yaml';\n case 'markdown':\n case 'md':\n return 'markdown';\n case 'mermaid':\n return 'text'; // Mermaid is handled separately in MarkdownMessage\n default:\n // For unknown languages, try to use the original name first\n // If it doesn't work, Prism will fallback to plain text\n return lang || 'text';\n }\n })();\n\n const displayLanguage = getLanguageDisplayName(language);\n\n if (inline) {\n const inlineBgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n return (\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getTokenProps }) => (\n <code\n className={`${className} ${inlineBgClass} px-2 py-1 rounded ${isCompact ? 'text-xs' : 'text-sm'} font-mono inline-block`}\n style={{\n ...style,\n fontSize,\n fontFamily: 'monospace',\n }}\n >\n {tokens.map((line) => (\n line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))\n ))}\n </code>\n )}\n </Highlight>\n );\n }\n\n const bgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n \n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-800 dark:shadow-sm ${className || ''}`}>\n {/* Header with language badge and copy button */}\n <div className=\"absolute top-2 left-3 right-3 z-10 flex items-center justify-between\">\n <span className=\"inline-flex items-center px-2 py-1 rounded text-xs font-medium bg-background/80 text-muted-foreground border border-border/50 backdrop-blur-sm\">\n {displayLanguage}\n </span>\n <CopyButton\n value={contentJson}\n variant=\"ghost\"\n className=\"h-7 w-7 bg-background/80 border border-border/50 backdrop-blur-sm\"\n iconClassName=\"h-3.5 w-3.5\"\n title=\"Copy code\"\n />\n </div>\n \n <div className=\"h-full overflow-auto\">\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className}`}\n style={{\n ...style,\n margin: 0,\n padding: '2.5rem 1rem 1rem 1rem', // Extra top padding for language badge\n fontSize,\n lineHeight: isCompact ? 1.4 : 1.5,\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n );\n};\n\nexport default PrettyCode; "]}
|
|
1
|
+
{"version":3,"sources":["../src/tools/PrettyCode/PrettyCode.client.tsx"],"names":["__name","useResolvedTheme","themes","bgClass","jsx","Highlight","className","jsxs","CopyButton"],"mappings":"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","file":"PrettyCode.client-2CLSV2VD.cjs","sourcesContent":["'use client';\n\nimport { Highlight, Language, themes } from 'prism-react-renderer';\nimport React from 'react';\n\nimport { CopyButton } from '@djangocfg/ui-core/components';\n\nimport { useResolvedTheme } from '@djangocfg/ui-core/hooks';\n\ninterface PrettyCodeProps {\n data: string | object;\n language: Language;\n className?: string;\n mode?: 'dark' | 'light';\n inline?: boolean;\n customBg?: string; // Custom background class\n isCompact?: boolean; // Compact mode for smaller font sizes\n}\n\nconst PrettyCode = ({ data, language, className, mode, inline = false, customBg, isCompact = false }: PrettyCodeProps) => {\n const detectedTheme = useResolvedTheme();\n\n // Font size based on compact mode\n const fontSize = isCompact ? '0.75rem' : '0.875rem'; // 12px vs 14px\n\n // Use provided mode or fall back to detected theme\n const currentTheme = mode || detectedTheme;\n const isDarkMode = currentTheme === 'dark';\n\n // Select the Prism theme based on the current theme\n const prismTheme = isDarkMode ? themes.vsDark : themes.vsLight;\n\n // Convert form object to JSON string with proper formatting\n const contentJson = typeof data === 'string' ? data : JSON.stringify(data || {}, null, 2);\n \n // Handle empty content\n if (!contentJson || contentJson.trim() === '') {\n const bgClass = customBg || 'bg-muted dark:bg-zinc-900';\n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-700 ${className || ''}`}>\n <div className=\"h-full overflow-auto p-4\">\n <p className=\"text-muted-foreground text-sm italic\">No content available</p>\n </div>\n </div>\n );\n }\n\n // Get display name for language badge\n const getLanguageDisplayName = (lang: string): string => {\n switch (lang.toLowerCase()) {\n case 'bash':\n case 'shell':\n return 'Bash';\n case 'python':\n case 'py':\n return 'Python';\n case 'javascript':\n case 'js':\n return 'JavaScript';\n case 'typescript':\n case 'ts':\n return 'TypeScript';\n case 'json':\n return 'JSON';\n case 'yaml':\n case 'yml':\n return 'YAML';\n case 'html':\n return 'HTML';\n case 'css':\n return 'CSS';\n case 'sql':\n return 'SQL';\n case 'xml':\n return 'XML';\n case 'markdown':\n case 'md':\n return 'Markdown';\n case 'plaintext':\n case 'text':\n return 'Text';\n case 'mermaid':\n return 'Mermaid';\n default:\n return lang.charAt(0).toUpperCase() + lang.slice(1);\n }\n };\n\n // Normalize language for Prism - use only basic supported languages\n const normalizedLanguage = (() => {\n const lang = language.toLowerCase();\n \n // Try basic languages that are definitely supported\n switch (lang) {\n case 'javascript':\n case 'js':\n return 'javascript';\n case 'typescript':\n case 'ts':\n return 'typescript'; // Try TypeScript first\n case 'python':\n case 'py':\n return 'python';\n case 'json':\n return 'json';\n case 'css':\n return 'css';\n case 'html':\n return 'markup';\n case 'xml':\n return 'markup';\n case 'bash':\n case 'shell':\n return 'bash';\n case 'sql':\n return 'sql';\n case 'yaml':\n case 'yml':\n return 'yaml';\n case 'markdown':\n case 'md':\n return 'markdown';\n case 'mermaid':\n return 'text'; // Mermaid is handled separately in MarkdownMessage\n default:\n // For unknown languages, try to use the original name first\n // If it doesn't work, Prism will fallback to plain text\n return lang || 'text';\n }\n })();\n\n const displayLanguage = getLanguageDisplayName(language);\n\n if (inline) {\n const inlineBgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n return (\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getTokenProps }) => (\n <code\n className={`${className} ${inlineBgClass} px-2 py-1 rounded ${isCompact ? 'text-xs' : 'text-sm'} font-mono inline-block`}\n style={{\n ...style,\n fontSize,\n fontFamily: 'monospace',\n }}\n >\n {tokens.map((line) => (\n line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))\n ))}\n </code>\n )}\n </Highlight>\n );\n }\n\n const bgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n \n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-800 dark:shadow-sm ${className || ''}`}>\n {/* Header with language badge and copy button */}\n <div className=\"absolute top-2 left-3 right-3 z-10 flex items-center justify-between\">\n <span className=\"inline-flex items-center px-2 py-1 rounded text-xs font-medium bg-background/80 text-muted-foreground border border-border/50 backdrop-blur-sm\">\n {displayLanguage}\n </span>\n <CopyButton\n value={contentJson}\n variant=\"ghost\"\n className=\"h-7 w-7 bg-background/80 border border-border/50 backdrop-blur-sm\"\n iconClassName=\"h-3.5 w-3.5\"\n title=\"Copy code\"\n />\n </div>\n \n <div className=\"h-full overflow-auto\">\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className}`}\n style={{\n ...style,\n margin: 0,\n padding: '2.5rem 1rem 1rem 1rem', // Extra top padding for language badge\n fontSize,\n lineHeight: isCompact ? 1.4 : 1.5,\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n );\n};\n\nexport default PrettyCode; "]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from './chunk-
|
|
1
|
+
import { __name } from './chunk-CGILA3WO.mjs';
|
|
2
2
|
import { themes, Highlight } from 'prism-react-renderer';
|
|
3
3
|
import { CopyButton } from '@djangocfg/ui-core/components';
|
|
4
4
|
import { useResolvedTheme } from '@djangocfg/ui-core/hooks';
|
|
@@ -148,5 +148,5 @@ var PrettyCode = /* @__PURE__ */ __name(({ data, language, className, mode, inli
|
|
|
148
148
|
var PrettyCode_client_default = PrettyCode;
|
|
149
149
|
|
|
150
150
|
export { PrettyCode_client_default as default };
|
|
151
|
-
//# sourceMappingURL=PrettyCode.client-
|
|
152
|
-
//# sourceMappingURL=PrettyCode.client-
|
|
151
|
+
//# sourceMappingURL=PrettyCode.client-Y2BVON7R.mjs.map
|
|
152
|
+
//# sourceMappingURL=PrettyCode.client-Y2BVON7R.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tools/PrettyCode/PrettyCode.client.tsx"],"names":["bgClass","className"],"mappings":"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","file":"PrettyCode.client-LCBPPTIX.mjs","sourcesContent":["'use client';\n\nimport { Highlight, Language, themes } from 'prism-react-renderer';\nimport React from 'react';\n\nimport { CopyButton } from '@djangocfg/ui-core/components';\n\nimport { useResolvedTheme } from '@djangocfg/ui-core/hooks';\n\ninterface PrettyCodeProps {\n data: string | object;\n language: Language;\n className?: string;\n mode?: 'dark' | 'light';\n inline?: boolean;\n customBg?: string; // Custom background class\n isCompact?: boolean; // Compact mode for smaller font sizes\n}\n\nconst PrettyCode = ({ data, language, className, mode, inline = false, customBg, isCompact = false }: PrettyCodeProps) => {\n const detectedTheme = useResolvedTheme();\n\n // Font size based on compact mode\n const fontSize = isCompact ? '0.75rem' : '0.875rem'; // 12px vs 14px\n\n // Use provided mode or fall back to detected theme\n const currentTheme = mode || detectedTheme;\n const isDarkMode = currentTheme === 'dark';\n\n // Select the Prism theme based on the current theme\n const prismTheme = isDarkMode ? themes.vsDark : themes.vsLight;\n\n // Convert form object to JSON string with proper formatting\n const contentJson = typeof data === 'string' ? data : JSON.stringify(data || {}, null, 2);\n \n // Handle empty content\n if (!contentJson || contentJson.trim() === '') {\n const bgClass = customBg || 'bg-muted dark:bg-zinc-900';\n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-700 ${className || ''}`}>\n <div className=\"h-full overflow-auto p-4\">\n <p className=\"text-muted-foreground text-sm italic\">No content available</p>\n </div>\n </div>\n );\n }\n\n // Get display name for language badge\n const getLanguageDisplayName = (lang: string): string => {\n switch (lang.toLowerCase()) {\n case 'bash':\n case 'shell':\n return 'Bash';\n case 'python':\n case 'py':\n return 'Python';\n case 'javascript':\n case 'js':\n return 'JavaScript';\n case 'typescript':\n case 'ts':\n return 'TypeScript';\n case 'json':\n return 'JSON';\n case 'yaml':\n case 'yml':\n return 'YAML';\n case 'html':\n return 'HTML';\n case 'css':\n return 'CSS';\n case 'sql':\n return 'SQL';\n case 'xml':\n return 'XML';\n case 'markdown':\n case 'md':\n return 'Markdown';\n case 'plaintext':\n case 'text':\n return 'Text';\n case 'mermaid':\n return 'Mermaid';\n default:\n return lang.charAt(0).toUpperCase() + lang.slice(1);\n }\n };\n\n // Normalize language for Prism - use only basic supported languages\n const normalizedLanguage = (() => {\n const lang = language.toLowerCase();\n \n // Try basic languages that are definitely supported\n switch (lang) {\n case 'javascript':\n case 'js':\n return 'javascript';\n case 'typescript':\n case 'ts':\n return 'typescript'; // Try TypeScript first\n case 'python':\n case 'py':\n return 'python';\n case 'json':\n return 'json';\n case 'css':\n return 'css';\n case 'html':\n return 'markup';\n case 'xml':\n return 'markup';\n case 'bash':\n case 'shell':\n return 'bash';\n case 'sql':\n return 'sql';\n case 'yaml':\n case 'yml':\n return 'yaml';\n case 'markdown':\n case 'md':\n return 'markdown';\n case 'mermaid':\n return 'text'; // Mermaid is handled separately in MarkdownMessage\n default:\n // For unknown languages, try to use the original name first\n // If it doesn't work, Prism will fallback to plain text\n return lang || 'text';\n }\n })();\n\n const displayLanguage = getLanguageDisplayName(language);\n\n if (inline) {\n const inlineBgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n return (\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getTokenProps }) => (\n <code\n className={`${className} ${inlineBgClass} px-2 py-1 rounded ${isCompact ? 'text-xs' : 'text-sm'} font-mono inline-block`}\n style={{\n ...style,\n fontSize,\n fontFamily: 'monospace',\n }}\n >\n {tokens.map((line) => (\n line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))\n ))}\n </code>\n )}\n </Highlight>\n );\n }\n\n const bgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n \n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-800 dark:shadow-sm ${className || ''}`}>\n {/* Header with language badge and copy button */}\n <div className=\"absolute top-2 left-3 right-3 z-10 flex items-center justify-between\">\n <span className=\"inline-flex items-center px-2 py-1 rounded text-xs font-medium bg-background/80 text-muted-foreground border border-border/50 backdrop-blur-sm\">\n {displayLanguage}\n </span>\n <CopyButton\n value={contentJson}\n variant=\"ghost\"\n className=\"h-7 w-7 bg-background/80 border border-border/50 backdrop-blur-sm\"\n iconClassName=\"h-3.5 w-3.5\"\n title=\"Copy code\"\n />\n </div>\n \n <div className=\"h-full overflow-auto\">\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className}`}\n style={{\n ...style,\n margin: 0,\n padding: '2.5rem 1rem 1rem 1rem', // Extra top padding for language badge\n fontSize,\n lineHeight: isCompact ? 1.4 : 1.5,\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n );\n};\n\nexport default PrettyCode; "]}
|
|
1
|
+
{"version":3,"sources":["../src/tools/PrettyCode/PrettyCode.client.tsx"],"names":["bgClass","className"],"mappings":";;;;;;AAmBA,IAAM,UAAA,mBAAa,MAAA,CAAA,CAAC,EAAE,IAAA,EAAM,QAAA,EAAU,SAAA,EAAW,IAAA,EAAM,MAAA,GAAS,KAAA,EAAO,QAAA,EAAU,SAAA,GAAY,KAAA,EAAM,KAAuB;AACxH,EAAA,MAAM,gBAAgB,gBAAA,EAAiB;AAGvC,EAAA,MAAM,QAAA,GAAW,YAAY,SAAA,GAAY,UAAA;AAGzC,EAAA,MAAM,eAAe,IAAA,IAAQ,aAAA;AAC7B,EAAA,MAAM,aAAa,YAAA,KAAiB,MAAA;AAGpC,EAAA,MAAM,UAAA,GAAa,UAAA,GAAa,MAAA,CAAO,MAAA,GAAS,MAAA,CAAO,OAAA;AAGvD,EAAA,MAAM,WAAA,GAAc,OAAO,IAAA,KAAS,QAAA,GAAW,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,IAAA,IAAQ,EAAC,EAAG,IAAA,EAAM,CAAC,CAAA;AAGxF,EAAA,IAAI,CAAC,WAAA,IAAe,WAAA,CAAY,IAAA,OAAW,EAAA,EAAI;AAC7C,IAAA,MAAMA,WAAU,QAAA,IAAY,2BAAA;AAC5B,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,mBAAmBA,QAAO,CAAA,sDAAA,EAAyD,aAAa,EAAE,CAAA,CAAA,EAChH,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BACb,QAAA,kBAAA,GAAA,CAAC,GAAA,EAAA,EAAE,WAAU,sCAAA,EAAuC,QAAA,EAAA,sBAAA,EAAoB,GAC1E,CAAA,EACF,CAAA;AAAA,EAEJ;AAGA,EAAA,MAAM,sBAAA,2BAA0B,IAAA,KAAyB;AACvD,IAAA,QAAQ,IAAA,CAAK,aAAY;AAAG,MAC1B,KAAK,MAAA;AAAA,MACL,KAAK,OAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,QAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,QAAA;AAAA,MACT,KAAK,YAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,YAAA;AAAA,MACT,KAAK,YAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,YAAA;AAAA,MACT,KAAK,MAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,MAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,KAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT,KAAK,KAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT,KAAK,KAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT,KAAK,UAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,UAAA;AAAA,MACT,KAAK,WAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,SAAA;AACH,QAAA,OAAO,SAAA;AAAA,MACT;AACE,QAAA,OAAO,IAAA,CAAK,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA;AACtD,EACF,CAAA,EAtC+B,wBAAA,CAAA;AAyC/B,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAA,MAAM,IAAA,GAAO,SAAS,WAAA,EAAY;AAGlC,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,YAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,YAAA;AAAA,MACT,KAAK,YAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,YAAA;AAAA;AAAA,MACT,KAAK,QAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,QAAA;AAAA,MACT,KAAK,MAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,KAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT,KAAK,MAAA;AACH,QAAA,OAAO,QAAA;AAAA,MACT,KAAK,KAAA;AACH,QAAA,OAAO,QAAA;AAAA,MACT,KAAK,MAAA;AAAA,MACL,KAAK,OAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,KAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT,KAAK,MAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,UAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,OAAO,UAAA;AAAA,MACT,KAAK,SAAA;AACH,QAAA,OAAO,MAAA;AAAA;AAAA,MACT;AAGE,QAAA,OAAO,IAAA,IAAQ,MAAA;AAAA;AACnB,EACF,CAAA,GAAG;AAEH,EAAA,MAAM,eAAA,GAAkB,uBAAuB,QAAQ,CAAA;AAEvD,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,gBAAgB,QAAA,IAAY,4BAAA;AAClC,IAAA,uBACE,GAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,UAAA,EAAY,MAAM,WAAA,EAAa,QAAA,EAAU,kBAAA,EACxD,QAAA,EAAA,CAAC,EAAE,SAAA,EAAAC,UAAAA,EAAW,KAAA,EAAO,MAAA,EAAQ,eAAc,qBAC1C,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAGA,UAAS,CAAA,CAAA,EAAI,aAAa,CAAA,mBAAA,EAAsB,SAAA,GAAY,YAAY,SAAS,CAAA,uBAAA,CAAA;AAAA,QAC/F,KAAA,EAAO;AAAA,UACL,GAAG,KAAA;AAAA,UACH,QAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACd;AAAA,QAEC,iBAAO,GAAA,CAAI,CAAC,SACX,IAAA,CAAK,GAAA,CAAI,CAAC,KAAA,EAAO,GAAA,yBACd,MAAA,EAAA,EAAgB,GAAG,cAAc,EAAE,KAAA,EAAO,CAAA,EAAA,EAAhC,GAAmC,CAC/C,CACF;AAAA;AAAA,KACH,EAEJ,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,UAAU,QAAA,IAAY,4BAAA;AAE5B,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,CAAA,gBAAA,EAAmB,OAAO,CAAA,qEAAA,EAAwE,SAAA,IAAa,EAAE,CAAA,CAAA,EAE/H,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sEAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gJAAA,EACb,QAAA,EAAA,eAAA,EACH,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAQ,OAAA;AAAA,UACR,SAAA,EAAU,mEAAA;AAAA,UACV,aAAA,EAAc,aAAA;AAAA,UACd,KAAA,EAAM;AAAA;AAAA;AACR,KAAA,EACF,CAAA;AAAA,oBAEA,GAAA,CAAC,SAAI,SAAA,EAAU,sBAAA,EACb,8BAAC,SAAA,EAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAM,WAAA,EAAa,UAAU,kBAAA,EACxD,QAAA,EAAA,CAAC,EAAE,SAAA,EAAAA,UAAAA,EAAW,OAAO,MAAA,EAAQ,YAAA,EAAc,eAAc,qBACxD,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAGA,UAAS,CAAA,CAAA;AAAA,QACvB,KAAA,EAAO;AAAA,UACL,GAAG,KAAA;AAAA,UACH,MAAA,EAAQ,CAAA;AAAA,UACR,OAAA,EAAS,uBAAA;AAAA;AAAA,UACT,QAAA;AAAA,UACA,UAAA,EAAY,YAAY,GAAA,GAAM,GAAA;AAAA,UAC9B,UAAA,EAAY,WAAA;AAAA,UACZ,UAAA,EAAY,UAAA;AAAA,UACZ,SAAA,EAAW,YAAA;AAAA,UACX,YAAA,EAAc;AAAA,SAChB;AAAA,QAEC,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBACjB,GAAA,CAAC,KAAA,EAAA,EAAa,GAAG,YAAA,CAAa,EAAE,IAAA,EAAM,GACnC,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,KAAA,EAAO,GAAA,qBAChB,GAAA,CAAC,MAAA,EAAA,EAAgB,GAAG,aAAA,CAAc,EAAE,KAAA,EAAO,CAAA,EAAA,EAAhC,GAAmC,CAC/C,CAAA,EAAA,EAHO,CAIV,CACD;AAAA;AAAA,OAGP,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA,EA1LmB,YAAA,CAAA;AA4LnB,IAAO,yBAAA,GAAQ","file":"PrettyCode.client-Y2BVON7R.mjs","sourcesContent":["'use client';\n\nimport { Highlight, Language, themes } from 'prism-react-renderer';\nimport React from 'react';\n\nimport { CopyButton } from '@djangocfg/ui-core/components';\n\nimport { useResolvedTheme } from '@djangocfg/ui-core/hooks';\n\ninterface PrettyCodeProps {\n data: string | object;\n language: Language;\n className?: string;\n mode?: 'dark' | 'light';\n inline?: boolean;\n customBg?: string; // Custom background class\n isCompact?: boolean; // Compact mode for smaller font sizes\n}\n\nconst PrettyCode = ({ data, language, className, mode, inline = false, customBg, isCompact = false }: PrettyCodeProps) => {\n const detectedTheme = useResolvedTheme();\n\n // Font size based on compact mode\n const fontSize = isCompact ? '0.75rem' : '0.875rem'; // 12px vs 14px\n\n // Use provided mode or fall back to detected theme\n const currentTheme = mode || detectedTheme;\n const isDarkMode = currentTheme === 'dark';\n\n // Select the Prism theme based on the current theme\n const prismTheme = isDarkMode ? themes.vsDark : themes.vsLight;\n\n // Convert form object to JSON string with proper formatting\n const contentJson = typeof data === 'string' ? data : JSON.stringify(data || {}, null, 2);\n \n // Handle empty content\n if (!contentJson || contentJson.trim() === '') {\n const bgClass = customBg || 'bg-muted dark:bg-zinc-900';\n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-700 ${className || ''}`}>\n <div className=\"h-full overflow-auto p-4\">\n <p className=\"text-muted-foreground text-sm italic\">No content available</p>\n </div>\n </div>\n );\n }\n\n // Get display name for language badge\n const getLanguageDisplayName = (lang: string): string => {\n switch (lang.toLowerCase()) {\n case 'bash':\n case 'shell':\n return 'Bash';\n case 'python':\n case 'py':\n return 'Python';\n case 'javascript':\n case 'js':\n return 'JavaScript';\n case 'typescript':\n case 'ts':\n return 'TypeScript';\n case 'json':\n return 'JSON';\n case 'yaml':\n case 'yml':\n return 'YAML';\n case 'html':\n return 'HTML';\n case 'css':\n return 'CSS';\n case 'sql':\n return 'SQL';\n case 'xml':\n return 'XML';\n case 'markdown':\n case 'md':\n return 'Markdown';\n case 'plaintext':\n case 'text':\n return 'Text';\n case 'mermaid':\n return 'Mermaid';\n default:\n return lang.charAt(0).toUpperCase() + lang.slice(1);\n }\n };\n\n // Normalize language for Prism - use only basic supported languages\n const normalizedLanguage = (() => {\n const lang = language.toLowerCase();\n \n // Try basic languages that are definitely supported\n switch (lang) {\n case 'javascript':\n case 'js':\n return 'javascript';\n case 'typescript':\n case 'ts':\n return 'typescript'; // Try TypeScript first\n case 'python':\n case 'py':\n return 'python';\n case 'json':\n return 'json';\n case 'css':\n return 'css';\n case 'html':\n return 'markup';\n case 'xml':\n return 'markup';\n case 'bash':\n case 'shell':\n return 'bash';\n case 'sql':\n return 'sql';\n case 'yaml':\n case 'yml':\n return 'yaml';\n case 'markdown':\n case 'md':\n return 'markdown';\n case 'mermaid':\n return 'text'; // Mermaid is handled separately in MarkdownMessage\n default:\n // For unknown languages, try to use the original name first\n // If it doesn't work, Prism will fallback to plain text\n return lang || 'text';\n }\n })();\n\n const displayLanguage = getLanguageDisplayName(language);\n\n if (inline) {\n const inlineBgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n return (\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getTokenProps }) => (\n <code\n className={`${className} ${inlineBgClass} px-2 py-1 rounded ${isCompact ? 'text-xs' : 'text-sm'} font-mono inline-block`}\n style={{\n ...style,\n fontSize,\n fontFamily: 'monospace',\n }}\n >\n {tokens.map((line) => (\n line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))\n ))}\n </code>\n )}\n </Highlight>\n );\n }\n\n const bgClass = customBg || 'bg-muted dark:bg-[#1e1e1e]';\n \n return (\n <div className={`relative h-full ${bgClass} rounded-sm border border-border dark:border-zinc-800 dark:shadow-sm ${className || ''}`}>\n {/* Header with language badge and copy button */}\n <div className=\"absolute top-2 left-3 right-3 z-10 flex items-center justify-between\">\n <span className=\"inline-flex items-center px-2 py-1 rounded text-xs font-medium bg-background/80 text-muted-foreground border border-border/50 backdrop-blur-sm\">\n {displayLanguage}\n </span>\n <CopyButton\n value={contentJson}\n variant=\"ghost\"\n className=\"h-7 w-7 bg-background/80 border border-border/50 backdrop-blur-sm\"\n iconClassName=\"h-3.5 w-3.5\"\n title=\"Copy code\"\n />\n </div>\n \n <div className=\"h-full overflow-auto\">\n <Highlight theme={prismTheme} code={contentJson} language={normalizedLanguage as Language}>\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={`${className}`}\n style={{\n ...style,\n margin: 0,\n padding: '2.5rem 1rem 1rem 1rem', // Extra top padding for language badge\n fontSize,\n lineHeight: isCompact ? 1.4 : 1.5,\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n );\n};\n\nexport default PrettyCode; "]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from './chunk-
|
|
1
|
+
import { __name } from './chunk-CGILA3WO.mjs';
|
|
2
2
|
import { useState, useRef, useEffect } from 'react';
|
|
3
3
|
|
|
4
4
|
var animationCache = /* @__PURE__ */ new Map();
|
|
@@ -75,5 +75,5 @@ function useLottie(options) {
|
|
|
75
75
|
__name(useLottie, "useLottie");
|
|
76
76
|
|
|
77
77
|
export { useLottie };
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
79
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-6JTB2X72.mjs.map
|
|
79
|
+
//# sourceMappingURL=chunk-6JTB2X72.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tools/LottiePlayer/useLottie.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/tools/LottiePlayer/useLottie.ts"],"names":[],"mappings":"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","file":"chunk-6JTB2X72.mjs","sourcesContent":["/**\n * useLottie Hook\n *\n * Hook for loading and managing Lottie animation data\n */\n\n'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { LottieAnimationData } from './types';\n\nexport interface UseLottieOptions {\n /**\n * Animation data (JSON object) or URL to load from\n */\n src: string | object;\n\n /**\n * Enable caching of loaded animations\n * @default true\n */\n cache?: boolean;\n}\n\nexport interface UseLottieReturn {\n /**\n * Loaded animation data\n */\n animationData: object | null;\n\n /**\n * Loading state\n */\n isLoading: boolean;\n\n /**\n * Error state\n */\n error: Error | null;\n\n /**\n * Retry loading the animation\n */\n retry: () => void;\n}\n\n// Simple in-memory cache for loaded animations\nconst animationCache = new Map<string, object>();\n\n/**\n * Hook for loading Lottie animations from URLs or objects\n *\n * Features:\n * - Loads animations from URLs or accepts animation objects directly\n * - Caching support to prevent re-fetching the same animation\n * - Error handling with retry capability\n * - Loading states\n *\n * Usage:\n * ```tsx\n * const { animationData, isLoading, error, retry } = useLottie({\n * src: 'https://example.com/animation.json'\n * });\n *\n * if (isLoading) return <div>Loading...</div>;\n * if (error) return <div>Error: {error.message} <button onClick={retry}>Retry</button></div>;\n * if (!animationData) return null;\n *\n * return <LottiePlayer animationData={animationData} />;\n * ```\n */\nexport function useLottie(options: UseLottieOptions): UseLottieReturn {\n const { src, cache = true } = options;\n\n const [animationData, setAnimationData] = useState<object | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [retryCount, setRetryCount] = useState(0);\n\n // Track if component is mounted to prevent state updates on unmounted component\n const isMountedRef = useRef(true);\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n // If src is already an object, use it directly\n if (typeof src === 'object' && src !== null) {\n setAnimationData(src);\n setIsLoading(false);\n setError(null);\n return;\n }\n\n // If src is a string (URL), fetch it\n if (typeof src === 'string') {\n const loadAnimation = async () => {\n // Check cache first\n if (cache && animationCache.has(src)) {\n if (isMountedRef.current) {\n setAnimationData(animationCache.get(src)!);\n setIsLoading(false);\n setError(null);\n }\n return;\n }\n\n // Load from URL\n if (isMountedRef.current) {\n setIsLoading(true);\n setError(null);\n }\n\n try {\n const response = await fetch(src);\n\n if (!response.ok) {\n throw new Error(`Failed to load animation: ${response.status} ${response.statusText}`);\n }\n\n const data = await response.json();\n\n // Validate that it's a valid Lottie animation\n if (!data || typeof data !== 'object' || !data.v || !data.layers) {\n throw new Error('Invalid Lottie animation data');\n }\n\n // Cache the loaded animation\n if (cache) {\n animationCache.set(src, data);\n }\n\n if (isMountedRef.current) {\n setAnimationData(data);\n setIsLoading(false);\n }\n } catch (err) {\n if (isMountedRef.current) {\n setError(err instanceof Error ? err : new Error('Failed to load animation'));\n setIsLoading(false);\n }\n }\n };\n\n loadAnimation();\n }\n }, [src, cache, retryCount]);\n\n const retry = () => {\n setRetryCount((prev) => prev + 1);\n };\n\n return {\n animationData,\n isLoading,\n error,\n retry,\n };\n}\n"]}
|
|
@@ -8,5 +8,5 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
8
8
|
});
|
|
9
9
|
|
|
10
10
|
export { __name, __require };
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
12
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-CGILA3WO.mjs.map
|
|
12
|
+
//# sourceMappingURL=chunk-CGILA3WO.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-CGILA3WO.mjs"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkWGEGR3DF_cjs = require('./chunk-WGEGR3DF.cjs');
|
|
4
4
|
var lucideReact = require('lucide-react');
|
|
5
5
|
var React3 = require('react');
|
|
6
6
|
var reactJsonTree = require('react-json-tree');
|
|
@@ -13,7 +13,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
13
13
|
var React3__default = /*#__PURE__*/_interopDefault(React3);
|
|
14
14
|
var consola__default = /*#__PURE__*/_interopDefault(consola);
|
|
15
15
|
|
|
16
|
-
var JsonTreeComponent = /* @__PURE__ */
|
|
16
|
+
var JsonTreeComponent = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(({ title, data, config = {}, jsonTreeProps = {} }) => {
|
|
17
17
|
const [expandAll, setExpandAll] = React3.useState(null);
|
|
18
18
|
const [renderKey, setRenderKey] = React3.useState(0);
|
|
19
19
|
const {
|
|
@@ -63,7 +63,7 @@ var JsonTreeComponent = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(({ title, data,
|
|
|
63
63
|
base0F: "#f43f5e"
|
|
64
64
|
// Pink - for deprecations
|
|
65
65
|
};
|
|
66
|
-
const shouldExpandNodeInitially = /* @__PURE__ */
|
|
66
|
+
const shouldExpandNodeInitially = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((keyPath, nodeData, level) => {
|
|
67
67
|
if (expandAll === true) return true;
|
|
68
68
|
if (expandAll === false) return false;
|
|
69
69
|
if (level <= maxAutoExpandDepth) return true;
|
|
@@ -93,20 +93,20 @@ var JsonTreeComponent = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(({ title, data,
|
|
|
93
93
|
}
|
|
94
94
|
return null;
|
|
95
95
|
} : () => null;
|
|
96
|
-
const postprocessValue = /* @__PURE__ */
|
|
96
|
+
const postprocessValue = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((value) => {
|
|
97
97
|
if (typeof value === "string" && value.length > maxStringLength) {
|
|
98
98
|
return value.substring(0, maxStringLength) + "... (truncated)";
|
|
99
99
|
}
|
|
100
100
|
return value;
|
|
101
101
|
}, "postprocessValue");
|
|
102
|
-
const isCustomNode = /* @__PURE__ */
|
|
102
|
+
const isCustomNode = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((value) => {
|
|
103
103
|
if (typeof value === "string" && (value.startsWith("http://") || value.startsWith("https://"))) {
|
|
104
104
|
return true;
|
|
105
105
|
}
|
|
106
106
|
return false;
|
|
107
107
|
}, "isCustomNode");
|
|
108
108
|
const jsonString = JSON.stringify(data, null, 2);
|
|
109
|
-
const handleDownload = /* @__PURE__ */
|
|
109
|
+
const handleDownload = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => {
|
|
110
110
|
const blob = new Blob([jsonString], { type: "application/json" });
|
|
111
111
|
const url = URL.createObjectURL(blob);
|
|
112
112
|
const a = document.createElement("a");
|
|
@@ -189,12 +189,12 @@ var JsonTreeComponent = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(({ title, data,
|
|
|
189
189
|
] });
|
|
190
190
|
}, "JsonTreeComponent");
|
|
191
191
|
var JsonTree_default = JsonTreeComponent;
|
|
192
|
-
var PrettyCodeClient = React3.lazy(() => import('./PrettyCode.client-
|
|
193
|
-
var LoadingFallback = /* @__PURE__ */
|
|
192
|
+
var PrettyCodeClient = React3.lazy(() => import('./PrettyCode.client-2CLSV2VD.cjs'));
|
|
193
|
+
var LoadingFallback = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative rounded-sm border border-border overflow-hidden bg-muted dark:bg-zinc-900", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
194
194
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-pulse h-4 w-4 rounded-full bg-muted-foreground/20" }),
|
|
195
195
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: "Loading code..." })
|
|
196
196
|
] }) }) }), "LoadingFallback");
|
|
197
|
-
var PrettyCode = /* @__PURE__ */
|
|
197
|
+
var PrettyCode = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((props) => {
|
|
198
198
|
return /* @__PURE__ */ jsxRuntime.jsx(React3.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback, {}), children: /* @__PURE__ */ jsxRuntime.jsx(PrettyCodeClient, { ...props }) });
|
|
199
199
|
}, "PrettyCode");
|
|
200
200
|
var PrettyCode_default = PrettyCode;
|
|
@@ -203,7 +203,7 @@ var PrettyCode_default = PrettyCode;
|
|
|
203
203
|
function findApiKeyById(apiKeys, keyId) {
|
|
204
204
|
return apiKeys.find((key) => key.id === keyId) || null;
|
|
205
205
|
}
|
|
206
|
-
|
|
206
|
+
chunkWGEGR3DF_cjs.__name(findApiKeyById, "findApiKeyById");
|
|
207
207
|
|
|
208
208
|
// src/tools/OpenapiViewer/utils/versionManager.ts
|
|
209
209
|
var API_VERSIONS = [
|
|
@@ -214,21 +214,21 @@ var API_VERSIONS = [
|
|
|
214
214
|
isDefault: true
|
|
215
215
|
}
|
|
216
216
|
];
|
|
217
|
-
var detectEndpointVersion = /* @__PURE__ */
|
|
217
|
+
var detectEndpointVersion = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((path) => {
|
|
218
218
|
const versionMatch = path.match(/\/api\/[^/]+\/(v\d+)\//);
|
|
219
219
|
if (versionMatch && versionMatch[1]) {
|
|
220
220
|
return versionMatch[1];
|
|
221
221
|
}
|
|
222
222
|
return "v1";
|
|
223
223
|
}, "detectEndpointVersion");
|
|
224
|
-
var isEndpointInVersion = /* @__PURE__ */
|
|
224
|
+
var isEndpointInVersion = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((endpoint, version) => {
|
|
225
225
|
const endpointVersion = detectEndpointVersion(endpoint.path);
|
|
226
226
|
return endpointVersion === version;
|
|
227
227
|
}, "isEndpointInVersion");
|
|
228
|
-
var filterEndpointsByVersion = /* @__PURE__ */
|
|
228
|
+
var filterEndpointsByVersion = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((endpoints, version) => {
|
|
229
229
|
return endpoints.filter((endpoint) => isEndpointInVersion(endpoint, version));
|
|
230
230
|
}, "filterEndpointsByVersion");
|
|
231
|
-
var deduplicateEndpoints = /* @__PURE__ */
|
|
231
|
+
var deduplicateEndpoints = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((endpoints, preferredVersion) => {
|
|
232
232
|
const endpointMap = /* @__PURE__ */ new Map();
|
|
233
233
|
const groupedEndpoints = /* @__PURE__ */ new Map();
|
|
234
234
|
endpoints.forEach((endpoint) => {
|
|
@@ -252,13 +252,13 @@ var deduplicateEndpoints = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name((endpoints,
|
|
|
252
252
|
});
|
|
253
253
|
return Array.from(endpointMap.values());
|
|
254
254
|
}, "deduplicateEndpoints");
|
|
255
|
-
var normalizeEndpointPath = /* @__PURE__ */
|
|
255
|
+
var normalizeEndpointPath = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((path) => {
|
|
256
256
|
return path.replace(/\/v\d+\//, "/");
|
|
257
257
|
}, "normalizeEndpointPath");
|
|
258
|
-
var getVersionById = /* @__PURE__ */
|
|
258
|
+
var getVersionById = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((versionId) => {
|
|
259
259
|
return API_VERSIONS.find((v) => v.id === versionId);
|
|
260
260
|
}, "getVersionById");
|
|
261
|
-
var getDefaultVersion = /* @__PURE__ */
|
|
261
|
+
var getDefaultVersion = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => {
|
|
262
262
|
const defaultVersion = API_VERSIONS.find((v) => v.isDefault);
|
|
263
263
|
if (defaultVersion) {
|
|
264
264
|
return defaultVersion;
|
|
@@ -268,7 +268,7 @@ var getDefaultVersion = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(() => {
|
|
|
268
268
|
}
|
|
269
269
|
throw new Error("No API versions defined");
|
|
270
270
|
}, "getDefaultVersion");
|
|
271
|
-
var getVersionStats = /* @__PURE__ */
|
|
271
|
+
var getVersionStats = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((endpoints) => {
|
|
272
272
|
const stats = {};
|
|
273
273
|
API_VERSIONS.forEach((version) => {
|
|
274
274
|
stats[version.id] = filterEndpointsByVersion(endpoints, version.id).length;
|
|
@@ -292,14 +292,14 @@ var HTTP_STATUS_COLORS = {
|
|
|
292
292
|
};
|
|
293
293
|
|
|
294
294
|
// src/tools/OpenapiViewer/utils/formatters.ts
|
|
295
|
-
var getMethodColor = /* @__PURE__ */
|
|
295
|
+
var getMethodColor = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((method) => {
|
|
296
296
|
return HTTP_METHOD_COLORS[method.toUpperCase()] || "default";
|
|
297
297
|
}, "getMethodColor");
|
|
298
|
-
var getStatusColor = /* @__PURE__ */
|
|
298
|
+
var getStatusColor = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((status) => {
|
|
299
299
|
const firstDigit = Math.floor(status / 100).toString();
|
|
300
300
|
return HTTP_STATUS_COLORS[firstDigit] || "default";
|
|
301
301
|
}, "getStatusColor");
|
|
302
|
-
var isValidJson = /* @__PURE__ */
|
|
302
|
+
var isValidJson = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((str) => {
|
|
303
303
|
if (!str || typeof str !== "string") return false;
|
|
304
304
|
try {
|
|
305
305
|
JSON.parse(str);
|
|
@@ -308,7 +308,7 @@ var isValidJson = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name((str) => {
|
|
|
308
308
|
return false;
|
|
309
309
|
}
|
|
310
310
|
}, "isValidJson");
|
|
311
|
-
var parseRequestHeaders = /* @__PURE__ */
|
|
311
|
+
var parseRequestHeaders = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((headersString) => {
|
|
312
312
|
if (!headersString || typeof headersString !== "string") {
|
|
313
313
|
return { "Content-Type": "application/json" };
|
|
314
314
|
}
|
|
@@ -319,7 +319,7 @@ var parseRequestHeaders = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name((headersStrin
|
|
|
319
319
|
return { "Content-Type": "application/json" };
|
|
320
320
|
}
|
|
321
321
|
}, "parseRequestHeaders");
|
|
322
|
-
var substituteUrlParameters = /* @__PURE__ */
|
|
322
|
+
var substituteUrlParameters = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((url, parameters) => {
|
|
323
323
|
let substitutedUrl = url;
|
|
324
324
|
Object.entries(parameters).forEach(([key, value]) => {
|
|
325
325
|
if (value && value.trim() !== "") {
|
|
@@ -334,7 +334,7 @@ var substituteUrlParameters = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name((url, par
|
|
|
334
334
|
});
|
|
335
335
|
return substitutedUrl;
|
|
336
336
|
}, "substituteUrlParameters");
|
|
337
|
-
var createInitialState = /* @__PURE__ */
|
|
337
|
+
var createInitialState = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => ({
|
|
338
338
|
// Step management
|
|
339
339
|
currentStep: "endpoints",
|
|
340
340
|
steps: ["endpoints", "request", "response"],
|
|
@@ -358,18 +358,18 @@ var createInitialState = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(() => ({
|
|
|
358
358
|
sidebarOpen: false
|
|
359
359
|
}), "createInitialState");
|
|
360
360
|
var PlaygroundContext = React3.createContext(void 0);
|
|
361
|
-
var usePlaygroundContext = /* @__PURE__ */
|
|
361
|
+
var usePlaygroundContext = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => {
|
|
362
362
|
const context = React3.useContext(PlaygroundContext);
|
|
363
363
|
if (!context) {
|
|
364
364
|
throw new Error("usePlaygroundContext must be used within a PlaygroundProvider");
|
|
365
365
|
}
|
|
366
366
|
return context;
|
|
367
367
|
}, "usePlaygroundContext");
|
|
368
|
-
var PlaygroundProvider = /* @__PURE__ */
|
|
368
|
+
var PlaygroundProvider = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(({ children, config }) => {
|
|
369
369
|
const [state, setState] = React3.useState(() => createInitialState());
|
|
370
370
|
const apiKeys = React3__default.default.useMemo(() => [], []);
|
|
371
371
|
const isLoadingApiKeys = false;
|
|
372
|
-
const updateState = /* @__PURE__ */
|
|
372
|
+
const updateState = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((updates) => {
|
|
373
373
|
setState((prev) => ({ ...prev, ...updates }));
|
|
374
374
|
}, "updateState");
|
|
375
375
|
React3.useEffect(() => {
|
|
@@ -416,22 +416,22 @@ var PlaygroundProvider = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(({ children, c
|
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
418
|
}, [state.parameters, state.selectedEndpoint, state.requestUrl]);
|
|
419
|
-
const setCurrentStep = /* @__PURE__ */
|
|
419
|
+
const setCurrentStep = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((step) => {
|
|
420
420
|
updateState({ currentStep: step });
|
|
421
421
|
}, "setCurrentStep");
|
|
422
|
-
const goToNextStep = /* @__PURE__ */
|
|
422
|
+
const goToNextStep = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => {
|
|
423
423
|
const currentIndex = state.steps.indexOf(state.currentStep);
|
|
424
424
|
if (currentIndex < state.steps.length - 1) {
|
|
425
425
|
updateState({ currentStep: state.steps[currentIndex + 1] });
|
|
426
426
|
}
|
|
427
427
|
}, "goToNextStep");
|
|
428
|
-
const goToPreviousStep = /* @__PURE__ */
|
|
428
|
+
const goToPreviousStep = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => {
|
|
429
429
|
const currentIndex = state.steps.indexOf(state.currentStep);
|
|
430
430
|
if (currentIndex > 0) {
|
|
431
431
|
updateState({ currentStep: state.steps[currentIndex - 1] });
|
|
432
432
|
}
|
|
433
433
|
}, "goToPreviousStep");
|
|
434
|
-
const setSelectedEndpoint = /* @__PURE__ */
|
|
434
|
+
const setSelectedEndpoint = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((endpoint) => {
|
|
435
435
|
if (endpoint) {
|
|
436
436
|
updateState({
|
|
437
437
|
selectedEndpoint: endpoint,
|
|
@@ -445,43 +445,43 @@ var PlaygroundProvider = /* @__PURE__ */ chunkUQ3XI5MY_cjs.__name(({ children, c
|
|
|
445
445
|
updateState({ selectedEndpoint: endpoint });
|
|
446
446
|
}
|
|
447
447
|
}, "setSelectedEndpoint");
|
|
448
|
-
const setSelectedCategory = /* @__PURE__ */
|
|
448
|
+
const setSelectedCategory = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((category) => {
|
|
449
449
|
updateState({ selectedCategory: category });
|
|
450
450
|
}, "setSelectedCategory");
|
|
451
|
-
const setSearchTerm = /* @__PURE__ */
|
|
451
|
+
const setSearchTerm = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((term) => {
|
|
452
452
|
updateState({ searchTerm: term });
|
|
453
453
|
}, "setSearchTerm");
|
|
454
|
-
const setSelectedVersion = /* @__PURE__ */
|
|
454
|
+
const setSelectedVersion = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((version) => {
|
|
455
455
|
updateState({ selectedVersion: version });
|
|
456
456
|
}, "setSelectedVersion");
|
|
457
|
-
const setRequestUrl = /* @__PURE__ */
|
|
457
|
+
const setRequestUrl = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((url) => {
|
|
458
458
|
updateState({ requestUrl: url });
|
|
459
459
|
}, "setRequestUrl");
|
|
460
|
-
const setRequestMethod = /* @__PURE__ */
|
|
460
|
+
const setRequestMethod = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((method) => {
|
|
461
461
|
updateState({ requestMethod: method });
|
|
462
462
|
}, "setRequestMethod");
|
|
463
|
-
const setRequestHeaders = /* @__PURE__ */
|
|
463
|
+
const setRequestHeaders = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((headers) => {
|
|
464
464
|
updateState({ requestHeaders: headers });
|
|
465
465
|
}, "setRequestHeaders");
|
|
466
|
-
const setRequestBody = /* @__PURE__ */
|
|
466
|
+
const setRequestBody = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((body) => {
|
|
467
467
|
updateState({ requestBody: body });
|
|
468
468
|
}, "setRequestBody");
|
|
469
|
-
const setSelectedApiKey = /* @__PURE__ */
|
|
469
|
+
const setSelectedApiKey = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((apiKeyId) => {
|
|
470
470
|
updateState({ selectedApiKey: apiKeyId });
|
|
471
471
|
}, "setSelectedApiKey");
|
|
472
|
-
const setManualApiToken = /* @__PURE__ */
|
|
472
|
+
const setManualApiToken = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((manualApiToken) => {
|
|
473
473
|
updateState({ manualApiToken });
|
|
474
474
|
}, "setManualApiToken");
|
|
475
|
-
const setParameters = /* @__PURE__ */
|
|
475
|
+
const setParameters = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((parameters) => {
|
|
476
476
|
updateState({ parameters });
|
|
477
477
|
}, "setParameters");
|
|
478
|
-
const setResponse = /* @__PURE__ */
|
|
478
|
+
const setResponse = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((response) => {
|
|
479
479
|
updateState({ response });
|
|
480
480
|
}, "setResponse");
|
|
481
|
-
const setLoading = /* @__PURE__ */
|
|
481
|
+
const setLoading = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((loading) => {
|
|
482
482
|
updateState({ loading });
|
|
483
483
|
}, "setLoading");
|
|
484
|
-
const setSidebarOpen = /* @__PURE__ */
|
|
484
|
+
const setSidebarOpen = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name((sidebarOpen) => {
|
|
485
485
|
updateState({ sidebarOpen });
|
|
486
486
|
}, "setSidebarOpen");
|
|
487
487
|
const clearAll = React3.useCallback(() => {
|
|
@@ -587,5 +587,5 @@ exports.getVersionStats = getVersionStats;
|
|
|
587
587
|
exports.isValidJson = isValidJson;
|
|
588
588
|
exports.parseRequestHeaders = parseRequestHeaders;
|
|
589
589
|
exports.usePlaygroundContext = usePlaygroundContext;
|
|
590
|
-
//# sourceMappingURL=chunk-
|
|
591
|
-
//# sourceMappingURL=chunk-
|
|
590
|
+
//# sourceMappingURL=chunk-FB5QBSI3.cjs.map
|
|
591
|
+
//# sourceMappingURL=chunk-FB5QBSI3.cjs.map
|