@neuravision/construct 2.0.3 → 2.1.2

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 (138) hide show
  1. package/CHANGELOG.md +318 -0
  2. package/README.md +158 -149
  3. package/behaviors/combobox.js +486 -0
  4. package/behaviors/drawer.js +18 -0
  5. package/behaviors/dropdown.js +310 -0
  6. package/behaviors/index.d.ts +335 -0
  7. package/behaviors/index.js +9 -0
  8. package/behaviors/internal/dialog-controller.js +421 -0
  9. package/behaviors/internal/dom.js +408 -0
  10. package/behaviors/internal/overlay.js +241 -0
  11. package/behaviors/internal/popup-layer.js +190 -0
  12. package/behaviors/modal.js +17 -0
  13. package/behaviors/popover.js +278 -0
  14. package/behaviors/select-menu.js +344 -0
  15. package/behaviors/tabs.js +241 -0
  16. package/behaviors/toggle-group.js +266 -0
  17. package/behaviors/tooltip.js +257 -0
  18. package/components/README.md +319 -83
  19. package/components/_shared.css +22 -10
  20. package/components/_shell-shared.css +20 -4
  21. package/components/accordion.css +8 -0
  22. package/components/app-shell-v2.css +28 -14
  23. package/components/app-shell.css +30 -14
  24. package/components/badge.css +15 -0
  25. package/components/banner.css +32 -1
  26. package/components/button.css +103 -15
  27. package/components/card.css +67 -8
  28. package/components/chart.css +26 -0
  29. package/components/checkbox.css +35 -2
  30. package/components/chip.css +30 -2
  31. package/components/combobox.css +21 -0
  32. package/components/datepicker.css +58 -9
  33. package/components/datum.css +277 -0
  34. package/components/dropdown.css +23 -3
  35. package/components/field.css +6 -4
  36. package/components/file-upload.css +1 -1
  37. package/components/index.css +5 -0
  38. package/components/list.css +28 -2
  39. package/components/meter.css +182 -0
  40. package/components/navbar.css +102 -4
  41. package/components/pagination.css +18 -0
  42. package/components/progress-bar.css +22 -1
  43. package/components/select-menu.css +8 -0
  44. package/components/select.css +8 -0
  45. package/components/sidebar.css +15 -2
  46. package/components/skip-link.css +6 -2
  47. package/components/slider.css +7 -1
  48. package/components/status.css +107 -0
  49. package/components/switch.css +66 -5
  50. package/components/table.css +53 -4
  51. package/components/tabs.css +55 -3
  52. package/components/toast.css +10 -1
  53. package/components/toggle-group.css +16 -5
  54. package/components/toolbar.css +17 -1
  55. package/components/tooltip.css +4 -0
  56. package/components/tree.css +30 -0
  57. package/docs/architecture.md +79 -0
  58. package/docs/behaviors.md +122 -0
  59. package/docs/fonts.md +70 -0
  60. package/docs/governance.md +85 -0
  61. package/docs/guidelines.md +72 -25
  62. package/examples/react/README.md +20 -0
  63. package/examples/react/SettingsModal.jsx +66 -0
  64. package/examples/react/construct.css +5 -0
  65. package/fonts.css +10 -0
  66. package/foundations.css +14 -1
  67. package/package.json +76 -21
  68. package/schemas/components.schema.json +122 -0
  69. package/schemas/examples/theme.example.json +27 -0
  70. package/schemas/primitives.schema.json +135 -0
  71. package/schemas/semantic.schema.json +224 -0
  72. package/schemas/theme.schema.json +63 -0
  73. package/scripts/build-tokens.mjs +1499 -0
  74. package/scripts/construct-theme.mjs +43 -0
  75. package/scripts/validate-tokens.mjs +25 -0
  76. package/standalone/accordion.css +3 -0
  77. package/standalone/alert.css +3 -0
  78. package/standalone/app-shell-v2.css +4 -0
  79. package/standalone/app-shell.css +4 -0
  80. package/standalone/avatar.css +3 -0
  81. package/standalone/badge.css +3 -0
  82. package/standalone/banner.css +3 -0
  83. package/standalone/breadcrumbs.css +3 -0
  84. package/standalone/button.css +3 -0
  85. package/standalone/card.css +3 -0
  86. package/standalone/chart.css +3 -0
  87. package/standalone/checkbox.css +3 -0
  88. package/standalone/chip.css +3 -0
  89. package/standalone/combobox.css +3 -0
  90. package/standalone/core.css +4 -0
  91. package/standalone/data-table.css +3 -0
  92. package/standalone/datepicker.css +3 -0
  93. package/standalone/datum.css +3 -0
  94. package/standalone/divider.css +3 -0
  95. package/standalone/drawer.css +3 -0
  96. package/standalone/dropdown.css +3 -0
  97. package/standalone/empty-state.css +3 -0
  98. package/standalone/field.css +3 -0
  99. package/standalone/file-upload.css +3 -0
  100. package/standalone/icon.css +3 -0
  101. package/standalone/input.css +3 -0
  102. package/standalone/list.css +3 -0
  103. package/standalone/meter.css +3 -0
  104. package/standalone/modal.css +3 -0
  105. package/standalone/navbar.css +3 -0
  106. package/standalone/pagination.css +3 -0
  107. package/standalone/popover.css +3 -0
  108. package/standalone/progress-bar.css +3 -0
  109. package/standalone/select-menu.css +3 -0
  110. package/standalone/select.css +3 -0
  111. package/standalone/sidebar.css +3 -0
  112. package/standalone/skeleton.css +3 -0
  113. package/standalone/skip-link.css +3 -0
  114. package/standalone/slider.css +3 -0
  115. package/standalone/spinner.css +3 -0
  116. package/standalone/status.css +3 -0
  117. package/standalone/switch.css +3 -0
  118. package/standalone/table.css +3 -0
  119. package/standalone/tabs.css +3 -0
  120. package/standalone/textarea.css +3 -0
  121. package/standalone/toast.css +3 -0
  122. package/standalone/toggle-group.css +3 -0
  123. package/standalone/toolbar.css +3 -0
  124. package/standalone/tooltip.css +3 -0
  125. package/standalone/tree.css +3 -0
  126. package/themes/README.md +37 -0
  127. package/themes/walnut.theme.json +106 -0
  128. package/tokens/README.md +135 -123
  129. package/tokens/components.json +64 -0
  130. package/tokens/primitives.json +268 -0
  131. package/tokens/semantic.dark.json +94 -0
  132. package/tokens/semantic.high-contrast-dark.json +94 -0
  133. package/tokens/semantic.high-contrast.json +94 -0
  134. package/tokens/semantic.light.json +179 -0
  135. package/tokens/tokens.css +960 -58
  136. package/tokens/tokens.js +729 -120
  137. package/tokens/tokens.json +1158 -116
  138. package/tokens/tokens.ts +729 -120
@@ -0,0 +1,94 @@
1
+ {
2
+ "color": {
3
+ "brand": {
4
+ "primary": "{color.stone.100}",
5
+ "primaryHover": "{color.stone.0}",
6
+ "primaryActive": "{color.stone.200}",
7
+ "accent": "{color.orange.400}",
8
+ "accentHover": "{color.orange.300}",
9
+ "accentActive": "{color.orange.500}",
10
+ "accentStrong": "{color.orange.400}",
11
+ "onAccent": "{color.stone.950}"
12
+ },
13
+ "text": {
14
+ "primary": "{color.stone.0}",
15
+ "secondary": "{color.stone.200}",
16
+ "muted": "{color.stone.300}",
17
+ "inverse": "{color.stone.0}",
18
+ "onPrimary": "{color.stone.950}"
19
+ },
20
+ "background": {
21
+ "canvas": "{color.stone.950}",
22
+ "surface": "{color.stone.800}",
23
+ "elevated": "{color.stone.700}",
24
+ "muted": "{color.stone.900}"
25
+ },
26
+ "border": {
27
+ "subtle": "{color.stone.600}",
28
+ "default": "{color.stone.400}",
29
+ "strong": "{color.stone.300}"
30
+ },
31
+ "state": {
32
+ "info": "{color.ocean.300}",
33
+ "success": "{color.green.300}",
34
+ "warning": "{color.amber.300}",
35
+ "danger": "{color.red.300}",
36
+ "onSolid": "{color.stone.950}"
37
+ },
38
+ "stateSurface": {
39
+ "info": "{color.ocean.900}",
40
+ "success": "{color.green.900}",
41
+ "warning": "{color.amber.900}",
42
+ "danger": "{color.red.900}"
43
+ },
44
+ "stateBorder": {
45
+ "info": "{color.ocean.700}",
46
+ "success": "{color.green.700}",
47
+ "warning": "{color.amber.700}",
48
+ "danger": "{color.red.700}"
49
+ },
50
+ "stateText": {
51
+ "info": "{color.ocean.200}",
52
+ "success": "{color.green.200}",
53
+ "warning": "{color.amber.200}",
54
+ "danger": "{color.red.100}"
55
+ },
56
+ "overlay": {
57
+ "scrim": "rgba(8, 6, 4, 0.72)"
58
+ },
59
+ "focus": {
60
+ "ring": "{color.orange.400}"
61
+ },
62
+ "avatarSeed": {
63
+ "1Bg": "{color.ocean.800}",
64
+ "1Fg": "{color.ocean.200}",
65
+ "2Bg": "{color.teal.800}",
66
+ "2Fg": "{color.teal.200}",
67
+ "3Bg": "{color.amber.800}",
68
+ "3Fg": "{color.amber.200}",
69
+ "4Bg": "{color.red.800}",
70
+ "4Fg": "{color.red.200}",
71
+ "5Bg": "{color.green.800}",
72
+ "5Fg": "{color.green.200}",
73
+ "6Bg": "{color.purple.800}",
74
+ "6Fg": "{color.purple.200}",
75
+ "7Bg": "{color.pink.800}",
76
+ "7Fg": "{color.pink.200}",
77
+ "8Bg": "{color.stone.700}",
78
+ "8Fg": "{color.stone.200}"
79
+ },
80
+ "chartSeries": {
81
+ "1": "{color.ocean.300}",
82
+ "2": "{color.amber.300}",
83
+ "3": "{color.green.300}",
84
+ "4": "{color.purple.300}",
85
+ "5": "{color.pink.300}",
86
+ "6": "{color.teal.300}",
87
+ "7": "{color.red.300}",
88
+ "8": "{color.stone.300}"
89
+ }
90
+ },
91
+ "theme": {
92
+ "colorScheme": "dark"
93
+ }
94
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "color": {
3
+ "brand": {
4
+ "primary": "{color.stone.0}",
5
+ "primaryHover": "{color.stone.100}",
6
+ "primaryActive": "{color.stone.200}",
7
+ "accent": "{color.orange.300}",
8
+ "accentHover": "{color.orange.200}",
9
+ "accentActive": "{color.orange.400}",
10
+ "accentStrong": "{color.orange.300}",
11
+ "onAccent": "{color.stone.950}"
12
+ },
13
+ "text": {
14
+ "primary": "{color.stone.0}",
15
+ "secondary": "{color.stone.100}",
16
+ "muted": "{color.stone.200}",
17
+ "inverse": "{color.stone.950}",
18
+ "onPrimary": "{color.stone.950}"
19
+ },
20
+ "background": {
21
+ "canvas": "{color.stone.950}",
22
+ "surface": "{color.stone.950}",
23
+ "elevated": "{color.stone.900}",
24
+ "muted": "{color.stone.800}"
25
+ },
26
+ "border": {
27
+ "subtle": "{color.stone.500}",
28
+ "default": "{color.stone.300}",
29
+ "strong": "{color.stone.0}"
30
+ },
31
+ "state": {
32
+ "info": "{color.ocean.200}",
33
+ "success": "{color.green.200}",
34
+ "warning": "{color.amber.200}",
35
+ "danger": "{color.red.200}",
36
+ "onSolid": "{color.stone.950}"
37
+ },
38
+ "stateSurface": {
39
+ "info": "{color.ocean.900}",
40
+ "success": "{color.green.900}",
41
+ "warning": "{color.amber.900}",
42
+ "danger": "{color.red.900}"
43
+ },
44
+ "stateBorder": {
45
+ "info": "{color.ocean.300}",
46
+ "success": "{color.green.300}",
47
+ "warning": "{color.amber.300}",
48
+ "danger": "{color.red.300}"
49
+ },
50
+ "stateText": {
51
+ "info": "{color.ocean.100}",
52
+ "success": "{color.green.100}",
53
+ "warning": "{color.amber.100}",
54
+ "danger": "{color.red.100}"
55
+ },
56
+ "overlay": {
57
+ "scrim": "rgba(0, 0, 0, 0.82)"
58
+ },
59
+ "focus": {
60
+ "ring": "{color.orange.300}"
61
+ },
62
+ "avatarSeed": {
63
+ "1Bg": "{color.ocean.900}",
64
+ "1Fg": "{color.ocean.100}",
65
+ "2Bg": "{color.teal.900}",
66
+ "2Fg": "{color.teal.100}",
67
+ "3Bg": "{color.amber.900}",
68
+ "3Fg": "{color.amber.100}",
69
+ "4Bg": "{color.red.900}",
70
+ "4Fg": "{color.red.100}",
71
+ "5Bg": "{color.green.900}",
72
+ "5Fg": "{color.green.100}",
73
+ "6Bg": "{color.purple.900}",
74
+ "6Fg": "{color.purple.100}",
75
+ "7Bg": "{color.pink.900}",
76
+ "7Fg": "{color.pink.100}",
77
+ "8Bg": "{color.stone.800}",
78
+ "8Fg": "{color.stone.100}"
79
+ },
80
+ "chartSeries": {
81
+ "1": "{color.ocean.200}",
82
+ "2": "{color.amber.200}",
83
+ "3": "{color.green.200}",
84
+ "4": "{color.purple.200}",
85
+ "5": "{color.pink.200}",
86
+ "6": "{color.teal.200}",
87
+ "7": "{color.red.200}",
88
+ "8": "{color.stone.200}"
89
+ }
90
+ },
91
+ "theme": {
92
+ "colorScheme": "dark"
93
+ }
94
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "color": {
3
+ "brand": {
4
+ "primary": "{color.stone.950}",
5
+ "primaryHover": "{color.stone.900}",
6
+ "primaryActive": "{color.stone.800}",
7
+ "accent": "{color.orange.700}",
8
+ "accentHover": "{color.orange.800}",
9
+ "accentActive": "{color.orange.900}",
10
+ "accentStrong": "{color.orange.800}",
11
+ "onAccent": "{color.stone.0}"
12
+ },
13
+ "text": {
14
+ "primary": "{color.stone.950}",
15
+ "secondary": "{color.stone.800}",
16
+ "muted": "{color.stone.700}",
17
+ "inverse": "{color.stone.0}",
18
+ "onPrimary": "{color.stone.0}"
19
+ },
20
+ "background": {
21
+ "canvas": "{color.stone.0}",
22
+ "surface": "{color.stone.0}",
23
+ "elevated": "{color.stone.0}",
24
+ "muted": "{color.stone.200}"
25
+ },
26
+ "border": {
27
+ "subtle": "{color.stone.500}",
28
+ "default": "{color.stone.700}",
29
+ "strong": "{color.stone.950}"
30
+ },
31
+ "state": {
32
+ "info": "{color.ocean.800}",
33
+ "success": "{color.green.700}",
34
+ "warning": "{color.amber.700}",
35
+ "danger": "{color.red.700}",
36
+ "onSolid": "{color.stone.0}"
37
+ },
38
+ "stateSurface": {
39
+ "info": "{color.ocean.100}",
40
+ "success": "{color.green.100}",
41
+ "warning": "{color.amber.100}",
42
+ "danger": "{color.red.100}"
43
+ },
44
+ "stateBorder": {
45
+ "info": "{color.ocean.700}",
46
+ "success": "{color.green.700}",
47
+ "warning": "{color.amber.700}",
48
+ "danger": "{color.red.700}"
49
+ },
50
+ "stateText": {
51
+ "info": "{color.ocean.800}",
52
+ "success": "{color.green.800}",
53
+ "warning": "{color.amber.800}",
54
+ "danger": "{color.red.800}"
55
+ },
56
+ "overlay": {
57
+ "scrim": "rgba(14, 23, 32, 0.7)"
58
+ },
59
+ "focus": {
60
+ "ring": "{color.orange.700}"
61
+ },
62
+ "avatarSeed": {
63
+ "1Bg": "{color.ocean.50}",
64
+ "1Fg": "{color.ocean.900}",
65
+ "2Bg": "{color.teal.50}",
66
+ "2Fg": "{color.teal.900}",
67
+ "3Bg": "{color.amber.50}",
68
+ "3Fg": "{color.amber.900}",
69
+ "4Bg": "{color.red.50}",
70
+ "4Fg": "{color.red.900}",
71
+ "5Bg": "{color.green.50}",
72
+ "5Fg": "{color.green.900}",
73
+ "6Bg": "{color.purple.50}",
74
+ "6Fg": "{color.purple.900}",
75
+ "7Bg": "{color.pink.50}",
76
+ "7Fg": "{color.pink.900}",
77
+ "8Bg": "{color.stone.50}",
78
+ "8Fg": "{color.stone.950}"
79
+ },
80
+ "chartSeries": {
81
+ "1": "{color.ocean.800}",
82
+ "2": "{color.amber.700}",
83
+ "3": "{color.green.700}",
84
+ "4": "{color.purple.700}",
85
+ "5": "{color.pink.700}",
86
+ "6": "{color.teal.700}",
87
+ "7": "{color.red.700}",
88
+ "8": "{color.stone.800}"
89
+ }
90
+ },
91
+ "theme": {
92
+ "colorScheme": "light"
93
+ }
94
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "color": {
3
+ "brand": {
4
+ "primary": "{color.stone.950}",
5
+ "primaryHover": "{color.stone.800}",
6
+ "primaryActive": "{color.stone.900}",
7
+ "accent": "{color.orange.500}",
8
+ "accentHover": "{color.orange.400}",
9
+ "accentActive": "{color.orange.300}",
10
+ "accentStrong": "{color.orange.600}",
11
+ "onAccent": "{color.stone.950}"
12
+ },
13
+ "text": {
14
+ "primary": "{color.stone.950}",
15
+ "secondary": "{color.stone.700}",
16
+ "muted": "{color.stone.600}",
17
+ "inverse": "{color.stone.0}",
18
+ "onPrimary": "{color.stone.0}"
19
+ },
20
+ "background": {
21
+ "canvas": "{color.stone.50}",
22
+ "surface": "{color.stone.100}",
23
+ "elevated": "{color.stone.0}",
24
+ "muted": "{color.stone.200}",
25
+ "subtle": "{color.background.surface}"
26
+ },
27
+ "border": {
28
+ "subtle": "{color.stone.200}",
29
+ "default": "{color.stone.500}",
30
+ "strong": "{color.stone.600}",
31
+ "muted": "{color.border.subtle}"
32
+ },
33
+ "state": {
34
+ "info": "{color.ocean.600}",
35
+ "success": "{color.green.700}",
36
+ "warning": "{color.amber.700}",
37
+ "danger": "{color.red.500}",
38
+ "onSolid": "{color.stone.0}"
39
+ },
40
+ "stateSurface": {
41
+ "info": "{color.ocean.50}",
42
+ "success": "{color.green.50}",
43
+ "warning": "{color.amber.50}",
44
+ "danger": "{color.red.50}"
45
+ },
46
+ "stateBorder": {
47
+ "info": "{color.ocean.200}",
48
+ "success": "{color.green.200}",
49
+ "warning": "{color.amber.200}",
50
+ "danger": "{color.red.200}"
51
+ },
52
+ "stateText": {
53
+ "info": "{color.ocean.700}",
54
+ "success": "{color.green.700}",
55
+ "warning": "{color.amber.700}",
56
+ "danger": "{color.red.700}"
57
+ },
58
+ "overlay": {
59
+ "scrim": "rgba(22, 19, 15, 0.58)"
60
+ },
61
+ "focus": {
62
+ "ring": "{color.orange.600}"
63
+ },
64
+ "avatarSeed": {
65
+ "1Bg": "{color.ocean.100}",
66
+ "1Fg": "{color.ocean.800}",
67
+ "2Bg": "{color.teal.100}",
68
+ "2Fg": "{color.teal.800}",
69
+ "3Bg": "{color.amber.100}",
70
+ "3Fg": "{color.amber.800}",
71
+ "4Bg": "{color.red.100}",
72
+ "4Fg": "{color.red.800}",
73
+ "5Bg": "{color.green.100}",
74
+ "5Fg": "{color.green.800}",
75
+ "6Bg": "{color.purple.100}",
76
+ "6Fg": "{color.purple.800}",
77
+ "7Bg": "{color.pink.100}",
78
+ "7Fg": "{color.pink.800}",
79
+ "8Bg": "{color.stone.200}",
80
+ "8Fg": "{color.stone.800}"
81
+ },
82
+ "chartSeries": {
83
+ "1": "{color.ocean.600}",
84
+ "2": "{color.amber.600}",
85
+ "3": "{color.green.600}",
86
+ "4": "{color.purple.500}",
87
+ "5": "{color.pink.500}",
88
+ "6": "{color.teal.600}",
89
+ "7": "{color.red.500}",
90
+ "8": "{color.stone.600}"
91
+ }
92
+ },
93
+ "theme": {
94
+ "colorScheme": "light"
95
+ },
96
+ "font": {
97
+ "family": {
98
+ "heading": "{font.family.brand}",
99
+ "body": "{font.family.text}",
100
+ "code": "{font.family.mono}"
101
+ }
102
+ },
103
+ "typography": {
104
+ "display": {
105
+ "fontFamily": "{font.family.heading}",
106
+ "fontSize": "{font.size.6xl}",
107
+ "lineHeight": "{font.lineHeight.6xl}",
108
+ "fontWeight": "{font.weight.extrabold}",
109
+ "letterSpacing": "{font.letterSpacing.tight}"
110
+ },
111
+ "h1": {
112
+ "fontFamily": "{font.family.heading}",
113
+ "fontSize": "{font.size.5xl}",
114
+ "lineHeight": "{font.lineHeight.5xl}",
115
+ "fontWeight": "{font.weight.bold}",
116
+ "letterSpacing": "{font.letterSpacing.tight}"
117
+ },
118
+ "h2": {
119
+ "fontFamily": "{font.family.heading}",
120
+ "fontSize": "{font.size.4xl}",
121
+ "lineHeight": "{font.lineHeight.4xl}",
122
+ "fontWeight": "{font.weight.semibold}",
123
+ "letterSpacing": "{font.letterSpacing.normal}"
124
+ },
125
+ "h3": {
126
+ "fontFamily": "{font.family.heading}",
127
+ "fontSize": "{font.size.3xl}",
128
+ "lineHeight": "{font.lineHeight.3xl}",
129
+ "fontWeight": "{font.weight.semibold}",
130
+ "letterSpacing": "{font.letterSpacing.normal}"
131
+ },
132
+ "h4": {
133
+ "fontFamily": "{font.family.heading}",
134
+ "fontSize": "{font.size.2xl}",
135
+ "lineHeight": "{font.lineHeight.2xl}",
136
+ "fontWeight": "{font.weight.semibold}",
137
+ "letterSpacing": "{font.letterSpacing.normal}"
138
+ },
139
+ "body": {
140
+ "fontFamily": "{font.family.body}",
141
+ "fontSize": "{font.size.md}",
142
+ "lineHeight": "{font.lineHeight.md}",
143
+ "fontWeight": "{font.weight.regular}",
144
+ "letterSpacing": "{font.letterSpacing.normal}"
145
+ },
146
+ "bodySm": {
147
+ "fontFamily": "{font.family.body}",
148
+ "fontSize": "{font.size.sm}",
149
+ "lineHeight": "{font.lineHeight.sm}",
150
+ "fontWeight": "{font.weight.regular}",
151
+ "letterSpacing": "{font.letterSpacing.normal}"
152
+ },
153
+ "label": {
154
+ "fontFamily": "{font.family.body}",
155
+ "fontSize": "{font.size.sm}",
156
+ "lineHeight": "{font.lineHeight.sm}",
157
+ "fontWeight": "{font.weight.semibold}",
158
+ "letterSpacing": "{font.letterSpacing.wide}"
159
+ },
160
+ "caption": {
161
+ "fontFamily": "{font.family.body}",
162
+ "fontSize": "{font.size.xs}",
163
+ "lineHeight": "{font.lineHeight.xs}",
164
+ "fontWeight": "{font.weight.regular}",
165
+ "letterSpacing": "{font.letterSpacing.normal}"
166
+ }
167
+ },
168
+ "radius": {
169
+ "control": "{radius.md}",
170
+ "card": "{radius.lg}",
171
+ "modal": "{radius.xl}",
172
+ "pill": "{radius.round}"
173
+ },
174
+ "shadow": {
175
+ "card": "{shadow.sm}",
176
+ "dropdown": "{shadow.md}",
177
+ "modal": "{shadow.lg}"
178
+ }
179
+ }