@mastra/playground-ui 59.0.0 → 60.0.0-alpha.1
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/ErrorBoundary-CTN7Nxd7.cjs +183 -0
- package/dist/ErrorBoundary-CTN7Nxd7.cjs.map +1 -0
- package/dist/ErrorBoundary-CiKNMCFG.js +162 -0
- package/dist/ErrorBoundary-CiKNMCFG.js.map +1 -0
- package/dist/alert-dialog-C21QCl3B.js +107 -0
- package/dist/alert-dialog-C21QCl3B.js.map +1 -0
- package/dist/alert-dialog-Ohr1b6-O.cjs +128 -0
- package/dist/alert-dialog-Ohr1b6-O.cjs.map +1 -0
- package/dist/{code-diff-Hao35skN.js → code-diff-BgmXIX2v.js} +2 -2
- package/dist/{code-diff-Hao35skN.js.map → code-diff-BgmXIX2v.js.map} +1 -1
- package/dist/{code-diff-CG8veSa-.cjs → code-diff-yR3Gan2m.cjs} +2 -2
- package/dist/{code-diff-CG8veSa-.cjs.map → code-diff-yR3Gan2m.cjs.map} +1 -1
- package/dist/{code-editor-LgrhXmOy.cjs → code-editor-BYGlHRhb.cjs} +2 -2
- package/dist/{code-editor-LgrhXmOy.cjs.map → code-editor-BYGlHRhb.cjs.map} +1 -1
- package/dist/{code-editor-BTxx6wLT.js → code-editor-DMNGyqvg.js} +3 -3
- package/dist/{code-editor-BTxx6wLT.js.map → code-editor-DMNGyqvg.js.map} +1 -1
- package/dist/{combobox-D_kmwSKS.js → combobox-BOVQDVmX.js} +3 -2
- package/dist/{combobox-D_kmwSKS.js.map → combobox-BOVQDVmX.js.map} +1 -1
- package/dist/{combobox-B19HJqE-.cjs → combobox-DqDTf4r9.cjs} +4 -3
- package/dist/{combobox-B19HJqE-.cjs.map → combobox-DqDTf4r9.cjs.map} +1 -1
- package/dist/{command-DhiJvyMM.js → command-DRbgHO90.js} +2 -2
- package/dist/{command-DhiJvyMM.js.map → command-DRbgHO90.js.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +2 -122
- package/dist/components/AlertDialog.cjs.js.map +1 -1
- package/dist/components/AlertDialog.es.js +1 -106
- package/dist/components/AlertDialog.es.js.map +1 -1
- package/dist/components/CodeDiff.cjs.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/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +3 -2
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +2 -1
- package/dist/components/Comment.es.js.map +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +1 -1
- package/dist/components/DateTimePicker.es.js +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +3 -179
- package/dist/components/Dialog.cjs.js.map +1 -1
- package/dist/components/Dialog.es.js +2 -183
- package/dist/components/Dialog.es.js.map +1 -1
- package/dist/components/EntityHeader.cjs.js +3 -15
- package/dist/components/EntityHeader.cjs.js.map +1 -1
- package/dist/components/EntityHeader.es.js +1 -17
- package/dist/components/EntityHeader.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +8 -7
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +2 -1
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/ErrorBoundary.cjs.js +2 -177
- package/dist/components/ErrorBoundary.cjs.js.map +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -161
- package/dist/components/ErrorBoundary.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +8 -52
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +8 -52
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +3 -112
- package/dist/components/RelativeTimestamp.cjs.js.map +1 -1
- package/dist/components/RelativeTimestamp.es.js +1 -114
- package/dist/components/RelativeTimestamp.es.js.map +1 -1
- package/dist/components/SideDialog.cjs.js +2 -288
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +1 -273
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/Text.cjs.js +4 -22
- package/dist/components/Text.cjs.js.map +1 -1
- package/dist/components/Text.es.js +2 -24
- package/dist/components/Text.es.js.map +1 -1
- package/dist/components/ThemeProvider.cjs.js +1 -1
- package/dist/components/ThemeProvider.es.js +1 -1
- package/dist/components/ThemeToggle.cjs.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +8 -74
- package/dist/components/ThreadList.cjs.js.map +1 -1
- package/dist/components/ThreadList.es.js +1 -71
- package/dist/components/ThreadList.es.js.map +1 -1
- package/dist/components/Workflow.cjs.js +37 -1183
- package/dist/components/Workflow.cjs.js.map +1 -1
- package/dist/components/Workflow.es.js +9 -1159
- package/dist/components/Workflow.es.js.map +1 -1
- package/dist/components/ai/tool-call.cjs.js +4 -4
- package/dist/components/ai/tool-call.cjs.js.map +1 -1
- package/dist/components/ai/tool-call.es.js +6 -6
- package/dist/components/ai/tool-call.es.js.map +1 -1
- package/dist/custom-auto-form-field-Brfb-0Te.cjs +111 -0
- package/dist/custom-auto-form-field-Brfb-0Te.cjs.map +1 -0
- package/dist/custom-auto-form-field-yEMBGXu-.js +107 -0
- package/dist/custom-auto-form-field-yEMBGXu-.js.map +1 -0
- package/dist/{data-code-section-C9z94ytx.cjs → data-code-section-CxEMQMUi.cjs} +2 -2
- package/dist/{data-code-section-C9z94ytx.cjs.map → data-code-section-CxEMQMUi.cjs.map} +1 -1
- package/dist/{data-code-section-BKrCkj90.js → data-code-section-aexzJIaJ.js} +3 -3
- package/dist/{data-code-section-BKrCkj90.js.map → data-code-section-aexzJIaJ.js.map} +1 -1
- package/dist/{data-panel-C_BqhzeL.cjs → data-panel-Bq23Kt2W.cjs} +2 -2
- package/dist/{data-panel-C_BqhzeL.cjs.map → data-panel-Bq23Kt2W.cjs.map} +1 -1
- package/dist/{data-panel-BWgExbHs.js → data-panel-D5ruDXyN.js} +2 -2
- package/dist/{data-panel-BWgExbHs.js.map → data-panel-D5ruDXyN.js.map} +1 -1
- package/dist/{date-time-range-picker-Bnviv7s-.js → date-time-range-picker-D2OD8zbg.js} +3 -2
- package/dist/{date-time-range-picker-Bnviv7s-.js.map → date-time-range-picker-D2OD8zbg.js.map} +1 -1
- package/dist/{date-time-range-picker-sT5qAW-_.cjs → date-time-range-picker-DRKmikCe.cjs} +4 -3
- package/dist/{date-time-range-picker-sT5qAW-_.cjs.map → date-time-range-picker-DRKmikCe.cjs.map} +1 -1
- package/dist/{dialog-Dtfe1ylw.js → dialog-Cv6zdm5E.js} +2 -2
- package/dist/{dialog-Dtfe1ylw.js.map → dialog-Cv6zdm5E.js.map} +1 -1
- package/dist/dialog-action-B4qYw6Om.js +183 -0
- package/dist/dialog-action-B4qYw6Om.js.map +1 -0
- package/dist/dialog-action-PjKpfAWl.cjs +185 -0
- package/dist/dialog-action-PjKpfAWl.cjs.map +1 -0
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +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 +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +261 -0
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -0
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.d.ts +2 -0
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +257 -0
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -0
- package/dist/domains/datasets/components.cjs.js +10 -0
- package/dist/domains/datasets/components.cjs.js.map +1 -0
- package/dist/domains/datasets/components.d.ts +2 -0
- package/dist/domains/datasets/components.es.js +2 -0
- package/dist/domains/datasets/components.es.js.map +1 -0
- package/dist/domains/datasets/hooks/use-dataset-mutations.cjs.js +157 -0
- package/dist/domains/datasets/hooks/use-dataset-mutations.cjs.js.map +1 -0
- package/dist/domains/datasets/hooks/use-dataset-mutations.d.ts +2 -0
- package/dist/domains/datasets/hooks/use-dataset-mutations.es.js +153 -0
- package/dist/domains/datasets/hooks/use-dataset-mutations.es.js.map +1 -0
- package/dist/domains/datasets/hooks/use-datasets.cjs.js +55 -0
- package/dist/domains/datasets/hooks/use-datasets.cjs.js.map +1 -0
- package/dist/domains/datasets/hooks/use-datasets.d.ts +2 -0
- package/dist/domains/datasets/hooks/use-datasets.es.js +49 -0
- package/dist/domains/datasets/hooks/use-datasets.es.js.map +1 -0
- package/dist/domains/datasets/hooks.cjs.js +14 -0
- package/dist/domains/datasets/hooks.cjs.js.map +1 -0
- package/dist/domains/datasets/hooks.d.ts +2 -0
- package/dist/domains/datasets/hooks.es.js +3 -0
- package/dist/domains/datasets/hooks.es.js.map +1 -0
- package/dist/domains/datasets.cjs.js +16 -0
- package/dist/domains/datasets.cjs.js.map +1 -0
- package/dist/domains/datasets.d.ts +2 -0
- package/dist/domains/datasets.es.js +4 -0
- package/dist/domains/datasets.es.js.map +1 -0
- package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/observability/context/tracing-settings-context.cjs.js +28 -0
- package/dist/domains/observability/context/tracing-settings-context.cjs.js.map +1 -0
- package/dist/domains/observability/context/tracing-settings-context.d.ts +2 -0
- package/dist/domains/observability/context/tracing-settings-context.es.js +22 -0
- package/dist/domains/observability/context/tracing-settings-context.es.js.map +1 -0
- package/dist/domains/observability/hooks/use-tracing-settings-state.cjs.js +38 -0
- package/dist/domains/observability/hooks/use-tracing-settings-state.cjs.js.map +1 -0
- package/dist/domains/observability/hooks/use-tracing-settings-state.d.ts +2 -0
- package/dist/domains/observability/hooks/use-tracing-settings-state.es.js +34 -0
- package/dist/domains/observability/hooks/use-tracing-settings-state.es.js.map +1 -0
- package/dist/domains/request-context/components/request-context-label.cjs.js +39 -0
- package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -0
- package/dist/domains/request-context/components/request-context-label.d.ts +2 -0
- package/dist/domains/request-context/components/request-context-label.es.js +35 -0
- package/dist/domains/request-context/components/request-context-label.es.js.map +1 -0
- package/dist/domains/request-context/components/request-context-schema-form.cjs.js +53 -0
- package/dist/domains/request-context/components/request-context-schema-form.cjs.js.map +1 -0
- package/dist/domains/request-context/components/request-context-schema-form.d.ts +2 -0
- package/dist/domains/request-context/components/request-context-schema-form.es.js +49 -0
- package/dist/domains/request-context/components/request-context-schema-form.es.js.map +1 -0
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js +43 -0
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js.map +1 -0
- package/dist/domains/scores/components/score-as-item-dialog.d.ts +2 -0
- package/dist/domains/scores/components/score-as-item-dialog.es.js +39 -0
- package/dist/domains/scores/components/score-as-item-dialog.es.js.map +1 -0
- package/dist/domains/scores/components/score-data-panel.cjs.js +165 -0
- package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -0
- package/dist/domains/scores/components/score-data-panel.d.ts +2 -0
- package/dist/domains/scores/components/score-data-panel.es.js +161 -0
- package/dist/domains/scores/components/score-data-panel.es.js.map +1 -0
- package/dist/domains/scores/components/span-scoring.cjs.js +105 -0
- package/dist/domains/scores/components/span-scoring.cjs.js.map +1 -0
- package/dist/domains/scores/components/span-scoring.d.ts +2 -0
- package/dist/domains/scores/components/span-scoring.es.js +101 -0
- package/dist/domains/scores/components/span-scoring.es.js.map +1 -0
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +115 -0
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -0
- package/dist/domains/scores/components/trace-scores-tab.d.ts +2 -0
- package/dist/domains/scores/components/trace-scores-tab.es.js +111 -0
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -0
- package/dist/domains/scores/components.cjs.js +16 -0
- package/dist/domains/scores/components.cjs.js.map +1 -0
- package/dist/domains/scores/components.d.ts +2 -0
- package/dist/domains/scores/components.es.js +5 -0
- package/dist/domains/scores/components.es.js.map +1 -0
- package/dist/domains/scores/hooks/use-scorers.cjs.js +96 -0
- package/dist/domains/scores/hooks/use-scorers.cjs.js.map +1 -0
- package/dist/domains/scores/hooks/use-scorers.d.ts +2 -0
- package/dist/domains/scores/hooks/use-scorers.es.js +89 -0
- package/dist/domains/scores/hooks/use-scorers.es.js.map +1 -0
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js +30 -0
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js.map +1 -0
- package/dist/domains/scores/hooks/use-trace-span-scores.d.ts +2 -0
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js +25 -0
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js.map +1 -0
- package/dist/domains/scores/hooks/use-trigger-scorer.cjs.js +22 -0
- package/dist/domains/scores/hooks/use-trigger-scorer.cjs.js.map +1 -0
- package/dist/domains/scores/hooks/use-trigger-scorer.d.ts +2 -0
- package/dist/domains/scores/hooks/use-trigger-scorer.es.js +18 -0
- package/dist/domains/scores/hooks/use-trigger-scorer.es.js.map +1 -0
- package/dist/domains/scores/hooks.cjs.js +18 -0
- package/dist/domains/scores/hooks.cjs.js.map +1 -0
- package/dist/domains/scores/hooks.d.ts +2 -0
- package/dist/domains/scores/hooks.es.js +4 -0
- package/dist/domains/scores/hooks.es.js.map +1 -0
- package/dist/domains/scores.cjs.js +26 -0
- package/dist/domains/scores.cjs.js.map +1 -0
- package/dist/domains/scores.d.ts +2 -0
- package/dist/domains/scores.es.js +8 -0
- package/dist/domains/scores.es.js.map +1 -0
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-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-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 +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
- 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 +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +3 -3
- 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-columns-menu.cjs.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +3 -3
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
- 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/trace-time-range-chip.cjs.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +66 -0
- package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-combobox.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-combobox.es.js +62 -0
- package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +48 -0
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-entity-header.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-entity-header.es.js +44 -0
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-information.cjs.js +185 -0
- package/dist/domains/workflows/components/workflow-information.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-information.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-information.es.js +181 -0
- package/dist/domains/workflows/components/workflow-information.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-layout.cjs.js +99 -0
- package/dist/domains/workflows/components/workflow-layout.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-layout.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-layout.es.js +93 -0
- package/dist/domains/workflows/components/workflow-layout.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-request-context-dialog.cjs.js +53 -0
- package/dist/domains/workflows/components/workflow-request-context-dialog.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-request-context-dialog.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-request-context-dialog.es.js +49 -0
- package/dist/domains/workflows/components/workflow-request-context-dialog.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-run-options-dialog.cjs.js +46 -0
- package/dist/domains/workflows/components/workflow-run-options-dialog.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-run-options-dialog.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-run-options-dialog.es.js +42 -0
- package/dist/domains/workflows/components/workflow-run-options-dialog.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +40 -0
- package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-run-status-icon.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-run-status-icon.es.js +36 -0
- package/dist/domains/workflows/components/workflow-run-status-icon.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +49 -0
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-step-detail.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-step-detail.es.js +45 -0
- package/dist/domains/workflows/components/workflow-step-detail.es.js.map +1 -0
- package/dist/domains/workflows/components/workflow-tracing-run-options.cjs.js +75 -0
- package/dist/domains/workflows/components/workflow-tracing-run-options.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflow-tracing-run-options.d.ts +2 -0
- package/dist/domains/workflows/components/workflow-tracing-run-options.es.js +71 -0
- package/dist/domains/workflows/components/workflow-tracing-run-options.es.js.map +1 -0
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +33 -0
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.d.ts +2 -0
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +29 -0
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js.map +1 -0
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +248 -0
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflows-list/workflows-list.d.ts +2 -0
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +244 -0
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -0
- package/dist/domains/workflows/components/workflows-list/workflows-sort.cjs.js +17 -0
- package/dist/domains/workflows/components/workflows-list/workflows-sort.cjs.js.map +1 -0
- package/dist/domains/workflows/components/workflows-list/workflows-sort.d.ts +2 -0
- package/dist/domains/workflows/components/workflows-list/workflows-sort.es.js +13 -0
- package/dist/domains/workflows/components/workflows-list/workflows-sort.es.js.map +1 -0
- package/dist/domains/workflows/context/use-current-run.cjs.js +34 -0
- package/dist/domains/workflows/context/use-current-run.cjs.js.map +1 -0
- package/dist/domains/workflows/context/use-current-run.d.ts +2 -0
- package/dist/domains/workflows/context/use-current-run.es.js +30 -0
- package/dist/domains/workflows/context/use-current-run.es.js.map +1 -0
- package/dist/domains/workflows/context/use-local-run.cjs.js +30 -0
- package/dist/domains/workflows/context/use-local-run.cjs.js.map +1 -0
- package/dist/domains/workflows/context/use-local-run.d.ts +2 -0
- package/dist/domains/workflows/context/use-local-run.es.js +26 -0
- package/dist/domains/workflows/context/use-local-run.es.js.map +1 -0
- package/dist/domains/workflows/context/use-persisted-workflow-run.cjs.js +21 -0
- package/dist/domains/workflows/context/use-persisted-workflow-run.cjs.js.map +1 -0
- package/dist/domains/workflows/context/use-persisted-workflow-run.d.ts +2 -0
- package/dist/domains/workflows/context/use-persisted-workflow-run.es.js +17 -0
- package/dist/domains/workflows/context/use-persisted-workflow-run.es.js.map +1 -0
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +43 -0
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js.map +1 -0
- package/dist/domains/workflows/context/use-stream-for-run.d.ts +2 -0
- package/dist/domains/workflows/context/use-stream-for-run.es.js +39 -0
- package/dist/domains/workflows/context/use-stream-for-run.es.js.map +1 -0
- package/dist/domains/workflows/context/use-workflow-selected-step.cjs.js +13 -0
- package/dist/domains/workflows/context/use-workflow-selected-step.cjs.js.map +1 -0
- package/dist/domains/workflows/context/use-workflow-selected-step.d.ts +2 -0
- package/dist/domains/workflows/context/use-workflow-selected-step.es.js +9 -0
- package/dist/domains/workflows/context/use-workflow-selected-step.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-run-context.cjs.js +10 -0
- package/dist/domains/workflows/context/workflow-run-context.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-run-context.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-run-context.es.js +6 -0
- package/dist/domains/workflows/context/workflow-run-context.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js +202 -0
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-run-provider.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-run-provider.es.js +198 -0
- package/dist/domains/workflows/context/workflow-run-provider.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-selected-step-context-value.cjs.js +15 -0
- package/dist/domains/workflows/context/workflow-selected-step-context-value.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-selected-step-context-value.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-selected-step-context-value.es.js +11 -0
- package/dist/domains/workflows/context/workflow-selected-step-context-value.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-selected-step-context.cjs.js +20 -0
- package/dist/domains/workflows/context/workflow-selected-step-context.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-selected-step-context.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-selected-step-context.es.js +16 -0
- package/dist/domains/workflows/context/workflow-selected-step-context.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-step-detail-context.cjs.js +18 -0
- package/dist/domains/workflows/context/workflow-step-detail-context.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-step-detail-context.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-step-detail-context.es.js +13 -0
- package/dist/domains/workflows/context/workflow-step-detail-context.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-step-detail-provider.cjs.js +60 -0
- package/dist/domains/workflows/context/workflow-step-detail-provider.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-step-detail-provider.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-step-detail-provider.es.js +56 -0
- package/dist/domains/workflows/context/workflow-step-detail-provider.es.js.map +1 -0
- package/dist/domains/workflows/context/workflow-step-timing.cjs.js +56 -0
- package/dist/domains/workflows/context/workflow-step-timing.cjs.js.map +1 -0
- package/dist/domains/workflows/context/workflow-step-timing.d.ts +2 -0
- package/dist/domains/workflows/context/workflow-step-timing.es.js +50 -0
- package/dist/domains/workflows/context/workflow-step-timing.es.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflow-runs.cjs.js +81 -0
- package/dist/domains/workflows/hooks/use-workflow-runs.cjs.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflow-runs.d.ts +2 -0
- package/dist/domains/workflows/hooks/use-workflow-runs.es.js +71 -0
- package/dist/domains/workflows/hooks/use-workflow-runs.es.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflow.cjs.js +21 -0
- package/dist/domains/workflows/hooks/use-workflow.cjs.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflow.d.ts +2 -0
- package/dist/domains/workflows/hooks/use-workflow.es.js +17 -0
- package/dist/domains/workflows/hooks/use-workflow.es.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflows-run-counts.cjs.js +33 -0
- package/dist/domains/workflows/hooks/use-workflows-run-counts.cjs.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflows-run-counts.d.ts +2 -0
- package/dist/domains/workflows/hooks/use-workflows-run-counts.es.js +26 -0
- package/dist/domains/workflows/hooks/use-workflows-run-counts.es.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflows.cjs.js +22 -0
- package/dist/domains/workflows/hooks/use-workflows.cjs.js.map +1 -0
- package/dist/domains/workflows/hooks/use-workflows.d.ts +2 -0
- package/dist/domains/workflows/hooks/use-workflows.es.js +18 -0
- package/dist/domains/workflows/hooks/use-workflows.es.js.map +1 -0
- package/dist/domains/workflows/hooks.cjs.js +25 -0
- package/dist/domains/workflows/hooks.cjs.js.map +1 -0
- package/dist/domains/workflows/hooks.d.ts +2 -0
- package/dist/domains/workflows/hooks.es.js +5 -0
- package/dist/domains/workflows/hooks.es.js.map +1 -0
- package/dist/domains/workflows/runs/workflow-run-details.cjs.js +69 -0
- package/dist/domains/workflows/runs/workflow-run-details.cjs.js.map +1 -0
- package/dist/domains/workflows/runs/workflow-run-details.d.ts +2 -0
- package/dist/domains/workflows/runs/workflow-run-details.es.js +65 -0
- package/dist/domains/workflows/runs/workflow-run-details.es.js.map +1 -0
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +149 -0
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -0
- package/dist/domains/workflows/runs/workflow-run-list.d.ts +2 -0
- package/dist/domains/workflows/runs/workflow-run-list.es.js +145 -0
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -0
- package/dist/domains/workflows/utils/nested-workflows.cjs.js +64 -0
- package/dist/domains/workflows/utils/nested-workflows.cjs.js.map +1 -0
- package/dist/domains/workflows/utils/nested-workflows.d.ts +2 -0
- package/dist/domains/workflows/utils/nested-workflows.es.js +58 -0
- package/dist/domains/workflows/utils/nested-workflows.es.js.map +1 -0
- package/dist/domains/workflows/utils.cjs.js +118 -0
- package/dist/domains/workflows/utils.cjs.js.map +1 -0
- package/dist/domains/workflows/utils.d.ts +2 -0
- package/dist/domains/workflows/utils.es.js +107 -0
- package/dist/domains/workflows/utils.es.js.map +1 -0
- package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js +38 -0
- package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/data/use-workflow-data.d.ts +2 -0
- package/dist/domains/workflows/workflow/data/use-workflow-data.es.js +33 -0
- package/dist/domains/workflows/workflow/data/use-workflow-data.es.js.map +1 -0
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +26 -0
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/data/workflow-data-button.d.ts +2 -0
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +22 -0
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js.map +1 -0
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +74 -0
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.d.ts +2 -0
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +70 -0
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +1 -0
- package/dist/domains/workflows/workflow/data/workflow-edge-data-groups.cjs.js +31 -0
- package/dist/domains/workflows/workflow/data/workflow-edge-data-groups.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/data/workflow-edge-data-groups.d.ts +2 -0
- package/dist/domains/workflows/workflow/data/workflow-edge-data-groups.es.js +27 -0
- package/dist/domains/workflows/workflow/data/workflow-edge-data-groups.es.js.map +1 -0
- package/dist/domains/workflows/workflow/input/processor-input.cjs.js +60 -0
- package/dist/domains/workflows/workflow/input/processor-input.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/input/processor-input.d.ts +2 -0
- package/dist/domains/workflows/workflow/input/processor-input.es.js +52 -0
- package/dist/domains/workflows/workflow/input/processor-input.es.js.map +1 -0
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +38 -0
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/input/workflow-json-input.d.ts +2 -0
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +34 -0
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js.map +1 -0
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +113 -0
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/input/workflow-processor-input.d.ts +2 -0
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +109 -0
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js +48 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.d.ts +2 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js +44 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js.map +1 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +21 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.d.ts +2 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +13 -0
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js.map +1 -0
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +164 -0
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/use-workflow-trigger.d.ts +2 -0
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +156 -0
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js.map +1 -0
- package/dist/domains/workflows/workflow/utils.cjs.js +649 -0
- package/dist/domains/workflows/workflow/utils.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/utils.d.ts +2 -0
- package/dist/domains/workflows/workflow/utils.es.js +636 -0
- package/dist/domains/workflows/workflow/utils.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +14 -0
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-body-graph.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +6 -0
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-boundary-data.cjs.js +19 -0
- package/dist/domains/workflows/workflow/workflow-boundary-data.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-boundary-data.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-boundary-data.es.js +15 -0
- package/dist/domains/workflows/workflow/workflow-boundary-data.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +36 -0
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-cancel-button.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +32 -0
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-card.cjs.js +29 -0
- package/dist/domains/workflows/workflow/workflow-card.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-card.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-card.es.js +25 -0
- package/dist/domains/workflows/workflow/workflow-card.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +23 -0
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-data-edge.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +19 -0
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +31 -0
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +27 -0
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +35 -0
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +31 -0
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +44 -0
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-boundary.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +40 -0
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js +45 -0
- package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-groups.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-graph-groups.es.js +40 -0
- package/dist/domains/workflows/workflow/workflow-graph-groups.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +35 -0
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-inner.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +31 -0
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +44 -0
- package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-layout.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +40 -0
- package/dist/domains/workflows/workflow/workflow-graph-layout.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +19 -0
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph-node.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +11 -0
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js +25 -0
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-graph.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-graph.es.js +21 -0
- package/dist/domains/workflows/workflow/workflow-graph.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +233 -0
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-input-data.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +229 -0
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +68 -0
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +64 -0
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-iteration-scopes.cjs.js +19 -0
- package/dist/domains/workflows/workflow/workflow-iteration-scopes.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-iteration-scopes.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-iteration-scopes.es.js +15 -0
- package/dist/domains/workflows/workflow/workflow-iteration-scopes.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +30 -0
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +26 -0
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +20 -0
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-nested-graph.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +12 -0
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-node-kind.cjs.js +25 -0
- package/dist/domains/workflows/workflow/workflow-node-kind.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-node-kind.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-node-kind.es.js +21 -0
- package/dist/domains/workflows/workflow/workflow-node-kind.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +64 -0
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-data.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +60 -0
- package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +20 -0
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-error.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +16 -0
- package/dist/domains/workflows/workflow/workflow-run-error.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-errors.cjs.js +32 -0
- package/dist/domains/workflows/workflow/workflow-run-errors.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-errors.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-run-errors.es.js +28 -0
- package/dist/domains/workflows/workflow/workflow-run-errors.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +82 -0
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-header.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +77 -0
- package/dist/domains/workflows/workflow/workflow-run-header.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-options.cjs.js +13 -0
- package/dist/domains/workflows/workflow/workflow-run-options.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-run-options.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-run-options.es.js +9 -0
- package/dist/domains/workflows/workflow/workflow-run-options.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +37 -0
- package/dist/domains/workflows/workflow/workflow-status.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-status.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-status.es.js +33 -0
- package/dist/domains/workflows/workflow/workflow-status.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +245 -0
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-step-action-bar.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +241 -0
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +138 -0
- package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-step-node-utils.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +131 -0
- package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +52 -0
- package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-steps-status.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-steps-status.es.js +48 -0
- package/dist/domains/workflows/workflow/workflow-steps-status.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-suspended-overlay.cjs.js +38 -0
- package/dist/domains/workflows/workflow/workflow-suspended-overlay.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-suspended-overlay.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-suspended-overlay.es.js +34 -0
- package/dist/domains/workflows/workflow/workflow-suspended-overlay.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +169 -0
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-suspended-steps.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +165 -0
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +312 -0
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-time-travel-form.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +308 -0
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +145 -0
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-timeline-row.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +141 -0
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-timeline-utils.cjs.js +43 -0
- package/dist/domains/workflows/workflow/workflow-timeline-utils.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-timeline-utils.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-timeline-utils.es.js +39 -0
- package/dist/domains/workflows/workflow/workflow-timeline-utils.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +116 -0
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-timeline.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +112 -0
- package/dist/domains/workflows/workflow/workflow-timeline.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +63 -0
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-trigger-form.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +59 -0
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +27 -0
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-trigger-header.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +23 -0
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +203 -0
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow/workflow-trigger.d.ts +2 -0
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +199 -0
- package/dist/domains/workflows/workflow/workflow-trigger.es.js.map +1 -0
- package/dist/domains/workflows.cjs.js +65 -0
- package/dist/domains/workflows.cjs.js.map +1 -0
- package/dist/domains/workflows.d.ts +2 -0
- package/dist/domains/workflows.es.js +20 -0
- package/dist/domains/workflows.es.js.map +1 -0
- 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/signals/settings/signal-definition-form-dialog.cjs.js +10 -9
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -3
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/entity-header-9qzr-3xQ.js +18 -0
- package/dist/entity-header-9qzr-3xQ.js.map +1 -0
- package/dist/entity-header-DEjkHoqj.cjs +20 -0
- package/dist/entity-header-DEjkHoqj.cjs.map +1 -0
- package/dist/{field-error-id-V_WejsRL.cjs → field-block-BG5E7u9v.cjs} +1 -4
- package/dist/field-block-BG5E7u9v.cjs.map +1 -0
- package/dist/{field-error-id-DD7OARLU.js → field-block-BRLwud-v.js} +2 -4
- package/dist/field-block-BRLwud-v.js.map +1 -0
- package/dist/field-error-id-B3Z2Zu5y.cjs +6 -0
- package/dist/field-error-id-B3Z2Zu5y.cjs.map +1 -0
- package/dist/field-error-id-D3yg1nBh.js +4 -0
- package/dist/field-error-id-D3yg1nBh.js.map +1 -0
- package/dist/get-short-id-B8WUdKmM.cjs +9 -0
- package/dist/get-short-id-B8WUdKmM.cjs.map +1 -0
- package/dist/get-short-id-CFIGZkLd.js +7 -0
- package/dist/get-short-id-CFIGZkLd.js.map +1 -0
- package/dist/hooks/use-time-diff.cjs.js +22 -0
- package/dist/hooks/use-time-diff.cjs.js.map +1 -0
- package/dist/hooks/use-time-diff.d.ts +2 -0
- package/dist/hooks/use-time-diff.es.js +18 -0
- package/dist/hooks/use-time-diff.es.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +2 -2
- package/dist/layout/tabbed-container.es.js +2 -2
- package/dist/lib/form/auto-form.cjs.js +68 -0
- package/dist/lib/form/auto-form.cjs.js.map +1 -0
- package/dist/lib/form/auto-form.d.ts +2 -0
- package/dist/lib/form/auto-form.es.js +63 -0
- package/dist/lib/form/auto-form.es.js.map +1 -0
- package/dist/lib/form/components/array-element-wrapper.cjs.js +99 -0
- package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -0
- package/dist/lib/form/components/array-element-wrapper.d.ts +2 -0
- package/dist/lib/form/components/array-element-wrapper.es.js +95 -0
- package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -0
- package/dist/lib/form/components/array-wrapper.cjs.js +45 -0
- package/dist/lib/form/components/array-wrapper.cjs.js.map +1 -0
- package/dist/lib/form/components/array-wrapper.d.ts +2 -0
- package/dist/lib/form/components/array-wrapper.es.js +41 -0
- package/dist/lib/form/components/array-wrapper.es.js.map +1 -0
- package/dist/lib/form/components/boolean-field.cjs.js +31 -0
- package/dist/lib/form/components/boolean-field.cjs.js.map +1 -0
- package/dist/lib/form/components/boolean-field.d.ts +2 -0
- package/dist/lib/form/components/boolean-field.es.js +27 -0
- package/dist/lib/form/components/boolean-field.es.js.map +1 -0
- package/dist/lib/form/components/custom-array-field.cjs.js +15 -0
- package/dist/lib/form/components/custom-array-field.cjs.js.map +1 -0
- package/dist/lib/form/components/custom-array-field.d.ts +2 -0
- package/dist/lib/form/components/custom-array-field.es.js +7 -0
- package/dist/lib/form/components/custom-array-field.es.js.map +1 -0
- package/dist/lib/form/components/custom-auto-form-field.cjs.js +16 -0
- package/dist/lib/form/components/custom-auto-form-field.cjs.js.map +1 -0
- package/dist/lib/form/components/custom-auto-form-field.d.ts +2 -0
- package/dist/lib/form/components/custom-auto-form-field.es.js +8 -0
- package/dist/lib/form/components/custom-auto-form-field.es.js.map +1 -0
- package/dist/lib/form/components/custom-object-field.cjs.js +14 -0
- package/dist/lib/form/components/custom-object-field.cjs.js.map +1 -0
- package/dist/lib/form/components/custom-object-field.d.ts +2 -0
- package/dist/lib/form/components/custom-object-field.es.js +6 -0
- package/dist/lib/form/components/custom-object-field.es.js.map +1 -0
- package/dist/lib/form/components/date-field.cjs.js +62 -0
- package/dist/lib/form/components/date-field.cjs.js.map +1 -0
- package/dist/lib/form/components/date-field.d.ts +2 -0
- package/dist/lib/form/components/date-field.es.js +58 -0
- package/dist/lib/form/components/date-field.es.js.map +1 -0
- package/dist/lib/form/components/discriminated-union-field.cjs.js +67 -0
- package/dist/lib/form/components/discriminated-union-field.cjs.js.map +1 -0
- package/dist/lib/form/components/discriminated-union-field.d.ts +2 -0
- package/dist/lib/form/components/discriminated-union-field.es.js +63 -0
- package/dist/lib/form/components/discriminated-union-field.es.js.map +1 -0
- package/dist/lib/form/components/error-message.cjs.js +11 -0
- package/dist/lib/form/components/error-message.cjs.js.map +1 -0
- package/dist/lib/form/components/error-message.d.ts +2 -0
- package/dist/lib/form/components/error-message.es.js +7 -0
- package/dist/lib/form/components/error-message.es.js.map +1 -0
- package/dist/lib/form/components/field-wrapper.cjs.js +21 -0
- package/dist/lib/form/components/field-wrapper.cjs.js.map +1 -0
- package/dist/lib/form/components/field-wrapper.d.ts +2 -0
- package/dist/lib/form/components/field-wrapper.es.js +17 -0
- package/dist/lib/form/components/field-wrapper.es.js.map +1 -0
- package/dist/lib/form/components/form-submit-row.cjs.js +50 -0
- package/dist/lib/form/components/form-submit-row.cjs.js.map +1 -0
- package/dist/lib/form/components/form-submit-row.d.ts +2 -0
- package/dist/lib/form/components/form-submit-row.es.js +46 -0
- package/dist/lib/form/components/form-submit-row.es.js.map +1 -0
- package/dist/lib/form/components/form.cjs.js +13 -0
- package/dist/lib/form/components/form.cjs.js.map +1 -0
- package/dist/lib/form/components/form.d.ts +2 -0
- package/dist/lib/form/components/form.es.js +9 -0
- package/dist/lib/form/components/form.es.js.map +1 -0
- package/dist/lib/form/components/number-field.cjs.js +39 -0
- package/dist/lib/form/components/number-field.cjs.js.map +1 -0
- package/dist/lib/form/components/number-field.d.ts +2 -0
- package/dist/lib/form/components/number-field.es.js +35 -0
- package/dist/lib/form/components/number-field.es.js.map +1 -0
- package/dist/lib/form/components/object-wrapper.cjs.js +41 -0
- package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -0
- package/dist/lib/form/components/object-wrapper.d.ts +2 -0
- package/dist/lib/form/components/object-wrapper.es.js +37 -0
- package/dist/lib/form/components/object-wrapper.es.js.map +1 -0
- package/dist/lib/form/components/record-field.cjs.js +110 -0
- package/dist/lib/form/components/record-field.cjs.js.map +1 -0
- package/dist/lib/form/components/record-field.d.ts +2 -0
- package/dist/lib/form/components/record-field.es.js +87 -0
- package/dist/lib/form/components/record-field.es.js.map +1 -0
- package/dist/lib/form/components/select-field.cjs.js +48 -0
- package/dist/lib/form/components/select-field.cjs.js.map +1 -0
- package/dist/lib/form/components/select-field.d.ts +2 -0
- package/dist/lib/form/components/select-field.es.js +44 -0
- package/dist/lib/form/components/select-field.es.js.map +1 -0
- package/dist/lib/form/components/string-field.cjs.js +25 -0
- package/dist/lib/form/components/string-field.cjs.js.map +1 -0
- package/dist/lib/form/components/string-field.d.ts +2 -0
- package/dist/lib/form/components/string-field.es.js +21 -0
- package/dist/lib/form/components/string-field.es.js.map +1 -0
- package/dist/lib/form/components/submit-button.cjs.js +11 -0
- package/dist/lib/form/components/submit-button.cjs.js.map +1 -0
- package/dist/lib/form/components/submit-button.d.ts +2 -0
- package/dist/lib/form/components/submit-button.es.js +7 -0
- package/dist/lib/form/components/submit-button.es.js.map +1 -0
- package/dist/lib/form/components/union-field.cjs.js +20 -0
- package/dist/lib/form/components/union-field.cjs.js.map +1 -0
- package/dist/lib/form/components/union-field.d.ts +2 -0
- package/dist/lib/form/components/union-field.es.js +16 -0
- package/dist/lib/form/components/union-field.es.js.map +1 -0
- package/dist/lib/form/custom-auto-form.cjs.js +84 -0
- package/dist/lib/form/custom-auto-form.cjs.js.map +1 -0
- package/dist/lib/form/custom-auto-form.d.ts +2 -0
- package/dist/lib/form/custom-auto-form.es.js +80 -0
- package/dist/lib/form/custom-auto-form.es.js.map +1 -0
- package/dist/lib/form/dynamic-form.cjs.js +124 -0
- package/dist/lib/form/dynamic-form.cjs.js.map +1 -0
- package/dist/lib/form/dynamic-form.d.ts +2 -0
- package/dist/lib/form/dynamic-form.es.js +120 -0
- package/dist/lib/form/dynamic-form.es.js.map +1 -0
- package/dist/lib/form/field-context.cjs.js +16 -0
- package/dist/lib/form/field-context.cjs.js.map +1 -0
- package/dist/lib/form/field-context.d.ts +2 -0
- package/dist/lib/form/field-context.es.js +9 -0
- package/dist/lib/form/field-context.es.js.map +1 -0
- package/dist/lib/form/is-empty-zod-object.cjs.js +20 -0
- package/dist/lib/form/is-empty-zod-object.cjs.js.map +1 -0
- package/dist/lib/form/is-empty-zod-object.d.ts +2 -0
- package/dist/lib/form/is-empty-zod-object.es.js +16 -0
- package/dist/lib/form/is-empty-zod-object.es.js.map +1 -0
- package/dist/lib/form/json-schema-to-zod-runtime.cjs.js +130 -0
- package/dist/lib/form/json-schema-to-zod-runtime.cjs.js.map +1 -0
- package/dist/lib/form/json-schema-to-zod-runtime.d.ts +2 -0
- package/dist/lib/form/json-schema-to-zod-runtime.es.js +126 -0
- package/dist/lib/form/json-schema-to-zod-runtime.es.js.map +1 -0
- package/dist/lib/form/types.cjs.js +3 -0
- package/dist/lib/form/types.cjs.js.map +1 -0
- package/dist/lib/form/types.d.ts +1 -0
- package/dist/lib/form/types.es.js +2 -0
- package/dist/lib/form/types.es.js.map +1 -0
- package/dist/lib/form/use-section-disclosure.cjs.js +20 -0
- package/dist/lib/form/use-section-disclosure.cjs.js.map +1 -0
- package/dist/lib/form/use-section-disclosure.d.ts +2 -0
- package/dist/lib/form/use-section-disclosure.es.js +16 -0
- package/dist/lib/form/use-section-disclosure.es.js.map +1 -0
- package/dist/lib/form/utils.cjs.js +16 -0
- package/dist/lib/form/utils.cjs.js.map +1 -0
- package/dist/lib/form/utils.d.ts +2 -0
- package/dist/lib/form/utils.es.js +11 -0
- package/dist/lib/form/utils.es.js.map +1 -0
- package/dist/lib/form/zod-provider/compat.cjs.js +147 -0
- package/dist/lib/form/zod-provider/compat.cjs.js.map +1 -0
- package/dist/lib/form/zod-provider/compat.d.ts +2 -0
- package/dist/lib/form/zod-provider/compat.es.js +125 -0
- package/dist/lib/form/zod-provider/compat.es.js.map +1 -0
- package/dist/lib/form/zod-provider/default-values.cjs.js +52 -0
- package/dist/lib/form/zod-provider/default-values.cjs.js.map +1 -0
- package/dist/lib/form/zod-provider/default-values.d.ts +2 -0
- package/dist/lib/form/zod-provider/default-values.es.js +47 -0
- package/dist/lib/form/zod-provider/default-values.es.js.map +1 -0
- package/dist/lib/form/zod-provider/field-type-inference.cjs.js +61 -0
- package/dist/lib/form/zod-provider/field-type-inference.cjs.js.map +1 -0
- package/dist/lib/form/zod-provider/field-type-inference.d.ts +2 -0
- package/dist/lib/form/zod-provider/field-type-inference.es.js +57 -0
- package/dist/lib/form/zod-provider/field-type-inference.es.js.map +1 -0
- package/dist/lib/form/zod-provider.cjs.js +186 -0
- package/dist/lib/form/zod-provider.cjs.js.map +1 -0
- package/dist/lib/form/zod-provider.d.ts +2 -0
- package/dist/lib/form/zod-provider.es.js +181 -0
- package/dist/lib/form/zod-provider.es.js.map +1 -0
- package/dist/lib/framework.cjs.js +67 -0
- package/dist/lib/framework.cjs.js.map +1 -0
- package/dist/lib/framework.d.ts +2 -0
- package/dist/lib/framework.es.js +62 -0
- package/dist/lib/framework.es.js.map +1 -0
- package/dist/{list-search-D1FD8FCL.js → list-search-O3LYX7Bs.js} +2 -2
- package/dist/{list-search-D1FD8FCL.js.map → list-search-O3LYX7Bs.js.map} +1 -1
- package/dist/{list-search-CsYQX8qR.cjs → list-search-hOQI7qF_.cjs} +2 -2
- package/dist/{list-search-CsYQX8qR.cjs.map → list-search-hOQI7qF_.cjs.map} +1 -1
- package/dist/relative-timestamp-CHNqhmkb.cjs +117 -0
- package/dist/relative-timestamp-CHNqhmkb.cjs.map +1 -0
- package/dist/relative-timestamp-DjbfpeDB.js +115 -0
- package/dist/relative-timestamp-DjbfpeDB.js.map +1 -0
- package/dist/{search-field-block-Dj2KJyjQ.js → search-field-block-C23HLYQi.js} +3 -2
- package/dist/{search-field-block-Dj2KJyjQ.js.map → search-field-block-C23HLYQi.js.map} +1 -1
- package/dist/{search-field-block-K_e_S9WY.cjs → search-field-block-CD02RlL6.cjs} +9 -8
- package/dist/{search-field-block-K_e_S9WY.cjs.map → search-field-block-CD02RlL6.cjs.map} +1 -1
- package/dist/{select-field-block-CaGjpIKM.cjs → select-field-block-5D-FkGZ4.cjs} +9 -8
- package/dist/{select-field-block-CaGjpIKM.cjs.map → select-field-block-5D-FkGZ4.cjs.map} +1 -1
- package/dist/{select-field-block-BF8v698d.js → select-field-block-BCXRKd3l.js} +3 -2
- package/dist/{select-field-block-BF8v698d.js.map → select-field-block-BCXRKd3l.js.map} +1 -1
- package/dist/side-dialog-04Wcn9Od.cjs +294 -0
- package/dist/side-dialog-04Wcn9Od.cjs.map +1 -0
- package/dist/side-dialog-CaVRcSpc.js +274 -0
- package/dist/side-dialog-CaVRcSpc.js.map +1 -0
- package/dist/{span-payload-primitives-Dmzm3mb2.js → span-payload-primitives-D731l90l.js} +3 -3
- package/dist/{span-payload-primitives-Dmzm3mb2.js.map → span-payload-primitives-D731l90l.js.map} +1 -1
- package/dist/{span-payload-primitives-Dq8WqqNm.cjs → span-payload-primitives-DA7vASer.cjs} +3 -3
- package/dist/{span-payload-primitives-Dq8WqqNm.cjs.map → span-payload-primitives-DA7vASer.cjs.map} +1 -1
- package/dist/src/domains/datasets/components/index.d.ts +1 -0
- package/dist/src/domains/datasets/components/save-as-dataset-item-dialog.d.ts +21 -0
- package/dist/src/domains/datasets/hooks/index.d.ts +2 -0
- package/dist/src/domains/datasets/hooks/use-dataset-mutations.d.ts +337 -0
- package/dist/src/domains/datasets/hooks/use-datasets.d.ts +889 -0
- package/dist/src/domains/datasets/index.d.ts +2 -0
- package/dist/src/domains/observability/context/tracing-settings-context.d.ts +19 -0
- package/dist/src/domains/observability/hooks/use-tracing-settings-state.d.ts +11 -0
- package/dist/src/domains/request-context/components/request-context-label.d.ts +8 -0
- package/dist/src/domains/request-context/components/request-context-schema-form.d.ts +18 -0
- package/dist/src/domains/scores/components/index.d.ts +4 -0
- package/dist/src/domains/scores/components/score-as-item-dialog.d.ts +12 -0
- package/dist/src/domains/scores/components/score-data-panel.d.ts +10 -0
- package/dist/src/domains/scores/components/span-scoring.d.ts +11 -0
- package/dist/src/domains/scores/components/trace-scores-tab.d.ts +10 -0
- package/dist/src/domains/scores/hooks/index.d.ts +3 -0
- package/dist/src/domains/scores/hooks/use-scorers.d.ts +256 -0
- package/dist/src/domains/scores/hooks/use-trace-span-scores.d.ts +73 -0
- package/dist/src/domains/scores/hooks/use-trigger-scorer.d.ts +11 -0
- package/dist/src/domains/scores/index.d.ts +2 -0
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +1 -1
- package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +12 -12
- package/dist/src/domains/workflows/components/workflow-combobox.d.ts +16 -0
- package/dist/src/domains/workflows/components/workflow-entity-header.d.ts +5 -0
- package/dist/src/domains/workflows/components/workflow-information.d.ts +9 -0
- package/dist/src/domains/workflows/components/workflow-layout.d.ts +12 -0
- package/dist/src/domains/workflows/components/workflow-request-context-dialog.d.ts +6 -0
- package/dist/src/domains/workflows/components/workflow-run-options-dialog.d.ts +5 -0
- package/dist/src/domains/workflows/components/workflow-run-status-icon.d.ts +5 -0
- package/dist/src/domains/workflows/components/workflow-step-detail.d.ts +3 -0
- package/dist/src/domains/workflows/components/workflow-tracing-run-options.d.ts +14 -0
- package/dist/src/domains/workflows/components/workflows-list/no-workflows-info.d.ts +1 -0
- package/dist/src/domains/workflows/components/workflows-list/workflows-list.d.ts +12 -0
- package/dist/src/domains/workflows/components/workflows-list/workflows-sort.d.ts +12 -0
- package/dist/src/domains/workflows/context/use-current-run.d.ts +17 -0
- package/dist/src/domains/workflows/context/use-local-run.d.ts +11 -0
- package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +107 -0
- package/dist/src/domains/workflows/context/use-stream-for-run.d.ts +17 -0
- package/dist/src/domains/workflows/context/use-workflow-selected-step.d.ts +1 -0
- package/dist/src/domains/workflows/context/workflow-run-context.d.ts +103 -0
- package/dist/src/domains/workflows/context/workflow-run-provider.d.ts +10 -0
- package/dist/src/domains/workflows/context/workflow-selected-step-context-value.d.ts +8 -0
- package/dist/src/domains/workflows/context/workflow-selected-step-context.d.ts +4 -0
- package/dist/src/domains/workflows/context/workflow-step-detail-context.d.ts +43 -0
- package/dist/src/domains/workflows/context/workflow-step-detail-provider.d.ts +4 -0
- package/dist/src/domains/workflows/context/workflow-step-timing.d.ts +25 -0
- package/dist/src/domains/workflows/hooks/index.d.ts +4 -0
- package/dist/src/domains/workflows/hooks/use-workflow-runs.d.ts +541 -0
- package/dist/src/domains/workflows/hooks/use-workflow.d.ts +1 -0
- package/dist/src/domains/workflows/hooks/use-workflows-run-counts.d.ts +22 -0
- package/dist/src/domains/workflows/hooks/use-workflows.d.ts +6 -0
- package/dist/src/domains/workflows/index.d.ts +16 -0
- package/dist/src/domains/workflows/runs/workflow-run-details.d.ts +8 -0
- package/dist/src/domains/workflows/runs/workflow-run-list.d.ts +6 -0
- package/dist/src/domains/workflows/utils/nested-workflows.d.ts +49 -0
- package/dist/src/domains/workflows/utils.d.ts +48 -0
- package/dist/src/domains/workflows/workflow/data/use-workflow-data.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/data/workflow-data-button.d.ts +4 -0
- package/dist/src/domains/workflows/workflow/data/workflow-data-inspector.d.ts +4 -0
- package/dist/src/domains/workflows/workflow/data/workflow-edge-data-groups.d.ts +2 -0
- package/dist/src/domains/workflows/workflow/input/processor-input.d.ts +549 -0
- package/dist/src/domains/workflows/workflow/input/workflow-json-input.d.ts +9 -0
- package/dist/src/domains/workflows/workflow/input/workflow-processor-input.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/use-workflow-graph-nodes.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/use-workflow-graph-runtime.d.ts +55 -0
- package/dist/src/domains/workflows/workflow/use-workflow-trigger.d.ts +22 -0
- package/dist/src/domains/workflows/workflow/utils.d.ts +102 -0
- package/dist/src/domains/workflows/workflow/workflow-body-graph.d.ts +7 -0
- package/dist/src/domains/workflows/workflow/workflow-boundary-data.d.ts +5 -0
- package/dist/src/domains/workflows/workflow/workflow-cancel-button.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/workflow-card.d.ts +6 -0
- package/dist/src/domains/workflows/workflow/workflow-data-edge.d.ts +6 -0
- package/dist/src/domains/workflows/workflow/workflow-debug-mode-switch.d.ts +1 -0
- package/dist/src/domains/workflows/workflow/workflow-debug-step-controls.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/workflow-graph-boundary.d.ts +6 -0
- package/dist/src/domains/workflows/workflow/workflow-graph-groups.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/workflow-graph-inner.d.ts +6 -0
- package/dist/src/domains/workflows/workflow/workflow-graph-layout.d.ts +5 -0
- package/dist/src/domains/workflows/workflow/workflow-graph-node.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/workflow-graph.d.ts +8 -0
- package/dist/src/domains/workflows/workflow/workflow-input-data.d.ts +23 -0
- package/dist/src/domains/workflows/workflow/workflow-input-type-toggle.d.ts +9 -0
- package/dist/src/domains/workflows/workflow/workflow-iteration-scopes.d.ts +4 -0
- package/dist/src/domains/workflows/workflow/workflow-map-config-dialog.d.ts +5 -0
- package/dist/src/domains/workflows/workflow/workflow-nested-graph.d.ts +9 -0
- package/dist/src/domains/workflows/workflow/workflow-node-kind.d.ts +3 -0
- package/dist/src/domains/workflows/workflow/workflow-run-data.d.ts +5 -0
- package/dist/src/domains/workflows/workflow/workflow-run-error.d.ts +5 -0
- package/dist/src/domains/workflows/workflow/workflow-run-errors.d.ts +1 -0
- package/dist/src/domains/workflows/workflow/workflow-run-header.d.ts +12 -0
- package/dist/src/domains/workflows/workflow/workflow-run-options.d.ts +1 -0
- package/dist/src/domains/workflows/workflow/workflow-status.d.ts +13 -0
- package/dist/src/domains/workflows/workflow/workflow-step-action-bar.d.ts +14 -0
- package/dist/src/domains/workflows/workflow/workflow-step-node-utils.d.ts +53 -0
- package/dist/src/domains/workflows/workflow/workflow-steps-status.d.ts +20 -0
- package/dist/src/domains/workflows/workflow/workflow-suspended-overlay.d.ts +6 -0
- package/dist/src/domains/workflows/workflow/workflow-suspended-steps.d.ts +14 -0
- package/dist/src/domains/workflows/workflow/workflow-time-travel-form.d.ts +10 -0
- package/dist/src/domains/workflows/workflow/workflow-timeline-row.d.ts +11 -0
- package/dist/src/domains/workflows/workflow/workflow-timeline-utils.d.ts +15 -0
- package/dist/src/domains/workflows/workflow/workflow-timeline.d.ts +1 -0
- package/dist/src/domains/workflows/workflow/workflow-trigger-form.d.ts +16 -0
- package/dist/src/domains/workflows/workflow/workflow-trigger-header.d.ts +5 -0
- package/dist/src/domains/workflows/workflow/workflow-trigger.d.ts +14 -0
- package/dist/src/ds/components/DataList/ScoresDataList/scores-data-list.d.ts +1 -1
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +1 -1
- package/dist/src/ds/components/DataList/data-list-row-link.d.ts +1 -1
- package/dist/src/ds/components/DataList/data-list-top-cell.d.ts +1 -1
- package/dist/src/ds/components/DataList/data-list.d.ts +2 -2
- package/dist/src/ds/components/ErrorBoundary/ErrorBoundary.d.ts +1 -1
- package/dist/src/ds/components/LogsDataList/logs-data-list.d.ts +2 -2
- package/dist/src/ds/components/ai/tool-call/tool-call.d.ts +3 -1
- package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +6 -0
- package/dist/src/ds/new/settings/settings-layout.d.ts +1 -1
- package/dist/src/hooks/stories/state/use-time-diff.stories.d.ts +17 -0
- package/dist/src/hooks/use-time-diff.d.ts +6 -0
- package/dist/src/lib/form/auto-form.d.ts +13 -0
- package/dist/src/lib/form/components/array-element-wrapper.d.ts +2 -0
- package/dist/src/lib/form/components/array-wrapper.d.ts +2 -0
- package/dist/src/lib/form/components/boolean-field.d.ts +3 -0
- package/dist/src/lib/form/components/custom-array-field.d.ts +6 -0
- package/dist/src/lib/form/components/custom-auto-form-field.d.ts +6 -0
- package/dist/src/lib/form/components/custom-object-field.d.ts +6 -0
- package/dist/src/lib/form/components/date-field.d.ts +3 -0
- package/dist/src/lib/form/components/discriminated-union-field.d.ts +2 -0
- package/dist/src/lib/form/components/error-message.d.ts +4 -0
- package/dist/src/lib/form/components/field-wrapper.d.ts +3 -0
- package/dist/src/lib/form/components/form-submit-row.d.ts +14 -0
- package/dist/src/lib/form/components/form.d.ts +2 -0
- package/dist/src/lib/form/components/number-field.d.ts +3 -0
- package/dist/src/lib/form/components/object-wrapper.d.ts +2 -0
- package/dist/src/lib/form/components/record-field.d.ts +3 -0
- package/dist/src/lib/form/components/select-field.d.ts +3 -0
- package/dist/src/lib/form/components/string-field.d.ts +3 -0
- package/dist/src/lib/form/components/submit-button.d.ts +4 -0
- package/dist/src/lib/form/components/union-field.d.ts +2 -0
- package/dist/src/lib/form/custom-auto-form.d.ts +2 -0
- package/dist/src/lib/form/dynamic-form.d.ts +20 -0
- package/dist/src/lib/form/field-context.d.ts +5 -0
- package/dist/src/lib/form/index.d.ts +4 -0
- package/dist/src/lib/form/is-empty-zod-object.d.ts +1 -0
- package/dist/src/lib/form/json-schema-to-zod-runtime.d.ts +24 -0
- package/dist/src/lib/form/types.d.ts +4 -0
- package/dist/src/lib/form/use-section-disclosure.d.ts +5 -0
- package/dist/src/lib/form/utils.d.ts +3 -0
- package/dist/src/lib/form/zod-provider/compat.d.ts +111 -0
- package/dist/src/lib/form/zod-provider/default-values.d.ts +2 -0
- package/dist/src/lib/form/zod-provider/field-type-inference.d.ts +2 -0
- package/dist/src/lib/form/zod-provider/index.d.ts +11 -0
- package/dist/src/lib/framework.d.ts +54 -0
- package/dist/style.css +309 -3
- package/dist/text-and-icon-DCLdeWsT.js +20 -0
- package/dist/text-and-icon-DCLdeWsT.js.map +1 -0
- package/dist/text-and-icon-DQu30tMc.cjs +22 -0
- package/dist/text-and-icon-DQu30tMc.cjs.map +1 -0
- package/dist/{text-field-block-CRh8sRXP.cjs → text-field-block-BCOCO1W2.cjs} +9 -8
- package/dist/{text-field-block-CRh8sRXP.cjs.map → text-field-block-BCOCO1W2.cjs.map} +1 -1
- package/dist/{text-field-block-BYPiO9h4.js → text-field-block-yNMK8lM0.js} +3 -2
- package/dist/{text-field-block-BYPiO9h4.js.map → text-field-block-yNMK8lM0.js.map} +1 -1
- package/dist/textarea-field-block-CQOWTloR.js +52 -0
- package/dist/textarea-field-block-CQOWTloR.js.map +1 -0
- package/dist/textarea-field-block-DlV3zmOi.cjs +54 -0
- package/dist/textarea-field-block-DlV3zmOi.cjs.map +1 -0
- package/dist/{theme-provider-CQKmlkHX.js → theme-provider-BbMYMtxP.js} +3 -3
- package/dist/theme-provider-BbMYMtxP.js.map +1 -0
- package/dist/{theme-provider-aO5-jZVp.cjs → theme-provider-DDGNiyY_.cjs} +2 -2
- package/dist/theme-provider-DDGNiyY_.cjs.map +1 -0
- package/dist/thread-list-CwwoVFRi.cjs +79 -0
- package/dist/thread-list-CwwoVFRi.cjs.map +1 -0
- package/dist/thread-list-DAVEf0g7.js +72 -0
- package/dist/thread-list-DAVEf0g7.js.map +1 -0
- package/dist/{tool-call-CIeNEYpK.js → tool-call-0No2_hQU.js} +7 -4
- package/dist/tool-call-0No2_hQU.js.map +1 -0
- package/dist/{tool-call-CnEm3eE0.cjs → tool-call-CMN0T4o7.cjs} +6 -3
- package/dist/tool-call-CMN0T4o7.cjs.map +1 -0
- package/dist/{tool-presentation-D-smNbXC.js → tool-presentation-C7aizVF5.js} +3 -2
- package/dist/tool-presentation-C7aizVF5.js.map +1 -0
- package/dist/{tool-presentation-BGWx2mEc.cjs → tool-presentation-CupoLbdM.cjs} +3 -2
- package/dist/tool-presentation-CupoLbdM.cjs.map +1 -0
- package/dist/types-1cBe2TOn.cjs +8 -0
- package/dist/types-1cBe2TOn.cjs.map +1 -0
- package/dist/types-CvneO3z0.js +5 -0
- package/dist/types-CvneO3z0.js.map +1 -0
- package/dist/workflow-canvas-inset-23mBz2N6.js +12 -0
- package/dist/workflow-canvas-inset-23mBz2N6.js.map +1 -0
- package/dist/workflow-canvas-inset-CMasaX9u.cjs +15 -0
- package/dist/workflow-canvas-inset-CMasaX9u.cjs.map +1 -0
- package/dist/workflow-code-dialog-content-BirYxjKN.cjs +54 -0
- package/dist/workflow-code-dialog-content-BirYxjKN.cjs.map +1 -0
- package/dist/workflow-code-dialog-content-_RDac9Dg.js +52 -0
- package/dist/workflow-code-dialog-content-_RDac9Dg.js.map +1 -0
- package/dist/workflow-condition-card-ByvSwtXl.js +886 -0
- package/dist/workflow-condition-card-ByvSwtXl.js.map +1 -0
- package/dist/workflow-condition-card-DTHht6Q5.cjs +901 -0
- package/dist/workflow-condition-card-DTHht6Q5.cjs.map +1 -0
- package/dist/workflow-data-edge-view-C-0DMM8K.js +75 -0
- package/dist/workflow-data-edge-view-C-0DMM8K.js.map +1 -0
- package/dist/workflow-data-edge-view-Db0_VLlU.cjs +77 -0
- package/dist/workflow-data-edge-view-Db0_VLlU.cjs.map +1 -0
- package/dist/workflow-debug-controls-Bykm-_87.js +57 -0
- package/dist/workflow-debug-controls-Bykm-_87.js.map +1 -0
- package/dist/workflow-debug-controls-Cy3QXgVR.cjs +59 -0
- package/dist/workflow-debug-controls-Cy3QXgVR.cjs.map +1 -0
- package/dist/workflow-edge-data-button-D50Uq0EA.js +52 -0
- package/dist/workflow-edge-data-button-D50Uq0EA.js.map +1 -0
- package/dist/workflow-edge-data-button-DW6nxxNz.cjs +54 -0
- package/dist/workflow-edge-data-button-DW6nxxNz.cjs.map +1 -0
- package/dist/workflow-graph-placeholder-DHPA04Oz.cjs +22 -0
- package/dist/workflow-graph-placeholder-DHPA04Oz.cjs.map +1 -0
- package/dist/workflow-graph-placeholder-I4TzvbtB.js +20 -0
- package/dist/workflow-graph-placeholder-I4TzvbtB.js.map +1 -0
- package/dist/workflow-layout.css +9 -0
- package/dist/workflow-nested-graph-C_H2PZWK.js +297 -0
- package/dist/workflow-nested-graph-C_H2PZWK.js.map +1 -0
- package/dist/workflow-nested-graph-CwvsbqsP.cjs +302 -0
- package/dist/workflow-nested-graph-CwvsbqsP.cjs.map +1 -0
- package/dist/workflow-step-action-BrtrLzIl.js +49 -0
- package/dist/workflow-step-action-BrtrLzIl.js.map +1 -0
- package/dist/workflow-step-action-D4Jh8rG3.cjs +52 -0
- package/dist/workflow-step-action-D4Jh8rG3.cjs.map +1 -0
- package/package.json +17 -19
- package/dist/field-error-id-DD7OARLU.js.map +0 -1
- package/dist/field-error-id-V_WejsRL.cjs.map +0 -1
- package/dist/src/store/playground-store.d.ts +0 -18
- package/dist/src/test/highlight-api.d.ts +0 -30
- package/dist/src/test/msw-server.d.ts +0 -1
- package/dist/src/test/vitest-setup.d.ts +0 -1
- package/dist/store/playground-store.cjs.js +0 -21
- package/dist/store/playground-store.cjs.js.map +0 -1
- package/dist/store/playground-store.d.ts +0 -2
- package/dist/store/playground-store.es.js +0 -17
- package/dist/store/playground-store.es.js.map +0 -1
- package/dist/theme-provider-CQKmlkHX.js.map +0 -1
- package/dist/theme-provider-aO5-jZVp.cjs.map +0 -1
- package/dist/tool-call-CIeNEYpK.js.map +0 -1
- package/dist/tool-call-CnEm3eE0.cjs.map +0 -1
- package/dist/tool-presentation-BGWx2mEc.cjs.map +0 -1
- package/dist/tool-presentation-D-smNbXC.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog-Ohr1b6-O.cjs","sources":["../src/ds/components/AlertDialog/alert-dialog.tsx"],"sourcesContent":["import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';\nimport * as React from 'react';\n\nimport { buttonVariants } from '@/ds/components/Button/Button';\nimport { dialogSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { asChildRenderProps } from '@/lib/as-child';\nimport { cn } from '@/lib/utils';\n\nimport '@/ds/components/Dialog/dialog.css';\n\nconst AlertDialogRoot = AlertDialogPrimitive.Root;\n\nfunction AlertDialog({\n open,\n onOpenChange,\n children,\n}: {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}) {\n return (\n <AlertDialogRoot open={open} onOpenChange={onOpenChange}>\n {children}\n </AlertDialogRoot>\n );\n}\n\ntype AlertDialogTriggerProps = AlertDialogPrimitive.Trigger.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst AlertDialogTrigger = React.forwardRef<HTMLButtonElement, AlertDialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => {\n return (\n <AlertDialogPrimitive.Trigger ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </AlertDialogPrimitive.Trigger>\n );\n },\n);\nAlertDialogTrigger.displayName = 'AlertDialogTrigger';\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\ntype AlertDialogOverlayProps = Omit<AlertDialogPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n};\n\nconst AlertDialogOverlay = React.forwardRef<HTMLDivElement, AlertDialogOverlayProps>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Backdrop\n ref={ref}\n className={cn('dialog-overlay-anim fixed inset-0 z-50 bg-scrim backdrop-blur-xs', className)}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = 'AlertDialogOverlay';\n\ntype AlertDialogContentProps = Omit<AlertDialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n};\n\nconst AlertDialogContent = React.forwardRef<HTMLDivElement, AlertDialogContentProps>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n ref={ref}\n data-slot=\"alert-dialog-content\"\n className={cn(\n 'dialog-content-anim',\n 'fixed top-[50%] left-[50%] z-50 grid translate-[-50%]',\n 'w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-xl backdrop-blur-md',\n dialogSurfaceStyle,\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = 'AlertDialogContent';\n\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-0.5 px-3 py-2.5 text-left', className)} {...props} />\n);\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse gap-1.5 px-3 py-2 sm:flex-row sm:justify-end', className)} {...props} />\n);\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\nconst AlertDialogBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('max-h-[50vh] overflow-y-auto p-3', className)} {...props} />\n);\nAlertDialogBody.displayName = 'AlertDialogBody';\n\ntype AlertDialogTitleProps = Omit<AlertDialogPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst AlertDialogTitle = React.forwardRef<HTMLHeadingElement, AlertDialogTitleProps>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title ref={ref} className={cn('text-subheading', className)} {...props} />\n));\nAlertDialogTitle.displayName = 'AlertDialogTitle';\n\ntype AlertDialogDescriptionProps = Omit<AlertDialogPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst AlertDialogDescription = React.forwardRef<HTMLParagraphElement, AlertDialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn('text-caption text-muted-foreground', className)}\n {...props}\n />\n ),\n);\nAlertDialogDescription.displayName = 'AlertDialogDescription';\n\ntype AlertDialogActionProps = Omit<AlertDialogPrimitive.Close.Props, 'className'> & {\n className?: string;\n};\n\nconst AlertDialogAction = React.forwardRef<HTMLButtonElement, AlertDialogActionProps>(\n ({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Close\n ref={ref}\n className={cn(buttonVariants({ variant: 'primary', size: 'lg' }), className)}\n {...props}\n />\n ),\n);\nAlertDialogAction.displayName = 'AlertDialogAction';\n\nconst AlertDialogCancel = React.forwardRef<HTMLButtonElement, AlertDialogActionProps>(\n ({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Close\n ref={ref}\n className={cn(buttonVariants({ variant: 'default', size: 'lg' }), className)}\n {...props}\n />\n ),\n);\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\nAlertDialog.Trigger = AlertDialogTrigger;\nAlertDialog.Portal = AlertDialogPortal;\nAlertDialog.Overlay = AlertDialogOverlay;\nAlertDialog.Content = AlertDialogContent;\nAlertDialog.Header = AlertDialogHeader;\nAlertDialog.Footer = AlertDialogFooter;\nAlertDialog.Body = AlertDialogBody;\nAlertDialog.Title = AlertDialogTitle;\nAlertDialog.Description = AlertDialogDescription;\nAlertDialog.Action = AlertDialogAction;\nAlertDialog.Cancel = AlertDialogCancel;\n\nexport { AlertDialog };\n"],"names":["AlertDialogPrimitive","jsx","React","asChildRenderProps","cn","jsxs","dialogSurfaceStyle","buttonVariants"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { EditorView, lineNumbers } from '@codemirror/view';
|
|
|
7
7
|
import { tags } from '@lezer/highlight';
|
|
8
8
|
import { draculaInit } from '@uiw/codemirror-theme-dracula';
|
|
9
9
|
import { useRef, useMemo, useEffect } from 'react';
|
|
10
|
-
import { u as useTheme } from './theme-provider-
|
|
10
|
+
import { u as useTheme } from './theme-provider-BbMYMtxP.js';
|
|
11
11
|
import { raisedSurfaceStyle } from './primitives/raised-surface.es.js';
|
|
12
12
|
|
|
13
13
|
const removed = "var(--accent2)";
|
|
@@ -142,4 +142,4 @@ function CodeDiff({ codeA, codeB }) {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
export { CodeDiff as C };
|
|
145
|
-
//# sourceMappingURL=code-diff-
|
|
145
|
+
//# sourceMappingURL=code-diff-BgmXIX2v.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-diff-Hao35skN.js","sources":["../src/ds/components/CodeDiff/code-diff.tsx"],"sourcesContent":["'use client';\n\nimport { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { MergeView } from '@codemirror/merge';\nimport type { Extension } from '@codemirror/state';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView, lineNumbers } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\nconst removed = 'var(--accent2)';\nconst added = 'var(--accent1)';\nconst tint = (color: string, pct: number) => `color-mix(in oklch, ${color} ${pct}%, transparent)`;\n\n// GitHub-like split diff: red bands for removed lines (left), green bands for\n// added lines (right), with a stronger tint on the exact changed text.\nconst diffOverrides = EditorView.theme({\n '&.cm-editor .cm-line': { lineHeight: '1.5' },\n '&.cm-editor .cm-gutters': { border: 'none', backgroundColor: 'transparent' },\n '&.cm-editor .cm-lineNumbers .cm-gutterElement': { color: 'var(--placeholder)', minWidth: '2.5rem' },\n '&.cm-editor .cm-changeGutter': { width: '3px', paddingLeft: '0' },\n\n '&.cm-merge-a .cm-changedLine': {\n backgroundColor: tint(removed, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-b .cm-changedLine': {\n backgroundColor: tint(added, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-a .cm-changedText': {\n backgroundColor: tint(removed, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-b .cm-changedText': {\n backgroundColor: tint(added, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-a .cm-changedLineGutter': { background: removed },\n '&.cm-merge-b .cm-changedLineGutter': { background: added },\n\n '&.cm-editor .cm-collapsedLines': {\n backgroundColor: 'var(--muted)',\n backgroundImage: 'none',\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n padding: '4px 12px',\n cursor: 'pointer',\n },\n '&.cm-editor .cm-collapsedLines:hover': {\n backgroundImage: 'linear-gradient(var(--fill-subtle), var(--fill-subtle))',\n },\n});\n\nexport interface CodeDiffProps {\n codeA: string;\n codeB: string;\n}\n\nfunction buildDiffDarkTheme(): 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\nfunction buildDiffLightTheme(): 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 },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\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 collapseUnchanged = { margin: 3, minSize: 4 };\n\nexport function CodeDiff({ codeA, codeB }: CodeDiffProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const isDark = useTheme().resolvedTheme === 'dark';\n const theme = useMemo(() => (isDark ? buildDiffDarkTheme() : buildDiffLightTheme()), [isDark]);\n\n useEffect(() => {\n const parent = containerRef.current;\n if (!parent) return;\n\n const extensions = [\n json(),\n theme,\n diffOverrides,\n lineNumbers(),\n EditorView.lineWrapping,\n EditorState.readOnly.of(true),\n ];\n\n const mergeView = new MergeView({\n parent,\n a: { doc: codeA, extensions },\n b: { doc: codeB, extensions },\n gutter: true,\n highlightChanges: true,\n collapseUnchanged,\n });\n return () => mergeView.destroy();\n }, [codeA, codeB, theme]);\n\n return (\n <div className={`${raisedSurfaceStyle} relative overflow-auto rounded-xl`}>\n <div className=\"absolute top-0 left-1/2 z-10 h-full w-px bg-border dark:bg-white/10\" />\n <div\n ref={containerRef}\n className=\"[&_.cm-editor]:bg-transparent [&_.cm-editor]:py-3 [&_.cm-gutters]:bg-transparent [&_.cm-mergeViewEditor]:flex-1\"\n />\n </div>\n );\n}\n"],"names":["t"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-diff-BgmXIX2v.js","sources":["../src/ds/components/CodeDiff/code-diff.tsx"],"sourcesContent":["'use client';\n\nimport { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { MergeView } from '@codemirror/merge';\nimport type { Extension } from '@codemirror/state';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView, lineNumbers } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\nconst removed = 'var(--accent2)';\nconst added = 'var(--accent1)';\nconst tint = (color: string, pct: number) => `color-mix(in oklch, ${color} ${pct}%, transparent)`;\n\n// GitHub-like split diff: red bands for removed lines (left), green bands for\n// added lines (right), with a stronger tint on the exact changed text.\nconst diffOverrides = EditorView.theme({\n '&.cm-editor .cm-line': { lineHeight: '1.5' },\n '&.cm-editor .cm-gutters': { border: 'none', backgroundColor: 'transparent' },\n '&.cm-editor .cm-lineNumbers .cm-gutterElement': { color: 'var(--placeholder)', minWidth: '2.5rem' },\n '&.cm-editor .cm-changeGutter': { width: '3px', paddingLeft: '0' },\n\n '&.cm-merge-a .cm-changedLine': {\n backgroundColor: tint(removed, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-b .cm-changedLine': {\n backgroundColor: tint(added, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-a .cm-changedText': {\n backgroundColor: tint(removed, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-b .cm-changedText': {\n backgroundColor: tint(added, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-a .cm-changedLineGutter': { background: removed },\n '&.cm-merge-b .cm-changedLineGutter': { background: added },\n\n '&.cm-editor .cm-collapsedLines': {\n backgroundColor: 'var(--muted)',\n backgroundImage: 'none',\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n padding: '4px 12px',\n cursor: 'pointer',\n },\n '&.cm-editor .cm-collapsedLines:hover': {\n backgroundImage: 'linear-gradient(var(--fill-subtle), var(--fill-subtle))',\n },\n});\n\nexport interface CodeDiffProps {\n codeA: string;\n codeB: string;\n}\n\nfunction buildDiffDarkTheme(): 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\nfunction buildDiffLightTheme(): 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 },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\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 collapseUnchanged = { margin: 3, minSize: 4 };\n\nexport function CodeDiff({ codeA, codeB }: CodeDiffProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const isDark = useTheme().resolvedTheme === 'dark';\n const theme = useMemo(() => (isDark ? buildDiffDarkTheme() : buildDiffLightTheme()), [isDark]);\n\n useEffect(() => {\n const parent = containerRef.current;\n if (!parent) return;\n\n const extensions = [\n json(),\n theme,\n diffOverrides,\n lineNumbers(),\n EditorView.lineWrapping,\n EditorState.readOnly.of(true),\n ];\n\n const mergeView = new MergeView({\n parent,\n a: { doc: codeA, extensions },\n b: { doc: codeB, extensions },\n gutter: true,\n highlightChanges: true,\n collapseUnchanged,\n });\n return () => mergeView.destroy();\n }, [codeA, codeB, theme]);\n\n return (\n <div className={`${raisedSurfaceStyle} relative overflow-auto rounded-xl`}>\n <div className=\"absolute top-0 left-1/2 z-10 h-full w-px bg-border dark:bg-white/10\" />\n <div\n ref={containerRef}\n className=\"[&_.cm-editor]:bg-transparent [&_.cm-editor]:py-3 [&_.cm-gutters]:bg-transparent [&_.cm-mergeViewEditor]:flex-1\"\n />\n </div>\n );\n}\n"],"names":["t"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const view = require('@codemirror/view');
|
|
|
9
9
|
const highlight = require('@lezer/highlight');
|
|
10
10
|
const codemirrorThemeDracula = require('@uiw/codemirror-theme-dracula');
|
|
11
11
|
const React = require('react');
|
|
12
|
-
const themeProvider = require('./theme-provider-
|
|
12
|
+
const themeProvider = require('./theme-provider-DDGNiyY_.cjs');
|
|
13
13
|
const primitives_raisedSurface = require('./primitives/raised-surface.cjs.js');
|
|
14
14
|
|
|
15
15
|
const removed = "var(--accent2)";
|
|
@@ -144,4 +144,4 @@ function CodeDiff({ codeA, codeB }) {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
exports.CodeDiff = CodeDiff;
|
|
147
|
-
//# sourceMappingURL=code-diff-
|
|
147
|
+
//# sourceMappingURL=code-diff-yR3Gan2m.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-diff-CG8veSa-.cjs","sources":["../src/ds/components/CodeDiff/code-diff.tsx"],"sourcesContent":["'use client';\n\nimport { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { MergeView } from '@codemirror/merge';\nimport type { Extension } from '@codemirror/state';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView, lineNumbers } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\nconst removed = 'var(--accent2)';\nconst added = 'var(--accent1)';\nconst tint = (color: string, pct: number) => `color-mix(in oklch, ${color} ${pct}%, transparent)`;\n\n// GitHub-like split diff: red bands for removed lines (left), green bands for\n// added lines (right), with a stronger tint on the exact changed text.\nconst diffOverrides = EditorView.theme({\n '&.cm-editor .cm-line': { lineHeight: '1.5' },\n '&.cm-editor .cm-gutters': { border: 'none', backgroundColor: 'transparent' },\n '&.cm-editor .cm-lineNumbers .cm-gutterElement': { color: 'var(--placeholder)', minWidth: '2.5rem' },\n '&.cm-editor .cm-changeGutter': { width: '3px', paddingLeft: '0' },\n\n '&.cm-merge-a .cm-changedLine': {\n backgroundColor: tint(removed, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-b .cm-changedLine': {\n backgroundColor: tint(added, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-a .cm-changedText': {\n backgroundColor: tint(removed, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-b .cm-changedText': {\n backgroundColor: tint(added, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-a .cm-changedLineGutter': { background: removed },\n '&.cm-merge-b .cm-changedLineGutter': { background: added },\n\n '&.cm-editor .cm-collapsedLines': {\n backgroundColor: 'var(--muted)',\n backgroundImage: 'none',\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n padding: '4px 12px',\n cursor: 'pointer',\n },\n '&.cm-editor .cm-collapsedLines:hover': {\n backgroundImage: 'linear-gradient(var(--fill-subtle), var(--fill-subtle))',\n },\n});\n\nexport interface CodeDiffProps {\n codeA: string;\n codeB: string;\n}\n\nfunction buildDiffDarkTheme(): 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\nfunction buildDiffLightTheme(): 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 },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\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 collapseUnchanged = { margin: 3, minSize: 4 };\n\nexport function CodeDiff({ codeA, codeB }: CodeDiffProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const isDark = useTheme().resolvedTheme === 'dark';\n const theme = useMemo(() => (isDark ? buildDiffDarkTheme() : buildDiffLightTheme()), [isDark]);\n\n useEffect(() => {\n const parent = containerRef.current;\n if (!parent) return;\n\n const extensions = [\n json(),\n theme,\n diffOverrides,\n lineNumbers(),\n EditorView.lineWrapping,\n EditorState.readOnly.of(true),\n ];\n\n const mergeView = new MergeView({\n parent,\n a: { doc: codeA, extensions },\n b: { doc: codeB, extensions },\n gutter: true,\n highlightChanges: true,\n collapseUnchanged,\n });\n return () => mergeView.destroy();\n }, [codeA, codeB, theme]);\n\n return (\n <div className={`${raisedSurfaceStyle} relative overflow-auto rounded-xl`}>\n <div className=\"absolute top-0 left-1/2 z-10 h-full w-px bg-border dark:bg-white/10\" />\n <div\n ref={containerRef}\n className=\"[&_.cm-editor]:bg-transparent [&_.cm-editor]:py-3 [&_.cm-gutters]:bg-transparent [&_.cm-mergeViewEditor]:flex-1\"\n />\n </div>\n );\n}\n"],"names":["EditorView","draculaInit","t","HighlightStyle","syntaxHighlighting","useRef","useTheme","useMemo","useEffect","json","lineNumbers","EditorState","MergeView","jsxs","raisedSurfaceStyle","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-diff-yR3Gan2m.cjs","sources":["../src/ds/components/CodeDiff/code-diff.tsx"],"sourcesContent":["'use client';\n\nimport { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { MergeView } from '@codemirror/merge';\nimport type { Extension } from '@codemirror/state';\nimport { EditorState } from '@codemirror/state';\nimport { EditorView, lineNumbers } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\nconst removed = 'var(--accent2)';\nconst added = 'var(--accent1)';\nconst tint = (color: string, pct: number) => `color-mix(in oklch, ${color} ${pct}%, transparent)`;\n\n// GitHub-like split diff: red bands for removed lines (left), green bands for\n// added lines (right), with a stronger tint on the exact changed text.\nconst diffOverrides = EditorView.theme({\n '&.cm-editor .cm-line': { lineHeight: '1.5' },\n '&.cm-editor .cm-gutters': { border: 'none', backgroundColor: 'transparent' },\n '&.cm-editor .cm-lineNumbers .cm-gutterElement': { color: 'var(--placeholder)', minWidth: '2.5rem' },\n '&.cm-editor .cm-changeGutter': { width: '3px', paddingLeft: '0' },\n\n '&.cm-merge-a .cm-changedLine': {\n backgroundColor: tint(removed, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-b .cm-changedLine': {\n backgroundColor: tint(added, 14),\n backgroundImage: 'none',\n },\n '&.cm-merge-a .cm-changedText': {\n backgroundColor: tint(removed, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-b .cm-changedText': {\n backgroundColor: tint(added, 35),\n backgroundImage: 'none',\n borderRadius: '2px',\n },\n '&.cm-merge-a .cm-changedLineGutter': { background: removed },\n '&.cm-merge-b .cm-changedLineGutter': { background: added },\n\n '&.cm-editor .cm-collapsedLines': {\n backgroundColor: 'var(--muted)',\n backgroundImage: 'none',\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n padding: '4px 12px',\n cursor: 'pointer',\n },\n '&.cm-editor .cm-collapsedLines:hover': {\n backgroundImage: 'linear-gradient(var(--fill-subtle), var(--fill-subtle))',\n },\n});\n\nexport interface CodeDiffProps {\n codeA: string;\n codeB: string;\n}\n\nfunction buildDiffDarkTheme(): 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\nfunction buildDiffLightTheme(): 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 },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\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 collapseUnchanged = { margin: 3, minSize: 4 };\n\nexport function CodeDiff({ codeA, codeB }: CodeDiffProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const isDark = useTheme().resolvedTheme === 'dark';\n const theme = useMemo(() => (isDark ? buildDiffDarkTheme() : buildDiffLightTheme()), [isDark]);\n\n useEffect(() => {\n const parent = containerRef.current;\n if (!parent) return;\n\n const extensions = [\n json(),\n theme,\n diffOverrides,\n lineNumbers(),\n EditorView.lineWrapping,\n EditorState.readOnly.of(true),\n ];\n\n const mergeView = new MergeView({\n parent,\n a: { doc: codeA, extensions },\n b: { doc: codeB, extensions },\n gutter: true,\n highlightChanges: true,\n collapseUnchanged,\n });\n return () => mergeView.destroy();\n }, [codeA, codeB, theme]);\n\n return (\n <div className={`${raisedSurfaceStyle} relative overflow-auto rounded-xl`}>\n <div className=\"absolute top-0 left-1/2 z-10 h-full w-px bg-border dark:bg-white/10\" />\n <div\n ref={containerRef}\n className=\"[&_.cm-editor]:bg-transparent [&_.cm-editor]:py-3 [&_.cm-gutters]:bg-transparent [&_.cm-mergeViewEditor]:flex-1\"\n />\n </div>\n );\n}\n"],"names":["EditorView","draculaInit","t","HighlightStyle","syntaxHighlighting","useRef","useTheme","useMemo","useEffect","json","lineNumbers","EditorState","MergeView","jsxs","raisedSurfaceStyle","jsx"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ const index = require('./index-C-fBJhpb.cjs');
|
|
|
13
13
|
const React = require('react');
|
|
14
14
|
const autocomplete = require('@codemirror/autocomplete');
|
|
15
15
|
const copyButton = require('./copy-button-D2MTGxq_.cjs');
|
|
16
|
-
const themeProvider = require('./theme-provider-
|
|
16
|
+
const themeProvider = require('./theme-provider-DDGNiyY_.cjs');
|
|
17
17
|
const primitives_formElement = require('./primitives/form-element.cjs.js');
|
|
18
18
|
const utils_cn = require('./cn-DG0X1KEP.cjs');
|
|
19
19
|
|
|
@@ -492,4 +492,4 @@ exports.createVariableAutocomplete = createVariableAutocomplete;
|
|
|
492
492
|
exports.flattenSchemaToVariables = flattenSchemaToVariables;
|
|
493
493
|
exports.useCodemirrorTheme = useCodemirrorTheme;
|
|
494
494
|
exports.variableHighlight = variableHighlight;
|
|
495
|
-
//# sourceMappingURL=code-editor-
|
|
495
|
+
//# sourceMappingURL=code-editor-BYGlHRhb.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-editor-LgrhXmOy.cjs","sources":["../src/ds/components/CodeEditor/code-languages.ts","../src/ds/components/CodeEditor/schema-to-variables.ts","../src/ds/components/CodeEditor/variable-autocomplete-extension.ts","../src/ds/components/CodeEditor/variable-highlight-extension.ts","../src/ds/components/CodeEditor/code-editor.tsx"],"sourcesContent":["import { LanguageDescription, LanguageSupport, StreamLanguage } from '@codemirror/language';\n\nfunction legacy(parser: Parameters<typeof StreamLanguage.define>[0]) {\n return new LanguageSupport(StreamLanguage.define(parser));\n}\n\n/**\n * A minimal subset of CodeMirror language descriptions used for fenced code\n * blocks inside markdown. Mirrors the relevant entries from\n * `@codemirror/language-data` but only the languages we actually support, so\n * bundlers don't have to emit a chunk for every known language.\n */\nexport const codeLanguages = [\n LanguageDescription.of({\n name: 'JavaScript',\n alias: ['ecmascript', 'js', 'node'],\n extensions: ['js', 'mjs', 'cjs'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript());\n },\n }),\n LanguageDescription.of({\n name: 'JSON',\n alias: ['json5'],\n extensions: ['json', 'map'],\n load() {\n return import('@codemirror/lang-json').then(m => m.json());\n },\n }),\n LanguageDescription.of({\n name: 'JSX',\n extensions: ['jsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Markdown',\n extensions: ['md', 'markdown', 'mkd'],\n load() {\n return import('@codemirror/lang-markdown').then(m => m.markdown());\n },\n }),\n LanguageDescription.of({\n name: 'TSX',\n extensions: ['tsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true, typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'TypeScript',\n alias: ['ts'],\n extensions: ['ts', 'mts', 'cts'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Shell',\n alias: ['bash', 'sh', 'zsh'],\n extensions: ['sh', 'ksh', 'bash'],\n filename: /^PKGBUILD$/,\n load() {\n return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell));\n },\n }),\n];\n","import type { JsonSchema, JsonSchemaProperty } from '@/lib/json-schema';\n\n/**\n * Represents a variable completion option derived from a schema\n */\nexport interface VariableCompletion {\n /** The dot-notation path (e.g., \"user.name\") */\n path: string;\n /** Display label for the autocomplete */\n label: string;\n /** Description from the schema, if available */\n description?: string;\n /** The type of the property */\n type?: string;\n}\n\n/**\n * Flattens a JSON Schema into a list of variable completions for autocomplete.\n * Recursively extracts property paths using dot-notation.\n *\n * @param schema - The JSON Schema to flatten\n * @param maxDepth - Maximum recursion depth (default: 5)\n * @returns Array of variable completions\n *\n * @example\n * ```ts\n * const schema = {\n * type: 'object',\n * properties: {\n * user: {\n * type: 'object',\n * properties: {\n * name: { type: 'string' },\n * email: { type: 'string' }\n * }\n * }\n * }\n * };\n *\n * flattenSchemaToVariables(schema);\n * // Returns:\n * // [\n * // { path: 'user', label: 'user', type: 'object' },\n * // { path: 'user.name', label: 'user.name', type: 'string' },\n * // { path: 'user.email', label: 'user.email', type: 'string' }\n * // ]\n * ```\n */\nexport function flattenSchemaToVariables(schema: JsonSchema | undefined, maxDepth = 5): VariableCompletion[] {\n if (!schema?.properties) {\n return [];\n }\n\n const results: VariableCompletion[] = [];\n\n function processProperty(property: JsonSchemaProperty, path: string, depth: number): void {\n if (depth > maxDepth) {\n return;\n }\n\n const type = Array.isArray(property.type) ? property.type.join(' | ') : property.type;\n\n results.push({\n path,\n label: path,\n description: property.description ?? property.title,\n type,\n });\n\n // Recurse into nested object properties\n if (property.properties) {\n for (const [key, nestedProperty] of Object.entries(property.properties)) {\n processProperty(nestedProperty, `${path}.${key}`, depth + 1);\n }\n }\n\n // Handle array items if they have properties (array of objects)\n if (property.items?.properties) {\n // Add a placeholder for array item access (e.g., items[0].name)\n for (const [key, itemProperty] of Object.entries(property.items.properties)) {\n processProperty(itemProperty, `${path}[].${key}`, depth + 1);\n }\n }\n }\n\n for (const [key, property] of Object.entries(schema.properties)) {\n processProperty(property, key, 1);\n }\n\n return results;\n}\n","import { autocompletion } from '@codemirror/autocomplete';\nimport type { Completion, CompletionContext, CompletionResult } from '@codemirror/autocomplete';\nimport type { Extension } from '@codemirror/state';\nimport { flattenSchemaToVariables } from './schema-to-variables';\nimport type { VariableCompletion } from './schema-to-variables';\nimport type { JsonSchema } from '@/lib/json-schema';\n\n/**\n * Creates a CodeMirror autocomplete extension for {{variable}} placeholders.\n * Triggers when the user types `{{` and shows suggestions derived from the schema.\n *\n * @param schema - JSON Schema to derive variable suggestions from\n * @returns CodeMirror Extension that provides variable autocomplete\n *\n * @example\n * ```tsx\n * const schema = {\n * type: 'object',\n * properties: {\n * user: { type: 'object', properties: { name: { type: 'string' } } }\n * }\n * };\n *\n * <CodeMirror extensions={[createVariableAutocomplete(schema)]} />\n * // Typing \"{{\" will show: user, user.name\n * ```\n */\nexport function createVariableAutocomplete(schema: JsonSchema | undefined): Extension {\n const variables = flattenSchemaToVariables(schema);\n\n return autocompletion({\n override: [createVariableCompletionSource(variables)],\n defaultKeymap: true,\n closeOnBlur: true,\n icons: false,\n });\n}\n\n/**\n * Creates a completion source function for CodeMirror's autocompletion.\n */\nfunction createVariableCompletionSource(\n variables: VariableCompletion[],\n): (context: CompletionContext) => CompletionResult | null {\n return (context: CompletionContext): CompletionResult | null => {\n // Look for {{ pattern before cursor\n const beforeCursor = context.state.sliceDoc(Math.max(0, context.pos - 50), context.pos);\n const match = beforeCursor.match(/\\{\\{([a-zA-Z0-9_.\\[\\]]*)?$/);\n\n if (!match) {\n return null;\n }\n\n // The text after {{ that we're matching against\n const prefix = match[1] ?? '';\n const startPos = context.pos - prefix.length;\n\n // Filter variables based on what the user has typed\n const filteredVariables = prefix\n ? variables.filter(v => v.path.toLowerCase().startsWith(prefix.toLowerCase()))\n : variables;\n\n if (filteredVariables.length === 0) {\n return null;\n }\n\n const completions: Completion[] = filteredVariables.map(variable => ({\n label: variable.path,\n displayLabel: variable.path,\n detail: variable.type,\n info: variable.description,\n apply: (view, completion, from, to) => {\n // Check if }} already follows the cursor\n const afterCursor = view.state.sliceDoc(to, to + 2);\n const hasClosingBraces = afterCursor === '}}';\n\n const insertText = hasClosingBraces ? completion.label : `${completion.label}}}`;\n\n view.dispatch({\n changes: { from, to, insert: insertText },\n selection: { anchor: from + insertText.length },\n });\n },\n }));\n\n return {\n from: startPos,\n options: completions,\n validFor: /^[a-zA-Z0-9_.\\[\\]]*$/,\n };\n };\n}\n","import type { DecorationSet, EditorView, ViewUpdate } from '@codemirror/view';\nimport { Decoration, MatchDecorator, ViewPlugin } from '@codemirror/view';\n\n/**\n * Regex pattern to match variable placeholders like {{variableName}} or {{user.name}}\n * Matches: {{ followed by a valid identifier path (with optional dot notation), then }}\n */\nexport const VARIABLE_PATTERN = /\\{\\{([a-zA-Z_][a-zA-Z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z0-9_]*)*)\\}\\}/g;\n\nconst variableDecoration = Decoration.mark({\n class: 'cm-variable-highlight',\n});\n\nconst variableMatcher = new MatchDecorator({\n regexp: VARIABLE_PATTERN,\n decoration: () => variableDecoration,\n});\n\nconst variableHighlightPlugin = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = variableMatcher.createDeco(view);\n }\n\n update(update: ViewUpdate) {\n this.decorations = variableMatcher.updateDeco(update, this.decorations);\n }\n },\n {\n decorations: v => v.decorations,\n },\n);\n\n/**\n * CodeMirror extension that highlights {{variableName}} patterns\n * with orange color and semibold weight\n */\nexport const variableHighlight = variableHighlightPlugin;\n","import { jsonLanguage } from '@codemirror/lang-json';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { EditorState, Prec } from '@codemirror/state';\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 CodeMirror from '@uiw/react-codemirror';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useMemo } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { codeLanguages } from './code-languages';\nimport { createVariableAutocomplete } from './variable-autocomplete-extension';\nimport { variableHighlight } from './variable-highlight-extension';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { fieldErrorRimWithin, inputSurfaceAndFocusWithinStyle } from '@/ds/primitives/form-element';\nimport type { JsonSchema } from '@/lib/json-schema';\nimport { cn } from '@/lib/utils';\n\nexport type CodeEditorLanguage = 'json' | 'markdown';\n\n/** Original dark theme — draculaInit + custom overrides. Unchanged from before light mode work. */\nfunction buildDarkTheme(): Extension {\n const baseTheme = draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--placeholder)',\n background: 'transparent',\n foreground: 'var(--foreground)',\n caret: 'var(--foreground)',\n },\n styles: [\n { tag: [t.className, t.propertyName], color: 'var(--foreground)' },\n { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: t.emphasis, fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: t.strong, fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: t.quote, fontStyle: 'italic', color: 'var(--placeholder)' },\n ],\n });\n\n const customLineNumberTheme = EditorView.theme({\n '.cm-editor': {\n backgroundColor: 'transparent',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '.cm-selectionBackground, .cm-content ::selection': {\n backgroundColor: 'color-mix(in srgb, var(--accent3) 22%, transparent)',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\n },\n });\n\n return [baseTheme, customLineNumberTheme];\n}\n\nfunction buildLightTheme(): 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-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection':\n {\n background: 'color-mix(in srgb, var(--accent3) 22%, transparent) !important',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\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 { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: [t.emphasis], fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: [t.strong], fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: [t.deleted], color: 'var(--accent2)' },\n { tag: t.invalid, color: 'var(--error)' },\n { tag: [t.standard(t.tagName)], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\n// eslint-disable-next-line react-refresh/only-export-components -- shared hook intentionally co-located with the editor it themes\nexport const useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\nconst codeEditorVariants = cva(\n cn(\n 'relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden',\n 'transition-colors duration-normal ease-out-custom',\n ),\n {\n variants: {\n variant: {\n default: cn(inputSurfaceAndFocusWithinStyle, 'rounded-md p-1', fieldErrorRimWithin),\n embedded: 'rounded-none border-none bg-transparent p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst editorFocusAttributes = Prec.highest(\n EditorView.editorAttributes.of({\n style: 'outline: none',\n }),\n);\n\nconst editorFocusTheme = Prec.highest(\n EditorView.theme({\n '&': {\n outline: 'none',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-scroller': {\n outline: 'none',\n },\n '.cm-content': {\n outline: 'none',\n },\n '.cm-content:focus': {\n outline: 'none',\n },\n }),\n);\n\nconst editorFocusExtensions: Extension[] = [editorFocusAttributes, editorFocusTheme];\n\ntype CodeEditorContentAttributes = {\n 'aria-label': string;\n id?: string;\n 'aria-describedby'?: string;\n 'aria-invalid'?: string;\n};\n\nexport type CodeEditorProps = {\n data?: Record<string, unknown> | Array<Record<string, unknown>>;\n value?: string;\n onChange?: (value: string) => void;\n showCopyButton?: boolean;\n className?: string;\n highlightVariables?: boolean;\n language?: CodeEditorLanguage;\n placeholder?: string;\n /** JSON Schema to enable variable autocomplete for {{variable}} placeholders (markdown only) */\n schema?: JsonSchema;\n autoFocus?: boolean;\n /** Show line numbers in the gutter (default: true) */\n lineNumbers?: boolean;\n /** Wrap long lines within the editor viewport (default: true) */\n lineWrapping?: boolean;\n /** When false, makes the editor read-only */\n editable?: boolean;\n} & VariantProps<typeof codeEditorVariants> &\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeEditor = forwardRef<ReactCodeMirrorRef, CodeEditorProps>(\n (\n {\n data,\n value,\n onChange,\n showCopyButton = true,\n className,\n language = 'json',\n highlightVariables = false,\n placeholder,\n schema,\n autoFocus,\n lineNumbers = true,\n lineWrapping = true,\n editable,\n variant,\n id,\n 'aria-label': ariaLabel = 'Code editor',\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n ...props\n },\n ref,\n ) => {\n const theme = useCodemirrorTheme();\n const formattedCode = data ? JSON.stringify(data, null, 2) : (value ?? '');\n\n const extensions = useMemo(() => {\n const contentAttributes: CodeEditorContentAttributes = { 'aria-label': ariaLabel };\n if (id) contentAttributes.id = id;\n if (ariaDescribedBy) contentAttributes['aria-describedby'] = ariaDescribedBy;\n if (ariaInvalid !== undefined) contentAttributes['aria-invalid'] = String(ariaInvalid);\n\n const exts: Extension[] = [...editorFocusExtensions, EditorView.contentAttributes.of(contentAttributes)];\n\n if (lineWrapping) {\n exts.push(EditorView.lineWrapping);\n }\n\n if (language === 'json') {\n exts.push(jsonLanguage);\n } else if (language === 'markdown') {\n exts.push(markdown({ base: markdownLanguage, codeLanguages }));\n }\n\n if (highlightVariables && language === 'markdown') {\n exts.push(variableHighlight);\n }\n\n if (schema && language === 'markdown') {\n exts.push(createVariableAutocomplete(schema));\n }\n\n if (editable === false) {\n exts.push(EditorState.readOnly.of(true));\n }\n\n return exts;\n }, [language, highlightVariables, schema, editable, lineWrapping, id, ariaLabel, ariaDescribedBy, ariaInvalid]);\n\n return (\n <div className={cn(codeEditorVariants({ variant }), className)} {...props}>\n {showCopyButton && <CopyButton content={formattedCode} className=\"absolute top-2 right-2 z-20\" />}\n <CodeMirror\n ref={ref}\n value={formattedCode}\n theme={theme}\n extensions={extensions}\n onChange={onChange}\n editable={editable}\n aria-label={ariaLabel}\n placeholder={placeholder}\n height=\"100%\"\n style={{ height: '100%' }}\n autoFocus={autoFocus}\n basicSetup={{ lineNumbers }}\n />\n </div>\n );\n },\n);\n"],"names":["LanguageSupport","StreamLanguage","LanguageDescription","autocompletion","Decoration","MatchDecorator","ViewPlugin","draculaInit","t","EditorView","HighlightStyle","syntaxHighlighting","useTheme","useMemo","cva","cn","inputSurfaceAndFocusWithinStyle","fieldErrorRimWithin","Prec","forwardRef","jsonLanguage","markdown","markdownLanguage","EditorState","jsxs","jsx","CopyButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-editor-BYGlHRhb.cjs","sources":["../src/ds/components/CodeEditor/code-languages.ts","../src/ds/components/CodeEditor/schema-to-variables.ts","../src/ds/components/CodeEditor/variable-autocomplete-extension.ts","../src/ds/components/CodeEditor/variable-highlight-extension.ts","../src/ds/components/CodeEditor/code-editor.tsx"],"sourcesContent":["import { LanguageDescription, LanguageSupport, StreamLanguage } from '@codemirror/language';\n\nfunction legacy(parser: Parameters<typeof StreamLanguage.define>[0]) {\n return new LanguageSupport(StreamLanguage.define(parser));\n}\n\n/**\n * A minimal subset of CodeMirror language descriptions used for fenced code\n * blocks inside markdown. Mirrors the relevant entries from\n * `@codemirror/language-data` but only the languages we actually support, so\n * bundlers don't have to emit a chunk for every known language.\n */\nexport const codeLanguages = [\n LanguageDescription.of({\n name: 'JavaScript',\n alias: ['ecmascript', 'js', 'node'],\n extensions: ['js', 'mjs', 'cjs'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript());\n },\n }),\n LanguageDescription.of({\n name: 'JSON',\n alias: ['json5'],\n extensions: ['json', 'map'],\n load() {\n return import('@codemirror/lang-json').then(m => m.json());\n },\n }),\n LanguageDescription.of({\n name: 'JSX',\n extensions: ['jsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Markdown',\n extensions: ['md', 'markdown', 'mkd'],\n load() {\n return import('@codemirror/lang-markdown').then(m => m.markdown());\n },\n }),\n LanguageDescription.of({\n name: 'TSX',\n extensions: ['tsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true, typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'TypeScript',\n alias: ['ts'],\n extensions: ['ts', 'mts', 'cts'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Shell',\n alias: ['bash', 'sh', 'zsh'],\n extensions: ['sh', 'ksh', 'bash'],\n filename: /^PKGBUILD$/,\n load() {\n return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell));\n },\n }),\n];\n","import type { JsonSchema, JsonSchemaProperty } from '@/lib/json-schema';\n\n/**\n * Represents a variable completion option derived from a schema\n */\nexport interface VariableCompletion {\n /** The dot-notation path (e.g., \"user.name\") */\n path: string;\n /** Display label for the autocomplete */\n label: string;\n /** Description from the schema, if available */\n description?: string;\n /** The type of the property */\n type?: string;\n}\n\n/**\n * Flattens a JSON Schema into a list of variable completions for autocomplete.\n * Recursively extracts property paths using dot-notation.\n *\n * @param schema - The JSON Schema to flatten\n * @param maxDepth - Maximum recursion depth (default: 5)\n * @returns Array of variable completions\n *\n * @example\n * ```ts\n * const schema = {\n * type: 'object',\n * properties: {\n * user: {\n * type: 'object',\n * properties: {\n * name: { type: 'string' },\n * email: { type: 'string' }\n * }\n * }\n * }\n * };\n *\n * flattenSchemaToVariables(schema);\n * // Returns:\n * // [\n * // { path: 'user', label: 'user', type: 'object' },\n * // { path: 'user.name', label: 'user.name', type: 'string' },\n * // { path: 'user.email', label: 'user.email', type: 'string' }\n * // ]\n * ```\n */\nexport function flattenSchemaToVariables(schema: JsonSchema | undefined, maxDepth = 5): VariableCompletion[] {\n if (!schema?.properties) {\n return [];\n }\n\n const results: VariableCompletion[] = [];\n\n function processProperty(property: JsonSchemaProperty, path: string, depth: number): void {\n if (depth > maxDepth) {\n return;\n }\n\n const type = Array.isArray(property.type) ? property.type.join(' | ') : property.type;\n\n results.push({\n path,\n label: path,\n description: property.description ?? property.title,\n type,\n });\n\n // Recurse into nested object properties\n if (property.properties) {\n for (const [key, nestedProperty] of Object.entries(property.properties)) {\n processProperty(nestedProperty, `${path}.${key}`, depth + 1);\n }\n }\n\n // Handle array items if they have properties (array of objects)\n if (property.items?.properties) {\n // Add a placeholder for array item access (e.g., items[0].name)\n for (const [key, itemProperty] of Object.entries(property.items.properties)) {\n processProperty(itemProperty, `${path}[].${key}`, depth + 1);\n }\n }\n }\n\n for (const [key, property] of Object.entries(schema.properties)) {\n processProperty(property, key, 1);\n }\n\n return results;\n}\n","import { autocompletion } from '@codemirror/autocomplete';\nimport type { Completion, CompletionContext, CompletionResult } from '@codemirror/autocomplete';\nimport type { Extension } from '@codemirror/state';\nimport { flattenSchemaToVariables } from './schema-to-variables';\nimport type { VariableCompletion } from './schema-to-variables';\nimport type { JsonSchema } from '@/lib/json-schema';\n\n/**\n * Creates a CodeMirror autocomplete extension for {{variable}} placeholders.\n * Triggers when the user types `{{` and shows suggestions derived from the schema.\n *\n * @param schema - JSON Schema to derive variable suggestions from\n * @returns CodeMirror Extension that provides variable autocomplete\n *\n * @example\n * ```tsx\n * const schema = {\n * type: 'object',\n * properties: {\n * user: { type: 'object', properties: { name: { type: 'string' } } }\n * }\n * };\n *\n * <CodeMirror extensions={[createVariableAutocomplete(schema)]} />\n * // Typing \"{{\" will show: user, user.name\n * ```\n */\nexport function createVariableAutocomplete(schema: JsonSchema | undefined): Extension {\n const variables = flattenSchemaToVariables(schema);\n\n return autocompletion({\n override: [createVariableCompletionSource(variables)],\n defaultKeymap: true,\n closeOnBlur: true,\n icons: false,\n });\n}\n\n/**\n * Creates a completion source function for CodeMirror's autocompletion.\n */\nfunction createVariableCompletionSource(\n variables: VariableCompletion[],\n): (context: CompletionContext) => CompletionResult | null {\n return (context: CompletionContext): CompletionResult | null => {\n // Look for {{ pattern before cursor\n const beforeCursor = context.state.sliceDoc(Math.max(0, context.pos - 50), context.pos);\n const match = beforeCursor.match(/\\{\\{([a-zA-Z0-9_.\\[\\]]*)?$/);\n\n if (!match) {\n return null;\n }\n\n // The text after {{ that we're matching against\n const prefix = match[1] ?? '';\n const startPos = context.pos - prefix.length;\n\n // Filter variables based on what the user has typed\n const filteredVariables = prefix\n ? variables.filter(v => v.path.toLowerCase().startsWith(prefix.toLowerCase()))\n : variables;\n\n if (filteredVariables.length === 0) {\n return null;\n }\n\n const completions: Completion[] = filteredVariables.map(variable => ({\n label: variable.path,\n displayLabel: variable.path,\n detail: variable.type,\n info: variable.description,\n apply: (view, completion, from, to) => {\n // Check if }} already follows the cursor\n const afterCursor = view.state.sliceDoc(to, to + 2);\n const hasClosingBraces = afterCursor === '}}';\n\n const insertText = hasClosingBraces ? completion.label : `${completion.label}}}`;\n\n view.dispatch({\n changes: { from, to, insert: insertText },\n selection: { anchor: from + insertText.length },\n });\n },\n }));\n\n return {\n from: startPos,\n options: completions,\n validFor: /^[a-zA-Z0-9_.\\[\\]]*$/,\n };\n };\n}\n","import type { DecorationSet, EditorView, ViewUpdate } from '@codemirror/view';\nimport { Decoration, MatchDecorator, ViewPlugin } from '@codemirror/view';\n\n/**\n * Regex pattern to match variable placeholders like {{variableName}} or {{user.name}}\n * Matches: {{ followed by a valid identifier path (with optional dot notation), then }}\n */\nexport const VARIABLE_PATTERN = /\\{\\{([a-zA-Z_][a-zA-Z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z0-9_]*)*)\\}\\}/g;\n\nconst variableDecoration = Decoration.mark({\n class: 'cm-variable-highlight',\n});\n\nconst variableMatcher = new MatchDecorator({\n regexp: VARIABLE_PATTERN,\n decoration: () => variableDecoration,\n});\n\nconst variableHighlightPlugin = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = variableMatcher.createDeco(view);\n }\n\n update(update: ViewUpdate) {\n this.decorations = variableMatcher.updateDeco(update, this.decorations);\n }\n },\n {\n decorations: v => v.decorations,\n },\n);\n\n/**\n * CodeMirror extension that highlights {{variableName}} patterns\n * with orange color and semibold weight\n */\nexport const variableHighlight = variableHighlightPlugin;\n","import { jsonLanguage } from '@codemirror/lang-json';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { EditorState, Prec } from '@codemirror/state';\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 CodeMirror from '@uiw/react-codemirror';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useMemo } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { codeLanguages } from './code-languages';\nimport { createVariableAutocomplete } from './variable-autocomplete-extension';\nimport { variableHighlight } from './variable-highlight-extension';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { fieldErrorRimWithin, inputSurfaceAndFocusWithinStyle } from '@/ds/primitives/form-element';\nimport type { JsonSchema } from '@/lib/json-schema';\nimport { cn } from '@/lib/utils';\n\nexport type CodeEditorLanguage = 'json' | 'markdown';\n\n/** Original dark theme — draculaInit + custom overrides. Unchanged from before light mode work. */\nfunction buildDarkTheme(): Extension {\n const baseTheme = draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--placeholder)',\n background: 'transparent',\n foreground: 'var(--foreground)',\n caret: 'var(--foreground)',\n },\n styles: [\n { tag: [t.className, t.propertyName], color: 'var(--foreground)' },\n { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: t.emphasis, fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: t.strong, fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: t.quote, fontStyle: 'italic', color: 'var(--placeholder)' },\n ],\n });\n\n const customLineNumberTheme = EditorView.theme({\n '.cm-editor': {\n backgroundColor: 'transparent',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '.cm-selectionBackground, .cm-content ::selection': {\n backgroundColor: 'color-mix(in srgb, var(--accent3) 22%, transparent)',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\n },\n });\n\n return [baseTheme, customLineNumberTheme];\n}\n\nfunction buildLightTheme(): 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-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection':\n {\n background: 'color-mix(in srgb, var(--accent3) 22%, transparent) !important',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\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 { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: [t.emphasis], fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: [t.strong], fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: [t.deleted], color: 'var(--accent2)' },\n { tag: t.invalid, color: 'var(--error)' },\n { tag: [t.standard(t.tagName)], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\n// eslint-disable-next-line react-refresh/only-export-components -- shared hook intentionally co-located with the editor it themes\nexport const useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\nconst codeEditorVariants = cva(\n cn(\n 'relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden',\n 'transition-colors duration-normal ease-out-custom',\n ),\n {\n variants: {\n variant: {\n default: cn(inputSurfaceAndFocusWithinStyle, 'rounded-md p-1', fieldErrorRimWithin),\n embedded: 'rounded-none border-none bg-transparent p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst editorFocusAttributes = Prec.highest(\n EditorView.editorAttributes.of({\n style: 'outline: none',\n }),\n);\n\nconst editorFocusTheme = Prec.highest(\n EditorView.theme({\n '&': {\n outline: 'none',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-scroller': {\n outline: 'none',\n },\n '.cm-content': {\n outline: 'none',\n },\n '.cm-content:focus': {\n outline: 'none',\n },\n }),\n);\n\nconst editorFocusExtensions: Extension[] = [editorFocusAttributes, editorFocusTheme];\n\ntype CodeEditorContentAttributes = {\n 'aria-label': string;\n id?: string;\n 'aria-describedby'?: string;\n 'aria-invalid'?: string;\n};\n\nexport type CodeEditorProps = {\n data?: Record<string, unknown> | Array<Record<string, unknown>>;\n value?: string;\n onChange?: (value: string) => void;\n showCopyButton?: boolean;\n className?: string;\n highlightVariables?: boolean;\n language?: CodeEditorLanguage;\n placeholder?: string;\n /** JSON Schema to enable variable autocomplete for {{variable}} placeholders (markdown only) */\n schema?: JsonSchema;\n autoFocus?: boolean;\n /** Show line numbers in the gutter (default: true) */\n lineNumbers?: boolean;\n /** Wrap long lines within the editor viewport (default: true) */\n lineWrapping?: boolean;\n /** When false, makes the editor read-only */\n editable?: boolean;\n} & VariantProps<typeof codeEditorVariants> &\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeEditor = forwardRef<ReactCodeMirrorRef, CodeEditorProps>(\n (\n {\n data,\n value,\n onChange,\n showCopyButton = true,\n className,\n language = 'json',\n highlightVariables = false,\n placeholder,\n schema,\n autoFocus,\n lineNumbers = true,\n lineWrapping = true,\n editable,\n variant,\n id,\n 'aria-label': ariaLabel = 'Code editor',\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n ...props\n },\n ref,\n ) => {\n const theme = useCodemirrorTheme();\n const formattedCode = data ? JSON.stringify(data, null, 2) : (value ?? '');\n\n const extensions = useMemo(() => {\n const contentAttributes: CodeEditorContentAttributes = { 'aria-label': ariaLabel };\n if (id) contentAttributes.id = id;\n if (ariaDescribedBy) contentAttributes['aria-describedby'] = ariaDescribedBy;\n if (ariaInvalid !== undefined) contentAttributes['aria-invalid'] = String(ariaInvalid);\n\n const exts: Extension[] = [...editorFocusExtensions, EditorView.contentAttributes.of(contentAttributes)];\n\n if (lineWrapping) {\n exts.push(EditorView.lineWrapping);\n }\n\n if (language === 'json') {\n exts.push(jsonLanguage);\n } else if (language === 'markdown') {\n exts.push(markdown({ base: markdownLanguage, codeLanguages }));\n }\n\n if (highlightVariables && language === 'markdown') {\n exts.push(variableHighlight);\n }\n\n if (schema && language === 'markdown') {\n exts.push(createVariableAutocomplete(schema));\n }\n\n if (editable === false) {\n exts.push(EditorState.readOnly.of(true));\n }\n\n return exts;\n }, [language, highlightVariables, schema, editable, lineWrapping, id, ariaLabel, ariaDescribedBy, ariaInvalid]);\n\n return (\n <div className={cn(codeEditorVariants({ variant }), className)} {...props}>\n {showCopyButton && <CopyButton content={formattedCode} className=\"absolute top-2 right-2 z-20\" />}\n <CodeMirror\n ref={ref}\n value={formattedCode}\n theme={theme}\n extensions={extensions}\n onChange={onChange}\n editable={editable}\n aria-label={ariaLabel}\n placeholder={placeholder}\n height=\"100%\"\n style={{ height: '100%' }}\n autoFocus={autoFocus}\n basicSetup={{ lineNumbers }}\n />\n </div>\n );\n },\n);\n"],"names":["LanguageSupport","StreamLanguage","LanguageDescription","autocompletion","Decoration","MatchDecorator","ViewPlugin","draculaInit","t","EditorView","HighlightStyle","syntaxHighlighting","useTheme","useMemo","cva","cn","inputSurfaceAndFocusWithinStyle","fieldErrorRimWithin","Prec","forwardRef","jsonLanguage","markdown","markdownLanguage","EditorState","jsxs","jsx","CopyButton"],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ import { tags } from '@lezer/highlight';
|
|
|
8
8
|
import { draculaInit } from '@uiw/codemirror-theme-dracula';
|
|
9
9
|
import CodeMirror from '@uiw/react-codemirror';
|
|
10
10
|
import { c as cva } from './index-Dubp6Qv4.js';
|
|
11
|
-
import {
|
|
11
|
+
import { useMemo, forwardRef } from 'react';
|
|
12
12
|
import { autocompletion } from '@codemirror/autocomplete';
|
|
13
13
|
import { C as CopyButton } from './copy-button-DcZ1mdw4.js';
|
|
14
|
-
import { u as useTheme } from './theme-provider-
|
|
14
|
+
import { u as useTheme } from './theme-provider-BbMYMtxP.js';
|
|
15
15
|
import { fieldErrorRimWithin, inputSurfaceAndFocusWithinStyle } from './primitives/form-element.es.js';
|
|
16
16
|
import { c as cn } from './cn-65Adrsfj.js';
|
|
17
17
|
|
|
@@ -484,4 +484,4 @@ const CodeEditor = forwardRef(
|
|
|
484
484
|
);
|
|
485
485
|
|
|
486
486
|
export { CodeEditor as C, VARIABLE_PATTERN as V, createVariableAutocomplete as a, codeLanguages as c, flattenSchemaToVariables as f, useCodemirrorTheme as u, variableHighlight as v };
|
|
487
|
-
//# sourceMappingURL=code-editor-
|
|
487
|
+
//# sourceMappingURL=code-editor-DMNGyqvg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-editor-BTxx6wLT.js","sources":["../src/ds/components/CodeEditor/code-languages.ts","../src/ds/components/CodeEditor/schema-to-variables.ts","../src/ds/components/CodeEditor/variable-autocomplete-extension.ts","../src/ds/components/CodeEditor/variable-highlight-extension.ts","../src/ds/components/CodeEditor/code-editor.tsx"],"sourcesContent":["import { LanguageDescription, LanguageSupport, StreamLanguage } from '@codemirror/language';\n\nfunction legacy(parser: Parameters<typeof StreamLanguage.define>[0]) {\n return new LanguageSupport(StreamLanguage.define(parser));\n}\n\n/**\n * A minimal subset of CodeMirror language descriptions used for fenced code\n * blocks inside markdown. Mirrors the relevant entries from\n * `@codemirror/language-data` but only the languages we actually support, so\n * bundlers don't have to emit a chunk for every known language.\n */\nexport const codeLanguages = [\n LanguageDescription.of({\n name: 'JavaScript',\n alias: ['ecmascript', 'js', 'node'],\n extensions: ['js', 'mjs', 'cjs'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript());\n },\n }),\n LanguageDescription.of({\n name: 'JSON',\n alias: ['json5'],\n extensions: ['json', 'map'],\n load() {\n return import('@codemirror/lang-json').then(m => m.json());\n },\n }),\n LanguageDescription.of({\n name: 'JSX',\n extensions: ['jsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Markdown',\n extensions: ['md', 'markdown', 'mkd'],\n load() {\n return import('@codemirror/lang-markdown').then(m => m.markdown());\n },\n }),\n LanguageDescription.of({\n name: 'TSX',\n extensions: ['tsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true, typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'TypeScript',\n alias: ['ts'],\n extensions: ['ts', 'mts', 'cts'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Shell',\n alias: ['bash', 'sh', 'zsh'],\n extensions: ['sh', 'ksh', 'bash'],\n filename: /^PKGBUILD$/,\n load() {\n return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell));\n },\n }),\n];\n","import type { JsonSchema, JsonSchemaProperty } from '@/lib/json-schema';\n\n/**\n * Represents a variable completion option derived from a schema\n */\nexport interface VariableCompletion {\n /** The dot-notation path (e.g., \"user.name\") */\n path: string;\n /** Display label for the autocomplete */\n label: string;\n /** Description from the schema, if available */\n description?: string;\n /** The type of the property */\n type?: string;\n}\n\n/**\n * Flattens a JSON Schema into a list of variable completions for autocomplete.\n * Recursively extracts property paths using dot-notation.\n *\n * @param schema - The JSON Schema to flatten\n * @param maxDepth - Maximum recursion depth (default: 5)\n * @returns Array of variable completions\n *\n * @example\n * ```ts\n * const schema = {\n * type: 'object',\n * properties: {\n * user: {\n * type: 'object',\n * properties: {\n * name: { type: 'string' },\n * email: { type: 'string' }\n * }\n * }\n * }\n * };\n *\n * flattenSchemaToVariables(schema);\n * // Returns:\n * // [\n * // { path: 'user', label: 'user', type: 'object' },\n * // { path: 'user.name', label: 'user.name', type: 'string' },\n * // { path: 'user.email', label: 'user.email', type: 'string' }\n * // ]\n * ```\n */\nexport function flattenSchemaToVariables(schema: JsonSchema | undefined, maxDepth = 5): VariableCompletion[] {\n if (!schema?.properties) {\n return [];\n }\n\n const results: VariableCompletion[] = [];\n\n function processProperty(property: JsonSchemaProperty, path: string, depth: number): void {\n if (depth > maxDepth) {\n return;\n }\n\n const type = Array.isArray(property.type) ? property.type.join(' | ') : property.type;\n\n results.push({\n path,\n label: path,\n description: property.description ?? property.title,\n type,\n });\n\n // Recurse into nested object properties\n if (property.properties) {\n for (const [key, nestedProperty] of Object.entries(property.properties)) {\n processProperty(nestedProperty, `${path}.${key}`, depth + 1);\n }\n }\n\n // Handle array items if they have properties (array of objects)\n if (property.items?.properties) {\n // Add a placeholder for array item access (e.g., items[0].name)\n for (const [key, itemProperty] of Object.entries(property.items.properties)) {\n processProperty(itemProperty, `${path}[].${key}`, depth + 1);\n }\n }\n }\n\n for (const [key, property] of Object.entries(schema.properties)) {\n processProperty(property, key, 1);\n }\n\n return results;\n}\n","import { autocompletion } from '@codemirror/autocomplete';\nimport type { Completion, CompletionContext, CompletionResult } from '@codemirror/autocomplete';\nimport type { Extension } from '@codemirror/state';\nimport { flattenSchemaToVariables } from './schema-to-variables';\nimport type { VariableCompletion } from './schema-to-variables';\nimport type { JsonSchema } from '@/lib/json-schema';\n\n/**\n * Creates a CodeMirror autocomplete extension for {{variable}} placeholders.\n * Triggers when the user types `{{` and shows suggestions derived from the schema.\n *\n * @param schema - JSON Schema to derive variable suggestions from\n * @returns CodeMirror Extension that provides variable autocomplete\n *\n * @example\n * ```tsx\n * const schema = {\n * type: 'object',\n * properties: {\n * user: { type: 'object', properties: { name: { type: 'string' } } }\n * }\n * };\n *\n * <CodeMirror extensions={[createVariableAutocomplete(schema)]} />\n * // Typing \"{{\" will show: user, user.name\n * ```\n */\nexport function createVariableAutocomplete(schema: JsonSchema | undefined): Extension {\n const variables = flattenSchemaToVariables(schema);\n\n return autocompletion({\n override: [createVariableCompletionSource(variables)],\n defaultKeymap: true,\n closeOnBlur: true,\n icons: false,\n });\n}\n\n/**\n * Creates a completion source function for CodeMirror's autocompletion.\n */\nfunction createVariableCompletionSource(\n variables: VariableCompletion[],\n): (context: CompletionContext) => CompletionResult | null {\n return (context: CompletionContext): CompletionResult | null => {\n // Look for {{ pattern before cursor\n const beforeCursor = context.state.sliceDoc(Math.max(0, context.pos - 50), context.pos);\n const match = beforeCursor.match(/\\{\\{([a-zA-Z0-9_.\\[\\]]*)?$/);\n\n if (!match) {\n return null;\n }\n\n // The text after {{ that we're matching against\n const prefix = match[1] ?? '';\n const startPos = context.pos - prefix.length;\n\n // Filter variables based on what the user has typed\n const filteredVariables = prefix\n ? variables.filter(v => v.path.toLowerCase().startsWith(prefix.toLowerCase()))\n : variables;\n\n if (filteredVariables.length === 0) {\n return null;\n }\n\n const completions: Completion[] = filteredVariables.map(variable => ({\n label: variable.path,\n displayLabel: variable.path,\n detail: variable.type,\n info: variable.description,\n apply: (view, completion, from, to) => {\n // Check if }} already follows the cursor\n const afterCursor = view.state.sliceDoc(to, to + 2);\n const hasClosingBraces = afterCursor === '}}';\n\n const insertText = hasClosingBraces ? completion.label : `${completion.label}}}`;\n\n view.dispatch({\n changes: { from, to, insert: insertText },\n selection: { anchor: from + insertText.length },\n });\n },\n }));\n\n return {\n from: startPos,\n options: completions,\n validFor: /^[a-zA-Z0-9_.\\[\\]]*$/,\n };\n };\n}\n","import type { DecorationSet, EditorView, ViewUpdate } from '@codemirror/view';\nimport { Decoration, MatchDecorator, ViewPlugin } from '@codemirror/view';\n\n/**\n * Regex pattern to match variable placeholders like {{variableName}} or {{user.name}}\n * Matches: {{ followed by a valid identifier path (with optional dot notation), then }}\n */\nexport const VARIABLE_PATTERN = /\\{\\{([a-zA-Z_][a-zA-Z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z0-9_]*)*)\\}\\}/g;\n\nconst variableDecoration = Decoration.mark({\n class: 'cm-variable-highlight',\n});\n\nconst variableMatcher = new MatchDecorator({\n regexp: VARIABLE_PATTERN,\n decoration: () => variableDecoration,\n});\n\nconst variableHighlightPlugin = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = variableMatcher.createDeco(view);\n }\n\n update(update: ViewUpdate) {\n this.decorations = variableMatcher.updateDeco(update, this.decorations);\n }\n },\n {\n decorations: v => v.decorations,\n },\n);\n\n/**\n * CodeMirror extension that highlights {{variableName}} patterns\n * with orange color and semibold weight\n */\nexport const variableHighlight = variableHighlightPlugin;\n","import { jsonLanguage } from '@codemirror/lang-json';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { EditorState, Prec } from '@codemirror/state';\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 CodeMirror from '@uiw/react-codemirror';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useMemo } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { codeLanguages } from './code-languages';\nimport { createVariableAutocomplete } from './variable-autocomplete-extension';\nimport { variableHighlight } from './variable-highlight-extension';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { fieldErrorRimWithin, inputSurfaceAndFocusWithinStyle } from '@/ds/primitives/form-element';\nimport type { JsonSchema } from '@/lib/json-schema';\nimport { cn } from '@/lib/utils';\n\nexport type CodeEditorLanguage = 'json' | 'markdown';\n\n/** Original dark theme — draculaInit + custom overrides. Unchanged from before light mode work. */\nfunction buildDarkTheme(): Extension {\n const baseTheme = draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--placeholder)',\n background: 'transparent',\n foreground: 'var(--foreground)',\n caret: 'var(--foreground)',\n },\n styles: [\n { tag: [t.className, t.propertyName], color: 'var(--foreground)' },\n { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: t.emphasis, fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: t.strong, fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: t.quote, fontStyle: 'italic', color: 'var(--placeholder)' },\n ],\n });\n\n const customLineNumberTheme = EditorView.theme({\n '.cm-editor': {\n backgroundColor: 'transparent',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '.cm-selectionBackground, .cm-content ::selection': {\n backgroundColor: 'color-mix(in srgb, var(--accent3) 22%, transparent)',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\n },\n });\n\n return [baseTheme, customLineNumberTheme];\n}\n\nfunction buildLightTheme(): 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-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection':\n {\n background: 'color-mix(in srgb, var(--accent3) 22%, transparent) !important',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\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 { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: [t.emphasis], fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: [t.strong], fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: [t.deleted], color: 'var(--accent2)' },\n { tag: t.invalid, color: 'var(--error)' },\n { tag: [t.standard(t.tagName)], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\n// eslint-disable-next-line react-refresh/only-export-components -- shared hook intentionally co-located with the editor it themes\nexport const useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\nconst codeEditorVariants = cva(\n cn(\n 'relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden',\n 'transition-colors duration-normal ease-out-custom',\n ),\n {\n variants: {\n variant: {\n default: cn(inputSurfaceAndFocusWithinStyle, 'rounded-md p-1', fieldErrorRimWithin),\n embedded: 'rounded-none border-none bg-transparent p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst editorFocusAttributes = Prec.highest(\n EditorView.editorAttributes.of({\n style: 'outline: none',\n }),\n);\n\nconst editorFocusTheme = Prec.highest(\n EditorView.theme({\n '&': {\n outline: 'none',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-scroller': {\n outline: 'none',\n },\n '.cm-content': {\n outline: 'none',\n },\n '.cm-content:focus': {\n outline: 'none',\n },\n }),\n);\n\nconst editorFocusExtensions: Extension[] = [editorFocusAttributes, editorFocusTheme];\n\ntype CodeEditorContentAttributes = {\n 'aria-label': string;\n id?: string;\n 'aria-describedby'?: string;\n 'aria-invalid'?: string;\n};\n\nexport type CodeEditorProps = {\n data?: Record<string, unknown> | Array<Record<string, unknown>>;\n value?: string;\n onChange?: (value: string) => void;\n showCopyButton?: boolean;\n className?: string;\n highlightVariables?: boolean;\n language?: CodeEditorLanguage;\n placeholder?: string;\n /** JSON Schema to enable variable autocomplete for {{variable}} placeholders (markdown only) */\n schema?: JsonSchema;\n autoFocus?: boolean;\n /** Show line numbers in the gutter (default: true) */\n lineNumbers?: boolean;\n /** Wrap long lines within the editor viewport (default: true) */\n lineWrapping?: boolean;\n /** When false, makes the editor read-only */\n editable?: boolean;\n} & VariantProps<typeof codeEditorVariants> &\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeEditor = forwardRef<ReactCodeMirrorRef, CodeEditorProps>(\n (\n {\n data,\n value,\n onChange,\n showCopyButton = true,\n className,\n language = 'json',\n highlightVariables = false,\n placeholder,\n schema,\n autoFocus,\n lineNumbers = true,\n lineWrapping = true,\n editable,\n variant,\n id,\n 'aria-label': ariaLabel = 'Code editor',\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n ...props\n },\n ref,\n ) => {\n const theme = useCodemirrorTheme();\n const formattedCode = data ? JSON.stringify(data, null, 2) : (value ?? '');\n\n const extensions = useMemo(() => {\n const contentAttributes: CodeEditorContentAttributes = { 'aria-label': ariaLabel };\n if (id) contentAttributes.id = id;\n if (ariaDescribedBy) contentAttributes['aria-describedby'] = ariaDescribedBy;\n if (ariaInvalid !== undefined) contentAttributes['aria-invalid'] = String(ariaInvalid);\n\n const exts: Extension[] = [...editorFocusExtensions, EditorView.contentAttributes.of(contentAttributes)];\n\n if (lineWrapping) {\n exts.push(EditorView.lineWrapping);\n }\n\n if (language === 'json') {\n exts.push(jsonLanguage);\n } else if (language === 'markdown') {\n exts.push(markdown({ base: markdownLanguage, codeLanguages }));\n }\n\n if (highlightVariables && language === 'markdown') {\n exts.push(variableHighlight);\n }\n\n if (schema && language === 'markdown') {\n exts.push(createVariableAutocomplete(schema));\n }\n\n if (editable === false) {\n exts.push(EditorState.readOnly.of(true));\n }\n\n return exts;\n }, [language, highlightVariables, schema, editable, lineWrapping, id, ariaLabel, ariaDescribedBy, ariaInvalid]);\n\n return (\n <div className={cn(codeEditorVariants({ variant }), className)} {...props}>\n {showCopyButton && <CopyButton content={formattedCode} className=\"absolute top-2 right-2 z-20\" />}\n <CodeMirror\n ref={ref}\n value={formattedCode}\n theme={theme}\n extensions={extensions}\n onChange={onChange}\n editable={editable}\n aria-label={ariaLabel}\n placeholder={placeholder}\n height=\"100%\"\n style={{ height: '100%' }}\n autoFocus={autoFocus}\n basicSetup={{ lineNumbers }}\n />\n </div>\n );\n },\n);\n"],"names":["t"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-editor-DMNGyqvg.js","sources":["../src/ds/components/CodeEditor/code-languages.ts","../src/ds/components/CodeEditor/schema-to-variables.ts","../src/ds/components/CodeEditor/variable-autocomplete-extension.ts","../src/ds/components/CodeEditor/variable-highlight-extension.ts","../src/ds/components/CodeEditor/code-editor.tsx"],"sourcesContent":["import { LanguageDescription, LanguageSupport, StreamLanguage } from '@codemirror/language';\n\nfunction legacy(parser: Parameters<typeof StreamLanguage.define>[0]) {\n return new LanguageSupport(StreamLanguage.define(parser));\n}\n\n/**\n * A minimal subset of CodeMirror language descriptions used for fenced code\n * blocks inside markdown. Mirrors the relevant entries from\n * `@codemirror/language-data` but only the languages we actually support, so\n * bundlers don't have to emit a chunk for every known language.\n */\nexport const codeLanguages = [\n LanguageDescription.of({\n name: 'JavaScript',\n alias: ['ecmascript', 'js', 'node'],\n extensions: ['js', 'mjs', 'cjs'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript());\n },\n }),\n LanguageDescription.of({\n name: 'JSON',\n alias: ['json5'],\n extensions: ['json', 'map'],\n load() {\n return import('@codemirror/lang-json').then(m => m.json());\n },\n }),\n LanguageDescription.of({\n name: 'JSX',\n extensions: ['jsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Markdown',\n extensions: ['md', 'markdown', 'mkd'],\n load() {\n return import('@codemirror/lang-markdown').then(m => m.markdown());\n },\n }),\n LanguageDescription.of({\n name: 'TSX',\n extensions: ['tsx'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true, typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'TypeScript',\n alias: ['ts'],\n extensions: ['ts', 'mts', 'cts'],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }));\n },\n }),\n LanguageDescription.of({\n name: 'Shell',\n alias: ['bash', 'sh', 'zsh'],\n extensions: ['sh', 'ksh', 'bash'],\n filename: /^PKGBUILD$/,\n load() {\n return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell));\n },\n }),\n];\n","import type { JsonSchema, JsonSchemaProperty } from '@/lib/json-schema';\n\n/**\n * Represents a variable completion option derived from a schema\n */\nexport interface VariableCompletion {\n /** The dot-notation path (e.g., \"user.name\") */\n path: string;\n /** Display label for the autocomplete */\n label: string;\n /** Description from the schema, if available */\n description?: string;\n /** The type of the property */\n type?: string;\n}\n\n/**\n * Flattens a JSON Schema into a list of variable completions for autocomplete.\n * Recursively extracts property paths using dot-notation.\n *\n * @param schema - The JSON Schema to flatten\n * @param maxDepth - Maximum recursion depth (default: 5)\n * @returns Array of variable completions\n *\n * @example\n * ```ts\n * const schema = {\n * type: 'object',\n * properties: {\n * user: {\n * type: 'object',\n * properties: {\n * name: { type: 'string' },\n * email: { type: 'string' }\n * }\n * }\n * }\n * };\n *\n * flattenSchemaToVariables(schema);\n * // Returns:\n * // [\n * // { path: 'user', label: 'user', type: 'object' },\n * // { path: 'user.name', label: 'user.name', type: 'string' },\n * // { path: 'user.email', label: 'user.email', type: 'string' }\n * // ]\n * ```\n */\nexport function flattenSchemaToVariables(schema: JsonSchema | undefined, maxDepth = 5): VariableCompletion[] {\n if (!schema?.properties) {\n return [];\n }\n\n const results: VariableCompletion[] = [];\n\n function processProperty(property: JsonSchemaProperty, path: string, depth: number): void {\n if (depth > maxDepth) {\n return;\n }\n\n const type = Array.isArray(property.type) ? property.type.join(' | ') : property.type;\n\n results.push({\n path,\n label: path,\n description: property.description ?? property.title,\n type,\n });\n\n // Recurse into nested object properties\n if (property.properties) {\n for (const [key, nestedProperty] of Object.entries(property.properties)) {\n processProperty(nestedProperty, `${path}.${key}`, depth + 1);\n }\n }\n\n // Handle array items if they have properties (array of objects)\n if (property.items?.properties) {\n // Add a placeholder for array item access (e.g., items[0].name)\n for (const [key, itemProperty] of Object.entries(property.items.properties)) {\n processProperty(itemProperty, `${path}[].${key}`, depth + 1);\n }\n }\n }\n\n for (const [key, property] of Object.entries(schema.properties)) {\n processProperty(property, key, 1);\n }\n\n return results;\n}\n","import { autocompletion } from '@codemirror/autocomplete';\nimport type { Completion, CompletionContext, CompletionResult } from '@codemirror/autocomplete';\nimport type { Extension } from '@codemirror/state';\nimport { flattenSchemaToVariables } from './schema-to-variables';\nimport type { VariableCompletion } from './schema-to-variables';\nimport type { JsonSchema } from '@/lib/json-schema';\n\n/**\n * Creates a CodeMirror autocomplete extension for {{variable}} placeholders.\n * Triggers when the user types `{{` and shows suggestions derived from the schema.\n *\n * @param schema - JSON Schema to derive variable suggestions from\n * @returns CodeMirror Extension that provides variable autocomplete\n *\n * @example\n * ```tsx\n * const schema = {\n * type: 'object',\n * properties: {\n * user: { type: 'object', properties: { name: { type: 'string' } } }\n * }\n * };\n *\n * <CodeMirror extensions={[createVariableAutocomplete(schema)]} />\n * // Typing \"{{\" will show: user, user.name\n * ```\n */\nexport function createVariableAutocomplete(schema: JsonSchema | undefined): Extension {\n const variables = flattenSchemaToVariables(schema);\n\n return autocompletion({\n override: [createVariableCompletionSource(variables)],\n defaultKeymap: true,\n closeOnBlur: true,\n icons: false,\n });\n}\n\n/**\n * Creates a completion source function for CodeMirror's autocompletion.\n */\nfunction createVariableCompletionSource(\n variables: VariableCompletion[],\n): (context: CompletionContext) => CompletionResult | null {\n return (context: CompletionContext): CompletionResult | null => {\n // Look for {{ pattern before cursor\n const beforeCursor = context.state.sliceDoc(Math.max(0, context.pos - 50), context.pos);\n const match = beforeCursor.match(/\\{\\{([a-zA-Z0-9_.\\[\\]]*)?$/);\n\n if (!match) {\n return null;\n }\n\n // The text after {{ that we're matching against\n const prefix = match[1] ?? '';\n const startPos = context.pos - prefix.length;\n\n // Filter variables based on what the user has typed\n const filteredVariables = prefix\n ? variables.filter(v => v.path.toLowerCase().startsWith(prefix.toLowerCase()))\n : variables;\n\n if (filteredVariables.length === 0) {\n return null;\n }\n\n const completions: Completion[] = filteredVariables.map(variable => ({\n label: variable.path,\n displayLabel: variable.path,\n detail: variable.type,\n info: variable.description,\n apply: (view, completion, from, to) => {\n // Check if }} already follows the cursor\n const afterCursor = view.state.sliceDoc(to, to + 2);\n const hasClosingBraces = afterCursor === '}}';\n\n const insertText = hasClosingBraces ? completion.label : `${completion.label}}}`;\n\n view.dispatch({\n changes: { from, to, insert: insertText },\n selection: { anchor: from + insertText.length },\n });\n },\n }));\n\n return {\n from: startPos,\n options: completions,\n validFor: /^[a-zA-Z0-9_.\\[\\]]*$/,\n };\n };\n}\n","import type { DecorationSet, EditorView, ViewUpdate } from '@codemirror/view';\nimport { Decoration, MatchDecorator, ViewPlugin } from '@codemirror/view';\n\n/**\n * Regex pattern to match variable placeholders like {{variableName}} or {{user.name}}\n * Matches: {{ followed by a valid identifier path (with optional dot notation), then }}\n */\nexport const VARIABLE_PATTERN = /\\{\\{([a-zA-Z_][a-zA-Z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z0-9_]*)*)\\}\\}/g;\n\nconst variableDecoration = Decoration.mark({\n class: 'cm-variable-highlight',\n});\n\nconst variableMatcher = new MatchDecorator({\n regexp: VARIABLE_PATTERN,\n decoration: () => variableDecoration,\n});\n\nconst variableHighlightPlugin = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = variableMatcher.createDeco(view);\n }\n\n update(update: ViewUpdate) {\n this.decorations = variableMatcher.updateDeco(update, this.decorations);\n }\n },\n {\n decorations: v => v.decorations,\n },\n);\n\n/**\n * CodeMirror extension that highlights {{variableName}} patterns\n * with orange color and semibold weight\n */\nexport const variableHighlight = variableHighlightPlugin;\n","import { jsonLanguage } from '@codemirror/lang-json';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { EditorState, Prec } from '@codemirror/state';\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 CodeMirror from '@uiw/react-codemirror';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useMemo } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { codeLanguages } from './code-languages';\nimport { createVariableAutocomplete } from './variable-autocomplete-extension';\nimport { variableHighlight } from './variable-highlight-extension';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { fieldErrorRimWithin, inputSurfaceAndFocusWithinStyle } from '@/ds/primitives/form-element';\nimport type { JsonSchema } from '@/lib/json-schema';\nimport { cn } from '@/lib/utils';\n\nexport type CodeEditorLanguage = 'json' | 'markdown';\n\n/** Original dark theme — draculaInit + custom overrides. Unchanged from before light mode work. */\nfunction buildDarkTheme(): Extension {\n const baseTheme = draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--placeholder)',\n background: 'transparent',\n foreground: 'var(--foreground)',\n caret: 'var(--foreground)',\n },\n styles: [\n { tag: [t.className, t.propertyName], color: 'var(--foreground)' },\n { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: t.emphasis, fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: t.strong, fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: t.quote, fontStyle: 'italic', color: 'var(--placeholder)' },\n ],\n });\n\n const customLineNumberTheme = EditorView.theme({\n '.cm-editor': {\n backgroundColor: 'transparent',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '.cm-selectionBackground, .cm-content ::selection': {\n backgroundColor: 'color-mix(in srgb, var(--accent3) 22%, transparent)',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\n },\n });\n\n return [baseTheme, customLineNumberTheme];\n}\n\nfunction buildLightTheme(): 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-lineNumbers .cm-gutterElement': {\n color: 'var(--placeholder)',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n color: 'var(--muted-foreground)',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n '&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection':\n {\n background: 'color-mix(in srgb, var(--accent3) 22%, transparent) !important',\n },\n '.cm-tooltip-autocomplete': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n borderRadius: '6px',\n boxShadow: '0 8px 16px rgba(0, 0, 0, 0.2)',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-completionLabel': {\n color: 'var(--foreground)',\n },\n '.cm-completionDetail': {\n color: 'var(--muted-foreground)',\n fontSize: 'var(--text-caption)',\n marginLeft: 'auto',\n paddingLeft: '12px',\n },\n '.cm-completionInfo': {\n backgroundColor: 'var(--background)',\n border: '1px solid var(--border)',\n color: 'var(--muted-foreground)',\n padding: '8px 12px',\n },\n '.cm-completionIcon': {\n display: 'none',\n },\n 'ul.cm-completionList li[aria-selected]': {\n backgroundColor: 'var(--fill-hover)',\n color: 'var(--foreground)',\n },\n '.cm-line .cm-variable-highlight': {\n color: 'var(--accent6) !important',\n fontWeight: '500',\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 { tag: t.heading, color: 'var(--accent3)', fontWeight: 'bold' },\n {\n tag: [t.heading1, t.heading2, t.heading3, t.heading4, t.heading5, t.heading6],\n color: 'var(--accent3)',\n fontWeight: 'bold',\n },\n { tag: [t.emphasis], fontStyle: 'italic', color: 'var(--foreground)' },\n { tag: [t.strong], fontWeight: 'bold', color: 'var(--foreground)' },\n { tag: t.link, color: 'var(--accent3)', textDecoration: 'underline' },\n { tag: t.url, color: 'var(--accent3)' },\n { tag: t.monospace, color: 'var(--foreground)' },\n { tag: t.strikethrough, textDecoration: 'line-through' },\n { tag: [t.deleted], color: 'var(--accent2)' },\n { tag: t.invalid, color: 'var(--error)' },\n { tag: [t.standard(t.tagName)], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\n// eslint-disable-next-line react-refresh/only-export-components -- shared hook intentionally co-located with the editor it themes\nexport const useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\nconst codeEditorVariants = cva(\n cn(\n 'relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden',\n 'transition-colors duration-normal ease-out-custom',\n ),\n {\n variants: {\n variant: {\n default: cn(inputSurfaceAndFocusWithinStyle, 'rounded-md p-1', fieldErrorRimWithin),\n embedded: 'rounded-none border-none bg-transparent p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nconst editorFocusAttributes = Prec.highest(\n EditorView.editorAttributes.of({\n style: 'outline: none',\n }),\n);\n\nconst editorFocusTheme = Prec.highest(\n EditorView.theme({\n '&': {\n outline: 'none',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-scroller': {\n outline: 'none',\n },\n '.cm-content': {\n outline: 'none',\n },\n '.cm-content:focus': {\n outline: 'none',\n },\n }),\n);\n\nconst editorFocusExtensions: Extension[] = [editorFocusAttributes, editorFocusTheme];\n\ntype CodeEditorContentAttributes = {\n 'aria-label': string;\n id?: string;\n 'aria-describedby'?: string;\n 'aria-invalid'?: string;\n};\n\nexport type CodeEditorProps = {\n data?: Record<string, unknown> | Array<Record<string, unknown>>;\n value?: string;\n onChange?: (value: string) => void;\n showCopyButton?: boolean;\n className?: string;\n highlightVariables?: boolean;\n language?: CodeEditorLanguage;\n placeholder?: string;\n /** JSON Schema to enable variable autocomplete for {{variable}} placeholders (markdown only) */\n schema?: JsonSchema;\n autoFocus?: boolean;\n /** Show line numbers in the gutter (default: true) */\n lineNumbers?: boolean;\n /** Wrap long lines within the editor viewport (default: true) */\n lineWrapping?: boolean;\n /** When false, makes the editor read-only */\n editable?: boolean;\n} & VariantProps<typeof codeEditorVariants> &\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeEditor = forwardRef<ReactCodeMirrorRef, CodeEditorProps>(\n (\n {\n data,\n value,\n onChange,\n showCopyButton = true,\n className,\n language = 'json',\n highlightVariables = false,\n placeholder,\n schema,\n autoFocus,\n lineNumbers = true,\n lineWrapping = true,\n editable,\n variant,\n id,\n 'aria-label': ariaLabel = 'Code editor',\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n ...props\n },\n ref,\n ) => {\n const theme = useCodemirrorTheme();\n const formattedCode = data ? JSON.stringify(data, null, 2) : (value ?? '');\n\n const extensions = useMemo(() => {\n const contentAttributes: CodeEditorContentAttributes = { 'aria-label': ariaLabel };\n if (id) contentAttributes.id = id;\n if (ariaDescribedBy) contentAttributes['aria-describedby'] = ariaDescribedBy;\n if (ariaInvalid !== undefined) contentAttributes['aria-invalid'] = String(ariaInvalid);\n\n const exts: Extension[] = [...editorFocusExtensions, EditorView.contentAttributes.of(contentAttributes)];\n\n if (lineWrapping) {\n exts.push(EditorView.lineWrapping);\n }\n\n if (language === 'json') {\n exts.push(jsonLanguage);\n } else if (language === 'markdown') {\n exts.push(markdown({ base: markdownLanguage, codeLanguages }));\n }\n\n if (highlightVariables && language === 'markdown') {\n exts.push(variableHighlight);\n }\n\n if (schema && language === 'markdown') {\n exts.push(createVariableAutocomplete(schema));\n }\n\n if (editable === false) {\n exts.push(EditorState.readOnly.of(true));\n }\n\n return exts;\n }, [language, highlightVariables, schema, editable, lineWrapping, id, ariaLabel, ariaDescribedBy, ariaInvalid]);\n\n return (\n <div className={cn(codeEditorVariants({ variant }), className)} {...props}>\n {showCopyButton && <CopyButton content={formattedCode} className=\"absolute top-2 right-2 z-20\" />}\n <CodeMirror\n ref={ref}\n value={formattedCode}\n theme={theme}\n extensions={extensions}\n onChange={onChange}\n editable={editable}\n aria-label={ariaLabel}\n placeholder={placeholder}\n height=\"100%\"\n style={{ height: '100%' }}\n autoFocus={autoFocus}\n basicSetup={{ lineNumbers }}\n />\n </div>\n );\n },\n);\n"],"names":["t"],"mappings":"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"}
|