alouette 18.6.1 → 18.8.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 +20 -0
- package/dist/definitions/ui/inputs/InputText.d.ts +1 -1
- package/dist/definitions/ui/inputs/InputText.d.ts.map +1 -1
- package/dist/definitions/ui/inputs/PlatformInputText.web.d.ts +3 -1
- package/dist/definitions/ui/inputs/PlatformInputText.web.d.ts.map +1 -1
- package/dist/index-browser.es.js +8 -2
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-node22.cjs.map +1 -1
- package/dist/index-node22.mjs.map +1 -1
- package/dist/index-react-native.cjs.js.map +1 -1
- package/dist/index-react-native.es.js.map +1 -1
- package/package.json +9 -7
- package/src/ui/inputs/InputText.tsx +1 -0
- package/src/ui/inputs/PlatformInputText.web.tsx +8 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,26 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [18.8.0](https://github.com/christophehurpeau/alouette/compare/alouette@18.7.0...alouette@18.8.0) (2026-05-01)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **deps:** update dependency type-fest to v5 ([#248](https://github.com/christophehurpeau/alouette/issues/248))
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* add @tamagui/metro-plugin to have warning when version is not compatible
|
|
15
|
+
* **deps:** update tamagui to v2.0.0-rc.41 ([#305](https://github.com/christophehurpeau/alouette/issues/305))
|
|
16
|
+
|
|
17
|
+
Version bump for dependency: alouette-icons
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [18.7.0](https://github.com/christophehurpeau/alouette/compare/alouette@18.6.1...alouette@18.7.0) (2026-03-12)
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* allow onChangeText
|
|
25
|
+
|
|
6
26
|
## [18.6.1](https://github.com/christophehurpeau/alouette/compare/alouette@18.6.0...alouette@18.6.1) (2026-03-12)
|
|
7
27
|
|
|
8
28
|
Note: no notable changes
|
|
@@ -21,7 +21,7 @@ declare const NativeInputText: import("@tamagui/web").TamaguiComponent<import("@
|
|
|
21
21
|
} & import("@tamagui/web").StaticConfigPublic>;
|
|
22
22
|
export type InputTextProps = Pick<GetProps<typeof NativeInputText>, "aria-labelledby" | "autoCapitalize" | "autoCorrect" | "defaultValue" | "disabled" | "forceStyle" | "id" | "maxLength" | "mode"
|
|
23
23
|
/** @internal use Textarea */
|
|
24
|
-
| "multiline" | "onChange" | "placeholder" | "readOnly" | "testID" | "theme" | "value">;
|
|
24
|
+
| "multiline" | "onChange" | "onChangeText" | "placeholder" | "readOnly" | "testID" | "theme" | "value">;
|
|
25
25
|
export declare const InputText: FunctionComponent<InputTextProps>;
|
|
26
26
|
export {};
|
|
27
27
|
//# sourceMappingURL=InputText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputText.d.ts","sourceRoot":"","sources":["../../../../src/ui/inputs/InputText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI/C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;8CAuCnB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,QAAQ,CAAC,OAAO,eAAe,CAAC,EAC9B,iBAAiB,GACjB,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,UAAU,GACV,YAAY,GACZ,IAAI,GACJ,WAAW,GACX,MAAM;AACR,6BAA6B;GAC3B,WAAW,GACX,UAAU,GACV,aAAa,GACb,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,CACV,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"InputText.d.ts","sourceRoot":"","sources":["../../../../src/ui/inputs/InputText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI/C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;8CAuCnB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,QAAQ,CAAC,OAAO,eAAe,CAAC,EAC9B,iBAAiB,GACjB,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,UAAU,GACV,YAAY,GACZ,IAAI,GACJ,WAAW,GACX,MAAM;AACR,6BAA6B;GAC3B,WAAW,GACX,UAAU,GACV,cAAc,GACd,aAAa,GACb,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,CACV,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAmB,CAAC"}
|
|
@@ -2,12 +2,14 @@ export declare const PlatformInputText: import("@tamagui/web").TamaguiComponent<
|
|
|
2
2
|
disabled?: boolean | undefined;
|
|
3
3
|
mode?: "number" | "search" | "tel" | "email" | "password" | undefined;
|
|
4
4
|
multiline?: boolean | undefined;
|
|
5
|
-
}>, "autoCapitalize" | "autoCorrect"> & {
|
|
5
|
+
}>, "autoCapitalize" | "autoCorrect" | "onChangeText"> & {
|
|
6
6
|
autoCorrect?: boolean;
|
|
7
7
|
autoCapitalize?: "characters" | "none" | "sentences" | "words";
|
|
8
|
+
onChangeText?: (value: string) => void;
|
|
8
9
|
}, import("@tamagui/web").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & {
|
|
9
10
|
autoCorrect?: boolean;
|
|
10
11
|
autoCapitalize?: "characters" | "none" | "sentences" | "words";
|
|
12
|
+
onChangeText?: (value: string) => void;
|
|
11
13
|
}, import("@tamagui/web").StackStyleBase, {
|
|
12
14
|
disabled?: boolean | undefined;
|
|
13
15
|
mode?: "number" | "search" | "tel" | "email" | "password" | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformInputText.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/inputs/PlatformInputText.web.tsx"],"names":[],"mappings":"AA8CA,eAAO,MAAM,iBAAiB;;;;;kBACd,OAAO;qBACJ,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO;;
|
|
1
|
+
{"version":3,"file":"PlatformInputText.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/inputs/PlatformInputText.web.tsx"],"names":[],"mappings":"AA8CA,eAAO,MAAM,iBAAiB;;;;;kBACd,OAAO;qBACJ,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO;mBAC/C,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;kBAFxB,OAAO;qBACJ,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO;mBAC/C,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;EActC,CAAC"}
|
package/dist/index-browser.es.js
CHANGED
|
@@ -662,13 +662,19 @@ const PlatformInputTextFrame = styled(
|
|
|
662
662
|
validStyles: Text$1.staticConfig.validStyles
|
|
663
663
|
}
|
|
664
664
|
);
|
|
665
|
-
const PlatformInputText = PlatformInputTextFrame.styleable(({ autoCorrect, ...rest }) => /* @__PURE__ */ jsx(
|
|
665
|
+
const PlatformInputText = PlatformInputTextFrame.styleable(({ autoCorrect, onChangeText, onChange, ...rest }) => /* @__PURE__ */ jsx(
|
|
666
666
|
PlatformInputTextFrame,
|
|
667
667
|
{
|
|
668
668
|
...{
|
|
669
669
|
autoCorrect: autoCorrect ? "on" : "off"
|
|
670
670
|
},
|
|
671
|
-
...rest
|
|
671
|
+
...rest,
|
|
672
|
+
onChange: (e) => {
|
|
673
|
+
if (onChangeText) {
|
|
674
|
+
onChangeText(e.target.value);
|
|
675
|
+
}
|
|
676
|
+
onChange?.(e);
|
|
677
|
+
}
|
|
672
678
|
}
|
|
673
679
|
));
|
|
674
680
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.es.js","sources":["../src/core/useSafeAreaInsets.web.ts","../src/ui/stacks/utils/absoluteFillStyle.ts","../src/ui/containers/createVariants.ts","../src/ui/containers/variants.ts","../src/ui/containers/Box.tsx","../src/ui/data/PressableBox.tsx","../src/ui/primitives/Icon.tsx","../src/ui/primitives/Text.tsx","../src/ui/actions/Button.tsx","../src/ui/actions/IconButton.tsx","../src/ui/containers/Surface.tsx","../src/ui/feedback/Message.tsx","../src/ui/inputs/inputStyle.ts","../src/ui/inputs/PlatformInputText.web.tsx","../src/ui/inputs/InputText.tsx","../src/ui/inputs/TextArea.tsx","../src/ui/primitives/ScrollView.ts","../src/ui/stacks/stacks.ts","../src/ui/story-components/StoryTitle.tsx","../src/ui/story-components/Story.tsx","../src/ui/story-components/StoryContainer.tsx","../src/ui/story-components/StoryDecorator.tsx","../src/ui/story-components/StoryGrid.tsx","../src/config/Breakpoints.ts","../src/windowSize/useCurrentBreakpointName.ts","../src/windowSize/SwitchBreakpoints.tsx","../src/core/AlouetteProvider.tsx","../src/core/SafeAreaProvider.web.ts","../src/core/AlouetteDecorator.tsx","../src/ui/stacks/Separator.tsx","../src/ui/data/PressableListItem.tsx","../src/ui/layout/GradientBackground.tsx","../src/ui/layout/GradientScrollView.tsx","../src/ui/inputs/Switch.web.tsx"],"sourcesContent":["import type { useSafeAreaInsets as useSafeAreaInsetsImpl } from \"react-native-safe-area-context\";\n\nexport const useSafeAreaInsets: typeof useSafeAreaInsetsImpl = () => ({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n});\n","export const absoluteFillStyle = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const;\n","import type { VariantSpreadExtras } from \"@tamagui/core\";\n\nexport const absoluteFillStyle = {\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 getInteractionStyles = (\n name: \"backgroundColor\" | \"borderColor\" | \"outlineColor\" | \"shadowColor\",\n {\n disabled,\n interactive,\n variant = name === \"borderColor\" ? \"outlined\" : \"contained\",\n tint,\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${tint === \"accent\" ? \"-accent\" : \"\"}.${isGhost ? variant.slice(6) : variant}`;\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 (name === \"outlineColor\") {\n return {\n focusVisibleStyle: {\n outlineWidth: interactive === \"text\" ? 0 : 2,\n outlineStyle: \"solid\",\n outlineOffset:\n variant === \"outlined\" || variant === \"ghost-outlined\" ? 2 : 0,\n outlineColor: `$${prefix}.${name}:focus`,\n },\n } as const;\n }\n\n return {\n [name]: isGhost ? \"transparent\" : `$${prefix}.${name}`,\n hoverStyle: { [name]: `$${prefix}.${name}:hover` },\n focusStyle: { [name]: `$${prefix}.${name}:focus` },\n pressStyle: { [name]: `$${prefix}.${name}:press` },\n disabledStyle: { [name]: `$${prefix}.${name}:disabled` },\n } as const;\n};\n","import type { SizeTokens, VariantSpreadExtras, ViewProps } from \"@tamagui/core\";\nimport { absoluteFillStyle } from \"../stacks/utils/absoluteFillStyle\";\nimport { getInteractionStyles } from \"./createVariants\";\n\nexport const absoluteFill = {\n true: absoluteFillStyle,\n} as const;\n\nexport const center = {\n true: {\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n} as const;\n\nexport const tint = {\n accent: {}, // used in interactive variant\n} as const;\n\nexport function interactive(\n isInteractiveOrInteractiveCursorType: ViewProps[\"cursor\"] | boolean,\n { props }: VariantSpreadExtras<any>,\n) {\n if (!isInteractiveOrInteractiveCursorType) return null;\n\n if (isInteractiveOrInteractiveCursorType === true) {\n return {\n cursor: \"pointer\",\n\n pressStyle: {\n transform: [{ scale: 0.975 }],\n },\n\n disabledStyle: {\n cursor: \"not-allowed\",\n opacity: \"$opacity.disabled\",\n transform: [{ scale: 1 }],\n },\n };\n }\n\n return {\n cursor: isInteractiveOrInteractiveCursorType,\n\n disabledStyle: {\n cursor: \"not-allowed\",\n opacity: \"$opacity.disabled\",\n },\n } as const;\n}\n\nexport const layer = {\n surface: {\n backgroundColor: \"$bg-surface\",\n },\n highlight: {\n backgroundColor: \"$bg-highlight\",\n },\n \"highlight-accent\": {\n backgroundColor: \"$bg-highlight-accent\",\n },\n lowered: {\n backgroundColor: \"$bg-lowered\",\n },\n translucent: {\n backgroundColor: \"$bg-translucent\",\n },\n} as const;\n\nexport const shadow = {\n none: {\n boxShadow: \"none\",\n elevationAndroid: 0,\n },\n s: {\n boxShadow:\n \"inset 0 1px 2px #ffffff40, 0 1px 2px #00000040, 0 2px 4px #00000025\",\n elevationAndroid: 2,\n },\n\n m: {\n boxShadow:\n \"inset 0 1px 2px #ffffff40, 0 2px 4px #00000040, 0 4px 8px #00000025\",\n elevationAndroid: 4,\n },\n\n l: {\n boxShadow:\n \"inset 0 1px 2px #ffffff40, 0 4px 6px #00000040, 0 6px 10px #00000025\",\n elevationAndroid: 6,\n },\n\n lowered: {\n boxShadow: \"inset 0 1px 2px #00000040, inset 0 -2px 2px #ffffff15\",\n },\n} as const;\n\nexport const square = (val: number) => {\n return { width: val, height: val };\n};\n\nexport const withBorder = (\n val: SizeTokens,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (props.shadow && props.shadow !== \"lowered\") {\n throw new Error(\"Cannot use border with shadow variant\");\n }\n\n return {\n borderWidth: val,\n\n ...(props.interactive\n ? getInteractionStyles(\"borderColor\", props)\n : { borderColor: \"$border-sharp\" }),\n } as const;\n};\n\nexport const withFocusVisibleOutline = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!val) return null;\n return {\n ...(props.interactive\n ? getInteractionStyles(\"outlineColor\", props)\n : { outlineColor: \"$outlineColor\" }),\n\n disabledStyle: {\n outlineWidth: 0,\n },\n } as const;\n};\n\nexport const withBackground = (\n val: \"highlight\" | \"interactive\" | \"surface\",\n { props }: VariantSpreadExtras<any>,\n) => {\n return props.interactive && val === \"interactive\"\n ? getInteractionStyles(\"backgroundColor\", props)\n : ({\n backgroundColor: val === \"surface\" ? \"$bg-surface\" : \"$bg-highlight\",\n } as const);\n};\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport { useSafeAreaInsets } from \"../../core/useSafeAreaInsets\";\nimport * as variants from \"./variants\";\n\nconst BoxFrame = styled(View, {\n // never apply overflow hidden here, as it will break shadows\n\n flexShrink: 1, // allow to shrink by default, as Box is often used in VSTack and HStack. See button for an example.\n\n variants,\n});\n\nexport type BoxProps = GetProps<typeof BoxFrame>;\n\nexport const Box =\n process.env.NODE_ENV !== \"production\"\n ? BoxFrame.styleable((props) => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n props.shadow === \"lowered\" &&\n props.layer !== \"lowered\"\n ) {\n throw new Error(\n 'shadow=\"lowered\" must only be used with layer=\"lowered\"',\n );\n }\n\n return <BoxFrame {...props} />;\n })\n : BoxFrame;\n\nexport const InteractiveBox = styled(BoxFrame, {\n interactive: true,\n tabIndex: 0,\n transition: \"fast\",\n variants: {\n disabled: {\n true: {\n tabIndex: -1 as const,\n },\n },\n } as const,\n});\n\nexport type InteractiveBoxProps = GetProps<typeof InteractiveBox>;\n\nexport const SafeAreaBox = BoxFrame.styleable<{\n padding?: never;\n paddingTop?: never;\n paddingBottom?: never;\n paddingLeft?: never;\n paddingRight?: never;\n}>((props) => {\n const insets = useSafeAreaInsets();\n return (\n <Box\n {...props}\n paddingTop={insets.top}\n paddingBottom={insets.bottom}\n paddingLeft={insets.left}\n paddingRight={insets.right}\n />\n );\n});\n\nexport type SafeAreaBoxProps = GetProps<typeof SafeAreaBox>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { InteractiveBox } from \"../containers/Box\";\n\nexport const PressableBox = styled(InteractiveBox, {\n role: \"button\",\n overflow: \"hidden\",\n\n withFocusVisibleOutline: true,\n\n variants: {\n variant: {\n contained: {\n withBackground: \"interactive\",\n shadow: \"s\",\n borderRadius: \"$sm\",\n },\n outlined: {\n // withBackground: \"highlight\",\n withBorder: 1,\n },\n \"ghost-contained\": {\n withBackground: \"interactive\",\n backgroundColor: \"transparent\",\n },\n \"ghost-outlined\": {\n // withBackground: \"surface\",\n withBorder: 1,\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n },\n },\n } as const,\n\n defaultVariants: {\n variant: \"contained\",\n },\n});\n\nexport type PressableBoxProps = GetProps<typeof PressableBox>;\n","import type { ColorTokens } from \"@tamagui/core\";\nimport { Text, usePropsAndStyle } from \"@tamagui/core\";\nimport { cloneElement } from \"react\";\nimport type { ReactElement, ReactNode, SVGProps } from \"react\";\n\nexport type SVGIconElement = ReactElement<SVGProps<SVGSVGElement>>;\n\nexport interface IconProps {\n icon: SVGIconElement;\n disabled?: boolean;\n disabledSharp?: boolean;\n tint?:\n | \"accent-muted\"\n | \"accent\"\n | \"muted\"\n | \"onAccent-muted\"\n | \"onAccent\"\n | \"sharp\";\n size?: number;\n}\n\nconst getDefaultColor = (\n disabled?: boolean,\n disabledSharp?: boolean,\n tint?: IconProps[\"tint\"],\n): ColorTokens => {\n if (disabled) {\n return disabledSharp ? \"$text-disabled-sharp\" : \"$text-disabled-muted\";\n }\n if (tint === \"accent\") return \"$text-accent\";\n if (tint === \"accent-muted\") return \"$text-accent-muted\";\n if (tint === \"muted\") return \"$text-muted\";\n if (tint === \"onAccent\") return \"$text-onAccent\";\n if (tint === \"onAccent-muted\") return \"$text-onAccent-muted\";\n return \"$text-sharp\";\n};\n\nexport function Icon({\n icon,\n // TODO should size be normalized ?\n size = 20,\n disabled,\n disabledSharp,\n tint,\n}: IconProps): ReactNode {\n const [props, style] = usePropsAndStyle(\n {\n color: getDefaultColor(disabled, disabledSharp, tint),\n width: size,\n height: size,\n },\n { forComponent: Text },\n );\n return cloneElement(icon, { style, ...props } as any);\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { Text as CoreText, styled } from \"@tamagui/core\";\n\nexport const Text = styled(CoreText, {\n variants: {\n inherit: {\n false: {\n size: \"$md\",\n weight: \"$regular\",\n fontFamily: \"$body\",\n tint: \"sharp\",\n },\n },\n size: {\n \"...fontSize\": (size) => ({\n fontSize: size,\n lineHeight: size,\n }),\n },\n weight: {\n $regular: { fontWeight: \"$regular\" },\n $bold: { fontWeight: \"$bold\" },\n $extraBold: { fontWeight: \"$extraBold\" },\n },\n family: {\n $heading: { fontFamily: \"$heading\" },\n $body: { fontFamily: \"$body\" },\n \"$body-monospace\": { fontFamily: \"$body-monospace\" },\n },\n tint: {\n sharp: {\n color: \"$text-sharp\",\n\n disabledStyle: {\n color: \"$text-disabled-muted\",\n },\n },\n muted: {\n color: \"$text-muted\",\n\n disabledStyle: {\n color: \"$text-disabled-muted\",\n },\n },\n accent: {\n color: \"$text-accent\",\n },\n onAccent: {\n color: \"$text-onAccent\",\n },\n },\n disabledSharp: {\n true: {\n disabledStyle: {\n color: \"$text-disabled-sharp\",\n },\n },\n },\n },\n\n defaultVariants: {\n inherit: false,\n },\n} as const);\n\nexport type TextProps = GetProps<typeof Text>;\n\nexport const Paragraph = styled(Text, {\n render: \"p\",\n userSelect: \"auto\",\n inherit: false,\n});\n\nexport type ParagraphProps = GetProps<typeof Paragraph>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { PressableBox } from \"../data/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\nimport type { SVGIconElement } from \"../primitives/Icon\";\nimport { Text } from \"../primitives/Text\";\n\nexport const buttonHeight = {\n sm: 38,\n md: 44,\n};\n\nconst ButtonFrame = styled(PressableBox, {\n name: \"ButtonFrame\",\n render: \"button\",\n // @ts-expect-error missing type definition\n type: \"button\",\n center: true,\n flexDirection: \"row\",\n\n variants: {\n size: {\n sm: {\n paddingHorizontal: \"$0.5\",\n gap: \"$0.25\",\n borderRadius: \"$sm\",\n minHeight: buttonHeight.sm,\n },\n md: {\n paddingHorizontal: \"$1.0\",\n gap: \"$0.5\",\n borderRadius: \"$sm\",\n minHeight: buttonHeight.md,\n },\n },\n },\n\n defaultVariants: {\n size: \"md\",\n },\n} as const);\n\nconst ButtonText = styled(Text, {\n textAlign: \"center\",\n weight: \"$bold\",\n flexShrink: 1,\n\n variants: {\n \"button-size\": {\n sm: {\n paddingVertical: \"$0.25\",\n size: \"$sm\",\n },\n md: {\n paddingVertical: \"$0.5\",\n size: \"$md\",\n },\n },\n },\n});\n\ntype ButtonFrameProps = GetProps<typeof ButtonFrame>;\n\nexport interface ButtonProps extends Except<ButtonFrameProps, \"size\"> {\n icon?: NonNullable<SVGIconElement>;\n text: ReactNode;\n size?: \"md\" | \"sm\";\n}\n\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 variant={variant}\n size={size}\n disabled={disabled}\n {...pressableProps}\n >\n {icon && (\n <Icon\n tint={variant === \"contained\" ? \"onAccent\" : undefined}\n disabled={disabled}\n disabledSharp={variant === \"contained\"}\n icon={icon}\n size={size === \"sm\" ? 16 : 20}\n />\n )}\n <ButtonText\n tint={variant === \"contained\" ? \"onAccent\" : undefined}\n button-size={size}\n disabled={disabled}\n disabledSharp={variant === \"contained\"}\n textAlign={icon ? \"left\" : \"center\"}\n >\n {text}\n </ButtonText>\n </ButtonFrame>\n );\n}\n\nexport function ExternalLinkButton(\n props: Except<ButtonProps, \"render\" | \"role\"> & { href: string },\n): ReactNode {\n return (\n <Button\n {...props}\n render=\"a\"\n role=\"link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ textDecorationLine: \"none\" }}\n />\n );\n}\n\nexport function InternalLinkButton(\n props: Except<ButtonProps, \"render\" | \"role\"> & { href: string },\n): ReactNode {\n return <Button {...props} render=\"a\" role=\"link\" />;\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { SetRequired } from \"type-fest\";\nimport { PressableBox } from \"../data/PressableBox\";\nimport type { SVGIconElement } from \"../primitives/Icon\";\nimport { Icon } from \"../primitives/Icon\";\nimport { buttonHeight } from \"./Button\";\n\nconst IconButtonFrame = styled(PressableBox, {\n name: \"IconButtonFrame\",\n role: \"button\",\n center: true,\n borderRadius: 10_000,\n variants: {\n size: {\n \":number\": (val: number) => ({\n square: val,\n }),\n sm: { square: buttonHeight.sm },\n md: { square: buttonHeight.md },\n },\n },\n});\n\ntype IconButtonFrameProps = GetProps<typeof IconButtonFrame>;\n\nexport interface IconButtonProps extends SetRequired<\n IconButtonFrameProps,\n \"aria-label\"\n> {\n icon: NonNullable<SVGIconElement>;\n iconSize?: \"fill\";\n}\n\nexport function IconButton({\n icon,\n disabled,\n size = \"md\",\n iconSize,\n variant = \"contained\",\n ...pressableBoxProps\n}: IconButtonProps): ReactNode {\n const sizeAsValue = typeof size === \"number\" ? size : buttonHeight[size];\n return (\n <IconButtonFrame\n size={size}\n variant={variant}\n disabled={disabled}\n {...pressableBoxProps}\n >\n <Icon\n size={iconSize === \"fill\" ? sizeAsValue * 0.8 : sizeAsValue * 0.5}\n disabled={disabled}\n icon={icon}\n />\n </IconButtonFrame>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Box } from \"./Box\";\n\nexport const Surface = styled(Box, {\n layer: \"surface\",\n shadow: \"s\",\n\n overflow: \"hidden\", // make sure the boxshadow respects the borderRadius.\n\n variants: {\n size: {\n sm: {\n padding: \"$1.0\",\n borderRadius: \"$sm\",\n },\n md: {\n padding: \"$2.0\",\n borderRadius: \"$md\",\n },\n lg: {\n padding: \"$3.0\",\n borderRadius: \"$lg\",\n },\n },\n\n lowered: {\n true: {\n layer: \"lowered\",\n shadow: \"lowered\",\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SurfaceProps = GetProps<typeof Surface>;\n","import { View, styled } from \"@tamagui/core\";\nimport { CheckRegularIcon } from \"alouette-icons/phosphor-icons/CheckRegularIcon\";\nimport { InfoRegularIcon } from \"alouette-icons/phosphor-icons/InfoRegularIcon\";\nimport { WarningRegularIcon } from \"alouette-icons/phosphor-icons/WarningRegularIcon\";\nimport { XRegularIcon } from \"alouette-icons/phosphor-icons/XRegularIcon\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { IconButton } from \"../actions/IconButton\";\nimport type { SurfaceProps } from \"../containers/Surface\";\nimport { Surface } from \"../containers/Surface\";\nimport type { IconProps } from \"../primitives/Icon\";\nimport { Icon } from \"../primitives/Icon\";\nimport { Text } from \"../primitives/Text\";\n\nexport const MessageFrame = styled(Surface, {\n name: \"MessageFrame\",\n alignItems: \"center\",\n flexDirection: \"row\",\n layer: \"highlight-accent\",\n\n variants: {\n size: {\n sm: {\n gap: \"$0.5\",\n },\n md: {\n gap: \"$1.0\",\n },\n lg: {\n gap: \"$1.5\",\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n} as const);\n\nexport const MessageText = styled(Text, {\n size: \"$md\",\n flexGrow: 1,\n tint: \"accent\",\n} as const);\n\nconst MessageIconContainer = styled(View, {\n alignItems: \"center\",\n});\n\nconst MessageDismissButtonContainer = styled(View, {\n position: \"relative\",\n alignItems: \"center\",\n justifyContent: \"center\",\n\n variants: {\n size: {\n sm: {\n height: 24,\n width: 24,\n },\n md: {\n height: 40,\n width: 40,\n },\n lg: {\n height: 40,\n width: 40,\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\ninterface MessageBaseProps {\n theme: NonNullable<SurfaceProps[\"theme\"]>;\n size?: NonNullable<SurfaceProps[\"size\"]>;\n icon: IconProps[\"icon\"];\n children?: ReactNode;\n}\ninterface MessagePropsWithDismiss extends MessageBaseProps {\n onDismiss: () => void;\n dismissIconAriaLabel: string;\n}\n\ninterface MessagePropsWithoutDismiss extends MessageBaseProps {\n onDismiss?: undefined;\n dismissIconAriaLabel?: undefined;\n}\n\nexport type MessageProps = MessagePropsWithDismiss | MessagePropsWithoutDismiss;\n\nexport function Message({\n icon,\n size = \"md\",\n theme,\n children,\n onDismiss,\n dismissIconAriaLabel,\n}: MessageProps): ReactNode {\n return (\n <MessageFrame theme={theme} size={size}>\n <MessageIconContainer>\n <Icon size={size === \"sm\" ? 20 : 24} icon={icon} tint=\"accent\" />\n </MessageIconContainer>\n <MessageText>{children}</MessageText>\n {onDismiss ? (\n <MessageDismissButtonContainer size={size}>\n <IconButton\n icon={<XRegularIcon />}\n iconSize={size === \"sm\" ? \"fill\" : undefined}\n size={size === \"sm\" ? 24 : 40}\n variant=\"outlined\"\n tint=\"accent\"\n aria-label={dismissIconAriaLabel}\n />\n </MessageDismissButtonContainer>\n ) : null}\n </MessageFrame>\n );\n}\n\ntype SemanticMessageProps = Except<MessageProps, \"icon\" | \"theme\">;\n\nexport function InfoMessage(props: SemanticMessageProps): ReactNode {\n return <Message {...props} theme=\"info\" icon={<InfoRegularIcon />} />;\n}\n\nexport function ConfirmationMessage(props: SemanticMessageProps): ReactNode {\n return <Message {...props} theme=\"success\" icon={<CheckRegularIcon />} />;\n}\n\nexport function WarningMessage(props: SemanticMessageProps): ReactNode {\n return <Message {...props} theme=\"warning\" icon={<WarningRegularIcon />} />;\n}\n","export const inputStyle = {\n fontFamily: \"$body\",\n fontSize: \"$md\",\n color: \"$text-sharp\",\n\n paddingHorizontal: \"$1.0\",\n paddingVertical: \"$0.5\",\n borderRadius: \"$md\",\n} as const;\n","import { Text, View, styled } from \"@tamagui/core\";\nimport { inputStyle } from \"./inputStyle\";\n\nconst PlatformInputTextFrame = styled(\n View,\n {\n ...inputStyle,\n transition: \"formElement\", // crash on native ?\n tabIndex: 0 as const,\n\n variants: {\n disabled: {\n true: {\n tabIndex: -1 as const,\n },\n },\n multiline: {\n true: {\n rows: 3,\n },\n },\n mode: {\n password: {\n type: \"password\",\n },\n number: {\n type: \"number\",\n },\n tel: {\n type: \"tel\",\n },\n email: {\n type: \"email\",\n },\n search: {\n type: \"search\",\n },\n },\n },\n },\n {\n isInput: true,\n validStyles: Text.staticConfig.validStyles,\n },\n);\n\nexport const PlatformInputText = PlatformInputTextFrame.styleable<{\n autoCorrect?: boolean;\n autoCapitalize?: \"characters\" | \"none\" | \"sentences\" | \"words\";\n}>(({ autoCorrect, ...rest }) => (\n <PlatformInputTextFrame\n {...({\n autoCorrect: autoCorrect ? \"on\" : \"off\",\n } as any)}\n {...rest}\n />\n));\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { FunctionComponent } from \"react\";\nimport * as containerVariants from \"../containers/variants\";\nimport { PlatformInputText } from \"./PlatformInputText\";\n\nconst NativeInputText = styled(PlatformInputText, {\n render: \"input\",\n theme: \"brand\",\n\n variants: {\n ...containerVariants,\n\n disabled: {\n true: {\n color: \"$text-disabled-muted\",\n cursor: \"not-allowed\",\n opacity: \"$opacity.disabled\",\n },\n },\n } as const,\n\n // @ts-expect-error -- variants not working when isInput is true\n interactive: \"text\",\n withBackground: \"interactive\",\n withBorder: 1,\n\n outlineWidth: 1,\n outlineOffset: 0,\n outlineStyle: \"solid\",\n outlineColor: \"transparent\",\n\n focusVisibleStyle: {\n outlineWidth: 1,\n outlineOffset: 0,\n outlineStyle: \"solid\",\n outlineColor: \"$interactive.forms.outlineColor:focus\",\n },\n\n focusStyle: {\n outlineWidth: 1,\n outlineOffset: 0,\n outlineStyle: \"solid\",\n outlineColor: \"$interactive.forms.outlineColor:focus\",\n },\n});\n\nexport type InputTextProps = Pick<\n GetProps<typeof NativeInputText>,\n | \"aria-labelledby\"\n | \"autoCapitalize\"\n | \"autoCorrect\"\n | \"defaultValue\"\n | \"disabled\"\n | \"forceStyle\"\n | \"id\"\n | \"maxLength\"\n | \"mode\"\n /** @internal use Textarea */\n | \"multiline\"\n | \"onChange\"\n | \"placeholder\"\n | \"readOnly\"\n | \"testID\"\n | \"theme\"\n | \"value\"\n>;\n\nexport const InputText: FunctionComponent<InputTextProps> = NativeInputText;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { FunctionComponent } from \"react\";\nimport type { InputTextProps } from \"./InputText\";\nimport { InputText } from \"./InputText\";\n\nconst TextAreaFrame = styled(InputText, {\n render: \"textarea\",\n multiline: true,\n\n height: \"auto\",\n minHeight: 80,\n borderRadius: \"$1.0\",\n paddingHorizontal: \"$0.75\",\n});\n\nexport type TextAreaProps = Pick<\n GetProps<typeof TextAreaFrame>,\n keyof InputTextProps\n>;\n\nexport const TextArea: FunctionComponent<TextAreaProps> = TextAreaFrame;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { ScrollView as ScrollViewNative } from \"react-native\";\n\nexport const ScrollView = styled(\n ScrollViewNative,\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 { View, styled } from \"@tamagui/core\";\nimport type { GetProps } from \"@tamagui/core\";\nimport type { ComponentType } from \"react\";\nimport { absoluteFillStyle } from \"./utils/absoluteFillStyle\";\n\nconst variants = {\n absoluteFill: {\n true: absoluteFillStyle,\n },\n} as const;\n\nexport const Stack = styled(View, {\n name: \"Stack\",\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n variants,\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\nconst CenterFrame = styled(View, {\n justifyContent: \"center\",\n alignItems: \"center\",\n variants,\n});\n\nexport type CenterProps = Pick<\n GetProps<typeof CenterFrame>,\n \"absoluteFill\" | \"children\" | \"flexGrow\" | \"flexShrink\"\n>;\n\nexport const Center: ComponentType<CenterProps> = CenterFrame;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Text } from \"../primitives/Text\";\n\nexport const StoryTitle = styled(Text, {\n family: \"$heading\",\n weight: \"$extraBold\",\n variants: {\n level: {\n 1: { size: \"$xl\", marginBottom: \"$2.0\" },\n 2: { size: \"$lg\", marginBottom: \"$2.0\" },\n 3: { size: \"$md\", marginBottom: \"$1.0\" },\n 4: { size: \"$sm\", marginBottom: \"$1.0\" },\n },\n } as const,\n\n defaultVariants: {\n level: 1,\n },\n} as const);\n\nexport type StoryTitleProps = GetProps<typeof StoryTitle>;\n","import { isWeb, styled } from \"@tamagui/core\";\nimport { Fragment } from \"react\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { Box } from \"../containers/Box\";\nimport { Surface } from \"../containers/Surface\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { VStack } from \"../stacks/stacks\";\nimport type { VStackProps } from \"../stacks/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nconst InternalStorySection = styled(VStack, {\n marginBottom: \"$2.0\",\n marginHorizontal: \"$-1.0\",\n paddingHorizontal: \"$1.0\",\n});\n\nexport type StorySectionProps = Except<VStackProps, \"marginBottom\"> & {\n title: ReactNode;\n children: ReactNode;\n level?: 1 | 2;\n withSurface?: boolean;\n};\n\nfunction StorySection({\n title,\n children,\n level = 1,\n withSurface = false,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection {...props}>\n <StoryTitle level={(level + 1) as 2 | 3}>{title}</StoryTitle>\n {withSurface ? (\n <Surface>{children}</Surface>\n ) : (\n <VStack gap=\"$1.0\">{children}</VStack>\n )}\n </InternalStorySection>\n );\n}\n\nfunction SubSection({\n title,\n children,\n withSurface = false,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection marginBottom=\"$1.0\" {...props}>\n <StoryTitle level={3}>{title}</StoryTitle>\n {withSurface ? (\n <Surface>{children}</Surface>\n ) : (\n <VStack gap=\"$1.0\">{children}</VStack>\n )}\n </InternalStorySection>\n );\n}\n\nconst ScrollViewNative = isWeb ? Fragment : ScrollView;\n\nexport interface StoryProps {\n documentation?: NonNullable<ReactNode>;\n children?: NonNullable<ReactNode>;\n noDarkTheme?: boolean;\n}\n\nexport function Story({\n documentation,\n children,\n noDarkTheme,\n}: StoryProps): ReactNode {\n return (\n <ScrollViewNative>\n {documentation && (\n <Surface layer=\"highlight\" shadow=\"s\" theme=\"brand\" marginBottom=\"$3.0\">\n {documentation}\n </Surface>\n )}\n {[\"light\", ...(noDarkTheme ? [] : [\"dark\"])].map((theme) => (\n <Box\n key={theme}\n theme={theme}\n backgroundColor=\"$bg-screen\"\n padding=\"$2.0\"\n >\n {children}\n </Box>\n ))}\n </ScrollViewNative>\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-vite\";\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 { View } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { Platform } from \"react-native\";\nimport { VStack } from \"../stacks/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 marginBottom: \"$2.0\",\n flexWrap: flexWrap ? \"wrap\" : undefined,\n gap: flexWrap ? \"$1.0\" : undefined,\n },\n }}\n >\n {Children.map(children, (child) => (\n <View\n paddingTop=\"$1.0\"\n paddingBottom=\"$2.0\"\n {...{\n [`$${breakpoint}`]: {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: flexWrap ? undefined : 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginVertical: \"$0.25\",\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","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 \"../ui/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\";\nimport \"./reset\";\n\nexport interface AlouetteProviderProps extends Pick<\n TamaguiProviderProps,\n \"disableInjectCSS\"\n> {\n children: ReactNode;\n tamaguiConfig: NonNullable<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","import type { ReactNode } from \"react\";\n\nexport function SafeAreaProvider({ children }: { children: ReactNode }) {\n return children;\n}\n","/* eslint-disable react/destructuring-assignment */\nimport type { Decorator } from \"@storybook/react-vite\";\nimport type { TamaguiProviderProps } from \"@tamagui/core\";\nimport { createContext, useEffect, useState } from \"react\";\nimport { useColorScheme } from \"react-native\";\nimport { AlouetteProvider } from \"./AlouetteProvider\";\nimport { SafeAreaProvider } from \"./SafeAreaProvider\";\n\nexport const AlouetteTamaguiConfigContext = createContext<\n TamaguiProviderProps[\"config\"] | null\n>(null);\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 <SafeAreaProvider>\n <AlouetteProvider\n tamaguiConfig={context.parameters.tamaguiConfig}\n defaultTheme={theme}\n >\n <AlouetteTamaguiConfigContext.Provider\n value={context.parameters.tamaguiConfig}\n >\n {storyFn(context)}\n </AlouetteTamaguiConfigContext.Provider>\n </AlouetteProvider>\n </SafeAreaProvider>\n );\n};\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\n\nexport const Separator = styled(View, {\n flexGrow: 1,\n flexShrink: 0,\n height: 0,\n maxHeight: 0,\n borderColor: \"$border-sharp\",\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 { styled } from \"@tamagui/core\";\nimport type { PressableBoxProps } from \"alouette\";\nimport { CaretRightRegularIcon } from \"alouette-icons/phosphor-icons/CaretRightRegularIcon\";\nimport type { ReactNode } from \"react\";\nimport { Icon } from \"../primitives/Icon\";\nimport { View } from \"../primitives/View\";\nimport { VStack } from \"../stacks/stacks\";\nimport { PressableBox } from \"./PressableBox\";\n\nconst PressableListItemFrame = styled(PressableBox, {\n variant: \"contained\",\n marginHorizontal: \"$0.5\",\n marginVertical: \"$0.25\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingHorizontal: \"$1.0\",\n paddingVertical: \"$1.0\",\n});\n\nexport interface PressableListItemProps {\n theme?: PressableBoxProps[\"theme\"];\n role?: PressableBoxProps[\"role\"];\n variant?: PressableBoxProps[\"variant\"];\n children: ReactNode;\n onPress: () => void;\n}\n\nexport function PressableListItem({\n theme,\n role = \"button\",\n children,\n onPress,\n}: PressableListItemProps): ReactNode {\n return (\n <PressableListItemFrame theme={theme} role={role} onPress={onPress}>\n <View flex={1}>{children}</View>\n <VStack justifyContent=\"center\">\n <Icon\n tint=\"onAccent-muted\"\n icon={<CaretRightRegularIcon />}\n size={18}\n />\n </VStack>\n </PressableListItemFrame>\n );\n}\n","import type { ThemeProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport { Box } from \"../containers/Box\";\n\nexport interface GradientBackgroundProps {\n theme?: ThemeProps[\"name\"];\n children?: ReactNode;\n}\n\nexport const GradientBackground = styled(Box, {\n absoluteFill: true,\n backgroundImage:\n \"linear-gradient(0deg, $bg-screen-gradient-end 5%, $bg-screen-gradient-middle 80%, $bg-screen-gradient-start 98%)\",\n position: \"absolute\", // needed to override \"static\" position for backgroundImage tamagui\n});\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport type { ScrollViewProps } from \"../primitives/ScrollView\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { GradientBackground } from \"./GradientBackground\";\n\nconst TopScrollOffset = styled(View, {\n backgroundColor: \"$bg-screen\",\n position: \"absolute\",\n top: -600,\n left: 0,\n right: 0,\n height: 600,\n});\n\n// We could have used scrollview's background color if it was the same theme as the gradient, but this allows us to have a different theme for the scrollview and the gradient, but it's not always the case\nconst BottomScrollOffset = styled(View, {\n backgroundColor: \"$bg-screen\",\n position: \"absolute\",\n bottom: -600,\n left: 0,\n right: 0,\n height: 600,\n});\n\nexport const GradientScrollView = ScrollView.styleable<{\n gradientTheme?: ScrollViewProps[\"theme\"];\n}>(({ gradientTheme, children, ...scrollViewProps }) => (\n <ScrollView {...scrollViewProps}>\n <TopScrollOffset\n theme={gradientTheme}\n backgroundColor=\"$bg-screen-gradient-start\"\n />\n <BottomScrollOffset\n theme={gradientTheme}\n backgroundColor=\"$bg-screen-gradient-end\"\n />\n <GradientBackground theme={gradientTheme} />\n {children}\n </ScrollView>\n));\n\nexport type GradientScrollViewProps = GetProps<typeof GradientScrollView>;\n","import type { GestureReponderEvent, GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\n// import { CheckRegularIcon } from \"alouette-icons/phosphor-icons/CheckRegularIcon\";\n// import { XRegularIcon } from \"alouette-icons/phosphor-icons/XRegularIcon\";\nimport { useState } from \"react\";\nimport { Box, InteractiveBox } from \"../containers/Box\";\n// import { Icon } from \"../primitives/Icon\";\n\nconst useControllableCheckedState = (\n checked: boolean | undefined,\n onChange?: (e: GestureReponderEvent) => void,\n onValueChange?: (newValue: boolean) => void,\n) => {\n const [checkedState, setCheckedState] = useState(checked ?? false);\n\n return [\n checked !== undefined ? checked : checkedState,\n (newChecked: boolean, e: GestureReponderEvent) => {\n setCheckedState((prevValue) => {\n if (prevValue !== newChecked) {\n onChange?.(e);\n onValueChange?.(newChecked);\n }\n return newChecked;\n });\n },\n ] as const;\n};\n\nconst SwitchFrame = styled(InteractiveBox, {\n theme: \"brand\",\n render: \"button\",\n // @ts-expect-error web only prop missing definition\n type: \"button\",\n role: \"switch\",\n layer: \"lowered\",\n shadow: \"lowered\",\n\n position: \"relative\",\n tabIndex: 0,\n borderRadius: 1000,\n\n transition: \"formElement\",\n\n disabledStyle: {\n backgroundColor: \"$interactive.forms.backgroundColor:disabled\",\n },\n\n // TODO hover/focus\n\n focusVisibleStyle: {\n outlineColor: \"$interactive.forms.outlineColor:focus\",\n outlineWidth: 2,\n outlineStyle: \"solid\",\n outlineOffset: 2,\n },\n\n variants: {\n size: {\n md: {\n height: 44,\n width: 66,\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst thumbSize = 44 * 0.8;\nconst SwitchThumb = styled(Box, {\n withBackground: \"highlight\",\n position: \"absolute\",\n top: 44 * 0.1,\n borderRadius: 1000,\n center: true,\n transition: \"formElement\",\n shadow: \"s\",\n\n variants: {\n size: {\n md: {\n height: thumbSize,\n width: thumbSize,\n },\n },\n\n disabled: {\n true: {\n backgroundColor: \"$text-disabled-muted\",\n shadow: \"none\",\n },\n },\n\n checked: {\n false: {\n left: 44 * 0.1,\n hoverStyle: {\n width: thumbSize + 2,\n },\n pressStyle: {\n width: thumbSize + 8,\n },\n },\n true: {\n left: 44 * 0.6,\n hoverStyle: {\n left: 44 * 0.6 - 2,\n width: thumbSize + 2,\n },\n pressStyle: {\n left: 44 * 0.6 - 8,\n width: thumbSize + 8,\n },\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\n// const iconSize = 16;\n\n// const SwitchIconContainer = styled(View, {\n// width: iconSize,\n// height: iconSize,\n// position: \"absolute\",\n// top: \"50%\",\n// transform: \"translate(-50%, -50%)\",\n// transition: \"formElement\",\n\n// variants: {\n// iconPosition: {\n// left: {\n// left: thumbSize / 2,\n// },\n// right: {\n// right: iconSize + 3 - thumbSize / 2,\n// },\n// },\n// showed: {\n// false: {\n// opacity: 0,\n// },\n// true: {\n// opacity: 1,\n// },\n// },\n// },\n// });\n\ninterface SwitchAdditionalProps {\n checked: boolean;\n // checkedTheme?: GetProps<typeof SwitchFrame>[\"theme\"];\n onChange: (e: GestureReponderEvent) => void;\n onValueChange?: (newValue: boolean) => void;\n}\n\nexport type SwitchProps = Pick<\n GetProps<typeof SwitchFrame>,\n \"aria-labelledby\" | \"disabled\"\n> &\n SwitchAdditionalProps;\n\nexport const Switch = SwitchFrame.styleable<SwitchAdditionalProps>(\n ({ checked, disabled, onChange, onValueChange, ...rest }) => {\n const [currentChecked, setCurrentChecked] = useControllableCheckedState(\n checked,\n onChange,\n onValueChange,\n );\n return (\n <SwitchFrame\n aria-checked={currentChecked}\n disabled={disabled}\n {...rest}\n // {...(currentChecked && checkedTheme ? { theme: checkedTheme } : {})}\n onPress={(e) => {\n setCurrentChecked(!currentChecked, e);\n }}\n >\n <SwitchThumb checked={currentChecked} disabled={disabled}>\n {/* <SwitchIconContainer showed={!currentChecked} iconPosition=\"left\">\n <Icon tint=\"accent\" size={16} icon={<XRegularIcon />} />\n </SwitchIconContainer>\n <SwitchIconContainer showed={currentChecked} iconPosition=\"right\">\n <Icon tint=\"accent\" size={16} icon={<CheckRegularIcon />} />\n </SwitchIconContainer> */}\n </SwitchThumb>\n\n {/* <input\n aria-hidden\n value=\"true\"\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n tabIndex={-1}\n style={{\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n }}\n /> */}\n </SwitchFrame>\n );\n },\n);\n"],"names":["variants","Text","CoreText","ScrollViewNative","BreakpointNameEnum"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser.es.js","sources":["../src/core/useSafeAreaInsets.web.ts","../src/ui/stacks/utils/absoluteFillStyle.ts","../src/ui/containers/createVariants.ts","../src/ui/containers/variants.ts","../src/ui/containers/Box.tsx","../src/ui/data/PressableBox.tsx","../src/ui/primitives/Icon.tsx","../src/ui/primitives/Text.tsx","../src/ui/actions/Button.tsx","../src/ui/actions/IconButton.tsx","../src/ui/containers/Surface.tsx","../src/ui/feedback/Message.tsx","../src/ui/inputs/inputStyle.ts","../src/ui/inputs/PlatformInputText.web.tsx","../src/ui/inputs/InputText.tsx","../src/ui/inputs/TextArea.tsx","../src/ui/primitives/ScrollView.ts","../src/ui/stacks/stacks.ts","../src/ui/story-components/StoryTitle.tsx","../src/ui/story-components/Story.tsx","../src/ui/story-components/StoryContainer.tsx","../src/ui/story-components/StoryDecorator.tsx","../src/ui/story-components/StoryGrid.tsx","../src/config/Breakpoints.ts","../src/windowSize/useCurrentBreakpointName.ts","../src/windowSize/SwitchBreakpoints.tsx","../src/core/AlouetteProvider.tsx","../src/core/SafeAreaProvider.web.ts","../src/core/AlouetteDecorator.tsx","../src/ui/stacks/Separator.tsx","../src/ui/data/PressableListItem.tsx","../src/ui/layout/GradientBackground.tsx","../src/ui/layout/GradientScrollView.tsx","../src/ui/inputs/Switch.web.tsx"],"sourcesContent":["import type { useSafeAreaInsets as useSafeAreaInsetsImpl } from \"react-native-safe-area-context\";\n\nexport const useSafeAreaInsets: typeof useSafeAreaInsetsImpl = () => ({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n});\n","export const absoluteFillStyle = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const;\n","import type { VariantSpreadExtras } from \"@tamagui/core\";\n\nexport const absoluteFillStyle = {\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 getInteractionStyles = (\n name: \"backgroundColor\" | \"borderColor\" | \"outlineColor\" | \"shadowColor\",\n {\n disabled,\n interactive,\n variant = name === \"borderColor\" ? \"outlined\" : \"contained\",\n tint,\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${tint === \"accent\" ? \"-accent\" : \"\"}.${isGhost ? variant.slice(6) : variant}`;\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 (name === \"outlineColor\") {\n return {\n focusVisibleStyle: {\n outlineWidth: interactive === \"text\" ? 0 : 2,\n outlineStyle: \"solid\",\n outlineOffset:\n variant === \"outlined\" || variant === \"ghost-outlined\" ? 2 : 0,\n outlineColor: `$${prefix}.${name}:focus`,\n },\n } as const;\n }\n\n return {\n [name]: isGhost ? \"transparent\" : `$${prefix}.${name}`,\n hoverStyle: { [name]: `$${prefix}.${name}:hover` },\n focusStyle: { [name]: `$${prefix}.${name}:focus` },\n pressStyle: { [name]: `$${prefix}.${name}:press` },\n disabledStyle: { [name]: `$${prefix}.${name}:disabled` },\n } as const;\n};\n","import type { SizeTokens, VariantSpreadExtras, ViewProps } from \"@tamagui/core\";\nimport { absoluteFillStyle } from \"../stacks/utils/absoluteFillStyle\";\nimport { getInteractionStyles } from \"./createVariants\";\n\nexport const absoluteFill = {\n true: absoluteFillStyle,\n} as const;\n\nexport const center = {\n true: {\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n} as const;\n\nexport const tint = {\n accent: {}, // used in interactive variant\n} as const;\n\nexport function interactive(\n isInteractiveOrInteractiveCursorType: ViewProps[\"cursor\"] | boolean,\n { props }: VariantSpreadExtras<any>,\n) {\n if (!isInteractiveOrInteractiveCursorType) return null;\n\n if (isInteractiveOrInteractiveCursorType === true) {\n return {\n cursor: \"pointer\",\n\n pressStyle: {\n transform: [{ scale: 0.975 }],\n },\n\n disabledStyle: {\n cursor: \"not-allowed\",\n opacity: \"$opacity.disabled\",\n transform: [{ scale: 1 }],\n },\n };\n }\n\n return {\n cursor: isInteractiveOrInteractiveCursorType,\n\n disabledStyle: {\n cursor: \"not-allowed\",\n opacity: \"$opacity.disabled\",\n },\n } as const;\n}\n\nexport const layer = {\n surface: {\n backgroundColor: \"$bg-surface\",\n },\n highlight: {\n backgroundColor: \"$bg-highlight\",\n },\n \"highlight-accent\": {\n backgroundColor: \"$bg-highlight-accent\",\n },\n lowered: {\n backgroundColor: \"$bg-lowered\",\n },\n translucent: {\n backgroundColor: \"$bg-translucent\",\n },\n} as const;\n\nexport const shadow = {\n none: {\n boxShadow: \"none\",\n elevationAndroid: 0,\n },\n s: {\n boxShadow:\n \"inset 0 1px 2px #ffffff40, 0 1px 2px #00000040, 0 2px 4px #00000025\",\n elevationAndroid: 2,\n },\n\n m: {\n boxShadow:\n \"inset 0 1px 2px #ffffff40, 0 2px 4px #00000040, 0 4px 8px #00000025\",\n elevationAndroid: 4,\n },\n\n l: {\n boxShadow:\n \"inset 0 1px 2px #ffffff40, 0 4px 6px #00000040, 0 6px 10px #00000025\",\n elevationAndroid: 6,\n },\n\n lowered: {\n boxShadow: \"inset 0 1px 2px #00000040, inset 0 -2px 2px #ffffff15\",\n },\n} as const;\n\nexport const square = (val: number) => {\n return { width: val, height: val };\n};\n\nexport const withBorder = (\n val: SizeTokens,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (props.shadow && props.shadow !== \"lowered\") {\n throw new Error(\"Cannot use border with shadow variant\");\n }\n\n return {\n borderWidth: val,\n\n ...(props.interactive\n ? getInteractionStyles(\"borderColor\", props)\n : { borderColor: \"$border-sharp\" }),\n } as const;\n};\n\nexport const withFocusVisibleOutline = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!val) return null;\n return {\n ...(props.interactive\n ? getInteractionStyles(\"outlineColor\", props)\n : { outlineColor: \"$outlineColor\" }),\n\n disabledStyle: {\n outlineWidth: 0,\n },\n } as const;\n};\n\nexport const withBackground = (\n val: \"highlight\" | \"interactive\" | \"surface\",\n { props }: VariantSpreadExtras<any>,\n) => {\n return props.interactive && val === \"interactive\"\n ? getInteractionStyles(\"backgroundColor\", props)\n : ({\n backgroundColor: val === \"surface\" ? \"$bg-surface\" : \"$bg-highlight\",\n } as const);\n};\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport { useSafeAreaInsets } from \"../../core/useSafeAreaInsets\";\nimport * as variants from \"./variants\";\n\nconst BoxFrame = styled(View, {\n // never apply overflow hidden here, as it will break shadows\n\n flexShrink: 1, // allow to shrink by default, as Box is often used in VSTack and HStack. See button for an example.\n\n variants,\n});\n\nexport type BoxProps = GetProps<typeof BoxFrame>;\n\nexport const Box =\n process.env.NODE_ENV !== \"production\"\n ? BoxFrame.styleable((props) => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n props.shadow === \"lowered\" &&\n props.layer !== \"lowered\"\n ) {\n throw new Error(\n 'shadow=\"lowered\" must only be used with layer=\"lowered\"',\n );\n }\n\n return <BoxFrame {...props} />;\n })\n : BoxFrame;\n\nexport const InteractiveBox = styled(BoxFrame, {\n interactive: true,\n tabIndex: 0,\n transition: \"fast\",\n variants: {\n disabled: {\n true: {\n tabIndex: -1 as const,\n },\n },\n } as const,\n});\n\nexport type InteractiveBoxProps = GetProps<typeof InteractiveBox>;\n\nexport const SafeAreaBox = BoxFrame.styleable<{\n padding?: never;\n paddingTop?: never;\n paddingBottom?: never;\n paddingLeft?: never;\n paddingRight?: never;\n}>((props) => {\n const insets = useSafeAreaInsets();\n return (\n <Box\n {...props}\n paddingTop={insets.top}\n paddingBottom={insets.bottom}\n paddingLeft={insets.left}\n paddingRight={insets.right}\n />\n );\n});\n\nexport type SafeAreaBoxProps = GetProps<typeof SafeAreaBox>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { InteractiveBox } from \"../containers/Box\";\n\nexport const PressableBox = styled(InteractiveBox, {\n role: \"button\",\n overflow: \"hidden\",\n\n withFocusVisibleOutline: true,\n\n variants: {\n variant: {\n contained: {\n withBackground: \"interactive\",\n shadow: \"s\",\n borderRadius: \"$sm\",\n },\n outlined: {\n // withBackground: \"highlight\",\n withBorder: 1,\n },\n \"ghost-contained\": {\n withBackground: \"interactive\",\n backgroundColor: \"transparent\",\n },\n \"ghost-outlined\": {\n // withBackground: \"surface\",\n withBorder: 1,\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n },\n },\n } as const,\n\n defaultVariants: {\n variant: \"contained\",\n },\n});\n\nexport type PressableBoxProps = GetProps<typeof PressableBox>;\n","import type { ColorTokens } from \"@tamagui/core\";\nimport { Text, usePropsAndStyle } from \"@tamagui/core\";\nimport { cloneElement } from \"react\";\nimport type { ReactElement, ReactNode, SVGProps } from \"react\";\n\nexport type SVGIconElement = ReactElement<SVGProps<SVGSVGElement>>;\n\nexport interface IconProps {\n icon: SVGIconElement;\n disabled?: boolean;\n disabledSharp?: boolean;\n tint?:\n | \"accent-muted\"\n | \"accent\"\n | \"muted\"\n | \"onAccent-muted\"\n | \"onAccent\"\n | \"sharp\";\n size?: number;\n}\n\nconst getDefaultColor = (\n disabled?: boolean,\n disabledSharp?: boolean,\n tint?: IconProps[\"tint\"],\n): ColorTokens => {\n if (disabled) {\n return disabledSharp ? \"$text-disabled-sharp\" : \"$text-disabled-muted\";\n }\n if (tint === \"accent\") return \"$text-accent\";\n if (tint === \"accent-muted\") return \"$text-accent-muted\";\n if (tint === \"muted\") return \"$text-muted\";\n if (tint === \"onAccent\") return \"$text-onAccent\";\n if (tint === \"onAccent-muted\") return \"$text-onAccent-muted\";\n return \"$text-sharp\";\n};\n\nexport function Icon({\n icon,\n // TODO should size be normalized ?\n size = 20,\n disabled,\n disabledSharp,\n tint,\n}: IconProps): ReactNode {\n const [props, style] = usePropsAndStyle(\n {\n color: getDefaultColor(disabled, disabledSharp, tint),\n width: size,\n height: size,\n },\n { forComponent: Text },\n );\n return cloneElement(icon, { style, ...props } as any);\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { Text as CoreText, styled } from \"@tamagui/core\";\n\nexport const Text = styled(CoreText, {\n variants: {\n inherit: {\n false: {\n size: \"$md\",\n weight: \"$regular\",\n fontFamily: \"$body\",\n tint: \"sharp\",\n },\n },\n size: {\n \"...fontSize\": (size) => ({\n fontSize: size,\n lineHeight: size,\n }),\n },\n weight: {\n $regular: { fontWeight: \"$regular\" },\n $bold: { fontWeight: \"$bold\" },\n $extraBold: { fontWeight: \"$extraBold\" },\n },\n family: {\n $heading: { fontFamily: \"$heading\" },\n $body: { fontFamily: \"$body\" },\n \"$body-monospace\": { fontFamily: \"$body-monospace\" },\n },\n tint: {\n sharp: {\n color: \"$text-sharp\",\n\n disabledStyle: {\n color: \"$text-disabled-muted\",\n },\n },\n muted: {\n color: \"$text-muted\",\n\n disabledStyle: {\n color: \"$text-disabled-muted\",\n },\n },\n accent: {\n color: \"$text-accent\",\n },\n onAccent: {\n color: \"$text-onAccent\",\n },\n },\n disabledSharp: {\n true: {\n disabledStyle: {\n color: \"$text-disabled-sharp\",\n },\n },\n },\n },\n\n defaultVariants: {\n inherit: false,\n },\n} as const);\n\nexport type TextProps = GetProps<typeof Text>;\n\nexport const Paragraph = styled(Text, {\n render: \"p\",\n userSelect: \"auto\",\n inherit: false,\n});\n\nexport type ParagraphProps = GetProps<typeof Paragraph>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { PressableBox } from \"../data/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\nimport type { SVGIconElement } from \"../primitives/Icon\";\nimport { Text } from \"../primitives/Text\";\n\nexport const buttonHeight = {\n sm: 38,\n md: 44,\n};\n\nconst ButtonFrame = styled(PressableBox, {\n name: \"ButtonFrame\",\n render: \"button\",\n // @ts-expect-error missing type definition\n type: \"button\",\n center: true,\n flexDirection: \"row\",\n\n variants: {\n size: {\n sm: {\n paddingHorizontal: \"$0.5\",\n gap: \"$0.25\",\n borderRadius: \"$sm\",\n minHeight: buttonHeight.sm,\n },\n md: {\n paddingHorizontal: \"$1.0\",\n gap: \"$0.5\",\n borderRadius: \"$sm\",\n minHeight: buttonHeight.md,\n },\n },\n },\n\n defaultVariants: {\n size: \"md\",\n },\n} as const);\n\nconst ButtonText = styled(Text, {\n textAlign: \"center\",\n weight: \"$bold\",\n flexShrink: 1,\n\n variants: {\n \"button-size\": {\n sm: {\n paddingVertical: \"$0.25\",\n size: \"$sm\",\n },\n md: {\n paddingVertical: \"$0.5\",\n size: \"$md\",\n },\n },\n },\n});\n\ntype ButtonFrameProps = GetProps<typeof ButtonFrame>;\n\nexport interface ButtonProps extends Except<ButtonFrameProps, \"size\"> {\n icon?: NonNullable<SVGIconElement>;\n text: ReactNode;\n size?: \"md\" | \"sm\";\n}\n\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 variant={variant}\n size={size}\n disabled={disabled}\n {...pressableProps}\n >\n {icon && (\n <Icon\n tint={variant === \"contained\" ? \"onAccent\" : undefined}\n disabled={disabled}\n disabledSharp={variant === \"contained\"}\n icon={icon}\n size={size === \"sm\" ? 16 : 20}\n />\n )}\n <ButtonText\n tint={variant === \"contained\" ? \"onAccent\" : undefined}\n button-size={size}\n disabled={disabled}\n disabledSharp={variant === \"contained\"}\n textAlign={icon ? \"left\" : \"center\"}\n >\n {text}\n </ButtonText>\n </ButtonFrame>\n );\n}\n\nexport function ExternalLinkButton(\n props: Except<ButtonProps, \"render\" | \"role\"> & { href: string },\n): ReactNode {\n return (\n <Button\n {...props}\n render=\"a\"\n role=\"link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ textDecorationLine: \"none\" }}\n />\n );\n}\n\nexport function InternalLinkButton(\n props: Except<ButtonProps, \"render\" | \"role\"> & { href: string },\n): ReactNode {\n return <Button {...props} render=\"a\" role=\"link\" />;\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { SetRequired } from \"type-fest\";\nimport { PressableBox } from \"../data/PressableBox\";\nimport type { SVGIconElement } from \"../primitives/Icon\";\nimport { Icon } from \"../primitives/Icon\";\nimport { buttonHeight } from \"./Button\";\n\nconst IconButtonFrame = styled(PressableBox, {\n name: \"IconButtonFrame\",\n role: \"button\",\n center: true,\n borderRadius: 10_000,\n variants: {\n size: {\n \":number\": (val: number) => ({\n square: val,\n }),\n sm: { square: buttonHeight.sm },\n md: { square: buttonHeight.md },\n },\n },\n});\n\ntype IconButtonFrameProps = GetProps<typeof IconButtonFrame>;\n\nexport interface IconButtonProps extends SetRequired<\n IconButtonFrameProps,\n \"aria-label\"\n> {\n icon: NonNullable<SVGIconElement>;\n iconSize?: \"fill\";\n}\n\nexport function IconButton({\n icon,\n disabled,\n size = \"md\",\n iconSize,\n variant = \"contained\",\n ...pressableBoxProps\n}: IconButtonProps): ReactNode {\n const sizeAsValue = typeof size === \"number\" ? size : buttonHeight[size];\n return (\n <IconButtonFrame\n size={size}\n variant={variant}\n disabled={disabled}\n {...pressableBoxProps}\n >\n <Icon\n size={iconSize === \"fill\" ? sizeAsValue * 0.8 : sizeAsValue * 0.5}\n disabled={disabled}\n icon={icon}\n />\n </IconButtonFrame>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Box } from \"./Box\";\n\nexport const Surface = styled(Box, {\n layer: \"surface\",\n shadow: \"s\",\n\n overflow: \"hidden\", // make sure the boxshadow respects the borderRadius.\n\n variants: {\n size: {\n sm: {\n padding: \"$1.0\",\n borderRadius: \"$sm\",\n },\n md: {\n padding: \"$2.0\",\n borderRadius: \"$md\",\n },\n lg: {\n padding: \"$3.0\",\n borderRadius: \"$lg\",\n },\n },\n\n lowered: {\n true: {\n layer: \"lowered\",\n shadow: \"lowered\",\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SurfaceProps = GetProps<typeof Surface>;\n","import { View, styled } from \"@tamagui/core\";\nimport { CheckRegularIcon } from \"alouette-icons/phosphor-icons/CheckRegularIcon\";\nimport { InfoRegularIcon } from \"alouette-icons/phosphor-icons/InfoRegularIcon\";\nimport { WarningRegularIcon } from \"alouette-icons/phosphor-icons/WarningRegularIcon\";\nimport { XRegularIcon } from \"alouette-icons/phosphor-icons/XRegularIcon\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { IconButton } from \"../actions/IconButton\";\nimport type { SurfaceProps } from \"../containers/Surface\";\nimport { Surface } from \"../containers/Surface\";\nimport type { IconProps } from \"../primitives/Icon\";\nimport { Icon } from \"../primitives/Icon\";\nimport { Text } from \"../primitives/Text\";\n\nexport const MessageFrame = styled(Surface, {\n name: \"MessageFrame\",\n alignItems: \"center\",\n flexDirection: \"row\",\n layer: \"highlight-accent\",\n\n variants: {\n size: {\n sm: {\n gap: \"$0.5\",\n },\n md: {\n gap: \"$1.0\",\n },\n lg: {\n gap: \"$1.5\",\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n} as const);\n\nexport const MessageText = styled(Text, {\n size: \"$md\",\n flexGrow: 1,\n tint: \"accent\",\n} as const);\n\nconst MessageIconContainer = styled(View, {\n alignItems: \"center\",\n});\n\nconst MessageDismissButtonContainer = styled(View, {\n position: \"relative\",\n alignItems: \"center\",\n justifyContent: \"center\",\n\n variants: {\n size: {\n sm: {\n height: 24,\n width: 24,\n },\n md: {\n height: 40,\n width: 40,\n },\n lg: {\n height: 40,\n width: 40,\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\ninterface MessageBaseProps {\n theme: NonNullable<SurfaceProps[\"theme\"]>;\n size?: NonNullable<SurfaceProps[\"size\"]>;\n icon: IconProps[\"icon\"];\n children?: ReactNode;\n}\ninterface MessagePropsWithDismiss extends MessageBaseProps {\n onDismiss: () => void;\n dismissIconAriaLabel: string;\n}\n\ninterface MessagePropsWithoutDismiss extends MessageBaseProps {\n onDismiss?: undefined;\n dismissIconAriaLabel?: undefined;\n}\n\nexport type MessageProps = MessagePropsWithDismiss | MessagePropsWithoutDismiss;\n\nexport function Message({\n icon,\n size = \"md\",\n theme,\n children,\n onDismiss,\n dismissIconAriaLabel,\n}: MessageProps): ReactNode {\n return (\n <MessageFrame theme={theme} size={size}>\n <MessageIconContainer>\n <Icon size={size === \"sm\" ? 20 : 24} icon={icon} tint=\"accent\" />\n </MessageIconContainer>\n <MessageText>{children}</MessageText>\n {onDismiss ? (\n <MessageDismissButtonContainer size={size}>\n <IconButton\n icon={<XRegularIcon />}\n iconSize={size === \"sm\" ? \"fill\" : undefined}\n size={size === \"sm\" ? 24 : 40}\n variant=\"outlined\"\n tint=\"accent\"\n aria-label={dismissIconAriaLabel}\n />\n </MessageDismissButtonContainer>\n ) : null}\n </MessageFrame>\n );\n}\n\ntype SemanticMessageProps = Except<MessageProps, \"icon\" | \"theme\">;\n\nexport function InfoMessage(props: SemanticMessageProps): ReactNode {\n return <Message {...props} theme=\"info\" icon={<InfoRegularIcon />} />;\n}\n\nexport function ConfirmationMessage(props: SemanticMessageProps): ReactNode {\n return <Message {...props} theme=\"success\" icon={<CheckRegularIcon />} />;\n}\n\nexport function WarningMessage(props: SemanticMessageProps): ReactNode {\n return <Message {...props} theme=\"warning\" icon={<WarningRegularIcon />} />;\n}\n","export const inputStyle = {\n fontFamily: \"$body\",\n fontSize: \"$md\",\n color: \"$text-sharp\",\n\n paddingHorizontal: \"$1.0\",\n paddingVertical: \"$0.5\",\n borderRadius: \"$md\",\n} as const;\n","import { Text, View, styled } from \"@tamagui/core\";\nimport { inputStyle } from \"./inputStyle\";\n\nconst PlatformInputTextFrame = styled(\n View,\n {\n ...inputStyle,\n transition: \"formElement\", // crash on native ?\n tabIndex: 0 as const,\n\n variants: {\n disabled: {\n true: {\n tabIndex: -1 as const,\n },\n },\n multiline: {\n true: {\n rows: 3,\n },\n },\n mode: {\n password: {\n type: \"password\",\n },\n number: {\n type: \"number\",\n },\n tel: {\n type: \"tel\",\n },\n email: {\n type: \"email\",\n },\n search: {\n type: \"search\",\n },\n },\n },\n },\n {\n isInput: true,\n validStyles: Text.staticConfig.validStyles,\n },\n);\n\nexport const PlatformInputText = PlatformInputTextFrame.styleable<{\n autoCorrect?: boolean;\n autoCapitalize?: \"characters\" | \"none\" | \"sentences\" | \"words\";\n onChangeText?: (value: string) => void;\n}>(({ autoCorrect, onChangeText, onChange, ...rest }) => (\n <PlatformInputTextFrame\n {...({\n autoCorrect: autoCorrect ? \"on\" : \"off\",\n } as any)}\n {...rest}\n onChange={(e) => {\n if (onChangeText) {\n onChangeText((e.target as HTMLInputElement).value);\n }\n onChange?.(e);\n }}\n />\n));\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { FunctionComponent } from \"react\";\nimport * as containerVariants from \"../containers/variants\";\nimport { PlatformInputText } from \"./PlatformInputText\";\n\nconst NativeInputText = styled(PlatformInputText, {\n render: \"input\",\n theme: \"brand\",\n\n variants: {\n ...containerVariants,\n\n disabled: {\n true: {\n color: \"$text-disabled-muted\",\n cursor: \"not-allowed\",\n opacity: \"$opacity.disabled\",\n },\n },\n } as const,\n\n // @ts-expect-error -- variants not working when isInput is true\n interactive: \"text\",\n withBackground: \"interactive\",\n withBorder: 1,\n\n outlineWidth: 1,\n outlineOffset: 0,\n outlineStyle: \"solid\",\n outlineColor: \"transparent\",\n\n focusVisibleStyle: {\n outlineWidth: 1,\n outlineOffset: 0,\n outlineStyle: \"solid\",\n outlineColor: \"$interactive.forms.outlineColor:focus\",\n },\n\n focusStyle: {\n outlineWidth: 1,\n outlineOffset: 0,\n outlineStyle: \"solid\",\n outlineColor: \"$interactive.forms.outlineColor:focus\",\n },\n});\n\nexport type InputTextProps = Pick<\n GetProps<typeof NativeInputText>,\n | \"aria-labelledby\"\n | \"autoCapitalize\"\n | \"autoCorrect\"\n | \"defaultValue\"\n | \"disabled\"\n | \"forceStyle\"\n | \"id\"\n | \"maxLength\"\n | \"mode\"\n /** @internal use Textarea */\n | \"multiline\"\n | \"onChange\"\n | \"onChangeText\"\n | \"placeholder\"\n | \"readOnly\"\n | \"testID\"\n | \"theme\"\n | \"value\"\n>;\n\nexport const InputText: FunctionComponent<InputTextProps> = NativeInputText;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { FunctionComponent } from \"react\";\nimport type { InputTextProps } from \"./InputText\";\nimport { InputText } from \"./InputText\";\n\nconst TextAreaFrame = styled(InputText, {\n render: \"textarea\",\n multiline: true,\n\n height: \"auto\",\n minHeight: 80,\n borderRadius: \"$1.0\",\n paddingHorizontal: \"$0.75\",\n});\n\nexport type TextAreaProps = Pick<\n GetProps<typeof TextAreaFrame>,\n keyof InputTextProps\n>;\n\nexport const TextArea: FunctionComponent<TextAreaProps> = TextAreaFrame;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { ScrollView as ScrollViewNative } from \"react-native\";\n\nexport const ScrollView = styled(\n ScrollViewNative,\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 { View, styled } from \"@tamagui/core\";\nimport type { GetProps } from \"@tamagui/core\";\nimport type { ComponentType } from \"react\";\nimport { absoluteFillStyle } from \"./utils/absoluteFillStyle\";\n\nconst variants = {\n absoluteFill: {\n true: absoluteFillStyle,\n },\n} as const;\n\nexport const Stack = styled(View, {\n name: \"Stack\",\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n variants,\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\nconst CenterFrame = styled(View, {\n justifyContent: \"center\",\n alignItems: \"center\",\n variants,\n});\n\nexport type CenterProps = Pick<\n GetProps<typeof CenterFrame>,\n \"absoluteFill\" | \"children\" | \"flexGrow\" | \"flexShrink\"\n>;\n\nexport const Center: ComponentType<CenterProps> = CenterFrame;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Text } from \"../primitives/Text\";\n\nexport const StoryTitle = styled(Text, {\n family: \"$heading\",\n weight: \"$extraBold\",\n variants: {\n level: {\n 1: { size: \"$xl\", marginBottom: \"$2.0\" },\n 2: { size: \"$lg\", marginBottom: \"$2.0\" },\n 3: { size: \"$md\", marginBottom: \"$1.0\" },\n 4: { size: \"$sm\", marginBottom: \"$1.0\" },\n },\n } as const,\n\n defaultVariants: {\n level: 1,\n },\n} as const);\n\nexport type StoryTitleProps = GetProps<typeof StoryTitle>;\n","import { isWeb, styled } from \"@tamagui/core\";\nimport { Fragment } from \"react\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport { Box } from \"../containers/Box\";\nimport { Surface } from \"../containers/Surface\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { VStack } from \"../stacks/stacks\";\nimport type { VStackProps } from \"../stacks/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nconst InternalStorySection = styled(VStack, {\n marginBottom: \"$2.0\",\n marginHorizontal: \"$-1.0\",\n paddingHorizontal: \"$1.0\",\n});\n\nexport type StorySectionProps = Except<VStackProps, \"marginBottom\"> & {\n title: ReactNode;\n children: ReactNode;\n level?: 1 | 2;\n withSurface?: boolean;\n};\n\nfunction StorySection({\n title,\n children,\n level = 1,\n withSurface = false,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection {...props}>\n <StoryTitle level={(level + 1) as 2 | 3}>{title}</StoryTitle>\n {withSurface ? (\n <Surface>{children}</Surface>\n ) : (\n <VStack gap=\"$1.0\">{children}</VStack>\n )}\n </InternalStorySection>\n );\n}\n\nfunction SubSection({\n title,\n children,\n withSurface = false,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection marginBottom=\"$1.0\" {...props}>\n <StoryTitle level={3}>{title}</StoryTitle>\n {withSurface ? (\n <Surface>{children}</Surface>\n ) : (\n <VStack gap=\"$1.0\">{children}</VStack>\n )}\n </InternalStorySection>\n );\n}\n\nconst ScrollViewNative = isWeb ? Fragment : ScrollView;\n\nexport interface StoryProps {\n documentation?: NonNullable<ReactNode>;\n children?: NonNullable<ReactNode>;\n noDarkTheme?: boolean;\n}\n\nexport function Story({\n documentation,\n children,\n noDarkTheme,\n}: StoryProps): ReactNode {\n return (\n <ScrollViewNative>\n {documentation && (\n <Surface layer=\"highlight\" shadow=\"s\" theme=\"brand\" marginBottom=\"$3.0\">\n {documentation}\n </Surface>\n )}\n {[\"light\", ...(noDarkTheme ? [] : [\"dark\"])].map((theme) => (\n <Box\n key={theme}\n theme={theme}\n backgroundColor=\"$bg-screen\"\n padding=\"$2.0\"\n >\n {children}\n </Box>\n ))}\n </ScrollViewNative>\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-vite\";\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 { View } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { Platform } from \"react-native\";\nimport { VStack } from \"../stacks/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 marginBottom: \"$2.0\",\n flexWrap: flexWrap ? \"wrap\" : undefined,\n gap: flexWrap ? \"$1.0\" : undefined,\n },\n }}\n >\n {Children.map(children, (child) => (\n <View\n paddingTop=\"$1.0\"\n paddingBottom=\"$2.0\"\n {...{\n [`$${breakpoint}`]: {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: flexWrap ? undefined : 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginVertical: \"$0.25\",\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","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 \"../ui/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\";\nimport \"./reset\";\n\nexport interface AlouetteProviderProps extends Pick<\n TamaguiProviderProps,\n \"disableInjectCSS\"\n> {\n children: ReactNode;\n tamaguiConfig: NonNullable<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","import type { ReactNode } from \"react\";\n\nexport function SafeAreaProvider({ children }: { children: ReactNode }) {\n return children;\n}\n","/* eslint-disable react/destructuring-assignment */\nimport type { Decorator } from \"@storybook/react-vite\";\nimport type { TamaguiProviderProps } from \"@tamagui/core\";\nimport { createContext, useEffect, useState } from \"react\";\nimport { useColorScheme } from \"react-native\";\nimport { AlouetteProvider } from \"./AlouetteProvider\";\nimport { SafeAreaProvider } from \"./SafeAreaProvider\";\n\nexport const AlouetteTamaguiConfigContext = createContext<\n TamaguiProviderProps[\"config\"] | null\n>(null);\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 <SafeAreaProvider>\n <AlouetteProvider\n tamaguiConfig={context.parameters.tamaguiConfig}\n defaultTheme={theme}\n >\n <AlouetteTamaguiConfigContext.Provider\n value={context.parameters.tamaguiConfig}\n >\n {storyFn(context)}\n </AlouetteTamaguiConfigContext.Provider>\n </AlouetteProvider>\n </SafeAreaProvider>\n );\n};\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\n\nexport const Separator = styled(View, {\n flexGrow: 1,\n flexShrink: 0,\n height: 0,\n maxHeight: 0,\n borderColor: \"$border-sharp\",\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 { styled } from \"@tamagui/core\";\nimport type { PressableBoxProps } from \"alouette\";\nimport { CaretRightRegularIcon } from \"alouette-icons/phosphor-icons/CaretRightRegularIcon\";\nimport type { ReactNode } from \"react\";\nimport { Icon } from \"../primitives/Icon\";\nimport { View } from \"../primitives/View\";\nimport { VStack } from \"../stacks/stacks\";\nimport { PressableBox } from \"./PressableBox\";\n\nconst PressableListItemFrame = styled(PressableBox, {\n variant: \"contained\",\n marginHorizontal: \"$0.5\",\n marginVertical: \"$0.25\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingHorizontal: \"$1.0\",\n paddingVertical: \"$1.0\",\n});\n\nexport interface PressableListItemProps {\n theme?: PressableBoxProps[\"theme\"];\n role?: PressableBoxProps[\"role\"];\n variant?: PressableBoxProps[\"variant\"];\n children: ReactNode;\n onPress: () => void;\n}\n\nexport function PressableListItem({\n theme,\n role = \"button\",\n children,\n onPress,\n}: PressableListItemProps): ReactNode {\n return (\n <PressableListItemFrame theme={theme} role={role} onPress={onPress}>\n <View flex={1}>{children}</View>\n <VStack justifyContent=\"center\">\n <Icon\n tint=\"onAccent-muted\"\n icon={<CaretRightRegularIcon />}\n size={18}\n />\n </VStack>\n </PressableListItemFrame>\n );\n}\n","import type { ThemeProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport { Box } from \"../containers/Box\";\n\nexport interface GradientBackgroundProps {\n theme?: ThemeProps[\"name\"];\n children?: ReactNode;\n}\n\nexport const GradientBackground = styled(Box, {\n absoluteFill: true,\n backgroundImage:\n \"linear-gradient(0deg, $bg-screen-gradient-end 5%, $bg-screen-gradient-middle 80%, $bg-screen-gradient-start 98%)\",\n position: \"absolute\", // needed to override \"static\" position for backgroundImage tamagui\n});\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport type { ScrollViewProps } from \"../primitives/ScrollView\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { GradientBackground } from \"./GradientBackground\";\n\nconst TopScrollOffset = styled(View, {\n backgroundColor: \"$bg-screen\",\n position: \"absolute\",\n top: -600,\n left: 0,\n right: 0,\n height: 600,\n});\n\n// We could have used scrollview's background color if it was the same theme as the gradient, but this allows us to have a different theme for the scrollview and the gradient, but it's not always the case\nconst BottomScrollOffset = styled(View, {\n backgroundColor: \"$bg-screen\",\n position: \"absolute\",\n bottom: -600,\n left: 0,\n right: 0,\n height: 600,\n});\n\nexport const GradientScrollView = ScrollView.styleable<{\n gradientTheme?: ScrollViewProps[\"theme\"];\n}>(({ gradientTheme, children, ...scrollViewProps }) => (\n <ScrollView {...scrollViewProps}>\n <TopScrollOffset\n theme={gradientTheme}\n backgroundColor=\"$bg-screen-gradient-start\"\n />\n <BottomScrollOffset\n theme={gradientTheme}\n backgroundColor=\"$bg-screen-gradient-end\"\n />\n <GradientBackground theme={gradientTheme} />\n {children}\n </ScrollView>\n));\n\nexport type GradientScrollViewProps = GetProps<typeof GradientScrollView>;\n","import type { GestureReponderEvent, GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\n// import { CheckRegularIcon } from \"alouette-icons/phosphor-icons/CheckRegularIcon\";\n// import { XRegularIcon } from \"alouette-icons/phosphor-icons/XRegularIcon\";\nimport { useState } from \"react\";\nimport { Box, InteractiveBox } from \"../containers/Box\";\n// import { Icon } from \"../primitives/Icon\";\n\nconst useControllableCheckedState = (\n checked: boolean | undefined,\n onChange?: (e: GestureReponderEvent) => void,\n onValueChange?: (newValue: boolean) => void,\n) => {\n const [checkedState, setCheckedState] = useState(checked ?? false);\n\n return [\n checked !== undefined ? checked : checkedState,\n (newChecked: boolean, e: GestureReponderEvent) => {\n setCheckedState((prevValue) => {\n if (prevValue !== newChecked) {\n onChange?.(e);\n onValueChange?.(newChecked);\n }\n return newChecked;\n });\n },\n ] as const;\n};\n\nconst SwitchFrame = styled(InteractiveBox, {\n theme: \"brand\",\n render: \"button\",\n // @ts-expect-error web only prop missing definition\n type: \"button\",\n role: \"switch\",\n layer: \"lowered\",\n shadow: \"lowered\",\n\n position: \"relative\",\n tabIndex: 0,\n borderRadius: 1000,\n\n transition: \"formElement\",\n\n disabledStyle: {\n backgroundColor: \"$interactive.forms.backgroundColor:disabled\",\n },\n\n // TODO hover/focus\n\n focusVisibleStyle: {\n outlineColor: \"$interactive.forms.outlineColor:focus\",\n outlineWidth: 2,\n outlineStyle: \"solid\",\n outlineOffset: 2,\n },\n\n variants: {\n size: {\n md: {\n height: 44,\n width: 66,\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst thumbSize = 44 * 0.8;\nconst SwitchThumb = styled(Box, {\n withBackground: \"highlight\",\n position: \"absolute\",\n top: 44 * 0.1,\n borderRadius: 1000,\n center: true,\n transition: \"formElement\",\n shadow: \"s\",\n\n variants: {\n size: {\n md: {\n height: thumbSize,\n width: thumbSize,\n },\n },\n\n disabled: {\n true: {\n backgroundColor: \"$text-disabled-muted\",\n shadow: \"none\",\n },\n },\n\n checked: {\n false: {\n left: 44 * 0.1,\n hoverStyle: {\n width: thumbSize + 2,\n },\n pressStyle: {\n width: thumbSize + 8,\n },\n },\n true: {\n left: 44 * 0.6,\n hoverStyle: {\n left: 44 * 0.6 - 2,\n width: thumbSize + 2,\n },\n pressStyle: {\n left: 44 * 0.6 - 8,\n width: thumbSize + 8,\n },\n },\n },\n } as const,\n\n defaultVariants: {\n size: \"md\",\n },\n});\n\n// const iconSize = 16;\n\n// const SwitchIconContainer = styled(View, {\n// width: iconSize,\n// height: iconSize,\n// position: \"absolute\",\n// top: \"50%\",\n// transform: \"translate(-50%, -50%)\",\n// transition: \"formElement\",\n\n// variants: {\n// iconPosition: {\n// left: {\n// left: thumbSize / 2,\n// },\n// right: {\n// right: iconSize + 3 - thumbSize / 2,\n// },\n// },\n// showed: {\n// false: {\n// opacity: 0,\n// },\n// true: {\n// opacity: 1,\n// },\n// },\n// },\n// });\n\ninterface SwitchAdditionalProps {\n checked: boolean;\n // checkedTheme?: GetProps<typeof SwitchFrame>[\"theme\"];\n onChange: (e: GestureReponderEvent) => void;\n onValueChange?: (newValue: boolean) => void;\n}\n\nexport type SwitchProps = Pick<\n GetProps<typeof SwitchFrame>,\n \"aria-labelledby\" | \"disabled\"\n> &\n SwitchAdditionalProps;\n\nexport const Switch = SwitchFrame.styleable<SwitchAdditionalProps>(\n ({ checked, disabled, onChange, onValueChange, ...rest }) => {\n const [currentChecked, setCurrentChecked] = useControllableCheckedState(\n checked,\n onChange,\n onValueChange,\n );\n return (\n <SwitchFrame\n aria-checked={currentChecked}\n disabled={disabled}\n {...rest}\n // {...(currentChecked && checkedTheme ? { theme: checkedTheme } : {})}\n onPress={(e) => {\n setCurrentChecked(!currentChecked, e);\n }}\n >\n <SwitchThumb checked={currentChecked} disabled={disabled}>\n {/* <SwitchIconContainer showed={!currentChecked} iconPosition=\"left\">\n <Icon tint=\"accent\" size={16} icon={<XRegularIcon />} />\n </SwitchIconContainer>\n <SwitchIconContainer showed={currentChecked} iconPosition=\"right\">\n <Icon tint=\"accent\" size={16} icon={<CheckRegularIcon />} />\n </SwitchIconContainer> */}\n </SwitchThumb>\n\n {/* <input\n aria-hidden\n value=\"true\"\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n tabIndex={-1}\n style={{\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n }}\n /> */}\n </SwitchFrame>\n );\n },\n);\n"],"names":["variants","Text","CoreText","ScrollViewNative","BreakpointNameEnum"],"mappings":"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"}
|