@digdir/designsystemet 0.0.0-deps-tsdown-20260421103939

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 (195) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +115 -0
  3. package/configs/test-tokens.config.json +82 -0
  4. package/dist/bin/config.d.ts +12 -0
  5. package/dist/bin/config.d.ts.map +1 -0
  6. package/dist/bin/config.js +58 -0
  7. package/dist/bin/designsystemet.d.ts +3 -0
  8. package/dist/bin/designsystemet.d.ts.map +1 -0
  9. package/dist/bin/designsystemet.js +156 -0
  10. package/dist/bin/options.d.ts +21 -0
  11. package/dist/bin/options.d.ts.map +1 -0
  12. package/dist/bin/options.js +23 -0
  13. package/dist/config.schema.json +209 -0
  14. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BorderValues.js +9 -0
  15. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BoxShadowTypes.js +8 -0
  16. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/BoxShadowValues.js +13 -0
  17. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/ColorModifierTypes.js +10 -0
  18. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/ColorSpaceTypes.js +10 -0
  19. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/Properties.js +53 -0
  20. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/StrokeStyleValues.js +14 -0
  21. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenSetStatus.js +9 -0
  22. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TokenTypes.js +32 -0
  23. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/constants/TypographyValues.js +15 -0
  24. package/dist/node_modules/.pnpm/@tokens-studio_types@0.5.2/node_modules/@tokens-studio/types/dist/types/index.js +11 -0
  25. package/dist/package.js +5 -0
  26. package/dist/src/colors/colorMetadata.d.ts +56 -0
  27. package/dist/src/colors/colorMetadata.d.ts.map +1 -0
  28. package/dist/src/colors/colorMetadata.js +259 -0
  29. package/dist/src/colors/index.d.ts +5 -0
  30. package/dist/src/colors/index.d.ts.map +1 -0
  31. package/dist/src/colors/index.js +5 -0
  32. package/dist/src/colors/theme.d.ts +30 -0
  33. package/dist/src/colors/theme.d.ts.map +1 -0
  34. package/dist/src/colors/theme.js +111 -0
  35. package/dist/src/colors/types.d.ts +69 -0
  36. package/dist/src/colors/types.d.ts.map +1 -0
  37. package/dist/src/colors/types.js +24 -0
  38. package/dist/src/colors/utils.d.ts +128 -0
  39. package/dist/src/colors/utils.d.ts.map +1 -0
  40. package/dist/src/colors/utils.js +244 -0
  41. package/dist/src/config.d.ts +181 -0
  42. package/dist/src/config.d.ts.map +1 -0
  43. package/dist/src/config.js +118 -0
  44. package/dist/src/index.d.ts +4 -0
  45. package/dist/src/index.d.ts.map +1 -0
  46. package/dist/src/index.js +10 -0
  47. package/dist/src/migrations/beta-to-v1.d.ts +3 -0
  48. package/dist/src/migrations/beta-to-v1.d.ts.map +1 -0
  49. package/dist/src/migrations/beta-to-v1.js +340 -0
  50. package/dist/src/migrations/codemods/css/plugins.d.ts +6 -0
  51. package/dist/src/migrations/codemods/css/plugins.d.ts.map +1 -0
  52. package/dist/src/migrations/codemods/css/plugins.js +35 -0
  53. package/dist/src/migrations/codemods/css/run.d.ts +8 -0
  54. package/dist/src/migrations/codemods/css/run.d.ts.map +1 -0
  55. package/dist/src/migrations/codemods/css/run.js +23 -0
  56. package/dist/src/migrations/color-rename-next49.d.ts +3 -0
  57. package/dist/src/migrations/color-rename-next49.d.ts.map +1 -0
  58. package/dist/src/migrations/color-rename-next49.js +46 -0
  59. package/dist/src/migrations/index.d.ts +6 -0
  60. package/dist/src/migrations/index.d.ts.map +1 -0
  61. package/dist/src/migrations/index.js +9 -0
  62. package/dist/src/scripts/createJsonSchema.d.ts +2 -0
  63. package/dist/src/scripts/createJsonSchema.d.ts.map +1 -0
  64. package/dist/src/scripts/update-preview-tokens.d.ts +3 -0
  65. package/dist/src/scripts/update-preview-tokens.d.ts.map +1 -0
  66. package/dist/src/tokens/build.d.ts +4 -0
  67. package/dist/src/tokens/build.d.ts.map +1 -0
  68. package/dist/src/tokens/build.js +41 -0
  69. package/dist/src/tokens/create/files.d.ts +11 -0
  70. package/dist/src/tokens/create/files.d.ts.map +1 -0
  71. package/dist/src/tokens/create/files.js +44 -0
  72. package/dist/src/tokens/create/generators/$designsystemet.d.ts +5 -0
  73. package/dist/src/tokens/create/generators/$designsystemet.d.ts.map +1 -0
  74. package/dist/src/tokens/create/generators/$designsystemet.js +10 -0
  75. package/dist/src/tokens/create/generators/$metadata.d.ts +8 -0
  76. package/dist/src/tokens/create/generators/$metadata.d.ts.map +1 -0
  77. package/dist/src/tokens/create/generators/$metadata.js +19 -0
  78. package/dist/src/tokens/create/generators/$themes.d.ts +27 -0
  79. package/dist/src/tokens/create/generators/$themes.d.ts.map +1 -0
  80. package/dist/src/tokens/create/generators/$themes.js +158 -0
  81. package/dist/src/tokens/create/generators/primitives/color-scheme.d.ts +5 -0
  82. package/dist/src/tokens/create/generators/primitives/color-scheme.d.ts.map +1 -0
  83. package/dist/src/tokens/create/generators/primitives/color-scheme.js +71 -0
  84. package/dist/src/tokens/create/generators/primitives/globals.d.ts +3 -0
  85. package/dist/src/tokens/create/generators/primitives/globals.d.ts.map +1 -0
  86. package/dist/src/tokens/create/generators/primitives/globals.js +142 -0
  87. package/dist/src/tokens/create/generators/primitives/size.d.ts +4 -0
  88. package/dist/src/tokens/create/generators/primitives/size.d.ts.map +1 -0
  89. package/dist/src/tokens/create/generators/primitives/size.js +147 -0
  90. package/dist/src/tokens/create/generators/primitives/typography.d.ts +4 -0
  91. package/dist/src/tokens/create/generators/primitives/typography.d.ts.map +1 -0
  92. package/dist/src/tokens/create/generators/primitives/typography.js +216 -0
  93. package/dist/src/tokens/create/generators/semantic/color-modes.d.ts +8 -0
  94. package/dist/src/tokens/create/generators/semantic/color-modes.d.ts.map +1 -0
  95. package/dist/src/tokens/create/generators/semantic/color-modes.js +26 -0
  96. package/dist/src/tokens/create/generators/semantic/color.d.ts +5 -0
  97. package/dist/src/tokens/create/generators/semantic/color.d.ts.map +1 -0
  98. package/dist/src/tokens/create/generators/semantic/color.js +46 -0
  99. package/dist/src/tokens/create/generators/semantic/style.d.ts +3 -0
  100. package/dist/src/tokens/create/generators/semantic/style.d.ts.map +1 -0
  101. package/dist/src/tokens/create/generators/semantic/style.js +381 -0
  102. package/dist/src/tokens/create/generators/themes/theme.d.ts +3 -0
  103. package/dist/src/tokens/create/generators/themes/theme.d.ts.map +1 -0
  104. package/dist/src/tokens/create/generators/themes/theme.js +112 -0
  105. package/dist/src/tokens/create.d.ts +21 -0
  106. package/dist/src/tokens/create.d.ts.map +1 -0
  107. package/dist/src/tokens/create.js +47 -0
  108. package/dist/src/tokens/format.d.ts +15 -0
  109. package/dist/src/tokens/format.d.ts.map +1 -0
  110. package/dist/src/tokens/format.js +41 -0
  111. package/dist/src/tokens/generate-config.d.ts +10 -0
  112. package/dist/src/tokens/generate-config.d.ts.map +1 -0
  113. package/dist/src/tokens/generate-config.js +178 -0
  114. package/dist/src/tokens/index.d.ts +4 -0
  115. package/dist/src/tokens/index.d.ts.map +1 -0
  116. package/dist/src/tokens/index.js +3 -0
  117. package/dist/src/tokens/process/configs/color.d.ts +12 -0
  118. package/dist/src/tokens/process/configs/color.d.ts.map +1 -0
  119. package/dist/src/tokens/process/configs/color.js +51 -0
  120. package/dist/src/tokens/process/configs/semantic.d.ts +3 -0
  121. package/dist/src/tokens/process/configs/semantic.d.ts.map +1 -0
  122. package/dist/src/tokens/process/configs/semantic.js +47 -0
  123. package/dist/src/tokens/process/configs/shared.d.ts +10 -0
  124. package/dist/src/tokens/process/configs/shared.d.ts.map +1 -0
  125. package/dist/src/tokens/process/configs/shared.js +19 -0
  126. package/dist/src/tokens/process/configs/size-mode.d.ts +3 -0
  127. package/dist/src/tokens/process/configs/size-mode.d.ts.map +1 -0
  128. package/dist/src/tokens/process/configs/size-mode.js +28 -0
  129. package/dist/src/tokens/process/configs/size.d.ts +3 -0
  130. package/dist/src/tokens/process/configs/size.d.ts.map +1 -0
  131. package/dist/src/tokens/process/configs/size.js +34 -0
  132. package/dist/src/tokens/process/configs/type-scale.d.ts +3 -0
  133. package/dist/src/tokens/process/configs/type-scale.d.ts.map +1 -0
  134. package/dist/src/tokens/process/configs/type-scale.js +49 -0
  135. package/dist/src/tokens/process/configs/typography.d.ts +3 -0
  136. package/dist/src/tokens/process/configs/typography.d.ts.map +1 -0
  137. package/dist/src/tokens/process/configs/typography.js +64 -0
  138. package/dist/src/tokens/process/configs.d.ts +20 -0
  139. package/dist/src/tokens/process/configs.d.ts.map +1 -0
  140. package/dist/src/tokens/process/configs.js +90 -0
  141. package/dist/src/tokens/process/formats/css/color.d.ts +4 -0
  142. package/dist/src/tokens/process/formats/css/color.d.ts.map +1 -0
  143. package/dist/src/tokens/process/formats/css/color.js +63 -0
  144. package/dist/src/tokens/process/formats/css/semantic.d.ts +3 -0
  145. package/dist/src/tokens/process/formats/css/semantic.d.ts.map +1 -0
  146. package/dist/src/tokens/process/formats/css/semantic.js +29 -0
  147. package/dist/src/tokens/process/formats/css/size-mode.d.ts +4 -0
  148. package/dist/src/tokens/process/formats/css/size-mode.d.ts.map +1 -0
  149. package/dist/src/tokens/process/formats/css/size-mode.js +50 -0
  150. package/dist/src/tokens/process/formats/css/size.d.ts +21 -0
  151. package/dist/src/tokens/process/formats/css/size.d.ts.map +1 -0
  152. package/dist/src/tokens/process/formats/css/size.js +93 -0
  153. package/dist/src/tokens/process/formats/css/type-scale.d.ts +3 -0
  154. package/dist/src/tokens/process/formats/css/type-scale.d.ts.map +1 -0
  155. package/dist/src/tokens/process/formats/css/type-scale.js +55 -0
  156. package/dist/src/tokens/process/formats/css/typography.d.ts +3 -0
  157. package/dist/src/tokens/process/formats/css/typography.d.ts.map +1 -0
  158. package/dist/src/tokens/process/formats/css/typography.js +29 -0
  159. package/dist/src/tokens/process/formats/css.d.ts +11 -0
  160. package/dist/src/tokens/process/formats/css.d.ts.map +1 -0
  161. package/dist/src/tokens/process/formats/css.js +18 -0
  162. package/dist/src/tokens/process/output/declarations.d.ts +5 -0
  163. package/dist/src/tokens/process/output/declarations.d.ts.map +1 -0
  164. package/dist/src/tokens/process/output/declarations.js +38 -0
  165. package/dist/src/tokens/process/output/tailwind.d.ts +3 -0
  166. package/dist/src/tokens/process/output/tailwind.d.ts.map +1 -0
  167. package/dist/src/tokens/process/output/tailwind.js +45 -0
  168. package/dist/src/tokens/process/output/theme.d.ts +27 -0
  169. package/dist/src/tokens/process/output/theme.d.ts.map +1 -0
  170. package/dist/src/tokens/process/output/theme.js +83 -0
  171. package/dist/src/tokens/process/platform.d.ts +106 -0
  172. package/dist/src/tokens/process/platform.d.ts.map +1 -0
  173. package/dist/src/tokens/process/platform.js +168 -0
  174. package/dist/src/tokens/process/transformers.d.ts +6 -0
  175. package/dist/src/tokens/process/transformers.d.ts.map +1 -0
  176. package/dist/src/tokens/process/transformers.js +54 -0
  177. package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts +36 -0
  178. package/dist/src/tokens/process/utils/getMultidimensionalThemes.d.ts.map +1 -0
  179. package/dist/src/tokens/process/utils/getMultidimensionalThemes.js +114 -0
  180. package/dist/src/tokens/process/utils/kebab-case.d.ts +5 -0
  181. package/dist/src/tokens/process/utils/kebab-case.d.ts.map +1 -0
  182. package/dist/src/tokens/process/utils/kebab-case.js +9 -0
  183. package/dist/src/tokens/types.d.ts +74 -0
  184. package/dist/src/tokens/types.d.ts.map +1 -0
  185. package/dist/src/tokens/types.js +7 -0
  186. package/dist/src/tokens/utils.d.ts +63 -0
  187. package/dist/src/tokens/utils.d.ts.map +1 -0
  188. package/dist/src/tokens/utils.js +121 -0
  189. package/dist/src/types.d.ts +6 -0
  190. package/dist/src/types.d.ts.map +1 -0
  191. package/dist/src/types.js +2 -0
  192. package/dist/src/utils/filesystem.d.ts +40 -0
  193. package/dist/src/utils/filesystem.d.ts.map +1 -0
  194. package/dist/src/utils/filesystem.js +115 -0
  195. package/package.json +87 -0
@@ -0,0 +1,259 @@
1
+ import * as R from "ramda";
2
+ //#region src/colors/colorMetadata.ts
3
+ const baseColors = {
4
+ info: "#0A71C0",
5
+ success: "#068718",
6
+ warning: "#EA9B1B",
7
+ danger: "#C01B1B"
8
+ };
9
+ const dsLinkColor = "#663299";
10
+ const colorMetadata = {
11
+ "background-default": {
12
+ number: 1,
13
+ name: "background-default",
14
+ group: "background",
15
+ displayName: "Background Default",
16
+ description: {
17
+ long: "Background Default er den mest nøytrale bakgrunnsfargen.",
18
+ short: "Standard bakgrunnsfarge."
19
+ },
20
+ luminance: {
21
+ light: 1,
22
+ dark: .009,
23
+ contrast: .001
24
+ }
25
+ },
26
+ "background-tinted": {
27
+ number: 2,
28
+ name: "background-tinted",
29
+ group: "background",
30
+ displayName: "Background Tinted",
31
+ description: {
32
+ long: "Background Tinted er en bakgrunnsfarge som har et hint av farge i seg.",
33
+ short: "Bakgrunn med et hint av farge i seg."
34
+ },
35
+ luminance: {
36
+ light: .9,
37
+ dark: .014,
38
+ contrast: .0065
39
+ }
40
+ },
41
+ "surface-default": {
42
+ number: 3,
43
+ name: "surface-default",
44
+ group: "surface",
45
+ displayName: "Surface Default",
46
+ description: {
47
+ long: "Surface Default brukes på flater som ligger oppå bakgrunnsfargene. Dette er den mest nøytrale surface fargen.",
48
+ short: "Standardfarge for overflater / komponenter."
49
+ },
50
+ luminance: {
51
+ light: 1,
52
+ dark: .021,
53
+ contrast: .015
54
+ }
55
+ },
56
+ "surface-tinted": {
57
+ number: 4,
58
+ name: "surface-tinted",
59
+ group: "surface",
60
+ displayName: "Surface Tinted",
61
+ description: {
62
+ long: "Surface Tinted brukes på flater som ligger oppå bakgrunnsfargene. Denne har et hint av farge i seg.",
63
+ short: "Overflater / komponenter med et hint av farge i seg."
64
+ },
65
+ luminance: {
66
+ light: .81,
67
+ dark: .027,
68
+ contrast: .015
69
+ }
70
+ },
71
+ "surface-hover": {
72
+ number: 5,
73
+ name: "surface-hover",
74
+ group: "surface",
75
+ displayName: "Surface Hover",
76
+ description: {
77
+ long: "Surface Hover brukes på interaktive flater som ligger oppå bakgrunnsfargene i en hover state.",
78
+ short: "Hover-farge til overflater / komponenter."
79
+ },
80
+ luminance: {
81
+ light: .7,
82
+ dark: .036,
83
+ contrast: .028
84
+ }
85
+ },
86
+ "surface-active": {
87
+ number: 6,
88
+ name: "surface-active",
89
+ group: "surface",
90
+ displayName: "Surface Active",
91
+ description: {
92
+ long: "Surface Active brukes på interaktive flater som ligger oppå bakgrunnsfargene i en active state.",
93
+ short: "Active-farge til overflater / komponenter."
94
+ },
95
+ luminance: {
96
+ light: .59,
97
+ dark: .056,
98
+ contrast: .045
99
+ }
100
+ },
101
+ "border-subtle": {
102
+ number: 7,
103
+ name: "border-subtle",
104
+ group: "border",
105
+ displayName: "Border Subtle",
106
+ description: {
107
+ long: "Border Subtle er den lyseste border-fargen og brukes for å skille elementer fra hverandre.",
108
+ short: "Border-farge med lav kontrast til dekorativ bruk (skillelinjer)."
109
+ },
110
+ luminance: {
111
+ light: .5,
112
+ dark: .08,
113
+ contrast: .26
114
+ }
115
+ },
116
+ "border-default": {
117
+ number: 8,
118
+ name: "border-default",
119
+ group: "border",
120
+ displayName: "Border Default",
121
+ description: {
122
+ long: "Border Default er en border-farge som brukes når man ønsker god kontrast mot bakgrunnsfargene.",
123
+ short: "Standard border-farge til skjemakomponenter og meningsbærende elementer."
124
+ },
125
+ luminance: {
126
+ light: .19,
127
+ dark: .22,
128
+ contrast: .4
129
+ }
130
+ },
131
+ "border-strong": {
132
+ number: 9,
133
+ name: "border-strong",
134
+ group: "border",
135
+ displayName: "Border Strong",
136
+ description: {
137
+ long: "Border Strong er den mørkeste border-fargen og brukes når man ønsker en veldig tydelig og sterk border.",
138
+ short: "Border-farge med høy kontrast for ekstra synlighet."
139
+ },
140
+ luminance: {
141
+ light: .11,
142
+ dark: .39,
143
+ contrast: .6
144
+ }
145
+ },
146
+ "text-subtle": {
147
+ number: 10,
148
+ name: "text-subtle",
149
+ group: "text",
150
+ displayName: "Text Subtle",
151
+ description: {
152
+ long: "Text Subtle er den lyseste tekstfargen og brukes på tekst som skal være litt mindre synlig eller for å skape variasjon i typografien.",
153
+ short: "Tekst- og ikonfarge med lavere kontrast."
154
+ },
155
+ luminance: {
156
+ light: .11,
157
+ dark: .39,
158
+ contrast: .57
159
+ }
160
+ },
161
+ "text-default": {
162
+ number: 11,
163
+ name: "text-default",
164
+ group: "text",
165
+ displayName: "Text Default",
166
+ description: {
167
+ long: "Text Default er den mørkeste tekstfargen og brukes på tekst som skal være mest synlig. Denne fargen bør brukes på mesteparten av teksten på en side.",
168
+ short: "Tekst- og ikonfarge med høy kontrast og god synlighet."
169
+ },
170
+ luminance: {
171
+ light: .0245,
172
+ dark: .84,
173
+ contrast: .86
174
+ }
175
+ },
176
+ "base-default": {
177
+ number: 12,
178
+ name: "base-default",
179
+ group: "base",
180
+ displayName: "Base Default",
181
+ description: {
182
+ long: "Base Default fargen får den samme hex koden som fargen som er valgt i verktøyet. Brukes ofte som farge på viktige elementer og på flater som skal fange brukerens oppmerksomhet.",
183
+ short: "Standardfarge for solide bakgrunner."
184
+ },
185
+ luminance: {
186
+ light: 1,
187
+ dark: 1,
188
+ contrast: 1
189
+ }
190
+ },
191
+ "base-hover": {
192
+ number: 13,
193
+ name: "base-hover",
194
+ group: "base",
195
+ displayName: "Base Hover",
196
+ description: {
197
+ long: "Base Hover brukes som hover farge på elementer som bruker Base Default fargen.",
198
+ short: "Hover-farge for solide bakgrunner."
199
+ },
200
+ luminance: {
201
+ light: 1,
202
+ dark: 1,
203
+ contrast: 1
204
+ }
205
+ },
206
+ "base-active": {
207
+ number: 14,
208
+ name: "base-active",
209
+ group: "base",
210
+ displayName: "Base Active",
211
+ description: {
212
+ long: "Base Active brukes som active farge på elementer som bruker Base Default fargen.",
213
+ short: "Active-farge for solide bakgrunner."
214
+ },
215
+ luminance: {
216
+ light: 1,
217
+ dark: 1,
218
+ contrast: 1
219
+ }
220
+ },
221
+ "base-contrast-subtle": {
222
+ number: 15,
223
+ name: "base-contrast-subtle",
224
+ group: "base",
225
+ displayName: "Contrast Subtle",
226
+ description: {
227
+ long: "Contrast Subtle brukes som en viktig meningsbærende farge oppå Base Default fargen.",
228
+ short: "Farge med god kontrast mot Base-default."
229
+ },
230
+ luminance: {
231
+ light: 1,
232
+ dark: 1,
233
+ contrast: 1
234
+ }
235
+ },
236
+ "base-contrast-default": {
237
+ number: 16,
238
+ name: "base-contrast-default",
239
+ group: "base",
240
+ displayName: "Contrast Default",
241
+ description: {
242
+ long: "Contrast Default brukes som en viktig meningsbærende farge oppå alle Base fargane.",
243
+ short: "Farge med god kontrast mot Base-default og Base-hover."
244
+ },
245
+ luminance: {
246
+ light: 1,
247
+ dark: 1,
248
+ contrast: 1
249
+ }
250
+ }
251
+ };
252
+ const colorMetadataByNumber = R.indexBy((metadata) => metadata.number, Object.values(colorMetadata));
253
+ const getColorMetadataByNumber = (number) => {
254
+ return colorMetadataByNumber[number];
255
+ };
256
+ const colorNames = Object.keys(colorMetadata);
257
+ const baseColorNames = Object.keys(baseColors);
258
+ //#endregion
259
+ export { baseColorNames, baseColors, colorMetadata, colorNames, dsLinkColor, getColorMetadataByNumber };
@@ -0,0 +1,5 @@
1
+ export * from './colorMetadata.js';
2
+ export * from './theme.js';
3
+ export * from './types.js';
4
+ export * from './utils.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/colors/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { baseColorNames, baseColors, colorMetadata, colorNames, dsLinkColor, getColorMetadataByNumber } from "./colorMetadata.js";
2
+ import { HSLToHex, areColorsContrasting, canTextBeUsedOnColors, convertColor, convertToHex, getContrastFromHex, getContrastFromLightness, getLightnessFromHex, getLuminanceFromColor, getLuminanceFromLightness, hexToCssHsl, hexToHSL, hexToHsluv, hexToRgb, hslArrToCss, isHexColor, rgbToHex } from "./utils.js";
3
+ import { RESERVED_COLORS, generateColorContrast, generateColorScale, generateColorSchemes, getCssVariable } from "./theme.js";
4
+ import { semanticColorMap, semanticColorNames, semanticColorNumbers } from "./types.js";
5
+ export { HSLToHex, RESERVED_COLORS, areColorsContrasting, baseColorNames, baseColors, canTextBeUsedOnColors, colorMetadata, colorNames, convertColor, convertToHex, dsLinkColor, generateColorContrast, generateColorScale, generateColorSchemes, getColorMetadataByNumber, getContrastFromHex, getContrastFromLightness, getCssVariable, getLightnessFromHex, getLuminanceFromColor, getLuminanceFromLightness, hexToCssHsl, hexToHSL, hexToHsluv, hexToRgb, hslArrToCss, isHexColor, rgbToHex, semanticColorMap, semanticColorNames, semanticColorNumbers };
@@ -0,0 +1,30 @@
1
+ import type { Color, ColorNumber, ColorScheme, CssColor, ThemeInfo } from './types.js';
2
+ export declare const RESERVED_COLORS: string[];
3
+ /**
4
+ * Generates a color scale based on a base color and a color mode.
5
+ *
6
+ * @param color The base color that is used to generate the color scale
7
+ * @param colorScheme The color scheme to generate a scale for
8
+ */
9
+ export declare const generateColorScale: (color: CssColor, colorScheme: ColorScheme) => Color[];
10
+ /**
11
+ * Generates color schemes based on a base color. Light, Dark and Contrast scales are included.
12
+ *
13
+ * @param color The base color that is used to generate the color schemes
14
+ */
15
+ export declare const generateColorSchemes: (color: CssColor) => ThemeInfo;
16
+ /**
17
+ * Generates contrast color for given color
18
+ *
19
+ * @param color color
20
+ * @param type 'default' | 'subtle'
21
+ */
22
+ export declare const generateColorContrast: (color: CssColor, type: "default" | "subtle") => CssColor;
23
+ /**
24
+ * Returns the css variable for a color.
25
+ * TODO: deprecate this
26
+ * @param colorType The type of color
27
+ * @param colorNumber The number of the color
28
+ */
29
+ export declare const getCssVariable: (colorType: string, colorNumber: ColorNumber) => string;
30
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/colors/theme.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvF,eAAO,MAAM,eAAe,UAAsD,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,QAAQ,EAAE,aAAa,WAAW,KAAG,KAAK,EAiCnF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,QAAQ,KAAG,SAIrD,CAAC;AAgCH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,QAAQ,EAAE,MAAM,SAAS,GAAG,QAAQ,KAAG,QAgBnF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,EAAE,aAAa,WAAW,WAEzE,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { colorMetadata, getColorMetadataByNumber } from "./colorMetadata.js";
2
+ import { getLightnessFromHex, getLuminanceFromLightness } from "./utils.js";
3
+ import * as R from "ramda";
4
+ import chroma from "chroma-js";
5
+ //#region src/colors/theme.ts
6
+ const RESERVED_COLORS = [
7
+ "neutral",
8
+ "success",
9
+ "warning",
10
+ "danger",
11
+ "info"
12
+ ];
13
+ /**
14
+ * Generates a color scale based on a base color and a color mode.
15
+ *
16
+ * @param color The base color that is used to generate the color scale
17
+ * @param colorScheme The color scheme to generate a scale for
18
+ */
19
+ const generateColorScale = (color, colorScheme) => {
20
+ let interpolationColor = color;
21
+ if (colorScheme === "dark") {
22
+ const [L, C, H] = chroma(color).oklch();
23
+ interpolationColor = chroma(L, C * .7, H, "oklch").hex();
24
+ }
25
+ const colors = R.mapObjIndexed((colorData) => {
26
+ const luminance = colorData.luminance[colorScheme];
27
+ return {
28
+ ...colorData,
29
+ hex: chroma(interpolationColor).luminance(luminance).hex()
30
+ };
31
+ }, colorMetadata);
32
+ const baseColors = generateBaseColors(color, colorScheme);
33
+ colors["base-default"] = {
34
+ ...colors["base-default"],
35
+ hex: baseColors.default
36
+ };
37
+ colors["base-hover"] = {
38
+ ...colors["base-hover"],
39
+ hex: baseColors.hover
40
+ };
41
+ colors["base-active"] = {
42
+ ...colors["base-active"],
43
+ hex: baseColors.active
44
+ };
45
+ colors["base-contrast-subtle"] = {
46
+ ...colors["base-contrast-subtle"],
47
+ hex: generateColorContrast(baseColors.default, "subtle")
48
+ };
49
+ colors["base-contrast-default"] = {
50
+ ...colors["base-contrast-default"],
51
+ hex: generateColorContrast(baseColors.default, "default")
52
+ };
53
+ return Object.values(colors);
54
+ };
55
+ /**
56
+ * Generates color schemes based on a base color. Light, Dark and Contrast scales are included.
57
+ *
58
+ * @param color The base color that is used to generate the color schemes
59
+ */
60
+ const generateColorSchemes = (color) => ({
61
+ light: generateColorScale(color, "light"),
62
+ dark: generateColorScale(color, "dark"),
63
+ contrast: generateColorScale(color, "contrast")
64
+ });
65
+ /**
66
+ * Returns the base colors for a color and color scheme.
67
+ *
68
+ * @param color The base color
69
+ * @param colorScheme The color scheme to generate the base colors for
70
+ * @returns
71
+ */
72
+ const generateBaseColors = (color, colorScheme) => {
73
+ let colorLightness = getLightnessFromHex(color);
74
+ if (colorScheme !== "light") colorLightness = colorLightness <= 30 ? 70 : 100 - colorLightness;
75
+ const modifier = colorLightness <= 30 || colorLightness >= 49 && colorLightness <= 65 ? -8 : 8;
76
+ const calculateLightness = (base, mod) => base - mod;
77
+ return {
78
+ default: colorScheme === "light" ? color : chroma(color).luminance(getLuminanceFromLightness(colorLightness)).hex(),
79
+ hover: chroma(color).luminance(getLuminanceFromLightness(calculateLightness(colorLightness, modifier))).hex(),
80
+ active: chroma(color).luminance(getLuminanceFromLightness(calculateLightness(colorLightness, modifier * 2))).hex()
81
+ };
82
+ };
83
+ /**
84
+ * Generates contrast color for given color
85
+ *
86
+ * @param color color
87
+ * @param type 'default' | 'subtle'
88
+ */
89
+ const generateColorContrast = (color, type) => {
90
+ if (type === "default") return chroma.contrast(color, "#ffffff") >= chroma.contrast(color, "#000000") ? "#ffffff" : "#000000";
91
+ if (type === "subtle") {
92
+ const contrastWhite = chroma.contrast(color, "#ffffff");
93
+ const contrastBlack = chroma.contrast(color, "#000000");
94
+ const lightness = getLightnessFromHex(color);
95
+ const modifier = lightness <= 40 || lightness >= 60 ? 60 : 50;
96
+ const targetLightness = contrastWhite >= contrastBlack ? lightness + modifier : lightness - modifier;
97
+ return chroma(color).luminance(getLuminanceFromLightness(targetLightness)).hex();
98
+ }
99
+ return color;
100
+ };
101
+ /**
102
+ * Returns the css variable for a color.
103
+ * TODO: deprecate this
104
+ * @param colorType The type of color
105
+ * @param colorNumber The number of the color
106
+ */
107
+ const getCssVariable = (colorType, colorNumber) => {
108
+ return `--ds-color-${colorType}-${getColorMetadataByNumber(colorNumber).displayName.toLowerCase().replace(/\s/g, "-")}`;
109
+ };
110
+ //#endregion
111
+ export { RESERVED_COLORS, generateColorContrast, generateColorScale, generateColorSchemes, getCssVariable };
@@ -0,0 +1,69 @@
1
+ export type ColorScheme = 'light' | 'dark' | 'contrast';
2
+ export type ContrastMode = 'aa' | 'aaa';
3
+ export type ColorNumber = SemanticColorMap[keyof SemanticColorMap];
4
+ export type ColorNames = keyof SemanticColorMap;
5
+ export type GlobalColors = 'danger' | 'info' | 'success' | 'warning';
6
+ export type ColorError = 'none' | 'decorative' | 'interaction';
7
+ export declare const semanticColorMap: {
8
+ readonly 'background-default': 1;
9
+ readonly 'background-tinted': 2;
10
+ readonly 'surface-default': 3;
11
+ readonly 'surface-tinted': 4;
12
+ readonly 'surface-hover': 5;
13
+ readonly 'surface-active': 6;
14
+ readonly 'border-subtle': 7;
15
+ readonly 'border-default': 8;
16
+ readonly 'border-strong': 9;
17
+ readonly 'text-subtle': 10;
18
+ readonly 'text-default': 11;
19
+ readonly 'base-default': 12;
20
+ readonly 'base-hover': 13;
21
+ readonly 'base-active': 14;
22
+ readonly 'base-contrast-subtle': 15;
23
+ readonly 'base-contrast-default': 16;
24
+ };
25
+ export declare const semanticColorNames: ("background-default" | "background-tinted" | "surface-default" | "surface-tinted" | "surface-hover" | "surface-active" | "border-subtle" | "border-default" | "border-strong" | "text-subtle" | "text-default" | "base-default" | "base-hover" | "base-active" | "base-contrast-subtle" | "base-contrast-default")[];
26
+ export declare const semanticColorNumbers: (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16)[];
27
+ type SemanticColorMap = typeof semanticColorMap;
28
+ type SemanticColorMapping = {
29
+ [K in keyof SemanticColorMap]: {
30
+ name: K;
31
+ number: SemanticColorMap[K];
32
+ };
33
+ };
34
+ export type ColorMetadataByName = {
35
+ [P in keyof SemanticColorMapping]: SemanticColorMapping[P] & ColorMetadata;
36
+ };
37
+ export type ColorMetadata = {
38
+ name: ColorNames;
39
+ number: ColorNumber;
40
+ displayName: string;
41
+ description: {
42
+ short: string;
43
+ long: string;
44
+ };
45
+ group: string;
46
+ luminance: {
47
+ light: number;
48
+ dark: number;
49
+ contrast: number;
50
+ };
51
+ };
52
+ export type Color = ColorMetadata & {
53
+ hex: CssColor;
54
+ };
55
+ export type ThemeInfo = {
56
+ light: Color[];
57
+ dark: Color[];
58
+ contrast: Color[];
59
+ };
60
+ /**
61
+ * Supported CSS colors in `designsystemet/color`
62
+ */
63
+ export type CssColor = HexColor;
64
+ /**
65
+ * Different color formats.
66
+ */
67
+ export type HexColor = `#${string}`;
68
+ export {};
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/colors/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,CAAC;AACnE,MAAM,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACrE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;AAE/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AAEX,eAAO,MAAM,kBAAkB,uTAA2B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,0EAA6B,CAAC;AAE/D,KAAK,gBAAgB,GAAG,OAAO,gBAAgB,CAAC;AAEhD,KAAK,oBAAoB,GAAG;KACzB,CAAC,IAAI,MAAM,gBAAgB,GAAG;QAC7B,IAAI,EAAE,CAAC,CAAC;QACR,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC7B;CACF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;KAC/B,CAAC,IAAI,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,aAAa;CAC3E,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,aAAa,GAAG;IAClC,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,QAAQ,EAAE,KAAK,EAAE,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import * as R from "ramda";
2
+ //#region src/colors/types.ts
3
+ const semanticColorMap = {
4
+ "background-default": 1,
5
+ "background-tinted": 2,
6
+ "surface-default": 3,
7
+ "surface-tinted": 4,
8
+ "surface-hover": 5,
9
+ "surface-active": 6,
10
+ "border-subtle": 7,
11
+ "border-default": 8,
12
+ "border-strong": 9,
13
+ "text-subtle": 10,
14
+ "text-default": 11,
15
+ "base-default": 12,
16
+ "base-hover": 13,
17
+ "base-active": 14,
18
+ "base-contrast-subtle": 15,
19
+ "base-contrast-default": 16
20
+ };
21
+ const semanticColorNames = R.keys(semanticColorMap);
22
+ const semanticColorNumbers = R.values(semanticColorMap);
23
+ //#endregion
24
+ export { semanticColorMap, semanticColorNames, semanticColorNumbers };
@@ -0,0 +1,128 @@
1
+ import type { CssColor, HexColor } from './types.js';
2
+ /**
3
+ * Converts a HEX color '#xxxxxx' into a CSS HSL string 'hsl(x,x,x)'
4
+ *
5
+ * @param hex A hex color string
6
+ * @param valuesOnly If true, only the values are returned
7
+ * @returns A CSS HSL string
8
+ */
9
+ export declare const hexToCssHsl: (hex: HexColor, valuesOnly?: boolean) => string;
10
+ /**
11
+ * Converts a HEX string '#xxxxxx' into an array of HSL values '[h,s,l]'
12
+ *
13
+ * @param H A Hex color string
14
+ * @returns HSL values in an array
15
+ */
16
+ export declare const hexToHSL: (hex: HexColor) => number[];
17
+ /**
18
+ * Converts a HEX color '#xxxxxx' into an array of HSLuv values '[h,s,l]'
19
+ *
20
+ * @param hex A hex color string
21
+ * @returns
22
+ */
23
+ export declare const hexToHsluv: (hex: HexColor) => number[];
24
+ /**
25
+ * Converts a HSL number array '[h,s,l]' into HSL CSS string 'hsl(x,x,x)'
26
+ *
27
+ * @param HSL A HSL number array '[h,s,l]'
28
+ * @returns A hex color string
29
+ */
30
+ export declare const hslArrToCss: (HSL: number[]) => string;
31
+ /**
32
+ * Converts a HSL CSS string 'hsl(x,x,x)' into an array of HSL values '[h,s,l]'
33
+ *
34
+ * @param h The HSL hue
35
+ * @param s The HSL saturation
36
+ * @param l The HSL lightness
37
+ * @returns HEX color string
38
+ */
39
+ export declare const HSLToHex: (h: number, s: number, l: number) => HexColor;
40
+ /**
41
+ * Converts a HEX color '#xxxxxx' into an array of RGB values '[R, G, B]'
42
+ *
43
+ * @param hex A hex color string
44
+ * @param type The type of RGB values to return
45
+ * @returns RGB values in an array
46
+ */
47
+ export declare const hexToRgb: (hex: string, type?: "255" | "1") => {
48
+ r: number;
49
+ g: number;
50
+ b: number;
51
+ };
52
+ /**
53
+ * Get the contrast ratio between two HEX colors
54
+ *
55
+ * @param color1 The first color to compare
56
+ * @param color2 The second color to compare
57
+ * @returns
58
+ */
59
+ export declare const getContrastFromHex: (color1: HexColor, color2: HexColor) => number;
60
+ /**
61
+ * Get the contrast ratio between two colors at a specific lightness
62
+ *
63
+ * @param lightness The lightness value
64
+ * @param mainColor The main color
65
+ * @param backgroundColor The background color
66
+ * @returns The contrast ratio
67
+ */
68
+ export declare const getContrastFromLightness: (lightness: number, mainColor: CssColor, backgroundColor: CssColor) => number;
69
+ /**
70
+ * Check if two colors have enough contrast to be used together
71
+ *
72
+ * @param color1 The first color
73
+ * @param color2 The second color
74
+ * @returns If the colors have enough contrast
75
+ */
76
+ export declare const areColorsContrasting: (color1: CssColor, color2: CssColor, type?: "decorative" | "aa" | "aaa") => boolean;
77
+ /**
78
+ * Check if aa string value is a HEX color
79
+ *
80
+ * @param hex The hex color
81
+ */
82
+ export declare const isHexColor: (hex: string) => boolean;
83
+ /**
84
+ * Get the luminance value from a lightness value
85
+ *
86
+ * @param lightness The lightness value
87
+ */
88
+ export declare const getLuminanceFromLightness: (lightness: number) => number;
89
+ /**
90
+ * Get the relative luminance from any valid css color
91
+ *
92
+ * @param color
93
+ */
94
+ export declare const getLuminanceFromColor: (color: string) => number;
95
+ /**
96
+ * Get the HSLuv lightness from a HEX color
97
+ *
98
+ * @param hex The hex color
99
+ */
100
+ export declare const getLightnessFromHex: (hex: HexColor) => number;
101
+ /**
102
+ *
103
+ * This function checks if white or black text can be used on 2 different colors at 4.5:1 contrast.
104
+ *
105
+ * @param baseDefaultColor Base default color
106
+ * @param baseActiveColor Base active color
107
+ */
108
+ export declare const canTextBeUsedOnColors: (baseDefaultColor: CssColor, baseActiveColor: CssColor) => boolean;
109
+ /**
110
+ * Converts a color to a HEX color
111
+ *
112
+ * @param color
113
+ * @returns
114
+ */
115
+ export declare const convertToHex: (color?: string) => HexColor;
116
+ export declare const rgbToHex: (rgb: {
117
+ r: number;
118
+ g: number;
119
+ b: number;
120
+ }) => HexColor;
121
+ /**
122
+ * Convert a color to a different format
123
+ *
124
+ * @param cssColor Any valid css color
125
+ * @param format Color space/format supported here https://colorjs.io/docs/spaces
126
+ */
127
+ export declare const convertColor: (cssColor: string, format: string) => string;
128
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/colors/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,QAAQ,EAAE,oBAAkB,WAO5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,QAAQ,aAGrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,QAAQ,aAKvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,WAExC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,QAE1D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,OAAM,KAAK,GAAG,GAAW;;;;CAO9D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,QAAQ,EAAE,QAAQ,QAAQ,WAIpE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GAAI,WAAW,MAAM,EAAE,WAAW,QAAQ,EAAE,iBAAiB,QAAQ,WAYzG,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,QAAQ,EAAE,QAAQ,QAAQ,EAAE,OAAM,YAAY,GAAG,IAAI,GAAG,KAAY,YAYhH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,YAErC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,WAM1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,WAElD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,QAAQ,WAMhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAAkB,QAAQ,EAAE,iBAAiB,QAAQ,YAe1F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,QAQ7C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,QAOnE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,WA0B5D,CAAC"}