@boostdev/design-system-react-native 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/LICENSE +15 -0
  3. package/README.md +104 -2
  4. package/dist/index.cjs +106 -60
  5. package/dist/index.d.cts +61 -6
  6. package/dist/index.d.ts +61 -6
  7. package/dist/index.js +106 -60
  8. package/package.json +30 -10
  9. package/src/components/interaction/Button/Button.mdx +91 -0
  10. package/src/components/interaction/Button/Button.spec.tsx +55 -0
  11. package/src/components/interaction/Button/Button.stories.tsx +141 -0
  12. package/src/components/interaction/Button/Button.tsx +105 -0
  13. package/src/components/interaction/Dialog/Dialog.mdx +61 -0
  14. package/src/components/interaction/Dialog/Dialog.spec.tsx +73 -0
  15. package/src/components/interaction/Dialog/Dialog.stories.tsx +53 -0
  16. package/src/components/interaction/Dialog/Dialog.tsx +128 -0
  17. package/src/components/interaction/DropdownMenu/DropdownMenu.mdx +74 -0
  18. package/src/components/interaction/DropdownMenu/DropdownMenu.spec.tsx +78 -0
  19. package/src/components/interaction/DropdownMenu/DropdownMenu.stories.tsx +51 -0
  20. package/src/components/interaction/DropdownMenu/DropdownMenu.tsx +254 -0
  21. package/src/components/interaction/Popover/Popover.mdx +61 -0
  22. package/src/components/interaction/Popover/Popover.spec.tsx +73 -0
  23. package/src/components/interaction/Popover/Popover.stories.tsx +44 -0
  24. package/src/components/interaction/Popover/Popover.tsx +87 -0
  25. package/src/components/interaction/Rating/Rating.mdx +55 -0
  26. package/src/components/interaction/Rating/Rating.spec.tsx +38 -0
  27. package/src/components/interaction/Rating/Rating.stories.tsx +37 -0
  28. package/src/components/interaction/Rating/Rating.tsx +50 -0
  29. package/src/components/interaction/SideSheet/SideSheet.mdx +60 -0
  30. package/src/components/interaction/SideSheet/SideSheet.spec.tsx +80 -0
  31. package/src/components/interaction/SideSheet/SideSheet.stories.tsx +33 -0
  32. package/src/components/interaction/SideSheet/SideSheet.tsx +175 -0
  33. package/src/components/interaction/Toast/Toast.mdx +81 -0
  34. package/src/components/interaction/Toast/Toast.spec.tsx +80 -0
  35. package/src/components/interaction/Toast/Toast.stories.tsx +47 -0
  36. package/src/components/interaction/Toast/Toast.tsx +202 -0
  37. package/src/components/interaction/form/Checkbox/Checkbox.mdx +74 -0
  38. package/src/components/interaction/form/Checkbox/Checkbox.spec.tsx +42 -0
  39. package/src/components/interaction/form/Checkbox/Checkbox.stories.tsx +34 -0
  40. package/src/components/interaction/form/Checkbox/Checkbox.tsx +80 -0
  41. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.mdx +78 -0
  42. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.spec.tsx +57 -0
  43. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.stories.tsx +96 -0
  44. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx +61 -0
  45. package/src/components/interaction/form/Combobox/Combobox.mdx +86 -0
  46. package/src/components/interaction/form/Combobox/Combobox.spec.tsx +60 -0
  47. package/src/components/interaction/form/Combobox/Combobox.stories.tsx +99 -0
  48. package/src/components/interaction/form/Combobox/Combobox.tsx +212 -0
  49. package/src/components/interaction/form/FileInput/FileInput.mdx +86 -0
  50. package/src/components/interaction/form/FileInput/FileInput.spec.tsx +73 -0
  51. package/src/components/interaction/form/FileInput/FileInput.stories.tsx +69 -0
  52. package/src/components/interaction/form/FileInput/FileInput.tsx +129 -0
  53. package/src/components/interaction/form/FormInput/FormInput.mdx +81 -0
  54. package/src/components/interaction/form/FormInput/FormInput.spec.tsx +81 -0
  55. package/src/components/interaction/form/FormInput/FormInput.stories.tsx +54 -0
  56. package/src/components/interaction/form/FormInput/FormInput.tsx +123 -0
  57. package/src/components/interaction/form/NumberInput/NumberInput.mdx +87 -0
  58. package/src/components/interaction/form/NumberInput/NumberInput.spec.tsx +63 -0
  59. package/src/components/interaction/form/NumberInput/NumberInput.stories.tsx +63 -0
  60. package/src/components/interaction/form/NumberInput/NumberInput.tsx +199 -0
  61. package/src/components/interaction/form/Radio/Radio.spec.tsx +79 -0
  62. package/src/components/interaction/form/Radio/Radio.stories.tsx +44 -0
  63. package/src/components/interaction/form/Radio/Radio.tsx +79 -0
  64. package/src/components/interaction/form/RadioGroup/RadioGroup.mdx +79 -0
  65. package/src/components/interaction/form/RadioGroup/RadioGroup.spec.tsx +66 -0
  66. package/src/components/interaction/form/RadioGroup/RadioGroup.stories.tsx +96 -0
  67. package/src/components/interaction/form/RadioGroup/RadioGroup.tsx +61 -0
  68. package/src/components/interaction/form/SegmentedControl/SegmentedControl.mdx +78 -0
  69. package/src/components/interaction/form/SegmentedControl/SegmentedControl.spec.tsx +82 -0
  70. package/src/components/interaction/form/SegmentedControl/SegmentedControl.stories.tsx +99 -0
  71. package/src/components/interaction/form/SegmentedControl/SegmentedControl.tsx +121 -0
  72. package/src/components/interaction/form/Select/Select.mdx +85 -0
  73. package/src/components/interaction/form/Select/Select.spec.tsx +64 -0
  74. package/src/components/interaction/form/Select/Select.stories.tsx +75 -0
  75. package/src/components/interaction/form/Select/Select.tsx +252 -0
  76. package/src/components/interaction/form/Slider/Slider.mdx +83 -0
  77. package/src/components/interaction/form/Slider/Slider.spec.tsx +51 -0
  78. package/src/components/interaction/form/Slider/Slider.stories.tsx +58 -0
  79. package/src/components/interaction/form/Slider/Slider.tsx +188 -0
  80. package/src/components/interaction/form/Switch/Switch.spec.tsx +60 -0
  81. package/src/components/interaction/form/Switch/Switch.stories.tsx +33 -0
  82. package/src/components/interaction/form/Switch/Switch.tsx +59 -0
  83. package/src/components/interaction/form/Textarea/Textarea.mdx +76 -0
  84. package/src/components/interaction/form/Textarea/Textarea.spec.tsx +50 -0
  85. package/src/components/interaction/form/Textarea/Textarea.stories.tsx +50 -0
  86. package/src/components/interaction/form/Textarea/Textarea.tsx +108 -0
  87. package/src/components/interaction/form/atoms/Label.spec.tsx +39 -0
  88. package/src/components/interaction/form/atoms/Label.stories.tsx +18 -0
  89. package/src/components/interaction/form/atoms/Label.tsx +29 -0
  90. package/src/components/interaction/form/atoms/Message.spec.tsx +30 -0
  91. package/src/components/interaction/form/atoms/Message.stories.tsx +22 -0
  92. package/src/components/interaction/form/atoms/Message.tsx +34 -0
  93. package/src/components/layout/ButtonGroup/ButtonGroup.spec.tsx +83 -0
  94. package/src/components/layout/ButtonGroup/ButtonGroup.stories.tsx +44 -0
  95. package/src/components/layout/ButtonGroup/ButtonGroup.tsx +44 -0
  96. package/src/components/layout/Card/Card.spec.tsx +102 -0
  97. package/src/components/layout/Card/Card.stories.tsx +51 -0
  98. package/src/components/layout/Card/Card.tsx +89 -0
  99. package/src/components/layout/IconWrapper/IconWrapper.spec.tsx +39 -0
  100. package/src/components/layout/IconWrapper/IconWrapper.stories.tsx +37 -0
  101. package/src/components/layout/IconWrapper/IconWrapper.tsx +20 -0
  102. package/src/components/layout/SectionHeader/SectionHeader.spec.tsx +51 -0
  103. package/src/components/layout/SectionHeader/SectionHeader.stories.tsx +36 -0
  104. package/src/components/layout/SectionHeader/SectionHeader.tsx +79 -0
  105. package/src/components/ui/Accordion/Accordion.mdx +65 -0
  106. package/src/components/ui/Accordion/Accordion.spec.tsx +69 -0
  107. package/src/components/ui/Accordion/Accordion.stories.tsx +52 -0
  108. package/src/components/ui/Accordion/Accordion.tsx +141 -0
  109. package/src/components/ui/Alert/Alert.mdx +62 -0
  110. package/src/components/ui/Alert/Alert.spec.tsx +76 -0
  111. package/src/components/ui/Alert/Alert.stories.tsx +41 -0
  112. package/src/components/ui/Alert/Alert.tsx +94 -0
  113. package/src/components/ui/Avatar/Avatar.mdx +50 -0
  114. package/src/components/ui/Avatar/Avatar.spec.tsx +47 -0
  115. package/src/components/ui/Avatar/Avatar.stories.tsx +32 -0
  116. package/src/components/ui/Avatar/Avatar.tsx +85 -0
  117. package/src/components/ui/Badge/Badge.mdx +54 -0
  118. package/src/components/ui/Badge/Badge.spec.tsx +45 -0
  119. package/src/components/ui/Badge/Badge.stories.tsx +34 -0
  120. package/src/components/ui/Badge/Badge.tsx +50 -0
  121. package/src/components/ui/Breadcrumb/Breadcrumb.mdx +52 -0
  122. package/src/components/ui/Breadcrumb/Breadcrumb.spec.tsx +49 -0
  123. package/src/components/ui/Breadcrumb/Breadcrumb.stories.tsx +46 -0
  124. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +83 -0
  125. package/src/components/ui/Calendar/Calendar.mdx +58 -0
  126. package/src/components/ui/Calendar/Calendar.spec.tsx +92 -0
  127. package/src/components/ui/Calendar/Calendar.stories.tsx +45 -0
  128. package/src/components/ui/Calendar/Calendar.tsx +294 -0
  129. package/src/components/ui/Carousel/Carousel.mdx +55 -0
  130. package/src/components/ui/Carousel/Carousel.spec.tsx +55 -0
  131. package/src/components/ui/Carousel/Carousel.stories.tsx +59 -0
  132. package/src/components/ui/Carousel/Carousel.tsx +184 -0
  133. package/src/components/ui/Collapsible/Collapsible.mdx +53 -0
  134. package/src/components/ui/Collapsible/Collapsible.spec.tsx +68 -0
  135. package/src/components/ui/Collapsible/Collapsible.stories.tsx +48 -0
  136. package/src/components/ui/Collapsible/Collapsible.tsx +139 -0
  137. package/src/components/ui/DescriptionList/DescriptionList.mdx +50 -0
  138. package/src/components/ui/DescriptionList/DescriptionList.spec.tsx +37 -0
  139. package/src/components/ui/DescriptionList/DescriptionList.stories.tsx +48 -0
  140. package/src/components/ui/DescriptionList/DescriptionList.tsx +54 -0
  141. package/src/components/ui/Link/Link.mdx +53 -0
  142. package/src/components/ui/Link/Link.spec.tsx +35 -0
  143. package/src/components/ui/Link/Link.stories.tsx +46 -0
  144. package/src/components/ui/Link/Link.tsx +48 -0
  145. package/src/components/ui/Loading/Loading.spec.tsx +24 -0
  146. package/src/components/ui/Loading/Loading.stories.tsx +31 -0
  147. package/src/components/ui/Loading/Loading.tsx +29 -0
  148. package/src/components/ui/NotificationBanner/NotificationBanner.spec.tsx +85 -0
  149. package/src/components/ui/NotificationBanner/NotificationBanner.stories.tsx +37 -0
  150. package/src/components/ui/NotificationBanner/NotificationBanner.tsx +76 -0
  151. package/src/components/ui/Pagination/Pagination.mdx +62 -0
  152. package/src/components/ui/Pagination/Pagination.spec.tsx +86 -0
  153. package/src/components/ui/Pagination/Pagination.stories.tsx +47 -0
  154. package/src/components/ui/Pagination/Pagination.tsx +157 -0
  155. package/src/components/ui/Progress/Progress.spec.tsx +56 -0
  156. package/src/components/ui/Progress/Progress.stories.tsx +34 -0
  157. package/src/components/ui/Progress/Progress.tsx +84 -0
  158. package/src/components/ui/ProgressCircle/ProgressCircle.mdx +63 -0
  159. package/src/components/ui/ProgressCircle/ProgressCircle.spec.tsx +39 -0
  160. package/src/components/ui/ProgressCircle/ProgressCircle.stories.tsx +36 -0
  161. package/src/components/ui/ProgressCircle/ProgressCircle.tsx +176 -0
  162. package/src/components/ui/Separator/Separator.spec.tsx +39 -0
  163. package/src/components/ui/Separator/Separator.stories.tsx +38 -0
  164. package/src/components/ui/Separator/Separator.tsx +32 -0
  165. package/src/components/ui/Skeleton/Skeleton.spec.tsx +39 -0
  166. package/src/components/ui/Skeleton/Skeleton.stories.tsx +31 -0
  167. package/src/components/ui/Skeleton/Skeleton.tsx +42 -0
  168. package/src/components/ui/Table/Table.mdx +72 -0
  169. package/src/components/ui/Table/Table.spec.tsx +83 -0
  170. package/src/components/ui/Table/Table.stories.tsx +55 -0
  171. package/src/components/ui/Table/Table.tsx +196 -0
  172. package/src/components/ui/Tabs/Tabs.mdx +65 -0
  173. package/src/components/ui/Tabs/Tabs.spec.tsx +65 -0
  174. package/src/components/ui/Tabs/Tabs.stories.tsx +57 -0
  175. package/src/components/ui/Tabs/Tabs.tsx +133 -0
  176. package/src/components/ui/Tooltip/Tooltip.mdx +47 -0
  177. package/src/components/ui/Tooltip/Tooltip.spec.tsx +37 -0
  178. package/src/components/ui/Tooltip/Tooltip.stories.tsx +38 -0
  179. package/src/components/ui/Tooltip/Tooltip.tsx +57 -0
  180. package/src/components/ui/Typography/Typography.mdx +56 -0
  181. package/src/components/ui/Typography/Typography.spec.tsx +49 -0
  182. package/src/components/ui/Typography/Typography.stories.tsx +36 -0
  183. package/src/components/ui/Typography/Typography.tsx +65 -0
  184. package/src/index.ts +86 -0
  185. package/src/native/ReactNavigationTheme.mdx +140 -0
  186. package/src/native/ReactNavigationTheme.spec.tsx +35 -0
  187. package/src/native/ReactNavigationTheme.ts +102 -0
  188. package/src/native/ThemeContext.spec.tsx +57 -0
  189. package/src/native/ThemeContext.tsx +48 -0
  190. package/src/native/tokens.ts +13 -0
  191. package/src/test/setup.ts +1 -0
package/dist/index.d.ts CHANGED
@@ -14,17 +14,72 @@ declare const lineHeight: {
14
14
  readonly bodyS: number;
15
15
  };
16
16
 
17
- type ThemeColors = typeof colors.light | typeof colors.dark;
17
+ type ThemeColorName = keyof typeof colors.light;
18
+ /** Semantic theme colors, widened to `string` so brand overrides typecheck. */
19
+ type ThemeColors = Readonly<Record<ThemeColorName, string>>;
20
+ /**
21
+ * Per-scheme token overrides, merged over the foundation colors.
22
+ * The React Native equivalent of overriding tokens in the web
23
+ * `boostdev.tokens.override` CSS layer.
24
+ */
25
+ interface ThemeTokenOverrides {
26
+ light?: Partial<Record<ThemeColorName, string>>;
27
+ dark?: Partial<Record<ThemeColorName, string>>;
28
+ }
18
29
  interface ThemeContextValue {
19
30
  colors: ThemeColors;
20
31
  isDark: boolean;
21
32
  }
22
- declare function ThemeProvider({ children, colorScheme }: {
33
+ interface ThemeProviderProps {
23
34
  children: ReactNode;
24
35
  colorScheme?: 'light' | 'dark';
25
- }): react_jsx_runtime.JSX.Element;
36
+ tokens?: ThemeTokenOverrides;
37
+ }
38
+ declare function ThemeProvider({ children, colorScheme, tokens }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
26
39
  declare function useTheme(): ThemeContextValue;
27
40
 
41
+ interface ReactNavigationFontStyle {
42
+ fontFamily: string;
43
+ fontWeight: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
44
+ }
45
+ interface ReactNavigationThemeColors {
46
+ primary: string;
47
+ background: string;
48
+ card: string;
49
+ text: string;
50
+ border: string;
51
+ notification: string;
52
+ }
53
+ interface ReactNavigationThemeFonts {
54
+ regular: ReactNavigationFontStyle;
55
+ medium: ReactNavigationFontStyle;
56
+ bold: ReactNavigationFontStyle;
57
+ heavy: ReactNavigationFontStyle;
58
+ }
59
+ interface ReactNavigationTheme {
60
+ dark: boolean;
61
+ colors: ReactNavigationThemeColors;
62
+ fonts: ReactNavigationThemeFonts;
63
+ }
64
+ interface CreateReactNavigationThemeOptions {
65
+ dark?: boolean;
66
+ tokens?: ThemeColors;
67
+ colors?: Partial<ReactNavigationThemeColors>;
68
+ fonts?: Partial<ReactNavigationThemeFonts>;
69
+ }
70
+ /**
71
+ * Pure builder. Produces a React Navigation–compatible theme from the design
72
+ * system foundation tokens. Use this when you are not wrapping in our
73
+ * `ThemeProvider`, or when you need a theme outside React.
74
+ */
75
+ declare function createReactNavigationTheme(options?: CreateReactNavigationThemeOptions): ReactNavigationTheme;
76
+ /**
77
+ * Hook variant. Reads from the design system's `ThemeProvider` and returns a
78
+ * React Navigation–compatible theme. Pass the result directly to
79
+ * `<NavigationContainer theme={...} />`.
80
+ */
81
+ declare function useReactNavigationTheme(overrides?: Pick<CreateReactNavigationThemeOptions, 'colors' | 'fonts'>): ReactNavigationTheme;
82
+
28
83
  type TypographyVariant = 'h1' | 'h2' | 'h3' | 'body' | 'body_s';
29
84
  interface TypographyProps {
30
85
  variant?: TypographyVariant;
@@ -515,14 +570,14 @@ interface DialogProps {
515
570
  }
516
571
  declare function Dialog({ isOpen, onClose, title, children, style, }: Readonly<DialogProps>): react_jsx_runtime.JSX.Element;
517
572
 
518
- interface DrawerProps {
573
+ interface SideSheetProps {
519
574
  isOpen: boolean;
520
575
  onClose: () => void;
521
576
  title?: ReactNode;
522
577
  children?: ReactNode;
523
578
  style?: StyleProp<ViewStyle>;
524
579
  }
525
- declare function Drawer({ isOpen, onClose, title, children, style, }: Readonly<DrawerProps>): react_jsx_runtime.JSX.Element;
580
+ declare function SideSheet({ isOpen, onClose, title, children, style, }: Readonly<SideSheetProps>): react_jsx_runtime.JSX.Element;
526
581
 
527
582
  type ToastVariant = 'success' | 'error' | 'info';
528
583
  interface ToastContextType {
@@ -571,4 +626,4 @@ interface MessageProps {
571
626
  }
572
627
  declare function Message({ message, type, style }: MessageProps): react_jsx_runtime.JSX.Element | null;
573
628
 
574
- export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonContainer, type ButtonContainerProps, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, Card, Carousel, Checkbox, CheckboxGroup, Collapsible, type CollapsibleProps, Combobox, type ComboboxOption, type DescriptionItem, DescriptionList, Dialog, Drawer, DropdownMenu, type DropdownMenuItem, FileInput, FormInput, IconWrapper, type IconWrapperProps, Label, Link, Loading, Message, NotificationBanner, NumberInput, Pagination, Popover, Progress, ProgressCircle, Radio, RadioGroup, Rating, SectionHeader, SegmentedControl, Select, type SelectOption, Separator, Skeleton, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, ThemeProvider, ToastProvider, Tooltip, Typography, lineHeight, useTheme, useToast };
629
+ export { Accordion, type AccordionItem, Alert, Avatar, Badge, Breadcrumb, type BreadcrumbItem, Button, ButtonContainer, type ButtonContainerProps, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, Card, Carousel, Checkbox, CheckboxGroup, Collapsible, type CollapsibleProps, Combobox, type ComboboxOption, type CreateReactNavigationThemeOptions, type DescriptionItem, DescriptionList, Dialog, DropdownMenu, type DropdownMenuItem, FileInput, FormInput, IconWrapper, type IconWrapperProps, Label, Link, Loading, Message, NotificationBanner, NumberInput, Pagination, Popover, Progress, ProgressCircle, Radio, RadioGroup, Rating, type ReactNavigationFontStyle, type ReactNavigationTheme, type ReactNavigationThemeColors, type ReactNavigationThemeFonts, SectionHeader, SegmentedControl, Select, type SelectOption, Separator, SideSheet, Skeleton, Slider, Switch, type TabItem, Table, type TableColumn, Tabs, Textarea, type ThemeColorName, type ThemeColors, ThemeProvider, type ThemeTokenOverrides, ToastProvider, Tooltip, Typography, createReactNavigationTheme, lineHeight, useReactNavigationTheme, useTheme, useToast };
package/dist/index.js CHANGED
@@ -16,13 +16,14 @@ var lineHeight = {
16
16
  // src/native/ThemeContext.tsx
17
17
  import { jsx } from "react/jsx-runtime";
18
18
  var ThemeContext = createContext(null);
19
- function ThemeProvider({ children, colorScheme }) {
19
+ function ThemeProvider({ children, colorScheme, tokens }) {
20
20
  const systemScheme = useColorScheme();
21
21
  const isDark = (colorScheme ?? systemScheme) === "dark";
22
- const value = useMemo(
23
- () => ({ colors: isDark ? colors.dark : colors.light, isDark }),
24
- [isDark]
25
- );
22
+ const value = useMemo(() => {
23
+ const base = isDark ? colors.dark : colors.light;
24
+ const overrides = isDark ? tokens?.dark : tokens?.light;
25
+ return { colors: { ...base, ...overrides }, isDark };
26
+ }, [isDark, tokens]);
26
27
  return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
27
28
  }
28
29
  function useTheme() {
@@ -31,7 +32,47 @@ function useTheme() {
31
32
  return ctx;
32
33
  }
33
34
 
34
- // src/components/ui/Typography/Typography.native.tsx
35
+ // src/native/ReactNavigationTheme.ts
36
+ import { palette, colors as foundationColors, font as font2 } from "@boostdev/design-system-foundation/native";
37
+ function mapColors(tokens, dark) {
38
+ return {
39
+ primary: tokens.colorInteractive,
40
+ background: tokens.colorBg,
41
+ card: tokens.colorBgSubtle,
42
+ text: tokens.colorOnBg,
43
+ border: dark ? palette.grey700 : palette.grey200,
44
+ notification: tokens.colorError
45
+ };
46
+ }
47
+ function mapFonts() {
48
+ const family = font2.family.body;
49
+ return {
50
+ regular: { fontFamily: family, fontWeight: String(font2.weight.body) },
51
+ medium: { fontFamily: family, fontWeight: String(font2.weight.medium) },
52
+ bold: { fontFamily: family, fontWeight: String(font2.weight.bold) },
53
+ heavy: { fontFamily: family, fontWeight: String(font2.weight.heading) }
54
+ };
55
+ }
56
+ function createReactNavigationTheme(options = {}) {
57
+ const dark = options.dark ?? false;
58
+ const tokens = options.tokens ?? (dark ? foundationColors.dark : foundationColors.light);
59
+ return {
60
+ dark,
61
+ colors: { ...mapColors(tokens, dark), ...options.colors },
62
+ fonts: { ...mapFonts(), ...options.fonts }
63
+ };
64
+ }
65
+ function useReactNavigationTheme(overrides = {}) {
66
+ const { colors: tokens, isDark } = useTheme();
67
+ return createReactNavigationTheme({
68
+ dark: isDark,
69
+ tokens,
70
+ colors: overrides.colors,
71
+ fonts: overrides.fonts
72
+ });
73
+ }
74
+
75
+ // src/components/ui/Typography/Typography.tsx
35
76
  import { StyleSheet, Text } from "react-native";
36
77
  import { jsx as jsx2 } from "react/jsx-runtime";
37
78
  var styles = StyleSheet.create({
@@ -85,7 +126,7 @@ function Typography({ variant = "body", children, style }) {
85
126
  );
86
127
  }
87
128
 
88
- // src/components/ui/Badge/Badge.native.tsx
129
+ // src/components/ui/Badge/Badge.tsx
89
130
  import { StyleSheet as StyleSheet2, View, Text as Text2 } from "react-native";
90
131
  import { jsx as jsx3 } from "react/jsx-runtime";
91
132
  var styles2 = StyleSheet2.create({
@@ -118,7 +159,7 @@ function Badge({ children, variant = "primary", style }) {
118
159
  return /* @__PURE__ */ jsx3(View, { style: [styles2.badge, { backgroundColor: bg }, style], children: /* @__PURE__ */ jsx3(Text2, { style: [styles2.text, { color: text }], children }) });
119
160
  }
120
161
 
121
- // src/components/ui/Avatar/Avatar.native.tsx
162
+ // src/components/ui/Avatar/Avatar.tsx
122
163
  import { StyleSheet as StyleSheet3, View as View2, Text as Text3, Image } from "react-native";
123
164
  import { jsx as jsx4 } from "react/jsx-runtime";
124
165
  var sizeMap = {
@@ -184,7 +225,7 @@ function Avatar({ src, alt, name, size = "medium", style }) {
184
225
  );
185
226
  }
186
227
 
187
- // src/components/ui/Separator/Separator.native.tsx
228
+ // src/components/ui/Separator/Separator.tsx
188
229
  import { StyleSheet as StyleSheet4, View as View3 } from "react-native";
189
230
  import { jsx as jsx5 } from "react/jsx-runtime";
190
231
  var styles4 = StyleSheet4.create({
@@ -212,7 +253,7 @@ function Separator({ orientation = "horizontal", style }) {
212
253
  );
213
254
  }
214
255
 
215
- // src/components/ui/Loading/Loading.native.tsx
256
+ // src/components/ui/Loading/Loading.tsx
216
257
  import { ActivityIndicator } from "react-native";
217
258
  import { jsx as jsx6 } from "react/jsx-runtime";
218
259
  var rnSize = {
@@ -234,7 +275,7 @@ function Loading({ size = "medium", accessibilityLabel = "Loading", style }) {
234
275
  );
235
276
  }
236
277
 
237
- // src/components/ui/Progress/Progress.native.tsx
278
+ // src/components/ui/Progress/Progress.tsx
238
279
  import { StyleSheet as StyleSheet5, View as View4, Text as Text4 } from "react-native";
239
280
  import { jsx as jsx7, jsxs } from "react/jsx-runtime";
240
281
  var trackHeight = {
@@ -306,7 +347,7 @@ function Progress({
306
347
  ] });
307
348
  }
308
349
 
309
- // src/components/ui/Skeleton/Skeleton.native.tsx
350
+ // src/components/ui/Skeleton/Skeleton.tsx
310
351
  import { useEffect, useRef } from "react";
311
352
  import { Animated, StyleSheet as StyleSheet6 } from "react-native";
312
353
  import { jsx as jsx8 } from "react/jsx-runtime";
@@ -342,7 +383,7 @@ function Skeleton({ style }) {
342
383
  );
343
384
  }
344
385
 
345
- // src/components/ui/Alert/Alert.native.tsx
386
+ // src/components/ui/Alert/Alert.tsx
346
387
  import { StyleSheet as StyleSheet7, View as View5, Text as Text5, Pressable } from "react-native";
347
388
  import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
348
389
  var styles7 = StyleSheet7.create({
@@ -422,7 +463,7 @@ function Alert({
422
463
  );
423
464
  }
424
465
 
425
- // src/components/ui/NotificationBanner/NotificationBanner.native.tsx
466
+ // src/components/ui/NotificationBanner/NotificationBanner.tsx
426
467
  import { StyleSheet as StyleSheet8, View as View6, Text as Text6, Pressable as Pressable2 } from "react-native";
427
468
  import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
428
469
  var styles8 = StyleSheet8.create({
@@ -485,7 +526,7 @@ function NotificationBanner({
485
526
  );
486
527
  }
487
528
 
488
- // src/components/ui/Link/Link.native.tsx
529
+ // src/components/ui/Link/Link.tsx
489
530
  import { StyleSheet as StyleSheet9, Text as Text7, Pressable as Pressable3, Linking } from "react-native";
490
531
  import { jsx as jsx11 } from "react/jsx-runtime";
491
532
  var styles9 = StyleSheet9.create({
@@ -519,7 +560,7 @@ function Link({ href, children, accessibilityLabel, style, onPress }) {
519
560
  );
520
561
  }
521
562
 
522
- // src/components/ui/DescriptionList/DescriptionList.native.tsx
563
+ // src/components/ui/DescriptionList/DescriptionList.tsx
523
564
  import { StyleSheet as StyleSheet10, View as View7, Text as Text8 } from "react-native";
524
565
  import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
525
566
  var styles10 = StyleSheet10.create({
@@ -550,7 +591,7 @@ function DescriptionList({ items, style }) {
550
591
  ] }, i)) });
551
592
  }
552
593
 
553
- // src/components/ui/Breadcrumb/Breadcrumb.native.tsx
594
+ // src/components/ui/Breadcrumb/Breadcrumb.tsx
554
595
  import { StyleSheet as StyleSheet11, View as View8, Text as Text9, Pressable as Pressable4 } from "react-native";
555
596
  import { Fragment, jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
556
597
  var styles11 = StyleSheet11.create({
@@ -616,7 +657,7 @@ function Breadcrumb({ items, style }) {
616
657
  );
617
658
  }
618
659
 
619
- // src/components/ui/ProgressCircle/ProgressCircle.native.tsx
660
+ // src/components/ui/ProgressCircle/ProgressCircle.tsx
620
661
  import { StyleSheet as StyleSheet12, View as View9, Text as Text10 } from "react-native";
621
662
  import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
622
663
  var SIZE_PX = {
@@ -783,7 +824,7 @@ function ProgressCircle({
783
824
  );
784
825
  }
785
826
 
786
- // src/components/ui/Tooltip/Tooltip.native.tsx
827
+ // src/components/ui/Tooltip/Tooltip.tsx
787
828
  import { useState } from "react";
788
829
  import { StyleSheet as StyleSheet13, View as View10, Text as Text11, Pressable as Pressable5 } from "react-native";
789
830
  import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
@@ -832,7 +873,7 @@ function Tooltip({ content, children, style }) {
832
873
  ] });
833
874
  }
834
875
 
835
- // src/components/ui/Pagination/Pagination.native.tsx
876
+ // src/components/ui/Pagination/Pagination.tsx
836
877
  import { StyleSheet as StyleSheet14, View as View11, Text as Text12, Pressable as Pressable6 } from "react-native";
837
878
  import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
838
879
  function getPageRange(current, total) {
@@ -981,7 +1022,7 @@ function Pagination({
981
1022
  );
982
1023
  }
983
1024
 
984
- // src/components/ui/Collapsible/Collapsible.native.tsx
1025
+ // src/components/ui/Collapsible/Collapsible.tsx
985
1026
  import { useCallback, useRef as useRef2, useState as useState2 } from "react";
986
1027
  import {
987
1028
  StyleSheet as StyleSheet15,
@@ -1095,7 +1136,7 @@ function Collapsible({
1095
1136
  );
1096
1137
  }
1097
1138
 
1098
- // src/components/ui/Accordion/Accordion.native.tsx
1139
+ // src/components/ui/Accordion/Accordion.tsx
1099
1140
  import { useState as useState3 } from "react";
1100
1141
  import {
1101
1142
  StyleSheet as StyleSheet16,
@@ -1210,7 +1251,7 @@ function Accordion({
1210
1251
  }) });
1211
1252
  }
1212
1253
 
1213
- // src/components/ui/Tabs/Tabs.native.tsx
1254
+ // src/components/ui/Tabs/Tabs.tsx
1214
1255
  import { useState as useState4 } from "react";
1215
1256
  import {
1216
1257
  StyleSheet as StyleSheet17,
@@ -1315,7 +1356,7 @@ function Tabs({
1315
1356
  ] });
1316
1357
  }
1317
1358
 
1318
- // src/components/ui/Table/Table.native.tsx
1359
+ // src/components/ui/Table/Table.tsx
1319
1360
  import {
1320
1361
  StyleSheet as StyleSheet18,
1321
1362
  View as View15,
@@ -1455,7 +1496,7 @@ function Table({
1455
1496
  );
1456
1497
  }
1457
1498
 
1458
- // src/components/ui/Calendar/Calendar.native.tsx
1499
+ // src/components/ui/Calendar/Calendar.tsx
1459
1500
  import { useState as useState5 } from "react";
1460
1501
  import {
1461
1502
  StyleSheet as StyleSheet19,
@@ -1725,7 +1766,7 @@ function Calendar({
1725
1766
  );
1726
1767
  }
1727
1768
 
1728
- // src/components/ui/Carousel/Carousel.native.tsx
1769
+ // src/components/ui/Carousel/Carousel.tsx
1729
1770
  import { useCallback as useCallback2, useRef as useRef3, useState as useState6 } from "react";
1730
1771
  import {
1731
1772
  StyleSheet as StyleSheet20,
@@ -1893,7 +1934,7 @@ function Carousel({
1893
1934
  );
1894
1935
  }
1895
1936
 
1896
- // src/components/layout/Card/Card.native.tsx
1937
+ // src/components/layout/Card/Card.tsx
1897
1938
  import { StyleSheet as StyleSheet21, View as View18, Pressable as Pressable13 } from "react-native";
1898
1939
  import { jsx as jsx23 } from "react/jsx-runtime";
1899
1940
  var paddingMap = {
@@ -1956,7 +1997,7 @@ function Card({
1956
1997
  return /* @__PURE__ */ jsx23(View18, { style: [styles21.card, variantStyle, inner, style], children });
1957
1998
  }
1958
1999
 
1959
- // src/components/layout/SectionHeader/SectionHeader.native.tsx
2000
+ // src/components/layout/SectionHeader/SectionHeader.tsx
1960
2001
  import { StyleSheet as StyleSheet22, View as View19, Text as Text19 } from "react-native";
1961
2002
  import { jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
1962
2003
  var alignMap2 = {
@@ -2016,7 +2057,7 @@ function SectionHeader({
2016
2057
  ] });
2017
2058
  }
2018
2059
 
2019
- // src/components/layout/IconWrapper/IconWrapper.native.tsx
2060
+ // src/components/layout/IconWrapper/IconWrapper.tsx
2020
2061
  import { View as View20 } from "react-native";
2021
2062
  import { jsx as jsx25 } from "react/jsx-runtime";
2022
2063
  function IconWrapper({ children, style, accessibilityElementsHidden }) {
@@ -2031,7 +2072,7 @@ function IconWrapper({ children, style, accessibilityElementsHidden }) {
2031
2072
  );
2032
2073
  }
2033
2074
 
2034
- // src/components/layout/ButtonGroup/ButtonGroup.native.tsx
2075
+ // src/components/layout/ButtonGroup/ButtonGroup.tsx
2035
2076
  import { StyleSheet as StyleSheet23, View as View21 } from "react-native";
2036
2077
  import { jsx as jsx26 } from "react/jsx-runtime";
2037
2078
  var styles23 = StyleSheet23.create({
@@ -2058,7 +2099,7 @@ function ButtonContainer({ children, variant, accessibilityLabel, style }) {
2058
2099
  }
2059
2100
  var ButtonGroup = ButtonContainer;
2060
2101
 
2061
- // src/components/interaction/Button/Button.native.tsx
2102
+ // src/components/interaction/Button/Button.tsx
2062
2103
  import { StyleSheet as StyleSheet24, Pressable as Pressable14, Text as Text20, View as View22 } from "react-native";
2063
2104
  import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
2064
2105
  var sizeTokens = {
@@ -2131,7 +2172,7 @@ function Button({
2131
2172
  );
2132
2173
  }
2133
2174
 
2134
- // src/components/interaction/Rating/Rating.native.tsx
2175
+ // src/components/interaction/Rating/Rating.tsx
2135
2176
  import { StyleSheet as StyleSheet25, View as View23, Text as Text21 } from "react-native";
2136
2177
  import { jsx as jsx28 } from "react/jsx-runtime";
2137
2178
  var STAR_SIZE = 24;
@@ -2171,10 +2212,10 @@ function Rating({ value, max = 5, style, accessibilityLabel }) {
2171
2212
  );
2172
2213
  }
2173
2214
 
2174
- // src/components/interaction/form/Switch/Switch.native.tsx
2215
+ // src/components/interaction/form/Switch/Switch.tsx
2175
2216
  import { Switch as RNSwitch, View as View24, StyleSheet as StyleSheet27 } from "react-native";
2176
2217
 
2177
- // src/components/interaction/form/atoms/Label.native.tsx
2218
+ // src/components/interaction/form/atoms/Label.tsx
2178
2219
  import { Text as Text22 } from "react-native";
2179
2220
  import { jsx as jsx29 } from "react/jsx-runtime";
2180
2221
  function Label({ label, style }) {
@@ -2197,7 +2238,7 @@ function Label({ label, style }) {
2197
2238
  );
2198
2239
  }
2199
2240
 
2200
- // src/components/interaction/form/atoms/Message.native.tsx
2241
+ // src/components/interaction/form/atoms/Message.tsx
2201
2242
  import { StyleSheet as StyleSheet26, Text as Text23 } from "react-native";
2202
2243
  import { jsx as jsx30 } from "react/jsx-runtime";
2203
2244
  var styles26 = StyleSheet26.create({
@@ -2222,7 +2263,7 @@ function Message({ message, type, style }) {
2222
2263
  );
2223
2264
  }
2224
2265
 
2225
- // src/components/interaction/form/Switch/Switch.native.tsx
2266
+ // src/components/interaction/form/Switch/Switch.tsx
2226
2267
  import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
2227
2268
  var styles27 = StyleSheet27.create({
2228
2269
  container: {
@@ -2266,7 +2307,7 @@ function Switch({
2266
2307
  ] });
2267
2308
  }
2268
2309
 
2269
- // src/components/interaction/form/Checkbox/Checkbox.native.tsx
2310
+ // src/components/interaction/form/Checkbox/Checkbox.tsx
2270
2311
  import { StyleSheet as StyleSheet28, View as View25, Pressable as Pressable15 } from "react-native";
2271
2312
  import { jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
2272
2313
  var BOX = 22;
@@ -2328,7 +2369,7 @@ function Checkbox({
2328
2369
  ] });
2329
2370
  }
2330
2371
 
2331
- // src/components/interaction/form/CheckboxGroup/CheckboxGroup.native.tsx
2372
+ // src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx
2332
2373
  import { StyleSheet as StyleSheet29, View as View26, Text as Text24 } from "react-native";
2333
2374
  import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
2334
2375
  var styles29 = StyleSheet29.create({
@@ -2377,7 +2418,7 @@ function CheckboxGroup({
2377
2418
  );
2378
2419
  }
2379
2420
 
2380
- // src/components/interaction/form/Radio/Radio.native.tsx
2421
+ // src/components/interaction/form/Radio/Radio.tsx
2381
2422
  import { StyleSheet as StyleSheet30, View as View27, Pressable as Pressable16 } from "react-native";
2382
2423
  import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
2383
2424
  var DOT = 22;
@@ -2439,7 +2480,7 @@ function Radio({
2439
2480
  ] });
2440
2481
  }
2441
2482
 
2442
- // src/components/interaction/form/RadioGroup/RadioGroup.native.tsx
2483
+ // src/components/interaction/form/RadioGroup/RadioGroup.tsx
2443
2484
  import { StyleSheet as StyleSheet31, View as View28, Text as Text25 } from "react-native";
2444
2485
  import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
2445
2486
  var styles31 = StyleSheet31.create({
@@ -2488,7 +2529,7 @@ function RadioGroup({
2488
2529
  );
2489
2530
  }
2490
2531
 
2491
- // src/components/interaction/form/FileInput/FileInput.native.tsx
2532
+ // src/components/interaction/form/FileInput/FileInput.tsx
2492
2533
  import { StyleSheet as StyleSheet32, View as View29, Pressable as Pressable17, Text as Text26 } from "react-native";
2493
2534
  import { jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
2494
2535
  var styles32 = StyleSheet32.create({
@@ -2583,7 +2624,7 @@ function FileInput({
2583
2624
  ] });
2584
2625
  }
2585
2626
 
2586
- // src/components/interaction/form/Combobox/Combobox.native.tsx
2627
+ // src/components/interaction/form/Combobox/Combobox.tsx
2587
2628
  import { useState as useState7, useMemo as useMemo2 } from "react";
2588
2629
  import {
2589
2630
  StyleSheet as StyleSheet33,
@@ -2605,7 +2646,8 @@ var styles33 = StyleSheet33.create({
2605
2646
  input: {
2606
2647
  fontFamily: font.family.body,
2607
2648
  fontSize: font.size.body,
2608
- lineHeight: lineHeight.body,
2649
+ // No lineHeight on single-line TextInput: iOS clips descenders/ascenders when
2650
+ // lineHeight is set explicitly. minHeight: 44 satisfies the touch-target requirement.
2609
2651
  paddingVertical: spacing.xs,
2610
2652
  paddingHorizontal: spacing.s,
2611
2653
  borderWidth: 1,
@@ -2758,7 +2800,7 @@ function Combobox({
2758
2800
  ] });
2759
2801
  }
2760
2802
 
2761
- // src/components/interaction/form/SegmentedControl/SegmentedControl.native.tsx
2803
+ // src/components/interaction/form/SegmentedControl/SegmentedControl.tsx
2762
2804
  import { Children } from "react";
2763
2805
  import { StyleSheet as StyleSheet34, View as View31, Pressable as Pressable19, Text as Text28 } from "react-native";
2764
2806
  import { jsx as jsx38 } from "react/jsx-runtime";
@@ -2836,7 +2878,7 @@ function SegmentedControl({
2836
2878
  );
2837
2879
  }
2838
2880
 
2839
- // src/components/interaction/form/FormInput/FormInput.native.tsx
2881
+ // src/components/interaction/form/FormInput/FormInput.tsx
2840
2882
  import { useState as useState8 } from "react";
2841
2883
  import {
2842
2884
  StyleSheet as StyleSheet35,
@@ -2860,7 +2902,8 @@ var styles35 = StyleSheet35.create({
2860
2902
  input: {
2861
2903
  fontFamily: font.family.body,
2862
2904
  fontSize: font.size.body,
2863
- lineHeight: lineHeight.body,
2905
+ // No lineHeight on single-line TextInput: iOS clips descenders/ascenders when
2906
+ // lineHeight is set explicitly. minHeight: 44 satisfies the touch-target requirement.
2864
2907
  paddingHorizontal: spacing.s,
2865
2908
  paddingVertical: spacing.xs,
2866
2909
  borderWidth: 1,
@@ -2928,7 +2971,7 @@ function FormInput({
2928
2971
  ] });
2929
2972
  }
2930
2973
 
2931
- // src/components/interaction/form/Textarea/Textarea.native.tsx
2974
+ // src/components/interaction/form/Textarea/Textarea.tsx
2932
2975
  import { useState as useState9 } from "react";
2933
2976
  import {
2934
2977
  StyleSheet as StyleSheet36,
@@ -3010,7 +3053,7 @@ function Textarea({
3010
3053
  ] });
3011
3054
  }
3012
3055
 
3013
- // src/components/interaction/form/Select/Select.native.tsx
3056
+ // src/components/interaction/form/Select/Select.tsx
3014
3057
  import { useState as useState10 } from "react";
3015
3058
  import {
3016
3059
  StyleSheet as StyleSheet37,
@@ -3234,7 +3277,7 @@ function Select({
3234
3277
  ] });
3235
3278
  }
3236
3279
 
3237
- // src/components/interaction/form/Slider/Slider.native.tsx
3280
+ // src/components/interaction/form/Slider/Slider.tsx
3238
3281
  import { useState as useState11 } from "react";
3239
3282
  import {
3240
3283
  StyleSheet as StyleSheet38,
@@ -3397,7 +3440,7 @@ function Slider({
3397
3440
  );
3398
3441
  }
3399
3442
 
3400
- // src/components/interaction/form/NumberInput/NumberInput.native.tsx
3443
+ // src/components/interaction/form/NumberInput/NumberInput.tsx
3401
3444
  import { useState as useState12 } from "react";
3402
3445
  import {
3403
3446
  StyleSheet as StyleSheet39,
@@ -3442,7 +3485,8 @@ var styles39 = StyleSheet39.create({
3442
3485
  flex: 1,
3443
3486
  fontFamily: font.family.body,
3444
3487
  fontSize: font.size.body,
3445
- lineHeight: lineHeight.body,
3488
+ // No lineHeight on single-line TextInput: iOS clips descenders/ascenders when
3489
+ // lineHeight is set explicitly. minHeight: STEPPER_SIZE (44) covers the touch target.
3446
3490
  textAlign: "center",
3447
3491
  paddingHorizontal: spacing.xs,
3448
3492
  paddingVertical: spacing.xs,
@@ -3576,7 +3620,7 @@ function NumberInput({
3576
3620
  ] });
3577
3621
  }
3578
3622
 
3579
- // src/components/interaction/Dialog/Dialog.native.tsx
3623
+ // src/components/interaction/Dialog/Dialog.tsx
3580
3624
  import {
3581
3625
  Modal as Modal2,
3582
3626
  View as View37,
@@ -3692,7 +3736,7 @@ function Dialog({
3692
3736
  );
3693
3737
  }
3694
3738
 
3695
- // src/components/interaction/Drawer/Drawer.native.tsx
3739
+ // src/components/interaction/SideSheet/SideSheet.tsx
3696
3740
  import { useEffect as useEffect2, useRef as useRef4 } from "react";
3697
3741
  import {
3698
3742
  Modal as Modal3,
@@ -3751,7 +3795,7 @@ var styles41 = StyleSheet41.create({
3751
3795
  flex: 1
3752
3796
  }
3753
3797
  });
3754
- function Drawer({
3798
+ function SideSheet({
3755
3799
  isOpen,
3756
3800
  onClose,
3757
3801
  title,
@@ -3812,7 +3856,7 @@ function Drawer({
3812
3856
  style: StyleSheet41.absoluteFill,
3813
3857
  onPress: onClose,
3814
3858
  accessibilityRole: "button",
3815
- accessibilityLabel: "Close drawer"
3859
+ accessibilityLabel: "Close side sheet"
3816
3860
  }
3817
3861
  )
3818
3862
  }
@@ -3842,7 +3886,7 @@ function Drawer({
3842
3886
  style: styles41.closeButton,
3843
3887
  onPress: onClose,
3844
3888
  accessibilityRole: "button",
3845
- accessibilityLabel: "Close drawer",
3889
+ accessibilityLabel: "Close side sheet",
3846
3890
  hitSlop: 8,
3847
3891
  children: /* @__PURE__ */ jsx45(
3848
3892
  Text33,
@@ -3866,7 +3910,7 @@ function Drawer({
3866
3910
  );
3867
3911
  }
3868
3912
 
3869
- // src/components/interaction/Toast/Toast.native.tsx
3913
+ // src/components/interaction/Toast/Toast.tsx
3870
3914
  import {
3871
3915
  useState as useState13,
3872
3916
  useEffect as useEffect3,
@@ -4030,7 +4074,7 @@ function useToast() {
4030
4074
  return context;
4031
4075
  }
4032
4076
 
4033
- // src/components/interaction/DropdownMenu/DropdownMenu.native.tsx
4077
+ // src/components/interaction/DropdownMenu/DropdownMenu.tsx
4034
4078
  import React, { useState as useState14, useEffect as useEffect4, useRef as useRef6 } from "react";
4035
4079
  import {
4036
4080
  Modal as Modal4,
@@ -4282,7 +4326,7 @@ function DropdownMenu({
4282
4326
  ] });
4283
4327
  }
4284
4328
 
4285
- // src/components/interaction/Popover/Popover.native.tsx
4329
+ // src/components/interaction/Popover/Popover.tsx
4286
4330
  import React2, { useState as useState15 } from "react";
4287
4331
  import {
4288
4332
  Modal as Modal5,
@@ -4377,7 +4421,6 @@ export {
4377
4421
  Combobox,
4378
4422
  DescriptionList,
4379
4423
  Dialog,
4380
- Drawer,
4381
4424
  DropdownMenu,
4382
4425
  FileInput,
4383
4426
  FormInput,
@@ -4399,6 +4442,7 @@ export {
4399
4442
  SegmentedControl,
4400
4443
  Select,
4401
4444
  Separator,
4445
+ SideSheet,
4402
4446
  Skeleton,
4403
4447
  Slider,
4404
4448
  Switch,
@@ -4412,9 +4456,11 @@ export {
4412
4456
  animation,
4413
4457
  border,
4414
4458
  colors,
4459
+ createReactNavigationTheme,
4415
4460
  font,
4416
4461
  lineHeight,
4417
4462
  spacing,
4463
+ useReactNavigationTheme,
4418
4464
  useTheme,
4419
4465
  useToast,
4420
4466
  zIndex