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
@@ -3,18 +3,23 @@ import { type StyleProp, type ViewStyle } from 'react-native';
3
3
  import type { IconName } from '../icons/types';
4
4
  export interface OptionCardProps {
5
5
  label: string;
6
- iconName: IconName;
6
+ /** Línea secundaria: el detalle que decide la elección ("llega en 3 días"). */
7
+ description?: string;
8
+ iconName?: IconName;
7
9
  isSelected: boolean;
8
10
  onPress: () => void;
9
- /** 'vertical': ícono arriba, texto abajo centrado. 'horizontal': ícono y texto en fila. */
11
+ disabled?: boolean;
12
+ /** 'vertical': ícono arriba, texto abajo centrado. 'horizontal': en fila. @default 'horizontal' */
10
13
  layout?: 'vertical' | 'horizontal';
11
14
  style?: StyleProp<ViewStyle>;
15
+ testID?: string;
12
16
  }
13
17
  /**
14
18
  * OptionCard
15
- * Card con ícono+label que resalta con borde/fondo primary cuando
16
- * `isSelected`. Para elegir entre opciones excluyentes (forma de pago, tipo
17
- * de documento, etc).
19
+ * Opción excluyente con ícono y label que resalta cuando `isSelected`. Es un
20
+ * radio con cara de tarjeta, así que se anuncia como tal: envolver el grupo en
21
+ * una View con `accessibilityRole="radiogroup"` para que el lector de pantalla
22
+ * lea "1 de 3".
18
23
  */
19
- export declare const OptionCard: React.MemoExoticComponent<({ label, iconName, isSelected, onPress, layout, style }: OptionCardProps) => React.JSX.Element>;
24
+ export declare const OptionCard: React.MemoExoticComponent<({ label, description, iconName, isSelected, onPress, disabled, layout, style, testID, }: OptionCardProps) => React.JSX.Element>;
20
25
  //# sourceMappingURL=OptionCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionCard.d.ts","sourceRoot":"","sources":["../../../src/molecules/OptionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAA0B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAItF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AA0BD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,sFACoD,eAAe,uBAgCzF,CAAC"}
1
+ {"version":3,"file":"OptionCard.d.ts","sourceRoot":"","sources":["../../../src/molecules/OptionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiCD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,sHAWlB,eAAe,uBA8CnB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export interface SegmentedControlOption<T extends string = string> {
4
+ value: T;
5
+ label: string;
6
+ disabled?: boolean;
7
+ }
8
+ export interface SegmentedControlProps<T extends string = string> {
9
+ options: SegmentedControlOption<T>[];
10
+ value: T;
11
+ onChange: (value: T) => void;
12
+ disabled?: boolean;
13
+ style?: StyleProp<ViewStyle>;
14
+ testID?: string;
15
+ }
16
+ /**
17
+ * SegmentedControl
18
+ * Elige una opción entre pocas, todas visibles. No conoce ningún estado
19
+ * global: recibe `value` y avisa por `onChange`.
20
+ */
21
+ declare function SegmentedControlInner<T extends string>({ options, value, onChange, disabled, style, testID, }: SegmentedControlProps<T>): React.JSX.Element;
22
+ export declare const SegmentedControl: typeof SegmentedControlInner;
23
+ export {};
24
+ //# sourceMappingURL=SegmentedControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/molecules/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI5F,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqBD;;;;GAIG;AACH,iBAAS,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,EAC/C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,CAAC,CAAC,CAAC,qBA4B1B;AAID,eAAO,MAAM,gBAAgB,EAAkC,OAAO,qBAAqB,CAAC"}
@@ -1,15 +1,47 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type StepperSize = 'sm' | 'md' | 'lg';
3
4
  export interface StepperProps {
4
5
  value: string;
5
6
  onChangeText: (text: string) => void;
6
7
  onIncrement: () => void;
7
8
  onDecrement: () => void;
8
- size?: 'sm' | 'md';
9
+ /** Escala del control: alto, botones, ícono y tipografía. @default 'md' */
10
+ size?: StepperSize;
11
+ /** Ocupa todo el ancho disponible y el input se lleva el sobrante. @default false */
12
+ block?: boolean;
13
+ /**
14
+ * En false el valor sólo se cambia con los botones: el teclado no se abre y
15
+ * el campo pierde el fondo que lo anuncia como editable. @default true
16
+ */
17
+ editable?: boolean;
18
+ /**
19
+ * Mínimo permitido. Deshabilita "-" al alcanzarlo y acota lo tipeado al
20
+ * salir del campo. Los negativos se aceptan sólo si `min` es negativo.
21
+ */
22
+ min?: number;
23
+ /** Máximo permitido. Deshabilita "+" al alcanzarlo y acota lo tipeado. */
24
+ max?: number;
25
+ /** Acepta un separador decimal, normalizando la coma a punto. @default false */
26
+ allowDecimals?: boolean;
9
27
  style?: StyleProp<ViewStyle>;
10
28
  incrementAccessibilityLabel?: string;
11
29
  decrementAccessibilityLabel?: string;
30
+ testID?: string;
12
31
  }
13
- /** Stepper: botón "-" + input numérico editable + botón "+". */
14
- export declare const Stepper: React.MemoExoticComponent<({ value, onChangeText, onIncrement, onDecrement, size, style, incrementAccessibilityLabel, decrementAccessibilityLabel, }: StepperProps) => React.JSX.Element>;
32
+ /** Deja sólo lo que puede formar parte del número permitido por el rango. */
33
+ export declare function sanitizeNumeric(text: string, { allowDecimals, allowNegative }?: {
34
+ allowDecimals?: boolean | undefined;
35
+ allowNegative?: boolean | undefined;
36
+ }): string;
37
+ /**
38
+ * Stepper
39
+ * Botón "-" + input numérico editable + botón "+". `size` controla sólo la
40
+ * escala y `block` sólo el ancho, así que los dos ejes se combinan libremente.
41
+ *
42
+ * El componente no hace la aritmética de los botones —eso vive en
43
+ * `onIncrement`/`onDecrement`—, pero sí limpia lo que se tipea y avisa cuándo
44
+ * el valor llegó a un extremo del rango deshabilitando el botón que lo pasaría.
45
+ */
46
+ export declare const Stepper: React.MemoExoticComponent<({ value, onChangeText, onIncrement, onDecrement, size, block, editable, min, max, allowDecimals, style, incrementAccessibilityLabel, decrementAccessibilityLabel, testID, }: StepperProps) => React.JSX.Element>;
15
47
  //# sourceMappingURL=Stepper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper.d.ts","sourceRoot":"","sources":["../../../src/molecules/Stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKjG,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAUD,gEAAgE;AAChE,eAAO,MAAM,OAAO,wJAUf,YAAY,uBAsChB,CAAC"}
1
+ {"version":3,"file":"Stepper.d.ts","sourceRoot":"","sources":["../../../src/molecules/Stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKjG,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgCD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAqB,EAAE,aAAqB,EAAE;;;CAAK,GAAG,MAAM,CAO3G;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,0MAgBf,YAAY,uBAuFhB,CAAC"}
@@ -1,5 +1,5 @@
1
- export { Stepper } from './Stepper';
2
- export type { StepperProps } from './Stepper';
1
+ export { Stepper, sanitizeNumeric } from './Stepper';
2
+ export type { StepperProps, StepperSize } from './Stepper';
3
3
  export { OptionCard } from './OptionCard';
4
4
  export type { OptionCardProps } from './OptionCard';
5
5
  export { InfoRow } from './InfoRow';
@@ -8,8 +8,8 @@ export { FormActions } from './FormActions';
8
8
  export type { FormActionsProps } from './FormActions';
9
9
  export { AvatarHeader } from './AvatarHeader';
10
10
  export type { AvatarHeaderProps } from './AvatarHeader';
11
- export { ThemeToggle } from './ThemeToggle';
12
- export type { ThemeToggleProps } from './ThemeToggle';
11
+ export { SegmentedControl } from './SegmentedControl';
12
+ export type { SegmentedControlProps, SegmentedControlOption } from './SegmentedControl';
13
13
  export { Steps } from './Steps';
14
14
  export type { StepsProps, StepItem, StepStatus } from './Steps';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -18,6 +18,15 @@ interface AlertContextValue {
18
18
  confirm: (options: ConfirmOptions) => Promise<boolean>;
19
19
  hide: () => void;
20
20
  }
21
+ /**
22
+ * Abre un alert desde fuera del árbol de React —un servicio, un interceptor—
23
+ * sin pasar por el hook. Sin <AlertProvider> montado resuelve de inmediato, así
24
+ * que un `await` nunca queda colgado.
25
+ */
26
+ export declare function showAlert(options: AlertOptions): Promise<void>;
27
+ /** Igual que showAlert, pero resuelve true/false. Sin provider, false. */
28
+ export declare function showConfirm(options: ConfirmOptions): Promise<boolean>;
29
+ export declare function hideAlert(): void;
21
30
  /**
22
31
  * AlertProvider
23
32
  * Monta un único <Alert> controlado imperativamente. Colocar una vez cerca
@@ -1 +1 @@
1
- {"version":3,"file":"AlertProvider.d.ts","sourceRoot":"","sources":["../../../src/organisms/AlertProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4E,MAAM,OAAO,CAAC;AACjG,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,oEAAoE;IACpE,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qFAAqF;IACrF,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAcD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA0ExE;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
1
+ {"version":3,"file":"AlertProvider.d.ts","sourceRoot":"","sources":["../../../src/organisms/AlertProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuF,MAAM,OAAO,CAAC;AAC5G,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAGlE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,oEAAoE;IACpE,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qFAAqF;IACrF,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAKD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAErE;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAYD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA+ExE;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
@@ -1,15 +1,37 @@
1
1
  import React from 'react';
2
+ import { type ViewStyle } from 'react-native';
3
+ export type FooterPlacement = 'fixed' | 'scroll' | 'hide-with-keyboard';
2
4
  export interface BottomSheetProps {
3
5
  visible: boolean;
4
6
  onClose: () => void;
5
7
  children: React.ReactNode;
8
+ /** Con título aparece el header, con su botón de cerrar. */
9
+ title?: string;
10
+ /** Acciones de la hoja. Dónde vive lo decide `footerPlacement`. */
11
+ footer?: React.ReactNode;
12
+ /**
13
+ * 'fixed' lo ancla al pie de la hoja; 'scroll' lo deja al final del
14
+ * contenido; 'hide-with-keyboard' lo esconde mientras se escribe, que en un
15
+ * formulario largo le devuelve esa franja al campo enfocado. @default 'fixed'
16
+ */
17
+ footerPlacement?: FooterPlacement;
18
+ /** El contenido scrollea cuando no entra. @default true */
19
+ scrollable?: boolean;
20
+ /** Arrastrar la hoja hacia abajo la cierra. @default true */
21
+ draggable?: boolean;
22
+ /** Fracción de la pantalla (0-1) o píxeles. @default 0.9 */
23
+ maxHeight?: number;
6
24
  closeAccessibilityLabel?: string;
25
+ containerStyle?: ViewStyle;
26
+ contentStyle?: ViewStyle;
27
+ testID?: string;
7
28
  }
8
29
  /**
9
30
  * BottomSheet
10
- * Modal que aparece desde abajo: animación con Animated (no la del Modal
11
- * nativo) y arrastre para cerrar con PanResponder — no un gesture-handler
12
- * externo, para mantener la librería en cero dependencias.
31
+ * Hoja que entra desde abajo, con arrastre para cerrar (PanResponder, no un
32
+ * gesture-handler externo: la librería es cero dependencias). Header, footer y
33
+ * scroll son opcionales, así que cubre tanto la hoja desnuda como el formulario
34
+ * completo.
13
35
  */
14
- export declare const BottomSheet: React.MemoExoticComponent<({ visible, onClose, children, closeAccessibilityLabel }: BottomSheetProps) => React.JSX.Element | null>;
36
+ export declare const BottomSheet: React.MemoExoticComponent<({ visible, onClose, children, title, footer, footerPlacement, scrollable, draggable, maxHeight, closeAccessibilityLabel, containerStyle, contentStyle, testID, }: BottomSheetProps) => React.JSX.Element | null>;
15
37
  //# sourceMappingURL=BottomSheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/organisms/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAQjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAkBD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,sFAA4E,gBAAgB,8BAwDlH,CAAC"}
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/organisms/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EAWL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAUtB,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmCD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,+LAenB,gBAAgB,8BA2IpB,CAAC"}
@@ -3,14 +3,21 @@ import { type FlatListProps, type ViewStyle } from 'react-native';
3
3
  import type { IconName } from '../icons/types';
4
4
  export interface ListProps<T> {
5
5
  data: T[];
6
- keyExtractor: (item: T) => string;
6
+ keyExtractor: (item: T, index: number) => string;
7
7
  renderItem: FlatListProps<T>['renderItem'];
8
+ /** Carga inicial: mientras sea true y no haya datos, se muestran placeholders. */
8
9
  isLoading: boolean;
10
+ /** Recarga con datos ya en pantalla (pull-to-refresh). @default false */
11
+ isRefreshing?: boolean;
9
12
  isLoadingMore?: boolean;
10
13
  /** Controlado por el consumidor: mientras es false, se muestra un spinner de pantalla completa. @default true */
11
14
  isReady?: boolean;
12
15
  loadingText?: string;
13
16
  loadingMoreText?: string;
17
+ /** Filas fantasma de la carga inicial. @default 6 */
18
+ skeletonCount?: number;
19
+ /** Placeholder propio, para que calce con la forma real del ítem. */
20
+ renderSkeletonItem?: () => React.ReactElement;
14
21
  onEndReached?: () => void;
15
22
  onEndReachedThreshold?: number;
16
23
  onRefresh?: () => void;
@@ -31,5 +38,5 @@ export interface ListProps<T> {
31
38
  * expo-router ni a FlashList: `ListComponent` permite inyectar cualquiera
32
39
  * (por defecto FlatList del propio React Native).
33
40
  */
34
- export declare function List<T>({ data, keyExtractor, renderItem, isLoading, isLoadingMore, isReady, loadingText, loadingMoreText, onEndReached, onEndReachedThreshold, onRefresh, emptyTitle, emptyDescription, emptyIconName, ListHeaderComponent, ListFooterComponent, contentContainerStyle, containerStyle, ListComponent, listProps, }: ListProps<T>): React.JSX.Element;
41
+ export declare function List<T>({ data, keyExtractor, renderItem, isLoading, isRefreshing, isLoadingMore, isReady, loadingText, loadingMoreText, skeletonCount, renderSkeletonItem, onEndReached, onEndReachedThreshold, onRefresh, emptyTitle, emptyDescription, emptyIconName, ListHeaderComponent, ListFooterComponent, contentContainerStyle, containerStyle, ListComponent, listProps, }: ListProps<T>): React.JSX.Element;
35
42
  //# sourceMappingURL=List.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/organisms/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE3C,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iHAAiH;IACjH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE9D,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,qEAAqE;IACrE,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAoBD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,EACtB,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,aAAqB,EACrB,OAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,qBAA2B,EAC3B,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAwB,EACxB,SAAS,GACV,EAAE,SAAS,CAAC,CAAC,CAAC,qBA4Dd"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/organisms/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAkC,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMlG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE3C,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iHAAiH;IACjH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;IAE9C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE9D,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,qEAAqE;IACrE,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAeD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,EACtB,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAoB,EACpB,aAAqB,EACrB,OAAc,EACd,WAAW,EACX,eAAe,EACf,aAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,qBAA2B,EAC3B,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAwB,EACxB,SAAS,GACV,EAAE,SAAS,CAAC,CAAC,CAAC,qBA8Fd"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type ModalProps as RNModalProps, type ViewStyle } from 'react-native';
3
- export type ModalVariant = 'full' | 'overlay' | 'fullScreen' | 'bottomSheet';
3
+ export type ModalVariant = 'full' | 'overlay' | 'fullScreen';
4
4
  export interface ModalProps extends Pick<RNModalProps, 'statusBarTranslucent' | 'onRequestClose' | 'hardwareAccelerated'> {
5
5
  visible: boolean;
6
6
  onClose?: () => void;
@@ -16,10 +16,8 @@ export interface ModalProps extends Pick<RNModalProps, 'statusBarTranslucent' |
16
16
  /**
17
17
  * Modal
18
18
  * Un solo componente para todos los modales de la app: maneja scroll,
19
- * teclado, insets y layout según `variant`. overlay/bottomSheet/full animan
20
- * su entrada/salida con Animated (solo transform, nunca opacity sobre la
21
- * tarjeta: animar opacity ahí dispara un bug de Android donde los hijos con
22
- * elevation parpadean/redibujan). El fondo semitransparente sí anima opacity.
19
+ * teclado, insets y layout según `variant`. Para una hoja desde abajo está
20
+ * BottomSheet, que además trae arrastre para cerrar.
23
21
  */
24
22
  export declare const Modal: React.MemoExoticComponent<({ visible, onClose, title, closeAccessibilityLabel, children, footer, containerStyle, contentStyle, variant, scrollable, statusBarTranslucent, onRequestClose, hardwareAccelerated, }: ModalProps) => React.JSX.Element | null>;
25
23
  //# sourceMappingURL=Modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/organisms/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EASL,KAAK,UAAU,IAAI,YAAY,EAC/B,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgDD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,oNAeb,UAAU,8BA8Id,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/organisms/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAQL,KAAK,UAAU,IAAI,YAAY,EAC/B,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAStB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAE7D,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAsCD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,oNAeb,UAAU,8BA8Id,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { IconName } from '../icons/types';
4
+ export interface NavigationBarItem {
5
+ key: string;
6
+ label: string;
7
+ iconName?: IconName;
8
+ /** Contador sobre el ícono. `true` pinta sólo el punto. */
9
+ badge?: number | string | true;
10
+ }
11
+ export interface NavigationBarProps {
12
+ items: NavigationBarItem[];
13
+ activeKey: string;
14
+ onChange: (key: string) => void;
15
+ /** Borde de la pantalla donde vive la barra. @default 'bottom' */
16
+ position?: 'bottom' | 'top';
17
+ /** @default true */
18
+ showLabels?: boolean;
19
+ /** Suma el inset de safe area del borde donde vive la barra. @default true */
20
+ safeArea?: boolean;
21
+ style?: StyleProp<ViewStyle>;
22
+ testID?: string;
23
+ }
24
+ /**
25
+ * NavigationBar
26
+ * Barra de navegación por pestañas con la misma apariencia y las mismas
27
+ * transiciones en iOS y Android: el indicador se desliza hasta la pestaña
28
+ * activa y su contenido crece y toma el color de acento con un cross-fade.
29
+ * No navega por su cuenta — reporta la pestaña tocada y el consumidor decide.
30
+ */
31
+ export declare const NavigationBar: React.MemoExoticComponent<({ items, activeKey, onChange, position, showLabels, safeArea, style, testID, }: NavigationBarProps) => React.JSX.Element>;
32
+ //# sourceMappingURL=NavigationBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationBar.d.ts","sourceRoot":"","sources":["../../../src/organisms/NavigationBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,oBAAoB;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8CD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,6GAUrB,kBAAkB,uBA0HtB,CAAC"}
@@ -9,7 +9,8 @@ export interface ScreenProps {
9
9
  /** Qué insets de safe area aplicar. @default ['top', 'bottom'] */
10
10
  edges?: ScreenEdge[];
11
11
  /**
12
- * Compensa el teclado con un KeyboardAvoidingView. Ponelo en false cuando
12
+ * Compensa el teclado: en iOS con scroll lo hace el propio ScrollView, en el
13
+ * resto de los casos con un KeyboardAvoidingView. Ponelo en false cuando
13
14
  * el contenido ya trae su propio scroller que maneja el teclado (Wizard,
14
15
  * List, SearchList): las dos compensaciones se suman y el campo enfocado
15
16
  * termina empujado fuera de la pantalla.
@@ -1 +1 @@
1
- {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/organisms/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIhG,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAQD;;;;GAIG;AACH,eAAO,MAAM,MAAM,+GAOhB,WAAW,uBAwCZ,CAAC"}
1
+ {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/organisms/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIhG,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAQD;;;;GAIG;AACH,eAAO,MAAM,MAAM,+GAOhB,WAAW,uBA+CZ,CAAC"}
@@ -12,21 +12,37 @@ export interface SearchListProps<T> {
12
12
  scanAccessibilityLabel?: string;
13
13
  extraActions?: React.ReactNode;
14
14
  data: T[];
15
- keyExtractor: (item: T) => string;
15
+ keyExtractor: (item: T, index: number) => string;
16
16
  renderItem: FlatListProps<T>['renderItem'];
17
+ /** Carga inicial: mientras sea true y no haya datos, se muestran placeholders. */
17
18
  isLoading?: boolean;
18
- /** 'replace' cambia toda la lista por un spinner; 'overlay' lo muestra encima manteniendo el layout. */
19
+ /** 'replace' cambia toda la lista por un spinner/skeleton; 'overlay' lo muestra encima manteniendo el layout. */
19
20
  loadingMode?: 'replace' | 'overlay';
20
- loadingText?: string;
21
- onLoadMore?: () => void;
21
+ /** Recarga con datos ya en pantalla (pull-to-refresh). @default false */
22
+ isRefreshing?: boolean;
22
23
  isLoadingMore?: boolean;
24
+ /** Controlado por el consumidor: mientras es false, se muestra un spinner de pantalla completa. @default true */
25
+ isReady?: boolean;
26
+ loadingText?: string;
23
27
  loadingMoreText?: string;
24
28
  hasMore?: boolean;
25
29
  noMoreText?: string;
30
+ /** Filas fantasma de la carga inicial. @default 6 */
31
+ skeletonCount?: number;
32
+ /** Placeholder propio, para que calce con la forma real del ítem. */
33
+ renderSkeletonItem?: () => React.ReactElement;
34
+ onLoadMore?: () => void;
35
+ onEndReached?: () => void;
36
+ onEndReachedThreshold?: number;
37
+ onRefresh?: () => void;
26
38
  emptyTitle?: string;
27
39
  emptyDescription?: string;
28
40
  emptyIconName?: IconName;
41
+ ListHeaderComponent?: FlatListProps<T>['ListHeaderComponent'];
42
+ ListFooterComponent?: FlatListProps<T>['ListFooterComponent'];
29
43
  contentContainerStyle?: StyleProp<ViewStyle>;
44
+ containerStyle?: ViewStyle;
45
+ /** Componente de lista a usar (FlashList, etc). @default FlatList */
30
46
  ListComponent?: React.ComponentType<any>;
31
47
  listProps?: Record<string, unknown>;
32
48
  }
@@ -36,5 +52,5 @@ export interface SearchListProps<T> {
36
52
  * cada ítem (renderItem) queda a cargo de quien la usa, ya que difiere por
37
53
  * completo entre casos de uso.
38
54
  */
39
- export declare function SearchList<T>({ header, searchValue, onSearchChange, searchPlaceholder, searchIsLoading, onScanPress, scanAccessibilityLabel, extraActions, data, keyExtractor, renderItem, isLoading, loadingMode, loadingText, onLoadMore, isLoadingMore, loadingMoreText, hasMore, noMoreText, emptyTitle, emptyDescription, emptyIconName, contentContainerStyle, ListComponent, listProps, }: SearchListProps<T>): React.JSX.Element;
55
+ export declare function SearchList<T>({ header, searchValue, onSearchChange, searchPlaceholder, searchIsLoading, onScanPress, scanAccessibilityLabel, extraActions, data, keyExtractor, renderItem, isLoading, loadingMode, isRefreshing, isLoadingMore, isReady, loadingText, loadingMoreText, hasMore, noMoreText, skeletonCount, renderSkeletonItem, onLoadMore, onEndReached, onEndReachedThreshold, onRefresh, emptyTitle, emptyDescription, emptyIconName, ListHeaderComponent, ListFooterComponent, contentContainerStyle, containerStyle, ListComponent, listProps, }: SearchListProps<T>): React.JSX.Element;
40
56
  //# sourceMappingURL=SearchList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchList.d.ts","sourceRoot":"","sources":["../../../src/organisms/SearchList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAA2C,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO3H,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,sEAAsE;IACtE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wGAAwG;IACxG,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAwBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAC5B,MAAM,EACN,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAuB,EACvB,WAAW,EACX,sBAA+B,EAC/B,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,SAAiB,EACjB,WAAuB,EACvB,WAAW,EACX,UAAU,EACV,aAAqB,EACrB,eAAe,EACf,OAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,aAAwB,EACxB,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,qBAqFpB"}
1
+ {"version":3,"file":"SearchList.d.ts","sourceRoot":"","sources":["../../../src/organisms/SearchList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,sEAAsE;IACtE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE3C,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iHAAiH;IACjH,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iHAAiH;IACjH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;IAE9C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE9D,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,qEAAqE;IACrE,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AA+BD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAC5B,MAAM,EACN,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAuB,EACvB,WAAW,EACX,sBAA+B,EAC/B,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,SAAiB,EACjB,WAAuB,EACvB,YAAoB,EACpB,aAAqB,EACrB,OAAc,EACd,WAAW,EACX,eAAe,EACf,OAAe,EACf,UAAU,EACV,aAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,qBAA2B,EAC3B,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAwB,EACxB,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,qBAsIpB"}
@@ -1,8 +1,14 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { IconName } from '../icons/types';
3
4
  export interface SelectOption<T> {
4
5
  label: string;
5
6
  value: T;
7
+ /** Glifo del set de la librería, a la izquierda del label. */
8
+ iconName?: IconName;
9
+ /** Emoji a la izquierda del label. Gana sobre `iconName`. */
10
+ emoji?: string;
11
+ disabled?: boolean;
6
12
  }
7
13
  export interface SelectProps<T> {
8
14
  label?: string;
@@ -13,13 +19,22 @@ export interface SelectProps<T> {
13
19
  placeholder?: string;
14
20
  error?: string;
15
21
  isLoading?: boolean;
22
+ disabled?: boolean;
23
+ /** Agrega un buscador dentro del desplegable. @default false */
24
+ searchable?: boolean;
25
+ searchPlaceholder?: string;
26
+ /** Alto máximo del desplegable, si el espacio disponible lo permite. @default 280 */
27
+ maxHeight?: number;
28
+ onOpenChange?: (open: boolean) => void;
16
29
  containerStyle?: StyleProp<ViewStyle>;
30
+ testID?: string;
17
31
  }
18
32
  /**
19
33
  * Select
20
- * Dropdown que expande la lista de opciones flotando sobre el resto del
21
- * contenido (position: absolute), en vez de empujarlo hacia abajo o abrir
22
- * un picker nativo del sistema.
34
+ * Dropdown de una sola opción. La lista se mide contra la ventana y se dibuja
35
+ * dentro de un Modal, no en el árbol del campo: así ningún `overflow: hidden`
36
+ * la recorta, no depende del zIndex (poco confiable en Android) y el fondo del
37
+ * Modal resuelve cerrar tocando afuera y con el botón atrás.
23
38
  */
24
- export declare function Select<T extends string | number>({ label, required, options, selectedValue, onSelect, placeholder, error, isLoading, containerStyle, }: SelectProps<T>): React.JSX.Element;
39
+ export declare function Select<T extends string | number>({ label, required, options, selectedValue, onSelect, placeholder, error, isLoading, disabled, searchable, searchPlaceholder, maxHeight, onOpenChange, containerStyle, testID, }: SelectProps<T>): React.JSX.Element;
25
40
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/organisms/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAA4C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKxG,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC;AAmDD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAChD,KAAK,EACL,QAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,WAAW,EACX,KAAK,EACL,SAAiB,EACjB,cAAc,GACf,EAAE,WAAW,CAAC,CAAC,CAAC,qBAmEhB"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/organisms/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAWL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6ED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAChD,KAAK,EACL,QAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,WAAW,EACX,KAAK,EACL,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,iBAAiB,EACjB,SAAe,EACf,YAAY,EACZ,cAAc,EACd,MAAM,GACP,EAAE,WAAW,CAAC,CAAC,CAAC,qBAyLhB"}
@@ -4,12 +4,12 @@ import { type ThemeMode } from '../theme/UIProvider';
4
4
  export interface ThemeToggleProps {
5
5
  style?: StyleProp<ViewStyle>;
6
6
  labels?: Partial<Record<ThemeMode, string>>;
7
+ testID?: string;
7
8
  }
8
9
  /**
9
10
  * ThemeToggle
10
- * Segmented control de 3 estados (system/light/dark) conectado a
11
- * UIProvider.setMode. Sin persistencia — el consumidor la resuelve vía
12
- * onModeChange en <UIProvider>.
11
+ * Conecta un SegmentedControl con UIProvider.setMode. Sin persistencia — el
12
+ * consumidor la resuelve vía onModeChange en <UIProvider>.
13
13
  */
14
- export declare const ThemeToggle: React.MemoExoticComponent<({ style, labels: labelOverrides }: ThemeToggleProps) => React.JSX.Element>;
14
+ export declare const ThemeToggle: React.MemoExoticComponent<({ style, labels: labelOverrides, testID }: ThemeToggleProps) => React.JSX.Element>;
15
15
  //# sourceMappingURL=ThemeToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../../src/organisms/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD;;;;GAIG;AACH,eAAO,MAAM,WAAW,wEAAoD,gBAAgB,uBAS1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/organisms/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAmC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,8GAC2E,UAAU,uBAkDtG,CAAC;AAGF,sFAAsF;AACtF,eAAO,MAAM,aAAa,qDACC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,uBAmBvF,CAAC"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/organisms/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOrF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,8GAC2E,UAAU,uBAkDtG,CAAC;AAGF,sFAAsF;AACtF,eAAO,MAAM,aAAa,qDACC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,uBAKvF,CAAC"}
@@ -15,6 +15,14 @@ interface ToastContextValue {
15
15
  hide: (id: string) => void;
16
16
  hideAll: () => void;
17
17
  }
18
+ /**
19
+ * Muestra un toast desde fuera del árbol de React —un servicio, un
20
+ * interceptor— sin pasar por el hook. Devuelve el id, o '' si no hay
21
+ * <ToastProvider> montado.
22
+ */
23
+ export declare function showToast(options: ToastOptions): string;
24
+ export declare function hideToast(id: string): void;
25
+ export declare function hideAllToasts(): void;
18
26
  export interface ToastProviderProps {
19
27
  children: React.ReactNode;
20
28
  /** @default 'top' */
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/organisms/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuF,MAAM,OAAO,CAAC;AAE5G,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAIlE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,UAAU,iBAAiB;IACzB,kFAAkF;IAClF,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAQD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAgB,EAChB,UAAc,EACd,eAAsB,GACvB,EAAE,kBAAkB,qBAuGpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/organisms/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuF,MAAM,OAAO,CAAC;AAE5G,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAKlE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,UAAU,iBAAiB;IACzB,kFAAkF;IAClF,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAKD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAEvD;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAMD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAgB,EAChB,UAAc,EACd,eAAsB,GACvB,EAAE,kBAAkB,qBA4GpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
@@ -27,6 +27,12 @@ export interface WizardProps {
27
27
  * @default true
28
28
  */
29
29
  scrollableContent?: boolean;
30
+ /**
31
+ * El contenido del paso entra deslizándose en el sentido de la navegación.
32
+ * Sólo opacity y transform, así que la animación corre en el hilo nativo.
33
+ * @default true
34
+ */
35
+ animated?: boolean;
30
36
  style?: StyleProp<ViewStyle>;
31
37
  }
32
38
  /**
@@ -36,5 +42,5 @@ export interface WizardProps {
36
42
  * cuenta. `canGoNext: false` en un paso deshabilita el avance, que es donde
37
43
  * se engancha la validación del formulario de ese paso.
38
44
  */
39
- export declare function Wizard({ steps, current: controlledCurrent, onStepChange, onFinish, orientation, completedIndicator, allowStepNavigation, backLabel, nextLabel, finishLabel, scrollableContent, style, }: WizardProps): React.JSX.Element;
45
+ export declare function Wizard({ steps, current: controlledCurrent, onStepChange, onFinish, orientation, completedIndicator, allowStepNavigation, backLabel, nextLabel, finishLabel, scrollableContent, animated, style, }: WizardProps): React.JSX.Element;
40
46
  //# sourceMappingURL=Wizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../src/organisms/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAUD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EACZ,QAAQ,EACR,WAA0B,EAC1B,kBAA4B,EAC5B,mBAA0B,EAC1B,SAAkB,EAClB,SAAkB,EAClB,WAAsB,EACtB,iBAAwB,EACxB,KAAK,GACN,EAAE,WAAW,qBAwEb"}
1
+ {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../src/organisms/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI1D,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAUD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EACZ,QAAQ,EACR,WAA0B,EAC1B,kBAA4B,EAC5B,mBAA0B,EAC1B,SAAkB,EAClB,SAAkB,EAClB,WAAsB,EACtB,iBAAwB,EACxB,QAAe,EACf,KAAK,GACN,EAAE,WAAW,qBAiGb"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Puente entre el proveedor montado y el código que no es un componente
3
+ * (servicios, capa de API, interceptores). El proveedor se registra al montar y
4
+ * se borra al desmontar, así que fuera del árbol nunca queda una referencia
5
+ * viva a un contexto muerto.
6
+ */
7
+ export interface ImperativeBridge<T> {
8
+ set: (value: T | null) => void;
9
+ get: () => T | null;
10
+ }
11
+ export declare function createImperativeBridge<T>(providerName: string): ImperativeBridge<T>;
12
+ //# sourceMappingURL=imperativeBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imperativeBridge.d.ts","sourceRoot":"","sources":["../../../src/organisms/imperativeBridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAgBnF"}