@likec4/styles 1.48.0 → 1.49.0

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.
@@ -1,9 +1,8 @@
1
1
  import { t as __exportAll } from "./_chunks/rolldown-runtime.mjs";
2
2
  import { a as t$6, c as t$2, i as t$4, l as t$1, n as t$3, o as e$1, r as t$5, s as t, t as e } from "./_chunks/libs/remeda.mjs";
3
+ import { a as grass, c as orange, d as red, f as ruby, g as yellow, h as violet, i as crimson, l as pink, m as tomato, n as blue$2, o as indigo, p as teal, s as lime, t as amber, u as purple } from "./_chunks/libs/@radix-ui/colors.mjs";
3
4
  import { t as createPreset } from "./_chunks/libs/pandacss-preset-radix-colors.mjs";
4
- import { defineAnimationStyles, defineKeyframes, defineLayerStyles, defineParts, definePattern, definePreset, defineRecipe, defineSemanticTokens, defineSlotRecipe, defineTextStyles, defineTokens } from "@pandacss/dev";
5
-
6
- //#region ../preset/src/animations.ts
5
+ import { defineAnimationStyles, defineKeyframes, defineLayerStyles, defineParts, definePattern, definePreset, defineRecipe, defineSemanticTokens, defineSlotRecipe, defineTextStyles, defineTokens, defineUtility } from "@pandacss/dev";
7
6
  const keyframes = defineKeyframes({
8
7
  "indicatorOpacity": {
9
8
  "0%": { opacity: .8 },
@@ -30,9 +29,6 @@ const animationStyles = defineAnimationStyles({
30
29
  animationName: "xyedgeAnimated"
31
30
  } }
32
31
  });
33
-
34
- //#endregion
35
- //#region ../preset/src/defaults/vars.ts
36
32
  const vars = {
37
33
  font: "--likec4-app-font",
38
34
  spacing: "--likec4-spacing",
@@ -59,16 +55,6 @@ function readName(key) {
59
55
  let name = e(vars, ...path);
60
56
  return e$1(name) ? name : void 0;
61
57
  }
62
- /**
63
- * Returns a CSS variable declaration string.
64
- *
65
- * If `defaultTo` is not provided, returns a string like `var(--likec4-palette-fill)`.
66
- * If `defaultTo` is a Vars or string, returns a string like `var(--likec4-palette-fill, var(--default-to))`.
67
- *
68
- * @param key - The name of the CSS variable to generate.
69
- * @param defaultTo - An optional string, Vars, or object to use as the default value.
70
- * @returns A CSS variable declaration string.
71
- */
72
58
  function __v(key, defaultTo) {
73
59
  let name = readName(key);
74
60
  if (!name) throw new Error(`Unknown var: ${key}`);
@@ -77,14 +63,8 @@ function __v(key, defaultTo) {
77
63
  if (defaultValue) return `var(${name}, var(${defaultValue}))`;
78
64
  return `var(${name}, ${defaultTo})`;
79
65
  }
80
-
81
- //#endregion
82
- //#region ../preset/src/const.ts
83
66
  const root = ".likec4-root";
84
- const rootNotReduced = `${root}:not([data-likec4-reduced-graphics])`;
85
-
86
- //#endregion
87
- //#region ../preset/src/defaults/element-colors.ts
67
+ `${root}`;
88
68
  const blue$1 = {
89
69
  fill: "#3b82f6",
90
70
  stroke: "#2563eb",
@@ -141,9 +121,6 @@ const ElementColors = {
141
121
  loContrast: "#c7d2fe"
142
122
  }
143
123
  };
144
-
145
- //#endregion
146
- //#region ../preset/src/defaults/relationship-colors.ts
147
124
  const gray = {
148
125
  line: "#8D8D8D",
149
126
  labelBg: "#18191B",
@@ -193,9 +170,6 @@ const RelationshipColors = {
193
170
  sky,
194
171
  slate
195
172
  };
196
-
197
- //#endregion
198
- //#region ../preset/src/defaults/sizes.ts
199
173
  const defaultSizes = {
200
174
  sizes: {
201
175
  xs: {
@@ -241,9 +215,6 @@ const defaultSizes = {
241
215
  xl: 90
242
216
  }
243
217
  };
244
-
245
- //#endregion
246
- //#region ../preset/src/defaults/types.ts
247
218
  const ElementShapes = [
248
219
  "rectangle",
249
220
  "person",
@@ -253,7 +224,8 @@ const ElementShapes = [
253
224
  "storage",
254
225
  "queue",
255
226
  "bucket",
256
- "document"
227
+ "document",
228
+ "component"
257
229
  ];
258
230
  const ThemeColors = [
259
231
  "amber",
@@ -285,9 +257,7 @@ const DefaultTagColors = [
285
257
  "yellow",
286
258
  "violet"
287
259
  ];
288
-
289
- //#endregion
290
- //#region ../preset/src/defaults/index.ts
260
+ tomato.tomato9, grass.grass9, blue$2.blue9, ruby.ruby9, orange.orange9, indigo.indigo9, pink.pink9, teal.teal9, purple.purple9, amber.amber9, crimson.crimson9, red.red9, lime.lime9, yellow.yellow9, violet.violet9;
291
261
  const defaultTheme = {
292
262
  colors: ThemeColors.reduce((acc, key) => {
293
263
  acc[key] = {
@@ -298,9 +268,6 @@ const defaultTheme = {
298
268
  }, {}),
299
269
  ...defaultSizes
300
270
  };
301
-
302
- //#endregion
303
- //#region ../preset/src/conditions.ts
304
271
  const shapeSizeCondition = (key) => `shapeSize${t$1(key)}`;
305
272
  const conditions = { extend: {
306
273
  ...t$2(defaultTheme.sizes, t$3((_, key) => `:where([data-likec4-shape-size='${key}']) &`), t$4(shapeSizeCondition)),
@@ -324,15 +291,12 @@ const conditions = { extend: {
324
291
  smallZoom: ":where([data-likec4-zoom-small=\"true\"]) &",
325
292
  compoundTransparent: ":where([data-compound-transparent]) &",
326
293
  edgeActive: ":where([data-likec4-edge-active=\"true\"]) &",
327
- whenHovered: ":where(.react-flow__node:has([data-likec4-hovered=\"true\"]), .react-flow__edge:has([data-likec4-hovered=\"true\"]), .likec4-edge-container[data-likec4-hovered=\"true\"]) &",
294
+ whenHovered: ":where([data-likec4-hovered=\"true\"]) &",
328
295
  whenSelectable: ":where(.react-flow__node, .react-flow__edge, .likec4-edge-container):is(.selectable) &",
329
296
  whenSelected: ":where(.react-flow__node, .react-flow__edge, .likec4-edge-container):is(.selected) &",
330
297
  whenDimmed: ":where(.react-flow__node, .react-flow__edge):has([data-likec4-dimmed]) &",
331
298
  whenFocused: ":where(.react-flow__node, .react-flow__edge):is(:focus-visible, :focus, :focus-within) &"
332
299
  } };
333
-
334
- //#endregion
335
- //#region ../preset/src/generated.ts
336
300
  const breakpoints = {
337
301
  xs: "36em",
338
302
  sm: "48em",
@@ -1336,9 +1300,17 @@ const mantine = {
1336
1300
  darkSelector: "[data-mantine-color-scheme=\"dark\"] &",
1337
1301
  lightSelector: "[data-mantine-color-scheme=\"light\"] &"
1338
1302
  };
1339
-
1340
- //#endregion
1341
- //#region ../preset/src/globalCss.ts
1303
+ function alpha(color, percentage = 50) {
1304
+ let alpha = percentage;
1305
+ if (typeof percentage === "number") {
1306
+ if (percentage > 0 && percentage < 1) percentage *= 100;
1307
+ alpha = `${percentage}%`;
1308
+ }
1309
+ return `oklch(from ${color} l c h / ${alpha})`;
1310
+ }
1311
+ function rem(pixels) {
1312
+ return `${pixels}px`;
1313
+ }
1342
1314
  const sizeConditions = {
1343
1315
  ...t$5(t$6(defaultTheme.textSizes), (size) => [`:where([data-likec4-text-size='${size}'])`, { [vars.textsize]: `{fontSizes.likec4.${size}}` }]),
1344
1316
  ...t$5(t$6(defaultTheme.spacing), (size) => [`:where([data-likec4-spacing='${size}'])`, { [vars.spacing]: `{spacing.likec4.${size}}` }])
@@ -1348,9 +1320,13 @@ const globalCss = { extend: {
1348
1320
  ...sizeConditions,
1349
1321
  ".likec4-shadow-root": {
1350
1322
  display: "contents",
1323
+ color: "var(--colors-text)",
1351
1324
  "--mantine-font-family": "var(--likec4-app-font, var(--likec4-app-font-default))",
1352
1325
  "--mantine-font-family-headings": "var(--likec4-app-font, var(--likec4-app-font-default))",
1353
- "& dialog": { color: "var(--mantine-color-text)" }
1326
+ "& dialog": {
1327
+ "--mantine-font-family": "var(--likec4-app-font, var(--likec4-app-font-default))",
1328
+ color: "var(--colors-text)"
1329
+ }
1354
1330
  },
1355
1331
  ".likec4-edge-label-container": {
1356
1332
  top: 0,
@@ -1361,7 +1337,9 @@ const globalCss = { extend: {
1361
1337
  display: {
1362
1338
  _reduceGraphicsOnPan: "none",
1363
1339
  _smallZoom: "none"
1364
- }
1340
+ },
1341
+ willChange: "transform",
1342
+ zIndex: "likec4.diagram.edge.label"
1365
1343
  },
1366
1344
  ".likec4-root": {
1367
1345
  overflow: "hidden",
@@ -1398,7 +1376,7 @@ const globalCss = { extend: {
1398
1376
  "--xy-background-color": "transparent !important"
1399
1377
  },
1400
1378
  "& .react-flow__pane": { userSelect: "none" },
1401
- "& :where(.react-flow__nodes, .react-flow__edges, .react-flow__edgelabel-renderer)": { display: "contents" },
1379
+ "& :is(.react-flow__nodes, .react-flow__edges, .react-flow__edgelabel-renderer, .react-flow__viewport-portal)": { display: "contents" },
1402
1380
  "& .react-flow__node.draggable:has(.likec4-compound-node)": { cursor: "default" },
1403
1381
  "& .likec4-node-handle-center": {
1404
1382
  top: "50%!",
@@ -1417,12 +1395,13 @@ const globalCss = { extend: {
1417
1395
  "--xy-edge-stroke-width": 3,
1418
1396
  "--xy-edge-stroke": __v("palette.relationStroke"),
1419
1397
  "--xy-edge-stroke-selected": __v("palette.relationStrokeSelected"),
1420
- "--xy-edge-label-color": __v("palette.relationLabel"),
1421
- "--xy-edge-label-background-color": __v("palette.relationLabelBg"),
1422
- _dark: { "--xy-edge-label-background-color": `color-mix(in oklab, ${__v("palette.relationLabelBg")} 50%, transparent)` },
1423
- _light: {
1424
- "--xy-edge-label-color": `color-mix(in oklab, ${__v("palette.relationLabel")}, #FFF 50%)`,
1425
- "--xy-edge-label-background-color": `color-mix(in oklab, ${__v("palette.relationLabelBg")} 65%, transparent)`
1398
+ "--xy-edge-label-color": {
1399
+ base: __v("palette.relationLabel"),
1400
+ _light: `oklch(from ${__v("palette.relationLabel")} calc(l + 0.05) c h)`
1401
+ },
1402
+ "--xy-edge-label-background-color": {
1403
+ _dark: alpha(__v("palette.relationLabelBg"), 45),
1404
+ _light: alpha(__v("palette.relationLabelBg"), 60)
1426
1405
  },
1427
1406
  "&:is([data-likec4-hovered=\"true\"], [data-edge-active=\"true\"])": {
1428
1407
  "--xy-edge-stroke-width": 4,
@@ -1444,13 +1423,13 @@ const globalCss = { extend: {
1444
1423
  transitionDuration: "400ms"
1445
1424
  },
1446
1425
  "& :where(.react-flow__edgelabel-renderer) > *": { mixBlendMode: {
1426
+ base: "hard-light",
1447
1427
  _dark: "screen",
1448
- _light: "hard-light",
1449
1428
  _print: "normal!"
1450
1429
  } },
1451
1430
  "& :where(.react-flow__edges) > svg": { mixBlendMode: {
1431
+ base: "multiply",
1452
1432
  _dark: "plus-lighter",
1453
- _light: "multiply",
1454
1433
  _print: "normal!"
1455
1434
  } },
1456
1435
  "&:has(.react-flow__node-seq-parallel) :where(.react-flow__edges > svg)": { mixBlendMode: { _light: "color-burn" } },
@@ -1459,34 +1438,10 @@ const globalCss = { extend: {
1459
1438
  _light: "color-burn",
1460
1439
  _print: "normal!"
1461
1440
  } }
1462
- },
1463
- "& :where(.relationships-browser, .likec4-relationship-details) .react-flow__attribution": { display: "none" }
1441
+ }
1464
1442
  },
1465
- ".likec4-static-view .react-flow .react-flow__attribution": { display: "none" }
1443
+ ":where(.likec4-static-view, .relationships-browser, .likec4-relationship-details) .react-flow .react-flow__attribution": { display: "none" }
1466
1444
  } };
1467
-
1468
- //#endregion
1469
- //#region ../preset/src/helpers.ts
1470
- /**
1471
- * Changes the alpha channel of a color
1472
- * @param color color value or CSS variable
1473
- * @param percentage Alpha channel value
1474
- * @returns
1475
- */
1476
- function alpha(color, percentage = 50) {
1477
- let alpha = percentage;
1478
- if (typeof percentage === "number") {
1479
- if (percentage > 0 && percentage < 1) percentage *= 100;
1480
- alpha = `${percentage}%`;
1481
- }
1482
- return `oklch(from ${color} l c h / ${alpha})`;
1483
- }
1484
- function rem(pixels) {
1485
- return `${pixels}px`;
1486
- }
1487
-
1488
- //#endregion
1489
- //#region ../preset/src/globalVars.ts
1490
1445
  const globalVars = { extend: {
1491
1446
  [vars.font]: "/*-*/ /*-*/",
1492
1447
  [vars.spacing]: "/*-*/ /*-*/",
@@ -1505,9 +1460,6 @@ const globalVars = { extend: {
1505
1460
  [vars.icon.color]: "/*-*/ /*-*/",
1506
1461
  [vars.icon.size]: "/*-*/ /*-*/"
1507
1462
  } };
1508
-
1509
- //#endregion
1510
- //#region ../preset/src/layer-styles.ts
1511
1463
  const layerStyles = /* @__PURE__ */ defineLayerStyles({ likec4: {
1512
1464
  tag: {
1513
1465
  description: "LikeC4 tag layer",
@@ -1591,55 +1543,6 @@ const layerStyles = /* @__PURE__ */ defineLayerStyles({ likec4: {
1591
1543
  }
1592
1544
  }
1593
1545
  } });
1594
-
1595
- //#endregion
1596
- //#region ../preset/src/patterns.ts
1597
- const txt = definePattern({
1598
- properties: {
1599
- inline: { type: "boolean" },
1600
- dimmed: { type: "boolean" },
1601
- lh: {
1602
- type: "token",
1603
- value: "lineHeights"
1604
- },
1605
- size: {
1606
- type: "enum",
1607
- value: [
1608
- "xxs",
1609
- "xs",
1610
- "sm",
1611
- "md",
1612
- "lg",
1613
- "xl"
1614
- ]
1615
- },
1616
- likec4color: {
1617
- type: "enum",
1618
- value: [...ThemeColors]
1619
- }
1620
- },
1621
- defaultValues: {
1622
- inline: false,
1623
- dimmed: false,
1624
- size: "md"
1625
- },
1626
- transform(props, _helpers) {
1627
- const { inline, size, dimmed, lh, likec4color, ...rest } = props;
1628
- if (dimmed && likec4color) throw new Error("dimmed and likec4color are mutually exclusive");
1629
- return {
1630
- userSelect: "all",
1631
- cursor: "default",
1632
- textStyle: dimmed ? `dimmed.${size}` : size,
1633
- ...inline && { display: "inline-block" },
1634
- ...lh && { lineHeight: lh },
1635
- ...likec4color && { "data-likec4-color": likec4color },
1636
- ...rest
1637
- };
1638
- },
1639
- jsxElement: "div",
1640
- jsxName: "Txt",
1641
- jsx: ["Txt"]
1642
- });
1643
1546
  const patterns = { extend: {
1644
1547
  vstack: { defaultValues: {
1645
1548
  alignItems: "stretch",
@@ -1647,27 +1550,65 @@ const patterns = { extend: {
1647
1550
  } },
1648
1551
  hstack: { defaultValues: { gap: "sm" } },
1649
1552
  box: { jsx: ["Box", "MarkdownBlock"] },
1650
- txt
1553
+ txt: definePattern({
1554
+ properties: {
1555
+ inline: { type: "boolean" },
1556
+ dimmed: { type: "boolean" },
1557
+ lh: {
1558
+ type: "token",
1559
+ value: "lineHeights"
1560
+ },
1561
+ size: {
1562
+ type: "enum",
1563
+ value: [
1564
+ "xxs",
1565
+ "xs",
1566
+ "sm",
1567
+ "md",
1568
+ "lg",
1569
+ "xl"
1570
+ ]
1571
+ },
1572
+ likec4color: {
1573
+ type: "enum",
1574
+ value: [...ThemeColors]
1575
+ }
1576
+ },
1577
+ defaultValues: {
1578
+ inline: false,
1579
+ dimmed: false,
1580
+ size: "md"
1581
+ },
1582
+ transform(props, _helpers) {
1583
+ const { inline, size, dimmed, lh, likec4color, ...rest } = props;
1584
+ if (dimmed && likec4color) throw new Error("dimmed and likec4color are mutually exclusive");
1585
+ return {
1586
+ userSelect: "all",
1587
+ cursor: "default",
1588
+ textStyle: dimmed ? `dimmed.${size}` : size,
1589
+ ...inline && { display: "inline-block" },
1590
+ ...lh && { lineHeight: lh },
1591
+ ...likec4color && { "data-likec4-color": likec4color },
1592
+ ...rest
1593
+ };
1594
+ },
1595
+ jsxElement: "div",
1596
+ jsxName: "Txt",
1597
+ jsx: ["Txt"]
1598
+ })
1651
1599
  } };
1652
-
1653
- //#endregion
1654
- //#region ../preset/src/radixColors.ts
1655
1600
  const radixColorsPreset = /* @__PURE__ */ createPreset({
1656
1601
  autoP3: false,
1657
1602
  darkMode: { condition: "[data-mantine-color-scheme=\"dark\"] &" },
1658
1603
  colorScales: [...DefaultTagColors]
1659
1604
  });
1660
-
1661
- //#endregion
1662
- //#region ../preset/src/recipes/actionBtn.ts
1663
- const parts$5 = defineParts({
1664
- root: { selector: "&" },
1665
- container: { selector: "& > div" }
1666
- });
1667
1605
  const actionButtons = defineRecipe({
1668
1606
  className: "action-buttons",
1669
1607
  description: "Action Buttons Container within Diagram Node (Bottom-Center)",
1670
- base: parts$5({
1608
+ base: defineParts({
1609
+ root: { selector: "&" },
1610
+ container: { selector: "& > div" }
1611
+ })({
1671
1612
  root: {
1672
1613
  display: "flex",
1673
1614
  flexDirection: "row",
@@ -1735,8 +1676,8 @@ const actionBtn = defineRecipe({
1735
1676
  } }
1736
1677
  },
1737
1678
  size: {
1738
- sm: { ["--ai-size"]: `var(--ai-size-sm)` },
1739
- md: { ["--ai-size"]: `var(--ai-size-md)` }
1679
+ sm: { ["--ai-size"]: `22px` },
1680
+ md: { ["--ai-size"]: `28px` }
1740
1681
  },
1741
1682
  radius: {
1742
1683
  sm: { "--ai-radius": `{radii.sm}` },
@@ -1755,9 +1696,6 @@ const actionBtn = defineRecipe({
1755
1696
  conditions: ["*"]
1756
1697
  }]
1757
1698
  });
1758
-
1759
- //#endregion
1760
- //#region ../preset/src/recipes/compoundNode.ts
1761
1699
  const borderWidth = {
1762
1700
  var: "--_border-width",
1763
1701
  ref: "var(--_border-width)"
@@ -1782,7 +1720,7 @@ const compoundColor = {
1782
1720
  var: "--_compound-color",
1783
1721
  ref: "var(--_compound-color)"
1784
1722
  };
1785
- const parts$4 = defineParts({
1723
+ const parts$5 = defineParts({
1786
1724
  root: { selector: "&" },
1787
1725
  titleContainer: { selector: "& .likec4-compound-title-container" },
1788
1726
  title: { selector: "& .likec4-compound-title" },
@@ -1794,7 +1732,7 @@ const parts$4 = defineParts({
1794
1732
  const iconSize = "20px";
1795
1733
  const compoundNode = defineRecipe({
1796
1734
  className: "likec4-compound-node",
1797
- base: parts$4({
1735
+ base: parts$5({
1798
1736
  root: {
1799
1737
  position: "relative",
1800
1738
  width: "100%",
@@ -1928,7 +1866,7 @@ const compoundNode = defineRecipe({
1928
1866
  }),
1929
1867
  variants: {
1930
1868
  isTransparent: {
1931
- false: parts$4({ root: {
1869
+ false: parts$5({ root: {
1932
1870
  boxShadow: {
1933
1871
  _noReduceGraphics: "0 4px 10px 0.5px rgb(0 0 0/10%) , 0 2px 2px -1px rgb(0 0 0/40%)",
1934
1872
  _whenSelected: "none",
@@ -1938,14 +1876,14 @@ const compoundNode = defineRecipe({
1938
1876
  borderColor: __v("palette.stroke"),
1939
1877
  [compoundColor.var]: alpha(__v("palette.hiContrast"), 90)
1940
1878
  } }),
1941
- true: parts$4({ root: {
1879
+ true: parts$5({ root: {
1942
1880
  backgroundColor: alpha(__v("palette.fill"), compoundTransparency.ref),
1943
1881
  borderColor: alpha(__v("palette.stroke"), borderTransparency.ref),
1944
1882
  [compoundColor.var]: `color-mix(in oklch, ${__v("palette.hiContrast")}, ${__v("palette.stroke")} 10%)`
1945
1883
  } })
1946
1884
  },
1947
1885
  inverseColor: {
1948
- true: parts$4({
1886
+ true: parts$5({
1949
1887
  root: {
1950
1888
  "--_mix": `color-mix(in oklch, ${__v("palette.hiContrast")}, ${__v("palette.stroke")} 60%)`,
1951
1889
  [compoundColor.var]: {
@@ -1966,10 +1904,10 @@ const compoundNode = defineRecipe({
1966
1904
  false: {}
1967
1905
  },
1968
1906
  borderStyle: {
1969
- solid: parts$4({ root: { borderStyle: "solid" } }),
1970
- dashed: parts$4({ root: { borderStyle: "dashed" } }),
1971
- dotted: parts$4({ root: { borderStyle: "dotted" } }),
1972
- none: parts$4({ root: {
1907
+ solid: parts$5({ root: { borderStyle: "solid" } }),
1908
+ dashed: parts$5({ root: { borderStyle: "dashed" } }),
1909
+ dotted: parts$5({ root: { borderStyle: "dotted" } }),
1910
+ none: parts$5({ root: {
1973
1911
  borderColor: "transparent!",
1974
1912
  backgroundClip: "border-box!",
1975
1913
  [indicatorSpacing.var]: `calc(${borderWidth.ref} * 2)`
@@ -1987,9 +1925,6 @@ const compoundNode = defineRecipe({
1987
1925
  borderStyle: ["*"]
1988
1926
  }]
1989
1927
  });
1990
-
1991
- //#endregion
1992
- //#region ../preset/src/recipes/edgeActionBtn.ts
1993
1928
  const edgeActionBtn = defineRecipe({
1994
1929
  className: "likec4-edge-action-btn",
1995
1930
  description: "Action Button within Diagram Edge Label",
@@ -2002,7 +1937,7 @@ const edgeActionBtn = defineRecipe({
2002
1937
  translate: "auto",
2003
1938
  "--ai-bg": "transparent",
2004
1939
  "--ai-hover": `color-mix(in oklab , var(--xy-edge-label-background-color), {colors.likec4.mixColor} 10%)`,
2005
- "--ai-size": `var(--ai-size-sm)`,
1940
+ "--ai-size": `28px`,
2006
1941
  "--ai-radius": `{radii.sm}`,
2007
1942
  _hover: {
2008
1943
  translateY: "[2px]",
@@ -2027,10 +1962,7 @@ const edgeActionBtn = defineRecipe({
2027
1962
  defaultVariants: {},
2028
1963
  staticCss: [{ conditions: ["*"] }]
2029
1964
  });
2030
-
2031
- //#endregion
2032
- //#region ../preset/src/recipes/edgeLabel.ts
2033
- const parts$3 = defineParts({
1965
+ const parts$4 = defineParts({
2034
1966
  root: { selector: "&" },
2035
1967
  stepNumber: { selector: "& .likec4-edge-label__step-number" },
2036
1968
  contents: { selector: "& .likec4-edge-label__contents" },
@@ -2040,7 +1972,7 @@ const parts$3 = defineParts({
2040
1972
  const edgeLabel = defineRecipe({
2041
1973
  className: "likec4-edge-label",
2042
1974
  jsx: [],
2043
- base: parts$3({
1975
+ base: parts$4({
2044
1976
  root: {
2045
1977
  fontFamily: "likec4.relation",
2046
1978
  paddingBlock: "1",
@@ -2070,9 +2002,9 @@ const edgeLabel = defineRecipe({
2070
2002
  borderRadius: "4px",
2071
2003
  minWidth: "24px"
2072
2004
  },
2073
- background: `color-mix(in oklab, ${__v("palette.relationLabelBg")}, {colors.likec4.mixColor} 10%)`,
2005
+ background: `color-mix(in oklab, var(--xy-edge-label-background-color), {colors.likec4.mixColor} 12%)`,
2074
2006
  fontVariantNumeric: "tabular-nums",
2075
- [":where([data-likec4-color=\"gray\"]) &"]: { _dark: { background: `[color-mix(in oklab, ${__v("palette.relationLabelBg")}, {colors.likec4.mixColor} 15%)]` } }
2007
+ [":where([data-likec4-color=\"gray\"]) &"]: { _dark: { background: `[color-mix(in oklab, var(--xy-edge-label-background-color), {colors.likec4.mixColor} 15%)]` } }
2076
2008
  },
2077
2009
  contents: {
2078
2010
  display: "contents",
@@ -2094,16 +2026,16 @@ const edgeLabel = defineRecipe({
2094
2026
  }),
2095
2027
  variants: {
2096
2028
  pointerEvents: {
2097
- none: parts$3({ root: { pointerEvents: "none" } }),
2098
- all: parts$3({ root: { pointerEvents: "all" } })
2029
+ none: parts$4({ root: { pointerEvents: "none" } }),
2030
+ all: parts$4({ root: { pointerEvents: "all" } })
2099
2031
  },
2100
2032
  cursor: {
2101
- pointer: parts$3({ root: { cursor: "pointer" } }),
2102
- default: parts$3({ root: { cursor: "default" } })
2033
+ pointer: parts$4({ root: { cursor: "pointer" } }),
2034
+ default: parts$4({ root: { cursor: "default" } })
2103
2035
  },
2104
2036
  isStepEdge: {
2105
2037
  false: {},
2106
- true: parts$3({
2038
+ true: parts$4({
2107
2039
  root: {
2108
2040
  flexDirection: "row",
2109
2041
  gap: "1",
@@ -2137,9 +2069,6 @@ const edgeLabel = defineRecipe({
2137
2069
  pointerEvents: ["*"]
2138
2070
  }]
2139
2071
  });
2140
-
2141
- //#endregion
2142
- //#region ../preset/src/recipes/edgePath.ts
2143
2072
  const edgePath = defineSlotRecipe({
2144
2073
  description: "Recipe for Edge Path",
2145
2074
  slots: [
@@ -2211,9 +2140,6 @@ const edgePath = defineSlotRecipe({
2211
2140
  },
2212
2141
  staticCss: [{ conditions: ["*"] }]
2213
2142
  });
2214
-
2215
- //#endregion
2216
- //#region ../preset/src/recipes/elementNode.ts
2217
2143
  const elementNode = defineRecipe({
2218
2144
  className: "likec4-element-node",
2219
2145
  jsx: ["ElementNodeContainer", "ElementNode"],
@@ -2247,10 +2173,7 @@ const elementNode = defineRecipe({
2247
2173
  },
2248
2174
  staticCss: [{ conditions: ["*"] }]
2249
2175
  });
2250
-
2251
- //#endregion
2252
- //#region ../preset/src/recipes/elementNodeData.ts
2253
- const parts$2 = defineParts({
2176
+ const parts$3 = defineParts({
2254
2177
  root: { selector: "&" },
2255
2178
  icon: { selector: "& [data-likec4-icon]" },
2256
2179
  content: { selector: "& .likec4-element-node-content" },
@@ -2269,7 +2192,7 @@ const elementNodeData = defineRecipe({
2269
2192
  "ElementTitle",
2270
2193
  "Root"
2271
2194
  ],
2272
- base: parts$2({
2195
+ base: parts$3({
2273
2196
  root: {
2274
2197
  position: "relative",
2275
2198
  flex: "1",
@@ -2308,6 +2231,7 @@ const elementNodeData = defineRecipe({
2308
2231
  paddingLeft: `calc(${__v("spacing")} + 20px)`,
2309
2232
  paddingRight: `calc(${__v("spacing")} + 20px)`
2310
2233
  },
2234
+ _shapeComponent: { paddingLeft: `calc(${__v("spacing")} + 30px)` },
2311
2235
  _shapeSizeXs: { [vars.icon.size]: `${defaultSizes.iconSizes.xs}px` },
2312
2236
  _shapeSizeSm: { [vars.icon.size]: `${defaultSizes.iconSizes.sm}px` },
2313
2237
  _shapeSizeMd: { [vars.icon.size]: `${defaultSizes.iconSizes.md}px` },
@@ -2335,9 +2259,11 @@ const elementNodeData = defineRecipe({
2335
2259
  width: "100%",
2336
2260
  height: "auto",
2337
2261
  maxHeight: "100%",
2262
+ transition: "fast",
2338
2263
  filter: {
2339
- base: [`drop-shadow(1px 2px 1px var(--likec4-palette-stroke))`].join("\n"),
2340
- _reduceGraphicsOnPan: "none"
2264
+ base: ["drop-shadow(0 1px 3px rgb(0 0 0 / 20%))"].join("\n"),
2265
+ _whenHovered: ["drop-shadow(0 2px 4px rgb(0 0 0 / 30%))"].join("\n"),
2266
+ _reduceGraphicsOnPan: "none!"
2341
2267
  }
2342
2268
  },
2343
2269
  "& img": { objectFit: "contain" }
@@ -2420,14 +2346,14 @@ const elementNodeData = defineRecipe({
2420
2346
  }),
2421
2347
  variants: {
2422
2348
  iconPosition: {
2423
- left: parts$2({ root: { [hasIcon]: {
2349
+ left: parts$3({ root: { [hasIcon]: {
2424
2350
  [textAlign]: "left",
2425
2351
  "& .likec4-element-node-content": {
2426
2352
  minWidth: `calc(50% + calc(${__v("icon.size")} / 2))`,
2427
2353
  alignItems: "flex-start"
2428
2354
  }
2429
2355
  } } }),
2430
- right: parts$2({ root: { [hasIcon]: {
2356
+ right: parts$3({ root: { [hasIcon]: {
2431
2357
  flexDirection: "row-reverse",
2432
2358
  [textAlign]: "right",
2433
2359
  gap: "4",
@@ -2436,7 +2362,7 @@ const elementNodeData = defineRecipe({
2436
2362
  alignItems: "flex-end"
2437
2363
  }
2438
2364
  } } }),
2439
- top: parts$2({
2365
+ top: parts$3({
2440
2366
  root: { [hasIcon]: {
2441
2367
  flexDirection: "column",
2442
2368
  gap: "2",
@@ -2448,7 +2374,7 @@ const elementNodeData = defineRecipe({
2448
2374
  } },
2449
2375
  icon: { alignSelf: "center" }
2450
2376
  }),
2451
- bottom: parts$2({
2377
+ bottom: parts$3({
2452
2378
  root: { [hasIcon]: {
2453
2379
  flexDirection: "column-reverse",
2454
2380
  gap: "2",
@@ -2462,8 +2388,8 @@ const elementNodeData = defineRecipe({
2462
2388
  })
2463
2389
  },
2464
2390
  withIconColor: {
2465
- true: parts$2({ icon: { color: __v("icon.color", "palette.stroke") } }),
2466
- false: parts$2({ icon: { mixBlendMode: {
2391
+ true: parts$3({ icon: { "& svg": { color: __v("icon.color", "palette.stroke") } } }),
2392
+ false: parts$3({ icon: { mixBlendMode: {
2467
2393
  base: "hard-light",
2468
2394
  _reduceGraphicsOnPan: "normal"
2469
2395
  } } })
@@ -2479,19 +2405,17 @@ const elementNodeData = defineRecipe({
2479
2405
  conditions: ["*"]
2480
2406
  }]
2481
2407
  });
2482
-
2483
- //#endregion
2484
- //#region ../preset/src/recipes/elementShape.ts
2485
- const parts$1 = defineParts({
2408
+ const parts$2 = defineParts({
2486
2409
  root: { selector: "&" },
2487
2410
  outline: { selector: "& .likec4-shape-outline" },
2488
2411
  multipleHtml: { selector: "& .likec4-shape-multiple" },
2412
+ componentTopLeftRect: { selector: "& .top-left-rect" },
2489
2413
  multipleSvg: { selector: "&:is([data-likec4-shape-multiple=\"true\"])" }
2490
2414
  });
2491
2415
  const elementShapeRecipe = defineRecipe({
2492
2416
  description: "Recipe for Diagram node shape",
2493
2417
  className: "likec4-element-shape",
2494
- base: parts$1({
2418
+ base: parts$2({
2495
2419
  root: {
2496
2420
  top: "0",
2497
2421
  left: "0",
@@ -2508,6 +2432,7 @@ const elementShapeRecipe = defineRecipe({
2508
2432
  },
2509
2433
  outline: {
2510
2434
  opacity: .8,
2435
+ transitionBehavior: "allow-discrete",
2511
2436
  visibility: {
2512
2437
  base: "hidden",
2513
2438
  _smallZoom: "hidden",
@@ -2527,11 +2452,11 @@ const elementShapeRecipe = defineRecipe({
2527
2452
  }),
2528
2453
  variants: {
2529
2454
  shapetype: {
2530
- html: parts$1({
2455
+ html: parts$2({
2531
2456
  root: {
2532
2457
  backgroundColor: "var(--likec4-palette-fill)",
2533
2458
  border: "none",
2534
- borderRadius: "[6px]",
2459
+ borderRadius: "6px",
2535
2460
  boxShadow: {
2536
2461
  base: [
2537
2462
  "0 2px 1px 0 rgb(0 0 0 / 21%)",
@@ -2547,9 +2472,10 @@ const elementShapeRecipe = defineRecipe({
2547
2472
  _whenPanning: "none"
2548
2473
  },
2549
2474
  transition: {
2550
- base: "background-color 120ms linear, box-shadow 130ms {easings.inOut}",
2475
+ base: "background-color 150ms, box-shadow 130ms",
2551
2476
  _reduceGraphicsOnPan: "none"
2552
2477
  },
2478
+ transitionTimingFunction: "out",
2553
2479
  transitionDelay: "0ms"
2554
2480
  },
2555
2481
  multipleHtml: {
@@ -2587,11 +2513,15 @@ const elementShapeRecipe = defineRecipe({
2587
2513
  animationStyle: "indicator"
2588
2514
  }
2589
2515
  }),
2590
- svg: parts$1({
2516
+ svg: parts$2({
2591
2517
  root: {
2592
2518
  fill: "var(--likec4-palette-fill)",
2593
2519
  stroke: "var(--likec4-palette-stroke)",
2594
- transition: `fill 120ms linear, filter 130ms {easings.inOut}`,
2520
+ transition: `fill 120ms {easings.in}, filter 130ms {easings.in}`,
2521
+ transitionTimingFunction: {
2522
+ base: "out",
2523
+ _whenHovered: "in"
2524
+ },
2595
2525
  transitionDelay: "0ms",
2596
2526
  filter: {
2597
2527
  base: [
@@ -2612,7 +2542,24 @@ const elementShapeRecipe = defineRecipe({
2612
2542
  },
2613
2543
  "& [data-likec4-fill=\"fill\"]": { fill: "var(--likec4-palette-fill)" },
2614
2544
  "& [data-likec4-fill=\"stroke\"]": { fill: "var(--likec4-palette-stroke)" },
2615
- "& [data-likec4-fill=\"mix-stroke\"]": { fill: "[color-mix(in oklab, var(--likec4-palette-stroke) 80%, var(--likec4-palette-fill))]" }
2545
+ "& [data-likec4-fill=\"mix-stroke\"]": { fill: "color-mix(in oklab, var(--likec4-palette-stroke) 80%, var(--likec4-palette-fill))" }
2546
+ },
2547
+ componentTopLeftRect: {
2548
+ "--mix-bg": "40%",
2549
+ fill: "color-mix(in oklab, var(--likec4-palette-stroke) var(--mix-bg), var(--likec4-palette-fill))",
2550
+ transition: `all 120ms {easings.in}`,
2551
+ transitionDelay: "0ms",
2552
+ strokeOpacity: .8,
2553
+ _whenSelected: {
2554
+ transitionTimingFunction: "out",
2555
+ "--mix-bg": "60%",
2556
+ strokeOpacity: 1
2557
+ },
2558
+ _whenHovered: {
2559
+ transitionTimingFunction: "out",
2560
+ "--mix-bg": "60%",
2561
+ strokeOpacity: 1
2562
+ }
2616
2563
  },
2617
2564
  multipleSvg: {
2618
2565
  transformOrigin: {
@@ -2625,7 +2572,9 @@ const elementShapeRecipe = defineRecipe({
2625
2572
  base: "translate(14px, 14px) perspective(200px) translateZ(-4px)",
2626
2573
  _whenHovered: "translate(2px, 2px) perspective(200px) translateZ(-4px)"
2627
2574
  },
2628
- transition: "fast",
2575
+ transitionBehavior: "allow-discrete",
2576
+ transitionProperty: "fill, filter, transform",
2577
+ transitionDuration: "faster",
2629
2578
  filter: "brightness(0.5) !important",
2630
2579
  stroke: "none",
2631
2580
  display: {
@@ -2647,13 +2596,20 @@ const elementShapeRecipe = defineRecipe({
2647
2596
  withBorder: {
2648
2597
  true: {},
2649
2598
  false: {}
2599
+ },
2600
+ withOutline: {
2601
+ true: parts$2({ outline: { display: "block" } }),
2602
+ false: parts$2({ outline: { display: "none" } })
2650
2603
  }
2651
2604
  },
2652
- defaultVariants: { withBorder: false },
2605
+ defaultVariants: {
2606
+ withBorder: false,
2607
+ withOutline: false
2608
+ },
2653
2609
  compoundVariants: [{
2654
2610
  shapetype: "html",
2655
2611
  withBorder: true,
2656
- css: parts$1({
2612
+ css: parts$2({
2657
2613
  root: {
2658
2614
  borderStyle: "solid",
2659
2615
  borderWidth: "3px",
@@ -2665,12 +2621,10 @@ const elementShapeRecipe = defineRecipe({
2665
2621
  }],
2666
2622
  staticCss: [{
2667
2623
  shapetype: ["*"],
2624
+ withOutline: ["*"],
2668
2625
  withBorder: ["*"]
2669
2626
  }]
2670
2627
  });
2671
-
2672
- //#endregion
2673
- //#region ../preset/src/recipes/likec4tag.ts
2674
2628
  const likec4tag = defineRecipe({
2675
2629
  className: "likec4-tag",
2676
2630
  base: {
@@ -2713,9 +2667,6 @@ const likec4tag = defineRecipe({
2713
2667
  conditions: ["hover"]
2714
2668
  }]
2715
2669
  });
2716
-
2717
- //#endregion
2718
- //#region ../preset/src/recipes/markdownBlock.ts
2719
2670
  const markdownBlock = defineRecipe({
2720
2671
  className: "likec4-markdown-block",
2721
2672
  jsx: ["MarkdownBlock", "Markdown"],
@@ -2804,7 +2755,7 @@ const markdownBlock = defineRecipe({
2804
2755
  marginTop: "0",
2805
2756
  marginBottom: "var(--typography-spacing)"
2806
2757
  },
2807
- "& :where(strong)": { fontWeight: "500" },
2758
+ "& :where(strong)": { fontWeight: "550" },
2808
2759
  "& :where(mark)": {
2809
2760
  fontSize: "var(--text-fz-md)",
2810
2761
  backgroundColor: mantine.colors.yellow[2],
@@ -2818,7 +2769,7 @@ const markdownBlock = defineRecipe({
2818
2769
  fontSize: "var(--text-fz-md)",
2819
2770
  color: mantine.colors.anchor,
2820
2771
  textDecoration: "none",
2821
- fontWeight: "500",
2772
+ fontWeight: "450",
2822
2773
  _hover: { textDecoration: "underline" }
2823
2774
  },
2824
2775
  "& :where(hr)": {
@@ -2880,7 +2831,7 @@ const markdownBlock = defineRecipe({
2880
2831
  },
2881
2832
  "& :where(th)": {
2882
2833
  textAlign: "left",
2883
- fontWeight: "bold",
2834
+ fontWeight: "550",
2884
2835
  fontSize: "var(--text-fz-sm)",
2885
2836
  padding: "var(--typography-spacing)"
2886
2837
  },
@@ -2922,7 +2873,7 @@ const markdownBlock = defineRecipe({
2922
2873
  alignItems: "center",
2923
2874
  display: "flex",
2924
2875
  fontSize: "var(--text-fz-md)",
2925
- fontWeight: "500",
2876
+ fontWeight: "550",
2926
2877
  lineHeight: "1.5",
2927
2878
  marginBottom: "0.1em",
2928
2879
  gap: "2"
@@ -2956,12 +2907,12 @@ const markdownBlock = defineRecipe({
2956
2907
  _print: "normal!"
2957
2908
  }
2958
2909
  },
2959
- "& :where(strong)": { color: `color-mix(in oklab , var(--likec4-palette-hiContrast) 50%, var(--likec4-palette-loContrast))` },
2910
+ "& :where(strong)": { color: `color-mix(in oklab, ${__v("palette.hiContrast")} 50%, ${__v("palette.loContrast")})` },
2960
2911
  "& :where(blockquote)": {
2961
2912
  padding: "xxs",
2962
- backgroundColor: "var(--likec4-palette-stroke)/65"
2913
+ backgroundColor: alpha(__v("palette.stroke"), 65)
2963
2914
  },
2964
- "& :where(hr)": { borderColor: "var(--likec4-palette-stroke)/85" }
2915
+ "& :where(hr)": { borderColor: alpha(__v("palette.stroke"), 85) }
2965
2916
  },
2966
2917
  false: {}
2967
2918
  },
@@ -2980,9 +2931,6 @@ const markdownBlock = defineRecipe({
2980
2931
  conditions: ["*"]
2981
2932
  }]
2982
2933
  });
2983
-
2984
- //#endregion
2985
- //#region ../preset/src/recipes/navigationPanelActionIcon.ts
2986
2934
  const navigationPanelActionIcon = defineRecipe({
2987
2935
  className: "likec4-navigation-panel-icon",
2988
2936
  jsx: ["PanelActionIcon"],
@@ -3031,23 +2979,93 @@ const navigationPanelActionIcon = defineRecipe({
3031
2979
  conditions: ["*"]
3032
2980
  }]
3033
2981
  });
3034
-
3035
- //#endregion
3036
- //#region ../preset/src/recipes/overlay.ts
2982
+ const parts$1 = defineParts({
2983
+ root: { selector: "&" },
2984
+ paper: { selector: "& .__paper" },
2985
+ popover: { selector: "& .__popover" }
2986
+ });
2987
+ const nodeNotes = defineRecipe({
2988
+ className: "likec4-node-notes",
2989
+ jsx: ["NodeNotesr"],
2990
+ base: parts$1({
2991
+ root: {
2992
+ position: "absolute",
2993
+ top: "-20px",
2994
+ left: "10px",
2995
+ width: "120px",
2996
+ height: "60px",
2997
+ pointerEvents: "all",
2998
+ userSelect: "none",
2999
+ appearance: "none",
3000
+ touchAction: "manipulation",
3001
+ overflow: "visible",
3002
+ "--paper-bg": `color-mix(in oklab, ${__v("palette.fill")} 10%, #DDD)`
3003
+ },
3004
+ paper: {
3005
+ pointerEvents: "all",
3006
+ position: "absolute",
3007
+ top: "14px",
3008
+ left: "10px",
3009
+ width: "90px",
3010
+ height: "120px",
3011
+ boxShadow: ["inset 0 0 20px rgba(0, 0, 0, 0.25)", "0px 0px 3px 0px rgba(0, 0, 0, 0.35)"].join(", "),
3012
+ backgroundColor: "oklch(from var(--paper-bg) calc(l - 0.1) c h)",
3013
+ zIndex: -1,
3014
+ transform: "rotateZ(-3deg)",
3015
+ transformOrigin: "55% 90% 0",
3016
+ overflow: "visible",
3017
+ transition: "faster",
3018
+ transitionDelay: "20ms",
3019
+ _before: {
3020
+ position: "absolute",
3021
+ zIndex: -1,
3022
+ content: "\" \"",
3023
+ width: "100%",
3024
+ height: "100%",
3025
+ transform: "rotateZ(6deg) translate(-2px, 0px)",
3026
+ transformOrigin: "45% 90% 0",
3027
+ boxShadow: ["inset 0 0 20px rgba(0, 0, 0, 0.25)", "0px 0px 3px 0px rgba(0, 0, 0, 0.35)"].join(", "),
3028
+ backgroundColor: "var(--paper-bg)"
3029
+ },
3030
+ _whenHovered: {
3031
+ transform: "rotateZ(-4deg) scale(1.06)",
3032
+ _before: { transform: "translate(-1px, -2px) rotateZ(6deg) scale(1.02)" }
3033
+ }
3034
+ },
3035
+ popover: {
3036
+ position: "absolute",
3037
+ w: "auto",
3038
+ h: "auto",
3039
+ zIndex: 300,
3040
+ top: "0",
3041
+ left: "0",
3042
+ display: "block",
3043
+ pointerEvents: "all",
3044
+ rounded: "sm",
3045
+ backgroundColor: "likec4.overlay.body",
3046
+ padding: "sm"
3047
+ }
3048
+ }),
3049
+ variants: { opened: {
3050
+ false: parts$1({}),
3051
+ true: parts$1({})
3052
+ } },
3053
+ defaultVariants: { opened: false },
3054
+ staticCss: [{ opened: ["*"] }]
3055
+ });
3037
3056
  const backdropBlur = "--_blur";
3038
3057
  const backdropOpacity = "--_opacity";
3039
3058
  const level = "--_level";
3040
3059
  const offset = "--_offset";
3041
3060
  const inset = "--_inset";
3042
3061
  const borderRadius = "--_border-radius";
3043
- const parts = defineParts({
3044
- dialog: { selector: "&" },
3045
- body: { selector: "& .likec4-overlay-body" }
3046
- });
3047
3062
  const overlay = defineRecipe({
3048
3063
  description: "Recipe for Overlay Dialog",
3049
3064
  className: "likec4-overlay",
3050
- base: parts({
3065
+ base: defineParts({
3066
+ dialog: { selector: "&" },
3067
+ body: { selector: "& .likec4-overlay-body" }
3068
+ })({
3051
3069
  dialog: {
3052
3070
  boxSizing: "border-box",
3053
3071
  margin: "0",
@@ -3122,9 +3140,6 @@ const overlay = defineRecipe({
3122
3140
  withBackdrop: ["*"]
3123
3141
  }]
3124
3142
  });
3125
-
3126
- //#endregion
3127
- //#region ../preset/src/recipes/index.ts
3128
3143
  var recipes_exports = /* @__PURE__ */ __exportAll({
3129
3144
  actionBtn: () => actionBtn,
3130
3145
  actionButtons: () => actionButtons,
@@ -3138,11 +3153,9 @@ var recipes_exports = /* @__PURE__ */ __exportAll({
3138
3153
  likec4tag: () => likec4tag,
3139
3154
  markdownBlock: () => markdownBlock,
3140
3155
  navigationPanelActionIcon: () => navigationPanelActionIcon,
3156
+ nodeNotes: () => nodeNotes,
3141
3157
  overlay: () => overlay
3142
3158
  });
3143
-
3144
- //#endregion
3145
- //#region ../preset/src/stot-recipes/navigationLink.ts
3146
3159
  const navigationLink = defineSlotRecipe({
3147
3160
  className: "likec4-navlink",
3148
3161
  description: "Navigation Link (classes for Mantine NavLink)",
@@ -3160,8 +3173,8 @@ const navigationLink = defineSlotRecipe({
3160
3173
  px: "xs",
3161
3174
  py: "xxs",
3162
3175
  backgroundColor: { _hover: { "&:not([data-active])": {
3163
- base: "mantine.colors.gray[1]",
3164
- _dark: "mantine.colors.dark[5]"
3176
+ base: mantine.colors.gray[1],
3177
+ _dark: mantine.colors.dark[5]
3165
3178
  } } }
3166
3179
  },
3167
3180
  body: {
@@ -3201,9 +3214,6 @@ const navigationLink = defineSlotRecipe({
3201
3214
  conditions: ["*"]
3202
3215
  }]
3203
3216
  });
3204
-
3205
- //#endregion
3206
- //#region ../preset/src/stot-recipes/navigationPanel.ts
3207
3217
  const navigationPanel = defineSlotRecipe({
3208
3218
  className: "likec4-navigation-panel",
3209
3219
  jsx: ["NavigationPanel", /NavigationPanel/],
@@ -3225,16 +3235,22 @@ const navigationPanel = defineSlotRecipe({
3225
3235
  margin: "0",
3226
3236
  width: "100%",
3227
3237
  gap: "xxs",
3238
+ height: "auto",
3239
+ overflow: "hidden",
3240
+ maxHeight: ["calc(100vh)", "calc(100cqh)"],
3228
3241
  maxWidth: ["calc(100vw)", "calc(100cqw)"],
3229
3242
  "@/sm": {
3230
3243
  margin: "xs",
3231
3244
  gap: "xs",
3232
3245
  width: "max-content",
3233
- maxWidth: ["calc(100vw - 2 * {spacing.xs})", "calc(100cqw - 2 * {spacing.xs})"]
3246
+ maxWidth: ["calc(100vw - 2 * {spacing.xs})", "calc(100cqw - 2 * {spacing.xs})"],
3247
+ maxHeight: ["calc(100vh - 2 * {spacing.xs})", "calc(100cqh - 2 * {spacing.xs})"]
3234
3248
  },
3235
3249
  "@/md": {
3236
3250
  margin: "sm",
3237
- maxWidth: ["calc(100vw - 2 * {spacing.md})", "calc(100cqw - 2 * {spacing.md})"]
3251
+ width: "max-content",
3252
+ maxWidth: ["calc(100vw - 2 * {spacing.md})", "calc(100cqw - 2 * {spacing.md})"],
3253
+ maxHeight: ["calc(100vh - 2 * {spacing.md})", "calc(100cqh - 2 * {spacing.md})"]
3238
3254
  },
3239
3255
  _print: { display: "none" }
3240
3256
  },
@@ -3247,6 +3263,7 @@ const navigationPanel = defineSlotRecipe({
3247
3263
  gap: "xs",
3248
3264
  pointerEvents: "all",
3249
3265
  width: "100%",
3266
+ "@/sm": { width: "auto" },
3250
3267
  minHeight: "40px",
3251
3268
  cursor: "default"
3252
3269
  },
@@ -3260,7 +3277,7 @@ const navigationPanel = defineSlotRecipe({
3260
3277
  cursor: "pointer",
3261
3278
  width: {
3262
3279
  base: "20px",
3263
- "@/md": "64px"
3280
+ "@/sm": "64px"
3264
3281
  },
3265
3282
  ["& > [data-logo-icon]"]: { display: {
3266
3283
  base: "block",
@@ -3279,6 +3296,12 @@ const navigationPanel = defineSlotRecipe({
3279
3296
  color: "likec4.panel.text"
3280
3297
  },
3281
3298
  dropdown: {
3299
+ display: "flex",
3300
+ height: "auto",
3301
+ width: "auto",
3302
+ flex: "1",
3303
+ flexGrow: 0,
3304
+ overflow: "hidden",
3282
3305
  layerStyle: "likec4.dropdown",
3283
3306
  pointerEvents: "all"
3284
3307
  }
@@ -3316,18 +3339,23 @@ const navigationPanel = defineSlotRecipe({
3316
3339
  panelPosition: ["*"]
3317
3340
  }]
3318
3341
  });
3319
-
3320
- //#endregion
3321
- //#region ../preset/src/stot-recipes/index.ts
3322
3342
  var stot_recipes_exports = /* @__PURE__ */ __exportAll({
3323
3343
  navigationLink: () => navigationLink,
3324
3344
  navigationPanel: () => navigationPanel
3325
3345
  });
3326
-
3327
- //#endregion
3328
- //#region ../preset/src/text-styles.ts
3329
- const textStyles = defineTextStyles({
3346
+ function defineTextStyles$1(definition) {
3347
+ return defineTextStyles(definition);
3348
+ }
3349
+ const textStyles = defineTextStyles$1({
3330
3350
  dimmed: {
3351
+ DEFAULT: {
3352
+ description: "Text style for dimmed content",
3353
+ value: {
3354
+ fontSize: "md",
3355
+ lineHeight: "md",
3356
+ color: "text.dimmed"
3357
+ }
3358
+ },
3331
3359
  xxs: { value: {
3332
3360
  fontSize: "xxs",
3333
3361
  lineHeight: "xxs",
@@ -3373,228 +3401,282 @@ const textStyles = defineTextStyles({
3373
3401
  fontSize: "xl",
3374
3402
  lineHeight: "xl"
3375
3403
  } },
3376
- likec4: { panel: {
3404
+ likec4: {
3377
3405
  DEFAULT: {
3378
3406
  description: "Text style for panel content",
3379
3407
  value: {
3380
- fontSize: "sm",
3381
- lineHeight: "sm",
3382
- fontWeight: "medium",
3383
- color: "likec4.panel.text"
3408
+ fontSize: "md",
3409
+ lineHeight: "md",
3410
+ fontWeight: "normal",
3411
+ color: "text"
3384
3412
  }
3385
3413
  },
3386
- action: {
3387
- description: "Text style for panel action items",
3388
- value: {
3389
- fontSize: "sm",
3390
- lineHeight: "sm",
3391
- fontWeight: "medium",
3392
- color: {
3393
- base: "likec4.panel.action",
3394
- _hover: "likec4.panel.action.hover"
3414
+ panel: {
3415
+ DEFAULT: {
3416
+ description: "Text style for panel content",
3417
+ value: {
3418
+ fontSize: "sm",
3419
+ lineHeight: "sm",
3420
+ fontWeight: "medium",
3421
+ color: "likec4.panel.text"
3422
+ }
3423
+ },
3424
+ action: {
3425
+ description: "Text style for panel action items",
3426
+ value: {
3427
+ fontSize: "sm",
3428
+ lineHeight: "sm",
3429
+ fontWeight: "medium",
3430
+ color: {
3431
+ base: "likec4.panel.action",
3432
+ _hover: "likec4.panel.action.hover"
3433
+ }
3395
3434
  }
3396
3435
  }
3397
3436
  }
3398
- } }
3437
+ }
3399
3438
  });
3400
-
3401
- //#endregion
3402
- //#region ../preset/src/tokens-semantic.colors.ts
3403
- const colors$1 = defineSemanticTokens.colors({ likec4: {
3404
- background: {
3439
+ const semanticTokens = defineSemanticTokens({ colors: defineSemanticTokens.colors({
3440
+ white: { value: "#fff" },
3441
+ black: { value: "#000" },
3442
+ body: {
3443
+ description: "Background color",
3444
+ value: mantine.colors.body
3445
+ },
3446
+ text: {
3405
3447
  DEFAULT: {
3406
- description: "Background color",
3407
- value: mantine.colors.body
3448
+ description: "Default text color",
3449
+ value: mantine.colors.text
3408
3450
  },
3409
- pattern: {
3410
- description: "Background pattern color",
3411
- value: {
3412
- base: mantine.colors.gray[4],
3413
- _dark: alpha(mantine.colors.dark[4], 70)
3414
- }
3451
+ bright: {
3452
+ description: "Bright text color",
3453
+ value: "var(--mantine-color-bright)"
3454
+ },
3455
+ dimmed: {
3456
+ description: "Dimmed text color",
3457
+ value: alpha(mantine.colors.text, 60)
3458
+ },
3459
+ placeholder: {
3460
+ description: "Placeholder text color",
3461
+ value: mantine.colors.placeholder
3415
3462
  }
3416
3463
  },
3417
- mixColor: {
3418
- description: "Color to be used in color-mix",
3419
- value: {
3420
- base: "#000",
3421
- _dark: "#fff"
3464
+ default: {
3465
+ DEFAULT: {
3466
+ description: "Default color",
3467
+ value: mantine.colors.default
3468
+ },
3469
+ color: {
3470
+ description: "Default text color",
3471
+ value: mantine.colors.defaultColor
3472
+ },
3473
+ border: {
3474
+ description: "Default border color",
3475
+ value: mantine.colors.defaultBorder
3476
+ },
3477
+ hover: {
3478
+ description: "Default hover color",
3479
+ value: mantine.colors.defaultHover
3422
3480
  }
3423
3481
  },
3424
- tag: {
3425
- bg: {
3426
- DEFAULT: { value: `{colors.tomato.9}` },
3427
- hover: { value: `{colors.tomato.10}` }
3482
+ disabled: {
3483
+ text: {
3484
+ description: "Disabled text color",
3485
+ value: mantine.colors.disabledText
3428
3486
  },
3429
- border: { value: `{colors.tomato.8}` },
3430
- text: { value: `{colors.tomato.12}` }
3431
- },
3432
- panel: {
3433
- bg: { DEFAULT: {
3434
- description: "LikeC4 panel background color",
3435
- value: {
3436
- base: mantine.colors.body,
3437
- _dark: mantine.colors.dark[6]
3438
- }
3439
- } },
3440
3487
  border: {
3441
- description: "LikeC4 panel border color",
3442
- value: {
3443
- base: "transparent",
3444
- _light: mantine.colors.gray[2]
3445
- }
3488
+ description: "Disabled border color",
3489
+ value: mantine.colors.disabledBorder
3446
3490
  },
3447
- text: {
3491
+ body: {
3492
+ description: "Disabled body color",
3493
+ value: mantine.colors.disabledBody
3494
+ }
3495
+ },
3496
+ likec4: {
3497
+ background: {
3448
3498
  DEFAULT: {
3449
- description: "LikeC4 panel text color",
3450
- value: alpha(mantine.colors.text, 85)
3499
+ description: "Background color",
3500
+ value: mantine.colors.body
3451
3501
  },
3452
- dimmed: {
3453
- description: "LikeC4 panel dimmed text color",
3454
- value: "{colors.text.dimmed}"
3502
+ pattern: {
3503
+ description: "Background pattern color",
3504
+ value: {
3505
+ base: mantine.colors.gray[4],
3506
+ _dark: alpha(mantine.colors.dark[4], 70)
3507
+ }
3455
3508
  }
3456
3509
  },
3457
- action: {
3458
- DEFAULT: {
3459
- description: "LikeC4 panel action text color (Links/Icons)",
3460
- value: alpha(mantine.colors.text, 90)
3461
- },
3462
- disabled: {
3463
- description: "LikeC4 action icon text color when disabled",
3464
- value: "{colors.text.dimmed}"
3510
+ mixColor: {
3511
+ description: "Color to be used in color-mix",
3512
+ value: {
3513
+ base: "#000",
3514
+ _dark: "#fff"
3515
+ }
3516
+ },
3517
+ tag: {
3518
+ bg: {
3519
+ DEFAULT: { value: `{colors.tomato.9}` },
3520
+ hover: { value: `{colors.tomato.10}` }
3465
3521
  },
3466
- hover: {
3467
- description: "LikeC4 panel action text color on hover",
3468
- value: "var(--mantine-color-bright)"
3522
+ border: { value: `{colors.tomato.8}` },
3523
+ text: { value: `{colors.tomato.12}` }
3524
+ },
3525
+ panel: {
3526
+ bg: { DEFAULT: {
3527
+ description: "LikeC4 panel background color",
3528
+ value: {
3529
+ base: mantine.colors.body,
3530
+ _dark: mantine.colors.dark[6]
3531
+ }
3532
+ } },
3533
+ border: {
3534
+ description: "LikeC4 panel border color",
3535
+ value: {
3536
+ base: "transparent",
3537
+ _light: mantine.colors.gray[2]
3538
+ }
3469
3539
  },
3470
- bg: {
3540
+ text: {
3471
3541
  DEFAULT: {
3472
- description: "LikeC4 action icon background color",
3473
- value: {
3474
- base: mantine.colors.gray[1],
3475
- _dark: alpha(mantine.colors.dark[7], 70)
3476
- }
3542
+ description: "LikeC4 panel text color",
3543
+ value: alpha(mantine.colors.text, 85)
3477
3544
  },
3478
- hover: {
3479
- description: "LikeC4 action icon background color on hover",
3480
- value: {
3481
- base: mantine.colors.gray[2],
3482
- _dark: mantine.colors.dark[8]
3483
- }
3545
+ dimmed: {
3546
+ description: "LikeC4 panel dimmed text color",
3547
+ value: "{colors.text.dimmed}"
3484
3548
  }
3485
3549
  },
3486
- warning: {
3550
+ action: {
3487
3551
  DEFAULT: {
3488
- description: "LikeC4 action icon text color",
3489
- value: mantine.colors.orange[6]
3552
+ description: "LikeC4 panel action text color (Links/Icons)",
3553
+ value: alpha(mantine.colors.text, 90)
3554
+ },
3555
+ disabled: {
3556
+ description: "LikeC4 action icon text color when disabled",
3557
+ value: "{colors.text.dimmed}"
3490
3558
  },
3491
3559
  hover: {
3492
- description: "LikeC4 action icon text color on hover",
3493
- value: {
3494
- base: mantine.colors.orange[7],
3495
- _dark: mantine.colors.orange[5]
3496
- }
3560
+ description: "LikeC4 panel action text color on hover",
3561
+ value: "var(--mantine-color-bright)"
3497
3562
  },
3498
3563
  bg: {
3499
3564
  DEFAULT: {
3500
3565
  description: "LikeC4 action icon background color",
3501
3566
  value: {
3502
- base: alpha(mantine.colors.orange[1], 90),
3503
- _dark: alpha(mantine.colors.orange[9], 10)
3567
+ base: mantine.colors.gray[1],
3568
+ _dark: alpha(mantine.colors.dark[7], 70)
3504
3569
  }
3505
3570
  },
3506
3571
  hover: {
3507
3572
  description: "LikeC4 action icon background color on hover",
3508
3573
  value: {
3509
- base: alpha(mantine.colors.orange[3], 70),
3510
- _dark: alpha(mantine.colors.orange[9], 20)
3574
+ base: mantine.colors.gray[2],
3575
+ _dark: mantine.colors.dark[8]
3576
+ }
3577
+ }
3578
+ },
3579
+ warning: {
3580
+ DEFAULT: {
3581
+ description: "LikeC4 action icon text color",
3582
+ value: mantine.colors.orange[6]
3583
+ },
3584
+ hover: {
3585
+ description: "LikeC4 action icon text color on hover",
3586
+ value: {
3587
+ base: mantine.colors.orange[7],
3588
+ _dark: mantine.colors.orange[5]
3589
+ }
3590
+ },
3591
+ bg: {
3592
+ DEFAULT: {
3593
+ description: "LikeC4 action icon background color",
3594
+ value: {
3595
+ base: alpha(mantine.colors.orange[1], 90),
3596
+ _dark: alpha(mantine.colors.orange[9], 10)
3597
+ }
3598
+ },
3599
+ hover: {
3600
+ description: "LikeC4 action icon background color on hover",
3601
+ value: {
3602
+ base: alpha(mantine.colors.orange[3], 70),
3603
+ _dark: alpha(mantine.colors.orange[9], 20)
3604
+ }
3511
3605
  }
3512
3606
  }
3513
3607
  }
3514
3608
  }
3515
- }
3516
- },
3517
- dropdown: {
3518
- bg: { DEFAULT: {
3519
- description: "LikeC4 dropdown background color",
3520
- value: {
3521
- base: `#FFF`,
3522
- _dark: mantine.colors.dark[6]
3609
+ },
3610
+ dropdown: {
3611
+ bg: { DEFAULT: {
3612
+ description: "LikeC4 dropdown background color",
3613
+ value: {
3614
+ base: `#FFF`,
3615
+ _dark: mantine.colors.dark[6]
3616
+ }
3617
+ } },
3618
+ border: {
3619
+ description: "LikeC4 dropdown border color",
3620
+ value: "{colors.likec4.panel.border}"
3523
3621
  }
3524
- } },
3525
- border: {
3526
- description: "LikeC4 dropdown border color",
3527
- value: "{colors.likec4.panel.border}"
3528
- }
3529
- },
3530
- overlay: {
3531
- backdrop: { DEFAULT: {
3532
- description: "LikeC4 overlay backdrop color",
3533
- value: {
3534
- base: `rgb(15 15 15)`,
3535
- _dark: `rgb(34 34 34)`
3622
+ },
3623
+ overlay: {
3624
+ backdrop: { DEFAULT: {
3625
+ description: "LikeC4 overlay backdrop color",
3626
+ value: {
3627
+ base: `rgb(15 15 15)`,
3628
+ _dark: `rgb(34 34 34)`
3629
+ }
3630
+ } },
3631
+ body: { DEFAULT: {
3632
+ description: "LikeC4 overlay body color",
3633
+ value: {
3634
+ base: mantine.colors.body,
3635
+ _dark: mantine.colors.dark[6]
3636
+ }
3637
+ } },
3638
+ border: {
3639
+ description: "LikeC4 overlay border color",
3640
+ value: alpha(mantine.colors.defaultBorder, 50)
3536
3641
  }
3537
- } },
3538
- body: { DEFAULT: {
3539
- description: "LikeC4 overlay body color",
3642
+ },
3643
+ walkthrough: { parallelFrame: {
3644
+ description: "LikeC4 walkthrough parallel frame color",
3540
3645
  value: {
3541
- base: mantine.colors.body,
3542
- _dark: mantine.colors.dark[6]
3646
+ _light: mantine.colors.orange[8],
3647
+ _dark: mantine.colors.orange[6]
3543
3648
  }
3544
3649
  } },
3545
- border: {
3546
- description: "LikeC4 overlay border color",
3547
- value: alpha(mantine.colors.defaultBorder, 50)
3548
- }
3549
- },
3550
- compare: {
3551
- manual: {
3552
- DEFAULT: {
3553
- description: "LikeC4 Compare color for manual changes",
3554
- value: {
3555
- _light: mantine.colors.orange[8],
3556
- _dark: mantine.colors.orange[6]
3650
+ compare: {
3651
+ manual: {
3652
+ DEFAULT: {
3653
+ description: "LikeC4 Compare color for manual changes",
3654
+ value: {
3655
+ _light: mantine.colors.orange[8],
3656
+ _dark: mantine.colors.orange[6]
3657
+ }
3658
+ },
3659
+ outline: {
3660
+ description: "LikeC4 Compare color for outline around nodes with manual changes",
3661
+ value: {
3662
+ _light: mantine.colors.orange[8],
3663
+ _dark: alpha(mantine.colors.orange[6], 80)
3664
+ }
3557
3665
  }
3558
3666
  },
3559
- outline: {
3560
- description: "LikeC4 Compare color for outline around nodes with manual changes",
3561
- value: {
3562
- _light: mantine.colors.orange[8],
3563
- _dark: alpha(mantine.colors.orange[6], 80)
3564
- }
3667
+ latest: {
3668
+ description: "LikeC4 Compare color for latest changes",
3669
+ value: mantine.colors.green[6]
3565
3670
  }
3566
- },
3567
- latest: {
3568
- description: "LikeC4 Compare color for latest changes",
3569
- value: mantine.colors.green[6]
3570
3671
  }
3571
3672
  }
3572
- } });
3573
-
3574
- //#endregion
3575
- //#region ../preset/src/tokens-semantic.ts
3576
- const semanticTokens = defineSemanticTokens({ colors: colors$1 });
3577
-
3578
- //#endregion
3579
- //#region ../preset/src/tokens.colors.ts
3673
+ }) });
3580
3674
  const colors = defineTokens.colors({
3581
3675
  mantine: tokens$1.colors.mantine,
3582
3676
  transparent: { value: "transparent" },
3583
3677
  none: { value: "none" },
3584
- text: {
3585
- DEFAULT: {
3586
- description: "Default text color",
3587
- value: mantine.colors.text
3588
- },
3589
- dimmed: {
3590
- description: "Dimmed text color",
3591
- value: mantine.colors.dimmed
3592
- }
3593
- }
3678
+ inherit: { value: "inherit" }
3594
3679
  });
3595
-
3596
- //#endregion
3597
- //#region ../preset/src/tokens.ts
3598
3680
  const tokens = defineTokens({
3599
3681
  fontSizes: {
3600
3682
  "xxs": { value: "10px" },
@@ -3624,7 +3706,14 @@ const tokens = defineTokens({
3624
3706
  borders: {
3625
3707
  none: { value: "none" },
3626
3708
  transparent: { value: "0px solid transparent" },
3627
- default: { value: `1px solid ${mantine.colors.defaultBorder}` }
3709
+ default: { value: `1px solid {colors.default.border}` }
3710
+ },
3711
+ borderWidths: {
3712
+ "0": { value: "0px" },
3713
+ "1": { value: "1px" },
3714
+ "2": { value: "2px" },
3715
+ "3": { value: "3px" },
3716
+ "4": { value: "4px" }
3628
3717
  },
3629
3718
  spacing: {
3630
3719
  "0": {
@@ -3782,7 +3871,11 @@ const tokens = defineTokens({
3782
3871
  "1": { value: "1" },
3783
3872
  likec4: {
3784
3873
  diagram: {
3785
- edge: { value: "20" },
3874
+ edge: {
3875
+ DEFAULT: { value: "20" },
3876
+ label: { value: "25" },
3877
+ controlPoint: { value: "30" }
3878
+ },
3786
3879
  node: {
3787
3880
  compound: { value: "10" },
3788
3881
  element: { value: "40" }
@@ -3796,9 +3889,6 @@ const tokens = defineTokens({
3796
3889
  }
3797
3890
  }
3798
3891
  });
3799
-
3800
- //#endregion
3801
- //#region ../preset/src/utilities.ts
3802
3892
  const durationValues = [
3803
3893
  "fastest",
3804
3894
  "faster",
@@ -3809,18 +3899,18 @@ const durationValues = [
3809
3899
  "slowest",
3810
3900
  "none"
3811
3901
  ];
3812
- const utilities = { extend: { transition: {
3902
+ const utilities = { extend: { transition: defineUtility({
3813
3903
  values: durationValues,
3814
3904
  className: "transition",
3815
3905
  transform(value, { token }) {
3816
3906
  if (value === "none") return { transition: "none" };
3817
3907
  if (!durationValues.includes(value)) return { transition: value };
3818
- return { transition: `all ${token.raw(`durations.${value}`).value} ${token.raw("easings.inOut").value}` };
3908
+ return {
3909
+ transitionDuration: token(`durations.${value}`),
3910
+ transitionTimingFunction: token("easings.inOut")
3911
+ };
3819
3912
  }
3820
- } } };
3821
-
3822
- //#endregion
3823
- //#region ../preset/src/index.ts
3913
+ }) } };
3824
3914
  const theme = {
3825
3915
  breakpoints,
3826
3916
  textStyles,
@@ -3850,6 +3940,4 @@ var src_default = /* @__PURE__ */ definePreset({
3850
3940
  utilities,
3851
3941
  theme: { extend: theme }
3852
3942
  });
3853
-
3854
- //#endregion
3855
- export { src_default as default, theme };
3943
+ export { src_default as default, theme };