@coral-viz/viz 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/LICENSE +4 -0
  2. package/README.md +11 -0
  3. package/dist/compatibility/CompatibilityEdge.d.ts +106 -0
  4. package/dist/compatibility/CompatibilityEdge.d.ts.map +1 -0
  5. package/dist/compatibility/CompatibilityEdge.js +233 -0
  6. package/dist/compatibility/CompatibilityEdge.js.map +1 -0
  7. package/dist/compatibility/IncompatibilityTooltip.d.ts +44 -0
  8. package/dist/compatibility/IncompatibilityTooltip.d.ts.map +1 -0
  9. package/dist/compatibility/IncompatibilityTooltip.js +145 -0
  10. package/dist/compatibility/IncompatibilityTooltip.js.map +1 -0
  11. package/dist/compatibility/index.d.ts +10 -0
  12. package/dist/compatibility/index.d.ts.map +1 -0
  13. package/dist/compatibility/index.js +10 -0
  14. package/dist/compatibility/index.js.map +1 -0
  15. package/dist/compatibility/useEdgeCompatibility.d.ts +82 -0
  16. package/dist/compatibility/useEdgeCompatibility.d.ts.map +1 -0
  17. package/dist/compatibility/useEdgeCompatibility.js +170 -0
  18. package/dist/compatibility/useEdgeCompatibility.js.map +1 -0
  19. package/dist/compatibility/validateConnection.d.ts +56 -0
  20. package/dist/compatibility/validateConnection.d.ts.map +1 -0
  21. package/dist/compatibility/validateConnection.js +382 -0
  22. package/dist/compatibility/validateConnection.js.map +1 -0
  23. package/dist/components/EditContext.d.ts +45 -0
  24. package/dist/components/EditContext.d.ts.map +1 -0
  25. package/dist/components/EditContext.js +41 -0
  26. package/dist/components/EditContext.js.map +1 -0
  27. package/dist/components/ShapeRenderer.d.ts +35 -0
  28. package/dist/components/ShapeRenderer.d.ts.map +1 -0
  29. package/dist/components/ShapeRenderer.js +77 -0
  30. package/dist/components/ShapeRenderer.js.map +1 -0
  31. package/dist/components/SymbolNode.d.ts +53 -0
  32. package/dist/components/SymbolNode.d.ts.map +1 -0
  33. package/dist/components/SymbolNode.js +333 -0
  34. package/dist/components/SymbolNode.js.map +1 -0
  35. package/dist/components/index.d.ts +8 -0
  36. package/dist/components/index.d.ts.map +1 -0
  37. package/dist/components/index.js +10 -0
  38. package/dist/components/index.js.map +1 -0
  39. package/dist/components/nodes.d.ts +43 -0
  40. package/dist/components/nodes.d.ts.map +1 -0
  41. package/dist/components/nodes.js +111 -0
  42. package/dist/components/nodes.js.map +1 -0
  43. package/dist/editor/CoralEditor.d.ts +29 -0
  44. package/dist/editor/CoralEditor.d.ts.map +1 -0
  45. package/dist/editor/CoralEditor.js +112 -0
  46. package/dist/editor/CoralEditor.js.map +1 -0
  47. package/dist/editor/FileControls.d.ts +34 -0
  48. package/dist/editor/FileControls.d.ts.map +1 -0
  49. package/dist/editor/FileControls.js +139 -0
  50. package/dist/editor/FileControls.js.map +1 -0
  51. package/dist/editor/LayoutControls.d.ts +41 -0
  52. package/dist/editor/LayoutControls.d.ts.map +1 -0
  53. package/dist/editor/LayoutControls.js +124 -0
  54. package/dist/editor/LayoutControls.js.map +1 -0
  55. package/dist/editor/converter.d.ts +37 -0
  56. package/dist/editor/converter.d.ts.map +1 -0
  57. package/dist/editor/converter.js +256 -0
  58. package/dist/editor/converter.js.map +1 -0
  59. package/dist/editor/index.d.ts +8 -0
  60. package/dist/editor/index.d.ts.map +1 -0
  61. package/dist/editor/index.js +8 -0
  62. package/dist/editor/index.js.map +1 -0
  63. package/dist/file/deserialize.d.ts +15 -0
  64. package/dist/file/deserialize.d.ts.map +1 -0
  65. package/dist/file/deserialize.js +145 -0
  66. package/dist/file/deserialize.js.map +1 -0
  67. package/dist/file/index.d.ts +15 -0
  68. package/dist/file/index.d.ts.map +1 -0
  69. package/dist/file/index.js +20 -0
  70. package/dist/file/index.js.map +1 -0
  71. package/dist/file/migrate.d.ts +29 -0
  72. package/dist/file/migrate.d.ts.map +1 -0
  73. package/dist/file/migrate.js +103 -0
  74. package/dist/file/migrate.js.map +1 -0
  75. package/dist/file/schema.d.ts +385 -0
  76. package/dist/file/schema.d.ts.map +1 -0
  77. package/dist/file/schema.js +180 -0
  78. package/dist/file/schema.js.map +1 -0
  79. package/dist/file/serialize.d.ts +30 -0
  80. package/dist/file/serialize.d.ts.map +1 -0
  81. package/dist/file/serialize.js +218 -0
  82. package/dist/file/serialize.js.map +1 -0
  83. package/dist/file/validate.d.ts +21 -0
  84. package/dist/file/validate.d.ts.map +1 -0
  85. package/dist/file/validate.js +165 -0
  86. package/dist/file/validate.js.map +1 -0
  87. package/dist/index.d.ts +24 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +42 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/layout/elk.d.ts +77 -0
  92. package/dist/layout/elk.d.ts.map +1 -0
  93. package/dist/layout/elk.js +379 -0
  94. package/dist/layout/elk.js.map +1 -0
  95. package/dist/layout/index.d.ts +12 -0
  96. package/dist/layout/index.d.ts.map +1 -0
  97. package/dist/layout/index.js +12 -0
  98. package/dist/layout/index.js.map +1 -0
  99. package/dist/layout/nodeSizing.d.ts +65 -0
  100. package/dist/layout/nodeSizing.d.ts.map +1 -0
  101. package/dist/layout/nodeSizing.js +319 -0
  102. package/dist/layout/nodeSizing.js.map +1 -0
  103. package/dist/layout/positionStability.d.ts +73 -0
  104. package/dist/layout/positionStability.d.ts.map +1 -0
  105. package/dist/layout/positionStability.js +199 -0
  106. package/dist/layout/positionStability.js.map +1 -0
  107. package/dist/layout/useAxisConstrain.d.ts +20 -0
  108. package/dist/layout/useAxisConstrain.d.ts.map +1 -0
  109. package/dist/layout/useAxisConstrain.js +106 -0
  110. package/dist/layout/useAxisConstrain.js.map +1 -0
  111. package/dist/layout/useDiagramState.d.ts +92 -0
  112. package/dist/layout/useDiagramState.d.ts.map +1 -0
  113. package/dist/layout/useDiagramState.js +256 -0
  114. package/dist/layout/useDiagramState.js.map +1 -0
  115. package/dist/layout/useLayoutHistory.d.ts +53 -0
  116. package/dist/layout/useLayoutHistory.d.ts.map +1 -0
  117. package/dist/layout/useLayoutHistory.js +124 -0
  118. package/dist/layout/useLayoutHistory.js.map +1 -0
  119. package/dist/properties/NodePropertiesPanel.d.ts +47 -0
  120. package/dist/properties/NodePropertiesPanel.d.ts.map +1 -0
  121. package/dist/properties/NodePropertiesPanel.js +199 -0
  122. package/dist/properties/NodePropertiesPanel.js.map +1 -0
  123. package/dist/properties/index.d.ts +10 -0
  124. package/dist/properties/index.d.ts.map +1 -0
  125. package/dist/properties/index.js +10 -0
  126. package/dist/properties/index.js.map +1 -0
  127. package/dist/properties/propertyUtils.d.ts +60 -0
  128. package/dist/properties/propertyUtils.d.ts.map +1 -0
  129. package/dist/properties/propertyUtils.js +89 -0
  130. package/dist/properties/propertyUtils.js.map +1 -0
  131. package/dist/settings/FontSettingsForm.d.ts +28 -0
  132. package/dist/settings/FontSettingsForm.d.ts.map +1 -0
  133. package/dist/settings/FontSettingsForm.js +129 -0
  134. package/dist/settings/FontSettingsForm.js.map +1 -0
  135. package/dist/settings/LayoutSettingsForm.d.ts +37 -0
  136. package/dist/settings/LayoutSettingsForm.d.ts.map +1 -0
  137. package/dist/settings/LayoutSettingsForm.js +165 -0
  138. package/dist/settings/LayoutSettingsForm.js.map +1 -0
  139. package/dist/settings/SettingsPanel.d.ts +55 -0
  140. package/dist/settings/SettingsPanel.d.ts.map +1 -0
  141. package/dist/settings/SettingsPanel.js +84 -0
  142. package/dist/settings/SettingsPanel.js.map +1 -0
  143. package/dist/settings/index.d.ts +13 -0
  144. package/dist/settings/index.d.ts.map +1 -0
  145. package/dist/settings/index.js +13 -0
  146. package/dist/settings/index.js.map +1 -0
  147. package/dist/settings/useSettings.d.ts +51 -0
  148. package/dist/settings/useSettings.d.ts.map +1 -0
  149. package/dist/settings/useSettings.js +154 -0
  150. package/dist/settings/useSettings.js.map +1 -0
  151. package/dist/text-editor/SplitEditor.d.ts +72 -0
  152. package/dist/text-editor/SplitEditor.d.ts.map +1 -0
  153. package/dist/text-editor/SplitEditor.js +172 -0
  154. package/dist/text-editor/SplitEditor.js.map +1 -0
  155. package/dist/text-editor/TextEditor.d.ts +53 -0
  156. package/dist/text-editor/TextEditor.d.ts.map +1 -0
  157. package/dist/text-editor/TextEditor.js +181 -0
  158. package/dist/text-editor/TextEditor.js.map +1 -0
  159. package/dist/text-editor/hooks/useBidirectionalSync.d.ts +106 -0
  160. package/dist/text-editor/hooks/useBidirectionalSync.d.ts.map +1 -0
  161. package/dist/text-editor/hooks/useBidirectionalSync.js +151 -0
  162. package/dist/text-editor/hooks/useBidirectionalSync.js.map +1 -0
  163. package/dist/text-editor/index.d.ts +9 -0
  164. package/dist/text-editor/index.d.ts.map +1 -0
  165. package/dist/text-editor/index.js +11 -0
  166. package/dist/text-editor/index.js.map +1 -0
  167. package/dist/types.d.ts +242 -0
  168. package/dist/types.d.ts.map +1 -0
  169. package/dist/types.js +5 -0
  170. package/dist/types.js.map +1 -0
  171. package/dist/waypoints/index.d.ts +8 -0
  172. package/dist/waypoints/index.d.ts.map +1 -0
  173. package/dist/waypoints/index.js +7 -0
  174. package/dist/waypoints/index.js.map +1 -0
  175. package/dist/waypoints/operations.d.ts +29 -0
  176. package/dist/waypoints/operations.d.ts.map +1 -0
  177. package/dist/waypoints/operations.js +85 -0
  178. package/dist/waypoints/operations.js.map +1 -0
  179. package/dist/waypoints/router.d.ts +23 -0
  180. package/dist/waypoints/router.d.ts.map +1 -0
  181. package/dist/waypoints/router.js +109 -0
  182. package/dist/waypoints/router.js.map +1 -0
  183. package/dist/waypoints/types.d.ts +15 -0
  184. package/dist/waypoints/types.d.ts.map +1 -0
  185. package/dist/waypoints/types.js +5 -0
  186. package/dist/waypoints/types.js.map +1 -0
  187. package/dist/waypoints/useWaypointManager.d.ts +38 -0
  188. package/dist/waypoints/useWaypointManager.d.ts.map +1 -0
  189. package/dist/waypoints/useWaypointManager.js +106 -0
  190. package/dist/waypoints/useWaypointManager.js.map +1 -0
  191. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontSettingsForm.js","sourceRoot":"","sources":["../../src/settings/FontSettingsForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * LayoutSettingsForm Component (CORAL-REQ-009)
3
+ *
4
+ * Form for configuring ELK layout settings with:
5
+ * - Preset dropdown
6
+ * - Algorithm selection
7
+ * - Direction selection
8
+ * - Spacing configuration
9
+ * - Edge routing options
10
+ * - Advanced ELK options (JSON editor)
11
+ */
12
+ import React from 'react';
13
+ import { type LayoutSettings, type LayoutPresetId } from '../file/schema.js';
14
+ /**
15
+ * Props for LayoutSettingsForm
16
+ */
17
+ export interface LayoutSettingsFormProps {
18
+ /** Current layout settings */
19
+ settings: LayoutSettings;
20
+ /** Currently selected preset */
21
+ selectedPreset: LayoutPresetId;
22
+ /** Callback when settings change */
23
+ onChange: (settings: LayoutSettings) => void;
24
+ /** Callback when preset is selected */
25
+ onPresetChange: (presetId: LayoutPresetId) => void;
26
+ /** Callback when Apply is clicked */
27
+ onApply?: () => void;
28
+ /** Whether the form is disabled */
29
+ disabled?: boolean;
30
+ /** Show advanced options by default */
31
+ showAdvanced?: boolean;
32
+ }
33
+ /**
34
+ * LayoutSettingsForm component
35
+ */
36
+ export declare function LayoutSettingsForm({ settings, selectedPreset, onChange, onPresetChange, onApply, disabled, showAdvanced: initialShowAdvanced, }: LayoutSettingsFormProps): React.ReactElement;
37
+ //# sourceMappingURL=LayoutSettingsForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutSettingsForm.d.ts","sourceRoot":"","sources":["../../src/settings/LayoutSettingsForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAOpB,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,gCAAgC;IAChC,cAAc,EAAE,cAAc,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,uCAAuC;IACvC,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAmED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACd,OAAO,EACP,QAAgB,EAChB,YAAY,EAAE,mBAA2B,GAC1C,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CA+S9C"}
@@ -0,0 +1,165 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * LayoutSettingsForm Component (CORAL-REQ-009)
4
+ *
5
+ * Form for configuring ELK layout settings with:
6
+ * - Preset dropdown
7
+ * - Algorithm selection
8
+ * - Direction selection
9
+ * - Spacing configuration
10
+ * - Edge routing options
11
+ * - Advanced ELK options (JSON editor)
12
+ */
13
+ import { useState, useCallback, useMemo } from 'react';
14
+ import { LAYOUT_PRESETS, getLayoutPreset, } from '../file/schema.js';
15
+ /**
16
+ * Algorithm options for dropdown
17
+ */
18
+ const ALGORITHM_OPTIONS = [
19
+ { value: 'layered', label: 'Layered', description: 'Best for hierarchical structures' },
20
+ { value: 'mrtree', label: 'Tree', description: 'Best for strict tree structures' },
21
+ { value: 'stress', label: 'Stress', description: 'Force-directed, good for networks' },
22
+ { value: 'force', label: 'Force', description: 'Force simulation layout' },
23
+ { value: 'radial', label: 'Radial', description: 'Circular/radial layout' },
24
+ { value: 'box', label: 'Box', description: 'Simple box packing' },
25
+ ];
26
+ /**
27
+ * Direction options for dropdown
28
+ */
29
+ const DIRECTION_OPTIONS = [
30
+ { value: 'DOWN', label: 'Top to Bottom' },
31
+ { value: 'UP', label: 'Bottom to Top' },
32
+ { value: 'RIGHT', label: 'Left to Right' },
33
+ { value: 'LEFT', label: 'Right to Left' },
34
+ ];
35
+ /**
36
+ * Edge routing options for dropdown
37
+ */
38
+ const EDGE_ROUTING_OPTIONS = [
39
+ { value: 'ORTHOGONAL', label: 'Orthogonal (right angles)' },
40
+ { value: 'POLYLINE', label: 'Polyline (straight lines)' },
41
+ { value: 'SPLINES', label: 'Splines (curves)' },
42
+ ];
43
+ /**
44
+ * Node sizing mode options for dropdown (CORAL-REQ-011)
45
+ */
46
+ const SIZING_MODE_OPTIONS = [
47
+ { value: 'adaptive', label: 'Adaptive', description: 'Each node sized to fit its text content' },
48
+ { value: 'uniform', label: 'Uniform', description: 'All nodes of same shape have same size' },
49
+ { value: 'hybrid', label: 'Hybrid', description: 'Adaptive width, uniform height per shape' },
50
+ ];
51
+ /**
52
+ * Shared input styles
53
+ */
54
+ const inputStyles = {
55
+ padding: '6px 10px',
56
+ fontSize: '13px',
57
+ borderRadius: '4px',
58
+ border: '1px solid #ccc',
59
+ backgroundColor: '#fff',
60
+ width: '100%',
61
+ boxSizing: 'border-box',
62
+ };
63
+ const labelStyles = {
64
+ fontSize: '12px',
65
+ fontWeight: 500,
66
+ color: '#555',
67
+ marginBottom: '4px',
68
+ display: 'block',
69
+ };
70
+ const formGroupStyles = {
71
+ marginBottom: '12px',
72
+ };
73
+ /**
74
+ * LayoutSettingsForm component
75
+ */
76
+ export function LayoutSettingsForm({ settings, selectedPreset, onChange, onPresetChange, onApply, disabled = false, showAdvanced: initialShowAdvanced = false, }) {
77
+ const [showAdvanced, setShowAdvanced] = useState(initialShowAdvanced);
78
+ const [elkOptionsJson, setElkOptionsJson] = useState(() => JSON.stringify(settings.elkOptions || {}, null, 2));
79
+ const [elkOptionsError, setElkOptionsError] = useState(null);
80
+ // Memoize preset options
81
+ const presetOptions = useMemo(() => LAYOUT_PRESETS.map((p) => ({
82
+ value: p.id,
83
+ label: p.name,
84
+ description: p.description,
85
+ })), []);
86
+ // Handle preset change
87
+ const handlePresetChange = useCallback((e) => {
88
+ const presetId = e.target.value;
89
+ onPresetChange(presetId);
90
+ // Update the JSON editor with new preset's elkOptions
91
+ const preset = getLayoutPreset(presetId);
92
+ if (preset) {
93
+ setElkOptionsJson(JSON.stringify(preset.settings.elkOptions || {}, null, 2));
94
+ setElkOptionsError(null);
95
+ }
96
+ }, [onPresetChange]);
97
+ // Handle individual setting changes
98
+ const handleAlgorithmChange = useCallback((e) => {
99
+ onChange({ ...settings, algorithm: e.target.value });
100
+ }, [settings, onChange]);
101
+ const handleDirectionChange = useCallback((e) => {
102
+ onChange({ ...settings, direction: e.target.value });
103
+ }, [settings, onChange]);
104
+ const handleSpacingChange = useCallback((key, value) => {
105
+ onChange({
106
+ ...settings,
107
+ spacing: { ...settings.spacing, [key]: value },
108
+ });
109
+ }, [settings, onChange]);
110
+ const handleEdgeRoutingChange = useCallback((e) => {
111
+ const routing = e.target.value;
112
+ onChange({
113
+ ...settings,
114
+ elkOptions: { ...settings.elkOptions, 'elk.edgeRouting': routing },
115
+ });
116
+ }, [settings, onChange]);
117
+ const handleSizingModeChange = useCallback((e) => {
118
+ const sizingMode = e.target.value;
119
+ onChange({ ...settings, sizingMode });
120
+ }, [settings, onChange]);
121
+ // Handle ELK options JSON change
122
+ const handleElkOptionsChange = useCallback((e) => {
123
+ const json = e.target.value;
124
+ setElkOptionsJson(json);
125
+ try {
126
+ const parsed = JSON.parse(json);
127
+ setElkOptionsError(null);
128
+ onChange({ ...settings, elkOptions: parsed });
129
+ }
130
+ catch {
131
+ setElkOptionsError('Invalid JSON');
132
+ }
133
+ }, [settings, onChange]);
134
+ // Get current edge routing value
135
+ const currentEdgeRouting = settings.elkOptions?.['elk.edgeRouting'] || 'ORTHOGONAL';
136
+ return (_jsxs("div", { style: { padding: '12px' }, children: [_jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Preset" }), _jsx("select", { value: selectedPreset, onChange: handlePresetChange, disabled: disabled, style: inputStyles, children: presetOptions.map((opt) => (_jsx("option", { value: opt.value, title: opt.description, children: opt.label }, opt.value))) }), selectedPreset !== 'custom' && (_jsx("div", { style: { fontSize: '11px', color: '#666', marginTop: '4px' }, children: presetOptions.find((p) => p.value === selectedPreset)?.description }))] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Algorithm" }), _jsx("select", { value: settings.algorithm, onChange: handleAlgorithmChange, disabled: disabled, style: inputStyles, children: ALGORITHM_OPTIONS.map((opt) => (_jsx("option", { value: opt.value, title: opt.description, children: opt.label }, opt.value))) })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Direction" }), _jsx("select", { value: settings.direction, onChange: handleDirectionChange, disabled: disabled, style: inputStyles, children: DIRECTION_OPTIONS.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value))) })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Node Spacing" }), _jsx("input", { type: "range", min: "20", max: "150", value: settings.spacing?.nodeNode ?? 50, onChange: (e) => handleSpacingChange('nodeNode', parseInt(e.target.value, 10)), disabled: disabled, style: { width: '100%' } }), _jsxs("div", { style: { fontSize: '11px', color: '#666', textAlign: 'right' }, children: [settings.spacing?.nodeNode ?? 50, "px"] })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Layer Spacing" }), _jsx("input", { type: "range", min: "30", max: "200", value: settings.spacing?.layerSpacing ?? 70, onChange: (e) => handleSpacingChange('layerSpacing', parseInt(e.target.value, 10)), disabled: disabled, style: { width: '100%' } }), _jsxs("div", { style: { fontSize: '11px', color: '#666', textAlign: 'right' }, children: [settings.spacing?.layerSpacing ?? 70, "px"] })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Edge Routing" }), _jsx("select", { value: currentEdgeRouting, onChange: handleEdgeRoutingChange, disabled: disabled, style: inputStyles, children: EDGE_ROUTING_OPTIONS.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value))) })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Node Sizing" }), _jsx("select", { value: settings.sizingMode ?? 'adaptive', onChange: handleSizingModeChange, disabled: disabled, style: inputStyles, children: SIZING_MODE_OPTIONS.map((opt) => (_jsx("option", { value: opt.value, title: opt.description, children: opt.label }, opt.value))) }), _jsx("div", { style: { fontSize: '11px', color: '#666', marginTop: '4px' }, children: SIZING_MODE_OPTIONS.find((o) => o.value === (settings.sizingMode ?? 'adaptive'))?.description })] }), _jsx("div", { style: { marginTop: '16px', marginBottom: '8px' }, children: _jsxs("button", { type: "button", onClick: () => setShowAdvanced(!showAdvanced), disabled: disabled, style: {
137
+ background: 'none',
138
+ border: 'none',
139
+ color: '#1976d2',
140
+ cursor: disabled ? 'default' : 'pointer',
141
+ fontSize: '12px',
142
+ padding: 0,
143
+ display: 'flex',
144
+ alignItems: 'center',
145
+ gap: '4px',
146
+ }, children: [_jsx("span", { style: { transform: showAdvanced ? 'rotate(90deg)' : 'none', transition: 'transform 0.2s' }, children: "\u25B6" }), "Advanced ELK Options"] }) }), showAdvanced && (_jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "ELK Options (JSON)" }), _jsx("textarea", { value: elkOptionsJson, onChange: handleElkOptionsChange, disabled: disabled, placeholder: '{"elk.option": "value"}', style: {
147
+ ...inputStyles,
148
+ height: '100px',
149
+ fontFamily: 'monospace',
150
+ fontSize: '11px',
151
+ resize: 'vertical',
152
+ borderColor: elkOptionsError ? '#d32f2f' : '#ccc',
153
+ } }), elkOptionsError && (_jsx("div", { style: { fontSize: '11px', color: '#d32f2f', marginTop: '4px' }, children: elkOptionsError }))] })), onApply && (_jsx("div", { style: { marginTop: '16px' }, children: _jsx("button", { type: "button", onClick: onApply, disabled: disabled || !!elkOptionsError, style: {
154
+ padding: '8px 16px',
155
+ fontSize: '13px',
156
+ fontWeight: 500,
157
+ borderRadius: '4px',
158
+ border: 'none',
159
+ backgroundColor: disabled || elkOptionsError ? '#ccc' : '#1976d2',
160
+ color: '#fff',
161
+ cursor: disabled || elkOptionsError ? 'not-allowed' : 'pointer',
162
+ width: '100%',
163
+ }, children: "Apply Layout" }) }))] }));
164
+ }
165
+ //# sourceMappingURL=LayoutSettingsForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutSettingsForm.js","sourceRoot":"","sources":["../../src/settings/LayoutSettingsForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * SettingsPanel Component (CORAL-REQ-009)
3
+ *
4
+ * Flat document settings panel showing:
5
+ * - Notation selector
6
+ * - Layout settings (LayoutSettingsForm)
7
+ * - Annotation toggles
8
+ *
9
+ * Accepts an optional theme prop for dark-mode embedding.
10
+ * User preferences have moved to PreferencesDialog in diagram-editor.
11
+ */
12
+ import React from 'react';
13
+ import { type DocumentSettings, type LayoutPresetId } from '../file/schema.js';
14
+ export interface SettingsPanelTheme {
15
+ bg: string;
16
+ text: string;
17
+ labelText: string;
18
+ mutedText: string;
19
+ inputBg: string;
20
+ inputText: string;
21
+ inputBorder: string;
22
+ divider: string;
23
+ accentText: string;
24
+ }
25
+ /**
26
+ * Props for SettingsPanel
27
+ */
28
+ export interface SettingsPanelProps {
29
+ /** Current document settings */
30
+ documentSettings: DocumentSettings;
31
+ /** Currently selected layout preset */
32
+ selectedPreset: LayoutPresetId;
33
+ /** Available notations for dropdown */
34
+ notations: Array<{
35
+ id: string;
36
+ name: string;
37
+ }>;
38
+ /** Callback when document settings change */
39
+ onDocumentSettingsChange: (settings: DocumentSettings) => void;
40
+ /** Callback when layout preset changes */
41
+ onPresetChange: (presetId: LayoutPresetId) => void;
42
+ /** Callback when Apply Layout is clicked */
43
+ onApplyLayout?: () => void;
44
+ /** Whether the panel is disabled */
45
+ disabled?: boolean;
46
+ /** Panel width */
47
+ width?: number | string;
48
+ /** Theme colors for dark-mode embedding */
49
+ theme?: Partial<SettingsPanelTheme>;
50
+ }
51
+ /**
52
+ * SettingsPanel component — document settings only
53
+ */
54
+ export declare function SettingsPanel({ documentSettings, selectedPreset, notations, onDocumentSettingsChange, onPresetChange, onApplyLayout, disabled, width, theme: themeProp, }: SettingsPanelProps): React.ReactElement;
55
+ //# sourceMappingURL=SettingsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsPanel.d.ts","sourceRoot":"","sources":["../../src/settings/SettingsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAcD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,uCAAuC;IACvC,cAAc,EAAE,cAAc,CAAC;IAC/B,uCAAuC;IACvC,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,6CAA6C;IAC7C,wBAAwB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/D,0CAA0C;IAC1C,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,aAAa,EACb,QAAgB,EAChB,KAAW,EACX,KAAK,EAAE,SAAS,GACjB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CA0IzC"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * SettingsPanel Component (CORAL-REQ-009)
4
+ *
5
+ * Flat document settings panel showing:
6
+ * - Notation selector
7
+ * - Layout settings (LayoutSettingsForm)
8
+ * - Annotation toggles
9
+ *
10
+ * Accepts an optional theme prop for dark-mode embedding.
11
+ * User preferences have moved to PreferencesDialog in diagram-editor.
12
+ */
13
+ import { useCallback } from 'react';
14
+ import { LayoutSettingsForm } from './LayoutSettingsForm.js';
15
+ const lightTheme = {
16
+ bg: '#fff',
17
+ text: '#333',
18
+ labelText: '#555',
19
+ mutedText: '#888',
20
+ inputBg: '#fff',
21
+ inputText: '#333',
22
+ inputBorder: '#ccc',
23
+ divider: '#e0e0e0',
24
+ accentText: '#1976d2',
25
+ };
26
+ /**
27
+ * SettingsPanel component — document settings only
28
+ */
29
+ export function SettingsPanel({ documentSettings, selectedPreset, notations, onDocumentSettingsChange, onPresetChange, onApplyLayout, disabled = false, width = 320, theme: themeProp, }) {
30
+ const t = { ...lightTheme, ...themeProp };
31
+ const labelStyles = {
32
+ fontSize: '12px',
33
+ fontWeight: 500,
34
+ color: t.labelText,
35
+ marginBottom: '4px',
36
+ display: 'block',
37
+ };
38
+ const inputStyles = {
39
+ padding: '6px 10px',
40
+ fontSize: '13px',
41
+ borderRadius: '4px',
42
+ border: `1px solid ${t.inputBorder}`,
43
+ backgroundColor: t.inputBg,
44
+ color: t.inputText,
45
+ width: '100%',
46
+ boxSizing: 'border-box',
47
+ };
48
+ const formGroupStyles = {
49
+ marginBottom: '12px',
50
+ };
51
+ const checkboxGroupStyles = {
52
+ display: 'flex',
53
+ alignItems: 'center',
54
+ gap: '8px',
55
+ marginBottom: '8px',
56
+ };
57
+ // Handle notation change
58
+ const handleNotationChange = useCallback((e) => {
59
+ onDocumentSettingsChange({
60
+ ...documentSettings,
61
+ notation: e.target.value,
62
+ });
63
+ }, [documentSettings, onDocumentSettingsChange]);
64
+ // Handle layout settings change
65
+ const handleLayoutChange = useCallback((layout) => {
66
+ onDocumentSettingsChange({
67
+ ...documentSettings,
68
+ layout,
69
+ });
70
+ }, [documentSettings, onDocumentSettingsChange]);
71
+ return (_jsx("div", { style: {
72
+ width,
73
+ backgroundColor: t.bg,
74
+ color: t.text,
75
+ overflow: 'hidden',
76
+ }, children: _jsx("div", { style: { overflowY: 'auto' }, children: _jsxs("div", { style: { padding: '12px' }, children: [_jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Notation" }), _jsx("select", { value: documentSettings.notation, onChange: handleNotationChange, disabled: disabled, style: inputStyles, children: notations.map((n) => (_jsx("option", { value: n.id, children: n.name }, n.id))) })] }), _jsxs("div", { style: { marginTop: '16px', borderTop: `1px solid ${t.divider}`, paddingTop: '12px' }, children: [_jsx("div", { style: { ...labelStyles, fontSize: '13px', marginBottom: '12px' }, children: "Layout Settings" }), _jsx(LayoutSettingsForm, { settings: documentSettings.layout, selectedPreset: selectedPreset, onChange: handleLayoutChange, onPresetChange: onPresetChange, onApply: onApplyLayout, disabled: disabled })] }), _jsxs("div", { style: { marginTop: '16px', borderTop: `1px solid ${t.divider}`, paddingTop: '12px' }, children: [_jsx("div", { style: { ...labelStyles, fontSize: '13px', marginBottom: '8px' }, children: "Annotations" }), _jsxs("label", { style: checkboxGroupStyles, children: [_jsx("input", { type: "checkbox", checked: documentSettings.suppressErrorAnnotations ?? false, onChange: (e) => onDocumentSettingsChange({
77
+ ...documentSettings,
78
+ suppressErrorAnnotations: e.target.checked,
79
+ }), disabled: disabled }), _jsx("span", { style: { fontSize: '13px', color: t.text }, children: "Suppress error annotations" })] }), _jsxs("label", { style: checkboxGroupStyles, children: [_jsx("input", { type: "checkbox", checked: documentSettings.suppressWarningAnnotations ?? false, onChange: (e) => onDocumentSettingsChange({
80
+ ...documentSettings,
81
+ suppressWarningAnnotations: e.target.checked,
82
+ }), disabled: disabled }), _jsx("span", { style: { fontSize: '13px', color: t.text }, children: "Suppress warning annotations" })] }), _jsx("div", { style: { fontSize: '11px', color: t.mutedText, marginTop: '4px' }, children: "When suppressed, edges render normally but issues still appear in the diagnostics log." })] })] }) }) }));
83
+ }
84
+ //# sourceMappingURL=SettingsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../src/settings/SettingsPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Settings Module (CORAL-REQ-009)
3
+ *
4
+ * Provides settings management for Coral diagrams:
5
+ * - useSettings hook for state management
6
+ * - SettingsPanel component for settings UI
7
+ * - LayoutSettingsForm component for layout configuration
8
+ */
9
+ export { useSettings, type UseSettingsOptions, type UseSettingsResult, } from './useSettings.js';
10
+ export { LayoutSettingsForm, type LayoutSettingsFormProps, } from './LayoutSettingsForm.js';
11
+ export { SettingsPanel, type SettingsPanelProps, type SettingsPanelTheme, } from './SettingsPanel.js';
12
+ export { FontSettingsForm, type FontSettingsFormProps, } from './FontSettingsForm.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Settings Module (CORAL-REQ-009)
3
+ *
4
+ * Provides settings management for Coral diagrams:
5
+ * - useSettings hook for state management
6
+ * - SettingsPanel component for settings UI
7
+ * - LayoutSettingsForm component for layout configuration
8
+ */
9
+ export { useSettings, } from './useSettings.js';
10
+ export { LayoutSettingsForm, } from './LayoutSettingsForm.js';
11
+ export { SettingsPanel, } from './SettingsPanel.js';
12
+ export { FontSettingsForm, } from './FontSettingsForm.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,GAGZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * useSettings Hook (CORAL-REQ-009)
3
+ *
4
+ * Manages settings state with two tiers:
5
+ * - Document Settings: Saved with the diagram file
6
+ * - User Preferences: Saved to localStorage
7
+ */
8
+ import { type UserPreferences, type DocumentSettings, type LayoutSettings, type LayoutPresetId, type SettingsPanelState } from '../file/schema.js';
9
+ /**
10
+ * Options for useSettings hook
11
+ */
12
+ export interface UseSettingsOptions {
13
+ /** Initial document settings (from loaded file) */
14
+ initialDocumentSettings?: DocumentSettings;
15
+ /** Initial user preferences (overrides localStorage) */
16
+ initialUserPreferences?: UserPreferences;
17
+ /** Callback when document settings change */
18
+ onDocumentSettingsChange?: (settings: DocumentSettings) => void;
19
+ /** Callback when layout settings change (for triggering reflow) */
20
+ onLayoutChange?: (layout: LayoutSettings) => void;
21
+ }
22
+ /**
23
+ * Result returned by useSettings hook
24
+ */
25
+ export interface UseSettingsResult {
26
+ /** Current user preferences */
27
+ userPreferences: UserPreferences;
28
+ /** Current document settings */
29
+ documentSettings: DocumentSettings;
30
+ /** Currently selected/detected preset */
31
+ selectedPreset: LayoutPresetId;
32
+ /** Update user preferences (merged with existing) */
33
+ updateUserPreferences: (updates: Partial<UserPreferences>) => void;
34
+ /** Reset user preferences to defaults */
35
+ resetUserPreferences: () => void;
36
+ /** Update document settings */
37
+ updateDocumentSettings: (settings: DocumentSettings) => void;
38
+ /** Apply a layout preset */
39
+ applyLayoutPreset: (presetId: LayoutPresetId) => void;
40
+ /** Add a file to recent files list */
41
+ addRecentFile: (filePath: string) => void;
42
+ /** Clear recent files list */
43
+ clearRecentFiles: () => void;
44
+ /** Get combined settings panel state */
45
+ getSettingsPanelState: () => SettingsPanelState;
46
+ }
47
+ /**
48
+ * Hook for managing settings with localStorage persistence for user preferences
49
+ */
50
+ export declare function useSettings(options?: UseSettingsOptions): UseSettingsResult;
51
+ //# sourceMappingURL=useSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSettings.d.ts","sourceRoot":"","sources":["../../src/settings/useSettings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAKxB,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,6CAA6C;IAC7C,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChE,mEAAmE;IACnE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,gCAAgC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,yCAAyC;IACzC,cAAc,EAAE,cAAc,CAAC;IAE/B,qDAAqD;IACrD,qBAAqB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACnE,yCAAyC;IACzC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAEjC,+BAA+B;IAC/B,sBAAsB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE7D,4BAA4B;IAC5B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAEtD,sCAAsC;IACtC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8BAA8B;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAE7B,wCAAwC;IACxC,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;CACjD;AA8DD;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CAkH/E"}