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.
- package/CHANGELOG.md +18 -0
- package/dist/createAlouetteTamagui-browser.es.js +206 -140
- package/dist/createAlouetteTamagui-browser.es.js.map +1 -1
- package/dist/createAlouetteTamagui-node20.cjs +206 -140
- package/dist/createAlouetteTamagui-node20.cjs.map +1 -1
- package/dist/createAlouetteTamagui-node20.mjs +206 -140
- package/dist/createAlouetteTamagui-node20.mjs.map +1 -1
- package/dist/createAlouetteTamagui-react-native.cjs.js +206 -140
- package/dist/createAlouetteTamagui-react-native.cjs.js.map +1 -1
- package/dist/createAlouetteTamagui-react-native.es.js +206 -140
- package/dist/createAlouetteTamagui-react-native.es.js.map +1 -1
- package/dist/definitions/components/actions/Button.d.ts.map +1 -1
- package/dist/definitions/components/actions/Button.stories.d.ts.map +1 -1
- package/dist/definitions/components/actions/IconButton.d.ts.map +1 -1
- package/dist/definitions/components/containers/PressableBox.d.ts +1 -0
- package/dist/definitions/components/containers/PressableBox.d.ts.map +1 -1
- package/dist/definitions/components/containers/PressableBox.stories.d.ts +1 -0
- package/dist/definitions/components/containers/PressableBox.stories.d.ts.map +1 -1
- package/dist/definitions/components/containers/variants.d.ts +14 -0
- package/dist/definitions/components/containers/variants.d.ts.map +1 -1
- package/dist/definitions/components/feedback/Message.d.ts +1 -1
- package/dist/definitions/components/forms/InputText.d.ts.map +1 -1
- package/dist/definitions/components/primitives/Icon.d.ts +1 -2
- package/dist/definitions/components/primitives/Icon.d.ts.map +1 -1
- package/dist/definitions/components/primitives/Link.d.ts +2 -2
- package/dist/definitions/components/primitives/Link.d.ts.map +1 -1
- package/dist/definitions/components/primitives/Link.stories.d.ts +1 -1
- package/dist/definitions/components/primitives/Link.stories.d.ts.map +1 -1
- package/dist/definitions/components/story-components/Story.d.ts +3 -2
- package/dist/definitions/components/story-components/Story.d.ts.map +1 -1
- package/dist/definitions/components/story-components/StoryTitle.d.ts +2 -2
- package/dist/definitions/components/typography/Typography.d.ts +2 -2
- package/dist/definitions/components/typography/Typography.d.ts.map +1 -1
- package/dist/definitions/components/typography/Typography.stories.d.ts +1 -1
- package/dist/definitions/config/colorScales.d.ts +14 -2
- package/dist/definitions/config/colorScales.d.ts.map +1 -1
- package/dist/definitions/config/createAlouetteTokens.d.ts +31 -29
- package/dist/definitions/config/createAlouetteTokens.d.ts.map +1 -1
- package/dist/definitions/config/defaultColorScales.d.ts +3 -0
- package/dist/definitions/config/defaultColorScales.d.ts.map +1 -0
- package/dist/definitions/config/themes.d.ts +133 -133
- package/dist/definitions/config/themes.d.ts.map +1 -1
- package/dist/definitions/config/utils/groupTokens.d.ts +0 -1
- package/dist/definitions/config/utils/groupTokens.d.ts.map +1 -1
- package/dist/definitions/createAlouetteTamagui.d.ts +2 -1
- package/dist/definitions/createAlouetteTamagui.d.ts.map +1 -1
- package/dist/index-browser.es.js +68 -74
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-node20.cjs +68 -74
- package/dist/index-node20.cjs.map +1 -1
- package/dist/index-node20.mjs +68 -74
- package/dist/index-node20.mjs.map +1 -1
- package/dist/index-react-native.cjs.js +68 -74
- package/dist/index-react-native.cjs.js.map +1 -1
- package/dist/index-react-native.es.js +68 -74
- package/dist/index-react-native.es.js.map +1 -1
- package/package.json +5 -5
- package/src/components/actions/Button.stories.tsx +49 -60
- package/src/components/actions/Button.tsx +3 -47
- package/src/components/actions/IconButton.tsx +1 -22
- package/src/components/containers/Box.stories.tsx +3 -3
- package/src/components/containers/PressableBox.stories.tsx +54 -2
- package/src/components/containers/PressableBox.tsx +29 -0
- package/src/components/containers/variants.ts +9 -1
- package/src/components/feedback/Message.tsx +2 -2
- package/src/components/forms/InputText.tsx +0 -1
- package/src/components/primitives/Icon.tsx +2 -3
- package/src/components/primitives/Link.stories.tsx +1 -3
- package/src/components/primitives/Link.tsx +13 -0
- package/src/components/primitives/stacks.stories.tsx +10 -10
- package/src/components/story-components/Story.tsx +18 -8
- package/src/components/typography/Typography.tsx +5 -8
- package/src/config/colorScales.ts +43 -88
- package/src/config/createAlouetteTokens.ts +4 -2
- package/src/config/defaultColorScales.ts +149 -0
- package/src/config/themes.stories.tsx +2 -2
- package/src/config/themes.ts +70 -101
- package/src/config/utils/groupTokens.ts +12 -15
- 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
|
-
|
|
115
|
-
|
|
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
|
|
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.
|
|
204
|
+
backgroundColor = mode === "dark" ? alouetteTokens.color.blackBackground : alouetteTokens.color.whiteBackground;
|
|
201
205
|
}
|
|
202
206
|
if (!textColor) {
|
|
203
|
-
textColor = mode === "dark" ? alouetteTokens.color.
|
|
207
|
+
textColor = mode === "dark" ? alouetteTokens.color.whiteText : alouetteTokens.color.blackText;
|
|
204
208
|
}
|
|
205
|
-
|
|
206
|
-
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
borderColor: getColor(
|
|
224
|
-
|
|
225
|
-
|
|
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(
|
|
230
|
-
"interactive.linkTextColor:focus": getColor(
|
|
231
|
-
"interactive.linkTextColor:press": getColor(
|
|
232
|
-
"interactive.linkTextColor:disabled": getColor(
|
|
233
|
-
"interactive.contained.backgroundColor": getColor(
|
|
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(
|
|
236
|
-
"interactive.elevated.borderColor":
|
|
231
|
+
"interactive.elevated.shadowColor": getColor(8),
|
|
232
|
+
"interactive.elevated.borderColor": getColor(1),
|
|
237
233
|
"interactive.outlined.backgroundColor": backgroundColor,
|
|
238
|
-
"interactive.outlined.borderColor": getColor(
|
|
239
|
-
"interactive.contained.backgroundColor:hover": getColor(
|
|
240
|
-
"interactive.elevated.backgroundColor:hover": getColor(
|
|
241
|
-
"interactive.elevated.borderColor:hover":
|
|
242
|
-
"interactive.outlined.backgroundColor:hover": getColor(
|
|
243
|
-
"interactive.outlined.borderColor:hover": getColor(
|
|
244
|
-
"interactive.contained.backgroundColor:focus": getColor(
|
|
245
|
-
"interactive.elevated.backgroundColor:focus": getColor(
|
|
246
|
-
"interactive.elevated.borderColor:focus":
|
|
247
|
-
"interactive.outlined.backgroundColor:focus": getColor(
|
|
248
|
-
"interactive.outlined.borderColor:focus": getColor(
|
|
249
|
-
"interactive.contained.backgroundColor:press": getColor(
|
|
250
|
-
"interactive.elevated.backgroundColor:press": getColor(
|
|
251
|
-
"interactive.elevated.borderColor:press":
|
|
252
|
-
"interactive.outlined.backgroundColor:press": getColor(
|
|
253
|
-
"interactive.outlined.borderColor:press": getColor(
|
|
254
|
-
"interactive.contained.backgroundColor:disabled": getColor(
|
|
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(
|
|
257
|
-
"interactive.elevated.borderColor:disabled": getColor(
|
|
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(
|
|
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(
|
|
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(
|
|
266
|
-
"interactive.forms.backgroundColor:press": getColor(
|
|
267
|
-
"interactive.forms.borderColor": getColor(
|
|
268
|
-
"interactive.forms.borderColor:
|
|
269
|
-
"interactive.forms.borderColor:
|
|
270
|
-
"interactive.forms.borderColor:
|
|
271
|
-
"interactive.forms.borderColor:
|
|
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
|
-
|
|
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: "#
|
|
304
|
-
2: "#
|
|
305
|
-
3: "#
|
|
306
|
-
4: "#
|
|
307
|
-
5: "#
|
|
308
|
-
6: "#
|
|
309
|
-
7: "#
|
|
310
|
-
8: "#
|
|
311
|
-
9: "#
|
|
312
|
-
10: "#
|
|
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
|
-
|
|
315
|
-
1: "#
|
|
316
|
-
2: "#
|
|
317
|
-
3: "#
|
|
318
|
-
4: "#
|
|
319
|
-
5: "#
|
|
320
|
-
6: "#
|
|
321
|
-
7: "#
|
|
322
|
-
8: "#
|
|
323
|
-
9: "#
|
|
324
|
-
10: "#
|
|
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
|
-
|
|
327
|
-
1: "#
|
|
328
|
-
2: "#
|
|
329
|
-
3: "#
|
|
330
|
-
4: "#
|
|
331
|
-
5: "#
|
|
332
|
-
6: "#
|
|
333
|
-
7: "#
|
|
334
|
-
8: "#
|
|
335
|
-
9: "#
|
|
336
|
-
10: "#
|
|
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
|
-
|
|
339
|
-
1: "#
|
|
340
|
-
2: "#
|
|
341
|
-
3: "#
|
|
342
|
-
4: "#
|
|
343
|
-
5: "#
|
|
344
|
-
6: "#
|
|
345
|
-
7: "#
|
|
346
|
-
8: "#
|
|
347
|
-
9: "#
|
|
348
|
-
10: "#
|
|
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
|
-
|
|
351
|
-
1: "#
|
|
352
|
-
2: "#
|
|
353
|
-
3: "#
|
|
354
|
-
4: "#
|
|
355
|
-
5: "#
|
|
356
|
-
6: "#
|
|
357
|
-
7: "#
|
|
358
|
-
8: "#
|
|
359
|
-
9: "#
|
|
360
|
-
10: "#
|
|
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
|
-
|
|
363
|
-
1: "#
|
|
364
|
-
2: "#
|
|
365
|
-
3: "#
|
|
366
|
-
4: "#
|
|
367
|
-
5: "#
|
|
368
|
-
6: "#
|
|
369
|
-
7: "#
|
|
370
|
-
8: "#
|
|
371
|
-
9: "#
|
|
372
|
-
10: "#
|
|
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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"}
|