@coral-viz/viz 0.2.4 → 0.2.6

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 (102) hide show
  1. package/README.md +30 -7
  2. package/dist/compatibility/CompatibilityEdge.d.ts +12 -1
  3. package/dist/compatibility/CompatibilityEdge.d.ts.map +1 -1
  4. package/dist/compatibility/CompatibilityEdge.js +30 -5
  5. package/dist/compatibility/CompatibilityEdge.js.map +1 -1
  6. package/dist/compatibility/EndpointMarkerDefinitions.d.ts +10 -0
  7. package/dist/compatibility/EndpointMarkerDefinitions.d.ts.map +1 -0
  8. package/dist/compatibility/EndpointMarkerDefinitions.js +25 -0
  9. package/dist/compatibility/EndpointMarkerDefinitions.js.map +1 -0
  10. package/dist/compatibility/effectivePorts.d.ts +17 -0
  11. package/dist/compatibility/effectivePorts.d.ts.map +1 -0
  12. package/dist/compatibility/effectivePorts.js +31 -0
  13. package/dist/compatibility/effectivePorts.js.map +1 -0
  14. package/dist/compatibility/index.d.ts +1 -0
  15. package/dist/compatibility/index.d.ts.map +1 -1
  16. package/dist/compatibility/index.js +1 -0
  17. package/dist/compatibility/index.js.map +1 -1
  18. package/dist/compatibility/useEdgeCompatibility.d.ts.map +1 -1
  19. package/dist/compatibility/useEdgeCompatibility.js +10 -2
  20. package/dist/compatibility/useEdgeCompatibility.js.map +1 -1
  21. package/dist/compatibility/validateConnection.d.ts.map +1 -1
  22. package/dist/compatibility/validateConnection.js +22 -28
  23. package/dist/compatibility/validateConnection.js.map +1 -1
  24. package/dist/components/SequenceDiagram.d.ts +26 -0
  25. package/dist/components/SequenceDiagram.d.ts.map +1 -0
  26. package/dist/components/SequenceDiagram.js +68 -0
  27. package/dist/components/SequenceDiagram.js.map +1 -0
  28. package/dist/components/ShapeRenderer.d.ts +3 -1
  29. package/dist/components/ShapeRenderer.d.ts.map +1 -1
  30. package/dist/components/ShapeRenderer.js +5 -29
  31. package/dist/components/ShapeRenderer.js.map +1 -1
  32. package/dist/components/SymbolNode.d.ts +3 -0
  33. package/dist/components/SymbolNode.d.ts.map +1 -1
  34. package/dist/components/SymbolNode.js +61 -88
  35. package/dist/components/SymbolNode.js.map +1 -1
  36. package/dist/components/index.d.ts +1 -0
  37. package/dist/components/index.d.ts.map +1 -1
  38. package/dist/components/index.js +1 -0
  39. package/dist/components/index.js.map +1 -1
  40. package/dist/editor/CoralEditor.d.ts +1 -1
  41. package/dist/editor/CoralEditor.d.ts.map +1 -1
  42. package/dist/editor/CoralEditor.js +13 -4
  43. package/dist/editor/CoralEditor.js.map +1 -1
  44. package/dist/editor/FileControls.d.ts +16 -1
  45. package/dist/editor/FileControls.d.ts.map +1 -1
  46. package/dist/editor/FileControls.js +21 -6
  47. package/dist/editor/FileControls.js.map +1 -1
  48. package/dist/editor/converter.d.ts +7 -2
  49. package/dist/editor/converter.d.ts.map +1 -1
  50. package/dist/editor/converter.js +18 -20
  51. package/dist/editor/converter.js.map +1 -1
  52. package/dist/file/deserialize.d.ts +2 -1
  53. package/dist/file/deserialize.d.ts.map +1 -1
  54. package/dist/file/deserialize.js +4 -4
  55. package/dist/file/deserialize.js.map +1 -1
  56. package/dist/file/index.d.ts +2 -1
  57. package/dist/file/index.d.ts.map +1 -1
  58. package/dist/file/index.js +2 -1
  59. package/dist/file/index.js.map +1 -1
  60. package/dist/file/migrate.d.ts +18 -1
  61. package/dist/file/migrate.d.ts.map +1 -1
  62. package/dist/file/migrate.js +107 -6
  63. package/dist/file/migrate.js.map +1 -1
  64. package/dist/file/portMaterialization.d.ts +19 -0
  65. package/dist/file/portMaterialization.d.ts.map +1 -0
  66. package/dist/file/portMaterialization.js +105 -0
  67. package/dist/file/portMaterialization.js.map +1 -0
  68. package/dist/file/serialize.d.ts.map +1 -1
  69. package/dist/file/serialize.js +42 -6
  70. package/dist/file/serialize.js.map +1 -1
  71. package/dist/index.d.ts +5 -5
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -5
  74. package/dist/index.js.map +1 -1
  75. package/dist/layout/elk.d.ts.map +1 -1
  76. package/dist/layout/elk.js +5 -31
  77. package/dist/layout/elk.js.map +1 -1
  78. package/dist/layout/positionStability.d.ts +2 -1
  79. package/dist/layout/positionStability.d.ts.map +1 -1
  80. package/dist/layout/positionStability.js +22 -6
  81. package/dist/layout/positionStability.js.map +1 -1
  82. package/dist/layout/useLayoutHistory.d.ts +8 -0
  83. package/dist/layout/useLayoutHistory.d.ts.map +1 -1
  84. package/dist/layout/useLayoutHistory.js +14 -3
  85. package/dist/layout/useLayoutHistory.js.map +1 -1
  86. package/dist/properties/NodePropertiesPanel.d.ts +6 -2
  87. package/dist/properties/NodePropertiesPanel.d.ts.map +1 -1
  88. package/dist/properties/NodePropertiesPanel.js +246 -28
  89. package/dist/properties/NodePropertiesPanel.js.map +1 -1
  90. package/dist/settings/useSettings.d.ts.map +1 -1
  91. package/dist/settings/useSettings.js +9 -2
  92. package/dist/settings/useSettings.js.map +1 -1
  93. package/dist/text-editor/TextEditor.d.ts +12 -0
  94. package/dist/text-editor/TextEditor.d.ts.map +1 -1
  95. package/dist/text-editor/TextEditor.js +52 -24
  96. package/dist/text-editor/TextEditor.js.map +1 -1
  97. package/dist/text-editor/hooks/useBidirectionalSync.d.ts +3 -2
  98. package/dist/text-editor/hooks/useBidirectionalSync.d.ts.map +1 -1
  99. package/dist/text-editor/hooks/useBidirectionalSync.js.map +1 -1
  100. package/dist/types.d.ts +4 -1
  101. package/dist/types.d.ts.map +1 -1
  102. package/package.json +12 -11
@@ -6,7 +6,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  * Shows node info (ID, type), basic properties (label, description),
7
7
  * and custom properties with type-appropriate input controls.
8
8
  */
9
- import { useState, useCallback, useMemo } from 'react';
9
+ import { useState, useCallback, useEffect, useMemo, useRef } from 'react';
10
+ import { formatUmlMember, parseCoralUmlMember, } from '@coral-viz/language';
10
11
  import { extractPropertyFields, } from './propertyUtils.js';
11
12
  // ============================================================================
12
13
  // Styles
@@ -41,6 +42,38 @@ const formGroupStyles = {
41
42
  };
42
43
  function PropertyInput({ meta, onChange, disabled }) {
43
44
  const { type, value, isEditable } = meta;
45
+ const [draft, setDraft] = useState(String(value ?? ''));
46
+ const skipBlur = useRef(false);
47
+ useEffect(() => setDraft(String(value ?? '')), [value]);
48
+ const commitDraft = () => {
49
+ if (skipBlur.current) {
50
+ skipBlur.current = false;
51
+ return;
52
+ }
53
+ if (type === 'number') {
54
+ const parsed = Number(draft);
55
+ if (draft.trim() === '' || !Number.isFinite(parsed)) {
56
+ setDraft(String(value ?? ''));
57
+ return;
58
+ }
59
+ if (parsed !== value)
60
+ onChange(parsed);
61
+ }
62
+ else if (draft !== String(value ?? ''))
63
+ onChange(draft);
64
+ };
65
+ const handleDraftKey = (event) => {
66
+ if (event.key === 'Enter') {
67
+ commitDraft();
68
+ skipBlur.current = true;
69
+ event.currentTarget.blur();
70
+ }
71
+ else if (event.key === 'Escape') {
72
+ skipBlur.current = true;
73
+ setDraft(String(value ?? ''));
74
+ event.currentTarget.blur();
75
+ }
76
+ };
44
77
  // Non-editable types show as read-only
45
78
  if (!isEditable) {
46
79
  return (_jsx("div", { style: {
@@ -54,49 +87,191 @@ function PropertyInput({ meta, onChange, disabled }) {
54
87
  }
55
88
  // Boolean: checkbox
56
89
  if (type === 'boolean') {
57
- return (_jsx("input", { type: "checkbox", checked: Boolean(value), onChange: (e) => onChange(e.target.checked), disabled: disabled }));
90
+ return (_jsx("input", { type: "checkbox", "aria-label": `Property ${meta.key}`, checked: Boolean(value), onChange: (e) => onChange(e.target.checked), disabled: disabled }));
58
91
  }
59
92
  // Number: number input
60
93
  if (type === 'number') {
61
- return (_jsx("input", { type: "number", value: value, onChange: (e) => {
62
- const parsed = parseFloat(e.target.value);
63
- onChange(isNaN(parsed) ? 0 : parsed);
64
- }, disabled: disabled, style: inputStyles }));
94
+ return (_jsx("input", { type: "number", "aria-label": `Property ${meta.key}`, value: draft, onChange: (e) => setDraft(e.target.value), onBlur: commitDraft, onKeyDown: handleDraftKey, disabled: disabled, style: inputStyles }));
65
95
  }
66
96
  // String (default): text input
67
- return (_jsx("input", { type: "text", value: String(value ?? ''), onChange: (e) => onChange(e.target.value), disabled: disabled, style: inputStyles }));
97
+ return (_jsx("input", { type: "text", "aria-label": `Property ${meta.key}`, value: draft, onChange: (e) => setDraft(e.target.value), onBlur: commitDraft, onKeyDown: handleDraftKey, disabled: disabled, style: inputStyles }));
98
+ }
99
+ function ClassifierMemberInput({ member, compartment, ordinal, disabled, onCommit, }) {
100
+ const canonical = useMemo(() => formatUmlMember(member, `${member.kind}-${ordinal}`), [member, ordinal]);
101
+ const [draft, setDraft] = useState(canonical);
102
+ const [error, setError] = useState();
103
+ const skipBlur = useRef(false);
104
+ useEffect(() => { setDraft(canonical); setError(undefined); }, [canonical]);
105
+ const commit = () => {
106
+ if (skipBlur.current) {
107
+ skipBlur.current = false;
108
+ return;
109
+ }
110
+ const parsed = parseCoralUmlMember(draft.trim(), compartment, ordinal);
111
+ if (!parsed.value) {
112
+ setError(parsed.error ?? 'Invalid UML member');
113
+ return;
114
+ }
115
+ const conflict = onCommit(parsed.value);
116
+ if (conflict) {
117
+ setError(conflict);
118
+ return;
119
+ }
120
+ setError(undefined);
121
+ };
122
+ return (_jsxs("div", { style: { flex: 1 }, children: [_jsx("input", { type: "text", "aria-label": `${compartment} ${ordinal} member`, value: draft, onChange: (event) => { setDraft(event.target.value); setError(undefined); }, onBlur: commit, onKeyDown: (event) => {
123
+ if (event.key === 'Enter')
124
+ event.currentTarget.blur();
125
+ if (event.key === 'Escape') {
126
+ skipBlur.current = true;
127
+ setDraft(canonical);
128
+ setError(undefined);
129
+ event.currentTarget.blur();
130
+ }
131
+ }, "aria-invalid": error ? true : undefined, disabled: disabled, style: inputStyles }), error && _jsx("div", { role: "alert", style: { color: '#b91c1c', fontSize: '11px' }, children: error })] }));
68
132
  }
69
133
  // ============================================================================
70
134
  // NodePropertiesPanel Component
71
135
  // ============================================================================
72
- export function NodePropertiesPanel({ selectedNode, onPropertyChange, onAddProperty, onRemoveProperty, disabled = false, width = 320, showNodeId = true, showNodeType = true, allowAddProperties = true, allowRemoveProperties = true, }) {
136
+ export function NodePropertiesPanel({ selectedNode, onPropertyChange, onAddProperty, onRemoveProperty, onEditSessionStart, onEditSessionEnd, onEditSessionCancel, disabled = false, width = 320, showNodeId = true, showNodeType = true, allowAddProperties = true, allowRemoveProperties = true, }) {
73
137
  const [newPropertyKey, setNewPropertyKey] = useState('');
74
138
  const [newPropertyValue, setNewPropertyValue] = useState('');
75
139
  const [newPropertyType, setNewPropertyType] = useState('string');
140
+ const [labelDraft, setLabelDraft] = useState(selectedNode?.data.label ?? '');
141
+ const [labelError, setLabelError] = useState();
142
+ const [descriptionDraft, setDescriptionDraft] = useState(selectedNode?.data.description ?? '');
143
+ const cancelledBlur = useRef(null);
144
+ useEffect(() => {
145
+ setLabelDraft(selectedNode?.data.label ?? '');
146
+ setLabelError(undefined);
147
+ setDescriptionDraft(selectedNode?.data.description ?? '');
148
+ }, [selectedNode?.id, selectedNode?.data.label, selectedNode?.data.description]);
76
149
  // Extract custom properties
77
150
  const customProperties = useMemo(() => extractPropertyFields(selectedNode?.data?.properties), [selectedNode?.data?.properties]);
78
- // Handle label change
79
- const handleLabelChange = useCallback((e) => {
80
- if (!selectedNode)
151
+ const classifier = selectedNode?.data.canonical?.classifier;
152
+ const updateClassifier = useCallback((next) => {
153
+ if (!selectedNode || !classifier)
81
154
  return;
82
155
  onPropertyChange({
83
156
  nodeId: selectedNode.id,
84
- field: 'label',
85
- oldValue: selectedNode.data.label,
86
- newValue: e.target.value,
157
+ field: 'classifier',
158
+ oldValue: classifier,
159
+ newValue: next,
87
160
  });
88
- }, [selectedNode, onPropertyChange]);
161
+ }, [classifier, onPropertyChange, selectedNode]);
162
+ const changeClassifierKind = useCallback((kind) => {
163
+ if (!classifier || kind === classifier.kind)
164
+ return;
165
+ const incompatible = classifier.compartments.some((part) => kind === 'enum'
166
+ ? part.kind === 'attributes'
167
+ : part.kind === 'literals')
168
+ || kind === 'interface' && Boolean(classifier.modifiers?.includes('static'))
169
+ || kind === 'enum' && Boolean(classifier.modifiers?.length);
170
+ if (incompatible)
171
+ return;
172
+ const members = classifier.compartments.filter((part) => part.kind !== 'name');
173
+ updateClassifier({
174
+ ...classifier,
175
+ kind,
176
+ compartments: [
177
+ { id: 'name', kind: 'name' },
178
+ ...members,
179
+ ...(kind === 'enum' && !members.some((part) => part.kind === 'literals')
180
+ ? [{ id: 'literals', kind: 'literals', items: [] }]
181
+ : !members.length ? [{ id: 'attributes', kind: 'attributes', items: [] }] : []),
182
+ ],
183
+ });
184
+ }, [classifier, updateClassifier]);
185
+ const changeClassifierModifier = useCallback((modifier, checked) => {
186
+ if (!classifier)
187
+ return;
188
+ const modifiers = (classifier.modifiers ?? []).filter((value) => value !== modifier);
189
+ if (checked)
190
+ modifiers.push(modifier);
191
+ modifiers.sort((left, right) => ['abstract', 'static'].indexOf(left) - ['abstract', 'static'].indexOf(right));
192
+ updateClassifier({ ...classifier, ...(modifiers.length ? { modifiers } : { modifiers: undefined }) });
193
+ }, [classifier, updateClassifier]);
194
+ const replaceCompartment = useCallback((next) => {
195
+ if (!classifier)
196
+ return;
197
+ updateClassifier({
198
+ ...classifier,
199
+ compartments: classifier.compartments.map((part) => part.id === next.id ? next : part),
200
+ });
201
+ }, [classifier, updateClassifier]);
202
+ const replaceClassifierMember = useCallback((part, index, member) => {
203
+ if (!classifier)
204
+ return 'No classifier is selected';
205
+ const collision = classifier.compartments.some((candidate) => candidate.id === member.id
206
+ || ('items' in candidate && candidate.items.some((item, candidateIndex) => item.id === member.id && !(candidate.id === part.id && candidateIndex === index))));
207
+ if (!member.id || collision)
208
+ return member.id
209
+ ? `Classifier identity "${member.id}" is already used`
210
+ : 'Classifier member id must not be empty';
211
+ replaceCompartment({
212
+ ...part,
213
+ items: part.items.map((candidate, itemIndex) => itemIndex === index ? member : candidate),
214
+ });
215
+ return undefined;
216
+ }, [classifier, replaceCompartment]);
217
+ const addClassifierMember = useCallback((kind) => {
218
+ if (!classifier)
219
+ return;
220
+ const existing = classifier.compartments.find((part) => part.kind === kind);
221
+ const prefix = kind === 'attributes' ? 'attribute' : kind === 'operations' ? 'operation' : 'literal';
222
+ const used = new Set(classifier.compartments.flatMap((part) => [
223
+ part.id, ...('items' in part ? part.items.map((item) => item.id) : []),
224
+ ]));
225
+ let ordinal = 1;
226
+ while (used.has(`${prefix}-${ordinal}`))
227
+ ordinal++;
228
+ const item = kind === 'attributes'
229
+ ? { id: `attribute-${ordinal}`, kind: 'attribute', name: `attribute${ordinal}` }
230
+ : kind === 'operations'
231
+ ? { id: `operation-${ordinal}`, kind: 'operation', name: `operation${ordinal}`, parameters: [] }
232
+ : { id: `literal-${ordinal}`, kind: 'literal', name: `VALUE_${ordinal}` };
233
+ if (existing && 'items' in existing) {
234
+ replaceCompartment({ ...existing, items: [...existing.items, item] });
235
+ return;
236
+ }
237
+ updateClassifier({
238
+ ...classifier,
239
+ compartments: [...classifier.compartments, { id: kind, kind, items: [item] }],
240
+ });
241
+ }, [classifier, replaceCompartment, updateClassifier]);
242
+ // Handle label change
243
+ const handleLabelChange = useCallback((e) => {
244
+ setLabelDraft(e.target.value);
245
+ setLabelError(undefined);
246
+ }, []);
247
+ const commitLabel = useCallback(() => {
248
+ if (!selectedNode || cancelledBlur.current === 'label') {
249
+ cancelledBlur.current = null;
250
+ return;
251
+ }
252
+ if (classifier && !labelDraft.trim()) {
253
+ setLabelError('UML classifier names must not be empty');
254
+ return;
255
+ }
256
+ if (labelDraft !== selectedNode.data.label)
257
+ onPropertyChange({
258
+ nodeId: selectedNode.id, field: 'label', oldValue: selectedNode.data.label, newValue: labelDraft,
259
+ });
260
+ }, [classifier, labelDraft, onPropertyChange, selectedNode]);
89
261
  // Handle description change
90
262
  const handleDescriptionChange = useCallback((e) => {
91
- if (!selectedNode)
263
+ setDescriptionDraft(e.target.value);
264
+ }, []);
265
+ const commitDescription = useCallback(() => {
266
+ if (!selectedNode || cancelledBlur.current === 'description') {
267
+ cancelledBlur.current = null;
92
268
  return;
93
- onPropertyChange({
94
- nodeId: selectedNode.id,
95
- field: 'description',
96
- oldValue: selectedNode.data.description,
97
- newValue: e.target.value,
98
- });
99
- }, [selectedNode, onPropertyChange]);
269
+ }
270
+ if (descriptionDraft !== (selectedNode.data.description ?? ''))
271
+ onPropertyChange({
272
+ nodeId: selectedNode.id, field: 'description', oldValue: selectedNode.data.description, newValue: descriptionDraft,
273
+ });
274
+ }, [descriptionDraft, onPropertyChange, selectedNode]);
100
275
  // Handle custom property change
101
276
  const handlePropertyValueChange = useCallback((key, oldValue, newValue) => {
102
277
  if (!selectedNode)
@@ -154,11 +329,49 @@ export function NodePropertiesPanel({ selectedNode, onPropertyChange, onAddPrope
154
329
  borderBottom: '1px solid #e0e0e0',
155
330
  fontWeight: 600,
156
331
  fontSize: '14px',
157
- }, children: "Node Properties" }), _jsxs("div", { style: { padding: '12px', maxHeight: '500px', overflowY: 'auto' }, children: [_jsx("div", { style: sectionHeaderStyles, children: "Node Info" }), showNodeId && (_jsxs("div", { style: { ...formGroupStyles, display: 'flex', gap: '8px' }, children: [_jsx("span", { style: { ...labelStyles, width: '50px', marginBottom: 0 }, children: "ID:" }), _jsx("span", { style: { fontSize: '12px', color: '#666', fontFamily: 'monospace' }, children: selectedNode.id })] })), showNodeType && (_jsxs("div", { style: { ...formGroupStyles, display: 'flex', gap: '8px' }, children: [_jsx("span", { style: { ...labelStyles, width: '50px', marginBottom: 0 }, children: "Type:" }), _jsx("span", { style: { fontSize: '12px', color: '#666' }, children: selectedNode.data.nodeType })] })), _jsx("div", { style: sectionHeaderStyles, children: "Basic Properties" }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Label" }), _jsx("input", { type: "text", value: selectedNode.data.label, onChange: handleLabelChange, disabled: disabled, style: inputStyles })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Description" }), _jsx("textarea", { value: selectedNode.data.description ?? '', onChange: handleDescriptionChange, disabled: disabled, placeholder: "Optional description...", rows: 3, style: {
332
+ }, children: "Node Properties" }), _jsxs("div", { style: { padding: '12px', maxHeight: '500px', overflowY: 'auto' }, children: [_jsx("div", { style: sectionHeaderStyles, children: "Node Info" }), showNodeId && (_jsxs("div", { style: { ...formGroupStyles, display: 'flex', gap: '8px' }, children: [_jsx("span", { style: { ...labelStyles, width: '50px', marginBottom: 0 }, children: "ID:" }), _jsx("span", { style: { fontSize: '12px', color: '#666', fontFamily: 'monospace' }, children: selectedNode.id })] })), showNodeType && (_jsxs("div", { style: { ...formGroupStyles, display: 'flex', gap: '8px' }, children: [_jsx("span", { style: { ...labelStyles, width: '50px', marginBottom: 0 }, children: "Type:" }), _jsx("span", { style: { fontSize: '12px', color: '#666' }, children: selectedNode.data.nodeType })] })), _jsx("div", { style: sectionHeaderStyles, children: "Basic Properties" }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Label" }), _jsx("input", { type: "text", "aria-label": "Node label", value: labelDraft, onChange: handleLabelChange, onFocus: () => onEditSessionStart?.('label'), onBlur: () => { commitLabel(); onEditSessionEnd?.('label'); }, onKeyDown: (event) => {
333
+ if (event.key === 'Enter') {
334
+ commitLabel();
335
+ cancelledBlur.current = 'label';
336
+ onEditSessionEnd?.('label');
337
+ event.currentTarget.blur();
338
+ }
339
+ else if (event.key === 'Escape') {
340
+ cancelledBlur.current = 'label';
341
+ setLabelDraft(selectedNode.data.label);
342
+ onEditSessionCancel?.('label');
343
+ event.currentTarget.blur();
344
+ }
345
+ }, disabled: disabled, "aria-invalid": labelError ? true : undefined, style: inputStyles }), labelError && _jsx("div", { role: "alert", style: { color: '#b91c1c', fontSize: '11px' }, children: labelError })] }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Description" }), _jsx("textarea", { "aria-label": "Node description", value: descriptionDraft, onChange: handleDescriptionChange, onFocus: () => onEditSessionStart?.('description'), onBlur: () => { commitDescription(); onEditSessionEnd?.('description'); }, onKeyDown: (event) => {
346
+ if (event.key === 'Escape') {
347
+ cancelledBlur.current = 'description';
348
+ setDescriptionDraft(selectedNode.data.description ?? '');
349
+ onEditSessionCancel?.('description');
350
+ event.currentTarget.blur();
351
+ }
352
+ }, disabled: disabled, placeholder: "Optional description...", rows: 3, style: {
158
353
  ...inputStyles,
159
354
  resize: 'vertical',
160
355
  minHeight: '60px',
161
- } })] }), _jsx("div", { style: sectionHeaderStyles, children: "Custom Properties" }), customProperties.length === 0 ? (_jsx("div", { style: {
356
+ } })] }), classifier && (_jsxs("div", { "data-coral-classifier-editor": true, children: [_jsx("div", { style: sectionHeaderStyles, children: "UML Classifier" }), _jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: "Kind" }), _jsx("select", { "aria-label": "Classifier kind", value: classifier.kind, onChange: (event) => changeClassifierKind(event.target.value), disabled: disabled, style: inputStyles, children: ['class', 'interface', 'enum'].map((kind) => {
357
+ const incompatible = classifier.compartments.some((part) => kind === 'enum'
358
+ ? part.kind === 'attributes'
359
+ : part.kind === 'literals')
360
+ || kind === 'interface' && Boolean(classifier.modifiers?.includes('static'))
361
+ || kind === 'enum' && Boolean(classifier.modifiers?.length);
362
+ return _jsx("option", { value: kind, disabled: incompatible, children: kind }, kind);
363
+ }) }), _jsx("div", { style: { color: '#666', fontSize: '11px' }, children: "Kind choices that would discard compartments or modifiers are disabled." })] }), _jsx("div", { style: { ...formGroupStyles, display: 'flex', gap: '12px' }, children: ['abstract', 'static'].map((modifier) => (_jsxs("label", { style: { ...labelStyles, display: 'flex', gap: '4px' }, children: [_jsx("input", { type: "checkbox", "aria-label": `Classifier ${modifier}`, checked: classifier.modifiers?.includes(modifier) ?? false, onChange: (event) => changeClassifierModifier(modifier, event.target.checked), disabled: disabled || classifier.kind === 'enum'
364
+ || (modifier === 'static' && classifier.kind === 'interface') }), modifier] }, modifier))) }), classifier.compartments.filter((part) => part.kind !== 'name').map((part) => (_jsxs("div", { style: formGroupStyles, children: [_jsx("label", { style: labelStyles, children: part.kind }), part.items.map((item, index) => (_jsxs("div", { style: { display: 'flex', gap: '4px', marginBottom: '4px' }, children: [_jsx(ClassifierMemberInput, { member: item, compartment: part.kind, ordinal: index + 1, disabled: disabled, onCommit: (member) => replaceClassifierMember(part, index, member) }), _jsx("button", { type: "button", "aria-label": `Move ${item.name} up`, disabled: disabled || index === 0, onClick: () => {
365
+ const items = [...part.items];
366
+ [items[index - 1], items[index]] = [items[index], items[index - 1]];
367
+ replaceCompartment({ ...part, items });
368
+ }, children: "\u2191" }), _jsx("button", { type: "button", "aria-label": `Move ${item.name} down`, disabled: disabled || index === part.items.length - 1, onClick: () => {
369
+ const items = [...part.items];
370
+ [items[index], items[index + 1]] = [items[index + 1], items[index]];
371
+ replaceCompartment({ ...part, items });
372
+ }, children: "\u2193" }), _jsx("button", { type: "button", "aria-label": `Remove ${item.name}`, disabled: disabled, onClick: () => replaceCompartment({
373
+ ...part, items: part.items.filter((_, itemIndex) => itemIndex !== index),
374
+ }), children: "\u00D7" })] }, item.id))), _jsxs("button", { type: "button", disabled: disabled, onClick: () => addClassifierMember(part.kind), children: ["Add ", part.kind === 'literals' ? 'literal' : part.kind === 'operations' ? 'operation' : 'attribute'] })] }, part.id))), !classifier.compartments.some((part) => part.kind === 'operations') && (_jsx("button", { type: "button", disabled: disabled, onClick: () => addClassifierMember('operations'), children: "Add operation" })), classifier.kind !== 'enum' && !classifier.compartments.some((part) => part.kind === 'attributes') && (_jsx("button", { type: "button", disabled: disabled, onClick: () => addClassifierMember('attributes'), children: "Add attribute" }))] })), _jsx("div", { style: sectionHeaderStyles, children: "Custom Properties" }), customProperties.length === 0 ? (_jsx("div", { style: {
162
375
  fontSize: '12px',
163
376
  color: '#999',
164
377
  fontStyle: 'italic',
@@ -173,19 +386,24 @@ export function NodePropertiesPanel({ selectedNode, onPropertyChange, onAddPrope
173
386
  fontWeight: 500,
174
387
  minWidth: '80px',
175
388
  color: '#555',
176
- }, children: prop.key }), _jsx("div", { style: { flex: 1 }, children: _jsx(PropertyInput, { meta: prop, onChange: (newValue) => handlePropertyValueChange(prop.key, prop.value, newValue), disabled: disabled }) }), allowRemoveProperties && onRemoveProperty && (_jsx("button", { type: "button", onClick: () => onRemoveProperty(selectedNode.id, prop.key), disabled: disabled, style: {
389
+ }, children: prop.key }), _jsx("div", { style: { flex: 1 }, children: _jsx("div", { onFocusCapture: () => onEditSessionStart?.(`property:${prop.key}`), onBlurCapture: () => onEditSessionEnd?.(`property:${prop.key}`), onKeyDown: (event) => {
390
+ if (event.key === 'Enter')
391
+ onEditSessionEnd?.(`property:${prop.key}`);
392
+ else if (event.key === 'Escape')
393
+ onEditSessionCancel?.(`property:${prop.key}`);
394
+ }, children: _jsx(PropertyInput, { meta: prop, onChange: (newValue) => handlePropertyValueChange(prop.key, prop.value, newValue), disabled: disabled }) }) }), allowRemoveProperties && onRemoveProperty && (_jsx("button", { type: "button", onClick: () => onRemoveProperty(selectedNode.id, prop.key), disabled: disabled, style: {
177
395
  padding: '4px 8px',
178
396
  border: 'none',
179
397
  background: 'transparent',
180
398
  color: '#d32f2f',
181
399
  cursor: disabled ? 'default' : 'pointer',
182
400
  fontSize: '14px',
183
- }, title: "Remove property", children: "\u00D7" }))] }, prop.key))) })), allowAddProperties && onAddProperty && (_jsxs("div", { style: {
401
+ }, title: "Remove property", "aria-label": `Remove property ${prop.key}`, children: "\u00D7" }))] }, prop.key))) })), allowAddProperties && onAddProperty && (_jsxs("div", { style: {
184
402
  padding: '12px',
185
403
  backgroundColor: '#f5f5f5',
186
404
  borderRadius: '4px',
187
405
  marginTop: '8px',
188
- }, children: [_jsxs("div", { style: { display: 'flex', gap: '8px', marginBottom: '8px' }, children: [_jsx("input", { type: "text", placeholder: "Property name", value: newPropertyKey, onChange: (e) => setNewPropertyKey(e.target.value), disabled: disabled, style: { ...inputStyles, flex: 1 } }), _jsxs("select", { value: newPropertyType, onChange: (e) => setNewPropertyType(e.target.value), disabled: disabled, style: { ...inputStyles, width: '80px' }, children: [_jsx("option", { value: "string", children: "Text" }), _jsx("option", { value: "number", children: "Number" }), _jsx("option", { value: "boolean", children: "Boolean" })] })] }), newPropertyType !== 'boolean' && (_jsx("input", { type: newPropertyType === 'number' ? 'number' : 'text', placeholder: "Value", value: newPropertyValue, onChange: (e) => setNewPropertyValue(e.target.value), disabled: disabled, style: { ...inputStyles, marginBottom: '8px' } })), newPropertyType === 'boolean' && (_jsxs("select", { value: newPropertyValue, onChange: (e) => setNewPropertyValue(e.target.value), disabled: disabled, style: { ...inputStyles, marginBottom: '8px' }, children: [_jsx("option", { value: "true", children: "True" }), _jsx("option", { value: "false", children: "False" })] })), _jsx("button", { type: "button", onClick: handleAddProperty, disabled: disabled || !newPropertyKey.trim(), style: {
406
+ }, children: [_jsxs("div", { style: { display: 'flex', gap: '8px', marginBottom: '8px' }, children: [_jsx("input", { type: "text", "aria-label": "New property name", placeholder: "Property name", value: newPropertyKey, onChange: (e) => setNewPropertyKey(e.target.value), disabled: disabled, style: { ...inputStyles, flex: 1 } }), _jsxs("select", { "aria-label": "New property type", value: newPropertyType, onChange: (e) => setNewPropertyType(e.target.value), disabled: disabled, style: { ...inputStyles, width: '80px' }, children: [_jsx("option", { value: "string", children: "Text" }), _jsx("option", { value: "number", children: "Number" }), _jsx("option", { value: "boolean", children: "Boolean" })] })] }), newPropertyType !== 'boolean' && (_jsx("input", { "aria-label": "New property value", type: newPropertyType === 'number' ? 'number' : 'text', placeholder: "Value", value: newPropertyValue, onChange: (e) => setNewPropertyValue(e.target.value), disabled: disabled, style: { ...inputStyles, marginBottom: '8px' } })), newPropertyType === 'boolean' && (_jsxs("select", { "aria-label": "New property value", value: newPropertyValue, onChange: (e) => setNewPropertyValue(e.target.value), disabled: disabled, style: { ...inputStyles, marginBottom: '8px' }, children: [_jsx("option", { value: "true", children: "True" }), _jsx("option", { value: "false", children: "False" })] })), _jsx("button", { type: "button", onClick: handleAddProperty, disabled: disabled || !newPropertyKey.trim(), style: {
189
407
  width: '100%',
190
408
  padding: '8px',
191
409
  border: 'none',
@@ -1 +1 @@
1
- {"version":3,"file":"NodePropertiesPanel.js","sourceRoot":"","sources":["../../src/properties/NodePropertiesPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodePropertiesPanel.js","sourceRoot":"","sources":["../../src/properties/NodePropertiesPanel.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EACL,eAAe,EACf,mBAAmB,GAGpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,GAItB,MAAM,oBAAoB,CAAC;AAyD5B,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,WAAW,GAAwB;IACvC,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,WAAW,GAAwB;IACvC,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,gBAAgB;IACxB,eAAe,EAAE,MAAM;IACvB,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,YAAY;CACxB,CAAC;AAEF,MAAM,mBAAmB,GAAwB;IAC/C,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,MAAM;IACb,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,OAAO;IACtB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,eAAe,GAAwB;IAC3C,YAAY,EAAE,MAAM;CACrB,CAAC;AAYF,SAAS,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAsB;IACrE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC/F,IAAI,MAAM,KAAK,KAAK;gBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,KAA4C,EAAE,EAAE;QACtE,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;aACI,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,uCAAuC;IACvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CACL,cACE,KAAK,EAAE;gBACL,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;gBACb,eAAe,EAAE,SAAS;gBAC1B,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,QAAQ;aACpB,YAEA,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACrE,CACP,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,gBACE,IAAI,EAAC,UAAU,gBACH,YAAY,IAAI,CAAC,GAAG,EAAE,EAClC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC3C,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,CACL,gBACE,IAAI,EAAC,QAAQ,gBACD,YAAY,IAAI,CAAC,GAAG,EAAE,EAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,GAClB,CACH,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,OAAO,CACL,gBACE,IAAI,EAAC,MAAM,gBACC,YAAY,IAAI,CAAC,GAAG,EAAE,EAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,GAClB,CACH,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAOjD;IACC,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,EAC1D,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,oBAAoB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC7C,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aACrB,gBACE,IAAI,EAAC,MAAM,gBACC,GAAG,WAAW,IAAI,OAAO,SAAS,EAC9C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAC3E,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;wBAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBACtD,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC3B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;wBACxB,QAAQ,CAAC,SAAS,CAAC,CAAC;wBACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;wBACpB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBAC7B,CAAC;gBACH,CAAC,kBACa,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACtC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,GAClB,EACD,KAAK,IAAI,cAAK,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,KAAK,GAAO,IACpF,CACP,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,MAAM,UAAU,mBAAmB,CAAC,EAClC,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,GAAG,EACX,UAAU,GAAG,IAAI,EACjB,YAAY,GAAG,IAAI,EACnB,kBAAkB,GAAG,IAAI,EACzB,qBAAqB,GAAG,IAAI,GACH;IACzB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAkC,QAAQ,CAAC,CAAC;IAClG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAU,CAAC;IACvD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC/F,MAAM,aAAa,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9C,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjF,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,EAAE,UAAqC,CAAC,EACtF,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CACjC,CAAC;IACF,MAAM,UAAU,GAAG,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAC5D,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QACxD,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU;YAAE,OAAO;QACzC,gBAAgB,CAAC;YACf,MAAM,EAAE,YAAY,CAAC,EAAE;YACvB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEjD,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,IAAoB,EAAE,EAAE;QAChE,IAAI,CAAC,UAAU,IAAI,IAAI,KAAK,UAAU,CAAC,IAAI;YAAE,OAAO;QACpD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM;YACzE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;eACxB,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;eACzE,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,YAAY;YAAE,OAAO;QACzB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC/E,gBAAgB,CAAC;YACf,GAAG,UAAU;YACb,IAAI;YACJ,YAAY,EAAE;gBACZ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC5B,GAAG,OAAO;gBACV,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;oBACtE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;oBAC5D,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,YAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE;SAC7B,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEnC,MAAM,wBAAwB,GAAG,WAAW,CAAC,CAAC,QAA+B,EAAE,OAAgB,EAAE,EAAE;QACjG,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QACrF,IAAI,OAAO;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9G,gBAAgB,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEnC,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,IAA2B,EAAE,EAAE;QACrE,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,gBAAgB,CAAC;YACf,GAAG,UAAU;YACb,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SACvF,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEnC,MAAM,uBAAuB,GAAG,WAAW,CAAC,CAC1C,IAAsD,EAAE,KAAa,EAAE,MAAiB,EACpE,EAAE;QACtB,IAAI,CAAC,UAAU;YAAE,OAAO,2BAA2B,CAAC;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;eACnF,CAAC,OAAO,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,CACxE,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS;YAAE,OAAO,MAAM,CAAC,EAAE;gBAC3C,CAAC,CAAC,wBAAwB,MAAM,CAAC,EAAE,mBAAmB;gBACtD,CAAC,CAAC,wCAAwC,CAAC;QAC7C,kBAAkB,CAAC;YACjB,GAAG,IAAI;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;SACjE,CAAC,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAErC,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,IAA8C,EAAE,EAAE;QACzF,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7D,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC,CAAC,CAAC;QACJ,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,KAAK,YAAY;YAChC,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,OAAO,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE,IAAI,EAAE,YAAY,OAAO,EAAE,EAAE;YACzF,CAAC,CAAC,IAAI,KAAK,YAAY;gBACrB,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,OAAO,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE,IAAI,EAAE,YAAY,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBACzG,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,OAAO,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;QACvF,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACpC,kBAAkB,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EAA2B,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC;YACf,GAAG,UAAU;YACb,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAA2B,CAAC;SACvG,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEvD,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,CAAsC,EAAE,EAAE;QACzC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,EACD,EAAE,CACH,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAAC,OAAO;QAAC,CAAC;QACjG,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,aAAa,CAAC,wCAAwC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,YAAY,CAAC,IAAI,CAAC,KAAK;YAAE,gBAAgB,CAAC;gBAC3D,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU;aACjG,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7D,4BAA4B;IAC5B,MAAM,uBAAuB,GAAG,WAAW,CACzC,CAAC,CAAyC,EAAE,EAAE;QAC5C,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,EACD,EAAE,CACH,CAAC;IACF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;YAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAAC,OAAO;QAAC,CAAC;QACvG,IAAI,gBAAgB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAAE,gBAAgB,CAAC;gBAC/E,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,gBAAgB;aACnH,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD,gCAAgC;IAChC,MAAM,yBAAyB,GAAG,WAAW,CAC3C,CAAC,GAAW,EAAE,QAAiB,EAAE,QAAuB,EAAE,EAAE;QAC1D,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,gBAAgB,CAAC;YACf,MAAM,EAAE,YAAY,CAAC,EAAE;YACvB,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,GAAG;YAChB,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,EACD,CAAC,YAAY,EAAE,gBAAgB,CAAC,CACjC,CAAC;IAEF,0BAA0B;IAC1B,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa;YAAE,OAAO;QAEtE,IAAI,KAAoB,CAAC;QACzB,QAAQ,eAAe,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,SAAS;gBACZ,KAAK,GAAG,gBAAgB,KAAK,MAAM,CAAC;gBACpC,MAAM;YACR;gBACE,KAAK,GAAG,gBAAgB,CAAC;QAC7B,CAAC;QAED,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7D,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACtB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAErF,cAAc;IACd,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CACL,cACE,KAAK,EAAE;gBACL,KAAK;gBACL,eAAe,EAAE,MAAM;gBACvB,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,4BAA4B;gBACvC,OAAO,EAAE,MAAM;aAChB,YAED,cACE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,SAAS,EAAE,QAAQ;oBACnB,SAAS,EAAE,QAAQ;oBACnB,OAAO,EAAE,QAAQ;iBAClB,iCAGG,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eACE,KAAK,EAAE;YACL,KAAK;YACL,eAAe,EAAE,MAAM;YACvB,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,4BAA4B;YACvC,QAAQ,EAAE,QAAQ;SACnB,aAGD,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,mBAAmB;oBACjC,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE,MAAM;iBACjB,gCAGG,EAGN,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAEpE,cAAK,KAAK,EAAE,mBAAmB,0BAAiB,EAE/C,UAAU,IAAI,CACb,eAAK,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAC7D,eAAM,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,oBAAY,EAC3E,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YACtE,YAAY,CAAC,EAAE,GACX,IACH,CACP,EAEA,YAAY,IAAI,CACf,eAAK,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAC7D,eAAM,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,sBAAc,EAC7E,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAQ,IACjF,CACP,EAGD,cAAK,KAAK,EAAE,mBAAmB,iCAAwB,EAEvD,eAAK,KAAK,EAAE,eAAe,aACzB,gBAAO,KAAK,EAAE,WAAW,sBAAe,EACxC,gBACE,IAAI,EAAC,MAAM,gBACA,YAAY,EACvB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oCACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wCAC1B,WAAW,EAAE,CAAC;wCACd,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;wCAChC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;wCAC5B,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oCAC7B,CAAC;yCAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;wCAClC,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;wCAChC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCACvC,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC;wCAC/B,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oCAC7B,CAAC;gCACH,CAAC,EACD,QAAQ,EAAE,QAAQ,kBACJ,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC3C,KAAK,EAAE,WAAW,GAClB,EACD,UAAU,IAAI,cAAK,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAG,UAAU,GAAO,IAC9F,EAEN,eAAK,KAAK,EAAE,eAAe,aACzB,gBAAO,KAAK,EAAE,WAAW,4BAAqB,EAC9C,iCACa,kBAAkB,EAC7B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,EAClD,MAAM,EAAE,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EACzE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oCACnB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;wCAC3B,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC;wCACtC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;wCACzD,mBAAmB,EAAE,CAAC,aAAa,CAAC,CAAC;wCACrC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oCAC7B,CAAC;gCACH,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,yBAAyB,EACrC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE;oCACL,GAAG,WAAW;oCACd,MAAM,EAAE,UAAU;oCAClB,SAAS,EAAE,MAAM;iCAClB,GACD,IACE,EAEL,UAAU,IAAI,CACb,gEACE,cAAK,KAAK,EAAE,mBAAmB,+BAAsB,EACrD,eAAK,KAAK,EAAE,eAAe,aACzB,gBAAO,KAAK,EAAE,WAAW,qBAAc,EACvC,+BACa,iBAAiB,EAC5B,KAAK,EAAE,UAAU,CAAC,IAAI,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAuB,CAAC,EAC/E,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,YAEhB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;4CACtD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM;gDACzE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;gDAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;mDACxB,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;mDACzE,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;4CAC9D,OAAO,iBAAmB,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,YAAG,IAAI,IAAhD,IAAI,CAAsD,CAAC;wCACjF,CAAC,CAAC,GACK,EACT,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,wFAEzC,IACF,EACN,cAAK,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAC5D,CAAC,UAAU,EAAE,QAAQ,CAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACnD,iBAAsB,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAC1E,gBACE,IAAI,EAAC,UAAU,gBACH,cAAc,QAAQ,EAAE,EACpC,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,EAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAC7E,QAAQ,EAAE,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM;mDAC3C,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC,GAC/D,EACD,QAAQ,KATC,QAAQ,CAUZ,CACT,CAAC,GACE,EACL,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC5E,eAAmB,KAAK,EAAE,eAAe,aACvC,gBAAO,KAAK,EAAE,WAAW,YAAG,IAAI,CAAC,IAAI,GAAS,EAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,eAAmB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAC5E,KAAC,qBAAqB,IACpB,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,IAAI,CAAC,IAAI,EACtB,OAAO,EAAE,KAAK,GAAG,CAAC,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAClE,EACF,iBAAQ,IAAI,EAAC,QAAQ,gBAAa,QAAQ,IAAI,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;oDACzG,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oDAC9B,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;oDACpE,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAA2B,CAAC,CAAC;gDAClE,CAAC,uBAAY,EACb,iBAAQ,IAAI,EAAC,QAAQ,gBAAa,QAAQ,IAAI,CAAC,IAAI,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;oDAC/H,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oDAC9B,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oDACpE,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAA2B,CAAC,CAAC;gDAClE,CAAC,uBAAY,EACb,iBAAQ,IAAI,EAAC,QAAQ,gBAAa,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC;oDAC7G,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC;iDAChD,CAAC,uBAAY,KApB/B,IAAI,CAAC,EAAE,CAqBX,CACP,CAAC,EACF,kBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAChF,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAC3F,KA5BD,IAAI,CAAC,EAAE,CA6BX,CACP,CAAC,EACD,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CACtE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,8BAAwB,CACnH,EACA,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CACpG,iBAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,8BAAwB,CACnH,IACG,CACP,EAGD,cAAK,KAAK,EAAE,mBAAmB,kCAAyB,EAEvD,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/B,cACE,KAAK,EAAE;4BACL,QAAQ,EAAE,MAAM;4BAChB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,QAAQ;4BACnB,YAAY,EAAE,MAAM;yBACrB,qCAGG,CACP,CAAC,CAAC,CAAC,CACF,cAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YACjC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,eAEE,KAAK,EAAE;gCACL,OAAO,EAAE,MAAM;gCACf,UAAU,EAAE,QAAQ;gCACpB,GAAG,EAAE,KAAK;gCACV,YAAY,EAAE,KAAK;6BACpB,aAED,eACE,KAAK,EAAE;wCACL,QAAQ,EAAE,MAAM;wCAChB,UAAU,EAAE,GAAG;wCACf,QAAQ,EAAE,MAAM;wCAChB,KAAK,EAAE,MAAM;qCACd,YAEA,IAAI,CAAC,GAAG,GACJ,EACP,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACrB,cACE,cAAc,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,EAClE,aAAa,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,EAC/D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;4CACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;gDAAE,gBAAgB,EAAE,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;iDACjE,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gDAAE,mBAAmB,EAAE,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wCACjF,CAAC,YAED,KAAC,aAAa,IACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrB,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAE3D,QAAQ,EAAE,QAAQ,GAClB,GACE,GACF,EACL,qBAAqB,IAAI,gBAAgB,IAAI,CAC5C,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAC1D,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;wCACL,OAAO,EAAE,SAAS;wCAClB,MAAM,EAAE,MAAM;wCACd,UAAU,EAAE,aAAa;wCACzB,KAAK,EAAE,SAAS;wCAChB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;wCACxC,QAAQ,EAAE,MAAM;qCACjB,EACD,KAAK,EAAC,iBAAiB,gBACX,mBAAmB,IAAI,CAAC,GAAG,EAAE,uBAGlC,CACV,KAtDI,IAAI,CAAC,GAAG,CAuDT,CACP,CAAC,GACE,CACP,EAGA,kBAAkB,IAAI,aAAa,IAAI,CACtC,eACE,KAAK,EAAE;4BACL,OAAO,EAAE,MAAM;4BACf,eAAe,EAAE,SAAS;4BAC1B,YAAY,EAAE,KAAK;4BACnB,SAAS,EAAE,KAAK;yBACjB,aAED,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAC9D,gBACE,IAAI,EAAC,MAAM,gBACA,mBAAmB,EAC9B,WAAW,EAAC,eAAe,EAC3B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAClD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAClC,EACF,gCACa,mBAAmB,EAC9B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAwC,CAAC,EAEvE,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,aAExC,iBAAQ,KAAK,EAAC,QAAQ,qBAAc,EACpC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EACtC,iBAAQ,KAAK,EAAC,SAAS,wBAAiB,IACjC,IACL,EACL,eAAe,KAAK,SAAS,IAAI,CAChC,8BACa,oBAAoB,EAC/B,IAAI,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EACtD,WAAW,EAAC,OAAO,EACnB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,GAC9C,CACH,EACA,eAAe,KAAK,SAAS,IAAI,CAChC,gCACa,oBAAoB,EAC/B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,aAE9C,iBAAQ,KAAK,EAAC,MAAM,qBAAc,EAClC,iBAAQ,KAAK,EAAC,OAAO,sBAAe,IAC7B,CACV,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC5C,KAAK,EAAE;oCACL,KAAK,EAAE,MAAM;oCACb,OAAO,EAAE,KAAK;oCACd,MAAM,EAAE,MAAM;oCACd,YAAY,EAAE,KAAK;oCACnB,eAAe,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;oCACxE,KAAK,EAAE,MAAM;oCACb,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oCAClE,QAAQ,EAAE,MAAM;iCACjB,+BAGM,IACL,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -1 +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,EACvB,KAAK,mBAAmB,EAQzB,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;IAClD,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,gCAAgC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oEAAoE;IACpE,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,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;IAC7D,kEAAkE;IAClE,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAE1D,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;AAiED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAkIxF"}
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,EACvB,KAAK,mBAAmB,EAQzB,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;IAClD,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,gCAAgC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oEAAoE;IACpE,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,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;IAC7D,kEAAkE;IAClE,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAE1D,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;AAiED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAwIxF"}
@@ -5,7 +5,7 @@
5
5
  * - Document Settings: Saved with the diagram file
6
6
  * - User Preferences: Saved to localStorage
7
7
  */
8
- import { useState, useCallback, useEffect, useMemo } from 'react';
8
+ import { useState, useCallback, useEffect, useMemo, useRef } from 'react';
9
9
  import { DEFAULT_USER_PREFERENCES, DEFAULT_LAYOUT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, normalizeDiagramFontSettings, normalizeLlmMaxRetries, } from '../file/schema.js';
10
10
  const STORAGE_KEY = 'coral:user-preferences';
11
11
  /**
@@ -78,6 +78,7 @@ export function useSettings(options = {}) {
78
78
  }
79
79
  return loadUserPreferences();
80
80
  });
81
+ const userPreferencesChangedRef = useRef(false);
81
82
  // Document settings state (NOT persisted - saved with document)
82
83
  const [documentSettings, setDocumentSettings] = useState(() => {
83
84
  if (initialDocumentSettings) {
@@ -97,16 +98,20 @@ export function useSettings(options = {}) {
97
98
  const selectedPreset = useMemo(() => detectPreset(documentSettings.layout), [documentSettings.layout]);
98
99
  // Persist user preferences to localStorage when they change
99
100
  useEffect(() => {
101
+ if (initialUserPreferences && !userPreferencesChangedRef.current)
102
+ return;
100
103
  saveUserPreferences(userPreferences);
101
- }, [userPreferences]);
104
+ }, [initialUserPreferences, userPreferences]);
102
105
  // Update user preferences
103
106
  const updateUserPreferences = useCallback((updates) => {
107
+ userPreferencesChangedRef.current = true;
104
108
  setUserPreferences((prev) => ({ ...prev, ...updates,
105
109
  ...(Object.prototype.hasOwnProperty.call(updates, 'llmMaxRetries')
106
110
  ? { llmMaxRetries: normalizeLlmMaxRetries(updates.llmMaxRetries) } : {}) }));
107
111
  }, []);
108
112
  // Reset user preferences to defaults
109
113
  const resetUserPreferences = useCallback(() => {
114
+ userPreferencesChangedRef.current = true;
110
115
  setUserPreferences(DEFAULT_USER_PREFERENCES);
111
116
  }, []);
112
117
  // Update document settings
@@ -129,6 +134,7 @@ export function useSettings(options = {}) {
129
134
  }, [documentSettings, onDocumentSettingsChange, onLayoutChange]);
130
135
  // Add file to recent files
131
136
  const addRecentFile = useCallback((filePath) => {
137
+ userPreferencesChangedRef.current = true;
132
138
  setUserPreferences((prev) => {
133
139
  // Remove if already exists
134
140
  const filtered = prev.recentFiles.filter((f) => f !== filePath);
@@ -141,6 +147,7 @@ export function useSettings(options = {}) {
141
147
  }, []);
142
148
  // Clear recent files
143
149
  const clearRecentFiles = useCallback(() => {
150
+ userPreferencesChangedRef.current = true;
144
151
  setUserPreferences((prev) => ({ ...prev, recentFiles: [] }));
145
152
  }, []);
146
153
  // Get combined settings panel state
@@ -1 +1 @@
1
- {"version":3,"file":"useSettings.js","sourceRoot":"","sources":["../../src/settings/useSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSettings.js","sourceRoot":"","sources":["../../src/settings/useSettings.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,17 @@ export interface EditorDiagnostic {
19
19
  line?: number;
20
20
  position?: EditorSourcePosition;
21
21
  range?: EditorSourceRange;
22
+ related?: readonly {
23
+ message: string;
24
+ position: EditorSourcePosition;
25
+ range?: EditorSourceRange;
26
+ }[];
27
+ source?: string;
28
+ subject?: {
29
+ kind: 'node' | 'edge' | 'graph';
30
+ id: string;
31
+ };
32
+ hint?: string;
22
33
  }
23
34
  export interface EditorDecoration {
24
35
  start: number;
@@ -33,6 +44,7 @@ export interface EditorAnalysisOwner {
33
44
  export interface TextEditorProps {
34
45
  value: string;
35
46
  onChange: (value: string) => void;
47
+ onSelectionChange?: (start: number, end: number) => void;
36
48
  language?: SyntaxLanguage;
37
49
  /** Legacy locations use one-based columns. */
38
50
  errors?: ParseError[];
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../src/text-editor/TextEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACtF,MAAM,WAAW,iBAAiB;IAAG,KAAK,EAAE,oBAAoB,CAAC;IAAC,GAAG,EAAE,oBAAoB,CAAA;CAAE;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AACD,MAAM,WAAW,gBAAgB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAClF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,6FAA6F;IAC7F,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;;;;EAYlE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,yBAEpD;AAwHD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwHhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../src/text-editor/TextEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACtF,MAAM,WAAW,iBAAiB;IAAG,KAAK,EAAE,oBAAoB,CAAC;IAAC,GAAG,EAAE,oBAAoB,CAAA;CAAE;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,oBAAoB,CAAC;QAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;KAAE,EAAE,CAAC;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAClF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,6FAA6F;IAC7F,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;;;;EAYlE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,yBAEpD;AA0HD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsJhD,CAAC;AAEF,eAAe,UAAU,CAAC"}