@salilvnair/dui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/chunks/EditorView.shell-BGH2VhWM.js +460 -0
  4. package/dist/chunks/EditorView.shell-BGH2VhWM.js.map +1 -0
  5. package/dist/chunks/daakia-icons-DxWnX_IQ.js +1726 -0
  6. package/dist/chunks/daakia-icons-DxWnX_IQ.js.map +1 -0
  7. package/dist/icons/daakia-icons.d.ts +304 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.js +17032 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/lib/components/button/AIButtonView.d.ts +20 -0
  12. package/dist/lib/components/button/ButtonView.d.ts +28 -0
  13. package/dist/lib/components/button/DropDownButtonView.d.ts +19 -0
  14. package/dist/lib/components/button/IconButtonView.d.ts +22 -0
  15. package/dist/lib/components/button/SegmentedView.d.ts +17 -0
  16. package/dist/lib/components/button/SplitButtonView.d.ts +23 -0
  17. package/dist/lib/components/chips/ChipView.d.ts +21 -0
  18. package/dist/lib/components/display/CodeBlockView.d.ts +11 -0
  19. package/dist/lib/components/display/ColoredTextView.d.ts +18 -0
  20. package/dist/lib/components/display/CopyButtonView.d.ts +11 -0
  21. package/dist/lib/components/display/DataTableView.d.ts +27 -0
  22. package/dist/lib/components/display/DottedCardView.d.ts +10 -0
  23. package/dist/lib/components/display/EmptyStateView.d.ts +14 -0
  24. package/dist/lib/components/display/ExpandableLogEntryView.d.ts +14 -0
  25. package/dist/lib/components/display/FeatureCategoryView.d.ts +18 -0
  26. package/dist/lib/components/display/HudView.d.ts +25 -0
  27. package/dist/lib/components/display/JsonTreeView.d.ts +11 -0
  28. package/dist/lib/components/display/LiveColorCustomizer.d.ts +21 -0
  29. package/dist/lib/components/display/LoaderView.d.ts +12 -0
  30. package/dist/lib/components/display/MarkdownView.d.ts +19 -0
  31. package/dist/lib/components/display/PromptCardView.d.ts +33 -0
  32. package/dist/lib/components/display/PromptLibraryEditorView.d.ts +32 -0
  33. package/dist/lib/components/display/PromptLibraryListView.d.ts +30 -0
  34. package/dist/lib/components/display/StageView.d.ts +26 -0
  35. package/dist/lib/components/display/StatsCardView.d.ts +15 -0
  36. package/dist/lib/components/display/StatusIndicatorView.d.ts +14 -0
  37. package/dist/lib/components/display/ToastView.d.ts +19 -0
  38. package/dist/lib/components/display/YamlKeyChip.d.ts +15 -0
  39. package/dist/lib/components/input/CheckboxView.d.ts +15 -0
  40. package/dist/lib/components/input/DebugEditorView.d.ts +26 -0
  41. package/dist/lib/components/input/DiffEditorView.d.ts +18 -0
  42. package/dist/lib/components/input/DiffEditorView.fallback.d.ts +2 -0
  43. package/dist/lib/components/input/DiffEditorView.monaco.d.ts +2 -0
  44. package/dist/lib/components/input/DurationInputView.d.ts +15 -0
  45. package/dist/lib/components/input/EditorView.d.ts +222 -0
  46. package/dist/lib/components/input/EditorView.fallback.d.ts +10 -0
  47. package/dist/lib/components/input/EditorView.monaco.d.ts +2 -0
  48. package/dist/lib/components/input/EditorView.shell.d.ts +13 -0
  49. package/dist/lib/components/input/FormDataTableView.d.ts +22 -0
  50. package/dist/lib/components/input/HiddenKeyValueItemView.d.ts +22 -0
  51. package/dist/lib/components/input/HighlightedInputView.d.ts +26 -0
  52. package/dist/lib/components/input/KeyValueTableRowView.d.ts +31 -0
  53. package/dist/lib/components/input/KeyValueTableView.d.ts +59 -0
  54. package/dist/lib/components/input/MergedInputView.d.ts +43 -0
  55. package/dist/lib/components/input/MultilineInputView.d.ts +15 -0
  56. package/dist/lib/components/input/SearchInputView.d.ts +17 -0
  57. package/dist/lib/components/input/SegmentedControlView.d.ts +23 -0
  58. package/dist/lib/components/input/SelectInputView.d.ts +31 -0
  59. package/dist/lib/components/input/SelectTextInputView.d.ts +44 -0
  60. package/dist/lib/components/input/SliderView.d.ts +15 -0
  61. package/dist/lib/components/input/TabView.d.ts +28 -0
  62. package/dist/lib/components/input/TagInputView.d.ts +10 -0
  63. package/dist/lib/components/input/TextInputView.d.ts +36 -0
  64. package/dist/lib/components/input/ThemeCardSelectorView.d.ts +18 -0
  65. package/dist/lib/components/input/ToggleSwitchView.d.ts +19 -0
  66. package/dist/lib/components/layout/BottomPanelView.d.ts +16 -0
  67. package/dist/lib/components/layout/CollapsibleSectionView.d.ts +14 -0
  68. package/dist/lib/components/layout/DebugView.d.ts +63 -0
  69. package/dist/lib/components/layout/FolderView.d.ts +85 -0
  70. package/dist/lib/components/layout/ResizablePanelView.d.ts +10 -0
  71. package/dist/lib/components/layout/SettingsNavView.d.ts +29 -0
  72. package/dist/lib/components/layout/SideNavView.d.ts +39 -0
  73. package/dist/lib/components/layout/SpacerView.d.ts +7 -0
  74. package/dist/lib/components/layout/SplitPanelView.d.ts +33 -0
  75. package/dist/lib/components/modal/ContextMenuView.d.ts +28 -0
  76. package/dist/lib/components/modal/InfoPopupView.d.ts +17 -0
  77. package/dist/lib/components/modal/ModalView.d.ts +41 -0
  78. package/dist/lib/components/rearrange/RearrangeView.d.ts +34 -0
  79. package/dist/lib/components/tabs/PilledTabView.d.ts +19 -0
  80. package/dist/lib/components/tabs/TabBarView.d.ts +28 -0
  81. package/dist/lib/components/tabs/TabView.d.ts +34 -0
  82. package/dist/lib/core/ButtonBase.d.ts +28 -0
  83. package/dist/lib/core/CardBase.d.ts +21 -0
  84. package/dist/lib/core/ChipBase.d.ts +21 -0
  85. package/dist/lib/core/DisplayBase.d.ts +21 -0
  86. package/dist/lib/core/DuiContext.d.ts +53 -0
  87. package/dist/lib/core/DuiTokens.d.ts +115 -0
  88. package/dist/lib/core/DuiTypes.d.ts +29 -0
  89. package/dist/lib/core/EditorBase.d.ts +13 -0
  90. package/dist/lib/core/InputBase.d.ts +25 -0
  91. package/dist/lib/core/MenuBase.d.ts +23 -0
  92. package/dist/lib/core/NavBase.d.ts +26 -0
  93. package/dist/lib/core/OverlayBase.d.ts +20 -0
  94. package/dist/lib/core/SelectBase.d.ts +22 -0
  95. package/dist/lib/core/TabBase.d.ts +25 -0
  96. package/dist/lib/core/TableBase.d.ts +19 -0
  97. package/dist/lib/core/ToggleBase.d.ts +19 -0
  98. package/dist/lib/core/index.d.ts +25 -0
  99. package/dist/lib/index.d.ts +159 -0
  100. package/dist/lib/monaco-runtime.d.ts +29 -0
  101. package/dist/lib/theme/core.d.ts +8 -0
  102. package/dist/lib/theme/editor.d.ts +11 -0
  103. package/dist/lib/theme/utils.d.ts +6 -0
  104. package/dist/monaco-setup.d.ts +4 -0
  105. package/dist/monaco-setup.js +883 -0
  106. package/dist/monaco-setup.js.map +1 -0
  107. package/dist/style.css +1 -0
  108. package/dist/style.js +2 -0
  109. package/dist/style.js.map +1 -0
  110. package/dist/theme/core.js +191 -0
  111. package/dist/theme/core.js.map +1 -0
  112. package/dist/theme/editor.js +104 -0
  113. package/dist/theme/editor.js.map +1 -0
  114. package/dist/theme/utils.js +67 -0
  115. package/dist/theme/utils.js.map +1 -0
  116. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-setup.js","sources":["../src/hooks/useAppTheme.ts","../src/services/dk-repl.ts","../src/hooks/useBreakpointGutter.ts","../src/store/debug-store.ts","../src/lib/components/input/EditorView.monaco.tsx","../src/lib/components/input/DiffEditorView.monaco.tsx","../src/monaco-setup.ts"],"sourcesContent":["/**\n * useAppTheme — returns 'dark' | 'light' and re-renders on change.\n *\n * Detects theme from (in priority order):\n * 1. VS Code webview: data-vscode-theme-kind on <body> (set by VS Code host)\n * 2. Generic: data-theme on <html> (daakia / other web apps)\n * 3. Fallback: 'dark'\n */\nimport { useState, useEffect } from 'react';\n\nfunction resolveTheme(): 'dark' | 'light' {\n const vsKind =\n document.body?.getAttribute('data-vscode-theme-kind') ||\n document.documentElement.getAttribute('data-vscode-theme-kind');\n if (vsKind) return vsKind === 'vscode-light' ? 'light' : 'dark';\n return (document.documentElement.getAttribute('data-theme') as 'dark' | 'light') || 'dark';\n}\n\nexport function useAppTheme(): 'dark' | 'light' {\n const [theme, setTheme] = useState<'dark' | 'light'>(resolveTheme);\n\n useEffect(() => {\n const update = () => setTheme(resolveTheme());\n const htmlObs = new MutationObserver(update);\n htmlObs.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme', 'data-vscode-theme-kind'] });\n const bodyObs = new MutationObserver(update);\n if (document.body) bodyObs.observe(document.body, { attributes: true, attributeFilter: ['data-vscode-theme-kind'] });\n return () => { htmlObs.disconnect(); bodyObs.disconnect(); };\n }, []);\n\n return theme;\n}\n","// Stub — dk-repl completions are daakia-specific and not used in standalone DUI.\nexport const DK_TYPE_DEFS = '';\nexport function getDkCompletions(_text: string, _monaco: unknown, _pos: unknown): unknown[] {\n return [];\n}\n","import { useRef, useEffect, useCallback, MutableRefObject } from 'react';\n\nexport interface BreakpointGutterOptions {\n breakpoints?: number[];\n disabledBreakpoints?: number[];\n conditionalBreakpointLines?: number[];\n /** Currently paused line (1-based) — shows yellow highlight */\n pausedLine?: number | null;\n onToggleBreakpoint?: (line: number) => void;\n onGlyphContextMenu?: (line: number, pos: { x: number; y: number }) => void;\n}\n\n/**\n * Encapsulates all breakpoint gutter logic for a Monaco editor:\n * - Line validation (only skips empty lines)\n * - Breakpoint dot decorations (red/disabled/conditional)\n * - Glyph margin click & context-menu handlers\n * - Hover hint (faded dot on valid, non-breakpointed lines)\n *\n * Returns `attach(editor, monaco)` to be called in onMount,\n * and handles cleanup/decoration updates via effects.\n */\nexport function useBreakpointGutter(options: BreakpointGutterOptions) {\n const {\n breakpoints,\n disabledBreakpoints,\n conditionalBreakpointLines,\n pausedLine,\n onToggleBreakpoint,\n onGlyphContextMenu,\n } = options;\n\n const editorRef = useRef<any>(null);\n const monacoRef = useRef<any>(null);\n const decorationsRef = useRef<string[]>([]);\n const pausedDecoRef = useRef<string[]>([]);\n const hoverDecoRef = useRef<string[]>([]);\n const disposablesRef = useRef<any[]>([]);\n\n const isBreakpointableLine = useCallback((lineNo: number): boolean => {\n const editor = editorRef.current;\n if (!editor) return true;\n const model = editor.getModel();\n if (!model || lineNo > model.getLineCount()) return false;\n const lineContent = model.getLineContent(lineNo).trim();\n return !!lineContent;\n }, []);\n\n // Sync breakpoint decorations when breakpoints change\n useEffect(() => {\n const editor = editorRef.current;\n const monaco = monacoRef.current;\n if (!editor || !monaco) return;\n\n const decos: any[] = [];\n\n if (breakpoints) {\n for (const line of breakpoints) {\n // Skip breakpoint glyph on the paused line — the arrow \"gulps\" it\n if (pausedLine && line === pausedLine) continue;\n\n const isDisabled = disabledBreakpoints?.includes(line);\n const isConditional = conditionalBreakpointLines?.includes(line);\n let glyphClass = 'daakia-bp-glyph';\n if (isDisabled) glyphClass = 'daakia-bp-glyph--disabled';\n else if (isConditional) glyphClass = 'daakia-bp-glyph--conditional';\n\n decos.push({\n range: new monaco.Range(line, 1, line, 1),\n options: {\n isWholeLine: true,\n className: isDisabled ? '' : 'daakia-bp-line',\n stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n glyphMarginClassName: glyphClass,\n glyphMarginHoverMessage: {\n value: isConditional ? 'Conditional Breakpoint' : isDisabled ? 'Disabled Breakpoint' : 'Breakpoint',\n },\n },\n });\n }\n }\n\n decorationsRef.current = editor.deltaDecorations(decorationsRef.current, decos);\n }, [breakpoints, disabledBreakpoints, conditionalBreakpointLines, pausedLine]);\n\n // Sync paused-line highlight (yellow background + arrow in glyph margin)\n useEffect(() => {\n const editor = editorRef.current;\n const monaco = monacoRef.current;\n if (!editor || !monaco) return;\n\n if (pausedLine) {\n // Use combined class when paused line is also a breakpoint line\n const isOnBreakpoint = breakpoints?.includes(pausedLine);\n const glyphClass = isOnBreakpoint\n ? 'daakia-paused-line__arrow daakia-paused-line__arrow--with-bp'\n : 'daakia-paused-line__arrow';\n\n pausedDecoRef.current = editor.deltaDecorations(pausedDecoRef.current, [{\n range: new monaco.Range(pausedLine, 1, pausedLine, 1),\n options: {\n isWholeLine: true,\n className: 'daakia-paused-line',\n glyphMarginClassName: glyphClass,\n stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n },\n }]);\n // Scroll to the paused line\n editor.revealLineInCenter(pausedLine);\n } else {\n pausedDecoRef.current = editor.deltaDecorations(pausedDecoRef.current, []);\n }\n }, [pausedLine, breakpoints]);\n\n // Cleanup disposables on unmount\n useEffect(() => {\n return () => {\n disposablesRef.current.forEach(d => d?.dispose?.());\n disposablesRef.current = [];\n };\n }, []);\n\n /**\n * Call this inside Monaco's onMount handler to attach all gutter interactions.\n * Returns the disposables (also tracked internally for auto-cleanup).\n */\n const attach = useCallback((editor: any, monaco: any) => {\n editorRef.current = editor;\n monacoRef.current = monaco;\n\n // Mark the entire margin container so RightClickMenu can detect gutter clicks\n const domNode = editor.getDomNode();\n if (domNode) {\n const marginContainer = domNode.querySelector('.margin');\n if (marginContainer) marginContainer.setAttribute('data-daakia-bp-gutter', '');\n }\n\n // Left-click to toggle breakpoint (right-click is handled separately for context menu)\n if (onToggleBreakpoint) {\n const d1 = editor.onMouseDown((e: any) => {\n if (e.event.leftButton && e.target.type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN) {\n const line = e.target.position?.lineNumber;\n if (line && isBreakpointableLine(line)) onToggleBreakpoint(line);\n }\n });\n disposablesRef.current.push(d1);\n }\n\n // Right-click context menu — use DOM-level listener to intercept BEFORE Monaco shows its own menu\n if (onGlyphContextMenu) {\n let glyphRightClick: { line: number; x: number; y: number } | null = null;\n\n // Detect right-click on any gutter zone (glyph margin, line numbers, line decorations)\n const d2a = editor.onMouseDown((e: any) => {\n if (\n e.event.rightButton &&\n (e.target.type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN ||\n e.target.type === monaco.editor.MouseTargetType.GUTTER_LINE_NUMBERS ||\n e.target.type === monaco.editor.MouseTargetType.GUTTER_LINE_DECORATIONS)\n ) {\n const line = e.target.position?.lineNumber;\n if (line && isBreakpointableLine(line)) {\n glyphRightClick = { line, x: e.event.posx, y: e.event.posy };\n }\n }\n });\n disposablesRef.current.push(d2a);\n\n // DOM-level contextmenu intercept — prevents Monaco's built-in menu on gutter area\n const domNode = editor.getDomNode();\n if (domNode) {\n const domHandler = (ev: MouseEvent) => {\n if (glyphRightClick) {\n ev.preventDefault();\n ev.stopPropagation();\n onGlyphContextMenu(glyphRightClick.line, { x: glyphRightClick.x, y: glyphRightClick.y });\n glyphRightClick = null;\n } else if ((ev.target as HTMLElement).closest('[data-daakia-bp-gutter]')) {\n // Fallback: block Monaco's default menu for any gutter right-click\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n domNode.addEventListener('contextmenu', domHandler, true); // capture phase\n disposablesRef.current.push({ dispose: () => domNode.removeEventListener('contextmenu', domHandler, true) });\n }\n }\n\n // Hover hint: faded dot on valid non-breakpointed lines\n if (onToggleBreakpoint) {\n const d3 = editor.onMouseMove((e: any) => {\n if (e.target.type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN) {\n const line = e.target.position?.lineNumber;\n if (line && isBreakpointableLine(line)) {\n const model = editor.getModel();\n if (model) {\n const lineDecos = model.getLineDecorations(line);\n const hasBpDeco = lineDecos?.some((d: any) =>\n d.options?.glyphMarginClassName?.startsWith('daakia-bp-glyph') &&\n !d.options?.glyphMarginClassName?.includes('hover')\n );\n if (!hasBpDeco) {\n hoverDecoRef.current = editor.deltaDecorations(hoverDecoRef.current, [{\n range: new monaco.Range(line, 1, line, 1),\n options: {\n isWholeLine: false,\n stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n glyphMarginClassName: 'daakia-bp-glyph--hover',\n glyphMarginHoverMessage: { value: 'Left-click to add a breakpoint' },\n },\n }]);\n return;\n }\n }\n }\n }\n // Clear hover when not on glyph margin\n if (hoverDecoRef.current.length) {\n hoverDecoRef.current = editor.deltaDecorations(hoverDecoRef.current, []);\n }\n });\n disposablesRef.current.push(d3);\n\n const d4 = editor.onMouseLeave(() => {\n if (hoverDecoRef.current.length) {\n hoverDecoRef.current = editor.deltaDecorations(hoverDecoRef.current, []);\n }\n });\n disposablesRef.current.push(d4);\n }\n\n // Apply breakpoint decorations immediately after attach (fixes disappearing on remount)\n if (breakpoints) {\n const decos: any[] = [];\n for (const line of breakpoints) {\n const isDisabled = disabledBreakpoints?.includes(line);\n const isConditional = conditionalBreakpointLines?.includes(line);\n let glyphClass = 'daakia-bp-glyph';\n if (isDisabled) glyphClass = 'daakia-bp-glyph--disabled';\n else if (isConditional) glyphClass = 'daakia-bp-glyph--conditional';\n\n decos.push({\n range: new monaco.Range(line, 1, line, 1),\n options: {\n isWholeLine: true,\n className: isDisabled ? '' : 'daakia-bp-line',\n stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n glyphMarginClassName: glyphClass,\n glyphMarginHoverMessage: {\n value: isConditional ? 'Conditional Breakpoint' : isDisabled ? 'Disabled Breakpoint' : 'Breakpoint',\n },\n },\n });\n }\n decorationsRef.current = editor.deltaDecorations(decorationsRef.current, decos);\n }\n }, [onToggleBreakpoint, onGlyphContextMenu, isBreakpointableLine, breakpoints, disabledBreakpoints, conditionalBreakpointLines]);\n\n return { attach };\n}\n","// Stub — debug store is daakia-specific.\ninterface DebugState {\n navigateLine: number | null;\n setNavigateLine: (line: number | null) => void;\n active: boolean;\n status: 'idle' | 'running' | 'paused';\n variables: { name: string; value: unknown; type: string }[];\n}\n\nconst state: DebugState = {\n navigateLine: null,\n setNavigateLine: () => {},\n active: false,\n status: 'idle',\n variables: [],\n};\n\nexport function useDebugStore<T>(selector: (s: DebugState) => T): T {\n return selector(state);\n}\nuseDebugStore.getState = () => state;\n","import Editor, { type OnMount } from '@monaco-editor/react';\nimport { useRef, useMemo, useEffect } from 'react';\nimport { useAppTheme } from '../../../hooks/useAppTheme';\nimport { getDkCompletions, DK_TYPE_DEFS } from '../../../services/dk-repl';\nimport { initGraphQLCompletionProvider } from '../../../services/graphql-completion';\nimport { useEditorBase } from '../../core/EditorBase';\nimport { EditorShell } from './EditorView.shell';\nimport type { EditorViewProps, EditorLanguage, EditorOptions, EditorContextMenuMode } from './EditorView';\n\n// ─── Debug-only imports — only loaded when debugSupported=true ─────────────────\nimport { useBreakpointGutter } from '../../../hooks/useBreakpointGutter';\nimport { useDebugVariableHover } from '../../../hooks/useDebugVariableHover';\nimport { useDebugStore } from '../../../store/debug-store';\n\n// This file is only ever reached by '@salilvnair/dui/monaco-setup' — a\n// separate, explicit opt-in subpath, never referenced (statically or via\n// lazy()) from the main package entry. That's what makes a plain top-level\n// import safe here: importing monaco-setup already requires Monaco installed.\n// See monaco-runtime.ts for why an in-place lazy()/dynamic-import approach\n// inside the always-loaded EditorView.tsx does not work.\n\nlet dkLibRegistered = false;\n\nconst EXT_MAP: Partial<Record<EditorLanguage, string>> = {\n javascript: '.js', typescript: '.ts', json: '.json', xml: '.xml',\n html: '.html', css: '.css', graphql: '.graphql', python: '.py',\n yaml: '.yaml', sql: '.sql', markdown: '.md', plaintext: '.txt',\n};\n\nfunction formatXml(xml: string): string {\n const INDENT = ' ';\n let depth = 0;\n let result = '';\n const tokens = xml.replace(/>\\s*</g, '><').split(/(?<=>)(?=<)/);\n for (const token of tokens) {\n const isClosing = /^<\\//.test(token);\n const isSelfClosing = /\\/>$/.test(token) || /^<!/.test(token) || /^<\\?/.test(token);\n if (isClosing) depth = Math.max(0, depth - 1);\n result += INDENT.repeat(depth) + token.trim() + '\\n';\n if (!isClosing && !isSelfClosing && /^<[^/!?]/.test(token)) depth++;\n }\n return result.trimEnd();\n}\n\nfunction formatYaml(yaml: string): string {\n return yaml\n .split('\\n')\n .map(line => line.trimEnd())\n .join('\\n')\n .replace(/\\n{3,}/g, '\\n\\n')\n .trim();\n}\n\nfunction formatSql(sql: string): string {\n const CLAUSE_RE = /\\b(SELECT|DISTINCT|FROM|WHERE|INNER JOIN|LEFT JOIN|RIGHT JOIN|FULL OUTER JOIN|FULL JOIN|CROSS JOIN|JOIN|ON|AND|OR|NOT|ORDER BY|GROUP BY|HAVING|LIMIT|OFFSET|UNION ALL|UNION|INTERSECT|EXCEPT|INSERT INTO|VALUES|UPDATE|SET|DELETE FROM|CREATE TABLE|DROP TABLE|ALTER TABLE|WITH)\\b/gi;\n return sql\n .replace(/\\s+/g, ' ')\n .replace(CLAUSE_RE, '\\n$1')\n .split('\\n')\n .map(line => line.trim())\n .filter(line => line.length > 0)\n .join('\\n');\n}\n\n// ─── Simple variant — no debug hooks at all ───────────────────────────────────\n\nfunction EditorViewSimple({\n value, onChange, language = 'json', height = '200px', minHeight,\n readOnly = false, placeholder, wordWrap = true, size, fontSize,\n className = '', bordered = false, onEditorMount, contextMenuMode = 'native', contextMenuItems, editorOptions, accentColor,\n}: EditorViewProps) {\n const base = useEditorBase(size);\n const resolvedFontSize = fontSize ?? base.fontSize;\n const theme = useAppTheme();\n const editorRef = useRef<any>(null);\n const disposablesRef = useRef<any[]>([]);\n const modelPath = useMemo(\n () => `inmemory://daakia/${crypto.randomUUID()}${EXT_MAP[language] || '.txt'}`,\n [language],\n );\n const resolvedHeight = typeof height === 'number' ? `${height}px` : height;\n const containerHeight = minHeight ? `max(${resolvedHeight}, ${minHeight}px)` : resolvedHeight;\n\n useEffect(() => {\n return () => {\n disposablesRef.current.forEach(d => d?.dispose?.());\n disposablesRef.current = [];\n const editor = editorRef.current;\n if (editor) { const m = editor.getModel(); if (m) m.dispose(); }\n };\n }, []);\n\n useEffect(() => {\n if (!readOnly) return;\n const editor = editorRef.current;\n if (!editor) return;\n const model = editor.getModel();\n if (!model || model.getValue() === value) return;\n model.setValue(value);\n }, [value, readOnly]);\n\n const handleMount: OnMount = (editor, monacoInstance) => {\n editorRef.current = editor;\n disposablesRef.current = [];\n mountCommon(editor, monacoInstance, { language, value, placeholder, onEditorMount, contextMenuMode });\n };\n\n return (\n <EditorShell bordered={bordered} containerHeight={containerHeight} contextMenuMode={contextMenuMode} contextMenuItems={contextMenuItems} accentColor={accentColor}>\n <Editor\n height=\"100%\"\n language={language}\n path={modelPath}\n value={value}\n theme={theme === 'light' ? 'daakia-light' : 'daakia-dark'}\n onChange={v => onChange?.(v ?? '')}\n onMount={handleMount}\n options={buildOptions({ readOnly, fontSize: resolvedFontSize, wordWrap, glyphMargin: false, contextMenuMode, editorOptions })}\n />\n </EditorShell>\n );\n}\n\n// ─── Debug variant — subscribes to debug store + breakpoint hooks ─────────────\n\nfunction EditorViewDebug({\n value, onChange, language = 'json', height = '200px', minHeight,\n readOnly = false, placeholder, wordWrap = true, size, fontSize,\n className = '', bordered = false,\n breakpoints, disabledBreakpoints, conditionalBreakpointLines, pausedLine,\n onToggleBreakpoint, onGlyphContextMenu, onEditorMount, contextMenuMode = 'native', contextMenuItems, editorOptions, accentColor,\n}: EditorViewProps) {\n const base = useEditorBase(size);\n const resolvedFontSize = fontSize ?? base.fontSize;\n const theme = useAppTheme();\n const editorRef = useRef<any>(null);\n const disposablesRef = useRef<any[]>([]);\n const modelPath = useMemo(\n () => `inmemory://daakia/${crypto.randomUUID()}${EXT_MAP[language] || '.txt'}`,\n [language],\n );\n const resolvedHeight = typeof height === 'number' ? `${height}px` : height;\n const containerHeight = minHeight ? `max(${resolvedHeight}, ${minHeight}px)` : resolvedHeight;\n\n // Debug hooks — always called here (React rules), never called in Simple variant\n const { attach: attachBreakpointGutter } = useBreakpointGutter({\n breakpoints, disabledBreakpoints, conditionalBreakpointLines, pausedLine,\n onToggleBreakpoint, onGlyphContextMenu,\n });\n const { attach: attachDebugHover } = useDebugVariableHover();\n const navigateLine = useDebugStore(s => s.navigateLine);\n\n useEffect(() => {\n return () => {\n disposablesRef.current.forEach(d => d?.dispose?.());\n disposablesRef.current = [];\n const editor = editorRef.current;\n if (editor) { const m = editor.getModel(); if (m) m.dispose(); }\n };\n }, []);\n\n useEffect(() => {\n if (!readOnly) return;\n const editor = editorRef.current;\n if (!editor) return;\n const model = editor.getModel();\n if (!model || model.getValue() === value) return;\n model.setValue(value);\n }, [value, readOnly]);\n\n useEffect(() => {\n if (!navigateLine || !editorRef.current || !breakpoints) return;\n editorRef.current.revealLineInCenter(navigateLine);\n editorRef.current.setPosition({ lineNumber: navigateLine, column: 1 });\n useDebugStore.getState().setNavigateLine(null);\n }, [navigateLine, breakpoints]);\n\n const handleMount: OnMount = (editor, monacoInstance) => {\n editorRef.current = editor;\n disposablesRef.current = [];\n // Attach debug features\n attachBreakpointGutter(editor, monacoInstance);\n attachDebugHover(editor, monacoInstance);\n mountCommon(editor, monacoInstance, { language, value, placeholder, onEditorMount, contextMenuMode });\n };\n\n return (\n <EditorShell bordered={bordered} containerHeight={containerHeight} contextMenuMode={contextMenuMode} contextMenuItems={contextMenuItems} accentColor={accentColor}>\n <Editor\n height=\"100%\"\n language={language}\n path={modelPath}\n value={value}\n theme={theme === 'light' ? 'daakia-light' : 'daakia-dark'}\n onChange={v => onChange?.(v ?? '')}\n onMount={handleMount}\n options={buildOptions({ readOnly, fontSize: resolvedFontSize, wordWrap, glyphMargin: !!onToggleBreakpoint, contextMenuMode, editorOptions })}\n />\n </EditorShell>\n );\n}\n\n// ─── Public export — registered into monaco-runtime by monaco-setup.ts ──────\n\nexport function EditorViewMonacoImpl({ debugSupported = false, className = '', ...rest }: EditorViewProps) {\n if (debugSupported) return <EditorViewDebug className={className} {...rest} />;\n return <EditorViewSimple className={className} {...rest} />;\n}\n\n// ─── Shared Monaco options builder ───────────────────────────────────────────\n\nfunction buildOptions({ readOnly, fontSize, wordWrap, glyphMargin, contextMenuMode = 'native', editorOptions }: {\n readOnly: boolean;\n fontSize: number;\n wordWrap: boolean;\n glyphMargin: boolean;\n contextMenuMode?: EditorContextMenuMode;\n editorOptions?: EditorOptions;\n}) {\n const o = editorOptions ?? {};\n return {\n // ── Consumer-overridable defaults ────────────────────────────────────────\n lineNumbers: (o.lineNumbers ?? 'on') as 'on' | 'off' | 'relative' | 'interval',\n minimap: { enabled: o.minimap ?? false },\n scrollBeyondLastLine: o.scrollBeyondLastLine ?? false,\n smoothScrolling: o.smoothScrolling ?? false,\n mouseWheelZoom: o.mouseWheelZoom ?? false,\n folding: o.folding ?? true,\n showFoldingControls: (o.showFoldingControls ?? 'mouseover') as 'always' | 'never' | 'mouseover',\n tabSize: o.tabSize ?? 2,\n formatOnPaste: o.formatOnPaste ?? true,\n formatOnType: o.formatOnType ?? true,\n autoIndent: (o.autoIndent ?? 'full') as 'none' | 'keep' | 'brackets' | 'advanced' | 'full',\n renderWhitespace: (o.renderWhitespace ?? 'selection') as 'none' | 'boundary' | 'selection' | 'trailing' | 'all',\n matchBrackets: (o.matchBrackets ?? 'always') as 'never' | 'near' | 'always',\n bracketPairColorization: { enabled: o.bracketPairColorization ?? true },\n colorDecorators: o.colorDecorators ?? true,\n linkedEditing: o.linkedEditing ?? true,\n copyWithSyntaxHighlighting: o.copyWithSyntaxHighlighting ?? true,\n quickSuggestions: o.quickSuggestions ?? true,\n suggestOnTriggerCharacters: o.suggestOnTriggerCharacters ?? true,\n acceptSuggestionOnEnter: (o.acceptSuggestionOnEnter ?? 'on') as 'on' | 'off' | 'smart',\n hover: { enabled: o.hover ?? true },\n parameterHints: { enabled: o.parameterHints ?? true },\n codeLens: o.codeLens ?? false,\n inlayHints: { enabled: (o.inlayHints ?? false) ? 'on' as const : 'off' as const },\n padding: { top: o.padding?.top ?? 8, bottom: o.padding?.bottom ?? 8 },\n ...(o.cursorStyle && { cursorStyle: o.cursorStyle as any }),\n ...(o.cursorBlinking && { cursorBlinking: o.cursorBlinking as any }),\n ...(o.lineHeight && { lineHeight: o.lineHeight }),\n ...(o.letterSpacing && { letterSpacing: o.letterSpacing }),\n ...(o.rulers && { rulers: o.rulers }),\n ...(o.lineDecorationsWidth !== undefined && { lineDecorationsWidth: o.lineDecorationsWidth }),\n ...(o.lineNumbersMinChars !== undefined && { lineNumbersMinChars: o.lineNumbersMinChars }),\n // ── Prop-level overrides (top-level EditorView props win over editorOptions) ─\n readOnly,\n fontSize,\n wordWrap: (o.wordWrap ?? (wordWrap ? 'on' : 'off')) as 'off' | 'on' | 'wordWrapColumn' | 'bounded',\n // ── DUI structural — never overridable ──────────────────────────────────\n automaticLayout: true,\n glyphMargin,\n renderLineHighlight: (o.renderLineHighlight ?? (glyphMargin ? 'line' : 'none')) as 'none' | 'gutter' | 'line' | 'all',\n fixedOverflowWidgets: true,\n contextmenu: contextMenuMode === 'native',\n overviewRulerLanes: 0,\n hideCursorInOverviewRuler: true,\n overviewRulerBorder: false,\n scrollbar: {\n vertical: o.scrollbar?.vertical ?? 'auto',\n horizontal: o.scrollbar?.horizontal ?? 'auto',\n verticalScrollbarSize: o.scrollbar?.verticalScrollbarSize ?? 6,\n horizontalScrollbarSize: o.scrollbar?.horizontalScrollbarSize ?? 6,\n },\n fontFamily: o.fontFamily ?? 'Menlo, Monaco, \"Courier New\", monospace',\n autoClosingBrackets: 'always' as const,\n autoClosingQuotes: 'always' as const,\n autoClosingDelete: 'always' as const,\n autoSurround: 'languageDefined' as const,\n guides: { bracketPairs: true, indentation: true },\n suggest: {\n showKeywords: o.suggest?.showKeywords ?? true,\n showSnippets: o.suggest?.showSnippets ?? true,\n showValues: o.suggest?.showValues ?? true,\n showProperties: o.suggest?.showProperties ?? true,\n ...(o.suggest?.showIcons !== undefined && { showIcons: o.suggest.showIcons }),\n },\n };\n}\n\n// ─── Shared mount logic (everything that isn't debug-specific) ────────────────\n\nfunction mountCommon(\n editor: any,\n monacoInstance: any,\n { language, value, placeholder, onEditorMount, contextMenuMode = 'native' }: {\n language: EditorLanguage;\n value: string;\n placeholder?: string;\n onEditorMount?: (editor: any, monaco: any) => void;\n contextMenuMode?: EditorContextMenuMode;\n },\n) {\n // Layout fixes for flex/overflow containers\n const relayout = () => editor.layout();\n relayout();\n requestAnimationFrame(relayout);\n setTimeout(relayout, 50);\n setTimeout(relayout, 200);\n const parent = editor.getContainerDomNode().parentElement;\n if (parent) {\n const ro = new ResizeObserver(relayout);\n ro.observe(parent);\n editor.onDidDispose(() => ro.disconnect());\n }\n\n editor.updateOptions({\n autoClosingBrackets: 'always', autoClosingQuotes: 'always',\n autoClosingDelete: 'always', autoSurround: 'languageDefined', autoIndent: 'full',\n });\n\n // Clipboard overrides — modern Clipboard API (webview-compatible)\n const KM = monacoInstance.KeyMod;\n const KC = monacoInstance.KeyCode;\n\n editor.addAction({\n id: 'daakia.clipboard.copy', label: 'Copy',\n keybindings: [KM.CtrlCmd | KC.KeyC],\n run: (ed: any) => {\n const sel = ed.getSelection();\n if (sel && !sel.isEmpty()) {\n navigator.clipboard.writeText(ed.getModel()?.getValueInRange(sel) || '');\n } else {\n const pos = ed.getPosition();\n if (pos) navigator.clipboard.writeText((ed.getModel()?.getLineContent(pos.lineNumber) || '') + '\\n');\n }\n },\n });\n\n editor.addAction({\n id: 'daakia.clipboard.cut', label: 'Cut',\n keybindings: [KM.CtrlCmd | KC.KeyX],\n run: (ed: any) => {\n const sel = ed.getSelection();\n if (sel && !sel.isEmpty()) {\n navigator.clipboard.writeText(ed.getModel()?.getValueInRange(sel) || '');\n ed.executeEdits('cut', [{ range: sel, text: '' }]);\n } else {\n const pos = ed.getPosition();\n if (pos) {\n const model = ed.getModel();\n if (model) {\n navigator.clipboard.writeText(model.getLineContent(pos.lineNumber) + '\\n');\n ed.executeEdits('cut', [{ range: new monacoInstance.Range(pos.lineNumber, 1, pos.lineNumber + 1, 1), text: '' }]);\n }\n }\n }\n },\n });\n\n editor.addAction({\n id: 'daakia.clipboard.paste', label: 'Paste',\n keybindings: [KM.CtrlCmd | KC.KeyV],\n run: async (ed: any) => {\n try {\n const text = await navigator.clipboard.readText();\n if (text) {\n const sel = ed.getSelection();\n if (sel) ed.executeEdits('paste', [{ range: sel, text, forceMoveMarkers: true }]);\n }\n } catch { /* clipboard permission denied */ }\n },\n });\n\n editor.addAction({\n id: 'daakia.clipboard.selectAll', label: 'Select All',\n keybindings: [KM.CtrlCmd | KC.KeyA],\n run: (ed: any) => { const m = ed.getModel(); if (m) ed.setSelection(m.getFullModelRange()); },\n });\n\n // Format Document — Shift+Alt+F\n editor.addAction({\n id: 'daakia.format.document', label: 'Format Document',\n keybindings: [KM.Shift | KM.Alt | KC.KeyF],\n contextMenuGroupId: 'modification', contextMenuOrder: 1.5,\n run: async (ed: any) => {\n const model = ed.getModel();\n if (!model) return;\n const langId = model.getLanguageId();\n if (langId === 'xml' || langId === 'html') {\n try {\n const raw = model.getValue();\n const formatted = formatXml(raw);\n if (formatted !== raw) ed.executeEdits('daakia.format', [{ range: model.getFullModelRange(), text: formatted }]);\n } catch { /* malformed XML */ }\n } else if (langId === 'yaml') {\n try {\n const raw = model.getValue();\n const formatted = formatYaml(raw);\n if (formatted !== raw) ed.executeEdits('daakia.format', [{ range: model.getFullModelRange(), text: formatted }]);\n } catch { /* malformed YAML */ }\n } else if (langId === 'sql') {\n try {\n const raw = model.getValue();\n const formatted = formatSql(raw);\n if (formatted !== raw) ed.executeEdits('daakia.format', [{ range: model.getFullModelRange(), text: formatted }]);\n } catch { /* malformed SQL */ }\n } else {\n await ed.getAction('editor.action.formatDocument')?.run();\n }\n },\n });\n\n // Find & Replace — Ctrl+Shift+H\n editor.addAction({\n id: 'daakia.findAndReplace', label: 'Find and Replace',\n keybindings: [KM.CtrlCmd | KM.Shift | KC.KeyH],\n contextMenuGroupId: 'navigation', contextMenuOrder: 1.5,\n run: () => editor.getAction('editor.action.startFindReplaceAction')?.run(),\n });\n\n // Auto-closing config per language\n const model = editor.getModel();\n if (model) {\n const langId = model.getLanguageId();\n if (langId === 'xml' || langId === 'html') {\n monacoInstance.languages.setLanguageConfiguration(langId, {\n autoClosingPairs: [\n { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n { open: '<', close: '>', notIn: ['string'] },\n ],\n brackets: [['{', '}'], ['[', ']'], ['(', ')'], ['<', '>']],\n surroundingPairs: [\n { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' },\n { open: '\"', close: '\"' }, { open: \"'\", close: \"'\" }, { open: '<', close: '>' },\n ],\n onEnterRules: [\n {\n beforeText: /<([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!\\/)>)\\s*$/i,\n afterText: /^<\\/([_:\\w][_:\\w\\-.\\d]*)\\s*>$/i,\n action: { indentAction: monacoInstance.languages.IndentAction.IndentOutdent },\n },\n {\n beforeText: /<([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!\\/)>)\\s*$/i,\n action: { indentAction: monacoInstance.languages.IndentAction.Indent },\n },\n ],\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n });\n monacoInstance.languages.registerCompletionItemProvider(langId, {\n triggerCharacters: ['/'],\n provideCompletionItems: (mdl: any, position: any) => {\n const textUntilPosition = mdl.getValueInRange({\n startLineNumber: 1, startColumn: 1,\n endLineNumber: position.lineNumber, endColumn: position.column,\n });\n const match = textUntilPosition.match(/<\\/\\s*$/);\n if (match) {\n const openTags: string[] = [];\n const tagRegex = /<\\/?([_:\\w][_:\\w\\-.\\d]*)[^>]*\\/?>/g;\n let m;\n while ((m = tagRegex.exec(textUntilPosition.slice(0, -2))) !== null) {\n if (m[0].startsWith('</')) openTags.pop();\n else if (!m[0].endsWith('/>')) openTags.push(m[1]);\n }\n const lastOpen = openTags[openTags.length - 1];\n if (lastOpen) {\n return {\n suggestions: [{\n label: `/${lastOpen}>`,\n kind: monacoInstance.languages.CompletionItemKind.Keyword,\n insertText: `${lastOpen}>`,\n range: {\n startLineNumber: position.lineNumber, startColumn: position.column,\n endLineNumber: position.lineNumber, endColumn: position.column,\n },\n }],\n };\n }\n }\n return { suggestions: [] };\n },\n });\n } else {\n monacoInstance.languages.setLanguageConfiguration(langId, {\n autoClosingPairs: [\n { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n brackets: [['{', '}'], ['[', ']'], ['(', ')']],\n surroundingPairs: [\n { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' },\n { open: '\"', close: '\"' }, { open: \"'\", close: \"'\" },\n ],\n });\n }\n }\n\n // GraphQL tokenizer + completion\n const langs = monacoInstance.languages.getLanguages();\n if (!langs.some((l: any) => l.id === 'graphql')) {\n monacoInstance.languages.register({ id: 'graphql' });\n monacoInstance.languages.setMonarchTokensProvider('graphql', {\n keywords: ['type', 'input', 'enum', 'union', 'interface', 'scalar', 'schema', 'query', 'mutation', 'subscription', 'fragment', 'on', 'extend', 'implements', 'directive', 'repeatable'],\n typeKeywords: ['String', 'Int', 'Float', 'Boolean', 'ID'],\n operators: ['!', '=', '|', '&', '...'],\n symbols: /[=!|&]+/,\n tokenizer: {\n root: [\n [/#.*$/, 'comment'], [/\"([^\"\\\\]|\\\\.)*\"/, 'string'], [/\"\"\"[\\s\\S]*?\"\"\"/, 'string'],\n [/\\b(type|input|enum|union|interface|scalar|schema|extend|implements|directive|repeatable)\\b/, 'keyword'],\n [/\\b(query|mutation|subscription|fragment|on)\\b/, 'keyword.control'],\n [/\\b(String|Int|Float|Boolean|ID)\\b/, 'type.identifier'],\n [/\\b[A-Z][a-zA-Z0-9_]*\\b/, 'type.identifier'],\n [/\\b[a-z_][a-zA-Z0-9_]*(?=\\s*[:(])/, 'variable'],\n [/\\b[a-z_][a-zA-Z0-9_]*\\b/, 'identifier'],\n [/[{}()\\[\\]]/, '@brackets'], [/[!:=|&]/, 'operator'],\n [/\\$[a-zA-Z_]\\w*/, 'variable'], [/@[a-zA-Z_]\\w*/, 'annotation'],\n ],\n },\n } as any);\n }\n if (language === 'graphql') initGraphQLCompletionProvider(monacoInstance);\n\n // dk + console intellisense — JavaScript editors only\n if (language === 'javascript') {\n if (!dkLibRegistered) {\n monacoInstance.languages.typescript.javascriptDefaults.addExtraLib(DK_TYPE_DEFS, 'dk-globals.d.ts');\n dkLibRegistered = true;\n }\n monacoInstance.languages.registerCompletionItemProvider('javascript', {\n triggerCharacters: ['.'],\n provideCompletionItems: (mdl: any, pos: any) => {\n const textUntilPosition = mdl.getValueInRange({\n startLineNumber: pos.lineNumber, startColumn: 1,\n endLineNumber: pos.lineNumber, endColumn: pos.column,\n });\n const suggestions = getDkCompletions(textUntilPosition, monacoInstance, pos);\n if (suggestions.length > 0) return { suggestions };\n const range = { startLineNumber: pos.lineNumber, endLineNumber: pos.lineNumber, startColumn: pos.column, endColumn: pos.column };\n if (/\\bconsole\\.\\s*$/.test(textUntilPosition)) {\n return {\n suggestions: [\n { label: 'log', kind: monacoInstance.languages.CompletionItemKind.Function, insertText: 'log(${1})', insertTextRules: monacoInstance.languages.CompletionItemInsertTextRule.InsertAsSnippet, detail: 'Log output', range },\n { label: 'info', kind: monacoInstance.languages.CompletionItemKind.Function, insertText: 'info(${1})', insertTextRules: monacoInstance.languages.CompletionItemInsertTextRule.InsertAsSnippet, detail: 'Info output', range },\n { label: 'warn', kind: monacoInstance.languages.CompletionItemKind.Function, insertText: 'warn(${1})', insertTextRules: monacoInstance.languages.CompletionItemInsertTextRule.InsertAsSnippet, detail: 'Warning output', range },\n { label: 'error', kind: monacoInstance.languages.CompletionItemKind.Function, insertText: 'error(${1})', insertTextRules: monacoInstance.languages.CompletionItemInsertTextRule.InsertAsSnippet, detail: 'Error output', range },\n { label: 'debug', kind: monacoInstance.languages.CompletionItemKind.Function, insertText: 'debug(${1})', insertTextRules: monacoInstance.languages.CompletionItemInsertTextRule.InsertAsSnippet, detail: 'Debug output', range },\n ],\n };\n }\n return { suggestions: [] };\n },\n });\n }\n\n if (!value && placeholder) editor.updateOptions({ placeholder });\n onEditorMount?.(editor, monacoInstance);\n editor.updateOptions({ contextmenu: contextMenuMode === 'native' });\n}\n","import { DiffEditor, type DiffOnMount } from '@monaco-editor/react';\nimport { useAppTheme } from '../../../hooks/useAppTheme';\nimport type { DiffEditorViewProps } from './DiffEditorView';\n\n// This file is only ever reached by '@salilvnair/dui/monaco-setup' — see\n// EditorView.monaco.tsx for why that makes a plain top-level import safe.\n\nexport function DiffEditorViewMonacoImpl({\n original,\n modified,\n language = 'sql',\n height = 300,\n readOnly = true,\n renderSideBySide = true,\n wordWrap = false,\n fontSize = 12,\n theme,\n onMount,\n}: DiffEditorViewProps) {\n const appTheme = useAppTheme();\n const resolvedTheme = theme ?? (appTheme === 'light' ? 'vs' : 'vs-dark');\n const h = typeof height === 'number' ? `${height}px` : height;\n\n return (\n <DiffEditor\n height={h}\n language={language}\n theme={resolvedTheme}\n original={original}\n modified={modified}\n onMount={onMount as DiffOnMount | undefined}\n options={{\n readOnly,\n renderSideBySide,\n wordWrap: wordWrap ? 'on' : 'off',\n fontSize,\n automaticLayout: true,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n lineNumbers: 'on',\n folding: true,\n ignoreTrimWhitespace: false,\n }}\n />\n );\n}\n","/**\n * Self-host Monaco Editor — no CDN required.\n * This configures workers inline so the webview CSP doesn't need external access.\n * Also defines a custom \"vscode-dark+\" theme to match real VS Code colors.\n */\nimport { loader } from '@monaco-editor/react';\nimport * as monaco from 'monaco-editor';\nimport { markMonacoReady, registerMonacoEditorImpl, registerMonacoDiffEditorImpl } from './lib/monaco-runtime';\nimport { EditorViewMonacoImpl } from './lib/components/input/EditorView.monaco';\nimport { DiffEditorViewMonacoImpl } from './lib/components/input/DiffEditorView.monaco';\nimport editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker&inline';\nimport jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker&inline';\nimport htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker&inline';\nimport tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker&inline';\nimport {\n javascriptDefaults,\n typescriptDefaults,\n ScriptTarget,\n ModuleKind,\n ModuleResolutionKind,\n JsxEmit,\n} from 'monaco-editor/esm/vs/language/typescript/monaco.contribution';\n\n(window as any).MonacoEnvironment = {\n getWorker(_: string, label: string) {\n if (label === 'json') return new jsonWorker();\n if (label === 'html' || label === 'handlebars' || label === 'razor') return new htmlWorker();\n if (label === 'typescript' || label === 'javascript') return new tsWorker();\n return new editorWorker();\n },\n};\n\n// Define VS Code \"Dark+\" matching theme\nmonaco.editor.defineTheme('daakia-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: [\n // JSON\n { token: 'string.key.json', foreground: '9CDCFE' },\n { token: 'string.value.json', foreground: 'CE9178' },\n { token: 'number', foreground: 'B5CEA8' },\n { token: 'keyword.json', foreground: '569CD6' }, // true/false/null\n // General\n { token: 'string', foreground: 'CE9178' },\n { token: 'keyword', foreground: '569CD6' },\n { token: 'comment', foreground: '6A9955' },\n { token: 'type', foreground: '4EC9B0' },\n { token: 'identifier', foreground: '9CDCFE' },\n { token: 'variable', foreground: '9CDCFE' },\n { token: 'constant', foreground: '4FC1FF' },\n // JS/TS\n { token: 'keyword.js', foreground: 'C586C0' },\n { token: 'keyword.ts', foreground: 'C586C0' },\n { token: 'string.js', foreground: 'CE9178' },\n { token: 'string.ts', foreground: 'CE9178' },\n { token: 'number.js', foreground: 'B5CEA8' },\n { token: 'number.ts', foreground: 'B5CEA8' },\n { token: 'regexp', foreground: 'D16969' },\n { token: 'delimiter', foreground: 'D4D4D4' },\n { token: 'delimiter.bracket', foreground: 'FFD700' },\n // XML/HTML\n { token: 'tag', foreground: '569CD6' },\n { token: 'attribute.name', foreground: '9CDCFE' },\n { token: 'attribute.value', foreground: 'CE9178' },\n // GraphQL\n { token: 'keyword.graphql', foreground: 'C586C0' },\n { token: 'keyword.control.graphql', foreground: 'C586C0' },\n { token: 'type.identifier.graphql', foreground: 'E5C07B' },\n { token: 'variable.graphql', foreground: '9CDCFE' },\n { token: 'string.graphql', foreground: 'CE9178' },\n { token: 'comment.graphql', foreground: '6A9955' },\n { token: 'annotation.graphql', foreground: 'DCDCAA' },\n { token: 'operator.graphql', foreground: 'D4D4D4' },\n { token: 'identifier.graphql', foreground: 'D4D4D4' },\n ],\n colors: {\n 'editor.background': '#1e1e1e',\n 'editor.foreground': '#D4D4D4',\n 'editor.lineHighlightBackground': '#2a2a2a',\n 'editor.selectionBackground': '#264f78',\n 'editor.inactiveSelectionBackground': '#3a3d41',\n 'editorLineNumber.foreground': '#858585',\n 'editorLineNumber.activeForeground': '#C6C6C6',\n 'editorCursor.foreground': '#AEAFAD',\n 'editor.selectionHighlightBackground': '#ADD6FF26',\n 'editorIndentGuide.background': '#404040',\n 'editorIndentGuide.activeBackground': '#707070',\n 'editorBracketMatch.background': '#0064001a',\n 'editorBracketMatch.border': '#888888',\n 'editorGutter.background': '#1e1e1e',\n 'editorWidget.background': '#252526',\n 'editorSuggestWidget.background': '#252526',\n 'editorSuggestWidget.border': '#454545',\n 'editorSuggestWidget.selectedBackground': '#04395e',\n 'list.hoverBackground': '#2a2d2e',\n 'input.background': '#3c3c3c',\n 'focusBorder': '#6366f1',\n },\n});\n\n// Configure TypeScript/JavaScript language service for full IntelliSense\n// allowNonTsExtensions is critical — without it, in-memory models (no .js/.ts extension)\n// won't get definition/reference/rename support from the TypeScript worker.\njavascriptDefaults.setCompilerOptions({\n target: ScriptTarget.ESNext,\n module: ModuleKind.ESNext,\n allowNonTsExtensions: true,\n allowJs: true,\n checkJs: true,\n strict: false,\n noEmit: true,\n esModuleInterop: true,\n moduleResolution: ModuleResolutionKind.NodeJs,\n jsx: JsxEmit.React,\n});\n\njavascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: false,\n noSyntaxValidation: false,\n});\n\n// Ensure all models are immediately synced to the TypeScript worker\n// (required for Go to Definition, Peek, etc. to work)\njavascriptDefaults.setEagerModelSync(true);\ntypescriptDefaults.setEagerModelSync(true);\n\ntypescriptDefaults.setCompilerOptions({\n target: ScriptTarget.ESNext,\n module: ModuleKind.ESNext,\n allowNonTsExtensions: true,\n allowJs: true,\n strict: false,\n noEmit: true,\n esModuleInterop: true,\n moduleResolution: ModuleResolutionKind.NodeJs,\n jsx: JsxEmit.React,\n});\n\n// Define VS Code \"Light+\" matching theme\nmonaco.editor.defineTheme('daakia-light', {\n base: 'vs',\n inherit: true,\n rules: [\n { token: 'string.key.json', foreground: '0451a5' },\n { token: 'string.value.json', foreground: 'a31515' },\n { token: 'number', foreground: '09885a' },\n { token: 'keyword.json', foreground: '0000ff' },\n { token: 'string', foreground: 'a31515' },\n { token: 'keyword', foreground: '0000ff' },\n { token: 'comment', foreground: '008000' },\n { token: 'type', foreground: '267f99' },\n { token: 'identifier', foreground: '001080' },\n { token: 'variable', foreground: '001080' },\n { token: 'constant', foreground: '0070c1' },\n { token: 'keyword.js', foreground: 'af00db' },\n { token: 'keyword.ts', foreground: 'af00db' },\n { token: 'string.js', foreground: 'a31515' },\n { token: 'string.ts', foreground: 'a31515' },\n { token: 'number.js', foreground: '09885a' },\n { token: 'number.ts', foreground: '09885a' },\n { token: 'regexp', foreground: 'c41a16' },\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.bracket', foreground: '000000' },\n { token: 'tag', foreground: '800000' },\n { token: 'attribute.name', foreground: 'ff0000' },\n { token: 'attribute.value', foreground: '0451a5' },\n { token: 'keyword.graphql', foreground: 'af00db' },\n { token: 'type.identifier.graphql', foreground: '267f99' },\n { token: 'variable.graphql', foreground: '001080' },\n { token: 'string.graphql', foreground: 'a31515' },\n { token: 'comment.graphql', foreground: '008000' },\n { token: 'operator.graphql', foreground: '000000' },\n { token: 'identifier.graphql', foreground: '000000' },\n ],\n colors: {\n 'editor.background': '#ffffff',\n 'editor.foreground': '#000000',\n 'editor.lineHighlightBackground': '#f5f5f5',\n 'editor.selectionBackground': '#add6ff',\n 'editor.inactiveSelectionBackground': '#e5ebf1',\n 'editorLineNumber.foreground': '#237893',\n 'editorLineNumber.activeForeground': '#0b216f',\n 'editorCursor.foreground': '#000000',\n 'editor.selectionHighlightBackground': '#add6ff4d',\n 'editorIndentGuide.background1': '#d3d3d3',\n 'editorIndentGuide.activeBackground1': '#939393',\n 'editorGutter.background': '#ffffff',\n 'editorWidget.background': '#f3f3f3',\n 'editorSuggestWidget.background': '#f3f3f3',\n 'editorSuggestWidget.border': '#c8c8c8',\n 'editorSuggestWidget.selectedBackground': '#0060c0',\n 'list.hoverBackground': '#f0f0f0',\n 'input.background': '#ffffff',\n 'input.border': '#d1d5db',\n 'focusBorder': '#6366f1',\n },\n});\n\nloader.config({ monaco });\n\n// Expose monaco globally for context menu access to editor instances\n(window as any).monaco = monaco;\n\n// Register the real Monaco-backed implementations, then flip the shared\n// readiness gate — EditorView/DiffEditorView now render these instead of\n// their lightweight fallback.\nregisterMonacoEditorImpl(EditorViewMonacoImpl);\nregisterMonacoDiffEditorImpl(DiffEditorViewMonacoImpl);\nmarkMonacoReady();\n\n/** Call this whenever the app theme changes to re-theme all open Monaco editors */\nexport function applyMonacoTheme(theme: 'dark' | 'light') {\n monaco.editor.setTheme(theme === 'dark' ? 'daakia-dark' : 'daakia-light');\n}\n\nexport { monaco };\n"],"names":["resolveTheme","vsKind","_a","useAppTheme","theme","setTheme","useState","useEffect","update","htmlObs","bodyObs","DK_TYPE_DEFS","getDkCompletions","_text","_monaco","_pos","useBreakpointGutter","options","breakpoints","disabledBreakpoints","conditionalBreakpointLines","pausedLine","onToggleBreakpoint","onGlyphContextMenu","editorRef","useRef","monacoRef","decorationsRef","pausedDecoRef","hoverDecoRef","disposablesRef","isBreakpointableLine","useCallback","lineNo","editor","model","monaco","decos","line","isDisabled","isConditional","glyphClass","d","domNode","marginContainer","d1","e","glyphRightClick","d2a","domHandler","ev","d3","lineDecos","_b","_d","_c","d4","state","useDebugStore","selector","dkLibRegistered","EXT_MAP","formatXml","xml","depth","result","tokens","token","isClosing","isSelfClosing","formatYaml","yaml","formatSql","sql","CLAUSE_RE","EditorViewSimple","value","onChange","language","height","minHeight","readOnly","placeholder","wordWrap","size","fontSize","className","bordered","onEditorMount","contextMenuMode","contextMenuItems","editorOptions","accentColor","base","useEditorBase","resolvedFontSize","modelPath","useMemo","resolvedHeight","containerHeight","m","EditorShell","jsx","Editor","v","monacoInstance","mountCommon","buildOptions","EditorViewDebug","attachBreakpointGutter","navigateLine","s","EditorViewMonacoImpl","debugSupported","rest","glyphMargin","o","_e","_f","_g","_h","_i","_j","_k","relayout","parent","ro","KM","KC","ed","sel","pos","text","langId","raw","formatted","mdl","position","textUntilPosition","openTags","tagRegex","lastOpen","l","suggestions","range","DiffEditorViewMonacoImpl","original","modified","renderSideBySide","onMount","appTheme","resolvedTheme","h","DiffEditor","_","label","jsonWorker","htmlWorker","tsWorker","editorWorker","javascriptDefaults","ScriptTarget","ModuleKind","ModuleResolutionKind","JsxEmit","typescriptDefaults","loader","registerMonacoEditorImpl","registerMonacoDiffEditorImpl","markMonacoReady","applyMonacoTheme"],"mappings":"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"}
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#6366f1;--color-primary-hover:#818cf8;--color-primary-light:#a5b4fc;--color-primary-dark:#4f46e5;--color-surface:#1e1e1e;--color-surface-hover:#2a2d2e;--color-surface-active:#37373d;--color-surface-border:#414141;--color-panel:#181818;--color-panel-border:#333;--color-elevated:#252526;--color-elevated-border:#474747;--color-surface-bg:#1e1e1e;--color-input-bg:#2d2d2d;--color-input-border:#3c3c3c;--color-input-hover:#333;--color-input-focus:#2d2d2d;--color-icon-hover-bg:#6366f126;--color-item-hover-bg:#2a2d2e;--color-text-primary:#d4d4d4;--color-text-secondary:#acacac;--color-text-muted:#6d6d6d;--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--color-method-get:#22c55e;--color-method-post:#f59e0b;--color-method-put:#3b82f6;--color-method-patch:#a78bfa;--color-method-delete:#ef4444;--color-method-head:#06b6d4;--color-method-options:#ec4899;--color-sidebar-collections:#a855f7;--color-sidebar-history:#2dd4bf;--color-sidebar-environments:#4ade80;--color-protocol-rest:#6366f1;--color-protocol-graphql:#e535ab;--color-protocol-websocket:#4caf50;--color-protocol-sse:#f59e0b;--color-protocol-socketio:#14b8a6;--color-protocol-mqtt:#8b5cf6;--color-protocol-grpc:#00b8b5;--color-protocol-soap:#f97171;--color-protocol-ai:#7eacb5;--color-protocol-mcp:#60a5fa;--color-mock-server:#eab308;--color-mock-server-muted:#d4a017;--color-try-button:#6366f1;--color-settings:#2a9d8f;--color-time-fast:#22c55e;--color-time-moderate:#eab308;--color-time-slow:#f97316;--color-time-critical:#ef4444;--color-muted:#6b7280;--color-muted-fallback:#9ca3af;--color-status-5xx:#dc2626;--color-ctx-rename:#22d3ee;--color-ctx-duplicate:#a78bfa;--color-ctx-pin:#fbbf24;--color-ctx-close:#ef4444;--color-ctx-close-batch:#fb923c;--color-ctx-close-saved:#4ade80;--color-ctx-close-all:#f43f5e;--color-btn-primary-bg:var(--color-primary);--color-btn-primary-hover:var(--color-primary-dark);--color-btn-secondary-bg:var(--color-surface-hover);--color-btn-secondary-hover:var(--color-surface-active);--color-btn-secondary-border:var(--color-surface-border);--color-btn-ghost-hover:var(--color-item-hover-bg);--color-btn-danger-bg:var(--color-error);--color-sidenav-item-hover:var(--color-item-hover-bg);--color-toggle-on:var(--color-primary);--color-toggle-thumb:#fff;--color-var-pill-bg:#8b5cf62e;--color-var-pill-text:#c084fc;--color-var-pill-border:#8b5cf661;--color-promptcard-avatar-bg:#313a3c}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-promptcard-avatar-bg:color-mix(in srgb, var(--color-protocol-ai) 20%, var(--color-surface))}}:root,:host{--color-promptcard-avatar-text:var(--color-protocol-ai);--color-promptcard-title:var(--color-text-primary);--color-promptcard-body:var(--color-text-muted);--color-promptcard-chip:var(--color-protocol-ai);--color-promptcard-badge-bg:#7eacb526}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-promptcard-badge-bg:color-mix(in srgb, var(--color-protocol-ai) 15%, transparent)}}:root,:host{--color-promptcard-badge-text:var(--color-protocol-ai);--color-promptcard-action-icon:var(--color-text-muted);--color-promptcard-delete-icon:var(--color-error);--color-tooltip-bg:#282830}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-tooltip-bg:color-mix(in srgb, var(--color-elevated) 95%, var(--color-primary) 5%)}}:root,:host{--color-tooltip-text:var(--color-text-primary);--color-tooltip-border:var(--color-elevated-border);--color-modal-backdrop:#00000080;--color-modal-header-tint:#202024}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-modal-header-tint:color-mix(in srgb, var(--color-surface) 97%, var(--color-primary) 3%)}}:root,:host{--color-tag-bg:#6366f11f}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-tag-bg:color-mix(in srgb, var(--color-primary) 12%, transparent)}}:root,:host{--color-tag-text:var(--color-primary);--color-tag-border:#6366f140}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-tag-border:color-mix(in srgb, var(--color-primary) 25%, transparent)}}:root,:host{--color-tag-remove-hover:var(--color-error);--color-pilltab-track-bg:var(--color-surface);--color-pilltab-indicator-bg:#6366f11f}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-pilltab-indicator-bg:color-mix(in srgb, var(--color-primary) 12%, transparent)}}:root,:host{--color-pilltab-indicator-border:#6366f140}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-pilltab-indicator-border:color-mix(in srgb, var(--color-primary) 25%, transparent)}}:root,:host{--color-pilltab-text-active:var(--color-primary);--color-pilltab-text-inactive:var(--color-text-secondary);--color-dur-segment-bg:var(--color-surface);--color-dur-segment-hover:#6366f114}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-dur-segment-hover:color-mix(in srgb, var(--color-primary) 8%, transparent)}}:root,:host{--color-dur-segment-selected:#6366f11f}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-dur-segment-selected:color-mix(in srgb, var(--color-primary) 12%, transparent)}}:root,:host{--color-table-stripe:#d4d4d405}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-table-stripe:color-mix(in srgb, var(--color-text-primary) 2%, transparent)}}:root,:host{--color-table-header-bg:#d4d4d40a}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-table-header-bg:color-mix(in srgb, var(--color-text-primary) 4%, transparent)}}:root,:host{--color-table-border:var(--color-surface-border);--color-codeblock-bg:#d4d4d408}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-codeblock-bg:color-mix(in srgb, var(--color-text-primary) 3%, transparent)}}:root,:host{--color-codeblock-header-bg:#d4d4d40a}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-codeblock-header-bg:color-mix(in srgb, var(--color-text-primary) 4%, transparent)}}:root,:host{--color-codeblock-border:var(--color-surface-border);--color-sidenav-active-bg:#6366f126}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-sidenav-active-bg:color-mix(in srgb, var(--color-primary) 15%, transparent)}}:root,:host{--color-sidenav-active-text:var(--color-primary);--color-sidenav-hover-bg:var(--color-surface-hover);--color-resizable-grip:var(--color-panel-border);--color-resizable-grip-hover:var(--color-primary);--color-stage-check:var(--color-success);--color-stage-spin:var(--color-primary);--color-stage-pulse:var(--color-text-muted);--color-stage-error:var(--color-error);--color-loader-accent:var(--color-primary);--color-loader-track:#d4d4d41a}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-loader-track:color-mix(in srgb, var(--color-text-primary) 10%, transparent)}}:root,:host{--color-chip-active-text:var(--color-btn-primary-text,#fff);--color-iconbtn-bg-hover:var(--color-surface-hover);--color-iconbtn-bg-active:#6366f11a}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-iconbtn-bg-active:color-mix(in srgb, var(--color-primary) 10%, transparent)}}:root,:host{--color-iconbtn-border:var(--color-surface-border);--color-statscard-bg:var(--color-surface);--color-statscard-border:var(--color-surface-border);--color-statscard-trend-up:var(--color-success);--color-statscard-trend-down:var(--color-error);--color-emptystate-icon:var(--color-text-muted);--color-emptystate-title:var(--color-text-primary);--color-emptystate-desc:var(--color-text-secondary);--color-aibtn-bg:#7eacb51a}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-aibtn-bg:color-mix(in srgb, var(--color-protocol-ai) 10%, transparent)}}:root,:host{--color-aibtn-border:#7eacb540}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-aibtn-border:color-mix(in srgb, var(--color-protocol-ai) 25%, transparent)}}:root,:host{--color-aibtn-text:var(--color-protocol-ai);--color-aibtn-bg-hover:#7eacb53d}@supports (color:color-mix(in lab,red,red)){:root,:host{--color-aibtn-bg-hover:color-mix(in srgb, var(--color-protocol-ai) 24%, transparent)}}:root,:host{--color-prompt-avatar-rest:var(--color-protocol-rest);--color-prompt-avatar-curl:var(--color-method-post);--color-prompt-avatar-mock:var(--color-protocol-grpc);--color-prompt-avatar-test:var(--color-success);--color-prompt-avatar-knowledge:var(--color-protocol-ai);--color-prompt-avatar-ask:var(--color-primary);--color-prompt-avatar-explain:var(--color-protocol-graphql);--color-prompt-avatar-followup:var(--color-protocol-websocket);--color-prompt-avatar-generate:var(--color-warning);--color-prompt-avatar-suggest:var(--color-protocol-soap);--color-prompt-avatar-headers:var(--color-method-get);--color-prompt-avatar-body:var(--color-method-post);--color-debug-key:#4fc3f7;--color-debug-string:#ce9178;--color-debug-number:#b5cea8;--color-debug-boolean:#569cd6;--color-debug-null:gray;--color-debug-object:#9cdcfe;--color-debug-fn:gray}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}input[type=text],input[type=password],input[type=url],input[type=email],input[type=number],textarea{font-family:var(--font-sans);background:var(--color-input-bg);border:1px solid var(--color-input-border);color:var(--color-text-primary);border-radius:4px;padding:9px 12px;font-size:13px;transition:border-color .14s,box-shadow .14s,background .14s}input[type=text]::placeholder,input[type=password]::placeholder,textarea::placeholder{color:var(--color-text-muted)}input[type=text]:hover,input[type=password]:hover,textarea:hover{background:var(--color-input-hover);border-color:#505050}input[type=text]:focus,input[type=password]:focus,textarea:focus{border-color:var(--color-accent,var(--color-primary));box-shadow:0 0 0 1px var(--color-accent,#6366f1);outline:none}@supports (color:color-mix(in lab,red,red)){input[type=text]:focus,input[type=password]:focus,textarea:focus{box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent,var(--color-primary)) 25%,transparent)}}input[type=text]:focus,input[type=password]:focus,textarea:focus{background:var(--color-input-focus)}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.top-1\/2{top:50%}.top-full{top:100%}.left-0{left:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[99999\]{z-index:99999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-\[3px\]{margin-top:3px}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-\[14px\]{height:14px}.h-\[22px\]{height:22px}.h-full{height:100%}.h-px{height:1px}.max-h-\[200px\]{max-height:200px}.min-h-\[18px\]{min-height:18px}.min-h-\[24px\]{min-height:24px}.min-h-\[160px\]{min-height:160px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-\[10px\]{width:10px}.w-\[22px\]{width:22px}.w-full{width:100%}.max-w-\[420px\]{max-width:420px}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[confirm-in_150ms_ease-out\]{animation:.15s ease-out confirm-in}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.scrollbar-none{scrollbar-width:none}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.grid-cols-\[32px_1fr_1fr_1fr_32px\]{grid-template-columns:32px 1fr 1fr 1fr 32px}.grid-cols-\[32px_1fr_1fr_32px\]{grid-template-columns:32px 1fr 1fr 32px}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[7px\]{border-radius:7px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[color-mix\(in_srgb\,var\(--color-error\)_25\%\,transparent\)\]{border-color:#ef444440}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--color-error\)_25\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-error) 25%,transparent)}}.border-\[var\(--color-input-border\)\]{border-color:var(--color-input-border)}.border-\[var\(--color-surface-border\)\]{border-color:var(--color-surface-border)}.bg-\[color-mix\(in_srgb\,\#ab47bc_8\%\,transparent\)\]{background-color:#ab47bc14}.bg-\[color-mix\(in_srgb\,var\(--color-error\)_8\%\,transparent\)\]{background-color:#ef444414}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-error\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-error) 8%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-error\)_12\%\,transparent\)\]{background-color:#ef44441f}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-error\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-error) 12%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--color-primary\)_12\%\,transparent\)\]{background-color:#6366f11f}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_srgb\,var\(--color-primary\)_12\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-primary) 12%,transparent)}}.bg-\[rgba\(0\,0\,0\,0\.55\)\]{background-color:#0000008c}.bg-\[var\(--color-error\)\]{background-color:var(--color-error)}.bg-\[var\(--color-input-bg\)\]{background-color:var(--color-input-bg)}.bg-\[var\(--color-panel\)\]{background-color:var(--color-panel)}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.bg-\[var\(--color-surface-hover\)\]{background-color:var(--color-surface-hover)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-5{padding:calc(var(--spacing) * 5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\[1px\]{padding-block:1px}.py-\[3px\]{padding-block:3px}.pr-2{padding-right:calc(var(--spacing) * 2)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-11{padding-left:calc(var(--spacing) * 11)}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[18px\]{font-size:18px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-error\)\]{color:var(--color-error)}.text-\[var\(--color-my-highlight\)\]{color:var(--color-my-highlight)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.text-\[var\(--color-text-muted\)\]{color:var(--color-text-muted)}.text-\[var\(--color-text-primary\)\]{color:var(--color-text-primary)}.text-primary{color:var(--color-primary)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.accent-\[var\(--color-danger\)\]{accent-color:var(--color-danger)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-\[0\.08\]{opacity:.08}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[button\:Send\]{button:Send}.\[select\:method\]{select:method}.\[text\:url\]{text:url}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/req\:opacity-100:is(:where(.group\/req):hover *){opacity:1}}.placeholder\:text-\[var\(--color-text-muted\)\]::placeholder{color:var(--color-text-muted)}@media(hover:hover){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-error\)_15\%\,transparent\)\]:hover{background-color:#ef444426}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-error\)_15\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--color-error) 15%,transparent)}}.hover\:bg-\[color-mix\(in_srgb\,var\(--color-error\)_85\%\,black\)\]:hover{background-color:#cb3a3a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-error\)_85\%\,black\)\]:hover{background-color:color-mix(in srgb,var(--color-error) 85%,black)}}.hover\:bg-\[var\(--color-icon-hover-bg\)\]:hover{background-color:var(--color-icon-hover-bg)}.hover\:bg-\[var\(--color-item-hover-bg\)\]:hover{background-color:var(--color-item-hover-bg)}.hover\:bg-\[var\(--color-surface-hover\)\]:hover{background-color:var(--color-surface-hover)}.hover\:text-\[var\(--color-danger\)\]:hover{color:var(--color-danger)}.hover\:text-\[var\(--color-error\)\]:hover{color:var(--color-error)}.hover\:text-\[var\(--color-text-primary\)\]:hover{color:var(--color-text-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:border-\[var\(--color-accent\)\]:focus{border-color:var(--color-accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:opacity-40:disabled{opacity:.4}}.vscode-light,[data-theme=light]{--color-primary:#4338ca;--color-primary-hover:#4f46e5;--color-primary-light:#6366f1;--color-primary-dark:#3730a3;--color-surface:#fff;--color-surface-hover:#f0f0f0;--color-surface-active:#e8e8e8;--color-surface-border:#d8d8d8;--color-panel:#f3f3f3;--color-panel-border:#d0d0d0;--color-elevated:#fff;--color-elevated-border:#d0d0d0;--color-surface-bg:#fff;--color-input-bg:#fff;--color-input-border:#d0d0d0;--color-input-hover:#f5f5f5;--color-input-focus:#fff;--color-icon-hover-bg:#0000000f;--color-item-hover-bg:#0000000a;--color-text-primary:#1f2328;--color-text-secondary:#57606a;--color-text-muted:#8c959f;--color-success:#1a7f37;--color-warning:#b55e00;--color-error:#cf222e;--color-info:#4338ca;--color-method-get:#1a7f37;--color-method-post:#b55e00;--color-method-put:#1d6ae5;--color-method-patch:#7c3aed;--color-method-delete:#cf222e;--color-method-head:#0891b2;--color-method-options:#c026d3;--color-sidebar-collections:#8b5cf6;--color-sidebar-history:#0d9488;--color-sidebar-environments:#1a7f37;--color-protocol-rest:#4338ca;--color-protocol-graphql:#b91c8c;--color-protocol-websocket:#15803d;--color-protocol-sse:#b55e00;--color-protocol-socketio:#0d9488;--color-protocol-mqtt:#7c3aed;--color-protocol-grpc:#0891b2;--color-protocol-soap:#dc2626;--color-protocol-ai:#be123c;--color-protocol-mcp:#475569;--color-mock-server:#b55e00;--color-mock-server-muted:#92400e;--color-try-button:#4338ca;--color-settings:#1f7a6e;--color-time-fast:#1a7f37;--color-time-moderate:#b55e00;--color-time-slow:#c2410c;--color-time-critical:#cf222e;--color-muted:#6b7280;--color-muted-fallback:#9ca3af;--color-status-5xx:#991b1b;--color-ctx-rename:#0891b2;--color-ctx-duplicate:#7c3aed;--color-ctx-pin:#b55e00;--color-ctx-close:#cf222e;--color-ctx-close-batch:#ea580c;--color-ctx-close-saved:#1a7f37;--color-ctx-close-all:#9f1239}:root{--font-sans:"Inter", var(--vscode-font-family,system-ui, -apple-system, sans-serif);--font-mono:"JetBrains Mono", "Fira Code", var(--vscode-editor-font-family,monospace);--radius:8px;--radius-sm:6px;--radius-lg:12px;font-family:var(--font-sans);font-size:var(--vscode-font-size,13px);color:var(--color-text-primary);background-color:var(--color-panel);line-height:1.5}body{margin:0;padding:0;overflow:hidden}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes breathing{0%,to{opacity:.6;box-shadow:0 0 4px}50%{opacity:1;box-shadow:0 0 12px,0 0 24px}}@keyframes breathingSweep{0%{background-position:-200%}to{background-position:200%}}.dui-breathing-connected{animation:2.5s ease-in-out infinite breathing}@keyframes mockServerPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.dui-mock-server-running{transform-origin:50%;animation:2.4s ease-in-out infinite mockServerPulse}@keyframes badgePop{0%{opacity:0;transform:scale(.7)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.dui-mock-badge-enter{animation:.3s cubic-bezier(.34,1.56,.64,1) forwards badgePop}.dui-breathing-sweep{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#0000 0%,currentColor 50%,#0000 100%) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;animation:3s ease-in-out infinite breathingSweep}.dui-breathing-btn{animation:2.5s ease-in-out infinite breathingRedGlow;position:relative;overflow:hidden}.dui-breathing-btn:before{content:"";background:linear-gradient(90deg,#0000,#ef44442e,#0000) 0 0/200% 100%;animation:2.5s ease-in-out infinite breathingSweep;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes breathingRedGlow{0%,to{box-shadow:0 0 4px #ef444426}50%{box-shadow:0 0 12px #ef444459,0 0 4px #ef444433}}.dui-scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.dui-scrollbar-none::-webkit-scrollbar{display:none}:focus{box-shadow:none;outline:none}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}input[type=number]{-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important}.dui-url-bar{flex-shrink:0;align-items:center;gap:10px;height:34px;margin:6px 12px;display:flex;position:relative;overflow:visible}.dui-url-bar .sd-trigger{border:1px solid var(--color-input-border);background:var(--color-input-bg);border-radius:6px;height:36px;min-height:36px;padding:0 12px}.dui-url-bar .sd-trigger:hover{background:var(--color-input-hover);border-color:#505050}.dui-url-bar-method{flex-shrink:0}.dui-url-bar-method .sd-wrap{position:relative}.dui-url-bar-method .sd-trigger{letter-spacing:.5px;border:1px solid var(--color-input-border);background:var(--color-input-bg);border-radius:6px;min-width:72px;height:36px;min-height:36px;padding:0 12px;font-size:11.5px;font-weight:700}.dui-mock-method .sd-trigger{letter-spacing:.5px;border:1px solid var(--color-input-border);background:var(--color-input-bg);border-radius:6px;min-width:64px;height:32px;min-height:32px;padding:0 10px;font-size:11px;font-weight:700}.dui-mock-method .sd-trigger:hover{background:var(--color-input-hover);border-color:#505050}.dui-mock-method .sd-trigger.open{border-color:var(--color-mock-server);background:#eab3081f;box-shadow:0 0 0 1px #eab3084d}.dui-url-bar-method .sd-trigger:hover{background:var(--color-input-hover);border-color:#505050}.dui-url-bar-method .sd-trigger.open{border-color:var(--color-primary);background:#6366f11f;box-shadow:0 0 0 1px #6366f14d}.dui-highlighted-input-wrapper{flex:1;position:relative;overflow:hidden}.dui-highlighted-input-mirror{white-space:nowrap;pointer-events:none;color:#0000;padding:0 12px;font-size:13px;line-height:36px;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.dui-highlighted-input-mirror .var-highlight{color:var(--color-primary);background:#6366f11a;font-weight:500}@supports (color:color-mix(in lab,red,red)){.dui-highlighted-input-mirror .var-highlight{background:color-mix(in srgb,var(--color-primary) 10%,transparent)}}.dui-highlighted-input-mirror .var-highlight{border-radius:3px;padding:1px 2px}.dui-highlighted-input-mirror .var-escape-highlight{color:var(--color-warning);background:#f59e0b1a;font-weight:500}@supports (color:color-mix(in lab,red,red)){.dui-highlighted-input-mirror .var-escape-highlight{background:color-mix(in srgb,var(--color-warning) 10%,transparent)}}.dui-highlighted-input-mirror .var-escape-highlight{border-radius:3px;padding:1px 2px}.dui-highlighted-input-mirror .placeholder-text{color:var(--color-text-muted)}.dui-highlighted-input{background:var(--color-input-bg);border:1px solid var(--color-input-border);width:100%;color:var(--color-text-primary);height:36px;min-height:unset;caret-color:var(--color-text-primary);box-sizing:border-box;border-radius:6px;padding:0 12px;font-size:13px;position:relative}.dui-highlighted-input::placeholder{color:#0000}.dui-highlighted-input:hover{border-color:#505050}.dui-highlighted-input:focus{box-shadow:none;border-color:var(--color-accent,var(--color-primary));outline:none}.dui-collapse-wrapper{grid-template-rows:0fr;transition:grid-template-rows .2s ease-out;display:grid}.dui-collapse-wrapper.expanded{grid-template-rows:1fr}.dui-collapse-wrapper>.dui-collapse-inner{overflow:hidden}.dui-url-bar-input{background:var(--color-input-bg);border:1px solid var(--color-input-border);color:var(--color-text-primary);height:36px;min-height:unset;border-radius:6px;flex:1;padding:0 12px;font-size:13px}.dui-url-bar-input::placeholder{color:var(--color-text-muted)}.dui-url-bar-input:hover{background:var(--color-input-hover);border-color:#505050}.dui-url-bar-input:focus{box-shadow:0 0 0 1px var(--color-accent,#6366f1);outline:none}@supports (color:color-mix(in lab,red,red)){.dui-url-bar-input:focus{box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent,var(--color-primary)) 25%,transparent)}}.dui-url-bar-input:focus{border-color:var(--color-accent,var(--color-primary));background:var(--color-input-bg)}.dui-url-bar-send{letter-spacing:.2px;color:#fff;background:var(--color-primary);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:5px;height:36px;margin:0;padding:0 18px;font-size:12px;font-weight:600;transition:background .14s,box-shadow .14s,transform 80ms;display:flex}.dui-url-bar-send:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 2px 16px #6366f166,0 0 0 1px #6366f133}.dui-url-bar-send:active:not(:disabled){transform:scale(.97)}.dui-url-bar-send:disabled{opacity:.4;cursor:not-allowed}.dui-url-bar-send-loading{align-items:center;gap:6px;display:flex}.dui-url-bar-spinner{width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dui-progress-spin-ring{transform-origin:50%;animation:1.2s linear infinite spin}.dui-progress-pulse-ring{transform-origin:50%;animation:1.2s ease-in-out infinite progress-pulse}@keyframes progress-pulse{0%,to{opacity:.15;transform:scale(.85)}50%{opacity:.9;transform:scale(1.15)}}.dui-url-bar-env{flex-shrink:0;margin-left:8px}.dui-url-bar-env .sd-trigger{border-radius:6px;height:36px;min-height:36px;padding:0 10px;font-size:12px}@keyframes confirm-in{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ai-snake-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#333}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-track{background:color-mix(in srgb,var(--color-surface-border) 60%,var(--color-surface))}}::-webkit-scrollbar-track{border-radius:99px}::-webkit-scrollbar-thumb{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-accent) 55%,var(--color-surface-border))}}::-webkit-scrollbar-thumb{border-radius:99px;min-height:24px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-accent) 85%,var(--color-surface-border))}}::-webkit-scrollbar-corner{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--color-accent) #333}@supports (color:color-mix(in lab,red,red)){*{scrollbar-color:color-mix(in srgb,var(--color-accent) 55%,var(--color-surface-border)) color-mix(in srgb,var(--color-surface-border) 60%,var(--color-surface))}}.dui-scrollbar-gutter-stable{scrollbar-gutter:stable}.dui-truncate-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider{background:var(--editor-accent,var(--color-accent))!important}@supports (color:color-mix(in lab,red,red)){.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider{background:color-mix(in srgb,var(--editor-accent,var(--color-accent)) 50%,transparent)!important}}.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider{border-radius:99px!important;transition:background .12s!important}.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--editor-accent,var(--color-accent))!important}@supports (color:color-mix(in lab,red,red)){.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider:hover{background:color-mix(in srgb,var(--editor-accent,var(--color-accent)) 75%,transparent)!important}}.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider.active{background:var(--editor-accent,var(--color-accent))!important}@supports (color:color-mix(in lab,red,red)){.dui-editor-shell .monaco-scrollable-element>.scrollbar>.slider.active{background:color-mix(in srgb,var(--editor-accent,var(--color-accent)) 90%,transparent)!important}}.monaco-editor .find-widget{top:4px!important;right:14px!important}.monaco-editor .find-widget .monaco-inputbox .input{font-size:12px}.monaco-editor .find-widget .button{position:relative}.monaco-editor .find-widget .button:after{content:"";pointer-events:none;position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.monaco-hover.workbench-hover,.workbench-hover-container,.monaco-editor .monaco-hover,.monaco-editor .monaco-editor-hover{pointer-events:none!important}.dui-daakia-debug-hover{z-index:99999;background:var(--color-surface,#1e1e2e);border:1px solid var(--color-surface-border,#333);pointer-events:auto;border-radius:8px;min-width:120px;max-width:320px;font-family:Segoe UI,system-ui,sans-serif;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000080}.dui-daakia-debug-hover__header{border-bottom:1px solid var(--color-surface-border,#333);align-items:center;gap:8px;padding:8px 12px;display:flex}.dui-daakia-debug-hover__name{color:var(--color-text-primary,#e4e4e7);font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;font-weight:600}.dui-daakia-debug-hover__type{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.dui-daakia-debug-hover__value{color:var(--color-text-secondary,#a1a1aa);white-space:pre-wrap;word-break:break-word;max-height:200px;padding:8px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.dui-daakia-bp-glyph{cursor:pointer}.dui-daakia-bp-glyph:before{content:"";background:var(--color-error,#ef4444);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:calc(50% + 2px);transform:translate(-50%,-50%)}.dui-daakia-bp-glyph--disabled{cursor:pointer}.dui-daakia-bp-glyph--disabled:before{content:"";border:1.5px solid var(--color-text-muted,#6b7280);opacity:.6;background:0 0;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:calc(50% + 2px);transform:translate(-50%,-50%)}.dui-daakia-bp-glyph--conditional{cursor:pointer}.dui-daakia-bp-glyph--conditional:before{content:"";background:var(--color-warning,#eab308);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:calc(50% + 2px);transform:translate(-50%,-50%)}.dui-daakia-bp-glyph--hover{cursor:pointer}.dui-daakia-bp-glyph--hover:before{content:"";background:#ef44444d;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:calc(50% + 2px);transform:translate(-50%,-50%)}.monaco-editor .glyph-margin{cursor:pointer}.dui-daakia-paused-line{border-left:2px solid #e5c335;background:#e5c3351f!important}.dui-daakia-bp-line{background:#ff52520f!important}.dui-daakia-paused-line__arrow{position:relative}.dui-daakia-paused-line__arrow:before{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23e5c335' d='M8.879 14H5C3.897 14 3 13.103 3 12V4C3 2.897 3.897 2 5 2H8.879C9.405 2 9.921 2.213 10.293 2.586L14.505 6.798C14.826 7.119 15.003 7.546 15.003 8C15.003 8.454 14.826 8.881 14.505 9.202L10.293 13.414C9.921 13.787 9.405 14 8.879 14Z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;width:14px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dui-daakia-paused-line__arrow--with-bp{position:relative}.dui-daakia-paused-line__arrow--with-bp:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23e5c335' d='M8.879 14H5C3.897 14 3 13.103 3 12V4C3 2.897 3.897 2 5 2H8.879C9.405 2 9.921 2.213 10.293 2.586L14.505 6.798C14.826 7.119 15.003 7.546 15.003 8C15.003 8.454 14.826 8.881 14.505 9.202L10.293 13.414C9.921 13.787 9.405 14 8.879 14Z'/%3E%3Ccircle cx='7' cy='8' r='2' fill='%23ef4444'/%3E%3C/svg%3E")}.dui-sidebar-shimmer{animation:1.5s ease-in-out infinite sidebarShimmer}@keyframes sidebarShimmer{0%,to{opacity:.4}50%{opacity:1}}.dui-wsdl-tag{color:#e879f9}.dui-wsdl-attr{color:#60a5fa}.dui-wsdl-val{color:#4ade80}.dui-wsdl-proc{color:#fbbf24;opacity:.8}.dui-wsdl-comment{color:#6b7280;font-style:italic}.dui-wsdl-text{color:var(--color-text-primary)}.monaco-editor .find-widget>.button.codicon-widget-close{justify-content:center!important;align-items:center!important;display:inline-flex!important;top:calc(50% - 11px)!important}.monaco-editor .find-widget{background-color:var(--color-surface-bg,#1e1e1e)!important;border:1px solid var(--color-surface-border,#414141)!important;border-radius:8px!important;box-shadow:0 4px 20px #0006!important}.dui-ce-chat-root--fullscreen{box-shadow:none!important;border:none!important;border-radius:0!important}.dui-ce-fullscreen{box-shadow:none!important;border:none!important;border-radius:0!important;height:100%!important}.dui-ce-fullscreen-header{border-bottom:1px solid var(--color-surface-border)!important;background:var(--color-surface)!important}.dui-ce-composer-input{box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important}.dui-ce-composer-send{background:0 0!important;border:none!important}.dui-bs-multiselect-hud{z-index:20;background:var(--color-panel,#111827);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;border:1px solid #6366f173;border-radius:99px;align-items:center;gap:4px;width:fit-content;margin:12px auto 0;padding:6px 10px;animation:.12s bs-hud-in;display:flex;position:sticky;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0000008c,0 0 0 1px #6366f11f}@keyframes bs-hud-in{0%{opacity:0;transform:translate(-50%)translateY(8px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.dui-bs-multiselect-hud-count{color:#a5b4fc;letter-spacing:.02em;padding:0 4px;font-size:12px;font-weight:600}.dui-bs-multiselect-hud-divider{background:#6366f140;width:1px;height:18px;margin:0 2px}.dui-bs-multiselect-hud-btn{cursor:pointer;color:#c7d2fe;background:#6366f11f;border:none;border-radius:99px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.dui-bs-multiselect-hud-btn:hover{color:#fff;background:#6366f147}.dui-bs-multiselect-hud-btn-danger{color:#fca5a5;background:#ef44441a}.dui-bs-multiselect-hud-btn-danger:hover{color:#fff;background:#ef444440}.dui-bs-multiselect-hud-btn-muted{color:#64748b;background:0 0}.dui-bs-multiselect-hud-btn-muted:hover{color:#94a3b8;background:#ffffff0f}.dui-mdv-root{color:var(--color-text-primary,#e4e4e7);word-break:break-word;overflow-wrap:anywhere;font-size:12.5px;line-height:1.7}.dui-mdv-root h1,.dui-mdv-root h2,.dui-mdv-root h3,.dui-mdv-root h4,.dui-mdv-root h5{color:var(--color-text-primary,#f4f4f5);margin:.9em 0 .35em;font-weight:600;line-height:1.3}.dui-mdv-root h1{border-bottom:1px solid #ffffff12;padding-bottom:.3em;font-size:1.22em}.dui-mdv-root h2{font-size:1.1em}.dui-mdv-root h3{color:#c4b5fd;font-size:1em}.dui-mdv-root h4{opacity:.8;font-size:.9em}.dui-mdv-root h5{opacity:.7;font-size:.85em}.dui-mdv-root p{margin:.45em 0}.dui-mdv-root p:first-child{margin-top:0}.dui-mdv-root p:last-child{margin-bottom:0}.dui-daakia-chat-md .dui-mdv-root p:first-child{margin-top:0}.dui-daakia-chat-md .dui-mdv-root p:last-child{margin-bottom:0}.dui-daakia-chat-md .dui-mdv-root ul,.dui-daakia-chat-md .dui-mdv-root ol{margin:.15em 0}.dui-daakia-chat-md .dui-mdv-root h1,.dui-daakia-chat-md .dui-mdv-root h2,.dui-daakia-chat-md .dui-mdv-root h3,.dui-daakia-chat-md .dui-mdv-root h4,.dui-daakia-chat-md .dui-mdv-root h5{margin:.4em 0 .15em}.dui-daakia-chat-md .dui-mdv-root hr{margin:.4em 0}.dui-daakia-chat-md .dui-mdv-root .dui-mdv-code-block{margin:.3em 0}.dui-mdv-root .dui-mdv-inline-code,.dui-mdv-root code:not(.hljs){color:#c084fc;letter-spacing:0;background:#8b5cf621;border:1px solid #8b5cf638;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Menlo,monospace;font-size:.87em}.dui-mdv-root strong{color:#f4f4f5;font-weight:650}.dui-mdv-root em{color:#d4d4d8;font-style:italic}.dui-mdv-root del{opacity:.55;text-decoration:line-through}.dui-mdv-root a{color:var(--color-protocol-ai,#818cf8);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.dui-mdv-root a:hover{opacity:.8}.dui-mdv-root hr{border:none;border-top:1px solid #ffffff17;margin:.9em 0}.dui-mdv-root ul,.dui-mdv-root ol{margin:.35em 0;padding-left:1.35em}.dui-mdv-root li{margin:.18em 0}.dui-mdv-root ul>li::marker{color:#8b5cf6b3}.dui-mdv-root ol>li::marker{color:#8b5cf6b3;font-variant-numeric:tabular-nums}.dui-mdv-root li>ul,.dui-mdv-root li>ol{margin:0}.dui-mdv-root input[type=checkbox]{accent-color:#8b5cf6;cursor:default;margin-right:5px}.dui-mdv-root .dui-mdv-bq,.dui-mdv-root blockquote{color:var(--color-text-muted,#a1a1aa);background:#8b5cf60f;border-left:3px solid #8b5cf680;border-radius:0 6px 6px 0;margin:.55em 0;padding:.4em .85em;font-style:italic}.dui-mdv-root .dui-mdv-bq p,.dui-mdv-root blockquote p{margin:0}.dui-mdv-root table{border-collapse:collapse;border:1px solid #ffffff14;border-radius:6px;width:100%;margin:.65em 0;font-size:.9em;overflow:hidden}.dui-mdv-root th{color:#c084fc;text-align:left;text-transform:uppercase;letter-spacing:.05em;background:#8b5cf624;border-bottom:1px solid #8b5cf640;padding:5px 11px;font-size:.83em;font-weight:600}.dui-mdv-root td{color:var(--color-text-primary,#e4e4e7);border-bottom:1px solid #ffffff0d;padding:4px 11px}.dui-mdv-root tr:nth-child(2n) td{background:#ffffff05}.dui-mdv-root tr:last-child td{border-bottom:none}.dui-mdv-root tr:hover td{background:#8b5cf60f;transition:background .1s}.dui-mdv-root .dui-mdv-code-block{background:#0d0d10;border:1px solid #ffffff14;border-radius:8px;margin:.65em 0;overflow:hidden}.dui-mdv-root .dui-mdv-code-header{background:#ffffff09;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:8px;padding:4px 10px;display:flex}.dui-mdv-root .dui-mdv-lang-pill{color:#ffffff4d;text-transform:lowercase;letter-spacing:.06em;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:9.5px}.dui-mdv-root .dui-mdv-copy-btn{color:#8b5cf68c;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-family:inherit;font-size:9.5px;transition:all .15s;display:inline-flex}.dui-mdv-root .dui-mdv-copy-btn:hover{color:#c084fc;background:#8b5cf61f;border-color:#8b5cf640}.dui-mdv-root .dui-mdv-copy-btn.dui-mdv-copied{color:#22c55e;background:#22c55e14;border-color:#22c55e4d}.dui-mdv-root .dui-mdv-copy-icon{flex-shrink:0;transition:opacity .15s}.dui-mdv-root .dui-mdv-check-icon{stroke:currentColor}.dui-mdv-root .dui-mdv-copy-label{line-height:1}.dui-mdv-root pre{white-space:pre-wrap;word-break:break-word;margin:0;padding:10px 13px;overflow-x:hidden;background:0 0!important}.dui-mdv-root pre code.hljs{white-space:pre-wrap;word-break:break-word;padding:0;font-family:JetBrains Mono,Fira Code,Cascadia Code,Menlo,monospace;font-size:11px;line-height:1.55;background:0 0!important}.dui-mdv-root .hljs{color:#abb2bf}.dui-mdv-root .hljs-comment,.dui-mdv-root .hljs-quote{color:#5c6370;font-style:italic}.dui-mdv-root .hljs-keyword,.dui-mdv-root .hljs-selector-tag,.dui-mdv-root .hljs-built_in{color:#c678dd}.dui-mdv-root .hljs-string,.dui-mdv-root .hljs-regexp,.dui-mdv-root .hljs-addition,.dui-mdv-root .hljs-attribute{color:#98c379}.dui-mdv-root .hljs-number,.dui-mdv-root .hljs-literal,.dui-mdv-root .hljs-variable,.dui-mdv-root .hljs-template-variable,.dui-mdv-root .hljs-meta{color:#56b6c2}.dui-mdv-root .hljs-title,.dui-mdv-root .hljs-section,.dui-mdv-root .hljs-name,.dui-mdv-root .hljs-selector-id{color:#61aeee}.dui-mdv-root .hljs-type,.dui-mdv-root .hljs-class .hljs-title,.dui-mdv-root .hljs-attr{color:#e6c07b}.dui-mdv-root .hljs-tag,.dui-mdv-root .hljs-deletion,.dui-mdv-root .hljs-subst{color:#e06c75}.dui-mdv-root .hljs-link{color:#61aeee;text-decoration:underline}.dui-mdv-root .hljs-emphasis{font-style:italic}.dui-mdv-root .hljs-strong{font-weight:700}.dui-mdv-root .hljs-punctuation{color:#abb2bf}.dui-mdv-root .hljs-property{color:#e06c75}.dui-mdv-root .hljs-operator{color:#56b6c2}.dui-mdv-root .hljs-params{color:#abb2bf}.dui-mdv-root .hljs-function{color:#61aeee}.dui-mdv-root .hljs-class{color:#e6c07b}.dui-mdv-root .hljs-doctag{color:#c678dd}.dui-mdv-root .hljs-formula{background:#ffffff0a}.dui-mdv-root .hljs-selector-class{color:#d19a66}.dui-mdv-root .hljs-selector-pseudo{color:#56b6c2}.dui-mdv-root .hljs-template-tag{color:#c678dd}.dui-mdv-root .hljs-symbol{color:#98c379}.dui-daakia-chat-md .dui-mdv-root{line-height:1.5}.dui-daakia-chat-md .dui-mdv-root p{margin:.15em 0}.dui-daakia-chat-md .dui-mdv-root p:empty{display:none}.dui-daakia-chat-md .dui-mdv-root h1,.dui-daakia-chat-md .dui-mdv-root h2,.dui-daakia-chat-md .dui-mdv-root h3{margin:.4em 0 .2em}.dui-daakia-chat-md .dui-mdv-root li{margin:.1em 0}.dui-daakia-chat-md .dui-mdv-root ul,.dui-daakia-chat-md .dui-mdv-root ol{margin:.2em 0;padding-left:1.4em}.dui-daakia-chat-md .dui-mdv-root pre{margin:.3em 0}[class*=token-popup],[class*=TokenPopup],[class*=ce-token],[class*=tok-detail],[class*=usage-popup],.dui-ce-usage-popup{background-color:var(--color-panel)!important;border:1px solid var(--color-surface-border)!important;border-radius:10px!important;box-shadow:0 8px 32px #0006!important}[data-theme=light] [role=tablist]{border:1px solid #d1d5db;background-color:#ececec!important}[data-theme=light] [role=tab]:not([aria-selected=true]){color:#6b7280}[data-theme=light] [role=tab][aria-selected=true]{color:var(--color-primary)}[data-theme=light] .monaco-editor .lines-content{background:#fff!important}[data-theme=light] ::-webkit-scrollbar-track{background:#f3f4f6}[data-theme=light] ::-webkit-scrollbar-thumb{background:#d1d5db}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#9ca3af}[data-theme=light] *{scrollbar-color:#d1d5db #f3f4f6}[data-theme=light] input:not([type=checkbox]):not([type=radio]):not([type=range]),[data-theme=light] textarea{background-color:var(--color-input-bg,#f9fafb)!important;border-color:var(--color-surface-border,#e5e7eb)!important;color:var(--color-text-primary)!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes dui_menu-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}.dui_ctx-menu__item{transition:background .1s,color .1s}.dui_ctx-menu__item:not(.dui_ctx-menu__item--disabled):hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.dui_ctx-menu__item--danger:not(.dui_ctx-menu__item--disabled):hover{background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error)}.dui_button{transition:background .1s,filter .1s,color .1s,transform 80ms,box-shadow 80ms}.dui_button--primary{background:var(--dui-btn-bg, var(--color-btn-primary-bg))}.dui_button--primary:not(:disabled):hover{background:var(--dui-btn-hover-bg, var(--color-btn-primary-hover))}.dui_button--secondary{background:var(--color-btn-secondary-bg)}.dui_button--secondary:not(:disabled):hover{background:var(--color-btn-secondary-hover)}.dui_button--ghost{background:transparent}.dui_button--ghost:not(:disabled):hover{background:var(--dui-ghost-hover-bg, var(--color-btn-ghost-hover))}.dui_button--accent{background:var(--dui-accent-bg, color-mix(in srgb, var(--color-btn-primary-bg) 12%, transparent))}.dui_button--accent:not(:disabled):hover{background:var(--dui-accent-hover-bg, color-mix(in srgb, var(--color-btn-primary-bg) 20%, transparent))}.dui_button--danger{background:var(--color-btn-danger-bg)}.dui_button--danger:not(:disabled):hover{filter:brightness(1.1)}.dui_button:not(:disabled):active{transform:scale(.95);filter:brightness(.85);box-shadow:none;transition:transform 60ms,filter 60ms,box-shadow 60ms}.dui_icon-button{background:var(--dui-icon-bg, transparent);color:var(--dui-icon-color, var(--color-text-muted));transition:background .12s ease,color .12s ease,transform 80ms,box-shadow 80ms}.dui_icon-button:not(:disabled):hover{background:var(--dui-hover-bg, var(--color-iconbtn-bg-hover, var(--color-surface-hover)));color:var(--dui-hover-color, var(--color-text-primary))}.dui_icon-button:not(:disabled):active{transform:scale(.92);filter:brightness(.85);box-shadow:none;transition:transform 60ms,filter 60ms,box-shadow 60ms}.dui_dropdown-button__label,.dui_dropdown-button__chevron{background:transparent;transition:background .12s,filter 80ms,transform .12s}.dui_dropdown-button__label:not(:disabled):hover{background:var(--dui-hover-btn-bg, var(--color-surface-active))}.dui_dropdown-button__chevron:not(:disabled):hover{background:var(--dui-hover-btn-bg, var(--color-surface-active))}.dui_dropdown-button__label:not(:disabled):active,.dui_dropdown-button__chevron:not(:disabled):active{transform:scale(.92);filter:brightness(.85);box-shadow:none;transition:transform 60ms,filter 60ms,box-shadow 60ms}.dui_select__option{transition:background .1s,color .1s}.dui_select__option--selected{background:color-mix(in srgb,var(--dui-select-accent, var(--color-primary)) 15%,transparent)}.dui_select__option:not(.dui_select__option--selected):hover{background:color-mix(in srgb,var(--dui-select-accent, var(--color-primary)) 10%,transparent);color:var(--color-text-primary)}@keyframes dui-select-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.dui_select__menu{animation:dui-select-menu-in .12s ease-out}.dui_select__menu::-webkit-scrollbar{width:4px}.dui_select__menu::-webkit-scrollbar-track{background:transparent}.dui_select__menu::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--dui-select-accent, var(--color-primary)) 35%,transparent);border-radius:4px}.dui_select__menu::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--dui-select-accent, var(--color-primary)) 55%,transparent)}.dui_select-text__trigger{transition:background .1s}.dui_select-text__trigger:not(.dui_select-text__trigger--disabled):hover{background:var(--color-surface-hover)}.dui_select-text__option{transition:background .1s}.dui_select-text__option--selected{background:color-mix(in srgb,var(--dui-stiv-accent, var(--color-primary)) 12%,transparent)}.dui_select-text__option:hover{background:color-mix(in srgb,var(--dui-stiv-accent, var(--color-primary)) 10%,transparent)}.dui-stiv-sugg-item{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:2px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--color-text-primary);transition:background 80ms;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dui-stiv-sugg-item:hover,.dui-stiv-sugg-item--active{background:color-mix(in srgb,var(--dui-stiv-accent, var(--color-primary)) 13%,transparent)}.dui_hidden-kv-item{opacity:.72;transition:opacity .12s}.dui_hidden-kv-item:hover{opacity:.92}.dui_hidden-kv-item__eye{opacity:.7;color:var(--color-text-muted);transition:color .12s,opacity .12s}.dui_hidden-kv-item__eye:hover{opacity:1;color:var(--color-text-primary)}.dui_hidden-kv-item__delete{transition:color .12s,opacity .12s}.dui_hidden-kv-item__delete:hover{color:var(--color-error)}.dui_tab__btn{transition:color .15s}.dui_tab__btn:not(.dui_tab__btn--active):hover{color:var(--color-text-primary)}.dui_tab__picker-btn{transition:background .15s,color .15s,box-shadow .15s}.dui_tab__picker-btn:not(.dui_tab__picker-btn--active):hover{color:var(--color-text-primary)}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}.dui_tab-bar__scroll-btn{transition:background .12s,color .12s}.dui_tab-bar__scroll-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.dui_tab-bar__tab{transition:background .12s}.dui_tab-bar__tab:not(.dui_tab-bar__tab--active):hover{background:var(--color-surface-hover)}.dui_tab-bar__close-btn{transition:opacity .12s,background .12s}.dui_tab-bar__close-btn:hover{background:var(--color-icon-hover-bg)}.dui_tab-bar__add-btn{transition:background .12s}.dui_tab-bar__add-btn:hover{background:var(--color-surface-hover)}.dui-rearrange{display:flex;flex-direction:column;gap:6px;width:100%}.dui-rearrange-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid var(--dui-border, var(--color-border, rgba(255, 255, 255, .1)));background:var(--dui-bg-subtle, var(--color-bg-subtle, rgba(255, 255, 255, .03)));color:var(--dui-text, var(--color-text-primary, inherit));cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .12s,background .12s,transform .12s,opacity .12s}.dui-rearrange-row:hover{border-color:color-mix(in srgb,var(--dui-rearrange-accent) 45%,transparent)}.dui-rearrange-row:active{cursor:grabbing}.dui-rearrange-row.is-dragging{opacity:.5}.dui-rearrange-row.is-over{border-color:var(--dui-rearrange-accent);box-shadow:inset 0 2px 0 0 var(--dui-rearrange-accent)}.dui-rearrange-row.is-disabled{opacity:.55}.dui-rearrange-row.is-disabled .dui-rearrange-label{text-decoration:line-through}.dui-rearrange-row.is-locked{cursor:default}.dui-rearrange-handle{flex-shrink:0;font-size:15px;line-height:1;color:var(--dui-text-muted, var(--color-text-muted, #888));cursor:grab}.dui-rearrange-row.is-locked .dui-rearrange-handle{cursor:default}.dui-rearrange-body{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.dui-rearrange-icon{flex-shrink:0}.dui-rearrange-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dui-rearrange--sm .dui-rearrange-row{padding:6px 8px;gap:8px}.dui-rearrange--sm .dui-rearrange-label{font-size:12px}.dui-rearrange--lg .dui-rearrange-row{padding:10px 12px}.dui-rearrange--lg .dui-rearrange-label{font-size:14px}.dui-slider{display:flex;align-items:center}.dui-slider__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;outline:none;cursor:pointer;transition:opacity .15s;flex:1}.dui-slider__input:disabled{opacity:.4;cursor:not-allowed}.dui-slider__input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;cursor:pointer;background:var(--dui-slider-accent, var(--color-primary));border:2px solid var(--color-panel, #1e1e1e);box-shadow:0 1px 3px #0000004d;transition:transform .1s}.dui-slider__input:not(:disabled)::-webkit-slider-thumb:hover{transform:scale(1.2)}.dui-slider__input::-moz-range-thumb{width:13px;height:13px;border-radius:50%;cursor:pointer;background:var(--dui-slider-accent, var(--color-primary));border:2px solid var(--color-panel, #1e1e1e);box-shadow:0 1px 3px #0000004d}.dui_modal__close-btn{color:var(--color-text-muted);transition:background .12s,transform 80ms,color .12s}.dui_modal__close-btn:hover{background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-error)}.dui_modal__close-btn:active{background:color-mix(in srgb,var(--color-error) 22%,transparent);transform:scale(.88);transition:background 60ms,transform 60ms}.dui_modal__body{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--color-text-muted) 35%,transparent) transparent}.dui_modal__body::-webkit-scrollbar{width:4px}.dui_modal__body::-webkit-scrollbar-track{background:transparent}.dui_modal__body::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-text-muted) 35%,transparent);border-radius:2px}.dui_modal__body::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-text-muted) 65%,transparent)}.dui_empty-state__action{transition:background .12s}.dui_empty-state__action:hover{background:color-mix(in srgb,var(--dui-empty-accent, var(--color-primary)) 18%,transparent)}.dui_data-table__row{transition:background 80ms}.dui_data-table__row--clickable:hover{background:var(--color-surface-hover)}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.dui_ai-button{background:var(--dui-aibtn-bg, var(--color-aibtn-bg));border:1px solid var(--dui-aibtn-border-color, var(--color-aibtn-border));transition:background .12s,border-color .12s,transform 80ms,filter 80ms}.dui_ai-button:not(:disabled):hover{background:var(--dui-aibtn-hover-bg, var(--color-aibtn-bg-hover));border-color:var(--dui-aibtn-hover-border, color-mix(in srgb, var(--color-aibtn-text) 55%, transparent))}.dui_ai-button:not(:disabled):active{transform:scale(.95);filter:brightness(.85);box-shadow:none;transition:transform 60ms,filter 60ms,box-shadow 60ms}.dui_side-nav__item{transition:background .1s,color .1s}.dui_side-nav__item:not(.dui_side-nav__item--active):hover{background:var(--color-sidenav-hover-bg)}.dui_side-nav__clear-btn{transition:color .12s}.dui_side-nav__clear-btn:hover{color:var(--color-error)}.dui_side-nav__collapse-btn{transition:background .1s,color .1s}.dui_side-nav__collapse-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.dui_collapsible{border-bottom:1px solid var(--color-surface-border)}.dui_collapsible__header{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background 80ms}.dui_collapsible__header:hover{background:var(--color-surface-hover)}.dui_collapsible__chevron{display:flex;align-items:center;flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease;transform:rotate(0)}.dui_collapsible__chevron--open{transform:rotate(90deg)}.dui_collapsible__title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:1px 6px;border-radius:3px;color:var(--dui-collapse-accent, var(--color-text-primary));background:color-mix(in srgb,var(--dui-collapse-accent, transparent) 12%,transparent);white-space:nowrap}.dui_collapsible__badge{font-size:9px;font-weight:700;padding:1px 5px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:99px;color:var(--dui-collapse-accent, var(--color-text-muted));background:color-mix(in srgb,var(--dui-collapse-accent, var(--color-text-muted)) 20%,transparent);flex-shrink:0}.dui_collapsible__actions{margin-left:auto;display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.dui_settings-nav__item{transition:background .1s}.dui_settings-nav__item:not(.dui_settings-nav__item--active):hover{background:var(--color-surface-hover)}.dui_theme-card{transition:border-color .12s,background .12s}.dui_theme-card:not(.dui_theme-card--selected):hover{border-color:var(--color-text-muted)}.dui_feature-category__header{transition:background .1s}.dui_feature-category__header:hover{background:color-mix(in srgb,var(--dui-category-color, var(--color-primary)) 8%,transparent)}.dui_bottom-panel__drag-handle{transition:background .12s}.dui_bottom-panel__drag-handle:hover{background:var(--color-primary)}@keyframes dui_fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dui_prompt-card__action-btn{transition:background .1s,color .1s}.dui_prompt-card__action-btn:hover{background:var(--dui-action-hover-bg, var(--color-surface-hover))}.dui_prompt-card__action-btn--copied:hover{background:color-mix(in srgb,var(--color-success) 16%,transparent)}.dui_prompt-editor__var-chip{transition:background .1s}.dui_prompt-editor__var-chip:hover{background:color-mix(in srgb,var(--color-var-pill-bg) 150%,transparent)}.dui-graphify-var-mark{background:var(--color-var-pill-bg);color:var(--color-var-pill-text);border:1px solid var(--color-var-pill-border);border-radius:3px;padding:0 4px;font-weight:600;font-style:normal}@keyframes dui_stage-spin{to{transform:rotate(360deg)}}@keyframes dui_stage-pulse-ring{0%{transform:scale(1);opacity:.3}60%{transform:scale(1.55);opacity:0}to{transform:scale(1.55);opacity:0}}@keyframes dui_stage-pulse-dot{0%,to{opacity:1}50%{opacity:.55}}.dui_live-color__reset-btn{transition:color .1s}.dui_live-color__reset-btn:hover{color:var(--color-error)}.dui_duration__unit-option{transition:background 80ms}.dui_duration__unit-option:not(.dui_duration__unit-option--selected):hover{background:var(--color-dur-segment-hover)}.dui_split-button__main,.dui_split-button__chevron{background:transparent;transition:background .12s}.dui_split-button__main:hover,.dui_split-button__chevron:hover{background:var(--dui-split-hover-bg, rgba(0,0,0,.1))}.dui_split-button__menu-item{transition:background 80ms}.dui_split-button__menu-item:hover{background:var(--color-item-hover-bg)}.dui_highlighted-input{position:relative;flex:1;min-width:0;width:100%;overflow:hidden}.dui_highlighted-input__placeholder{position:absolute;left:12px;top:0;pointer-events:none;font-size:13px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden}.dui_highlighted-input__editor{width:100%;max-width:100%;padding:0 12px;font-size:13px;background:var(--color-input-bg);border:1px solid var(--color-input-border);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;outline:none;caret-color:var(--color-text-primary);box-sizing:border-box;display:block;align-items:center;cursor:text}.dui_highlighted-input__editor:hover{border-color:var(--color-input-border-hover, var(--color-surface-border))}.dui_highlighted-input__editor:focus{outline:none;box-shadow:none}.dui_highlighted-input__token{display:inline-block;color:var(--color-primary);font-size:12px;font-weight:600;background:color-mix(in srgb,var(--color-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 28%,transparent);border-radius:4px;padding:0 2px;line-height:17px;vertical-align:middle;white-space:nowrap}.dui_highlighted-input__token--escape{display:inline-block;color:var(--color-warning);font-size:12px;font-weight:600;background:color-mix(in srgb,var(--color-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-warning) 28%,transparent);border-radius:4px;padding:0 2px;line-height:17px;vertical-align:middle;white-space:nowrap}.dui_merged__select-trigger{transition:background .1s}.dui_merged__select-trigger:not(.dui_merged__select-trigger--disabled):hover{background:var(--color-surface-hover)}.dui_merged__select-option{transition:background .1s}.dui_merged__select-option:not(.dui_merged__select-option--selected):hover{background:var(--color-surface-hover)}.dui_merged__button-seg{transition:background .1s,color .1s}.dui_merged__button-seg:not(:disabled):hover{background:color-mix(in srgb,var(--dui-seg-accent, var(--color-primary)) 20%,transparent)}.dui_hud{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:2px;padding:3px 6px;background:var(--color-surface-overlay, var(--color-elevated));border:1px solid var(--dui-hud-accent, var(--color-primary));border-radius:6px;box-shadow:0 4px 16px #0006,0 0 0 1px color-mix(in srgb,var(--dui-hud-accent, var(--color-primary)) 15%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:dui_hud-in .2s ease-out;-webkit-user-select:none;user-select:none}@keyframes dui_hud-in{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dui_hud--contained{position:relative;top:unset;left:unset;transform:none;z-index:auto;animation:none}.dui_hud__drag{display:flex;align-items:center;justify-content:center;width:18px;height:20px;cursor:grab;opacity:.5;margin-right:2px;flex-shrink:0}.dui_hud__drag:active{cursor:grabbing}.dui_hud__grip{display:block;width:6px;height:10px;background:repeating-linear-gradient(to bottom,currentColor 0px,currentColor 1px,transparent 1px,transparent 3px);opacity:.6;color:var(--color-text-muted)}.dui_hud__btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:4px;background:transparent;cursor:pointer;transition:background .1s,opacity .1s;flex-shrink:0}.dui_hud__btn:hover:not(:disabled){background:var(--color-surface-hover)}.dui_hud__btn:disabled{opacity:.35;cursor:not-allowed}.dui_hud__btn--active{background:color-mix(in srgb,var(--dui-hud-active-color, var(--color-error)) 22%,transparent);color:var(--dui-hud-active-color, var(--color-error));box-shadow:0 0 0 1px color-mix(in srgb,var(--dui-hud-active-color, var(--color-error)) 35%,transparent)}.dui_hud__btn--active:hover:not(:disabled){background:color-mix(in srgb,var(--dui-hud-active-color, var(--color-error)) 32%,transparent)}.dui_hud__sep{width:1px;height:16px;background:var(--color-surface-border);margin:0 3px;flex-shrink:0}.dui_hud__status{font-size:10px;font-weight:500;color:var(--color-text-muted);margin-left:6px;white-space:nowrap;flex-shrink:0}.dui_json-tree{font-family:Menlo,Monaco,Courier New,monospace;font-size:11px;line-height:1.5;overflow-x:auto}.dui_json-tree__row{display:flex;align-items:baseline;gap:3px;padding:1px 4px 1px 0;min-height:18px;cursor:default;border-radius:2px;transition:background 60ms;white-space:nowrap}.dui_json-tree__row--expandable{cursor:pointer}.dui_json-tree__row:hover{background:var(--color-surface-hover)}.dui_json-tree__chevron{width:12px;flex-shrink:0;color:var(--color-text-muted);font-size:8px;display:inline-flex;align-items:center;transition:transform .12s;transform:rotate(0)}.dui_json-tree__chevron--open{transform:rotate(90deg)}.dui_json-tree__chevron-spacer{width:12px;flex-shrink:0;display:inline-block}.dui_json-tree__key{color:var(--color-debug-key);flex-shrink:0}.dui_json-tree__eq{color:var(--color-text-muted);flex-shrink:0}.dui_json-tree__value--string{color:var(--color-debug-string)}.dui_json-tree__value--number{color:var(--color-debug-number)}.dui_json-tree__value--boolean{color:var(--color-debug-boolean)}.dui_json-tree__value--null{color:var(--color-debug-null)}.dui_json-tree__value--fn{color:var(--color-debug-fn)}.dui_json-tree__value--object,.dui_json-tree__value--array{color:var(--color-debug-object)}.dui_json-tree__length{font-size:10px;color:var(--color-text-muted);font-style:italic;padding:1px 4px 1px 0}.dui_log-entry{border-bottom:1px solid var(--color-surface-border)}.dui_log-entry:last-child{border-bottom:none}.dui_log-entry__header{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;transition:background 80ms;-webkit-user-select:none;user-select:none}.dui_log-entry__header:hover{background:var(--color-surface-hover)}.dui_log-entry__icon{display:flex;align-items:center;flex-shrink:0}.dui_log-entry__title{font-size:11px;font-weight:500;color:var(--color-text-primary);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dui_log-entry__badge{font-size:9px;font-weight:700;font-family:Menlo,Monaco,Courier New,monospace;padding:1px 6px;border-radius:3px;color:var(--dui-logentry-badge, var(--color-text-muted));background:color-mix(in srgb,var(--dui-logentry-badge, var(--color-text-muted)) 12%,transparent);flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dui_log-entry__meta{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.dui_log-entry__timestamp{font-size:9px;font-family:Menlo,Monaco,Courier New,monospace;padding:1px 5px;border-radius:3px;background:var(--color-surface);color:var(--color-text-muted)}.dui_log-entry__chevron{display:flex;align-items:center;color:var(--color-text-muted);transition:transform .15s ease;transform:rotate(-90deg)}.dui_log-entry__chevron--open{transform:rotate(0)}.dui_log-entry__content{padding:4px 12px 10px 32px}.dui_spacer{flex-shrink:0;pointer-events:none}.dui_spacer--horizontal{height:1px;background-color:color-mix(in srgb,var(--color-surface-border) 60%,transparent);width:24px;margin:4px auto}.dui_spacer--vertical{width:1px;background-color:color-mix(in srgb,var(--color-surface-border) 60%,transparent);height:24px;margin:auto 4px}.dui_spacer--horizontal.dui_spacer--sm{margin:2px auto;width:16px}.dui_spacer--horizontal.dui_spacer--md{margin:4px auto;width:24px}.dui_spacer--horizontal.dui_spacer--lg{margin:8px auto;width:32px}.dui_spacer--vertical.dui_spacer--sm{margin:auto 2px;height:16px}.dui_spacer--vertical.dui_spacer--md{margin:auto 4px;height:24px}.dui_spacer--vertical.dui_spacer--lg{margin:auto 8px;height:32px}
package/dist/style.js ADDED
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}