@likec4/diagram 1.4.0 → 1.6.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.
Files changed (87) hide show
  1. package/LICENSE +1 -1
  2. package/dist/LikeC4Diagram.css.d.ts +0 -1
  3. package/dist/LikeC4Diagram.d.ts +1 -1
  4. package/dist/LikeC4Diagram.props.d.ts +19 -4
  5. package/dist/StaticLikeC4Diagram.d.ts +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.mjs +3937 -3646
  8. package/dist/state/DiagramContext.d.ts +95 -4159
  9. package/dist/state/diagramStore.d.ts +100 -4164
  10. package/dist/state/hooks.d.ts +4 -0
  11. package/dist/state/index.d.ts +1 -2
  12. package/dist/style.css +281 -191
  13. package/dist/ui/options/EdgeOptions.d.ts +19 -0
  14. package/dist/ui/options/NodeOptions.d.ts +2 -2
  15. package/dist/xyflow/EdgeMarkers.d.ts +11 -0
  16. package/dist/xyflow/XYFlowEvents.d.ts +8 -5
  17. package/dist/xyflow/const.d.ts +3 -3
  18. package/dist/xyflow/diagram-to-xyflow.d.ts +1 -1
  19. package/dist/xyflow/edges/RelationshipEdge.d.ts +3 -2
  20. package/dist/xyflow/edges/edges.css.d.ts +1 -0
  21. package/dist/xyflow/edges/utils.d.ts +1 -0
  22. package/dist/xyflow/hooks/index.d.ts +3 -2
  23. package/dist/xyflow/hooks/useXYFlow.d.ts +13 -12
  24. package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +1 -0
  25. package/dist/xyflow/nodes/element/ElementShapeSvg.d.ts +5 -0
  26. package/dist/xyflow/nodes/element/element.css.d.ts +5 -2
  27. package/dist/xyflow/types.d.ts +2 -32
  28. package/package.json +19 -19
  29. package/src/LikeC4Diagram.css.ts +0 -8
  30. package/src/LikeC4Diagram.props.ts +23 -5
  31. package/src/LikeC4Diagram.tsx +18 -21
  32. package/src/StaticLikeC4Diagram.tsx +1 -0
  33. package/src/globals.css.ts +10 -3
  34. package/src/index.ts +1 -1
  35. package/src/mantine.css.ts +2 -2
  36. package/src/state/DiagramContext.tsx +44 -13
  37. package/src/state/diagramStore.ts +72 -53
  38. package/src/state/hooks.ts +5 -0
  39. package/src/state/index.ts +1 -2
  40. package/src/ui/BackwardForwardPanel.css.ts +9 -9
  41. package/src/ui/DiagramTitlePanel.css.ts +7 -2
  42. package/src/ui/DiagramTitlePanel.tsx +5 -3
  43. package/src/ui/DynamicViewWalkthrough.tsx +6 -4
  44. package/src/ui/OptionsPanel.tsx +37 -27
  45. package/src/ui/options/EdgeOptions.tsx +157 -0
  46. package/src/ui/options/NodeOptions.tsx +37 -29
  47. package/src/xyflow/EdgeMarkers.tsx +148 -0
  48. package/src/xyflow/FitviewOnDiagramChange.tsx +9 -5
  49. package/src/xyflow/SelectEdgesOnNodeFocus.tsx +59 -55
  50. package/src/xyflow/SyncWithDiagram.tsx +13 -20
  51. package/src/xyflow/XYFlow.tsx +3 -4
  52. package/src/xyflow/XYFlowEvents.tsx +48 -33
  53. package/src/xyflow/const.ts +3 -3
  54. package/src/xyflow/diagram-to-xyflow.ts +17 -41
  55. package/src/xyflow/edges/RelationshipEdge.tsx +208 -119
  56. package/src/xyflow/edges/edges.css.ts +40 -26
  57. package/src/xyflow/edges/utils.ts +10 -0
  58. package/src/xyflow/hooks/index.ts +4 -2
  59. package/src/xyflow/hooks/useLayoutConstraints.ts +3 -4
  60. package/src/xyflow/hooks/useXYFlow.ts +28 -1
  61. package/src/xyflow/nodes/compound/CompoundNode.css.ts +34 -24
  62. package/src/xyflow/nodes/compound/CompoundNode.tsx +52 -53
  63. package/src/xyflow/nodes/element/ElementLink.tsx +12 -16
  64. package/src/xyflow/nodes/element/ElementNode.tsx +118 -114
  65. package/src/xyflow/nodes/element/ElementShapeSvg.tsx +2 -2
  66. package/src/xyflow/nodes/element/element.css.ts +147 -55
  67. package/src/xyflow/nodes/shared/NavigateToBtn.tsx +1 -1
  68. package/src/xyflow/types.ts +2 -4
  69. package/src/xyflow/utils.ts +3 -6
  70. package/dist/KeepAspectRatioContainer.d.ts +0 -9
  71. package/dist/icons/Clipboard.d.ts +0 -3
  72. package/dist/icons/Link.d.ts +0 -3
  73. package/dist/icons/ZoomIn.d.ts +0 -3
  74. package/dist/icons/index.d.ts +0 -3
  75. package/dist/mantine/theme.d.ts +0 -3
  76. package/dist/state/WhenInitialized.d.ts +0 -3
  77. package/dist/ui/Camera.d.ts +0 -3
  78. package/dist/xyflow/nodes/element/ElementIcon.d.ts +0 -10
  79. package/src/KeepAspectRatioContainer.tsx +0 -36
  80. package/src/icons/Clipboard.tsx +0 -24
  81. package/src/icons/Link.tsx +0 -23
  82. package/src/icons/ZoomIn.tsx +0 -25
  83. package/src/icons/index.ts +0 -3
  84. package/src/mantine/theme.ts +0 -20
  85. package/src/state/WhenInitialized.tsx +0 -24
  86. package/src/ui/Camera.tsx +0 -174
  87. package/src/xyflow/nodes/element/ElementIcon.tsx +0 -44
package/dist/style.css CHANGED
@@ -598,13 +598,20 @@ svg.react-flow__connectionline {
598
598
  fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
599
599
  }
600
600
  .likec4-diagram-root {
601
+ overflow: hidden;
602
+ position: relative;
603
+ width: 100%;
604
+ height: 100%;
605
+ padding: 0;
606
+ margin: 0;
607
+ box-sizing: border-box;
601
608
  -webkit-font-smoothing: var(--mantine-webkit-font-smoothing);
602
609
  -moz-osx-font-smoothing: var(--mantine-moz-font-smoothing);
603
610
  }
604
611
  .likec4-diagram-root {
605
612
  --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"');
606
613
  --likec4-background-color: var(--mantine-color-body);
607
- --likec4-background-pattern-color: var(--mantine-color-dimmed);
614
+ --likec4-background-pattern-color: var(--mantine-color-dark-3);
608
615
  --likec4-compound-font-family: var(--likec4-font-family);
609
616
  --likec4-compound-title-color: var(--likec4-element-loContrast);
610
617
  --likec4-element-font-family: var(--likec4-font-family);
@@ -617,7 +624,7 @@ svg.react-flow__connectionline {
617
624
  --likec4-relation-labelColor: #cbd5e1;
618
625
  }
619
626
  :where([data-mantine-color-scheme='light']) .likec4-diagram-root {
620
- --likec4-background-pattern-color: var(--mantine-color-dark-3);
627
+ --likec4-background-pattern-color: var(--mantine-color-gray-6);
621
628
  }
622
629
  :where([data-likec4-color='primary']) {
623
630
  --likec4-element-fill: #3b82f6;
@@ -1145,8 +1152,8 @@ svg.react-flow__connectionline {
1145
1152
  --likec4-element-fill: #A35829;
1146
1153
  --likec4-element-stroke: #7E451D;
1147
1154
  --likec4-element-hiContrast: #FFE0C2;
1148
- --likec4-element-loContrast: #FFA057;
1149
- --likec4-compound-title-color: #FFA057;
1155
+ --likec4-element-loContrast: #f9b27c;
1156
+ --likec4-compound-title-color: #f9b27c;
1150
1157
  --likec4-relation-lineColor: #b45309;
1151
1158
  --likec4-relation-labelBg: #78350f;
1152
1159
  --likec4-relation-labelColor: #FFE0C2;
@@ -1256,35 +1263,28 @@ svg.react-flow__connectionline {
1256
1263
  :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='6']) {
1257
1264
  --likec4-element-fill: #34369f;
1258
1265
  --likec4-element-stroke: #373287;
1259
- }._2h8g8h0 {
1260
- overflow: hidden;
1261
- position: relative;
1262
- width: 100%;
1263
- height: 100%;
1264
- padding: 0;
1265
- }
1266
- .react-flow._2h8g8h1 {
1266
+ }.react-flow._2h8g8h0 {
1267
1267
  --xy-background-color: var(--likec4-background-color);
1268
1268
  --xy-background-pattern-color: var(--likec4-background-pattern-color);
1269
1269
  }
1270
- .react-flow._2h8g8h1._2h8g8h3 {
1270
+ .react-flow._2h8g8h0._2h8g8h2 {
1271
1271
  --likec4-background-color: transparent !important;
1272
1272
  --xy-background-color: transparent !important;
1273
1273
  background-color: transparent !important;
1274
1274
  }
1275
- :where(._2h8g8h4, ._2h8g8h3) .react-flow__attribution {
1275
+ :where(._2h8g8h3, ._2h8g8h2) .react-flow__attribution {
1276
1276
  display: none;
1277
1277
  }
1278
1278
  @supports (hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none) {
1279
- ._2h8g8h1 {
1279
+ ._2h8g8h0 {
1280
1280
  --likec4-safari-animation-hook: ;
1281
1281
  }
1282
- }@keyframes bexn7q6 {
1282
+ }@keyframes bexn7q7 {
1283
1283
  from {
1284
- stroke-dashoffset: 36;
1284
+ stroke-dashoffset: 46;
1285
1285
  }
1286
1286
  to {
1287
- stroke-dashoffset: 1;
1287
+ stroke-dashoffset: 10;
1288
1288
  }
1289
1289
  }
1290
1290
  .bexn7q1 {
@@ -1292,44 +1292,43 @@ svg.react-flow__connectionline {
1292
1292
  --xy-edge-stroke: var(--likec4-relation-lineColor);
1293
1293
  --xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor), var(--bexn7q0) 35%);
1294
1294
  --xy-edge-label-color: color-mix(in srgb, var(--likec4-relation-labelColor), rgba(255 255 255 / 0.85) 20%);
1295
- --xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 35%);
1296
- --xy-edge-stroke-width: 2.2px;
1295
+ --xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 40%);
1296
+ --xy-edge-stroke-width: 3;
1297
1297
  }
1298
1298
  :where([data-mantine-color-scheme="dark"]) .bexn7q1 {
1299
1299
  --bexn7q0: white;
1300
1300
  --xy-edge-label-color: var(--likec4-relation-labelColor);
1301
- --xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 55%);
1301
+ --xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 50%);
1302
1302
  }
1303
1303
  :where(.react-flow__edge.selected) .bexn7q1 {
1304
1304
  --xy-edge-stroke: var(--xy-edge-stroke-selected);
1305
- --xy-edge-stroke-width: 3px;
1305
+ --xy-edge-stroke-width: 3;
1306
1306
  }
1307
1307
  .bexn7q1:is([data-edge-hovered='true'],[data-edge-active='true']) {
1308
1308
  --xy-edge-stroke: var(--xy-edge-stroke-selected);
1309
- --xy-edge-stroke-width: 3px;
1309
+ --xy-edge-stroke-width: 3;
1310
1310
  }
1311
1311
  :where(.react-flow__edge.selected) .bexn7q1[data-edge-hovered='true'] {
1312
- --xy-edge-stroke-width: 3.6px;
1312
+ --xy-edge-stroke-width: 4;
1313
1313
  }
1314
1314
  .react-flow__edges > svg {
1315
- mix-blend-mode: screen;
1315
+ mix-blend-mode: plus-lighter;
1316
1316
  }
1317
1317
  .react-flow__edges > svg:has(.bexn7q2) {
1318
- opacity: 0.8;
1318
+ opacity: 0.6;
1319
1319
  transition: opacity 600ms ease-in-out, filter 600ms ease-in-out;
1320
1320
  transition-delay: 200ms;
1321
1321
  filter: grayscale(0.85) var(--likec4-safari-animation-hook, blur(1px));
1322
1322
  will-change: opacity, filter;
1323
1323
  }
1324
1324
  .bexn7q3 {
1325
- stroke-width: var(--xy-edge-stroke-width);
1326
1325
  stroke-opacity: 0.08;
1327
1326
  transition-property: stroke-width, stroke-opacity;
1328
1327
  transition-duration: 155ms;
1329
1328
  transition-timing-function: ease-out;
1330
1329
  }
1331
1330
  :where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-hovered='true']) .bexn7q3 {
1332
- stroke-width: calc(var(--xy-edge-stroke-width) + 8px);
1331
+ stroke-width: calc(var(--xy-edge-stroke-width) + 8);
1333
1332
  stroke-opacity: 0.15;
1334
1333
  }
1335
1334
  .bexn7q4 {
@@ -1341,7 +1340,7 @@ svg.react-flow__connectionline {
1341
1340
  stroke: var(--xy-edge-stroke);
1342
1341
  fill-opacity: 0.75;
1343
1342
  stroke-width: 1;
1344
- cursor: grab;
1343
+ cursor: default;
1345
1344
  pointer-events: auto;
1346
1345
  visibility: hidden;
1347
1346
  }
@@ -1357,56 +1356,64 @@ svg.react-flow__connectionline {
1357
1356
  fill-opacity: 1;
1358
1357
  stroke-width: 5;
1359
1358
  }
1360
- .bexn7q7 {
1359
+ .bexn7q6 {
1360
+ cursor: grab;
1361
+ }
1362
+ .bexn7q6 * {
1363
+ cursor: grab;
1364
+ }
1365
+ .bexn7q8 {
1361
1366
  animation-duration: 800ms;
1362
1367
  animation-iteration-count: infinite;
1363
1368
  animation-timing-function: linear;
1364
- animation-name: bexn7q6;
1365
- animation-play-state: paused;
1369
+ animation-fill-mode: both;
1370
+ stroke-dashoffset: 10;
1366
1371
  }
1367
- :where([data-edge-hovered='true']) .bexn7q7 {
1368
- animation-play-state: running;
1369
- animation-delay: 350ms;
1372
+ :where([data-edge-hovered='true']) .bexn7q8 {
1373
+ animation-name: bexn7q7;
1374
+ animation-delay: 450ms;
1370
1375
  transition: stroke 130ms ease-out,stroke-width 130ms ease-out;
1371
1376
  }
1372
- :where(.react-flow__edge.selected, [data-edge-active='true']) .bexn7q7 {
1373
- animation-play-state: running;
1377
+ :where(.react-flow__edge.selected, [data-edge-active='true']) .bexn7q8 {
1378
+ animation-name: bexn7q7;
1374
1379
  animation-delay: 0ms;
1375
1380
  transition: stroke 130ms ease-out,stroke-width 130ms ease-out;
1376
1381
  }
1377
- :where([data-edge-dir='back']) .bexn7q7 {
1382
+ :where([data-edge-dir='back']) .bexn7q8 {
1378
1383
  animation-direction: reverse;
1379
1384
  }
1380
- .bexn7q2 .bexn7q7 {
1385
+ .bexn7q2 .bexn7q8 {
1381
1386
  animation-play-state: paused;
1382
1387
  }
1383
- .bexn7qb {
1384
- --bexn7qa: translate(var(--bexn7q8, -50%), var(--bexn7q9, -50%));
1388
+ .bexn7qc {
1389
+ --bexn7qb: translate(var(--bexn7q9, -50%), var(--bexn7qa, -50%));
1385
1390
  top: 0;
1386
1391
  left: 0;
1392
+ padding: 2px 4px 4px 4px;
1387
1393
  font-family: var(--likec4-font-family);
1388
1394
  position: absolute;
1389
1395
  pointer-events: all;
1390
1396
  cursor: pointer;
1397
+ width: fit-content;
1391
1398
  transform-origin: 50% 50%;
1392
- mix-blend-mode: screen;
1399
+ mix-blend-mode: plus-lighter;
1393
1400
  color: var(--xy-edge-label-color);
1394
1401
  background-color: var(--xy-edge-label-background-color);
1395
1402
  border-radius: 3px;
1396
- transform: var(--bexn7qa);
1403
+ transform: var(--bexn7qb);
1397
1404
  }
1398
- .bexn7qb[data-edge-hovered="true"] {
1399
- transition: all 140ms ease-out;
1400
- transform: var(--bexn7qa) scale(1.1);
1405
+ .bexn7qc[data-edge-hovered="true"] {
1406
+ transition: all 140ms ease-in-out;
1407
+ transform: var(--bexn7qb) scale(1.12);
1401
1408
  }
1402
- .bexn7qb:is(.bexn7q2) {
1403
- opacity: 0.6;
1409
+ .bexn7qc:is(.bexn7q2) {
1410
+ opacity: 0.3;
1404
1411
  transition: opacity 600ms ease-in-out, filter 600ms ease-in-out;
1405
1412
  transition-delay: 200ms;
1406
1413
  filter: grayscale(0.85) var(--likec4-safari-animation-hook, blur(1px));
1407
1414
  will-change: opacity, filter;
1408
1415
  }
1409
- .bexn7qc {
1416
+ .bexn7qd {
1410
1417
  position: absolute;
1411
1418
  top: -2px;
1412
1419
  left: -2px;
@@ -1422,16 +1429,16 @@ svg.react-flow__connectionline {
1422
1429
  transform: translateX(-100%);
1423
1430
  font-variant-numeric: tabular-nums;
1424
1431
  }
1425
- :where([data-edge-hovered="true"],[data-edge-active="true"]) .bexn7qc {
1432
+ :where([data-edge-hovered="true"],[data-edge-active="true"]) .bexn7qd {
1426
1433
  font-weight: 600;
1427
1434
  background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 5%);
1428
1435
  }
1429
- .bexn7qd {
1430
- padding: 2px 6px 4px 6px;
1436
+ .bexn7qe {
1431
1437
  text-align: left;
1432
- font-size: calc(0.78125rem * var(--mantine-scale));
1433
- line-height: 1.2;
1434
- }@keyframes lbtzdo9 {
1438
+ white-space-collapse: preserve-breaks;
1439
+ font-size: calc(0.875rem * var(--mantine-scale));
1440
+ line-height: 1.185;
1441
+ }@keyframes lbtzdoa {
1435
1442
  from {
1436
1443
  opacity: 0.6;
1437
1444
  }
@@ -1446,87 +1453,95 @@ svg.react-flow__connectionline {
1446
1453
  padding: 0;
1447
1454
  margin: 0;
1448
1455
  }
1449
- .react-flow__node-compound:has(.lbtzdo1) {
1456
+ .lbtzdo1 {
1457
+ top: 50%;
1458
+ left: 50%;
1459
+ visibility: hidden;
1460
+ }
1461
+ .react-flow__node-compound:has(.lbtzdo2) {
1450
1462
  opacity: 0.25;
1451
1463
  transition: opacity 600ms ease-in-out, filter 600ms ease-in-out;
1452
1464
  transition-delay: 200ms;
1453
1465
  filter: grayscale(0.85) var(--likec4-safari-animation-hook, blur(1px));
1454
1466
  will-change: opacity, filter;
1455
1467
  }
1456
- .lbtzdo4 {
1468
+ .lbtzdo5 {
1457
1469
  width: 100%;
1458
1470
  height: 100%;
1459
1471
  position: relative;
1460
1472
  border-radius: 6px;
1461
1473
  box-shadow: 0 4px 10px 0.5px rgba(0,0,0,0.1) , 0 2px 2px -1px rgba(0,0,0,0.4);
1462
- padding: 8px;
1474
+ padding: 0;
1475
+ margin: 0;
1463
1476
  transition: all 200ms ease-out;
1477
+ background-clip: padding-box;
1478
+ overflow: hidden;
1479
+ cursor: default;
1464
1480
  }
1465
- .lbtzdo4:before {
1481
+ .lbtzdo5:before {
1466
1482
  content: " ";
1467
1483
  position: absolute;
1468
1484
  top: 0;
1469
1485
  left: 0;
1470
1486
  width: 100%;
1471
1487
  height: 100%;
1472
- border-radius: 6px;
1473
1488
  pointer-events: none;
1474
1489
  transition: background 175ms ease-out, opacity 175ms ease-out;
1475
1490
  background: var(--likec4-element-fill);
1476
- background-clip: padding-box;
1477
1491
  }
1478
- :where(.react-flow__node.selected) .lbtzdo4 {
1492
+ :where(.react-flow__node.selected) .lbtzdo5 {
1479
1493
  box-shadow: none;
1480
1494
  }
1481
- :where(.react-flow__node:focus-visible) .lbtzdo4 {
1495
+ :where(.react-flow__node:focus-visible) .lbtzdo5 {
1482
1496
  transition-duration: 0ms;
1483
1497
  outline: 3px solid var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));
1484
1498
  outline-offset: calc(0.09375rem * var(--mantine-scale));
1485
1499
  }
1486
- .lbtzdo6 {
1487
- --lbtzdo5: 0;
1500
+ .lbtzdo7 {
1501
+ --lbtzdo6: 0;
1488
1502
  --ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
1489
1503
  border-style: dashed;
1490
1504
  border-width: 3px;
1491
- padding: 6px;
1492
1505
  box-shadow: none;
1493
- border-color: color-mix(in srgb , var(--likec4-element-stroke), transparent var(--lbtzdo3, 10%));
1494
- background-clip: padding-box;
1506
+ border-color: color-mix(in srgb , var(--likec4-element-stroke), transparent var(--lbtzdo4, 10%));
1495
1507
  }
1496
- .lbtzdo6:before {
1497
- transition-delay: 200ms;
1498
- opacity: calc(var(--lbtzdo2, 1) + var(--lbtzdo5));
1508
+ .lbtzdo7:before {
1509
+ border-radius: unset;
1510
+ transition-delay: 100ms;
1511
+ opacity: calc(var(--lbtzdo3, 1) + var(--lbtzdo6));
1499
1512
  }
1500
- :where([data-hovered]) .lbtzdo6 {
1501
- --lbtzdo5: .07;
1513
+ :where([data-hovered]) .lbtzdo7 {
1514
+ --lbtzdo6: .08;
1502
1515
  }
1503
- .lbtzdo7 {
1516
+ .lbtzdo8 {
1504
1517
  font-family: var(--likec4-compound-font-family);
1505
- font-optical-sizing: auto;
1506
- font-style: normal;
1507
1518
  text-align: left;
1508
- display: inline-block;
1509
1519
  font-weight: 600;
1510
- font-size: 14px;
1520
+ font-size: calc(0.9375rem * var(--mantine-scale));
1511
1521
  text-transform: uppercase;
1512
1522
  letter-spacing: 0.2px;
1513
1523
  line-height: 1;
1514
- opacity: 0.75;
1515
1524
  color: var(--_compound-title-color,var(--likec4-compound-title-color));
1516
- padding-left: 12px;
1525
+ padding-left: 14px;
1526
+ padding-top: 13px;
1527
+ padding-bottom: 6px;
1528
+ mix-blend-mode: screen;
1517
1529
  }
1518
- .lbtzdo8 {
1519
- padding-left: 26px;
1530
+ :where(.react-flow__node.draggable) .lbtzdo8 {
1531
+ cursor: grab;
1532
+ }
1533
+ :where(.likec4-compound-transparent) .lbtzdo8 {
1534
+ padding-top: 10px;
1535
+ }
1536
+ .lbtzdo9 {
1537
+ padding-left: 32px;
1520
1538
  }
1521
1539
  :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
1522
1540
  --_compound-title-color: var(--likec4-element-stroke);
1523
1541
  }
1524
- :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdo7 {
1525
- opacity: 1;
1526
- }
1527
- .lbtzdoc {
1528
- --lbtzdoa: var(--likec4-element-loContrast);
1529
- --lbtzdob: 6;
1542
+ .lbtzdod {
1543
+ --lbtzdob: var(--likec4-element-loContrast);
1544
+ --lbtzdoc: 6;
1530
1545
  position: absolute;
1531
1546
  top: 0;
1532
1547
  left: 0;
@@ -1536,98 +1551,105 @@ svg.react-flow__connectionline {
1536
1551
  overflow: visible;
1537
1552
  visibility: hidden;
1538
1553
  }
1539
- :where(.react-flow__node.selected:not(:focus-visible)) .lbtzdoc {
1554
+ :where(.react-flow__node.selected:not(:focus-visible)) .lbtzdod {
1540
1555
  visibility: visible;
1541
1556
  }
1542
- :where(.react-flow__node:focus-within:not(.selected)) .lbtzdoc {
1543
- --lbtzdoa: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));
1544
- --lbtzdob: 8;
1557
+ :where(.react-flow__node:focus-within:not(.selected)) .lbtzdod {
1558
+ --lbtzdob: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));
1559
+ --lbtzdoc: 8;
1545
1560
  }
1546
- :where([data-mantine-color-scheme='light']) .lbtzdoc {
1547
- --lbtzdoa: color-mix(in srgb, var(--likec4-element-stroke) 80%, #000);
1561
+ :where([data-mantine-color-scheme='light']) .lbtzdod {
1562
+ --lbtzdob: color-mix(in srgb, var(--likec4-element-stroke) 80%, #000);
1548
1563
  }
1549
- .lbtzdoc rect {
1550
- stroke: var(--lbtzdoa);
1564
+ .lbtzdod rect {
1565
+ stroke: var(--lbtzdob);
1551
1566
  transform-origin: center center;
1552
- stroke-width: var(--lbtzdob);
1567
+ stroke-width: var(--lbtzdoc);
1553
1568
  animation-duration: 800ms;
1554
- animation-name: lbtzdo9;
1569
+ animation-name: lbtzdoa;
1555
1570
  animation-iteration-count: infinite;
1556
1571
  animation-direction: alternate;
1557
1572
  fill: none;
1558
1573
  }
1559
1574
  .lbtzdo0 {
1560
- --lbtzdod: var(--likec4-element-loContrast);
1575
+ --lbtzdoe: var(--likec4-element-loContrast);
1561
1576
  }
1562
1577
  :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
1563
- --lbtzdod: var(--likec4-element-stroke);
1578
+ --lbtzdoe: var(--likec4-element-stroke);
1564
1579
  }
1565
- .lbtzdoe {
1580
+ .lbtzdof {
1566
1581
  --ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
1567
1582
  --ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));
1568
1583
  --ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));
1569
1584
  position: absolute;
1570
1585
  pointer-events: all;
1571
1586
  left: 3px;
1572
- top: 7px;
1587
+ top: 6px;
1573
1588
  cursor: pointer;
1574
- color: var(--_compound-title-color,var(--lbtzdod));
1575
- transform-origin: 90% 70%;
1589
+ color: var(--_compound-title-color,var(--lbtzdoe));
1590
+ transform-origin: 90% 50%;
1576
1591
  opacity: 0.75;
1577
1592
  transition: all 150ms ease-out;
1578
1593
  transition-delay: 0ms;
1579
1594
  background-color: var(--ai-bg);
1580
1595
  }
1581
- .lbtzdoe:hover {
1596
+ .lbtzdof:hover {
1582
1597
  box-shadow: var(--mantine-shadow-lg);
1583
1598
  transform: scale(1.42);
1584
1599
  opacity: 1;
1585
1600
  transition-delay: 0;
1586
1601
  }
1587
- .lbtzdoe:active {
1602
+ .lbtzdof:active {
1588
1603
  transform: scale(1.1);
1589
1604
  opacity: 1;
1590
1605
  transition-delay: 0;
1591
1606
  }
1592
- :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdoe {
1593
- --ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 50%);
1607
+ :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdof {
1608
+ --ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 60%);
1594
1609
  --ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);
1595
1610
  opacity: 0.85;
1596
1611
  }
1597
- :where(.react-flow__node:not(.dragging) .lbtzdo0:hover) .lbtzdoe:not(:hover) {
1612
+ :where(.react-flow__node:not(.dragging) .lbtzdo0:hover) .lbtzdof:not(:hover) {
1598
1613
  --ai-bg: var(--ai-bg-hover);
1599
1614
  box-shadow: var(--mantine-shadow-lg);
1600
1615
  transform: scale(1.223);
1601
1616
  opacity: 1;
1602
1617
  transition-delay: 250ms;
1603
1618
  }
1604
- .lbtzdoe svg.icon {
1605
- width: 70%;
1606
- height: 70%;
1619
+ .lbtzdof svg.icon {
1620
+ width: 75%;
1621
+ height: 75%;
1607
1622
  stroke-width: 1.5;
1608
1623
  }@keyframes _1b6tkn5 {
1609
1624
  from {
1610
- opacity: 0.6;
1625
+ stroke-opacity: 0.8;
1611
1626
  }
1612
1627
  to {
1613
- opacity: 0.4;
1628
+ stroke-opacity: 0.5;
1614
1629
  }
1615
1630
  }
1616
- ._1b6tkn2 {
1631
+ ._1b6tkn1 {
1617
1632
  --_1b6tkn0: color-mix(in srgb, var(--likec4-element-stroke) 90%, var(--likec4-element-fill));
1618
1633
  width: 100%;
1619
1634
  height: 100%;
1620
1635
  padding: 0;
1621
1636
  margin: 0;
1637
+ flex: 1;
1622
1638
  display: flex;
1623
- align-items: stretch;
1639
+ align-items: center;
1640
+ justify-content: center;
1624
1641
  }
1625
- :where(.react-flow__node.selected) ._1b6tkn2 {
1642
+ :where(.react-flow__node.selected) ._1b6tkn1 {
1626
1643
  will-change: transform;
1627
1644
  }
1628
- ._1b6tkn2[data-hovered="true"] {
1645
+ ._1b6tkn1[data-hovered="true"] {
1629
1646
  will-change: transform;
1630
1647
  }
1648
+ ._1b6tkn2 {
1649
+ top: 50%;
1650
+ left: 50%;
1651
+ visibility: hidden;
1652
+ }
1631
1653
  ._1b6tkn3 {
1632
1654
  will-change: transform;
1633
1655
  }
@@ -1638,151 +1660,217 @@ svg.react-flow__connectionline {
1638
1660
  filter: grayscale(0.85) var(--likec4-safari-animation-hook, blur(2px));
1639
1661
  will-change: opacity, filter;
1640
1662
  }
1641
- ._1b6tkn6 {
1642
- stroke: var(--likec4-element-loContrast);
1663
+ ._1b6tkn7 {
1664
+ --_1b6tkn6: var(--likec4-element-loContrast);
1665
+ stroke: var(--_1b6tkn6);
1666
+ fill: none;
1643
1667
  transform-origin: center center;
1644
1668
  stroke-width: 6;
1645
- animation-duration: 800ms;
1669
+ animation-duration: 1s;
1646
1670
  animation-iteration-count: infinite;
1647
1671
  animation-direction: alternate;
1648
- opacity: 0.6;
1672
+ stroke-opacity: 0.8;
1649
1673
  visibility: hidden;
1650
1674
  }
1651
- :where(.react-flow__node.selected) ._1b6tkn6 {
1675
+ :where(.react-flow__node.selected) ._1b6tkn7 {
1652
1676
  visibility: visible;
1653
1677
  animation-name: var(--likec4-safari-animation-hook, _1b6tkn5);
1654
1678
  }
1655
- :where(.react-flow__node:focus-visible, ._1b6tkn2:focus-visible) ._1b6tkn6 {
1679
+ :where(.react-flow__node:focus-visible, ._1b6tkn1:focus-visible) ._1b6tkn7 {
1656
1680
  stroke-width: 10;
1657
1681
  stroke: var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));
1658
1682
  visibility: visible;
1659
1683
  }
1660
- :where([data-likec4-shape="queue"], [data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tkn6 {
1684
+ :where([data-likec4-shape="queue"], [data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tkn7 {
1661
1685
  stroke-width: 10;
1662
1686
  }
1663
- ._1b6tkn4 ._1b6tkn6 {
1687
+ :where([data-mantine-color-scheme='light']) ._1b6tkn7 {
1688
+ --_1b6tkn6: color-mix(in srgb, var(--likec4-element-fill) 50%, #3c3c3c);
1689
+ }
1690
+ ._1b6tkn4 ._1b6tkn7 {
1664
1691
  visibility: hidden;
1665
1692
  display: none;
1666
1693
  }
1667
- ._1b6tkn7 {
1694
+ ._1b6tkn8 {
1668
1695
  fill: var(--likec4-element-fill);
1669
1696
  }
1670
- ._1b6tkn8 {
1697
+ ._1b6tkn9 {
1671
1698
  fill: var(--likec4-element-stroke);
1672
1699
  }
1673
- ._1b6tkn9 {
1700
+ ._1b6tkna {
1674
1701
  fill: var(--_1b6tkn0);
1675
1702
  }
1676
- ._1b6tkna {
1703
+ ._1b6tkne {
1677
1704
  flex: 0 0 auto;
1678
1705
  font-family: var(--likec4-element-font-family);
1679
1706
  font-optical-sizing: auto;
1680
1707
  font-style: normal;
1681
- text-align: center;
1708
+ text-align: var(--_1b6tknc);
1682
1709
  font-weight: 500;
1683
- font-size: calc(1.1875rem * var(--mantine-scale));
1684
- line-height: 1.2;
1710
+ font-size: 19px;
1711
+ line-height: 1.15;
1685
1712
  text-wrap: balance;
1686
1713
  color: var(--likec4-element-hiContrast);
1687
1714
  }
1688
- ._1b6tknb {
1715
+ ._1b6tknf {
1689
1716
  flex: 0 1 auto;
1690
1717
  font-family: var(--likec4-element-font-family);
1691
1718
  font-optical-sizing: auto;
1692
1719
  font-style: normal;
1693
1720
  font-weight: 400;
1694
- font-size: calc(0.875rem * var(--mantine-scale));
1695
- line-height: 1.25;
1696
- text-align: center;
1721
+ font-size: 14px;
1722
+ line-height: 1.2;
1723
+ text-align: var(--_1b6tknc);
1697
1724
  text-wrap: pretty;
1698
1725
  color: var(--likec4-element-loContrast);
1699
1726
  white-space-collapse: preserve-breaks;
1700
1727
  text-overflow: ellipsis;
1701
1728
  overflow: hidden;
1702
1729
  }
1703
- ._1b6tknc {
1730
+ :where(._1b6tknb) ._1b6tknf {
1731
+ text-wrap: wrap;
1732
+ }
1733
+ ._1b6tkng {
1704
1734
  flex: 0 0 auto;
1705
1735
  font-family: var(--likec4-element-font-family);
1706
1736
  font-optical-sizing: auto;
1707
1737
  font-style: normal;
1708
1738
  font-weight: 400;
1709
- font-size: calc(0.75rem * var(--mantine-scale));
1739
+ font-size: 12px;
1710
1740
  line-height: 1.125;
1711
- text-align: center;
1741
+ text-align: var(--_1b6tknc);
1712
1742
  text-wrap: balance;
1713
1743
  opacity: 0.92;
1714
1744
  color: var(--likec4-element-loContrast);
1715
1745
  }
1716
- ._1b6tkn2:hover ._1b6tknc {
1746
+ ._1b6tkn1:hover ._1b6tkng {
1717
1747
  opacity: 1;
1718
1748
  }
1719
- ._1b6tknd {
1720
- --_1b6tkn1: calc(1.5rem * var(--mantine-scale));
1749
+ ._1b6tknh {
1750
+ --_1b6tknd: 48px;
1721
1751
  flex: 1;
1722
- padding: var(--_1b6tkn1);
1752
+ height: fit-content;
1753
+ display: flex;
1754
+ align-items: center;
1755
+ justify-content: center;
1756
+ flex-direction: row;
1757
+ padding: calc(1.5rem * var(--mantine-scale));
1758
+ overflow: hidden;
1759
+ gap: calc(0.625rem * var(--mantine-scale));
1760
+ }
1761
+ :where([data-likec4-shape="queue"], [data-likec4-shape="mobile"]) ._1b6tknh {
1762
+ padding-left: 40px;
1763
+ padding-right: 20px;
1764
+ }
1765
+ :where([data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tknh {
1766
+ padding-top: 30px;
1767
+ }
1768
+ :where([data-likec4-shape="browser"]) ._1b6tknh {
1769
+ padding-top: 32px;
1770
+ padding-bottom: 28px;
1771
+ }
1772
+ ._1b6tknh:is(._1b6tknb) {
1773
+ padding-right: 20px;
1774
+ }
1775
+ ._1b6tkn1:not(:is([data-likec4-shape="queue"],[data-likec4-shape="mobile"])) ._1b6tknh:is(._1b6tknb) {
1776
+ padding-left: 20px;
1777
+ }
1778
+ ._1b6tknh:has(._1b6tknf, ._1b6tkng) {
1779
+ --_1b6tknd: 60px;
1780
+ align-items: flex-start;
1781
+ gap: calc(1rem * var(--mantine-scale));
1782
+ }
1783
+ ._1b6tkni {
1784
+ --_1b6tknc: center;
1785
+ height: fit-content;
1786
+ width: max-content;
1723
1787
  display: flex;
1724
1788
  flex-direction: column;
1725
1789
  align-items: stretch;
1726
1790
  justify-content: center;
1791
+ flex-wrap: nowrap;
1727
1792
  overflow: hidden;
1728
1793
  gap: calc(0.5rem * var(--mantine-scale));
1729
1794
  }
1730
- ._1b6tknd:has(._1b6tknb):has(._1b6tknc) {
1795
+ ._1b6tkni:has(._1b6tknf):has(._1b6tkng) {
1731
1796
  gap: calc(0.375rem * var(--mantine-scale));
1732
1797
  }
1733
- :where([data-likec4-shape="queue"], [data-likec4-shape="mobile"]) ._1b6tknd {
1734
- padding-left: calc(2.5rem * var(--mantine-scale));
1735
- padding-right: calc(1.25rem * var(--mantine-scale));
1736
- }
1737
- :where([data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tknd {
1738
- padding-top: calc(2.125rem * var(--mantine-scale));
1739
- }
1740
- :where([data-likec4-shape="browser"]) ._1b6tknd {
1741
- padding-top: calc(2rem * var(--mantine-scale));
1742
- padding-bottom: calc(1.75rem * var(--mantine-scale));
1798
+ :where(._1b6tknb) ._1b6tkni {
1799
+ --_1b6tknc: left;
1800
+ min-width: calc(100% - 160px);
1801
+ align-items: flex-start;
1743
1802
  }
1744
- ._1b6tknf {
1745
- --_1b6tkne: 30px;
1746
- flex: 0 1 var(--_1b6tkne);
1747
- max-height: var(--_1b6tkne);
1748
- margin-top: -8px;
1749
- position: relative;
1750
- user-select: none;
1751
- pointer-events: none;
1752
- overflow: visible;
1803
+ ._1b6tknj {
1804
+ flex: 0 0 var(--_1b6tknd);
1805
+ height: var(--_1b6tknd);
1806
+ width: var(--_1b6tknd);
1807
+ display: flex;
1808
+ align-items: center;
1809
+ justify-content: center;
1753
1810
  mix-blend-mode: hard-light;
1754
1811
  }
1755
- ._1b6tknf img {
1756
- position: absolute;
1757
- left: 0;
1758
- bottom: 0;
1812
+ ._1b6tknj svg, ._1b6tknj img {
1759
1813
  width: 100%;
1760
1814
  height: auto;
1815
+ max-height: 100%;
1816
+ pointer-events: none;
1817
+ filter:
1818
+ drop-shadow(0 0 3px rgb(0 0 0 / 12%))
1819
+ drop-shadow(0 1px 8px rgb(0 0 0 / 8%))
1820
+ drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))
1821
+ ;
1822
+ }
1823
+ ._1b6tknj img {
1761
1824
  object-fit: contain;
1762
- max-height: calc(var(--_1b6tkne) + 16px);
1763
1825
  }
1764
- ._1b6tkni {
1765
- --_1b6tkng:
1826
+ ._1b6tknl {
1827
+ top: 0;
1828
+ left: 0;
1829
+ position: absolute;
1830
+ pointer-events: none;
1831
+ transform-origin: 50% 50%;
1832
+ fill: var(--likec4-element-fill);
1833
+ stroke: none;
1834
+ z-index: -1;
1835
+ transition: opacity 500ms ease-out;
1836
+ transform: translate(8px,10px);
1837
+ opacity: 0.5;
1838
+ }
1839
+ :where(.react-flow__node.selected, .react-flow__node:focus-visible, ._1b6tkn1:focus-visible) ._1b6tknl {
1840
+ visibility: hidden;
1841
+ }
1842
+ :where([data-likec4-shape="cylinder"], [data-likec4-shape="storage"]) ._1b6tknl {
1843
+ transform: translate(8px,8px);
1844
+ }
1845
+ :where([data-likec4-shape="queue"]) ._1b6tknl {
1846
+ transform: translate(-10px,8px);
1847
+ }
1848
+ :where([data-hovered="true"]) ._1b6tknl {
1849
+ transition: opacity 300ms ease-in;
1850
+ opacity: 0.2;
1851
+ }
1852
+ ._1b6tknm {
1853
+ --_1b6tknk:
1766
1854
  drop-shadow(0 2px 1px rgba(0, 0, 0, 0.21))
1767
1855
  drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-element-stroke) 40%, transparent))
1768
1856
  drop-shadow(0 5px 3px rgba(0, 0, 0, 0.1))
1769
1857
  ;
1770
- top: 0px;
1771
- left: 0px;
1858
+ top: 0;
1859
+ left: 0;
1772
1860
  position: absolute;
1773
1861
  pointer-events: none;
1774
1862
  fill: var(--likec4-element-fill);
1775
1863
  stroke: var(--likec4-element-stroke);
1776
1864
  overflow: visible;
1777
- filter: var(--_1b6tknh, var(--_1b6tkng));
1865
+ filter: var(--_1b6tknk);
1778
1866
  transition: filter 300ms ease-out;
1779
1867
  transition-delay: 0ms;
1780
1868
  z-index: -1;
1781
1869
  }
1782
- :where(.react-flow__node.selected, .react-flow__node:focus-visible, ._1b6tkn2:focus-visible) ._1b6tkni {
1783
- filter: none;
1870
+ :where(.react-flow__node.selected, .react-flow__node:focus-visible, ._1b6tkn1:focus-visible) ._1b6tknm {
1871
+ --_1b6tknk: none;
1784
1872
  }
1785
- ._1b6tknj {
1873
+ ._1b6tknn {
1786
1874
  --ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
1787
1875
  --ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));
1788
1876
  --ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));
@@ -1800,28 +1888,28 @@ svg.react-flow__connectionline {
1800
1888
  transition-delay: 0ms;
1801
1889
  background-color: var(--ai-bg);
1802
1890
  }
1803
- ._1b6tknj:hover {
1891
+ ._1b6tknn:hover {
1804
1892
  box-shadow: var(--mantine-shadow-lg);
1805
1893
  transform: translate(-50%, 0) scale(1.35);
1806
1894
  opacity: 1;
1807
1895
  transition-delay: 0;
1808
1896
  }
1809
- ._1b6tknj:active {
1897
+ ._1b6tknn:active {
1810
1898
  transform: translate(-50%, 0) scale(1.02);
1811
1899
  opacity: 1;
1812
1900
  transition-delay: 0;
1813
1901
  }
1814
- :where([data-likec4-shape='browser']) ._1b6tknj {
1902
+ :where([data-likec4-shape='browser']) ._1b6tknn {
1815
1903
  bottom: 3px;
1816
1904
  }
1817
- :where(.react-flow__node:not(.dragging) ._1b6tkn2:hover) ._1b6tknj:not(:hover) {
1905
+ :where(.react-flow__node:not(.dragging) ._1b6tkn1:hover) ._1b6tknn:not(:hover) {
1818
1906
  --ai-bg: var(--ai-bg-hover);
1819
1907
  box-shadow: var(--mantine-shadow-lg);
1820
1908
  transform: translate(-50%, 0) scale(1.185);
1821
1909
  opacity: 1;
1822
1910
  transition-delay: 250ms;
1823
1911
  }
1824
- ._1b6tknj svg.icon {
1912
+ ._1b6tknn svg.icon {
1825
1913
  width: 65%;
1826
1914
  height: 65%;
1827
1915
  stroke-width: 1.5;
@@ -1877,17 +1965,12 @@ svg.react-flow__connectionline {
1877
1965
  ._4ysv0o2 {
1878
1966
  text-align: left;
1879
1967
  }._19mimxc0 {
1880
- top: var(--likec4-navigation-panel-top, 1rem);
1968
+ top: var(--likec4-navigation-panel-top, 0.8rem);
1881
1969
  left: var(--likec4-navigation-panel-left, 1rem);
1882
1970
  margin: 0;
1883
1971
  }
1884
1972
  ._19mimxc0 .mantine-ActionIcon-root {
1885
- --ai-size: var(--ai-size-md);
1886
- }
1887
- @media (min-width: 62em) {
1888
- ._19mimxc0 .mantine-ActionIcon-root {
1889
- --ai-size: var(--ai-size-lg);
1890
- }
1973
+ --ai-size: var(--ai-size-lg);
1891
1974
  }.hbkbtj0 {
1892
1975
  bottom: 0;
1893
1976
  left: 0;
@@ -1896,7 +1979,7 @@ svg.react-flow__connectionline {
1896
1979
  }
1897
1980
  .hbkbtj1 {
1898
1981
  cursor: default;
1899
- min-width: 150px;
1982
+ min-width: 200px;
1900
1983
  max-width: calc(100vw - 16px);
1901
1984
  background-color: color-mix(in srgb, var(--mantine-color-body), transparent 20%);
1902
1985
  -webkit-backdrop-filter: var(--likec4-safari-animation-hook, blur(8px));
@@ -1912,9 +1995,16 @@ svg.react-flow__connectionline {
1912
1995
  :where([data-mantine-color-scheme="dark"]) .hbkbtj3 {
1913
1996
  color: var(--mantine-color-gray-5);
1914
1997
  }
1998
+ @media (min-width: 48em) {
1999
+ .hbkbtj1 {
2000
+ min-width: 300px;
2001
+ max-width: 90vw;
2002
+ }
2003
+ }
1915
2004
  @media (min-width: 62em) {
1916
2005
  .hbkbtj1 {
1917
- max-width: 45vw;
2006
+ min-width: 400px;
2007
+ max-width: 70vw;
1918
2008
  }
1919
2009
  }._2jkb2y0 {
1920
2010
  position: absolute;