alouette 10.2.0 → 10.3.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 +6 -0
- package/dist/createAlouetteTamagui-browser.es.js +22 -5
- package/dist/createAlouetteTamagui-browser.es.js.map +1 -1
- package/dist/createAlouetteTamagui-node20.cjs +22 -5
- package/dist/createAlouetteTamagui-node20.cjs.map +1 -1
- package/dist/createAlouetteTamagui-node20.mjs +22 -5
- package/dist/createAlouetteTamagui-node20.mjs.map +1 -1
- package/dist/createAlouetteTamagui-react-native.cjs.js +22 -5
- package/dist/createAlouetteTamagui-react-native.cjs.js.map +1 -1
- package/dist/createAlouetteTamagui-react-native.es.js +22 -5
- package/dist/createAlouetteTamagui-react-native.es.js.map +1 -1
- package/dist/definitions/components/actions/Button.d.ts +2 -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 +3 -1
- package/dist/definitions/components/actions/IconButton.d.ts.map +1 -1
- package/dist/definitions/components/actions/IconButton.stories.d.ts.map +1 -1
- package/dist/definitions/components/containers/Box.d.ts +1 -0
- package/dist/definitions/components/containers/Box.d.ts.map +1 -1
- package/dist/definitions/components/containers/Box.stories.d.ts +1 -0
- package/dist/definitions/components/containers/Box.stories.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 +118 -11
- package/dist/definitions/components/containers/variants.d.ts.map +1 -1
- package/dist/definitions/components/feedback/Message.d.ts +1 -0
- package/dist/definitions/components/feedback/Message.d.ts.map +1 -1
- package/dist/definitions/components/forms/InputText.d.ts +2 -0
- package/dist/definitions/components/forms/InputText.d.ts.map +1 -1
- package/dist/definitions/components/forms/InputText.stories.d.ts +1 -0
- package/dist/definitions/components/forms/InputText.stories.d.ts.map +1 -1
- package/dist/definitions/components/primitives/createVariants.d.ts +25 -21
- package/dist/definitions/components/primitives/createVariants.d.ts.map +1 -1
- package/dist/definitions/config/themes.d.ts +294 -70
- package/dist/definitions/config/themes.d.ts.map +1 -1
- package/dist/index-browser.es.js +102 -90
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-node20.cjs +102 -90
- package/dist/index-node20.cjs.map +1 -1
- package/dist/index-node20.mjs +102 -90
- package/dist/index-node20.mjs.map +1 -1
- package/dist/index-react-native.cjs.js +102 -90
- package/dist/index-react-native.cjs.js.map +1 -1
- package/dist/index-react-native.es.js +102 -90
- package/dist/index-react-native.es.js.map +1 -1
- package/package.json +1 -1
- package/src/components/actions/Button.stories.tsx +46 -29
- package/src/components/actions/Button.tsx +30 -4
- package/src/components/actions/IconButton.stories.tsx +31 -8
- package/src/components/actions/IconButton.tsx +53 -6
- package/src/components/containers/variants.ts +27 -16
- package/src/components/feedback/Message.tsx +5 -1
- package/src/components/primitives/createVariants.ts +24 -77
- package/src/config/colorScales.ts +1 -1
- package/src/config/themes.ts +44 -10
package/dist/index-node20.mjs
CHANGED
|
@@ -12,111 +12,67 @@ const fullscreenStyle = {
|
|
|
12
12
|
right: 0,
|
|
13
13
|
bottom: 0
|
|
14
14
|
};
|
|
15
|
-
const
|
|
16
|
-
internalForcedPseudoState,
|
|
17
|
-
disabled,
|
|
18
|
-
interactive
|
|
19
|
-
}) => {
|
|
20
|
-
const prefix = interactive === "text" ? "interactive.forms" : "interactive";
|
|
21
|
-
if (disabled) {
|
|
22
|
-
return {
|
|
23
|
-
borderColor: `$${prefix}.borderColor:disabled`
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
if (process.env.STORYBOOK && internalForcedPseudoState) {
|
|
27
|
-
switch (internalForcedPseudoState) {
|
|
28
|
-
case "hover":
|
|
29
|
-
return {
|
|
30
|
-
borderColor: `$${prefix}.borderColor:hover`
|
|
31
|
-
};
|
|
32
|
-
case "press":
|
|
33
|
-
return {
|
|
34
|
-
borderColor: `$${prefix}.borderColor:press`
|
|
35
|
-
};
|
|
36
|
-
case "focus":
|
|
37
|
-
return {
|
|
38
|
-
borderColor: `$${prefix}.borderColor:focus`
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
borderColor: `$${prefix}.borderColor`,
|
|
44
|
-
hoverStyle: {
|
|
45
|
-
borderColor: `$${prefix}.borderColor:hover`
|
|
46
|
-
},
|
|
47
|
-
pressStyle: {
|
|
48
|
-
borderColor: `$${prefix}.borderColor:press`
|
|
49
|
-
},
|
|
50
|
-
focusStyle: {
|
|
51
|
-
borderColor: `$${prefix}.borderColor:focus`
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
const getBackgroundAdditionalInteraction = ({
|
|
15
|
+
const getInteractionStyles = (name, {
|
|
56
16
|
internalForcedPseudoState,
|
|
57
17
|
disabled,
|
|
58
18
|
interactive,
|
|
59
19
|
variant
|
|
60
20
|
}) => {
|
|
21
|
+
const isGhost = variant?.startsWith("ghost-");
|
|
61
22
|
const prefix = interactive === "text" ? "interactive.forms" : (
|
|
62
23
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
63
|
-
`interactive.${variant || "contained"}`
|
|
24
|
+
`interactive.${(isGhost ? variant.slice(6) : variant) || "contained"}`
|
|
64
25
|
);
|
|
65
26
|
if (disabled) {
|
|
66
|
-
return {
|
|
67
|
-
|
|
68
|
-
|
|
27
|
+
return { [name]: `$${prefix}.${name}:disabled` };
|
|
28
|
+
}
|
|
29
|
+
if (name === "shadowColor") {
|
|
30
|
+
return { [name]: `$${prefix}.${name}` };
|
|
69
31
|
}
|
|
70
32
|
if (process.env.STORYBOOK && internalForcedPseudoState) {
|
|
71
33
|
switch (internalForcedPseudoState) {
|
|
72
34
|
case "hover":
|
|
73
|
-
return {
|
|
74
|
-
backgroundColor: `$${prefix}.backgroundColor:hover`
|
|
75
|
-
};
|
|
35
|
+
return { [name]: `$${prefix}.${name}:hover` };
|
|
76
36
|
case "press":
|
|
77
|
-
return {
|
|
78
|
-
backgroundColor: `$${prefix}.backgroundColor:press`
|
|
79
|
-
};
|
|
37
|
+
return { [name]: `$${prefix}.${name}:press` };
|
|
80
38
|
case "focus":
|
|
81
|
-
return {
|
|
82
|
-
backgroundColor: `$${prefix}.backgroundColor:focus`
|
|
83
|
-
};
|
|
39
|
+
return { [name]: `$${prefix}.${name}:focus` };
|
|
84
40
|
}
|
|
85
41
|
}
|
|
86
42
|
return {
|
|
87
|
-
|
|
88
|
-
hoverStyle: {
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
pressStyle: {
|
|
92
|
-
backgroundColor: `$${prefix}.backgroundColor:press`
|
|
93
|
-
},
|
|
94
|
-
focusStyle: {
|
|
95
|
-
backgroundColor: `$${prefix}.backgroundColor:focus`
|
|
96
|
-
}
|
|
43
|
+
[name]: isGhost ? "transparent" : `$${prefix}.${name}`,
|
|
44
|
+
hoverStyle: { [name]: `$${prefix}.${name}:hover` },
|
|
45
|
+
pressStyle: { [name]: `$${prefix}.${name}:press` },
|
|
46
|
+
focusStyle: { [name]: `$${prefix}.${name}:focus` }
|
|
97
47
|
};
|
|
98
48
|
};
|
|
99
49
|
|
|
100
50
|
const internalForcedPseudoState = (val) => ({});
|
|
101
51
|
const withBorder = (val, { props }) => {
|
|
102
52
|
return {
|
|
103
|
-
borderWidth: typeof val
|
|
104
|
-
borderColor: "$borderColor"
|
|
105
|
-
...props.interactive ? getBorderAdditionalInteraction(props) : undefined
|
|
53
|
+
borderWidth: typeof val !== "boolean" ? val : 1,
|
|
54
|
+
...props.interactive ? getInteractionStyles("borderColor", props) : { borderColor: "$borderColor" }
|
|
106
55
|
};
|
|
107
56
|
};
|
|
108
57
|
const withBackground = (val, { props }) => {
|
|
109
|
-
const variant = props.interactive === "text" ? "text" : props.variant || "contained";
|
|
110
58
|
if (!val) return {};
|
|
111
59
|
if (!props.role && !props.outlineStyle && props.interactive) {
|
|
112
60
|
throw new Error("A role prop is required while using interactive");
|
|
113
61
|
}
|
|
114
62
|
return {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
63
|
+
...props.interactive ? getInteractionStyles("backgroundColor", props) : { backgroundColor: "$mainColor" }
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
const withElevation = (val, { props }) => {
|
|
67
|
+
if (!val) return {};
|
|
68
|
+
return {
|
|
69
|
+
...props.disabled ? {} : {
|
|
70
|
+
shadowOffset: { width: 0, height: 2 },
|
|
71
|
+
shadowOpacity: 0.65,
|
|
72
|
+
shadowRadius: 6,
|
|
73
|
+
elevation: 5
|
|
74
|
+
},
|
|
75
|
+
...props.interactive ? getInteractionStyles("shadowColor", props) : { shadowColor: "$shadowColor" }
|
|
120
76
|
};
|
|
121
77
|
};
|
|
122
78
|
const circularStyle = {
|
|
@@ -168,7 +124,8 @@ const variants$1 = {
|
|
|
168
124
|
internalForcedPseudoState: internalForcedPseudoState,
|
|
169
125
|
size: size,
|
|
170
126
|
withBackground: withBackground,
|
|
171
|
-
withBorder: withBorder
|
|
127
|
+
withBorder: withBorder,
|
|
128
|
+
withElevation: withElevation
|
|
172
129
|
};
|
|
173
130
|
|
|
174
131
|
const Box = styled(View, {
|
|
@@ -201,27 +158,62 @@ const IconButtonFrame = styled(PressableBox, {
|
|
|
201
158
|
name: "IconButtonFrame",
|
|
202
159
|
role: "button",
|
|
203
160
|
centered: true,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
161
|
+
borderRadius: 1e4,
|
|
162
|
+
variants: {
|
|
163
|
+
variant: {
|
|
164
|
+
contained: {
|
|
165
|
+
withBackground: true
|
|
166
|
+
},
|
|
167
|
+
outlined: {
|
|
168
|
+
withBackground: true,
|
|
169
|
+
withBorder: 1
|
|
170
|
+
},
|
|
171
|
+
elevated: {
|
|
172
|
+
withBackground: true,
|
|
173
|
+
withElevation: true,
|
|
174
|
+
withBorder: 1
|
|
175
|
+
},
|
|
176
|
+
"ghost-contained": {
|
|
177
|
+
withBackground: true
|
|
178
|
+
},
|
|
179
|
+
"ghost-outlined": {
|
|
180
|
+
withBackground: true,
|
|
181
|
+
withBorder: 1
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
defaultVariants: {
|
|
186
|
+
variant: "contained"
|
|
187
|
+
}
|
|
209
188
|
});
|
|
189
|
+
const getDisabledColor$1 = (variant) => {
|
|
190
|
+
return variant === "contained" || variant === "ghost-contained" ? "$contrastTextColor:disabled" : "$textColor:disabled";
|
|
191
|
+
};
|
|
210
192
|
function IconButton({
|
|
211
193
|
icon,
|
|
212
194
|
disabled,
|
|
213
195
|
size = 40,
|
|
196
|
+
variant = "contained",
|
|
214
197
|
...pressableProps
|
|
215
198
|
}) {
|
|
216
|
-
return /* @__PURE__ */ jsx(
|
|
217
|
-
|
|
199
|
+
return /* @__PURE__ */ jsx(
|
|
200
|
+
IconButtonFrame,
|
|
218
201
|
{
|
|
219
|
-
size
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
202
|
+
size,
|
|
203
|
+
variant,
|
|
204
|
+
disabled,
|
|
205
|
+
...pressableProps,
|
|
206
|
+
children: /* @__PURE__ */ jsx(
|
|
207
|
+
Icon,
|
|
208
|
+
{
|
|
209
|
+
size: size / 2,
|
|
210
|
+
color: disabled ? getDisabledColor$1(variant) : undefined,
|
|
211
|
+
contrast: (variant === "contained" || variant === "ghost-contained") && !disabled,
|
|
212
|
+
icon
|
|
213
|
+
}
|
|
214
|
+
)
|
|
223
215
|
}
|
|
224
|
-
)
|
|
216
|
+
);
|
|
225
217
|
}
|
|
226
218
|
|
|
227
219
|
const variants = {
|
|
@@ -336,6 +328,19 @@ const ButtonFrame = styled(PressableBox, {
|
|
|
336
328
|
outlined: {
|
|
337
329
|
withBackground: true,
|
|
338
330
|
withBorder: true
|
|
331
|
+
},
|
|
332
|
+
elevated: {
|
|
333
|
+
withBackground: true,
|
|
334
|
+
withElevation: true,
|
|
335
|
+
withBorder: true,
|
|
336
|
+
borderColor: "$contrastBorderColor"
|
|
337
|
+
},
|
|
338
|
+
"ghost-contained": {
|
|
339
|
+
withBackground: true
|
|
340
|
+
},
|
|
341
|
+
"ghost-outlined": {
|
|
342
|
+
withBorder: 1,
|
|
343
|
+
withBackground: true
|
|
339
344
|
}
|
|
340
345
|
}
|
|
341
346
|
},
|
|
@@ -345,7 +350,7 @@ const ButtonFrame = styled(PressableBox, {
|
|
|
345
350
|
}
|
|
346
351
|
});
|
|
347
352
|
const getDisabledColor = (variant) => {
|
|
348
|
-
return variant === "contained" ? "$contrastTextColor:disabled" : "$textColor:disabled";
|
|
353
|
+
return variant === "contained" || variant === "ghost-contained" ? "$contrastTextColor:disabled" : "$textColor:disabled";
|
|
349
354
|
};
|
|
350
355
|
function Button({
|
|
351
356
|
icon,
|
|
@@ -367,7 +372,7 @@ function Button({
|
|
|
367
372
|
Icon,
|
|
368
373
|
{
|
|
369
374
|
color: disabled ? getDisabledColor(variant) : undefined,
|
|
370
|
-
contrast: variant === "contained" && !disabled,
|
|
375
|
+
contrast: (variant === "contained" || variant === "ghost-contained") && !disabled,
|
|
371
376
|
icon,
|
|
372
377
|
size: size === "sm" ? 16 : 20
|
|
373
378
|
}
|
|
@@ -379,7 +384,7 @@ function Button({
|
|
|
379
384
|
weight: "bold",
|
|
380
385
|
paddingVertical: size === "sm" ? "$1" : "$xs",
|
|
381
386
|
color: disabled ? getDisabledColor(variant) : undefined,
|
|
382
|
-
contrast: variant === "contained" && !disabled,
|
|
387
|
+
contrast: (variant === "contained" || variant === "ghost-contained") && !disabled,
|
|
383
388
|
children: text
|
|
384
389
|
}
|
|
385
390
|
)
|
|
@@ -442,7 +447,14 @@ function Message({
|
|
|
442
447
|
return /* @__PURE__ */ jsxs(MessageFrame, { theme, children: [
|
|
443
448
|
textCentered ? null : /* @__PURE__ */ jsx(MessageIconContainer, { children: /* @__PURE__ */ jsx(Icon, { contrast: true, icon: /* @__PURE__ */ jsx(FeedbackIcon, { type: theme }) }) }),
|
|
444
449
|
/* @__PURE__ */ jsx(MessageText, { centered: textCentered, children }),
|
|
445
|
-
onDismiss ? /* @__PURE__ */ jsx(MessageDismissButtonContainer, { children: /* @__PURE__ */ jsx(
|
|
450
|
+
onDismiss ? /* @__PURE__ */ jsx(MessageDismissButtonContainer, { children: /* @__PURE__ */ jsx(
|
|
451
|
+
IconButton,
|
|
452
|
+
{
|
|
453
|
+
icon: /* @__PURE__ */ jsx(XRegularIcon, {}),
|
|
454
|
+
size: 40,
|
|
455
|
+
variant: "ghost-contained"
|
|
456
|
+
}
|
|
457
|
+
) }) : null
|
|
446
458
|
] });
|
|
447
459
|
}
|
|
448
460
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-node20.mjs","sources":["../src/components/primitives/createVariants.ts","../src/components/containers/variants.ts","../src/components/containers/Box.tsx","../src/components/containers/PressableBox.tsx","../src/components/primitives/Icon.tsx","../src/components/actions/IconButton.tsx","../src/components/primitives/stacks.ts","../src/components/typography/Typography.tsx","../src/components/actions/Button.tsx","../src/components/feedback/FeedbackIcon.tsx","../src/components/feedback/Message.tsx","../src/components/forms/InputText.tsx","../src/components/primitives/ScrollView.ts","../src/components/story-components/StoryTitle.tsx","../src/components/story-components/Story.tsx","../src/components/story-components/StoryContainer.tsx","../src/components/story-components/StoryDecorator.tsx","../src/components/story-components/StoryGrid.tsx","../src/components/story-components/WithTamaguiConfig.tsx","../src/config/Breakpoints.ts","../src/components/windowSize/useCurrentBreakpointName.ts","../src/components/windowSize/SwitchBreakpoints.tsx","../src/core/AlouetteProvider.tsx","../src/core/AlouetteDecorator.tsx","../src/components/layout/Separator.tsx","../src/components/layout/list.tsx"],"sourcesContent":["import type { VariantSpreadExtras } from \"@tamagui/core\";\n\nexport const fullscreenStyle = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const;\n\nexport type InternalPseudoState = \"focus\" | \"hover\" | \"press\";\n\nexport const getBorderAdditionalInteraction = ({\n internalForcedPseudoState,\n disabled,\n interactive,\n}: VariantSpreadExtras<any>[\"props\"]) => {\n const prefix = interactive === \"text\" ? \"interactive.forms\" : \"interactive\";\n\n if (disabled) {\n return {\n borderColor: `$${prefix}.borderColor:disabled`,\n } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return {\n borderColor: `$${prefix}.borderColor:hover`,\n };\n case \"press\":\n return {\n borderColor: `$${prefix}.borderColor:press`,\n };\n case \"focus\":\n return {\n borderColor: `$${prefix}.borderColor:focus`,\n };\n default:\n break;\n }\n }\n\n return {\n borderColor: `$${prefix}.borderColor`,\n\n hoverStyle: {\n borderColor: `$${prefix}.borderColor:hover`,\n },\n pressStyle: {\n borderColor: `$${prefix}.borderColor:press`,\n },\n focusStyle: {\n borderColor: `$${prefix}.borderColor:focus`,\n },\n } as const;\n};\n\n// eslint-disable-next-line complexity\nexport const getBackgroundAdditionalInteraction = ({\n internalForcedPseudoState,\n disabled,\n interactive,\n variant,\n}: VariantSpreadExtras<any>[\"props\"]) => {\n const prefix =\n interactive === \"text\"\n ? \"interactive.forms\"\n : // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `interactive.${variant || \"contained\"}`;\n\n if (disabled) {\n return {\n backgroundColor: `$${prefix}.backgroundColor:disabled`,\n } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:hover`,\n };\n case \"press\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:press`,\n };\n case \"focus\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:focus`,\n };\n default:\n break;\n }\n }\n\n return {\n backgroundColor: `$${prefix}.backgroundColor`,\n\n hoverStyle: {\n backgroundColor: `$${prefix}.backgroundColor:hover`,\n },\n pressStyle: {\n backgroundColor: `$${prefix}.backgroundColor:press`,\n },\n focusStyle: {\n backgroundColor: `$${prefix}.backgroundColor:focus`,\n },\n } as const;\n};\n","import type { SizeTokens, VariantSpreadExtras, ViewStyle } from \"@tamagui/core\";\nimport type { InternalPseudoState } from \"../primitives/createVariants\";\nimport {\n getBackgroundAdditionalInteraction,\n getBorderAdditionalInteraction,\n} from \"../primitives/createVariants\";\n\nexport const internalForcedPseudoState = (val: InternalPseudoState) => ({});\n\nexport const withBorder = (\n val: SizeTokens | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n return {\n borderWidth: typeof val === \"number\" ? val : 1,\n borderColor: \"$borderColor\",\n\n ...(props.interactive ? getBorderAdditionalInteraction(props) : undefined),\n } as const;\n};\n\nexport const withBackground = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n const variant =\n props.interactive === \"text\" ? \"text\" : props.variant || \"contained\";\n\n if (!val) return {} as const;\n\n if (!props.role && !props.outlineStyle && props.interactive) {\n throw new Error(\"A role prop is required while using interactive\");\n }\n\n return {\n backgroundColor: props.interactive\n ? // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `$interactive.${variant}.backgroundColor`\n : \"$mainColor\",\n\n ...(props.interactive\n ? getBackgroundAdditionalInteraction(props)\n : undefined),\n } as const;\n};\n\nconst circularStyle = {\n borderRadius: 100_000,\n padding: 0,\n};\n\nexport const size = (val: number) => {\n return { width: val, height: val } as const;\n};\n\nexport const circular = {\n true: (val: boolean, { props, tokens }: { props: any; tokens: any }) => {\n if (!(\"size\" in props)) {\n return circularStyle;\n }\n const sizePropValue: keyof typeof tokens.size = props.size;\n const sizeValue = tokens.size[sizePropValue];\n return {\n ...circularStyle,\n width: sizeValue,\n height: sizeValue,\n maxWidth: sizeValue,\n maxHeight: sizeValue,\n minWidth: sizeValue,\n minHeight: sizeValue,\n };\n },\n} as const;\n\nexport const interactive = (\n isInteractiveOrInteractiveCursorType: ViewStyle[\"cursor\"] | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!isInteractiveOrInteractiveCursorType) return null;\n if (props.disabled) {\n return { cursor: \"not-allowed\" } as const;\n }\n return {\n cursor:\n isInteractiveOrInteractiveCursorType === true\n ? \"pointer\"\n : isInteractiveOrInteractiveCursorType,\n } as const;\n};\n\nexport const centered = {\n true: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n} as const;\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport * as variants from \"./variants\";\n\n/** View with alouette variants */\nexport const Box = styled(View, {\n name: \"Box\",\n variants,\n animation: \"fast\",\n} as const);\n\nexport type BoxProps = GetProps<typeof Box>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Box } from \"./Box\";\n\nexport const PressableBox = styled(Box, {\n interactive: true,\n} as const);\n\nexport type PressableBoxProps = GetProps<typeof PressableBox>;\n","import type { ColorTokens, GetProps, Variable } from \"@tamagui/core\";\nimport { useStyle } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport type { OpaqueColorValue } from \"react-native\";\nimport type { BoxProps } from \"../containers/Box\";\nimport { Box } from \"../containers/Box\";\n\nexport interface IconProps\n extends Exclude<GetProps<typeof Box>, \"alignSelf\" | \"style\"> {\n icon: ReactElement;\n color?: ColorTokens | OpaqueColorValue | Variable<any> | undefined;\n align?: BoxProps[\"alignSelf\"];\n contrast?: boolean;\n size?: number;\n}\n\nexport function Icon({\n icon,\n size = 20,\n align = \"auto\",\n contrast,\n color = contrast ? \"$contrastTextColor\" : \"$textColor\",\n ...props\n}: IconProps): ReactNode {\n const style = useStyle({\n color,\n // if needed for native\n // resolveValues: Platform.OS === 'web' ? undefined: 'value',\n });\n\n // if needed for native\n // const clonedIcon = cloneElement(icon, { style });\n // const clonedIcon = cloneElement(icon, { color: style.color });\n\n return (\n <Box {...props} centered alignSelf={align} size={size} style={style as any}>\n {icon}\n </Box>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport { PressableBox } from \"../containers/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\n\nconst IconButtonFrame = styled(PressableBox, {\n name: \"IconButtonFrame\",\n role: \"button\",\n centered: true,\n withBorder: true,\n withBackground: true,\n size: 40,\n borderWidth: 1,\n borderRadius: 10_000,\n});\n\ntype IconButtonFrameProps = GetProps<typeof IconButtonFrame>;\n\nexport interface IconButtonProps extends IconButtonFrameProps {\n icon: NonNullable<ReactElement>;\n}\n\nexport function IconButton({\n icon,\n disabled,\n size = 40,\n ...pressableProps\n}: IconButtonProps): ReactNode {\n return (\n <IconButtonFrame size={size} disabled={disabled} {...pressableProps}>\n <Icon\n size={size / 2}\n color={disabled ? \"$contrastDisabled\" : undefined}\n contrast={!disabled}\n icon={icon}\n />\n </IconButtonFrame>\n );\n}\n","import { View, styled } from \"@tamagui/core\";\nimport type { GetProps } from \"@tamagui/core\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nconst variants = {\n fullscreen: {\n true: fullscreenStyle,\n },\n} as const;\n\nexport const Stack = styled(View, {\n name: \"Stack\",\n variants: {\n ...variants,\n type: {\n h: { flexDirection: \"row\" },\n v: { flexDirection: \"column\" },\n },\n } as const,\n});\n\nexport type StackProps = GetProps<typeof Stack>;\n\nexport const HStack = styled(View, {\n name: \"HStack\",\n flexDirection: \"row\",\n variants,\n});\n\nexport type HStackProps = GetProps<typeof HStack>;\n\nexport const VStack = styled(View, {\n name: \"VStack\",\n flexDirection: \"column\",\n});\n\nexport type VStackProps = GetProps<typeof VStack>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { Text, styled } from \"@tamagui/core\";\nimport { createContext, useContext } from \"react\";\n\nexport const Typography = styled(Text, {\n name: \"Typography\",\n fontFamily: \"$body\",\n color: \"$textColor\",\n fontWeight: \"$regular\",\n\n variants: {\n size: {\n xl: { fontSize: \"$xl\", lineHeight: \"$xl\" },\n lg: { fontSize: \"$lg\", lineHeight: \"$lg\" },\n md: { fontSize: \"$md\", lineHeight: \"$md\" },\n sm: { fontSize: \"$sm\", lineHeight: \"$sm\" },\n xs: { fontSize: \"$xs\", lineHeight: \"$xs\" },\n },\n weight: {\n regular: { fontWeight: \"$regular\" },\n bold: { fontWeight: \"$bold\" },\n black: { fontWeight: \"$black\" },\n },\n family: {\n heading: { fontFamily: \"$heading\" },\n body: { fontFamily: \"$body\" },\n },\n contrast: {\n true: {\n color: \"$contrastTextColor\",\n },\n false: {\n color: \"$textColor\",\n },\n },\n },\n\n defaultVariants: {\n size: \"md\",\n weight: \"regular\",\n family: \"body\",\n },\n} as const);\n\nexport type TypographyProps = GetProps<typeof Typography>;\n\nexport const TypographyParagraph = styled(Typography, {\n name: \"TypographyParagraph\",\n tag: \"p\",\n userSelect: \"auto\",\n family: \"body\",\n} as const);\n\nexport type TypographyParagraphProps = GetProps<typeof TypographyParagraph>;\n\nconst TypographySizeContext = createContext<TypographyProps[\"size\"]>(undefined);\n\nexport const TypographyWithContext = Typography.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n if (sizeOrAncestorSizeOrDefaultSize !== size) {\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n }\n return <Typography ref={ref} size={size} {...props} />;\n },\n);\n\nexport const TypographyParagraphWithContext = TypographyParagraph.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n },\n);\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { PressableBox } from \"../containers/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\nimport { HStack } from \"../primitives/stacks\";\nimport { Typography } from \"../typography/Typography\";\n\nconst ButtonFrame = styled(PressableBox, {\n name: \"ButtonFrame\",\n role: \"button\",\n centered: true,\n minHeight: 42,\n\n variants: {\n size: {\n sm: {\n paddingHorizontal: \"$sm\",\n borderRadius: \"$3\",\n minHeight: 32,\n },\n md: {\n paddingHorizontal: \"$md\",\n borderRadius: \"$sm\",\n minHeight: 42,\n },\n },\n variant: {\n contained: {\n withBackground: true,\n },\n outlined: {\n withBackground: true,\n withBorder: true,\n },\n },\n },\n\n defaultVariants: {\n variant: \"contained\",\n size: \"md\",\n },\n});\n\ntype ButtonFrameProps = GetProps<typeof ButtonFrame>;\n\nexport interface ButtonProps extends Except<ButtonFrameProps, \"size\"> {\n icon?: NonNullable<ReactElement>;\n text: ReactNode;\n size?: \"md\" | \"sm\";\n}\n\nconst getDisabledColor = (variant: \"contained\" | \"outlined\") => {\n return variant === \"contained\"\n ? \"$contrastTextColor:disabled\"\n : \"$textColor:disabled\";\n};\n\n// eslint-disable-next-line complexity\nexport function Button({\n icon,\n text,\n disabled,\n variant = \"contained\",\n size = \"md\",\n ...pressableProps\n}: ButtonProps): ReactNode {\n return (\n <ButtonFrame\n disabled={disabled}\n variant={variant}\n size={size}\n {...pressableProps}\n >\n <HStack gap=\"$xs\" alignItems=\"center\">\n {icon && (\n <Icon\n color={disabled ? getDisabledColor(variant) : undefined}\n contrast={variant === \"contained\" && !disabled}\n icon={icon}\n size={size === \"sm\" ? 16 : 20}\n />\n )}\n <Typography\n size={size}\n weight=\"bold\"\n paddingVertical={size === \"sm\" ? \"$1\" : \"$xs\"}\n color={disabled ? getDisabledColor(variant) : undefined}\n contrast={variant === \"contained\" && !disabled}\n >\n {text}\n </Typography>\n </HStack>\n </ButtonFrame>\n );\n}\n","import {\n CheckRegularIcon,\n InfoRegularIcon,\n WarningCircleRegularIcon,\n WarningRegularIcon,\n} from \"alouette-icons/phosphor-icons\";\nimport type { ReactNode } from \"react\";\nimport type { MessageProps } from \"./Message\";\n\ninterface FeedbackIconProps {\n type: MessageProps[\"theme\"];\n}\n\nexport function FeedbackIcon({ type }: FeedbackIconProps): ReactNode {\n switch (type) {\n case \"warning\":\n return <WarningCircleRegularIcon />;\n case \"success\":\n return <CheckRegularIcon />;\n case \"danger\":\n return <WarningRegularIcon />;\n default:\n return <InfoRegularIcon />;\n }\n}\n","import { View, styled } from \"@tamagui/core\";\nimport { XRegularIcon } from \"alouette-icons/phosphor-icons\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { IconButton } from \"../actions/IconButton\";\nimport { Box } from \"../containers/Box\";\nimport { Icon } from \"../primitives/Icon\";\nimport { Typography } from \"../typography/Typography\";\nimport { FeedbackIcon } from \"./FeedbackIcon\";\n\nexport const MessageFrame = styled(Box, {\n name: \"MessageFrame\",\n alignItems: \"center\",\n withBackground: true,\n borderRadius: \"$md\",\n paddingHorizontal: \"$4\",\n flexDirection: \"row\",\n gap: \"$4\",\n} as const);\n\nexport const MessageText = styled(Typography, {\n name: \"MessageText\",\n contrast: true,\n size: \"md\",\n flexGrow: 1,\n paddingVertical: \"$4\",\n variants: {\n centered: {\n true: {\n textAlign: \"center\",\n paddingHorizontal: \"$4\",\n },\n },\n },\n} as const);\n\nconst MessageIconContainer = styled(View, {\n name: \"MessageIconContainer\",\n alignItems: \"center\",\n});\n\nconst MessageDismissButtonContainer = styled(View, {\n name: \"MessageDismissButtonContainer\",\n marginRight: \"$2\",\n});\n\nexport interface MessageProps {\n theme: NonNullable<ComponentProps<typeof MessageFrame>[\"theme\"]>;\n children?: ReactNode;\n textCentered?: boolean;\n onDismiss?: () => void;\n}\n\nexport function Message({\n theme,\n textCentered,\n children,\n onDismiss,\n}: MessageProps): ReactNode {\n return (\n <MessageFrame theme={theme}>\n {textCentered ? null : (\n <MessageIconContainer>\n <Icon contrast icon={<FeedbackIcon type={theme} />} />\n </MessageIconContainer>\n )}\n <MessageText centered={textCentered}>{children}</MessageText>\n {onDismiss ? (\n <MessageDismissButtonContainer>\n <IconButton icon={<XRegularIcon />} size={40} />\n </MessageDismissButtonContainer>\n ) : null}\n </MessageFrame>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { TextInput } from \"react-native\";\nimport * as variants from \"../containers/variants\";\n\nconst StyledInputText = styled(\n TextInput,\n {\n variants,\n\n padding: \"$xs\",\n borderRadius: \"$sm\",\n\n color: \"$interactive.forms.textColor\",\n // currently not working in web unless we use tamagui Input\n // placeholderTextColor: \"$interactive.forms.placeholderTextColor\",\n\n // @ts-expect-error missing prop due to isInput but in does exist in variants\n withBorder: true,\n withBackground: true,\n\n borderWidth: 1,\n borderBottomWidth: 3,\n\n // reset browser style\n outlineStyle: \"none\",\n },\n { isInput: true },\n);\n\nexport const InputText = styled(StyledInputText, {\n name: \"InputText\",\n interactive: \"text\",\n theme: \"primary\",\n // animation: \"formElement\", // remove all style ?\n});\n\nexport type InputTextProps = GetProps<typeof InputText>;\n\nexport const TextArea = styled(InputText, {\n multiline: true,\n});\n\nexport type TextAreaProps = GetProps<typeof TextArea>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { ScrollView as ScrollViewNative } from \"react-native\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nexport const ScrollView = styled(\n ScrollViewNative,\n {\n name: \"ScrollView\",\n scrollEnabled: true,\n\n variants: {\n fullscreen: {\n true: fullscreenStyle,\n },\n },\n } as const,\n {\n accept: {\n contentContainerStyle: \"style\",\n },\n } as const,\n);\n\nexport type ScrollView = Pick<ScrollViewNative, \"scrollTo\">;\n\nexport type ScrollViewProps = GetProps<typeof ScrollView>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Typography } from \"../typography/Typography\";\n\nexport const StoryTitle = styled(Typography, {\n family: \"heading\",\n weight: \"black\",\n variants: {\n level: {\n 1: { size: \"xl\", marginBottom: \"$8\" },\n 2: { size: \"lg\", marginBottom: \"$8\" },\n 3: { size: \"md\", marginBottom: \"$3\" },\n 4: { size: \"sm\", marginBottom: \"$3\" },\n },\n } as const,\n\n defaultVariants: {\n level: 1,\n },\n} as const);\n\nexport type StoryTitleProps = GetProps<typeof StoryTitle>;\n","import { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport type { VStackProps } from \"../primitives/stacks\";\nimport { VStack } from \"../primitives/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nconst InternalStorySection = styled(VStack, {\n marginBottom: \"$8\",\n paddingHorizontal: \"$4\",\n marginHorizontal: \"$-4\",\n variants: {\n withBackground: {\n true: {\n backgroundColor: \"$backgroundColor\",\n },\n },\n } as const,\n});\n\nexport type StorySectionProps = Except<VStackProps, \"marginBottom\"> & {\n title: ReactNode;\n children: ReactNode;\n level?: 1 | 2;\n withBackground?: boolean;\n};\n\nfunction StorySection({\n title,\n children,\n level = 1,\n withBackground,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection withBackground={withBackground} {...props}>\n <StoryTitle level={(level + 1) as 2 | 3}>{title}</StoryTitle>\n {children}\n </InternalStorySection>\n );\n}\n\nfunction SubSection({\n title,\n children,\n withBackground,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection\n marginBottom=\"$4\"\n withBackground={withBackground}\n {...props}\n >\n <StoryTitle level={3}>{title}</StoryTitle>\n {children}\n </InternalStorySection>\n );\n}\n\nexport interface StoryProps {\n preview?: NonNullable<ReactNode>;\n children?: NonNullable<ReactNode>;\n}\n\nexport function Story({ preview, children }: StoryProps): ReactNode {\n return (\n <>\n {preview && (\n <StorySection title=\"Preview\" paddingBottom=\"$12\">\n {preview}\n </StorySection>\n )}\n {children}\n </>\n );\n}\n\nStory.Section = StorySection;\nStory.SubSection = SubSection;\n","import type { ReactNode } from \"react\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nexport interface StoryContainerProps {\n title: ReactNode;\n children: NonNullable<ReactNode>;\n}\n\nexport function StoryContainer({\n title,\n children,\n}: StoryContainerProps): ReactNode {\n return (\n <ScrollView theme=\"light\" backgroundColor=\"#fff\" padding=\"$4\">\n <StoryTitle level={1}>{title}</StoryTitle>\n {children}\n </ScrollView>\n );\n}\n","import type { Decorator } from \"@storybook/react\";\nimport { StoryContainer } from \"./StoryContainer\";\n\n// eslint-disable-next-line react/function-component-definition -- not a component, it's a decorator for storybook.\nexport const StoryDecorator: Decorator = (storyFn, { name, container }) => {\n if (container === false) return storyFn();\n return <StoryContainer title={name}>{storyFn()}</StoryContainer>;\n};\n","import type { ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { Platform } from \"react-native\";\nimport { View } from \"../primitives/View\";\nimport { VStack } from \"../primitives/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: \"medium\" | \"small\";\n flexWrap?: boolean;\n}\n\nfunction StoryGridRow({\n children,\n breakpoint = \"small\",\n flexWrap,\n}: StoryGridRowProps): ReactNode {\n return (\n <View\n flexDirection=\"column\"\n {...{\n [`$${breakpoint}`]: {\n flexDirection: \"row\",\n marginVertical: \"$-1\",\n marginBottom: \"$4\",\n flexWrap: flexWrap ? \"wrap\" : undefined,\n gap: flexWrap ? \"$xs\" : undefined,\n },\n }}\n >\n {Children.map(children, (child) => (\n <View\n paddingTop=\"$2\"\n paddingBottom=\"$4\"\n {...{\n [`$${breakpoint}`]: {\n flexGrow: 1,\n flexBasis: flexWrap ? undefined : 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginVertical: \"$2\",\n },\n }}\n >\n {child}\n </View>\n ))}\n </View>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n platform?: \"all\" | \"native\" | \"web\";\n}\n\nfunction StoryGridCol({\n title,\n children,\n platform = \"all\",\n}: StoryGridColProps): ReactNode {\n const isNative = Platform.OS === \"ios\" || Platform.OS === \"android\";\n\n if (Platform.OS === \"web\" && platform === \"native\") {\n return null;\n }\n\n if (isNative && platform === \"web\") {\n return null;\n }\n\n return title ? (\n <VStack>\n <StoryTitle level={4} numberOfLines={1}>\n {title}\n </StoryTitle>\n {children}\n </VStack>\n ) : (\n children\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import { useConfiguration } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\n\nexport interface WithTamaguiConfigProps {\n render: (\n config: ReturnType<typeof useConfiguration>,\n ) => NonNullable<ReactNode>;\n}\n\nexport function WithTamaguiConfig({\n render,\n}: WithTamaguiConfigProps): ReactNode {\n const config = useConfiguration();\n return render(config);\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 { useMedia } from \"@tamagui/core\";\nimport type { BreakpointNames } from \"../../config/Breakpoints\";\nimport { BreakpointNameEnum } from \"../../config/Breakpoints\";\n\nexport function useCurrentBreakpointName(): BreakpointNameEnum {\n const media = useMedia();\n\n if (media.wide) return BreakpointNameEnum.WIDE;\n if (media.large) return BreakpointNameEnum.LARGE;\n if (media.medium) return BreakpointNameEnum.MEDIUM;\n if (media.small) return BreakpointNameEnum.SMALL;\n return BreakpointNameEnum.BASE;\n}\n\nexport function useCurrentBreakpointNameFiltered<\n Names extends BreakpointNames[],\n>(names: Names): Names[number] {\n const media = useMedia();\n\n if (names.includes(BreakpointNameEnum.WIDE) && media.wide) {\n return BreakpointNameEnum.WIDE;\n }\n if (names.includes(BreakpointNameEnum.LARGE) && media.large) {\n return BreakpointNameEnum.LARGE;\n }\n if (names.includes(BreakpointNameEnum.MEDIUM) && media.medium) {\n return BreakpointNameEnum.MEDIUM;\n }\n if (names.includes(BreakpointNameEnum.SMALL) && media.small) {\n return BreakpointNameEnum.SMALL;\n }\n return BreakpointNameEnum.BASE;\n}\n","import type { ReactNode } from \"react\";\nimport type { SetRequired } from \"type-fest\";\nimport type { BreakpointNames } from \"../../config/Breakpoints\";\nimport { View } from \"../primitives/View\";\nimport { useCurrentBreakpointNameFiltered } from \"./useCurrentBreakpointName\";\n\ntype SwitchBreakpointsProps = SetRequired<\n Partial<Record<BreakpointNames, ReactNode>>,\n \"base\"\n> & { children?: never };\n\n/**\n * Display based on current breakpoint\n *\n * This mode is SSR friendly\n */\nexport function SwitchBreakpointsUsingDisplayNone({\n ...breakpoints\n}: SwitchBreakpointsProps): ReactNode {\n const entries = Object.entries(breakpoints);\n\n return entries.map(([name, node], index) => {\n return (\n <View\n key={name}\n display={name === \"base\" ? \"flex\" : \"none\"}\n {...(name === \"base\"\n ? undefined\n : { display: \"none\", [`$${name}`]: { display: \"flex\" } })}\n {...(index + 1 in entries\n ? { [`$${entries[index + 1]![0]}`]: { display: \"none\" } }\n : undefined)}\n >\n {node}\n </View>\n );\n });\n}\n\n/**\n * Display based on current breakpoint\n *\n * This mode is not SSR friendly\n */\nexport function SwitchBreakpointsUsingNull({\n children,\n ...breakpoints\n}: SwitchBreakpointsProps): ReactNode {\n const currentBreakpointName = useCurrentBreakpointNameFiltered(\n Object.keys(breakpoints) as (keyof typeof breakpoints)[],\n );\n\n return breakpoints[currentBreakpointName] ?? null;\n}\n","import type { TamaguiProviderProps } from \"@tamagui/core\";\nimport { TamaguiProvider } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport { useColorScheme } from \"react-native\";\n\nexport interface AlouetteProviderProps\n extends Pick<TamaguiProviderProps, \"disableInjectCSS\"> {\n children: ReactNode;\n tamaguiConfig: TamaguiProviderProps[\"config\"];\n defaultTheme?: \"dark\" | \"light\";\n}\n\nexport const useDefaultThemeFromColorScheme = () => {\n const colorScheme = useColorScheme();\n return colorScheme || \"light\";\n};\n\nexport function AlouetteProvider({\n children,\n tamaguiConfig,\n defaultTheme = \"light\",\n disableInjectCSS,\n}: AlouetteProviderProps): ReactNode {\n return (\n <TamaguiProvider\n config={tamaguiConfig}\n defaultTheme={defaultTheme}\n disableInjectCSS={disableInjectCSS}\n >\n {children}\n </TamaguiProvider>\n );\n}\n","/* eslint-disable react/destructuring-assignment */\nimport type { Decorator } from \"@storybook/react\";\nimport { useEffect, useState } from \"react\";\nimport { useColorScheme } from \"react-native\";\nimport { AlouetteProvider } from \"./AlouetteProvider\";\n\n// eslint-disable-next-line react/function-component-definition -- not a component\nexport const AlouetteDecorator: Decorator = (storyFn, context) => {\n const systemColorScheme = useColorScheme();\n const [theme, setTheme] = useState(systemColorScheme || \"light\");\n\n useEffect(() => {\n const backgroundColor = context.globals.backgrounds?.value;\n if (backgroundColor === \"#000000\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"light\");\n }\n }, [context.globals.backgrounds?.value]);\n\n return (\n <AlouetteProvider\n tamaguiConfig={context.parameters.tamaguiConfig}\n defaultTheme={theme}\n >\n {storyFn(context)}\n </AlouetteProvider>\n );\n};\n","import type { GetProps } from \"@tamagui/core\";\nimport { Stack, styled } from \"@tamagui/core\";\n\nexport const Separator = styled(Stack, {\n name: \"Separator\",\n flexGrow: 1,\n flexShrink: 0,\n height: 0,\n maxHeight: 0,\n borderColor: \"$borderColor\",\n borderWidth: 0,\n borderBottomWidth: 1,\n y: -0.5,\n\n variants: {\n vertical: {\n true: {\n height: \"auto\",\n maxHeight: \"auto\",\n width: 0,\n maxWidth: 0,\n borderBottomWidth: 0,\n borderRightWidth: 1,\n y: 0,\n x: -0.5,\n },\n },\n } as const,\n} as const);\n\nexport type SeparatorProps = GetProps<typeof Separator>;\n","import { CaretRightRegularIcon } from \"alouette-icons/phosphor-icons\";\nimport type { ReactNode } from \"react\";\nimport { Pressable } from \"react-native\";\nimport { Icon } from \"../primitives/Icon\";\nimport { View } from \"../primitives/View\";\nimport { HStack, Stack } from \"../primitives/stacks\";\n\nexport interface PressableListItemProps {\n children: ReactNode;\n onPress: () => void;\n}\nexport function PressableListItem({\n children,\n onPress,\n}: PressableListItemProps): ReactNode {\n return (\n <Pressable onPress={onPress}>\n <HStack\n justifyContent=\"space-between\"\n paddingHorizontal=\"$4\"\n paddingVertical=\"$3\"\n >\n <View>{children}</View>\n <Stack justifyContent=\"center\">\n <Icon icon={<CaretRightRegularIcon />} size={20} />\n </Stack>\n </HStack>\n </Pressable>\n );\n}\n"],"names":["variants","ScrollViewNative","BreakpointNameEnum","Stack"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-node20.mjs","sources":["../src/components/primitives/createVariants.ts","../src/components/containers/variants.ts","../src/components/containers/Box.tsx","../src/components/containers/PressableBox.tsx","../src/components/primitives/Icon.tsx","../src/components/actions/IconButton.tsx","../src/components/primitives/stacks.ts","../src/components/typography/Typography.tsx","../src/components/actions/Button.tsx","../src/components/feedback/FeedbackIcon.tsx","../src/components/feedback/Message.tsx","../src/components/forms/InputText.tsx","../src/components/primitives/ScrollView.ts","../src/components/story-components/StoryTitle.tsx","../src/components/story-components/Story.tsx","../src/components/story-components/StoryContainer.tsx","../src/components/story-components/StoryDecorator.tsx","../src/components/story-components/StoryGrid.tsx","../src/components/story-components/WithTamaguiConfig.tsx","../src/config/Breakpoints.ts","../src/components/windowSize/useCurrentBreakpointName.ts","../src/components/windowSize/SwitchBreakpoints.tsx","../src/core/AlouetteProvider.tsx","../src/core/AlouetteDecorator.tsx","../src/components/layout/Separator.tsx","../src/components/layout/list.tsx"],"sourcesContent":["import type { VariantSpreadExtras } from \"@tamagui/core\";\n\nexport const fullscreenStyle = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const;\n\nexport type InternalPseudoState = \"focus\" | \"hover\" | \"press\";\n\n// eslint-disable-next-line complexity\nexport const getInteractionStyles = (\n name: \"backgroundColor\" | \"borderColor\" | \"shadowColor\",\n {\n internalForcedPseudoState,\n disabled,\n interactive,\n variant,\n }: VariantSpreadExtras<any>[\"props\"],\n) => {\n const isGhost = variant?.startsWith(\"ghost-\");\n const prefix =\n interactive === \"text\"\n ? \"interactive.forms\"\n : // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `interactive.${(isGhost ? variant.slice(6) : variant) || \"contained\"}`;\n\n if (disabled) {\n return { [name]: `$${prefix}.${name}:disabled` } as const;\n }\n\n if (name === \"shadowColor\") {\n // no need to add :hover, :focus, :press, and causes issues because all of the box-shadow is set and resets width etc\n return { [name]: `$${prefix}.${name}` } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return { [name]: `$${prefix}.${name}:hover` } as const;\n case \"press\":\n return { [name]: `$${prefix}.${name}:press` } as const;\n case \"focus\":\n return { [name]: `$${prefix}.${name}:focus` } as const;\n default:\n break;\n }\n }\n\n return {\n [name]: isGhost ? \"transparent\" : `$${prefix}.${name}`,\n hoverStyle: { [name]: `$${prefix}.${name}:hover` },\n pressStyle: { [name]: `$${prefix}.${name}:press` },\n focusStyle: { [name]: `$${prefix}.${name}:focus` },\n } as const;\n};\n","import type { SizeTokens, VariantSpreadExtras, ViewStyle } from \"@tamagui/core\";\nimport type { InternalPseudoState } from \"../primitives/createVariants\";\nimport { getInteractionStyles } from \"../primitives/createVariants\";\n\nexport const internalForcedPseudoState = (val: InternalPseudoState) => ({});\n\nexport const withBorder = (\n val: SizeTokens | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n return {\n borderWidth: typeof val !== \"boolean\" ? val : 1,\n\n ...(props.interactive\n ? getInteractionStyles(\"borderColor\", props)\n : { borderColor: \"$borderColor\" }),\n } as const;\n};\n\nexport const withBackground = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!val) return {} as const;\n\n if (!props.role && !props.outlineStyle && props.interactive) {\n throw new Error(\"A role prop is required while using interactive\");\n }\n\n return {\n ...(props.interactive\n ? getInteractionStyles(\"backgroundColor\", props)\n : { backgroundColor: \"$mainColor\" }),\n } as const;\n};\n\nexport const withElevation = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!val) return {} as const;\n\n return {\n ...(props.disabled\n ? {}\n : {\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.65,\n shadowRadius: 6,\n elevation: 5,\n }),\n ...(props.interactive\n ? getInteractionStyles(\"shadowColor\", props)\n : { shadowColor: \"$shadowColor\" }),\n } as const;\n};\n\nconst circularStyle = {\n borderRadius: 100_000,\n padding: 0,\n};\n\nexport const size = (val: number) => {\n return { width: val, height: val } as const;\n};\n\nexport const circular = {\n true: (val: boolean, { props, tokens }: { props: any; tokens: any }) => {\n if (!(\"size\" in props)) {\n return circularStyle;\n }\n const sizePropValue: keyof typeof tokens.size = props.size;\n const sizeValue = tokens.size[sizePropValue];\n return {\n ...circularStyle,\n width: sizeValue,\n height: sizeValue,\n maxWidth: sizeValue,\n maxHeight: sizeValue,\n minWidth: sizeValue,\n minHeight: sizeValue,\n };\n },\n} as const;\n\nexport const interactive = (\n isInteractiveOrInteractiveCursorType: ViewStyle[\"cursor\"] | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!isInteractiveOrInteractiveCursorType) return null;\n if (props.disabled) {\n return { cursor: \"not-allowed\" } as const;\n }\n return {\n cursor:\n isInteractiveOrInteractiveCursorType === true\n ? \"pointer\"\n : isInteractiveOrInteractiveCursorType,\n } as const;\n};\n\nexport const centered = {\n true: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n} as const;\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport * as variants from \"./variants\";\n\n/** View with alouette variants */\nexport const Box = styled(View, {\n name: \"Box\",\n variants,\n animation: \"fast\",\n} as const);\n\nexport type BoxProps = GetProps<typeof Box>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Box } from \"./Box\";\n\nexport const PressableBox = styled(Box, {\n interactive: true,\n} as const);\n\nexport type PressableBoxProps = GetProps<typeof PressableBox>;\n","import type { ColorTokens, GetProps, Variable } from \"@tamagui/core\";\nimport { useStyle } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport type { OpaqueColorValue } from \"react-native\";\nimport type { BoxProps } from \"../containers/Box\";\nimport { Box } from \"../containers/Box\";\n\nexport interface IconProps\n extends Exclude<GetProps<typeof Box>, \"alignSelf\" | \"style\"> {\n icon: ReactElement;\n color?: ColorTokens | OpaqueColorValue | Variable<any> | undefined;\n align?: BoxProps[\"alignSelf\"];\n contrast?: boolean;\n size?: number;\n}\n\nexport function Icon({\n icon,\n size = 20,\n align = \"auto\",\n contrast,\n color = contrast ? \"$contrastTextColor\" : \"$textColor\",\n ...props\n}: IconProps): ReactNode {\n const style = useStyle({\n color,\n // if needed for native\n // resolveValues: Platform.OS === 'web' ? undefined: 'value',\n });\n\n // if needed for native\n // const clonedIcon = cloneElement(icon, { style });\n // const clonedIcon = cloneElement(icon, { color: style.color });\n\n return (\n <Box {...props} centered alignSelf={align} size={size} style={style as any}>\n {icon}\n </Box>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport { PressableBox } from \"../containers/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\n\nconst IconButtonFrame = styled(PressableBox, {\n name: \"IconButtonFrame\",\n role: \"button\",\n centered: true,\n borderRadius: 10_000,\n\n variants: {\n variant: {\n contained: {\n withBackground: true,\n },\n outlined: {\n withBackground: true,\n withBorder: 1,\n },\n elevated: {\n withBackground: true,\n withElevation: true,\n withBorder: 1,\n },\n \"ghost-contained\": {\n withBackground: true,\n },\n \"ghost-outlined\": {\n withBackground: true,\n withBorder: 1,\n },\n },\n },\n\n defaultVariants: {\n variant: \"contained\",\n },\n});\n\nconst getDisabledColor = (\n variant:\n | \"contained\"\n | \"elevated\"\n | \"ghost-contained\"\n | \"ghost-outlined\"\n | \"outlined\",\n) => {\n return variant === \"contained\" || variant === \"ghost-contained\"\n ? \"$contrastTextColor:disabled\"\n : \"$textColor:disabled\";\n};\n\ntype IconButtonFrameProps = GetProps<typeof IconButtonFrame>;\n\nexport interface IconButtonProps extends IconButtonFrameProps {\n icon: NonNullable<ReactElement>;\n}\n\nexport function IconButton({\n icon,\n disabled,\n size = 40,\n variant = \"contained\",\n ...pressableProps\n}: IconButtonProps): ReactNode {\n return (\n <IconButtonFrame\n size={size}\n variant={variant}\n disabled={disabled}\n {...pressableProps}\n >\n <Icon\n size={size / 2}\n color={disabled ? getDisabledColor(variant) : undefined}\n contrast={\n (variant === \"contained\" || variant === \"ghost-contained\") &&\n !disabled\n }\n icon={icon}\n />\n </IconButtonFrame>\n );\n}\n","import { View, styled } from \"@tamagui/core\";\nimport type { GetProps } from \"@tamagui/core\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nconst variants = {\n fullscreen: {\n true: fullscreenStyle,\n },\n} as const;\n\nexport const Stack = styled(View, {\n name: \"Stack\",\n variants: {\n ...variants,\n type: {\n h: { flexDirection: \"row\" },\n v: { flexDirection: \"column\" },\n },\n } as const,\n});\n\nexport type StackProps = GetProps<typeof Stack>;\n\nexport const HStack = styled(View, {\n name: \"HStack\",\n flexDirection: \"row\",\n variants,\n});\n\nexport type HStackProps = GetProps<typeof HStack>;\n\nexport const VStack = styled(View, {\n name: \"VStack\",\n flexDirection: \"column\",\n});\n\nexport type VStackProps = GetProps<typeof VStack>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { Text, styled } from \"@tamagui/core\";\nimport { createContext, useContext } from \"react\";\n\nexport const Typography = styled(Text, {\n name: \"Typography\",\n fontFamily: \"$body\",\n color: \"$textColor\",\n fontWeight: \"$regular\",\n\n variants: {\n size: {\n xl: { fontSize: \"$xl\", lineHeight: \"$xl\" },\n lg: { fontSize: \"$lg\", lineHeight: \"$lg\" },\n md: { fontSize: \"$md\", lineHeight: \"$md\" },\n sm: { fontSize: \"$sm\", lineHeight: \"$sm\" },\n xs: { fontSize: \"$xs\", lineHeight: \"$xs\" },\n },\n weight: {\n regular: { fontWeight: \"$regular\" },\n bold: { fontWeight: \"$bold\" },\n black: { fontWeight: \"$black\" },\n },\n family: {\n heading: { fontFamily: \"$heading\" },\n body: { fontFamily: \"$body\" },\n },\n contrast: {\n true: {\n color: \"$contrastTextColor\",\n },\n false: {\n color: \"$textColor\",\n },\n },\n },\n\n defaultVariants: {\n size: \"md\",\n weight: \"regular\",\n family: \"body\",\n },\n} as const);\n\nexport type TypographyProps = GetProps<typeof Typography>;\n\nexport const TypographyParagraph = styled(Typography, {\n name: \"TypographyParagraph\",\n tag: \"p\",\n userSelect: \"auto\",\n family: \"body\",\n} as const);\n\nexport type TypographyParagraphProps = GetProps<typeof TypographyParagraph>;\n\nconst TypographySizeContext = createContext<TypographyProps[\"size\"]>(undefined);\n\nexport const TypographyWithContext = Typography.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n if (sizeOrAncestorSizeOrDefaultSize !== size) {\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n }\n return <Typography ref={ref} size={size} {...props} />;\n },\n);\n\nexport const TypographyParagraphWithContext = TypographyParagraph.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n },\n);\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { PressableBox } from \"../containers/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\nimport { HStack } from \"../primitives/stacks\";\nimport { Typography } from \"../typography/Typography\";\n\nconst ButtonFrame = styled(PressableBox, {\n name: \"ButtonFrame\",\n role: \"button\",\n centered: true,\n minHeight: 42,\n\n variants: {\n size: {\n sm: {\n paddingHorizontal: \"$sm\",\n borderRadius: \"$3\",\n minHeight: 32,\n },\n md: {\n paddingHorizontal: \"$md\",\n borderRadius: \"$sm\",\n minHeight: 42,\n },\n },\n variant: {\n contained: {\n withBackground: true,\n },\n outlined: {\n withBackground: true,\n withBorder: true,\n },\n elevated: {\n withBackground: true,\n withElevation: true,\n withBorder: true,\n borderColor: \"$contrastBorderColor\",\n },\n \"ghost-contained\": {\n withBackground: true,\n },\n \"ghost-outlined\": {\n withBorder: 1,\n withBackground: true,\n },\n },\n },\n\n defaultVariants: {\n variant: \"contained\",\n size: \"md\",\n },\n});\n\ntype ButtonFrameProps = GetProps<typeof ButtonFrame>;\n\nexport interface ButtonProps extends Except<ButtonFrameProps, \"size\"> {\n icon?: NonNullable<ReactElement>;\n text: ReactNode;\n size?: \"md\" | \"sm\";\n}\n\nconst getDisabledColor = (\n variant:\n | \"contained\"\n | \"elevated\"\n | \"ghost-contained\"\n | \"ghost-outlined\"\n | \"outlined\",\n) => {\n return variant === \"contained\" || variant === \"ghost-contained\"\n ? \"$contrastTextColor:disabled\"\n : \"$textColor:disabled\";\n};\n\n// eslint-disable-next-line complexity\nexport function Button({\n icon,\n text,\n disabled,\n variant = \"contained\",\n size = \"md\",\n ...pressableProps\n}: ButtonProps): ReactNode {\n return (\n <ButtonFrame\n disabled={disabled}\n variant={variant}\n size={size}\n {...pressableProps}\n >\n <HStack gap=\"$xs\" alignItems=\"center\">\n {icon && (\n <Icon\n color={disabled ? getDisabledColor(variant) : undefined}\n contrast={\n (variant === \"contained\" || variant === \"ghost-contained\") &&\n !disabled\n }\n icon={icon}\n size={size === \"sm\" ? 16 : 20}\n />\n )}\n <Typography\n size={size}\n weight=\"bold\"\n paddingVertical={size === \"sm\" ? \"$1\" : \"$xs\"}\n color={disabled ? getDisabledColor(variant) : undefined}\n contrast={\n (variant === \"contained\" || variant === \"ghost-contained\") &&\n !disabled\n }\n >\n {text}\n </Typography>\n </HStack>\n </ButtonFrame>\n );\n}\n","import {\n CheckRegularIcon,\n InfoRegularIcon,\n WarningCircleRegularIcon,\n WarningRegularIcon,\n} from \"alouette-icons/phosphor-icons\";\nimport type { ReactNode } from \"react\";\nimport type { MessageProps } from \"./Message\";\n\ninterface FeedbackIconProps {\n type: MessageProps[\"theme\"];\n}\n\nexport function FeedbackIcon({ type }: FeedbackIconProps): ReactNode {\n switch (type) {\n case \"warning\":\n return <WarningCircleRegularIcon />;\n case \"success\":\n return <CheckRegularIcon />;\n case \"danger\":\n return <WarningRegularIcon />;\n default:\n return <InfoRegularIcon />;\n }\n}\n","import { View, styled } from \"@tamagui/core\";\nimport { XRegularIcon } from \"alouette-icons/phosphor-icons\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { IconButton } from \"../actions/IconButton\";\nimport { Box } from \"../containers/Box\";\nimport { Icon } from \"../primitives/Icon\";\nimport { Typography } from \"../typography/Typography\";\nimport { FeedbackIcon } from \"./FeedbackIcon\";\n\nexport const MessageFrame = styled(Box, {\n name: \"MessageFrame\",\n alignItems: \"center\",\n withBackground: true,\n borderRadius: \"$md\",\n paddingHorizontal: \"$4\",\n flexDirection: \"row\",\n gap: \"$4\",\n} as const);\n\nexport const MessageText = styled(Typography, {\n name: \"MessageText\",\n contrast: true,\n size: \"md\",\n flexGrow: 1,\n paddingVertical: \"$4\",\n variants: {\n centered: {\n true: {\n textAlign: \"center\",\n paddingHorizontal: \"$4\",\n },\n },\n },\n} as const);\n\nconst MessageIconContainer = styled(View, {\n name: \"MessageIconContainer\",\n alignItems: \"center\",\n});\n\nconst MessageDismissButtonContainer = styled(View, {\n name: \"MessageDismissButtonContainer\",\n marginRight: \"$2\",\n});\n\nexport interface MessageProps {\n theme: NonNullable<ComponentProps<typeof MessageFrame>[\"theme\"]>;\n children?: ReactNode;\n textCentered?: boolean;\n onDismiss?: () => void;\n}\n\nexport function Message({\n theme,\n textCentered,\n children,\n onDismiss,\n}: MessageProps): ReactNode {\n return (\n <MessageFrame theme={theme}>\n {textCentered ? null : (\n <MessageIconContainer>\n <Icon contrast icon={<FeedbackIcon type={theme} />} />\n </MessageIconContainer>\n )}\n <MessageText centered={textCentered}>{children}</MessageText>\n {onDismiss ? (\n <MessageDismissButtonContainer>\n <IconButton\n icon={<XRegularIcon />}\n size={40}\n variant=\"ghost-contained\"\n />\n </MessageDismissButtonContainer>\n ) : null}\n </MessageFrame>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { TextInput } from \"react-native\";\nimport * as variants from \"../containers/variants\";\n\nconst StyledInputText = styled(\n TextInput,\n {\n variants,\n\n padding: \"$xs\",\n borderRadius: \"$sm\",\n\n color: \"$interactive.forms.textColor\",\n // currently not working in web unless we use tamagui Input\n // placeholderTextColor: \"$interactive.forms.placeholderTextColor\",\n\n // @ts-expect-error missing prop due to isInput but in does exist in variants\n withBorder: true,\n withBackground: true,\n\n borderWidth: 1,\n borderBottomWidth: 3,\n\n // reset browser style\n outlineStyle: \"none\",\n },\n { isInput: true },\n);\n\nexport const InputText = styled(StyledInputText, {\n name: \"InputText\",\n interactive: \"text\",\n theme: \"primary\",\n // animation: \"formElement\", // remove all style ?\n});\n\nexport type InputTextProps = GetProps<typeof InputText>;\n\nexport const TextArea = styled(InputText, {\n multiline: true,\n});\n\nexport type TextAreaProps = GetProps<typeof TextArea>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { ScrollView as ScrollViewNative } from \"react-native\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nexport const ScrollView = styled(\n ScrollViewNative,\n {\n name: \"ScrollView\",\n scrollEnabled: true,\n\n variants: {\n fullscreen: {\n true: fullscreenStyle,\n },\n },\n } as const,\n {\n accept: {\n contentContainerStyle: \"style\",\n },\n } as const,\n);\n\nexport type ScrollView = Pick<ScrollViewNative, \"scrollTo\">;\n\nexport type ScrollViewProps = GetProps<typeof ScrollView>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Typography } from \"../typography/Typography\";\n\nexport const StoryTitle = styled(Typography, {\n family: \"heading\",\n weight: \"black\",\n variants: {\n level: {\n 1: { size: \"xl\", marginBottom: \"$8\" },\n 2: { size: \"lg\", marginBottom: \"$8\" },\n 3: { size: \"md\", marginBottom: \"$3\" },\n 4: { size: \"sm\", marginBottom: \"$3\" },\n },\n } as const,\n\n defaultVariants: {\n level: 1,\n },\n} as const);\n\nexport type StoryTitleProps = GetProps<typeof StoryTitle>;\n","import { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport type { VStackProps } from \"../primitives/stacks\";\nimport { VStack } from \"../primitives/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nconst InternalStorySection = styled(VStack, {\n marginBottom: \"$8\",\n paddingHorizontal: \"$4\",\n marginHorizontal: \"$-4\",\n variants: {\n withBackground: {\n true: {\n backgroundColor: \"$backgroundColor\",\n },\n },\n } as const,\n});\n\nexport type StorySectionProps = Except<VStackProps, \"marginBottom\"> & {\n title: ReactNode;\n children: ReactNode;\n level?: 1 | 2;\n withBackground?: boolean;\n};\n\nfunction StorySection({\n title,\n children,\n level = 1,\n withBackground,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection withBackground={withBackground} {...props}>\n <StoryTitle level={(level + 1) as 2 | 3}>{title}</StoryTitle>\n {children}\n </InternalStorySection>\n );\n}\n\nfunction SubSection({\n title,\n children,\n withBackground,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection\n marginBottom=\"$4\"\n withBackground={withBackground}\n {...props}\n >\n <StoryTitle level={3}>{title}</StoryTitle>\n {children}\n </InternalStorySection>\n );\n}\n\nexport interface StoryProps {\n preview?: NonNullable<ReactNode>;\n children?: NonNullable<ReactNode>;\n}\n\nexport function Story({ preview, children }: StoryProps): ReactNode {\n return (\n <>\n {preview && (\n <StorySection title=\"Preview\" paddingBottom=\"$12\">\n {preview}\n </StorySection>\n )}\n {children}\n </>\n );\n}\n\nStory.Section = StorySection;\nStory.SubSection = SubSection;\n","import type { ReactNode } from \"react\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nexport interface StoryContainerProps {\n title: ReactNode;\n children: NonNullable<ReactNode>;\n}\n\nexport function StoryContainer({\n title,\n children,\n}: StoryContainerProps): ReactNode {\n return (\n <ScrollView theme=\"light\" backgroundColor=\"#fff\" padding=\"$4\">\n <StoryTitle level={1}>{title}</StoryTitle>\n {children}\n </ScrollView>\n );\n}\n","import type { Decorator } from \"@storybook/react\";\nimport { StoryContainer } from \"./StoryContainer\";\n\n// eslint-disable-next-line react/function-component-definition -- not a component, it's a decorator for storybook.\nexport const StoryDecorator: Decorator = (storyFn, { name, container }) => {\n if (container === false) return storyFn();\n return <StoryContainer title={name}>{storyFn()}</StoryContainer>;\n};\n","import type { ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { Platform } from \"react-native\";\nimport { View } from \"../primitives/View\";\nimport { VStack } from \"../primitives/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: \"medium\" | \"small\";\n flexWrap?: boolean;\n}\n\nfunction StoryGridRow({\n children,\n breakpoint = \"small\",\n flexWrap,\n}: StoryGridRowProps): ReactNode {\n return (\n <View\n flexDirection=\"column\"\n {...{\n [`$${breakpoint}`]: {\n flexDirection: \"row\",\n marginVertical: \"$-1\",\n marginBottom: \"$4\",\n flexWrap: flexWrap ? \"wrap\" : undefined,\n gap: flexWrap ? \"$xs\" : undefined,\n },\n }}\n >\n {Children.map(children, (child) => (\n <View\n paddingTop=\"$2\"\n paddingBottom=\"$4\"\n {...{\n [`$${breakpoint}`]: {\n flexGrow: 1,\n flexBasis: flexWrap ? undefined : 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginVertical: \"$2\",\n },\n }}\n >\n {child}\n </View>\n ))}\n </View>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n platform?: \"all\" | \"native\" | \"web\";\n}\n\nfunction StoryGridCol({\n title,\n children,\n platform = \"all\",\n}: StoryGridColProps): ReactNode {\n const isNative = Platform.OS === \"ios\" || Platform.OS === \"android\";\n\n if (Platform.OS === \"web\" && platform === \"native\") {\n return null;\n }\n\n if (isNative && platform === \"web\") {\n return null;\n }\n\n return title ? (\n <VStack>\n <StoryTitle level={4} numberOfLines={1}>\n {title}\n </StoryTitle>\n {children}\n </VStack>\n ) : (\n children\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import { useConfiguration } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\n\nexport interface WithTamaguiConfigProps {\n render: (\n config: ReturnType<typeof useConfiguration>,\n ) => NonNullable<ReactNode>;\n}\n\nexport function WithTamaguiConfig({\n render,\n}: WithTamaguiConfigProps): ReactNode {\n const config = useConfiguration();\n return render(config);\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 { useMedia } from \"@tamagui/core\";\nimport type { BreakpointNames } from \"../../config/Breakpoints\";\nimport { BreakpointNameEnum } from \"../../config/Breakpoints\";\n\nexport function useCurrentBreakpointName(): BreakpointNameEnum {\n const media = useMedia();\n\n if (media.wide) return BreakpointNameEnum.WIDE;\n if (media.large) return BreakpointNameEnum.LARGE;\n if (media.medium) return BreakpointNameEnum.MEDIUM;\n if (media.small) return BreakpointNameEnum.SMALL;\n return BreakpointNameEnum.BASE;\n}\n\nexport function useCurrentBreakpointNameFiltered<\n Names extends BreakpointNames[],\n>(names: Names): Names[number] {\n const media = useMedia();\n\n if (names.includes(BreakpointNameEnum.WIDE) && media.wide) {\n return BreakpointNameEnum.WIDE;\n }\n if (names.includes(BreakpointNameEnum.LARGE) && media.large) {\n return BreakpointNameEnum.LARGE;\n }\n if (names.includes(BreakpointNameEnum.MEDIUM) && media.medium) {\n return BreakpointNameEnum.MEDIUM;\n }\n if (names.includes(BreakpointNameEnum.SMALL) && media.small) {\n return BreakpointNameEnum.SMALL;\n }\n return BreakpointNameEnum.BASE;\n}\n","import type { ReactNode } from \"react\";\nimport type { SetRequired } from \"type-fest\";\nimport type { BreakpointNames } from \"../../config/Breakpoints\";\nimport { View } from \"../primitives/View\";\nimport { useCurrentBreakpointNameFiltered } from \"./useCurrentBreakpointName\";\n\ntype SwitchBreakpointsProps = SetRequired<\n Partial<Record<BreakpointNames, ReactNode>>,\n \"base\"\n> & { children?: never };\n\n/**\n * Display based on current breakpoint\n *\n * This mode is SSR friendly\n */\nexport function SwitchBreakpointsUsingDisplayNone({\n ...breakpoints\n}: SwitchBreakpointsProps): ReactNode {\n const entries = Object.entries(breakpoints);\n\n return entries.map(([name, node], index) => {\n return (\n <View\n key={name}\n display={name === \"base\" ? \"flex\" : \"none\"}\n {...(name === \"base\"\n ? undefined\n : { display: \"none\", [`$${name}`]: { display: \"flex\" } })}\n {...(index + 1 in entries\n ? { [`$${entries[index + 1]![0]}`]: { display: \"none\" } }\n : undefined)}\n >\n {node}\n </View>\n );\n });\n}\n\n/**\n * Display based on current breakpoint\n *\n * This mode is not SSR friendly\n */\nexport function SwitchBreakpointsUsingNull({\n children,\n ...breakpoints\n}: SwitchBreakpointsProps): ReactNode {\n const currentBreakpointName = useCurrentBreakpointNameFiltered(\n Object.keys(breakpoints) as (keyof typeof breakpoints)[],\n );\n\n return breakpoints[currentBreakpointName] ?? null;\n}\n","import type { TamaguiProviderProps } from \"@tamagui/core\";\nimport { TamaguiProvider } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport { useColorScheme } from \"react-native\";\n\nexport interface AlouetteProviderProps\n extends Pick<TamaguiProviderProps, \"disableInjectCSS\"> {\n children: ReactNode;\n tamaguiConfig: TamaguiProviderProps[\"config\"];\n defaultTheme?: \"dark\" | \"light\";\n}\n\nexport const useDefaultThemeFromColorScheme = () => {\n const colorScheme = useColorScheme();\n return colorScheme || \"light\";\n};\n\nexport function AlouetteProvider({\n children,\n tamaguiConfig,\n defaultTheme = \"light\",\n disableInjectCSS,\n}: AlouetteProviderProps): ReactNode {\n return (\n <TamaguiProvider\n config={tamaguiConfig}\n defaultTheme={defaultTheme}\n disableInjectCSS={disableInjectCSS}\n >\n {children}\n </TamaguiProvider>\n );\n}\n","/* eslint-disable react/destructuring-assignment */\nimport type { Decorator } from \"@storybook/react\";\nimport { useEffect, useState } from \"react\";\nimport { useColorScheme } from \"react-native\";\nimport { AlouetteProvider } from \"./AlouetteProvider\";\n\n// eslint-disable-next-line react/function-component-definition -- not a component\nexport const AlouetteDecorator: Decorator = (storyFn, context) => {\n const systemColorScheme = useColorScheme();\n const [theme, setTheme] = useState(systemColorScheme || \"light\");\n\n useEffect(() => {\n const backgroundColor = context.globals.backgrounds?.value;\n if (backgroundColor === \"#000000\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"light\");\n }\n }, [context.globals.backgrounds?.value]);\n\n return (\n <AlouetteProvider\n tamaguiConfig={context.parameters.tamaguiConfig}\n defaultTheme={theme}\n >\n {storyFn(context)}\n </AlouetteProvider>\n );\n};\n","import type { GetProps } from \"@tamagui/core\";\nimport { Stack, styled } from \"@tamagui/core\";\n\nexport const Separator = styled(Stack, {\n name: \"Separator\",\n flexGrow: 1,\n flexShrink: 0,\n height: 0,\n maxHeight: 0,\n borderColor: \"$borderColor\",\n borderWidth: 0,\n borderBottomWidth: 1,\n y: -0.5,\n\n variants: {\n vertical: {\n true: {\n height: \"auto\",\n maxHeight: \"auto\",\n width: 0,\n maxWidth: 0,\n borderBottomWidth: 0,\n borderRightWidth: 1,\n y: 0,\n x: -0.5,\n },\n },\n } as const,\n} as const);\n\nexport type SeparatorProps = GetProps<typeof Separator>;\n","import { CaretRightRegularIcon } from \"alouette-icons/phosphor-icons\";\nimport type { ReactNode } from \"react\";\nimport { Pressable } from \"react-native\";\nimport { Icon } from \"../primitives/Icon\";\nimport { View } from \"../primitives/View\";\nimport { HStack, Stack } from \"../primitives/stacks\";\n\nexport interface PressableListItemProps {\n children: ReactNode;\n onPress: () => void;\n}\nexport function PressableListItem({\n children,\n onPress,\n}: PressableListItemProps): ReactNode {\n return (\n <Pressable onPress={onPress}>\n <HStack\n justifyContent=\"space-between\"\n paddingHorizontal=\"$4\"\n paddingVertical=\"$3\"\n >\n <View>{children}</View>\n <Stack justifyContent=\"center\">\n <Icon icon={<CaretRightRegularIcon />} size={20} />\n </Stack>\n </HStack>\n </Pressable>\n );\n}\n"],"names":["variants","getDisabledColor","ScrollViewNative","BreakpointNameEnum","Stack"],"mappings":"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"}
|