@almadar/ui 5.146.1 → 5.146.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/dist/avl/index.cjs +23 -4
- package/dist/avl/index.d.cts +18 -0
- package/dist/avl/index.d.ts +18 -0
- package/dist/avl/index.js +23 -4
- package/dist/components/index.cjs +4 -2
- package/dist/components/index.js +4 -2
- package/dist/providers/index.cjs +4 -2
- package/dist/providers/index.js +4 -2
- package/dist/runtime/index.cjs +4 -2
- package/dist/runtime/index.js +4 -2
- package/package.json +1 -1
package/dist/avl/index.cjs
CHANGED
|
@@ -18412,8 +18412,10 @@ var init_CodeBlock = __esm({
|
|
|
18412
18412
|
ref: editableTextareaRef,
|
|
18413
18413
|
defaultValue: code,
|
|
18414
18414
|
onChange: (e) => {
|
|
18415
|
-
|
|
18416
|
-
|
|
18415
|
+
const v = e.target.value;
|
|
18416
|
+
lastPropCodeRef.current = v;
|
|
18417
|
+
setEditableValue(v);
|
|
18418
|
+
onChange?.(v);
|
|
18417
18419
|
},
|
|
18418
18420
|
onScroll: handleEditableScroll,
|
|
18419
18421
|
spellCheck: false,
|
|
@@ -55861,7 +55863,9 @@ function FlowCanvasInner({
|
|
|
55861
55863
|
behaviorEntries,
|
|
55862
55864
|
behaviorWires,
|
|
55863
55865
|
userType = "builder",
|
|
55864
|
-
themeManifest
|
|
55866
|
+
themeManifest,
|
|
55867
|
+
nodePositions,
|
|
55868
|
+
onPositionsChange
|
|
55865
55869
|
}) {
|
|
55866
55870
|
const { t } = hooks.useTranslate();
|
|
55867
55871
|
const NODE_TYPES2 = React94.useMemo(() => ({
|
|
@@ -55948,9 +55952,15 @@ function FlowCanvasInner({
|
|
|
55948
55952
|
const [nodes, setNodes, onNodesChange] = react.useNodesState(activeNodes);
|
|
55949
55953
|
const [edges, setEdges, onEdgesChange] = react.useEdgesState(activeEdges);
|
|
55950
55954
|
const reactFlow = react.useReactFlow();
|
|
55955
|
+
const savedPositionsRef = React94__namespace.default.useRef(nodePositions);
|
|
55956
|
+
savedPositionsRef.current = nodePositions;
|
|
55957
|
+
const nodesRef = React94__namespace.default.useRef(nodes);
|
|
55958
|
+
nodesRef.current = nodes;
|
|
55951
55959
|
React94.useEffect(() => {
|
|
55952
55960
|
setEdges([]);
|
|
55953
|
-
|
|
55961
|
+
const saved = savedPositionsRef.current;
|
|
55962
|
+
const merged = saved ? activeNodes.map((n) => saved[n.id] ? { ...n, position: saved[n.id] } : n) : activeNodes;
|
|
55963
|
+
setNodes(merged);
|
|
55954
55964
|
setEdges(activeEdges);
|
|
55955
55965
|
requestAnimationFrame(() => {
|
|
55956
55966
|
reactFlow.fitView({ duration: 300, padding: 0.25 });
|
|
@@ -56100,6 +56110,14 @@ function FlowCanvasInner({
|
|
|
56100
56110
|
targetTraitName: tgtData.traitName
|
|
56101
56111
|
});
|
|
56102
56112
|
}, [nodes, onEventWire, eventBus]);
|
|
56113
|
+
const handleNodeDragStop = React94.useCallback(() => {
|
|
56114
|
+
if (!onPositionsChange) return;
|
|
56115
|
+
const positions = {};
|
|
56116
|
+
for (const n of nodesRef.current) {
|
|
56117
|
+
positions[n.id] = { x: n.position.x, y: n.position.y };
|
|
56118
|
+
}
|
|
56119
|
+
onPositionsChange(positions);
|
|
56120
|
+
}, [onPositionsChange]);
|
|
56103
56121
|
const screenSizeKeys = ["mobile", "tablet", "laptop", "wide"];
|
|
56104
56122
|
const traitCardSelectionValue = React94.useMemo(() => ({
|
|
56105
56123
|
selectTransition: (sel) => {
|
|
@@ -56131,6 +56149,7 @@ function FlowCanvasInner({
|
|
|
56131
56149
|
onNodeDoubleClick: handleNodeDoubleClick,
|
|
56132
56150
|
onNodeClick: handleNodeClick,
|
|
56133
56151
|
onConnect: handleConnect,
|
|
56152
|
+
onNodeDragStop: handleNodeDragStop,
|
|
56134
56153
|
minZoom: 0.1,
|
|
56135
56154
|
maxZoom: 2,
|
|
56136
56155
|
fitView: true,
|
package/dist/avl/index.d.cts
CHANGED
|
@@ -1655,6 +1655,24 @@ interface FlowCanvasProps {
|
|
|
1655
1655
|
* originates from the synthesized `__design_system__` schema.
|
|
1656
1656
|
*/
|
|
1657
1657
|
themeManifest?: ThemeDefinition;
|
|
1658
|
+
/**
|
|
1659
|
+
* Persisted node positions keyed by node id. When the node set changes
|
|
1660
|
+
* (level/schema switch), any id present here overrides the computed layout
|
|
1661
|
+
* position, restoring a user's manual drag arrangement. Node ids are unique
|
|
1662
|
+
* per view level, so a single flat map covers overview + expanded.
|
|
1663
|
+
*/
|
|
1664
|
+
nodePositions?: Record<string, {
|
|
1665
|
+
x: number;
|
|
1666
|
+
y: number;
|
|
1667
|
+
}>;
|
|
1668
|
+
/**
|
|
1669
|
+
* Fired on node drag-stop with the full {id → position} map of the current
|
|
1670
|
+
* node set, so the consumer can persist the arrangement across reloads.
|
|
1671
|
+
*/
|
|
1672
|
+
onPositionsChange?: (positions: Record<string, {
|
|
1673
|
+
x: number;
|
|
1674
|
+
y: number;
|
|
1675
|
+
}>) => void;
|
|
1658
1676
|
}
|
|
1659
1677
|
declare const FlowCanvas: React__default.FC<FlowCanvasProps>;
|
|
1660
1678
|
|
package/dist/avl/index.d.ts
CHANGED
|
@@ -1655,6 +1655,24 @@ interface FlowCanvasProps {
|
|
|
1655
1655
|
* originates from the synthesized `__design_system__` schema.
|
|
1656
1656
|
*/
|
|
1657
1657
|
themeManifest?: ThemeDefinition;
|
|
1658
|
+
/**
|
|
1659
|
+
* Persisted node positions keyed by node id. When the node set changes
|
|
1660
|
+
* (level/schema switch), any id present here overrides the computed layout
|
|
1661
|
+
* position, restoring a user's manual drag arrangement. Node ids are unique
|
|
1662
|
+
* per view level, so a single flat map covers overview + expanded.
|
|
1663
|
+
*/
|
|
1664
|
+
nodePositions?: Record<string, {
|
|
1665
|
+
x: number;
|
|
1666
|
+
y: number;
|
|
1667
|
+
}>;
|
|
1668
|
+
/**
|
|
1669
|
+
* Fired on node drag-stop with the full {id → position} map of the current
|
|
1670
|
+
* node set, so the consumer can persist the arrangement across reloads.
|
|
1671
|
+
*/
|
|
1672
|
+
onPositionsChange?: (positions: Record<string, {
|
|
1673
|
+
x: number;
|
|
1674
|
+
y: number;
|
|
1675
|
+
}>) => void;
|
|
1658
1676
|
}
|
|
1659
1677
|
declare const FlowCanvas: React__default.FC<FlowCanvasProps>;
|
|
1660
1678
|
|
package/dist/avl/index.js
CHANGED
|
@@ -18336,8 +18336,10 @@ var init_CodeBlock = __esm({
|
|
|
18336
18336
|
ref: editableTextareaRef,
|
|
18337
18337
|
defaultValue: code,
|
|
18338
18338
|
onChange: (e) => {
|
|
18339
|
-
|
|
18340
|
-
|
|
18339
|
+
const v = e.target.value;
|
|
18340
|
+
lastPropCodeRef.current = v;
|
|
18341
|
+
setEditableValue(v);
|
|
18342
|
+
onChange?.(v);
|
|
18341
18343
|
},
|
|
18342
18344
|
onScroll: handleEditableScroll,
|
|
18343
18345
|
spellCheck: false,
|
|
@@ -55785,7 +55787,9 @@ function FlowCanvasInner({
|
|
|
55785
55787
|
behaviorEntries,
|
|
55786
55788
|
behaviorWires,
|
|
55787
55789
|
userType = "builder",
|
|
55788
|
-
themeManifest
|
|
55790
|
+
themeManifest,
|
|
55791
|
+
nodePositions,
|
|
55792
|
+
onPositionsChange
|
|
55789
55793
|
}) {
|
|
55790
55794
|
const { t } = useTranslate();
|
|
55791
55795
|
const NODE_TYPES2 = useMemo(() => ({
|
|
@@ -55872,9 +55876,15 @@ function FlowCanvasInner({
|
|
|
55872
55876
|
const [nodes, setNodes, onNodesChange] = useNodesState(activeNodes);
|
|
55873
55877
|
const [edges, setEdges, onEdgesChange] = useEdgesState(activeEdges);
|
|
55874
55878
|
const reactFlow = useReactFlow();
|
|
55879
|
+
const savedPositionsRef = React94__default.useRef(nodePositions);
|
|
55880
|
+
savedPositionsRef.current = nodePositions;
|
|
55881
|
+
const nodesRef = React94__default.useRef(nodes);
|
|
55882
|
+
nodesRef.current = nodes;
|
|
55875
55883
|
useEffect(() => {
|
|
55876
55884
|
setEdges([]);
|
|
55877
|
-
|
|
55885
|
+
const saved = savedPositionsRef.current;
|
|
55886
|
+
const merged = saved ? activeNodes.map((n) => saved[n.id] ? { ...n, position: saved[n.id] } : n) : activeNodes;
|
|
55887
|
+
setNodes(merged);
|
|
55878
55888
|
setEdges(activeEdges);
|
|
55879
55889
|
requestAnimationFrame(() => {
|
|
55880
55890
|
reactFlow.fitView({ duration: 300, padding: 0.25 });
|
|
@@ -56024,6 +56034,14 @@ function FlowCanvasInner({
|
|
|
56024
56034
|
targetTraitName: tgtData.traitName
|
|
56025
56035
|
});
|
|
56026
56036
|
}, [nodes, onEventWire, eventBus]);
|
|
56037
|
+
const handleNodeDragStop = useCallback(() => {
|
|
56038
|
+
if (!onPositionsChange) return;
|
|
56039
|
+
const positions = {};
|
|
56040
|
+
for (const n of nodesRef.current) {
|
|
56041
|
+
positions[n.id] = { x: n.position.x, y: n.position.y };
|
|
56042
|
+
}
|
|
56043
|
+
onPositionsChange(positions);
|
|
56044
|
+
}, [onPositionsChange]);
|
|
56027
56045
|
const screenSizeKeys = ["mobile", "tablet", "laptop", "wide"];
|
|
56028
56046
|
const traitCardSelectionValue = useMemo(() => ({
|
|
56029
56047
|
selectTransition: (sel) => {
|
|
@@ -56055,6 +56073,7 @@ function FlowCanvasInner({
|
|
|
56055
56073
|
onNodeDoubleClick: handleNodeDoubleClick,
|
|
56056
56074
|
onNodeClick: handleNodeClick,
|
|
56057
56075
|
onConnect: handleConnect,
|
|
56076
|
+
onNodeDragStop: handleNodeDragStop,
|
|
56058
56077
|
minZoom: 0.1,
|
|
56059
56078
|
maxZoom: 2,
|
|
56060
56079
|
fitView: true,
|
|
@@ -11122,8 +11122,10 @@ var init_CodeBlock = __esm({
|
|
|
11122
11122
|
ref: editableTextareaRef,
|
|
11123
11123
|
defaultValue: code,
|
|
11124
11124
|
onChange: (e) => {
|
|
11125
|
-
|
|
11126
|
-
|
|
11125
|
+
const v = e.target.value;
|
|
11126
|
+
lastPropCodeRef.current = v;
|
|
11127
|
+
setEditableValue(v);
|
|
11128
|
+
onChange?.(v);
|
|
11127
11129
|
},
|
|
11128
11130
|
onScroll: handleEditableScroll,
|
|
11129
11131
|
spellCheck: false,
|
package/dist/components/index.js
CHANGED
|
@@ -11047,8 +11047,10 @@ var init_CodeBlock = __esm({
|
|
|
11047
11047
|
ref: editableTextareaRef,
|
|
11048
11048
|
defaultValue: code,
|
|
11049
11049
|
onChange: (e) => {
|
|
11050
|
-
|
|
11051
|
-
|
|
11050
|
+
const v = e.target.value;
|
|
11051
|
+
lastPropCodeRef.current = v;
|
|
11052
|
+
setEditableValue(v);
|
|
11053
|
+
onChange?.(v);
|
|
11052
11054
|
},
|
|
11053
11055
|
onScroll: handleEditableScroll,
|
|
11054
11056
|
spellCheck: false,
|
package/dist/providers/index.cjs
CHANGED
|
@@ -16147,8 +16147,10 @@ var init_CodeBlock = __esm({
|
|
|
16147
16147
|
ref: editableTextareaRef,
|
|
16148
16148
|
defaultValue: code,
|
|
16149
16149
|
onChange: (e) => {
|
|
16150
|
-
|
|
16151
|
-
|
|
16150
|
+
const v = e.target.value;
|
|
16151
|
+
lastPropCodeRef.current = v;
|
|
16152
|
+
setEditableValue(v);
|
|
16153
|
+
onChange?.(v);
|
|
16152
16154
|
},
|
|
16153
16155
|
onScroll: handleEditableScroll,
|
|
16154
16156
|
spellCheck: false,
|
package/dist/providers/index.js
CHANGED
|
@@ -16073,8 +16073,10 @@ var init_CodeBlock = __esm({
|
|
|
16073
16073
|
ref: editableTextareaRef,
|
|
16074
16074
|
defaultValue: code,
|
|
16075
16075
|
onChange: (e) => {
|
|
16076
|
-
|
|
16077
|
-
|
|
16076
|
+
const v = e.target.value;
|
|
16077
|
+
lastPropCodeRef.current = v;
|
|
16078
|
+
setEditableValue(v);
|
|
16079
|
+
onChange?.(v);
|
|
16078
16080
|
},
|
|
16079
16081
|
onScroll: handleEditableScroll,
|
|
16080
16082
|
spellCheck: false,
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -15851,8 +15851,10 @@ var init_CodeBlock = __esm({
|
|
|
15851
15851
|
ref: editableTextareaRef,
|
|
15852
15852
|
defaultValue: code,
|
|
15853
15853
|
onChange: (e) => {
|
|
15854
|
-
|
|
15855
|
-
|
|
15854
|
+
const v = e.target.value;
|
|
15855
|
+
lastPropCodeRef.current = v;
|
|
15856
|
+
setEditableValue(v);
|
|
15857
|
+
onChange?.(v);
|
|
15856
15858
|
},
|
|
15857
15859
|
onScroll: handleEditableScroll,
|
|
15858
15860
|
spellCheck: false,
|
package/dist/runtime/index.js
CHANGED
|
@@ -15777,8 +15777,10 @@ var init_CodeBlock = __esm({
|
|
|
15777
15777
|
ref: editableTextareaRef,
|
|
15778
15778
|
defaultValue: code,
|
|
15779
15779
|
onChange: (e) => {
|
|
15780
|
-
|
|
15781
|
-
|
|
15780
|
+
const v = e.target.value;
|
|
15781
|
+
lastPropCodeRef.current = v;
|
|
15782
|
+
setEditableValue(v);
|
|
15783
|
+
onChange?.(v);
|
|
15782
15784
|
},
|
|
15783
15785
|
onScroll: handleEditableScroll,
|
|
15784
15786
|
spellCheck: false,
|