@mastra/playground-ui 58.0.0-alpha.2 → 58.0.0-alpha.4
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/{code-DhrdtZce.cjs → code-B-x-9sJ1.cjs} +16 -4
- package/dist/code-B-x-9sJ1.cjs.map +1 -0
- package/dist/{code-D4Vw_fYq.js → code-BeWhOFT4.js} +16 -4
- package/dist/code-BeWhOFT4.js.map +1 -0
- package/dist/{code-block-BD2N5Yi2.js → code-block-C4caeNBi.js} +2 -2
- package/dist/{code-block-BD2N5Yi2.js.map → code-block-C4caeNBi.js.map} +1 -1
- package/dist/{code-block-fI67m2KV.cjs → code-block-il1MzQTs.cjs} +2 -2
- package/dist/{code-block-fI67m2KV.cjs.map → code-block-il1MzQTs.cjs.map} +1 -1
- package/dist/{code-diff-BHZTS4Zh.js → code-diff-Hao35skN.js} +2 -2
- package/dist/{code-diff-BHZTS4Zh.js.map → code-diff-Hao35skN.js.map} +1 -1
- package/dist/{code-editor-C-0srcj0.js → code-editor-BTxx6wLT.js} +4 -4
- package/dist/{code-editor-C-0srcj0.js.map → code-editor-BTxx6wLT.js.map} +1 -1
- package/dist/{code-editor-CFu_BYpQ.cjs → code-editor-LgrhXmOy.cjs} +3 -3
- package/dist/{code-editor-CFu_BYpQ.cjs.map → code-editor-LgrhXmOy.cjs.map} +1 -1
- package/dist/components/Code.cjs.js +1 -1
- package/dist/components/Code.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeDiff.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +2 -78
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +2 -78
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataList.cjs.js +5 -5
- package/dist/components/DataList.es.js +5 -5
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +125 -11
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +120 -1
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +2 -2
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +3 -3
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/ThemeProvider.es.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/Workflow.cjs.js +5 -5
- package/dist/components/Workflow.cjs.js.map +1 -1
- package/dist/components/Workflow.es.js +5 -5
- package/dist/components/Workflow.es.js.map +1 -1
- package/dist/components/ai/chat-event.cjs.js +1 -1
- package/dist/components/ai/chat-event.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/data-code-section-Cth9zVkj.js +199 -0
- package/dist/data-code-section-Cth9zVkj.js.map +1 -0
- package/dist/{data-code-section-DzLc9O0B.cjs → data-code-section-DE4AgaTU.cjs} +44 -210
- package/dist/data-code-section-DE4AgaTU.cjs.map +1 -0
- package/dist/{data-list-DXjH5wkB.js → data-list-DisTjDHP.js} +3 -3
- package/dist/{data-list-DXjH5wkB.js.map → data-list-DisTjDHP.js.map} +1 -1
- package/dist/{data-list-CH3HAhK5.cjs → data-list-PwFpP_mo.cjs} +3 -3
- package/dist/{data-list-CH3HAhK5.cjs.map → data-list-PwFpP_mo.cjs.map} +1 -1
- package/dist/{data-list-skeleton-K_WmrVke.cjs → data-list-skeleton-CjwR0o3w.cjs} +2 -2
- package/dist/{data-list-skeleton-K_WmrVke.cjs.map → data-list-skeleton-CjwR0o3w.cjs.map} +1 -1
- package/dist/{data-list-skeleton-h4pILqCC.js → data-list-skeleton-DAfM8AjW.js} +2 -2
- package/dist/{data-list-skeleton-h4pILqCC.js.map → data-list-skeleton-DAfM8AjW.js.map} +1 -1
- package/dist/{data-list-spacer-BQ4_YeyT.js → data-list-spacer-BmorAN0V.js} +2 -2
- package/dist/{data-list-spacer-BQ4_YeyT.js.map → data-list-spacer-BmorAN0V.js.map} +1 -1
- package/dist/{data-list-spacer-GIVW2hB1.cjs → data-list-spacer-DEcgVGFM.cjs} +2 -2
- package/dist/{data-list-spacer-GIVW2hB1.cjs.map → data-list-spacer-DEcgVGFM.cjs.map} +1 -1
- package/dist/{data-list-top-LiaWUw5P.js → data-list-top-DpbOA3uw.js} +2 -2
- package/dist/data-list-top-DpbOA3uw.js.map +1 -0
- package/dist/{data-list-top-B-gb-FY6.cjs → data-list-top-WGUY167p.cjs} +2 -2
- package/dist/data-list-top-WGUY167p.cjs.map +1 -0
- package/dist/{data-panel-CPZ2GuZN.js → data-panel-BQVTKo86.js} +2 -2
- package/dist/{data-panel-CPZ2GuZN.js.map → data-panel-BQVTKo86.js.map} +1 -1
- package/dist/{data-panel-CIu6JToM.cjs → data-panel-XPXrhYJI.cjs} +2 -2
- package/dist/{data-panel-CIu6JToM.cjs.map → data-panel-XPXrhYJI.cjs.map} +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +118 -0
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -0
- package/dist/domains/logs/components/log-data-panel.d.ts +2 -0
- package/dist/domains/logs/components/log-data-panel.es.js +114 -0
- package/dist/domains/logs/components/log-data-panel.es.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +4 -4
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +4 -4
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/logs/components.cjs.js +2 -4
- package/dist/domains/logs/components.cjs.js.map +1 -1
- package/dist/domains/logs/components.es.js +1 -2
- package/dist/domains/logs/components.es.js.map +1 -1
- package/dist/domains/logs.cjs.js +2 -4
- package/dist/domains/logs.cjs.js.map +1 -1
- package/dist/domains/logs.es.js +1 -2
- package/dist/domains/logs.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
- package/dist/filter-bar-chip.css +34 -14
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/{logs-data-list-XU1hCwI5.js → logs-data-list-5BAeLU57.js} +11 -11
- package/dist/logs-data-list-5BAeLU57.js.map +1 -0
- package/dist/{logs-data-list-BGJTRyO_.cjs → logs-data-list-YL9yLKF3.cjs} +11 -11
- package/dist/logs-data-list-YL9yLKF3.cjs.map +1 -0
- package/dist/{main-sidebar-BEXzGkDX.js → main-sidebar-link-active-C9QPj3D6.js} +6 -118
- package/dist/main-sidebar-link-active-C9QPj3D6.js.map +1 -0
- package/dist/{main-sidebar-jbUd9Rz8.cjs → main-sidebar-link-active-UEuukSeT.cjs} +4 -117
- package/dist/main-sidebar-link-active-UEuukSeT.cjs.map +1 -0
- package/dist/{markdown-renderer-BBYgxsXL.js → markdown-renderer-Ces7VyRK.js} +2 -2
- package/dist/{markdown-renderer-BBYgxsXL.js.map → markdown-renderer-Ces7VyRK.js.map} +1 -1
- package/dist/{markdown-renderer-Du_Zd1T-.cjs → markdown-renderer-DtH58325.cjs} +2 -2
- package/dist/{markdown-renderer-Du_Zd1T-.cjs.map → markdown-renderer-DtH58325.cjs.map} +1 -1
- package/dist/new/sidebar.cjs.js +32 -32
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +2 -2
- package/dist/{span-payload-primitives-CzLh6axt.js → span-payload-primitives-Buq9V8nK.js} +2 -2
- package/dist/{span-payload-primitives-CzLh6axt.js.map → span-payload-primitives-Buq9V8nK.js.map} +1 -1
- package/dist/{span-payload-primitives-KEXwIaeZ.cjs → span-payload-primitives-CjlNH9C-.cjs} +2 -2
- package/dist/{span-payload-primitives-KEXwIaeZ.cjs.map → span-payload-primitives-CjlNH9C-.cjs.map} +1 -1
- package/dist/src/domains/logs/components/index.d.ts +1 -2
- package/dist/src/domains/logs/components/log-data-panel.d.ts +12 -0
- package/dist/src/ds/components/Code/code.d.ts +3 -1
- package/dist/src/ds/components/DataList/shared.d.ts +2 -2
- package/dist/style.css +50 -36
- package/dist/{theme-provider-C9ih9jSS.js → theme-provider-CQKmlkHX.js} +2 -2
- package/dist/{theme-provider-C9ih9jSS.js.map → theme-provider-CQKmlkHX.js.map} +1 -1
- package/dist/{traces-data-list-DLeKSbaZ.cjs → traces-data-list-Dam8-XW-.cjs} +4 -4
- package/dist/{traces-data-list-DLeKSbaZ.cjs.map → traces-data-list-Dam8-XW-.cjs.map} +1 -1
- package/dist/{traces-data-list-Cjy5a-1f.js → traces-data-list-Dvi0s56v.js} +4 -4
- package/dist/{traces-data-list-Cjy5a-1f.js.map → traces-data-list-Dvi0s56v.js.map} +1 -1
- package/package.json +6 -6
- package/dist/code-D4Vw_fYq.js.map +0 -1
- package/dist/code-DhrdtZce.cjs.map +0 -1
- package/dist/data-code-section-C75shCII.js +0 -365
- package/dist/data-code-section-C75shCII.js.map +0 -1
- package/dist/data-code-section-DzLc9O0B.cjs.map +0 -1
- package/dist/data-list-top-B-gb-FY6.cjs.map +0 -1
- package/dist/data-list-top-LiaWUw5P.js.map +0 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +0 -131
- package/dist/domains/logs/components/log-details-view.cjs.js.map +0 -1
- package/dist/domains/logs/components/log-details-view.d.ts +0 -2
- package/dist/domains/logs/components/log-details-view.es.js +0 -127
- package/dist/domains/logs/components/log-details-view.es.js.map +0 -1
- package/dist/domains/logs/components/logs-layout.cjs.js +0 -36
- package/dist/domains/logs/components/logs-layout.cjs.js.map +0 -1
- package/dist/domains/logs/components/logs-layout.d.ts +0 -2
- package/dist/domains/logs/components/logs-layout.es.js +0 -32
- package/dist/domains/logs/components/logs-layout.es.js.map +0 -1
- package/dist/logs-data-list-BGJTRyO_.cjs.map +0 -1
- package/dist/logs-data-list-XU1hCwI5.js.map +0 -1
- package/dist/main-sidebar-BEXzGkDX.js.map +0 -1
- package/dist/main-sidebar-jbUd9Rz8.cjs.map +0 -1
- package/dist/src/domains/logs/components/log-details-view.d.ts +0 -12
- package/dist/src/domains/logs/components/logs-layout.d.ts +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideDialog.cjs.js","sources":["../../src/ds/components/SideDialog/side-dialog-code-section.tsx","../../src/ds/components/SideDialog/side-dialog-content.tsx","../../src/ds/components/SideDialog/side-dialog-header.tsx","../../src/ds/components/SideDialog/side-dialog-heading.tsx","../../src/ds/components/SideDialog/side-dialog-nav.tsx","../../src/ds/components/SideDialog/side-dialog-root.tsx","../../src/ds/components/SideDialog/side-dialog-top.tsx","../../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-body text-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["draculaInit","t","EditorView","HighlightStyle","syntaxHighlighting","useTheme","useMemo","useState","Section","jsxs","ButtonsGroup","jsx","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","raisedSurfaceStyle","json","DrawerInteractive","cn","ArrowUpIcon","ArrowDownIcon","React","Drawer","DrawerPortal","DrawerBackdrop","DrawerViewport","DrawerPopup","DrawerTitle","DrawerDescription","DrawerClose","transitions","ChevronsRightIcon","PortalContainerProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SideDialog.cjs.js","sources":["../../src/ds/components/SideDialog/side-dialog-code-section.tsx","../../src/ds/components/SideDialog/side-dialog-content.tsx","../../src/ds/components/SideDialog/side-dialog-header.tsx","../../src/ds/components/SideDialog/side-dialog-heading.tsx","../../src/ds/components/SideDialog/side-dialog-nav.tsx","../../src/ds/components/SideDialog/side-dialog-root.tsx","../../src/ds/components/SideDialog/side-dialog-top.tsx","../../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-body text-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["draculaInit","t","EditorView","HighlightStyle","syntaxHighlighting","useTheme","useMemo","useState","Section","jsxs","ButtonsGroup","jsx","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","raisedSurfaceStyle","ReactCodeMirror","json","DrawerInteractive","cn","ArrowUpIcon","ArrowDownIcon","React","Drawer","DrawerPortal","DrawerBackdrop","DrawerViewport","DrawerPopup","DrawerTitle","DrawerDescription","DrawerClose","transitions","ChevronsRightIcon","PortalContainerProvider"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { HighlightStyle, syntaxHighlighting } from '@codemirror/language';
|
|
|
4
4
|
import { EditorView } from '@codemirror/view';
|
|
5
5
|
import { tags } from '@lezer/highlight';
|
|
6
6
|
import { draculaInit } from '@uiw/codemirror-theme-dracula';
|
|
7
|
-
import
|
|
7
|
+
import CodeMirror from '@uiw/react-codemirror';
|
|
8
8
|
import { AlignLeftIcon, AlignJustifyIcon, ArrowUpIcon, ArrowDownIcon, ChevronsRightIcon } from 'lucide-react';
|
|
9
9
|
import * as React from 'react';
|
|
10
10
|
import { useState, useMemo } from 'react';
|
|
@@ -12,7 +12,7 @@ import { B as Button } from '../Button-B8nF87ai.js';
|
|
|
12
12
|
import { B as ButtonsGroup } from '../buttons-group-DsZgrZBZ.js';
|
|
13
13
|
import { C as CopyButton } from '../copy-button-DcZ1mdw4.js';
|
|
14
14
|
import { S as Section } from '../section-B9OLuEq3.js';
|
|
15
|
-
import { u as useTheme } from '../theme-provider-
|
|
15
|
+
import { u as useTheme } from '../theme-provider-CQKmlkHX.js';
|
|
16
16
|
import { raisedSurfaceStyle } from '../primitives/raised-surface.es.js';
|
|
17
17
|
import { j as DrawerInteractive, D as Drawer, l as DrawerPortal, a as DrawerBackdrop, q as DrawerViewport, k as DrawerPopup, o as DrawerTitle, e as DrawerDescription, c as DrawerClose } from '../drawer-DZnqDb9H.js';
|
|
18
18
|
import { c as cn } from '../cn-65Adrsfj.js';
|
|
@@ -114,7 +114,7 @@ function SideDialogCodeSection({ codeStr = "", title, icon, simplified = false }
|
|
|
114
114
|
"div",
|
|
115
115
|
{
|
|
116
116
|
className: `${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`,
|
|
117
|
-
children: simplified ? /* @__PURE__ */ jsx("div", { className: "px-2 font-mono break-all text-muted-foreground", children: /* @__PURE__ */ jsx("pre", { className: "text-wrap", children: codeStr }) }) : /* @__PURE__ */ jsx(
|
|
117
|
+
children: simplified ? /* @__PURE__ */ jsx("div", { className: "px-2 font-mono break-all text-muted-foreground", children: /* @__PURE__ */ jsx("pre", { className: "text-wrap", children: codeStr }) }) : /* @__PURE__ */ jsx(CodeMirror, { extensions: [json(), EditorView.lineWrapping], theme, value: finalCodeStr })
|
|
118
118
|
}
|
|
119
119
|
)
|
|
120
120
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideDialog.es.js","sources":["../../src/ds/components/SideDialog/side-dialog-code-section.tsx","../../src/ds/components/SideDialog/side-dialog-content.tsx","../../src/ds/components/SideDialog/side-dialog-header.tsx","../../src/ds/components/SideDialog/side-dialog-heading.tsx","../../src/ds/components/SideDialog/side-dialog-nav.tsx","../../src/ds/components/SideDialog/side-dialog-root.tsx","../../src/ds/components/SideDialog/side-dialog-top.tsx","../../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-body text-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["t"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SideDialog.es.js","sources":["../../src/ds/components/SideDialog/side-dialog-code-section.tsx","../../src/ds/components/SideDialog/side-dialog-content.tsx","../../src/ds/components/SideDialog/side-dialog-header.tsx","../../src/ds/components/SideDialog/side-dialog-heading.tsx","../../src/ds/components/SideDialog/side-dialog-nav.tsx","../../src/ds/components/SideDialog/side-dialog-root.tsx","../../src/ds/components/SideDialog/side-dialog-top.tsx","../../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-body text-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["t","ReactCodeMirror"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as ThemeProvider, u as useTheme } from '../theme-provider-
|
|
1
|
+
export { T as ThemeProvider, u as useTheme } from '../theme-provider-CQKmlkHX.js';
|
|
2
2
|
//# sourceMappingURL=ThemeProvider.es.js.map
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Radio } from '@base-ui/react/radio';
|
|
3
3
|
import { RadioGroup } from '@base-ui/react/radio-group';
|
|
4
4
|
import { Monitor, Sun, Moon } from 'lucide-react';
|
|
5
|
-
import { u as useTheme } from '../theme-provider-
|
|
5
|
+
import { u as useTheme } from '../theme-provider-CQKmlkHX.js';
|
|
6
6
|
import { raisedSurfaceStyle } from '../primitives/raised-surface.es.js';
|
|
7
7
|
import { transitions } from '../primitives/transitions.es.js';
|
|
8
8
|
import { c as cn } from '../cn-65Adrsfj.js';
|
|
@@ -8,7 +8,7 @@ const lucideReact = require('lucide-react');
|
|
|
8
8
|
const Badge = require('../Badge-BEeYtjmv.cjs');
|
|
9
9
|
const Txt = require('../Txt-B4-2nLaI.cjs');
|
|
10
10
|
const utils_duration = require('../utils/duration.cjs.js');
|
|
11
|
-
const code = require('../code-
|
|
11
|
+
const code = require('../code-B-x-9sJ1.cjs');
|
|
12
12
|
const utils_formatting = require('../utils/formatting.cjs.js');
|
|
13
13
|
const copyButton = require('../copy-button-D2MTGxq_.cjs');
|
|
14
14
|
const primitives_raisedSurface = require('../primitives/raised-surface.cjs.js');
|
|
@@ -19,8 +19,8 @@ const shimmer = require('../shimmer-DbSkqomT.cjs');
|
|
|
19
19
|
const langJavascript = require('@codemirror/lang-javascript');
|
|
20
20
|
const langJson = require('@codemirror/lang-json');
|
|
21
21
|
const view = require('@codemirror/view');
|
|
22
|
-
const
|
|
23
|
-
const codeEditor = require('../code-editor-
|
|
22
|
+
const CodeMirror = require('@uiw/react-codemirror');
|
|
23
|
+
const codeEditor = require('../code-editor-LgrhXmOy.cjs');
|
|
24
24
|
const Button = require('../Button-BAMnPqos.cjs');
|
|
25
25
|
const dialog = require('../dialog-Vvcjm0rZ.cjs');
|
|
26
26
|
const react = require('@xyflow/react');
|
|
@@ -675,7 +675,7 @@ const WorkflowCodeContent = ({
|
|
|
675
675
|
const content = JSON.stringify(data, null, 2);
|
|
676
676
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative overflow-auto", style: { maxHeight: 500 }, children: [
|
|
677
677
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-2 right-2 z-10 rounded-full bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(copyButton.CopyButton, { content }) }),
|
|
678
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg bg-muted p-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
678
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg bg-muted p-4", children: /* @__PURE__ */ jsxRuntime.jsx(CodeMirror, { value: content, theme, extensions: [langJson.jsonLanguage, view.EditorView.lineWrapping] }) })
|
|
679
679
|
] });
|
|
680
680
|
}
|
|
681
681
|
const extensions = getExtensions(data);
|
|
@@ -687,7 +687,7 @@ const WorkflowCodeContent = ({
|
|
|
687
687
|
}
|
|
688
688
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative overflow-auto", style: { maxHeight: 500 }, children: [
|
|
689
689
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-2 right-2 z-10 rounded-full bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(copyButton.CopyButton, { content: data }) }),
|
|
690
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg bg-muted p-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
690
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg bg-muted p-4", children: /* @__PURE__ */ jsxRuntime.jsx(CodeMirror, { value: displayContent, theme, extensions }) })
|
|
691
691
|
] });
|
|
692
692
|
};
|
|
693
693
|
|