alouette 11.3.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/createAlouetteTamagui-browser.es.js +206 -140
  3. package/dist/createAlouetteTamagui-browser.es.js.map +1 -1
  4. package/dist/createAlouetteTamagui-node20.cjs +206 -140
  5. package/dist/createAlouetteTamagui-node20.cjs.map +1 -1
  6. package/dist/createAlouetteTamagui-node20.mjs +206 -140
  7. package/dist/createAlouetteTamagui-node20.mjs.map +1 -1
  8. package/dist/createAlouetteTamagui-react-native.cjs.js +206 -140
  9. package/dist/createAlouetteTamagui-react-native.cjs.js.map +1 -1
  10. package/dist/createAlouetteTamagui-react-native.es.js +206 -140
  11. package/dist/createAlouetteTamagui-react-native.es.js.map +1 -1
  12. package/dist/definitions/components/actions/Button.d.ts.map +1 -1
  13. package/dist/definitions/components/actions/Button.stories.d.ts.map +1 -1
  14. package/dist/definitions/components/actions/IconButton.d.ts.map +1 -1
  15. package/dist/definitions/components/containers/PressableBox.d.ts +1 -0
  16. package/dist/definitions/components/containers/PressableBox.d.ts.map +1 -1
  17. package/dist/definitions/components/containers/PressableBox.stories.d.ts +1 -0
  18. package/dist/definitions/components/containers/PressableBox.stories.d.ts.map +1 -1
  19. package/dist/definitions/components/containers/variants.d.ts +14 -0
  20. package/dist/definitions/components/containers/variants.d.ts.map +1 -1
  21. package/dist/definitions/components/feedback/Message.d.ts +1 -1
  22. package/dist/definitions/components/forms/InputText.d.ts.map +1 -1
  23. package/dist/definitions/components/primitives/Icon.d.ts +1 -2
  24. package/dist/definitions/components/primitives/Icon.d.ts.map +1 -1
  25. package/dist/definitions/components/primitives/Link.d.ts +2 -2
  26. package/dist/definitions/components/primitives/Link.d.ts.map +1 -1
  27. package/dist/definitions/components/primitives/Link.stories.d.ts +1 -1
  28. package/dist/definitions/components/primitives/Link.stories.d.ts.map +1 -1
  29. package/dist/definitions/components/story-components/Story.d.ts +3 -2
  30. package/dist/definitions/components/story-components/Story.d.ts.map +1 -1
  31. package/dist/definitions/components/story-components/StoryTitle.d.ts +2 -2
  32. package/dist/definitions/components/typography/Typography.d.ts +2 -2
  33. package/dist/definitions/components/typography/Typography.d.ts.map +1 -1
  34. package/dist/definitions/components/typography/Typography.stories.d.ts +1 -1
  35. package/dist/definitions/config/colorScales.d.ts +14 -2
  36. package/dist/definitions/config/colorScales.d.ts.map +1 -1
  37. package/dist/definitions/config/createAlouetteTokens.d.ts +31 -29
  38. package/dist/definitions/config/createAlouetteTokens.d.ts.map +1 -1
  39. package/dist/definitions/config/defaultColorScales.d.ts +3 -0
  40. package/dist/definitions/config/defaultColorScales.d.ts.map +1 -0
  41. package/dist/definitions/config/themes.d.ts +133 -133
  42. package/dist/definitions/config/themes.d.ts.map +1 -1
  43. package/dist/definitions/config/utils/groupTokens.d.ts +0 -1
  44. package/dist/definitions/config/utils/groupTokens.d.ts.map +1 -1
  45. package/dist/definitions/createAlouetteTamagui.d.ts +2 -1
  46. package/dist/definitions/createAlouetteTamagui.d.ts.map +1 -1
  47. package/dist/index-browser.es.js +68 -74
  48. package/dist/index-browser.es.js.map +1 -1
  49. package/dist/index-node20.cjs +68 -74
  50. package/dist/index-node20.cjs.map +1 -1
  51. package/dist/index-node20.mjs +68 -74
  52. package/dist/index-node20.mjs.map +1 -1
  53. package/dist/index-react-native.cjs.js +68 -74
  54. package/dist/index-react-native.cjs.js.map +1 -1
  55. package/dist/index-react-native.es.js +68 -74
  56. package/dist/index-react-native.es.js.map +1 -1
  57. package/package.json +5 -5
  58. package/src/components/actions/Button.stories.tsx +49 -60
  59. package/src/components/actions/Button.tsx +3 -47
  60. package/src/components/actions/IconButton.tsx +1 -22
  61. package/src/components/containers/Box.stories.tsx +3 -3
  62. package/src/components/containers/PressableBox.stories.tsx +54 -2
  63. package/src/components/containers/PressableBox.tsx +29 -0
  64. package/src/components/containers/variants.ts +9 -1
  65. package/src/components/feedback/Message.tsx +2 -2
  66. package/src/components/forms/InputText.tsx +0 -1
  67. package/src/components/primitives/Icon.tsx +2 -3
  68. package/src/components/primitives/Link.stories.tsx +1 -3
  69. package/src/components/primitives/Link.tsx +13 -0
  70. package/src/components/primitives/stacks.stories.tsx +10 -10
  71. package/src/components/story-components/Story.tsx +18 -8
  72. package/src/components/typography/Typography.tsx +5 -8
  73. package/src/config/colorScales.ts +43 -88
  74. package/src/config/createAlouetteTokens.ts +4 -2
  75. package/src/config/defaultColorScales.ts +149 -0
  76. package/src/config/themes.stories.tsx +2 -2
  77. package/src/config/themes.ts +70 -101
  78. package/src/config/utils/groupTokens.ts +12 -15
  79. package/src/createAlouetteTamagui.ts +2 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [12.0.0](https://github.com/christophehurpeau/alouette/compare/alouette@11.3.0...alouette@12.0.0) (2025-09-08)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * generate palette, check colors for accessibility and improve dark/light modes
11
+
12
+ ### Features
13
+
14
+ * **deps:** update dependency react-native-svg to v15.12.1 ([#211](https://github.com/christophehurpeau/alouette/issues/211)) ([cf78659](https://github.com/christophehurpeau/alouette/commit/cf78659d27c63f7aa88873ae51e34e24b9cd52fb))
15
+ * generate palette, check colors for accessibility and improve dark/light modes ([49157a7](https://github.com/christophehurpeau/alouette/commit/49157a70dae174aa93b78390bc90ee259218975b))
16
+
17
+ ### Bug Fixes
18
+
19
+ * fix themes stories ([4c2fe21](https://github.com/christophehurpeau/alouette/commit/4c2fe2132a73f97d7d922997cbebf09f122c41ea))
20
+
21
+ Version bump for dependency: alouette-icons
22
+
23
+
6
24
  ## [11.3.0](https://github.com/christophehurpeau/alouette/compare/alouette@11.2.1...alouette@11.3.0) (2025-08-02)
7
25
 
8
26
  ### Features
@@ -111,8 +111,10 @@ const createAlouetteTokens = (colorScales, { spacing = 4 } = {}) => {
111
111
  );
112
112
  return createTokens({
113
113
  color: {
114
- black: "#000000",
115
- white: "#ffffff",
114
+ blackBackground: "#121212",
115
+ whiteBackground: "#ffffff",
116
+ blackText: "#000000",
117
+ whiteText: "#fdfdfd",
116
118
  ...transformColorScalesToTokens(colorScales)
117
119
  },
118
120
  radius: {
@@ -133,6 +135,20 @@ const createAlouetteTokens = (colorScales, { spacing = 4 } = {}) => {
133
135
  });
134
136
  };
135
137
 
138
+ const mappingLightToDark = {
139
+ 1: 1,
140
+ 2: 3,
141
+ 3: 4,
142
+ 4: 2,
143
+ 5: 6,
144
+ 6: 5,
145
+ 7: 7,
146
+ 8: 8,
147
+ 9: 9,
148
+ 10: 10
149
+ };
150
+ const createColorScale = (colorScale) => colorScale;
151
+
136
152
  const getLuminance = (r, g, b) => {
137
153
  const values = [r, g, b].map((c) => {
138
154
  const s = c / 255;
@@ -182,97 +198,76 @@ const warnOnContrastIssues = (themeName, textColor, backgroundColor) => {
182
198
  }
183
199
  };
184
200
 
185
- const darkModeScaleNumbers = {
186
- 1: 10,
187
- 2: 9,
188
- 3: 8,
189
- 4: 7,
190
- 5: 6,
191
- 6: 5,
192
- 7: 4,
193
- 8: 3,
194
- 9: 2,
195
- 10: 1
196
- };
197
- const createColorTheme = (tokens, colorScaleName, mode = "light", backgroundColor, textColor, contrastTextColor) => {
201
+ const createColorTheme = (tokens, intent, mode = "light", backgroundColor, textColor) => {
198
202
  const alouetteTokens = tokens;
199
203
  if (!backgroundColor) {
200
- backgroundColor = mode === "dark" ? alouetteTokens.color.black : alouetteTokens.color.white;
204
+ backgroundColor = mode === "dark" ? alouetteTokens.color.blackBackground : alouetteTokens.color.whiteBackground;
201
205
  }
202
206
  if (!textColor) {
203
- textColor = mode === "dark" ? alouetteTokens.color.white : alouetteTokens.color.black;
207
+ textColor = mode === "dark" ? alouetteTokens.color.whiteText : alouetteTokens.color.blackText;
204
208
  }
205
- if (!contrastTextColor) {
206
- if (colorScaleName === "grayscale") {
207
- contrastTextColor = mode === "dark" ? alouetteTokens.color.white : alouetteTokens.color.black;
208
- } else {
209
- contrastTextColor = mode === "dark" ? alouetteTokens.color.black : alouetteTokens.color.white;
210
- }
211
- }
212
- const getColor = (lightScaleNumber, forceScaleNumber = colorScaleName) => {
213
- const scaleNumber = mode === "dark" ? darkModeScaleNumbers[lightScaleNumber] : lightScaleNumber;
214
- return tokens.color[`${forceScaleNumber}.${scaleNumber}`];
209
+ const getColor = (scaleNumber, tint) => {
210
+ return tokens.color[`${tint || intent}.${mode}.${mode === "dark" ? mappingLightToDark[scaleNumber] : scaleNumber}`];
215
211
  };
216
- const contrastBorderColor = contrastTextColor;
217
212
  const theme = {
218
213
  backgroundColor,
214
+ "gradientColor:start": getColor(5),
215
+ "gradientColor:middle": getColor(7),
216
+ "gradientColor:end": getColor(4),
219
217
  textColor,
220
- mainColor: getColor(6),
221
- mainTextColor: getColor(9),
222
- contrastTextColor,
223
- borderColor: getColor(8),
224
- contrastBorderColor,
225
- shadowColor: getColor(9),
226
- "textColor:disabled": getColor(3, "grayscale"),
227
- "contrastTextColor:disabled": getColor(7, "grayscale"),
218
+ pageBackgroundColor: getColor(1),
219
+ nonInteractiveBackgroundColor: getColor(3),
220
+ coloredTextColor: getColor(9),
221
+ borderColor: getColor(4),
222
+ shadowColor: getColor(8),
223
+ "textColor:disabled": getColor(6, "grayscale"),
228
224
  "interactive.linkTextColor": getColor(9),
229
- "interactive.linkTextColor:hover": getColor(7),
230
- "interactive.linkTextColor:focus": getColor(7),
231
- "interactive.linkTextColor:press": getColor(7),
232
- "interactive.linkTextColor:disabled": getColor(3, "grayscale"),
233
- "interactive.contained.backgroundColor": getColor(5),
225
+ "interactive.linkTextColor:hover": getColor(10),
226
+ "interactive.linkTextColor:focus": getColor(10),
227
+ "interactive.linkTextColor:press": getColor(8),
228
+ "interactive.linkTextColor:disabled": getColor(9, "grayscale"),
229
+ "interactive.contained.backgroundColor": getColor(6),
234
230
  "interactive.elevated.backgroundColor": backgroundColor,
235
- "interactive.elevated.shadowColor": getColor(9),
236
- "interactive.elevated.borderColor": contrastBorderColor,
231
+ "interactive.elevated.shadowColor": getColor(8),
232
+ "interactive.elevated.borderColor": getColor(1),
237
233
  "interactive.outlined.backgroundColor": backgroundColor,
238
- "interactive.outlined.borderColor": getColor(mode === "dark" ? 5 : 8),
239
- "interactive.contained.backgroundColor:hover": getColor(4),
240
- "interactive.elevated.backgroundColor:hover": getColor(1),
241
- "interactive.elevated.borderColor:hover": contrastBorderColor,
242
- "interactive.outlined.backgroundColor:hover": getColor(1),
243
- "interactive.outlined.borderColor:hover": getColor(mode === "dark" ? 5 : 7),
244
- "interactive.contained.backgroundColor:focus": getColor(4),
245
- "interactive.elevated.backgroundColor:focus": getColor(1),
246
- "interactive.elevated.borderColor:focus": contrastBorderColor,
247
- "interactive.outlined.backgroundColor:focus": getColor(1),
248
- "interactive.outlined.borderColor:focus": getColor(7),
249
- "interactive.contained.backgroundColor:press": getColor(2),
250
- "interactive.elevated.backgroundColor:press": getColor(3),
251
- "interactive.elevated.borderColor:press": contrastBorderColor,
252
- "interactive.outlined.backgroundColor:press": getColor(3),
253
- "interactive.outlined.borderColor:press": getColor(7),
254
- "interactive.contained.backgroundColor:disabled": getColor(3, "grayscale"),
234
+ "interactive.outlined.borderColor": getColor(7),
235
+ "interactive.contained.backgroundColor:hover": getColor(5),
236
+ "interactive.elevated.backgroundColor:hover": getColor(2),
237
+ "interactive.elevated.borderColor:hover": getColor(1),
238
+ "interactive.outlined.backgroundColor:hover": getColor(2),
239
+ "interactive.outlined.borderColor:hover": getColor(6),
240
+ "interactive.contained.backgroundColor:focus": getColor(5),
241
+ "interactive.elevated.backgroundColor:focus": getColor(2),
242
+ "interactive.elevated.borderColor:focus": getColor(1),
243
+ "interactive.outlined.backgroundColor:focus": getColor(2),
244
+ "interactive.outlined.borderColor:focus": getColor(6),
245
+ "interactive.contained.backgroundColor:press": getColor(3),
246
+ "interactive.elevated.backgroundColor:press": getColor(4),
247
+ "interactive.elevated.borderColor:press": getColor(1),
248
+ "interactive.outlined.backgroundColor:press": getColor(4),
249
+ "interactive.outlined.borderColor:press": getColor(6),
250
+ "interactive.contained.backgroundColor:disabled": getColor(4, "grayscale"),
255
251
  "interactive.elevated.backgroundColor:disabled": backgroundColor,
256
- "interactive.elevated.shadowColor:disabled": getColor(9, "grayscale"),
257
- "interactive.elevated.borderColor:disabled": getColor(3, "grayscale"),
252
+ "interactive.elevated.shadowColor:disabled": getColor(8, "grayscale"),
253
+ "interactive.elevated.borderColor:disabled": getColor(1, "grayscale"),
258
254
  "interactive.outlined.backgroundColor:disabled": backgroundColor,
259
- "interactive.outlined.borderColor:disabled": getColor(3, "grayscale"),
260
- "interactive.textColor:disabled": getColor(7, "grayscale"),
255
+ "interactive.outlined.borderColor:disabled": getColor(7, "grayscale"),
261
256
  "interactive.forms.textColor": textColor,
262
- "interactive.forms.placeholderTextColor": getColor(3, "grayscale"),
257
+ "interactive.forms.placeholderTextColor": getColor(8, "grayscale"),
263
258
  // "interactive.forms.backgroundColor": undefined,
264
259
  // "interactive.forms.backgroundColor:hover": undefined,
265
- "interactive.forms.backgroundColor:focus": getColor(1),
266
- "interactive.forms.backgroundColor:press": getColor(3),
267
- "interactive.forms.borderColor": getColor(10),
268
- "interactive.forms.borderColor:hover": getColor(7),
269
- "interactive.forms.borderColor:focus": getColor(7),
270
- "interactive.forms.borderColor:press": getColor(7),
271
- "interactive.forms.borderColor:disabled": getColor(3, "grayscale")
260
+ "interactive.forms.backgroundColor:focus": getColor(2),
261
+ "interactive.forms.backgroundColor:press": getColor(4),
262
+ "interactive.forms.borderColor": getColor(7),
263
+ "interactive.forms.borderColor:disabled": getColor(7, "grayscale"),
264
+ "interactive.forms.borderColor:hover": getColor(6),
265
+ "interactive.forms.borderColor:focus": getColor(6),
266
+ "interactive.forms.borderColor:press": getColor(6)
272
267
  };
273
268
  if (process.env.NODE_ENV === "development") {
274
269
  warnOnContrastIssues(
275
- colorScaleName,
270
+ intent,
276
271
  theme.textColor.val,
277
272
  theme.backgroundColor.val
278
273
  );
@@ -297,79 +292,150 @@ const createAlouetteThemes = (tokens) => {
297
292
  };
298
293
  };
299
294
 
300
- const createColorScale = (colorScale) => colorScale;
301
295
  const defaultColorScales = {
302
- grayscale: createColorScale({
303
- 1: "#faf9f8",
304
- 2: "#f4f3ef",
305
- 3: "#ebe9e5",
306
- 4: "#dedad2",
307
- 5: "#d1cdc5",
308
- 6: "#bab8ae",
309
- 7: "#aeaba3",
310
- 8: "#9c9a92",
311
- 9: "#8e8c83",
312
- 10: "#74726a"
296
+ "grayscale.light": createColorScale({
297
+ 1: "#F5F5F5",
298
+ 2: "#EBEBEB",
299
+ 3: "#E0E0E0",
300
+ 4: "#D6D6D6",
301
+ 5: "#C7C7C7",
302
+ 6: "#B8B8B8",
303
+ 7: "#8F8F8F",
304
+ 8: "#616161",
305
+ 9: "#525252",
306
+ 10: "#2E2E2E"
307
+ }),
308
+ "grayscale.dark": createColorScale({
309
+ 1: "#1A1A1A",
310
+ 2: "#1F1F1F",
311
+ 3: "#292929",
312
+ 4: "#333333",
313
+ 5: "#3D3D3D",
314
+ 6: "#474747",
315
+ 7: "#525252",
316
+ 8: "#9E9E9E",
317
+ 9: "#ADADAD",
318
+ 10: "#D1D1D1"
319
+ }),
320
+ "primary.light": createColorScale({
321
+ 1: "#EFF8FB",
322
+ 2: "#DAF4FB",
323
+ 3: "#C7EEF9",
324
+ 4: "#B5E8F8",
325
+ 5: "#99DFF5",
326
+ 6: "#7DD7F2",
327
+ 7: "#33C0EB",
328
+ 8: "#037496",
329
+ 9: "#025D78",
330
+ 10: "#012732"
331
+ }),
332
+ "primary.dark": createColorScale({
333
+ 1: "#02161C",
334
+ 2: "#06242D",
335
+ 3: "#072B36",
336
+ 4: "#093A49",
337
+ 5: "#0D576D",
338
+ 6: "#0D576D",
339
+ 7: "#10657F",
340
+ 8: "#49CCF3",
341
+ 9: "#66D4F5",
342
+ 10: "#A9E7F9"
343
+ }),
344
+ "danger.light": createColorScale({
345
+ 1: "#FBEFEF",
346
+ 2: "#FEF6F6",
347
+ 3: "#FCE4E3",
348
+ 4: "#FAD2D1",
349
+ 5: "#F8B7B5",
350
+ 6: "#F59C99",
351
+ 7: "#EE544F",
352
+ 8: "#DC0C04",
353
+ 9: "#BE0A04",
354
+ 10: "#780602"
355
+ }),
356
+ "danger.dark": createColorScale({
357
+ 1: "#1C0302",
358
+ 2: "#490B09",
359
+ 3: "#520C0A",
360
+ 4: "#640F0C",
361
+ 5: "#881511",
362
+ 6: "#881511",
363
+ 7: "#9A1813",
364
+ 8: "#F56A66",
365
+ 9: "#F78682",
366
+ 10: "#FBC7C5"
367
+ }),
368
+ "info.light": createColorScale({
369
+ 1: "#EFF8FB",
370
+ 2: "#DAF3FB",
371
+ 3: "#C7EDF9",
372
+ 4: "#B5E7F8",
373
+ 5: "#99DEF5",
374
+ 6: "#7DD5F2",
375
+ 7: "#33BDEB",
376
+ 8: "#037196",
377
+ 9: "#025B78",
378
+ 10: "#012632"
313
379
  }),
314
- success: createColorScale({
315
- 1: "#f0f9f3",
316
- 2: "#d4f0d4",
317
- 3: "#a8e6a8",
318
- 4: "#7edc7e",
319
- 5: "#54d254",
320
- 6: "#2ac82a",
321
- 7: "#00be00",
322
- 8: "#00b400",
323
- 9: "#00aa00",
324
- 10: "#009200"
380
+ "info.dark": createColorScale({
381
+ 1: "#02161C",
382
+ 2: "#06232D",
383
+ 3: "#072B36",
384
+ 4: "#093949",
385
+ 5: "#0D556D",
386
+ 6: "#0D556D",
387
+ 7: "#10637F",
388
+ 8: "#49C9F3",
389
+ 9: "#66D1F5",
390
+ 10: "#A9E5F9"
325
391
  }),
326
- info: createColorScale({
327
- 1: "#f0f9ff",
328
- 2: "#d4f0ff",
329
- 3: "#a8e6ff",
330
- 4: "#7edcff",
331
- 5: "#54d2ff",
332
- 6: "#2ac8ff",
333
- 7: "#00beff",
334
- 8: "#00b4ff",
335
- 9: "#00aaff",
336
- 10: "#0092ff"
392
+ "success.light": createColorScale({
393
+ 1: "#EFFBEF",
394
+ 2: "#DAFBDA",
395
+ 3: "#C7F9C7",
396
+ 4: "#B5F8B5",
397
+ 5: "#99F599",
398
+ 6: "#7DF27D",
399
+ 7: "#33EB33",
400
+ 8: "#039603",
401
+ 9: "#027802",
402
+ 10: "#013201"
337
403
  }),
338
- warning: createColorScale({
339
- 1: "#fff9f0",
340
- 2: "#fff0d4",
341
- 3: "#ffe6a8",
342
- 4: "#ffdc7e",
343
- 5: "#ffd254",
344
- 6: "#ffc82a",
345
- 7: "#ffbe00",
346
- 8: "#ffb400",
347
- 9: "#ffaa00",
348
- 10: "#ff9200"
404
+ "success.dark": createColorScale({
405
+ 1: "#021C02",
406
+ 2: "#062D06",
407
+ 3: "#073607",
408
+ 4: "#094909",
409
+ 5: "#0D6D0D",
410
+ 6: "#0D6D0D",
411
+ 7: "#107F10",
412
+ 8: "#49F349",
413
+ 9: "#66F566",
414
+ 10: "#A9F9A9"
349
415
  }),
350
- danger: createColorScale({
351
- 1: "#fff0f0",
352
- 2: "#ffd4d4",
353
- 3: "#ffaaaa",
354
- 4: "#ff7e7e",
355
- 5: "#ff5454",
356
- 6: "#ff2a2a",
357
- 7: "#ff0000",
358
- 8: "#f40000",
359
- 9: "#ea0000",
360
- 10: "#d20000"
416
+ "warning.light": createColorScale({
417
+ 1: "#FBF7EF",
418
+ 2: "#FEFBF6",
419
+ 3: "#FCF4E3",
420
+ 4: "#FAECD1",
421
+ 5: "#F8E1B5",
422
+ 6: "#F5D699",
423
+ 7: "#EEB94F",
424
+ 8: "#8C5E03",
425
+ 9: "#6E4A02",
426
+ 10: "#281B01"
361
427
  }),
362
- primary: createColorScale({
363
- 1: "#e1f4f6",
364
- 2: "#b4e2e9",
365
- 3: "#86cfdc",
366
- 4: "#60bcd0",
367
- 5: "#46aeca",
368
- 6: "#31a1c4",
369
- 7: "#2994b7",
370
- 8: "#1e82a6",
371
- 9: "#1c7193",
372
- 10: "#125272"
428
+ "warning.dark": createColorScale({
429
+ 1: "#1C1402",
430
+ 2: "#493309",
431
+ 3: "#523A0A",
432
+ 4: "#64470C",
433
+ 5: "#886011",
434
+ 6: "#886011",
435
+ 7: "#9A6D13",
436
+ 8: "#F5C566",
437
+ 9: "#F7D082",
438
+ 10: "#FBE9C5"
373
439
  })
374
440
  };
375
441
 
@@ -1 +1 @@
1
- {"version":3,"file":"createAlouetteTamagui-browser.es.js","sources":["../src/config/animations.web.ts","../src/config/createAlouetteFonts.ts","../src/config/Breakpoints.ts","../src/config/media.ts","../src/config/createAlouetteTokens.ts","../src/config/utils/colorContrast.ts","../src/config/themes.ts","../src/config/colorScales.ts","../src/createAlouetteTamagui.ts"],"sourcesContent":["import { createAnimations } from \"@tamagui/animations-css\";\n\nexport const animations = createAnimations({\n fast: \"ease-in 150ms\",\n formElement: \"ease-in 600ms\",\n});\nconsole.log(\"animations: web\");\n","import { createFont } from \"@tamagui/core\";\n\nconst defaultHeadingFontSizes = { xl: 48, lg: 40, md: 32, sm: 24, xs: 18 };\nconst defaultBodyFontSizes = { xl: 24, lg: 18, md: 16, sm: 14, xs: 12 };\n\nconst roundWith1Precision = (value: number): number =>\n Math.round(value * 10) / 10;\n\nexport interface AlouetteFontsOptions {\n headingFontFamily?: string;\n headingFontSizes?: typeof defaultHeadingFontSizes;\n bodyFontFamily?: string;\n bodyFontSizes?: typeof defaultBodyFontSizes;\n}\n\nexport const createAlouetteFonts = ({\n headingFontFamily = \"Inter\",\n headingFontSizes = defaultHeadingFontSizes,\n bodyFontFamily = \"Inter\",\n bodyFontSizes = defaultBodyFontSizes,\n}: AlouetteFontsOptions = {}) => ({\n heading: createFont({\n family: headingFontFamily,\n weight: {\n regular: \"400\",\n bold: \"700\",\n black: \"900\",\n },\n face: {\n 400: { normal: `${headingFontFamily}Regular` },\n 700: { normal: `${headingFontFamily}Bold` },\n 900: { normal: `${headingFontFamily}Black` },\n },\n size: headingFontSizes,\n lineHeight: {\n xl: roundWith1Precision(1.1 * headingFontSizes.xl),\n lg: roundWith1Precision(1.1 * headingFontSizes.lg),\n md: roundWith1Precision(1.2 * headingFontSizes.md),\n sm: roundWith1Precision(1.3 * headingFontSizes.sm),\n xs: roundWith1Precision(1.3 * headingFontSizes.xs),\n },\n }),\n body: createFont({\n family: bodyFontFamily,\n weight: {\n regular: \"400\",\n bold: \"700\",\n black: \"900\",\n },\n face: {\n 400: { normal: `${bodyFontFamily}Regular` },\n 700: { normal: `${bodyFontFamily}Bold` },\n 900: { normal: `${bodyFontFamily}Black` },\n },\n size: bodyFontSizes,\n lineHeight: {\n xl: roundWith1Precision(1.4 * bodyFontSizes.xl),\n lg: roundWith1Precision(1.4 * bodyFontSizes.lg),\n md: roundWith1Precision(1.4 * bodyFontSizes.md),\n sm: roundWith1Precision(1.4 * bodyFontSizes.sm),\n xs: roundWith1Precision(1.4 * bodyFontSizes.xs),\n },\n }),\n});\n","export const Breakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n} as const;\n\nexport type Breakpoint = (typeof Breakpoints)[keyof typeof Breakpoints];\nexport type BreakpointNames = \"base\" | \"large\" | \"medium\" | \"small\" | \"wide\";\n\nexport enum BreakpointNameEnum {\n BASE = \"base\",\n SMALL = \"small\",\n MEDIUM = \"medium\",\n LARGE = \"large\",\n WIDE = \"wide\",\n}\n","import { Breakpoints } from \"./Breakpoints\";\n\nexport const media = {\n small: { minWidth: Breakpoints.SMALL },\n medium: { minWidth: Breakpoints.MEDIUM },\n large: { minWidth: Breakpoints.LARGE },\n wide: { minWidth: Breakpoints.WIDE },\n} as const;\n","import { createTokens } from \"@tamagui/core\";\nimport type { IntRange } from \"type-fest\";\nimport type {\n AlouetteColorScaleNumber,\n AlouetteColorScales,\n} from \"./colorScales\";\n\ntype AlouetteSize = IntRange<0, 64>;\ntype NegativeAlouetteSize = `-${AlouetteSize}`;\ntype AlouetteSizeRecord = Record<AlouetteSize, number>;\ntype NegativeAlouetteSizeRecord = Record<NegativeAlouetteSize, number>;\n\nconst createAlouetteSizes = <const N extends boolean>(\n spacing: number,\n negative: N,\n): N extends true ? NegativeAlouetteSizeRecord : AlouetteSizeRecord => {\n const MAX_SIZE = 64;\n const sizes: Partial<\n N extends true ? NegativeAlouetteSizeRecord : AlouetteSizeRecord\n > = {};\n for (let size = 0; size <= MAX_SIZE; size++) {\n (sizes as any)[negative ? `-${size}` : `${size}`] = size * spacing;\n }\n return sizes as N extends true\n ? NegativeAlouetteSizeRecord\n : AlouetteSizeRecord;\n};\n\ntype ColorScaleTokens<ColorScales extends AlouetteColorScales> = {\n [K in string &\n keyof ColorScales as `${K}.${AlouetteColorScaleNumber}`]: string; //(typeof colorScales)[K][AlouetteColorScaleNumber];\n};\n\nconst transformColorScalesToTokens = <ColorScales extends AlouetteColorScales>(\n colorScales: ColorScales,\n): ColorScaleTokens<ColorScales> => {\n return Object.fromEntries(\n Object.entries(colorScales).flatMap(([colorName, colorScale]) => {\n return Object.entries(colorScale).map(([scaleNumber, colorValue]) => {\n return [`${colorName}.${scaleNumber}`, colorValue];\n });\n }),\n ) as ColorScaleTokens<ColorScales>;\n};\n\nexport interface AlouetteTokensOptions {\n spacing?: number;\n}\n\nexport const createAlouetteTokens = <\n const ColorScales extends AlouetteColorScales,\n>(\n colorScales: ColorScales,\n { spacing = 4 }: AlouetteTokensOptions = {},\n) => {\n const sizes: AlouetteSizeRecord = createAlouetteSizes(spacing, false);\n const negativeSizes: NegativeAlouetteSizeRecord = createAlouetteSizes(\n -spacing,\n true,\n );\n\n return createTokens({\n color: {\n black: \"#000000\",\n white: \"#ffffff\",\n ...transformColorScalesToTokens(colorScales),\n },\n radius: {\n ...sizes,\n xs: spacing * 2,\n sm: spacing * 4,\n md: spacing * 8,\n },\n space: {\n ...sizes,\n ...negativeSizes,\n xs: spacing * 2,\n sm: spacing * 4,\n md: spacing * 8,\n },\n size: { ...sizes },\n zIndex: {},\n } as const);\n};\n","/**\n * Calculates relative luminance of a color\n * Based on WCAG 2.0 formula: https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nconst getLuminance = (r: number, g: number, b: number) => {\n const values: [number, number, number] = [r, g, b].map((c) => {\n const s = c / 255;\n return s <= 0.039_28 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;\n }) as [number, number, number];\n\n return 0.2126 * values[0] + 0.7152 * values[1] + 0.0722 * values[2];\n};\n\n/**\n * Converts hex color to RGB values\n */\nconst hexToRgb = (hex: string) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result?.[1] || !result[2] || !result[3]) return null;\n return {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n };\n};\n\n/**\n * Calculates contrast ratio between two colors\n * Returns ratio between 1 and 21\n */\nexport const getContrastRatio = (color1: string, color2: string) => {\n const rgb1 = hexToRgb(color1);\n const rgb2 = hexToRgb(color2);\n\n if (!rgb1 || !rgb2) return 0;\n\n const l1 = getLuminance(rgb1.r, rgb1.g, rgb1.b);\n const l2 = getLuminance(rgb2.r, rgb2.g, rgb2.b);\n\n const lighter = Math.max(l1, l2);\n const darker = Math.min(l1, l2);\n\n return (lighter + 0.05) / (darker + 0.05);\n};\n\n/**\n * Checks if contrast ratio meets WCAG requirements\n */\nexport const checkContrast = (\n foreground: string,\n background: string,\n level: \"AA\" | \"AAA\" = \"AA\",\n) => {\n const ratio = getContrastRatio(foreground, background);\n const minimumRatio = level === \"AA\" ? 4.5 : 7;\n\n return {\n ratio,\n passes: ratio >= minimumRatio,\n minimumRatio,\n };\n};\n\n/**\n * Development warning for contrast issues\n */\nexport const warnOnContrastIssues = (\n themeName: string,\n textColor: string,\n backgroundColor: string,\n) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n const result = checkContrast(textColor, backgroundColor);\n\n if (!result.passes) {\n console.warn(\n `[Alouette] Contrast warning in theme \"${themeName}\":\n Text color ${textColor} on background ${backgroundColor}\n has contrast ratio of ${result.ratio.toFixed(2)}.\n Minimum required: ${result.minimumRatio}\n This may cause accessibility issues.`,\n );\n }\n};\n","/* eslint-disable camelcase */\nimport type { Variable } from \"@tamagui/core\";\nimport type {\n AlouetteColorScaleNumber,\n AlouetteColorScales,\n} from \"./colorScales\";\nimport type { createAlouetteTokens } from \"./createAlouetteTokens\";\nimport { warnOnContrastIssues } from \"./utils/colorContrast\";\n\n// export interface MinimalRootTheme {\n// backgroundColor: Variable<string>;\n// textColor: Variable<string>;\n// }\n\n// export interface RootTheme {\n// backgroundColor: Variable<string>;\n// textColor: Variable<string>;\n// }\n\nexport interface ColorTheme {\n backgroundColor: Variable<string>;\n textColor: Variable<string>;\n contrastTextColor: Variable<string>;\n \"textColor:disabled\": Variable<string>;\n \"contrastTextColor:disabled\": Variable<string>;\n mainColor: Variable<string>;\n mainTextColor: Variable<string>;\n borderColor: Variable<string>;\n contrastBorderColor: Variable<string>;\n shadowColor: Variable<string>;\n\n \"interactive.linkTextColor\": Variable<string>;\n \"interactive.linkTextColor:hover\": Variable<string>;\n \"interactive.linkTextColor:focus\": Variable<string>;\n \"interactive.linkTextColor:press\": Variable<string>;\n \"interactive.linkTextColor:disabled\": Variable<string>;\n\n \"interactive.contained.backgroundColor\": Variable<string>;\n \"interactive.elevated.backgroundColor\": Variable<string>;\n \"interactive.elevated.shadowColor\": Variable<string>;\n \"interactive.elevated.borderColor\": Variable<string>;\n \"interactive.outlined.backgroundColor\": Variable<string>;\n \"interactive.outlined.borderColor\": Variable<string>;\n\n \"interactive.contained.backgroundColor:hover\": Variable<string>;\n \"interactive.elevated.backgroundColor:hover\": Variable<string>;\n \"interactive.elevated.borderColor:hover\": Variable<string>;\n \"interactive.outlined.backgroundColor:hover\": Variable<string>;\n \"interactive.outlined.borderColor:hover\": Variable<string>;\n\n \"interactive.contained.backgroundColor:focus\": Variable<string>;\n \"interactive.elevated.backgroundColor:focus\": Variable<string>;\n \"interactive.elevated.borderColor:focus\": Variable<string>;\n \"interactive.outlined.backgroundColor:focus\": Variable<string>;\n \"interactive.outlined.borderColor:focus\": Variable<string>;\n\n \"interactive.contained.backgroundColor:press\": Variable<string>;\n \"interactive.elevated.backgroundColor:press\": Variable<string>;\n \"interactive.elevated.borderColor:press\": Variable<string>;\n \"interactive.outlined.backgroundColor:press\": Variable<string>;\n \"interactive.outlined.borderColor:press\": Variable<string>;\n\n \"interactive.contained.backgroundColor:disabled\": Variable<string>;\n \"interactive.elevated.backgroundColor:disabled\": Variable<string>;\n \"interactive.elevated.shadowColor:disabled\": Variable<string>;\n \"interactive.elevated.borderColor:disabled\": Variable<string>;\n \"interactive.outlined.backgroundColor:disabled\": Variable<string>;\n \"interactive.outlined.borderColor:disabled\": Variable<string>;\n \"interactive.textColor:disabled\": Variable<string>;\n\n \"interactive.forms.textColor\": Variable<string>;\n \"interactive.forms.placeholderTextColor\": Variable<string>;\n // \"interactive.forms.backgroundColor\": Variable<string>,\n // \"interactive.forms.backgroundColor:hover\": Variable<string>,\n \"interactive.forms.backgroundColor:focus\": Variable<string>;\n \"interactive.forms.backgroundColor:press\": Variable<string>;\n \"interactive.forms.borderColor\": Variable<string>;\n \"interactive.forms.borderColor:hover\": Variable<string>;\n \"interactive.forms.borderColor:focus\": Variable<string>;\n \"interactive.forms.borderColor:press\": Variable<string>;\n \"interactive.forms.borderColor:disabled\": Variable<string>;\n}\n\n// export interface FullTheme extends ColorTheme, RootTheme {}\nexport type FullTheme = ColorTheme;\n\n// export const createRootTheme = <T extends MinimalRootTheme>(\n// theme: T,\n// ): FullTheme => {\n// return theme satisfies RootTheme as unknown as FullTheme;\n// };\n\nconst darkModeScaleNumbers: Record<\n AlouetteColorScaleNumber,\n AlouetteColorScaleNumber\n> = {\n 1: 10,\n 2: 9,\n 3: 8,\n 4: 7,\n 5: 6,\n 6: 5,\n 7: 4,\n 8: 3,\n 9: 2,\n 10: 1,\n};\n\nexport const createColorTheme = <const ColorScales extends AlouetteColorScales>(\n tokens: ReturnType<typeof createAlouetteTokens<ColorScales>>,\n colorScaleName: string & keyof ColorScales,\n mode: \"dark\" | \"light\" = \"light\",\n backgroundColor?: Variable<string>,\n textColor?: Variable<string>,\n contrastTextColor?: Variable<string>,\n) => {\n const alouetteTokens: ReturnType<\n typeof createAlouetteTokens<AlouetteColorScales>\n > = tokens;\n if (!backgroundColor) {\n backgroundColor =\n mode === \"dark\" ? alouetteTokens.color.black : alouetteTokens.color.white;\n }\n if (!textColor) {\n textColor =\n mode === \"dark\" ? alouetteTokens.color.white : alouetteTokens.color.black;\n }\n if (!contrastTextColor) {\n if (colorScaleName === \"grayscale\") {\n contrastTextColor =\n mode === \"dark\"\n ? alouetteTokens.color.white\n : alouetteTokens.color.black;\n } else {\n contrastTextColor =\n mode === \"dark\"\n ? alouetteTokens.color.black\n : alouetteTokens.color.white;\n }\n }\n\n const getColor = (\n lightScaleNumber: AlouetteColorScaleNumber,\n forceScaleNumber = colorScaleName,\n ) => {\n // Invert scale for dark mode\n const scaleNumber =\n mode === \"dark\"\n ? darkModeScaleNumbers[lightScaleNumber]\n : lightScaleNumber;\n\n return tokens.color[\n `${forceScaleNumber}.${scaleNumber}` as keyof typeof tokens.color\n ];\n };\n\n const contrastBorderColor = contrastTextColor;\n\n const theme = {\n backgroundColor,\n textColor,\n mainColor: getColor(6),\n mainTextColor: getColor(9),\n contrastTextColor,\n borderColor: getColor(8),\n contrastBorderColor,\n shadowColor: getColor(9),\n \"textColor:disabled\": getColor(3, \"grayscale\"),\n \"contrastTextColor:disabled\": getColor(7, \"grayscale\"),\n\n \"interactive.linkTextColor\": getColor(9),\n \"interactive.linkTextColor:hover\": getColor(7),\n \"interactive.linkTextColor:focus\": getColor(7),\n \"interactive.linkTextColor:press\": getColor(7),\n \"interactive.linkTextColor:disabled\": getColor(3, \"grayscale\"),\n\n \"interactive.contained.backgroundColor\": getColor(5),\n \"interactive.elevated.backgroundColor\": backgroundColor,\n \"interactive.elevated.shadowColor\": getColor(9),\n \"interactive.elevated.borderColor\": contrastBorderColor,\n \"interactive.outlined.backgroundColor\": backgroundColor,\n \"interactive.outlined.borderColor\": getColor(mode === \"dark\" ? 5 : 8),\n\n \"interactive.contained.backgroundColor:hover\": getColor(4),\n \"interactive.elevated.backgroundColor:hover\": getColor(1),\n \"interactive.elevated.borderColor:hover\": contrastBorderColor,\n \"interactive.outlined.backgroundColor:hover\": getColor(1),\n \"interactive.outlined.borderColor:hover\": getColor(mode === \"dark\" ? 5 : 7),\n\n \"interactive.contained.backgroundColor:focus\": getColor(4),\n \"interactive.elevated.backgroundColor:focus\": getColor(1),\n \"interactive.elevated.borderColor:focus\": contrastBorderColor,\n \"interactive.outlined.backgroundColor:focus\": getColor(1),\n \"interactive.outlined.borderColor:focus\": getColor(7),\n\n \"interactive.contained.backgroundColor:press\": getColor(2),\n \"interactive.elevated.backgroundColor:press\": getColor(3),\n \"interactive.elevated.borderColor:press\": contrastBorderColor,\n \"interactive.outlined.backgroundColor:press\": getColor(3),\n \"interactive.outlined.borderColor:press\": getColor(7),\n\n \"interactive.contained.backgroundColor:disabled\": getColor(3, \"grayscale\"),\n \"interactive.elevated.backgroundColor:disabled\": backgroundColor,\n \"interactive.elevated.shadowColor:disabled\": getColor(9, \"grayscale\"),\n \"interactive.elevated.borderColor:disabled\": getColor(3, \"grayscale\"),\n \"interactive.outlined.backgroundColor:disabled\": backgroundColor,\n \"interactive.outlined.borderColor:disabled\": getColor(3, \"grayscale\"),\n \"interactive.textColor:disabled\": getColor(7, \"grayscale\"),\n\n \"interactive.forms.textColor\": textColor,\n \"interactive.forms.placeholderTextColor\": getColor(3, \"grayscale\"),\n\n // \"interactive.forms.backgroundColor\": undefined,\n // \"interactive.forms.backgroundColor:hover\": undefined,\n \"interactive.forms.backgroundColor:focus\": getColor(1),\n \"interactive.forms.backgroundColor:press\": getColor(3),\n \"interactive.forms.borderColor\": getColor(10),\n \"interactive.forms.borderColor:hover\": getColor(7),\n \"interactive.forms.borderColor:focus\": getColor(7),\n \"interactive.forms.borderColor:press\": getColor(7),\n \"interactive.forms.borderColor:disabled\": getColor(3, \"grayscale\"),\n } satisfies FullTheme;\n\n if (process.env.NODE_ENV === \"development\") {\n // Check main text contrast\n warnOnContrastIssues(\n colorScaleName,\n theme.textColor.val,\n theme.backgroundColor.val,\n );\n }\n\n return theme;\n};\n\nexport const createAlouetteThemes = <\n const ColorScales extends AlouetteColorScales,\n>(\n tokens: ReturnType<typeof createAlouetteTokens<ColorScales>>,\n) => {\n const alouetteTokens: ReturnType<\n typeof createAlouetteTokens<AlouetteColorScales>\n > = tokens;\n return {\n light: createColorTheme(alouetteTokens, \"grayscale\", \"light\"),\n light_info: createColorTheme(alouetteTokens, \"info\", \"light\"),\n light_success: createColorTheme(alouetteTokens, \"success\", \"light\"),\n light_warning: createColorTheme(alouetteTokens, \"warning\", \"light\"),\n light_danger: createColorTheme(alouetteTokens, \"danger\", \"light\"),\n light_primary: createColorTheme(alouetteTokens, \"primary\", \"light\"),\n\n dark: createColorTheme(alouetteTokens, \"grayscale\", \"dark\"),\n dark_info: createColorTheme(alouetteTokens, \"info\", \"dark\"),\n dark_success: createColorTheme(alouetteTokens, \"success\", \"dark\"),\n dark_warning: createColorTheme(alouetteTokens, \"warning\", \"dark\"),\n dark_danger: createColorTheme(alouetteTokens, \"danger\", \"dark\"),\n dark_primary: createColorTheme(alouetteTokens, \"primary\", \"dark\"),\n } as const;\n};\n","import type { IntRange } from \"type-fest\";\n\n// scale inspired by https://www.radix-ui.com/colors/docs/palette-composition/understanding-the-scale\n// 1: interactive outlined background hover/focus color\n// 2: interactive contained background press color\n// 3: interactive outlined background press color\n// 4: interactive contained background hover/focus color\n// 5: interactive contained background color\n// 6: main color\n// 7: border hover/focus color\n// 8: border color\n// 9: text color / shadow color\n// 10: form border color (default)\n\nexport type AlouetteColorScaleNumber = IntRange<1, 11>;\n\nexport type AlouetteColorScale = Record<AlouetteColorScaleNumber, string>;\n\nexport const createColorScale = <const T extends AlouetteColorScale>(\n colorScale: T,\n): T => colorScale;\n\nexport type AlouetteColorScaleNames =\n | \"danger\"\n | \"grayscale\"\n | \"info\"\n | \"primary\"\n | \"success\"\n | \"warning\";\n\nexport type ColorScaleTokens = {\n [K in AlouetteColorScaleNames as `${K}.${AlouetteColorScaleNumber}`]: string; //(typeof colorScales)[K][AlouetteColorScaleNumber];\n};\n\nexport type AlouetteColorScales = Record<\n AlouetteColorScaleNames,\n AlouetteColorScale\n>;\n\n// Tool: https://m2.material.io/inline-tools/color/\n\nexport const defaultColorScales: AlouetteColorScales = {\n grayscale: createColorScale({\n 1: \"#faf9f8\",\n 2: \"#f4f3ef\",\n 3: \"#ebe9e5\",\n 4: \"#dedad2\",\n 5: \"#d1cdc5\",\n 6: \"#bab8ae\",\n 7: \"#aeaba3\",\n 8: \"#9c9a92\",\n 9: \"#8e8c83\",\n 10: \"#74726a\",\n }),\n success: createColorScale({\n 1: \"#f0f9f3\",\n 2: \"#d4f0d4\",\n 3: \"#a8e6a8\",\n 4: \"#7edc7e\",\n 5: \"#54d254\",\n 6: \"#2ac82a\",\n 7: \"#00be00\",\n 8: \"#00b400\",\n 9: \"#00aa00\",\n 10: \"#009200\",\n }),\n info: createColorScale({\n 1: \"#f0f9ff\",\n 2: \"#d4f0ff\",\n 3: \"#a8e6ff\",\n 4: \"#7edcff\",\n 5: \"#54d2ff\",\n 6: \"#2ac8ff\",\n 7: \"#00beff\",\n 8: \"#00b4ff\",\n 9: \"#00aaff\",\n 10: \"#0092ff\",\n }),\n warning: createColorScale({\n 1: \"#fff9f0\",\n 2: \"#fff0d4\",\n 3: \"#ffe6a8\",\n 4: \"#ffdc7e\",\n 5: \"#ffd254\",\n 6: \"#ffc82a\",\n 7: \"#ffbe00\",\n 8: \"#ffb400\",\n 9: \"#ffaa00\",\n 10: \"#ff9200\",\n }),\n danger: createColorScale({\n 1: \"#fff0f0\",\n 2: \"#ffd4d4\",\n 3: \"#ffaaaa\",\n 4: \"#ff7e7e\",\n 5: \"#ff5454\",\n 6: \"#ff2a2a\",\n 7: \"#ff0000\",\n 8: \"#f40000\",\n 9: \"#ea0000\",\n 10: \"#d20000\",\n }),\n primary: createColorScale({\n 1: \"#e1f4f6\",\n 2: \"#b4e2e9\",\n 3: \"#86cfdc\",\n 4: \"#60bcd0\",\n 5: \"#46aeca\",\n 6: \"#31a1c4\",\n 7: \"#2994b7\",\n 8: \"#1e82a6\",\n 9: \"#1c7193\",\n 10: \"#125272\",\n }),\n} as const;\n","import { createTamagui } from \"@tamagui/core\";\nimport { animations } from \"./config/animations\";\nimport type { AlouetteColorScales } from \"./config/colorScales\";\nimport type { AlouetteFontsOptions } from \"./config/createAlouetteFonts\";\nimport { createAlouetteFonts } from \"./config/createAlouetteFonts\";\nimport type { createAlouetteTokens } from \"./config/createAlouetteTokens\";\nimport { media } from \"./config/media\";\nimport type { createAlouetteThemes } from \"./config/themes\";\n\nexport { createAlouetteTokens } from \"./config/createAlouetteTokens\";\n\nexport interface AlouetteTamaguiOptions {\n fonts?: AlouetteFontsOptions;\n}\n\nexport {\n createColorTheme,\n createAlouetteThemes,\n type FullTheme,\n} from \"./config/themes\";\n\nexport {\n defaultColorScales,\n createColorScale,\n type AlouetteColorScales,\n type AlouetteColorScale,\n} from \"./config/colorScales\";\n\nexport const createAlouetteTamagui = <\n const ColorScales extends AlouetteColorScales,\n const Tokens extends ReturnType<typeof createAlouetteTokens<ColorScales>>,\n const Themes extends ReturnType<typeof createAlouetteThemes<ColorScales>>,\n>(\n tokens: Tokens,\n themes: Themes,\n options: AlouetteTamaguiOptions = {},\n) => {\n return createTamagui({\n fonts: createAlouetteFonts(options.fonts),\n tokens,\n themes,\n media,\n animations,\n settings: {\n allowedStyleValues: \"somewhat-strict-web\",\n autocompleteSpecificTokens: \"except-special\",\n },\n components: [\"alouette\"],\n } as const);\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAlouetteTamagui-browser.es.js","sources":["../src/config/animations.web.ts","../src/config/createAlouetteFonts.ts","../src/config/Breakpoints.ts","../src/config/media.ts","../src/config/createAlouetteTokens.ts","../src/config/colorScales.ts","../src/config/utils/colorContrast.ts","../src/config/themes.ts","../src/config/defaultColorScales.ts","../src/createAlouetteTamagui.ts"],"sourcesContent":["import { createAnimations } from \"@tamagui/animations-css\";\n\nexport const animations = createAnimations({\n fast: \"ease-in 150ms\",\n formElement: \"ease-in 600ms\",\n});\nconsole.log(\"animations: web\");\n","import { createFont } from \"@tamagui/core\";\n\nconst defaultHeadingFontSizes = { xl: 48, lg: 40, md: 32, sm: 24, xs: 18 };\nconst defaultBodyFontSizes = { xl: 24, lg: 18, md: 16, sm: 14, xs: 12 };\n\nconst roundWith1Precision = (value: number): number =>\n Math.round(value * 10) / 10;\n\nexport interface AlouetteFontsOptions {\n headingFontFamily?: string;\n headingFontSizes?: typeof defaultHeadingFontSizes;\n bodyFontFamily?: string;\n bodyFontSizes?: typeof defaultBodyFontSizes;\n}\n\nexport const createAlouetteFonts = ({\n headingFontFamily = \"Inter\",\n headingFontSizes = defaultHeadingFontSizes,\n bodyFontFamily = \"Inter\",\n bodyFontSizes = defaultBodyFontSizes,\n}: AlouetteFontsOptions = {}) => ({\n heading: createFont({\n family: headingFontFamily,\n weight: {\n regular: \"400\",\n bold: \"700\",\n black: \"900\",\n },\n face: {\n 400: { normal: `${headingFontFamily}Regular` },\n 700: { normal: `${headingFontFamily}Bold` },\n 900: { normal: `${headingFontFamily}Black` },\n },\n size: headingFontSizes,\n lineHeight: {\n xl: roundWith1Precision(1.1 * headingFontSizes.xl),\n lg: roundWith1Precision(1.1 * headingFontSizes.lg),\n md: roundWith1Precision(1.2 * headingFontSizes.md),\n sm: roundWith1Precision(1.3 * headingFontSizes.sm),\n xs: roundWith1Precision(1.3 * headingFontSizes.xs),\n },\n }),\n body: createFont({\n family: bodyFontFamily,\n weight: {\n regular: \"400\",\n bold: \"700\",\n black: \"900\",\n },\n face: {\n 400: { normal: `${bodyFontFamily}Regular` },\n 700: { normal: `${bodyFontFamily}Bold` },\n 900: { normal: `${bodyFontFamily}Black` },\n },\n size: bodyFontSizes,\n lineHeight: {\n xl: roundWith1Precision(1.4 * bodyFontSizes.xl),\n lg: roundWith1Precision(1.4 * bodyFontSizes.lg),\n md: roundWith1Precision(1.4 * bodyFontSizes.md),\n sm: roundWith1Precision(1.4 * bodyFontSizes.sm),\n xs: roundWith1Precision(1.4 * bodyFontSizes.xs),\n },\n }),\n});\n","export const Breakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n} as const;\n\nexport type Breakpoint = (typeof Breakpoints)[keyof typeof Breakpoints];\nexport type BreakpointNames = \"base\" | \"large\" | \"medium\" | \"small\" | \"wide\";\n\nexport enum BreakpointNameEnum {\n BASE = \"base\",\n SMALL = \"small\",\n MEDIUM = \"medium\",\n LARGE = \"large\",\n WIDE = \"wide\",\n}\n","import { Breakpoints } from \"./Breakpoints\";\n\nexport const media = {\n small: { minWidth: Breakpoints.SMALL },\n medium: { minWidth: Breakpoints.MEDIUM },\n large: { minWidth: Breakpoints.LARGE },\n wide: { minWidth: Breakpoints.WIDE },\n} as const;\n","import { createTokens } from \"@tamagui/core\";\nimport type { IntRange } from \"type-fest\";\nimport type {\n AlouetteColorScaleNumber,\n AlouetteColorScales,\n} from \"./colorScales\";\n\ntype AlouetteSize = IntRange<0, 64>;\ntype NegativeAlouetteSize = `-${AlouetteSize}`;\ntype AlouetteSizeRecord = Record<AlouetteSize, number>;\ntype NegativeAlouetteSizeRecord = Record<NegativeAlouetteSize, number>;\n\nconst createAlouetteSizes = <const N extends boolean>(\n spacing: number,\n negative: N,\n): N extends true ? NegativeAlouetteSizeRecord : AlouetteSizeRecord => {\n const MAX_SIZE = 64;\n const sizes: Partial<\n N extends true ? NegativeAlouetteSizeRecord : AlouetteSizeRecord\n > = {};\n for (let size = 0; size <= MAX_SIZE; size++) {\n (sizes as any)[negative ? `-${size}` : `${size}`] = size * spacing;\n }\n return sizes as N extends true\n ? NegativeAlouetteSizeRecord\n : AlouetteSizeRecord;\n};\n\ntype ColorScaleTokens<ColorScales extends AlouetteColorScales> = {\n [K in string &\n keyof ColorScales as `${K}.${AlouetteColorScaleNumber}`]: string; //(typeof colorScales)[K][AlouetteColorScaleNumber];\n};\n\nconst transformColorScalesToTokens = <ColorScales extends AlouetteColorScales>(\n colorScales: ColorScales,\n): ColorScaleTokens<ColorScales> => {\n return Object.fromEntries(\n Object.entries(colorScales).flatMap(([colorName, colorScale]) => {\n return Object.entries(colorScale).map(([scaleNumber, colorValue]) => {\n return [`${colorName}.${scaleNumber}`, colorValue];\n });\n }),\n ) as ColorScaleTokens<ColorScales>;\n};\n\nexport interface AlouetteTokensOptions {\n spacing?: number;\n}\n\nexport const createAlouetteTokens = <\n const ColorScales extends AlouetteColorScales,\n>(\n colorScales: ColorScales,\n { spacing = 4 }: AlouetteTokensOptions = {},\n) => {\n const sizes: AlouetteSizeRecord = createAlouetteSizes(spacing, false);\n const negativeSizes: NegativeAlouetteSizeRecord = createAlouetteSizes(\n -spacing,\n true,\n );\n\n return createTokens({\n color: {\n blackBackground: \"#121212\",\n whiteBackground: \"#ffffff\",\n blackText: \"#000000\",\n whiteText: \"#fdfdfd\",\n ...transformColorScalesToTokens(colorScales),\n },\n radius: {\n ...sizes,\n xs: spacing * 2,\n sm: spacing * 4,\n md: spacing * 8,\n },\n space: {\n ...sizes,\n ...negativeSizes,\n xs: spacing * 2,\n sm: spacing * 4,\n md: spacing * 8,\n },\n size: { ...sizes },\n zIndex: {},\n } as const);\n};\n","import type { IntRange } from \"type-fest\";\n\n// scale inspired by https://www.radix-ui.com/colors/docs/palette-composition/understanding-the-scale\n\n// LIGHT SCALE\n// 1: colored page background color\n// 2: interactive outlined background hover/focus color\n// 3: interactive contained background press color / non interactive background color\n// 4: interactive outlined background press color / non interactive shadow color\n// 5: interactive contained background hover/focus color\n// 6: interactive contained background color / interactive border hover/focus color\n// 7: interactive border color\n// 8: interactive shadow color / text:press\n// 9: text color\n// 10: text:hover/focus\n\n// DARK SCALE\n// 1: colored page background color\n// 2: interactive outlined background press color / non interactive shadow color\n// 2: interactive outlined background hover/focus color\n// 4: interactive contained background press color / non interactive background color\n// 5: interactive contained background color / interactive border hover/focus color\n// 6: interactive contained background hover/focus color\n// 7: interactive border color\n// 8: interactive shadow color / text:press\n// 9: text color\n// 10: text:hover/focus\n\n// this mapping is used to keep focus/hover colors brighter\nexport const mappingLightToDark = {\n 1: 1,\n 2: 3,\n 3: 4,\n 4: 2,\n 5: 6,\n 6: 5,\n 7: 7,\n 8: 8,\n 9: 9,\n 10: 10,\n};\n\nexport type AlouetteColorScaleNumber = IntRange<1, 11>;\n\nexport type AlouetteColorScale = Record<AlouetteColorScaleNumber, string>;\n\nexport const createColorScale = <const T extends AlouetteColorScale>(\n colorScale: T,\n): T => colorScale;\n\nexport type AlouetteColorIntent =\n | \"danger\"\n | \"grayscale\"\n | \"info\"\n | \"primary\"\n | \"success\"\n | \"warning\";\n\nexport type AlouetteColorScaleNames =\n | `${AlouetteColorIntent}.dark`\n | `${AlouetteColorIntent}.light`;\n\nexport type ColorScaleTokens = {\n [K in AlouetteColorScaleNames as `${K}.${AlouetteColorScaleNumber}`]: string; //(typeof colorScales)[K][AlouetteColorScaleNumber];\n};\n\nexport type AlouetteColorScales = Record<\n AlouetteColorScaleNames,\n AlouetteColorScale\n>;\n","/**\n * Calculates relative luminance of a color\n * Based on WCAG 2.0 formula: https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nconst getLuminance = (r: number, g: number, b: number) => {\n const values: [number, number, number] = [r, g, b].map((c) => {\n const s = c / 255;\n return s <= 0.039_28 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;\n }) as [number, number, number];\n\n return 0.2126 * values[0] + 0.7152 * values[1] + 0.0722 * values[2];\n};\n\n/**\n * Converts hex color to RGB values\n */\nconst hexToRgb = (hex: string) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result?.[1] || !result[2] || !result[3]) return null;\n return {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n };\n};\n\n/**\n * Calculates contrast ratio between two colors\n * Returns ratio between 1 and 21\n */\nexport const getContrastRatio = (color1: string, color2: string) => {\n const rgb1 = hexToRgb(color1);\n const rgb2 = hexToRgb(color2);\n\n if (!rgb1 || !rgb2) return 0;\n\n const l1 = getLuminance(rgb1.r, rgb1.g, rgb1.b);\n const l2 = getLuminance(rgb2.r, rgb2.g, rgb2.b);\n\n const lighter = Math.max(l1, l2);\n const darker = Math.min(l1, l2);\n\n return (lighter + 0.05) / (darker + 0.05);\n};\n\n/**\n * Checks if contrast ratio meets WCAG requirements\n */\nexport const checkContrast = (\n foreground: string,\n background: string,\n level: \"AA\" | \"AAA\" = \"AA\",\n) => {\n const ratio = getContrastRatio(foreground, background);\n const minimumRatio = level === \"AA\" ? 4.5 : 7;\n\n return {\n ratio,\n passes: ratio >= minimumRatio,\n minimumRatio,\n };\n};\n\n/**\n * Development warning for contrast issues\n */\nexport const warnOnContrastIssues = (\n themeName: string,\n textColor: string,\n backgroundColor: string,\n) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n const result = checkContrast(textColor, backgroundColor);\n\n if (!result.passes) {\n console.warn(\n `[Alouette] Contrast warning in theme \"${themeName}\":\n Text color ${textColor} on background ${backgroundColor}\n has contrast ratio of ${result.ratio.toFixed(2)}.\n Minimum required: ${result.minimumRatio}\n This may cause accessibility issues.`,\n );\n }\n};\n","/* eslint-disable camelcase */\nimport type { Variable } from \"@tamagui/core\";\nimport { mappingLightToDark } from \"./colorScales\";\nimport type {\n AlouetteColorIntent,\n AlouetteColorScaleNumber,\n AlouetteColorScales,\n} from \"./colorScales\";\nimport type { createAlouetteTokens } from \"./createAlouetteTokens\";\nimport { warnOnContrastIssues } from \"./utils/colorContrast\";\n\n// export interface MinimalRootTheme {\n// backgroundColor: Variable<string>;\n// textColor: Variable<string>;\n// }\n\n// export interface RootTheme {\n// backgroundColor: Variable<string>;\n// textColor: Variable<string>;\n// }\n\nexport interface ColorTheme {\n backgroundColor: Variable<string>;\n pageBackgroundColor: Variable<string>;\n nonInteractiveBackgroundColor: Variable<string>;\n \"gradientColor:start\": Variable<string>;\n \"gradientColor:middle\": Variable<string>;\n \"gradientColor:end\": Variable<string>;\n textColor: Variable<string>;\n \"textColor:disabled\": Variable<string>;\n coloredTextColor: Variable<string>;\n borderColor: Variable<string>;\n shadowColor: Variable<string>;\n\n \"interactive.linkTextColor\": Variable<string>;\n \"interactive.linkTextColor:hover\": Variable<string>;\n \"interactive.linkTextColor:focus\": Variable<string>;\n \"interactive.linkTextColor:press\": Variable<string>;\n \"interactive.linkTextColor:disabled\": Variable<string>;\n\n \"interactive.contained.backgroundColor\": Variable<string>;\n \"interactive.elevated.backgroundColor\": Variable<string>;\n \"interactive.elevated.shadowColor\": Variable<string>;\n \"interactive.elevated.borderColor\": Variable<string>;\n \"interactive.outlined.backgroundColor\": Variable<string>;\n \"interactive.outlined.borderColor\": Variable<string>;\n\n \"interactive.contained.backgroundColor:hover\": Variable<string>;\n \"interactive.elevated.backgroundColor:hover\": Variable<string>;\n \"interactive.elevated.borderColor:hover\": Variable<string>;\n \"interactive.outlined.backgroundColor:hover\": Variable<string>;\n \"interactive.outlined.borderColor:hover\": Variable<string>;\n\n \"interactive.contained.backgroundColor:focus\": Variable<string>;\n \"interactive.elevated.backgroundColor:focus\": Variable<string>;\n \"interactive.elevated.borderColor:focus\": Variable<string>;\n \"interactive.outlined.backgroundColor:focus\": Variable<string>;\n \"interactive.outlined.borderColor:focus\": Variable<string>;\n\n \"interactive.contained.backgroundColor:press\": Variable<string>;\n \"interactive.elevated.backgroundColor:press\": Variable<string>;\n \"interactive.elevated.borderColor:press\": Variable<string>;\n \"interactive.outlined.backgroundColor:press\": Variable<string>;\n \"interactive.outlined.borderColor:press\": Variable<string>;\n\n \"interactive.contained.backgroundColor:disabled\": Variable<string>;\n \"interactive.elevated.backgroundColor:disabled\": Variable<string>;\n \"interactive.elevated.shadowColor:disabled\": Variable<string>;\n \"interactive.elevated.borderColor:disabled\": Variable<string>;\n \"interactive.outlined.backgroundColor:disabled\": Variable<string>;\n \"interactive.outlined.borderColor:disabled\": Variable<string>;\n\n \"interactive.forms.textColor\": Variable<string>;\n \"interactive.forms.placeholderTextColor\": Variable<string>;\n // \"interactive.forms.backgroundColor\": Variable<string>,\n // \"interactive.forms.backgroundColor:hover\": Variable<string>,\n \"interactive.forms.backgroundColor:focus\": Variable<string>;\n \"interactive.forms.backgroundColor:press\": Variable<string>;\n \"interactive.forms.borderColor\": Variable<string>;\n \"interactive.forms.borderColor:hover\": Variable<string>;\n \"interactive.forms.borderColor:focus\": Variable<string>;\n \"interactive.forms.borderColor:press\": Variable<string>;\n \"interactive.forms.borderColor:disabled\": Variable<string>;\n}\n\n// export interface FullTheme extends ColorTheme, RootTheme {}\nexport type FullTheme = ColorTheme;\n\n// export const createRootTheme = <T extends MinimalRootTheme>(\n// theme: T,\n// ): FullTheme => {\n// return theme satisfies RootTheme as unknown as FullTheme;\n// };\n\nexport const createColorTheme = <const ColorIntent extends AlouetteColorIntent>(\n tokens: ReturnType<typeof createAlouetteTokens<AlouetteColorScales>>,\n intent: ColorIntent,\n mode: \"dark\" | \"light\" = \"light\",\n // TODO replace by color in scale\n backgroundColor?: Variable<string>,\n textColor?: Variable<string>,\n) => {\n const alouetteTokens: ReturnType<\n typeof createAlouetteTokens<AlouetteColorScales>\n > = tokens;\n if (!backgroundColor) {\n backgroundColor =\n mode === \"dark\"\n ? alouetteTokens.color.blackBackground\n : alouetteTokens.color.whiteBackground;\n }\n if (!textColor) {\n textColor =\n mode === \"dark\"\n ? alouetteTokens.color.whiteText\n : alouetteTokens.color.blackText;\n }\n\n const getColor = (\n scaleNumber: AlouetteColorScaleNumber,\n tint?: \"grayscale\",\n ) => {\n return tokens.color[\n `${tint || intent}.${mode}.${mode === \"dark\" ? mappingLightToDark[scaleNumber] : scaleNumber}` as keyof typeof tokens.color\n ];\n };\n\n const theme = {\n backgroundColor,\n \"gradientColor:start\": getColor(5),\n \"gradientColor:middle\": getColor(7),\n \"gradientColor:end\": getColor(4),\n textColor,\n pageBackgroundColor: getColor(1),\n nonInteractiveBackgroundColor: getColor(3),\n coloredTextColor: getColor(9),\n borderColor: getColor(4),\n shadowColor: getColor(8),\n \"textColor:disabled\": getColor(6, \"grayscale\"),\n\n \"interactive.linkTextColor\": getColor(9),\n \"interactive.linkTextColor:hover\": getColor(10),\n \"interactive.linkTextColor:focus\": getColor(10),\n \"interactive.linkTextColor:press\": getColor(8),\n \"interactive.linkTextColor:disabled\": getColor(9, \"grayscale\"),\n\n \"interactive.contained.backgroundColor\": getColor(6),\n \"interactive.elevated.backgroundColor\": backgroundColor,\n \"interactive.elevated.shadowColor\": getColor(8),\n \"interactive.elevated.borderColor\": getColor(1),\n \"interactive.outlined.backgroundColor\": backgroundColor,\n \"interactive.outlined.borderColor\": getColor(7),\n\n \"interactive.contained.backgroundColor:hover\": getColor(5),\n \"interactive.elevated.backgroundColor:hover\": getColor(2),\n \"interactive.elevated.borderColor:hover\": getColor(1),\n \"interactive.outlined.backgroundColor:hover\": getColor(2),\n \"interactive.outlined.borderColor:hover\": getColor(6),\n\n \"interactive.contained.backgroundColor:focus\": getColor(5),\n \"interactive.elevated.backgroundColor:focus\": getColor(2),\n \"interactive.elevated.borderColor:focus\": getColor(1),\n \"interactive.outlined.backgroundColor:focus\": getColor(2),\n \"interactive.outlined.borderColor:focus\": getColor(6),\n\n \"interactive.contained.backgroundColor:press\": getColor(3),\n \"interactive.elevated.backgroundColor:press\": getColor(4),\n \"interactive.elevated.borderColor:press\": getColor(1),\n \"interactive.outlined.backgroundColor:press\": getColor(4),\n \"interactive.outlined.borderColor:press\": getColor(6),\n\n \"interactive.contained.backgroundColor:disabled\": getColor(4, \"grayscale\"),\n \"interactive.elevated.backgroundColor:disabled\": backgroundColor,\n \"interactive.elevated.shadowColor:disabled\": getColor(8, \"grayscale\"),\n \"interactive.elevated.borderColor:disabled\": getColor(1, \"grayscale\"),\n \"interactive.outlined.backgroundColor:disabled\": backgroundColor,\n \"interactive.outlined.borderColor:disabled\": getColor(7, \"grayscale\"),\n\n \"interactive.forms.textColor\": textColor,\n \"interactive.forms.placeholderTextColor\": getColor(8, \"grayscale\"),\n\n // \"interactive.forms.backgroundColor\": undefined,\n // \"interactive.forms.backgroundColor:hover\": undefined,\n \"interactive.forms.backgroundColor:focus\": getColor(2),\n \"interactive.forms.backgroundColor:press\": getColor(4),\n \"interactive.forms.borderColor\": getColor(7),\n \"interactive.forms.borderColor:disabled\": getColor(7, \"grayscale\"),\n \"interactive.forms.borderColor:hover\": getColor(6),\n \"interactive.forms.borderColor:focus\": getColor(6),\n \"interactive.forms.borderColor:press\": getColor(6),\n } satisfies FullTheme;\n\n if (process.env.NODE_ENV === \"development\") {\n // Check main text contrast\n warnOnContrastIssues(\n intent,\n theme.textColor.val,\n theme.backgroundColor.val,\n );\n }\n\n return theme;\n};\n\nexport const createAlouetteThemes = <\n const ColorScales extends AlouetteColorScales,\n>(\n tokens: ReturnType<typeof createAlouetteTokens<ColorScales>>,\n) => {\n const alouetteTokens: ReturnType<\n typeof createAlouetteTokens<AlouetteColorScales>\n > = tokens;\n return {\n light: createColorTheme(alouetteTokens, \"grayscale\", \"light\"),\n light_info: createColorTheme(alouetteTokens, \"info\", \"light\"),\n light_success: createColorTheme(alouetteTokens, \"success\", \"light\"),\n light_warning: createColorTheme(alouetteTokens, \"warning\", \"light\"),\n light_danger: createColorTheme(alouetteTokens, \"danger\", \"light\"),\n light_primary: createColorTheme(alouetteTokens, \"primary\", \"light\"),\n\n dark: createColorTheme(alouetteTokens, \"grayscale\", \"dark\"),\n dark_info: createColorTheme(alouetteTokens, \"info\", \"dark\"),\n dark_success: createColorTheme(alouetteTokens, \"success\", \"dark\"),\n dark_warning: createColorTheme(alouetteTokens, \"warning\", \"dark\"),\n dark_danger: createColorTheme(alouetteTokens, \"danger\", \"dark\"),\n dark_primary: createColorTheme(alouetteTokens, \"primary\", \"dark\"),\n } as const;\n};\n","import { createColorScale } from \"./colorScales\";\nimport type { AlouetteColorScales } from \"./colorScales\";\n\nexport const defaultColorScales: AlouetteColorScales = {\n \"grayscale.light\": createColorScale({\n 1: \"#F5F5F5\",\n 2: \"#EBEBEB\",\n 3: \"#E0E0E0\",\n 4: \"#D6D6D6\",\n 5: \"#C7C7C7\",\n 6: \"#B8B8B8\",\n 7: \"#8F8F8F\",\n 8: \"#616161\",\n 9: \"#525252\",\n 10: \"#2E2E2E\",\n }),\n \"grayscale.dark\": createColorScale({\n 1: \"#1A1A1A\",\n 2: \"#1F1F1F\",\n 3: \"#292929\",\n 4: \"#333333\",\n 5: \"#3D3D3D\",\n 6: \"#474747\",\n 7: \"#525252\",\n 8: \"#9E9E9E\",\n 9: \"#ADADAD\",\n 10: \"#D1D1D1\",\n }),\n \"primary.light\": createColorScale({\n 1: \"#EFF8FB\",\n 2: \"#DAF4FB\",\n 3: \"#C7EEF9\",\n 4: \"#B5E8F8\",\n 5: \"#99DFF5\",\n 6: \"#7DD7F2\",\n 7: \"#33C0EB\",\n 8: \"#037496\",\n 9: \"#025D78\",\n 10: \"#012732\",\n }),\n \"primary.dark\": createColorScale({\n 1: \"#02161C\",\n 2: \"#06242D\",\n 3: \"#072B36\",\n 4: \"#093A49\",\n 5: \"#0D576D\",\n 6: \"#0D576D\",\n 7: \"#10657F\",\n 8: \"#49CCF3\",\n 9: \"#66D4F5\",\n 10: \"#A9E7F9\",\n }),\n \"danger.light\": createColorScale({\n 1: \"#FBEFEF\",\n 2: \"#FEF6F6\",\n 3: \"#FCE4E3\",\n 4: \"#FAD2D1\",\n 5: \"#F8B7B5\",\n 6: \"#F59C99\",\n 7: \"#EE544F\",\n 8: \"#DC0C04\",\n 9: \"#BE0A04\",\n 10: \"#780602\",\n }),\n \"danger.dark\": createColorScale({\n 1: \"#1C0302\",\n 2: \"#490B09\",\n 3: \"#520C0A\",\n 4: \"#640F0C\",\n 5: \"#881511\",\n 6: \"#881511\",\n 7: \"#9A1813\",\n 8: \"#F56A66\",\n 9: \"#F78682\",\n 10: \"#FBC7C5\",\n }),\n \"info.light\": createColorScale({\n 1: \"#EFF8FB\",\n 2: \"#DAF3FB\",\n 3: \"#C7EDF9\",\n 4: \"#B5E7F8\",\n 5: \"#99DEF5\",\n 6: \"#7DD5F2\",\n 7: \"#33BDEB\",\n 8: \"#037196\",\n 9: \"#025B78\",\n 10: \"#012632\",\n }),\n \"info.dark\": createColorScale({\n 1: \"#02161C\",\n 2: \"#06232D\",\n 3: \"#072B36\",\n 4: \"#093949\",\n 5: \"#0D556D\",\n 6: \"#0D556D\",\n 7: \"#10637F\",\n 8: \"#49C9F3\",\n 9: \"#66D1F5\",\n 10: \"#A9E5F9\",\n }),\n \"success.light\": createColorScale({\n 1: \"#EFFBEF\",\n 2: \"#DAFBDA\",\n 3: \"#C7F9C7\",\n 4: \"#B5F8B5\",\n 5: \"#99F599\",\n 6: \"#7DF27D\",\n 7: \"#33EB33\",\n 8: \"#039603\",\n 9: \"#027802\",\n 10: \"#013201\",\n }),\n \"success.dark\": createColorScale({\n 1: \"#021C02\",\n 2: \"#062D06\",\n 3: \"#073607\",\n 4: \"#094909\",\n 5: \"#0D6D0D\",\n 6: \"#0D6D0D\",\n 7: \"#107F10\",\n 8: \"#49F349\",\n 9: \"#66F566\",\n 10: \"#A9F9A9\",\n }),\n \"warning.light\": createColorScale({\n 1: \"#FBF7EF\",\n 2: \"#FEFBF6\",\n 3: \"#FCF4E3\",\n 4: \"#FAECD1\",\n 5: \"#F8E1B5\",\n 6: \"#F5D699\",\n 7: \"#EEB94F\",\n 8: \"#8C5E03\",\n 9: \"#6E4A02\",\n 10: \"#281B01\",\n }),\n \"warning.dark\": createColorScale({\n 1: \"#1C1402\",\n 2: \"#493309\",\n 3: \"#523A0A\",\n 4: \"#64470C\",\n 5: \"#886011\",\n 6: \"#886011\",\n 7: \"#9A6D13\",\n 8: \"#F5C566\",\n 9: \"#F7D082\",\n 10: \"#FBE9C5\",\n }),\n} as const;\n","import { createTamagui } from \"@tamagui/core\";\nimport { animations } from \"./config/animations\";\nimport type { AlouetteColorScales } from \"./config/colorScales\";\nimport type { AlouetteFontsOptions } from \"./config/createAlouetteFonts\";\nimport { createAlouetteFonts } from \"./config/createAlouetteFonts\";\nimport type { createAlouetteTokens } from \"./config/createAlouetteTokens\";\nimport { media } from \"./config/media\";\nimport type { createAlouetteThemes } from \"./config/themes\";\n\nexport { createAlouetteTokens } from \"./config/createAlouetteTokens\";\n\nexport interface AlouetteTamaguiOptions {\n fonts?: AlouetteFontsOptions;\n}\n\nexport {\n createColorTheme,\n createAlouetteThemes,\n type FullTheme,\n} from \"./config/themes\";\n\nexport {\n createColorScale,\n type AlouetteColorScales,\n type AlouetteColorScale,\n} from \"./config/colorScales\";\n\nexport { defaultColorScales } from \"./config/defaultColorScales\";\n\nexport const createAlouetteTamagui = <\n const ColorScales extends AlouetteColorScales,\n const Tokens extends ReturnType<typeof createAlouetteTokens<ColorScales>>,\n const Themes extends ReturnType<typeof createAlouetteThemes<ColorScales>>,\n>(\n tokens: Tokens,\n themes: Themes,\n options: AlouetteTamaguiOptions = {},\n) => {\n return createTamagui({\n fonts: createAlouetteFonts(options.fonts),\n tokens,\n themes,\n media,\n animations,\n settings: {\n allowedStyleValues: \"somewhat-strict-web\",\n autocompleteSpecificTokens: \"except-special\",\n },\n components: [\"alouette\"],\n } as const);\n};\n"],"names":[],"mappings":"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"}