alouette 6.0.0 → 7.0.0-beta.1

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 (240) hide show
  1. package/.editorconfig +0 -4
  2. package/.eslintrc.json +5 -0
  3. package/.yo-rc.json +11 -0
  4. package/LICENSE +2 -15
  5. package/README.md +25 -7
  6. package/dist/createAlouetteTamagui-browser.es.js +330 -0
  7. package/dist/createAlouetteTamagui-browser.es.js.map +1 -0
  8. package/dist/createAlouetteTamagui-node18.mjs +330 -0
  9. package/dist/createAlouetteTamagui-node18.mjs.map +1 -0
  10. package/dist/createAlouetteTamagui-react-native.cjs.js +334 -0
  11. package/dist/createAlouetteTamagui-react-native.cjs.js.map +1 -0
  12. package/dist/index-browser.es.js +404 -0
  13. package/dist/index-browser.es.js.map +1 -0
  14. package/dist/index-node18.mjs +404 -0
  15. package/dist/index-node18.mjs.map +1 -0
  16. package/dist/index-react-native.cjs.js +419 -0
  17. package/dist/index-react-native.cjs.js.map +1 -0
  18. package/dist/phosphor-icons-browser.es.js +2497 -0
  19. package/dist/phosphor-icons-browser.es.js.map +1 -0
  20. package/dist/phosphor-icons-node18.mjs +2497 -0
  21. package/dist/phosphor-icons-node18.mjs.map +1 -0
  22. package/dist/phosphor-icons-react-native.cjs.js +4998 -0
  23. package/dist/phosphor-icons-react-native.cjs.js.map +1 -0
  24. package/package.json +90 -73
  25. package/phosphor-icons.js +1 -0
  26. package/rollup.config.mjs +8 -0
  27. package/scripts/generate-phosphor-icons-legacy-withcopy.mjs +64 -0
  28. package/scripts/generate-phosphor-icons.mjs +51 -0
  29. package/src/.eslintrc.json +32 -0
  30. package/src/components/actions/Button.stories.tsx +89 -0
  31. package/src/components/actions/Button.tsx +71 -0
  32. package/src/components/actions/IconButton.stories.tsx +63 -0
  33. package/src/components/actions/IconButton.tsx +40 -0
  34. package/src/components/containers/Frame.stories.tsx +104 -0
  35. package/src/components/containers/Frame.tsx +12 -0
  36. package/src/components/containers/Pressable.stories.tsx +30 -0
  37. package/src/components/containers/Pressable.tsx +9 -0
  38. package/src/components/containers/variants.ts +93 -0
  39. package/src/components/feedback/FeedbackIcon.tsx +25 -0
  40. package/src/components/feedback/Message.stories.tsx +63 -0
  41. package/src/components/feedback/Message.tsx +74 -0
  42. package/src/components/forms/InputText.stories.tsx +72 -0
  43. package/src/components/forms/InputText.tsx +33 -0
  44. package/src/components/primitives/Icon.stories.tsx +18 -0
  45. package/src/components/primitives/Icon.tsx +46 -0
  46. package/src/components/primitives/ScrollView.ts +26 -0
  47. package/src/components/primitives/View.stories.tsx +24 -0
  48. package/src/components/primitives/View.ts +5 -0
  49. package/src/components/primitives/createVariants.ts +109 -0
  50. package/src/components/primitives/stacks.stories.tsx +75 -0
  51. package/src/components/primitives/stacks.ts +41 -0
  52. package/src/components/story-components/Story.tsx +80 -0
  53. package/src/components/story-components/StoryContainer.tsx +20 -0
  54. package/src/components/story-components/StoryDecorator.tsx +8 -0
  55. package/src/components/story-components/StoryGrid.tsx +90 -0
  56. package/src/components/story-components/StoryTitle.tsx +19 -0
  57. package/src/components/story-components/WithTamaguiConfig.tsx +15 -0
  58. package/src/components/typography/Typography.stories.tsx +48 -0
  59. package/src/components/typography/Typography.tsx +78 -0
  60. package/src/components/windowSize/SwitchBreakpoints.stories.tsx +60 -0
  61. package/src/components/windowSize/SwitchBreakpoints.tsx +59 -0
  62. package/src/components/windowSize/__snapshots__/SwitchBreakpoints.stories.tsx.snap +1032 -0
  63. package/src/components/windowSize/__snapshots_web__/SwitchBreakpoints.stories.tsx.snap +402 -0
  64. package/src/components/windowSize/useCurrentBreakpointName.ts +33 -0
  65. package/src/config/Breakpoints.ts +33 -0
  66. package/src/config/animations.ts +16 -0
  67. package/src/config/animations.web.ts +6 -0
  68. package/src/config/colorScales.ts +115 -0
  69. package/src/config/createAlouetteFonts.ts +70 -0
  70. package/src/config/createAlouetteTokens.ts +81 -0
  71. package/src/config/media.ts +9 -0
  72. package/src/config/themes.stories.tsx +63 -0
  73. package/src/config/themes.ts +111 -0
  74. package/src/config/tokens.stories.tsx +86 -0
  75. package/src/config/utils/groupTokens.ts +32 -0
  76. package/src/core/AlouetteDecorator.tsx +9 -0
  77. package/src/core/AlouetteProvider.tsx +19 -0
  78. package/src/createAlouetteTamagui.ts +37 -0
  79. package/src/index.ts +15 -0
  80. package/src/phosphor-icons.cjs +1254 -0
  81. package/src/phosphor-icons.d.ts +2503 -0
  82. package/src/phosphor-icons.ts +2498 -0
  83. package/src/typings/bundler.d.ts +10 -0
  84. package/tsconfig.json +20 -0
  85. package/.commitrc.js +0 -1
  86. package/.eslintignore +0 -2
  87. package/.eslintrc.js +0 -1
  88. package/.npmignore +0 -26
  89. package/.travis.yml +0 -10
  90. package/AUTHORS +0 -2
  91. package/CHANGELOG.md +0 -70
  92. package/HtmlRenderer.js +0 -4
  93. package/index.js +0 -6
  94. package/jsdoc.conf.json +0 -5
  95. package/lib-browsers/HtmlRenderer.js +0 -262
  96. package/lib-browsers/HtmlRenderer.js.map +0 -1
  97. package/lib-browsers/ParsedError.js +0 -70
  98. package/lib-browsers/ParsedError.js.map +0 -1
  99. package/lib-browsers/StackTrace.js +0 -43
  100. package/lib-browsers/StackTrace.js.map +0 -1
  101. package/lib-browsers/StackTraceItem.js +0 -92
  102. package/lib-browsers/StackTraceItem.js.map +0 -1
  103. package/lib-browsers/index.js +0 -131
  104. package/lib-browsers/index.js.map +0 -1
  105. package/lib-browsers-dev/HtmlRenderer.js +0 -262
  106. package/lib-browsers-dev/HtmlRenderer.js.map +0 -1
  107. package/lib-browsers-dev/ParsedError.js +0 -94
  108. package/lib-browsers-dev/ParsedError.js.map +0 -1
  109. package/lib-browsers-dev/StackTrace.js +0 -43
  110. package/lib-browsers-dev/StackTrace.js.map +0 -1
  111. package/lib-browsers-dev/StackTraceItem.js +0 -92
  112. package/lib-browsers-dev/StackTraceItem.js.map +0 -1
  113. package/lib-browsers-dev/index.js +0 -131
  114. package/lib-browsers-dev/index.js.map +0 -1
  115. package/lib-node6/HtmlRenderer.js +0 -240
  116. package/lib-node6/HtmlRenderer.js.map +0 -1
  117. package/lib-node6/ParsedError.js +0 -47
  118. package/lib-node6/ParsedError.js.map +0 -1
  119. package/lib-node6/StackTrace.js +0 -25
  120. package/lib-node6/StackTrace.js.map +0 -1
  121. package/lib-node6/StackTraceItem.js +0 -75
  122. package/lib-node6/StackTraceItem.js.map +0 -1
  123. package/lib-node6/index.js +0 -177
  124. package/lib-node6/index.js.map +0 -1
  125. package/lib-node6-dev/HtmlRenderer.js +0 -240
  126. package/lib-node6-dev/HtmlRenderer.js.map +0 -1
  127. package/lib-node6-dev/ParsedError.js +0 -72
  128. package/lib-node6-dev/ParsedError.js.map +0 -1
  129. package/lib-node6-dev/StackTrace.js +0 -25
  130. package/lib-node6-dev/StackTrace.js.map +0 -1
  131. package/lib-node6-dev/StackTraceItem.js +0 -75
  132. package/lib-node6-dev/StackTraceItem.js.map +0 -1
  133. package/lib-node6-dev/index.js +0 -177
  134. package/lib-node6-dev/index.js.map +0 -1
  135. package/lib-node7/HtmlRenderer.js +0 -240
  136. package/lib-node7/HtmlRenderer.js.map +0 -1
  137. package/lib-node7/ParsedError.js +0 -47
  138. package/lib-node7/ParsedError.js.map +0 -1
  139. package/lib-node7/StackTrace.js +0 -25
  140. package/lib-node7/StackTrace.js.map +0 -1
  141. package/lib-node7/StackTraceItem.js +0 -75
  142. package/lib-node7/StackTraceItem.js.map +0 -1
  143. package/lib-node7/index.js +0 -177
  144. package/lib-node7/index.js.map +0 -1
  145. package/lib-node7-dev/HtmlRenderer.js +0 -240
  146. package/lib-node7-dev/HtmlRenderer.js.map +0 -1
  147. package/lib-node7-dev/ParsedError.js +0 -72
  148. package/lib-node7-dev/ParsedError.js.map +0 -1
  149. package/lib-node7-dev/StackTrace.js +0 -25
  150. package/lib-node7-dev/StackTrace.js.map +0 -1
  151. package/lib-node7-dev/StackTraceItem.js +0 -75
  152. package/lib-node7-dev/StackTraceItem.js.map +0 -1
  153. package/lib-node7-dev/index.js +0 -177
  154. package/lib-node7-dev/index.js.map +0 -1
  155. package/lib-older-node/HtmlRenderer.js +0 -262
  156. package/lib-older-node/HtmlRenderer.js.map +0 -1
  157. package/lib-older-node/ParsedError.js +0 -70
  158. package/lib-older-node/ParsedError.js.map +0 -1
  159. package/lib-older-node/StackTrace.js +0 -43
  160. package/lib-older-node/StackTrace.js.map +0 -1
  161. package/lib-older-node/StackTraceItem.js +0 -92
  162. package/lib-older-node/StackTraceItem.js.map +0 -1
  163. package/lib-older-node/index.js +0 -177
  164. package/lib-older-node/index.js.map +0 -1
  165. package/lib-older-node-dev/HtmlRenderer.js +0 -262
  166. package/lib-older-node-dev/HtmlRenderer.js.map +0 -1
  167. package/lib-older-node-dev/ParsedError.js +0 -94
  168. package/lib-older-node-dev/ParsedError.js.map +0 -1
  169. package/lib-older-node-dev/StackTrace.js +0 -43
  170. package/lib-older-node-dev/StackTrace.js.map +0 -1
  171. package/lib-older-node-dev/StackTraceItem.js +0 -92
  172. package/lib-older-node-dev/StackTraceItem.js.map +0 -1
  173. package/lib-older-node-dev/index.js +0 -177
  174. package/lib-older-node-dev/index.js.map +0 -1
  175. package/lib-webpack/HtmlRenderer.js +0 -247
  176. package/lib-webpack/HtmlRenderer.js.map +0 -1
  177. package/lib-webpack/ParsedError.js +0 -64
  178. package/lib-webpack/ParsedError.js.map +0 -1
  179. package/lib-webpack/StackTrace.js +0 -37
  180. package/lib-webpack/StackTrace.js.map +0 -1
  181. package/lib-webpack/StackTraceItem.js +0 -86
  182. package/lib-webpack/StackTraceItem.js.map +0 -1
  183. package/lib-webpack/index.js +0 -113
  184. package/lib-webpack/index.js.map +0 -1
  185. package/lib-webpack-dev/HtmlRenderer.js +0 -247
  186. package/lib-webpack-dev/HtmlRenderer.js.map +0 -1
  187. package/lib-webpack-dev/ParsedError.js +0 -81
  188. package/lib-webpack-dev/ParsedError.js.map +0 -1
  189. package/lib-webpack-dev/StackTrace.js +0 -37
  190. package/lib-webpack-dev/StackTrace.js.map +0 -1
  191. package/lib-webpack-dev/StackTraceItem.js +0 -86
  192. package/lib-webpack-dev/StackTraceItem.js.map +0 -1
  193. package/lib-webpack-dev/index.js +0 -113
  194. package/lib-webpack-dev/index.js.map +0 -1
  195. package/lib-webpack-modern-browsers/HtmlRenderer.js +0 -226
  196. package/lib-webpack-modern-browsers/HtmlRenderer.js.map +0 -1
  197. package/lib-webpack-modern-browsers/ParsedError.js +0 -43
  198. package/lib-webpack-modern-browsers/ParsedError.js.map +0 -1
  199. package/lib-webpack-modern-browsers/StackTrace.js +0 -23
  200. package/lib-webpack-modern-browsers/StackTrace.js.map +0 -1
  201. package/lib-webpack-modern-browsers/StackTraceItem.js +0 -69
  202. package/lib-webpack-modern-browsers/StackTraceItem.js.map +0 -1
  203. package/lib-webpack-modern-browsers/index.js +0 -113
  204. package/lib-webpack-modern-browsers/index.js.map +0 -1
  205. package/lib-webpack-modern-browsers-dev/HtmlRenderer.js +0 -226
  206. package/lib-webpack-modern-browsers-dev/HtmlRenderer.js.map +0 -1
  207. package/lib-webpack-modern-browsers-dev/ParsedError.js +0 -57
  208. package/lib-webpack-modern-browsers-dev/ParsedError.js.map +0 -1
  209. package/lib-webpack-modern-browsers-dev/StackTrace.js +0 -23
  210. package/lib-webpack-modern-browsers-dev/StackTrace.js.map +0 -1
  211. package/lib-webpack-modern-browsers-dev/StackTraceItem.js +0 -69
  212. package/lib-webpack-modern-browsers-dev/StackTraceItem.js.map +0 -1
  213. package/lib-webpack-modern-browsers-dev/index.js +0 -113
  214. package/lib-webpack-modern-browsers-dev/index.js.map +0 -1
  215. package/lib-webpack-node7/HtmlRenderer.js +0 -222
  216. package/lib-webpack-node7/HtmlRenderer.js.map +0 -1
  217. package/lib-webpack-node7/ParsedError.js +0 -43
  218. package/lib-webpack-node7/ParsedError.js.map +0 -1
  219. package/lib-webpack-node7/StackTrace.js +0 -21
  220. package/lib-webpack-node7/StackTrace.js.map +0 -1
  221. package/lib-webpack-node7/StackTraceItem.js +0 -69
  222. package/lib-webpack-node7/StackTraceItem.js.map +0 -1
  223. package/lib-webpack-node7/index.js +0 -157
  224. package/lib-webpack-node7/index.js.map +0 -1
  225. package/lib-webpack-node7-dev/HtmlRenderer.js +0 -222
  226. package/lib-webpack-node7-dev/HtmlRenderer.js.map +0 -1
  227. package/lib-webpack-node7-dev/ParsedError.js +0 -57
  228. package/lib-webpack-node7-dev/ParsedError.js.map +0 -1
  229. package/lib-webpack-node7-dev/StackTrace.js +0 -21
  230. package/lib-webpack-node7-dev/StackTrace.js.map +0 -1
  231. package/lib-webpack-node7-dev/StackTraceItem.js +0 -69
  232. package/lib-webpack-node7-dev/StackTraceItem.js.map +0 -1
  233. package/lib-webpack-node7-dev/index.js +0 -157
  234. package/lib-webpack-node7-dev/index.js.map +0 -1
  235. package/src/HtmlRenderer.js +0 -231
  236. package/src/ParsedError.js +0 -44
  237. package/src/StackTrace.js +0 -21
  238. package/src/StackTraceItem.js +0 -71
  239. package/src/index.js +0 -160
  240. package/yarn.lock +0 -3680
package/.editorconfig CHANGED
@@ -11,7 +11,3 @@ end_of_line = lf
11
11
  charset = utf-8
12
12
  trim_trailing_whitespace = true
13
13
  insert_final_newline = true
14
-
15
- # Tab indentation (no size specified)
16
- [Makefile, *.mk]
17
- indent_style = tab
package/.eslintrc.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "root": true,
3
+ "extends": ["@pob/eslint-config/root-module"],
4
+ "ignorePatterns": ["*.d.ts", "/dist"]
5
+ }
package/.yo-rc.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "pob": {
3
+ "lib": {
4
+ "documentation": false,
5
+ "testing": {}
6
+ },
7
+ "project": {
8
+ "type": "lib"
9
+ }
10
+ }
11
+ }
package/LICENSE CHANGED
@@ -1,15 +1,2 @@
1
- Copyright (c) 2014-2016 Christophe Hurpeau <christophe@hurpeau.com> (http://christophe.hurpeau.com/)
2
-
3
- Permission to use, copy, modify, and/or distribute this software for
4
- any purpose with or without fee is hereby granted, provided that the
5
- above copyright notice and this permission notice appear in all
6
- copies.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
9
- WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
10
- WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
11
- AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12
- DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
13
- PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
14
- TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- PERFORMANCE OF THIS SOFTWARE.
1
+ Copyright (c) 2024 Christophe Hurpeau <302891+christophehurpeau@users.noreply.github.com> (https://christophe.hurpeau.com)
2
+ All rights reserved.
package/README.md CHANGED
@@ -1,11 +1,29 @@
1
- # alouette [![NPM version][npm-image]][npm-url]
1
+ <h3 align="center">
2
+ alouette
3
+ </h3>
2
4
 
3
- ## Deprecated
5
+ <p align="center">
6
+ tamagui-based design system with configurable defaults
7
+ </p>
4
8
 
5
- use instead:
9
+ <p align="center">
10
+ </p>
6
11
 
7
- - [source-map-support](https://www.npmjs.com/package/source-map-support) for node to display stack traces
8
- - [error-html](https://www.npmjs.com/package/error-html) to render an error in html with support of source maps
12
+ ## Install
9
13
 
10
- [npm-image]: https://img.shields.io/npm/v/alouette.svg?style=flat-square
11
- [npm-url]: https://npmjs.org/package/alouette
14
+ ```bash
15
+ npm install --save alouette
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ > tamagui.config.ts
21
+
22
+ ```ts
23
+ import {
24
+ createAlouetteTamagui,
25
+ defaultColorScales,
26
+ } from "alouette/createAlouetteTamagui";
27
+
28
+ export default createAlouetteTamagui({ colorScales: defaultColorScales });
29
+ ```
@@ -0,0 +1,330 @@
1
+ import { createFont, createTokens, createTamagui } from '@tamagui/core';
2
+ import { createAnimations } from '@tamagui/animations-react-native';
3
+ import { createMedia } from '@tamagui/react-native-media-driver';
4
+
5
+ const animations = createAnimations({
6
+ fast: {
7
+ type: "timing",
8
+ duration: 100,
9
+ damping: 20,
10
+ stiffness: 250
11
+ },
12
+ formElement: {
13
+ type: "timing",
14
+ duration: 600,
15
+ damping: 20,
16
+ stiffness: 250
17
+ }
18
+ });
19
+
20
+ const defaultHeadingFontSizes = {
21
+ xl: 48,
22
+ lg: 40,
23
+ md: 32,
24
+ sm: 24,
25
+ xs: 18
26
+ };
27
+ const defaultBodyFontSizes = { xl: 24, lg: 18, md: 16, sm: 14, xs: 12 };
28
+ const roundWith1Precision = (value) => Math.round(value * 10) / 10;
29
+ const createAlouetteFonts = ({
30
+ headingFontFamily = "Inter",
31
+ headingFontSizes = defaultHeadingFontSizes,
32
+ bodyFontFamily = "Inter",
33
+ bodyFontSizes = defaultBodyFontSizes
34
+ } = {}) => ({
35
+ heading: createFont({
36
+ family: headingFontFamily,
37
+ weight: {
38
+ regular: "400",
39
+ bold: "700",
40
+ black: "900"
41
+ },
42
+ face: {
43
+ 400: { normal: headingFontFamily + "Regular" },
44
+ 700: { normal: headingFontFamily + "Bold" },
45
+ 900: { normal: headingFontFamily + "Black" }
46
+ },
47
+ size: headingFontSizes,
48
+ lineHeight: {
49
+ xl: roundWith1Precision(1.1 * headingFontSizes.xl),
50
+ lg: roundWith1Precision(1.1 * headingFontSizes.lg),
51
+ md: roundWith1Precision(1.2 * headingFontSizes.md),
52
+ sm: roundWith1Precision(1.3 * headingFontSizes.sm),
53
+ xs: roundWith1Precision(1.3 * headingFontSizes.xs)
54
+ }
55
+ }),
56
+ body: createFont({
57
+ family: bodyFontFamily,
58
+ weight: {
59
+ regular: "400",
60
+ bold: "700",
61
+ black: "900"
62
+ },
63
+ face: {
64
+ 400: { normal: bodyFontFamily + "Regular" },
65
+ 700: { normal: bodyFontFamily + "Bold" },
66
+ 900: { normal: bodyFontFamily + "Black" }
67
+ },
68
+ size: bodyFontSizes,
69
+ lineHeight: {
70
+ xl: roundWith1Precision(1.4 * bodyFontSizes.xl),
71
+ lg: roundWith1Precision(1.4 * bodyFontSizes.lg),
72
+ md: roundWith1Precision(1.4 * bodyFontSizes.md),
73
+ sm: roundWith1Precision(1.4 * bodyFontSizes.sm),
74
+ xs: roundWith1Precision(1.4 * bodyFontSizes.xs)
75
+ }
76
+ })
77
+ });
78
+
79
+ const Breakpoints = {
80
+ /**
81
+ * min-width: 0
82
+ */
83
+ BASE: 0,
84
+ /**
85
+ * min-width: 480px
86
+ */
87
+ SMALL: 480,
88
+ /**
89
+ * min-width: 768px
90
+ */
91
+ MEDIUM: 768,
92
+ /**
93
+ * min-width: 1024px
94
+ */
95
+ LARGE: 1024,
96
+ /**
97
+ * min-width: 1280px
98
+ */
99
+ WIDE: 1280
100
+ };
101
+
102
+ const media = createMedia({
103
+ small: { minWidth: Breakpoints.SMALL },
104
+ medium: { minWidth: Breakpoints.MEDIUM },
105
+ large: { minWidth: Breakpoints.LARGE },
106
+ wide: { minWidth: Breakpoints.WIDE }
107
+ });
108
+
109
+ const createTheme = (theme) => {
110
+ return theme;
111
+ };
112
+ const createColorTheme = (tokens, colorScaleName, textColor = tokens.color.black, contrastTextColor = tokens.color.white) => {
113
+ const getColor = (scaleNumber) => tokens.color[colorScaleName + `.${scaleNumber}`];
114
+ return {
115
+ mainColor: getColor(6),
116
+ mainTextColor: getColor(9),
117
+ contrastTextColor,
118
+ borderColor: getColor(8),
119
+ "interactive.contained.backgroundColor": getColor(5),
120
+ "interactive.borderColor": getColor(8),
121
+ "interactive.contained.backgroundColor:hover": getColor(4),
122
+ "interactive.outlined.backgroundColor:hover": getColor(1),
123
+ "interactive.borderColor:hover": getColor(7),
124
+ "interactive.contained.backgroundColor:focus": getColor(4),
125
+ "interactive.outlined.backgroundColor:focus": getColor(1),
126
+ "interactive.borderColor:focus": getColor(7),
127
+ "interactive.contained.backgroundColor:press": getColor(2),
128
+ "interactive.outlined.backgroundColor:press": getColor(3),
129
+ "interactive.borderColor:press": getColor(7),
130
+ "interactive.contained.backgroundColor:disabled": tokens.color.disabled,
131
+ "interactive.borderColor:disabled": tokens.color.disabled,
132
+ "interactive.textColor:disabled": tokens.color.contrastDisabled,
133
+ "interactive.forms.textColor": textColor,
134
+ "interactive.forms.backgroundColor": void 0,
135
+ "interactive.forms.backgroundColor:hover": void 0,
136
+ "interactive.forms.backgroundColor:focus": getColor(1),
137
+ "interactive.forms.backgroundColor:press": getColor(3),
138
+ "interactive.forms.borderColor": getColor(10),
139
+ "interactive.forms.borderColor:hover": getColor(7),
140
+ "interactive.forms.borderColor:focus": getColor(7),
141
+ "interactive.forms.borderColor:press": getColor(7),
142
+ "interactive.forms.borderColor:disabled": tokens.color.disabled
143
+ };
144
+ };
145
+ const createAlouetteThemes = (tokens) => ({
146
+ light: createTheme({
147
+ backgroundColor: tokens.color.white,
148
+ textColor: tokens.color.black
149
+ }),
150
+ light_info: createColorTheme(tokens, "info"),
151
+ light_success: createColorTheme(tokens, "success"),
152
+ light_warning: createColorTheme(tokens, "warning"),
153
+ light_danger: createColorTheme(tokens, "danger"),
154
+ light_primary: createColorTheme(tokens, "primary"),
155
+ dark: createTheme({
156
+ backgroundColor: tokens.color.black,
157
+ textColor: tokens.color.white
158
+ }),
159
+ dark_info: createColorTheme(
160
+ tokens,
161
+ "info",
162
+ tokens.color.black,
163
+ tokens.color.white
164
+ ),
165
+ dark_success: createColorTheme(
166
+ tokens,
167
+ "success",
168
+ tokens.color.black,
169
+ tokens.color.white
170
+ ),
171
+ dark_warning: createColorTheme(
172
+ tokens,
173
+ "warning",
174
+ tokens.color.black,
175
+ tokens.color.white
176
+ ),
177
+ dark_danger: createColorTheme(
178
+ tokens,
179
+ "danger",
180
+ tokens.color.black,
181
+ tokens.color.white
182
+ ),
183
+ dark_primary: createColorTheme(
184
+ tokens,
185
+ "primary",
186
+ tokens.color.black,
187
+ tokens.color.white
188
+ )
189
+ });
190
+
191
+ const createAlouetteSizes = (spacing, negative) => {
192
+ const MAX_SIZE = 64;
193
+ const sizes = {};
194
+ for (let size = 0; size <= MAX_SIZE; size++) {
195
+ sizes[negative ? `-${size}` : `${size}`] = size * spacing;
196
+ }
197
+ return sizes;
198
+ };
199
+ const transformColorScalesToTokens = (colorScales) => {
200
+ return Object.fromEntries(
201
+ Object.entries(colorScales).flatMap(([colorName, colorScale]) => {
202
+ return Object.entries(colorScale).map(([scaleNumber, colorValue]) => {
203
+ return [`${colorName}.${scaleNumber}`, colorValue];
204
+ });
205
+ })
206
+ );
207
+ };
208
+ const createAlouetteTokens = (colorScales, { spacing = 4 } = {}) => {
209
+ const sizes = createAlouetteSizes(spacing, false);
210
+ const negativeSizes = createAlouetteSizes(-spacing, true);
211
+ return createTokens({
212
+ color: {
213
+ black: "#000000",
214
+ white: "#ffffff",
215
+ disabled: colorScales.grayscale[3],
216
+ contrastDisabled: colorScales.grayscale[7],
217
+ ...transformColorScalesToTokens(colorScales)
218
+ },
219
+ radius: {
220
+ ...sizes,
221
+ xs: spacing * 2,
222
+ sm: spacing * 4,
223
+ md: spacing * 8
224
+ },
225
+ space: {
226
+ ...sizes,
227
+ ...negativeSizes,
228
+ xs: spacing * 2,
229
+ sm: spacing * 4,
230
+ md: spacing * 8
231
+ },
232
+ size: { ...sizes },
233
+ zIndex: {}
234
+ });
235
+ };
236
+
237
+ const createColorScale = (colorScale) => colorScale;
238
+ const defaultColorScales = {
239
+ grayscale: createColorScale({
240
+ 1: "#faf9f8",
241
+ 2: "#f4f3ef",
242
+ 3: "#ebe9e5",
243
+ 4: "#dedad2",
244
+ 5: "#d1cdc5",
245
+ 6: "#bab8ae",
246
+ 7: "#aeaba3",
247
+ 8: "#9c9a92",
248
+ 9: "#8e8c83",
249
+ 10: "#74726a"
250
+ }),
251
+ success: createColorScale({
252
+ 1: "#f0f9f3",
253
+ 2: "#d4f0d4",
254
+ 3: "#a8e6a8",
255
+ 4: "#7edc7e",
256
+ 5: "#54d254",
257
+ 6: "#2ac82a",
258
+ 7: "#00be00",
259
+ 8: "#00b400",
260
+ 9: "#00aa00",
261
+ 10: "#009200"
262
+ }),
263
+ info: createColorScale({
264
+ 1: "#f0f9ff",
265
+ 2: "#d4f0ff",
266
+ 3: "#a8e6ff",
267
+ 4: "#7edcff",
268
+ 5: "#54d2ff",
269
+ 6: "#2ac8ff",
270
+ 7: "#00beff",
271
+ 8: "#00b4ff",
272
+ 9: "#00aaff",
273
+ 10: "#0092ff"
274
+ }),
275
+ warning: createColorScale({
276
+ 1: "#fff9f0",
277
+ 2: "#fff0d4",
278
+ 3: "#ffe6a8",
279
+ 4: "#ffdc7e",
280
+ 5: "#ffd254",
281
+ 6: "#ffc82a",
282
+ 7: "#ffbe00",
283
+ 8: "#ffb400",
284
+ 9: "#ffaa00",
285
+ 10: "#ff9200"
286
+ }),
287
+ danger: createColorScale({
288
+ 1: "#fff0f0",
289
+ 2: "#ffd4d4",
290
+ 3: "#ffaaaa",
291
+ 4: "#ff7e7e",
292
+ 5: "#ff5454",
293
+ 6: "#ff2a2a",
294
+ 7: "#ff0000",
295
+ 8: "#f40000",
296
+ 9: "#ea0000",
297
+ 10: "#d20000"
298
+ }),
299
+ primary: createColorScale({
300
+ 1: "#e1f4f6",
301
+ 2: "#b4e2e9",
302
+ 3: "#86cfdc",
303
+ 4: "#60bcd0",
304
+ 5: "#46aeca",
305
+ 6: "#31a1c4",
306
+ 7: "#2994b7",
307
+ 8: "#1e82a6",
308
+ 9: "#1c7193",
309
+ 10: "#125272"
310
+ })
311
+ };
312
+
313
+ const createAlouetteTamagui = (options) => {
314
+ const tokens = createAlouetteTokens(options.colorScales, options.tokens);
315
+ return createTamagui({
316
+ fonts: createAlouetteFonts(options.fonts),
317
+ tokens,
318
+ themes: createAlouetteThemes(tokens),
319
+ media,
320
+ animations,
321
+ settings: {
322
+ allowedStyleValues: "strict",
323
+ autocompleteSpecificTokens: true
324
+ },
325
+ components: ["alouette"]
326
+ });
327
+ };
328
+
329
+ export { createAlouetteTamagui, createColorScale, defaultColorScales };
330
+ //# sourceMappingURL=createAlouetteTamagui-browser.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAlouetteTamagui-browser.es.js","sources":["../src/config/animations.ts","../src/config/createAlouetteFonts.ts","../src/config/Breakpoints.ts","../src/config/media.ts","../src/config/themes.ts","../src/config/createAlouetteTokens.ts","../src/config/colorScales.ts","../src/createAlouetteTamagui.ts"],"sourcesContent":["import { createAnimations } from \"@tamagui/animations-react-native\";\n\nexport const animations = createAnimations({\n fast: {\n type: \"timing\",\n duration: 100,\n damping: 20,\n stiffness: 250,\n },\n formElement: {\n type: \"timing\",\n duration: 600,\n damping: 20,\n stiffness: 250,\n },\n});\n","import { createFont } from \"@tamagui/core\";\n\nconst defaultHeadingFontSizes = {\n xl: 48,\n lg: 40,\n md: 32,\n sm: 24,\n xs: 18,\n};\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 { createMedia } from '@tamagui/react-native-media-driver';\nimport { Breakpoints } from './Breakpoints';\n\nexport const media = createMedia({\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 type { Variable } from \"@tamagui/core\";\nimport { createAlouetteTokens } from \"./createAlouetteTokens\";\nimport { AlouetteColorScaleNames } from \"./colorScales\";\n\ninterface MinimalTheme {\n backgroundColor: Variable;\n textColor: Variable;\n}\n\nconst createTheme = <T extends MinimalTheme>(theme: T): T => {\n return theme;\n};\n\nconst createColorTheme = (\n tokens: ReturnType<typeof createAlouetteTokens>,\n colorScaleName: AlouetteColorScaleNames,\n textColor = tokens.color.black,\n contrastTextColor = tokens.color.white,\n) => {\n const getColor = (scaleNumber: number) =>\n tokens.color[\n (colorScaleName + `.${scaleNumber}`) as keyof typeof tokens.color\n ];\n return {\n mainColor: getColor(6),\n mainTextColor: getColor(9),\n contrastTextColor,\n borderColor: getColor(8),\n\n \"interactive.contained.backgroundColor\": getColor(5),\n \"interactive.borderColor\": getColor(8),\n\n \"interactive.contained.backgroundColor:hover\": getColor(4),\n \"interactive.outlined.backgroundColor:hover\": getColor(1),\n \"interactive.borderColor:hover\": getColor(7),\n\n \"interactive.contained.backgroundColor:focus\": getColor(4),\n \"interactive.outlined.backgroundColor:focus\": getColor(1),\n \"interactive.borderColor:focus\": getColor(7),\n\n \"interactive.contained.backgroundColor:press\": getColor(2),\n \"interactive.outlined.backgroundColor:press\": getColor(3),\n \"interactive.borderColor:press\": getColor(7),\n\n \"interactive.contained.backgroundColor:disabled\": tokens.color.disabled,\n \"interactive.borderColor:disabled\": tokens.color.disabled,\n \"interactive.textColor:disabled\": tokens.color.contrastDisabled,\n\n \"interactive.forms.textColor\": textColor,\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\": tokens.color.disabled,\n };\n};\n\nexport const createAlouetteThemes = (\n tokens: ReturnType<typeof createAlouetteTokens>,\n) =>\n ({\n light: createTheme({\n backgroundColor: tokens.color.white,\n textColor: tokens.color.black,\n }),\n light_info: createColorTheme(tokens, \"info\"),\n light_success: createColorTheme(tokens, \"success\"),\n light_warning: createColorTheme(tokens, \"warning\"),\n light_danger: createColorTheme(tokens, \"danger\"),\n light_primary: createColorTheme(tokens, \"primary\"),\n\n dark: createTheme({\n backgroundColor: tokens.color.black,\n textColor: tokens.color.white,\n }),\n\n dark_info: createColorTheme(\n tokens,\n \"info\",\n tokens.color.black,\n tokens.color.white,\n ),\n dark_success: createColorTheme(\n tokens,\n \"success\",\n tokens.color.black,\n tokens.color.white,\n ),\n dark_warning: createColorTheme(\n tokens,\n \"warning\",\n tokens.color.black,\n tokens.color.white,\n ),\n dark_danger: createColorTheme(\n tokens,\n \"danger\",\n tokens.color.black,\n tokens.color.white,\n ),\n dark_primary: createColorTheme(\n tokens,\n \"primary\",\n tokens.color.black,\n tokens.color.white,\n ),\n }) as const;\n","import { createTokens } from \"@tamagui/core\";\nimport type { IntRange } from \"type-fest\";\nimport type {\n AlouetteColorScaleNames,\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 = <N extends boolean>(\n spacing: number,\n negative: N,\n): N extends true ? AlouetteSizeRecord : NegativeAlouetteSizeRecord => {\n const MAX_SIZE = 64;\n const sizes = {} as Partial<\n N extends true ? AlouetteSizeRecord : NegativeAlouetteSizeRecord\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 ? AlouetteSizeRecord\n : NegativeAlouetteSizeRecord;\n};\n\ntype ColorScaleTokens = {\n [K in AlouetteColorScaleNames as `${K}.${AlouetteColorScaleNumber}`]: string; //(typeof colorScales)[K][AlouetteColorScaleNumber];\n};\n\nconst transformColorScalesToTokens = (\n colorScales: AlouetteColorScales,\n): ColorScaleTokens => {\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;\n};\n\nexport interface AlouetteTokensOptions {\n spacing?: number;\n}\n\nexport const createAlouetteTokens = (\n colorScales: AlouetteColorScales,\n { spacing = 4 }: AlouetteTokensOptions = {},\n) => {\n const sizes = createAlouetteSizes(spacing, false);\n const negativeSizes = createAlouetteSizes(-spacing, true);\n\n return createTokens({\n color: {\n black: \"#000000\",\n white: \"#ffffff\",\n disabled: colorScales.grayscale[3],\n contrastDisabled: colorScales.grayscale[7],\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// 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\n// 10: form border color (default)\n\nexport type AlouetteColorScaleNumber = IntRange<1, 10>;\n\nexport type AlouetteColorScale = { [K in AlouetteColorScaleNumber]: string };\n\nexport const createColorScale = <const T extends AlouetteColorScale>(\n colorScale: T,\n): T => colorScale;\n\nexport type AlouetteColorScaleNames =\n | \"grayscale\"\n | \"success\"\n | \"info\"\n | \"warning\"\n | \"danger\"\n | \"primary\";\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 {\n createAlouetteFonts,\n AlouetteFontsOptions,\n} from \"./config/createAlouetteFonts\";\nimport { media } from \"./config/media\";\nimport { createAlouetteThemes } from \"./config/themes\";\nimport {\n createAlouetteTokens,\n AlouetteTokensOptions,\n} from \"./config/createAlouetteTokens\";\nimport { AlouetteColorScales } from \"./config/colorScales\";\n\ninterface AlouetteTamaguiOptions {\n colorScales: AlouetteColorScales;\n fonts?: AlouetteFontsOptions;\n tokens?: AlouetteTokensOptions;\n}\n\nexport { defaultColorScales, createColorScale } from \"./config/colorScales\";\n\nexport const createAlouetteTamagui = (options: AlouetteTamaguiOptions) => {\n const tokens = createAlouetteTokens(options.colorScales, options.tokens);\n return createTamagui({\n fonts: createAlouetteFonts(options.fonts),\n tokens,\n themes: createAlouetteThemes(tokens),\n media,\n animations,\n settings: {\n allowedStyleValues: \"strict\",\n autocompleteSpecificTokens: true,\n },\n components: [\"alouette\"],\n } as const);\n};\n"],"names":[],"mappings":"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"}