@digdir/designsystemet 1.0.2 → 1.0.4

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 (190) hide show
  1. package/dist/bin/designsystemet.js +4264 -45
  2. package/dist/bin/options.js +5 -4
  3. package/dist/src/colors/colorMetadata.d.ts.map +1 -1
  4. package/dist/src/colors/colorMetadata.js +84 -35
  5. package/dist/src/colors/index.js +470 -4
  6. package/dist/src/colors/theme.d.ts.map +1 -1
  7. package/dist/src/colors/theme.js +290 -18
  8. package/dist/src/colors/types.d.ts +4 -1
  9. package/dist/src/colors/types.d.ts.map +1 -1
  10. package/dist/src/colors/utils.js +16 -15
  11. package/dist/{bin → src}/config.d.ts +46 -1
  12. package/dist/src/config.d.ts.map +1 -0
  13. package/dist/src/config.js +377 -0
  14. package/dist/src/index.js +3666 -2
  15. package/dist/src/migrations/beta-to-v1.js +85 -4
  16. package/dist/src/migrations/codemods/css/plugins.js +5 -4
  17. package/dist/src/migrations/codemods/css/run.d.ts.map +1 -1
  18. package/dist/src/migrations/codemods/css/run.js +18 -4
  19. package/dist/src/migrations/color-rename-next49.js +77 -6
  20. package/dist/src/migrations/index.d.ts +0 -1
  21. package/dist/src/migrations/index.d.ts.map +1 -1
  22. package/dist/src/migrations/index.js +461 -6
  23. package/dist/src/scripts/createJsonSchema.js +1608 -4
  24. package/dist/src/scripts/update-design-tokens.d.ts +2 -0
  25. package/dist/src/scripts/update-design-tokens.d.ts.map +1 -0
  26. package/dist/src/scripts/update-design-tokens.js +36 -0
  27. package/dist/src/{tokens/template.d.ts → scripts/update-template.d.ts} +1 -1
  28. package/dist/src/scripts/update-template.d.ts.map +1 -0
  29. package/dist/src/scripts/update-template.js +1200 -0
  30. package/dist/src/tokens/build.d.ts +2 -19
  31. package/dist/src/tokens/build.d.ts.map +1 -1
  32. package/dist/src/tokens/build.js +1511 -70
  33. package/dist/src/tokens/create/defaults.d.ts +7 -0
  34. package/dist/src/tokens/create/defaults.d.ts.map +1 -0
  35. package/dist/src/tokens/create/defaults.js +994 -0
  36. package/dist/src/tokens/create/generators/$designsystemet.d.ts +5 -0
  37. package/dist/src/tokens/create/generators/$designsystemet.d.ts.map +1 -0
  38. package/dist/src/tokens/create/generators/$designsystemet.js +100 -0
  39. package/dist/src/tokens/create/generators/$metadata.d.ts +8 -0
  40. package/dist/src/tokens/create/generators/$metadata.d.ts.map +1 -0
  41. package/dist/src/tokens/{write/generate$metadata.js → create/generators/$metadata.js} +3 -2
  42. package/dist/src/tokens/create/generators/$themes.d.ts +12 -0
  43. package/dist/src/tokens/create/generators/$themes.d.ts.map +1 -0
  44. package/dist/src/tokens/create/generators/$themes.js +333 -0
  45. package/dist/src/tokens/create/generators/color.d.ts +5 -0
  46. package/dist/src/tokens/create/generators/color.d.ts.map +1 -0
  47. package/dist/src/tokens/create/generators/color.js +374 -0
  48. package/dist/src/tokens/create/generators/semantic.d.ts +296 -0
  49. package/dist/src/tokens/create/generators/semantic.d.ts.map +1 -0
  50. package/dist/src/tokens/create/generators/semantic.js +483 -0
  51. package/dist/src/tokens/create/generators/theme.d.ts +3 -0
  52. package/dist/src/tokens/create/generators/theme.d.ts.map +1 -0
  53. package/dist/src/tokens/create/generators/theme.js +168 -0
  54. package/dist/src/tokens/create/generators/typography.d.ts +3 -0
  55. package/dist/src/tokens/create/generators/typography.d.ts.map +1 -0
  56. package/dist/src/tokens/create/generators/typography.js +33 -0
  57. package/dist/src/tokens/{write.d.ts → create/write.d.ts} +2 -2
  58. package/dist/src/tokens/create/write.d.ts.map +1 -0
  59. package/dist/src/tokens/create/write.js +546 -0
  60. package/dist/src/tokens/create.d.ts +4 -2
  61. package/dist/src/tokens/create.d.ts.map +1 -1
  62. package/dist/src/tokens/create.js +2049 -59
  63. package/dist/src/tokens/format.d.ts +16 -0
  64. package/dist/src/tokens/format.d.ts.map +1 -0
  65. package/dist/src/tokens/format.js +3514 -0
  66. package/dist/src/tokens/index.d.ts +1 -0
  67. package/dist/src/tokens/index.d.ts.map +1 -1
  68. package/dist/src/tokens/index.js +3526 -2
  69. package/dist/src/tokens/process/configs/color.d.ts +12 -0
  70. package/dist/src/tokens/process/configs/color.d.ts.map +1 -0
  71. package/dist/src/tokens/process/configs/color.js +823 -0
  72. package/dist/src/tokens/process/configs/semantic.d.ts +3 -0
  73. package/dist/src/tokens/process/configs/semantic.d.ts.map +1 -0
  74. package/dist/src/tokens/process/configs/semantic.js +367 -0
  75. package/dist/src/tokens/process/configs/shared.d.ts +10 -0
  76. package/dist/src/tokens/process/configs/shared.d.ts.map +1 -0
  77. package/dist/src/tokens/process/configs/shared.js +99 -0
  78. package/dist/src/tokens/process/configs/storefront.d.ts +3 -0
  79. package/dist/src/tokens/process/configs/storefront.d.ts.map +1 -0
  80. package/dist/src/tokens/process/configs/storefront.js +220 -0
  81. package/dist/src/tokens/process/configs/typography.d.ts +3 -0
  82. package/dist/src/tokens/process/configs/typography.d.ts.map +1 -0
  83. package/dist/src/tokens/process/configs/typography.js +369 -0
  84. package/dist/src/tokens/{build → process}/configs.d.ts +3 -11
  85. package/dist/src/tokens/process/configs.d.ts.map +1 -0
  86. package/dist/src/tokens/process/configs.js +976 -0
  87. package/dist/src/tokens/process/formats/css/color.d.ts +4 -0
  88. package/dist/src/tokens/process/formats/css/color.d.ts.map +1 -0
  89. package/dist/src/tokens/process/formats/css/color.js +128 -0
  90. package/dist/src/tokens/process/formats/css/semantic.d.ts +17 -0
  91. package/dist/src/tokens/process/formats/css/semantic.d.ts.map +1 -0
  92. package/dist/src/tokens/process/formats/css/semantic.js +109 -0
  93. package/dist/src/tokens/process/formats/css/typography.d.ts +3 -0
  94. package/dist/src/tokens/process/formats/css/typography.d.ts.map +1 -0
  95. package/dist/src/tokens/process/formats/css/typography.js +32 -0
  96. package/dist/src/tokens/process/formats/css.d.ts +8 -0
  97. package/dist/src/tokens/process/formats/css.d.ts.map +1 -0
  98. package/dist/src/tokens/{build → process}/formats/css.js +94 -57
  99. package/dist/src/tokens/process/formats/js-tokens.d.ts.map +1 -0
  100. package/dist/src/tokens/process/formats/js-tokens.js +109 -0
  101. package/dist/src/tokens/process/platform.d.ts +87 -0
  102. package/dist/src/tokens/process/platform.d.ts.map +1 -0
  103. package/dist/src/tokens/process/platform.js +1090 -0
  104. package/dist/src/tokens/process/transformers.d.ts.map +1 -0
  105. package/dist/src/tokens/{build → process}/transformers.js +29 -6
  106. package/dist/src/tokens/{build → process}/utils/getMultidimensionalThemes.d.ts +3 -3
  107. package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts.map +1 -0
  108. package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +922 -0
  109. package/dist/src/tokens/template/design-tokens/primitives/globals.js +5 -0
  110. package/dist/src/tokens/template/design-tokens/primitives/modes/size/global.js +5 -0
  111. package/dist/src/tokens/template/design-tokens/primitives/modes/size/large.js +5 -0
  112. package/dist/src/tokens/template/design-tokens/primitives/modes/size/medium.js +5 -0
  113. package/dist/src/tokens/template/design-tokens/primitives/modes/size/small.js +5 -0
  114. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/large.js +5 -0
  115. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/medium.js +5 -0
  116. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/size/small.js +5 -0
  117. package/dist/src/tokens/template/design-tokens/primitives/modes/typography/typography.template.js +5 -0
  118. package/dist/src/tokens/template/design-tokens/semantic/color.base.template.js +5 -0
  119. package/dist/src/tokens/template/design-tokens/semantic/color.template.js +5 -0
  120. package/dist/src/tokens/template/design-tokens/semantic/modes/color.template.js +5 -0
  121. package/dist/src/tokens/template/design-tokens/semantic/style.js +5 -0
  122. package/dist/src/tokens/template/design-tokens/themes/theme.base.template.js +5 -0
  123. package/dist/src/tokens/template/design-tokens/themes/theme.template.js +5 -0
  124. package/dist/src/tokens/types.d.ts +54 -38
  125. package/dist/src/tokens/types.d.ts.map +1 -1
  126. package/dist/src/tokens/types.js +8 -0
  127. package/dist/src/tokens/utils.d.ts +30 -5
  128. package/dist/src/tokens/utils.d.ts.map +1 -1
  129. package/dist/src/tokens/utils.js +36 -50
  130. package/dist/src/utils.d.ts +18 -0
  131. package/dist/src/utils.d.ts.map +1 -0
  132. package/dist/src/utils.js +63 -0
  133. package/dist/typography.template-4N5YLH7F.json +22 -0
  134. package/package.json +17 -16
  135. package/dist/bin/config.d.ts.map +0 -1
  136. package/dist/bin/config.js +0 -71
  137. package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts +0 -10
  138. package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts.map +0 -1
  139. package/dist/src/migrations/codemods/jsx/classname-prefix.js +0 -64
  140. package/dist/src/migrations/codemods/jsx/run.d.ts +0 -7
  141. package/dist/src/migrations/codemods/jsx/run.d.ts.map +0 -1
  142. package/dist/src/migrations/codemods/jsx/run.js +0 -22
  143. package/dist/src/migrations/react-beta-to-v1.d.ts +0 -3
  144. package/dist/src/migrations/react-beta-to-v1.d.ts.map +0 -1
  145. package/dist/src/migrations/react-beta-to-v1.js +0 -5
  146. package/dist/src/scripts/copy-internal-tokens.d.ts +0 -2
  147. package/dist/src/scripts/copy-internal-tokens.d.ts.map +0 -1
  148. package/dist/src/scripts/copy-internal-tokens.js +0 -28
  149. package/dist/src/tokens/build/configs.d.ts.map +0 -1
  150. package/dist/src/tokens/build/configs.js +0 -280
  151. package/dist/src/tokens/build/formats/css.d.ts +0 -53
  152. package/dist/src/tokens/build/formats/css.d.ts.map +0 -1
  153. package/dist/src/tokens/build/formats/js-tokens.d.ts.map +0 -1
  154. package/dist/src/tokens/build/formats/js-tokens.js +0 -48
  155. package/dist/src/tokens/build/transformers.d.ts.map +0 -1
  156. package/dist/src/tokens/build/types.d.ts +0 -48
  157. package/dist/src/tokens/build/types.d.ts.map +0 -1
  158. package/dist/src/tokens/build/types.js +0 -7
  159. package/dist/src/tokens/build/utils/entryfile.d.ts +0 -12
  160. package/dist/src/tokens/build/utils/entryfile.d.ts.map +0 -1
  161. package/dist/src/tokens/build/utils/entryfile.js +0 -67
  162. package/dist/src/tokens/build/utils/getMultidimensionalThemes.d.ts.map +0 -1
  163. package/dist/src/tokens/build/utils/getMultidimensionalThemes.js +0 -112
  164. package/dist/src/tokens/design-tokens/template/$metadata.json +0 -25
  165. package/dist/src/tokens/design-tokens/template/$themes.json +0 -1498
  166. package/dist/src/tokens/template.d.ts.map +0 -1
  167. package/dist/src/tokens/template.js +0 -99
  168. package/dist/src/tokens/write/generate$metadata.d.ts +0 -9
  169. package/dist/src/tokens/write/generate$metadata.d.ts.map +0 -1
  170. package/dist/src/tokens/write/generate$themes.d.ts +0 -12
  171. package/dist/src/tokens/write/generate$themes.d.ts.map +0 -1
  172. package/dist/src/tokens/write/generate$themes.js +0 -161
  173. package/dist/src/tokens/write.d.ts.map +0 -1
  174. package/dist/src/tokens/write.js +0 -177
  175. /package/dist/{src/tokens/design-tokens/template/semantic/color-base-file.json → color.base.template-M7BHS4OV.json} +0 -0
  176. /package/dist/{src/tokens/design-tokens/template/semantic/modes/category-color/category-color-template.json → color.template-LMPUQ72A.json} +0 -0
  177. /package/dist/{src/tokens/design-tokens/template/semantic/semantic-color-template.json → color.template-XQNSHLTU.json} +0 -0
  178. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/global.json → global-XVXVBKM6.json} +0 -0
  179. /package/dist/{src/tokens/design-tokens/default/primitives/globals.json → globals-76VAFMDF.json} +0 -0
  180. /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/large.json → large-CIIHO7AY.json} +0 -0
  181. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/large.json → large-UUOZ6DYI.json} +0 -0
  182. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/medium.json → medium-OQ7S7P4P.json} +0 -0
  183. /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/medium.json → medium-VSB2S4X3.json} +0 -0
  184. /package/dist/{src/tokens/design-tokens/default/primitives/modes/typography/size/small.json → small-AEXJ6U7Z.json} +0 -0
  185. /package/dist/{src/tokens/design-tokens/default/primitives/modes/size/small.json → small-ZY4KOJWX.json} +0 -0
  186. /package/dist/src/tokens/{build → process}/formats/js-tokens.d.ts +0 -0
  187. /package/dist/src/tokens/{build → process}/transformers.d.ts +0 -0
  188. /package/dist/{src/tokens/design-tokens/default/semantic/style.json → style-FP5XVCUD.json} +0 -0
  189. /package/dist/{src/tokens/design-tokens/template/themes/theme-base-file.json → theme.base.template-Y4RMFBQY.json} +0 -0
  190. /package/dist/{src/tokens/design-tokens/template/themes/theme-color-template.json → theme.template-CTQRNOMO.json} +0 -0
@@ -1,56 +1,1340 @@
1
+ // src/tokens/create/defaults.ts
1
2
  import * as R from "ramda";
2
- import { baseColors, generateColorScale } from "../colors/index.js";
3
- const cliOptions = {
4
- outDir: "out-dir",
5
- clean: "clean",
6
- theme: {
7
- colors: {
8
- main: "main-colors",
9
- support: "support-colors",
10
- neutral: "neutral-color"
3
+
4
+ // src/tokens/template/design-tokens/primitives/globals.json with { type: 'json' }
5
+ var globals_default = {
6
+ "border-width": {
7
+ "1": {
8
+ $type: "borderWidth",
9
+ $value: "1px"
11
10
  },
12
- typography: {
13
- fontFamily: "font-family"
11
+ "3": {
12
+ $type: "borderWidth",
13
+ $value: "3px"
14
+ }
15
+ },
16
+ shadow: {
17
+ "100": {
18
+ $type: "boxShadow",
19
+ $value: [
20
+ {
21
+ color: "rgba(0,0,0,0.16)",
22
+ x: "0",
23
+ y: "0",
24
+ blur: "1",
25
+ spread: "0"
26
+ },
27
+ {
28
+ x: "0",
29
+ y: "1",
30
+ blur: "2",
31
+ spread: "0",
32
+ color: "rgba(0,0,0,0.12)"
33
+ }
34
+ ]
14
35
  },
15
- borderRadius: "border-radius"
36
+ "200": {
37
+ $type: "boxShadow",
38
+ $value: [
39
+ {
40
+ color: "rgba(0,0,0,0.15)",
41
+ x: "0",
42
+ y: "0",
43
+ blur: "1",
44
+ spread: "0"
45
+ },
46
+ {
47
+ color: "rgba(0,0,0,0.12)",
48
+ x: "0",
49
+ y: "1",
50
+ blur: "2",
51
+ spread: "0"
52
+ },
53
+ {
54
+ x: "0",
55
+ y: "2",
56
+ blur: "4",
57
+ spread: "0",
58
+ color: "rgba(0,0,0,0.1)"
59
+ }
60
+ ]
61
+ },
62
+ "300": {
63
+ $type: "boxShadow",
64
+ $value: [
65
+ {
66
+ color: "rgba(0,0,0,0.14)",
67
+ x: "0",
68
+ y: "0",
69
+ blur: "1",
70
+ spread: "0"
71
+ },
72
+ {
73
+ color: "rgba(0,0,0,0.12)",
74
+ x: "0",
75
+ y: "2",
76
+ blur: "4",
77
+ spread: "0"
78
+ },
79
+ {
80
+ x: "0",
81
+ y: "4",
82
+ blur: "8",
83
+ spread: "0",
84
+ color: "rgba(0,0,0,0.12)"
85
+ }
86
+ ]
87
+ },
88
+ "400": {
89
+ $type: "boxShadow",
90
+ $value: [
91
+ {
92
+ color: "rgba(0,0,0,0.13)",
93
+ x: "0",
94
+ y: "0",
95
+ blur: "1",
96
+ spread: "0"
97
+ },
98
+ {
99
+ color: "rgba(0,0,0,0.13)",
100
+ x: "0",
101
+ y: "3",
102
+ blur: "5",
103
+ spread: "0"
104
+ },
105
+ {
106
+ x: "0",
107
+ y: "6",
108
+ blur: "12",
109
+ spread: "0",
110
+ color: "rgba(0,0,0,0.14)"
111
+ }
112
+ ]
113
+ },
114
+ "500": {
115
+ $type: "boxShadow",
116
+ $value: [
117
+ {
118
+ color: "rgba(0,0,0,0.12)",
119
+ x: "0",
120
+ y: "0",
121
+ blur: "1",
122
+ spread: "0"
123
+ },
124
+ {
125
+ color: "rgba(0,0,0,0.16)",
126
+ x: "0",
127
+ y: "4",
128
+ blur: "8",
129
+ spread: "0"
130
+ },
131
+ {
132
+ x: "0",
133
+ y: "12",
134
+ blur: "24",
135
+ spread: "0",
136
+ color: "rgba(0,0,0,0.16)"
137
+ }
138
+ ]
139
+ }
140
+ },
141
+ opacity: {
142
+ "30": {
143
+ $type: "opacity",
144
+ $value: "30%"
145
+ }
16
146
  }
17
147
  };
18
- const createColorTokens = (colorArray) => {
19
- const obj = {};
20
- const $type = "color";
21
- for (const index in colorArray) {
22
- obj[Number(index) + 1] = { $type, $value: colorArray[index].hex };
148
+
149
+ // src/tokens/template/design-tokens/primitives/modes/size/global.json with { type: 'json' }
150
+ var global_default = {
151
+ _size: {
152
+ "0": {
153
+ $type: "dimension",
154
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *0)"
155
+ },
156
+ "1": {
157
+ $type: "dimension",
158
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *1)"
159
+ },
160
+ "2": {
161
+ $type: "dimension",
162
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *2)"
163
+ },
164
+ "3": {
165
+ $type: "dimension",
166
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *3)"
167
+ },
168
+ "4": {
169
+ $type: "dimension",
170
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *4)"
171
+ },
172
+ "5": {
173
+ $type: "dimension",
174
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *5)"
175
+ },
176
+ "6": {
177
+ $type: "dimension",
178
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *6)"
179
+ },
180
+ "7": {
181
+ $type: "dimension",
182
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *7)"
183
+ },
184
+ "8": {
185
+ $type: "dimension",
186
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *8)"
187
+ },
188
+ "9": {
189
+ $type: "dimension",
190
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *9)"
191
+ },
192
+ "10": {
193
+ $type: "dimension",
194
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *10)"
195
+ },
196
+ "11": {
197
+ $type: "dimension",
198
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *11)"
199
+ },
200
+ "12": {
201
+ $type: "dimension",
202
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *12)"
203
+ },
204
+ "13": {
205
+ $type: "dimension",
206
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *13)"
207
+ },
208
+ "14": {
209
+ $type: "dimension",
210
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *14)"
211
+ },
212
+ "15": {
213
+ $type: "dimension",
214
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *15)"
215
+ },
216
+ "18": {
217
+ $type: "dimension",
218
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *18)"
219
+ },
220
+ "22": {
221
+ $type: "dimension",
222
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *22)"
223
+ },
224
+ "26": {
225
+ $type: "dimension",
226
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *26)"
227
+ },
228
+ "30": {
229
+ $type: "dimension",
230
+ $value: "floor({_size.step} / {_size.base} * {_size.mode-font-size} *30)"
231
+ },
232
+ "mode-font-size": {
233
+ $type: "dimension",
234
+ $value: "{size._mode-font-size}"
235
+ },
236
+ base: {
237
+ $type: "dimension",
238
+ $value: "{size._base}"
239
+ },
240
+ step: {
241
+ $type: "dimension",
242
+ $value: "{size._step}"
243
+ }
23
244
  }
24
- return obj;
25
245
  };
26
- const generateTypographyTokens = (themeName, { fontFamily }) => {
27
- return {
28
- [themeName]: {
29
- "font-family": {
30
- $type: "fontFamilies",
31
- $value: fontFamily ?? "Inter"
246
+
247
+ // src/tokens/template/design-tokens/primitives/modes/size/large.json with { type: 'json' }
248
+ var large_default = {
249
+ size: {
250
+ "_mode-font-size": {
251
+ $type: "dimension",
252
+ $value: "21"
253
+ },
254
+ _base: {
255
+ $type: "dimension",
256
+ $value: "18"
257
+ },
258
+ _step: {
259
+ $type: "dimension",
260
+ $value: "4"
261
+ }
262
+ }
263
+ };
264
+
265
+ // src/tokens/template/design-tokens/primitives/modes/size/medium.json with { type: 'json' }
266
+ var medium_default = {
267
+ size: {
268
+ "_mode-font-size": {
269
+ $type: "dimension",
270
+ $value: "18"
271
+ },
272
+ _base: {
273
+ $type: "dimension",
274
+ $value: "18"
275
+ },
276
+ _step: {
277
+ $type: "dimension",
278
+ $value: "4"
279
+ }
280
+ }
281
+ };
282
+
283
+ // src/tokens/template/design-tokens/primitives/modes/size/small.json with { type: 'json' }
284
+ var small_default = {
285
+ size: {
286
+ "_mode-font-size": {
287
+ $type: "dimension",
288
+ $value: "16"
289
+ },
290
+ _base: {
291
+ $type: "dimension",
292
+ $value: "18"
293
+ },
294
+ _step: {
295
+ $type: "dimension",
296
+ $value: "4"
297
+ }
298
+ }
299
+ };
300
+
301
+ // src/tokens/template/design-tokens/primitives/modes/typography/size/large.json with { type: 'json' }
302
+ var large_default2 = {
303
+ "line-height": {
304
+ sm: {
305
+ $type: "lineHeights",
306
+ $value: "130%"
307
+ },
308
+ md: {
309
+ $type: "lineHeights",
310
+ $value: "150%"
311
+ },
312
+ lg: {
313
+ $type: "lineHeights",
314
+ $value: "170%"
315
+ }
316
+ },
317
+ "font-size": {
318
+ "1": {
319
+ $type: "fontSizes",
320
+ $value: "13"
321
+ },
322
+ "2": {
323
+ $type: "fontSizes",
324
+ $value: "16"
325
+ },
326
+ "3": {
327
+ $type: "fontSizes",
328
+ $value: "18"
329
+ },
330
+ "4": {
331
+ $type: "fontSizes",
332
+ $value: "21"
333
+ },
334
+ "5": {
335
+ $type: "fontSizes",
336
+ $value: "24"
337
+ },
338
+ "6": {
339
+ $type: "fontSizes",
340
+ $value: "30"
341
+ },
342
+ "7": {
343
+ $type: "fontSizes",
344
+ $value: "36"
345
+ },
346
+ "8": {
347
+ $type: "fontSizes",
348
+ $value: "48"
349
+ },
350
+ "9": {
351
+ $type: "fontSizes",
352
+ $value: "60"
353
+ },
354
+ "10": {
355
+ $type: "fontSizes",
356
+ $value: "72"
357
+ }
358
+ },
359
+ "letter-spacing": {
360
+ "1": {
361
+ $type: "letterSpacing",
362
+ $value: "-1%"
363
+ },
364
+ "2": {
365
+ $type: "letterSpacing",
366
+ $value: "-0.5%"
367
+ },
368
+ "3": {
369
+ $type: "letterSpacing",
370
+ $value: "-0.25%"
371
+ },
372
+ "4": {
373
+ $type: "letterSpacing",
374
+ $value: "-0.15%"
375
+ },
376
+ "5": {
377
+ $type: "letterSpacing",
378
+ $value: "0%"
379
+ },
380
+ "6": {
381
+ $type: "letterSpacing",
382
+ $value: "0.15%"
383
+ },
384
+ "7": {
385
+ $type: "letterSpacing",
386
+ $value: "0.25%"
387
+ },
388
+ "8": {
389
+ $type: "letterSpacing",
390
+ $value: "0.5%"
391
+ },
392
+ "9": {
393
+ $type: "letterSpacing",
394
+ $value: "1.5%"
395
+ }
396
+ }
397
+ };
398
+
399
+ // src/tokens/template/design-tokens/primitives/modes/typography/size/medium.json with { type: 'json' }
400
+ var medium_default2 = {
401
+ "line-height": {
402
+ sm: {
403
+ $type: "lineHeights",
404
+ $value: "130%"
405
+ },
406
+ md: {
407
+ $type: "lineHeights",
408
+ $value: "150%"
409
+ },
410
+ lg: {
411
+ $type: "lineHeights",
412
+ $value: "170%"
413
+ }
414
+ },
415
+ "font-size": {
416
+ "1": {
417
+ $type: "fontSizes",
418
+ $value: "12"
419
+ },
420
+ "2": {
421
+ $type: "fontSizes",
422
+ $value: "14"
423
+ },
424
+ "3": {
425
+ $type: "fontSizes",
426
+ $value: "16"
427
+ },
428
+ "4": {
429
+ $type: "fontSizes",
430
+ $value: "18"
431
+ },
432
+ "5": {
433
+ $type: "fontSizes",
434
+ $value: "21"
435
+ },
436
+ "6": {
437
+ $type: "fontSizes",
438
+ $value: "24"
439
+ },
440
+ "7": {
441
+ $type: "fontSizes",
442
+ $value: "30"
443
+ },
444
+ "8": {
445
+ $type: "fontSizes",
446
+ $value: "36"
447
+ },
448
+ "9": {
449
+ $type: "fontSizes",
450
+ $value: "48"
451
+ },
452
+ "10": {
453
+ $type: "fontSizes",
454
+ $value: "60"
455
+ }
456
+ },
457
+ "letter-spacing": {
458
+ "1": {
459
+ $type: "letterSpacing",
460
+ $value: "-1%"
461
+ },
462
+ "2": {
463
+ $type: "letterSpacing",
464
+ $value: "-0.5%"
465
+ },
466
+ "3": {
467
+ $type: "letterSpacing",
468
+ $value: "-0.25%"
469
+ },
470
+ "4": {
471
+ $type: "letterSpacing",
472
+ $value: "-0.15%"
473
+ },
474
+ "5": {
475
+ $type: "letterSpacing",
476
+ $value: "0%"
477
+ },
478
+ "6": {
479
+ $type: "letterSpacing",
480
+ $value: "0.15%"
481
+ },
482
+ "7": {
483
+ $type: "letterSpacing",
484
+ $value: "0.25%"
485
+ },
486
+ "8": {
487
+ $type: "letterSpacing",
488
+ $value: "0.5%"
489
+ },
490
+ "9": {
491
+ $type: "letterSpacing",
492
+ $value: "1.5%"
493
+ }
494
+ }
495
+ };
496
+
497
+ // src/tokens/template/design-tokens/primitives/modes/typography/size/small.json with { type: 'json' }
498
+ var small_default2 = {
499
+ "line-height": {
500
+ sm: {
501
+ $type: "lineHeights",
502
+ $value: "130%"
503
+ },
504
+ md: {
505
+ $type: "lineHeights",
506
+ $value: "150%"
507
+ },
508
+ lg: {
509
+ $type: "lineHeights",
510
+ $value: "170%"
511
+ }
512
+ },
513
+ "font-size": {
514
+ "1": {
515
+ $type: "fontSizes",
516
+ $value: "11"
517
+ },
518
+ "2": {
519
+ $type: "fontSizes",
520
+ $value: "13"
521
+ },
522
+ "3": {
523
+ $type: "fontSizes",
524
+ $value: "14"
525
+ },
526
+ "4": {
527
+ $type: "fontSizes",
528
+ $value: "16"
529
+ },
530
+ "5": {
531
+ $type: "fontSizes",
532
+ $value: "18"
533
+ },
534
+ "6": {
535
+ $type: "fontSizes",
536
+ $value: "21"
537
+ },
538
+ "7": {
539
+ $type: "fontSizes",
540
+ $value: "24"
541
+ },
542
+ "8": {
543
+ $type: "fontSizes",
544
+ $value: "30"
545
+ },
546
+ "9": {
547
+ $type: "fontSizes",
548
+ $value: "36"
549
+ },
550
+ "10": {
551
+ $type: "fontSizes",
552
+ $value: "48"
553
+ }
554
+ },
555
+ "letter-spacing": {
556
+ "1": {
557
+ $type: "letterSpacing",
558
+ $value: "-1%"
559
+ },
560
+ "2": {
561
+ $type: "letterSpacing",
562
+ $value: "-0.5%"
563
+ },
564
+ "3": {
565
+ $type: "letterSpacing",
566
+ $value: "-0.25%"
567
+ },
568
+ "4": {
569
+ $type: "letterSpacing",
570
+ $value: "-0.15%"
571
+ },
572
+ "5": {
573
+ $type: "letterSpacing",
574
+ $value: "0%"
575
+ },
576
+ "6": {
577
+ $type: "letterSpacing",
578
+ $value: "0.15%"
579
+ },
580
+ "7": {
581
+ $type: "letterSpacing",
582
+ $value: "0.25%"
583
+ },
584
+ "8": {
585
+ $type: "letterSpacing",
586
+ $value: "0.5%"
587
+ },
588
+ "9": {
589
+ $type: "letterSpacing",
590
+ $value: "1.5%"
591
+ }
592
+ }
593
+ };
594
+
595
+ // src/tokens/template/design-tokens/semantic/style.json with { type: 'json' }
596
+ var style_default = {
597
+ typography: {
598
+ heading: {
599
+ "2xl": {
600
+ $type: "typography",
601
+ $value: {
602
+ fontFamily: "{font-family}",
603
+ fontWeight: "{font-weight.medium}",
604
+ lineHeight: "{line-height.sm}",
605
+ fontSize: "{font-size.10}",
606
+ letterSpacing: "{letter-spacing.1}"
607
+ }
608
+ },
609
+ xl: {
610
+ $type: "typography",
611
+ $value: {
612
+ fontFamily: "{font-family}",
613
+ fontWeight: "{font-weight.medium}",
614
+ lineHeight: "{line-height.sm}",
615
+ fontSize: "{font-size.9}",
616
+ letterSpacing: "{letter-spacing.1}"
617
+ }
32
618
  },
33
- "font-weight": {
34
- medium: {
35
- $type: "fontWeights",
36
- $value: "Medium"
619
+ lg: {
620
+ $type: "typography",
621
+ $value: {
622
+ fontFamily: "{font-family}",
623
+ fontWeight: "{font-weight.medium}",
624
+ lineHeight: "{line-height.sm}",
625
+ fontSize: "{font-size.8}",
626
+ letterSpacing: "{letter-spacing.2}"
627
+ }
628
+ },
629
+ md: {
630
+ $type: "typography",
631
+ $value: {
632
+ fontFamily: "{font-family}",
633
+ fontWeight: "{font-weight.medium}",
634
+ lineHeight: "{line-height.sm}",
635
+ fontSize: "{font-size.7}",
636
+ letterSpacing: "{letter-spacing.3}"
637
+ }
638
+ },
639
+ sm: {
640
+ $type: "typography",
641
+ $value: {
642
+ fontFamily: "{font-family}",
643
+ fontWeight: "{font-weight.medium}",
644
+ lineHeight: "{line-height.sm}",
645
+ fontSize: "{font-size.6}",
646
+ letterSpacing: "{letter-spacing.5}"
647
+ }
648
+ },
649
+ xs: {
650
+ $type: "typography",
651
+ $value: {
652
+ fontFamily: "{font-family}",
653
+ fontWeight: "{font-weight.medium}",
654
+ lineHeight: "{line-height.sm}",
655
+ fontSize: "{font-size.5}",
656
+ letterSpacing: "{letter-spacing.6}"
657
+ }
658
+ },
659
+ "2xs": {
660
+ $type: "typography",
661
+ $value: {
662
+ fontFamily: "{font-family}",
663
+ fontWeight: "{font-weight.medium}",
664
+ lineHeight: "{line-height.sm}",
665
+ fontSize: "{font-size.4}",
666
+ letterSpacing: "{letter-spacing.6}"
667
+ }
668
+ }
669
+ },
670
+ body: {
671
+ xl: {
672
+ $type: "typography",
673
+ $value: {
674
+ fontFamily: "{font-family}",
675
+ fontWeight: "{font-weight.regular}",
676
+ lineHeight: "{line-height.md}",
677
+ fontSize: "{font-size.6}",
678
+ letterSpacing: "{letter-spacing.8}"
679
+ }
680
+ },
681
+ lg: {
682
+ $type: "typography",
683
+ $value: {
684
+ fontFamily: "{font-family}",
685
+ fontWeight: "{font-weight.regular}",
686
+ lineHeight: "{line-height.md}",
687
+ fontSize: "{font-size.5}",
688
+ letterSpacing: "{letter-spacing.8}"
689
+ }
690
+ },
691
+ md: {
692
+ $type: "typography",
693
+ $value: {
694
+ fontFamily: "{font-family}",
695
+ fontWeight: "{font-weight.regular}",
696
+ lineHeight: "{line-height.md}",
697
+ fontSize: "{font-size.4}",
698
+ letterSpacing: "{letter-spacing.8}"
699
+ }
700
+ },
701
+ sm: {
702
+ $type: "typography",
703
+ $value: {
704
+ fontFamily: "{font-family}",
705
+ fontWeight: "{font-weight.regular}",
706
+ lineHeight: "{line-height.md}",
707
+ fontSize: "{font-size.3}",
708
+ letterSpacing: "{letter-spacing.7}"
709
+ }
710
+ },
711
+ xs: {
712
+ $type: "typography",
713
+ $value: {
714
+ fontFamily: "{font-family}",
715
+ fontWeight: "{font-weight.regular}",
716
+ lineHeight: "{line-height.md}",
717
+ fontSize: "{font-size.2}",
718
+ letterSpacing: "{letter-spacing.6}"
719
+ }
720
+ },
721
+ short: {
722
+ xl: {
723
+ $type: "typography",
724
+ $value: {
725
+ fontFamily: "{font-family}",
726
+ fontWeight: "{font-weight.regular}",
727
+ lineHeight: "{line-height.sm}",
728
+ fontSize: "{font-size.6}",
729
+ letterSpacing: "{letter-spacing.8}"
730
+ }
731
+ },
732
+ lg: {
733
+ $type: "typography",
734
+ $value: {
735
+ fontFamily: "{font-family}",
736
+ fontWeight: "{font-weight.regular}",
737
+ lineHeight: "{line-height.sm}",
738
+ fontSize: "{font-size.5}",
739
+ letterSpacing: "{letter-spacing.8}"
740
+ }
37
741
  },
38
- semibold: {
39
- $type: "fontWeights",
40
- $value: "SemiBold"
742
+ md: {
743
+ $type: "typography",
744
+ $value: {
745
+ fontFamily: "{font-family}",
746
+ fontWeight: "{font-weight.regular}",
747
+ lineHeight: "{line-height.sm}",
748
+ fontSize: "{font-size.4}",
749
+ letterSpacing: "{letter-spacing.8}"
750
+ }
41
751
  },
42
- regular: {
43
- $type: "fontWeights",
44
- $value: "Regular"
752
+ sm: {
753
+ $type: "typography",
754
+ $value: {
755
+ fontFamily: "{font-family}",
756
+ fontWeight: "{font-weight.regular}",
757
+ lineHeight: "{line-height.sm}",
758
+ fontSize: "{font-size.3}",
759
+ letterSpacing: "{letter-spacing.7}"
760
+ }
761
+ },
762
+ xs: {
763
+ $type: "typography",
764
+ $value: {
765
+ fontFamily: "{font-family}",
766
+ fontWeight: "{font-weight.regular}",
767
+ lineHeight: "{line-height.sm}",
768
+ fontSize: "{font-size.2}",
769
+ letterSpacing: "{letter-spacing.6}"
770
+ }
771
+ }
772
+ },
773
+ long: {
774
+ xl: {
775
+ $type: "typography",
776
+ $value: {
777
+ fontFamily: "{font-family}",
778
+ fontWeight: "{font-weight.regular}",
779
+ lineHeight: "{line-height.lg}",
780
+ fontSize: "{font-size.6}",
781
+ letterSpacing: "{letter-spacing.8}"
782
+ }
783
+ },
784
+ lg: {
785
+ $type: "typography",
786
+ $value: {
787
+ fontFamily: "{font-family}",
788
+ fontWeight: "{font-weight.regular}",
789
+ lineHeight: "{line-height.lg}",
790
+ fontSize: "{font-size.5}",
791
+ letterSpacing: "{letter-spacing.8}"
792
+ }
793
+ },
794
+ md: {
795
+ $type: "typography",
796
+ $value: {
797
+ fontFamily: "{font-family}",
798
+ fontWeight: "{font-weight.regular}",
799
+ lineHeight: "{line-height.lg}",
800
+ fontSize: "{font-size.4}",
801
+ letterSpacing: "{letter-spacing.8}"
802
+ }
803
+ },
804
+ sm: {
805
+ $type: "typography",
806
+ $value: {
807
+ fontFamily: "{font-family}",
808
+ fontWeight: "{font-weight.regular}",
809
+ lineHeight: "{line-height.lg}",
810
+ fontSize: "{font-size.3}",
811
+ letterSpacing: "{letter-spacing.7}"
812
+ }
813
+ },
814
+ xs: {
815
+ $type: "typography",
816
+ $value: {
817
+ fontFamily: "{font-family}",
818
+ fontWeight: "{font-weight.regular}",
819
+ lineHeight: "{line-height.lg}",
820
+ fontSize: "{font-size.2}",
821
+ letterSpacing: "{letter-spacing.6}"
822
+ }
45
823
  }
46
824
  }
47
825
  }
826
+ },
827
+ opacity: {
828
+ disabled: {
829
+ $type: "opacity",
830
+ $value: "{opacity.30}"
831
+ }
832
+ },
833
+ "border-width": {
834
+ default: {
835
+ $type: "borderWidth",
836
+ $value: "{border-width.1}"
837
+ },
838
+ focus: {
839
+ $type: "borderWidth",
840
+ $value: "{border-width.3}"
841
+ }
842
+ },
843
+ shadow: {
844
+ xs: {
845
+ $type: "boxShadow",
846
+ $value: "{shadow.100}"
847
+ },
848
+ sm: {
849
+ $type: "boxShadow",
850
+ $value: "{shadow.200}"
851
+ },
852
+ md: {
853
+ $type: "boxShadow",
854
+ $value: "{shadow.300}"
855
+ },
856
+ lg: {
857
+ $type: "boxShadow",
858
+ $value: "{shadow.400}"
859
+ },
860
+ xl: {
861
+ $type: "boxShadow",
862
+ $value: "{shadow.500}"
863
+ }
864
+ },
865
+ "border-radius": {
866
+ sm: {
867
+ $type: "dimension",
868
+ $value: "{border-radius.1}"
869
+ },
870
+ md: {
871
+ $type: "dimension",
872
+ $value: "{border-radius.2}"
873
+ },
874
+ lg: {
875
+ $type: "dimension",
876
+ $value: "{border-radius.3}"
877
+ },
878
+ xl: {
879
+ $type: "dimension",
880
+ $value: "{border-radius.4}"
881
+ },
882
+ default: {
883
+ $type: "dimension",
884
+ $value: "{border-radius.5}"
885
+ },
886
+ full: {
887
+ $type: "dimension",
888
+ $value: "{border-radius.6}"
889
+ }
890
+ },
891
+ size: {
892
+ "0": {
893
+ $type: "dimension",
894
+ $value: "{_size.0}"
895
+ },
896
+ "1": {
897
+ $type: "dimension",
898
+ $value: "{_size.1}"
899
+ },
900
+ "2": {
901
+ $type: "dimension",
902
+ $value: "{_size.2}"
903
+ },
904
+ "3": {
905
+ $type: "dimension",
906
+ $value: "{_size.3}"
907
+ },
908
+ "4": {
909
+ $type: "dimension",
910
+ $value: "{_size.4}"
911
+ },
912
+ "5": {
913
+ $type: "dimension",
914
+ $value: "{_size.5}"
915
+ },
916
+ "6": {
917
+ $type: "dimension",
918
+ $value: "{_size.6}"
919
+ },
920
+ "7": {
921
+ $type: "dimension",
922
+ $value: "{_size.7}"
923
+ },
924
+ "8": {
925
+ $type: "dimension",
926
+ $value: "{_size.8}"
927
+ },
928
+ "9": {
929
+ $type: "dimension",
930
+ $value: "{_size.9}"
931
+ },
932
+ "10": {
933
+ $type: "dimension",
934
+ $value: "{_size.10}"
935
+ },
936
+ "11": {
937
+ $type: "dimension",
938
+ $value: "{_size.11}"
939
+ },
940
+ "12": {
941
+ $type: "dimension",
942
+ $value: "{_size.12}"
943
+ },
944
+ "13": {
945
+ $type: "dimension",
946
+ $value: "{_size.13}"
947
+ },
948
+ "14": {
949
+ $type: "dimension",
950
+ $value: "{_size.14}"
951
+ },
952
+ "15": {
953
+ $type: "dimension",
954
+ $value: "{_size.15}"
955
+ },
956
+ "18": {
957
+ $type: "dimension",
958
+ $value: "{_size.18}"
959
+ },
960
+ "22": {
961
+ $type: "dimension",
962
+ $value: "{_size.22}"
963
+ },
964
+ "26": {
965
+ $type: "dimension",
966
+ $value: "{_size.26}"
967
+ },
968
+ "30": {
969
+ $type: "dimension",
970
+ $value: "{_size.30}"
971
+ }
972
+ }
973
+ };
974
+
975
+ // src/tokens/create/defaults.ts
976
+ var defaultTokens = {
977
+ "primitives/globals": globals_default,
978
+ "primitives/modes/size/small": small_default,
979
+ "primitives/modes/size/medium": medium_default,
980
+ "primitives/modes/size/large": large_default,
981
+ "primitives/modes/size/global": global_default,
982
+ "primitives/modes/typography/size/small": small_default2,
983
+ "primitives/modes/typography/size/medium": medium_default2,
984
+ "primitives/modes/typography/size/large": large_default2,
985
+ "semantic/style": style_default
986
+ };
987
+ var getDefaultTokens = (tokenSets) => Object.entries(R.pick(tokenSets, defaultTokens));
988
+ var getDefaultToken = (tokenPath) => {
989
+ return [tokenPath, defaultTokens[tokenPath]];
990
+ };
991
+
992
+ // src/tokens/create/generators/color.ts
993
+ import * as R4 from "ramda";
994
+
995
+ // src/colors/utils.ts
996
+ import chroma from "chroma-js";
997
+ import { Hsluv } from "hsluv";
998
+ var getLuminanceFromLightness = (lightness) => {
999
+ const conv = new Hsluv();
1000
+ conv.hsluv_l = lightness;
1001
+ conv.hsluvToHex();
1002
+ return chroma(conv.hex).luminance();
1003
+ };
1004
+ var getLightnessFromHex = (hex) => {
1005
+ const conv = new Hsluv();
1006
+ conv.hex = hex;
1007
+ conv.hexToHsluv();
1008
+ return conv.hsluv_l;
1009
+ };
1010
+
1011
+ // src/colors/theme.ts
1012
+ import chroma2 from "chroma-js";
1013
+ import * as R3 from "ramda";
1014
+
1015
+ // src/colors/colorMetadata.ts
1016
+ import * as R2 from "ramda";
1017
+ var baseColors = {
1018
+ blue: "#0A71C0",
1019
+ green: "#068718",
1020
+ orange: "#EA9B1B",
1021
+ purple: "#663299",
1022
+ red: "#C01B1B"
1023
+ };
1024
+ var colorMetadata = {
1025
+ "background-default": {
1026
+ number: 1,
1027
+ name: "background-default",
1028
+ group: "background",
1029
+ displayName: "Background Default",
1030
+ description: {
1031
+ long: "Background Default er den mest n\xF8ytrale bakgrunnsfargen.",
1032
+ short: "Standard bakgrunnsfarge."
1033
+ },
1034
+ luminance: {
1035
+ light: 1,
1036
+ dark: 9e-3,
1037
+ contrast: 1e-3
1038
+ }
1039
+ },
1040
+ "background-tinted": {
1041
+ number: 2,
1042
+ name: "background-tinted",
1043
+ group: "background",
1044
+ displayName: "Background Tinted",
1045
+ description: {
1046
+ long: "Background Tinted er en bakgrunnsfarge som har et hint av farge i seg.",
1047
+ short: "Bakgrunn med et hint av farge i seg."
1048
+ },
1049
+ luminance: {
1050
+ light: 0.9,
1051
+ dark: 0.014,
1052
+ contrast: 65e-4
1053
+ }
1054
+ },
1055
+ "surface-default": {
1056
+ number: 3,
1057
+ name: "surface-default",
1058
+ group: "surface",
1059
+ displayName: "Surface Default",
1060
+ description: {
1061
+ long: "Surface Default brukes p\xE5 flater som ligger opp\xE5 bakgrunnsfargene. Dette er den mest n\xF8ytrale surface fargen.",
1062
+ short: "Standardfarge for overflater / komponenter."
1063
+ },
1064
+ luminance: {
1065
+ light: 1,
1066
+ dark: 0.021,
1067
+ contrast: 0.015
1068
+ }
1069
+ },
1070
+ "surface-tinted": {
1071
+ number: 4,
1072
+ name: "surface-tinted",
1073
+ group: "surface",
1074
+ displayName: "Surface Tinted",
1075
+ description: {
1076
+ long: "Surface Tinted brukes p\xE5 flater som ligger opp\xE5 bakgrunnsfargene. Denne har et hint av farge i seg.",
1077
+ short: "Overflater / komponenter med et hint av farge i seg."
1078
+ },
1079
+ luminance: {
1080
+ light: 0.81,
1081
+ dark: 0.027,
1082
+ contrast: 0.015
1083
+ }
1084
+ },
1085
+ "surface-hover": {
1086
+ number: 5,
1087
+ name: "surface-hover",
1088
+ group: "surface",
1089
+ displayName: "Surface Hover",
1090
+ description: {
1091
+ long: "Surface Hover brukes p\xE5 interaktive flater som ligger opp\xE5 bakgrunnsfargene i en hover state.",
1092
+ short: "Hover-farge til overflater / komponenter."
1093
+ },
1094
+ luminance: {
1095
+ light: 0.7,
1096
+ dark: 0.036,
1097
+ contrast: 0.028
1098
+ }
1099
+ },
1100
+ "surface-active": {
1101
+ number: 6,
1102
+ name: "surface-active",
1103
+ group: "surface",
1104
+ displayName: "Surface Active",
1105
+ description: {
1106
+ long: "Surface Active brukes p\xE5 interaktive flater som ligger opp\xE5 bakgrunnsfargene i en active state.",
1107
+ short: "Active-farge til overflater / komponenter."
1108
+ },
1109
+ luminance: {
1110
+ light: 0.59,
1111
+ dark: 0.056,
1112
+ contrast: 0.045
1113
+ }
1114
+ },
1115
+ "border-subtle": {
1116
+ number: 7,
1117
+ name: "border-subtle",
1118
+ group: "border",
1119
+ displayName: "Border Subtle",
1120
+ description: {
1121
+ long: "Border Subtle er den lyseste border-fargen og brukes for \xE5 skille elementer fra hverandre.",
1122
+ short: "Border-farge med lav kontrast til dekorativ bruk (skillelinjer)."
1123
+ },
1124
+ luminance: {
1125
+ light: 0.5,
1126
+ dark: 0.08,
1127
+ contrast: 0.26
1128
+ }
1129
+ },
1130
+ "border-default": {
1131
+ number: 8,
1132
+ name: "border-default",
1133
+ group: "border",
1134
+ displayName: "Border Default",
1135
+ description: {
1136
+ long: "Border Default er en border-farge som brukes n\xE5r man \xF8nsker god kontrast mot bakgrunnsfargene.",
1137
+ short: "Standard border-farge til skjemakomponenter og meningsb\xE6rende elementer."
1138
+ },
1139
+ luminance: {
1140
+ light: 0.19,
1141
+ dark: 0.22,
1142
+ contrast: 0.4
1143
+ }
1144
+ },
1145
+ "border-strong": {
1146
+ number: 9,
1147
+ name: "border-strong",
1148
+ group: "border",
1149
+ displayName: "Border Strong",
1150
+ description: {
1151
+ long: "Border Strong er den m\xF8rkeste border-fargen og brukes n\xE5r man \xF8nsker en veldig tydelig og sterk border.",
1152
+ short: "Border-farge med h\xF8y kontrast for ekstra synlighet."
1153
+ },
1154
+ luminance: {
1155
+ light: 0.11,
1156
+ dark: 0.39,
1157
+ contrast: 0.6
1158
+ }
1159
+ },
1160
+ "text-subtle": {
1161
+ number: 10,
1162
+ name: "text-subtle",
1163
+ group: "text",
1164
+ displayName: "Text Subtle",
1165
+ description: {
1166
+ long: "Text Subtle er den lyseste tekstfargen og brukes p\xE5 tekst som skal v\xE6re litt mindre synlig eller for \xE5 skape variasjon i typografien.",
1167
+ short: "Tekst- og ikonfarge med lavere kontrast."
1168
+ },
1169
+ luminance: {
1170
+ light: 0.11,
1171
+ dark: 0.39,
1172
+ contrast: 0.57
1173
+ }
1174
+ },
1175
+ "text-default": {
1176
+ number: 11,
1177
+ name: "text-default",
1178
+ group: "text",
1179
+ displayName: "Text Default",
1180
+ description: {
1181
+ long: "Text Default er den m\xF8rkeste tekstfargen og brukes p\xE5 tekst som skal v\xE6re mest synlig. Denne fargen b\xF8r brukes p\xE5 mesteparten av teksten p\xE5 en side.",
1182
+ short: "Tekst- og ikonfarge med h\xF8y kontrast og god synlighet."
1183
+ },
1184
+ luminance: {
1185
+ light: 0.0245,
1186
+ dark: 0.84,
1187
+ contrast: 0.86
1188
+ }
1189
+ },
1190
+ "base-default": {
1191
+ number: 12,
1192
+ name: "base-default",
1193
+ group: "base",
1194
+ displayName: "Base Default",
1195
+ description: {
1196
+ long: "Base Default fargen f\xE5r den samme hex koden som fargen som er valgt i verkt\xF8yet. Brukes ofte som farge p\xE5 viktige elementer og p\xE5 flater som skal fange brukerens oppmerksomhet.",
1197
+ short: "Standardfarge for solide bakgrunner."
1198
+ },
1199
+ luminance: {
1200
+ light: 1,
1201
+ dark: 1,
1202
+ contrast: 1
1203
+ }
1204
+ },
1205
+ "base-hover": {
1206
+ number: 13,
1207
+ name: "base-hover",
1208
+ group: "base",
1209
+ displayName: "Base Hover",
1210
+ description: {
1211
+ long: "Base Hover brukes som hover farge p\xE5 elementer som bruker Base Default fargen.",
1212
+ short: "Hover-farge for solide bakgrunner."
1213
+ },
1214
+ luminance: {
1215
+ light: 1,
1216
+ dark: 1,
1217
+ contrast: 1
1218
+ }
1219
+ },
1220
+ "base-active": {
1221
+ number: 14,
1222
+ name: "base-active",
1223
+ group: "base",
1224
+ displayName: "Base Active",
1225
+ description: {
1226
+ long: "Base Active brukes som active farge p\xE5 elementer som bruker Base Default fargen.",
1227
+ short: "Active-farge for solide bakgrunner."
1228
+ },
1229
+ luminance: {
1230
+ light: 1,
1231
+ dark: 1,
1232
+ contrast: 1
1233
+ }
1234
+ },
1235
+ "base-contrast-subtle": {
1236
+ number: 15,
1237
+ name: "base-contrast-subtle",
1238
+ group: "base",
1239
+ displayName: "Contrast Subtle",
1240
+ description: {
1241
+ long: "Contrast Subtle brukes som en viktig meningsb\xE6rende farge opp\xE5 Base Default fargen.",
1242
+ short: "Farge med god kontrast mot Base-default."
1243
+ },
1244
+ luminance: {
1245
+ light: 1,
1246
+ dark: 1,
1247
+ contrast: 1
1248
+ }
1249
+ },
1250
+ "base-contrast-default": {
1251
+ number: 16,
1252
+ name: "base-contrast-default",
1253
+ group: "base",
1254
+ displayName: "Contrast Default",
1255
+ description: {
1256
+ long: "Contrast Default brukes som en viktig meningsb\xE6rende farge opp\xE5 alle Base fargane.",
1257
+ short: "Farge med god kontrast mot Base-default og Base-hover."
1258
+ },
1259
+ luminance: {
1260
+ light: 1,
1261
+ dark: 1,
1262
+ contrast: 1
1263
+ }
1264
+ }
1265
+ };
1266
+ var colorMetadataByNumber = R2.indexBy((metadata) => metadata.number, Object.values(colorMetadata));
1267
+
1268
+ // src/colors/theme.ts
1269
+ var generateColorScale = (color, colorScheme) => {
1270
+ let interpolationColor = color;
1271
+ if (colorScheme === "dark") {
1272
+ const [L, C, H] = chroma2(color).oklch();
1273
+ const chromaModifier = 0.7;
1274
+ interpolationColor = chroma2(L, C * chromaModifier, H, "oklch").hex();
1275
+ }
1276
+ const colors = R3.mapObjIndexed((colorData) => {
1277
+ const luminance = colorData.luminance[colorScheme];
1278
+ return {
1279
+ ...colorData,
1280
+ hex: chroma2(interpolationColor).luminance(luminance).hex()
1281
+ };
1282
+ }, colorMetadata);
1283
+ const baseColors2 = generateBaseColors(color, colorScheme);
1284
+ colors["base-default"] = { ...colors["base-default"], hex: baseColors2.default };
1285
+ colors["base-hover"] = { ...colors["base-hover"], hex: baseColors2.hover };
1286
+ colors["base-active"] = { ...colors["base-active"], hex: baseColors2.active };
1287
+ colors["base-contrast-subtle"] = {
1288
+ ...colors["base-contrast-subtle"],
1289
+ hex: generateColorContrast(baseColors2.default, "subtle")
1290
+ };
1291
+ colors["base-contrast-default"] = {
1292
+ ...colors["base-contrast-default"],
1293
+ hex: generateColorContrast(baseColors2.default, "default")
48
1294
  };
1295
+ return Object.values(colors);
49
1296
  };
50
- const generateThemeTokens = (themeName, colorScheme, colors) => {
51
- const main = R.map((color) => createColorTokens(generateColorScale(color, colorScheme)), colors.main);
52
- const support = R.map((color) => createColorTokens(generateColorScale(color, colorScheme)), colors.support);
53
- const neutral = createColorTokens(generateColorScale(colors.neutral, colorScheme));
1297
+ var generateBaseColors = (color, colorScheme) => {
1298
+ let colorLightness = getLightnessFromHex(color);
1299
+ if (colorScheme !== "light") {
1300
+ colorLightness = colorLightness <= 30 ? 70 : 100 - colorLightness;
1301
+ }
1302
+ const modifier = colorLightness <= 30 || colorLightness >= 49 && colorLightness <= 65 ? -8 : 8;
1303
+ const calculateLightness = (base, mod) => base - mod;
1304
+ return {
1305
+ default: colorScheme === "light" ? color : chroma2(color).luminance(getLuminanceFromLightness(colorLightness)).hex(),
1306
+ hover: chroma2(color).luminance(getLuminanceFromLightness(calculateLightness(colorLightness, modifier))).hex(),
1307
+ active: chroma2(color).luminance(getLuminanceFromLightness(calculateLightness(colorLightness, modifier * 2))).hex()
1308
+ };
1309
+ };
1310
+ var generateColorContrast = (color, type) => {
1311
+ if (type === "default") {
1312
+ return chroma2.contrast(color, "#ffffff") >= chroma2.contrast(color, "#000000") ? "#ffffff" : "#000000";
1313
+ }
1314
+ if (type === "subtle") {
1315
+ const contrastWhite = chroma2.contrast(color, "#ffffff");
1316
+ const contrastBlack = chroma2.contrast(color, "#000000");
1317
+ const lightness = getLightnessFromHex(color);
1318
+ const modifier = lightness <= 40 || lightness >= 60 ? 60 : 50;
1319
+ const targetLightness = contrastWhite >= contrastBlack ? lightness + modifier : lightness - modifier;
1320
+ return chroma2(color).luminance(getLuminanceFromLightness(targetLightness)).hex();
1321
+ }
1322
+ return color;
1323
+ };
1324
+
1325
+ // src/tokens/create/generators/color.ts
1326
+ var generateColor = (colorArray) => {
1327
+ const obj = {};
1328
+ const $type = "color";
1329
+ for (const index in colorArray) {
1330
+ obj[Number(index) + 1] = { $type, $value: colorArray[index].hex };
1331
+ }
1332
+ return obj;
1333
+ };
1334
+ var generateColorScheme = (themeName, colorScheme, colors) => {
1335
+ const main = R4.map((color) => generateColor(generateColorScale(color, colorScheme)), colors.main);
1336
+ const support = R4.map((color) => generateColor(generateColorScale(color, colorScheme)), colors.support);
1337
+ const neutral = generateColor(generateColorScale(colors.neutral, colorScheme));
54
1338
  return {
55
1339
  [themeName]: {
56
1340
  ...main,
@@ -59,7 +1343,7 @@ const generateThemeTokens = (themeName, colorScheme, colors) => {
59
1343
  }
60
1344
  };
61
1345
  };
62
- const generateGlobalTokens = (colorScheme) => {
1346
+ var generateColorGlobal = (colorScheme) => {
63
1347
  const blueScale = generateColorScale(baseColors.blue, colorScheme);
64
1348
  const greenScale = generateColorScale(baseColors.green, colorScheme);
65
1349
  const orangeScale = generateColorScale(baseColors.orange, colorScheme);
@@ -67,33 +1351,739 @@ const generateGlobalTokens = (colorScheme) => {
67
1351
  const redScale = generateColorScale(baseColors.red, colorScheme);
68
1352
  return {
69
1353
  global: {
70
- blue: createColorTokens(blueScale),
71
- green: createColorTokens(greenScale),
72
- orange: createColorTokens(orangeScale),
73
- purple: createColorTokens(purpleScale),
74
- red: createColorTokens(redScale)
1354
+ blue: generateColor(blueScale),
1355
+ green: generateColor(greenScale),
1356
+ orange: generateColor(orangeScale),
1357
+ purple: generateColor(purpleScale),
1358
+ red: generateColor(redScale)
75
1359
  }
76
1360
  };
77
1361
  };
78
- const createTokens = (opts) => {
79
- const { colors, typography, name } = opts;
80
- const tokens = {
81
- colors: {
82
- light: {
83
- [name]: generateThemeTokens(name, "light", colors),
84
- global: generateGlobalTokens("light")
1362
+
1363
+ // src/tokens/create/generators/semantic.ts
1364
+ import * as R5 from "ramda";
1365
+
1366
+ // src/tokens/template/design-tokens/semantic/color.base.template.json with { type: 'json' }
1367
+ var color_base_template_default = {
1368
+ color: {
1369
+ success: {
1370
+ "background-default": {
1371
+ $type: "color",
1372
+ $value: "{global.green.1}"
1373
+ },
1374
+ "background-tinted": {
1375
+ $type: "color",
1376
+ $value: "{global.green.2}"
1377
+ },
1378
+ "surface-default": {
1379
+ $type: "color",
1380
+ $value: "{global.green.3}"
1381
+ },
1382
+ "surface-tinted": {
1383
+ $type: "color",
1384
+ $value: "{global.green.4}"
85
1385
  },
86
- dark: { [name]: generateThemeTokens(name, "dark", colors), global: generateGlobalTokens("dark") }
87
- // contrast: {
88
- // [name]: generateThemeTokens(name, 'contrast', colors),
89
- // global: generateGlobalTokens('contrast'),
90
- // },
1386
+ "surface-hover": {
1387
+ $type: "color",
1388
+ $value: "{global.green.5}"
1389
+ },
1390
+ "surface-active": {
1391
+ $type: "color",
1392
+ $value: "{global.green.6}"
1393
+ },
1394
+ "border-subtle": {
1395
+ $type: "color",
1396
+ $value: "{global.green.7}"
1397
+ },
1398
+ "border-default": {
1399
+ $type: "color",
1400
+ $value: "{global.green.8}"
1401
+ },
1402
+ "border-strong": {
1403
+ $type: "color",
1404
+ $value: "{global.green.9}"
1405
+ },
1406
+ "text-subtle": {
1407
+ $type: "color",
1408
+ $value: "{global.green.10}"
1409
+ },
1410
+ "text-default": {
1411
+ $type: "color",
1412
+ $value: "{global.green.11}"
1413
+ },
1414
+ "base-default": {
1415
+ $type: "color",
1416
+ $value: "{global.green.12}"
1417
+ },
1418
+ "base-hover": {
1419
+ $type: "color",
1420
+ $value: "{global.green.13}"
1421
+ },
1422
+ "base-active": {
1423
+ $type: "color",
1424
+ $value: "{global.green.14}"
1425
+ },
1426
+ "base-contrast-subtle": {
1427
+ $type: "color",
1428
+ $value: "{global.green.15}"
1429
+ },
1430
+ "base-contrast-default": {
1431
+ $type: "color",
1432
+ $value: "{global.green.16}"
1433
+ }
91
1434
  },
92
- typography: {
93
- primary: generateTypographyTokens(name, typography)
1435
+ danger: {
1436
+ "background-default": {
1437
+ $type: "color",
1438
+ $value: "{global.red.1}"
1439
+ },
1440
+ "background-tinted": {
1441
+ $type: "color",
1442
+ $value: "{global.red.2}"
1443
+ },
1444
+ "surface-default": {
1445
+ $type: "color",
1446
+ $value: "{global.red.3}"
1447
+ },
1448
+ "surface-tinted": {
1449
+ $type: "color",
1450
+ $value: "{global.red.4}"
1451
+ },
1452
+ "surface-hover": {
1453
+ $type: "color",
1454
+ $value: "{global.red.5}"
1455
+ },
1456
+ "surface-active": {
1457
+ $type: "color",
1458
+ $value: "{global.red.6}"
1459
+ },
1460
+ "border-subtle": {
1461
+ $type: "color",
1462
+ $value: "{global.red.7}"
1463
+ },
1464
+ "border-default": {
1465
+ $type: "color",
1466
+ $value: "{global.red.8}"
1467
+ },
1468
+ "border-strong": {
1469
+ $type: "color",
1470
+ $value: "{global.red.9}"
1471
+ },
1472
+ "text-subtle": {
1473
+ $type: "color",
1474
+ $value: "{global.red.10}"
1475
+ },
1476
+ "text-default": {
1477
+ $type: "color",
1478
+ $value: "{global.red.11}"
1479
+ },
1480
+ "base-default": {
1481
+ $type: "color",
1482
+ $value: "{global.red.12}"
1483
+ },
1484
+ "base-hover": {
1485
+ $type: "color",
1486
+ $value: "{global.red.13}"
1487
+ },
1488
+ "base-active": {
1489
+ $type: "color",
1490
+ $value: "{global.red.14}"
1491
+ },
1492
+ "base-contrast-subtle": {
1493
+ $type: "color",
1494
+ $value: "{global.red.15}"
1495
+ },
1496
+ "base-contrast-default": {
1497
+ $type: "color",
1498
+ $value: "{global.red.16}"
1499
+ }
1500
+ },
1501
+ info: {
1502
+ "background-default": {
1503
+ $type: "color",
1504
+ $value: "{global.blue.1}"
1505
+ },
1506
+ "background-tinted": {
1507
+ $type: "color",
1508
+ $value: "{global.blue.2}"
1509
+ },
1510
+ "surface-default": {
1511
+ $type: "color",
1512
+ $value: "{global.blue.3}"
1513
+ },
1514
+ "surface-tinted": {
1515
+ $type: "color",
1516
+ $value: "{global.blue.4}"
1517
+ },
1518
+ "surface-hover": {
1519
+ $type: "color",
1520
+ $value: "{global.blue.5}"
1521
+ },
1522
+ "surface-active": {
1523
+ $type: "color",
1524
+ $value: "{global.blue.6}"
1525
+ },
1526
+ "border-subtle": {
1527
+ $type: "color",
1528
+ $value: "{global.blue.7}"
1529
+ },
1530
+ "border-default": {
1531
+ $type: "color",
1532
+ $value: "{global.blue.8}"
1533
+ },
1534
+ "border-strong": {
1535
+ $type: "color",
1536
+ $value: "{global.blue.9}"
1537
+ },
1538
+ "text-subtle": {
1539
+ $type: "color",
1540
+ $value: "{global.blue.10}"
1541
+ },
1542
+ "text-default": {
1543
+ $type: "color",
1544
+ $value: "{global.blue.11}"
1545
+ },
1546
+ "base-default": {
1547
+ $type: "color",
1548
+ $value: "{global.blue.12}"
1549
+ },
1550
+ "base-hover": {
1551
+ $type: "color",
1552
+ $value: "{global.blue.13}"
1553
+ },
1554
+ "base-active": {
1555
+ $type: "color",
1556
+ $value: "{global.blue.14}"
1557
+ },
1558
+ "base-contrast-subtle": {
1559
+ $type: "color",
1560
+ $value: "{global.blue.15}"
1561
+ },
1562
+ "base-contrast-default": {
1563
+ $type: "color",
1564
+ $value: "{global.blue.16}"
1565
+ }
1566
+ },
1567
+ warning: {
1568
+ "background-default": {
1569
+ $type: "color",
1570
+ $value: "{global.orange.1}"
1571
+ },
1572
+ "background-tinted": {
1573
+ $type: "color",
1574
+ $value: "{global.orange.2}"
1575
+ },
1576
+ "surface-default": {
1577
+ $type: "color",
1578
+ $value: "{global.orange.3}"
1579
+ },
1580
+ "surface-tinted": {
1581
+ $type: "color",
1582
+ $value: "{global.orange.4}"
1583
+ },
1584
+ "surface-hover": {
1585
+ $type: "color",
1586
+ $value: "{global.orange.5}"
1587
+ },
1588
+ "surface-active": {
1589
+ $type: "color",
1590
+ $value: "{global.orange.6}"
1591
+ },
1592
+ "border-subtle": {
1593
+ $type: "color",
1594
+ $value: "{global.orange.7}"
1595
+ },
1596
+ "border-default": {
1597
+ $type: "color",
1598
+ $value: "{global.orange.8}"
1599
+ },
1600
+ "border-strong": {
1601
+ $type: "color",
1602
+ $value: "{global.orange.9}"
1603
+ },
1604
+ "text-subtle": {
1605
+ $type: "color",
1606
+ $value: "{global.orange.10}"
1607
+ },
1608
+ "text-default": {
1609
+ $type: "color",
1610
+ $value: "{global.orange.11}"
1611
+ },
1612
+ "base-default": {
1613
+ $type: "color",
1614
+ $value: "{global.orange.12}"
1615
+ },
1616
+ "base-hover": {
1617
+ $type: "color",
1618
+ $value: "{global.orange.13}"
1619
+ },
1620
+ "base-active": {
1621
+ $type: "color",
1622
+ $value: "{global.orange.14}"
1623
+ },
1624
+ "base-contrast-subtle": {
1625
+ $type: "color",
1626
+ $value: "{global.orange.15}"
1627
+ },
1628
+ "base-contrast-default": {
1629
+ $type: "color",
1630
+ $value: "{global.orange.16}"
1631
+ }
1632
+ },
1633
+ focus: {
1634
+ inner: {
1635
+ $type: "color",
1636
+ $value: "{color.neutral.background-default}"
1637
+ },
1638
+ outer: {
1639
+ $type: "color",
1640
+ $value: "{color.neutral.text-default}"
1641
+ }
94
1642
  }
1643
+ },
1644
+ link: {
1645
+ color: {
1646
+ visited: {
1647
+ $type: "color",
1648
+ $value: "{global.purple.12}"
1649
+ }
1650
+ }
1651
+ }
1652
+ };
1653
+
1654
+ // src/tokens/template/design-tokens/semantic/color.template.json with { type: 'json' }
1655
+ var color_template_default = {
1656
+ "background-default": {
1657
+ $type: "color",
1658
+ $value: "{color.<color>.1}"
1659
+ },
1660
+ "background-tinted": {
1661
+ $type: "color",
1662
+ $value: "{color.<color>.2}"
1663
+ },
1664
+ "surface-default": {
1665
+ $type: "color",
1666
+ $value: "{color.<color>.3}"
1667
+ },
1668
+ "surface-tinted": {
1669
+ $type: "color",
1670
+ $value: "{color.<color>.4}"
1671
+ },
1672
+ "surface-hover": {
1673
+ $type: "color",
1674
+ $value: "{color.<color>.5}"
1675
+ },
1676
+ "surface-active": {
1677
+ $type: "color",
1678
+ $value: "{color.<color>.6}"
1679
+ },
1680
+ "border-subtle": {
1681
+ $type: "color",
1682
+ $value: "{color.<color>.7}"
1683
+ },
1684
+ "border-default": {
1685
+ $type: "color",
1686
+ $value: "{color.<color>.8}"
1687
+ },
1688
+ "border-strong": {
1689
+ $type: "color",
1690
+ $value: "{color.<color>.9}"
1691
+ },
1692
+ "text-subtle": {
1693
+ $type: "color",
1694
+ $value: "{color.<color>.10}"
1695
+ },
1696
+ "text-default": {
1697
+ $type: "color",
1698
+ $value: "{color.<color>.11}"
1699
+ },
1700
+ "base-default": {
1701
+ $type: "color",
1702
+ $value: "{color.<color>.12}"
1703
+ },
1704
+ "base-hover": {
1705
+ $type: "color",
1706
+ $value: "{color.<color>.13}"
1707
+ },
1708
+ "base-active": {
1709
+ $type: "color",
1710
+ $value: "{color.<color>.14}"
1711
+ },
1712
+ "base-contrast-subtle": {
1713
+ $type: "color",
1714
+ $value: "{color.<color>.15}"
1715
+ },
1716
+ "base-contrast-default": {
1717
+ $type: "color",
1718
+ $value: "{color.<color>.16}"
1719
+ }
1720
+ };
1721
+
1722
+ // src/tokens/template/design-tokens/semantic/modes/color.template.json with { type: 'json' }
1723
+ var color_template_default2 = {
1724
+ "background-default": {
1725
+ $type: "color",
1726
+ $value: "{color.<color>.background-default}"
1727
+ },
1728
+ "background-tinted": {
1729
+ $type: "color",
1730
+ $value: "{color.<color>.background-tinted}"
1731
+ },
1732
+ "surface-default": {
1733
+ $type: "color",
1734
+ $value: "{color.<color>.surface-default}"
1735
+ },
1736
+ "surface-tinted": {
1737
+ $type: "color",
1738
+ $value: "{color.<color>.surface-tinted}"
1739
+ },
1740
+ "surface-hover": {
1741
+ $type: "color",
1742
+ $value: "{color.<color>.surface-hover}"
1743
+ },
1744
+ "surface-active": {
1745
+ $type: "color",
1746
+ $value: "{color.<color>.surface-active}"
1747
+ },
1748
+ "border-subtle": {
1749
+ $type: "color",
1750
+ $value: "{color.<color>.border-subtle}"
1751
+ },
1752
+ "border-default": {
1753
+ $type: "color",
1754
+ $value: "{color.<color>.border-default}"
1755
+ },
1756
+ "border-strong": {
1757
+ $type: "color",
1758
+ $value: "{color.<color>.border-strong}"
1759
+ },
1760
+ "text-subtle": {
1761
+ $type: "color",
1762
+ $value: "{color.<color>.text-subtle}"
1763
+ },
1764
+ "text-default": {
1765
+ $type: "color",
1766
+ $value: "{color.<color>.text-default}"
1767
+ },
1768
+ "base-default": {
1769
+ $type: "color",
1770
+ $value: "{color.<color>.base-default}"
1771
+ },
1772
+ "base-hover": {
1773
+ $type: "color",
1774
+ $value: "{color.<color>.base-hover}"
1775
+ },
1776
+ "base-active": {
1777
+ $type: "color",
1778
+ $value: "{color.<color>.base-active}"
1779
+ },
1780
+ "base-contrast-subtle": {
1781
+ $type: "color",
1782
+ $value: "{color.<color>.base-contrast-subtle}"
1783
+ },
1784
+ "base-contrast-default": {
1785
+ $type: "color",
1786
+ $value: "{color.<color>.base-contrast-default}"
1787
+ }
1788
+ };
1789
+
1790
+ // src/tokens/create/generators/semantic.ts
1791
+ var generateSemantic = (colors) => {
1792
+ const mainColorNames = Object.keys(colors.main);
1793
+ const supportColorNames = Object.keys(colors.support);
1794
+ const modes = {
1795
+ "main-color": {},
1796
+ "support-color": {}
95
1797
  };
96
- return tokens;
1798
+ const categories = [
1799
+ ["main-color", mainColorNames],
1800
+ ["support-color", supportColorNames]
1801
+ ];
1802
+ for (const [colorCategory, colorNames] of categories) {
1803
+ for (const colorName of colorNames) {
1804
+ const category = colorCategory.replace("-color", "");
1805
+ const customColorTokens = {
1806
+ color: {
1807
+ [category]: JSON.parse(
1808
+ JSON.stringify(
1809
+ color_template_default2,
1810
+ (key, value) => {
1811
+ if (key === "$value") {
1812
+ return value.replace("<color>", colorName);
1813
+ }
1814
+ return value;
1815
+ },
1816
+ 2
1817
+ )
1818
+ )
1819
+ }
1820
+ };
1821
+ modes[colorCategory][colorName] = customColorTokens;
1822
+ }
1823
+ }
1824
+ const customColors = [...mainColorNames, "neutral", ...supportColorNames];
1825
+ const semanticColorTokens = customColors.map(
1826
+ (colorName) => [
1827
+ colorName,
1828
+ R5.map((x) => ({ ...x, $value: x.$value.replace("<color>", colorName) }), color_template_default)
1829
+ ]
1830
+ );
1831
+ const color = {
1832
+ ...color_base_template_default,
1833
+ color: {
1834
+ ...Object.fromEntries(semanticColorTokens),
1835
+ ...color_base_template_default.color
1836
+ }
1837
+ };
1838
+ return {
1839
+ modes,
1840
+ color
1841
+ };
1842
+ };
1843
+
1844
+ // src/tokens/create/generators/theme.ts
1845
+ import * as R6 from "ramda";
1846
+
1847
+ // src/tokens/template/design-tokens/themes/theme.base.template.json with { type: 'json' }
1848
+ var theme_base_template_default = {
1849
+ color: {},
1850
+ "font-family": {
1851
+ $type: "fontFamilies",
1852
+ $value: "{<theme>.font-family}"
1853
+ },
1854
+ "font-weight": {
1855
+ medium: {
1856
+ $type: "fontWeights",
1857
+ $value: "{<theme>.font-weight.medium}"
1858
+ },
1859
+ semibold: {
1860
+ $type: "fontWeights",
1861
+ $value: "{<theme>.font-weight.semibold}"
1862
+ },
1863
+ regular: {
1864
+ $type: "fontWeights",
1865
+ $value: "{<theme>.font-weight.regular}"
1866
+ }
1867
+ },
1868
+ "border-radius": {
1869
+ "1": {
1870
+ $type: "dimension",
1871
+ $value: "min({border-radius.base}*0.5,{border-radius.scale})"
1872
+ },
1873
+ "2": {
1874
+ $type: "dimension",
1875
+ $value: "min({border-radius.base},{border-radius.scale}*2)"
1876
+ },
1877
+ "3": {
1878
+ $type: "dimension",
1879
+ $value: "min({border-radius.base}*2,{border-radius.scale}*5)"
1880
+ },
1881
+ "4": {
1882
+ $type: "dimension",
1883
+ $value: "min({border-radius.base}*3,{border-radius.scale}*7)"
1884
+ },
1885
+ "5": {
1886
+ $type: "dimension",
1887
+ $value: "{border-radius.base}"
1888
+ },
1889
+ "6": {
1890
+ $type: "dimension",
1891
+ $value: "9999"
1892
+ },
1893
+ base: {
1894
+ $type: "dimension",
1895
+ $value: "4"
1896
+ },
1897
+ scale: {
1898
+ $type: "dimension",
1899
+ $value: "4"
1900
+ }
1901
+ }
1902
+ };
1903
+
1904
+ // src/tokens/template/design-tokens/themes/theme.template.json with { type: 'json' }
1905
+ var theme_template_default = {
1906
+ "1": {
1907
+ $type: "color",
1908
+ $value: "{<theme>.<color>.1}"
1909
+ },
1910
+ "2": {
1911
+ $type: "color",
1912
+ $value: "{<theme>.<color>.2}"
1913
+ },
1914
+ "3": {
1915
+ $type: "color",
1916
+ $value: "{<theme>.<color>.3}"
1917
+ },
1918
+ "4": {
1919
+ $type: "color",
1920
+ $value: "{<theme>.<color>.4}"
1921
+ },
1922
+ "5": {
1923
+ $type: "color",
1924
+ $value: "{<theme>.<color>.5}"
1925
+ },
1926
+ "6": {
1927
+ $type: "color",
1928
+ $value: "{<theme>.<color>.6}"
1929
+ },
1930
+ "7": {
1931
+ $type: "color",
1932
+ $value: "{<theme>.<color>.7}"
1933
+ },
1934
+ "8": {
1935
+ $type: "color",
1936
+ $value: "{<theme>.<color>.8}"
1937
+ },
1938
+ "9": {
1939
+ $type: "color",
1940
+ $value: "{<theme>.<color>.9}"
1941
+ },
1942
+ "10": {
1943
+ $type: "color",
1944
+ $value: "{<theme>.<color>.10}"
1945
+ },
1946
+ "11": {
1947
+ $type: "color",
1948
+ $value: "{<theme>.<color>.11}"
1949
+ },
1950
+ "12": {
1951
+ $type: "color",
1952
+ $value: "{<theme>.<color>.12}"
1953
+ },
1954
+ "13": {
1955
+ $type: "color",
1956
+ $value: "{<theme>.<color>.13}"
1957
+ },
1958
+ "14": {
1959
+ $type: "color",
1960
+ $value: "{<theme>.<color>.14}"
1961
+ },
1962
+ "15": {
1963
+ $type: "color",
1964
+ $value: "{<theme>.<color>.15}"
1965
+ },
1966
+ "16": {
1967
+ $type: "color",
1968
+ $value: "{<theme>.<color>.16}"
1969
+ }
1970
+ };
1971
+
1972
+ // src/tokens/create/generators/theme.ts
1973
+ var generateTheme = (colors, themeName, borderRadius) => {
1974
+ const mainColorNames = Object.keys(colors.main);
1975
+ const supportColorNames = Object.keys(colors.support);
1976
+ const customColors = [...mainColorNames, "neutral", ...supportColorNames];
1977
+ const themeColorTokens = Object.fromEntries(
1978
+ customColors.map(
1979
+ (colorName) => [
1980
+ colorName,
1981
+ R6.map((x) => ({ ...x, $value: x.$value.replace("<color>", colorName) }), theme_template_default)
1982
+ ]
1983
+ )
1984
+ );
1985
+ const { color: themeBaseFileColor, ...remainingThemeFile } = theme_base_template_default;
1986
+ const themeFile = {
1987
+ color: {
1988
+ ...themeColorTokens,
1989
+ ...themeBaseFileColor
1990
+ },
1991
+ ...remainingThemeFile
1992
+ };
1993
+ const baseBorderRadius = R6.lensPath(["border-radius", "base", "$value"]);
1994
+ const updatedThemeFile = R6.set(baseBorderRadius, String(borderRadius), themeFile);
1995
+ const token = JSON.parse(
1996
+ JSON.stringify(
1997
+ updatedThemeFile,
1998
+ (key, value) => {
1999
+ if (key === "$value") {
2000
+ return value.replace("<theme>", themeName);
2001
+ }
2002
+ return value;
2003
+ },
2004
+ 2
2005
+ )
2006
+ );
2007
+ return token;
2008
+ };
2009
+
2010
+ // src/tokens/template/design-tokens/primitives/modes/typography/typography.template.json with { type: 'json' }
2011
+ var typography_template_default = {
2012
+ "<theme>": {
2013
+ "font-family": {
2014
+ $type: "fontFamilies",
2015
+ $value: "<font-family>"
2016
+ },
2017
+ "font-weight": {
2018
+ medium: {
2019
+ $type: "fontWeights",
2020
+ $value: "Medium"
2021
+ },
2022
+ semibold: {
2023
+ $type: "fontWeights",
2024
+ $value: "Semi bold"
2025
+ },
2026
+ regular: {
2027
+ $type: "fontWeights",
2028
+ $value: "Regular"
2029
+ }
2030
+ }
2031
+ }
2032
+ };
2033
+
2034
+ // src/tokens/create/generators/typography.ts
2035
+ var generateTypography = (themeName, { fontFamily }) => {
2036
+ return JSON.parse(
2037
+ JSON.stringify(typography_template_default).replaceAll(/<font-family>/g, fontFamily).replaceAll(/<theme>/g, themeName)
2038
+ );
2039
+ };
2040
+
2041
+ // src/tokens/create.ts
2042
+ var cliOptions = {
2043
+ outDir: "out-dir",
2044
+ clean: "clean",
2045
+ theme: {
2046
+ colors: {
2047
+ main: "main-colors",
2048
+ support: "support-colors",
2049
+ neutral: "neutral-color"
2050
+ },
2051
+ typography: {
2052
+ fontFamily: "font-family"
2053
+ },
2054
+ borderRadius: "border-radius"
2055
+ }
2056
+ };
2057
+ var createTokens = async (opts) => {
2058
+ const { colors, typography, name, borderRadius } = opts;
2059
+ const colorSchemes = ["light", "dark"];
2060
+ const semantic = generateSemantic(colors);
2061
+ const tokenSets = new Map([
2062
+ ...getDefaultTokens([
2063
+ "primitives/globals",
2064
+ "primitives/modes/size/small",
2065
+ "primitives/modes/size/medium",
2066
+ "primitives/modes/size/large",
2067
+ "primitives/modes/size/global",
2068
+ "primitives/modes/typography/size/small",
2069
+ "primitives/modes/typography/size/medium",
2070
+ "primitives/modes/typography/size/large"
2071
+ ]),
2072
+ [`primitives/modes/typography/primary/${name}`, generateTypography(name, typography)],
2073
+ [`primitives/modes/typography/secondary/${name}`, generateTypography(name, typography)],
2074
+ ...colorSchemes.flatMap((scheme) => [
2075
+ [`primitives/modes/color-scheme/${scheme}/global`, generateColorGlobal(scheme)],
2076
+ [`primitives/modes/color-scheme/${scheme}/${name}`, generateColorScheme(name, scheme, colors)]
2077
+ ]),
2078
+ [`themes/${name}`, generateTheme(colors, name, borderRadius)],
2079
+ ["semantic/color", semantic.color],
2080
+ // maps out semantic modes, ieg 'semantic/modes/main-color/accent', and 'semantic/modes/support-color/brand1'
2081
+ ...Object.entries(semantic.modes).flatMap(
2082
+ ([mode, colors2]) => Object.entries(colors2).map(([key, colorSet]) => [`semantic/modes/${mode}/${key}`, colorSet])
2083
+ ),
2084
+ getDefaultToken("semantic/style")
2085
+ ]);
2086
+ return { tokenSets };
97
2087
  };
98
2088
  export {
99
2089
  cliOptions,