likec4 1.17.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__app__/src/chunks/{-index-overview-DNT3FQkn.js → -index-overview-DrCqsLHx.js} +12 -12
- package/dist/__app__/src/chunks/{likec4-CLNXvKhh.js → likec4-DF_Jsv_p.js} +36 -27
- package/dist/__app__/src/chunks/{main-Beyl8kQ7.js → main-E2hyQKFO.js} +662 -165
- package/dist/__app__/src/chunks/{mantine-CdYQpHSU.js → mantine-BzD51ZKm.js} +1518 -674
- package/dist/__app__/src/chunks/{tanstack-router-DJI32bwX.js → tanstack-router-CF1kJvtP.js} +1 -1
- package/dist/__app__/src/main.js +1 -1
- package/dist/__app__/src/style.css +1 -1
- package/dist/__app__/webcomponent/webcomponent.js +2484 -635
- package/dist/chunks/prompt.mjs +1 -1
- package/dist/cli/index.mjs +25 -25
- package/dist/index.d.mts +126 -14
- package/dist/index.d.ts +126 -14
- package/dist/index.mjs +1 -1
- package/dist/shared/{likec4.D5WUQlNc.mjs → likec4.BkLj38-D.mjs} +144 -144
- package/package.json +31 -30
- package/react/index.d.ts +5 -0
- package/react/index.mjs +2756 -629
- package/react/style.css +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useOverviewGraph } from "virtual:likec4/overview-graph";
|
|
3
|
-
import { c as createReactComponent, I as IconFolderFilled,
|
|
4
|
-
import { u as useRouter } from "./tanstack-router-
|
|
5
|
-
import { B as BaseEdge, H as Handle, P as Position, u as useNodesState, a as useEdgesState, i as index, b as Background, c as BackgroundVariant } from "./likec4-
|
|
3
|
+
import { c as createReactComponent, I as IconFolderFilled, n, u as useUpdateEffect, i, a as nonexhaustive } from "./main-E2hyQKFO.js";
|
|
4
|
+
import { u as useRouter } from "./tanstack-router-CF1kJvtP.js";
|
|
5
|
+
import { B as BaseEdge, H as Handle, P as Position, u as useNodesState, a as useEdgesState, i as index, b as Background, c as BackgroundVariant } from "./likec4-DF_Jsv_p.js";
|
|
6
6
|
import { memo, useRef, useMemo } from "react";
|
|
7
|
-
import { P as Paper, c as clsx, G as Group, T as ThemeIcon, a as Text, C as Card, b as CardSection, d as Center, I as Image, B as Box, u as useMantineColorScheme } from "./mantine-
|
|
7
|
+
import { P as Paper, c as clsx, G as Group, T as ThemeIcon, a as Text, C as Card, b as CardSection, d as Center, I as Image, B as Box, u as useMantineColorScheme } from "./mantine-BzD51ZKm.js";
|
|
8
8
|
import { usePreviewUrl } from "virtual:likec4/previews";
|
|
9
9
|
/**
|
|
10
10
|
* @license @tabler/icons-react v3.17.0 - MIT
|
|
@@ -46,7 +46,7 @@ const FolderNode = /* @__PURE__ */ memo(function({
|
|
|
46
46
|
parentId,
|
|
47
47
|
id
|
|
48
48
|
}) {
|
|
49
|
-
const isTopLevel =
|
|
49
|
+
const isTopLevel = n(parentId);
|
|
50
50
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
51
51
|
/* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Top, className: handleCenter }),
|
|
52
52
|
/* @__PURE__ */ jsx(
|
|
@@ -75,7 +75,7 @@ const FolderNode = /* @__PURE__ */ memo(function({
|
|
|
75
75
|
parentId,
|
|
76
76
|
id
|
|
77
77
|
}) {
|
|
78
|
-
const isTopLevel =
|
|
78
|
+
const isTopLevel = n(parentId);
|
|
79
79
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
80
80
|
/* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Top, className: handleCenter }),
|
|
81
81
|
/* @__PURE__ */ jsx(
|
|
@@ -142,7 +142,7 @@ const FolderNode = /* @__PURE__ */ memo(function({
|
|
|
142
142
|
link: LinkEdge
|
|
143
143
|
}, overviewGraphToXYFlowData = (graph) => ({
|
|
144
144
|
nodes: graph.nodes.map(({ id, parentId, position, width, height, ...node }) => {
|
|
145
|
-
const parent = parentId ? graph.nodes.find((
|
|
145
|
+
const parent = parentId ? graph.nodes.find((n2) => n2.id === parentId) : null, rect = {
|
|
146
146
|
...position,
|
|
147
147
|
width,
|
|
148
148
|
height
|
|
@@ -214,9 +214,9 @@ function OverviewDiagrams({
|
|
|
214
214
|
const router = useRouter(), xyflowRef = useRef(), { colorScheme } = useMantineColorScheme(), xyflowdata = useMemo(() => overviewGraphToXYFlowData(graph), [graph]), [nodes, setNodes, onNodesChange] = useNodesState(xyflowdata.nodes), [edges, setEdges, onEdgeChanges] = useEdgesState(xyflowdata.edges);
|
|
215
215
|
useUpdateEffect(() => {
|
|
216
216
|
setNodes(
|
|
217
|
-
(nodes2) => xyflowdata.nodes.map((
|
|
218
|
-
const current = nodes2.find((node) => node.id ===
|
|
219
|
-
return current ? { ...i(current, ["selected", "hidden"]), ...
|
|
217
|
+
(nodes2) => xyflowdata.nodes.map((n2) => {
|
|
218
|
+
const current = nodes2.find((node) => node.id === n2.id);
|
|
219
|
+
return current ? { ...i(current, ["selected", "hidden"]), ...n2 } : n2;
|
|
220
220
|
})
|
|
221
221
|
), setEdges(xyflowdata.edges);
|
|
222
222
|
}, [xyflowdata.nodes, xyflowdata.edges]);
|
|
@@ -276,7 +276,7 @@ function OverviewDiagrams({
|
|
|
276
276
|
onInit: (instance) => xyflowRef.current = instance,
|
|
277
277
|
onNodeClick: (event, node) => {
|
|
278
278
|
if (node.type === "view") {
|
|
279
|
-
event.stopPropagation(), setNodes((nodes2) => nodes2.map(({ data, ...
|
|
279
|
+
event.stopPropagation(), setNodes((nodes2) => nodes2.map(({ data, ...n2 }) => ({ ...n2, data: { ...data, dimmed: n2.id !== node.id } }))), xyflowRef.current?.fitView({
|
|
280
280
|
maxZoom: 10,
|
|
281
281
|
padding: 0,
|
|
282
282
|
nodes: [node],
|
|
@@ -294,7 +294,7 @@ function OverviewDiagrams({
|
|
|
294
294
|
}, 800);
|
|
295
295
|
return;
|
|
296
296
|
}
|
|
297
|
-
node.selected && (event.stopPropagation(), setNodes((nodes2) => nodes2.map((
|
|
297
|
+
node.selected && (event.stopPropagation(), setNodes((nodes2) => nodes2.map((n2) => n2.id === node.id ? { ...n2, selected: !1 } : n2)));
|
|
298
298
|
},
|
|
299
299
|
children: /* @__PURE__ */ jsx(Background, { variant: BackgroundVariant.Dots, size: 4, gap: 50 })
|
|
300
300
|
}
|
|
@@ -2486,19 +2486,15 @@ function nodeHasDimensions(node) {
|
|
|
2486
2486
|
return (node.measured?.width ?? node.width ?? node.initialWidth) !== void 0 && (node.measured?.height ?? node.height ?? node.initialHeight) !== void 0;
|
|
2487
2487
|
}
|
|
2488
2488
|
function evaluateAbsolutePosition(position, dimensions = { width: 0, height: 0 }, parentId, nodeLookup, nodeOrigin) {
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
if (nextParentId = parent?.parentId, parent) {
|
|
2494
|
-
const origin = parent.origin || nodeOrigin;
|
|
2495
|
-
positionAbsolute.x += parent.internals.positionAbsolute.x - (dimensions.width ?? 0) * origin[0], positionAbsolute.y += parent.internals.positionAbsolute.y - (dimensions.height ?? 0) * origin[1];
|
|
2496
|
-
}
|
|
2489
|
+
const positionAbsolute = { ...position }, parent = nodeLookup.get(parentId);
|
|
2490
|
+
if (parent) {
|
|
2491
|
+
const origin = parent.origin || nodeOrigin;
|
|
2492
|
+
positionAbsolute.x += parent.internals.positionAbsolute.x - (dimensions.width ?? 0) * origin[0], positionAbsolute.y += parent.internals.positionAbsolute.y - (dimensions.height ?? 0) * origin[1];
|
|
2497
2493
|
}
|
|
2498
2494
|
return positionAbsolute;
|
|
2499
2495
|
}
|
|
2500
|
-
function getPointerPosition(event, { snapGrid = [0, 0], snapToGrid = !1, transform: transform2 }) {
|
|
2501
|
-
const { x, y } = getEventPosition(event), pointerPos = pointToRendererPoint({ x, y }, transform2), { x: xSnapped, y: ySnapped } = snapToGrid ? snapPosition(pointerPos, snapGrid) : pointerPos;
|
|
2496
|
+
function getPointerPosition(event, { snapGrid = [0, 0], snapToGrid = !1, transform: transform2, containerBounds }) {
|
|
2497
|
+
const { x, y } = getEventPosition(event), pointerPos = pointToRendererPoint({ x: x - (containerBounds?.left ?? 0), y: y - (containerBounds?.top ?? 0) }, transform2), { x: xSnapped, y: ySnapped } = snapToGrid ? snapPosition(pointerPos, snapGrid) : pointerPos;
|
|
2502
2498
|
return {
|
|
2503
2499
|
xSnapped,
|
|
2504
2500
|
ySnapped,
|
|
@@ -3120,7 +3116,7 @@ function XYDrag({ onNodeMouseDown, getStoreItems, onDragStart, onDrag, onDragSto
|
|
|
3120
3116
|
function startDrag(event) {
|
|
3121
3117
|
const { nodeLookup, multiSelectionActive, nodesDraggable, transform: transform2, snapGrid, snapToGrid, selectNodesOnDrag, onNodeDragStart, onSelectionDragStart, unselectNodesAndEdges } = getStoreItems();
|
|
3122
3118
|
dragStarted = !0, (!selectNodesOnDrag || !isSelectable) && !multiSelectionActive && nodeId && (nodeLookup.get(nodeId)?.selected || unselectNodesAndEdges()), isSelectable && selectNodesOnDrag && nodeId && onNodeMouseDown?.(nodeId);
|
|
3123
|
-
const pointerPos = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid });
|
|
3119
|
+
const pointerPos = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid, containerBounds });
|
|
3124
3120
|
if (lastPos = pointerPos, dragItems = getDragItems(nodeLookup, nodesDraggable, pointerPos, nodeId), dragItems.size > 0 && (onDragStart || onNodeDragStart || !nodeId && onSelectionDragStart)) {
|
|
3125
3121
|
const [currentNode, currentNodes] = getEventHandlerParams({
|
|
3126
3122
|
nodeId,
|
|
@@ -3132,9 +3128,9 @@ function XYDrag({ onNodeMouseDown, getStoreItems, onDragStart, onDrag, onDragSto
|
|
|
3132
3128
|
}
|
|
3133
3129
|
const d3DragInstance = drag().clickDistance(nodeClickDistance).on("start", (event) => {
|
|
3134
3130
|
const { domNode: domNode2, nodeDragThreshold, transform: transform2, snapGrid, snapToGrid } = getStoreItems();
|
|
3135
|
-
abortDrag = !1, nodeDragThreshold === 0 && startDrag(event), lastPos = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid
|
|
3131
|
+
containerBounds = domNode2?.getBoundingClientRect() || null, abortDrag = !1, nodeDragThreshold === 0 && startDrag(event), lastPos = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid, containerBounds }), mousePosition = getEventPosition(event.sourceEvent, containerBounds);
|
|
3136
3132
|
}).on("drag", (event) => {
|
|
3137
|
-
const { autoPanOnNodeDrag, transform: transform2, snapGrid, snapToGrid, nodeDragThreshold, nodeLookup } = getStoreItems(), pointerPos = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid });
|
|
3133
|
+
const { autoPanOnNodeDrag, transform: transform2, snapGrid, snapToGrid, nodeDragThreshold, nodeLookup } = getStoreItems(), pointerPos = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid, containerBounds });
|
|
3138
3134
|
if ((event.sourceEvent.type === "touchmove" && event.sourceEvent.touches.length > 1 || // if user deletes a node while dragging, we need to abort the drag to prevent errors
|
|
3139
3135
|
nodeId && !nodeLookup.has(nodeId)) && (abortDrag = !0), !abortDrag) {
|
|
3140
3136
|
if (!autoPanStarted && autoPanOnNodeDrag && dragStarted && (autoPanStarted = !0, autoPan()), !dragStarted) {
|
|
@@ -3694,12 +3690,18 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
|
|
|
3694
3690
|
function update({ controlPosition, boundaries, keepAspectRatio, onResizeStart, onResize, onResizeEnd, shouldResize }) {
|
|
3695
3691
|
let prevValues = { ...initPrevValues$1 }, startValues = { ...initStartValues };
|
|
3696
3692
|
const controlDirection = getControlDirection(controlPosition);
|
|
3697
|
-
let node, childNodes = [], parentNode, parentExtent, childExtent;
|
|
3693
|
+
let node, containerBounds = null, childNodes = [], parentNode, parentExtent, childExtent;
|
|
3698
3694
|
const dragHandler = drag().on("start", (event) => {
|
|
3699
|
-
const { nodeLookup, transform: transform2, snapGrid, snapToGrid, nodeOrigin } = getStoreItems();
|
|
3695
|
+
const { nodeLookup, transform: transform2, snapGrid, snapToGrid, nodeOrigin, paneDomNode } = getStoreItems();
|
|
3700
3696
|
if (node = nodeLookup.get(nodeId), !node)
|
|
3701
3697
|
return;
|
|
3702
|
-
|
|
3698
|
+
containerBounds = paneDomNode?.getBoundingClientRect() ?? null;
|
|
3699
|
+
const { xSnapped, ySnapped } = getPointerPosition(event.sourceEvent, {
|
|
3700
|
+
transform: transform2,
|
|
3701
|
+
snapGrid,
|
|
3702
|
+
snapToGrid,
|
|
3703
|
+
containerBounds
|
|
3704
|
+
});
|
|
3703
3705
|
prevValues = {
|
|
3704
3706
|
width: node.measured.width ?? 0,
|
|
3705
3707
|
height: node.measured.height ?? 0,
|
|
@@ -3725,7 +3727,12 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
|
|
|
3725
3727
|
}
|
|
3726
3728
|
onResizeStart?.(event, { ...prevValues });
|
|
3727
3729
|
}).on("drag", (event) => {
|
|
3728
|
-
const { transform: transform2, snapGrid, snapToGrid, nodeOrigin: storeNodeOrigin } = getStoreItems(), pointerPosition = getPointerPosition(event.sourceEvent, {
|
|
3730
|
+
const { transform: transform2, snapGrid, snapToGrid, nodeOrigin: storeNodeOrigin } = getStoreItems(), pointerPosition = getPointerPosition(event.sourceEvent, {
|
|
3731
|
+
transform: transform2,
|
|
3732
|
+
snapGrid,
|
|
3733
|
+
snapToGrid,
|
|
3734
|
+
containerBounds
|
|
3735
|
+
}), childChanges = [];
|
|
3729
3736
|
if (!node)
|
|
3730
3737
|
return;
|
|
3731
3738
|
const { x: prevX, y: prevY, width: prevWidth, height: prevHeight } = prevValues, change = {}, nodeOrigin = node.origin ?? storeNodeOrigin, { width, height, x, y } = getDimensionsAfterResize(startValues, controlDirection, pointerPosition, boundaries, keepAspectRatio, nodeOrigin, parentExtent, childExtent), isWidthChange = width !== prevWidth, isHeightChange = height !== prevHeight, isXPosChange = x !== prevX && isWidthChange, isYPosChange = y !== prevY && isHeightChange;
|
|
@@ -4006,7 +4013,12 @@ const defaultDoc = typeof document < "u" ? document : null;
|
|
|
4006
4013
|
function useKeyPress(keyCode = null, options = { target: defaultDoc, actInsideInputWithModifier: !0 }) {
|
|
4007
4014
|
const [keyPressed, setKeyPressed] = useState(!1), modifierPressed = useRef(!1), pressedKeys = useRef(/* @__PURE__ */ new Set([])), [keyCodes, keysToWatch] = useMemo(() => {
|
|
4008
4015
|
if (keyCode !== null) {
|
|
4009
|
-
const keys = (Array.isArray(keyCode) ? keyCode : [keyCode]).filter((kc) => typeof kc == "string").map((kc) => kc.
|
|
4016
|
+
const keys = (Array.isArray(keyCode) ? keyCode : [keyCode]).filter((kc) => typeof kc == "string").map((kc) => kc.replace("+", `
|
|
4017
|
+
`).replace(`
|
|
4018
|
+
|
|
4019
|
+
`, `
|
|
4020
|
+
+`).split(`
|
|
4021
|
+
`)), keysFlat = keys.reduce((res, item) => res.concat(...item), []);
|
|
4010
4022
|
return [keys, keysFlat];
|
|
4011
4023
|
}
|
|
4012
4024
|
return [[], []];
|
|
@@ -4207,15 +4219,11 @@ function fixedForwardRef(render) {
|
|
|
4207
4219
|
}
|
|
4208
4220
|
const useIsomorphicLayoutEffect = typeof window < "u" ? useLayoutEffect : useEffect;
|
|
4209
4221
|
function useQueue(runQueue) {
|
|
4210
|
-
const [
|
|
4222
|
+
const [serial, setSerial] = useState(BigInt(0)), [queue] = useState(() => createQueue(() => setSerial((n2) => n2 + BigInt(1))));
|
|
4211
4223
|
return useIsomorphicLayoutEffect(() => {
|
|
4212
|
-
if (!shouldFlush) {
|
|
4213
|
-
queue.reset();
|
|
4214
|
-
return;
|
|
4215
|
-
}
|
|
4216
4224
|
const queueItems = queue.get();
|
|
4217
|
-
queueItems.length && (runQueue(queueItems), queue.reset())
|
|
4218
|
-
}, [
|
|
4225
|
+
queueItems.length && (runQueue(queueItems), queue.reset());
|
|
4226
|
+
}, [serial]), queue;
|
|
4219
4227
|
}
|
|
4220
4228
|
function createQueue(cb) {
|
|
4221
4229
|
let queue = [];
|
|
@@ -5935,13 +5943,14 @@ function ResizeControl({ nodeId, position, variant = ResizeControlVariant.Handle
|
|
|
5935
5943
|
domNode: resizeControlRef.current,
|
|
5936
5944
|
nodeId: id2,
|
|
5937
5945
|
getStoreItems: () => {
|
|
5938
|
-
const { nodeLookup, transform: transform2, snapGrid, snapToGrid, nodeOrigin } = store.getState();
|
|
5946
|
+
const { nodeLookup, transform: transform2, snapGrid, snapToGrid, nodeOrigin, domNode } = store.getState();
|
|
5939
5947
|
return {
|
|
5940
5948
|
nodeLookup,
|
|
5941
5949
|
transform: transform2,
|
|
5942
5950
|
snapGrid,
|
|
5943
5951
|
snapToGrid,
|
|
5944
|
-
nodeOrigin
|
|
5952
|
+
nodeOrigin,
|
|
5953
|
+
paneDomNode: domNode
|
|
5945
5954
|
};
|
|
5946
5955
|
},
|
|
5947
5956
|
onChange: (change, childChanges) => {
|