@likec4/diagram 1.1.0 → 1.2.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.
- package/dist/KeepAspectRatioContainer.d.ts +1 -1
- package/dist/LikeC4Diagram.d.ts +1 -1
- package/dist/LikeC4Diagram.props.d.ts +22 -12
- package/dist/StaticLikeC4Diagram.d.ts +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.mjs +2209 -706
- package/dist/mantine/EnsureMantine.d.ts +1 -1
- package/dist/state/DiagramContext.d.ts +2143 -19
- package/dist/state/WhenInitialized.d.ts +1 -1
- package/dist/state/diagramStore.d.ts +2152 -19
- package/dist/state/useDiagramStore.d.ts +2142 -18
- package/dist/style.css +256 -118
- package/dist/theme.css.d.ts +1 -0
- package/dist/ui/DiagramTitlePanel.css.d.ts +4 -0
- package/dist/ui/DiagramTitlePanel.d.ts +1 -0
- package/dist/ui/DynamicViewWalkthrough.css.d.ts +3 -0
- package/dist/ui/DynamicViewWalkthrough.d.ts +1 -0
- package/dist/ui/OptionsPanel.d.ts +1 -3
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/options/NodeOptions.d.ts +1 -2
- package/dist/xyflow/FitviewOnDiagramChange.d.ts +4 -2
- package/dist/xyflow/SelectEdgesOnNodeFocus.d.ts +1 -0
- package/dist/xyflow/SyncWithDiagram.d.ts +1 -2
- package/dist/xyflow/XYFlow.d.ts +4 -7
- package/dist/xyflow/XYFlowBackground.d.ts +5 -4
- package/dist/xyflow/XYFlowEvents.d.ts +84 -84
- package/dist/xyflow/XYFlowInner.d.ts +11 -0
- package/dist/xyflow/diagram-to-xyflow.d.ts +1 -1
- package/dist/xyflow/edges/RelationshipEdge.d.ts +14 -14
- package/dist/xyflow/edges/edges.css.d.ts +5 -2
- package/dist/xyflow/edges/utils.d.ts +2 -0
- package/dist/xyflow/hooks/useXYFlow.d.ts +126 -126
- package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +1 -0
- package/dist/xyflow/nodes/element/ElementIcon.d.ts +1 -1
- package/dist/xyflow/nodes/element/ElementLink.d.ts +1 -1
- package/dist/xyflow/nodes/element/ElementNode.d.ts +1 -1
- package/dist/xyflow/nodes/element/ElementShapeSvg.d.ts +2 -2
- package/dist/xyflow/nodes/element/element.css.d.ts +2 -1
- package/dist/xyflow/nodes/shared/NavigateToBtn.d.ts +1 -2
- package/dist/xyflow/types.d.ts +18 -18
- package/package.json +21 -16
- package/src/KeepAspectRatioContainer.tsx +1 -1
- package/src/LikeC4Diagram.css.ts +4 -1
- package/src/LikeC4Diagram.props.ts +24 -14
- package/src/LikeC4Diagram.tsx +18 -9
- package/src/StaticLikeC4Diagram.tsx +2 -0
- package/src/globals.css.ts +7 -1
- package/src/index.ts +0 -3
- package/src/state/DiagramContext.tsx +21 -12
- package/src/state/diagramStore.ts +275 -98
- package/src/theme.css.ts +1 -0
- package/src/ui/DiagramTitlePanel.css.ts +33 -0
- package/src/ui/DiagramTitlePanel.tsx +138 -0
- package/src/ui/DynamicViewWalkthrough.css.ts +46 -0
- package/src/ui/DynamicViewWalkthrough.tsx +86 -0
- package/src/ui/OptionsPanel.tsx +7 -24
- package/src/ui/index.ts +1 -0
- package/src/ui/options/NodeOptions.tsx +103 -27
- package/src/xyflow/FitviewOnDiagramChange.tsx +89 -69
- package/src/xyflow/SelectEdgesOnNodeFocus.tsx +75 -0
- package/src/xyflow/SyncWithDiagram.tsx +55 -101
- package/src/xyflow/XYFlow.tsx +52 -32
- package/src/xyflow/XYFlowBackground.tsx +7 -5
- package/src/xyflow/XYFlowEvents.tsx +150 -104
- package/src/xyflow/XYFlowInner.tsx +50 -0
- package/src/xyflow/diagram-to-xyflow.ts +16 -21
- package/src/xyflow/edges/RelationshipEdge.tsx +102 -70
- package/src/xyflow/edges/edges.css.ts +128 -53
- package/src/xyflow/edges/utils.ts +31 -0
- package/src/xyflow/nodes/compound/CompoundNode.css.ts +20 -12
- package/src/xyflow/nodes/compound/CompoundNode.tsx +6 -3
- package/src/xyflow/nodes/element/ElementLink.tsx +13 -3
- package/src/xyflow/nodes/element/ElementNode.tsx +24 -19
- package/src/xyflow/nodes/element/element.css.ts +10 -2
- package/src/xyflow/nodes/shared/NavigateToBtn.tsx +1 -0
- package/src/xyflow/types.ts +7 -8
package/dist/style.css
CHANGED
|
@@ -597,10 +597,15 @@ svg.react-flow__connectionline {
|
|
|
597
597
|
.react-flow__edge-text {
|
|
598
598
|
fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
|
|
599
599
|
}
|
|
600
|
+
.likec4-diagram-root {
|
|
601
|
+
-webkit-font-smoothing: var(--mantine-webkit-font-smoothing);
|
|
602
|
+
-moz-osx-font-smoothing: var(--mantine-moz-font-smoothing);
|
|
603
|
+
}
|
|
600
604
|
.likec4-diagram-root {
|
|
601
605
|
--likec4-font-family: var(--likec4-default-font-family,'ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"');
|
|
602
606
|
--likec4-background-color: var(--mantine-color-body);
|
|
603
607
|
--likec4-background-pattern-color: var(--mantine-color-dimmed);
|
|
608
|
+
--likec4-filter-dimmed: brightness(.6) grayscale(.8) opacity(.5) blur(1px);
|
|
604
609
|
--likec4-compound-font-family: var(--likec4-font-family);
|
|
605
610
|
--likec4-compound-title-color: var(--likec4-element-loContrast);
|
|
606
611
|
--likec4-element-font-family: var(--likec4-font-family);
|
|
@@ -1253,6 +1258,8 @@ svg.react-flow__connectionline {
|
|
|
1253
1258
|
--likec4-element-fill: #34369f;
|
|
1254
1259
|
--likec4-element-stroke: #373287;
|
|
1255
1260
|
}._2h8g8h0 {
|
|
1261
|
+
overflow: hidden;
|
|
1262
|
+
position: relative;
|
|
1256
1263
|
width: 100%;
|
|
1257
1264
|
height: 100%;
|
|
1258
1265
|
padding: 0;
|
|
@@ -1262,7 +1269,7 @@ svg.react-flow__connectionline {
|
|
|
1262
1269
|
--xy-background-pattern-color: var(--likec4-background-pattern-color);
|
|
1263
1270
|
}
|
|
1264
1271
|
.react-flow._2h8g8h1 .react-flow__viewport {
|
|
1265
|
-
|
|
1272
|
+
backface-visibility: hidden;
|
|
1266
1273
|
}
|
|
1267
1274
|
.react-flow._2h8g8h1._2h8g8h3 {
|
|
1268
1275
|
--likec4-background-color: transparent !important;
|
|
@@ -1271,53 +1278,94 @@ svg.react-flow__connectionline {
|
|
|
1271
1278
|
}
|
|
1272
1279
|
:where(._2h8g8h4, ._2h8g8h3) .react-flow__attribution {
|
|
1273
1280
|
display: none;
|
|
1274
|
-
}
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1281
|
+
}@keyframes bexn7q6 {
|
|
1282
|
+
from {
|
|
1283
|
+
stroke-dashoffset: 36;
|
|
1284
|
+
}
|
|
1285
|
+
to {
|
|
1286
|
+
stroke-dashoffset: 1;
|
|
1287
|
+
}
|
|
1288
|
+
}
|
|
1289
|
+
.bexn7q1 {
|
|
1290
|
+
--bexn7q0: black;
|
|
1280
1291
|
--xy-edge-stroke: var(--likec4-relation-lineColor);
|
|
1281
|
-
--xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor),
|
|
1292
|
+
--xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor), var(--bexn7q0) 35%);
|
|
1282
1293
|
--xy-edge-label-color: color-mix(in srgb, var(--likec4-relation-labelColor), rgba(255 255 255 / 0.85) 20%);
|
|
1283
1294
|
--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 35%);
|
|
1284
|
-
--xy-edge-stroke-width: 2.
|
|
1295
|
+
--xy-edge-stroke-width: 2.2px;
|
|
1296
|
+
}
|
|
1297
|
+
svg:has(.bexn7q2) {
|
|
1298
|
+
filter: var(--likec4-filter-dimmed);
|
|
1299
|
+
transition: filter 800ms ease-out;
|
|
1285
1300
|
}
|
|
1286
|
-
[data-mantine-color-scheme="dark"] .
|
|
1301
|
+
:where([data-mantine-color-scheme="dark"]) .bexn7q1 {
|
|
1302
|
+
--bexn7q0: white;
|
|
1287
1303
|
--xy-edge-label-color: var(--likec4-relation-labelColor);
|
|
1288
1304
|
--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 55%);
|
|
1289
1305
|
}
|
|
1290
|
-
.
|
|
1291
|
-
--xy-edge-stroke:
|
|
1306
|
+
:where(.react-flow__edge.selected) .bexn7q1 {
|
|
1307
|
+
--xy-edge-stroke: var(--xy-edge-stroke-selected);
|
|
1292
1308
|
--xy-edge-stroke-width: 3px;
|
|
1293
1309
|
}
|
|
1294
|
-
.
|
|
1295
|
-
--xy-edge-stroke
|
|
1310
|
+
.bexn7q1:is([data-edge-hovered='true'],[data-edge-active='true']) {
|
|
1311
|
+
--xy-edge-stroke: var(--xy-edge-stroke-selected);
|
|
1312
|
+
--xy-edge-stroke-width: 3px;
|
|
1313
|
+
}
|
|
1314
|
+
:where(.react-flow__edge.selected) .bexn7q1[data-edge-hovered='true'] {
|
|
1315
|
+
--xy-edge-stroke-width: 3.6px;
|
|
1296
1316
|
}
|
|
1297
1317
|
.react-flow__edges > svg {
|
|
1298
1318
|
mix-blend-mode: screen;
|
|
1299
1319
|
}
|
|
1300
|
-
|
|
1301
|
-
|
|
1320
|
+
.bexn7q3 {
|
|
1321
|
+
stroke-width: var(--xy-edge-stroke-width);
|
|
1322
|
+
stroke-opacity: 0.08;
|
|
1323
|
+
transition-property: stroke-width, stroke-opacity;
|
|
1324
|
+
transition-duration: 155ms;
|
|
1325
|
+
transition-timing-function: ease-out;
|
|
1302
1326
|
}
|
|
1303
|
-
.
|
|
1304
|
-
stroke-width: calc(var(--xy-edge-stroke-width) +
|
|
1305
|
-
stroke-opacity: 0.
|
|
1327
|
+
:where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-hovered='true']) .bexn7q3 {
|
|
1328
|
+
stroke-width: calc(var(--xy-edge-stroke-width) + 8px);
|
|
1329
|
+
stroke-opacity: 0.15;
|
|
1306
1330
|
}
|
|
1307
|
-
.
|
|
1331
|
+
.bexn7q4 {
|
|
1308
1332
|
fill: var(--xy-edge-stroke);
|
|
1309
1333
|
stroke: var(--xy-edge-stroke);
|
|
1334
|
+
pointer-events: none;
|
|
1310
1335
|
}
|
|
1311
|
-
.
|
|
1312
|
-
|
|
1336
|
+
.bexn7q5 {
|
|
1337
|
+
fill: var(--xy-edge-stroke);
|
|
1338
|
+
stroke: var(--xy-edge-stroke);
|
|
1339
|
+
fill-opacity: 0.75;
|
|
1340
|
+
stroke-width: 1;
|
|
1341
|
+
cursor: grab;
|
|
1342
|
+
pointer-events: visible;
|
|
1313
1343
|
}
|
|
1314
|
-
.
|
|
1315
|
-
transition: all
|
|
1344
|
+
:where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-hovered='true']) .bexn7q5 {
|
|
1345
|
+
transition: all 150ms ease-out;
|
|
1346
|
+
fill-opacity: 1;
|
|
1347
|
+
stroke-width: 3;
|
|
1316
1348
|
}
|
|
1317
1349
|
.bexn7q7 {
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1350
|
+
animation-duration: 800ms;
|
|
1351
|
+
animation-iteration-count: infinite;
|
|
1352
|
+
animation-timing-function: linear;
|
|
1353
|
+
}
|
|
1354
|
+
:where([data-edge-hovered='true']) .bexn7q7 {
|
|
1355
|
+
animation-name: bexn7q6;
|
|
1356
|
+
animation-delay: 350ms;
|
|
1357
|
+
transition: all 130ms ease-out;
|
|
1358
|
+
}
|
|
1359
|
+
:where(.react-flow__edge.selected, [data-edge-active='true']) .bexn7q7 {
|
|
1360
|
+
animation-name: bexn7q6;
|
|
1361
|
+
animation-delay: 0ms;
|
|
1362
|
+
transition: all 130ms ease-out;
|
|
1363
|
+
}
|
|
1364
|
+
:where([data-edge-dir='back']) .bexn7q7 {
|
|
1365
|
+
animation-direction: reverse;
|
|
1366
|
+
}
|
|
1367
|
+
.bexn7qb {
|
|
1368
|
+
--bexn7qa: translate(var(--bexn7q8, 50%), var(--bexn7q9, 50%));
|
|
1321
1369
|
top: 0;
|
|
1322
1370
|
left: 0;
|
|
1323
1371
|
font-family: var(--likec4-font-family);
|
|
@@ -1325,25 +1373,46 @@ svg.react-flow__connectionline {
|
|
|
1325
1373
|
pointer-events: all;
|
|
1326
1374
|
cursor: pointer;
|
|
1327
1375
|
transform-origin: 50% 50%;
|
|
1328
|
-
text-align: left;
|
|
1329
1376
|
mix-blend-mode: screen;
|
|
1330
|
-
|
|
1331
|
-
width: max-content;
|
|
1377
|
+
color: var(--xy-edge-label-color);
|
|
1332
1378
|
background-color: var(--xy-edge-label-background-color);
|
|
1333
1379
|
border-radius: 3px;
|
|
1334
|
-
transform: var(--
|
|
1335
|
-
will-change: transform;
|
|
1380
|
+
transform: var(--bexn7qa);
|
|
1336
1381
|
}
|
|
1337
|
-
.
|
|
1382
|
+
.bexn7qb[data-edge-hovered="true"] {
|
|
1338
1383
|
transition: all 140ms ease-out;
|
|
1339
|
-
transform: var(--
|
|
1384
|
+
transform: var(--bexn7qa) scale(1.1);
|
|
1340
1385
|
}
|
|
1341
|
-
.
|
|
1342
|
-
|
|
1386
|
+
.bexn7qb:is(.bexn7q2) {
|
|
1387
|
+
transition: filter 800ms ease-out;
|
|
1388
|
+
filter: var(--likec4-filter-dimmed);
|
|
1389
|
+
}
|
|
1390
|
+
.bexn7qc {
|
|
1391
|
+
position: absolute;
|
|
1392
|
+
top: -2px;
|
|
1393
|
+
left: -2px;
|
|
1394
|
+
font-weight: 500;
|
|
1395
|
+
font-size: calc(1rem * var(--mantine-scale));
|
|
1396
|
+
line-height: 0.9;
|
|
1397
|
+
padding: 4px 6px;
|
|
1398
|
+
border-radius: 99999px;
|
|
1399
|
+
text-align: center;
|
|
1400
|
+
min-width: 22px;
|
|
1401
|
+
background-color: var(--xy-edge-label-background-color);
|
|
1402
|
+
transition: all 120ms ease-out;
|
|
1403
|
+
transform: translateX(-100%);
|
|
1404
|
+
font-variant-numeric: tabular-nums;
|
|
1405
|
+
}
|
|
1406
|
+
:where([data-edge-hovered="true"],[data-edge-active="true"]) .bexn7qc {
|
|
1407
|
+
font-weight: 600;
|
|
1408
|
+
background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 5%);
|
|
1409
|
+
}
|
|
1410
|
+
.bexn7qd {
|
|
1411
|
+
padding: 2px 6px 4px 6px;
|
|
1412
|
+
text-align: left;
|
|
1343
1413
|
font-size: calc(0.78125rem * var(--mantine-scale));
|
|
1344
|
-
line-height: 1.
|
|
1345
|
-
|
|
1346
|
-
}@keyframes lbtzdo7 {
|
|
1414
|
+
line-height: 1.2;
|
|
1415
|
+
}@keyframes lbtzdo8 {
|
|
1347
1416
|
from {
|
|
1348
1417
|
opacity: 0.6;
|
|
1349
1418
|
}
|
|
@@ -1358,46 +1427,48 @@ svg.react-flow__connectionline {
|
|
|
1358
1427
|
padding: 0;
|
|
1359
1428
|
margin: 0;
|
|
1360
1429
|
}
|
|
1361
|
-
.
|
|
1430
|
+
.lbtzdo1 {
|
|
1431
|
+
filter: var(--likec4-filter-dimmed);
|
|
1432
|
+
transition: filter 800ms ease-out;
|
|
1433
|
+
}
|
|
1434
|
+
.lbtzdo3 {
|
|
1362
1435
|
width: 100%;
|
|
1363
1436
|
height: 100%;
|
|
1364
1437
|
position: relative;
|
|
1365
|
-
border-radius:
|
|
1438
|
+
border-radius: 6px;
|
|
1366
1439
|
box-shadow: 0 4px 10px 0.5px rgba(0,0,0,0.1) , 0 2px 2px -1px rgba(0,0,0,0.4);
|
|
1367
1440
|
padding: 8px;
|
|
1368
1441
|
background: var(--likec4-element-fill);
|
|
1369
1442
|
transition: all 200ms ease-out;
|
|
1370
1443
|
}
|
|
1371
|
-
:where(.react-flow__node.selected) .
|
|
1444
|
+
:where(.react-flow__node.selected) .lbtzdo3 {
|
|
1372
1445
|
box-shadow: none;
|
|
1373
1446
|
}
|
|
1374
|
-
:where(.react-flow__node:focus-visible) .
|
|
1447
|
+
:where(.react-flow__node:focus-visible) .lbtzdo3 {
|
|
1375
1448
|
transition-duration: 0ms;
|
|
1376
1449
|
outline: 3px solid var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));
|
|
1377
1450
|
outline-offset: calc(0.09375rem * var(--mantine-scale));
|
|
1378
1451
|
}
|
|
1379
|
-
.
|
|
1380
|
-
--
|
|
1381
|
-
--
|
|
1452
|
+
.lbtzdo6 {
|
|
1453
|
+
--lbtzdo4: calc(var(--lbtzdo2, 80%) - var(--lbtzdo5));
|
|
1454
|
+
--lbtzdo5: 0%;
|
|
1382
1455
|
--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
|
|
1383
|
-
border-radius: 8px;
|
|
1384
1456
|
border-style: dashed;
|
|
1385
1457
|
border-width: 3px;
|
|
1386
1458
|
padding: 6px;
|
|
1387
|
-
border-color: color-mix(in srgb , var(--likec4-element-stroke), transparent min(var(--
|
|
1388
|
-
background: color-mix(in srgb , var(--likec4-element-fill), transparent var(--
|
|
1459
|
+
border-color: color-mix(in srgb , var(--likec4-element-stroke), transparent min(var(--lbtzdo4), 30%));
|
|
1460
|
+
background: color-mix(in srgb , var(--likec4-element-fill), transparent var(--lbtzdo4));
|
|
1389
1461
|
background-clip: padding-box;
|
|
1390
1462
|
}
|
|
1391
|
-
:where(.
|
|
1392
|
-
--
|
|
1393
|
-
transition-delay: 175ms;
|
|
1394
|
-
}
|
|
1395
|
-
:where(.react-flow__node.selected) .lbtzdo5 {
|
|
1396
|
-
--lbtzdo4: 25%;
|
|
1463
|
+
:where(.react-flow__node.selected) .lbtzdo6 {
|
|
1464
|
+
--lbtzdo5: 5%;
|
|
1397
1465
|
transition-delay: 50ms;
|
|
1398
|
-
border-color: transparent;
|
|
1399
1466
|
}
|
|
1400
|
-
.lbtzdo6 {
|
|
1467
|
+
:where([data-hovered]) .lbtzdo6 {
|
|
1468
|
+
--lbtzdo5: 15%;
|
|
1469
|
+
transition-delay: 175ms;
|
|
1470
|
+
}
|
|
1471
|
+
.lbtzdo7 {
|
|
1401
1472
|
font-family: var(--likec4-compound-font-family);
|
|
1402
1473
|
font-optical-sizing: auto;
|
|
1403
1474
|
font-style: normal;
|
|
@@ -1412,18 +1483,18 @@ svg.react-flow__connectionline {
|
|
|
1412
1483
|
color: var(--_compound-title-color,var(--likec4-compound-title-color));
|
|
1413
1484
|
padding-left: 12px;
|
|
1414
1485
|
}
|
|
1415
|
-
:where([data-likec4-navigable='true']) .
|
|
1486
|
+
:where([data-likec4-navigable='true']) .lbtzdo7 {
|
|
1416
1487
|
padding-left: 26px;
|
|
1417
1488
|
}
|
|
1418
|
-
:where([data-mantine-color-scheme='light']) .lbtzdo6 {
|
|
1419
|
-
opacity: 1;
|
|
1420
|
-
}
|
|
1421
1489
|
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
|
|
1422
1490
|
--_compound-title-color: var(--likec4-element-stroke);
|
|
1423
1491
|
}
|
|
1424
|
-
.
|
|
1425
|
-
|
|
1426
|
-
|
|
1492
|
+
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdo7 {
|
|
1493
|
+
opacity: 1;
|
|
1494
|
+
}
|
|
1495
|
+
.lbtzdob {
|
|
1496
|
+
--lbtzdo9: var(--likec4-element-loContrast);
|
|
1497
|
+
--lbtzdoa: 6;
|
|
1427
1498
|
position: absolute;
|
|
1428
1499
|
top: 0;
|
|
1429
1500
|
left: 0;
|
|
@@ -1433,33 +1504,33 @@ svg.react-flow__connectionline {
|
|
|
1433
1504
|
overflow: visible;
|
|
1434
1505
|
visibility: hidden;
|
|
1435
1506
|
}
|
|
1436
|
-
:where(.react-flow__node.selected:not(:focus-visible)) .
|
|
1507
|
+
:where(.react-flow__node.selected:not(:focus-visible)) .lbtzdob {
|
|
1437
1508
|
visibility: visible;
|
|
1438
1509
|
}
|
|
1439
|
-
:where(.react-flow__node:focus-within:not(.selected)) .
|
|
1440
|
-
--
|
|
1441
|
-
--
|
|
1510
|
+
:where(.react-flow__node:focus-within:not(.selected)) .lbtzdob {
|
|
1511
|
+
--lbtzdo9: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));
|
|
1512
|
+
--lbtzdoa: 8;
|
|
1442
1513
|
}
|
|
1443
|
-
:where([data-mantine-color-scheme='light']) .
|
|
1444
|
-
--
|
|
1514
|
+
:where([data-mantine-color-scheme='light']) .lbtzdob {
|
|
1515
|
+
--lbtzdo9: color-mix(in srgb, var(--likec4-element-stroke) 80%, #000);
|
|
1445
1516
|
}
|
|
1446
|
-
.
|
|
1447
|
-
stroke: var(--
|
|
1517
|
+
.lbtzdob rect {
|
|
1518
|
+
stroke: var(--lbtzdo9);
|
|
1448
1519
|
transform-origin: center center;
|
|
1449
|
-
stroke-width: var(--
|
|
1520
|
+
stroke-width: var(--lbtzdoa);
|
|
1450
1521
|
animation-duration: 800ms;
|
|
1451
|
-
animation-name:
|
|
1522
|
+
animation-name: lbtzdo8;
|
|
1452
1523
|
animation-iteration-count: infinite;
|
|
1453
1524
|
animation-direction: alternate;
|
|
1454
1525
|
fill: none;
|
|
1455
1526
|
}
|
|
1456
1527
|
.lbtzdo0 {
|
|
1457
|
-
--
|
|
1528
|
+
--lbtzdoc: var(--likec4-element-loContrast);
|
|
1458
1529
|
}
|
|
1459
1530
|
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
|
|
1460
|
-
--
|
|
1531
|
+
--lbtzdoc: var(--likec4-element-stroke);
|
|
1461
1532
|
}
|
|
1462
|
-
.
|
|
1533
|
+
.lbtzdod {
|
|
1463
1534
|
--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
|
|
1464
1535
|
--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));
|
|
1465
1536
|
--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));
|
|
@@ -1468,41 +1539,41 @@ svg.react-flow__connectionline {
|
|
|
1468
1539
|
left: 3px;
|
|
1469
1540
|
top: 7px;
|
|
1470
1541
|
cursor: pointer;
|
|
1471
|
-
color: var(--_compound-title-color,var(--
|
|
1542
|
+
color: var(--_compound-title-color,var(--lbtzdoc));
|
|
1472
1543
|
transform-origin: 90% 70%;
|
|
1473
1544
|
opacity: 0.75;
|
|
1474
1545
|
transition: all 150ms ease-out;
|
|
1475
1546
|
transition-delay: 0ms;
|
|
1476
1547
|
background-color: var(--ai-bg);
|
|
1477
1548
|
}
|
|
1478
|
-
.
|
|
1549
|
+
.lbtzdod:hover {
|
|
1479
1550
|
box-shadow: var(--mantine-shadow-lg);
|
|
1480
1551
|
transform: scale(1.466);
|
|
1481
1552
|
opacity: 1;
|
|
1482
1553
|
transition-delay: 0;
|
|
1483
1554
|
}
|
|
1484
|
-
.
|
|
1555
|
+
.lbtzdod:active {
|
|
1485
1556
|
transform: scale(1.1);
|
|
1486
1557
|
opacity: 1;
|
|
1487
1558
|
transition-delay: 0;
|
|
1488
1559
|
}
|
|
1489
|
-
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .
|
|
1560
|
+
:where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdod {
|
|
1490
1561
|
--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 50%);
|
|
1491
1562
|
--ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);
|
|
1492
1563
|
opacity: 0.85;
|
|
1493
1564
|
}
|
|
1494
|
-
:where(.react-flow__node:not(.dragging) .lbtzdo0:hover) .
|
|
1565
|
+
:where(.react-flow__node:not(.dragging) .lbtzdo0:hover) .lbtzdod:not(:hover) {
|
|
1495
1566
|
--ai-bg: var(--ai-bg-hover);
|
|
1496
1567
|
box-shadow: var(--mantine-shadow-lg);
|
|
1497
1568
|
transform: scale(1.223);
|
|
1498
1569
|
opacity: 1;
|
|
1499
1570
|
transition-delay: 250ms;
|
|
1500
1571
|
}
|
|
1501
|
-
.
|
|
1572
|
+
.lbtzdod svg.icon {
|
|
1502
1573
|
width: 70%;
|
|
1503
1574
|
height: 70%;
|
|
1504
1575
|
stroke-width: 1.5;
|
|
1505
|
-
}@keyframes
|
|
1576
|
+
}@keyframes _1b6tkn4 {
|
|
1506
1577
|
from {
|
|
1507
1578
|
opacity: 0.6;
|
|
1508
1579
|
}
|
|
@@ -1517,39 +1588,44 @@ svg.react-flow__connectionline {
|
|
|
1517
1588
|
height: 100%;
|
|
1518
1589
|
padding: 0;
|
|
1519
1590
|
margin: 0;
|
|
1591
|
+
backface-visibility: hidden;
|
|
1592
|
+
}
|
|
1593
|
+
.react-flow__node:has(._1b6tkn3) {
|
|
1594
|
+
filter: var(--likec4-filter-dimmed);
|
|
1595
|
+
transition: filter 800ms ease-out;
|
|
1520
1596
|
}
|
|
1521
|
-
.
|
|
1597
|
+
._1b6tkn5 {
|
|
1522
1598
|
stroke: var(--likec4-element-loContrast);
|
|
1523
1599
|
transform-origin: center center;
|
|
1524
1600
|
stroke-width: 6;
|
|
1525
1601
|
animation-duration: 800ms;
|
|
1526
|
-
animation-name:
|
|
1602
|
+
animation-name: _1b6tkn4;
|
|
1527
1603
|
animation-iteration-count: infinite;
|
|
1528
1604
|
animation-direction: alternate;
|
|
1529
1605
|
visibility: hidden;
|
|
1530
1606
|
}
|
|
1531
|
-
:where(.react-flow__node.selected) .
|
|
1607
|
+
:where(.react-flow__node.selected) ._1b6tkn5 {
|
|
1532
1608
|
visibility: visible;
|
|
1533
1609
|
}
|
|
1534
|
-
:where(.react-flow__node:focus-visible, ._1b6tkn2:focus-visible) .
|
|
1610
|
+
:where(.react-flow__node:focus-visible, ._1b6tkn2:focus-visible) ._1b6tkn5 {
|
|
1535
1611
|
animation-name: none;
|
|
1536
1612
|
stroke-width: 10;
|
|
1537
1613
|
stroke: var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));
|
|
1538
1614
|
visibility: visible;
|
|
1539
1615
|
}
|
|
1540
|
-
:where([data-likec4-shape="queue"], [data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) .
|
|
1616
|
+
:where([data-likec4-shape="queue"], [data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tkn5 {
|
|
1541
1617
|
stroke-width: 10;
|
|
1542
1618
|
}
|
|
1543
|
-
.
|
|
1619
|
+
._1b6tkn6 {
|
|
1544
1620
|
fill: var(--likec4-element-fill);
|
|
1545
1621
|
}
|
|
1546
|
-
.
|
|
1622
|
+
._1b6tkn7 {
|
|
1547
1623
|
fill: var(--likec4-element-stroke);
|
|
1548
1624
|
}
|
|
1549
|
-
.
|
|
1625
|
+
._1b6tkn8 {
|
|
1550
1626
|
fill: var(--_1b6tkn0);
|
|
1551
1627
|
}
|
|
1552
|
-
.
|
|
1628
|
+
._1b6tkn9 {
|
|
1553
1629
|
flex: 0 0 auto;
|
|
1554
1630
|
font-family: var(--likec4-element-font-family);
|
|
1555
1631
|
font-optical-sizing: auto;
|
|
@@ -1561,14 +1637,14 @@ svg.react-flow__connectionline {
|
|
|
1561
1637
|
text-wrap: balance;
|
|
1562
1638
|
color: var(--likec4-element-hiContrast);
|
|
1563
1639
|
}
|
|
1564
|
-
.
|
|
1640
|
+
._1b6tkna {
|
|
1565
1641
|
flex: 0 1 auto;
|
|
1566
1642
|
font-family: var(--likec4-element-font-family);
|
|
1567
1643
|
font-optical-sizing: auto;
|
|
1568
1644
|
font-style: normal;
|
|
1569
1645
|
font-weight: 400;
|
|
1570
1646
|
font-size: calc(0.875rem * var(--mantine-scale));
|
|
1571
|
-
line-height: 1.
|
|
1647
|
+
line-height: 1.25;
|
|
1572
1648
|
text-align: center;
|
|
1573
1649
|
text-wrap: pretty;
|
|
1574
1650
|
color: var(--likec4-element-loContrast);
|
|
@@ -1576,7 +1652,7 @@ svg.react-flow__connectionline {
|
|
|
1576
1652
|
text-overflow: ellipsis;
|
|
1577
1653
|
overflow: hidden;
|
|
1578
1654
|
}
|
|
1579
|
-
.
|
|
1655
|
+
._1b6tknb {
|
|
1580
1656
|
flex: 0 0 auto;
|
|
1581
1657
|
font-family: var(--likec4-element-font-family);
|
|
1582
1658
|
font-optical-sizing: auto;
|
|
@@ -1589,10 +1665,10 @@ svg.react-flow__connectionline {
|
|
|
1589
1665
|
opacity: 0.92;
|
|
1590
1666
|
color: var(--likec4-element-loContrast);
|
|
1591
1667
|
}
|
|
1592
|
-
._1b6tkn2:hover .
|
|
1668
|
+
._1b6tkn2:hover ._1b6tknb {
|
|
1593
1669
|
opacity: 1;
|
|
1594
1670
|
}
|
|
1595
|
-
.
|
|
1671
|
+
._1b6tknc {
|
|
1596
1672
|
--_1b6tkn1: calc(1.5rem * var(--mantine-scale));
|
|
1597
1673
|
position: relative;
|
|
1598
1674
|
width: 100%;
|
|
@@ -1605,24 +1681,24 @@ svg.react-flow__connectionline {
|
|
|
1605
1681
|
overflow: hidden;
|
|
1606
1682
|
gap: calc(0.5rem * var(--mantine-scale));
|
|
1607
1683
|
}
|
|
1608
|
-
.
|
|
1684
|
+
._1b6tknc:has(._1b6tkna):has(._1b6tknb) {
|
|
1609
1685
|
gap: calc(0.375rem * var(--mantine-scale));
|
|
1610
1686
|
}
|
|
1611
|
-
:where([data-likec4-shape="queue"], [data-likec4-shape="mobile"]) .
|
|
1687
|
+
:where([data-likec4-shape="queue"], [data-likec4-shape="mobile"]) ._1b6tknc {
|
|
1612
1688
|
padding-left: calc(2.5rem * var(--mantine-scale));
|
|
1613
1689
|
padding-right: calc(1.25rem * var(--mantine-scale));
|
|
1614
1690
|
}
|
|
1615
|
-
:where([data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) .
|
|
1691
|
+
:where([data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tknc {
|
|
1616
1692
|
padding-top: calc(2.125rem * var(--mantine-scale));
|
|
1617
1693
|
}
|
|
1618
|
-
:where([data-likec4-shape="browser"]) .
|
|
1694
|
+
:where([data-likec4-shape="browser"]) ._1b6tknc {
|
|
1619
1695
|
padding-top: calc(2rem * var(--mantine-scale));
|
|
1620
1696
|
padding-bottom: calc(1.75rem * var(--mantine-scale));
|
|
1621
1697
|
}
|
|
1622
|
-
.
|
|
1623
|
-
--
|
|
1624
|
-
flex: 0 1 var(--
|
|
1625
|
-
max-height: var(--
|
|
1698
|
+
._1b6tkne {
|
|
1699
|
+
--_1b6tknd: 30px;
|
|
1700
|
+
flex: 0 1 var(--_1b6tknd);
|
|
1701
|
+
max-height: var(--_1b6tknd);
|
|
1626
1702
|
margin-top: -8px;
|
|
1627
1703
|
position: relative;
|
|
1628
1704
|
user-select: none;
|
|
@@ -1630,17 +1706,17 @@ svg.react-flow__connectionline {
|
|
|
1630
1706
|
overflow: visible;
|
|
1631
1707
|
mix-blend-mode: hard-light;
|
|
1632
1708
|
}
|
|
1633
|
-
.
|
|
1709
|
+
._1b6tkne img {
|
|
1634
1710
|
position: absolute;
|
|
1635
1711
|
left: 0;
|
|
1636
1712
|
bottom: 0;
|
|
1637
1713
|
width: 100%;
|
|
1638
1714
|
height: auto;
|
|
1639
1715
|
object-fit: contain;
|
|
1640
|
-
max-height: calc(var(--
|
|
1716
|
+
max-height: calc(var(--_1b6tknd) + 16px);
|
|
1641
1717
|
}
|
|
1642
|
-
.
|
|
1643
|
-
--
|
|
1718
|
+
._1b6tknh {
|
|
1719
|
+
--_1b6tknf:
|
|
1644
1720
|
drop-shadow(0 2px 1px rgba(0, 0, 0, 0.21))
|
|
1645
1721
|
drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-element-stroke) 40%, transparent))
|
|
1646
1722
|
drop-shadow(0 5px 3px rgba(0, 0, 0, 0.1))
|
|
@@ -1652,14 +1728,14 @@ svg.react-flow__connectionline {
|
|
|
1652
1728
|
fill: var(--likec4-element-fill);
|
|
1653
1729
|
stroke: var(--likec4-element-stroke);
|
|
1654
1730
|
overflow: visible;
|
|
1655
|
-
filter: var(--
|
|
1731
|
+
filter: var(--_1b6tkng, var(--_1b6tknf));
|
|
1656
1732
|
transition: filter 300ms ease-out;
|
|
1657
1733
|
transition-delay: 0ms;
|
|
1658
1734
|
}
|
|
1659
|
-
:where(.react-flow__node.selected, .react-flow__node:focus-visible, ._1b6tkn2:focus-visible) .
|
|
1735
|
+
:where(.react-flow__node.selected, .react-flow__node:focus-visible, ._1b6tkn2:focus-visible) ._1b6tknh {
|
|
1660
1736
|
filter: none;
|
|
1661
1737
|
}
|
|
1662
|
-
.
|
|
1738
|
+
._1b6tkni {
|
|
1663
1739
|
--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
|
|
1664
1740
|
--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));
|
|
1665
1741
|
--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));
|
|
@@ -1677,28 +1753,28 @@ svg.react-flow__connectionline {
|
|
|
1677
1753
|
transition-delay: 0ms;
|
|
1678
1754
|
background-color: var(--ai-bg);
|
|
1679
1755
|
}
|
|
1680
|
-
.
|
|
1756
|
+
._1b6tkni:hover {
|
|
1681
1757
|
box-shadow: var(--mantine-shadow-lg);
|
|
1682
1758
|
transform: translate(-50%, 0) scale(1.35);
|
|
1683
1759
|
opacity: 1;
|
|
1684
1760
|
transition-delay: 0;
|
|
1685
1761
|
}
|
|
1686
|
-
.
|
|
1762
|
+
._1b6tkni:active {
|
|
1687
1763
|
transform: translate(-50%, 0) scale(1.02);
|
|
1688
1764
|
opacity: 1;
|
|
1689
1765
|
transition-delay: 0;
|
|
1690
1766
|
}
|
|
1691
|
-
:where([data-likec4-shape='browser']) .
|
|
1767
|
+
:where([data-likec4-shape='browser']) ._1b6tkni {
|
|
1692
1768
|
bottom: 3px;
|
|
1693
1769
|
}
|
|
1694
|
-
:where(.react-flow__node:not(.dragging) ._1b6tkn2:hover) .
|
|
1770
|
+
:where(.react-flow__node:not(.dragging) ._1b6tkn2:hover) ._1b6tkni:not(:hover) {
|
|
1695
1771
|
--ai-bg: var(--ai-bg-hover);
|
|
1696
1772
|
box-shadow: var(--mantine-shadow-lg);
|
|
1697
1773
|
transform: translate(-50%, 0) scale(1.185);
|
|
1698
1774
|
opacity: 1;
|
|
1699
1775
|
transition-delay: 250ms;
|
|
1700
1776
|
}
|
|
1701
|
-
.
|
|
1777
|
+
._1b6tkni svg.icon {
|
|
1702
1778
|
width: 65%;
|
|
1703
1779
|
height: 65%;
|
|
1704
1780
|
stroke-width: 1.5;
|
|
@@ -1753,4 +1829,66 @@ svg.react-flow__connectionline {
|
|
|
1753
1829
|
}
|
|
1754
1830
|
._4ysv0o2 {
|
|
1755
1831
|
text-align: left;
|
|
1832
|
+
}._2jkb2y0 {
|
|
1833
|
+
position: absolute;
|
|
1834
|
+
bottom: 0.5rem;
|
|
1835
|
+
left: 50%;
|
|
1836
|
+
transform: translateX(-50%);
|
|
1837
|
+
padding: 0;
|
|
1838
|
+
margin: 0;
|
|
1839
|
+
}
|
|
1840
|
+
._2jkb2y1 {
|
|
1841
|
+
backdrop-filter: blur(8px);
|
|
1842
|
+
transition: all 175ms ease-in;
|
|
1843
|
+
}
|
|
1844
|
+
._2jkb2y1:hover {
|
|
1845
|
+
transition-timing-function: ease-out;
|
|
1846
|
+
transform: scale(1.1);
|
|
1847
|
+
}
|
|
1848
|
+
._2jkb2y1:active {
|
|
1849
|
+
transition-duration: 100ms;
|
|
1850
|
+
transform: scale(0.98) translateY(3px);
|
|
1851
|
+
}
|
|
1852
|
+
._2jkb2y3 {
|
|
1853
|
+
--_2jkb2y2: 35%;
|
|
1854
|
+
--button-bg: color-mix(in srgb, var(--mantine-primary-color-filled), transparent var(--_2jkb2y2));
|
|
1855
|
+
--button-hover: color-mix(in srgb, var(--mantine-primary-color-filled-hover), transparent var(--_2jkb2y2));
|
|
1856
|
+
transition: all 175ms ease-in;
|
|
1857
|
+
background-color: var(--button-bg);
|
|
1858
|
+
}
|
|
1859
|
+
[data-mantine-color-scheme="light"] ._2jkb2y3 {
|
|
1860
|
+
--_2jkb2y2: 15%;
|
|
1861
|
+
}
|
|
1862
|
+
._2jkb2y3 .tabler-icon {
|
|
1863
|
+
width: 80%;
|
|
1864
|
+
}._1lmzt1h0 {
|
|
1865
|
+
top: var(--likec4-options-panel-top, 1rem);
|
|
1866
|
+
right: var(--likec4-options-panel-right, 1rem);
|
|
1867
|
+
margin: 0;
|
|
1868
|
+
box-shadow: var(--mantine-shadow-xl);
|
|
1869
|
+
}.hbkbtj0 {
|
|
1870
|
+
bottom: 0;
|
|
1871
|
+
left: 0;
|
|
1872
|
+
padding: 8px;
|
|
1873
|
+
margin: 0;
|
|
1874
|
+
}
|
|
1875
|
+
.hbkbtj1 {
|
|
1876
|
+
cursor: default;
|
|
1877
|
+
min-width: 100px;
|
|
1878
|
+
max-width: calc(100vw - 16px);
|
|
1879
|
+
background-color: color-mix(in srgb, var(--mantine-color-body), transparent 20%);
|
|
1880
|
+
-webkit-backdrop-filter: blur(8px);
|
|
1881
|
+
backdrop-filter: blur(8px);
|
|
1882
|
+
}
|
|
1883
|
+
.hbkbtj3 {
|
|
1884
|
+
white-space-collapse: preserve-breaks;
|
|
1885
|
+
color: var(--mantine-color-gray-7);
|
|
1886
|
+
}
|
|
1887
|
+
:where([data-mantine-color-scheme="dark"]) .hbkbtj3 {
|
|
1888
|
+
color: var(--mantine-color-gray-5);
|
|
1889
|
+
}
|
|
1890
|
+
@media (min-width: 62em) {
|
|
1891
|
+
.hbkbtj1 {
|
|
1892
|
+
max-width: 45vw;
|
|
1893
|
+
}
|
|
1756
1894
|
}
|
package/dist/theme.css.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export declare const vars: {
|
|
|
2
2
|
default: {
|
|
3
3
|
font: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
4
4
|
};
|
|
5
|
+
filterDimmed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
5
6
|
likec4: {
|
|
6
7
|
font: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
|
|
7
8
|
background: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function DiagramTitlePanel(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function DynamicViewWalkthrough(): import("react/jsx-runtime").JSX.Element;
|