alouette 7.0.0-beta.2 → 7.0.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/README.md +7 -1
  2. package/dist/createAlouetteTamagui-browser.es.js +105 -95
  3. package/dist/createAlouetteTamagui-browser.es.js.map +1 -1
  4. package/dist/createAlouetteTamagui-node18.mjs +105 -95
  5. package/dist/createAlouetteTamagui-node18.mjs.map +1 -1
  6. package/dist/createAlouetteTamagui-react-native.cjs.js +107 -94
  7. package/dist/createAlouetteTamagui-react-native.cjs.js.map +1 -1
  8. package/dist/definitions/components/actions/Button.d.ts +20 -0
  9. package/dist/definitions/components/actions/Button.d.ts.map +1 -0
  10. package/dist/definitions/components/actions/Button.stories.d.ts +10 -0
  11. package/dist/definitions/components/actions/Button.stories.d.ts.map +1 -0
  12. package/dist/definitions/components/actions/IconButton.d.ts +18 -0
  13. package/dist/definitions/components/actions/IconButton.d.ts.map +1 -0
  14. package/dist/definitions/components/actions/IconButton.stories.d.ts +10 -0
  15. package/dist/definitions/components/actions/IconButton.stories.d.ts.map +1 -0
  16. package/dist/definitions/components/containers/Box.d.ts +13 -0
  17. package/dist/definitions/components/containers/Box.d.ts.map +1 -0
  18. package/dist/definitions/components/containers/Box.stories.d.ts +18 -0
  19. package/dist/definitions/components/containers/Box.stories.d.ts.map +1 -0
  20. package/dist/definitions/components/containers/PressableBox.d.ts +12 -0
  21. package/dist/definitions/components/containers/PressableBox.d.ts.map +1 -0
  22. package/dist/definitions/components/containers/PressableBox.stories.d.ts +18 -0
  23. package/dist/definitions/components/containers/PressableBox.stories.d.ts.map +1 -0
  24. package/dist/definitions/components/containers/variants.d.ts +61 -0
  25. package/dist/definitions/components/containers/variants.d.ts.map +1 -0
  26. package/dist/definitions/components/feedback/FeedbackIcon.d.ts +8 -0
  27. package/dist/definitions/components/feedback/FeedbackIcon.d.ts.map +1 -0
  28. package/dist/definitions/components/feedback/Message.d.ts +25 -0
  29. package/dist/definitions/components/feedback/Message.d.ts.map +1 -0
  30. package/dist/definitions/components/feedback/Message.stories.d.ts +10 -0
  31. package/dist/definitions/components/feedback/Message.stories.d.ts.map +1 -0
  32. package/dist/definitions/components/forms/InputText.d.ts +23 -0
  33. package/dist/definitions/components/forms/InputText.d.ts.map +1 -0
  34. package/dist/definitions/components/forms/InputText.stories.d.ts +16 -0
  35. package/dist/definitions/components/forms/InputText.stories.d.ts.map +1 -0
  36. package/dist/definitions/components/layout/Separator.d.ts +6 -0
  37. package/dist/definitions/components/layout/Separator.d.ts.map +1 -0
  38. package/dist/definitions/components/layout/Separator.stories.d.ts +10 -0
  39. package/dist/definitions/components/layout/Separator.stories.d.ts.map +1 -0
  40. package/dist/definitions/components/layout/list.d.ts +7 -0
  41. package/dist/definitions/components/layout/list.d.ts.map +1 -0
  42. package/dist/definitions/components/layout/list.stories.d.ts +7 -0
  43. package/dist/definitions/components/layout/list.stories.d.ts.map +1 -0
  44. package/dist/definitions/components/primitives/Icon.d.ts +14 -0
  45. package/dist/definitions/components/primitives/Icon.d.ts.map +1 -0
  46. package/dist/definitions/components/primitives/Icon.stories.d.ts +9 -0
  47. package/dist/definitions/components/primitives/Icon.stories.d.ts.map +1 -0
  48. package/dist/definitions/components/primitives/ScrollView.d.ts +14 -0
  49. package/dist/definitions/components/primitives/ScrollView.d.ts.map +1 -0
  50. package/dist/definitions/components/primitives/View.d.ts +5 -0
  51. package/dist/definitions/components/primitives/View.d.ts.map +1 -0
  52. package/dist/definitions/components/primitives/View.stories.d.ts +10 -0
  53. package/dist/definitions/components/primitives/View.stories.d.ts.map +1 -0
  54. package/dist/definitions/components/primitives/createVariants.d.ts +54 -0
  55. package/dist/definitions/components/primitives/createVariants.d.ts.map +1 -0
  56. package/dist/definitions/components/primitives/stacks.d.ts +17 -0
  57. package/dist/definitions/components/primitives/stacks.d.ts.map +1 -0
  58. package/dist/definitions/components/primitives/stacks.stories.d.ts +10 -0
  59. package/dist/definitions/components/primitives/stacks.stories.d.ts.map +1 -0
  60. package/dist/definitions/components/story-components/Story.d.ts +21 -0
  61. package/dist/definitions/components/story-components/Story.d.ts.map +1 -0
  62. package/dist/definitions/components/story-components/StoryContainer.d.ts +7 -0
  63. package/dist/definitions/components/story-components/StoryContainer.d.ts.map +1 -0
  64. package/dist/definitions/components/story-components/StoryDecorator.d.ts +3 -0
  65. package/dist/definitions/components/story-components/StoryDecorator.d.ts.map +1 -0
  66. package/dist/definitions/components/story-components/StoryGrid.d.ts +19 -0
  67. package/dist/definitions/components/story-components/StoryGrid.d.ts.map +1 -0
  68. package/dist/definitions/components/story-components/StoryTitle.d.ts +10 -0
  69. package/dist/definitions/components/story-components/StoryTitle.d.ts.map +1 -0
  70. package/dist/definitions/components/story-components/WithTamaguiConfig.d.ts +7 -0
  71. package/dist/definitions/components/story-components/WithTamaguiConfig.d.ts.map +1 -0
  72. package/dist/definitions/components/typography/Typography.d.ts +38 -0
  73. package/dist/definitions/components/typography/Typography.d.ts.map +1 -0
  74. package/dist/definitions/components/typography/Typography.stories.d.ts +15 -0
  75. package/dist/definitions/components/typography/Typography.stories.d.ts.map +1 -0
  76. package/dist/definitions/components/windowSize/SwitchBreakpoints.d.ts +20 -0
  77. package/dist/definitions/components/windowSize/SwitchBreakpoints.d.ts.map +1 -0
  78. package/dist/definitions/components/windowSize/SwitchBreakpoints.stories.d.ts +10 -0
  79. package/dist/definitions/components/windowSize/SwitchBreakpoints.stories.d.ts.map +1 -0
  80. package/dist/definitions/components/windowSize/useCurrentBreakpointName.d.ts +5 -0
  81. package/dist/definitions/components/windowSize/useCurrentBreakpointName.d.ts.map +1 -0
  82. package/dist/definitions/config/Breakpoints.d.ts +32 -0
  83. package/dist/definitions/config/Breakpoints.d.ts.map +1 -0
  84. package/dist/definitions/config/animations.d.ts +15 -0
  85. package/dist/definitions/config/animations.d.ts.map +1 -0
  86. package/dist/definitions/config/animations.web.d.ts +5 -0
  87. package/dist/definitions/config/animations.web.d.ts.map +1 -0
  88. package/dist/definitions/config/colorScales.d.ts +13 -0
  89. package/dist/definitions/config/colorScales.d.ts.map +1 -0
  90. package/dist/definitions/config/createAlouetteFonts.d.ts +90 -0
  91. package/dist/definitions/config/createAlouetteFonts.d.ts.map +1 -0
  92. package/dist/definitions/config/createAlouetteTokens.d.ts +557 -0
  93. package/dist/definitions/config/createAlouetteTokens.d.ts.map +1 -0
  94. package/dist/definitions/config/media.d.ts +15 -0
  95. package/dist/definitions/config/media.d.ts.map +1 -0
  96. package/dist/definitions/config/themes.d.ts +247 -0
  97. package/dist/definitions/config/themes.d.ts.map +1 -0
  98. package/dist/definitions/config/themes.stories.d.ts +8 -0
  99. package/dist/definitions/config/themes.stories.d.ts.map +1 -0
  100. package/dist/definitions/config/tokens.stories.d.ts +8 -0
  101. package/dist/definitions/config/tokens.stories.d.ts.map +1 -0
  102. package/dist/definitions/config/utils/groupTokens.d.ts +7 -0
  103. package/dist/definitions/config/utils/groupTokens.d.ts.map +1 -0
  104. package/dist/definitions/core/AlouetteDecorator.d.ts +3 -0
  105. package/dist/definitions/core/AlouetteDecorator.d.ts.map +1 -0
  106. package/dist/definitions/core/AlouetteProvider.d.ts +8 -0
  107. package/dist/definitions/core/AlouetteProvider.d.ts.map +1 -0
  108. package/dist/definitions/createAlouetteTamagui.d.ts +136 -0
  109. package/dist/definitions/createAlouetteTamagui.d.ts.map +1 -0
  110. package/dist/definitions/index.d.ts +42 -0
  111. package/dist/definitions/index.d.ts.map +1 -0
  112. package/dist/index-browser.es.js +389 -60
  113. package/dist/index-browser.es.js.map +1 -1
  114. package/dist/index-node18.mjs +389 -60
  115. package/dist/index-node18.mjs.map +1 -1
  116. package/dist/index-react-native.cjs.js +403 -56
  117. package/dist/index-react-native.cjs.js.map +1 -1
  118. package/package.json +31 -24
  119. package/src/components/actions/Button.stories.tsx +4 -5
  120. package/src/components/actions/Button.tsx +3 -4
  121. package/src/components/actions/IconButton.stories.tsx +2 -3
  122. package/src/components/actions/IconButton.tsx +4 -4
  123. package/src/components/containers/{Frame.stories.tsx → Box.stories.tsx} +21 -21
  124. package/src/components/containers/{Frame.tsx → Box.tsx} +3 -3
  125. package/src/components/containers/{Pressable.stories.tsx → PressableBox.stories.tsx} +8 -8
  126. package/src/components/containers/PressableBox.tsx +9 -0
  127. package/src/components/containers/variants.ts +15 -12
  128. package/src/components/feedback/FeedbackIcon.tsx +2 -2
  129. package/src/components/feedback/Message.stories.tsx +2 -2
  130. package/src/components/feedback/Message.tsx +4 -4
  131. package/src/components/forms/InputText.stories.tsx +2 -2
  132. package/src/components/forms/InputText.tsx +5 -0
  133. package/src/components/layout/Separator.stories.tsx +39 -0
  134. package/src/components/layout/Separator.tsx +31 -0
  135. package/src/components/layout/list.stories.tsx +24 -0
  136. package/src/components/layout/list.tsx +30 -0
  137. package/src/components/primitives/Icon.stories.tsx +1 -1
  138. package/src/components/primitives/Icon.tsx +6 -12
  139. package/src/components/primitives/ScrollView.ts +2 -1
  140. package/src/components/primitives/createVariants.ts +7 -5
  141. package/src/components/primitives/stacks.stories.tsx +14 -14
  142. package/src/components/primitives/stacks.ts +2 -6
  143. package/src/components/story-components/Story.tsx +1 -1
  144. package/src/components/story-components/StoryGrid.tsx +0 -1
  145. package/src/components/story-components/StoryTitle.tsx +3 -0
  146. package/src/components/typography/Typography.tsx +2 -0
  147. package/src/components/windowSize/SwitchBreakpoints.stories.tsx +1 -1
  148. package/src/config/animations.ts +4 -0
  149. package/src/config/animations.web.ts +1 -0
  150. package/src/config/colorScales.ts +4 -4
  151. package/src/config/createAlouetteFonts.ts +6 -6
  152. package/src/config/createAlouetteTokens.ts +23 -18
  153. package/src/config/themes.stories.tsx +5 -9
  154. package/src/config/themes.ts +139 -68
  155. package/src/config/tokens.stories.tsx +7 -7
  156. package/src/core/AlouetteDecorator.tsx +1 -0
  157. package/src/createAlouetteTamagui.ts +32 -19
  158. package/src/index.ts +50 -3
  159. package/.editorconfig +0 -13
  160. package/.eslintrc.json +0 -5
  161. package/.yo-rc.json +0 -11
  162. package/dist/phosphor-icons-browser.es.js +0 -2497
  163. package/dist/phosphor-icons-browser.es.js.map +0 -1
  164. package/dist/phosphor-icons-node18.mjs +0 -2497
  165. package/dist/phosphor-icons-node18.mjs.map +0 -1
  166. package/dist/phosphor-icons-react-native.cjs.js +0 -4998
  167. package/dist/phosphor-icons-react-native.cjs.js.map +0 -1
  168. package/phosphor-icons.js +0 -1
  169. package/rollup.config.mjs +0 -8
  170. package/scripts/generate-phosphor-icons-legacy-withcopy.mjs +0 -64
  171. package/scripts/generate-phosphor-icons.mjs +0 -51
  172. package/src/.eslintrc.json +0 -32
  173. package/src/components/containers/Pressable.tsx +0 -9
  174. package/src/components/windowSize/__snapshots__/SwitchBreakpoints.stories.tsx.snap +0 -1032
  175. package/src/components/windowSize/__snapshots_web__/SwitchBreakpoints.stories.tsx.snap +0 -402
  176. package/src/phosphor-icons.cjs +0 -1254
  177. package/src/phosphor-icons.d.ts +0 -2501
  178. package/src/phosphor-icons.ts +0 -2499
  179. package/src/typings/bundler.d.ts +0 -10
  180. package/tsconfig.json +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"index-react-native.cjs.js","sources":["../src/components/primitives/createVariants.ts","../src/components/containers/variants.ts","../src/components/containers/Frame.tsx","../src/components/primitives/Icon.tsx","../src/components/containers/Pressable.tsx","../src/components/actions/IconButton.tsx","../src/components/primitives/ScrollView.ts","../src/components/primitives/stacks.ts","../src/components/typography/Typography.tsx","../src/config/Breakpoints.ts","../src/components/windowSize/useCurrentBreakpointName.ts","../src/components/windowSize/SwitchBreakpoints.tsx","../src/core/AlouetteProvider.tsx","../src/core/AlouetteDecorator.tsx"],"sourcesContent":["import type { VariantSpreadExtras } from \"@tamagui/core\";\n\nexport const fullscreenStyle = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const;\n\nexport type InternalPseudoState = \"focus\" | \"hover\" | \"press\";\n\nexport const getBorderAdditionalInteraction = ({\n internalForcedPseudoState,\n disabled,\n interactive,\n}: VariantSpreadExtras<any>[\"props\"]) => {\n const prefix = interactive === \"text\" ? \"interactive.forms\" : \"interactive\";\n\n if (disabled) {\n return {\n borderColor: `$${prefix}.borderColor:disabled`,\n } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return {\n borderColor: `$${prefix}.borderColor:hover`,\n };\n case `press`:\n return {\n borderColor: `$${prefix}.borderColor:press`,\n };\n case `focus`:\n return {\n borderColor: `$${prefix}.borderColor:focus`,\n };\n default:\n break;\n }\n }\n\n return {\n borderColor: `$${prefix}.borderColor`,\n\n hoverStyle: {\n borderColor: `$${prefix}.borderColor:hover`,\n },\n pressStyle: {\n borderColor: `$${prefix}.borderColor:press`,\n },\n focusStyle: {\n borderColor: `$${prefix}.borderColor:focus`,\n },\n } as const;\n};\n\nexport const getBackgroundAdditionalInteraction = ({\n internalForcedPseudoState,\n disabled,\n interactive,\n variant,\n}: VariantSpreadExtras<any>[\"props\"]) => {\n const prefix =\n interactive === \"text\"\n ? \"interactive.forms\"\n : `interactive.${variant || \"contained\"}`;\n\n if (disabled) {\n return {\n backgroundColor: `$${prefix}.backgroundColor:disabled`,\n } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:hover`,\n };\n case `press`:\n return {\n backgroundColor: `$${prefix}.backgroundColor:press`,\n };\n case `focus`:\n return {\n backgroundColor: `$${prefix}.backgroundColor:focus`,\n };\n default:\n break;\n }\n }\n\n return {\n backgroundColor: `$${prefix}.backgroundColor`,\n\n hoverStyle: {\n backgroundColor: `$${prefix}.backgroundColor:hover`,\n },\n pressStyle: {\n backgroundColor: `$${prefix}.backgroundColor:press`,\n },\n focusStyle: {\n backgroundColor: `$${prefix}.backgroundColor:focus`,\n },\n } as const;\n};\n","import type { SizeTokens, VariantSpreadExtras, ViewStyle } from \"@tamagui/core\";\nimport type { InternalPseudoState } from \"../primitives/createVariants\";\nimport {\n getBackgroundAdditionalInteraction,\n getBorderAdditionalInteraction,\n} from \"../primitives/createVariants\";\n\nexport const internalForcedPseudoState = (val: InternalPseudoState) => ({});\n\nexport const withBorder = (\n val: SizeTokens | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n return {\n borderWidth: typeof val === \"number\" ? val : 1,\n borderColor: \"$borderColor\",\n\n ...(props.interactive ? getBorderAdditionalInteraction(props) : undefined),\n } as const;\n};\n\nexport const withBackground = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n const variant =\n props.interactive === \"text\" ? \"text\" : props.variant || \"contained\";\n\n if (!val) return {} as const;\n\n if (!props.role && !props.outlineStyle && props.interactive) {\n throw new Error(\"A role prop is required while using interactive\");\n }\n\n return {\n backgroundColor: props.interactive\n ? `$interactive.${variant}.backgroundColor`\n : \"$mainColor\",\n\n ...(props.interactive\n ? getBackgroundAdditionalInteraction(props)\n : undefined),\n } as const;\n};\n\nconst circularStyle = {\n borderRadius: 100_000,\n padding: 0,\n};\n\nexport const size = (val: number) => {\n return { width: val, height: val } as const;\n};\n\nexport const circular = {\n true: (val: boolean, { props, tokens }: VariantSpreadExtras<any>) => {\n if (!(\"size\" in props)) {\n return circularStyle;\n }\n const sizePropValue: keyof typeof tokens.size = props.size;\n const sizeValue = tokens.size[sizePropValue];\n return {\n ...circularStyle,\n width: sizeValue,\n height: sizeValue,\n maxWidth: sizeValue,\n maxHeight: sizeValue,\n minWidth: sizeValue,\n minHeight: sizeValue,\n };\n },\n} as const;\n\nexport const interactive = (\n isInteractiveOrInteractiveCursorType: boolean | ViewStyle[\"cursor\"],\n { props }: VariantSpreadExtras<any>,\n) =>\n isInteractiveOrInteractiveCursorType\n ? ({\n cursor: props.disabled\n ? \"not-allowed\"\n : isInteractiveOrInteractiveCursorType === true\n ? \"pointer\"\n : isInteractiveOrInteractiveCursorType,\n } as const)\n : null;\n\nexport const centered = {\n true: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n} as const;\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport * as variants from \"./variants\";\n\n/** View with alouette variants */\nexport const Frame = styled(View, {\n name: \"Frame\",\n variants,\n animation: \"fast\",\n} as const);\n\nexport type FrameProps = GetProps<typeof Frame>;\n","import type { ColorTokens, GetProps, Variable } from \"@tamagui/core\";\nimport { useStyle } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport type { OpaqueColorValue } from \"react-native\";\nimport type { FrameProps } from \"../containers/Frame\";\nimport { Frame } from \"../containers/Frame\";\n\nexport interface IconProps\n extends Exclude<GetProps<typeof Frame>, \"alignSelf\" | \"style\"> {\n icon: ReactElement;\n color?: ColorTokens | OpaqueColorValue | Variable<any> | undefined;\n align?: FrameProps[\"alignSelf\"];\n contrast?: boolean;\n size?: number;\n}\n\nexport function Icon({\n icon,\n size = 20,\n align = \"auto\",\n contrast,\n color = contrast ? \"$contrastTextColor\" : \"$textColor\",\n ...props\n}: IconProps): ReactNode {\n const style = useStyle({\n color,\n // if needed for native\n // resolveValues: Platform.OS === 'web' ? undefined: 'value',\n });\n\n // if needed for native\n // const clonedIcon = cloneElement(icon, { style });\n // const clonedIcon = cloneElement(icon, { color: style.color });\n\n return (\n <Frame\n {...props}\n centered\n alignSelf={align}\n size={size}\n style={style as any}\n >\n {icon}\n </Frame>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Frame } from \"./Frame\";\n\nexport const Pressable = styled(Frame, {\n interactive: true,\n} as const);\n\nexport type PressableProps = GetProps<typeof Pressable>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { type ReactElement, type ReactNode } from \"react\";\nimport { Icon } from \"../primitives/Icon\";\nimport { Pressable } from \"../containers/Pressable\";\n\nconst IconButtonFrame = styled(Pressable, {\n name: \"IconButtonFrame\",\n role: \"button\",\n centered: true,\n withBorder: true,\n withBackground: true,\n size: 40,\n borderWidth: 1,\n borderRadius: 10000,\n});\n\ntype IconButtonFrameProps = GetProps<typeof IconButtonFrame>;\n\nexport interface IconButtonProps extends IconButtonFrameProps {\n icon: NonNullable<ReactElement>;\n}\n\nexport function IconButton({\n icon,\n disabled,\n size = 40,\n ...pressableProps\n}: IconButtonProps): ReactNode {\n return (\n <IconButtonFrame size={size} disabled={disabled} {...pressableProps}>\n <Icon\n size={size / 2}\n color={disabled ? \"$contrastDisabled\" : undefined}\n contrast={!disabled}\n icon={icon}\n />\n </IconButtonFrame>\n );\n}\n","import { GetProps, styled } from '@tamagui/core'\nimport { ScrollView as ScrollViewNative } from 'react-native'\nimport { fullscreenStyle } from './createVariants';\n\nexport const ScrollView = styled(\n ScrollViewNative,\n {\n name: 'ScrollView',\n scrollEnabled: true,\n\n variants: {\n fullscreen: {\n true: fullscreenStyle,\n },\n },\n } as const,\n {\n accept: {\n contentContainerStyle: 'style',\n } ,\n }as const\n)\n\nexport type ScrollView = Pick<ScrollViewNative, 'scrollTo'>\n\nexport type ScrollViewProps = GetProps<typeof ScrollView>\n","import { View, styled } from \"@tamagui/core\";\nimport type { GetProps } from \"@tamagui/core\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nconst variants = {\n fullscreen: {\n true: fullscreenStyle,\n },\n} as const;\n\nexport const Stack = styled(View, {\n name: \"Stack\",\n variants: {\n ...variants,\n type: {\n h: {\n flexDirection: \"row\",\n },\n v: {\n flexDirection: \"column\",\n },\n },\n } as const,\n});\n\nexport type StackProps = GetProps<typeof Stack>;\n\nexport const HStack = styled(Stack, {\n name: \"HStack\",\n flexDirection: \"row\",\n variants,\n});\n\nexport type HStackProps = GetProps<typeof HStack>;\n\nexport const VStack = styled(Stack, {\n name: \"VStack\",\n flexDirection: \"column\",\n});\n\nexport type VStackProps = GetProps<typeof VStack>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { Text, styled } from \"@tamagui/core\";\nimport { createContext, useContext } from \"react\";\n\nexport const Typography = styled(Text, {\n name: \"Typography\",\n fontFamily: \"$body\",\n color: \"$textColor\",\n fontWeight: \"$regular\",\n\n variants: {\n size: {\n xl: { fontSize: \"$xl\", lineHeight: \"$xl\" },\n lg: { fontSize: \"$lg\", lineHeight: \"$lg\" },\n md: { fontSize: \"$md\", lineHeight: \"$md\" },\n sm: { fontSize: \"$sm\", lineHeight: \"$sm\" },\n xs: { fontSize: \"$xs\", lineHeight: \"$xs\" },\n },\n weight: {\n regular: { fontWeight: \"$regular\" },\n bold: { fontWeight: \"$bold\" },\n black: { fontWeight: \"$black\" },\n },\n family: {\n heading: { fontFamily: \"$heading\" },\n body: { fontFamily: \"$body\" },\n },\n contrast: {\n true: {\n color: \"$contrastTextColor\",\n },\n },\n },\n\n defaultVariants: {\n size: \"md\",\n weight: \"regular\",\n family: \"body\",\n },\n} as const);\n\nexport type TypographyProps = GetProps<typeof Typography>;\n\nexport const TypographyParagraph = styled(Typography, {\n name: \"TypographyParagraph\",\n tag: \"p\",\n userSelect: \"auto\",\n family: \"body\",\n} as const);\n\nconst TypographySizeContext = createContext<TypographyProps[\"size\"]>(undefined);\n\nexport const TypographyWithContext = Typography.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n if (sizeOrAncestorSizeOrDefaultSize !== size) {\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n }\n return <Typography ref={ref} size={size} {...props} />;\n },\n);\n\nexport const TypographyParagraphWithContext = TypographyParagraph.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n },\n);\n","export const Breakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n} as const;\n\nexport type Breakpoint = (typeof Breakpoints)[keyof typeof Breakpoints];\nexport type BreakpointNames = 'base' | 'large' | 'medium' | 'small' | 'wide';\n\nexport enum BreakpointNameEnum {\n BASE = 'base',\n SMALL = 'small',\n MEDIUM = 'medium',\n LARGE = 'large',\n WIDE = 'wide',\n}\n","import { useMedia } from '@tamagui/core';\nimport type { BreakpointNames } from '../../config/Breakpoints';\nimport { BreakpointNameEnum } from '../../config/Breakpoints';\n\nexport function useCurrentBreakpointName(): BreakpointNameEnum {\n const media = useMedia();\n\n if (media.wide) return BreakpointNameEnum.WIDE;\n if (media.large) return BreakpointNameEnum.LARGE;\n if (media.medium) return BreakpointNameEnum.MEDIUM;\n if (media.small) return BreakpointNameEnum.SMALL;\n return BreakpointNameEnum.BASE;\n}\n\nexport function useCurrentBreakpointNameFiltered<\n Names extends BreakpointNames[],\n>(names: Names): Names[number] {\n const media = useMedia();\n\n if (names.includes(BreakpointNameEnum.WIDE) && media.wide) {\n return BreakpointNameEnum.WIDE;\n }\n if (names.includes(BreakpointNameEnum.LARGE) && media.large) {\n return BreakpointNameEnum.LARGE;\n }\n if (names.includes(BreakpointNameEnum.MEDIUM) && media.medium) {\n return BreakpointNameEnum.MEDIUM;\n }\n if (names.includes(BreakpointNameEnum.SMALL) && media.small) {\n return BreakpointNameEnum.SMALL;\n }\n return BreakpointNameEnum.BASE;\n}\n","import type { ReactNode } from 'react';\nimport type { SetRequired } from 'type-fest';\nimport type { BreakpointNames } from '../../config/Breakpoints';\nimport { View } from '../primitives/View';\nimport { useCurrentBreakpointNameFiltered } from './useCurrentBreakpointName';\n\ntype SwitchBreakpointsProps = SetRequired<\n Partial<Record<BreakpointNames, ReactNode>>,\n 'base'\n> & {\n children?: never;\n};\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 : {\n display: 'none',\n [`$${name}`]: { display: 'flex' },\n })}\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\";\n\nexport interface AlouetteProviderProps {\n children: ReactNode;\n tamaguiConfig: TamaguiProviderProps[\"config\"];\n}\n\nexport function AlouetteProvider({\n children,\n tamaguiConfig,\n}: AlouetteProviderProps): ReactNode {\n return (\n <TamaguiProvider config={tamaguiConfig} defaultTheme=\"light\">\n {children}\n </TamaguiProvider>\n );\n}\n","import type { Decorator } from '@storybook/react';\nimport { AlouetteProvider } from './AlouetteProvider';\n\n// eslint-disable-next-line react/function-component-definition -- not a component\nexport const AlouetteDecorator: Decorator = (storyFn, context) => (\n <AlouetteProvider tamaguiConfig={context.parameters.tamaguiConfig}>\n {storyFn(context)}\n </AlouetteProvider>\n);\n"],"names":["styled","View","variants","useStyle","jsx","ScrollViewNative","Text","createContext","useContext","BreakpointNameEnum","useMedia","TamaguiProvider"],"mappings":"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"}
1
+ {"version":3,"file":"index-react-native.cjs.js","sources":["../src/components/primitives/createVariants.ts","../src/components/containers/variants.ts","../src/components/containers/Box.tsx","../src/components/containers/PressableBox.tsx","../src/components/primitives/Icon.tsx","../src/components/actions/IconButton.tsx","../src/components/primitives/stacks.ts","../src/components/typography/Typography.tsx","../src/components/actions/Button.tsx","../src/components/feedback/FeedbackIcon.tsx","../src/components/feedback/Message.tsx","../src/components/forms/InputText.tsx","../src/components/primitives/ScrollView.ts","../src/components/story-components/StoryTitle.tsx","../src/components/story-components/Story.tsx","../src/components/story-components/StoryContainer.tsx","../src/components/story-components/StoryDecorator.tsx","../src/components/story-components/StoryGrid.tsx","../src/components/story-components/WithTamaguiConfig.tsx","../src/config/Breakpoints.ts","../src/components/windowSize/useCurrentBreakpointName.ts","../src/components/windowSize/SwitchBreakpoints.tsx","../src/core/AlouetteProvider.tsx","../src/core/AlouetteDecorator.tsx","../src/components/layout/Separator.tsx","../src/components/layout/list.tsx"],"sourcesContent":["import type { VariantSpreadExtras } from \"@tamagui/core\";\n\nexport const fullscreenStyle = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const;\n\nexport type InternalPseudoState = \"focus\" | \"hover\" | \"press\";\n\nexport const getBorderAdditionalInteraction = ({\n internalForcedPseudoState,\n disabled,\n interactive,\n}: VariantSpreadExtras<any>[\"props\"]) => {\n const prefix = interactive === \"text\" ? \"interactive.forms\" : \"interactive\";\n\n if (disabled) {\n return {\n borderColor: `$${prefix}.borderColor:disabled`,\n } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return {\n borderColor: `$${prefix}.borderColor:hover`,\n };\n case \"press\":\n return {\n borderColor: `$${prefix}.borderColor:press`,\n };\n case \"focus\":\n return {\n borderColor: `$${prefix}.borderColor:focus`,\n };\n default:\n break;\n }\n }\n\n return {\n borderColor: `$${prefix}.borderColor`,\n\n hoverStyle: {\n borderColor: `$${prefix}.borderColor:hover`,\n },\n pressStyle: {\n borderColor: `$${prefix}.borderColor:press`,\n },\n focusStyle: {\n borderColor: `$${prefix}.borderColor:focus`,\n },\n } as const;\n};\n\n// eslint-disable-next-line complexity\nexport const getBackgroundAdditionalInteraction = ({\n internalForcedPseudoState,\n disabled,\n interactive,\n variant,\n}: VariantSpreadExtras<any>[\"props\"]) => {\n const prefix =\n interactive === \"text\"\n ? \"interactive.forms\"\n : // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `interactive.${variant || \"contained\"}`;\n\n if (disabled) {\n return {\n backgroundColor: `$${prefix}.backgroundColor:disabled`,\n } as const;\n }\n\n if (process.env.STORYBOOK && internalForcedPseudoState) {\n switch (internalForcedPseudoState) {\n case \"hover\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:hover`,\n };\n case \"press\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:press`,\n };\n case \"focus\":\n return {\n backgroundColor: `$${prefix}.backgroundColor:focus`,\n };\n default:\n break;\n }\n }\n\n return {\n backgroundColor: `$${prefix}.backgroundColor`,\n\n hoverStyle: {\n backgroundColor: `$${prefix}.backgroundColor:hover`,\n },\n pressStyle: {\n backgroundColor: `$${prefix}.backgroundColor:press`,\n },\n focusStyle: {\n backgroundColor: `$${prefix}.backgroundColor:focus`,\n },\n } as const;\n};\n","import type { SizeTokens, VariantSpreadExtras, ViewStyle } from \"@tamagui/core\";\nimport type { InternalPseudoState } from \"../primitives/createVariants\";\nimport {\n getBackgroundAdditionalInteraction,\n getBorderAdditionalInteraction,\n} from \"../primitives/createVariants\";\n\nexport const internalForcedPseudoState = (val: InternalPseudoState) => ({});\n\nexport const withBorder = (\n val: SizeTokens | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n return {\n borderWidth: typeof val === \"number\" ? val : 1,\n borderColor: \"$borderColor\",\n\n ...(props.interactive ? getBorderAdditionalInteraction(props) : undefined),\n } as const;\n};\n\nexport const withBackground = (\n val: boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n const variant =\n props.interactive === \"text\" ? \"text\" : props.variant || \"contained\";\n\n if (!val) return {} as const;\n\n if (!props.role && !props.outlineStyle && props.interactive) {\n throw new Error(\"A role prop is required while using interactive\");\n }\n\n return {\n backgroundColor: props.interactive\n ? // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `$interactive.${variant}.backgroundColor`\n : \"$mainColor\",\n\n ...(props.interactive\n ? getBackgroundAdditionalInteraction(props)\n : undefined),\n } as const;\n};\n\nconst circularStyle = {\n borderRadius: 100_000,\n padding: 0,\n};\n\nexport const size = (val: number) => {\n return { width: val, height: val } as const;\n};\n\nexport const circular = {\n true: (val: boolean, { props, tokens }: VariantSpreadExtras<any>) => {\n if (!(\"size\" in props)) {\n return circularStyle;\n }\n const sizePropValue: keyof typeof tokens.size = props.size;\n const sizeValue = tokens.size[sizePropValue];\n return {\n ...circularStyle,\n width: sizeValue,\n height: sizeValue,\n maxWidth: sizeValue,\n maxHeight: sizeValue,\n minWidth: sizeValue,\n minHeight: sizeValue,\n };\n },\n} as const;\n\nexport const interactive = (\n isInteractiveOrInteractiveCursorType: ViewStyle[\"cursor\"] | boolean,\n { props }: VariantSpreadExtras<any>,\n) => {\n if (!isInteractiveOrInteractiveCursorType) return null;\n if (props.disabled) {\n return { cursor: \"not-allowed\" } as const;\n }\n return {\n cursor:\n isInteractiveOrInteractiveCursorType === true\n ? \"pointer\"\n : isInteractiveOrInteractiveCursorType,\n } as const;\n};\n\nexport const centered = {\n true: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n} as const;\n","import type { GetProps } from \"@tamagui/core\";\nimport { View, styled } from \"@tamagui/core\";\nimport * as variants from \"./variants\";\n\n/** View with alouette variants */\nexport const Box = styled(View, {\n name: \"Box\",\n variants,\n animation: \"fast\",\n} as const);\n\nexport type BoxProps = GetProps<typeof Box>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Box } from \"./Box\";\n\nexport const PressableBox = styled(Box, {\n interactive: true,\n} as const);\n\nexport type PressableBoxProps = GetProps<typeof PressableBox>;\n","import type { ColorTokens, GetProps, Variable } from \"@tamagui/core\";\nimport { useStyle } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport type { OpaqueColorValue } from \"react-native\";\nimport type { BoxProps } from \"../containers/Box\";\nimport { Box } from \"../containers/Box\";\n\nexport interface IconProps\n extends Exclude<GetProps<typeof Box>, \"alignSelf\" | \"style\"> {\n icon: ReactElement;\n color?: ColorTokens | OpaqueColorValue | Variable<any> | undefined;\n align?: BoxProps[\"alignSelf\"];\n contrast?: boolean;\n size?: number;\n}\n\nexport function Icon({\n icon,\n size = 20,\n align = \"auto\",\n contrast,\n color = contrast ? \"$contrastTextColor\" : \"$textColor\",\n ...props\n}: IconProps): ReactNode {\n const style = useStyle({\n color,\n // if needed for native\n // resolveValues: Platform.OS === 'web' ? undefined: 'value',\n });\n\n // if needed for native\n // const clonedIcon = cloneElement(icon, { style });\n // const clonedIcon = cloneElement(icon, { color: style.color });\n\n return (\n <Box {...props} centered alignSelf={align} size={size} style={style as any}>\n {icon}\n </Box>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport { PressableBox } from \"../containers/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\n\nconst IconButtonFrame = styled(PressableBox, {\n name: \"IconButtonFrame\",\n role: \"button\",\n centered: true,\n withBorder: true,\n withBackground: true,\n size: 40,\n borderWidth: 1,\n borderRadius: 10_000,\n});\n\ntype IconButtonFrameProps = GetProps<typeof IconButtonFrame>;\n\nexport interface IconButtonProps extends IconButtonFrameProps {\n icon: NonNullable<ReactElement>;\n}\n\nexport function IconButton({\n icon,\n disabled,\n size = 40,\n ...pressableProps\n}: IconButtonProps): ReactNode {\n return (\n <IconButtonFrame size={size} disabled={disabled} {...pressableProps}>\n <Icon\n size={size / 2}\n color={disabled ? \"$contrastDisabled\" : undefined}\n contrast={!disabled}\n icon={icon}\n />\n </IconButtonFrame>\n );\n}\n","import { View, styled } from \"@tamagui/core\";\nimport type { GetProps } from \"@tamagui/core\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nconst variants = {\n fullscreen: {\n true: fullscreenStyle,\n },\n} as const;\n\nexport const Stack = styled(View, {\n name: \"Stack\",\n variants: {\n ...variants,\n type: {\n h: { flexDirection: \"row\" },\n v: { flexDirection: \"column\" },\n },\n } as const,\n});\n\nexport type StackProps = GetProps<typeof Stack>;\n\nexport const HStack = styled(Stack, {\n name: \"HStack\",\n flexDirection: \"row\",\n variants,\n});\n\nexport type HStackProps = GetProps<typeof HStack>;\n\nexport const VStack = styled(Stack, {\n name: \"VStack\",\n flexDirection: \"column\",\n});\n\nexport type VStackProps = GetProps<typeof VStack>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { Text, styled } from \"@tamagui/core\";\nimport { createContext, useContext } from \"react\";\n\nexport const Typography = styled(Text, {\n name: \"Typography\",\n fontFamily: \"$body\",\n color: \"$textColor\",\n fontWeight: \"$regular\",\n\n variants: {\n size: {\n xl: { fontSize: \"$xl\", lineHeight: \"$xl\" },\n lg: { fontSize: \"$lg\", lineHeight: \"$lg\" },\n md: { fontSize: \"$md\", lineHeight: \"$md\" },\n sm: { fontSize: \"$sm\", lineHeight: \"$sm\" },\n xs: { fontSize: \"$xs\", lineHeight: \"$xs\" },\n },\n weight: {\n regular: { fontWeight: \"$regular\" },\n bold: { fontWeight: \"$bold\" },\n black: { fontWeight: \"$black\" },\n },\n family: {\n heading: { fontFamily: \"$heading\" },\n body: { fontFamily: \"$body\" },\n },\n contrast: {\n true: {\n color: \"$contrastTextColor\",\n },\n },\n },\n\n defaultVariants: {\n size: \"md\",\n weight: \"regular\",\n family: \"body\",\n },\n} as const);\n\nexport type TypographyProps = GetProps<typeof Typography>;\n\nexport const TypographyParagraph = styled(Typography, {\n name: \"TypographyParagraph\",\n tag: \"p\",\n userSelect: \"auto\",\n family: \"body\",\n} as const);\n\nexport type TypographyParagraphProps = GetProps<typeof TypographyParagraph>;\n\nconst TypographySizeContext = createContext<TypographyProps[\"size\"]>(undefined);\n\nexport const TypographyWithContext = Typography.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n if (sizeOrAncestorSizeOrDefaultSize !== size) {\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n }\n return <Typography ref={ref} size={size} {...props} />;\n },\n);\n\nexport const TypographyParagraphWithContext = TypographyParagraph.styleable(\n ({ size, ...props }, ref) => {\n const ancestorSize = useContext(TypographySizeContext);\n const sizeOrAncestorSizeOrDefaultSize = size || ancestorSize;\n return (\n <TypographySizeContext.Provider value={sizeOrAncestorSizeOrDefaultSize}>\n <Typography ref={ref} size={size} {...props} />\n </TypographySizeContext.Provider>\n );\n },\n);\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport { PressableBox } from \"../containers/PressableBox\";\nimport { Icon } from \"../primitives/Icon\";\nimport { HStack } from \"../primitives/stacks\";\nimport { Typography } from \"../typography/Typography\";\n\nconst ButtonFrame = styled(PressableBox, {\n name: \"ButtonFrame\",\n role: \"button\",\n centered: true,\n minHeight: 42,\n borderRadius: \"$sm\",\n paddingHorizontal: \"$md\",\n\n variants: {\n variant: {\n contained: {\n withBackground: true,\n },\n outlined: {\n withBackground: true,\n withBorder: true,\n },\n },\n },\n\n defaultVariants: {\n variant: \"contained\",\n },\n});\n\ntype ButtonFrameProps = GetProps<typeof ButtonFrame>;\n\nexport interface ButtonProps extends ButtonFrameProps {\n icon?: NonNullable<ReactElement>;\n text: ReactNode;\n}\n\nexport function Button({\n icon,\n text,\n disabled,\n variant,\n ...pressableProps\n}: ButtonProps): ReactNode {\n return (\n <ButtonFrame disabled={disabled} variant={variant} {...pressableProps}>\n <HStack gap=\"$xs\" alignItems=\"center\">\n {icon && (\n <Icon\n color={disabled ? \"$contrastDisabled\" : undefined}\n contrast={variant === \"contained\" && !disabled}\n icon={icon}\n />\n )}\n <Typography\n size=\"md\"\n weight=\"bold\"\n paddingVertical=\"$xs\"\n color={disabled ? \"$contrastDisabled\" : undefined}\n contrast={variant === \"contained\" && !disabled}\n >\n {text}\n </Typography>\n </HStack>\n </ButtonFrame>\n );\n}\n","import {\n CheckRegularIcon,\n InfoRegularIcon,\n WarningCircleRegularIcon,\n WarningRegularIcon,\n} from \"alouette-icons/phosphor-icons\";\nimport type { ReactNode } from \"react\";\nimport type { MessageProps } from \"./Message\";\n\ninterface FeedbackIconProps {\n type: MessageProps[\"theme\"];\n}\n\nexport function FeedbackIcon({ type }: FeedbackIconProps): ReactNode {\n switch (type) {\n case \"warning\":\n return <WarningCircleRegularIcon />;\n case \"success\":\n return <CheckRegularIcon />;\n case \"danger\":\n return <WarningRegularIcon />;\n default:\n return <InfoRegularIcon />;\n }\n}\n","import { View, styled } from \"@tamagui/core\";\nimport { XRegularIcon } from \"alouette-icons/phosphor-icons\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { IconButton } from \"../actions/IconButton\";\nimport { Box } from \"../containers/Box\";\nimport { Icon } from \"../primitives/Icon\";\nimport { Typography } from \"../typography/Typography\";\nimport { FeedbackIcon } from \"./FeedbackIcon\";\n\nexport const MessageFrame = styled(Box, {\n name: \"MessageFrame\",\n alignItems: \"center\",\n withBackground: true,\n borderRadius: \"$md\",\n paddingHorizontal: \"$4\",\n flexDirection: \"row\",\n gap: \"$4\",\n} as const);\n\nexport const MessageText = styled(Typography, {\n name: \"MessageText\",\n contrast: true,\n size: \"md\",\n flexGrow: 1,\n paddingVertical: \"$4\",\n variants: {\n centered: {\n true: {\n textAlign: \"center\",\n paddingHorizontal: \"$4\",\n },\n },\n },\n} as const);\n\nconst MessageIconContainer = styled(View, {\n name: \"MessageIconContainer\",\n alignItems: \"center\",\n});\n\nconst MessageDismissButtonContainer = styled(View, {\n name: \"MessageDismissButtonContainer\",\n marginRight: \"$2\",\n});\n\nexport interface MessageProps {\n theme: NonNullable<ComponentProps<typeof MessageFrame>[\"theme\"]>;\n children?: ReactNode;\n textCentered?: boolean;\n onDismiss?: () => void;\n}\n\nexport function Message({\n theme,\n textCentered,\n children,\n onDismiss,\n}: MessageProps): ReactNode {\n return (\n <MessageFrame theme={theme}>\n {textCentered ? null : (\n <MessageIconContainer>\n <Icon contrast icon={<FeedbackIcon type={theme} />} />\n </MessageIconContainer>\n )}\n <MessageText centered={textCentered}>{children}</MessageText>\n {onDismiss ? (\n <MessageDismissButtonContainer>\n <IconButton icon={<XRegularIcon />} size={40} />\n </MessageDismissButtonContainer>\n ) : null}\n </MessageFrame>\n );\n}\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { TextInput } from \"react-native\";\nimport * as variants from \"../containers/variants\";\n\nconst StyledInputText = styled(TextInput, {\n variants,\n\n padding: \"$xs\",\n borderRadius: \"$sm\",\n\n // @ts-expect-error missing prop but seems to work\n color: \"$forms.textColor\",\n\n withBorder: true,\n withBackground: true,\n\n borderWidth: 1,\n borderBottomWidth: 3,\n\n // reset browser style\n outlineStyle: \"none\",\n});\n\nexport const InputText = styled(StyledInputText, {\n name: \"InputText\",\n interactive: \"text\",\n theme: \"primary\",\n // animation: \"formElement\", // remove all style ?\n});\n\nexport type InputTextProps = GetProps<typeof InputText>;\n\nexport const TextArea = styled(InputText, {\n multiline: true,\n});\n\nexport type TextAreaProps = GetProps<typeof TextArea>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { ScrollView as ScrollViewNative } from \"react-native\";\nimport { fullscreenStyle } from \"./createVariants\";\n\nexport const ScrollView = styled(\n ScrollViewNative,\n {\n name: \"ScrollView\",\n scrollEnabled: true,\n\n variants: {\n fullscreen: {\n true: fullscreenStyle,\n },\n },\n } as const,\n {\n accept: {\n contentContainerStyle: \"style\",\n },\n } as const,\n);\n\nexport type ScrollView = Pick<ScrollViewNative, \"scrollTo\">;\n\nexport type ScrollViewProps = GetProps<typeof ScrollView>;\n","import type { GetProps } from \"@tamagui/core\";\nimport { styled } from \"@tamagui/core\";\nimport { Typography } from \"../typography/Typography\";\n\nexport const StoryTitle = styled(Typography, {\n family: \"heading\",\n weight: \"black\",\n variants: {\n level: {\n 1: { size: \"xl\", marginBottom: \"$8\" },\n 2: { size: \"lg\", marginBottom: \"$8\" },\n 3: { size: \"md\", marginBottom: \"$3\" },\n 4: { size: \"sm\", marginBottom: \"$3\" },\n },\n } as const,\n\n defaultVariants: {\n level: 1,\n },\n} as const);\n\nexport type StoryTitleProps = GetProps<typeof StoryTitle>;\n","import { styled } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\nimport type { Except } from \"type-fest\";\nimport type { VStackProps } from \"../primitives/stacks\";\nimport { VStack } from \"../primitives/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nconst InternalStorySection = styled(VStack, {\n marginBottom: \"$8\",\n paddingHorizontal: \"$4\",\n marginHorizontal: \"$-4\",\n variants: {\n withBackground: {\n true: {\n backgroundColor: \"$backgroundColor\",\n },\n },\n } as const,\n});\n\nexport type StorySectionProps = Except<VStackProps, \"marginBottom\"> & {\n title: ReactNode;\n children: ReactNode;\n level?: 1 | 2;\n withBackground?: boolean;\n};\n\nfunction StorySection({\n title,\n children,\n level = 1,\n withBackground,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection withBackground={withBackground} {...props}>\n <StoryTitle level={(level + 1) as 2 | 3}>{title}</StoryTitle>\n {children}\n </InternalStorySection>\n );\n}\n\nfunction SubSection({\n title,\n children,\n withBackground,\n ...props\n}: StorySectionProps): ReactNode {\n return (\n <InternalStorySection\n marginBottom=\"$4\"\n withBackground={withBackground}\n {...props}\n >\n <StoryTitle level={3}>{title}</StoryTitle>\n {children}\n </InternalStorySection>\n );\n}\n\nexport interface StoryProps {\n preview?: NonNullable<ReactNode>;\n children?: NonNullable<ReactNode>;\n}\n\nexport function Story({ preview, children }: StoryProps): ReactNode {\n return (\n <>\n {preview && (\n <StorySection title=\"Preview\" paddingBottom=\"$12\">\n {preview}\n </StorySection>\n )}\n {children}\n </>\n );\n}\n\nStory.Section = StorySection;\nStory.SubSection = SubSection;\n","import type { ReactNode } from \"react\";\nimport { ScrollView } from \"../primitives/ScrollView\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nexport interface StoryContainerProps {\n title: ReactNode;\n children: NonNullable<ReactNode>;\n}\n\nexport function StoryContainer({\n title,\n children,\n}: StoryContainerProps): ReactNode {\n return (\n <ScrollView theme=\"light\" background=\"#fff\" padding=\"$4\">\n <StoryTitle level={1}>{title}</StoryTitle>\n {children}\n </ScrollView>\n );\n}\n","import type { Decorator } from \"@storybook/react\";\nimport { StoryContainer } from \"./StoryContainer\";\n\n// eslint-disable-next-line react/function-component-definition -- not a component, it's a decorator for storybook.\nexport const StoryDecorator: Decorator = (storyFn, { name, container }) => {\n if (container === false) return storyFn();\n return <StoryContainer title={name}>{storyFn()}</StoryContainer>;\n};\n","import type { ReactNode } from \"react\";\nimport { Children } from \"react\";\nimport { Platform } from \"react-native\";\nimport { View } from \"../primitives/View\";\nimport { VStack } from \"../primitives/stacks\";\nimport { StoryTitle } from \"./StoryTitle\";\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: \"medium\" | \"small\";\n flexWrap?: boolean;\n}\n\nfunction StoryGridRow({\n children,\n breakpoint = \"small\",\n flexWrap,\n}: StoryGridRowProps): ReactNode {\n return (\n <View\n flexDirection=\"column\"\n {...{\n [`$${breakpoint}`]: {\n flexDirection: \"row\",\n marginVertical: \"$-1\",\n marginBottom: \"$4\",\n flexWrap: flexWrap ? \"wrap\" : undefined,\n gap: flexWrap ? \"$xs\" : undefined,\n },\n }}\n >\n {Children.map(children, (child) => (\n <View\n paddingTop=\"$2\"\n paddingBottom=\"$4\"\n {...{\n [`$${breakpoint}`]: {\n flexGrow: 1,\n flexBasis: flexWrap ? undefined : 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginVertical: \"$2\",\n },\n }}\n >\n {child}\n </View>\n ))}\n </View>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n platform?: \"all\" | \"native\" | \"web\";\n}\n\nfunction StoryGridCol({\n title,\n children,\n platform = \"all\",\n}: StoryGridColProps): ReactNode {\n const isNative = Platform.OS === \"ios\" || Platform.OS === \"android\";\n\n if (Platform.OS === \"web\" && platform === \"native\") {\n return null;\n }\n\n if (isNative && platform === \"web\") {\n return null;\n }\n\n return title ? (\n <VStack>\n <StoryTitle level={4} numberOfLines={1}>\n {title}\n </StoryTitle>\n {children}\n </VStack>\n ) : (\n children\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import { useConfiguration } from \"@tamagui/core\";\nimport type { ReactNode } from \"react\";\n\nexport interface WithTamaguiConfigProps {\n render: (\n config: ReturnType<typeof useConfiguration>,\n ) => NonNullable<ReactNode>;\n}\n\nexport function WithTamaguiConfig({\n render,\n}: WithTamaguiConfigProps): ReactNode {\n const config = useConfiguration();\n return render(config);\n}\n","export const Breakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n} as const;\n\nexport type Breakpoint = (typeof Breakpoints)[keyof typeof Breakpoints];\nexport type BreakpointNames = \"base\" | \"large\" | \"medium\" | \"small\" | \"wide\";\n\nexport enum BreakpointNameEnum {\n BASE = \"base\",\n SMALL = \"small\",\n MEDIUM = \"medium\",\n LARGE = \"large\",\n WIDE = \"wide\",\n}\n","import { useMedia } from \"@tamagui/core\";\nimport type { BreakpointNames } from \"../../config/Breakpoints\";\nimport { BreakpointNameEnum } from \"../../config/Breakpoints\";\n\nexport function useCurrentBreakpointName(): BreakpointNameEnum {\n const media = useMedia();\n\n if (media.wide) return BreakpointNameEnum.WIDE;\n if (media.large) return BreakpointNameEnum.LARGE;\n if (media.medium) return BreakpointNameEnum.MEDIUM;\n if (media.small) return BreakpointNameEnum.SMALL;\n return BreakpointNameEnum.BASE;\n}\n\nexport function useCurrentBreakpointNameFiltered<\n Names extends BreakpointNames[],\n>(names: Names): Names[number] {\n const media = useMedia();\n\n if (names.includes(BreakpointNameEnum.WIDE) && media.wide) {\n return BreakpointNameEnum.WIDE;\n }\n if (names.includes(BreakpointNameEnum.LARGE) && media.large) {\n return BreakpointNameEnum.LARGE;\n }\n if (names.includes(BreakpointNameEnum.MEDIUM) && media.medium) {\n return BreakpointNameEnum.MEDIUM;\n }\n if (names.includes(BreakpointNameEnum.SMALL) && media.small) {\n return BreakpointNameEnum.SMALL;\n }\n return BreakpointNameEnum.BASE;\n}\n","import type { ReactNode } from \"react\";\nimport type { SetRequired } from \"type-fest\";\nimport type { BreakpointNames } from \"../../config/Breakpoints\";\nimport { View } from \"../primitives/View\";\nimport { useCurrentBreakpointNameFiltered } from \"./useCurrentBreakpointName\";\n\ntype SwitchBreakpointsProps = SetRequired<\n Partial<Record<BreakpointNames, ReactNode>>,\n \"base\"\n> & {\n children?: never;\n};\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 : {\n display: \"none\",\n [`$${name}`]: { display: \"flex\" },\n })}\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\";\n\nexport interface AlouetteProviderProps {\n children: ReactNode;\n tamaguiConfig: TamaguiProviderProps[\"config\"];\n}\n\nexport function AlouetteProvider({\n children,\n tamaguiConfig,\n}: AlouetteProviderProps): ReactNode {\n return (\n <TamaguiProvider config={tamaguiConfig} defaultTheme=\"light\">\n {children}\n </TamaguiProvider>\n );\n}\n","import type { Decorator } from \"@storybook/react\";\nimport { AlouetteProvider } from \"./AlouetteProvider\";\n\n// eslint-disable-next-line react/function-component-definition -- not a component\nexport const AlouetteDecorator: Decorator = (storyFn, context) => (\n // eslint-disable-next-line react/destructuring-assignment\n <AlouetteProvider tamaguiConfig={context.parameters.tamaguiConfig}>\n {storyFn(context)}\n </AlouetteProvider>\n);\n","import type { GetProps } from \"@tamagui/core\";\nimport { Stack, styled } from \"@tamagui/core\";\n\nexport const Separator = styled(Stack, {\n name: \"Separator\",\n flexGrow: 1,\n flexShrink: 0,\n height: 0,\n maxHeight: 0,\n borderColor: \"$borderColor\",\n borderWidth: 0,\n borderBottomWidth: 1,\n y: -0.5,\n\n variants: {\n vertical: {\n true: {\n height: \"auto\",\n maxHeight: \"auto\",\n width: 0,\n maxWidth: 0,\n borderBottomWidth: 0,\n borderRightWidth: 1,\n y: 0,\n x: -0.5,\n },\n },\n } as const,\n} as const);\n\nexport type SeparatorProps = GetProps<typeof Separator>;\n","import { CaretRightRegularIcon } from \"alouette-icons/phosphor-icons\";\nimport type { ReactNode } from \"react\";\nimport { Pressable } from \"react-native\";\nimport { Icon } from \"../primitives/Icon\";\nimport { View } from \"../primitives/View\";\nimport { HStack, Stack } from \"../primitives/stacks\";\n\nexport interface PressableListItemProps {\n children: ReactNode;\n onPress: () => void;\n}\nexport function PressableListItem({\n children,\n onPress,\n}: PressableListItemProps): ReactNode {\n return (\n <Pressable onPress={onPress}>\n <HStack\n justifyContent=\"space-between\"\n paddingHorizontal=\"$4\"\n paddingVertical=\"$3\"\n >\n <View>{children}</View>\n <Stack justifyContent=\"center\">\n <Icon icon={<CaretRightRegularIcon />} size={20} />\n </Stack>\n </HStack>\n </Pressable>\n );\n}\n"],"names":["styled","View","variants","useStyle","jsx","Text","createContext","useContext","jsxs","WarningCircleRegularIcon","CheckRegularIcon","WarningRegularIcon","InfoRegularIcon","XRegularIcon","TextInput","ScrollViewNative","Fragment","Children","Platform","useConfiguration","BreakpointNameEnum","useMedia","TamaguiProvider","Stack","Pressable","CaretRightRegularIcon"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "alouette",
3
- "version": "7.0.0-beta.2",
3
+ "version": "7.0.0-beta.21",
4
4
  "description": "tamagui-based design system with configurable defaults",
5
+ "keywords": [],
5
6
  "author": "Christophe Hurpeau <302891+christophehurpeau@users.noreply.github.com> (https://christophe.hurpeau.com)",
6
7
  "license": "UNLICENSED",
7
8
  "repository": {
@@ -17,49 +18,52 @@
17
18
  "sideEffects": false,
18
19
  "main": "./dist/index-node18.mjs",
19
20
  "types": "./dist/definitions/index.d.ts",
21
+ "module": "./dist/index-browser.es.js",
22
+ "browser": "./dist/index-browser.es.js",
20
23
  "react-native": {
21
24
  ".": "./src/index.ts",
22
- "./phosphor-icons": "./src/phosphor-icons.cjs",
23
25
  "./createAlouetteTamagui": "./src/createAlouetteTamagui.ts"
24
26
  },
25
27
  "exports": {
26
28
  "./package.json": "./package.json",
27
29
  ".": {
28
- "types": "./src/index.ts",
30
+ "types": "./dist/definitions/index.d.ts",
29
31
  "node": {
30
32
  "import": "./dist/index-node18.mjs"
31
33
  },
32
- "browser": "./dist/index-browser.es.js"
33
- },
34
- "./phosphor-icons": {
35
- "types": "./src/phosphor-icons.ts",
36
- "react-native": "./src/phosphor-icons.cjs",
37
- "node": {
38
- "import": "./dist/phosphor-icons-node18.mjs"
34
+ "browser": {
35
+ "import": "./dist/index-browser.es.js"
39
36
  },
40
- "browser": "./dist/phosphor-icons-browser.es.js"
37
+ "react-native": {}
41
38
  },
42
39
  "./createAlouetteTamagui": {
43
- "types": "./src/createAlouetteTamagui.ts",
40
+ "types": "./dist/definitions/createAlouetteTamagui.d.ts",
44
41
  "node": {
45
42
  "import": "./dist/createAlouetteTamagui-node18.mjs"
46
43
  },
47
- "browser": "./dist/createAlouetteTamagui-browser.es.js"
44
+ "browser": {
45
+ "import": "./dist/createAlouetteTamagui-browser.es.js"
46
+ },
47
+ "react-native": {}
48
48
  }
49
49
  },
50
+ "files": [
51
+ "src",
52
+ "dist",
53
+ "createAlouetteTamagui.js"
54
+ ],
50
55
  "scripts": {
51
56
  "build": "yarn clean:build && rollup --config rollup.config.mjs && yarn run build:definitions",
52
57
  "build:definitions": "tsc -p tsconfig.json",
53
58
  "clean:build": "pob-esbuild-clean-out dist",
54
59
  "lint": "yarn run lint:eslint",
55
- "lint:eslint": "yarn ../.. run eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet packages/alouette",
60
+ "lint:eslint": "yarn ../.. run eslint --quiet packages/alouette",
56
61
  "test": "yarn ../../ run test -- packages/alouette"
57
62
  },
58
63
  "pob": {
59
64
  "bundler": "rollup-esbuild",
60
65
  "entries": [
61
66
  "index",
62
- "phosphor-icons",
63
67
  "createAlouetteTamagui"
64
68
  ],
65
69
  "envs": [
@@ -82,21 +86,24 @@
82
86
  },
83
87
  "prettier": "@pob/root/prettier-config",
84
88
  "peerDependencies": {
89
+ "alouette-icons": "*",
85
90
  "react": "^18.2.0",
86
91
  "react-native": "*",
87
92
  "react-native-svg": "*"
88
93
  },
89
94
  "dependencies": {
90
- "@phosphor-icons/core": "2.0.8",
91
- "@tamagui/animations-css": "1.100.5",
92
- "@tamagui/animations-react-native": "1.100.5",
93
- "@tamagui/core": "1.100.5",
94
- "@tamagui/react-native-media-driver": "1.100.5",
95
- "type-fest": "4.20.1"
95
+ "@tamagui/animations-css": "1.110.3",
96
+ "@tamagui/animations-react-native": "1.110.3",
97
+ "@tamagui/core": "1.110.3",
98
+ "@tamagui/react-native-media-driver": "1.110.3",
99
+ "alouette-icons": "1.0.0-beta.3",
100
+ "type-fest": "4.26.0"
96
101
  },
97
102
  "devDependencies": {
98
- "@pob/rollup-esbuild": "3.0.0",
99
- "react-native": "0.73.6",
100
- "typescript": "5.4.5"
103
+ "@pob/rollup-esbuild": "4.0.0",
104
+ "react": "18.3.1",
105
+ "react-native": "0.75.2",
106
+ "react-native-svg": "15.6.0",
107
+ "typescript": "5.5.4"
101
108
  }
102
109
  }
@@ -1,7 +1,7 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react";
2
- import { ArrowLeftRegularIcon } from "../../phosphor-icons";
3
- import { StoryGrid } from "../story-components/StoryGrid";
2
+ import { ArrowLeftRegularIcon } from "alouette-icons/phosphor-icons";
4
3
  import { Story } from "../story-components/Story";
4
+ import { StoryGrid } from "../story-components/StoryGrid";
5
5
  import { Button } from "./Button";
6
6
 
7
7
  type ThisStory = StoryObj<typeof Button>;
@@ -40,19 +40,18 @@ export const ButtonStory: ThisStory = {
40
40
  ).map((theme) => (
41
41
  <Story.SubSection
42
42
  key={theme}
43
+ withBackground
43
44
  title={theme}
44
45
  theme={theme}
45
- withBackground
46
46
  >
47
47
  {(["contained", "outlined"] as const).map((variant) => (
48
- <StoryGrid.Row flexWrap>
48
+ <StoryGrid.Row key={variant} flexWrap>
49
49
  {(
50
50
  [undefined, "hover", "focus", "press", "disabled"] as const
51
51
  ).map((state) => (
52
52
  <StoryGrid.Col
53
53
  key={state || "default"}
54
54
  title={state || "default"}
55
- titleContrast={theme === "light"}
56
55
  >
57
56
  <Button
58
57
  theme={theme}
@@ -1,17 +1,16 @@
1
1
  import type { GetProps } from "@tamagui/core";
2
2
  import { styled } from "@tamagui/core";
3
- import { type ReactElement, type ReactNode } from "react";
3
+ import type { ReactElement, ReactNode } from "react";
4
+ import { PressableBox } from "../containers/PressableBox";
4
5
  import { Icon } from "../primitives/Icon";
5
- import { Pressable } from "../containers/Pressable";
6
6
  import { HStack } from "../primitives/stacks";
7
7
  import { Typography } from "../typography/Typography";
8
8
 
9
- const ButtonFrame = styled(Pressable, {
9
+ const ButtonFrame = styled(PressableBox, {
10
10
  name: "ButtonFrame",
11
11
  role: "button",
12
12
  centered: true,
13
13
  minHeight: 42,
14
- borderWidth: 1,
15
14
  borderRadius: "$sm",
16
15
  paddingHorizontal: "$md",
17
16
 
@@ -1,7 +1,7 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react";
2
- import { ArrowLeftRegularIcon } from "../../phosphor-icons";
3
- import { StoryGrid } from "../story-components/StoryGrid";
2
+ import { ArrowLeftRegularIcon } from "alouette-icons/phosphor-icons";
4
3
  import { Story } from "../story-components/Story";
4
+ import { StoryGrid } from "../story-components/StoryGrid";
5
5
  import { IconButton } from "./IconButton";
6
6
 
7
7
  type ThisStory = StoryObj<typeof IconButton>;
@@ -42,7 +42,6 @@ export const IconButtonStory: ThisStory = {
42
42
  <StoryGrid.Col
43
43
  key={state || "default"}
44
44
  title={state || "default"}
45
- titleContrast={theme === "light"}
46
45
  >
47
46
  <IconButton
48
47
  theme={theme}
@@ -1,10 +1,10 @@
1
1
  import type { GetProps } from "@tamagui/core";
2
2
  import { styled } from "@tamagui/core";
3
- import { type ReactElement, type ReactNode } from "react";
3
+ import type { ReactElement, ReactNode } from "react";
4
+ import { PressableBox } from "../containers/PressableBox";
4
5
  import { Icon } from "../primitives/Icon";
5
- import { Pressable } from "../containers/Pressable";
6
6
 
7
- const IconButtonFrame = styled(Pressable, {
7
+ const IconButtonFrame = styled(PressableBox, {
8
8
  name: "IconButtonFrame",
9
9
  role: "button",
10
10
  centered: true,
@@ -12,7 +12,7 @@ const IconButtonFrame = styled(Pressable, {
12
12
  withBackground: true,
13
13
  size: 40,
14
14
  borderWidth: 1,
15
- borderRadius: 10000,
15
+ borderRadius: 10_000,
16
16
  });
17
17
 
18
18
  type IconButtonFrameProps = GetProps<typeof IconButtonFrame>;
@@ -2,29 +2,29 @@ import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { HStack, VStack } from "../primitives/stacks";
3
3
  import { Story } from "../story-components/Story";
4
4
  import { Typography } from "../typography/Typography";
5
- import { Frame } from "./Frame";
5
+ import { Box } from "./Box";
6
6
 
7
- type ThisStory = StoryObj<typeof Frame>;
7
+ type ThisStory = StoryObj<typeof Box>;
8
8
 
9
9
  export default {
10
- title: "alouette/Containers/Frame",
11
- component: Frame,
12
- } satisfies Meta<typeof Frame>;
10
+ title: "alouette/Containers/Box",
11
+ component: Box,
12
+ } satisfies Meta<typeof Box>;
13
13
 
14
- export const FrameStory: ThisStory = {
15
- name: "Frame",
14
+ export const BoxStory: ThisStory = {
15
+ name: "Box",
16
16
  render: (args) => (
17
17
  <Story
18
18
  preview={
19
- <Frame theme="primary" {...args}>
20
- <Typography>Frame</Typography>
21
- </Frame>
19
+ <Box theme="primary" {...args}>
20
+ <Typography>Box</Typography>
21
+ </Box>
22
22
  }
23
23
  >
24
24
  <Story.Section title="With Background">
25
- <Frame withBackground theme="primary" padding="$4">
25
+ <Box withBackground theme="primary" padding="$4">
26
26
  <Typography contrast>With Background</Typography>
27
- </Frame>
27
+ </Box>
28
28
  </Story.Section>
29
29
 
30
30
  <Story.Section title="Proportion with radius and padding">
@@ -36,17 +36,17 @@ export const FrameStory: ThisStory = {
36
36
  alignItems="flex-start"
37
37
  >
38
38
  {(["$sm", "$md"] as const).map((proportion) => (
39
- <Frame
39
+ <Box
40
+ key={proportion}
40
41
  asChild
41
42
  centered
42
- key={proportion}
43
43
  withBackground
44
44
  borderRadius={proportion}
45
45
  padding={proportion}
46
46
  margin="$4"
47
47
  >
48
48
  <Typography contrast>{proportion}</Typography>
49
- </Frame>
49
+ </Box>
50
50
  ))}
51
51
  </HStack>
52
52
  </Story.Section>
@@ -60,7 +60,7 @@ export const FrameStory: ThisStory = {
60
60
  title={state || "Default"}
61
61
  >
62
62
  <VStack theme="primary" gap="$xs">
63
- <Frame
63
+ <Box
64
64
  asChild
65
65
  interactive
66
66
  role="none"
@@ -68,9 +68,9 @@ export const FrameStory: ThisStory = {
68
68
  internalForcedPseudoState={state}
69
69
  >
70
70
  <Typography contrast>interactive</Typography>
71
- </Frame>
71
+ </Box>
72
72
 
73
- <Frame
73
+ <Box
74
74
  asChild
75
75
  interactive
76
76
  withBackground
@@ -79,9 +79,9 @@ export const FrameStory: ThisStory = {
79
79
  internalForcedPseudoState={state}
80
80
  >
81
81
  <Typography contrast>interactive withBackground</Typography>
82
- </Frame>
82
+ </Box>
83
83
 
84
- <Frame
84
+ <Box
85
85
  asChild
86
86
  interactive
87
87
  withBackground
@@ -93,7 +93,7 @@ export const FrameStory: ThisStory = {
93
93
  <Typography contrast>
94
94
  interactive withBackground withBorder
95
95
  </Typography>
96
- </Frame>
96
+ </Box>
97
97
  </VStack>
98
98
  </Story.Section>
99
99
  ))}
@@ -3,10 +3,10 @@ import { View, styled } from "@tamagui/core";
3
3
  import * as variants from "./variants";
4
4
 
5
5
  /** View with alouette variants */
6
- export const Frame = styled(View, {
7
- name: "Frame",
6
+ export const Box = styled(View, {
7
+ name: "Box",
8
8
  variants,
9
9
  animation: "fast",
10
10
  } as const);
11
11
 
12
- export type FrameProps = GetProps<typeof Frame>;
12
+ export type BoxProps = GetProps<typeof Box>;
@@ -1,29 +1,29 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { Story } from "../story-components/Story";
3
3
  import { Typography } from "../typography/Typography";
4
- import { Pressable } from "./Pressable";
4
+ import { PressableBox } from "./PressableBox";
5
5
 
6
- type ThisStory = StoryObj<typeof Pressable>;
6
+ type ThisStory = StoryObj<typeof PressableBox>;
7
7
 
8
8
  export default {
9
9
  title: "alouette/Containers/Pressable",
10
- component: Pressable,
11
- } satisfies Meta<typeof Pressable>;
10
+ component: PressableBox,
11
+ } satisfies Meta<typeof PressableBox>;
12
12
 
13
13
  export const PressableStory: ThisStory = {
14
14
  name: "Pressable",
15
15
  render: (args) => (
16
16
  <Story
17
17
  preview={
18
- <Pressable role="button" theme="primary" {...args}>
18
+ <PressableBox role="button" theme="primary" {...args}>
19
19
  <Typography>Pressable</Typography>
20
- </Pressable>
20
+ </PressableBox>
21
21
  }
22
22
  >
23
23
  <Story.Section title="With Background">
24
- <Pressable role="button" withBackground theme="primary" padding="$4">
24
+ <PressableBox withBackground role="button" theme="primary" padding="$4">
25
25
  <Typography contrast>With Background</Typography>
26
- </Pressable>
26
+ </PressableBox>
27
27
  </Story.Section>
28
28
  </Story>
29
29
  ),
@@ -0,0 +1,9 @@
1
+ import type { GetProps } from "@tamagui/core";
2
+ import { styled } from "@tamagui/core";
3
+ import { Box } from "./Box";
4
+
5
+ export const PressableBox = styled(Box, {
6
+ interactive: true,
7
+ } as const);
8
+
9
+ export type PressableBoxProps = GetProps<typeof PressableBox>;
@@ -34,7 +34,8 @@ export const withBackground = (
34
34
 
35
35
  return {
36
36
  backgroundColor: props.interactive
37
- ? `$interactive.${variant}.backgroundColor`
37
+ ? // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
38
+ `$interactive.${variant}.backgroundColor`
38
39
  : "$mainColor",
39
40
 
40
41
  ...(props.interactive
@@ -72,18 +73,20 @@ export const circular = {
72
73
  } as const;
73
74
 
74
75
  export const interactive = (
75
- isInteractiveOrInteractiveCursorType: boolean | ViewStyle["cursor"],
76
+ isInteractiveOrInteractiveCursorType: ViewStyle["cursor"] | boolean,
76
77
  { props }: VariantSpreadExtras<any>,
77
- ) =>
78
- isInteractiveOrInteractiveCursorType
79
- ? ({
80
- cursor: props.disabled
81
- ? "not-allowed"
82
- : isInteractiveOrInteractiveCursorType === true
83
- ? "pointer"
84
- : isInteractiveOrInteractiveCursorType,
85
- } as const)
86
- : null;
78
+ ) => {
79
+ if (!isInteractiveOrInteractiveCursorType) return null;
80
+ if (props.disabled) {
81
+ return { cursor: "not-allowed" } as const;
82
+ }
83
+ return {
84
+ cursor:
85
+ isInteractiveOrInteractiveCursorType === true
86
+ ? "pointer"
87
+ : isInteractiveOrInteractiveCursorType,
88
+ } as const;
89
+ };
87
90
 
88
91
  export const centered = {
89
92
  true: {
@@ -1,10 +1,10 @@
1
- import type { ReactNode } from "react";
2
1
  import {
3
2
  CheckRegularIcon,
4
3
  InfoRegularIcon,
5
4
  WarningCircleRegularIcon,
6
5
  WarningRegularIcon,
7
- } from "../../phosphor-icons";
6
+ } from "alouette-icons/phosphor-icons";
7
+ import type { ReactNode } from "react";
8
8
  import type { MessageProps } from "./Message";
9
9
 
10
10
  interface FeedbackIconProps {