@pstdio/ui 0.15.0 → 0.16.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.
- package/dist/{MermaidComponent-DBJsTOmj.js → MermaidComponent-BCMQqPqu.js} +11 -11
- package/dist/{MermaidComponent-DBJsTOmj.js.map → MermaidComponent-BCMQqPqu.js.map} +1 -1
- package/dist/browser-storage-BinyFNJX.js +40 -0
- package/dist/browser-storage-BinyFNJX.js.map +1 -0
- package/dist/chat-ui.js +1188 -1147
- package/dist/chat-ui.js.map +1 -1
- package/dist/checkbox-D5AzFRlb.js +70 -0
- package/dist/checkbox-D5AzFRlb.js.map +1 -0
- package/dist/components/chat-ui/components/ai-conversation.d.ts +1 -1
- package/dist/components/chat-ui/components/ai-message.d.ts +1 -1
- package/dist/components/chat-ui/components/ai-response.d.ts +0 -1
- package/dist/components/chat-ui/components/attachment-list.d.ts +1 -1
- package/dist/components/chat-ui/components/auto-scroll.d.ts +27 -0
- package/dist/components/chat-ui/components/chat-message-animation.d.ts +22 -0
- package/dist/components/chat-ui/components/timeline.d.ts +0 -2
- package/dist/components/chat-ui/performance/chat-performance-fixtures.d.ts +0 -1
- package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +2 -12
- package/dist/components/chat-ui/tool-rendering/shared.d.ts +1 -1
- package/dist/components/chat-ui/tool-rendering/types.d.ts +1 -2
- package/dist/components/command-palette/index.d.ts +4 -0
- package/dist/components/data-renderer/data-renderer-board.d.ts +1 -1
- package/dist/components/data-renderer/data-renderer-card.d.ts +1 -1
- package/dist/components/data-renderer/data-renderer-list.d.ts +1 -1
- package/dist/components/data-renderer/data-renderer.d.ts +1 -1
- package/dist/components/data-renderer/index.d.ts +18 -0
- package/dist/components/data-renderer/types.d.ts +0 -6
- package/dist/components/diff-viewer/diff-card.d.ts +1 -0
- package/dist/components/diff-viewer/diff-drawer-scroll.d.ts +0 -19
- package/dist/components/diff-viewer/diff-drawer.d.ts +1 -0
- package/dist/components/diff-viewer/index.d.ts +2 -0
- package/dist/components/diff-viewer/use-selected-diff-scroll.d.ts +7 -3
- package/dist/components/internal/style-guide.d.ts +14 -0
- package/dist/components/internal/token-editor-controls.d.ts +8 -0
- package/dist/components/internal/token-editor-data.d.ts +40 -0
- package/dist/components/internal/token-editor-state.d.ts +22 -0
- package/dist/components/layout/index.d.ts +6 -0
- package/dist/components/list-row/list-row.types.d.ts +1 -1
- package/dist/components/overlays/index.d.ts +12 -0
- package/dist/components/{search-modal-content.d.ts → overlays/search-modal-content.d.ts} +1 -1
- package/dist/components/{searchable-menu.d.ts → overlays/searchable-menu.d.ts} +1 -1
- package/dist/components/param-editor/index.d.ts +23 -0
- package/dist/components/param-editor/inputs/action-input.d.ts +13 -0
- package/dist/components/param-editor/inputs/anchor-grid-input.d.ts +12 -0
- package/dist/components/param-editor/inputs/anchor-grid.d.ts +4 -0
- package/dist/components/param-editor/inputs/file-accept.d.ts +22 -0
- package/dist/components/param-editor/inputs/file-drop-input.d.ts +14 -0
- package/dist/components/param-editor/inputs/numeric-value.d.ts +6 -0
- package/dist/components/param-editor/inputs/range-input.d.ts +17 -0
- package/dist/components/param-editor/inputs/range-value.d.ts +5 -0
- package/dist/components/param-editor/inputs/resource-input-chips.d.ts +15 -0
- package/dist/components/param-editor/inputs/resource-input.d.ts +18 -0
- package/dist/components/param-editor/inputs/segmented-input.d.ts +14 -0
- package/dist/components/param-editor/inputs/slider-marks.d.ts +5 -0
- package/dist/components/param-editor/inputs/vector-input.d.ts +17 -0
- package/dist/components/param-editor/inputs/vector-value.d.ts +7 -0
- package/dist/components/param-editor/param-editor-control-item.d.ts +15 -0
- package/dist/components/param-editor/param-editor-control-list.d.ts +5 -0
- package/dist/components/param-editor/param-editor-field-label.d.ts +1 -0
- package/dist/components/param-editor/param-editor-field.d.ts +11 -0
- package/dist/components/param-editor/param-editor-inline-group.d.ts +5 -0
- package/dist/components/param-editor/param-editor-section.d.ts +16 -0
- package/dist/components/param-editor/param-editor.d.ts +2 -1
- package/dist/components/param-editor/param-editor.types.d.ts +101 -19
- package/dist/components/{breadcrumb.d.ts → primitives/breadcrumb.d.ts} +1 -1
- package/dist/components/primitives/index.d.ts +28 -0
- package/dist/components/{number-input.d.ts → primitives/number-input.d.ts} +0 -2
- package/dist/components/{session-indicator.d.ts → primitives/session-indicator.d.ts} +2 -1
- package/dist/components/{tooltip.d.ts → primitives/tooltip.d.ts} +0 -1
- package/dist/components/rich-text/prompt-input/commands.d.ts +0 -17
- package/dist/components/rich-text/prompt-input/events.d.ts +0 -13
- package/dist/components/rich-text/prompt-input/plugins/CommentPlugin/nodes/CommentNode/CommentNode.d.ts +1 -2
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.d.ts +1 -2
- package/dist/components/rich-text/prompt-input/utils.d.ts +1 -2
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.d.ts +0 -1
- package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
- package/dist/components/sidebar/sidebar.types.d.ts +1 -1
- package/dist/components/tab-strip/tab-visibility-filter.d.ts +1 -1
- package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
- package/dist/components/tag-editor/tag-editor.types.d.ts +1 -1
- package/dist/components/terminal/bind-session.d.ts +33 -0
- package/dist/components/terminal/index.d.ts +6 -0
- package/dist/components/terminal/scripted-bridge.d.ts +35 -0
- package/dist/components/terminal/terminal-contract.d.ts +22 -0
- package/dist/components/terminal/terminal-theme.d.ts +12 -0
- package/dist/components/terminal/terminal.d.ts +45 -0
- package/dist/components/terminal/types.d.ts +35 -0
- package/dist/components/terminal/use-terminal-session.d.ts +21 -0
- package/dist/components/tree-list/tree-list-order-filter.d.ts +1 -2
- package/dist/components/tree-list/tree-list-visibility-filter.d.ts +1 -1
- package/dist/components/tree-list/tree-list.d.ts +1 -1
- package/dist/data-renderer.js +1669 -0
- package/dist/data-renderer.js.map +1 -0
- package/dist/diff-editor-BnfV8cYB.js +182 -0
- package/dist/diff-editor-BnfV8cYB.js.map +1 -0
- package/dist/diff.js +1313 -0
- package/dist/diff.js.map +1 -0
- package/dist/empty-state-Bo4HVrgr.js +34 -0
- package/dist/empty-state-Bo4HVrgr.js.map +1 -0
- package/dist/foundations/gallery/gallery-frame.d.ts +21 -0
- package/dist/foundations/gallery/sections/badges-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/buttons-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/composite-chat-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/composites-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/feedback-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/input-authoring-card.d.ts +1 -0
- package/dist/foundations/gallery/sections/inputs-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/layout-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/navigation-identity-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/overlays-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/panels-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/param-editor-composite-card.d.ts +1 -0
- package/dist/foundations/gallery/sections/settings-composite-cards.d.ts +1 -0
- package/dist/index.d.ts +11 -84
- package/dist/index.js +3570 -7569
- package/dist/index.js.map +1 -1
- package/dist/list-row-mi3Hn-Um.js +740 -0
- package/dist/list-row-mi3Hn-Um.js.map +1 -0
- package/dist/mermaid-renderer-DZo3qj6D.js +425 -0
- package/dist/mermaid-renderer-DZo3qj6D.js.map +1 -0
- package/dist/mermaid.js +5 -0
- package/dist/mermaid.js.map +1 -0
- package/dist/radio-cLMEBBZk.js +76 -0
- package/dist/radio-cLMEBBZk.js.map +1 -0
- package/dist/resource-badge-qCWHP-wQ.js +99 -0
- package/dist/resource-badge-qCWHP-wQ.js.map +1 -0
- package/dist/{rich-message-DNSEhxXh.js → rich-message-DBf_5YlW.js} +462 -481
- package/dist/rich-message-DBf_5YlW.js.map +1 -0
- package/dist/rich-text.js +300 -299
- package/dist/rich-text.js.map +1 -1
- package/dist/scroll-area-BMbg1WcD.js +91 -0
- package/dist/scroll-area-BMbg1WcD.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/terminal.js +339 -0
- package/dist/terminal.js.map +1 -0
- package/dist/theme/global.d.ts +3 -0
- package/dist/theme/recipes/badge.d.ts +50 -0
- package/dist/theme/recipes/button.d.ts +24 -19
- package/dist/theme/recipes/color-picker.d.ts +1 -0
- package/dist/theme/recipes/dialog.d.ts +1 -1
- package/dist/theme/recipes/drawer.d.ts +1 -1
- package/dist/theme/recipes/input.d.ts +55 -0
- package/dist/theme/recipes/number-input.d.ts +98 -0
- package/dist/theme/recipes/tabs.d.ts +49 -28
- package/dist/theme/recipes/textarea.d.ts +62 -1
- package/dist/theme/recipes/timeline.d.ts +74 -0
- package/dist/theme/tokens/borders.d.ts +0 -3
- package/dist/theme/tokens/colors.d.ts +100 -70
- package/dist/{theme-25P7ij4C.js → theme-CJBYBJaA.js} +1194 -315
- package/dist/theme-CJBYBJaA.js.map +1 -0
- package/dist/theme-preference-DOzHx64J.js +123 -0
- package/dist/theme-preference-DOzHx64J.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/tree-list-CcuZMLS5.js +930 -0
- package/dist/tree-list-CcuZMLS5.js.map +1 -0
- package/dist/workspace-badge-Fuo-1zPj.js +314 -0
- package/dist/workspace-badge-Fuo-1zPj.js.map +1 -0
- package/package.json +23 -3
- package/dist/components/file-tree-helpers.d.ts +0 -8
- package/dist/components/open-source-notices-screen.d.ts +0 -20
- package/dist/components/param-editor/input-group.d.ts +0 -10
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/index.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/TableActionMenuPlugin/TableActionMenuPlugin.d.ts +0 -5
- package/dist/components/rich-text/shared/plugins/TableCellResizerPlugin/TableCellResizerPlugin.d.ts +0 -2
- package/dist/components/rich-text/theme/report-theme.d.ts +0 -3
- package/dist/components/style-guide-data.d.ts +0 -40
- package/dist/components/style-guide.d.ts +0 -1
- package/dist/mermaid-renderer-CPGj6vsb.js +0 -570
- package/dist/mermaid-renderer-CPGj6vsb.js.map +0 -1
- package/dist/radio-DJtQY9po.js +0 -286
- package/dist/radio-DJtQY9po.js.map +0 -1
- package/dist/resource-badge-CeJTOn8F.js +0 -188
- package/dist/resource-badge-CeJTOn8F.js.map +0 -1
- package/dist/rich-message-DNSEhxXh.js.map +0 -1
- package/dist/theme-25P7ij4C.js.map +0 -1
- package/dist/utils/formats.d.ts +0 -7
- /package/dist/components/{palette-filter.d.ts → command-palette/palette-filter.d.ts} +0 -0
- /package/dist/components/{palette-list.d.ts → command-palette/palette-list.d.ts} +0 -0
- /package/dist/components/{palette-shortcut.d.ts → command-palette/palette-shortcut.d.ts} +0 -0
- /package/dist/components/{palette.d.ts → command-palette/palette.d.ts} +0 -0
- /package/dist/components/{code-editor.d.ts → diff-viewer/code-editor.d.ts} +0 -0
- /package/dist/components/{column-file-browser.d.ts → file-browser/column-file-browser.d.ts} +0 -0
- /package/dist/components/{performance-panel.d.ts → internal/performance-panel.d.ts} +0 -0
- /package/dist/components/{header.d.ts → layout/header.d.ts} +0 -0
- /package/dist/components/{horizontal-menu-stack.d.ts → layout/horizontal-menu-stack.d.ts} +0 -0
- /package/dist/components/{item-section.d.ts → layout/item-section.d.ts} +0 -0
- /package/dist/components/{panel-header.constants.d.ts → layout/panel-header.constants.d.ts} +0 -0
- /package/dist/components/{resizable-split-layout.d.ts → layout/resizable-split-layout.d.ts} +0 -0
- /package/dist/components/{resizable-split-layout.handle.d.ts → layout/resizable-split-layout.handle.d.ts} +0 -0
- /package/dist/components/{attached-panel.d.ts → overlays/attached-panel.d.ts} +0 -0
- /package/dist/components/{bubble-button.d.ts → overlays/bubble-button.d.ts} +0 -0
- /package/dist/components/{bubble-panel.d.ts → overlays/bubble-panel.d.ts} +0 -0
- /package/dist/components/{delete-confirmation-modal.d.ts → overlays/delete-confirmation-modal.d.ts} +0 -0
- /package/dist/components/{repo-picker-dialog.d.ts → overlays/repo-picker-dialog.d.ts} +0 -0
- /package/dist/components/{resource-context-menu.d.ts → overlays/resource-context-menu.d.ts} +0 -0
- /package/dist/components/param-editor/{color-input.d.ts → inputs/color-input.d.ts} +0 -0
- /package/dist/components/param-editor/{date-input.d.ts → inputs/date-input.d.ts} +0 -0
- /package/dist/components/param-editor/{horizontal-text-input.d.ts → inputs/horizontal-text-input.d.ts} +0 -0
- /package/dist/components/param-editor/{number-input.d.ts → inputs/number-input.d.ts} +0 -0
- /package/dist/components/param-editor/{selection-input.d.ts → inputs/selection-input.d.ts} +0 -0
- /package/dist/components/param-editor/{text-input.d.ts → inputs/text-input.d.ts} +0 -0
- /package/dist/components/{alert.d.ts → primitives/alert.d.ts} +0 -0
- /package/dist/components/{checkbox.d.ts → primitives/checkbox.d.ts} +0 -0
- /package/dist/components/{content-placeholder.d.ts → primitives/content-placeholder.d.ts} +0 -0
- /package/dist/components/{empty-state.d.ts → primitives/empty-state.d.ts} +0 -0
- /package/dist/components/{error-boundary.d.ts → primitives/error-boundary.d.ts} +0 -0
- /package/dist/components/{icon-color-picker.d.ts → primitives/icon-color-picker.d.ts} +0 -0
- /package/dist/components/{info-card.d.ts → primitives/info-card.d.ts} +0 -0
- /package/dist/components/{integration-card.d.ts → primitives/integration-card.d.ts} +0 -0
- /package/dist/components/{radio.d.ts → primitives/radio.d.ts} +0 -0
- /package/dist/components/{resource-badge.d.ts → primitives/resource-badge.d.ts} +0 -0
- /package/dist/components/{scroll-area.d.ts → primitives/scroll-area.d.ts} +0 -0
- /package/dist/components/{simple-card.d.ts → primitives/simple-card.d.ts} +0 -0
- /package/dist/components/{slider.d.ts → primitives/slider.d.ts} +0 -0
- /package/dist/components/{switch.d.ts → primitives/switch.d.ts} +0 -0
- /package/dist/components/{toaster.d.ts → primitives/toaster.d.ts} +0 -0
- /package/dist/components/{workspace-badge.d.ts → primitives/workspace-badge.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid-renderer-CPGj6vsb.js","sources":["../src/utils/apply-theme-preference.ts","../src/utils/browser-storage.ts","../src/utils/theme-preference.tsx","../src/components/mermaid-renderer/mermaid-zoom.ts","../src/components/mermaid-renderer/svg-data-url.ts","../src/components/mermaid-renderer/download-png.ts","../src/components/mermaid-renderer/mermaid-error-state.tsx","../src/components/mermaid-renderer/mermaid-fullscreen.tsx","../src/components/mermaid-renderer/mermaid-toolbar.tsx","../src/components/mermaid-renderer/mermaid-svg-view.tsx","../src/components/mermaid-renderer/use-mermaid-render.ts","../src/components/mermaid-renderer/mermaid-renderer.tsx"],"sourcesContent":["export type ThemePreference = string;\nexport type ThemePreferenceMode = \"light\" | \"dark\";\nexport type ThemePreferenceTokens = Record<string, string>;\n\nexport interface ThemePreferenceOption {\n id: ThemePreference;\n title?: string;\n mode: ThemePreferenceMode;\n tokens?: ThemePreferenceTokens;\n monacoTheme?: unknown;\n}\n\nexport const defaultThemePreferences = [\n { id: \"pstdio-light\", mode: \"light\" },\n { id: \"pstdio-dark\", mode: \"dark\" },\n] satisfies ThemePreferenceOption[];\n\nexport const isThemePreference = (\n value: string | null,\n themePreferences: readonly ThemePreferenceOption[] = defaultThemePreferences,\n): value is ThemePreference => typeof value === \"string\" && themePreferences.some((theme) => theme.id === value);\n\nexport const getThemePreferenceMode = (\n theme: ThemePreference,\n themePreferences: readonly ThemePreferenceOption[] = defaultThemePreferences,\n) => themePreferences.find((preference) => preference.id === theme)?.mode ?? \"light\";\n\nexport const getThemePreferenceClassName = (theme: ThemePreference) => `theme-${theme}`;\n\nexport const getThemePreferenceClassNames = (\n theme: ThemePreference,\n mode: ThemePreferenceMode = getThemePreferenceMode(theme),\n) => [mode, getThemePreferenceClassName(theme)];\n\nconst THEME_TOKEN_PATHS_ATTRIBUTE = \"data-pstdio-theme-token-paths\";\n\nconst getThemePreferenceCssVariableName = (tokenPath: string) => `--chakra-${tokenPath.replaceAll(\".\", \"-\")}`;\n\nconst removeThemeTokens = (el: HTMLElement, theme?: ThemePreferenceOption) => {\n if (!theme?.tokens) return;\n\n for (const tokenPath of Object.keys(theme.tokens)) {\n el.style.removeProperty(getThemePreferenceCssVariableName(tokenPath));\n }\n};\n\nconst removeTrackedThemeTokens = (el: HTMLElement) => {\n const tokenPaths = el.getAttribute(THEME_TOKEN_PATHS_ATTRIBUTE)?.split(\"\\n\").filter(Boolean) ?? [];\n\n for (const tokenPath of tokenPaths) {\n el.style.removeProperty(getThemePreferenceCssVariableName(tokenPath));\n }\n\n el.setAttribute(THEME_TOKEN_PATHS_ATTRIBUTE, \"\");\n};\n\nconst applyThemeTokens = (el: HTMLElement, theme: ThemePreferenceOption) => {\n if (!theme.tokens) {\n el.setAttribute(THEME_TOKEN_PATHS_ATTRIBUTE, \"\");\n return;\n }\n\n for (const [tokenPath, value] of Object.entries(theme.tokens)) {\n el.style.setProperty(getThemePreferenceCssVariableName(tokenPath), value);\n }\n el.setAttribute(THEME_TOKEN_PATHS_ATTRIBUTE, Object.keys(theme.tokens).join(\"\\n\"));\n};\n\nexport const applyThemePreference = (\n theme: ThemePreference,\n themePreferences: readonly ThemePreferenceOption[] = defaultThemePreferences,\n) => {\n if (typeof document === \"undefined\") return;\n\n const root = document.documentElement;\n const body = document.body;\n const preference = themePreferences.find((option) => option.id === theme) ?? { id: theme, mode: \"light\" };\n const mode = getThemePreferenceMode(theme, themePreferences);\n\n for (const el of [root, body]) {\n if (!el) continue;\n const previousTheme = el.getAttribute(\"data-theme\");\n const previousPreference = themePreferences.find((option) => option.id === previousTheme);\n\n el.classList.remove(\"light\", \"dark\");\n if (previousTheme) {\n el.classList.remove(getThemePreferenceClassName(previousTheme));\n }\n removeTrackedThemeTokens(el);\n removeThemeTokens(el, previousPreference);\n applyThemeTokens(el, preference);\n el.classList.add(...getThemePreferenceClassNames(theme, mode));\n el.setAttribute(\"data-theme\", theme);\n el.setAttribute(\"data-color-mode\", mode);\n el.style.colorScheme = mode;\n }\n};\n","interface BrowserStorage {\n getItem: (key: string) => string | null;\n removeItem: (key: string) => void;\n setItem: (key: string, value: string) => void;\n}\n\nconst noopStorage = {\n getItem: () => null,\n removeItem: () => {},\n setItem: () => {},\n} satisfies BrowserStorage;\n\nconst readLocalStorage = () => {\n try {\n return globalThis.localStorage;\n } catch {\n return undefined;\n }\n};\n\nexport const createBrowserStorage = (): BrowserStorage => {\n const storage = readLocalStorage();\n if (!storage) return noopStorage;\n\n return {\n getItem(key) {\n try {\n return storage.getItem(key);\n } catch {\n return null;\n }\n },\n removeItem(key) {\n try {\n storage.removeItem(key);\n } catch {}\n },\n setItem(key, value) {\n try {\n storage.setItem(key, value);\n } catch {}\n },\n };\n};\n","import { createContext, type ReactNode, useContext, useEffect, useState } from \"react\";\n\nimport {\n applyThemePreference,\n defaultThemePreferences,\n getThemePreferenceMode,\n isThemePreference,\n type ThemePreference,\n type ThemePreferenceMode,\n type ThemePreferenceOption,\n} from \"./apply-theme-preference\";\nimport { createBrowserStorage } from \"./browser-storage\";\n\nconst STORAGE_KEY = \"theme-preference\";\n\nconst ThemePreferenceContext = createContext<ThemePreferenceContextValue | null>(null);\n\ninterface ThemePreferenceContextValue {\n themePreference: ThemePreference;\n themePreferences: readonly ThemePreferenceOption[];\n setThemePreference: (preference: ThemePreference) => void;\n toggleThemePreference: () => void;\n}\n\ninterface ThemePreferenceProviderProps {\n children: ReactNode;\n initialPreference?: ThemePreference;\n themePreferences?: readonly ThemePreferenceOption[];\n}\n\nconst getDefaultThemePreference = (themePreferences: readonly ThemePreferenceOption[], mode: ThemePreferenceMode) =>\n themePreferences.find((preference) => preference.mode === mode)?.id ??\n themePreferences[0]?.id ??\n defaultThemePreferences[0].id;\n\nconst getStoredThemePreference = () => {\n if (typeof window === \"undefined\") return null;\n\n return createBrowserStorage().getItem(STORAGE_KEY);\n};\n\nconst storeThemePreference = (preference: ThemePreference) => {\n if (typeof window === \"undefined\") return;\n\n createBrowserStorage().setItem(STORAGE_KEY, preference);\n};\n\n// Contributed (extension) themes are namespaced (`extension.theme`) and register\n// asynchronously. A bare id like a legacy `light`/`dark` value names no\n// contribution, so it will never register — we must fall back rather than wait.\nconst looksLikeContributedThemePreference = (value: string | null) => typeof value === \"string\" && value.includes(\".\");\n\nconst isPendingStoredThemePreference = (input: {\n canRestoreStoredPreference: boolean;\n storedPreference: string | null;\n themePreference: ThemePreference;\n themePreferences: readonly ThemePreferenceOption[];\n}) => {\n const { canRestoreStoredPreference, storedPreference, themePreference, themePreferences } = input;\n\n return (\n canRestoreStoredPreference &&\n storedPreference === themePreference &&\n looksLikeContributedThemePreference(storedPreference) &&\n !isThemePreference(themePreference, themePreferences)\n );\n};\n\nexport const getInitialThemePreference = (\n themePreferences: readonly ThemePreferenceOption[] = defaultThemePreferences,\n) => {\n if (typeof window === \"undefined\") return getDefaultThemePreference(themePreferences, \"light\");\n\n const stored = getStoredThemePreference();\n if (stored) return stored;\n\n const prefersDark =\n typeof window.matchMedia === \"function\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n return getDefaultThemePreference(themePreferences, prefersDark ? \"dark\" : \"light\");\n};\n\nexport const ThemePreferenceProvider = (props: ThemePreferenceProviderProps) => {\n const { children, themePreferences = defaultThemePreferences } = props;\n const initialPreference = props.initialPreference ?? getInitialThemePreference(themePreferences);\n const canRestoreStoredPreference = props.initialPreference === undefined;\n const [themePreference, setThemePreferenceState] = useState<ThemePreference>(initialPreference);\n const storedPreference = canRestoreStoredPreference ? getStoredThemePreference() : null;\n const pendingStoredPreference = isPendingStoredThemePreference({\n canRestoreStoredPreference,\n storedPreference,\n themePreference,\n themePreferences,\n });\n\n useEffect(() => {\n if (\n storedPreference &&\n storedPreference !== themePreference &&\n isThemePreference(storedPreference, themePreferences)\n ) {\n setThemePreferenceState(storedPreference);\n return;\n }\n\n if (pendingStoredPreference) {\n return;\n }\n\n if (!isThemePreference(themePreference, themePreferences)) {\n setThemePreferenceState(\n getDefaultThemePreference(themePreferences, getThemePreferenceMode(themePreference, themePreferences)),\n );\n return;\n }\n\n applyThemePreference(themePreference, themePreferences);\n const hasPendingStoredTheme =\n storedPreference &&\n storedPreference !== themePreference &&\n looksLikeContributedThemePreference(storedPreference) &&\n !isThemePreference(storedPreference, themePreferences);\n if (!hasPendingStoredTheme) storeThemePreference(themePreference);\n }, [pendingStoredPreference, storedPreference, themePreference, themePreferences]);\n\n const setThemePreference = (preference: ThemePreference) => {\n storeThemePreference(preference);\n setThemePreferenceState(preference);\n };\n\n const toggleThemePreference = () => {\n const nextMode = getThemePreferenceMode(themePreference, themePreferences) === \"dark\" ? \"light\" : \"dark\";\n\n setThemePreference(getDefaultThemePreference(themePreferences, nextMode));\n };\n\n if (pendingStoredPreference) return null;\n\n return (\n <ThemePreferenceContext value={{ themePreference, themePreferences, setThemePreference, toggleThemePreference }}>\n {children}\n </ThemePreferenceContext>\n );\n};\n\nexport const useThemePreference = () => {\n const context = useContext(ThemePreferenceContext);\n\n if (!context) {\n throw new Error(\"useThemePreference must be used within a ThemePreferenceProvider\");\n }\n\n return context;\n};\n","export const MERMAID_MIN_ZOOM = 0.5;\nexport const MERMAID_MAX_ZOOM = 3;\nexport const MERMAID_ZOOM_STEP = 0.25;\n\nexport const clampMermaidZoom = (value: number) =>\n Number(Math.min(MERMAID_MAX_ZOOM, Math.max(MERMAID_MIN_ZOOM, value)).toFixed(2));\n\nexport const zoomIn = (zoom: number) => clampMermaidZoom(zoom + MERMAID_ZOOM_STEP);\n\nexport const zoomOut = (zoom: number) => clampMermaidZoom(zoom - MERMAID_ZOOM_STEP);\n","const parseSvgLength = (value: string | undefined) => {\n if (!value) {\n return 0;\n }\n\n const parsed = Number.parseFloat(value);\n return Number.isFinite(parsed) ? parsed : 0;\n};\n\nconst readAttribute = (svg: string, name: string) => {\n const match = svg.match(new RegExp(`\\\\s${name}=\"([^\"]+)\"`));\n return match?.[1];\n};\n\nexport const resolveSvgSize = (svg: string) => {\n const viewBox = readAttribute(svg, \"viewBox\")?.split(/\\s+/).map(Number) ?? [];\n const viewBoxWidth = viewBox[2] ?? 0;\n const viewBoxHeight = viewBox[3] ?? 0;\n\n if (viewBoxWidth > 0 && viewBoxHeight > 0) {\n return { width: viewBoxWidth, height: viewBoxHeight };\n }\n\n return {\n width: Math.max(parseSvgLength(readAttribute(svg, \"width\")), 1),\n height: Math.max(parseSvgLength(readAttribute(svg, \"height\")), 1),\n };\n};\n\n// SVG data URLs are parsed as strict XML by the browser; void HTML tags like `<br>`\n// must be self-closing or the image silently fails to decode (naturalWidth becomes 0).\n// Mermaid emits `<br/>` itself, but DOMPurify (used when securityLevel !== \"loose\")\n// normalises it back to the HTML5 form.\nconst closeVoidHtmlTags = (svg: string) => svg.replace(/<br(\\s[^>]*)?>/g, \"<br$1/>\");\n\nexport const normalizeSvgForImage = (svg: string) => {\n const { width, height } = resolveSvgSize(svg);\n\n const sized = svg.replace(/<svg\\b[^>]*>/, (tag) => {\n const withWidth = /\\swidth=/.test(tag)\n ? tag.replace(/\\swidth=\"[^\"]*\"/, ` width=\"${width}\"`)\n : tag.replace(\"<svg\", `<svg width=\"${width}\"`);\n\n return /\\sheight=/.test(withWidth)\n ? withWidth.replace(/\\sheight=\"[^\"]*\"/, ` height=\"${height}\"`)\n : withWidth.replace(\"<svg\", `<svg height=\"${height}\"`);\n });\n\n return closeVoidHtmlTags(sized);\n};\n\nexport const createSvgDataUrl = (svg: string) => {\n const bytes = new TextEncoder().encode(normalizeSvgForImage(svg));\n let binary = \"\";\n for (const byte of bytes) {\n binary += String.fromCharCode(byte);\n }\n\n return `data:image/svg+xml;base64,${btoa(binary)}`;\n};\n","import { clampMermaidZoom } from \"./mermaid-zoom\";\nimport { createSvgDataUrl, resolveSvgSize } from \"./svg-data-url\";\n\ninterface DownloadMermaidPngOptions {\n svg: string;\n zoom: number;\n filename?: string;\n}\n\nconst loadImage = (url: string) =>\n new Promise<{ image: HTMLImageElement; cleanup: () => void }>((resolve, reject) => {\n const image = new Image();\n image.style.position = \"fixed\";\n image.style.left = \"-10000px\";\n image.style.top = \"0\";\n image.style.pointerEvents = \"none\";\n image.onload = () => resolve({ image, cleanup: () => image.remove() });\n image.onerror = () => {\n image.remove();\n reject(new Error(\"Failed to load rendered Mermaid SVG for PNG export.\"));\n };\n document.body.append(image);\n image.src = url;\n });\n\nconst canvasToPngBlob = (canvas: HTMLCanvasElement) =>\n new Promise<Blob>((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n return;\n }\n\n reject(new Error(\"Failed to encode Mermaid diagram as PNG.\"));\n }, \"image/png\");\n });\n\nconst triggerDownload = (blob: Blob, filename: string) => {\n const url = URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = filename;\n document.body.append(anchor);\n anchor.click();\n anchor.remove();\n window.setTimeout(() => URL.revokeObjectURL(url), 0);\n};\n\nexport const downloadMermaidPng = async (options: DownloadMermaidPngOptions) => {\n const { svg, zoom, filename = \"mermaid-diagram.png\" } = options;\n const svgUrl = createSvgDataUrl(svg);\n\n const { image, cleanup } = await loadImage(svgUrl);\n try {\n const { width, height } = resolveSvgSize(svg);\n const scale = clampMermaidZoom(zoom);\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.ceil(width * scale);\n canvas.height = Math.ceil(height * scale);\n\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Canvas rendering is unavailable for Mermaid PNG export.\");\n }\n\n context.scale(scale, scale);\n context.drawImage(image, 0, 0, width, height);\n triggerDownload(await canvasToPngBlob(canvas), filename);\n } finally {\n cleanup();\n }\n};\n","import { Box, Text } from \"@chakra-ui/react\";\nimport { ScrollArea } from \"@/components/scroll-area\";\n\ninterface MermaidErrorStateProps {\n code: string;\n error: string;\n}\n\nexport const MermaidErrorState = (props: MermaidErrorStateProps) => {\n const { code, error } = props;\n\n return (\n <Box role=\"alert\" borderRadius=\"sm\" bg=\"bg.panel\" p=\"sm\">\n <Text color=\"fg.error\" textStyle=\"label/S/medium\">\n Mermaid parse failed\n </Text>\n <Text color=\"fg.muted\" textStyle=\"label/S/regular\" mt=\"2xs\" whiteSpace=\"pre-wrap\">\n {error}\n </Text>\n <ScrollArea\n mt=\"sm\"\n borderRadius=\"sm\"\n bg=\"bg.muted\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ p: \"sm\" }}\n >\n <Box as=\"pre\" m=\"0\" fontSize=\"sm\">\n {code}\n </Box>\n </ScrollArea>\n </Box>\n );\n};\n","import { Button, Dialog, Icon, IconButton, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { Download, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface MermaidFullscreenProps {\n children: ReactNode;\n canDownload: boolean;\n open: boolean;\n onClose: () => void;\n onDownload: () => void;\n}\n\nexport const MermaidFullscreen = (props: MermaidFullscreenProps) => {\n const { children, canDownload, open, onClose, onDownload } = props;\n\n return (\n <Dialog.Root lazyMount unmountOnExit open={open} onOpenChange={(details) => !details.open && onClose()}>\n <Portal>\n <Dialog.Backdrop />\n <Dialog.Positioner padding=\"0\">\n <Dialog.Content width=\"100vw\" height=\"100vh\" maxW=\"none\" borderRadius=\"0\" overflow=\"hidden\">\n <Dialog.Header\n data-testid=\"mermaid-fullscreen-header\"\n position=\"absolute\"\n top=\"0\"\n right=\"0\"\n left=\"0\"\n zIndex=\"2\"\n p=\"0\"\n >\n <Stack direction=\"row\" align=\"center\" justify=\"space-between\" width=\"100%\" gap=\"sm\">\n <Dialog.Title asChild>\n <Text textStyle=\"heading/S\">Mermaid diagram</Text>\n </Dialog.Title>\n <Stack direction=\"row\" align=\"center\" gap=\"xs\">\n <Button size=\"sm\" variant=\"surface\" onClick={onDownload} disabled={!canDownload}>\n <Icon as={Download} boxSize=\"16px\" />\n Download as PNG\n </Button>\n <IconButton aria-label=\"Close\" size=\"sm\" variant=\"ghost\" onClick={onClose}>\n <Icon as={X} boxSize=\"16px\" />\n </IconButton>\n </Stack>\n </Stack>\n </Dialog.Header>\n <Dialog.Body data-testid=\"mermaid-fullscreen-body\" p=\"0\" flex=\"1\" minH=\"0\">\n {children}\n </Dialog.Body>\n </Dialog.Content>\n </Dialog.Positioner>\n </Portal>\n </Dialog.Root>\n );\n};\n","import { Icon, IconButton, Stack } from \"@chakra-ui/react\";\nimport { Maximize2, Minus, Pencil, Plus } from \"lucide-react\";\nimport { Tooltip } from \"@/components/tooltip\";\nimport { MERMAID_MAX_ZOOM, MERMAID_MIN_ZOOM, zoomIn, zoomOut } from \"./mermaid-zoom\";\n\ninterface MermaidInlineToolbarProps {\n isEditable: boolean;\n onRequestEdit?: () => void;\n onOpenFullscreen: () => void;\n}\n\ninterface MermaidZoomControlsProps {\n zoom: number;\n onZoomChange: (zoom: number) => void;\n}\n\nexport const MermaidInlineToolbar = (props: MermaidInlineToolbarProps) => {\n const { isEditable, onRequestEdit, onOpenFullscreen } = props;\n\n return (\n <Stack\n data-testid=\"mermaid-inline-toolbar\"\n direction=\"row\"\n justify=\"flex-end\"\n align=\"center\"\n gap=\"xs\"\n position=\"absolute\"\n top=\"sm\"\n right=\"sm\"\n zIndex=\"1\"\n onPointerDown={(event) => event.stopPropagation()}\n >\n {isEditable && onRequestEdit ? (\n <Tooltip content=\"Edit source\">\n <IconButton aria-label=\"Edit\" size=\"xs\" variant=\"surface\" onClick={onRequestEdit}>\n <Icon as={Pencil} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n ) : null}\n <Tooltip content=\"Fullscreen\">\n <IconButton aria-label=\"Fullscreen\" size=\"xs\" variant=\"surface\" onClick={onOpenFullscreen}>\n <Icon as={Maximize2} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n\nexport const MermaidZoomControls = (props: MermaidZoomControlsProps) => {\n const { zoom, onZoomChange } = props;\n\n return (\n <Stack\n data-testid=\"mermaid-zoom-controls\"\n gap=\"2xs\"\n position=\"absolute\"\n right=\"sm\"\n bottom=\"sm\"\n zIndex=\"1\"\n onPointerDown={(event) => event.stopPropagation()}\n >\n <Tooltip content=\"Zoom in\">\n <IconButton\n aria-label=\"Zoom in\"\n size=\"xs\"\n variant=\"surface\"\n onClick={() => onZoomChange(zoomIn(zoom))}\n disabled={zoom >= MERMAID_MAX_ZOOM}\n >\n <Icon as={Plus} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n <Tooltip content=\"Zoom out\">\n <IconButton\n aria-label=\"Zoom out\"\n size=\"xs\"\n variant=\"surface\"\n onClick={() => onZoomChange(zoomOut(zoom))}\n disabled={zoom <= MERMAID_MIN_ZOOM}\n >\n <Icon as={Minus} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { PointerEvent, ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { MermaidZoomControls } from \"./mermaid-toolbar\";\nimport { createSvgDataUrl } from \"./svg-data-url\";\n\ninterface MermaidSvgViewProps {\n svg: string;\n zoom: number;\n allowPanAtDefaultZoom?: boolean;\n maxHeight?: string;\n minHeight?: string;\n overlayActions?: ReactNode;\n onZoomChange: (zoom: number) => void;\n}\n\nexport const MermaidSvgView = (props: MermaidSvgViewProps) => {\n const {\n allowPanAtDefaultZoom = false,\n maxHeight = \"420px\",\n minHeight = \"220px\",\n overlayActions,\n svg,\n zoom,\n onZoomChange,\n } = props;\n const [offset, setOffset] = useState({ x: 0, y: 0 });\n const [isPanning, setIsPanning] = useState(false);\n const panStartRef = useRef({ pointerId: -1, x: 0, y: 0 });\n const canPan = allowPanAtDefaultZoom || zoom > 1;\n\n const handlePointerDown = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan) {\n return;\n }\n\n panStartRef.current = {\n pointerId: event.pointerId,\n x: event.clientX - offset.x,\n y: event.clientY - offset.y,\n };\n setIsPanning(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n };\n\n const handlePointerMove = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan || !isPanning || panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setOffset({\n x: event.clientX - panStartRef.current.x,\n y: event.clientY - panStartRef.current.y,\n });\n };\n\n const handlePointerUp = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan || panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setIsPanning(false);\n event.currentTarget.releasePointerCapture(event.pointerId);\n };\n\n useEffect(() => {\n if (canPan) {\n return;\n }\n\n setOffset({ x: 0, y: 0 });\n setIsPanning(false);\n }, [canPan]);\n\n return (\n <Box\n data-testid=\"mermaid-diagram-surface\"\n position=\"relative\"\n minHeight={minHeight}\n maxHeight={maxHeight}\n overflow=\"hidden\"\n cursor={canPan ? (isPanning ? \"grabbing\" : \"grab\") : \"default\"}\n touchAction={canPan ? \"none\" : \"auto\"}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={() => {\n setIsPanning(false);\n }}\n >\n <Box\n data-testid=\"mermaid-diagram-transform\"\n data-pan-enabled={canPan ? \"true\" : \"false\"}\n width=\"100%\"\n maxHeight={maxHeight}\n textAlign=\"center\"\n transform={`translate3d(${offset.x}px, ${offset.y}px, 0) scale(${zoom})`}\n transformOrigin=\"top left\"\n cursor={canPan ? (isPanning ? \"grabbing\" : \"grab\") : \"default\"}\n css={{\n \"& img\": {\n display: \"inline-block\",\n width: \"auto\",\n maxWidth: \"100%\",\n maxHeight,\n height: \"auto\",\n userSelect: \"none\",\n },\n }}\n >\n <img alt=\"Mermaid diagram\" draggable={false} src={createSvgDataUrl(svg)} />\n </Box>\n {overlayActions}\n <MermaidZoomControls zoom={zoom} onZoomChange={onZoomChange} />\n </Box>\n );\n};\n","import mermaid from \"mermaid\";\nimport { useEffect, useState } from \"react\";\nimport { getThemePreferenceMode, type ThemePreferenceMode } from \"../../utils/apply-theme-preference\";\nimport { useThemePreference } from \"../../utils/theme-preference\";\n\nlet initializedMode: ThemePreferenceMode | null = null;\nlet renderSequence = 0;\nlet renderQueue = Promise.resolve();\n\nconst getMermaidTheme = (mode: ThemePreferenceMode) => (mode === \"dark\" ? \"dark\" : \"default\");\n\nconst initializeMermaid = (mode: ThemePreferenceMode) => {\n if (initializedMode === mode) {\n return;\n }\n\n mermaid.initialize({\n startOnLoad: false,\n htmlLabels: true,\n flowchart: {\n htmlLabels: true,\n },\n securityLevel: \"antiscript\",\n theme: getMermaidTheme(mode),\n });\n\n initializedMode = mode;\n};\n\nconst nextRenderId = () => {\n renderSequence += 1;\n return `mermaid-${renderSequence}`;\n};\n\nconst renderMermaidDiagram = (mode: ThemePreferenceMode, code: string) => {\n const render = async () => {\n // Mermaid keeps render config in a shared singleton, so theme changes must not overlap renders.\n initializeMermaid(mode);\n return mermaid.render(nextRenderId(), code);\n };\n\n const queuedRender = renderQueue.then(render, render);\n renderQueue = queuedRender.then(\n () => undefined,\n () => undefined,\n );\n\n return queuedRender;\n};\n\nconst formatMermaidError = (error: unknown) => {\n if (!(error instanceof Error)) {\n return \"Failed to render Mermaid diagram.\";\n }\n\n const message = error.message.trim();\n if (!message) {\n return \"Failed to render Mermaid diagram.\";\n }\n\n return message.split(\"\\n\").filter(Boolean).slice(0, 3).join(\"\\n\");\n};\n\nexport const useMermaidRender = (code: string) => {\n const { themePreference, themePreferences } = useThemePreference();\n const themeMode = getThemePreferenceMode(themePreference, themePreferences);\n const [svg, setSvg] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [isRendering, setIsRendering] = useState(false);\n\n useEffect(() => {\n let cancelled = false;\n\n const renderDiagram = async () => {\n setIsRendering(true);\n setError(\"\");\n\n try {\n const result = await renderMermaidDiagram(themeMode, code);\n if (cancelled) {\n return;\n }\n\n setSvg(result.svg);\n } catch (renderError) {\n if (cancelled) {\n return;\n }\n\n setSvg(\"\");\n setError(formatMermaidError(renderError));\n } finally {\n if (!cancelled) {\n setIsRendering(false);\n }\n }\n };\n\n void renderDiagram();\n\n return () => {\n cancelled = true;\n };\n }, [code, themeMode]);\n\n return { svg, error, isRendering };\n};\n","import { Box, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { downloadMermaidPng } from \"./download-png\";\nimport { MermaidErrorState } from \"./mermaid-error-state\";\nimport { MermaidFullscreen } from \"./mermaid-fullscreen\";\nimport { MermaidSvgView } from \"./mermaid-svg-view\";\nimport { MermaidInlineToolbar } from \"./mermaid-toolbar\";\nimport { useMermaidRender } from \"./use-mermaid-render\";\n\nexport interface MermaidRendererProps {\n code: string;\n initialFullscreenOpen?: boolean;\n initialZoom?: number;\n isEditable?: boolean;\n onRequestEdit?: () => void;\n}\n\ninterface MermaidPreviewContentProps {\n allowPanAtDefaultZoom?: boolean;\n code: string;\n error: string;\n isRendering: boolean;\n maxHeight?: string;\n minHeight?: string;\n overlayActions?: ReactNode;\n svg: string;\n zoom: number;\n onZoomChange: (zoom: number) => void;\n}\n\nconst MermaidPreviewContent = (props: MermaidPreviewContentProps) => {\n const {\n allowPanAtDefaultZoom,\n code,\n error,\n isRendering,\n maxHeight,\n minHeight,\n overlayActions,\n svg,\n zoom,\n onZoomChange,\n } = props;\n\n if (isRendering) {\n return (\n <Box position=\"relative\" minHeight={minHeight ?? \"220px\"} maxHeight={maxHeight} overflow=\"hidden\">\n <Text color=\"fg.muted\" textStyle=\"paragraph/S/regular\">\n Rendering diagram...\n </Text>\n {overlayActions}\n </Box>\n );\n }\n\n if (error) {\n return (\n <Box position=\"relative\" minHeight={minHeight ?? \"220px\"} maxHeight={maxHeight} overflow=\"hidden\">\n <MermaidErrorState code={code} error={error} />\n {overlayActions}\n </Box>\n );\n }\n\n return (\n <MermaidSvgView\n key={svg}\n allowPanAtDefaultZoom={allowPanAtDefaultZoom}\n maxHeight={maxHeight}\n minHeight={minHeight}\n overlayActions={overlayActions}\n svg={svg}\n zoom={zoom}\n onZoomChange={onZoomChange}\n />\n );\n};\n\nexport const MermaidRenderer = (props: MermaidRendererProps) => {\n const { code, initialFullscreenOpen = false, initialZoom = 1, isEditable = false, onRequestEdit } = props;\n const { svg, error, isRendering } = useMermaidRender(code);\n const [inlineZoom, setInlineZoom] = useState(initialZoom);\n const [fullscreenZoom, setFullscreenZoom] = useState(1);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(initialFullscreenOpen);\n const previousResetValuesRef = useRef({ code, initialZoom });\n const canDownload = Boolean(svg) && !error && !isRendering;\n\n useEffect(() => {\n const previousResetValues = previousResetValuesRef.current;\n if (previousResetValues.code === code && previousResetValues.initialZoom === initialZoom) {\n return;\n }\n\n previousResetValuesRef.current = { code, initialZoom };\n setInlineZoom(initialZoom);\n setFullscreenZoom(1);\n }, [code, initialZoom]);\n\n const openFullscreen = () => {\n setFullscreenZoom(1);\n setIsFullscreenOpen(true);\n };\n\n return (\n <Box width=\"100%\">\n <MermaidPreviewContent\n code={code}\n error={error}\n isRendering={isRendering}\n overlayActions={\n <MermaidInlineToolbar\n isEditable={isEditable}\n onRequestEdit={onRequestEdit}\n onOpenFullscreen={openFullscreen}\n />\n }\n svg={svg}\n zoom={inlineZoom}\n onZoomChange={setInlineZoom}\n />\n <MermaidFullscreen\n open={isFullscreenOpen}\n canDownload={canDownload}\n onClose={() => setIsFullscreenOpen(false)}\n onDownload={() => downloadMermaidPng({ svg, zoom: fullscreenZoom })}\n >\n <MermaidPreviewContent\n allowPanAtDefaultZoom\n code={code}\n error={error}\n isRendering={isRendering}\n maxHeight=\"100%\"\n minHeight=\"100%\"\n svg={svg}\n zoom={fullscreenZoom}\n onZoomChange={setFullscreenZoom}\n />\n </MermaidFullscreen>\n </Box>\n );\n};\n"],"names":["defaultThemePreferences","id","mode","isThemePreference","value","themePreferences","some","theme","getThemePreferenceMode","find","preference","getThemePreferenceClassName","getThemePreferenceClassNames","THEME_TOKEN_PATHS_ATTRIBUTE","getThemePreferenceCssVariableName","tokenPath","replaceAll","removeThemeTokens","el","tokens","Object","keys","style","removeProperty","removeTrackedThemeTokens","tokenPaths","getAttribute","split","filter","Boolean","setAttribute","applyThemeTokens","entries","setProperty","join","applyThemePreference","document","root","documentElement","body","option","previousTheme","previousPreference","classList","remove","add","colorScheme","noopStorage","getItem","removeItem","setItem","readLocalStorage","globalThis","localStorage","createBrowserStorage","storage","key","STORAGE_KEY","ThemePreferenceContext","createContext","getDefaultThemePreference","getStoredThemePreference","window","storeThemePreference","looksLikeContributedThemePreference","includes","isPendingStoredThemePreference","input","canRestoreStoredPreference","storedPreference","themePreference","getInitialThemePreference","stored","prefersDark","matchMedia","matches","ThemePreferenceProvider","props","$","_c","children","t0","undefined","t1","initialPreference","setThemePreferenceState","useState","t2","pendingStoredPreference","t3","t4","useEffect","t5","Symbol","for","setThemePreference","t6","nextMode","toggleThemePreference","t7","t8","jsx","useThemePreference","context","useContext","Error","MERMAID_MIN_ZOOM","MERMAID_MAX_ZOOM","MERMAID_ZOOM_STEP","clampMermaidZoom","Number","Math","min","max","toFixed","zoomIn","zoom","zoomOut","parseSvgLength","parsed","parseFloat","isFinite","readAttribute","svg","name","match","RegExp","resolveSvgSize","viewBox","map","viewBoxWidth","viewBoxHeight","width","height","closeVoidHtmlTags","replace","normalizeSvgForImage","sized","tag","withWidth","test","createSvgDataUrl","bytes","TextEncoder","encode","binary","byte","String","fromCharCode","btoa","loadImage","url","Promise","resolve","reject","image","Image","position","left","top","pointerEvents","onload","cleanup","onerror","append","src","canvasToPngBlob","canvas","toBlob","blob","triggerDownload","filename","URL","createObjectURL","anchor","createElement","href","download","click","setTimeout","revokeObjectURL","downloadMermaidPng","options","svgUrl","scale","ceil","getContext","drawImage","MermaidErrorState","code","error","Text","p","ScrollArea","Box","jsxs","MermaidFullscreen","canDownload","open","onClose","onDownload","details","Dialog","Icon","Download","Button","X","IconButton","Stack","t9","t10","Portal","t11","MermaidInlineToolbar","isEditable","onRequestEdit","onOpenFullscreen","Tooltip","Pencil","Maximize2","_temp","MermaidZoomControls","onZoomChange","Plus","Minus","_temp2","event","stopPropagation","MermaidSvgView","allowPanAtDefaultZoom","maxHeight","minHeight","overlayActions","x","y","offset","setOffset","isPanning","setIsPanning","pointerId","panStartRef","useRef","canPan","current","clientX","clientY","currentTarget","setPointerCapture","handlePointerDown","event_0","handlePointerMove","event_1","releasePointerCapture","handlePointerUp","t12","t13","t14","t15","t16","display","maxWidth","userSelect","t17","t18","t19","t20","t21","initializedMode","renderSequence","renderQueue","getMermaidTheme","initializeMermaid","mermaid","initialize","startOnLoad","htmlLabels","flowchart","securityLevel","nextRenderId","renderMermaidDiagram","render","queuedRender","then","formatMermaidError","message","trim","slice","useMermaidRender","themeMode","setSvg","setError","isRendering","setIsRendering","cancelled","result","renderError","renderDiagram","MermaidPreviewContent","MermaidRenderer","initialFullscreenOpen","initialZoom","inlineZoom","setInlineZoom","fullscreenZoom","setFullscreenZoom","isFullscreenOpen","setIsFullscreenOpen","previousResetValuesRef","previousResetValues","openFullscreen"],"mappings":"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"}
|
package/dist/radio-DJtQY9po.js
DELETED
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
import { jsx as u, jsxs as R } from "react/jsx-runtime";
|
|
2
|
-
import { c as A } from "react/compiler-runtime";
|
|
3
|
-
import { Alert as C, Checkbox as S, EmptyState as D, VStack as V, Span as _, Box as W, RadioGroup as L } from "@chakra-ui/react";
|
|
4
|
-
import * as $ from "react";
|
|
5
|
-
import { useRef as z } from "react";
|
|
6
|
-
import { DiffModeEnum as T, DiffView as H } from "@git-diff-view/react";
|
|
7
|
-
import "@git-diff-view/react/styles/diff-view.css";
|
|
8
|
-
import { generateDiffFile as P } from "@git-diff-view/file";
|
|
9
|
-
const re = $.forwardRef(function(t, a) {
|
|
10
|
-
const e = A(19);
|
|
11
|
-
let i, l, s, n, o, r;
|
|
12
|
-
e[0] !== t ? ({
|
|
13
|
-
title: r,
|
|
14
|
-
children: i,
|
|
15
|
-
icon: s,
|
|
16
|
-
startElement: o,
|
|
17
|
-
endElement: l,
|
|
18
|
-
...n
|
|
19
|
-
} = t, e[0] = t, e[1] = i, e[2] = l, e[3] = s, e[4] = n, e[5] = o, e[6] = r) : (i = e[1], l = e[2], s = e[3], n = e[4], o = e[5], r = e[6]);
|
|
20
|
-
let d;
|
|
21
|
-
e[7] !== s || e[8] !== o ? (d = o || /* @__PURE__ */ u(C.Indicator, { children: s }), e[7] = s, e[8] = o, e[9] = d) : d = e[9];
|
|
22
|
-
let f;
|
|
23
|
-
e[10] !== i || e[11] !== r ? (f = i ? /* @__PURE__ */ R(C.Content, { children: [
|
|
24
|
-
/* @__PURE__ */ u(C.Title, { children: r }),
|
|
25
|
-
/* @__PURE__ */ u(C.Description, { children: i })
|
|
26
|
-
] }) : /* @__PURE__ */ u(C.Title, { flex: "1", children: r }), e[10] = i, e[11] = r, e[12] = f) : f = e[12];
|
|
27
|
-
let m;
|
|
28
|
-
return e[13] !== l || e[14] !== a || e[15] !== n || e[16] !== d || e[17] !== f ? (m = /* @__PURE__ */ R(C.Root, { ref: a, ...n, children: [
|
|
29
|
-
d,
|
|
30
|
-
f,
|
|
31
|
-
l
|
|
32
|
-
] }), e[13] = l, e[14] = a, e[15] = n, e[16] = d, e[17] = f, e[18] = m) : m = e[18], m;
|
|
33
|
-
}), ae = $.forwardRef(function(t, a) {
|
|
34
|
-
const e = A(28);
|
|
35
|
-
let i, l, s, n, o, r, d;
|
|
36
|
-
e[0] !== t ? ({
|
|
37
|
-
icon: l,
|
|
38
|
-
children: i,
|
|
39
|
-
inputProps: s,
|
|
40
|
-
rootRef: o,
|
|
41
|
-
disabled: r,
|
|
42
|
-
readOnly: d,
|
|
43
|
-
...n
|
|
44
|
-
} = t, e[0] = t, e[1] = i, e[2] = l, e[3] = s, e[4] = n, e[5] = o, e[6] = r, e[7] = d) : (i = e[1], l = e[2], s = e[3], n = e[4], o = e[5], r = e[6], d = e[7]);
|
|
45
|
-
const f = r === void 0 ? !1 : r, m = d === void 0 ? !1 : d, h = f ? "not-allowed" : m ? "default" : "pointer";
|
|
46
|
-
let p;
|
|
47
|
-
e[8] !== s || e[9] !== a ? (p = /* @__PURE__ */ u(S.HiddenInput, { ref: a, ...s }), e[8] = s, e[9] = a, e[10] = p) : p = e[10];
|
|
48
|
-
let x;
|
|
49
|
-
e[11] !== l ? (x = l || /* @__PURE__ */ u(S.Indicator, {}), e[11] = l, e[12] = x) : x = e[12];
|
|
50
|
-
let b;
|
|
51
|
-
e[13] !== h || e[14] !== x ? (b = /* @__PURE__ */ u(S.Control, { borderRadius: "xs", cursor: h, children: x }), e[13] = h, e[14] = x, e[15] = b) : b = e[15];
|
|
52
|
-
let v;
|
|
53
|
-
e[16] !== i || e[17] !== h ? (v = i != null && /* @__PURE__ */ u(S.Label, { cursor: h, children: i }), e[16] = i, e[17] = h, e[18] = v) : v = e[18];
|
|
54
|
-
let g;
|
|
55
|
-
return e[19] !== f || e[20] !== h || e[21] !== m || e[22] !== n || e[23] !== o || e[24] !== p || e[25] !== b || e[26] !== v ? (g = /* @__PURE__ */ R(S.Root, { ref: o, disabled: f, readOnly: m, cursor: h, ...n, children: [
|
|
56
|
-
p,
|
|
57
|
-
b,
|
|
58
|
-
v
|
|
59
|
-
] }), e[19] = f, e[20] = h, e[21] = m, e[22] = n, e[23] = o, e[24] = p, e[25] = b, e[26] = v, e[27] = g) : g = e[27], g;
|
|
60
|
-
}), ce = $.forwardRef(function(t, a) {
|
|
61
|
-
const e = A(19);
|
|
62
|
-
let i, l, s, n, o;
|
|
63
|
-
e[0] !== t ? ({
|
|
64
|
-
title: o,
|
|
65
|
-
description: l,
|
|
66
|
-
icon: s,
|
|
67
|
-
children: i,
|
|
68
|
-
...n
|
|
69
|
-
} = t, e[0] = t, e[1] = i, e[2] = l, e[3] = s, e[4] = n, e[5] = o) : (i = e[1], l = e[2], s = e[3], n = e[4], o = e[5]);
|
|
70
|
-
let r;
|
|
71
|
-
e[6] !== s ? (r = s && /* @__PURE__ */ u(D.Indicator, { children: s }), e[6] = s, e[7] = r) : r = e[7];
|
|
72
|
-
let d;
|
|
73
|
-
e[8] !== l || e[9] !== o ? (d = l ? /* @__PURE__ */ R(V, { textAlign: "center", children: [
|
|
74
|
-
/* @__PURE__ */ u(D.Title, { fontWeight: "normal", children: o }),
|
|
75
|
-
/* @__PURE__ */ u(D.Description, { children: l })
|
|
76
|
-
] }) : /* @__PURE__ */ u(D.Title, { fontWeight: "normal", children: o }), e[8] = l, e[9] = o, e[10] = d) : d = e[10];
|
|
77
|
-
let f;
|
|
78
|
-
e[11] !== i || e[12] !== r || e[13] !== d ? (f = /* @__PURE__ */ R(D.Content, { children: [
|
|
79
|
-
r,
|
|
80
|
-
d,
|
|
81
|
-
i
|
|
82
|
-
] }), e[11] = i, e[12] = r, e[13] = d, e[14] = f) : f = e[14];
|
|
83
|
-
let m;
|
|
84
|
-
return e[15] !== a || e[16] !== n || e[17] !== f ? (m = /* @__PURE__ */ u(D.Root, { ref: a, ...n, children: f }), e[15] = a, e[16] = n, e[17] = f, e[18] = m) : m = e[18], m;
|
|
85
|
-
}), de = (c) => {
|
|
86
|
-
const t = A(20), {
|
|
87
|
-
fileName: a,
|
|
88
|
-
additions: e,
|
|
89
|
-
deletions: i,
|
|
90
|
-
label: l,
|
|
91
|
-
variant: s,
|
|
92
|
-
size: n,
|
|
93
|
-
onClick: o,
|
|
94
|
-
onClickFileLink: r
|
|
95
|
-
} = c, d = s === void 0 ? "outline" : s, m = (n === void 0 ? "default" : n) === "small", h = d === "outline" ? "1px solid" : "none", p = d === "outline" ? m ? "3xs" : "2xs" : "2px", x = m ? "label/S/regular" : void 0, b = o ? "pointer" : "default", v = o ? "bg.muted" : "none";
|
|
96
|
-
let g;
|
|
97
|
-
t[0] !== v ? (g = {
|
|
98
|
-
background: v
|
|
99
|
-
}, t[0] = v, t[1] = g) : g = t[1];
|
|
100
|
-
let w;
|
|
101
|
-
t[2] !== a || t[3] !== r ? (w = a && /* @__PURE__ */ u(_, { display: "inline-block", maxW: "24ch", truncate: !0, mr: "xs", title: a, onClick: (N) => {
|
|
102
|
-
N.stopPropagation(), r?.();
|
|
103
|
-
}, cursor: r ? "pointer" : "default", _hover: {
|
|
104
|
-
textDecoration: r ? "underline" : "none",
|
|
105
|
-
color: r ? "fg.blue-dark" : "fg.muted"
|
|
106
|
-
}, children: a }), t[2] = a, t[3] = r, t[4] = w) : w = t[4];
|
|
107
|
-
const j = `+${e}`;
|
|
108
|
-
let k;
|
|
109
|
-
t[5] !== j ? (k = /* @__PURE__ */ u(_, { color: "fg.success", children: j }), t[5] = j, t[6] = k) : k = t[6];
|
|
110
|
-
const F = `-${i}`;
|
|
111
|
-
let y;
|
|
112
|
-
t[7] !== F ? (y = /* @__PURE__ */ u(_, { color: "fg.error", children: F }), t[7] = F, t[8] = y) : y = t[8];
|
|
113
|
-
let I;
|
|
114
|
-
return t[9] !== l || t[10] !== o || t[11] !== k || t[12] !== y || t[13] !== h || t[14] !== p || t[15] !== x || t[16] !== b || t[17] !== g || t[18] !== w ? (I = /* @__PURE__ */ R(_, { display: "inline-flex", alignItems: "center", gap: "2xs", border: h, borderColor: "border.muted", color: "fg.muted", paddingX: p, paddingY: "1px", borderRadius: "xs", textStyle: x, cursor: b, onClick: o, _hover: g, children: [
|
|
115
|
-
l,
|
|
116
|
-
w,
|
|
117
|
-
k,
|
|
118
|
-
y
|
|
119
|
-
] }), t[9] = l, t[10] = o, t[11] = k, t[12] = y, t[13] = h, t[14] = p, t[15] = x, t[16] = b, t[17] = g, t[18] = w, t[19] = I) : I = t[19], I;
|
|
120
|
-
}, B = "before.txt", M = "after.txt", G = 100, K = {
|
|
121
|
-
ts: "typescript",
|
|
122
|
-
tsx: "typescript",
|
|
123
|
-
js: "javascript",
|
|
124
|
-
jsx: "javascript",
|
|
125
|
-
json: "json",
|
|
126
|
-
md: "markdown",
|
|
127
|
-
py: "python",
|
|
128
|
-
go: "go",
|
|
129
|
-
rs: "rust",
|
|
130
|
-
css: "css",
|
|
131
|
-
html: "html",
|
|
132
|
-
sh: "shell",
|
|
133
|
-
yml: "yaml",
|
|
134
|
-
yaml: "yaml"
|
|
135
|
-
}, O = (c) => (c.split(/[\\/]/).pop() ?? c).split(".").pop()?.toLowerCase(), X = ({
|
|
136
|
-
language: c,
|
|
137
|
-
oldPath: t,
|
|
138
|
-
newPath: a
|
|
139
|
-
}) => {
|
|
140
|
-
if (c)
|
|
141
|
-
return c;
|
|
142
|
-
const e = O(a ?? t ?? "");
|
|
143
|
-
return e ? K[e] ?? "plaintext" : "plaintext";
|
|
144
|
-
}, E = /* @__PURE__ */ new Map(), q = ({
|
|
145
|
-
original: c,
|
|
146
|
-
modified: t,
|
|
147
|
-
language: a,
|
|
148
|
-
oldPath: e,
|
|
149
|
-
newPath: i
|
|
150
|
-
}) => [c, t, a ?? "", e ?? "", i ?? ""].join("\0"), U = (c) => {
|
|
151
|
-
const t = c.join(`
|
|
152
|
-
`).split(`
|
|
153
|
-
`);
|
|
154
|
-
let a = 0, e = 0, i = 0, l = !1, s = 0, n = 0;
|
|
155
|
-
const o = () => {
|
|
156
|
-
a += s + n, e += Math.max(s, n), s = 0, n = 0;
|
|
157
|
-
};
|
|
158
|
-
for (const r of t)
|
|
159
|
-
r.startsWith("@@") ? (o(), i += 1, l = !0) : l && (r.startsWith("+") ? s += 1 : r.startsWith("-") ? n += 1 : r.startsWith(" ") && (o(), a += 1, e += 1));
|
|
160
|
-
return o(), {
|
|
161
|
-
unifiedContentRows: a,
|
|
162
|
-
splitContentRows: e,
|
|
163
|
-
hunkRows: i
|
|
164
|
-
};
|
|
165
|
-
}, Y = ({
|
|
166
|
-
original: c,
|
|
167
|
-
modified: t,
|
|
168
|
-
language: a,
|
|
169
|
-
oldPath: e,
|
|
170
|
-
newPath: i
|
|
171
|
-
}) => {
|
|
172
|
-
const l = e ?? i ?? B, s = i ?? e ?? M, n = X({
|
|
173
|
-
language: a,
|
|
174
|
-
oldPath: e,
|
|
175
|
-
newPath: i
|
|
176
|
-
}), o = P(l, c, s, t, n, n, {
|
|
177
|
-
context: 3
|
|
178
|
-
});
|
|
179
|
-
return {
|
|
180
|
-
oldFile: {
|
|
181
|
-
fileName: l,
|
|
182
|
-
fileLang: n,
|
|
183
|
-
content: c
|
|
184
|
-
},
|
|
185
|
-
newFile: {
|
|
186
|
-
fileName: s,
|
|
187
|
-
fileLang: n,
|
|
188
|
-
content: t
|
|
189
|
-
},
|
|
190
|
-
hunks: o._diffList,
|
|
191
|
-
...U(o._diffList)
|
|
192
|
-
};
|
|
193
|
-
}, J = (c) => {
|
|
194
|
-
const t = q(c), a = E.get(t);
|
|
195
|
-
if (a) return a;
|
|
196
|
-
const e = Y(c);
|
|
197
|
-
if (E.size >= G) {
|
|
198
|
-
const i = E.keys().next().value;
|
|
199
|
-
i !== void 0 && E.delete(i);
|
|
200
|
-
}
|
|
201
|
-
return E.set(t, e), e;
|
|
202
|
-
}, Q = (c, t) => c.original === t.original && c.modified === t.modified && c.language === t.language && c.oldPath === t.oldPath && c.newPath === t.newPath, Z = (c, t, a) => c && Q(c.input, t) ? c : {
|
|
203
|
-
input: t,
|
|
204
|
-
data: a()
|
|
205
|
-
};
|
|
206
|
-
function fe(c) {
|
|
207
|
-
const {
|
|
208
|
-
original: t,
|
|
209
|
-
modified: a,
|
|
210
|
-
language: e,
|
|
211
|
-
oldPath: i,
|
|
212
|
-
newPath: l,
|
|
213
|
-
sideBySide: s = !1,
|
|
214
|
-
disableScroll: n = !0,
|
|
215
|
-
data: o
|
|
216
|
-
} = c, r = z(null), d = {
|
|
217
|
-
original: t,
|
|
218
|
-
modified: a,
|
|
219
|
-
language: e,
|
|
220
|
-
oldPath: i,
|
|
221
|
-
newPath: l
|
|
222
|
-
};
|
|
223
|
-
r.current = Z(r.current, d, () => o ?? J({
|
|
224
|
-
original: t,
|
|
225
|
-
modified: a,
|
|
226
|
-
language: e,
|
|
227
|
-
oldPath: i,
|
|
228
|
-
newPath: l
|
|
229
|
-
}));
|
|
230
|
-
const f = s ? T.Split : T.Unified;
|
|
231
|
-
return /* @__PURE__ */ u(W, { height: "100%", width: "100%", position: "relative", zIndex: "0", overflow: n ? "hidden" : "auto", bg: "bg", css: {
|
|
232
|
-
"& .gdv-root, & .gdv-view, & .gdv-file, & .gdv-content, & .gdv-hunk, & .gdv-line": {
|
|
233
|
-
background: "var(--chakra-colors-bg)"
|
|
234
|
-
},
|
|
235
|
-
"& .gdv-root": {
|
|
236
|
-
border: "none",
|
|
237
|
-
borderRadius: "0"
|
|
238
|
-
},
|
|
239
|
-
"& .gdv-line-number": {
|
|
240
|
-
fontSize: "11px"
|
|
241
|
-
}
|
|
242
|
-
}, children: /* @__PURE__ */ u(
|
|
243
|
-
H,
|
|
244
|
-
{
|
|
245
|
-
data: r.current.data,
|
|
246
|
-
diffViewMode: f,
|
|
247
|
-
diffViewTheme: "dark",
|
|
248
|
-
diffViewHighlight: !0,
|
|
249
|
-
diffViewWrap: !1,
|
|
250
|
-
diffViewFontSize: 11
|
|
251
|
-
}
|
|
252
|
-
) });
|
|
253
|
-
}
|
|
254
|
-
const ue = $.forwardRef(function(t, a) {
|
|
255
|
-
const e = A(16);
|
|
256
|
-
let i, l, s, n;
|
|
257
|
-
e[0] !== t ? ({
|
|
258
|
-
children: i,
|
|
259
|
-
inputProps: l,
|
|
260
|
-
rootRef: n,
|
|
261
|
-
...s
|
|
262
|
-
} = t, e[0] = t, e[1] = i, e[2] = l, e[3] = s, e[4] = n) : (i = e[1], l = e[2], s = e[3], n = e[4]);
|
|
263
|
-
let o;
|
|
264
|
-
e[5] !== l || e[6] !== a ? (o = /* @__PURE__ */ u(L.ItemHiddenInput, { ref: a, ...l }), e[5] = l, e[6] = a, e[7] = o) : o = e[7];
|
|
265
|
-
let r;
|
|
266
|
-
e[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ u(L.ItemIndicator, {}), e[8] = r) : r = e[8];
|
|
267
|
-
let d;
|
|
268
|
-
e[9] !== i ? (d = i ? /* @__PURE__ */ u(L.ItemText, { children: i }) : null, e[9] = i, e[10] = d) : d = e[10];
|
|
269
|
-
let f;
|
|
270
|
-
return e[11] !== s || e[12] !== n || e[13] !== o || e[14] !== d ? (f = /* @__PURE__ */ R(L.Item, { ref: n, ...s, children: [
|
|
271
|
-
o,
|
|
272
|
-
r,
|
|
273
|
-
d
|
|
274
|
-
] }), e[11] = s, e[12] = n, e[13] = o, e[14] = d, e[15] = f) : f = e[15], f;
|
|
275
|
-
}), me = L.Root;
|
|
276
|
-
export {
|
|
277
|
-
re as A,
|
|
278
|
-
ae as C,
|
|
279
|
-
fe as D,
|
|
280
|
-
ce as E,
|
|
281
|
-
ue as R,
|
|
282
|
-
me as a,
|
|
283
|
-
de as b,
|
|
284
|
-
J as c
|
|
285
|
-
};
|
|
286
|
-
//# sourceMappingURL=radio-DJtQY9po.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"radio-DJtQY9po.js","sources":["../src/components/alert.tsx","../src/components/checkbox.tsx","../src/components/empty-state.tsx","../src/components/diff-viewer/diff-bubble.tsx","../src/components/diff-viewer/diff-view-adapter.ts","../src/components/diff-viewer/diff-editor.tsx","../src/components/radio.tsx"],"sourcesContent":["import { Alert as ChakraAlert } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface AlertProps extends Omit<ChakraAlert.RootProps, \"title\"> {\n startElement?: React.ReactNode;\n endElement?: React.ReactNode;\n title?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const AlertMessage = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { title, children, icon, startElement, endElement, ...rest } = props;\n return (\n <ChakraAlert.Root ref={ref} {...rest}>\n {startElement || <ChakraAlert.Indicator>{icon}</ChakraAlert.Indicator>}\n {children ? (\n <ChakraAlert.Content>\n <ChakraAlert.Title>{title}</ChakraAlert.Title>\n <ChakraAlert.Description>{children}</ChakraAlert.Description>\n </ChakraAlert.Content>\n ) : (\n <ChakraAlert.Title flex=\"1\">{title}</ChakraAlert.Title>\n )}\n {endElement}\n </ChakraAlert.Root>\n );\n});\n","import { Checkbox as ChakraCheckbox } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface CheckboxProps extends ChakraCheckbox.RootProps {\n icon?: React.ReactNode;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(props, ref) {\n const { icon, children, inputProps, rootRef, disabled = false, readOnly = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : readOnly ? \"default\" : \"pointer\";\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} readOnly={readOnly} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control borderRadius=\"xs\" cursor={interactiveCursor}>\n {icon || <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import { EmptyState as ChakraEmptyState, VStack } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\n/** Centered empty-state message with optional icon, description, and follow-up actions. */\nexport interface EmptyStateProps extends ChakraEmptyState.RootProps {\n /** Primary empty-state message. */\n title: string;\n /** Supporting explanation shown below the title. */\n description?: string;\n /** Decorative or semantic icon shown above the message. */\n icon?: React.ReactNode;\n}\n\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(function EmptyState(props, ref) {\n const { title, description, icon, children, ...rest } = props;\n return (\n <ChakraEmptyState.Root ref={ref} {...rest}>\n <ChakraEmptyState.Content>\n {icon && <ChakraEmptyState.Indicator>{icon}</ChakraEmptyState.Indicator>}\n {description ? (\n <VStack textAlign=\"center\">\n <ChakraEmptyState.Title fontWeight=\"normal\">{title}</ChakraEmptyState.Title>\n <ChakraEmptyState.Description>{description}</ChakraEmptyState.Description>\n </VStack>\n ) : (\n <ChakraEmptyState.Title fontWeight=\"normal\">{title}</ChakraEmptyState.Title>\n )}\n {children}\n </ChakraEmptyState.Content>\n </ChakraEmptyState.Root>\n );\n});\n","import { Span } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport type { ComponentProps, MouseEvent } from \"react\";\n\ninterface DiffBubbleProps extends Omit<ComponentProps<typeof Span>, \"onClick\"> {\n fileName?: string;\n additions: number;\n deletions: number;\n label?: React.ReactNode;\n variant?: \"outline\" | \"ghost\";\n size?: \"default\" | \"small\";\n onClick?: (event: MouseEvent<HTMLSpanElement>) => void;\n onClickFileLink?: () => void;\n}\n\nexport const DiffBubble = (props: DiffBubbleProps) => {\n const {\n fileName,\n additions,\n deletions,\n label,\n variant = \"outline\",\n size = \"default\",\n onClick,\n onClickFileLink,\n } = props;\n\n const isSmall = size === \"small\";\n\n return (\n <Span\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={\"2xs\"}\n border={variant === \"outline\" ? \"1px solid\" : \"none\"}\n borderColor=\"border.muted\"\n color=\"fg.muted\"\n paddingX={variant === \"outline\" ? (isSmall ? \"3xs\" : \"2xs\") : \"2px\"}\n paddingY=\"1px\"\n borderRadius=\"xs\"\n textStyle={isSmall ? \"label/S/regular\" : undefined}\n cursor={onClick ? \"pointer\" : \"default\"}\n onClick={onClick}\n _hover={{\n background: onClick ? \"bg.muted\" : \"none\",\n }}\n >\n {label}\n {fileName && (\n <Span\n display=\"inline-block\"\n maxW=\"24ch\"\n truncate\n mr=\"xs\"\n title={fileName}\n onClick={(e) => {\n e.stopPropagation();\n onClickFileLink?.();\n }}\n cursor={onClickFileLink ? \"pointer\" : \"default\"}\n _hover={{\n textDecoration: onClickFileLink ? \"underline\" : \"none\",\n color: onClickFileLink ? \"fg.blue-dark\" : \"fg.muted\",\n }}\n >\n {fileName}\n </Span>\n )}\n <Span color=\"fg.success\">{`+${additions}`}</Span>\n <Span color=\"fg.error\">{`-${deletions}`}</Span>\n </Span>\n );\n};\n","import { generateDiffFile } from \"@git-diff-view/file\";\nimport type { DiffViewProps } from \"@git-diff-view/react\";\n\nconst FALLBACK_OLD_PATH = \"before.txt\";\nconst FALLBACK_NEW_PATH = \"after.txt\";\nconst MAX_CACHE_ENTRIES = 100;\n\ninterface ResolveDiffLanguageInput {\n language?: string;\n oldPath?: string;\n newPath?: string;\n}\n\ninterface BuildDiffViewDataInput extends ResolveDiffLanguageInput {\n original: string;\n modified: string;\n}\n\nexport type DiffViewData = NonNullable<DiffViewProps<unknown>[\"data\"]>;\n\n/**\n * Diff view data enriched with the row counts the renderer will actually paint. The renderer\n * collapses unchanged context, so only lines inside the hunks are rendered — these counts come\n * from the hunk patch, not the full file length.\n */\nexport interface BuiltDiffViewData extends DiffViewData {\n /** Content rows painted in unified layout (one per added/removed/context line). */\n unifiedContentRows: number;\n /** Content rows painted in split layout (paired add/remove lines share a row). */\n splitContentRows: number;\n /** Hunk header rows — one per `@@` section, taller than content rows. */\n hunkRows: number;\n}\n\nconst extToLanguage: Record<string, string> = {\n ts: \"typescript\",\n tsx: \"typescript\",\n js: \"javascript\",\n jsx: \"javascript\",\n json: \"json\",\n md: \"markdown\",\n py: \"python\",\n go: \"go\",\n rs: \"rust\",\n css: \"css\",\n html: \"html\",\n sh: \"shell\",\n yml: \"yaml\",\n yaml: \"yaml\",\n};\n\nconst getExtension = (path: string) => {\n const fileName = path.split(/[\\\\/]/).pop() ?? path;\n const ext = fileName.split(\".\").pop();\n\n return ext?.toLowerCase();\n};\n\nexport const resolveDiffLanguage = ({ language, oldPath, newPath }: ResolveDiffLanguageInput) => {\n if (language) {\n return language;\n }\n\n const extension = getExtension(newPath ?? oldPath ?? \"\");\n\n if (!extension) {\n return \"plaintext\";\n }\n\n return extToLanguage[extension] ?? \"plaintext\";\n};\n\n// Building a diff file parses both file contents and walks every rendered line. The drawer's\n// virtualizer asks for heights far more often than the diff content changes, so memoize by\n// content signature and share one instance with the rendered editor.\nconst cache = new Map<string, BuiltDiffViewData>();\n\nconst getCacheKey = ({ original, modified, language, oldPath, newPath }: BuildDiffViewDataInput) =>\n [original, modified, language ?? \"\", oldPath ?? \"\", newPath ?? \"\"].join(\"\\0\");\n\n// The hunk patch lists exactly the rows the renderer paints (it collapses everything else).\n// Walk it once: `@@` starts a hunk header row, ` ` is a context row, and a run of `-`/`+`\n// is one change block — unified stacks every line, split pairs them so the block is as tall\n// as its longer side.\nconst countRenderedRows = (hunks: string[]) => {\n const lines = hunks.join(\"\\n\").split(\"\\n\");\n let unifiedContentRows = 0;\n let splitContentRows = 0;\n let hunkRows = 0;\n let inHunk = false;\n let blockAdditions = 0;\n let blockDeletions = 0;\n\n const flushBlock = () => {\n unifiedContentRows += blockAdditions + blockDeletions;\n splitContentRows += Math.max(blockAdditions, blockDeletions);\n blockAdditions = 0;\n blockDeletions = 0;\n };\n\n for (const line of lines) {\n if (line.startsWith(\"@@\")) {\n flushBlock();\n hunkRows += 1;\n inHunk = true;\n } else if (!inHunk) {\n // Patch header (Index:, ===, ---, +++) before the first hunk — not rendered.\n } else if (line.startsWith(\"+\")) {\n blockAdditions += 1;\n } else if (line.startsWith(\"-\")) {\n blockDeletions += 1;\n } else if (line.startsWith(\" \")) {\n flushBlock();\n unifiedContentRows += 1;\n splitContentRows += 1;\n }\n }\n flushBlock();\n\n return { unifiedContentRows, splitContentRows, hunkRows };\n};\n\nconst computeDiffViewData = ({ original, modified, language, oldPath, newPath }: BuildDiffViewDataInput) => {\n const oldFileName = oldPath ?? newPath ?? FALLBACK_OLD_PATH;\n const newFileName = newPath ?? oldPath ?? FALLBACK_NEW_PATH;\n const fileLanguage = resolveDiffLanguage({ language, oldPath, newPath });\n\n // No uuid: @git-diff-view keys its internal File cache by uuid when one is given, so a\n // shared constant would make every diff reuse the first file's content. Omitting it keys\n // the cache by raw content, which is correct.\n const diffFile = generateDiffFile(oldFileName, original, newFileName, modified, fileLanguage, fileLanguage, {\n context: 3,\n });\n\n return {\n oldFile: {\n fileName: oldFileName,\n fileLang: fileLanguage,\n content: original,\n },\n newFile: {\n fileName: newFileName,\n fileLang: fileLanguage,\n content: modified,\n },\n hunks: diffFile._diffList,\n ...countRenderedRows(diffFile._diffList),\n } satisfies BuiltDiffViewData;\n};\n\nexport const buildDiffViewData = (input: BuildDiffViewDataInput): BuiltDiffViewData => {\n const key = getCacheKey(input);\n const cached = cache.get(key);\n if (cached) return cached;\n\n const data = computeDiffViewData(input);\n\n if (cache.size >= MAX_CACHE_ENTRIES) {\n const oldest = cache.keys().next().value;\n if (oldest !== undefined) cache.delete(oldest);\n }\n cache.set(key, data);\n\n return data;\n};\n","import { DiffModeEnum, DiffView } from \"@git-diff-view/react\";\nimport \"@git-diff-view/react/styles/diff-view.css\";\nimport { Box } from \"@chakra-ui/react\";\nimport { useRef } from \"react\";\nimport { buildDiffViewData, type DiffViewData } from \"./diff-view-adapter\";\n\nexport interface DiffEditorInput {\n original: string;\n modified: string;\n language?: string;\n oldPath?: string;\n newPath?: string;\n}\n\ninterface DiffEditorProps extends DiffEditorInput {\n sideBySide?: boolean;\n disableScroll?: boolean;\n data?: DiffViewData;\n}\n\nexport interface DiffEditorDataState {\n input: DiffEditorInput;\n data: DiffViewData;\n}\n\nconst areDiffEditorInputsEqual = (current: DiffEditorInput, next: DiffEditorInput) =>\n current.original === next.original &&\n current.modified === next.modified &&\n current.language === next.language &&\n current.oldPath === next.oldPath &&\n current.newPath === next.newPath;\n\nexport const resolveDiffEditorDataState = (\n current: DiffEditorDataState | null,\n input: DiffEditorInput,\n createData: () => DiffViewData,\n) => {\n if (current && areDiffEditorInputsEqual(current.input, input)) {\n return current;\n }\n\n return {\n input,\n data: createData(),\n };\n};\n\nexport function DiffEditor(props: DiffEditorProps) {\n const { original, modified, language, oldPath, newPath, sideBySide = false, disableScroll = true, data } = props;\n const dataStateRef = useRef<DiffEditorDataState | null>(null);\n const input = { original, modified, language, oldPath, newPath };\n\n dataStateRef.current = resolveDiffEditorDataState(\n dataStateRef.current,\n input,\n () =>\n data ??\n buildDiffViewData({\n original,\n modified,\n language,\n oldPath,\n newPath,\n }),\n );\n\n const mode = sideBySide ? DiffModeEnum.Split : DiffModeEnum.Unified;\n\n return (\n <Box\n height=\"100%\"\n width=\"100%\"\n position=\"relative\"\n zIndex=\"0\"\n overflow={disableScroll ? \"hidden\" : \"auto\"}\n bg=\"bg\"\n css={{\n \"& .gdv-root, & .gdv-view, & .gdv-file, & .gdv-content, & .gdv-hunk, & .gdv-line\": {\n background: \"var(--chakra-colors-bg)\",\n },\n \"& .gdv-root\": {\n border: \"none\",\n borderRadius: \"0\",\n },\n \"& .gdv-line-number\": {\n fontSize: \"11px\",\n },\n }}\n >\n <DiffView\n data={dataStateRef.current.data}\n diffViewMode={mode}\n diffViewTheme=\"dark\"\n diffViewHighlight={true}\n // No wrap: keeps every line one fixed-height row so the virtualizer's height estimate\n // stays exact, and avoids wrapped lines being misread. Long lines scroll horizontally\n // inside DiffView's own overflow-x container.\n diffViewWrap={false}\n diffViewFontSize={11}\n />\n </Box>\n );\n}\n","import { RadioGroup as ChakraRadioGroup } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface RadioProps extends ChakraRadioGroup.ItemProps {\n rootRef?: React.RefObject<HTMLDivElement | null>;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(function Radio(props, ref) {\n const { children, inputProps, rootRef, ...rest } = props;\n\n return (\n <ChakraRadioGroup.Item ref={rootRef} {...rest}>\n <ChakraRadioGroup.ItemHiddenInput ref={ref} {...inputProps} />\n <ChakraRadioGroup.ItemIndicator />\n {children ? <ChakraRadioGroup.ItemText>{children}</ChakraRadioGroup.ItemText> : null}\n </ChakraRadioGroup.Item>\n );\n});\n\nexport const RadioGroup = ChakraRadioGroup.Root;\n"],"names":["AlertMessage","React","forwardRef","props","ref","$","_c","children","endElement","icon","rest","startElement","title","t0","jsx","ChakraAlert","t1","jsxs","t2","Checkbox","inputProps","rootRef","disabled","readOnly","undefined","interactiveCursor","t3","ChakraCheckbox","t4","t5","t6","EmptyState","description","ChakraEmptyState","VStack","DiffBubble","fileName","additions","deletions","label","variant","size","onClick","onClickFileLink","isSmall","t7","background","t8","Span","e","stopPropagation","textDecoration","color","t9","t10","t11","t12","t13","FALLBACK_OLD_PATH","FALLBACK_NEW_PATH","MAX_CACHE_ENTRIES","extToLanguage","ts","tsx","js","json","md","py","go","rs","css","html","sh","yml","yaml","getExtension","path","split","pop","toLowerCase","resolveDiffLanguage","language","oldPath","newPath","extension","cache","Map","getCacheKey","original","modified","join","countRenderedRows","hunks","lines","unifiedContentRows","splitContentRows","hunkRows","inHunk","blockAdditions","blockDeletions","flushBlock","Math","max","line","startsWith","computeDiffViewData","oldFileName","newFileName","fileLanguage","diffFile","generateDiffFile","context","oldFile","fileLang","content","newFile","_diffList","buildDiffViewData","input","key","cached","get","data","oldest","keys","next","value","delete","set","areDiffEditorInputsEqual","current","resolveDiffEditorDataState","createData","DiffEditor","sideBySide","disableScroll","dataStateRef","useRef","mode","DiffModeEnum","Split","Unified","Box","border","borderRadius","fontSize","DiffView","Radio","Symbol","for","ChakraRadioGroup","RadioGroup","Root"],"mappings":";;;;;;;;AAUO,MAAMA,KAAeC,EAAMC,WAAuC,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AAAA,EAAAP,SAAAF,KACvE;AAAA,IAAAS,OAAAA;AAAAA,IAAAL,UAAAA;AAAAA,IAAAE,MAAAA;AAAAA,IAAAE,cAAAA;AAAAA,IAAAH,YAAAA;AAAAA,IAAA,GAAAE;AAAAA,EAAAA,IAAqEP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAK,GAAAL,OAAAM,GAAAN,OAAAO,MAAAL,IAAAF,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAM,IAAAN,EAAA,CAAA,GAAAO,IAAAP,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,EAAA,CAAA,MAAAI,KAAAJ,SAAAM,KAGtEE,IAAAF,KAAgB,gBAAAG,EAAAC,EAAA,WAAA,EAAwBN,UAAAA,GAAK,GAAwBJ,OAAAI,GAAAJ,OAAAM,GAAAN,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,EAAA,EAAA,MAAAE,KAAAF,UAAAO,KACrEI,IAAAT,IACC,gBAAAU,EAAAF,EAAA,SAAA,EACE,UAAA;AAAA,IAAA,gBAAAD,aAAoBF,UAAAA,EAAAA,CAAM;AAAA,IAC1B,gBAAAE,EAAAC,EAAA,aAAA,EAA0BR,UAAAA,EAAAA,CAAS;AAAA,EAAA,GACrC,IAEA,gBAAAO,EAAAC,EAAA,OAAA,EAAwB,MAAA,KAAKH,UAAAA,GAAM,GACpCP,QAAAE,GAAAF,QAAAO,GAAAP,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,EAAA,MAAAG,KAAAH,EAAA,EAAA,MAAAD,KAAAC,EAAA,EAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAQ,KAAAR,UAAAW,KATHE,gCAAuBd,KAAAA,MAASM,GAC7BG,UAAAA;AAAAA,IAAAA;AAAAA,IACAG;AAAAA,IAQAR;AAAAA,EAAAA,GACH,GAAmBH,QAAAG,GAAAH,QAAAD,GAAAC,QAAAK,GAAAL,QAAAQ,GAAAR,QAAAW,GAAAX,QAAAa,KAAAA,IAAAb,EAAA,EAAA,GAXnBa;AAWmB,CAEtB,GCjBYC,KAAWlB,EAAMC,WAA4C,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAE,GAAAW,GAAAV,GAAAW,GAAAR,GAAAG;AAAA,EAAAX,SAAAF,KACxE;AAAA,IAAAM,MAAAA;AAAAA,IAAAF,UAAAA;AAAAA,IAAAa,YAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,UAAAT;AAAAA,IAAAU,UAAAP;AAAAA,IAAA,GAAAN;AAAAA,EAAAA,IAA6FP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAe,GAAAf,OAAAK,GAAAL,OAAAgB,GAAAhB,OAAAQ,GAAAR,OAAAW,MAAAT,IAAAF,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAe,IAAAf,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAgB,IAAAhB,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA,GAAAW,IAAAX,EAAA,CAAA;AAAtD,QAAAiB,IAAAT,MAAAW,SAAA,KAAAX,GAAkBU,IAAAP,MAAAQ,SAAA,KAAAR,GAC/DS,IAA0BH,IAAA,gBAA2BC,IAAA,YAAA;AAAiC,MAAAL;AAAA,EAAAb,EAAA,CAAA,MAAAe,KAAAf,SAAAD,KAIlFc,uCAAiCd,KAAAA,GAAG,GAAMgB,GAAU,GAAIf,OAAAe,GAAAf,OAAAD,GAAAC,QAAAa,KAAAA,IAAAb,EAAA,EAAA;AAAA,MAAAqB;AAAA,EAAArB,UAAAI,KAErDiB,IAAAjB,KAAQ,gBAAAK,EAAAa,EAAA,WAAA,CAAA,CAAA,GAA4BtB,QAAAI,GAAAJ,QAAAqB,KAAAA,IAAArB,EAAA,EAAA;AAAA,MAAAuB;AAAA,EAAAvB,EAAA,EAAA,MAAAoB,KAAApB,UAAAqB,KADvCE,IAAA,gBAAAd,EAAAa,EAAA,SAAA,EAAqC,cAAA,MAAaF,QAAAA,GAC/CC,UAAAA,EAAAA,CACH,GAAyBrB,QAAAoB,GAAApB,QAAAqB,GAAArB,QAAAuB,KAAAA,IAAAvB,EAAA,EAAA;AAAA,MAAAwB;AAAA,EAAAxB,EAAA,EAAA,MAAAE,KAAAF,UAAAoB,KACxBI,IAAAtB,KAAY,QAAQ,gBAAAO,EAAAa,EAAA,OAAA,EAA8BF,QAAAA,GAAoBlB,UAAAA,GAAS,GAAuBF,QAAAE,GAAAF,QAAAoB,GAAApB,QAAAwB,KAAAA,IAAAxB,EAAA,EAAA;AAAA,MAAAyB;AAAA,SAAAzB,EAAA,EAAA,MAAAiB,KAAAjB,EAAA,EAAA,MAAAoB,KAAApB,EAAA,EAAA,MAAAkB,KAAAlB,EAAA,EAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAgB,KAAAhB,EAAA,EAAA,MAAAa,KAAAb,EAAA,EAAA,MAAAuB,KAAAvB,UAAAwB,KALzGC,IAAA,gBAAAb,EAAAU,EAAA,MAAA,EAA0BN,KAAAA,GAAmBC,UAAAA,GAAoBC,UAAAA,GAAkBE,QAAAA,GAAiB,GAAMf,GACxGQ,UAAAA;AAAAA,IAAAA;AAAAA,IACAU;AAAAA,IAGCC;AAAAA,EAAAA,GACH,GAAsBxB,QAAAiB,GAAAjB,QAAAoB,GAAApB,QAAAkB,GAAAlB,QAAAK,GAAAL,QAAAgB,GAAAhB,QAAAa,GAAAb,QAAAuB,GAAAvB,QAAAwB,GAAAxB,QAAAyB,KAAAA,IAAAzB,EAAA,EAAA,GANtByB;AAMsB,CAEzB,GCTYC,KAAa9B,EAAMC,WAA4C,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAyB,GAAAvB,GAAAC,GAAAE;AAAA,EAAAP,SAAAF,KAC1E;AAAA,IAAAS,OAAAA;AAAAA,IAAAoB,aAAAA;AAAAA,IAAAvB,MAAAA;AAAAA,IAAAF,UAAAA;AAAAA,IAAA,GAAAG;AAAAA,EAAAA,IAAwDP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAA2B,GAAA3B,OAAAI,GAAAJ,OAAAK,GAAAL,OAAAO,MAAAL,IAAAF,EAAA,CAAA,GAAA2B,IAAA3B,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAO,IAAAP,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,SAAAI,KAIvDI,IAAAJ,KAAQ,gBAAAK,EAAAmB,EAAA,WAAA,EAA6BxB,UAAAA,GAAK,GAA6BJ,OAAAI,GAAAJ,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,EAAA,CAAA,MAAA2B,KAAA3B,SAAAO,KACvEI,IAAAgB,IACC,gBAAAf,EAACiB,GAAA,EAAiB,WAAA,UAChB,UAAA;AAAA,IAAA,gBAAApB,EAAAmB,EAAA,OAAA,EAAmC,YAAA,UAAUrB,UAAAA,GAAM;AAAA,IACnD,gBAAAE,EAAAmB,EAAA,aAAA,EAA+BD,UAAAA,EAAAA,CAAY;AAAA,EAAA,GAC7C,IAEA,gBAAAlB,EAAAmB,EAAA,OAAA,EAAmC,YAAA,UAAUrB,UAAAA,GAAM,GACpDP,OAAA2B,GAAA3B,OAAAO,GAAAP,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAAA,MAAAa;AAAA,EAAAb,EAAA,EAAA,MAAAE,KAAAF,UAAAQ,KAAAR,EAAA,EAAA,MAAAW,KATHE,IAAA,gBAAAD,EAAAgB,EAAA,SAAA,EACGpB,UAAAA;AAAAA,IAAAA;AAAAA,IACAG;AAAAA,IAQAT;AAAAA,EAAAA,GACH,GAA2BF,QAAAE,GAAAF,QAAAQ,GAAAR,QAAAW,GAAAX,QAAAa,KAAAA,IAAAb,EAAA,EAAA;AAAA,MAAAqB;AAAA,SAAArB,EAAA,EAAA,MAAAD,KAAAC,UAAAK,KAAAL,EAAA,EAAA,MAAAa,KAZ7BQ,sBAAAO,EAAA,MAAA,EAA4B7B,KAAAA,GAAG,GAAMM,GACnCQ,UAAAA,GAYF,GAAwBb,QAAAD,GAAAC,QAAAK,GAAAL,QAAAa,GAAAb,QAAAqB,KAAAA,IAAArB,EAAA,EAAA,GAbxBqB;AAawB,CAE3B,GChBYS,KAAahC,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACxB;AAAA,IAAA8B,UAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,SAAA3B;AAAAA,IAAA4B,MAAAzB;AAAAA,IAAA0B,SAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,EAAAA,IASIxC,GAJFqC,IAAA3B,MAAAW,SAAA,YAAAX,GAMF+B,KALE5B,MAAAQ,SAAA,YAAAR,OAKuB,SAObE,IAAAsB,MAAY,YAAZ,cAAA,QAGEd,IAAAc,MAAY,YAAaI,IAAA,QAAA,QAAzB,OAGChB,IAAAgB,IAAA,oBAAApB,QACHK,IAAAa,IAAA,YAAA,WAGMZ,IAAAY,IAAA,aAAA;AAA6B,MAAAG;AAAA,EAAAxC,SAAAyB,KADnCe,IAAA;AAAA,IAAAC,YACMhB;AAAAA,EAAAA,GACbzB,OAAAyB,GAAAzB,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAA0C;AAAA,EAAA1C,EAAA,CAAA,MAAA+B,KAAA/B,SAAAsC,KAGAI,IAAAX,KACC,gBAAAtB,EAACkC,GAAA,EACS,SAAA,gBACH,MAAA,QACL,UAAA,IACG,IAAA,MACIZ,OAAAA,GACE,SAAAa,CAAAA,MAAA;AACPA,IAAAA,EAACC,gBAAAA,GACDP,IAAAA;AAAAA,EAAmB,GAEb,QAAAA,IAAA,YAAA,WACA,QAAA;AAAA,IAAAQ,gBACUR,IAAA,cAAA;AAAA,IAAsCS,OAC/CT,IAAA,iBAAA;AAAA,EAAA,GAGRP,UAAAA,GACH,GACD/B,OAAA+B,GAAA/B,OAAAsC,GAAAtC,OAAA0C,KAAAA,IAAA1C,EAAA,CAAA;AACyB,QAAAgD,IAAA,IAAIhB,CAAS;AAAE,MAAAiB;AAAA,EAAAjD,SAAAgD,KAAzCC,IAAA,gBAAAxC,EAACkC,GAAA,EAAW,OAAA,cAAcK,UAAAA,GAAgB,GAAOhD,OAAAgD,GAAAhD,OAAAiD,KAAAA,IAAAjD,EAAA,CAAA;AACzB,QAAAkD,IAAA,IAAIjB,CAAS;AAAE,MAAAkB;AAAA,EAAAnD,SAAAkD,KAAvCC,IAAA,gBAAA1C,EAACkC,GAAA,EAAW,OAAA,YAAYO,UAAAA,GAAgB,GAAOlD,OAAAkD,GAAAlD,OAAAmD,KAAAA,IAAAnD,EAAA,CAAA;AAAA,MAAAoD;AAAA,SAAApD,EAAA,CAAA,MAAAkC,KAAAlC,UAAAqC,KAAArC,EAAA,EAAA,MAAAiD,KAAAjD,UAAAmD,KAAAnD,EAAA,EAAA,MAAAa,KAAAb,UAAAqB,KAAArB,EAAA,EAAA,MAAAuB,KAAAvB,EAAA,EAAA,MAAAwB,KAAAxB,EAAA,EAAA,MAAAwC,KAAAxC,UAAA0C,KAvCjDU,sBAACT,GAAA,EACS,SAAA,eACG,YAAA,UACN,KAAA,OACG,QAAA9B,GACI,aAAA,gBACN,OAAA,YACI,UAAAQ,GACD,UAAA,OACI,cAAA,MACF,WAAAE,GACH,QAAAC,GACCa,SAAAA,GACD,QAAAG,GAIPN,UAAAA;AAAAA,IAAAA;AAAAA,IACAQ;AAAAA,IAoBDO;AAAAA,IACAE;AAAAA,EAAAA,GACF,GAAOnD,OAAAkC,GAAAlC,QAAAqC,GAAArC,QAAAiD,GAAAjD,QAAAmD,GAAAnD,QAAAa,GAAAb,QAAAqB,GAAArB,QAAAuB,GAAAvB,QAAAwB,GAAAxB,QAAAwC,GAAAxC,QAAA0C,GAAA1C,QAAAoD,KAAAA,IAAApD,EAAA,EAAA,GAxCPoD;AAwCO,GCnELC,IAAoB,cACpBC,IAAoB,aACpBC,IAAoB,KA6BpBC,IAAwC;AAAA,EAC5CC,IAAI;AAAA,EACJC,KAAK;AAAA,EACLC,IAAI;AAAA,EACJlD,KAAK;AAAA,EACLmD,MAAM;AAAA,EACNC,IAAI;AAAA,EACJC,IAAI;AAAA,EACJC,IAAI;AAAA,EACJC,IAAI;AAAA,EACJC,KAAK;AAAA,EACLC,MAAM;AAAA,EACNC,IAAI;AAAA,EACJC,KAAK;AAAA,EACLC,MAAM;AACR,GAEMC,IAAeA,CAACC,OACHA,EAAKC,MAAM,OAAO,EAAEC,SAASF,GACzBC,MAAM,GAAG,EAAEC,IAAAA,GAEpBC,YAAAA,GAGDC,IAAsBA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,SAAAA;AAAAA,EAASC,SAAAA;AAAkC,MAAM;AAC/F,MAAIF;AACF,WAAOA;AAGT,QAAMG,IAAYT,EAAaQ,KAAWD,KAAW,EAAE;AAEvD,SAAKE,IAIEvB,EAAcuB,CAAS,KAAK,cAH1B;AAIX,GAKMC,wBAAYC,IAAAA,GAEZC,IAAcA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,UAAAA;AAAAA,EAAUR,UAAAA;AAAAA,EAAUC,SAAAA;AAAAA,EAASC,SAAAA;AAAgC,MAC5F,CAACK,GAAUC,GAAUR,KAAY,IAAIC,KAAW,IAAIC,KAAW,EAAE,EAAEO,KAAK,IAAI,GAMxEC,IAAoBA,CAACC,MAAoB;AAC7C,QAAMC,IAAQD,EAAMF,KAAK;AAAA,CAAI,EAAEb,MAAM;AAAA,CAAI;AACzC,MAAIiB,IAAqB,GACrBC,IAAmB,GACnBC,IAAW,GACXC,IAAS,IACTC,IAAiB,GACjBC,IAAiB;AAErB,QAAMC,IAAaA,MAAM;AACvBN,IAAAA,KAAsBI,IAAiBC,GACvCJ,KAAoBM,KAAKC,IAAIJ,GAAgBC,CAAc,GAC3DD,IAAiB,GACjBC,IAAiB;AAAA,EACnB;AAEA,aAAWI,KAAQV;AACjB,IAAIU,EAAKC,WAAW,IAAI,KACtBJ,EAAAA,GACAJ,KAAY,GACZC,IAAS,MACCA,MAEDM,EAAKC,WAAW,GAAG,IAC5BN,KAAkB,IACTK,EAAKC,WAAW,GAAG,IAC5BL,KAAkB,IACTI,EAAKC,WAAW,GAAG,MAC5BJ,EAAAA,GACAN,KAAsB,GACtBC,KAAoB;AAGxBK,SAAAA,EAAAA,GAEO;AAAA,IAAEN,oBAAAA;AAAAA,IAAoBC,kBAAAA;AAAAA,IAAkBC,UAAAA;AAAAA,EAAAA;AACjD,GAEMS,IAAsBA,CAAC;AAAA,EAAEjB,UAAAA;AAAAA,EAAUC,UAAAA;AAAAA,EAAUR,UAAAA;AAAAA,EAAUC,SAAAA;AAAAA,EAASC,SAAAA;AAAgC,MAAM;AAC1G,QAAMuB,IAAcxB,KAAWC,KAAWzB,GACpCiD,IAAcxB,KAAWD,KAAWvB,GACpCiD,IAAe5B,EAAoB;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,SAAAA;AAAAA,IAASC,SAAAA;AAAAA,EAAAA,CAAS,GAKjE0B,IAAWC,EAAiBJ,GAAalB,GAAUmB,GAAalB,GAAUmB,GAAcA,GAAc;AAAA,IAC1GG,SAAS;AAAA,EAAA,CACV;AAED,SAAO;AAAA,IACLC,SAAS;AAAA,MACP5E,UAAUsE;AAAAA,MACVO,UAAUL;AAAAA,MACVM,SAAS1B;AAAAA,IAAAA;AAAAA,IAEX2B,SAAS;AAAA,MACP/E,UAAUuE;AAAAA,MACVM,UAAUL;AAAAA,MACVM,SAASzB;AAAAA,IAAAA;AAAAA,IAEXG,OAAOiB,EAASO;AAAAA,IAChB,GAAGzB,EAAkBkB,EAASO,SAAS;AAAA,EAAA;AAE3C,GAEaC,IAAoBA,CAACC,MAAqD;AACrF,QAAMC,IAAMhC,EAAY+B,CAAK,GACvBE,IAASnC,EAAMoC,IAAIF,CAAG;AAC5B,MAAIC,EAAQ,QAAOA;AAEnB,QAAME,IAAOjB,EAAoBa,CAAK;AAEtC,MAAIjC,EAAM5C,QAAQmB,GAAmB;AACnC,UAAM+D,IAAStC,EAAMuC,KAAAA,EAAOC,OAAOC;AACnC,IAAIH,MAAWnG,UAAW6D,EAAM0C,OAAOJ,CAAM;AAAA,EAC/C;AACAtC,SAAAA,EAAM2C,IAAIT,GAAKG,CAAI,GAEZA;AACT,GC3IMO,IAA2BA,CAACC,GAA0BL,MAC1DK,EAAQ1C,aAAaqC,EAAKrC,YAC1B0C,EAAQzC,aAAaoC,EAAKpC,YAC1ByC,EAAQjD,aAAa4C,EAAK5C,YAC1BiD,EAAQhD,YAAY2C,EAAK3C,WACzBgD,EAAQ/C,YAAY0C,EAAK1C,SAEdgD,IAA6BA,CACxCD,GACAZ,GACAc,MAEIF,KAAWD,EAAyBC,EAAQZ,OAAOA,CAAK,IACnDY,IAGF;AAAA,EACLZ,OAAAA;AAAAA,EACAI,MAAMU,EAAAA;AAAW;AAId,SAASC,GAAWlI,GAAwB;AACjD,QAAM;AAAA,IAAEqF,UAAAA;AAAAA,IAAUC,UAAAA;AAAAA,IAAUR,UAAAA;AAAAA,IAAUC,SAAAA;AAAAA,IAASC,SAAAA;AAAAA,IAASmD,YAAAA,IAAa;AAAA,IAAOC,eAAAA,IAAgB;AAAA,IAAMb,MAAAA;AAAAA,EAAAA,IAASvH,GACrGqI,IAAeC,EAAmC,IAAI,GACtDnB,IAAQ;AAAA,IAAE9B,UAAAA;AAAAA,IAAUC,UAAAA;AAAAA,IAAUR,UAAAA;AAAAA,IAAUC,SAAAA;AAAAA,IAASC,SAAAA;AAAAA,EAAAA;AAEvDqD,EAAAA,EAAaN,UAAUC,EACrBK,EAAaN,SACbZ,GACA,MACEI,KACAL,EAAkB;AAAA,IAChB7B,UAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAR,UAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,SAAAA;AAAAA,EAAAA,CACD,CACL;AAEA,QAAMuD,IAAOJ,IAAaK,EAAaC,QAAQD,EAAaE;AAE5D,2BACGC,GAAA,EACC,QAAO,QACP,OAAM,QACN,UAAS,YACT,QAAO,KACP,UAAUP,IAAgB,WAAW,QACrC,IAAG,MACH,KAAK;AAAA,IACH,mFAAmF;AAAA,MACjFzF,YAAY;AAAA,IAAA;AAAA,IAEd,eAAe;AAAA,MACbiG,QAAQ;AAAA,MACRC,cAAc;AAAA,IAAA;AAAA,IAEhB,sBAAsB;AAAA,MACpBC,UAAU;AAAA,IAAA;AAAA,EACZ,GAGF,UAAA,gBAAAnI;AAAA,IAACoI;AAAA,IAAA;AAAA,MACC,MAAMV,EAAaN,QAAQR;AAAAA,MAC3B,cAAcgB;AAAAA,MACd,eAAc;AAAA,MACd,mBAAmB;AAAA,MAInB,cAAc;AAAA,MACd,kBAAkB;AAAA,IAAA;AAAA,EAAA,GAEtB;AAEJ;AC9FO,MAAMS,KAAQlJ,EAAMC,WAAyC,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAa,GAAAV,GAAAW;AAAA,EAAAhB,SAAAF,KAClE;AAAA,IAAAI,UAAAA;AAAAA,IAAAa,YAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAA,GAAAX;AAAAA,EAAAA,IAAmDP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAe,GAAAf,OAAAK,GAAAL,OAAAgB,MAAAd,IAAAF,EAAA,CAAA,GAAAe,IAAAf,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAgB,IAAAhB,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,EAAA,CAAA,MAAAe,KAAAf,SAAAD,KAIrDS,2CAAuCT,KAAAA,GAAG,GAAMgB,GAAU,GAAIf,OAAAe,GAAAf,OAAAD,GAAAC,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,EAAA,CAAA,MAAA+I,uBAAAC,IAAA,2BAAA,KAC9DrI,IAAA,gBAAAF,EAAAwI,EAAA,eAAA,CAAA,CAAA,GAAkCjJ,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,SAAAE,KACjCW,IAAAX,IAAW,gBAAAO,EAAAwI,EAAA,UAAA,eAAqC,IAAhD,MAAmFjJ,OAAAE,GAAAF,QAAAa,KAAAA,IAAAb,EAAA,EAAA;AAAA,MAAAqB;AAAA,SAAArB,EAAA,EAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAgB,KAAAhB,EAAA,EAAA,MAAAQ,KAAAR,UAAAa,KAHtFQ,gCAA4BL,KAAAA,MAAaX,GACvCG,UAAAA;AAAAA,IAAAA;AAAAA,IACAG;AAAAA,IACCE;AAAAA,EAAAA,GACH,GAAwBb,QAAAK,GAAAL,QAAAgB,GAAAhB,QAAAQ,GAAAR,QAAAa,GAAAb,QAAAqB,KAAAA,IAAArB,EAAA,EAAA,GAJxBqB;AAIwB,CAE3B,GAEY6H,KAAaD,EAAiBE;"}
|