@likec4/styles 1.40.0 → 1.42.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/preset.mjs CHANGED
@@ -4774,9 +4774,9 @@ const paletteGlobalVars = {
4774
4774
  "--likec4-palette-stroke": "#2563eb",
4775
4775
  "--likec4-palette-hiContrast": "#eff6ff",
4776
4776
  "--likec4-palette-loContrast": "#bfdbfe",
4777
- "--likec4-palette-relation-stroke": "#3b82f6",
4778
- "--likec4-palette-relation-label": "#60a5fa",
4779
- "--likec4-palette-relation-label-bg": "#172554"
4777
+ "--likec4-palette-relation-stroke": "#6E6E6E",
4778
+ "--likec4-palette-relation-label": "#C6C6C6",
4779
+ "--likec4-palette-relation-label-bg": "#18191b"
4780
4780
  };
4781
4781
  const conditions = {
4782
4782
  extend: {
@@ -5110,7 +5110,7 @@ const borderWidth = {
5110
5110
  var: "--_border-width",
5111
5111
  ref: "var(--_border-width)"
5112
5112
  };
5113
- const borderRadius = {
5113
+ const borderRadius$1 = {
5114
5114
  var: "--_border-radius",
5115
5115
  ref: "var(--_border-radius)"
5116
5116
  };
@@ -5130,7 +5130,7 @@ const compoundColor = {
5130
5130
  var: "--_compound-color",
5131
5131
  ref: "var(--_compound-color)"
5132
5132
  };
5133
- const parts$1 = defineParts({
5133
+ const parts$3 = defineParts({
5134
5134
  root: { selector: "&" },
5135
5135
  titleContainer: { selector: "& .likec4-compound-title-container" },
5136
5136
  title: { selector: "& .likec4-compound-title" },
@@ -5142,7 +5142,7 @@ const parts$1 = defineParts({
5142
5142
  const iconSize = "20px";
5143
5143
  const compoundNode = defineRecipe({
5144
5144
  className: "likec4-compound-node",
5145
- base: parts$1({
5145
+ base: parts$3({
5146
5146
  root: {
5147
5147
  position: "relative",
5148
5148
  width: "100%",
@@ -5153,14 +5153,14 @@ const compoundNode = defineRecipe({
5153
5153
  backgroundClip: "padding-box",
5154
5154
  borderStyle: "solid",
5155
5155
  borderWidth: borderWidth.ref,
5156
- borderRadius: borderRadius.ref,
5156
+ borderRadius: borderRadius$1.ref,
5157
5157
  boxSizing: "border-box",
5158
5158
  ["--likec4-palette-outline"]: {
5159
5159
  _light: "color-mix(in srgb, var(--likec4-palette-stroke) 80%, var(--likec4-palette-hiContrast))",
5160
5160
  _dark: "color-mix(in srgb, var(--likec4-palette-stroke) 60%, var(--likec4-palette-hiContrast))"
5161
5161
  },
5162
5162
  [borderWidth.var]: "3px",
5163
- [borderRadius.var]: "6px",
5163
+ [borderRadius$1.var]: "6px",
5164
5164
  [compoundTransparency.var]: "100%",
5165
5165
  [borderTransparency.var]: "100%",
5166
5166
  [indicatorSpacing.var]: `calc(${borderWidth.ref} + 2px)`,
@@ -5175,7 +5175,7 @@ const compoundNode = defineRecipe({
5175
5175
  height: `[calc(100% + 2 * ${indicatorSpacing.ref})]`,
5176
5176
  borderStyle: "solid",
5177
5177
  borderWidth: `calc(${borderWidth.ref} + 1px)`,
5178
- borderRadius: `calc(${borderRadius.ref} + 4px)`,
5178
+ borderRadius: `calc(${borderRadius$1.ref} + 4px)`,
5179
5179
  borderColor: "var(--likec4-palette-outline)",
5180
5180
  pointerEvents: "none",
5181
5181
  display: {
@@ -5283,7 +5283,7 @@ const compoundNode = defineRecipe({
5283
5283
  }),
5284
5284
  variants: {
5285
5285
  isTransparent: {
5286
- false: parts$1({
5286
+ false: parts$3({
5287
5287
  root: {
5288
5288
  boxShadow: {
5289
5289
  _noReduceGraphics: "0 4px 10px 0.5px rgb(0 0 0/10%) , 0 2px 2px -1px rgb(0 0 0/40%)",
@@ -5294,7 +5294,7 @@ const compoundNode = defineRecipe({
5294
5294
  borderColor: "var(--likec4-palette-stroke)"
5295
5295
  }
5296
5296
  }),
5297
- true: parts$1({
5297
+ true: parts$3({
5298
5298
  root: {
5299
5299
  backgroundColor: `[color-mix(in srgb, var(--likec4-palette-fill) ${compoundTransparency.ref}, transparent)]`,
5300
5300
  borderColor: `[color-mix(in srgb, var(--likec4-palette-stroke) ${borderTransparency.ref}, transparent)]`
@@ -5303,7 +5303,7 @@ const compoundNode = defineRecipe({
5303
5303
  },
5304
5304
  // When the compound node is too transparent, the text color should be inverted
5305
5305
  inverseColor: {
5306
- true: parts$1({
5306
+ true: parts$3({
5307
5307
  root: {
5308
5308
  [compoundColor.var]: {
5309
5309
  base: "var(--likec4-palette-stroke)",
@@ -5326,22 +5326,22 @@ const compoundNode = defineRecipe({
5326
5326
  false: {}
5327
5327
  },
5328
5328
  borderStyle: {
5329
- solid: parts$1({
5329
+ solid: parts$3({
5330
5330
  root: {
5331
5331
  borderStyle: "solid"
5332
5332
  }
5333
5333
  }),
5334
- dashed: parts$1({
5334
+ dashed: parts$3({
5335
5335
  root: {
5336
5336
  borderStyle: "dashed"
5337
5337
  }
5338
5338
  }),
5339
- dotted: parts$1({
5339
+ dotted: parts$3({
5340
5340
  root: {
5341
5341
  borderStyle: "dotted"
5342
5342
  }
5343
5343
  }),
5344
- none: parts$1({
5344
+ none: parts$3({
5345
5345
  root: {
5346
5346
  // We still need to have a border for consistent internal coordinates
5347
5347
  // So we use a transparent border and extend background
@@ -5400,45 +5400,185 @@ const edgeActionBtn = defineRecipe({
5400
5400
  conditions: ["*"]
5401
5401
  }]
5402
5402
  });
5403
- const varIconSize = `var(${iconSize$1})`;
5404
- const elementNodeIcon = defineRecipe({
5405
- className: "likec4-element-node-icon",
5406
- description: "Element Icon displayed in diagram nodes",
5407
- base: {
5408
- flex: `0 0 ${varIconSize}`,
5409
- height: varIconSize,
5410
- width: varIconSize,
5411
- display: "flex",
5412
- alignSelf: "flex-start",
5413
- alignItems: "center",
5414
- justifyContent: "center",
5415
- mixBlendMode: {
5416
- base: "hard-light",
5417
- _reduceGraphicsOnPan: "normal"
5418
- },
5419
- "& svg, & img": {
5420
- width: "100%",
5421
- height: "auto",
5403
+ const parts$2 = defineParts({
5404
+ root: { selector: "&" },
5405
+ icon: { selector: "& [data-likec4-icon]" },
5406
+ content: { selector: "& .likec4-element-node-content" },
5407
+ title: { selector: "& [data-likec4-node-title]" },
5408
+ description: { selector: "& [data-likec4-node-description]" },
5409
+ technology: { selector: "& [data-likec4-node-technology]" }
5410
+ });
5411
+ const varIconSize = `var(${iconSize$1}, 48px)`;
5412
+ const textAlign = "__text-align";
5413
+ const varTextAlign = `var(${textAlign})`;
5414
+ const elementNodeData = defineRecipe({
5415
+ className: "likec4-element-node-data",
5416
+ jsx: ["ElementNodeData", "ElementNodeData.Root", "ElementTitle"],
5417
+ base: parts$2({
5418
+ root: {
5419
+ position: "relative",
5420
+ flex: "1",
5421
+ height: "fit-content",
5422
+ width: "fit-content",
5422
5423
  maxHeight: "100%",
5424
+ maxWidth: "100%",
5425
+ margin: "[0 auto]",
5426
+ display: "flex",
5427
+ alignItems: "center",
5428
+ justifyContent: "center",
5429
+ flexDirection: "row",
5430
+ paddingTop: "var(--likec4-spacing)",
5431
+ paddingBottom: "var(--likec4-spacing)",
5432
+ paddingLeft: "calc(var(--likec4-spacing) + 8px)",
5433
+ paddingRight: "calc(var(--likec4-spacing) + 8px)",
5434
+ overflow: "hidden",
5423
5435
  pointerEvents: "none",
5424
- filter: {
5425
- base: [
5426
- "drop-shadow(0 0 3px rgb(0 0 0 / 12%))",
5427
- "drop-shadow(0 1px 8px rgb(0 0 0 / 8%))",
5428
- "drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))"
5429
- ],
5430
- _reduceGraphicsOnPan: "none"
5436
+ gap: "3",
5437
+ _shapeQueue: {
5438
+ paddingLeft: "46px",
5439
+ paddingRight: "16px"
5440
+ },
5441
+ _shapeMobile: {
5442
+ paddingLeft: "46px",
5443
+ paddingRight: "16px"
5444
+ },
5445
+ _shapeCylinder: {
5446
+ paddingTop: "30px"
5447
+ },
5448
+ _shapeStorage: {
5449
+ paddingTop: "30px"
5450
+ },
5451
+ _shapeBrowser: {
5452
+ paddingTop: "32px",
5453
+ paddingBottom: "28px"
5454
+ },
5455
+ _shapeSizeXs: {
5456
+ [iconSize$1]: "24px"
5457
+ },
5458
+ _shapeSizeSm: {
5459
+ [iconSize$1]: "36px"
5460
+ },
5461
+ _shapeSizeMd: {
5462
+ [iconSize$1]: "60px"
5463
+ },
5464
+ _shapeSizeLg: {
5465
+ [iconSize$1]: "82px",
5466
+ gap: "4"
5467
+ },
5468
+ _shapeSizeXl: {
5469
+ [iconSize$1]: "90px",
5470
+ gap: "4"
5471
+ },
5472
+ [textAlign]: "center",
5473
+ // When node has icon
5474
+ "&:has([data-likec4-icon])": {
5475
+ [textAlign]: "left",
5476
+ gap: "4",
5477
+ "& .likec4-element-node-content": {
5478
+ minWidth: `calc(50% + var(${iconSize$1}))`,
5479
+ alignItems: "flex-start"
5480
+ }
5431
5481
  }
5432
5482
  },
5433
- "& img": {
5434
- objectFit: "contain"
5483
+ icon: {
5484
+ flex: `0 0 ${varIconSize}`,
5485
+ height: varIconSize,
5486
+ width: varIconSize,
5487
+ display: "flex",
5488
+ alignSelf: "flex-start",
5489
+ alignItems: "center",
5490
+ justifyContent: "center",
5491
+ mixBlendMode: {
5492
+ base: "hard-light",
5493
+ _reduceGraphicsOnPan: "normal"
5494
+ },
5495
+ "& svg, & img": {
5496
+ width: "100%",
5497
+ height: "auto",
5498
+ maxHeight: "100%",
5499
+ pointerEvents: "none",
5500
+ filter: {
5501
+ base: [
5502
+ "drop-shadow(0 0 3px rgb(0 0 0 / 12%))",
5503
+ "drop-shadow(0 1px 8px rgb(0 0 0 / 8%))",
5504
+ "drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))"
5505
+ ],
5506
+ _reduceGraphicsOnPan: "none"
5507
+ }
5508
+ },
5509
+ "& img": {
5510
+ objectFit: "contain"
5511
+ }
5512
+ },
5513
+ content: {
5514
+ height: "fit-content",
5515
+ width: "fit-content",
5516
+ maxHeight: "100%",
5517
+ maxWidth: "100%",
5518
+ flex: "0 1 auto",
5519
+ display: "flex",
5520
+ flexDirection: "column",
5521
+ alignItems: "stretch",
5522
+ justifyContent: "center",
5523
+ flexWrap: "nowrap",
5524
+ overflow: "hidden",
5525
+ gap: "2",
5526
+ "&:has([data-likec4-node-description]):has([data-likec4-node-technology])": {
5527
+ gap: "1.5"
5528
+ }
5529
+ },
5530
+ title: {
5531
+ textStyle: "likec4.node.primary",
5532
+ flex: "0 0 auto",
5533
+ textAlign: varTextAlign,
5534
+ color: "var(--likec4-palette-hiContrast)"
5535
+ },
5536
+ description: {
5537
+ flexGrow: "0",
5538
+ flexShrink: "1",
5539
+ textStyle: "likec4.node.secondary",
5540
+ color: "var(--likec4-palette-loContrast)",
5541
+ textAlign: varTextAlign,
5542
+ textOverflow: "ellipsis",
5543
+ overflow: "hidden",
5544
+ _shapeSizeXs: {
5545
+ display: "none"
5546
+ },
5547
+ _smallZoom: {
5548
+ display: "none"
5549
+ },
5550
+ "& a": {
5551
+ pointerEvents: "all"
5552
+ }
5553
+ },
5554
+ technology: {
5555
+ flex: "0 0 auto",
5556
+ textStyle: "likec4.node.secondary",
5557
+ color: "var(--likec4-palette-loContrast)",
5558
+ fontSize: `calc(var(--likec4-text-size) * 0.635)`,
5559
+ lineHeight: 1.125,
5560
+ textAlign: varTextAlign,
5561
+ textWrap: "balance",
5562
+ opacity: 0.92,
5563
+ _whenHovered: {
5564
+ opacity: 1
5565
+ },
5566
+ _shapeSizeXs: {
5567
+ display: "none"
5568
+ },
5569
+ _shapeSizeSm: {
5570
+ display: "none"
5571
+ },
5572
+ _smallZoom: {
5573
+ display: "none"
5574
+ }
5435
5575
  }
5436
- },
5576
+ }),
5437
5577
  staticCss: [{
5438
5578
  conditions: ["*"]
5439
5579
  }]
5440
5580
  });
5441
- const parts = defineParts({
5581
+ const parts$1 = defineParts({
5442
5582
  root: { selector: "&" },
5443
5583
  outline: { selector: "& .likec4-shape-outline" },
5444
5584
  multipleHtml: { selector: "& .likec4-shape-multiple" },
@@ -5447,7 +5587,7 @@ const parts = defineParts({
5447
5587
  const elementShapeRecipe = defineRecipe({
5448
5588
  description: "Recipe for Diagram node shape",
5449
5589
  className: "likec4-element-shape",
5450
- base: parts({
5590
+ base: parts$1({
5451
5591
  root: {
5452
5592
  top: "0",
5453
5593
  left: "0",
@@ -5481,7 +5621,7 @@ const elementShapeRecipe = defineRecipe({
5481
5621
  }),
5482
5622
  variants: {
5483
5623
  shapetype: {
5484
- html: parts({
5624
+ html: parts$1({
5485
5625
  root: {
5486
5626
  backgroundColor: "var(--likec4-palette-fill)",
5487
5627
  borderRadius: "[6px]",
@@ -5509,14 +5649,14 @@ const elementShapeRecipe = defineRecipe({
5509
5649
  multipleHtml: {
5510
5650
  position: "absolute",
5511
5651
  content: '" "',
5512
- top: "[14px]",
5513
- left: "[14px]",
5514
- width: "[calc(100% - 6px)]",
5515
- height: "[calc(100% - 6px)]",
5652
+ top: 16,
5653
+ left: 16,
5654
+ width: "calc(100% - 6px)",
5655
+ height: "calc(100% - 6px)",
5516
5656
  backgroundColor: "var(--likec4-palette-fill)",
5517
- borderRadius: "[6px]",
5657
+ borderRadius: "6px",
5518
5658
  zIndex: -1,
5519
- filter: "brightness(0.65)",
5659
+ filter: "brightness(0.5) !important",
5520
5660
  visibility: {
5521
5661
  base: "visible",
5522
5662
  _smallZoom: "hidden",
@@ -5526,7 +5666,7 @@ const elementShapeRecipe = defineRecipe({
5526
5666
  },
5527
5667
  transition: "fast",
5528
5668
  _whenHovered: {
5529
- transform: "translate(-10px, -10px)"
5669
+ transform: "translate(-14px, -14px)"
5530
5670
  }
5531
5671
  },
5532
5672
  outline: {
@@ -5543,7 +5683,7 @@ const elementShapeRecipe = defineRecipe({
5543
5683
  animationStyle: "indicator"
5544
5684
  }
5545
5685
  }),
5546
- svg: parts({
5686
+ svg: parts$1({
5547
5687
  root: {
5548
5688
  fill: "var(--likec4-palette-fill)",
5549
5689
  stroke: "var(--likec4-palette-stroke)",
@@ -5584,11 +5724,11 @@ const elementShapeRecipe = defineRecipe({
5584
5724
  _shapeStorage: "50% 100%"
5585
5725
  },
5586
5726
  transform: {
5587
- base: "translate(14px, 14px) perspective(300px) translateZ(-8px)",
5588
- _whenHovered: "translate(2px, 2px) perspective(300px) translateZ(-8px)"
5727
+ base: "translate(14px, 14px) perspective(200px) translateZ(-4px)",
5728
+ _whenHovered: "translate(2px, 2px) perspective(200px) translateZ(-4px)"
5589
5729
  },
5590
5730
  transition: "fast",
5591
- filter: "brightness(0.65) !important",
5731
+ filter: "brightness(0.5) !important",
5592
5732
  stroke: "none",
5593
5733
  display: {
5594
5734
  _smallZoom: "none",
@@ -5666,7 +5806,10 @@ const likec4tag = defineRecipe({
5666
5806
  });
5667
5807
  const markdownBlock = defineRecipe({
5668
5808
  className: "likec4-markdown-block",
5669
- jsx: ["MarkdownBlock"],
5809
+ jsx: [
5810
+ "MarkdownBlock",
5811
+ "Markdown"
5812
+ ],
5670
5813
  description: "Block with Markdown content",
5671
5814
  base: {
5672
5815
  "--text-fz": "1rem",
@@ -5953,16 +6096,130 @@ const navigationPanelActionIcon = defineRecipe({
5953
6096
  conditions: ["*"]
5954
6097
  }]
5955
6098
  });
6099
+ const backdropBlur = "--_blur";
6100
+ const backdropOpacity = "--_opacity";
6101
+ const level = "--_level";
6102
+ const offset = "--_offset";
6103
+ const inset = "--_inset";
6104
+ const borderRadius = "--_border-radius";
6105
+ const parts = defineParts({
6106
+ dialog: { selector: "&" },
6107
+ body: { selector: "& .likec4-overlay-body" }
6108
+ });
6109
+ const overlay = defineRecipe({
6110
+ description: "Recipe for Overlay Dialog",
6111
+ className: "likec4-overlay",
6112
+ base: parts({
6113
+ dialog: {
6114
+ boxSizing: "border-box",
6115
+ margin: "0",
6116
+ position: "fixed",
6117
+ width: "100vw",
6118
+ height: "100vh",
6119
+ maxWidth: "100vw",
6120
+ maxHeight: "100vh",
6121
+ background: `likec4.overlay.border`,
6122
+ shadow: "xl",
6123
+ border: "transparent",
6124
+ outline: "none",
6125
+ borderRadius: `var(${borderRadius})`,
6126
+ [backdropBlur]: "0px",
6127
+ [level]: "0",
6128
+ [offset]: "0px",
6129
+ [inset]: "calc((1 + var(--_level) * 0.75) * var(--_offset))",
6130
+ [backdropOpacity]: "0%",
6131
+ [borderRadius]: "0px",
6132
+ _backdrop: {
6133
+ cursor: "zoom-out"
6134
+ },
6135
+ inset: "0",
6136
+ padding: "0"
6137
+ },
6138
+ body: {
6139
+ position: "relative",
6140
+ containerName: "likec4-dialog",
6141
+ containerType: "size",
6142
+ border: `transparent`,
6143
+ overflow: "hidden",
6144
+ width: "100%",
6145
+ height: "100%",
6146
+ background: "likec4.overlay.body"
6147
+ }
6148
+ }),
6149
+ variants: {
6150
+ fullscreen: {
6151
+ false: {
6152
+ dialog: {
6153
+ sm: {
6154
+ inset: "[var(--_inset) var(--_inset) var(--_offset) var(--_inset)]",
6155
+ width: "calc(100vw - 2 * var(--_inset))",
6156
+ height: "calc(100vh - var(--_offset) - var(--_inset))",
6157
+ [borderRadius]: "6px",
6158
+ padding: "1.5",
6159
+ // 6px
6160
+ [offset]: "1rem"
6161
+ },
6162
+ md: {
6163
+ [offset]: "1rem"
6164
+ },
6165
+ lg: {
6166
+ [offset]: "2rem"
6167
+ },
6168
+ xl: {
6169
+ [offset]: "4rem"
6170
+ }
6171
+ },
6172
+ body: {
6173
+ sm: {
6174
+ borderRadius: `calc(var(${borderRadius}) - 2px)`
6175
+ }
6176
+ }
6177
+ },
6178
+ true: {
6179
+ dialog: {
6180
+ inset: "0",
6181
+ padding: "0"
6182
+ }
6183
+ }
6184
+ },
6185
+ withBackdrop: {
6186
+ false: {
6187
+ dialog: {
6188
+ _backdrop: {
6189
+ display: "none"
6190
+ }
6191
+ }
6192
+ },
6193
+ true: {
6194
+ dialog: {
6195
+ _backdrop: {
6196
+ backdropFilter: `blur(var(${backdropBlur}))`,
6197
+ background: `color-mix(in srgb, {colors.likec4.overlay.backdrop} var(${backdropOpacity}), transparent)`
6198
+ }
6199
+ }
6200
+ }
6201
+ }
6202
+ },
6203
+ defaultVariants: {
6204
+ fullscreen: false,
6205
+ withBackdrop: true
6206
+ },
6207
+ staticCss: [{
6208
+ fullscreen: ["*"],
6209
+ withBackdrop: ["*"]
6210
+ }]
6211
+ });
5956
6212
  const recipes = {
5957
6213
  __proto__: null,
5958
6214
  actionBtn,
5959
6215
  compoundNode,
5960
6216
  edgeActionBtn,
5961
- elementNodeIcon,
6217
+ elementNodeData,
5962
6218
  elementShapeRecipe,
5963
6219
  likec4tag,
5964
6220
  markdownBlock,
5965
- navigationPanelActionIcon
6221
+ navigationPanelActionIcon,
6222
+ overlay
5966
6223
  };
5967
6224
  const semanticTokens = defineSemanticTokens({
5968
6225
  colors: {
@@ -6070,6 +6327,27 @@ const semanticTokens = defineSemanticTokens({
6070
6327
  description: "LikeC4 dropdown border color",
6071
6328
  value: "{colors.likec4.panel.border}"
6072
6329
  }
6330
+ },
6331
+ overlay: {
6332
+ backdrop: {
6333
+ DEFAULT: {
6334
+ description: "LikeC4 overlay backdrop color",
6335
+ value: {
6336
+ base: `rgb(34 34 34)`,
6337
+ _light: `rgb(15 15 15)`
6338
+ }
6339
+ }
6340
+ },
6341
+ body: {
6342
+ DEFAULT: {
6343
+ description: "LikeC4 overlay body color",
6344
+ value: `{colors.mantine.colors.body}`
6345
+ }
6346
+ },
6347
+ border: {
6348
+ description: "LikeC4 overlay border color",
6349
+ value: "{colors.mantine.colors.defaultBorder/50}"
6350
+ }
6073
6351
  }
6074
6352
  }
6075
6353
  }
@@ -6183,181 +6461,6 @@ const edgeLabel = defineSlotRecipe({
6183
6461
  isStepEdge: ["*"]
6184
6462
  }]
6185
6463
  });
6186
- const title = {
6187
- textStyle: "likec4.node.primary",
6188
- flex: "0 0 auto",
6189
- textAlign: "center",
6190
- color: "var(--likec4-palette-hiContrast)"
6191
- };
6192
- const description = {
6193
- flexGrow: "0",
6194
- flexShrink: "1",
6195
- textStyle: "likec4.node.secondary",
6196
- color: "var(--likec4-palette-loContrast)",
6197
- textAlign: "center",
6198
- textOverflow: "ellipsis",
6199
- overflow: "hidden",
6200
- _shapeSizeXs: {
6201
- display: "none"
6202
- },
6203
- _smallZoom: {
6204
- display: "none"
6205
- },
6206
- "& a": {
6207
- pointerEvents: "all"
6208
- }
6209
- };
6210
- const technology = {
6211
- flex: "0 0 auto",
6212
- textStyle: "likec4.node.secondary",
6213
- color: "var(--likec4-palette-loContrast)",
6214
- fontSize: `calc(var(--likec4-text-size) * 0.635)`,
6215
- lineHeight: 1.125,
6216
- textAlign: "center",
6217
- textWrap: "balance",
6218
- opacity: 0.92,
6219
- _whenHovered: {
6220
- opacity: 1
6221
- },
6222
- _shapeSizeXs: {
6223
- display: "none"
6224
- },
6225
- _shapeSizeSm: {
6226
- display: "none"
6227
- },
6228
- _smallZoom: {
6229
- display: "none"
6230
- }
6231
- };
6232
- const elementNodeData = defineSlotRecipe({
6233
- className: "likec4-el-node-data",
6234
- slots: ["root", "textContainer", "title", "description", "technology", "icon"],
6235
- base: {
6236
- root: {
6237
- position: "relative",
6238
- flex: "1",
6239
- height: "fit-content",
6240
- width: "fit-content",
6241
- maxHeight: "100%",
6242
- maxWidth: "100%",
6243
- margin: "[0 auto]",
6244
- display: "flex",
6245
- alignItems: "center",
6246
- justifyContent: "center",
6247
- flexDirection: "row",
6248
- paddingTop: "var(--likec4-spacing)",
6249
- paddingBottom: "var(--likec4-spacing)",
6250
- paddingLeft: "calc(var(--likec4-spacing) + 8px)",
6251
- paddingRight: "calc(var(--likec4-spacing) + 8px)",
6252
- overflow: "hidden",
6253
- pointerEvents: "none",
6254
- gap: "3",
6255
- _shapeQueue: {
6256
- paddingLeft: "[46px]",
6257
- paddingRight: "[16px]"
6258
- },
6259
- _shapeMobile: {
6260
- paddingLeft: "[46px]",
6261
- paddingRight: "[16px]"
6262
- },
6263
- _shapeCylinder: {
6264
- paddingTop: "[30px]"
6265
- },
6266
- _shapeStorage: {
6267
- paddingTop: "[30px]"
6268
- },
6269
- _shapeBrowser: {
6270
- paddingTop: "[32px]",
6271
- paddingBottom: "[28px]"
6272
- },
6273
- _shapeSizeXs: {
6274
- [iconSize$1]: "24px"
6275
- },
6276
- _shapeSizeSm: {
6277
- [iconSize$1]: "36px"
6278
- },
6279
- _shapeSizeMd: {
6280
- [iconSize$1]: "60px"
6281
- },
6282
- _shapeSizeLg: {
6283
- [iconSize$1]: "82px",
6284
- gap: "4"
6285
- },
6286
- _shapeSizeXl: {
6287
- [iconSize$1]: "90px",
6288
- gap: "4"
6289
- }
6290
- },
6291
- textContainer: {
6292
- height: "fit-content",
6293
- width: "fit-content",
6294
- maxHeight: "100%",
6295
- maxWidth: "100%",
6296
- flex: "0 1 auto",
6297
- display: "flex",
6298
- flexDirection: "column",
6299
- alignItems: "stretch",
6300
- justifyContent: "center",
6301
- flexWrap: "nowrap",
6302
- overflow: "hidden",
6303
- gap: "8px"
6304
- },
6305
- title,
6306
- description,
6307
- technology
6308
- },
6309
- variants: {
6310
- hasIcon: {
6311
- false: {},
6312
- true: {
6313
- root: {
6314
- gap: "16px"
6315
- },
6316
- textContainer: {
6317
- minWidth: `calc(50% + var(${iconSize$1}))`,
6318
- alignItems: "flex-start"
6319
- },
6320
- title: {
6321
- textAlign: "left"
6322
- },
6323
- description: {
6324
- textAlign: "left"
6325
- },
6326
- technology: {
6327
- textAlign: "left"
6328
- }
6329
- }
6330
- },
6331
- hasDescription: {
6332
- false: {},
6333
- true: {}
6334
- },
6335
- hasTechnology: {
6336
- false: {},
6337
- true: {}
6338
- }
6339
- },
6340
- compoundVariants: [
6341
- {
6342
- hasDescription: true,
6343
- hasTechnology: true,
6344
- css: {
6345
- textContainer: {
6346
- gap: "6px"
6347
- }
6348
- }
6349
- }
6350
- ],
6351
- defaultVariants: {
6352
- hasIcon: false
6353
- },
6354
- staticCss: [{
6355
- hasIcon: ["*"],
6356
- hasDescription: ["*"],
6357
- hasTechnology: ["*"],
6358
- conditions: ["*"]
6359
- }]
6360
- });
6361
6464
  const navigationLink = defineSlotRecipe({
6362
6465
  className: "likec4-navlink",
6363
6466
  description: "Navigation Link (classes for Mantine NavLink)",
@@ -6426,7 +6529,6 @@ const navigationLink = defineSlotRecipe({
6426
6529
  const slotRecipes = {
6427
6530
  __proto__: null,
6428
6531
  edgeLabel,
6429
- elementNodeData,
6430
6532
  navigationLink
6431
6533
  };
6432
6534
  const textStyles = defineTextStyles({