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
@@ -8,6 +8,9 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _createStyles = require("../theme/createStyles");
10
10
  var _UIProvider = require("../theme/UIProvider");
11
+ var _Text = require("../atoms/Text");
12
+ var _IconButton = require("../atoms/IconButton");
13
+ var _Transition = require("../atoms/Transition");
11
14
  var _jsxRuntime = require("react/jsx-runtime");
12
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
16
  const {
@@ -26,7 +29,6 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
26
29
  backgroundColor: theme.colors.surface,
27
30
  borderTopLeftRadius: theme.tokens.radius.xxl,
28
31
  borderTopRightRadius: theme.tokens.radius.xxl,
29
- paddingHorizontal: theme.tokens.spacing.xl,
30
32
  ...theme.tokens.shadow.lg
31
33
  },
32
34
  handleArea: {
@@ -38,6 +40,36 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
38
40
  height: 5,
39
41
  borderRadius: 3,
40
42
  backgroundColor: theme.colors.border
43
+ },
44
+ header: {
45
+ flexDirection: 'row',
46
+ alignItems: 'center',
47
+ gap: theme.tokens.spacing.md,
48
+ paddingHorizontal: theme.tokens.spacing.xl,
49
+ paddingBottom: theme.tokens.spacing.md
50
+ },
51
+ headerSpaced: {
52
+ paddingTop: theme.tokens.spacing.xl
53
+ },
54
+ title: {
55
+ flex: 1,
56
+ fontSize: theme.tokens.fontSize.xl,
57
+ fontWeight: theme.tokens.fontWeight.bold
58
+ },
59
+ content: {
60
+ paddingHorizontal: theme.tokens.spacing.xl
61
+ },
62
+ scroll: {
63
+ flexShrink: 1
64
+ },
65
+ footer: {
66
+ paddingHorizontal: theme.tokens.spacing.xl,
67
+ paddingTop: theme.tokens.spacing.md,
68
+ borderTopWidth: 1,
69
+ borderTopColor: theme.colors.border
70
+ },
71
+ footerInline: {
72
+ paddingTop: theme.tokens.spacing.xl
41
73
  }
42
74
  }));
43
75
  const absoluteFill = {
@@ -50,37 +82,43 @@ const absoluteFill = {
50
82
 
51
83
  /**
52
84
  * BottomSheet
53
- * Modal que aparece desde abajo: animación con Animated (no la del Modal
54
- * nativo) y arrastre para cerrar con PanResponder — no un gesture-handler
55
- * externo, para mantener la librería en cero dependencias.
85
+ * Hoja que entra desde abajo, con arrastre para cerrar (PanResponder, no un
86
+ * gesture-handler externo: la librería es cero dependencias). Header, footer y
87
+ * scroll son opcionales, así que cubre tanto la hoja desnuda como el formulario
88
+ * completo.
56
89
  */
57
90
  const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.memo)(({
58
91
  visible,
59
92
  onClose,
60
93
  children,
61
- closeAccessibilityLabel = 'Close'
94
+ title,
95
+ footer,
96
+ footerPlacement = 'fixed',
97
+ scrollable = true,
98
+ draggable = true,
99
+ maxHeight = 0.9,
100
+ closeAccessibilityLabel = 'Close',
101
+ containerStyle,
102
+ contentStyle,
103
+ testID
62
104
  }) => {
63
105
  const styles = useStyles();
106
+ const colors = (0, _UIProvider.useColors)();
64
107
  const insets = (0, _UIProvider.useInsets)();
65
108
  const [mounted, setMounted] = (0, _react.useState)(visible);
66
- const translateY = (0, _react.useRef)(new _reactNative.Animated.Value(SCREEN_HEIGHT)).current;
67
- const backdropOpacity = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
109
+ const [keyboardOpen, setKeyboardOpen] = (0, _react.useState)(false);
110
+ const progress = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
68
111
  (0, _react.useEffect)(() => {
69
112
  if (visible) {
70
113
  setMounted(true);
71
- _reactNative.Animated.timing(translateY, {
72
- toValue: 0,
73
- duration: 250,
74
- useNativeDriver: true
75
- }).start();
76
- _reactNative.Animated.timing(backdropOpacity, {
114
+ _reactNative.Animated.timing(progress, {
77
115
  toValue: 1,
78
116
  duration: 250,
79
117
  useNativeDriver: true
80
118
  }).start();
81
119
  } else {
82
- _reactNative.Animated.timing(translateY, {
83
- toValue: SCREEN_HEIGHT,
120
+ _reactNative.Animated.timing(progress, {
121
+ toValue: 0,
84
122
  duration: 200,
85
123
  useNativeDriver: true
86
124
  }).start(({
@@ -88,24 +126,25 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.memo)(({
88
126
  }) => {
89
127
  if (finished) setMounted(false);
90
128
  });
91
- _reactNative.Animated.timing(backdropOpacity, {
92
- toValue: 0,
93
- duration: 200,
94
- useNativeDriver: true
95
- }).start();
96
129
  }
97
- }, [visible]);
130
+ }, [visible, progress]);
131
+ (0, _react.useEffect)(() => {
132
+ if (footerPlacement !== 'hide-with-keyboard') return;
133
+ const [show, hide] = _reactNative.Platform.OS === 'ios' ? ['keyboardWillShow', 'keyboardWillHide'] : ['keyboardDidShow', 'keyboardDidHide'];
134
+ const subs = [_reactNative.Keyboard.addListener(show, () => setKeyboardOpen(true)), _reactNative.Keyboard.addListener(hide, () => setKeyboardOpen(false))];
135
+ return () => subs.forEach(sub => sub.remove());
136
+ }, [footerPlacement]);
98
137
  const panResponder = (0, _react.useRef)(_reactNative.PanResponder.create({
99
138
  onMoveShouldSetPanResponder: (_, gesture) => gesture.dy > 5 && Math.abs(gesture.dy) > Math.abs(gesture.dx),
100
139
  onPanResponderMove: (_, gesture) => {
101
- if (gesture.dy > 0) translateY.setValue(gesture.dy);
140
+ if (gesture.dy > 0) progress.setValue(1 - Math.min(gesture.dy, SCREEN_HEIGHT) / SCREEN_HEIGHT);
102
141
  },
103
142
  onPanResponderRelease: (_, gesture) => {
104
143
  if (gesture.dy > DISMISS_THRESHOLD) {
105
144
  onClose();
106
145
  } else {
107
- _reactNative.Animated.timing(translateY, {
108
- toValue: 0,
146
+ _reactNative.Animated.timing(progress, {
147
+ toValue: 1,
109
148
  duration: 150,
110
149
  useNativeDriver: true
111
150
  }).start();
@@ -113,39 +152,79 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.memo)(({
113
152
  }
114
153
  })).current;
115
154
  if (!mounted) return null;
155
+
156
+ // Porcentaje y no píxeles: se mide contra el contenedor, que con el teclado
157
+ // abierto es más bajo, así que la hoja entra siempre entera.
158
+ const resolvedMaxHeight = maxHeight <= 1 ? `${maxHeight * 100}%` : maxHeight;
159
+ const hasHeader = !!title;
160
+ const scrolledFooter = !!footer && footerPlacement === 'scroll' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
161
+ style: styles.footerInline,
162
+ children: footer
163
+ });
164
+ const pinnedFooter = !!footer && footerPlacement !== 'scroll' && !(footerPlacement === 'hide-with-keyboard' && keyboardOpen) ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
165
+ style: styles.footer,
166
+ children: footer
167
+ }) : null;
168
+ const body = scrollable ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
169
+ style: styles.scroll,
170
+ contentContainerStyle: [styles.content, contentStyle],
171
+ keyboardShouldPersistTaps: "handled",
172
+ showsVerticalScrollIndicator: false,
173
+ children: [children, scrolledFooter]
174
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
175
+ style: [styles.content, contentStyle],
176
+ children: [children, scrolledFooter]
177
+ });
116
178
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
117
179
  visible: true,
118
180
  transparent: true,
119
181
  animationType: "none",
120
182
  statusBarTranslucent: true,
121
183
  onRequestClose: onClose,
122
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
184
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.KeyboardAvoidingView, {
123
185
  style: styles.container,
124
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
125
- style: [absoluteFill, styles.backdrop, {
126
- opacity: backdropOpacity
127
- }],
186
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : 'height',
187
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Transition.Transition, {
188
+ value: progress,
189
+ preset: "fade",
190
+ style: [absoluteFill, styles.backdrop],
128
191
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
129
192
  style: absoluteFill,
130
193
  onPress: onClose,
131
- accessibilityRole: "button",
132
- accessibilityLabel: closeAccessibilityLabel
194
+ testID: "bottom-sheet-backdrop",
195
+ accessibilityRole: hasHeader ? undefined : 'button',
196
+ accessibilityLabel: hasHeader ? undefined : closeAccessibilityLabel
133
197
  })
134
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
198
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Transition.Transition, {
199
+ value: progress,
200
+ preset: "slide-up",
201
+ distance: SCREEN_HEIGHT,
202
+ testID: testID,
135
203
  style: [styles.sheet, {
204
+ maxHeight: resolvedMaxHeight,
136
205
  paddingBottom: Math.max(insets.bottom, 20)
137
- }, {
138
- transform: [{
139
- translateY
140
- }]
141
- }],
142
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
206
+ }, containerStyle],
207
+ children: [draggable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
143
208
  style: styles.handleArea,
209
+ testID: "bottom-sheet-handle",
144
210
  ...panResponder.panHandlers,
145
211
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
146
212
  style: styles.handle
147
213
  })
148
- }), children]
214
+ }), hasHeader && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
215
+ style: [styles.header, !draggable && styles.headerSpaced],
216
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Title, {
217
+ style: styles.title,
218
+ numberOfLines: 1,
219
+ children: title
220
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.IconButton, {
221
+ iconName: "close",
222
+ size: 24,
223
+ color: colors.text,
224
+ onPress: onClose,
225
+ accessibilityLabel: closeAccessibilityLabel
226
+ })]
227
+ }), body, pinnedFooter]
149
228
  })]
150
229
  })
151
230
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","height","SCREEN_HEIGHT","Dimensions","DISMISS_THRESHOLD","useStyles","createStyles","theme","container","flex","justifyContent","backdrop","backgroundColor","colors","overlay","sheet","surface","borderTopLeftRadius","tokens","radius","xxl","borderTopRightRadius","paddingHorizontal","spacing","xl","shadow","lg","handleArea","paddingVertical","md","alignItems","handle","width","borderRadius","border","absoluteFill","position","top","left","right","bottom","BottomSheet","exports","memo","visible","onClose","children","closeAccessibilityLabel","styles","insets","useInsets","mounted","setMounted","useState","translateY","useRef","Animated","Value","current","backdropOpacity","useEffect","timing","toValue","duration","useNativeDriver","start","finished","panResponder","PanResponder","create","onMoveShouldSetPanResponder","_","gesture","dy","Math","abs","dx","onPanResponderMove","setValue","onPanResponderRelease","jsx","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","jsxs","View","style","opacity","Pressable","onPress","accessibilityRole","accessibilityLabel","paddingBottom","max","transform","panHandlers","displayName"],"sourceRoot":"../../../src","sources":["organisms/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Text","_IconButton","_Transition","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","height","SCREEN_HEIGHT","Dimensions","DISMISS_THRESHOLD","useStyles","createStyles","theme","container","flex","justifyContent","backdrop","backgroundColor","colors","overlay","sheet","surface","borderTopLeftRadius","tokens","radius","xxl","borderTopRightRadius","shadow","lg","handleArea","paddingVertical","spacing","md","alignItems","handle","width","borderRadius","border","header","flexDirection","gap","paddingHorizontal","xl","paddingBottom","headerSpaced","paddingTop","title","fontSize","fontWeight","bold","content","scroll","flexShrink","footer","borderTopWidth","borderTopColor","footerInline","absoluteFill","position","top","left","right","bottom","BottomSheet","exports","memo","visible","onClose","children","footerPlacement","scrollable","draggable","maxHeight","closeAccessibilityLabel","containerStyle","contentStyle","testID","styles","useColors","insets","useInsets","mounted","setMounted","useState","keyboardOpen","setKeyboardOpen","progress","useRef","Animated","Value","current","useEffect","timing","toValue","duration","useNativeDriver","start","finished","show","hide","Platform","OS","subs","Keyboard","addListener","forEach","sub","remove","panResponder","PanResponder","create","onMoveShouldSetPanResponder","_","gesture","dy","Math","abs","dx","onPanResponderMove","setValue","min","onPanResponderRelease","resolvedMaxHeight","hasHeader","scrolledFooter","jsx","View","style","pinnedFooter","body","jsxs","ScrollView","contentContainerStyle","keyboardShouldPersistTaps","showsVerticalScrollIndicator","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","KeyboardAvoidingView","behavior","Transition","value","preset","Pressable","onPress","accessibilityRole","undefined","accessibilityLabel","distance","max","panHandlers","Title","numberOfLines","IconButton","iconName","size","color","text","displayName"],"sourceRoot":"../../../src","sources":["organisms/BottomSheet.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAaA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAAiD,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEjD,MAAM;EAAEkB,MAAM,EAAEC;AAAc,CAAC,GAAGC,uBAAU,CAACT,GAAG,CAAC,QAAQ,CAAC;AAC1D,MAAMU,iBAAiB,GAAG,GAAG;AA8B7B,MAAMC,SAAS,GAAG,IAAAC,0BAAY,EAAEC,KAAK,KAAM;EACzCC,SAAS,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,cAAc,EAAE;EAAW,CAAC;EAClDC,QAAQ,EAAE;IAAEC,eAAe,EAAEL,KAAK,CAACM,MAAM,CAACC;EAAQ,CAAC;EACnDC,KAAK,EAAE;IACLH,eAAe,EAAEL,KAAK,CAACM,MAAM,CAACG,OAAO;IACrCC,mBAAmB,EAAEV,KAAK,CAACW,MAAM,CAACC,MAAM,CAACC,GAAG;IAC5CC,oBAAoB,EAAEd,KAAK,CAACW,MAAM,CAACC,MAAM,CAACC,GAAG;IAC7C,GAAGb,KAAK,CAACW,MAAM,CAACI,MAAM,CAACC;EACzB,CAAC;EACDC,UAAU,EAAE;IAAEC,eAAe,EAAElB,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACC,EAAE;IAAEC,UAAU,EAAE;EAAS,CAAC;EAC9EC,MAAM,EAAE;IAAEC,KAAK,EAAE,EAAE;IAAE7B,MAAM,EAAE,CAAC;IAAE8B,YAAY,EAAE,CAAC;IAAEnB,eAAe,EAAEL,KAAK,CAACM,MAAM,CAACmB;EAAO,CAAC;EACvFC,MAAM,EAAE;IACNC,aAAa,EAAE,KAAK;IACpBN,UAAU,EAAE,QAAQ;IACpBO,GAAG,EAAE5B,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACC,EAAE;IAC5BS,iBAAiB,EAAE7B,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACW,EAAE;IAC1CC,aAAa,EAAE/B,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACC;EACtC,CAAC;EACDY,YAAY,EAAE;IAAEC,UAAU,EAAEjC,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACW;EAAG,CAAC;EACrDI,KAAK,EAAE;IAAEhC,IAAI,EAAE,CAAC;IAAEiC,QAAQ,EAAEnC,KAAK,CAACW,MAAM,CAACwB,QAAQ,CAACL,EAAE;IAAEM,UAAU,EAAEpC,KAAK,CAACW,MAAM,CAACyB,UAAU,CAACC;EAAK,CAAC;EAChGC,OAAO,EAAE;IAAET,iBAAiB,EAAE7B,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACW;EAAG,CAAC;EACvDS,MAAM,EAAE;IAAEC,UAAU,EAAE;EAAE,CAAC;EACzBC,MAAM,EAAE;IACNZ,iBAAiB,EAAE7B,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACW,EAAE;IAC1CG,UAAU,EAAEjC,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACC,EAAE;IACnCsB,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE3C,KAAK,CAACM,MAAM,CAACmB;EAC/B,CAAC;EACDmB,YAAY,EAAE;IAAEX,UAAU,EAAEjC,KAAK,CAACW,MAAM,CAACQ,OAAO,CAACW;EAAG;AACtD,CAAC,CAAC,CAAC;AAEH,MAAMe,YAAuB,GAAG;EAAEC,QAAQ,EAAE,UAAU;EAAEC,GAAG,EAAE,CAAC;EAAEC,IAAI,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,MAAM,EAAE;AAAE,CAAC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,WAAI,EAC7B,CAAC;EACCC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRtB,KAAK;EACLO,MAAM;EACNgB,eAAe,GAAG,OAAO;EACzBC,UAAU,GAAG,IAAI;EACjBC,SAAS,GAAG,IAAI;EAChBC,SAAS,GAAG,GAAG;EACfC,uBAAuB,GAAG,OAAO;EACjCC,cAAc;EACdC,YAAY;EACZC;AACgB,CAAC,KAAK;EACtB,MAAMC,MAAM,GAAGnE,SAAS,CAAC,CAAC;EAC1B,MAAMQ,MAAM,GAAG,IAAA4D,qBAAS,EAAC,CAAC;EAC1B,MAAMC,MAAM,GAAG,IAAAC,qBAAS,EAAC,CAAC;EAC1B,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAACjB,OAAO,CAAC;EAC/C,MAAM,CAACkB,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACvD,MAAMG,QAAQ,GAAG,IAAAC,aAAM,EAAC,IAAIC,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEtD,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIzB,OAAO,EAAE;MACXgB,UAAU,CAAC,IAAI,CAAC;MAChBM,qBAAQ,CAACI,MAAM,CAACN,QAAQ,EAAE;QAAEO,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACzF,CAAC,MAAM;MACLR,qBAAQ,CAACI,MAAM,CAACN,QAAQ,EAAE;QAAEO,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;QAAEC;MAAS,CAAC,KAAK;QACtG,IAAIA,QAAQ,EAAEf,UAAU,CAAC,KAAK,CAAC;MACjC,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAAChB,OAAO,EAAEoB,QAAQ,CAAC,CAAC;EAEvB,IAAAK,gBAAS,EAAC,MAAM;IACd,IAAItB,eAAe,KAAK,oBAAoB,EAAE;IAC9C,MAAM,CAAC6B,IAAI,EAAEC,IAAI,CAAC,GAChBC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC3G,MAAMC,IAAI,GAAG,CACXC,qBAAQ,CAACC,WAAW,CAACN,IAAI,EAAuB,MAAMb,eAAe,CAAC,IAAI,CAAC,CAAC,EAC5EkB,qBAAQ,CAACC,WAAW,CAACL,IAAI,EAAuB,MAAMd,eAAe,CAAC,KAAK,CAAC,CAAC,CAC9E;IACD,OAAO,MAAMiB,IAAI,CAACG,OAAO,CAAEC,GAAG,IAAKA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC;EAClD,CAAC,EAAE,CAACtC,eAAe,CAAC,CAAC;EAErB,MAAMuC,YAAY,GAAG,IAAArB,aAAM,EACzBsB,yBAAY,CAACC,MAAM,CAAC;IAClBC,2BAA2B,EAAEA,CAACC,CAAC,EAAEC,OAAO,KAAKA,OAAO,CAACC,EAAE,GAAG,CAAC,IAAIC,IAAI,CAACC,GAAG,CAACH,OAAO,CAACC,EAAE,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACH,OAAO,CAACI,EAAE,CAAC;IAC1GC,kBAAkB,EAAEA,CAACN,CAAC,EAAEC,OAAO,KAAK;MAClC,IAAIA,OAAO,CAACC,EAAE,GAAG,CAAC,EAAE5B,QAAQ,CAACiC,QAAQ,CAAC,CAAC,GAAGJ,IAAI,CAACK,GAAG,CAACP,OAAO,CAACC,EAAE,EAAE3G,aAAa,CAAC,GAAGA,aAAa,CAAC;IAChG,CAAC;IACDkH,qBAAqB,EAAEA,CAACT,CAAC,EAAEC,OAAO,KAAK;MACrC,IAAIA,OAAO,CAACC,EAAE,GAAGzG,iBAAiB,EAAE;QAClC0D,OAAO,CAAC,CAAC;MACX,CAAC,MAAM;QACLqB,qBAAQ,CAACI,MAAM,CAACN,QAAQ,EAAE;UAAEO,OAAO,EAAE,CAAC;UAAEC,QAAQ,EAAE,GAAG;UAAEC,eAAe,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MACzF;IACF;EACF,CAAC,CACH,CAAC,CAACN,OAAO;EAET,IAAI,CAACT,OAAO,EAAE,OAAO,IAAI;;EAEzB;EACA;EACA,MAAMyC,iBAAwC,GAAGlD,SAAS,IAAI,CAAC,GAAG,GAAGA,SAAS,GAAG,GAAG,GAAG,GAAGA,SAAS;EACnG,MAAMmD,SAAS,GAAG,CAAC,CAAC7E,KAAK;EAEzB,MAAM8E,cAAc,GAAG,CAAC,CAACvE,MAAM,IAAIgB,eAAe,KAAK,QAAQ,iBAC7D,IAAAnF,WAAA,CAAA2I,GAAA,EAACjJ,YAAA,CAAAkJ,IAAI;IAACC,KAAK,EAAElD,MAAM,CAACrB,YAAa;IAAAY,QAAA,EAAEf;EAAM,CAAO,CACjD;EACD,MAAM2E,YAAY,GAChB,CAAC,CAAC3E,MAAM,IAAIgB,eAAe,KAAK,QAAQ,IAAI,EAAEA,eAAe,KAAK,oBAAoB,IAAIe,YAAY,CAAC,gBACrG,IAAAlG,WAAA,CAAA2I,GAAA,EAACjJ,YAAA,CAAAkJ,IAAI;IAACC,KAAK,EAAElD,MAAM,CAACxB,MAAO;IAAAe,QAAA,EAAEf;EAAM,CAAO,CAAC,GACzC,IAAI;EAEV,MAAM4E,IAAI,GAAG3D,UAAU,gBACrB,IAAApF,WAAA,CAAAgJ,IAAA,EAACtJ,YAAA,CAAAuJ,UAAU;IACTJ,KAAK,EAAElD,MAAM,CAAC1B,MAAO;IACrBiF,qBAAqB,EAAE,CAACvD,MAAM,CAAC3B,OAAO,EAAEyB,YAAY,CAAE;IACtD0D,yBAAyB,EAAC,SAAS;IACnCC,4BAA4B,EAAE,KAAM;IAAAlE,QAAA,GAEnCA,QAAQ,EACRwD,cAAc;EAAA,CACL,CAAC,gBAEb,IAAA1I,WAAA,CAAAgJ,IAAA,EAACtJ,YAAA,CAAAkJ,IAAI;IAACC,KAAK,EAAE,CAAClD,MAAM,CAAC3B,OAAO,EAAEyB,YAAY,CAAE;IAAAP,QAAA,GACzCA,QAAQ,EACRwD,cAAc;EAAA,CACX,CACP;EAED,oBACE,IAAA1I,WAAA,CAAA2I,GAAA,EAACjJ,YAAA,CAAA2J,KAAK;IAACrE,OAAO;IAACsE,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACC,cAAc,EAAExE,OAAQ;IAAAC,QAAA,eAI3F,IAAAlF,WAAA,CAAAgJ,IAAA,EAACtJ,YAAA,CAAAgK,oBAAoB;MACnBb,KAAK,EAAElD,MAAM,CAAChE,SAAU;MACxBgI,QAAQ,EAAEzC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,SAAS,GAAG,QAAS;MAAAjC,QAAA,gBAEvD,IAAAlF,WAAA,CAAA2I,GAAA,EAAC5I,WAAA,CAAA6J,UAAU;QAACC,KAAK,EAAEzD,QAAS;QAAC0D,MAAM,EAAC,MAAM;QAACjB,KAAK,EAAE,CAACtE,YAAY,EAAEoB,MAAM,CAAC7D,QAAQ,CAAE;QAAAoD,QAAA,eAGhF,IAAAlF,WAAA,CAAA2I,GAAA,EAACjJ,YAAA,CAAAqK,SAAS;UACRlB,KAAK,EAAEtE,YAAa;UACpByF,OAAO,EAAE/E,OAAQ;UACjBS,MAAM,EAAC,uBAAuB;UAC9BuE,iBAAiB,EAAExB,SAAS,GAAGyB,SAAS,GAAG,QAAS;UACpDC,kBAAkB,EAAE1B,SAAS,GAAGyB,SAAS,GAAG3E;QAAwB,CACrE;MAAC,CACQ,CAAC,eAEb,IAAAvF,WAAA,CAAAgJ,IAAA,EAACjJ,WAAA,CAAA6J,UAAU;QACTC,KAAK,EAAEzD,QAAS;QAChB0D,MAAM,EAAC,UAAU;QACjBM,QAAQ,EAAE/I,aAAc;QACxBqE,MAAM,EAAEA,MAAO;QACfmD,KAAK,EAAE,CACLlD,MAAM,CAACzD,KAAK,EACZ;UAAEoD,SAAS,EAAEkD,iBAAiB;UAAE/E,aAAa,EAAEwE,IAAI,CAACoC,GAAG,CAACxE,MAAM,CAACjB,MAAM,EAAE,EAAE;QAAE,CAAC,EAC5EY,cAAc,CACd;QAAAN,QAAA,GAEDG,SAAS,iBACR,IAAArF,WAAA,CAAA2I,GAAA,EAACjJ,YAAA,CAAAkJ,IAAI;UAACC,KAAK,EAAElD,MAAM,CAAChD,UAAW;UAAC+C,MAAM,EAAC,qBAAqB;UAAA,GAAKgC,YAAY,CAAC4C,WAAW;UAAApF,QAAA,eACvF,IAAAlF,WAAA,CAAA2I,GAAA,EAACjJ,YAAA,CAAAkJ,IAAI;YAACC,KAAK,EAAElD,MAAM,CAAC3C;UAAO,CAAE;QAAC,CAC1B,CACP,EAEAyF,SAAS,iBACR,IAAAzI,WAAA,CAAAgJ,IAAA,EAACtJ,YAAA,CAAAkJ,IAAI;UAACC,KAAK,EAAE,CAAClD,MAAM,CAACvC,MAAM,EAAE,CAACiC,SAAS,IAAIM,MAAM,CAACjC,YAAY,CAAE;UAAAwB,QAAA,gBAC9D,IAAAlF,WAAA,CAAA2I,GAAA,EAAC9I,KAAA,CAAA0K,KAAK;YAAC1B,KAAK,EAAElD,MAAM,CAAC/B,KAAM;YAAC4G,aAAa,EAAE,CAAE;YAAAtF,QAAA,EAC1CtB;UAAK,CACD,CAAC,eACR,IAAA5D,WAAA,CAAA2I,GAAA,EAAC7I,WAAA,CAAA2K,UAAU;YACTC,QAAQ,EAAC,OAAO;YAChBC,IAAI,EAAE,EAAG;YACTC,KAAK,EAAE5I,MAAM,CAAC6I,IAAK;YACnBb,OAAO,EAAE/E,OAAQ;YACjBkF,kBAAkB,EAAE5E;UAAwB,CAC7C,CAAC;QAAA,CACE,CACP,EAEAwD,IAAI,EAEJD,YAAY;MAAA,CACH,CAAC;IAAA,CACO;EAAC,CAClB,CAAC;AAEZ,CACF,CAAC;AACDjE,WAAW,CAACiG,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -9,6 +9,7 @@ var _reactNative = require("react-native");
9
9
  var _createStyles = require("../theme/createStyles");
10
10
  var _UIProvider = require("../theme/UIProvider");
11
11
  var _EmptyState = require("../atoms/EmptyState");
12
+ var _Skeleton = require("../atoms/Skeleton");
12
13
  var _Spinner = require("../atoms/Spinner");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -17,29 +18,22 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
17
18
  flex: 1,
18
19
  backgroundColor: theme.colors.background
19
20
  },
20
- loadingOverlay: {
21
- position: 'absolute',
22
- top: 0,
23
- left: 0,
24
- right: 0,
25
- bottom: 0,
26
- backgroundColor: theme.colors.scrim,
27
- zIndex: 10,
28
- justifyContent: 'center',
29
- alignItems: 'center'
30
- },
31
- loadingText: {
32
- marginTop: theme.tokens.spacing.md,
33
- color: theme.colors.textLight,
34
- fontWeight: theme.tokens.fontWeight.medium
35
- },
36
21
  listContent: {
37
- padding: theme.tokens.spacing.md,
38
- paddingBottom: _reactNative.Platform.OS === 'android' ? 100 : 80
22
+ padding: theme.tokens.spacing.md
39
23
  },
40
24
  footerLoader: {
41
25
  paddingVertical: theme.tokens.spacing.xl,
42
26
  alignItems: 'center'
27
+ },
28
+ skeletonRow: {
29
+ flexDirection: 'row',
30
+ alignItems: 'center',
31
+ gap: theme.tokens.spacing.md,
32
+ padding: theme.tokens.spacing.md
33
+ },
34
+ skeletonText: {
35
+ flex: 1,
36
+ gap: theme.tokens.spacing.sm
43
37
  }
44
38
  }));
45
39
 
@@ -54,10 +48,13 @@ function List({
54
48
  keyExtractor,
55
49
  renderItem,
56
50
  isLoading,
51
+ isRefreshing = false,
57
52
  isLoadingMore = false,
58
53
  isReady = true,
59
54
  loadingText,
60
55
  loadingMoreText,
56
+ skeletonCount = 6,
57
+ renderSkeletonItem,
61
58
  onEndReached,
62
59
  onEndReachedThreshold = 0.3,
63
60
  onRefresh,
@@ -76,21 +73,27 @@ function List({
76
73
  const labels = (0, _UIProvider.useLabels)();
77
74
  const resolvedLoadingText = loadingText ?? labels.loading;
78
75
  const resolvedLoadingMoreText = loadingMoreText ?? labels.loadingMore;
76
+ const isInitialLoading = isLoading && data.length === 0;
77
+
78
+ // El footer propio y el loader de paginación conviven: antes el primero
79
+ // tapaba al segundo y la lista dejaba de avisar que estaba trayendo más.
79
80
  const renderFooter = (0, _react.useCallback)(() => {
80
- if (ListFooterComponent) {
81
- return typeof ListFooterComponent === 'function' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ListFooterComponent, {}) : ListFooterComponent;
82
- }
83
- if (!isLoadingMore) return null;
84
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
85
- style: styles.footerLoader,
86
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.Spinner, {
87
- text: resolvedLoadingMoreText,
88
- fullscreen: false
89
- })
81
+ const custom = typeof ListFooterComponent === 'function' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ListFooterComponent, {}) : ListFooterComponent ?? null;
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
83
+ children: [custom, isLoadingMore && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
84
+ style: styles.footerLoader,
85
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.Spinner, {
86
+ text: resolvedLoadingMoreText,
87
+ fullscreen: false
88
+ })
89
+ })]
90
90
  });
91
91
  }, [isLoadingMore, resolvedLoadingMoreText, ListFooterComponent, styles.footerLoader]);
92
+
93
+ // Vacío sólo cuando ya se sabe que no hay nada: durante la carga inicial se
94
+ // muestran placeholders, no "sin resultados".
92
95
  const renderEmpty = (0, _react.useCallback)(() => {
93
- if (isLoading) return null;
96
+ if (isLoading || isRefreshing) return null;
94
97
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_EmptyState.EmptyState, {
95
98
  title: emptyTitle,
96
99
  description: emptyDescription,
@@ -99,7 +102,7 @@ function List({
99
102
  marginTop: 50
100
103
  }
101
104
  });
102
- }, [isLoading, emptyTitle, emptyDescription, emptyIconName]);
105
+ }, [isLoading, isRefreshing, emptyTitle, emptyDescription, emptyIconName]);
103
106
  if (!isReady) {
104
107
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
105
108
  style: styles.container,
@@ -108,19 +111,38 @@ function List({
108
111
  })
109
112
  });
110
113
  }
111
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
114
+ if (isInitialLoading) {
115
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
116
+ style: [styles.container, containerStyle],
117
+ testID: "list-skeleton",
118
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
119
+ style: [styles.listContent, contentContainerStyle],
120
+ children: Array.from({
121
+ length: skeletonCount
122
+ }, (_, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
123
+ children: renderSkeletonItem?.() ?? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
124
+ style: styles.skeletonRow,
125
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
126
+ variant: "circle",
127
+ width: 40
128
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
129
+ style: styles.skeletonText,
130
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
131
+ width: "60%",
132
+ height: 14
133
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
134
+ width: "35%",
135
+ height: 12
136
+ })]
137
+ })]
138
+ })
139
+ }, i))
140
+ })
141
+ });
142
+ }
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
112
144
  style: [styles.container, containerStyle],
113
- children: [isLoading && data.length === 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
114
- style: styles.loadingOverlay,
115
- pointerEvents: "none",
116
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
117
- size: "large",
118
- color: colors.primary
119
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
120
- style: styles.loadingText,
121
- children: resolvedLoadingText
122
- })]
123
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ListComponent, {
145
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ListComponent, {
124
146
  data: data,
125
147
  keyExtractor: keyExtractor,
126
148
  renderItem: renderItem,
@@ -131,13 +153,13 @@ function List({
131
153
  ListFooterComponent: renderFooter,
132
154
  ListEmptyComponent: renderEmpty,
133
155
  refreshControl: onRefresh ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.RefreshControl, {
134
- refreshing: isLoading,
156
+ refreshing: isRefreshing,
135
157
  onRefresh: onRefresh,
136
158
  colors: [colors.primary],
137
159
  tintColor: colors.primary
138
160
  }) : undefined,
139
161
  ...listProps
140
- })]
162
+ })
141
163
  });
142
164
  }
143
165
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_EmptyState","_Spinner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","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","Platform","OS","footerLoader","paddingVertical","xl","List","data","keyExtractor","renderItem","isLoading","isLoadingMore","isReady","loadingMoreText","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","FlatList","listProps","useColors","styles","labels","useLabels","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","renderFooter","useCallback","jsx","View","style","children","Spinner","text","fullscreen","renderEmpty","EmptyState","title","description","iconName","jsxs","length","pointerEvents","ActivityIndicator","size","primary","Text","ListEmptyComponent","refreshControl","RefreshControl","refreshing","tintColor","undefined"],"sourceRoot":"../../../src","sources":["organisms/List.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_EmptyState","_Skeleton","_Spinner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","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","FlatList","listProps","useColors","styles","labels","useLabels","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","isInitialLoading","length","renderFooter","useCallback","custom","jsx","jsxs","Fragment","children","View","style","Spinner","text","fullscreen","renderEmpty","EmptyState","title","description","iconName","marginTop","testID","Array","from","_","Skeleton","variant","width","height","ListEmptyComponent","refreshControl","RefreshControl","refreshing","primary","tintColor","undefined"],"sourceRoot":"../../../src","sources":["organisms/List.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAA2C,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA0C3C,MAAMkB,SAAS,GAAG,IAAAC,0BAAY,EAAEC,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;AACO,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,GAAGC,qBAAQ;EACxBC;AACY,CAAC,EAAE;EACf,MAAMxC,MAAM,GAAG,IAAAyC,qBAAS,EAAC,CAAC;EAC1B,MAAMC,MAAM,GAAGhD,SAAS,CAAC,CAAC;EAC1B,MAAMiD,MAAM,GAAG,IAAAC,qBAAS,EAAC,CAAC;EAC1B,MAAMC,mBAAmB,GAAGrB,WAAW,IAAImB,MAAM,CAACG,OAAO;EACzD,MAAMC,uBAAuB,GAAGtB,eAAe,IAAIkB,MAAM,CAACK,WAAW;EAErE,MAAMC,gBAAgB,GAAG7B,SAAS,IAAIH,IAAI,CAACiC,MAAM,KAAK,CAAC;;EAEvD;EACA;EACA,MAAMC,YAAY,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACrC,MAAMC,MAAM,GACV,OAAOlB,mBAAmB,KAAK,UAAU,gBACvC,IAAA7D,WAAA,CAAAgF,GAAA,EAACnB,mBAAmB,IAAE,CAAC,GAEtBA,mBAAmB,IAAuC,IAC5D;IAEH,oBACE,IAAA7D,WAAA,CAAAiF,IAAA,EAAAjF,WAAA,CAAAkF,QAAA;MAAAC,QAAA,GACGJ,MAAM,EACN/B,aAAa,iBACZ,IAAAhD,WAAA,CAAAgF,GAAA,EAACtF,YAAA,CAAA0F,IAAI;QAACC,KAAK,EAAEjB,MAAM,CAACnC,YAAa;QAAAkD,QAAA,eAC/B,IAAAnF,WAAA,CAAAgF,GAAA,EAACjF,QAAA,CAAAuF,OAAO;UAACC,IAAI,EAAEd,uBAAwB;UAACe,UAAU,EAAE;QAAM,CAAE;MAAC,CACzD,CACP;IAAA,CACD,CAAC;EAEP,CAAC,EAAE,CAACxC,aAAa,EAAEyB,uBAAuB,EAAEZ,mBAAmB,EAAEO,MAAM,CAACnC,YAAY,CAAC,CAAC;;EAEtF;EACA;EACA,MAAMwD,WAAW,GAAG,IAAAX,kBAAW,EAAC,MAAM;IACpC,IAAIhC,SAAS,IAAIC,YAAY,EAAE,OAAO,IAAI;IAC1C,oBAAO,IAAA/C,WAAA,CAAAgF,GAAA,EAACnF,WAAA,CAAA6F,UAAU;MAACC,KAAK,EAAElC,UAAW;MAACmC,WAAW,EAAElC,gBAAiB;MAACmC,QAAQ,EAAElC,aAAc;MAAC0B,KAAK,EAAE;QAAES,SAAS,EAAE;MAAG;IAAE,CAAE,CAAC;EAC5H,CAAC,EAAE,CAAChD,SAAS,EAAEC,YAAY,EAAEU,UAAU,EAAEC,gBAAgB,EAAEC,aAAa,CAAC,CAAC;EAE1E,IAAI,CAACV,OAAO,EAAE;IACZ,oBACE,IAAAjD,WAAA,CAAAgF,GAAA,EAACtF,YAAA,CAAA0F,IAAI;MAACC,KAAK,EAAEjB,MAAM,CAAC7C,SAAU;MAAA4D,QAAA,eAC5B,IAAAnF,WAAA,CAAAgF,GAAA,EAACjF,QAAA,CAAAuF,OAAO;QAACC,IAAI,EAAEhB;MAAoB,CAAE;IAAC,CAClC,CAAC;EAEX;EAEA,IAAII,gBAAgB,EAAE;IACpB,oBACE,IAAA3E,WAAA,CAAAgF,GAAA,EAACtF,YAAA,CAAA0F,IAAI;MAACC,KAAK,EAAE,CAACjB,MAAM,CAAC7C,SAAS,EAAEwC,cAAc,CAAE;MAACgC,MAAM,EAAC,eAAe;MAAAZ,QAAA,eACrE,IAAAnF,WAAA,CAAAgF,GAAA,EAACtF,YAAA,CAAA0F,IAAI;QAACC,KAAK,EAAE,CAACjB,MAAM,CAACxC,WAAW,EAAEkC,qBAAqB,CAAE;QAAAqB,QAAA,EACtDa,KAAK,CAACC,IAAI,CAAC;UAAErB,MAAM,EAAExB;QAAc,CAAC,EAAE,CAAC8C,CAAC,EAAE1F,CAAC,kBAC1C,IAAAR,WAAA,CAAAgF,GAAA,EAACzF,MAAA,CAAAoB,OAAK,CAACuE,QAAQ;UAAAC,QAAA,EACZ9B,kBAAkB,GAAG,CAAC,iBACrB,IAAArD,WAAA,CAAAiF,IAAA,EAACvF,YAAA,CAAA0F,IAAI;YAACC,KAAK,EAAEjB,MAAM,CAAC/B,WAAY;YAAA8C,QAAA,gBAC9B,IAAAnF,WAAA,CAAAgF,GAAA,EAAClF,SAAA,CAAAqG,QAAQ;cAACC,OAAO,EAAC,QAAQ;cAACC,KAAK,EAAE;YAAG,CAAE,CAAC,eACxC,IAAArG,WAAA,CAAAiF,IAAA,EAACvF,YAAA,CAAA0F,IAAI;cAACC,KAAK,EAAEjB,MAAM,CAAC5B,YAAa;cAAA2C,QAAA,gBAC/B,IAAAnF,WAAA,CAAAgF,GAAA,EAAClF,SAAA,CAAAqG,QAAQ;gBAACE,KAAK,EAAC,KAAK;gBAACC,MAAM,EAAE;cAAG,CAAE,CAAC,eACpC,IAAAtG,WAAA,CAAAgF,GAAA,EAAClF,SAAA,CAAAqG,QAAQ;gBAACE,KAAK,EAAC,KAAK;gBAACC,MAAM,EAAE;cAAG,CAAE,CAAC;YAAA,CAChC,CAAC;UAAA,CACH;QACP,GATkB9F,CAUL,CACjB;MAAC,CACE;IAAC,CACH,CAAC;EAEX;EAEA,oBACE,IAAAR,WAAA,CAAAgF,GAAA,EAACtF,YAAA,CAAA0F,IAAI;IAACC,KAAK,EAAE,CAACjB,MAAM,CAAC7C,SAAS,EAAEwC,cAAc,CAAE;IAAAoB,QAAA,eAC9C,IAAAnF,WAAA,CAAAgF,GAAA,EAAChB,aAAa;MACZrB,IAAI,EAAEA,IAAK;MACXC,YAAY,EAAEA,YAAa;MAC3BC,UAAU,EAAEA,UAAW;MACvBiB,qBAAqB,EAAE,CAACM,MAAM,CAACxC,WAAW,EAAEkC,qBAAqB,CAAE;MACnER,YAAY,EAAEA,YAAa;MAC3BC,qBAAqB,EAAEA,qBAAsB;MAC7CK,mBAAmB,EAAEA,mBAAoB;MACzCC,mBAAmB,EAAEgB,YAAa;MAClC0B,kBAAkB,EAAEd,WAAY;MAChCe,cAAc,EACZhD,SAAS,gBACP,IAAAxD,WAAA,CAAAgF,GAAA,EAACtF,YAAA,CAAA+G,cAAc;QACbC,UAAU,EAAE3D,YAAa;QACzBS,SAAS,EAAEA,SAAU;QACrB9B,MAAM,EAAE,CAACA,MAAM,CAACiF,OAAO,CAAE;QACzBC,SAAS,EAAElF,MAAM,CAACiF;MAAQ,CAC3B,CAAC,GACAE,SACL;MAAA,GACG3C;IAAS,CACd;EAAC,CACE,CAAC;AAEX","ignoreList":[]}