@likec4/styles 1.44.0 → 1.46.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
@@ -3935,11 +3935,11 @@ function createPreset(options) {
3935
3935
  const keyframes = defineKeyframes({
3936
3936
  "indicatorOpacity": {
3937
3937
  "0%": {
3938
- opacity: 0.9,
3938
+ opacity: 0.8,
3939
3939
  strokeOpacity: 0.8
3940
3940
  },
3941
3941
  "100%": {
3942
- opacity: 0.6,
3942
+ opacity: 0.4,
3943
3943
  strokeOpacity: 0.4
3944
3944
  }
3945
3945
  },
@@ -4744,18 +4744,23 @@ const paletteGlobalVars = {
4744
4744
  "--likec4-palette-stroke": "#2563eb",
4745
4745
  "--likec4-palette-hiContrast": "#eff6ff",
4746
4746
  "--likec4-palette-loContrast": "#bfdbfe",
4747
- "--likec4-palette-relation-stroke": "#6E6E6E",
4748
- "--likec4-palette-relation-label": "#C6C6C6",
4749
- "--likec4-palette-relation-label-bg": "#18191b"
4747
+ "--likec4-palette-relation-stroke": "#8D8D8D",
4748
+ "--likec4-palette-relation-label": "#C9C9C9",
4749
+ "--likec4-palette-relation-label-bg": "#18191B"
4750
4750
  };
4751
4751
  const mantine = {
4752
4752
  colors: {
4753
+ white: "var(--mantine-color-white)",
4754
+ black: "var(--mantine-color-black)",
4753
4755
  text: "var(--mantine-color-text)",
4754
4756
  body: "var(--mantine-color-body)",
4757
+ anchor: "var(--mantine-color-anchor)",
4755
4758
  defaultBorder: "var(--mantine-color-default-border)",
4756
4759
  dimmed: "var(--mantine-color-dimmed)",
4757
4760
  dark: {
4761
+ "3": "var(--mantine-color-dark-3)",
4758
4762
  "4": "var(--mantine-color-dark-4)",
4763
+ "5": "var(--mantine-color-dark-5)",
4759
4764
  "6": "var(--mantine-color-dark-6)",
4760
4765
  "7": "var(--mantine-color-dark-7)",
4761
4766
  "8": "var(--mantine-color-dark-8)"
@@ -4763,11 +4768,16 @@ const mantine = {
4763
4768
  gray: {
4764
4769
  "1": "var(--mantine-color-gray-1)",
4765
4770
  "2": "var(--mantine-color-gray-2)",
4771
+ "3": "var(--mantine-color-gray-3)",
4766
4772
  "4": "var(--mantine-color-gray-4)"
4767
4773
  },
4768
4774
  green: {
4769
4775
  "6": "var(--mantine-color-green-6)"
4770
4776
  },
4777
+ yellow: {
4778
+ "2": "var(--mantine-color-yellow-2)",
4779
+ "5": "var(--mantine-color-yellow-5)"
4780
+ },
4771
4781
  orange: {
4772
4782
  "1": "var(--mantine-color-orange-1)",
4773
4783
  "3": "var(--mantine-color-orange-3)",
@@ -4827,9 +4837,9 @@ const conditions = {
4827
4837
  smallZoom: ':where([data-likec4-zoom-small="true"]) &',
4828
4838
  compoundTransparent: ":where([data-compound-transparent]) &",
4829
4839
  edgeActive: ':where([data-likec4-edge-active="true"]) &',
4830
- whenHovered: ':where(.react-flow__node, .react-flow__edge):has([data-likec4-hovered="true"]) &',
4831
- whenSelectable: ":where(.react-flow__node, .react-flow__edge):is(.selectable) &",
4832
- whenSelected: ":where(.react-flow__node, .react-flow__edge):is(.selected) &",
4840
+ whenHovered: ':where(.react-flow__node:has([data-likec4-hovered="true"]), .react-flow__edge:has([data-likec4-hovered="true"]), .likec4-edge-container[data-likec4-hovered="true"]) &',
4841
+ whenSelectable: ":where(.react-flow__node, .react-flow__edge, .likec4-edge-container):is(.selectable) &",
4842
+ whenSelected: ":where(.react-flow__node, .react-flow__edge, .likec4-edge-container):is(.selected) &",
4833
4843
  whenDimmed: ":where(.react-flow__node, .react-flow__edge):has([data-likec4-dimmed]) &",
4834
4844
  whenFocused: ":where(.react-flow__node, .react-flow__edge):is(:focus-visible, :focus, :focus-within) &"
4835
4845
  // likec4Color: ':where([data-likec4-color]) &',
@@ -4872,14 +4882,27 @@ const globalCss = {
4872
4882
  width: "100%",
4873
4883
  height: "100%",
4874
4884
  border: "0px solid transparent",
4885
+ background: "transparent",
4875
4886
  containerName: "likec4-root",
4876
4887
  containerType: "size",
4888
+ _print: {
4889
+ "& .react-flow__background": {
4890
+ display: "none"
4891
+ },
4892
+ "& .react-flow": {
4893
+ background: "transparent !important",
4894
+ "--xy-background-color": "transparent !important"
4895
+ },
4896
+ "& *": {
4897
+ colorAdjust: "exact!",
4898
+ printColorAdjust: "exact!"
4899
+ }
4900
+ },
4877
4901
  "& .mantine-ActionIcon-icon .tabler-icon": {
4878
4902
  width: "75%",
4879
4903
  height: "75%"
4880
4904
  },
4881
4905
  "& .react-flow": {
4882
- contain: "paint",
4883
4906
  "--xy-background-color": "var(--colors-likec4-background)",
4884
4907
  "--xy-background-pattern-color": "var(--colors-likec4-background-pattern, var(--colors-likec4-background))",
4885
4908
  "&:is(.not-initialized)": {
@@ -4897,6 +4920,16 @@ const globalCss = {
4897
4920
  },
4898
4921
  "& .react-flow__node.draggable:has(.likec4-compound-node)": {
4899
4922
  cursor: "default"
4923
+ },
4924
+ "& .likec4-node-handle-center": {
4925
+ top: "50%!",
4926
+ left: "50%!",
4927
+ right: "unset!",
4928
+ bottom: "unset!",
4929
+ visibility: "hidden!",
4930
+ width: "5px!",
4931
+ height: "5px!",
4932
+ transform: "translate(-50%, -50%)!"
4900
4933
  }
4901
4934
  },
4902
4935
  "& :where(.react-flow__node, .react-flow__edge):has([data-likec4-dimmed])": {
@@ -4912,11 +4945,11 @@ const globalCss = {
4912
4945
  "--xy-edge-label-color": "var(--likec4-palette-relation-label)",
4913
4946
  "--xy-edge-label-background-color": "var(--likec4-palette-relation-label-bg)",
4914
4947
  _dark: {
4915
- "--xy-edge-label-background-color": "color-mix(in srgb, var(--likec4-palette-relation-label-bg) 50%, transparent)"
4948
+ "--xy-edge-label-background-color": "color-mix(in oklab, var(--likec4-palette-relation-label-bg) 50%, transparent)"
4916
4949
  },
4917
4950
  _light: {
4918
- "--xy-edge-label-color": "color-mix(in srgb, var(--likec4-palette-relation-label), rgba(255 255 255 / 0.85) 40%)",
4919
- "--xy-edge-label-background-color": "color-mix(in srgb, var(--likec4-palette-relation-label-bg) 60%, transparent)"
4951
+ "--xy-edge-label-color": "color-mix(in oklab, var(--likec4-palette-relation-label), #FFF 50%)",
4952
+ "--xy-edge-label-background-color": "color-mix(in oklab, var(--likec4-palette-relation-label-bg) 65%, transparent)"
4920
4953
  },
4921
4954
  '&:is([data-likec4-hovered="true"], [data-edge-active="true"])': {
4922
4955
  "--xy-edge-stroke-width": 4,
@@ -4943,10 +4976,18 @@ const globalCss = {
4943
4976
  transitionTimingFunction: "cubic-bezier(0.50, 0, 0.2, 1)",
4944
4977
  transitionDuration: "400ms"
4945
4978
  },
4946
- "& :where(.react-flow__edges, .react-flow__edgelabel-renderer) > :where(svg, .likec4-edge-label-container)": {
4979
+ "& :where(.react-flow__edgelabel-renderer) > *": {
4980
+ mixBlendMode: {
4981
+ _dark: "screen",
4982
+ _light: "hard-light",
4983
+ _print: "normal!"
4984
+ }
4985
+ },
4986
+ "& :where(.react-flow__edges) > svg": {
4947
4987
  mixBlendMode: {
4948
4988
  _dark: "plus-lighter",
4949
- _light: "screen"
4989
+ _light: "multiply",
4990
+ _print: "normal!"
4950
4991
  }
4951
4992
  },
4952
4993
  "&:has(.react-flow__node-seq-parallel) :where(.react-flow__edges > svg)": {
@@ -4958,7 +4999,8 @@ const globalCss = {
4958
4999
  "& .react-flow__node-seq-parallel": {
4959
5000
  mixBlendMode: {
4960
5001
  _dark: "luminosity",
4961
- _light: "color-burn"
5002
+ _light: "color-burn",
5003
+ _print: "normal!"
4962
5004
  }
4963
5005
  }
4964
5006
  },
@@ -5007,29 +5049,59 @@ const layerStyles = defineLayerStyles({
5007
5049
  boxShadow: "lg",
5008
5050
  borderRadius: "md",
5009
5051
  paddingInline: "2"
5010
- },
5011
- _whenPanning: {
5012
- boxShadow: "none",
5013
- borderRadius: "0"
5014
5052
  }
5015
5053
  }
5016
5054
  },
5017
5055
  action: {
5018
- description: "LikeC4 panel action layer",
5019
- value: {
5020
- color: {
5021
- base: "likec4.panel.action",
5022
- _notDisabled: {
5023
- _hover: "likec4.panel.action.hover"
5056
+ DEFAULT: {
5057
+ description: "LikeC4 panel action layer",
5058
+ value: {
5059
+ color: {
5060
+ base: "likec4.panel.action",
5061
+ _disabled: "likec4.panel.action.disabled",
5062
+ _notDisabled: {
5063
+ _hover: "likec4.panel.action.hover"
5064
+ }
5065
+ },
5066
+ cursor: {
5067
+ base: "pointer",
5068
+ _disabled: "not-allowed"
5069
+ },
5070
+ paddingInline: "xxs",
5071
+ paddingBlock: "xxs",
5072
+ border: "transparent",
5073
+ borderRadius: "sm",
5074
+ backgroundColor: {
5075
+ _notDisabled: {
5076
+ _hover: "likec4.panel.action.bg.hover"
5077
+ }
5024
5078
  }
5025
- },
5026
- cursor: "pointer",
5027
- border: "transparent",
5028
- borderRadius: "sm",
5029
- backgroundColor: {
5030
- base: "likec4.panel.action.bg",
5031
- _notDisabled: {
5032
- _hover: "likec4.panel.action.bg.hover"
5079
+ }
5080
+ },
5081
+ filled: {
5082
+ description: "LikeC4 action panel filled layer",
5083
+ value: {
5084
+ color: {
5085
+ base: "likec4.panel.action",
5086
+ _disabled: "likec4.panel.action.disabled",
5087
+ _notDisabled: {
5088
+ _hover: "likec4.panel.action.hover"
5089
+ }
5090
+ },
5091
+ cursor: {
5092
+ base: "pointer",
5093
+ _disabled: "not-allowed"
5094
+ },
5095
+ paddingInline: "xxs",
5096
+ paddingBlock: "xxs",
5097
+ border: "transparent",
5098
+ borderRadius: "sm",
5099
+ backgroundColor: {
5100
+ base: "likec4.panel.action.bg",
5101
+ _disabled: "likec4.panel.action.bg",
5102
+ _notDisabled: {
5103
+ _hover: "likec4.panel.action.bg.hover"
5104
+ }
5033
5105
  }
5034
5106
  }
5035
5107
  }
@@ -5042,12 +5114,7 @@ const layerStyles = defineLayerStyles({
5042
5114
  backgroundColor: "likec4.dropdown.bg",
5043
5115
  border: "1px solid {colors.likec4.dropdown.border}",
5044
5116
  boxShadow: "lg",
5045
- borderRadius: "md",
5046
- _whenPanning: {
5047
- boxShadow: "none",
5048
- borderRadius: "0px",
5049
- borderColor: "transparent"
5050
- }
5117
+ borderRadius: "md"
5051
5118
  }
5052
5119
  }
5053
5120
  }
@@ -5074,18 +5141,20 @@ const actionBtn = defineRecipe({
5074
5141
  className: "action-btn",
5075
5142
  description: "Action Button within Diagram Node (Bottom-Center)",
5076
5143
  base: {
5077
- pointerEvents: "all",
5078
- cursor: "pointer",
5079
5144
  color: "var(--actionbtn-color)",
5080
5145
  opacity: 0.75,
5081
5146
  "--actionbtn-color": "var(--likec4-palette-loContrast)",
5082
5147
  "--actionbtn-color-hovered": "var(--likec4-palette-loContrast)",
5083
5148
  "--actionbtn-color-hovered-btn": "var(--likec4-palette-hiContrast)",
5084
- "--actionbtn-bg-idle": `color-mix(in srgb , var(--likec4-palette-fill), transparent 99%)`,
5085
- "--actionbtn-bg-hovered": `color-mix(in srgb , var(--likec4-palette-fill) 65%, var(--likec4-palette-stroke))`,
5086
- "--actionbtn-bg-hovered-btn": `color-mix(in srgb , var(--likec4-palette-fill) 50%, var(--likec4-palette-stroke))`,
5149
+ "--actionbtn-bg-idle": `color-mix(in oklab , var(--likec4-palette-fill), transparent 99%)`,
5150
+ "--actionbtn-bg-hovered": `color-mix(in oklab , var(--likec4-palette-fill) 65%, var(--likec4-palette-stroke))`,
5151
+ "--actionbtn-bg-hovered-btn": `color-mix(in oklab , var(--likec4-palette-fill) 50%, var(--likec4-palette-stroke))`,
5087
5152
  "--ai-bg": `var(--actionbtn-bg-idle)`,
5088
5153
  background: `var(--ai-bg)`,
5154
+ _whenSelectable: {
5155
+ pointerEvents: "all",
5156
+ cursor: "pointer"
5157
+ },
5089
5158
  _whenHovered: {
5090
5159
  opacity: 1,
5091
5160
  color: "var(--actionbtn-color-hovered)",
@@ -5104,6 +5173,9 @@ const actionBtn = defineRecipe({
5104
5173
  },
5105
5174
  "& *": {
5106
5175
  pointerEvents: "none"
5176
+ },
5177
+ _print: {
5178
+ display: "none"
5107
5179
  }
5108
5180
  },
5109
5181
  variants: {
@@ -5168,7 +5240,7 @@ const compoundColor = {
5168
5240
  var: "--_compound-color",
5169
5241
  ref: "var(--_compound-color)"
5170
5242
  };
5171
- const parts$3 = defineParts({
5243
+ const parts$4 = defineParts({
5172
5244
  root: { selector: "&" },
5173
5245
  titleContainer: { selector: "& .likec4-compound-title-container" },
5174
5246
  title: { selector: "& .likec4-compound-title" },
@@ -5180,7 +5252,7 @@ const parts$3 = defineParts({
5180
5252
  const iconSize = "20px";
5181
5253
  const compoundNode = defineRecipe({
5182
5254
  className: "likec4-compound-node",
5183
- base: parts$3({
5255
+ base: parts$4({
5184
5256
  root: {
5185
5257
  position: "relative",
5186
5258
  width: "100%",
@@ -5194,17 +5266,17 @@ const compoundNode = defineRecipe({
5194
5266
  borderRadius: borderRadius$1.ref,
5195
5267
  boxSizing: "border-box",
5196
5268
  ["--likec4-palette-outline"]: {
5197
- _light: "color-mix(in srgb, var(--likec4-palette-stroke) 80%, var(--likec4-palette-hiContrast))",
5198
- _dark: "color-mix(in srgb, var(--likec4-palette-stroke) 60%, var(--likec4-palette-hiContrast))"
5269
+ base: "oklab(from var(--likec4-palette-stroke) calc(l - 0.05) a b)",
5270
+ _dark: "oklab(from var(--likec4-palette-stroke) calc(l + 0.2) a b)"
5199
5271
  },
5200
5272
  [borderWidth.var]: "3px",
5201
5273
  [borderRadius$1.var]: "6px",
5202
5274
  [compoundTransparency.var]: "100%",
5203
5275
  [borderTransparency.var]: "100%",
5204
- [indicatorSpacing.var]: `calc(${borderWidth.ref} + 2px)`,
5276
+ [indicatorSpacing.var]: `calc(${borderWidth.ref} + 1px)`,
5205
5277
  [compoundColor.var]: "var(--likec4-palette-loContrast)",
5206
5278
  color: compoundColor.ref,
5207
- _after: {
5279
+ _before: {
5208
5280
  position: "absolute",
5209
5281
  content: '" "',
5210
5282
  top: `[calc(-1 * ${indicatorSpacing.ref})]`,
@@ -5221,7 +5293,7 @@ const compoundNode = defineRecipe({
5221
5293
  _whenFocused: "block",
5222
5294
  _whenSelected: "block"
5223
5295
  },
5224
- animationStyle: "indicatorOpacity",
5296
+ animationStyle: "indicator",
5225
5297
  animationPlayState: {
5226
5298
  base: "paused",
5227
5299
  _whenFocused: "running",
@@ -5268,7 +5340,8 @@ const compoundNode = defineRecipe({
5268
5340
  justifyContent: "center",
5269
5341
  mixBlendMode: {
5270
5342
  base: "hard-light",
5271
- _reduceGraphicsOnPan: "normal"
5343
+ _reduceGraphicsOnPan: "normal",
5344
+ _print: "normal!"
5272
5345
  },
5273
5346
  [`& svg, & img`]: {
5274
5347
  width: "100%",
@@ -5291,7 +5364,7 @@ const compoundNode = defineRecipe({
5291
5364
  actionBtn: {
5292
5365
  "--actionbtn-color": compoundColor.ref,
5293
5366
  "--actionbtn-color-hovered": compoundColor.ref,
5294
- "--actionbtn-color-hovered-btn": `color-mix(in srgb, ${compoundColor.ref} 80%, #fff)`,
5367
+ "--actionbtn-color-hovered-btn": `color-mix(in oklab, ${compoundColor.ref} 80%, #fff)`,
5295
5368
  opacity: {
5296
5369
  base: 0.6,
5297
5370
  _whenHovered: 0.75,
@@ -5300,6 +5373,9 @@ const compoundNode = defineRecipe({
5300
5373
  },
5301
5374
  _noReduceGraphics: {
5302
5375
  transition: "fast"
5376
+ },
5377
+ _print: {
5378
+ display: "none"
5303
5379
  }
5304
5380
  },
5305
5381
  navigationBtn: {
@@ -5308,6 +5384,9 @@ const compoundNode = defineRecipe({
5308
5384
  left: "0.5",
5309
5385
  _smallZoom: {
5310
5386
  display: "none"
5387
+ },
5388
+ _print: {
5389
+ display: "none"
5311
5390
  }
5312
5391
  },
5313
5392
  detailsBtn: {
@@ -5316,12 +5395,15 @@ const compoundNode = defineRecipe({
5316
5395
  right: "0.5",
5317
5396
  _smallZoom: {
5318
5397
  display: "none"
5398
+ },
5399
+ _print: {
5400
+ display: "none"
5319
5401
  }
5320
5402
  }
5321
5403
  }),
5322
5404
  variants: {
5323
5405
  isTransparent: {
5324
- false: parts$3({
5406
+ false: parts$4({
5325
5407
  root: {
5326
5408
  boxShadow: {
5327
5409
  _noReduceGraphics: "0 4px 10px 0.5px rgb(0 0 0/10%) , 0 2px 2px -1px rgb(0 0 0/40%)",
@@ -5332,20 +5414,20 @@ const compoundNode = defineRecipe({
5332
5414
  borderColor: "var(--likec4-palette-stroke)"
5333
5415
  }
5334
5416
  }),
5335
- true: parts$3({
5417
+ true: parts$4({
5336
5418
  root: {
5337
- backgroundColor: `[color-mix(in srgb, var(--likec4-palette-fill) ${compoundTransparency.ref}, transparent)]`,
5338
- borderColor: `[color-mix(in srgb, var(--likec4-palette-stroke) ${borderTransparency.ref}, transparent)]`
5419
+ backgroundColor: `color-mix(in oklab, var(--likec4-palette-fill) ${compoundTransparency.ref}, transparent)`,
5420
+ borderColor: `color-mix(in oklab, var(--likec4-palette-stroke) ${borderTransparency.ref}, transparent)`
5339
5421
  }
5340
5422
  })
5341
5423
  },
5342
5424
  // When the compound node is too transparent, the text color should be inverted
5343
5425
  inverseColor: {
5344
- true: parts$3({
5426
+ true: parts$4({
5345
5427
  root: {
5346
5428
  [compoundColor.var]: {
5347
5429
  base: "var(--likec4-palette-stroke)",
5348
- _dark: "[color-mix(in srgb, var(--likec4-palette-loContrast) 60%, var(--likec4-palette-fill))]"
5430
+ _dark: "[color-mix(in oklab, var(--likec4-palette-loContrast) 60%, var(--likec4-palette-fill))]"
5349
5431
  }
5350
5432
  },
5351
5433
  actionBtn: {
@@ -5364,22 +5446,22 @@ const compoundNode = defineRecipe({
5364
5446
  false: {}
5365
5447
  },
5366
5448
  borderStyle: {
5367
- solid: parts$3({
5449
+ solid: parts$4({
5368
5450
  root: {
5369
5451
  borderStyle: "solid"
5370
5452
  }
5371
5453
  }),
5372
- dashed: parts$3({
5454
+ dashed: parts$4({
5373
5455
  root: {
5374
5456
  borderStyle: "dashed"
5375
5457
  }
5376
5458
  }),
5377
- dotted: parts$3({
5459
+ dotted: parts$4({
5378
5460
  root: {
5379
5461
  borderStyle: "dotted"
5380
5462
  }
5381
5463
  }),
5382
- none: parts$3({
5464
+ none: parts$4({
5383
5465
  root: {
5384
5466
  // We still need to have a border for consistent internal coordinates
5385
5467
  // So we use a transparent border and extend background
@@ -5411,7 +5493,7 @@ const edgeActionBtn = defineRecipe({
5411
5493
  translate: "auto",
5412
5494
  // '--ai-bg': 'var(--xy-edge-label-background-color)',
5413
5495
  "--ai-bg": "transparent",
5414
- "--ai-hover": `color-mix(in srgb , var(--xy-edge-label-background-color), {colors.likec4.mixColor} 10%)`,
5496
+ "--ai-hover": `color-mix(in oklab , var(--xy-edge-label-background-color), {colors.likec4.mixColor} 10%)`,
5415
5497
  "--ai-size": `var(--ai-size-sm)`,
5416
5498
  "--ai-radius": `{radii.sm}`,
5417
5499
  _hover: {
@@ -5430,6 +5512,9 @@ const edgeActionBtn = defineRecipe({
5430
5512
  width: "80%",
5431
5513
  height: "80%",
5432
5514
  strokeWidth: "2"
5515
+ },
5516
+ _print: {
5517
+ display: "none"
5433
5518
  }
5434
5519
  },
5435
5520
  variants: {},
@@ -5438,6 +5523,217 @@ const edgeActionBtn = defineRecipe({
5438
5523
  conditions: ["*"]
5439
5524
  }]
5440
5525
  });
5526
+ const parts$3 = defineParts({
5527
+ root: { selector: "&" },
5528
+ stepNumber: { selector: "& .likec4-edge-label__step-number" },
5529
+ contents: { selector: "& .likec4-edge-label__contents" },
5530
+ label: { selector: "& .likec4-edge-label__text" },
5531
+ technology: { selector: "& .likec4-edge-label__technology" }
5532
+ });
5533
+ const edgeLabel = defineRecipe({
5534
+ className: "likec4-edge-label",
5535
+ jsx: [],
5536
+ base: parts$3({
5537
+ root: {
5538
+ fontFamily: "likec4.relation",
5539
+ paddingBlock: "1",
5540
+ paddingInline: "1.5",
5541
+ display: "flex",
5542
+ flexDirection: "column",
5543
+ alignItems: "center",
5544
+ width: "max-content",
5545
+ maxWidth: "100%",
5546
+ gap: "0.5",
5547
+ color: "var(--xy-edge-label-color)",
5548
+ background: "var(--xy-edge-label-background-color)",
5549
+ border: "0px solid transparent",
5550
+ borderRadius: "4px"
5551
+ },
5552
+ stepNumber: {
5553
+ alignSelf: "stretch",
5554
+ flex: "0 0 auto",
5555
+ fontWeight: 600,
5556
+ fontSize: "14px",
5557
+ padding: "1",
5558
+ textAlign: "center",
5559
+ minWidth: "22px",
5560
+ borderTopLeftRadius: "4px",
5561
+ borderBottomLeftRadius: "4px",
5562
+ _only: {
5563
+ borderRadius: "4px",
5564
+ minWidth: "24px"
5565
+ },
5566
+ background: `[color-mix(in oklab, var(--likec4-palette-relation-label-bg), {colors.likec4.mixColor} 10%)]`,
5567
+ fontVariantNumeric: "tabular-nums",
5568
+ // _dark: {
5569
+ [':where([data-likec4-color="gray"]) &']: {
5570
+ _dark: {
5571
+ background: `[color-mix(in oklab, var(--likec4-palette-relation-label-bg), {colors.likec4.mixColor} 15%)]`
5572
+ }
5573
+ }
5574
+ },
5575
+ contents: {
5576
+ display: "contents",
5577
+ _empty: {
5578
+ display: "none !important"
5579
+ }
5580
+ },
5581
+ label: {
5582
+ whiteSpaceCollapse: "preserve-breaks",
5583
+ fontSize: "14px",
5584
+ lineHeight: "1.2",
5585
+ margin: "0"
5586
+ },
5587
+ technology: {
5588
+ textAlign: "center",
5589
+ whiteSpaceCollapse: "preserve-breaks",
5590
+ fontSize: "11px",
5591
+ lineHeight: "1",
5592
+ opacity: 0.75
5593
+ }
5594
+ }),
5595
+ variants: {
5596
+ pointerEvents: {
5597
+ none: parts$3({
5598
+ root: {
5599
+ pointerEvents: "none"
5600
+ }
5601
+ }),
5602
+ all: parts$3({
5603
+ root: {
5604
+ pointerEvents: "all"
5605
+ }
5606
+ })
5607
+ },
5608
+ cursor: {
5609
+ pointer: parts$3({
5610
+ root: {
5611
+ cursor: "pointer"
5612
+ }
5613
+ }),
5614
+ default: parts$3({
5615
+ root: {
5616
+ cursor: "default"
5617
+ }
5618
+ })
5619
+ },
5620
+ isStepEdge: {
5621
+ false: {},
5622
+ true: parts$3({
5623
+ root: {
5624
+ flexDirection: "row",
5625
+ gap: "1",
5626
+ padding: "0"
5627
+ },
5628
+ contents: {
5629
+ display: "flex",
5630
+ flexDirection: "column",
5631
+ alignItems: "center",
5632
+ paddingTop: "0.5",
5633
+ paddingRight: "1",
5634
+ paddingBottom: "1",
5635
+ gap: "0.5"
5636
+ },
5637
+ label: {
5638
+ py: "0.5",
5639
+ paddingRight: "0.5"
5640
+ }
5641
+ })
5642
+ }
5643
+ },
5644
+ defaultVariants: {
5645
+ pointerEvents: "all",
5646
+ isStepEdge: false,
5647
+ cursor: "default"
5648
+ },
5649
+ staticCss: [{
5650
+ conditions: ["*"],
5651
+ isStepEdge: ["*"],
5652
+ cursor: ["*"],
5653
+ pointerEvents: ["*"]
5654
+ }]
5655
+ });
5656
+ const edgePath = defineSlotRecipe({
5657
+ description: "Recipe for Edge Path",
5658
+ slots: ["path", "pathBg", "markersCtx", "middlePoint"],
5659
+ className: "likec4-edge",
5660
+ jsx: [],
5661
+ base: {
5662
+ path: {
5663
+ fill: "none",
5664
+ strokeDashoffset: 0,
5665
+ _noReduceGraphics: {
5666
+ animationStyle: "xyedgeAnimated",
5667
+ animationPlayState: "paused",
5668
+ transition: "stroke 130ms ease-out,stroke-width 130ms ease-out"
5669
+ },
5670
+ [`:where([data-edge-dir='back']) &`]: {
5671
+ animationDirection: "reverse"
5672
+ },
5673
+ _whenHovered: {
5674
+ _noReduceGraphics: {
5675
+ animationPlayState: "running",
5676
+ animationDelay: "450ms"
5677
+ }
5678
+ },
5679
+ [`:where(.selected, [data-edge-active='true'], [data-edge-animated='true']) &`]: {
5680
+ _noReduceGraphics: {
5681
+ animationPlayState: "running",
5682
+ animationDelay: "0ms"
5683
+ }
5684
+ },
5685
+ _whenDimmed: {
5686
+ animationPlayState: "paused"
5687
+ },
5688
+ _smallZoom: {
5689
+ animationName: "none"
5690
+ },
5691
+ _whenPanning: {
5692
+ strokeDasharray: "none !important",
5693
+ animationPlayState: "paused"
5694
+ }
5695
+ },
5696
+ pathBg: {
5697
+ pointerEvents: "none",
5698
+ fill: "none",
5699
+ strokeWidth: "calc(var(--xy-edge-stroke-width) + 2)",
5700
+ strokeOpacity: 0.08,
5701
+ _noReduceGraphics: {
5702
+ transitionProperty: "stroke-width, stroke-opacity",
5703
+ transitionDuration: "fast",
5704
+ transitionTimingFunction: "inOut"
5705
+ },
5706
+ _whenHovered: {
5707
+ transitionTimingFunction: "out",
5708
+ strokeWidth: "calc(var(--xy-edge-stroke-width) + 4)",
5709
+ strokeOpacity: 0.2
5710
+ },
5711
+ _whenSelected: {
5712
+ strokeWidth: "calc(var(--xy-edge-stroke-width) + 6)",
5713
+ strokeOpacity: 0.25,
5714
+ _whenHovered: {
5715
+ strokeOpacity: 0.4
5716
+ }
5717
+ }
5718
+ },
5719
+ // To fix issue with marker not inheriting color from path - we need to create container
5720
+ markersCtx: {
5721
+ fill: "[var(--xy-edge-stroke)]",
5722
+ stroke: "[var(--xy-edge-stroke)]"
5723
+ },
5724
+ middlePoint: {
5725
+ visibility: "hidden",
5726
+ offsetDistance: "50%",
5727
+ cx: 0,
5728
+ cy: 0,
5729
+ r: 4,
5730
+ pointerEvents: "none"
5731
+ }
5732
+ },
5733
+ staticCss: [{
5734
+ conditions: ["*"]
5735
+ }]
5736
+ });
5441
5737
  const parts$2 = defineParts({
5442
5738
  root: { selector: "&" },
5443
5739
  icon: { selector: "& [data-likec4-icon]" },
@@ -5587,6 +5883,9 @@ const elementNodeData = defineRecipe({
5587
5883
  },
5588
5884
  "& a": {
5589
5885
  pointerEvents: "all"
5886
+ },
5887
+ "& .markdown-alert": {
5888
+ mixBlendMode: "screen"
5590
5889
  }
5591
5890
  },
5592
5891
  technology: {
@@ -5635,9 +5934,10 @@ const elementShapeRecipe = defineRecipe({
5635
5934
  pointerEvents: "none",
5636
5935
  overflow: "visible",
5637
5936
  ["--likec4-palette-outline"]: {
5638
- _light: "color-mix(in srgb, var(--likec4-palette-stroke) 60%, var(--likec4-palette-hiContrast))",
5639
- _dark: "color-mix(in srgb, var(--likec4-palette-stroke) 30%, var(--likec4-palette-loContrast))"
5640
- }
5937
+ base: "oklab(from var(--likec4-palette-stroke) calc(l - 0.05) a b)",
5938
+ _dark: "oklab(from var(--likec4-palette-stroke) calc(l + 0.2) a b)"
5939
+ },
5940
+ ["--likec4-outline-size"]: `4px`
5641
5941
  },
5642
5942
  outline: {
5643
5943
  visibility: {
@@ -5666,11 +5966,11 @@ const elementShapeRecipe = defineRecipe({
5666
5966
  boxShadow: {
5667
5967
  base: [
5668
5968
  "0 2px 1px 0 rgb(0 0 0 / 21%)",
5669
- "0 1px 1px 0 color-mix(in srgb, var(--likec4-palette-stroke) 40%, transparent)",
5969
+ "0 1px 1px 0 color-mix(in oklab, var(--likec4-palette-stroke) 40%, transparent)",
5670
5970
  "0 5px 3px 0 rgb(0 0 0 / 10%)"
5671
5971
  ].join(","),
5672
5972
  _whenHovered: {
5673
- _light: `rgba(38, 57, 77, 95%) 0px 20px 30px -10px`,
5973
+ base: `rgba(38, 57, 77, 95%) 0px 20px 30px -10px`,
5674
5974
  _dark: `rgba(10, 11, 16, 90%) 0px 20px 30px -10px`
5675
5975
  },
5676
5976
  _whenSelected: "none",
@@ -5681,8 +5981,7 @@ const elementShapeRecipe = defineRecipe({
5681
5981
  base: "background-color 120ms linear, box-shadow 130ms {easings.inOut}",
5682
5982
  _reduceGraphicsOnPan: "none"
5683
5983
  },
5684
- transitionDelay: "0ms",
5685
- ["--likec4-outline-size"]: `4px`
5984
+ transitionDelay: "0ms"
5686
5985
  },
5687
5986
  multipleHtml: {
5688
5987
  position: "absolute",
@@ -5710,13 +6009,13 @@ const elementShapeRecipe = defineRecipe({
5710
6009
  outline: {
5711
6010
  position: "absolute",
5712
6011
  content: '" "',
5713
- top: `[calc(-1 * var(--likec4-outline-size))]`,
5714
- left: `[calc(-1 * var(--likec4-outline-size))]`,
5715
- width: `[calc(100% + 2 * var(--likec4-outline-size))]`,
5716
- height: `[calc(100% + 2 * var(--likec4-outline-size))]`,
6012
+ top: `[calc(-1 * var(--likec4-outline-size) - 1px)]`,
6013
+ left: `[calc(-1 * var(--likec4-outline-size) - 1px)]`,
6014
+ width: `[calc(100% + 2 * var(--likec4-outline-size) + 2px)]`,
6015
+ height: `[calc(100% + 2 * var(--likec4-outline-size) + 2px)]`,
5717
6016
  borderStyle: "solid",
5718
6017
  borderWidth: "var(--likec4-outline-size)",
5719
- borderRadius: "[10px]",
6018
+ borderRadius: "11px",
5720
6019
  borderColor: "var(--likec4-palette-outline)",
5721
6020
  animationStyle: "indicator"
5722
6021
  }
@@ -5730,7 +6029,7 @@ const elementShapeRecipe = defineRecipe({
5730
6029
  filter: {
5731
6030
  base: [
5732
6031
  "drop-shadow(0 2px 1px rgba(0, 0, 0, 0.21))",
5733
- "drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-palette-stroke) 40%, transparent))",
6032
+ "drop-shadow(0 1px 1px color-mix(in oklab, var(--likec4-palette-stroke) 40%, transparent))",
5734
6033
  "drop-shadow(0 5px 3px rgba(0, 0, 0, 0.1))"
5735
6034
  ].join("\n"),
5736
6035
  _whenHovered: [
@@ -5751,7 +6050,7 @@ const elementShapeRecipe = defineRecipe({
5751
6050
  fill: "var(--likec4-palette-stroke)"
5752
6051
  },
5753
6052
  '& [data-likec4-fill="mix-stroke"]': {
5754
- fill: "[color-mix(in srgb, var(--likec4-palette-stroke) 90%, var(--likec4-palette-fill))]"
6053
+ fill: "[color-mix(in oklab, var(--likec4-palette-stroke) 90%, var(--likec4-palette-fill))]"
5755
6054
  }
5756
6055
  },
5757
6056
  multipleSvg: {
@@ -5781,7 +6080,7 @@ const elementShapeRecipe = defineRecipe({
5781
6080
  outline: {
5782
6081
  stroke: "var(--likec4-palette-outline)",
5783
6082
  fill: "[none]",
5784
- strokeWidth: 8,
6083
+ strokeWidth: 3,
5785
6084
  strokeOpacity: 0.8,
5786
6085
  animationStyle: "indicator"
5787
6086
  }
@@ -5829,7 +6128,10 @@ const likec4tag = defineRecipe({
5829
6128
  filter: "invert(1) grayscale(1) brightness(1.3) contrast(1000)",
5830
6129
  background: "inherit",
5831
6130
  backgroundClip: "text",
5832
- mixBlendMode: "plus-lighter"
6131
+ mixBlendMode: {
6132
+ base: "plus-lighter",
6133
+ _print: "normal!"
6134
+ }
5833
6135
  }
5834
6136
  }
5835
6137
  }
@@ -5856,12 +6158,38 @@ const markdownBlock = defineRecipe({
5856
6158
  "--typography-spacing": "calc(0.75 * var(--text-fz-md))",
5857
6159
  "--text-fw-headings": "600",
5858
6160
  "--code-background": {
5859
- _light: "var(--mantine-color-gray-2)",
5860
- _dark: "var(--mantine-color-dark-8)"
6161
+ base: mantine.colors.gray[2],
6162
+ _dark: mantine.colors.dark[8]
5861
6163
  },
5862
6164
  "--code-color": {
5863
- _light: "var(--mantine-color-black)",
5864
- _dark: "var(--mantine-color-white)"
6165
+ base: mantine.colors.black,
6166
+ _dark: mantine.colors.white
6167
+ },
6168
+ _dark: {
6169
+ "--color-border-default": "#30363d",
6170
+ "--color-accent-fg": "#58a6ff",
6171
+ "--color-accent-emphasis": "#1f6feb",
6172
+ "--color-danger-fg": "#f85149",
6173
+ "--color-danger-emphasis": "#da3633",
6174
+ "--color-attention-fg": "#d29922",
6175
+ "--color-attention-emphasis": "#9e6a03",
6176
+ "--color-done-fg": "#a371f7",
6177
+ "--color-done-emphasis": "#8957e5",
6178
+ "--color-success-fg": "#3fb950",
6179
+ "--color-success-emphasis": "#238636"
6180
+ },
6181
+ _light: {
6182
+ "--color-border-default": "#d0d7de",
6183
+ "--color-accent-fg": "#0969da",
6184
+ "--color-accent-emphasis": "#0969da",
6185
+ "--color-danger-fg": "#d1242f",
6186
+ "--color-danger-emphasis": "#cf222e",
6187
+ "--color-attention-fg": "#9a6700",
6188
+ "--color-attention-emphasis": "#9a6700",
6189
+ "--color-done-fg": "#8250df",
6190
+ "--color-done-emphasis": "#8250df",
6191
+ "--color-success-fg": "#1a7f37",
6192
+ "--color-success-emphasis": "#1f883d"
5865
6193
  },
5866
6194
  fontSize: "var(--text-fz-md)",
5867
6195
  lineHeight: "var(--mantine-line-height)",
@@ -5923,18 +6251,16 @@ const markdownBlock = defineRecipe({
5923
6251
  },
5924
6252
  "& :where(mark)": {
5925
6253
  fontSize: "var(--text-fz-md)",
5926
- _light: {
5927
- backgroundColor: "mantine.colors.yellow[2]",
5928
- color: "inherit"
5929
- },
6254
+ backgroundColor: mantine.colors.yellow[2],
6255
+ color: "inherit",
5930
6256
  _dark: {
5931
- backgroundColor: "mantine.colors.yellow[5]",
5932
- color: "var(--mantine-color-black)"
6257
+ backgroundColor: mantine.colors.yellow[5],
6258
+ color: mantine.colors.black
5933
6259
  }
5934
6260
  },
5935
6261
  "& :where(a)": {
5936
6262
  fontSize: "var(--text-fz-md)",
5937
- color: "var(--mantine-color-anchor)",
6263
+ color: mantine.colors.anchor,
5938
6264
  textDecoration: "none",
5939
6265
  fontWeight: "500",
5940
6266
  _hover: {
@@ -5947,8 +6273,8 @@ const markdownBlock = defineRecipe({
5947
6273
  border: "none",
5948
6274
  borderBottom: "1px solid",
5949
6275
  borderColor: {
5950
- _light: "mantine.colors.gray[3]",
5951
- _dark: "mantine.colors.dark[3]"
6276
+ base: mantine.colors.gray[3],
6277
+ _dark: mantine.colors.dark[3]
5952
6278
  }
5953
6279
  },
5954
6280
  "& :where(pre)": {
@@ -6032,12 +6358,80 @@ const markdownBlock = defineRecipe({
6032
6358
  borderRadius: "var(--mantine-radius-sm)",
6033
6359
  padding: "xs",
6034
6360
  backgroundColor: {
6035
- _light: "var(--mantine-color-gray-1)",
6036
- _dark: "var(--mantine-color-dark-5)"
6361
+ base: mantine.colors.gray[1],
6362
+ _dark: mantine.colors.dark[5]
6037
6363
  },
6038
6364
  "&:not(:first-child)": {
6039
6365
  marginTop: "var(--typography-spacing)"
6040
6366
  }
6367
+ },
6368
+ "& .markdown-alert": {
6369
+ borderLeft: ".25em solid var(--borderColor-default, var(--color-border-default))",
6370
+ color: "inherit",
6371
+ marginBottom: "calc(var(--typography-spacing) * 1.5)",
6372
+ paddingLeft: "1em",
6373
+ paddingRight: ".5em",
6374
+ "&:last-child": {
6375
+ marginBottom: "0!important"
6376
+ },
6377
+ "& .markdown-alert-title": {
6378
+ alignItems: "center",
6379
+ display: "flex",
6380
+ fontSize: "var(--text-fz-md)",
6381
+ fontWeight: "500",
6382
+ lineHeight: "1.5",
6383
+ marginBottom: "0.1em",
6384
+ gap: "2"
6385
+ },
6386
+ "& .markdown-alert-title svg": {
6387
+ height: "var(--text-fz-md)",
6388
+ fill: "currentColor"
6389
+ },
6390
+ "&.markdown-alert-note": {
6391
+ borderLeftColor: "var(--borderColor-accent-emphasis,var(--color-accent-emphasis))"
6392
+ },
6393
+ "&.markdown-alert-note .markdown-alert-title": {
6394
+ color: [
6395
+ "var(--color-accent-fg)",
6396
+ "var(--fgColor-accent,var(--color-accent-fg))"
6397
+ ]
6398
+ },
6399
+ "&.markdown-alert-tip": {
6400
+ borderLeftColor: "var(--borderColor-success-emphasis,var(--color-success-emphasis))"
6401
+ },
6402
+ "&.markdown-alert-tip .markdown-alert-title": {
6403
+ color: [
6404
+ "var(--color-success-fg)",
6405
+ "var(--fgColor-success,var(--color-success-fg))"
6406
+ ]
6407
+ },
6408
+ "&.markdown-alert-important": {
6409
+ borderLeftColor: "var(--borderColor-done-emphasis,var(--color-done-emphasis))"
6410
+ },
6411
+ "&.markdown-alert-important .markdown-alert-title": {
6412
+ color: [
6413
+ "var(--color-done-fg)",
6414
+ "var(--fgColor-done,var(--color-done-fg))"
6415
+ ]
6416
+ },
6417
+ "&.markdown-alert-warning": {
6418
+ borderLeftColor: "var(--borderColor-attention-emphasis,var(--color-attention-emphasis))"
6419
+ },
6420
+ "&.markdown-alert-warning .markdown-alert-title": {
6421
+ color: [
6422
+ "var(--color-attention-fg)",
6423
+ "var(--fgColor-attention,var(--color-attention-fg))"
6424
+ ]
6425
+ },
6426
+ "&.markdown-alert-caution": {
6427
+ borderLeftColor: "var(--borderColor-danger-emphasis,var(--color-danger-emphasis))"
6428
+ },
6429
+ "&.markdown-alert-caution .markdown-alert-title": {
6430
+ color: [
6431
+ "var(--color-danger-fg)",
6432
+ "var(--fgColor-danger,var(--color-danger-fg))"
6433
+ ]
6434
+ }
6041
6435
  }
6042
6436
  },
6043
6437
  variants: {
@@ -6046,15 +6440,18 @@ const markdownBlock = defineRecipe({
6046
6440
  */
6047
6441
  uselikec4palette: {
6048
6442
  true: {
6049
- "--code-background": "color-mix(in srgb , var(--likec4-palette-stroke) 70%, transparent)",
6443
+ "--code-background": "color-mix(in oklab , var(--likec4-palette-stroke) 70%, transparent)",
6050
6444
  "--code-color": "var(--likec4-palette-loContrast)",
6051
6445
  "--typography-spacing": "calc(0.5 * var(--text-fz-md))",
6052
6446
  "& :where(a)": {
6053
6447
  color: "var(--likec4-palette-fill)/45",
6054
- mixBlendMode: "difference"
6448
+ mixBlendMode: {
6449
+ base: "difference",
6450
+ _print: "normal!"
6451
+ }
6055
6452
  },
6056
6453
  "& :where(strong)": {
6057
- color: `color-mix(in srgb , var(--likec4-palette-hiContrast) 50%, var(--likec4-palette-loContrast))`
6454
+ color: `color-mix(in oklab , var(--likec4-palette-hiContrast) 50%, var(--likec4-palette-loContrast))`
6058
6455
  },
6059
6456
  "& :where(blockquote)": {
6060
6457
  padding: "xxs",
@@ -6252,7 +6649,7 @@ const overlay = defineRecipe({
6252
6649
  dialog: {
6253
6650
  _backdrop: {
6254
6651
  backdropFilter: `blur(var(${backdropBlur}))`,
6255
- background: `color-mix(in srgb, {colors.likec4.overlay.backdrop} var(${backdropOpacity}), transparent)`
6652
+ background: `color-mix(in oklab, {colors.likec4.overlay.backdrop} var(${backdropOpacity}), transparent)`
6256
6653
  }
6257
6654
  }
6258
6655
  }
@@ -6272,6 +6669,8 @@ const recipes = {
6272
6669
  actionBtn,
6273
6670
  compoundNode,
6274
6671
  edgeActionBtn,
6672
+ edgeLabel,
6673
+ edgePath,
6275
6674
  elementNodeData,
6276
6675
  elementShapeRecipe,
6277
6676
  likec4tag,
@@ -6284,6 +6683,16 @@ function mixTransparent(color, percentage = 50) {
6284
6683
  }
6285
6684
  const semanticTokens = defineSemanticTokens({
6286
6685
  colors: {
6686
+ text: {
6687
+ DEFAULT: {
6688
+ description: "Default text color",
6689
+ value: mantine.colors.text
6690
+ },
6691
+ dimmed: {
6692
+ description: "Dimmed text color",
6693
+ value: mantine.colors.dimmed
6694
+ }
6695
+ },
6287
6696
  likec4: {
6288
6697
  background: {
6289
6698
  DEFAULT: {
@@ -6331,7 +6740,7 @@ const semanticTokens = defineSemanticTokens({
6331
6740
  description: "LikeC4 panel border color",
6332
6741
  value: {
6333
6742
  base: "transparent",
6334
- _light: mixTransparent(mantine.colors.defaultBorder, 30)
6743
+ _light: mantine.colors.gray[2]
6335
6744
  }
6336
6745
  },
6337
6746
  text: {
@@ -6452,7 +6861,7 @@ const semanticTokens = defineSemanticTokens({
6452
6861
  outline: {
6453
6862
  value: {
6454
6863
  _light: mantine.colors.orange[8],
6455
- _dark: mantine.colors.orange[6]
6864
+ _dark: mixTransparent(mantine.colors.orange[6], 80)
6456
6865
  }
6457
6866
  }
6458
6867
  },
@@ -6464,129 +6873,6 @@ const semanticTokens = defineSemanticTokens({
6464
6873
  }
6465
6874
  }
6466
6875
  });
6467
- const edgeLabel = defineSlotRecipe({
6468
- className: "likec4-edge-label",
6469
- slots: ["root", "stepNumber", "labelContents", "labelText", "labelTechnology"],
6470
- base: {
6471
- root: {
6472
- fontFamily: "likec4.relation",
6473
- paddingBlock: "1",
6474
- paddingInline: "1.5",
6475
- display: "flex",
6476
- flexDirection: "column",
6477
- alignItems: "center",
6478
- width: "max-content",
6479
- lineHeight: "[1.2]",
6480
- maxWidth: "100%",
6481
- gap: "0.5",
6482
- color: "var(--xy-edge-label-color)",
6483
- background: "var(--xy-edge-label-background-color)",
6484
- border: "0px solid transparent",
6485
- borderRadius: "4px"
6486
- },
6487
- stepNumber: {
6488
- alignSelf: "stretch",
6489
- flex: "0 0 auto",
6490
- fontWeight: 600,
6491
- fontSize: "14px",
6492
- padding: "1",
6493
- textAlign: "center",
6494
- minWidth: "22px",
6495
- borderTopLeftRadius: "4px",
6496
- borderBottomLeftRadius: "4px",
6497
- _only: {
6498
- borderRadius: "4px",
6499
- minWidth: "24px"
6500
- },
6501
- background: `[color-mix(in srgb, var(--likec4-palette-relation-label-bg), {colors.likec4.mixColor} 10%)]`,
6502
- fontVariantNumeric: "tabular-nums",
6503
- // _dark: {
6504
- [':where([data-likec4-color="gray"]) &']: {
6505
- _dark: {
6506
- background: `[color-mix(in srgb, var(--likec4-palette-relation-label-bg), {colors.likec4.mixColor} 15%)]`
6507
- }
6508
- }
6509
- },
6510
- labelContents: {
6511
- display: "contents",
6512
- _empty: {
6513
- display: "none !important"
6514
- }
6515
- },
6516
- labelText: {
6517
- whiteSpaceCollapse: "preserve-breaks",
6518
- fontSize: "14px",
6519
- margin: "0"
6520
- },
6521
- labelTechnology: {
6522
- textAlign: "center",
6523
- whiteSpaceCollapse: "preserve-breaks",
6524
- fontSize: "11px",
6525
- lineHeight: "[1]",
6526
- opacity: 0.75
6527
- }
6528
- },
6529
- variants: {
6530
- pointerEvents: {
6531
- none: {
6532
- root: {
6533
- pointerEvents: "none"
6534
- }
6535
- },
6536
- all: {
6537
- root: {
6538
- pointerEvents: "all"
6539
- }
6540
- }
6541
- },
6542
- cursor: {
6543
- pointer: {
6544
- root: {
6545
- cursor: "pointer"
6546
- }
6547
- },
6548
- default: {
6549
- root: {
6550
- cursor: "default"
6551
- }
6552
- }
6553
- },
6554
- isStepEdge: {
6555
- false: {},
6556
- true: {
6557
- root: {
6558
- flexDirection: "row",
6559
- gap: "1",
6560
- padding: "0"
6561
- },
6562
- labelContents: {
6563
- display: "flex",
6564
- flexDirection: "column",
6565
- alignItems: "center",
6566
- paddingTop: "0.5",
6567
- paddingRight: "1",
6568
- paddingBottom: "1",
6569
- gap: "0.5"
6570
- },
6571
- labelText: {
6572
- py: "0.5",
6573
- paddingRight: "0.5"
6574
- }
6575
- }
6576
- }
6577
- },
6578
- defaultVariants: {
6579
- pointerEvents: "all",
6580
- isStepEdge: false,
6581
- cursor: "default"
6582
- },
6583
- staticCss: [{
6584
- conditions: ["*"],
6585
- isStepEdge: ["*"],
6586
- cursor: ["*"],
6587
- pointerEvents: ["*"]
6588
- }]
6589
- });
6590
6876
  const navigationLink = defineSlotRecipe({
6591
6877
  className: "likec4-navlink",
6592
6878
  description: "Navigation Link (classes for Mantine NavLink)",
@@ -6654,10 +6940,32 @@ const navigationLink = defineSlotRecipe({
6654
6940
  });
6655
6941
  const slotRecipes = {
6656
6942
  __proto__: null,
6657
- edgeLabel,
6658
6943
  navigationLink
6659
6944
  };
6660
6945
  const textStyles = defineTextStyles({
6946
+ dimmed: {
6947
+ xxs: {
6948
+ value: {
6949
+ fontSize: "0.625rem",
6950
+ lineHeight: "1rem",
6951
+ color: "text.dimmed"
6952
+ }
6953
+ },
6954
+ xs: {
6955
+ value: {
6956
+ fontSize: "0.75rem",
6957
+ lineHeight: "1rem",
6958
+ color: "text.dimmed"
6959
+ }
6960
+ },
6961
+ sm: {
6962
+ value: {
6963
+ fontSize: "0.875rem",
6964
+ lineHeight: "1.25rem",
6965
+ color: "text.dimmed"
6966
+ }
6967
+ }
6968
+ },
6661
6969
  xxs: {
6662
6970
  value: {
6663
6971
  fontSize: "0.625rem",