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,98 +1,174 @@
1
1
  "use strict";
2
2
 
3
- import React, { memo } from 'react';
3
+ import React, { memo, useState } from 'react';
4
4
  import { TextInput, TouchableOpacity, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
- import { useAllowFontScaling, useColors } from '../theme/UIProvider';
6
+ import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
7
7
  import { Icon } from '../icons/Icon';
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const SIZES = {
10
+ sm: {
11
+ height: 36,
12
+ icon: 18,
13
+ inputWidth: 48
14
+ },
15
+ md: {
16
+ height: 44,
17
+ icon: 20,
18
+ inputWidth: 56
19
+ },
20
+ lg: {
21
+ height: 52,
22
+ icon: 22,
23
+ inputWidth: 64
24
+ }
25
+ };
9
26
  const useStyles = createStyles(theme => ({
10
27
  control: {
11
28
  flexDirection: 'row',
12
29
  alignItems: 'center',
30
+ alignSelf: 'flex-start',
13
31
  borderWidth: 1,
14
32
  borderColor: theme.colors.border,
15
33
  borderRadius: theme.tokens.radius.md
16
34
  },
35
+ controlBlock: {
36
+ alignSelf: 'stretch'
37
+ },
17
38
  btn: {
18
39
  height: '100%',
19
40
  justifyContent: 'center',
20
- alignItems: 'center',
21
- backgroundColor: theme.colors.inputBackground
22
- },
23
- btnSm: {
24
- backgroundColor: 'transparent'
41
+ alignItems: 'center'
25
42
  },
26
43
  input: {
27
- flex: 1,
28
44
  textAlign: 'center',
29
- fontSize: theme.tokens.fontSize.lg,
45
+ height: '100%',
30
46
  color: theme.colors.text,
31
- height: '100%'
32
- },
33
- inputSm: {
34
- flex: 0,
35
- width: 50,
36
47
  borderLeftWidth: 1,
37
48
  borderRightWidth: 1,
38
49
  borderColor: theme.colors.border
50
+ },
51
+ // El fondo distingue el campo de un valor de sólo lectura: es la única
52
+ // señal de que ahí se puede tipear antes de tocarlo.
53
+ editable: {
54
+ backgroundColor: theme.colors.inputBackground
39
55
  }
40
56
  }));
41
57
 
42
- /** Stepper: botón "-" + input numérico editable + botón "+". */
58
+ /** Deja sólo lo que puede formar parte del número permitido por el rango. */
59
+ export function sanitizeNumeric(text, {
60
+ allowDecimals = false,
61
+ allowNegative = false
62
+ } = {}) {
63
+ const normalized = allowDecimals ? text.replace(',', '.') : text;
64
+ const negative = allowNegative && normalized.trimStart().startsWith('-');
65
+ const digits = normalized.replace(allowDecimals ? /[^0-9.]/g : /[^0-9]/g, '');
66
+ const [whole = '', ...decimals] = digits.split('.');
67
+ const body = decimals.length > 0 ? `${whole}.${decimals.join('')}` : whole;
68
+ return negative ? `-${body}` : body;
69
+ }
70
+
71
+ /**
72
+ * Stepper
73
+ * Botón "-" + input numérico editable + botón "+". `size` controla sólo la
74
+ * escala y `block` sólo el ancho, así que los dos ejes se combinan libremente.
75
+ *
76
+ * El componente no hace la aritmética de los botones —eso vive en
77
+ * `onIncrement`/`onDecrement`—, pero sí limpia lo que se tipea y avisa cuándo
78
+ * el valor llegó a un extremo del rango deshabilitando el botón que lo pasaría.
79
+ */
43
80
  export const Stepper = /*#__PURE__*/memo(({
44
81
  value,
45
82
  onChangeText,
46
83
  onIncrement,
47
84
  onDecrement,
48
85
  size = 'md',
86
+ block = false,
87
+ editable = true,
88
+ min,
89
+ max,
90
+ allowDecimals = false,
49
91
  style,
50
92
  incrementAccessibilityLabel = 'Increment',
51
- decrementAccessibilityLabel = 'Decrement'
93
+ decrementAccessibilityLabel = 'Decrement',
94
+ testID
52
95
  }) => {
96
+ const theme = useTheme();
53
97
  const colors = useColors();
54
98
  const styles = useStyles();
55
99
  const allowFontScaling = useAllowFontScaling();
56
- const isSmall = size === 'sm';
57
- const btnSize = isSmall ? 36 : 48;
58
- const iconSize = isSmall ? 18 : 20;
100
+ const [focused, setFocused] = useState(false);
101
+ const {
102
+ height,
103
+ icon,
104
+ inputWidth
105
+ } = SIZES[size];
106
+ const fontSize = size === 'sm' ? theme.tokens.fontSize.md : size === 'md' ? theme.tokens.fontSize.lg : theme.tokens.fontSize.xl;
107
+ const allowNegative = min !== undefined && min < 0;
108
+ const numeric = Number(value);
109
+ const isNumber = value.trim() !== '' && Number.isFinite(numeric);
110
+ const atMin = isNumber && min !== undefined && numeric <= min;
111
+ const atMax = isNumber && max !== undefined && numeric >= max;
112
+ const handleChangeText = text => {
113
+ onChangeText(sanitizeNumeric(text, {
114
+ allowDecimals,
115
+ allowNegative
116
+ }));
117
+ };
118
+
119
+ // El recorte al rango espera al blur: hacerlo mientras se tipea impide
120
+ // llegar a "12" cuando el mínimo es 5, porque el "1" ya se corregiría.
121
+ const handleBlur = () => {
122
+ setFocused(false);
123
+ if (!isNumber) return;
124
+ const clamped = Math.min(max ?? numeric, Math.max(min ?? numeric, numeric));
125
+ if (clamped !== numeric) onChangeText(String(clamped));
126
+ };
127
+ const stepButton = (direction, onPress, disabled, label) => /*#__PURE__*/_jsx(TouchableOpacity, {
128
+ onPress: onPress,
129
+ disabled: disabled,
130
+ style: [styles.btn, {
131
+ width: height
132
+ }],
133
+ accessibilityRole: "button",
134
+ accessibilityLabel: label,
135
+ accessibilityState: {
136
+ disabled
137
+ },
138
+ testID: testID && `${testID}-${direction}`,
139
+ children: /*#__PURE__*/_jsx(Icon, {
140
+ name: direction === 'increment' ? 'plus' : 'minus',
141
+ size: icon,
142
+ color: disabled ? colors.textLight : colors.primary
143
+ })
144
+ });
59
145
  return /*#__PURE__*/_jsxs(View, {
146
+ testID: testID,
60
147
  style: [styles.control, {
61
- height: isSmall ? 36 : 48
148
+ height
149
+ }, block && styles.controlBlock, focused && {
150
+ borderColor: colors.primary
62
151
  }, style],
63
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
64
- onPress: onDecrement,
65
- style: [styles.btn, {
66
- width: btnSize
67
- }, isSmall && styles.btnSm],
68
- accessibilityRole: "button",
69
- accessibilityLabel: decrementAccessibilityLabel,
70
- children: /*#__PURE__*/_jsx(Icon, {
71
- name: "minus",
72
- size: iconSize,
73
- color: colors.primary
74
- })
75
- }), /*#__PURE__*/_jsx(TextInput, {
152
+ children: [stepButton('decrement', onDecrement, atMin, decrementAccessibilityLabel), /*#__PURE__*/_jsx(TextInput, {
76
153
  allowFontScaling: allowFontScaling,
77
- style: [styles.input, isSmall && styles.inputSm],
154
+ style: [styles.input, {
155
+ fontSize
156
+ }, editable && styles.editable, focused && {
157
+ borderColor: colors.primary
158
+ }, block ? {
159
+ flex: 1
160
+ } : {
161
+ width: inputWidth
162
+ }],
78
163
  value: value,
79
- onChangeText: onChangeText,
80
- keyboardType: "numeric",
164
+ onChangeText: handleChangeText,
165
+ onFocus: () => setFocused(true),
166
+ onBlur: handleBlur,
167
+ editable: editable,
168
+ keyboardType: allowDecimals ? 'decimal-pad' : 'number-pad',
81
169
  selectTextOnFocus: true,
82
170
  accessibilityLabel: "Quantity"
83
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
84
- onPress: onIncrement,
85
- style: [styles.btn, {
86
- width: btnSize
87
- }, isSmall && styles.btnSm],
88
- accessibilityRole: "button",
89
- accessibilityLabel: incrementAccessibilityLabel,
90
- children: /*#__PURE__*/_jsx(Icon, {
91
- name: "plus",
92
- size: iconSize,
93
- color: colors.primary
94
- })
95
- })]
171
+ }), stepButton('increment', onIncrement, atMax, incrementAccessibilityLabel)]
96
172
  });
97
173
  });
98
174
  Stepper.displayName = 'Stepper';
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","TextInput","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","control","flexDirection","alignItems","borderWidth","borderColor","colors","border","borderRadius","tokens","radius","md","btn","height","justifyContent","backgroundColor","inputBackground","btnSm","input","flex","textAlign","fontSize","lg","color","text","inputSm","width","borderLeftWidth","borderRightWidth","Stepper","value","onChangeText","onIncrement","onDecrement","size","style","incrementAccessibilityLabel","decrementAccessibilityLabel","styles","allowFontScaling","isSmall","btnSize","iconSize","children","onPress","accessibilityRole","accessibilityLabel","name","primary","keyboardType","selectTextOnFocus","displayName"],"sourceRoot":"../../../src","sources":["molecules/Stepper.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useState","TextInput","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","useTheme","Icon","jsx","_jsx","jsxs","_jsxs","SIZES","sm","height","icon","inputWidth","md","lg","useStyles","theme","control","flexDirection","alignItems","alignSelf","borderWidth","borderColor","colors","border","borderRadius","tokens","radius","controlBlock","btn","justifyContent","input","textAlign","color","text","borderLeftWidth","borderRightWidth","editable","backgroundColor","inputBackground","sanitizeNumeric","allowDecimals","allowNegative","normalized","replace","negative","trimStart","startsWith","digits","whole","decimals","split","body","length","join","Stepper","value","onChangeText","onIncrement","onDecrement","size","block","min","max","style","incrementAccessibilityLabel","decrementAccessibilityLabel","testID","styles","allowFontScaling","focused","setFocused","fontSize","xl","undefined","numeric","Number","isNumber","trim","isFinite","atMin","atMax","handleChangeText","handleBlur","clamped","Math","String","stepButton","direction","onPress","disabled","label","width","accessibilityRole","accessibilityLabel","accessibilityState","children","name","textLight","primary","flex","onFocus","onBlur","keyboardType","selectTextOnFocus","displayName"],"sourceRoot":"../../../src","sources":["molecules/Stepper.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- export { Stepper } from './Stepper';
3
+ export { Stepper, sanitizeNumeric } from './Stepper';
4
4
  export { OptionCard } from './OptionCard';
5
5
  export { InfoRow } from './InfoRow';
6
6
  export { FormActions } from './FormActions';
7
7
  export { AvatarHeader } from './AvatarHeader';
8
- export { ThemeToggle } from './ThemeToggle';
8
+ export { SegmentedControl } from './SegmentedControl';
9
9
  export { Steps } from './Steps';
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Stepper","OptionCard","InfoRow","FormActions","AvatarHeader","ThemeToggle","Steps"],"sourceRoot":"../../../src","sources":["molecules/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,WAAW;AAEnC,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,OAAO,QAAQ,WAAW;AAEnC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,KAAK,QAAQ,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["Stepper","sanitizeNumeric","OptionCard","InfoRow","FormActions","AvatarHeader","SegmentedControl","Steps"],"sourceRoot":"../../../src","sources":["molecules/index.ts"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,eAAe,QAAQ,WAAW;AAEpD,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,OAAO,QAAQ,WAAW;AAEnC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,KAAK,QAAQ,SAAS","ignoreList":[]}
@@ -1,9 +1,28 @@
1
1
  "use strict";
2
2
 
3
- import React, { createContext, useCallback, useContext, useMemo, useRef, useState } from 'react';
3
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { Alert } from './Alert';
5
+ import { createImperativeBridge } from './imperativeBridge';
5
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
7
  const AlertContext = /*#__PURE__*/createContext(undefined);
8
+ const bridge = createImperativeBridge('AlertProvider');
9
+
10
+ /**
11
+ * Abre un alert desde fuera del árbol de React —un servicio, un interceptor—
12
+ * sin pasar por el hook. Sin <AlertProvider> montado resuelve de inmediato, así
13
+ * que un `await` nunca queda colgado.
14
+ */
15
+ export function showAlert(options) {
16
+ return bridge.get()?.alert(options) ?? Promise.resolve();
17
+ }
18
+
19
+ /** Igual que showAlert, pero resuelve true/false. Sin provider, false. */
20
+ export function showConfirm(options) {
21
+ return bridge.get()?.confirm(options) ?? Promise.resolve(false);
22
+ }
23
+ export function hideAlert() {
24
+ bridge.get()?.hide();
25
+ }
7
26
  const HIDDEN = {
8
27
  visible: false,
9
28
  title: '',
@@ -81,6 +100,10 @@ export function AlertProvider({
81
100
  confirm: confirmFn,
82
101
  hide
83
102
  }), [alertFn, confirmFn, hide]);
103
+ useEffect(() => {
104
+ bridge.set(value);
105
+ return () => bridge.set(null);
106
+ }, [value]);
84
107
  return /*#__PURE__*/_jsxs(AlertContext.Provider, {
85
108
  value: value,
86
109
  children: [children, /*#__PURE__*/_jsx(Alert, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useMemo","useRef","useState","Alert","jsx","_jsx","jsxs","_jsxs","AlertContext","undefined","HIDDEN","visible","title","type","buttons","AlertProvider","children","state","setState","resolverRef","hide","current","alertFn","options","Promise","resolve","message","text","confirmText","onPress","confirmFn","cancelText","style","variant","destructive","value","alert","confirm","Provider","onClose","useAlert","ctx","Error"],"sourceRoot":"../../../src","sources":["organisms/AlertProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","Alert","createImperativeBridge","jsx","_jsx","jsxs","_jsxs","AlertContext","undefined","bridge","showAlert","options","get","alert","Promise","resolve","showConfirm","confirm","hideAlert","hide","HIDDEN","visible","title","type","buttons","AlertProvider","children","state","setState","resolverRef","current","alertFn","message","text","confirmText","onPress","confirmFn","cancelText","style","variant","destructive","value","set","Provider","onClose","useAlert","ctx","Error"],"sourceRoot":"../../../src","sources":["organisms/AlertProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { memo, useEffect, useRef, useState } from 'react';
4
- import { Animated, Dimensions, Modal, PanResponder, Pressable, View } from 'react-native';
4
+ import { Animated, Dimensions, Keyboard, KeyboardAvoidingView, Modal, PanResponder, Platform, Pressable, ScrollView, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
- import { useInsets } from '../theme/UIProvider';
6
+ import { useColors, useInsets } from '../theme/UIProvider';
7
+ import { Title } from '../atoms/Text';
8
+ import { IconButton } from '../atoms/IconButton';
9
+ import { Transition } from '../atoms/Transition';
7
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
11
  const {
9
12
  height: SCREEN_HEIGHT
@@ -21,7 +24,6 @@ const useStyles = createStyles(theme => ({
21
24
  backgroundColor: theme.colors.surface,
22
25
  borderTopLeftRadius: theme.tokens.radius.xxl,
23
26
  borderTopRightRadius: theme.tokens.radius.xxl,
24
- paddingHorizontal: theme.tokens.spacing.xl,
25
27
  ...theme.tokens.shadow.lg
26
28
  },
27
29
  handleArea: {
@@ -33,6 +35,36 @@ const useStyles = createStyles(theme => ({
33
35
  height: 5,
34
36
  borderRadius: 3,
35
37
  backgroundColor: theme.colors.border
38
+ },
39
+ header: {
40
+ flexDirection: 'row',
41
+ alignItems: 'center',
42
+ gap: theme.tokens.spacing.md,
43
+ paddingHorizontal: theme.tokens.spacing.xl,
44
+ paddingBottom: theme.tokens.spacing.md
45
+ },
46
+ headerSpaced: {
47
+ paddingTop: theme.tokens.spacing.xl
48
+ },
49
+ title: {
50
+ flex: 1,
51
+ fontSize: theme.tokens.fontSize.xl,
52
+ fontWeight: theme.tokens.fontWeight.bold
53
+ },
54
+ content: {
55
+ paddingHorizontal: theme.tokens.spacing.xl
56
+ },
57
+ scroll: {
58
+ flexShrink: 1
59
+ },
60
+ footer: {
61
+ paddingHorizontal: theme.tokens.spacing.xl,
62
+ paddingTop: theme.tokens.spacing.md,
63
+ borderTopWidth: 1,
64
+ borderTopColor: theme.colors.border
65
+ },
66
+ footerInline: {
67
+ paddingTop: theme.tokens.spacing.xl
36
68
  }
37
69
  }));
38
70
  const absoluteFill = {
@@ -45,37 +77,43 @@ const absoluteFill = {
45
77
 
46
78
  /**
47
79
  * BottomSheet
48
- * Modal que aparece desde abajo: animación con Animated (no la del Modal
49
- * nativo) y arrastre para cerrar con PanResponder — no un gesture-handler
50
- * externo, para mantener la librería en cero dependencias.
80
+ * Hoja que entra desde abajo, con arrastre para cerrar (PanResponder, no un
81
+ * gesture-handler externo: la librería es cero dependencias). Header, footer y
82
+ * scroll son opcionales, así que cubre tanto la hoja desnuda como el formulario
83
+ * completo.
51
84
  */
52
85
  export const BottomSheet = /*#__PURE__*/memo(({
53
86
  visible,
54
87
  onClose,
55
88
  children,
56
- closeAccessibilityLabel = 'Close'
89
+ title,
90
+ footer,
91
+ footerPlacement = 'fixed',
92
+ scrollable = true,
93
+ draggable = true,
94
+ maxHeight = 0.9,
95
+ closeAccessibilityLabel = 'Close',
96
+ containerStyle,
97
+ contentStyle,
98
+ testID
57
99
  }) => {
58
100
  const styles = useStyles();
101
+ const colors = useColors();
59
102
  const insets = useInsets();
60
103
  const [mounted, setMounted] = useState(visible);
61
- const translateY = useRef(new Animated.Value(SCREEN_HEIGHT)).current;
62
- const backdropOpacity = useRef(new Animated.Value(0)).current;
104
+ const [keyboardOpen, setKeyboardOpen] = useState(false);
105
+ const progress = useRef(new Animated.Value(0)).current;
63
106
  useEffect(() => {
64
107
  if (visible) {
65
108
  setMounted(true);
66
- Animated.timing(translateY, {
67
- toValue: 0,
68
- duration: 250,
69
- useNativeDriver: true
70
- }).start();
71
- Animated.timing(backdropOpacity, {
109
+ Animated.timing(progress, {
72
110
  toValue: 1,
73
111
  duration: 250,
74
112
  useNativeDriver: true
75
113
  }).start();
76
114
  } else {
77
- Animated.timing(translateY, {
78
- toValue: SCREEN_HEIGHT,
115
+ Animated.timing(progress, {
116
+ toValue: 0,
79
117
  duration: 200,
80
118
  useNativeDriver: true
81
119
  }).start(({
@@ -83,24 +121,25 @@ export const BottomSheet = /*#__PURE__*/memo(({
83
121
  }) => {
84
122
  if (finished) setMounted(false);
85
123
  });
86
- Animated.timing(backdropOpacity, {
87
- toValue: 0,
88
- duration: 200,
89
- useNativeDriver: true
90
- }).start();
91
124
  }
92
- }, [visible]);
125
+ }, [visible, progress]);
126
+ useEffect(() => {
127
+ if (footerPlacement !== 'hide-with-keyboard') return;
128
+ const [show, hide] = Platform.OS === 'ios' ? ['keyboardWillShow', 'keyboardWillHide'] : ['keyboardDidShow', 'keyboardDidHide'];
129
+ const subs = [Keyboard.addListener(show, () => setKeyboardOpen(true)), Keyboard.addListener(hide, () => setKeyboardOpen(false))];
130
+ return () => subs.forEach(sub => sub.remove());
131
+ }, [footerPlacement]);
93
132
  const panResponder = useRef(PanResponder.create({
94
133
  onMoveShouldSetPanResponder: (_, gesture) => gesture.dy > 5 && Math.abs(gesture.dy) > Math.abs(gesture.dx),
95
134
  onPanResponderMove: (_, gesture) => {
96
- if (gesture.dy > 0) translateY.setValue(gesture.dy);
135
+ if (gesture.dy > 0) progress.setValue(1 - Math.min(gesture.dy, SCREEN_HEIGHT) / SCREEN_HEIGHT);
97
136
  },
98
137
  onPanResponderRelease: (_, gesture) => {
99
138
  if (gesture.dy > DISMISS_THRESHOLD) {
100
139
  onClose();
101
140
  } else {
102
- Animated.timing(translateY, {
103
- toValue: 0,
141
+ Animated.timing(progress, {
142
+ toValue: 1,
104
143
  duration: 150,
105
144
  useNativeDriver: true
106
145
  }).start();
@@ -108,39 +147,79 @@ export const BottomSheet = /*#__PURE__*/memo(({
108
147
  }
109
148
  })).current;
110
149
  if (!mounted) return null;
150
+
151
+ // Porcentaje y no píxeles: se mide contra el contenedor, que con el teclado
152
+ // abierto es más bajo, así que la hoja entra siempre entera.
153
+ const resolvedMaxHeight = maxHeight <= 1 ? `${maxHeight * 100}%` : maxHeight;
154
+ const hasHeader = !!title;
155
+ const scrolledFooter = !!footer && footerPlacement === 'scroll' && /*#__PURE__*/_jsx(View, {
156
+ style: styles.footerInline,
157
+ children: footer
158
+ });
159
+ const pinnedFooter = !!footer && footerPlacement !== 'scroll' && !(footerPlacement === 'hide-with-keyboard' && keyboardOpen) ? /*#__PURE__*/_jsx(View, {
160
+ style: styles.footer,
161
+ children: footer
162
+ }) : null;
163
+ const body = scrollable ? /*#__PURE__*/_jsxs(ScrollView, {
164
+ style: styles.scroll,
165
+ contentContainerStyle: [styles.content, contentStyle],
166
+ keyboardShouldPersistTaps: "handled",
167
+ showsVerticalScrollIndicator: false,
168
+ children: [children, scrolledFooter]
169
+ }) : /*#__PURE__*/_jsxs(View, {
170
+ style: [styles.content, contentStyle],
171
+ children: [children, scrolledFooter]
172
+ });
111
173
  return /*#__PURE__*/_jsx(Modal, {
112
174
  visible: true,
113
175
  transparent: true,
114
176
  animationType: "none",
115
177
  statusBarTranslucent: true,
116
178
  onRequestClose: onClose,
117
- children: /*#__PURE__*/_jsxs(View, {
179
+ children: /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
118
180
  style: styles.container,
119
- children: [/*#__PURE__*/_jsx(Animated.View, {
120
- style: [absoluteFill, styles.backdrop, {
121
- opacity: backdropOpacity
122
- }],
181
+ behavior: Platform.OS === 'ios' ? 'padding' : 'height',
182
+ children: [/*#__PURE__*/_jsx(Transition, {
183
+ value: progress,
184
+ preset: "fade",
185
+ style: [absoluteFill, styles.backdrop],
123
186
  children: /*#__PURE__*/_jsx(Pressable, {
124
187
  style: absoluteFill,
125
188
  onPress: onClose,
126
- accessibilityRole: "button",
127
- accessibilityLabel: closeAccessibilityLabel
189
+ testID: "bottom-sheet-backdrop",
190
+ accessibilityRole: hasHeader ? undefined : 'button',
191
+ accessibilityLabel: hasHeader ? undefined : closeAccessibilityLabel
128
192
  })
129
- }), /*#__PURE__*/_jsxs(Animated.View, {
193
+ }), /*#__PURE__*/_jsxs(Transition, {
194
+ value: progress,
195
+ preset: "slide-up",
196
+ distance: SCREEN_HEIGHT,
197
+ testID: testID,
130
198
  style: [styles.sheet, {
199
+ maxHeight: resolvedMaxHeight,
131
200
  paddingBottom: Math.max(insets.bottom, 20)
132
- }, {
133
- transform: [{
134
- translateY
135
- }]
136
- }],
137
- children: [/*#__PURE__*/_jsx(View, {
201
+ }, containerStyle],
202
+ children: [draggable && /*#__PURE__*/_jsx(View, {
138
203
  style: styles.handleArea,
204
+ testID: "bottom-sheet-handle",
139
205
  ...panResponder.panHandlers,
140
206
  children: /*#__PURE__*/_jsx(View, {
141
207
  style: styles.handle
142
208
  })
143
- }), children]
209
+ }), hasHeader && /*#__PURE__*/_jsxs(View, {
210
+ style: [styles.header, !draggable && styles.headerSpaced],
211
+ children: [/*#__PURE__*/_jsx(Title, {
212
+ style: styles.title,
213
+ numberOfLines: 1,
214
+ children: title
215
+ }), /*#__PURE__*/_jsx(IconButton, {
216
+ iconName: "close",
217
+ size: 24,
218
+ color: colors.text,
219
+ onPress: onClose,
220
+ accessibilityLabel: closeAccessibilityLabel
221
+ })]
222
+ }), body, pinnedFooter]
144
223
  })]
145
224
  })
146
225
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useEffect","useRef","useState","Animated","Dimensions","Modal","PanResponder","Pressable","View","createStyles","useInsets","jsx","_jsx","jsxs","_jsxs","height","SCREEN_HEIGHT","get","DISMISS_THRESHOLD","useStyles","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","visible","onClose","children","closeAccessibilityLabel","styles","insets","mounted","setMounted","translateY","Value","current","backdropOpacity","timing","toValue","duration","useNativeDriver","start","finished","panResponder","create","onMoveShouldSetPanResponder","_","gesture","dy","Math","abs","dx","onPanResponderMove","setValue","onPanResponderRelease","transparent","animationType","statusBarTranslucent","onRequestClose","style","opacity","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","memo","useEffect","useRef","useState","Animated","Dimensions","Keyboard","KeyboardAvoidingView","Modal","PanResponder","Platform","Pressable","ScrollView","View","createStyles","useColors","useInsets","Title","IconButton","Transition","jsx","_jsx","jsxs","_jsxs","height","SCREEN_HEIGHT","get","DISMISS_THRESHOLD","useStyles","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","visible","onClose","children","footerPlacement","scrollable","draggable","maxHeight","closeAccessibilityLabel","containerStyle","contentStyle","testID","styles","insets","mounted","setMounted","keyboardOpen","setKeyboardOpen","progress","Value","current","timing","toValue","duration","useNativeDriver","start","finished","show","hide","OS","subs","addListener","forEach","sub","remove","panResponder","create","onMoveShouldSetPanResponder","_","gesture","dy","Math","abs","dx","onPanResponderMove","setValue","min","onPanResponderRelease","resolvedMaxHeight","hasHeader","scrolledFooter","style","pinnedFooter","body","contentContainerStyle","keyboardShouldPersistTaps","showsVerticalScrollIndicator","transparent","animationType","statusBarTranslucent","onRequestClose","behavior","value","preset","onPress","accessibilityRole","undefined","accessibilityLabel","distance","max","panHandlers","numberOfLines","iconName","size","color","text","displayName"],"sourceRoot":"../../../src","sources":["organisms/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}