@likec4/styles 1.42.1 → 1.44.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
@@ -3972,26 +3972,6 @@ const animationStyles = defineAnimationStyles({
3972
3972
  }
3973
3973
  }
3974
3974
  });
3975
- const root = ".likec4-root";
3976
- const radixColors = [
3977
- "yellow",
3978
- "orange",
3979
- "amber",
3980
- "tomato",
3981
- "red",
3982
- "ruby",
3983
- "crimson",
3984
- "pink",
3985
- "pink",
3986
- "purple",
3987
- "violet",
3988
- "indigo",
3989
- "blue",
3990
- "teal",
3991
- "grass",
3992
- "lime"
3993
- ];
3994
- const iconSize$1 = "--likec4-icon-size";
3995
3975
  const breakpoints = {
3996
3976
  xs: "36em",
3997
3977
  sm: "48em",
@@ -4768,6 +4748,57 @@ const paletteGlobalVars = {
4768
4748
  "--likec4-palette-relation-label": "#C6C6C6",
4769
4749
  "--likec4-palette-relation-label-bg": "#18191b"
4770
4750
  };
4751
+ const mantine = {
4752
+ colors: {
4753
+ text: "var(--mantine-color-text)",
4754
+ body: "var(--mantine-color-body)",
4755
+ defaultBorder: "var(--mantine-color-default-border)",
4756
+ dimmed: "var(--mantine-color-dimmed)",
4757
+ dark: {
4758
+ "4": "var(--mantine-color-dark-4)",
4759
+ "6": "var(--mantine-color-dark-6)",
4760
+ "7": "var(--mantine-color-dark-7)",
4761
+ "8": "var(--mantine-color-dark-8)"
4762
+ },
4763
+ gray: {
4764
+ "1": "var(--mantine-color-gray-1)",
4765
+ "2": "var(--mantine-color-gray-2)",
4766
+ "4": "var(--mantine-color-gray-4)"
4767
+ },
4768
+ green: {
4769
+ "6": "var(--mantine-color-green-6)"
4770
+ },
4771
+ orange: {
4772
+ "1": "var(--mantine-color-orange-1)",
4773
+ "3": "var(--mantine-color-orange-3)",
4774
+ "5": "var(--mantine-color-orange-5)",
4775
+ "6": "var(--mantine-color-orange-6)",
4776
+ "7": "var(--mantine-color-orange-7)",
4777
+ "8": "var(--mantine-color-orange-8)",
4778
+ "9": "var(--mantine-color-orange-9)"
4779
+ }
4780
+ }
4781
+ };
4782
+ const DefaultTagColors = [
4783
+ "tomato",
4784
+ "grass",
4785
+ "blue",
4786
+ "ruby",
4787
+ "orange",
4788
+ "indigo",
4789
+ "pink",
4790
+ "teal",
4791
+ "purple",
4792
+ "amber",
4793
+ "crimson",
4794
+ "red",
4795
+ "lime",
4796
+ "yellow",
4797
+ "violet"
4798
+ ];
4799
+ const root = ".likec4-root";
4800
+ const radixColors = [...DefaultTagColors];
4801
+ const iconSize$1 = "--likec4-icon-size";
4771
4802
  const conditions = {
4772
4803
  extend: {
4773
4804
  ...conditions$1,
@@ -4797,6 +4828,7 @@ const conditions = {
4797
4828
  compoundTransparent: ":where([data-compound-transparent]) &",
4798
4829
  edgeActive: ':where([data-likec4-edge-active="true"]) &',
4799
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) &",
4800
4832
  whenSelected: ":where(.react-flow__node, .react-flow__edge):is(.selected) &",
4801
4833
  whenDimmed: ":where(.react-flow__node, .react-flow__edge):has([data-likec4-dimmed]) &",
4802
4834
  whenFocused: ":where(.react-flow__node, .react-flow__edge):is(:focus-visible, :focus, :focus-within) &"
@@ -4964,28 +4996,49 @@ const layerStyles = defineLayerStyles({
4964
4996
  }
4965
4997
  },
4966
4998
  panel: {
4967
- description: "LikeC4 panel layer",
4968
- value: {
4969
- paddingBlock: "1",
4970
- paddingInline: "xs",
4971
- borderRadius: "0",
4972
- backgroundColor: "likec4.panel.bg",
4973
- border: "1px solid {colors.likec4.panel.border}",
4974
- "@/sm": {
4975
- boxShadow: "lg",
4976
- borderRadius: "md",
4977
- padding: "2xs"
4978
- },
4979
- _whenPanning: {
4980
- boxShadow: "none",
4981
- borderRadius: "0"
4999
+ DEFAULT: {
5000
+ description: "LikeC4 panel layer",
5001
+ value: {
5002
+ padding: "1",
5003
+ borderRadius: "0",
5004
+ backgroundColor: "likec4.panel.bg",
5005
+ border: "1px solid {colors.likec4.panel.border}",
5006
+ "@/sm": {
5007
+ boxShadow: "lg",
5008
+ borderRadius: "md",
5009
+ paddingInline: "2"
5010
+ },
5011
+ _whenPanning: {
5012
+ boxShadow: "none",
5013
+ borderRadius: "0"
5014
+ }
5015
+ }
5016
+ },
5017
+ action: {
5018
+ description: "LikeC4 panel action layer",
5019
+ value: {
5020
+ color: {
5021
+ base: "likec4.panel.action",
5022
+ _notDisabled: {
5023
+ _hover: "likec4.panel.action.hover"
5024
+ }
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"
5033
+ }
5034
+ }
4982
5035
  }
4983
5036
  }
4984
5037
  },
4985
5038
  dropdown: {
4986
5039
  description: "LikeC4 dropdown layer",
4987
5040
  value: {
4988
- padding: "xxs",
5041
+ padding: "2",
4989
5042
  backgroundColor: "likec4.dropdown.bg",
4990
5043
  border: "1px solid {colors.likec4.dropdown.border}",
4991
5044
  boxShadow: "lg",
@@ -5085,8 +5138,8 @@ const actionBtn = defineRecipe({
5085
5138
  variant: "filled"
5086
5139
  },
5087
5140
  staticCss: [{
5088
- size: ["md"],
5089
- radius: ["md"],
5141
+ size: ["*"],
5142
+ radius: ["*"],
5090
5143
  variant: ["*"],
5091
5144
  conditions: ["*"]
5092
5145
  }]
@@ -5188,7 +5241,7 @@ const compoundNode = defineRecipe({
5188
5241
  // 6px
5189
5242
  left: "2.5",
5190
5243
  top: "0.5",
5191
- right: "[30px]",
5244
+ right: "30px",
5192
5245
  width: "auto",
5193
5246
  minHeight: "30px",
5194
5247
  [`:where(.react-flow__node.draggable) &`]: {
@@ -6043,10 +6096,10 @@ const navigationPanelActionIcon = defineRecipe({
6043
6096
  description: "ActionIcon for navigation panel",
6044
6097
  base: {
6045
6098
  color: {
6046
- base: "likec4.panel.action-icon.text",
6047
- _disabled: "likec4.panel.action-icon.text.disabled",
6099
+ base: "likec4.panel.action",
6100
+ _disabled: "likec4.panel.action.disabled",
6048
6101
  _notDisabled: {
6049
- _hover: "likec4.panel.action-icon.text.hover"
6102
+ _hover: "likec4.panel.action.hover"
6050
6103
  }
6051
6104
  },
6052
6105
  _disabled: {
@@ -6057,24 +6110,44 @@ const navigationPanelActionIcon = defineRecipe({
6057
6110
  variant: {
6058
6111
  "default": {
6059
6112
  backgroundColor: {
6060
- base: "[transparent]",
6113
+ base: "transparent",
6061
6114
  _notDisabled: {
6062
- _hover: "likec4.panel.action-icon.bg.hover"
6115
+ _hover: "likec4.panel.action.bg.hover"
6063
6116
  }
6064
6117
  }
6065
6118
  },
6066
6119
  "filled": {
6067
6120
  backgroundColor: {
6068
- base: "likec4.panel.action-icon.bg",
6121
+ base: "likec4.panel.action.bg",
6069
6122
  _notDisabled: {
6070
- _hover: "likec4.panel.action-icon.bg.hover"
6123
+ _hover: "likec4.panel.action.bg.hover"
6071
6124
  }
6072
6125
  }
6073
6126
  }
6127
+ },
6128
+ type: {
6129
+ "default": {},
6130
+ "warning": {
6131
+ color: {
6132
+ base: "likec4.panel.action.warning",
6133
+ _hover: "likec4.panel.action.warning.hover"
6134
+ }
6135
+ }
6074
6136
  }
6075
6137
  },
6138
+ compoundVariants: [{
6139
+ type: "warning",
6140
+ variant: "filled",
6141
+ css: {
6142
+ backgroundColor: {
6143
+ base: "likec4.panel.action.warning.bg",
6144
+ _hover: "likec4.panel.action.warning.bg.hover"
6145
+ }
6146
+ }
6147
+ }],
6076
6148
  defaultVariants: {
6077
- variant: "default"
6149
+ variant: "default",
6150
+ type: "default"
6078
6151
  },
6079
6152
  staticCss: [{
6080
6153
  variant: ["*"],
@@ -6206,19 +6279,22 @@ const recipes = {
6206
6279
  navigationPanelActionIcon,
6207
6280
  overlay
6208
6281
  };
6282
+ function mixTransparent(color, percentage = 50) {
6283
+ return `color-mix(in oklab, ${color} ${percentage}%, transparent ${100 - percentage}%)`;
6284
+ }
6209
6285
  const semanticTokens = defineSemanticTokens({
6210
6286
  colors: {
6211
6287
  likec4: {
6212
6288
  background: {
6213
6289
  DEFAULT: {
6214
6290
  description: "Background color",
6215
- value: "var(--mantine-color-body)"
6291
+ value: mantine.colors.body
6216
6292
  },
6217
6293
  pattern: {
6218
6294
  description: "Background pattern color",
6219
6295
  value: {
6220
- _dark: "{colors.mantine.colors.dark[4]/70}",
6221
- _light: "{colors.mantine.colors.gray[4]}"
6296
+ _dark: mixTransparent(mantine.colors.dark[4], 70),
6297
+ _light: mantine.colors.gray[4]
6222
6298
  }
6223
6299
  }
6224
6300
  },
@@ -6246,8 +6322,8 @@ const semanticTokens = defineSemanticTokens({
6246
6322
  DEFAULT: {
6247
6323
  description: "LikeC4 panel background color",
6248
6324
  value: {
6249
- base: `{colors.mantine.colors.body}`,
6250
- _dark: `{colors.mantine.colors.dark[6]}`
6325
+ base: mantine.colors.body,
6326
+ _dark: mantine.colors.dark[6]
6251
6327
  }
6252
6328
  }
6253
6329
  },
@@ -6255,37 +6331,74 @@ const semanticTokens = defineSemanticTokens({
6255
6331
  description: "LikeC4 panel border color",
6256
6332
  value: {
6257
6333
  base: "transparent",
6258
- _light: `{colors.mantine.colors.defaultBorder/30}`
6334
+ _light: mixTransparent(mantine.colors.defaultBorder, 30)
6259
6335
  }
6260
6336
  },
6261
- "action-icon": {
6262
- text: {
6263
- DEFAULT: {
6264
- description: "LikeC4 action icon text color",
6265
- value: "color-mix(in srgb, var(--mantine-color-text) 80%, transparent)"
6266
- },
6267
- hover: {
6268
- description: "LikeC4 action icon text color on hover",
6269
- value: "var(--mantine-color-bright)"
6270
- },
6271
- disabled: {
6272
- description: "LikeC4 action icon text color when disabled",
6273
- value: "var(--mantine-color-dimmed)"
6274
- }
6337
+ text: {
6338
+ DEFAULT: {
6339
+ description: "LikeC4 panel text color",
6340
+ value: mixTransparent(mantine.colors.text, 85)
6341
+ },
6342
+ dimmed: {
6343
+ description: "LikeC4 panel dimmed text color",
6344
+ value: mantine.colors.dimmed
6345
+ }
6346
+ },
6347
+ action: {
6348
+ DEFAULT: {
6349
+ description: "LikeC4 panel action text color (Links/Icons)",
6350
+ value: mixTransparent(mantine.colors.text, 90)
6351
+ },
6352
+ disabled: {
6353
+ description: "LikeC4 action icon text color when disabled",
6354
+ value: mantine.colors.dimmed
6355
+ },
6356
+ hover: {
6357
+ description: "LikeC4 panel action text color on hover",
6358
+ value: "var(--mantine-color-bright)"
6275
6359
  },
6276
6360
  bg: {
6277
6361
  DEFAULT: {
6278
6362
  description: "LikeC4 action icon background color",
6279
6363
  value: {
6280
- base: "{colors.mantine.colors.gray[1]}",
6281
- _dark: "{colors.mantine.colors.dark[7]/70}"
6364
+ base: mantine.colors.gray[1],
6365
+ _dark: mixTransparent(mantine.colors.dark[7], 70)
6282
6366
  }
6283
6367
  },
6284
6368
  hover: {
6285
6369
  description: "LikeC4 action icon background color on hover",
6286
6370
  value: {
6287
- base: "{colors.mantine.colors.gray[2]}",
6288
- _dark: "{colors.mantine.colors.dark[8]}"
6371
+ base: mantine.colors.gray[2],
6372
+ _dark: mantine.colors.dark[8]
6373
+ }
6374
+ }
6375
+ },
6376
+ warning: {
6377
+ DEFAULT: {
6378
+ description: "LikeC4 action icon text color",
6379
+ value: mantine.colors.orange[6]
6380
+ },
6381
+ hover: {
6382
+ description: "LikeC4 action icon text color on hover",
6383
+ value: {
6384
+ base: mantine.colors.orange[7],
6385
+ _dark: mantine.colors.orange[5]
6386
+ }
6387
+ },
6388
+ bg: {
6389
+ DEFAULT: {
6390
+ description: "LikeC4 action icon background color",
6391
+ value: {
6392
+ base: mixTransparent(mantine.colors.orange[1], 90),
6393
+ _dark: mixTransparent(mantine.colors.orange[9], 10)
6394
+ }
6395
+ },
6396
+ hover: {
6397
+ description: "LikeC4 action icon background color on hover",
6398
+ value: {
6399
+ base: mixTransparent(mantine.colors.orange[3], 70),
6400
+ _dark: mixTransparent(mantine.colors.orange[9], 20)
6401
+ }
6289
6402
  }
6290
6403
  }
6291
6404
  }
@@ -6297,7 +6410,7 @@ const semanticTokens = defineSemanticTokens({
6297
6410
  description: "LikeC4 dropdown background color",
6298
6411
  value: {
6299
6412
  base: `#FFF`,
6300
- _dark: `{colors.mantine.colors.dark[6]}`
6413
+ _dark: mantine.colors.dark[6]
6301
6414
  }
6302
6415
  }
6303
6416
  },
@@ -6319,12 +6432,33 @@ const semanticTokens = defineSemanticTokens({
6319
6432
  body: {
6320
6433
  DEFAULT: {
6321
6434
  description: "LikeC4 overlay body color",
6322
- value: `var(--mantine-color-body)`
6435
+ value: mantine.colors.body
6323
6436
  }
6324
6437
  },
6325
6438
  border: {
6326
6439
  description: "LikeC4 overlay border color",
6327
- value: "{colors.mantine.colors.defaultBorder/50}"
6440
+ value: mixTransparent(mantine.colors.defaultBorder, 50)
6441
+ }
6442
+ },
6443
+ compare: {
6444
+ manual: {
6445
+ DEFAULT: {
6446
+ description: "LikeC4 Compare color for manual changes",
6447
+ value: {
6448
+ _light: mantine.colors.orange[8],
6449
+ _dark: mantine.colors.orange[6]
6450
+ }
6451
+ },
6452
+ outline: {
6453
+ value: {
6454
+ _light: mantine.colors.orange[8],
6455
+ _dark: mantine.colors.orange[6]
6456
+ }
6457
+ }
6458
+ },
6459
+ latest: {
6460
+ description: "LikeC4 Compare color for latest changes",
6461
+ value: mantine.colors.green[6]
6328
6462
  }
6329
6463
  }
6330
6464
  }
@@ -6335,7 +6469,6 @@ const edgeLabel = defineSlotRecipe({
6335
6469
  slots: ["root", "stepNumber", "labelContents", "labelText", "labelTechnology"],
6336
6470
  base: {
6337
6471
  root: {
6338
- pointerEvents: "all",
6339
6472
  fontFamily: "likec4.relation",
6340
6473
  paddingBlock: "1",
6341
6474
  paddingInline: "1.5",
@@ -6394,6 +6527,18 @@ const edgeLabel = defineSlotRecipe({
6394
6527
  }
6395
6528
  },
6396
6529
  variants: {
6530
+ pointerEvents: {
6531
+ none: {
6532
+ root: {
6533
+ pointerEvents: "none"
6534
+ }
6535
+ },
6536
+ all: {
6537
+ root: {
6538
+ pointerEvents: "all"
6539
+ }
6540
+ }
6541
+ },
6397
6542
  cursor: {
6398
6543
  pointer: {
6399
6544
  root: {
@@ -6431,12 +6576,15 @@ const edgeLabel = defineSlotRecipe({
6431
6576
  }
6432
6577
  },
6433
6578
  defaultVariants: {
6579
+ pointerEvents: "all",
6434
6580
  isStepEdge: false,
6435
6581
  cursor: "default"
6436
6582
  },
6437
6583
  staticCss: [{
6438
6584
  conditions: ["*"],
6439
- isStepEdge: ["*"]
6585
+ isStepEdge: ["*"],
6586
+ cursor: ["*"],
6587
+ pointerEvents: ["*"]
6440
6588
  }]
6441
6589
  });
6442
6590
  const navigationLink = defineSlotRecipe({
@@ -6547,6 +6695,29 @@ const textStyles = defineTextStyles({
6547
6695
  }
6548
6696
  },
6549
6697
  likec4: {
6698
+ panel: {
6699
+ DEFAULT: {
6700
+ description: "Text style for panel content",
6701
+ value: {
6702
+ fontSize: "0.875rem",
6703
+ lineHeight: "1.25rem",
6704
+ fontWeight: 500,
6705
+ color: "likec4.panel.text"
6706
+ }
6707
+ },
6708
+ action: {
6709
+ description: "Text style for panel action items",
6710
+ value: {
6711
+ fontSize: "0.875rem",
6712
+ lineHeight: "1.25rem",
6713
+ fontWeight: 500,
6714
+ color: {
6715
+ base: "likec4.panel.action",
6716
+ _hover: "likec4.panel.action.hover"
6717
+ }
6718
+ }
6719
+ }
6720
+ },
6550
6721
  node: {
6551
6722
  primary: {
6552
6723
  description: "Primary text, usually a title or name",
@@ -6581,10 +6752,18 @@ const tokens = defineTokens({
6581
6752
  value: "1"
6582
6753
  }
6583
6754
  },
6755
+ sizes: {
6756
+ "100%": {
6757
+ value: "100%"
6758
+ },
6759
+ full: {
6760
+ value: "100%"
6761
+ }
6762
+ },
6584
6763
  borders: {
6585
6764
  none: { value: "none" },
6586
6765
  transparent: { value: "0px solid transparent" },
6587
- default: { value: "1px solid {colors.mantine.colors.defaultBorder}" }
6766
+ default: { value: `1px solid ${mantine.colors.defaultBorder}` }
6588
6767
  },
6589
6768
  spacing: {
6590
6769
  ...tokens$1.spacing,
@@ -6710,6 +6889,14 @@ const tokens = defineTokens({
6710
6889
  // For fill: none
6711
6890
  none: { value: "none" }
6712
6891
  },
6892
+ fontWeights: {
6893
+ normal: {
6894
+ value: "400"
6895
+ },
6896
+ medium: {
6897
+ value: "500"
6898
+ }
6899
+ },
6713
6900
  fonts: {
6714
6901
  mono: {
6715
6902
  value: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`
@@ -6764,6 +6951,25 @@ const tokens = defineTokens({
6764
6951
  xl: {
6765
6952
  value: "0 1px 3px rgb(0 0 0/5%), 0 36px 28px -7px rgb(0 0 0/5%), 0 17px 17px -7px rgb(0 0 0/4%)"
6766
6953
  }
6954
+ },
6955
+ zIndex: {
6956
+ "-1": {
6957
+ value: "-1"
6958
+ },
6959
+ "0": {
6960
+ value: "0"
6961
+ },
6962
+ "1": {
6963
+ value: "1"
6964
+ },
6965
+ likec4: {
6966
+ panel: {
6967
+ value: "100"
6968
+ },
6969
+ dropdown: {
6970
+ value: "200"
6971
+ }
6972
+ }
6767
6973
  }
6768
6974
  });
6769
6975
  const durationValues = [
@@ -4,6 +4,10 @@ import type { DistributiveOmit, Pretty } from '../types/system-types';
4
4
 
5
5
  interface EdgeLabelVariant {
6
6
  /**
7
+ * @default "all"
8
+ */
9
+ pointerEvents: "none" | "all"
10
+ /**
7
11
  * @default "default"
8
12
  */
9
13
  cursor: "pointer" | "default"
@@ -2,6 +2,7 @@ import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.mj
2
2
  import { createRecipe } from './create-recipe.mjs';
3
3
 
4
4
  const edgeLabelDefaultVariants = {
5
+ "pointerEvents": "all",
5
6
  "isStepEdge": false,
6
7
  "cursor": "default"
7
8
  }
@@ -36,6 +37,7 @@ const edgeLabelFn = memo((props = {}) => {
36
37
  })
37
38
 
38
39
  const edgeLabelVariantKeys = [
40
+ "pointerEvents",
39
41
  "cursor",
40
42
  "isStepEdge"
41
43
  ]
@@ -48,6 +50,10 @@ export const edgeLabel = /* @__PURE__ */ Object.assign(edgeLabelFn, {
48
50
  classNameMap: {},
49
51
  variantKeys: edgeLabelVariantKeys,
50
52
  variantMap: {
53
+ "pointerEvents": [
54
+ "none",
55
+ "all"
56
+ ],
51
57
  "cursor": [
52
58
  "pointer",
53
59
  "default"
@@ -7,6 +7,10 @@ interface NavigationPanelActionIconVariant {
7
7
  * @default "default"
8
8
  */
9
9
  variant: "default" | "filled"
10
+ /**
11
+ * @default "default"
12
+ */
13
+ type: "default" | "warning"
10
14
  }
11
15
 
12
16
  type NavigationPanelActionIconVariantMap = {
@@ -16,7 +20,7 @@ type NavigationPanelActionIconVariantMap = {
16
20
 
17
21
 
18
22
  export type NavigationPanelActionIconVariantProps = {
19
- [key in keyof NavigationPanelActionIconVariant]?: ConditionalValue<NavigationPanelActionIconVariant[key]> | undefined
23
+ [key in keyof NavigationPanelActionIconVariant]?: NavigationPanelActionIconVariant[key] | undefined
20
24
  }
21
25
 
22
26
  export interface NavigationPanelActionIconRecipe {
@@ -2,13 +2,29 @@ import { memo, splitProps } from '../helpers.mjs';
2
2
  import { createRecipe, mergeRecipes } from './create-recipe.mjs';
3
3
 
4
4
  const navigationPanelActionIconFn = /* @__PURE__ */ createRecipe('likec4-navigation-panel-icon', {
5
- "variant": "default"
6
- }, [])
5
+ "variant": "default",
6
+ "type": "default"
7
+ }, [
8
+ {
9
+ "type": "warning",
10
+ "variant": "filled",
11
+ "css": {
12
+ "backgroundColor": {
13
+ "base": "likec4.panel.action.warning.bg",
14
+ "_hover": "likec4.panel.action.warning.bg.hover"
15
+ }
16
+ }
17
+ }
18
+ ])
7
19
 
8
20
  const navigationPanelActionIconVariantMap = {
9
21
  "variant": [
10
22
  "default",
11
23
  "filled"
24
+ ],
25
+ "type": [
26
+ "default",
27
+ "warning"
12
28
  ]
13
29
  }
14
30