@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.
- package/LICENSE +4 -0
- package/README.md +11 -0
- package/dist/compatibility/CompatibilityEdge.d.ts +106 -0
- package/dist/compatibility/CompatibilityEdge.d.ts.map +1 -0
- package/dist/compatibility/CompatibilityEdge.js +233 -0
- package/dist/compatibility/CompatibilityEdge.js.map +1 -0
- package/dist/compatibility/IncompatibilityTooltip.d.ts +44 -0
- package/dist/compatibility/IncompatibilityTooltip.d.ts.map +1 -0
- package/dist/compatibility/IncompatibilityTooltip.js +145 -0
- package/dist/compatibility/IncompatibilityTooltip.js.map +1 -0
- package/dist/compatibility/index.d.ts +10 -0
- package/dist/compatibility/index.d.ts.map +1 -0
- package/dist/compatibility/index.js +10 -0
- package/dist/compatibility/index.js.map +1 -0
- package/dist/compatibility/useEdgeCompatibility.d.ts +82 -0
- package/dist/compatibility/useEdgeCompatibility.d.ts.map +1 -0
- package/dist/compatibility/useEdgeCompatibility.js +170 -0
- package/dist/compatibility/useEdgeCompatibility.js.map +1 -0
- package/dist/compatibility/validateConnection.d.ts +56 -0
- package/dist/compatibility/validateConnection.d.ts.map +1 -0
- package/dist/compatibility/validateConnection.js +382 -0
- package/dist/compatibility/validateConnection.js.map +1 -0
- package/dist/components/EditContext.d.ts +45 -0
- package/dist/components/EditContext.d.ts.map +1 -0
- package/dist/components/EditContext.js +41 -0
- package/dist/components/EditContext.js.map +1 -0
- package/dist/components/ShapeRenderer.d.ts +35 -0
- package/dist/components/ShapeRenderer.d.ts.map +1 -0
- package/dist/components/ShapeRenderer.js +77 -0
- package/dist/components/ShapeRenderer.js.map +1 -0
- package/dist/components/SymbolNode.d.ts +53 -0
- package/dist/components/SymbolNode.d.ts.map +1 -0
- package/dist/components/SymbolNode.js +333 -0
- package/dist/components/SymbolNode.js.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/nodes.d.ts +43 -0
- package/dist/components/nodes.d.ts.map +1 -0
- package/dist/components/nodes.js +111 -0
- package/dist/components/nodes.js.map +1 -0
- package/dist/editor/CoralEditor.d.ts +29 -0
- package/dist/editor/CoralEditor.d.ts.map +1 -0
- package/dist/editor/CoralEditor.js +112 -0
- package/dist/editor/CoralEditor.js.map +1 -0
- package/dist/editor/FileControls.d.ts +34 -0
- package/dist/editor/FileControls.d.ts.map +1 -0
- package/dist/editor/FileControls.js +139 -0
- package/dist/editor/FileControls.js.map +1 -0
- package/dist/editor/LayoutControls.d.ts +41 -0
- package/dist/editor/LayoutControls.d.ts.map +1 -0
- package/dist/editor/LayoutControls.js +124 -0
- package/dist/editor/LayoutControls.js.map +1 -0
- package/dist/editor/converter.d.ts +37 -0
- package/dist/editor/converter.d.ts.map +1 -0
- package/dist/editor/converter.js +256 -0
- package/dist/editor/converter.js.map +1 -0
- package/dist/editor/index.d.ts +8 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +8 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/file/deserialize.d.ts +15 -0
- package/dist/file/deserialize.d.ts.map +1 -0
- package/dist/file/deserialize.js +145 -0
- package/dist/file/deserialize.js.map +1 -0
- package/dist/file/index.d.ts +15 -0
- package/dist/file/index.d.ts.map +1 -0
- package/dist/file/index.js +20 -0
- package/dist/file/index.js.map +1 -0
- package/dist/file/migrate.d.ts +29 -0
- package/dist/file/migrate.d.ts.map +1 -0
- package/dist/file/migrate.js +103 -0
- package/dist/file/migrate.js.map +1 -0
- package/dist/file/schema.d.ts +385 -0
- package/dist/file/schema.d.ts.map +1 -0
- package/dist/file/schema.js +180 -0
- package/dist/file/schema.js.map +1 -0
- package/dist/file/serialize.d.ts +30 -0
- package/dist/file/serialize.d.ts.map +1 -0
- package/dist/file/serialize.js +218 -0
- package/dist/file/serialize.js.map +1 -0
- package/dist/file/validate.d.ts +21 -0
- package/dist/file/validate.d.ts.map +1 -0
- package/dist/file/validate.js +165 -0
- package/dist/file/validate.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/elk.d.ts +77 -0
- package/dist/layout/elk.d.ts.map +1 -0
- package/dist/layout/elk.js +379 -0
- package/dist/layout/elk.js.map +1 -0
- package/dist/layout/index.d.ts +12 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +12 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/nodeSizing.d.ts +65 -0
- package/dist/layout/nodeSizing.d.ts.map +1 -0
- package/dist/layout/nodeSizing.js +319 -0
- package/dist/layout/nodeSizing.js.map +1 -0
- package/dist/layout/positionStability.d.ts +73 -0
- package/dist/layout/positionStability.d.ts.map +1 -0
- package/dist/layout/positionStability.js +199 -0
- package/dist/layout/positionStability.js.map +1 -0
- package/dist/layout/useAxisConstrain.d.ts +20 -0
- package/dist/layout/useAxisConstrain.d.ts.map +1 -0
- package/dist/layout/useAxisConstrain.js +106 -0
- package/dist/layout/useAxisConstrain.js.map +1 -0
- package/dist/layout/useDiagramState.d.ts +92 -0
- package/dist/layout/useDiagramState.d.ts.map +1 -0
- package/dist/layout/useDiagramState.js +256 -0
- package/dist/layout/useDiagramState.js.map +1 -0
- package/dist/layout/useLayoutHistory.d.ts +53 -0
- package/dist/layout/useLayoutHistory.d.ts.map +1 -0
- package/dist/layout/useLayoutHistory.js +124 -0
- package/dist/layout/useLayoutHistory.js.map +1 -0
- package/dist/properties/NodePropertiesPanel.d.ts +47 -0
- package/dist/properties/NodePropertiesPanel.d.ts.map +1 -0
- package/dist/properties/NodePropertiesPanel.js +199 -0
- package/dist/properties/NodePropertiesPanel.js.map +1 -0
- package/dist/properties/index.d.ts +10 -0
- package/dist/properties/index.d.ts.map +1 -0
- package/dist/properties/index.js +10 -0
- package/dist/properties/index.js.map +1 -0
- package/dist/properties/propertyUtils.d.ts +60 -0
- package/dist/properties/propertyUtils.d.ts.map +1 -0
- package/dist/properties/propertyUtils.js +89 -0
- package/dist/properties/propertyUtils.js.map +1 -0
- package/dist/settings/FontSettingsForm.d.ts +28 -0
- package/dist/settings/FontSettingsForm.d.ts.map +1 -0
- package/dist/settings/FontSettingsForm.js +129 -0
- package/dist/settings/FontSettingsForm.js.map +1 -0
- package/dist/settings/LayoutSettingsForm.d.ts +37 -0
- package/dist/settings/LayoutSettingsForm.d.ts.map +1 -0
- package/dist/settings/LayoutSettingsForm.js +165 -0
- package/dist/settings/LayoutSettingsForm.js.map +1 -0
- package/dist/settings/SettingsPanel.d.ts +55 -0
- package/dist/settings/SettingsPanel.d.ts.map +1 -0
- package/dist/settings/SettingsPanel.js +84 -0
- package/dist/settings/SettingsPanel.js.map +1 -0
- package/dist/settings/index.d.ts +13 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +13 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/useSettings.d.ts +51 -0
- package/dist/settings/useSettings.d.ts.map +1 -0
- package/dist/settings/useSettings.js +154 -0
- package/dist/settings/useSettings.js.map +1 -0
- package/dist/text-editor/SplitEditor.d.ts +72 -0
- package/dist/text-editor/SplitEditor.d.ts.map +1 -0
- package/dist/text-editor/SplitEditor.js +172 -0
- package/dist/text-editor/SplitEditor.js.map +1 -0
- package/dist/text-editor/TextEditor.d.ts +53 -0
- package/dist/text-editor/TextEditor.d.ts.map +1 -0
- package/dist/text-editor/TextEditor.js +181 -0
- package/dist/text-editor/TextEditor.js.map +1 -0
- package/dist/text-editor/hooks/useBidirectionalSync.d.ts +106 -0
- package/dist/text-editor/hooks/useBidirectionalSync.d.ts.map +1 -0
- package/dist/text-editor/hooks/useBidirectionalSync.js +151 -0
- package/dist/text-editor/hooks/useBidirectionalSync.js.map +1 -0
- package/dist/text-editor/index.d.ts +9 -0
- package/dist/text-editor/index.d.ts.map +1 -0
- package/dist/text-editor/index.js +11 -0
- package/dist/text-editor/index.js.map +1 -0
- package/dist/types.d.ts +242 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/waypoints/index.d.ts +8 -0
- package/dist/waypoints/index.d.ts.map +1 -0
- package/dist/waypoints/index.js +7 -0
- package/dist/waypoints/index.js.map +1 -0
- package/dist/waypoints/operations.d.ts +29 -0
- package/dist/waypoints/operations.d.ts.map +1 -0
- package/dist/waypoints/operations.js +85 -0
- package/dist/waypoints/operations.js.map +1 -0
- package/dist/waypoints/router.d.ts +23 -0
- package/dist/waypoints/router.d.ts.map +1 -0
- package/dist/waypoints/router.js +109 -0
- package/dist/waypoints/router.js.map +1 -0
- package/dist/waypoints/types.d.ts +15 -0
- package/dist/waypoints/types.d.ts.map +1 -0
- package/dist/waypoints/types.js +5 -0
- package/dist/waypoints/types.js.map +1 -0
- package/dist/waypoints/useWaypointManager.d.ts +38 -0
- package/dist/waypoints/useWaypointManager.d.ts.map +1 -0
- package/dist/waypoints/useWaypointManager.js +106 -0
- package/dist/waypoints/useWaypointManager.js.map +1 -0
- 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"}
|