orn-ui 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +9 -2
  2. package/lib/commonjs/atoms/PressableScale.js +9 -10
  3. package/lib/commonjs/atoms/PressableScale.js.map +1 -1
  4. package/lib/commonjs/atoms/Skeleton.js +96 -0
  5. package/lib/commonjs/atoms/Skeleton.js.map +1 -0
  6. package/lib/commonjs/atoms/Transition.js +171 -0
  7. package/lib/commonjs/atoms/Transition.js.map +1 -0
  8. package/lib/commonjs/atoms/index.js +20 -0
  9. package/lib/commonjs/atoms/index.js.map +1 -1
  10. package/lib/commonjs/molecules/OptionCard.js +55 -22
  11. package/lib/commonjs/molecules/OptionCard.js.map +1 -1
  12. package/lib/commonjs/molecules/{ThemeToggle.js → SegmentedControl.js} +36 -36
  13. package/lib/commonjs/molecules/SegmentedControl.js.map +1 -0
  14. package/lib/commonjs/molecules/Stepper.js +124 -47
  15. package/lib/commonjs/molecules/Stepper.js.map +1 -1
  16. package/lib/commonjs/molecules/index.js +9 -3
  17. package/lib/commonjs/molecules/index.js.map +1 -1
  18. package/lib/commonjs/organisms/AlertProvider.js +26 -0
  19. package/lib/commonjs/organisms/AlertProvider.js.map +1 -1
  20. package/lib/commonjs/organisms/BottomSheet.js +118 -39
  21. package/lib/commonjs/organisms/BottomSheet.js.map +1 -1
  22. package/lib/commonjs/organisms/List.js +66 -44
  23. package/lib/commonjs/organisms/List.js.map +1 -1
  24. package/lib/commonjs/organisms/Modal.js +42 -87
  25. package/lib/commonjs/organisms/Modal.js.map +1 -1
  26. package/lib/commonjs/organisms/NavigationBar.js +205 -0
  27. package/lib/commonjs/organisms/NavigationBar.js.map +1 -0
  28. package/lib/commonjs/organisms/Screen.js +9 -2
  29. package/lib/commonjs/organisms/Screen.js.map +1 -1
  30. package/lib/commonjs/organisms/SearchList.js +97 -28
  31. package/lib/commonjs/organisms/SearchList.js.map +1 -1
  32. package/lib/commonjs/organisms/Select.js +222 -50
  33. package/lib/commonjs/organisms/Select.js.map +1 -1
  34. package/lib/commonjs/organisms/ThemeToggle.js +52 -0
  35. package/lib/commonjs/organisms/ThemeToggle.js.map +1 -0
  36. package/lib/commonjs/organisms/Toast.js +8 -22
  37. package/lib/commonjs/organisms/Toast.js.map +1 -1
  38. package/lib/commonjs/organisms/ToastProvider.js +24 -0
  39. package/lib/commonjs/organisms/ToastProvider.js.map +1 -1
  40. package/lib/commonjs/organisms/Wizard.js +22 -2
  41. package/lib/commonjs/organisms/Wizard.js.map +1 -1
  42. package/lib/commonjs/organisms/imperativeBridge.js +28 -0
  43. package/lib/commonjs/organisms/imperativeBridge.js.map +1 -0
  44. package/lib/commonjs/organisms/index.js +50 -0
  45. package/lib/commonjs/organisms/index.js.map +1 -1
  46. package/lib/commonjs/theme/colors.js +207 -0
  47. package/lib/commonjs/theme/colors.js.map +1 -0
  48. package/lib/commonjs/theme/createTheme.js +25 -2
  49. package/lib/commonjs/theme/createTheme.js.map +1 -1
  50. package/lib/commonjs/theme/index.js +25 -0
  51. package/lib/commonjs/theme/index.js.map +1 -1
  52. package/lib/commonjs/theme/palettes.js +5 -2
  53. package/lib/commonjs/theme/palettes.js.map +1 -1
  54. package/lib/module/atoms/PressableScale.js +9 -10
  55. package/lib/module/atoms/PressableScale.js.map +1 -1
  56. package/lib/module/atoms/Skeleton.js +91 -0
  57. package/lib/module/atoms/Skeleton.js.map +1 -0
  58. package/lib/module/atoms/Transition.js +165 -0
  59. package/lib/module/atoms/Transition.js.map +1 -0
  60. package/lib/module/atoms/index.js +2 -0
  61. package/lib/module/atoms/index.js.map +1 -1
  62. package/lib/module/molecules/OptionCard.js +56 -23
  63. package/lib/module/molecules/OptionCard.js.map +1 -1
  64. package/lib/module/molecules/{ThemeToggle.js → SegmentedControl.js} +36 -36
  65. package/lib/module/molecules/SegmentedControl.js.map +1 -0
  66. package/lib/module/molecules/Stepper.js +125 -49
  67. package/lib/module/molecules/Stepper.js.map +1 -1
  68. package/lib/module/molecules/index.js +2 -2
  69. package/lib/module/molecules/index.js.map +1 -1
  70. package/lib/module/organisms/AlertProvider.js +24 -1
  71. package/lib/module/organisms/AlertProvider.js.map +1 -1
  72. package/lib/module/organisms/BottomSheet.js +120 -41
  73. package/lib/module/organisms/BottomSheet.js.map +1 -1
  74. package/lib/module/organisms/List.js +68 -46
  75. package/lib/module/organisms/List.js.map +1 -1
  76. package/lib/module/organisms/Modal.js +44 -89
  77. package/lib/module/organisms/Modal.js.map +1 -1
  78. package/lib/module/organisms/NavigationBar.js +200 -0
  79. package/lib/module/organisms/NavigationBar.js.map +1 -0
  80. package/lib/module/organisms/Screen.js +9 -2
  81. package/lib/module/organisms/Screen.js.map +1 -1
  82. package/lib/module/organisms/SearchList.js +98 -29
  83. package/lib/module/organisms/SearchList.js.map +1 -1
  84. package/lib/module/organisms/Select.js +224 -52
  85. package/lib/module/organisms/Select.js.map +1 -1
  86. package/lib/module/organisms/ThemeToggle.js +47 -0
  87. package/lib/module/organisms/ThemeToggle.js.map +1 -0
  88. package/lib/module/organisms/Toast.js +10 -24
  89. package/lib/module/organisms/Toast.js.map +1 -1
  90. package/lib/module/organisms/ToastProvider.js +21 -0
  91. package/lib/module/organisms/ToastProvider.js.map +1 -1
  92. package/lib/module/organisms/Wizard.js +23 -3
  93. package/lib/module/organisms/Wizard.js.map +1 -1
  94. package/lib/module/organisms/imperativeBridge.js +24 -0
  95. package/lib/module/organisms/imperativeBridge.js.map +1 -0
  96. package/lib/module/organisms/index.js +4 -2
  97. package/lib/module/organisms/index.js.map +1 -1
  98. package/lib/module/theme/colors.js +194 -0
  99. package/lib/module/theme/colors.js.map +1 -0
  100. package/lib/module/theme/createTheme.js +25 -2
  101. package/lib/module/theme/createTheme.js.map +1 -1
  102. package/lib/module/theme/index.js +1 -0
  103. package/lib/module/theme/index.js.map +1 -1
  104. package/lib/module/theme/palettes.js +5 -2
  105. package/lib/module/theme/palettes.js.map +1 -1
  106. package/lib/typescript/atoms/PressableScale.d.ts +3 -2
  107. package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
  108. package/lib/typescript/atoms/Skeleton.d.ts +29 -0
  109. package/lib/typescript/atoms/Skeleton.d.ts.map +1 -0
  110. package/lib/typescript/atoms/Transition.d.ts +51 -0
  111. package/lib/typescript/atoms/Transition.d.ts.map +1 -0
  112. package/lib/typescript/atoms/index.d.ts +4 -0
  113. package/lib/typescript/atoms/index.d.ts.map +1 -1
  114. package/lib/typescript/molecules/OptionCard.d.ts +11 -6
  115. package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
  116. package/lib/typescript/molecules/SegmentedControl.d.ts +24 -0
  117. package/lib/typescript/molecules/SegmentedControl.d.ts.map +1 -0
  118. package/lib/typescript/molecules/Stepper.d.ts +35 -3
  119. package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
  120. package/lib/typescript/molecules/index.d.ts +4 -4
  121. package/lib/typescript/molecules/index.d.ts.map +1 -1
  122. package/lib/typescript/organisms/AlertProvider.d.ts +9 -0
  123. package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -1
  124. package/lib/typescript/organisms/BottomSheet.d.ts +26 -4
  125. package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
  126. package/lib/typescript/organisms/List.d.ts +9 -2
  127. package/lib/typescript/organisms/List.d.ts.map +1 -1
  128. package/lib/typescript/organisms/Modal.d.ts +3 -5
  129. package/lib/typescript/organisms/Modal.d.ts.map +1 -1
  130. package/lib/typescript/organisms/NavigationBar.d.ts +32 -0
  131. package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -0
  132. package/lib/typescript/organisms/Screen.d.ts +2 -1
  133. package/lib/typescript/organisms/Screen.d.ts.map +1 -1
  134. package/lib/typescript/organisms/SearchList.d.ts +21 -5
  135. package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
  136. package/lib/typescript/organisms/Select.d.ts +19 -4
  137. package/lib/typescript/organisms/Select.d.ts.map +1 -1
  138. package/lib/typescript/{molecules → organisms}/ThemeToggle.d.ts +4 -4
  139. package/lib/typescript/organisms/ThemeToggle.d.ts.map +1 -0
  140. package/lib/typescript/organisms/Toast.d.ts.map +1 -1
  141. package/lib/typescript/organisms/ToastProvider.d.ts +8 -0
  142. package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
  143. package/lib/typescript/organisms/Wizard.d.ts +7 -1
  144. package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
  145. package/lib/typescript/organisms/imperativeBridge.d.ts +12 -0
  146. package/lib/typescript/organisms/imperativeBridge.d.ts.map +1 -0
  147. package/lib/typescript/organisms/index.d.ts +7 -3
  148. package/lib/typescript/organisms/index.d.ts.map +1 -1
  149. package/lib/typescript/theme/colors.d.ts +44 -0
  150. package/lib/typescript/theme/colors.d.ts.map +1 -0
  151. package/lib/typescript/theme/createTheme.d.ts +3 -0
  152. package/lib/typescript/theme/createTheme.d.ts.map +1 -1
  153. package/lib/typescript/theme/index.d.ts +3 -1
  154. package/lib/typescript/theme/index.d.ts.map +1 -1
  155. package/lib/typescript/theme/palettes.d.ts.map +1 -1
  156. package/lib/typescript/theme/types.d.ts +9 -0
  157. package/lib/typescript/theme/types.d.ts.map +1 -1
  158. package/package.json +67 -6
  159. package/registry/alert-provider.json +9 -2
  160. package/registry/bottom-sheet.json +6 -2
  161. package/registry/core.json +8 -4
  162. package/registry/date-field.json +1 -0
  163. package/registry/index.json +96 -27
  164. package/registry/list.json +2 -1
  165. package/registry/manifest.json +44 -6
  166. package/registry/modal.json +3 -2
  167. package/registry/navigation-bar.json +18 -0
  168. package/registry/option-card.json +3 -2
  169. package/registry/pressable-scale.json +1 -1
  170. package/registry/screen.json +1 -1
  171. package/registry/search-list.json +2 -1
  172. package/registry/segmented-control.json +18 -0
  173. package/registry/select.json +1 -1
  174. package/registry/skeleton.json +18 -0
  175. package/registry/stepper.json +3 -2
  176. package/registry/theme-toggle.json +5 -4
  177. package/registry/toast-provider.json +11 -3
  178. package/registry/toast.json +3 -2
  179. package/registry/transition.json +19 -0
  180. package/registry/wizard.json +3 -2
  181. package/src/atoms/PressableScale.tsx +16 -6
  182. package/src/atoms/Skeleton.tsx +114 -0
  183. package/src/atoms/Transition.tsx +189 -0
  184. package/src/atoms/index.ts +4 -0
  185. package/src/molecules/OptionCard.tsx +62 -25
  186. package/src/molecules/SegmentedControl.tsx +84 -0
  187. package/src/molecules/Stepper.tsx +147 -32
  188. package/src/molecules/index.ts +4 -4
  189. package/src/organisms/AlertProvider.tsx +26 -1
  190. package/src/organisms/BottomSheet.tsx +214 -62
  191. package/src/organisms/List.tsx +73 -41
  192. package/src/organisms/Modal.tsx +49 -61
  193. package/src/organisms/NavigationBar.tsx +223 -0
  194. package/src/organisms/Screen.tsx +11 -3
  195. package/src/organisms/SearchList.tsx +132 -36
  196. package/src/organisms/Select.tsx +223 -45
  197. package/src/organisms/ThemeToggle.tsx +30 -0
  198. package/src/organisms/Toast.tsx +8 -21
  199. package/src/organisms/ToastProvider.tsx +24 -0
  200. package/src/organisms/Wizard.tsx +36 -3
  201. package/src/organisms/imperativeBridge.ts +28 -0
  202. package/src/organisms/index.ts +7 -3
  203. package/src/theme/colors.ts +175 -0
  204. package/src/theme/createTheme.ts +38 -4
  205. package/src/theme/index.ts +3 -1
  206. package/src/theme/palettes.ts +5 -2
  207. package/src/theme/types.ts +10 -0
  208. package/lib/commonjs/molecules/ThemeToggle.js.map +0 -1
  209. package/lib/module/molecules/ThemeToggle.js.map +0 -1
  210. package/lib/typescript/molecules/ThemeToggle.d.ts.map +0 -1
  211. package/src/molecules/ThemeToggle.tsx +0 -67
@@ -1,40 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useCallback } from 'react';
4
- import { ActivityIndicator, FlatList, Platform, RefreshControl, Text, View } from 'react-native';
4
+ import { FlatList, RefreshControl, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { useColors, useLabels } from '../theme/UIProvider';
7
7
  import { EmptyState } from '../atoms/EmptyState';
8
+ import { Skeleton } from '../atoms/Skeleton';
8
9
  import { Spinner } from '../atoms/Spinner';
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
11
  const useStyles = createStyles(theme => ({
11
12
  container: {
12
13
  flex: 1,
13
14
  backgroundColor: theme.colors.background
14
15
  },
15
- loadingOverlay: {
16
- position: 'absolute',
17
- top: 0,
18
- left: 0,
19
- right: 0,
20
- bottom: 0,
21
- backgroundColor: theme.colors.scrim,
22
- zIndex: 10,
23
- justifyContent: 'center',
24
- alignItems: 'center'
25
- },
26
- loadingText: {
27
- marginTop: theme.tokens.spacing.md,
28
- color: theme.colors.textLight,
29
- fontWeight: theme.tokens.fontWeight.medium
30
- },
31
16
  listContent: {
32
- padding: theme.tokens.spacing.md,
33
- paddingBottom: Platform.OS === 'android' ? 100 : 80
17
+ padding: theme.tokens.spacing.md
34
18
  },
35
19
  footerLoader: {
36
20
  paddingVertical: theme.tokens.spacing.xl,
37
21
  alignItems: 'center'
22
+ },
23
+ skeletonRow: {
24
+ flexDirection: 'row',
25
+ alignItems: 'center',
26
+ gap: theme.tokens.spacing.md,
27
+ padding: theme.tokens.spacing.md
28
+ },
29
+ skeletonText: {
30
+ flex: 1,
31
+ gap: theme.tokens.spacing.sm
38
32
  }
39
33
  }));
40
34
 
@@ -49,10 +43,13 @@ export function List({
49
43
  keyExtractor,
50
44
  renderItem,
51
45
  isLoading,
46
+ isRefreshing = false,
52
47
  isLoadingMore = false,
53
48
  isReady = true,
54
49
  loadingText,
55
50
  loadingMoreText,
51
+ skeletonCount = 6,
52
+ renderSkeletonItem,
56
53
  onEndReached,
57
54
  onEndReachedThreshold = 0.3,
58
55
  onRefresh,
@@ -71,21 +68,27 @@ export function List({
71
68
  const labels = useLabels();
72
69
  const resolvedLoadingText = loadingText ?? labels.loading;
73
70
  const resolvedLoadingMoreText = loadingMoreText ?? labels.loadingMore;
71
+ const isInitialLoading = isLoading && data.length === 0;
72
+
73
+ // El footer propio y el loader de paginación conviven: antes el primero
74
+ // tapaba al segundo y la lista dejaba de avisar que estaba trayendo más.
74
75
  const renderFooter = useCallback(() => {
75
- if (ListFooterComponent) {
76
- return typeof ListFooterComponent === 'function' ? /*#__PURE__*/_jsx(ListFooterComponent, {}) : ListFooterComponent;
77
- }
78
- if (!isLoadingMore) return null;
79
- return /*#__PURE__*/_jsx(View, {
80
- style: styles.footerLoader,
81
- children: /*#__PURE__*/_jsx(Spinner, {
82
- text: resolvedLoadingMoreText,
83
- fullscreen: false
84
- })
76
+ const custom = typeof ListFooterComponent === 'function' ? /*#__PURE__*/_jsx(ListFooterComponent, {}) : ListFooterComponent ?? null;
77
+ return /*#__PURE__*/_jsxs(_Fragment, {
78
+ children: [custom, isLoadingMore && /*#__PURE__*/_jsx(View, {
79
+ style: styles.footerLoader,
80
+ children: /*#__PURE__*/_jsx(Spinner, {
81
+ text: resolvedLoadingMoreText,
82
+ fullscreen: false
83
+ })
84
+ })]
85
85
  });
86
86
  }, [isLoadingMore, resolvedLoadingMoreText, ListFooterComponent, styles.footerLoader]);
87
+
88
+ // Vacío sólo cuando ya se sabe que no hay nada: durante la carga inicial se
89
+ // muestran placeholders, no "sin resultados".
87
90
  const renderEmpty = useCallback(() => {
88
- if (isLoading) return null;
91
+ if (isLoading || isRefreshing) return null;
89
92
  return /*#__PURE__*/_jsx(EmptyState, {
90
93
  title: emptyTitle,
91
94
  description: emptyDescription,
@@ -94,7 +97,7 @@ export function List({
94
97
  marginTop: 50
95
98
  }
96
99
  });
97
- }, [isLoading, emptyTitle, emptyDescription, emptyIconName]);
100
+ }, [isLoading, isRefreshing, emptyTitle, emptyDescription, emptyIconName]);
98
101
  if (!isReady) {
99
102
  return /*#__PURE__*/_jsx(View, {
100
103
  style: styles.container,
@@ -103,19 +106,38 @@ export function List({
103
106
  })
104
107
  });
105
108
  }
106
- return /*#__PURE__*/_jsxs(View, {
109
+ if (isInitialLoading) {
110
+ return /*#__PURE__*/_jsx(View, {
111
+ style: [styles.container, containerStyle],
112
+ testID: "list-skeleton",
113
+ children: /*#__PURE__*/_jsx(View, {
114
+ style: [styles.listContent, contentContainerStyle],
115
+ children: Array.from({
116
+ length: skeletonCount
117
+ }, (_, i) => /*#__PURE__*/_jsx(React.Fragment, {
118
+ children: renderSkeletonItem?.() ?? /*#__PURE__*/_jsxs(View, {
119
+ style: styles.skeletonRow,
120
+ children: [/*#__PURE__*/_jsx(Skeleton, {
121
+ variant: "circle",
122
+ width: 40
123
+ }), /*#__PURE__*/_jsxs(View, {
124
+ style: styles.skeletonText,
125
+ children: [/*#__PURE__*/_jsx(Skeleton, {
126
+ width: "60%",
127
+ height: 14
128
+ }), /*#__PURE__*/_jsx(Skeleton, {
129
+ width: "35%",
130
+ height: 12
131
+ })]
132
+ })]
133
+ })
134
+ }, i))
135
+ })
136
+ });
137
+ }
138
+ return /*#__PURE__*/_jsx(View, {
107
139
  style: [styles.container, containerStyle],
108
- children: [isLoading && data.length === 0 && /*#__PURE__*/_jsxs(View, {
109
- style: styles.loadingOverlay,
110
- pointerEvents: "none",
111
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
112
- size: "large",
113
- color: colors.primary
114
- }), /*#__PURE__*/_jsx(Text, {
115
- style: styles.loadingText,
116
- children: resolvedLoadingText
117
- })]
118
- }), /*#__PURE__*/_jsx(ListComponent, {
140
+ children: /*#__PURE__*/_jsx(ListComponent, {
119
141
  data: data,
120
142
  keyExtractor: keyExtractor,
121
143
  renderItem: renderItem,
@@ -126,13 +148,13 @@ export function List({
126
148
  ListFooterComponent: renderFooter,
127
149
  ListEmptyComponent: renderEmpty,
128
150
  refreshControl: onRefresh ? /*#__PURE__*/_jsx(RefreshControl, {
129
- refreshing: isLoading,
151
+ refreshing: isRefreshing,
130
152
  onRefresh: onRefresh,
131
153
  colors: [colors.primary],
132
154
  tintColor: colors.primary
133
155
  }) : undefined,
134
156
  ...listProps
135
- })]
157
+ })
136
158
  });
137
159
  }
138
160
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","ActivityIndicator","FlatList","Platform","RefreshControl","Text","View","createStyles","useColors","useLabels","EmptyState","Spinner","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flex","backgroundColor","colors","background","loadingOverlay","position","top","left","right","bottom","scrim","zIndex","justifyContent","alignItems","loadingText","marginTop","tokens","spacing","md","color","textLight","fontWeight","medium","listContent","padding","paddingBottom","OS","footerLoader","paddingVertical","xl","List","data","keyExtractor","renderItem","isLoading","isLoadingMore","isReady","loadingMoreText","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","listProps","styles","labels","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","renderFooter","style","children","text","fullscreen","renderEmpty","title","description","iconName","length","pointerEvents","size","primary","ListEmptyComponent","refreshControl","refreshing","tintColor","undefined"],"sourceRoot":"../../../src","sources":["organisms/List.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","FlatList","RefreshControl","View","createStyles","useColors","useLabels","EmptyState","Skeleton","Spinner","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useStyles","theme","container","flex","backgroundColor","colors","background","listContent","padding","tokens","spacing","md","footerLoader","paddingVertical","xl","alignItems","skeletonRow","flexDirection","gap","skeletonText","sm","List","data","keyExtractor","renderItem","isLoading","isRefreshing","isLoadingMore","isReady","loadingText","loadingMoreText","skeletonCount","renderSkeletonItem","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","listProps","styles","labels","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","isInitialLoading","length","renderFooter","custom","children","style","text","fullscreen","renderEmpty","title","description","iconName","marginTop","testID","Array","from","_","i","variant","width","height","ListEmptyComponent","refreshControl","refreshing","primary","tintColor","undefined"],"sourceRoot":"../../../src","sources":["organisms/List.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,QAAQ,EAAEC,cAAc,EAAEC,IAAI,QAA4C,cAAc;AACjG,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,SAAS,EAAEC,SAAS,QAAQ,qBAAqB;AAC1D,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,OAAO,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AA0C3C,MAAMC,SAAS,GAAGZ,YAAY,CAAEa,KAAK,KAAM;EACzCC,SAAS,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,eAAe,EAAEH,KAAK,CAACI,MAAM,CAACC;EAAW,CAAC;EAChEC,WAAW,EAAE;IAAEC,OAAO,EAAEP,KAAK,CAACQ,MAAM,CAACC,OAAO,CAACC;EAAG,CAAC;EACjDC,YAAY,EAAE;IAAEC,eAAe,EAAEZ,KAAK,CAACQ,MAAM,CAACC,OAAO,CAACI,EAAE;IAAEC,UAAU,EAAE;EAAS,CAAC;EAChFC,WAAW,EAAE;IACXC,aAAa,EAAE,KAAK;IACpBF,UAAU,EAAE,QAAQ;IACpBG,GAAG,EAAEjB,KAAK,CAACQ,MAAM,CAACC,OAAO,CAACC,EAAE;IAC5BH,OAAO,EAAEP,KAAK,CAACQ,MAAM,CAACC,OAAO,CAACC;EAChC,CAAC;EACDQ,YAAY,EAAE;IAAEhB,IAAI,EAAE,CAAC;IAAEe,GAAG,EAAEjB,KAAK,CAACQ,MAAM,CAACC,OAAO,CAACU;EAAG;AACxD,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,IAAIA,CAAI;EACtBC,IAAI;EACJC,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,YAAY,GAAG,KAAK;EACpBC,aAAa,GAAG,KAAK;EACrBC,OAAO,GAAG,IAAI;EACdC,WAAW;EACXC,eAAe;EACfC,aAAa,GAAG,CAAC;EACjBC,kBAAkB;EAClBC,YAAY;EACZC,qBAAqB,GAAG,GAAG;EAC3BC,SAAS;EACTC,UAAU;EACVC,gBAAgB;EAChBC,aAAa;EACbC,mBAAmB;EACnBC,mBAAmB;EACnBC,qBAAqB;EACrBC,cAAc;EACdC,aAAa,GAAG1D,QAAQ;EACxB2D;AACY,CAAC,EAAE;EACf,MAAMvC,MAAM,GAAGhB,SAAS,CAAC,CAAC;EAC1B,MAAMwD,MAAM,GAAG7C,SAAS,CAAC,CAAC;EAC1B,MAAM8C,MAAM,GAAGxD,SAAS,CAAC,CAAC;EAC1B,MAAMyD,mBAAmB,GAAGlB,WAAW,IAAIiB,MAAM,CAACE,OAAO;EACzD,MAAMC,uBAAuB,GAAGnB,eAAe,IAAIgB,MAAM,CAACI,WAAW;EAErE,MAAMC,gBAAgB,GAAG1B,SAAS,IAAIH,IAAI,CAAC8B,MAAM,KAAK,CAAC;;EAEvD;EACA;EACA,MAAMC,YAAY,GAAGrE,WAAW,CAAC,MAAM;IACrC,MAAMsE,MAAM,GACV,OAAOd,mBAAmB,KAAK,UAAU,gBACvC7C,IAAA,CAAC6C,mBAAmB,IAAE,CAAC,GAEtBA,mBAAmB,IAAuC,IAC5D;IAEH,oBACEzC,KAAA,CAAAF,SAAA;MAAA0D,QAAA,GACGD,MAAM,EACN3B,aAAa,iBACZhC,IAAA,CAACR,IAAI;QAACqE,KAAK,EAAEX,MAAM,CAACjC,YAAa;QAAA2C,QAAA,eAC/B5D,IAAA,CAACF,OAAO;UAACgE,IAAI,EAAER,uBAAwB;UAACS,UAAU,EAAE;QAAM,CAAE;MAAC,CACzD,CACP;IAAA,CACD,CAAC;EAEP,CAAC,EAAE,CAAC/B,aAAa,EAAEsB,uBAAuB,EAAET,mBAAmB,EAAEK,MAAM,CAACjC,YAAY,CAAC,CAAC;;EAEtF;EACA;EACA,MAAM+C,WAAW,GAAG3E,WAAW,CAAC,MAAM;IACpC,IAAIyC,SAAS,IAAIC,YAAY,EAAE,OAAO,IAAI;IAC1C,oBAAO/B,IAAA,CAACJ,UAAU;MAACqE,KAAK,EAAExB,UAAW;MAACyB,WAAW,EAAExB,gBAAiB;MAACyB,QAAQ,EAAExB,aAAc;MAACkB,KAAK,EAAE;QAAEO,SAAS,EAAE;MAAG;IAAE,CAAE,CAAC;EAC5H,CAAC,EAAE,CAACtC,SAAS,EAAEC,YAAY,EAAEU,UAAU,EAAEC,gBAAgB,EAAEC,aAAa,CAAC,CAAC;EAE1E,IAAI,CAACV,OAAO,EAAE;IACZ,oBACEjC,IAAA,CAACR,IAAI;MAACqE,KAAK,EAAEX,MAAM,CAAC3C,SAAU;MAAAqD,QAAA,eAC5B5D,IAAA,CAACF,OAAO;QAACgE,IAAI,EAAEV;MAAoB,CAAE;IAAC,CAClC,CAAC;EAEX;EAEA,IAAII,gBAAgB,EAAE;IACpB,oBACExD,IAAA,CAACR,IAAI;MAACqE,KAAK,EAAE,CAACX,MAAM,CAAC3C,SAAS,EAAEwC,cAAc,CAAE;MAACsB,MAAM,EAAC,eAAe;MAAAT,QAAA,eACrE5D,IAAA,CAACR,IAAI;QAACqE,KAAK,EAAE,CAACX,MAAM,CAACtC,WAAW,EAAEkC,qBAAqB,CAAE;QAAAc,QAAA,EACtDU,KAAK,CAACC,IAAI,CAAC;UAAEd,MAAM,EAAErB;QAAc,CAAC,EAAE,CAACoC,CAAC,EAAEC,CAAC,kBAC1CzE,IAAA,CAACZ,KAAK,CAACa,QAAQ;UAAA2D,QAAA,EACZvB,kBAAkB,GAAG,CAAC,iBACrBjC,KAAA,CAACZ,IAAI;YAACqE,KAAK,EAAEX,MAAM,CAAC7B,WAAY;YAAAuC,QAAA,gBAC9B5D,IAAA,CAACH,QAAQ;cAAC6E,OAAO,EAAC,QAAQ;cAACC,KAAK,EAAE;YAAG,CAAE,CAAC,eACxCvE,KAAA,CAACZ,IAAI;cAACqE,KAAK,EAAEX,MAAM,CAAC1B,YAAa;cAAAoC,QAAA,gBAC/B5D,IAAA,CAACH,QAAQ;gBAAC8E,KAAK,EAAC,KAAK;gBAACC,MAAM,EAAE;cAAG,CAAE,CAAC,eACpC5E,IAAA,CAACH,QAAQ;gBAAC8E,KAAK,EAAC,KAAK;gBAACC,MAAM,EAAE;cAAG,CAAE,CAAC;YAAA,CAChC,CAAC;UAAA,CACH;QACP,GATkBH,CAUL,CACjB;MAAC,CACE;IAAC,CACH,CAAC;EAEX;EAEA,oBACEzE,IAAA,CAACR,IAAI;IAACqE,KAAK,EAAE,CAACX,MAAM,CAAC3C,SAAS,EAAEwC,cAAc,CAAE;IAAAa,QAAA,eAC9C5D,IAAA,CAACgD,aAAa;MACZrB,IAAI,EAAEA,IAAK;MACXC,YAAY,EAAEA,YAAa;MAC3BC,UAAU,EAAEA,UAAW;MACvBiB,qBAAqB,EAAE,CAACI,MAAM,CAACtC,WAAW,EAAEkC,qBAAqB,CAAE;MACnER,YAAY,EAAEA,YAAa;MAC3BC,qBAAqB,EAAEA,qBAAsB;MAC7CK,mBAAmB,EAAEA,mBAAoB;MACzCC,mBAAmB,EAAEa,YAAa;MAClCmB,kBAAkB,EAAEb,WAAY;MAChCc,cAAc,EACZtC,SAAS,gBACPxC,IAAA,CAACT,cAAc;QACbwF,UAAU,EAAEhD,YAAa;QACzBS,SAAS,EAAEA,SAAU;QACrB9B,MAAM,EAAE,CAACA,MAAM,CAACsE,OAAO,CAAE;QACzBC,SAAS,EAAEvE,MAAM,CAACsE;MAAQ,CAC3B,CAAC,GACAE,SACL;MAAA,GACGjC;IAAS,CACd;EAAC,CACE,CAAC;AAEX","ignoreList":[]}
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import React, { memo, useEffect, useRef, useState } from 'react';
4
- import { Animated, Dimensions, KeyboardAvoidingView, Modal as RNModal, Platform, Pressable, ScrollView, View } from 'react-native';
3
+ import React, { memo, useEffect, useState } from 'react';
4
+ import { Dimensions, KeyboardAvoidingView, Modal as RNModal, Platform, Pressable, ScrollView, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { useColors, useInsets } from '../theme/UIProvider';
7
7
  import { Title } from '../atoms/Text';
8
8
  import { IconButton } from '../atoms/IconButton';
9
+ import { Transition } from '../atoms/Transition';
9
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
11
  const {
11
12
  height: SCREEN_HEIGHT
@@ -24,10 +25,6 @@ const useStyles = createStyles(theme => ({
24
25
  alignItems: 'center',
25
26
  padding: theme.tokens.spacing.xxl - 4
26
27
  },
27
- bottomSheetContainer: {
28
- justifyContent: 'flex-end',
29
- padding: 0
30
- },
31
28
  backdrop: {
32
29
  backgroundColor: theme.colors.overlay
33
30
  },
@@ -39,15 +36,6 @@ const useStyles = createStyles(theme => ({
39
36
  overflow: 'hidden',
40
37
  ...theme.tokens.shadow.lg
41
38
  },
42
- bottomSheetCard: {
43
- width: '100%',
44
- maxHeight: '90%',
45
- backgroundColor: theme.colors.surface,
46
- borderTopLeftRadius: theme.tokens.radius.xxl,
47
- borderTopRightRadius: theme.tokens.radius.xxl,
48
- overflow: 'hidden',
49
- ...theme.tokens.shadow.lg
50
- },
51
39
  header: {
52
40
  flexDirection: 'row',
53
41
  justifyContent: 'space-between',
@@ -91,10 +79,8 @@ const useStyles = createStyles(theme => ({
91
79
  /**
92
80
  * Modal
93
81
  * Un solo componente para todos los modales de la app: maneja scroll,
94
- * teclado, insets y layout según `variant`. overlay/bottomSheet/full animan
95
- * su entrada/salida con Animated (solo transform, nunca opacity sobre la
96
- * tarjeta: animar opacity ahí dispara un bug de Android donde los hijos con
97
- * elevation parpadean/redibujan). El fondo semitransparente sí anima opacity.
82
+ * teclado, insets y layout según `variant`. Para una hoja desde abajo está
83
+ * BottomSheet, que además trae arrastre para cerrar.
98
84
  */
99
85
  export const Modal = /*#__PURE__*/memo(({
100
86
  visible,
@@ -114,69 +100,19 @@ export const Modal = /*#__PURE__*/memo(({
114
100
  const isFull = variant === 'full';
115
101
  const isOverlay = variant === 'overlay';
116
102
  const isFullScreen = variant === 'fullScreen';
117
- const isBottomSheet = variant === 'bottomSheet';
118
- const isAnimatedVariant = isOverlay || isBottomSheet || isFull;
103
+ const isAnimatedVariant = isOverlay || isFull;
119
104
  const insets = useInsets();
120
105
  const colors = useColors();
121
106
  const styles = useStyles();
122
107
  const [mounted, setMounted] = useState(!isAnimatedVariant && visible);
123
- const backdropOpacity = useRef(new Animated.Value(0)).current;
124
- const cardProgress = useRef(new Animated.Value(0)).current;
125
108
  useEffect(() => {
126
- if (!isAnimatedVariant) {
127
- setMounted(visible);
128
- return;
129
- }
130
- if (visible) {
131
- setMounted(true);
132
- Animated.timing(backdropOpacity, {
133
- toValue: 1,
134
- duration: 200,
135
- useNativeDriver: true
136
- }).start();
137
- Animated.timing(cardProgress, {
138
- toValue: 1,
139
- duration: 250,
140
- useNativeDriver: true
141
- }).start();
142
- } else {
143
- Animated.timing(backdropOpacity, {
144
- toValue: 0,
145
- duration: 180,
146
- useNativeDriver: true
147
- }).start();
148
- Animated.timing(cardProgress, {
149
- toValue: 0,
150
- duration: 200,
151
- useNativeDriver: true
152
- }).start(({
153
- finished
154
- }) => {
155
- if (finished) setMounted(false);
156
- });
157
- }
158
- // eslint-disable-next-line react-hooks/exhaustive-deps
109
+ if (!isAnimatedVariant) setMounted(visible);else if (visible) setMounted(true);
159
110
  }, [visible, isAnimatedVariant]);
160
- const cardAnimatedStyle = isBottomSheet || isFull ? {
161
- transform: [{
162
- translateY: cardProgress.interpolate({
163
- inputRange: [0, 1],
164
- outputRange: [SCREEN_HEIGHT, 0]
165
- })
166
- }]
167
- } : {
168
- transform: [{
169
- translateY: cardProgress.interpolate({
170
- inputRange: [0, 1],
171
- outputRange: [-40, 0]
172
- })
173
- }, {
174
- scale: cardProgress.interpolate({
175
- inputRange: [0, 1],
176
- outputRange: [0.9, 1]
177
- })
178
- }]
179
- };
111
+
112
+ // La tarjeta nunca anima opacity: hacerlo dispara un bug de Android donde
113
+ // los hijos con elevation parpadean. El fondo semitransparente sí.
114
+ const cardPreset = isFull ? ['slide-up'] : ['slide-down', 'scale'];
115
+ const cardDistance = isFull ? SCREEN_HEIGHT : 40;
180
116
  const behavior = Platform.OS === 'ios' ? isFull ? undefined : 'padding' : 'height';
181
117
  const keyboardOffset = Platform.OS === 'ios' ? 0 : 20;
182
118
  const renderHeader = () => {
@@ -231,34 +167,53 @@ export const Modal = /*#__PURE__*/memo(({
231
167
  // de pageSheet sería redundante con nuestra animación de todos modos.
232
168
  ,
233
169
  presentationStyle: Platform.OS === 'ios' ? isFullScreen ? 'fullScreen' : 'overFullScreen' : undefined,
234
- transparent: isOverlay || isBottomSheet || isFull,
170
+ transparent: isOverlay || isFull,
235
171
  statusBarTranslucent: statusBarTranslucent,
236
172
  hardwareAccelerated: hardwareAccelerated,
237
173
  children: /*#__PURE__*/_jsx(KeyboardAvoidingView, {
238
174
  behavior: behavior,
239
175
  keyboardVerticalOffset: keyboardOffset,
240
176
  style: styles.flex1,
241
- children: isOverlay || isBottomSheet ? /*#__PURE__*/_jsxs(View, {
242
- style: [styles.overlayContainer, isBottomSheet && styles.bottomSheetContainer],
243
- children: [/*#__PURE__*/_jsx(Animated.View, {
177
+ children: isOverlay ? /*#__PURE__*/_jsxs(View, {
178
+ style: styles.overlayContainer,
179
+ children: [/*#__PURE__*/_jsx(Transition, {
180
+ visible: visible,
181
+ preset: "fade",
182
+ duration: 200,
183
+ keepMounted: true,
244
184
  style: [{
245
185
  ...StyleSheetAbsoluteFill
246
- }, styles.backdrop, {
247
- opacity: backdropOpacity
248
- }],
186
+ }, styles.backdrop],
249
187
  children: /*#__PURE__*/_jsx(Pressable, {
250
188
  style: StyleSheetAbsoluteFill,
251
189
  onPress: onClose,
252
190
  testID: "modal-backdrop"
253
191
  })
254
- }), /*#__PURE__*/_jsxs(Animated.View, {
255
- style: [isOverlay ? styles.overlayCard : styles.bottomSheetCard, isBottomSheet && {
256
- paddingBottom: Math.max(insets.bottom, Platform.OS === 'ios' ? 20 : 0)
257
- }, containerStyle, cardAnimatedStyle],
192
+ }), /*#__PURE__*/_jsxs(Transition, {
193
+ visible: visible,
194
+ preset: cardPreset,
195
+ distance: cardDistance,
196
+ duration: 250,
197
+ onExited: () => setMounted(false),
198
+ style: [styles.overlayCard, containerStyle],
258
199
  children: [renderHeader(), renderMainContent(), renderFooter()]
259
200
  })]
260
- }) : /*#__PURE__*/_jsx(Animated.View, {
261
- style: [styles.fullWrapper, containerStyle, isFull && cardAnimatedStyle],
201
+ }) : isFull ? /*#__PURE__*/_jsx(Transition, {
202
+ visible: visible,
203
+ preset: cardPreset,
204
+ distance: cardDistance,
205
+ duration: 250,
206
+ onExited: () => setMounted(false),
207
+ style: [styles.fullWrapper, containerStyle],
208
+ children: /*#__PURE__*/_jsxs(View, {
209
+ style: [styles.flex1, {
210
+ paddingTop: insets.top,
211
+ paddingBottom: insets.bottom
212
+ }],
213
+ children: [renderHeader(), renderMainContent(), renderFooter()]
214
+ })
215
+ }) : /*#__PURE__*/_jsx(View, {
216
+ style: [styles.fullWrapper, containerStyle],
262
217
  children: /*#__PURE__*/_jsxs(View, {
263
218
  style: [styles.flex1, {
264
219
  paddingTop: insets.top,
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","Modal","RNModal","Platform","Pressable","ScrollView","View","createStyles","useColors","useInsets","Title","IconButton","jsx","_jsx","jsxs","_jsxs","height","SCREEN_HEIGHT","get","useStyles","theme","flex1","flex","fullWrapper","backgroundColor","colors","background","overlayContainer","justifyContent","alignItems","padding","tokens","spacing","xxl","bottomSheetContainer","backdrop","overlay","overlayCard","width","maxHeight","surface","borderRadius","radius","overflow","shadow","lg","bottomSheetCard","borderTopLeftRadius","borderTopRightRadius","header","flexDirection","xl","borderBottomWidth","borderBottomColor","border","title","fontSize","fontWeight","bold","closeButton","marginLeft","md","contentWrapper","flexShrink","scrollWrapper","scrollContent","flexGrow","scrollContentFull","footer","borderTopWidth","borderTopColor","visible","onClose","closeAccessibilityLabel","children","containerStyle","contentStyle","variant","scrollable","statusBarTranslucent","onRequestClose","hardwareAccelerated","isFull","isOverlay","isFullScreen","isBottomSheet","isAnimatedVariant","insets","styles","mounted","setMounted","backdropOpacity","Value","current","cardProgress","timing","toValue","duration","useNativeDriver","start","finished","cardAnimatedStyle","transform","translateY","interpolate","inputRange","outputRange","scale","behavior","OS","undefined","keyboardOffset","renderHeader","style","numberOfLines","iconName","size","color","text","onPress","accessibilityLabel","renderMainContent","contentContainerStyle","keyboardShouldPersistTaps","showsVerticalScrollIndicator","bounces","automaticallyAdjustKeyboardInsets","renderFooter","animationType","presentationStyle","transparent","keyboardVerticalOffset","StyleSheetAbsoluteFill","opacity","testID","paddingBottom","Math","max","bottom","paddingTop","top","displayName","position","left","right"],"sourceRoot":"../../../src","sources":["organisms/Modal.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SACEC,QAAQ,EACRC,UAAU,EACVC,oBAAoB,EACpBC,KAAK,IAAIC,OAAO,EAChBC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,IAAI,QAGC,cAAc;AACrB,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,SAAS,EAAEC,SAAS,QAAQ,qBAAqB;AAC1D,SAASC,KAAK,QAAQ,eAAe;AACrC,SAASC,UAAU,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjD,MAAM;EAAEC,MAAM,EAAEC;AAAc,CAAC,GAAGlB,UAAU,CAACmB,GAAG,CAAC,QAAQ,CAAC;AAkB1D,MAAMC,SAAS,GAAGZ,YAAY,CAAEa,KAAK,KAAM;EACzCC,KAAK,EAAE;IAAEC,IAAI,EAAE;EAAE,CAAC;EAClBC,WAAW,EAAE;IAAED,IAAI,EAAE,CAAC;IAAEE,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACC;EAAW,CAAC;EAClEC,gBAAgB,EAAE;IAAEL,IAAI,EAAE,CAAC;IAAEM,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE,QAAQ;IAAEC,OAAO,EAAEV,KAAK,CAACW,MAAM,CAACC,OAAO,CAACC,GAAG,GAAG;EAAE,CAAC;EACpHC,oBAAoB,EAAE;IAAEN,cAAc,EAAE,UAAU;IAAEE,OAAO,EAAE;EAAE,CAAC;EAChEK,QAAQ,EAAE;IAAEX,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACW;EAAQ,CAAC;EACnDC,WAAW,EAAE;IACXC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,KAAK;IAChBf,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACe,OAAO;IACrCC,YAAY,EAAErB,KAAK,CAACW,MAAM,CAACW,MAAM,CAACT,GAAG;IACrCU,QAAQ,EAAE,QAAQ;IAClB,GAAGvB,KAAK,CAACW,MAAM,CAACa,MAAM,CAACC;EACzB,CAAC;EACDC,eAAe,EAAE;IACfR,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,KAAK;IAChBf,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACe,OAAO;IACrCO,mBAAmB,EAAE3B,KAAK,CAACW,MAAM,CAACW,MAAM,CAACT,GAAG;IAC5Ce,oBAAoB,EAAE5B,KAAK,CAACW,MAAM,CAACW,MAAM,CAACT,GAAG;IAC7CU,QAAQ,EAAE,QAAQ;IAClB,GAAGvB,KAAK,CAACW,MAAM,CAACa,MAAM,CAACC;EACzB,CAAC;EACDI,MAAM,EAAE;IACNC,aAAa,EAAE,KAAK;IACpBtB,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAEV,KAAK,CAACW,MAAM,CAACC,OAAO,CAACmB,EAAE;IAChCC,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EAAEjC,KAAK,CAACK,MAAM,CAAC6B,MAAM;IACtC9B,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACe;EAChC,CAAC;EACDe,KAAK,EAAE;IAAEC,QAAQ,EAAEpC,KAAK,CAACW,MAAM,CAACyB,QAAQ,CAACL,EAAE;IAAEM,UAAU,EAAErC,KAAK,CAACW,MAAM,CAAC0B,UAAU,CAACC,IAAI;IAAEpC,IAAI,EAAE;EAAE,CAAC;EAChGqC,WAAW,EAAE;IAAEC,UAAU,EAAExC,KAAK,CAACW,MAAM,CAACC,OAAO,CAAC6B;EAAG,CAAC;EACpDC,cAAc,EAAE;IAAEC,UAAU,EAAE,CAAC;IAAEvC,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACe;EAAQ,CAAC;EACxEwB,aAAa,EAAE;IAAED,UAAU,EAAE;EAAE,CAAC;EAChCE,aAAa,EAAE;IAAEnC,OAAO,EAAEV,KAAK,CAACW,MAAM,CAACC,OAAO,CAACmB,EAAE;IAAEe,QAAQ,EAAE;EAAE,CAAC;EAChEC,iBAAiB,EAAE;IAAErC,OAAO,EAAE,CAAC;IAAEoC,QAAQ,EAAE;EAAE,CAAC;EAC9CE,MAAM,EAAE;IACNtC,OAAO,EAAEV,KAAK,CAACW,MAAM,CAACC,OAAO,CAACmB,EAAE;IAChCkB,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAElD,KAAK,CAACK,MAAM,CAAC6B,MAAM;IACnC9B,eAAe,EAAEJ,KAAK,CAACK,MAAM,CAACe;EAChC;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMvC,KAAK,gBAAGP,IAAI,CACvB,CAAC;EACC6E,OAAO;EACPC,OAAO;EACPjB,KAAK;EACLkB,uBAAuB,GAAG,OAAO;EACjCC,QAAQ;EACRN,MAAM;EACNO,cAAc;EACdC,YAAY;EACZC,OAAO,GAAG,MAAM;EAChBC,UAAU,GAAG,IAAI;EACjBC,oBAAoB,GAAG,IAAI;EAC3BC,cAAc;EACdC;AACU,CAAC,KAAK;EAChB,MAAMC,MAAM,GAAGL,OAAO,KAAK,MAAM;EACjC,MAAMM,SAAS,GAAGN,OAAO,KAAK,SAAS;EACvC,MAAMO,YAAY,GAAGP,OAAO,KAAK,YAAY;EAC7C,MAAMQ,aAAa,GAAGR,OAAO,KAAK,aAAa;EAC/C,MAAMS,iBAAiB,GAAGH,SAAS,IAAIE,aAAa,IAAIH,MAAM;EAC9D,MAAMK,MAAM,GAAG9E,SAAS,CAAC,CAAC;EAC1B,MAAMgB,MAAM,GAAGjB,SAAS,CAAC,CAAC;EAC1B,MAAMgF,MAAM,GAAGrE,SAAS,CAAC,CAAC;EAE1B,MAAM,CAACsE,OAAO,EAAEC,UAAU,CAAC,GAAG7F,QAAQ,CAAC,CAACyF,iBAAiB,IAAIf,OAAO,CAAC;EACrE,MAAMoB,eAAe,GAAG/F,MAAM,CAAC,IAAIE,QAAQ,CAAC8F,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC7D,MAAMC,YAAY,GAAGlG,MAAM,CAAC,IAAIE,QAAQ,CAAC8F,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAE1DlG,SAAS,CAAC,MAAM;IACd,IAAI,CAAC2F,iBAAiB,EAAE;MACtBI,UAAU,CAACnB,OAAO,CAAC;MACnB;IACF;IACA,IAAIA,OAAO,EAAE;MACXmB,UAAU,CAAC,IAAI,CAAC;MAChB5F,QAAQ,CAACiG,MAAM,CAACJ,eAAe,EAAE;QAAEK,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MAC9FrG,QAAQ,CAACiG,MAAM,CAACD,YAAY,EAAE;QAAEE,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IAC7F,CAAC,MAAM;MACLrG,QAAQ,CAACiG,MAAM,CAACJ,eAAe,EAAE;QAAEK,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MAC9FrG,QAAQ,CAACiG,MAAM,CAACD,YAAY,EAAE;QAAEE,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;QAAEC;MAAS,CAAC,KAAK;QAC1G,IAAIA,QAAQ,EAAEV,UAAU,CAAC,KAAK,CAAC;MACjC,CAAC,CAAC;IACJ;IACA;EACF,CAAC,EAAE,CAACnB,OAAO,EAAEe,iBAAiB,CAAC,CAAC;EAEhC,MAAMe,iBAAiB,GACrBhB,aAAa,IAAIH,MAAM,GACnB;IAAEoB,SAAS,EAAE,CAAC;MAAEC,UAAU,EAAET,YAAY,CAACU,WAAW,CAAC;QAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAAEC,WAAW,EAAE,CAACzF,aAAa,EAAE,CAAC;MAAE,CAAC;IAAE,CAAC;EAAE,CAAC,GAClH;IACEqF,SAAS,EAAE,CACT;MAAEC,UAAU,EAAET,YAAY,CAACU,WAAW,CAAC;QAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAAEC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;MAAE,CAAC;IAAE,CAAC,EACvF;MAAEC,KAAK,EAAEb,YAAY,CAACU,WAAW,CAAC;QAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAAEC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC;MAAE,CAAC;IAAE,CAAC;EAEtF,CAAC;EAEP,MAAME,QAAQ,GAAGzG,QAAQ,CAAC0G,EAAE,KAAK,KAAK,GAAI3B,MAAM,GAAG4B,SAAS,GAAG,SAAS,GAAI,QAAQ;EACpF,MAAMC,cAAc,GAAG5G,QAAQ,CAAC0G,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,EAAE;EAErD,MAAMG,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAI,CAACzD,KAAK,IAAI,CAACiB,OAAO,EAAE,OAAO,IAAI;IACnC,oBACEzD,KAAA,CAACT,IAAI;MAAC2G,KAAK,EAAEzB,MAAM,CAACvC,MAAO;MAAAyB,QAAA,GACxB,CAAC,CAACnB,KAAK,iBACN1C,IAAA,CAACH,KAAK;QAACuG,KAAK,EAAEzB,MAAM,CAACjC,KAAM;QAAC2D,aAAa,EAAE,CAAE;QAAAxC,QAAA,EAC1CnB;MAAK,CACD,CACR,EACA,CAACA,KAAK,iBAAI1C,IAAA,CAACP,IAAI;QAAC2G,KAAK,EAAEzB,MAAM,CAACnE;MAAM,CAAE,CAAC,EACvC,CAAC,CAACmD,OAAO,iBACR3D,IAAA,CAACF,UAAU;QAACwG,QAAQ,EAAC,OAAO;QAACC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAE5F,MAAM,CAAC6F,IAAK;QAACC,OAAO,EAAE/C,OAAQ;QAACgD,kBAAkB,EAAE/C,uBAAwB;QAACwC,KAAK,EAAEzB,MAAM,CAAC7B;MAAY,CAAE,CACvJ;IAAA,CACG,CAAC;EAEX,CAAC;EAED,MAAM8D,iBAAiB,GAAGA,CAAA,kBACxB5G,IAAA,CAACP,IAAI;IAAC2G,KAAK,EAAE,CAACzB,MAAM,CAAC1B,cAAc,EAAEoB,MAAM,IAAIM,MAAM,CAACnE,KAAK,CAAE;IAAAqD,QAAA,EAC1DI,UAAU,gBACTjE,IAAA,CAACR,UAAU;MACT4G,KAAK,EAAE,CAACzB,MAAM,CAACxB,aAAa,EAAEkB,MAAM,IAAIM,MAAM,CAACnE,KAAK,CAAE;MACtDqG,qBAAqB,EAAE,CAAC,CAACxC,MAAM,GAAGM,MAAM,CAACvB,aAAa,GAAGuB,MAAM,CAACrB,iBAAiB,EAAES,YAAY,CAAE;MACjG+C,yBAAyB,EAAC,SAAS;MACnCC,4BAA4B,EAAE,KAAM;MACpCC,OAAO,EAAE1H,QAAQ,CAAC0G,EAAE,KAAK,KAAM;MAC/BiB,iCAAiC;MAAApD,QAAA,EAEhCA;IAAQ,CACC,CAAC,gBAEb7D,IAAA,CAACP,IAAI;MAAC2G,KAAK,EAAE,CAAC,CAAC/B,MAAM,GAAGM,MAAM,CAACvB,aAAa,GAAGuB,MAAM,CAACrB,iBAAiB,EAAEe,MAAM,IAAIM,MAAM,CAACnE,KAAK,EAAEuD,YAAY,CAAE;MAAAF,QAAA,EAC5GA;IAAQ,CACL;EACP,CACG,CACP;EAED,MAAMqD,YAAY,GAAGA,CAAA,KAAO3D,MAAM,gBAAGvD,IAAA,CAACP,IAAI;IAAC2G,KAAK,EAAEzB,MAAM,CAACpB,MAAO;IAAAM,QAAA,EAAEN;EAAM,CAAO,CAAC,GAAG,IAAK;EAExF,IAAI,CAACqB,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACE5E,IAAA,CAACX,OAAO;IACNqE,OAAO;IACPS,cAAc,EAAEA,cAAc,IAAIR,OAAQ;IAC1CwD,aAAa,EAAE1C,iBAAiB,GAAG,MAAM,GAAG;IAC5C;IACA;IACA;IACA;IACA;IACA;IAAA;IACA2C,iBAAiB,EACf9H,QAAQ,CAAC0G,EAAE,KAAK,KAAK,GAAIzB,YAAY,GAAG,YAAY,GAAG,gBAAgB,GAAI0B,SAC5E;IACDoB,WAAW,EAAE/C,SAAS,IAAIE,aAAa,IAAIH,MAAO;IAClDH,oBAAoB,EAAEA,oBAAqB;IAC3CE,mBAAmB,EAAEA,mBAAoB;IAAAP,QAAA,eAEzC7D,IAAA,CAACb,oBAAoB;MAAC4G,QAAQ,EAAEA,QAAS;MAACuB,sBAAsB,EAAEpB,cAAe;MAACE,KAAK,EAAEzB,MAAM,CAACnE,KAAM;MAAAqD,QAAA,EACnGS,SAAS,IAAIE,aAAa,gBACzBtE,KAAA,CAACT,IAAI;QAAC2G,KAAK,EAAE,CAACzB,MAAM,CAAC7D,gBAAgB,EAAE0D,aAAa,IAAIG,MAAM,CAACtD,oBAAoB,CAAE;QAAAwC,QAAA,gBAKnF7D,IAAA,CAACf,QAAQ,CAACQ,IAAI;UAAC2G,KAAK,EAAE,CAAC;YAAE,GAAGmB;UAAuB,CAAC,EAAE5C,MAAM,CAACrD,QAAQ,EAAE;YAAEkG,OAAO,EAAE1C;UAAgB,CAAC,CAAE;UAAAjB,QAAA,eACnG7D,IAAA,CAACT,SAAS;YAAC6G,KAAK,EAAEmB,sBAAuB;YAACb,OAAO,EAAE/C,OAAQ;YAAC8D,MAAM,EAAC;UAAgB,CAAE;QAAC,CACzE,CAAC,eAEhBvH,KAAA,CAACjB,QAAQ,CAACQ,IAAI;UACZ2G,KAAK,EAAE,CACL9B,SAAS,GAAGK,MAAM,CAACnD,WAAW,GAAGmD,MAAM,CAAC1C,eAAe,EACvDuC,aAAa,IAAI;YAAEkD,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAClD,MAAM,CAACmD,MAAM,EAAEvI,QAAQ,CAAC0G,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC;UAAE,CAAC,EAC3FlC,cAAc,EACd0B,iBAAiB,CACjB;UAAA3B,QAAA,GAEDsC,YAAY,CAAC,CAAC,EACdS,iBAAiB,CAAC,CAAC,EACnBM,YAAY,CAAC,CAAC;QAAA,CACF,CAAC;MAAA,CACZ,CAAC,gBAEPlH,IAAA,CAACf,QAAQ,CAACQ,IAAI;QAAC2G,KAAK,EAAE,CAACzB,MAAM,CAACjE,WAAW,EAAEoD,cAAc,EAAEO,MAAM,IAAImB,iBAAiB,CAAE;QAAA3B,QAAA,eACtF3D,KAAA,CAACT,IAAI;UAAC2G,KAAK,EAAE,CAACzB,MAAM,CAACnE,KAAK,EAAE;YAAEsH,UAAU,EAAEpD,MAAM,CAACqD,GAAG;YAAEL,aAAa,EAAEhD,MAAM,CAACmD;UAAO,CAAC,CAAE;UAAAhE,QAAA,GACnFsC,YAAY,CAAC,CAAC,EACdS,iBAAiB,CAAC,CAAC,EACnBM,YAAY,CAAC,CAAC;QAAA,CACX;MAAC,CACM;IAChB,CACmB;EAAC,CAChB,CAAC;AAEd,CACF,CAAC;AACD9H,KAAK,CAAC4I,WAAW,GAAG,OAAO;AAE3B,MAAMT,sBAAiC,GAAG;EAAEU,QAAQ,EAAE,UAAU;EAAEF,GAAG,EAAE,CAAC;EAAEG,IAAI,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEN,MAAM,EAAE;AAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useEffect","useState","Dimensions","KeyboardAvoidingView","Modal","RNModal","Platform","Pressable","ScrollView","View","createStyles","useColors","useInsets","Title","IconButton","Transition","jsx","_jsx","jsxs","_jsxs","height","SCREEN_HEIGHT","get","useStyles","theme","flex1","flex","fullWrapper","backgroundColor","colors","background","overlayContainer","justifyContent","alignItems","padding","tokens","spacing","xxl","backdrop","overlay","overlayCard","width","maxHeight","surface","borderRadius","radius","overflow","shadow","lg","header","flexDirection","xl","borderBottomWidth","borderBottomColor","border","title","fontSize","fontWeight","bold","closeButton","marginLeft","md","contentWrapper","flexShrink","scrollWrapper","scrollContent","flexGrow","scrollContentFull","footer","borderTopWidth","borderTopColor","visible","onClose","closeAccessibilityLabel","children","containerStyle","contentStyle","variant","scrollable","statusBarTranslucent","onRequestClose","hardwareAccelerated","isFull","isOverlay","isFullScreen","isAnimatedVariant","insets","styles","mounted","setMounted","cardPreset","cardDistance","behavior","OS","undefined","keyboardOffset","renderHeader","style","numberOfLines","iconName","size","color","text","onPress","accessibilityLabel","renderMainContent","contentContainerStyle","keyboardShouldPersistTaps","showsVerticalScrollIndicator","bounces","automaticallyAdjustKeyboardInsets","renderFooter","animationType","presentationStyle","transparent","keyboardVerticalOffset","preset","duration","keepMounted","StyleSheetAbsoluteFill","testID","distance","onExited","paddingTop","top","paddingBottom","bottom","displayName","position","left","right"],"sourceRoot":"../../../src","sources":["organisms/Modal.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useEffect, useRef, useState } from 'react';
4
+ import { Animated, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors, useInsets, useTheme } from '../theme/UIProvider';
7
+ import { Icon } from '../icons/Icon';
8
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const useStyles = createStyles(theme => ({
10
+ bar: {
11
+ flexDirection: 'row',
12
+ backgroundColor: theme.colors.surface,
13
+ borderColor: theme.colors.border,
14
+ paddingHorizontal: theme.tokens.spacing.xs,
15
+ paddingVertical: theme.tokens.spacing.sm
16
+ },
17
+ barBottom: {
18
+ borderTopWidth: StyleSheet.hairlineWidth
19
+ },
20
+ barTop: {
21
+ borderBottomWidth: StyleSheet.hairlineWidth
22
+ },
23
+ indicator: {
24
+ position: 'absolute',
25
+ top: theme.tokens.spacing.xs,
26
+ bottom: theme.tokens.spacing.xs,
27
+ left: theme.tokens.spacing.sm,
28
+ borderRadius: theme.tokens.radius.lg,
29
+ backgroundColor: theme.colors.primarySoft
30
+ },
31
+ item: {
32
+ flex: 1,
33
+ paddingVertical: theme.tokens.spacing.xs
34
+ },
35
+ itemContent: {
36
+ alignItems: 'center',
37
+ justifyContent: 'center',
38
+ gap: 2
39
+ },
40
+ label: {
41
+ fontSize: theme.tokens.fontSize.xs,
42
+ fontWeight: theme.tokens.fontWeight.medium
43
+ },
44
+ badge: {
45
+ position: 'absolute',
46
+ top: -4,
47
+ left: '50%',
48
+ marginLeft: 4,
49
+ minWidth: 16,
50
+ height: 16,
51
+ paddingHorizontal: 4,
52
+ borderRadius: theme.tokens.radius.full,
53
+ backgroundColor: theme.colors.error,
54
+ alignItems: 'center',
55
+ justifyContent: 'center'
56
+ },
57
+ badgeDot: {
58
+ minWidth: 10,
59
+ height: 10,
60
+ top: -2,
61
+ paddingHorizontal: 0
62
+ },
63
+ badgeText: {
64
+ fontSize: 10,
65
+ fontWeight: theme.tokens.fontWeight.bold,
66
+ color: theme.colors.onError
67
+ }
68
+ }));
69
+ const ICON_SIZE = 22;
70
+
71
+ /**
72
+ * NavigationBar
73
+ * Barra de navegación por pestañas con la misma apariencia y las mismas
74
+ * transiciones en iOS y Android: el indicador se desliza hasta la pestaña
75
+ * activa y su contenido crece y toma el color de acento con un cross-fade.
76
+ * No navega por su cuenta — reporta la pestaña tocada y el consumidor decide.
77
+ */
78
+ export const NavigationBar = /*#__PURE__*/memo(({
79
+ items,
80
+ activeKey,
81
+ onChange,
82
+ position = 'bottom',
83
+ showLabels = true,
84
+ safeArea = true,
85
+ style,
86
+ testID
87
+ }) => {
88
+ const theme = useTheme();
89
+ const colors = useColors();
90
+ const styles = useStyles();
91
+ const insets = useInsets();
92
+ const allowFontScaling = useAllowFontScaling();
93
+ const [barWidth, setBarWidth] = useState(0);
94
+ const slide = useRef(new Animated.Value(0)).current;
95
+ const placed = useRef(false);
96
+ const activeIndex = Math.max(0, items.findIndex(item => item.key === activeKey));
97
+ const itemWidth = items.length > 0 ? barWidth / items.length : 0;
98
+ useEffect(() => {
99
+ if (itemWidth <= 0) return;
100
+ const to = activeIndex * itemWidth;
101
+ // En el primer layout el indicador aparece en su lugar; animarlo desde 0
102
+ // sería un deslizamiento que el usuario no pidió.
103
+ if (!placed.current) {
104
+ placed.current = true;
105
+ slide.setValue(to);
106
+ return;
107
+ }
108
+ Animated.spring(slide, {
109
+ toValue: to,
110
+ useNativeDriver: true,
111
+ friction: 9,
112
+ tension: 90
113
+ }).start();
114
+ }, [activeIndex, itemWidth, slide]);
115
+ const onLayout = e => {
116
+ const next = e.nativeEvent.layout.width - theme.tokens.spacing.xs * 2;
117
+ if (next !== barWidth) setBarWidth(next);
118
+ };
119
+ const renderContent = (item, color) => /*#__PURE__*/_jsxs(_Fragment, {
120
+ children: [!!item.iconName && /*#__PURE__*/_jsx(Icon, {
121
+ name: item.iconName,
122
+ size: ICON_SIZE,
123
+ color: color
124
+ }), showLabels && /*#__PURE__*/_jsx(Text, {
125
+ allowFontScaling: allowFontScaling,
126
+ numberOfLines: 1,
127
+ style: [styles.label, {
128
+ color
129
+ }],
130
+ children: item.label
131
+ })]
132
+ });
133
+ return /*#__PURE__*/_jsxs(View, {
134
+ testID: testID,
135
+ onLayout: onLayout,
136
+ accessibilityRole: "tablist",
137
+ style: [styles.bar, position === 'bottom' ? styles.barBottom : styles.barTop, safeArea && position === 'bottom' && {
138
+ paddingBottom: theme.tokens.spacing.sm + insets.bottom
139
+ }, safeArea && position === 'top' && {
140
+ paddingTop: theme.tokens.spacing.sm + insets.top
141
+ }, style],
142
+ children: [itemWidth > 0 && /*#__PURE__*/_jsx(Animated.View, {
143
+ pointerEvents: "none",
144
+ style: [styles.indicator, {
145
+ width: itemWidth - theme.tokens.spacing.sm * 2,
146
+ transform: [{
147
+ translateX: slide
148
+ }]
149
+ }]
150
+ }), items.map((item, index) => {
151
+ const active = index === activeIndex;
152
+ const range = [(index - 1) * itemWidth, index * itemWidth, (index + 1) * itemWidth];
153
+ const scale = itemWidth > 0 ? slide.interpolate({
154
+ inputRange: range,
155
+ outputRange: [1, 1.08, 1],
156
+ extrapolate: 'clamp'
157
+ }) : 1;
158
+ const activeOpacity = itemWidth > 0 ? slide.interpolate({
159
+ inputRange: range,
160
+ outputRange: [0, 1, 0],
161
+ extrapolate: 'clamp'
162
+ }) : 0;
163
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
164
+ style: styles.item,
165
+ activeOpacity: 0.7,
166
+ onPress: () => onChange(item.key),
167
+ accessibilityRole: "tab",
168
+ accessibilityLabel: item.label,
169
+ accessibilityState: {
170
+ selected: active
171
+ },
172
+ children: /*#__PURE__*/_jsxs(Animated.View, {
173
+ style: [styles.itemContent, {
174
+ transform: [{
175
+ scale
176
+ }]
177
+ }],
178
+ children: [renderContent(item, colors.textLight), /*#__PURE__*/_jsx(Animated.View, {
179
+ pointerEvents: "none",
180
+ accessibilityElementsHidden: true,
181
+ importantForAccessibility: "no-hide-descendants",
182
+ style: [StyleSheet.absoluteFill, styles.itemContent, {
183
+ opacity: activeOpacity
184
+ }],
185
+ children: renderContent(item, colors.primaryText)
186
+ }), item.badge !== undefined && /*#__PURE__*/_jsx(View, {
187
+ style: [styles.badge, item.badge === true && styles.badgeDot],
188
+ children: item.badge !== true && /*#__PURE__*/_jsx(Text, {
189
+ allowFontScaling: false,
190
+ style: styles.badgeText,
191
+ children: item.badge
192
+ })
193
+ })]
194
+ })
195
+ }, item.key);
196
+ })]
197
+ });
198
+ });
199
+ NavigationBar.displayName = 'NavigationBar';
200
+ //# sourceMappingURL=NavigationBar.js.map