@william-callao/antonella-ui 1.0.3 → 1.0.5

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 (3) hide show
  1. package/dist/index.d.ts +641 -138
  2. package/dist/index.js +4622 -2263
  3. package/package.json +37 -33
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as React from 'react';
2
+ import React__default, { ComponentType, ReactNode, ReactElement } from 'react';
2
3
  import { StyleProp, ViewStyle, PressableProps, ViewProps, TextStyle, TextInputProps, KeyboardTypeOptions, TextProps as TextProps$1, ScrollViewProps } from 'react-native';
3
- import React, { ComponentType, ReactNode, ReactElement } from 'react';
4
4
  import { DashboardShellTokens, LayoutRowSize, LayoutColumnSize, TextType } from '@william-callao/antonella-theme';
5
5
  export { LayoutColumnSize, LayoutRowSize } from '@william-callao/antonella-theme';
6
6
  import { SharedValue } from 'react-native-reanimated';
7
+ import { CameraType, FlashMode, BarcodeType } from 'expo-camera';
7
8
 
8
9
  type AvatarSize = "sm" | "md" | "lg";
9
10
  type AvatarProps = {
@@ -12,7 +13,7 @@ type AvatarProps = {
12
13
  size?: AvatarSize;
13
14
  style?: StyleProp<ViewStyle>;
14
15
  };
15
- declare function Avatar({ name, email, size, style }: AvatarProps): react_jsx_runtime.JSX.Element;
16
+ declare function Avatar({ name, email, size, style }: AvatarProps): React__default.JSX.Element;
16
17
 
17
18
  type ButtonVariant = "primary" | "secondary" | "ghost" | "danger";
18
19
  type ButtonSize = "sm" | "md" | "lg";
@@ -24,12 +25,12 @@ interface ButtonProps extends Omit<PressableProps, "style"> {
24
25
  /** Muestra un spinner centrado en lugar del label (y deshabilita el botón). */
25
26
  loading?: boolean;
26
27
  }
27
- declare function Button({ label, variant, size, style, disabled, loading, android_ripple, ...rest }: ButtonProps): react_jsx_runtime.JSX.Element;
28
+ declare function Button({ label, variant, size, style, disabled, loading, android_ripple, ...rest }: ButtonProps): React__default.JSX.Element;
28
29
 
29
30
  interface CalendarProps extends ViewProps {
30
31
  date?: Date;
31
32
  }
32
- declare function Calendar({ date, style, ...rest }: CalendarProps): react_jsx_runtime.JSX.Element;
33
+ declare function Calendar({ date, style, ...rest }: CalendarProps): React__default.JSX.Element;
33
34
 
34
35
  type CardVariant = "default" | "line";
35
36
  interface CardProps extends ViewProps {
@@ -40,16 +41,16 @@ interface CardProps extends ViewProps {
40
41
  loading?: boolean;
41
42
  skeletonHeight?: number;
42
43
  }
43
- declare function Card({ background: bgOverride, loading, skeletonHeight, variant, style, children, ...rest }: CardProps): react_jsx_runtime.JSX.Element;
44
+ declare function Card({ background: bgOverride, loading, skeletonHeight, variant, style, children, ...rest }: CardProps): React__default.JSX.Element;
44
45
 
45
46
  interface CardTitleProps {
46
47
  title: string;
47
48
  subtitle?: string;
48
49
  style?: ViewStyle;
49
50
  }
50
- declare function CardTitle({ title, subtitle, style }: CardTitleProps): react_jsx_runtime.JSX.Element;
51
+ declare function CardTitle({ title, subtitle, style }: CardTitleProps): React__default.JSX.Element;
51
52
 
52
- type IconName = "home" | "home-filled" | "mail" | "mail-filled" | "calendar" | "calendar-filled" | "bar-chart" | "bar-chart-filled" | "settings" | "settings-filled" | "user" | "user-filled" | "search" | "clipboard" | "clipboard-filled" | "checklist" | "checklist-filled" | "menu" | "close" | "chevron-down" | "chevron-forward" | "chevron-back" | "arrow-back" | "arrow-forward" | "arrow-down" | "arrow-up" | "arrow-up-filled" | "add" | "checkmark" | "pencil" | "trash" | "chevron-up" | "alert-circle" | "checkmark-circle" | "information-circle" | "notifications" | "notifications-filled" | "more-horizontal" | "more-vertical" | "log-in" | "log-out" | "git-network" | "construct" | "chatbubble" | "camera" | "time" | "analytics" | "barn" | "barn-filled" | "farm" | "farm-filled" | "people" | "people-filled" | "document-text" | "document-text-filled" | "backspace" | "palette" | "folder" | "folder-open" | "file" | "loader" | "inbox" | "triangle-alert" | "eye" | "eye-off";
53
+ type IconName = "home" | "home-filled" | "mail" | "mail-filled" | "calendar" | "calendar-filled" | "bar-chart" | "bar-chart-filled" | "cart" | "settings" | "settings-filled" | "user" | "user-filled" | "search" | "clipboard" | "clipboard-filled" | "checklist" | "checklist-filled" | "menu" | "close" | "chevron-down" | "chevron-forward" | "chevron-back" | "arrow-back" | "arrow-forward" | "arrow-down" | "arrow-up" | "arrow-up-filled" | "add" | "checkmark" | "pencil" | "trash" | "chevron-up" | "alert-circle" | "checkmark-circle" | "information-circle" | "notifications" | "notifications-filled" | "more-horizontal" | "more-vertical" | "log-in" | "log-out" | "git-network" | "construct" | "chatbubble" | "camera" | "time" | "analytics" | "barn" | "barn-filled" | "farm" | "farm-filled" | "people" | "people-filled" | "document-text" | "document-text-filled" | "backspace" | "palette" | "folder" | "folder-open" | "file" | "loader" | "inbox" | "triangle-alert" | "eye" | "eye-off" | "flash" | "flash-off" | "torch" | "torch-off" | "flip-camera" | "scan" | "tag" | "tag-filled";
53
54
  declare const iconMap: Record<IconName, ComponentType<{
54
55
  size?: number;
55
56
  color?: string;
@@ -62,7 +63,7 @@ type IconProps = {
62
63
  style?: object;
63
64
  testID?: string;
64
65
  };
65
- declare function Icon({ name, size, color, style, testID }: IconProps): react_jsx_runtime.JSX.Element;
66
+ declare function Icon({ name, size, color, style, testID }: IconProps): React.JSX.Element;
66
67
 
67
68
  type ChipVariant = "subtle" | "solid" | "outlined";
68
69
  type ChipSize = "sm" | "md";
@@ -78,7 +79,7 @@ type ChipProps = {
78
79
  textStyle?: StyleProp<TextStyle>;
79
80
  onPress?: () => void;
80
81
  };
81
- declare function Chip({ label, color, backgroundColor, variant, size, icon, uppercase, style, textStyle, onPress, }: ChipProps): react_jsx_runtime.JSX.Element;
82
+ declare function Chip({ label, color, backgroundColor, variant, size, icon, uppercase, style, textStyle, onPress, }: ChipProps): React__default.JSX.Element;
82
83
 
83
84
  declare enum ItemStyle {
84
85
  DEFAULT = "DEFAULT",
@@ -102,22 +103,49 @@ type ItemProps = {
102
103
  selectedBg: string;
103
104
  };
104
105
  };
105
- declare function Item({ icon, label, onPress, selected, style, colors: overrideColors, }: ItemProps): react_jsx_runtime.JSX.Element;
106
+ declare function Item({ icon, label, onPress, selected, style, colors: overrideColors, }: ItemProps): React__default.JSX.Element;
106
107
 
107
- type ChipRowOption = {
108
+ type ChipTabsOption = {
108
109
  icon: IconName;
109
110
  label: string;
110
111
  value: string;
111
112
  };
112
- type ChipRowProps = {
113
- options: ChipRowOption[];
113
+ type ChipTabsProps = {
114
+ options: ChipTabsOption[];
114
115
  selected?: string;
115
116
  onSelect?: (value: string) => void;
116
117
  style?: ItemStyle;
117
118
  /** Cuando es true, los items se reparten el ancho completo (flex: 1) sin scroll horizontal. */
118
119
  fullWidth?: boolean;
119
120
  };
120
- declare function ChipRow({ options, selected: controlledSelected, onSelect, style, fullWidth, }: ChipRowProps): react_jsx_runtime.JSX.Element;
121
+ declare function ChipTabs({ options, selected: controlledSelected, onSelect, style, fullWidth, }: ChipTabsProps): React__default.JSX.Element;
122
+
123
+ declare enum LabelStyle {
124
+ DEFAULT = "DEFAULT",
125
+ LIGHT = "LIGHT",
126
+ DARKNESS = "DARKNESS"
127
+ }
128
+ type LabelProps = {
129
+ label: string;
130
+ /** Icono opcional a la izquierda del texto (16). */
131
+ icon?: IconName;
132
+ /** Estado seleccionado: pinta el relleno en vez del borde solo. */
133
+ selected?: boolean;
134
+ onPress?: () => void;
135
+ style?: LabelStyle;
136
+ /** Override de estilo de la propia label (p. ej. `flex: 1` para repartir
137
+ * espacio en un contenedor de distribución). */
138
+ containerStyle?: StyleProp<ViewStyle>;
139
+ accessibilityLabel?: string;
140
+ };
141
+ declare function Label({ label, icon, selected, onPress, style, containerStyle, accessibilityLabel, }: LabelProps): React__default.JSX.Element;
142
+
143
+ interface SectionTitleProps {
144
+ title: string;
145
+ description?: string;
146
+ style?: ViewStyle;
147
+ }
148
+ declare function SectionTitle({ title, description, style }: SectionTitleProps): React__default.JSX.Element;
121
149
 
122
150
  declare enum SearchBarStyle {
123
151
  DEFAULT = "DEFAULT",
@@ -133,25 +161,42 @@ type SearchBarProps = {
133
161
  bgColor?: string;
134
162
  onFocus?: () => void;
135
163
  onBlur?: () => void;
164
+ /** Tipo de tecla de retorno del teclado (ej: "search" para mostrar "Buscar"). */
165
+ returnKeyType?: TextInputProps["returnKeyType"];
166
+ /** Se dispara al presionar la tecla de retorno del teclado. */
167
+ onSubmitEditing?: TextInputProps["onSubmitEditing"];
168
+ /** Al presionar retorno, pierde el foco (default true de TextInput). */
169
+ blurOnSubmit?: boolean;
170
+ autoFocus?: boolean;
136
171
  };
137
- declare function SearchBar({ placeholder, value, onChangeText, style, icon, bgColor, onFocus, onBlur, }: SearchBarProps): react_jsx_runtime.JSX.Element;
172
+ declare function SearchBar({ placeholder, value, onChangeText, style, icon, bgColor, onFocus, onBlur, returnKeyType, onSubmitEditing, blurOnSubmit, autoFocus, }: SearchBarProps): React__default.JSX.Element;
138
173
 
139
- declare enum HeaderBarStyle {
174
+ declare enum TopActionStyle {
140
175
  DEFAULT = "DEFAULT",
141
176
  DARKNESS = "DARKNESS"
142
177
  }
143
- type HeaderBarProps = {
144
- title: string;
145
- /** Texto secundario debajo del título (opcional). */
146
- description?: string;
147
- style?: HeaderBarStyle;
148
- /** Acción del botón de menú (hamburguesa, lado izquierdo). */
149
- onMenuPress?: () => void;
150
- menuIcon?: IconName;
151
- /** Label de accesibilidad del botón izquierdo. */
178
+ type TopActionProps = {
179
+ icon: IconName;
180
+ onPress: () => void;
181
+ style?: TopActionStyle;
182
+ /** Override de colores (opcional). */
183
+ colors?: Partial<{
184
+ buttonBg: string;
185
+ buttonPressedBg: string;
186
+ iconColor: string;
187
+ }>;
188
+ /** Radio de esquinas del botón (opcional, por defecto 24). */
189
+ borderRadius?: number;
190
+ /** Label de accesibilidad del botón. */
152
191
  accessibilityLabel?: string;
153
192
  };
154
- declare function HeaderBar({ title, description, style, onMenuPress, menuIcon, accessibilityLabel, }: HeaderBarProps): react_jsx_runtime.JSX.Element;
193
+ declare function TopAction({ icon, onPress, style, colors, borderRadius, accessibilityLabel, }: TopActionProps): React__default.JSX.Element;
194
+
195
+ type TopBarProps = {
196
+ children?: React__default.ReactNode;
197
+ style?: ViewStyle;
198
+ };
199
+ declare function TopBar({ children, style }: TopBarProps): React__default.JSX.Element;
155
200
 
156
201
  declare enum StateMessageType {
157
202
  LOADING = "LOADING",
@@ -160,7 +205,10 @@ declare enum StateMessageType {
160
205
  }
161
206
  declare enum StateMessageStyle {
162
207
  DEFAULT = "DEFAULT",
163
- DARKNESS = "DARKNESS"
208
+ LIGHT = "LIGHT",
209
+ WHITE = "WHITE",
210
+ DARKNESS = "DARKNESS",
211
+ SECONDARY = "SECONDARY"
164
212
  }
165
213
  type StateMessageProps = {
166
214
  /** Qué estado representa el mensaje. */
@@ -176,7 +224,7 @@ type StateMessageProps = {
176
224
  onAction?: () => void;
177
225
  style?: StateMessageStyle;
178
226
  };
179
- declare function StateMessage({ state, icon, title, message, actionLabel, onAction, style, }: StateMessageProps): react_jsx_runtime.JSX.Element;
227
+ declare function StateMessage({ state, icon, title, message, actionLabel, onAction, style, }: StateMessageProps): React__default.JSX.Element;
180
228
 
181
229
  declare enum DrawerMenuItemStyle {
182
230
  DEFAULT = "DEFAULT",
@@ -189,22 +237,38 @@ type DrawerMenuItemProps = {
189
237
  selected?: boolean;
190
238
  style?: DrawerMenuItemStyle;
191
239
  };
192
- declare function DrawerMenuItem({ icon, label, onPress, selected, style, }: DrawerMenuItemProps): react_jsx_runtime.JSX.Element;
240
+ declare function DrawerMenuItem({ icon, label, onPress, selected, style, }: DrawerMenuItemProps): React__default.JSX.Element;
193
241
 
194
- declare enum CategoryTextStyle {
242
+ declare enum SectionHeaderStyle {
195
243
  DEFAULT = "DEFAULT",
196
244
  LIGHT = "LIGHT",
197
245
  DARKNESS = "DARKNESS"
198
246
  }
199
- type CategoryTextProps = {
247
+ type SectionHeaderProps = {
200
248
  title: string;
249
+ /** Texto secundario debajo del título (opcional). */
250
+ subtitle?: string;
251
+ /** Sin descripción: si es `true` no se renderiza la descripción (ni siquiera
252
+ * el placeholder). En su defecto (false), si no se pasa `subtitle` se reserva
253
+ * su espacio con un placeholder invisible (texto "mv" en el color del fondo
254
+ * del contexto darkness) para que las filas sin descripción mantengan el alto
255
+ * de las que sí tienen. Por defecto false. */
256
+ hideDescription?: boolean;
201
257
  action?: string;
202
258
  onAction?: () => void;
203
- style?: CategoryTextStyle;
259
+ /** Ícono opcional a la derecha de la acción (edición, configuración, agregar, etc.). */
260
+ actionIcon?: IconName;
261
+ /** Handler del ícono. Si no se pasa, usa onAction. */
262
+ onActionIcon?: () => void;
263
+ style?: SectionHeaderStyle;
264
+ /** Padding horizontal de la fila (si no se pasa, 0). */
265
+ horizontalPadding?: number;
266
+ /** Override de estilo para la fila contenedora (p. ej. quitar el marginBottom por defecto). */
267
+ containerStyle?: StyleProp<ViewStyle>;
204
268
  };
205
- declare function CategoryText({ title, action, onAction, style, }: CategoryTextProps): react_jsx_runtime.JSX.Element;
269
+ declare function SectionHeader({ title, subtitle, hideDescription, action, onAction, actionIcon, onActionIcon, style, horizontalPadding, containerStyle, }: SectionHeaderProps): React__default.JSX.Element;
206
270
 
207
- type BottomSheetProps = {
271
+ type SheetProps = {
208
272
  visible: boolean;
209
273
  onClose: () => void;
210
274
  dismissible?: boolean;
@@ -212,23 +276,58 @@ type BottomSheetProps = {
212
276
  icon?: IconName;
213
277
  title?: string;
214
278
  caption?: string;
215
- children: React.ReactNode;
279
+ children: React__default.ReactNode;
216
280
  contentStyle?: StyleProp<ViewStyle>;
217
281
  snapPoints?: Array<string | number>;
282
+ /** Zona de acciones fija al pie del sheet. */
283
+ actions?: React__default.ReactNode;
284
+ /**
285
+ * Renderiza el sheet SIN envolverlo en un RN Modal, para poder montarlo dentro
286
+ * de un host modal nativo (p.ej. un screen `transparentModal` de expo-router),
287
+ * donde anidar otro Modal rompería el edge-to-edge.
288
+ */
289
+ embedded?: boolean;
290
+ };
291
+ declare function Sheet({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: SheetProps): React__default.JSX.Element;
292
+
293
+ declare enum AppDialogMode {
294
+ Dismissable = "dismissable",
295
+ Required = "required"
296
+ }
297
+ type BottomSheetProps = {
298
+ visible: boolean;
299
+ onClose: () => void;
300
+ mode?: AppDialogMode;
301
+ icon?: IconName;
302
+ title?: string;
303
+ caption?: string;
304
+ children: React__default.ReactNode;
305
+ contentStyle?: React__default.ComponentProps<typeof Sheet>["contentStyle"];
306
+ snapPoints?: React__default.ComponentProps<typeof Sheet>["snapPoints"];
307
+ /** Zona de acciones fija al pie del diálogo (botones, etc.). */
308
+ actions?: React__default.ReactNode;
309
+ /** Monta el diálogo sin RN Modal (para hosts modales nativos tipo expo-router). */
310
+ embedded?: boolean;
218
311
  };
219
- declare function BottomSheet({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, snapPoints, }: BottomSheetProps): react_jsx_runtime.JSX.Element;
312
+ declare function BottomSheet({ visible, onClose, mode, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: BottomSheetProps): React__default.JSX.Element;
220
313
 
221
- type CardStackSheetProps = {
314
+ type AppBottomSheetProps = {
222
315
  visible: boolean;
223
316
  onClose: () => void;
224
317
  dismissible?: boolean;
225
- children: React.ReactNode;
318
+ children: React__default.ReactNode;
226
319
  contentStyle?: StyleProp<ViewStyle>;
227
320
  snapPoints?: Array<string | number>;
228
321
  /** Color del área semitransparente del sheet (fondo entre y bajo las cards). */
229
322
  areaColor?: string;
323
+ /**
324
+ * Renderiza el sheet SIN envolverlo en un RN Modal, para poder montarlo dentro
325
+ * de un host modal nativo (p.ej. un screen `transparentModal` de expo-router),
326
+ * donde anidar otro Modal rompería el edge-to-edge.
327
+ */
328
+ embedded?: boolean;
230
329
  };
231
- declare function CardStackSheet({ visible, onClose, dismissible, children, contentStyle, snapPoints, areaColor, }: CardStackSheetProps): react_jsx_runtime.JSX.Element;
330
+ declare function AppBottomSheet({ visible, onClose, dismissible, children, contentStyle, snapPoints, areaColor, embedded, }: AppBottomSheetProps): React__default.JSX.Element;
232
331
 
233
332
  declare enum OptionListItemVariant {
234
333
  Default = "default",
@@ -246,7 +345,7 @@ type OptionListItemProps = {
246
345
  showSeparator?: boolean;
247
346
  style?: StyleProp<ViewStyle>;
248
347
  };
249
- declare function OptionListItem({ icon, title, description, onPress, variant, trailing, iconColor, showSeparator, style, }: OptionListItemProps): react_jsx_runtime.JSX.Element;
348
+ declare function OptionListItem({ icon, title, description, onPress, variant, trailing, iconColor, showSeparator, style, }: OptionListItemProps): React__default.JSX.Element;
250
349
 
251
350
  declare enum ToastTone {
252
351
  Success = "success",
@@ -268,7 +367,7 @@ type ToastProps = {
268
367
  /** Padding superior (p. ej. insets.top) para que el fondo se extienda por detrás de la status bar. */
269
368
  topInset?: number;
270
369
  };
271
- declare function Toast({ message, tone, style, onClose, containerStyle, topInset, }: ToastProps): react_jsx_runtime.JSX.Element;
370
+ declare function Toast({ message, tone, style, onClose, containerStyle, topInset, }: ToastProps): React__default.JSX.Element;
272
371
 
273
372
  declare const TOAST_DEFAULT_DURATION_MS = 3000;
274
373
  type ToastOptions = {
@@ -283,7 +382,7 @@ type ToastContextValue = {
283
382
  declare function useToast(): ToastContextValue;
284
383
  declare function ToastProvider({ children }: {
285
384
  children: ReactNode;
286
- }): react_jsx_runtime.JSX.Element;
385
+ }): React__default.JSX.Element;
287
386
 
288
387
  type ModalProps = {
289
388
  visible: boolean;
@@ -293,27 +392,18 @@ type ModalProps = {
293
392
  icon?: IconName;
294
393
  title?: string;
295
394
  caption?: string;
296
- children: React.ReactNode;
395
+ children: React__default.ReactNode;
297
396
  contentStyle?: StyleProp<ViewStyle>;
397
+ /** Zona de acciones fija al pie del modal. */
398
+ actions?: React__default.ReactNode;
399
+ /**
400
+ * Renderiza el modal SIN envolverlo en un RN Modal, para poder montarlo dentro
401
+ * de un host modal nativo (p.ej. un screen `transparentModal` de expo-router),
402
+ * donde anidar otro Modal rompería el edge-to-edge.
403
+ */
404
+ embedded?: boolean;
298
405
  };
299
- declare function Modal({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, }: ModalProps): react_jsx_runtime.JSX.Element;
300
-
301
- declare enum AppDialogMode {
302
- Dismissable = "dismissable",
303
- Required = "required"
304
- }
305
- type AppResponsiveDialogProps = {
306
- visible: boolean;
307
- onClose: () => void;
308
- mode?: AppDialogMode;
309
- icon?: IconName;
310
- title?: string;
311
- caption?: string;
312
- children: React.ReactNode;
313
- contentStyle?: React.ComponentProps<typeof BottomSheet>["contentStyle"];
314
- snapPoints?: React.ComponentProps<typeof BottomSheet>["snapPoints"];
315
- };
316
- declare function AppResponsiveDialog({ visible, onClose, mode, icon, title, caption, children, contentStyle, snapPoints, }: AppResponsiveDialogProps): react_jsx_runtime.JSX.Element;
406
+ declare function Modal({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, actions, embedded, }: ModalProps): React__default.JSX.Element;
317
407
 
318
408
  type AppFilterChipOption = {
319
409
  label: string;
@@ -325,7 +415,7 @@ type AppFilterChipsProps = {
325
415
  onChange?: (value: string) => void;
326
416
  style?: StyleProp<ViewStyle>;
327
417
  };
328
- declare function AppFilterChips({ options, value, onChange, style }: AppFilterChipsProps): react_jsx_runtime.JSX.Element;
418
+ declare function AppFilterChips({ options, value, onChange, style }: AppFilterChipsProps): React__default.JSX.Element;
329
419
 
330
420
  type PinKeypadProps = {
331
421
  value: string;
@@ -334,7 +424,7 @@ type PinKeypadProps = {
334
424
  pinLength?: number;
335
425
  style?: StyleProp<ViewStyle>;
336
426
  };
337
- declare function PinKeypad({ value, onChange, onComplete, pinLength, style }: PinKeypadProps): react_jsx_runtime.JSX.Element;
427
+ declare function PinKeypad({ value, onChange, onComplete, pinLength, style }: PinKeypadProps): React.JSX.Element;
338
428
 
339
429
  type AppCheckItemStatus = "pending" | "ok" | "not-ok";
340
430
  type AppCheckItemProps = {
@@ -351,7 +441,7 @@ type AppCheckItemProps = {
351
441
  onCommentChange?: (comment: string) => void;
352
442
  style?: StyleProp<ViewStyle>;
353
443
  };
354
- declare function AppCheckItem({ label, description, value, comment, hasMessages, noActions, readOnly, onOpenMessages, onPress, onChange, onCommentChange, style, }: AppCheckItemProps): react_jsx_runtime.JSX.Element;
444
+ declare function AppCheckItem({ label, description, value, comment, hasMessages, noActions, readOnly, onOpenMessages, onPress, onChange, onCommentChange, style, }: AppCheckItemProps): React__default.JSX.Element;
355
445
 
356
446
  type DonutSegment = {
357
447
  /** Fracción del anillo (0-1) que ocupa el segmento. */
@@ -364,9 +454,9 @@ interface DonutChartProps extends ViewProps {
364
454
  segments: DonutSegment[];
365
455
  trackColor?: string;
366
456
  startAngle?: number;
367
- children?: React.ReactNode;
457
+ children?: React__default.ReactNode;
368
458
  }
369
- declare function DonutChart({ size, thickness, segments, trackColor, startAngle, style, children, ...rest }: DonutChartProps): react_jsx_runtime.JSX.Element;
459
+ declare function DonutChart({ size, thickness, segments, trackColor, startAngle, style, children, ...rest }: DonutChartProps): React__default.JSX.Element;
370
460
 
371
461
  type SidebarItem = {
372
462
  id: string;
@@ -387,9 +477,9 @@ type SidebarSection = {
387
477
  type SidebarType = "responsive" | "full" | "icon";
388
478
  type DashboardShellProps = {
389
479
  sections: SidebarSection[];
390
- sidebarHeader?: React.ReactNode;
391
- sidebarFooter?: React.ReactNode;
392
- topBar?: React.ReactNode;
480
+ sidebarHeader?: React__default.ReactNode;
481
+ sidebarFooter?: React__default.ReactNode;
482
+ topBar?: React__default.ReactNode;
393
483
  title?: string;
394
484
  brand?: string;
395
485
  logoutLabel?: string;
@@ -398,10 +488,10 @@ type DashboardShellProps = {
398
488
  themeMode?: "light" | "dark";
399
489
  tokens?: Partial<DashboardShellTokens>;
400
490
  selectedItemId?: string;
401
- children: React.ReactNode;
491
+ children: React__default.ReactNode;
402
492
  };
403
493
 
404
- declare function DashboardShell({ sections, sidebarHeader, sidebarFooter, topBar, title, brand, logoutLabel, onLogout, type, themeMode, tokens, selectedItemId, children, }: DashboardShellProps): react_jsx_runtime.JSX.Element;
494
+ declare function DashboardShell({ sections, sidebarHeader, sidebarFooter, topBar, title, brand, logoutLabel, onLogout, type, themeMode, tokens, selectedItemId, children, }: DashboardShellProps): React.JSX.Element;
405
495
 
406
496
  type DockItem = {
407
497
  icon: IconName;
@@ -418,13 +508,13 @@ type DockProps = {
418
508
  * El componente se provee desde afuera via `renderAgentOrb`.
419
509
  */
420
510
  agentMode?: boolean;
421
- renderAgentOrb?: React.ComponentType<{
511
+ renderAgentOrb?: React__default.ComponentType<{
422
512
  size: number;
423
513
  paused: boolean;
424
514
  }>;
425
515
  style?: StyleProp<ViewStyle>;
426
516
  };
427
- declare function Dock({ items, selectedIndex, onSelect, visible, agentMode, renderAgentOrb, style }: DockProps): react_jsx_runtime.JSX.Element;
517
+ declare function Dock({ items, selectedIndex, onSelect, visible, agentMode, renderAgentOrb, style }: DockProps): React__default.JSX.Element;
428
518
 
429
519
  type DrawerMenuItemType = {
430
520
  icon?: IconName;
@@ -438,19 +528,144 @@ type DrawerMenuProps = {
438
528
  side?: "left" | "right";
439
529
  width?: number;
440
530
  items?: DrawerMenuItemType[];
441
- header?: React.ReactNode;
442
- footer?: React.ReactNode;
531
+ header?: React__default.ReactNode;
532
+ footer?: React__default.ReactNode;
443
533
  dismissible?: boolean;
444
534
  customizable?: boolean;
445
535
  itemStyle?: DrawerMenuItemStyle;
446
536
  };
447
- declare function DrawerMenu({ visible, onClose, side, width: widthProp, items, header, footer, dismissible, customizable, itemStyle, }: DrawerMenuProps): react_jsx_runtime.JSX.Element;
537
+ declare function DrawerMenu({ visible, onClose, side, width: widthProp, items, header, footer, dismissible, customizable, itemStyle, }: DrawerMenuProps): React__default.JSX.Element;
538
+
539
+ declare enum ListItemStyle {
540
+ DEFAULT = "DEFAULT",
541
+ LIGHT = "LIGHT",
542
+ DARKNESS = "DARKNESS"
543
+ }
544
+ type ListItemProps = {
545
+ title: string;
546
+ subtitle?: string;
547
+ onPress: () => void;
548
+ trailing?: IconName;
549
+ style?: ListItemStyle;
550
+ /** Ítem oculto/inactivo: atenúa la fila y el subtitle. */
551
+ dimmed?: boolean;
552
+ /** Línea divisoria inferior. */
553
+ separator?: boolean;
554
+ containerStyle?: StyleProp<ViewStyle>;
555
+ };
556
+ declare function ListItem({ title, subtitle, onPress, trailing, style, dimmed, separator, containerStyle, }: ListItemProps): React__default.JSX.Element;
557
+
558
+ declare enum ProductCardStyle {
559
+ DEFAULT = "DEFAULT",
560
+ LIGHT = "LIGHT",
561
+ DARKNESS = "DARKNESS"
562
+ }
563
+ type ProductCardCart = {
564
+ quantity?: number;
565
+ unitPrice?: string;
566
+ code?: string;
567
+ };
568
+ type ProductCardProps = {
569
+ name: string;
570
+ price?: string;
571
+ code?: string;
572
+ cart?: ProductCardCart;
573
+ maxQuantity?: number;
574
+ onQuantityChange?: (quantity: number) => void;
575
+ imageIcon?: IconName;
576
+ style?: ProductCardStyle;
577
+ containerStyle?: StyleProp<ViewStyle>;
578
+ };
579
+ declare function ProductCard({ name, price, code, cart, maxQuantity, onQuantityChange, imageIcon, style, containerStyle, }: ProductCardProps): React__default.JSX.Element;
580
+
581
+ declare enum ElementCardStyle {
582
+ DEFAULT = "DEFAULT",
583
+ LIGHT = "LIGHT",
584
+ DARKNESS = "DARKNESS"
585
+ }
586
+ type ElementCardProps = {
587
+ name: string;
588
+ /** Texto secundario debajo del nombre (opcional). */
589
+ subtitle?: string;
590
+ /** Ícono del placeholder que identifica el tipo de elemento (por defecto "folder"). */
591
+ icon?: IconName;
592
+ /** Llamado al presionar la card. */
593
+ onPress?: () => void;
594
+ /** Ícono a la derecha (por defecto "chevron-forward"). */
595
+ trailing?: IconName;
596
+ /** Llamado al presionar el ícono de la derecha. Si no se pasa, el ícono no es táctil. */
597
+ onTrailingPress?: () => void;
598
+ /** Elemento oculto/inactivo: atenúa la card. */
599
+ dimmed?: boolean;
600
+ style?: ElementCardStyle;
601
+ /** Override de estilo para el card contenedor. */
602
+ containerStyle?: StyleProp<ViewStyle>;
603
+ /** Fondo del elemento visual (TopAction) a la izquierda (opcional). */
604
+ visualBg?: string;
605
+ /** Color del icono del elemento visual (opcional). */
606
+ visualIconColor?: string;
607
+ };
608
+ declare function ElementCard({ name, subtitle, icon, onPress, trailing, onTrailingPress, dimmed, style, containerStyle, visualBg, visualIconColor, }: ElementCardProps): React__default.JSX.Element;
609
+
610
+ declare enum KeyValueListStyle {
611
+ DEFAULT = "DEFAULT",
612
+ LIGHT = "LIGHT",
613
+ DARKNESS = "DARKNESS"
614
+ }
615
+ type KeyValueItem = {
616
+ /** Texto de la columna izquierda (la clave). */
617
+ label: string;
618
+ /** Texto de la columna derecha (el valor). */
619
+ value?: string;
620
+ /** Ícono al final de la fila, táctil (p. ej. un "close" para quitar la fila). */
621
+ actionIcon?: IconName;
622
+ /** Llamado al presionar el ícono de acción. */
623
+ onAction?: () => void;
624
+ /** Llamado al presionar la fila completa. */
625
+ onPress?: () => void;
626
+ };
627
+ type KeyValueListProps = {
628
+ items: KeyValueItem[];
629
+ style?: KeyValueListStyle;
630
+ /** Override de estilo para el contenedor. */
631
+ containerStyle?: StyleProp<ViewStyle>;
632
+ };
633
+ declare function KeyValueList({ items, style, containerStyle, }: KeyValueListProps): React__default.JSX.Element | null;
634
+
635
+ declare enum StackDetailsStyle {
636
+ DEFAULT = "DEFAULT",
637
+ LIGHT = "LIGHT",
638
+ DARKNESS = "DARKNESS"
639
+ }
640
+ type StackDetailsAction = {
641
+ /** Ícono de la acción, táctil (p. ej. "pencil" para editar o "trash" para eliminar). */
642
+ icon: IconName;
643
+ /** Llamado al presionar el ícono de acción. */
644
+ onPress: () => void;
645
+ };
646
+ type StackDetailsRow = {
647
+ /** Texto de la columna izquierda (la clave). */
648
+ label: string;
649
+ /** Texto de la columna derecha (el valor). */
650
+ value?: string;
651
+ /** Si se pasa, la fila es presionable y muestra un chevron al final. */
652
+ onPress?: () => void;
653
+ /** Íconos de acción al final de la fila (editar, eliminar, desasignar...). */
654
+ actions?: StackDetailsAction[];
655
+ };
656
+ type StackDetailsProps = {
657
+ rows: StackDetailsRow[];
658
+ style?: StackDetailsStyle;
659
+ /** Override de estilo para el contenedor. */
660
+ containerStyle?: StyleProp<ViewStyle>;
661
+ };
662
+ declare function StackDetails({ rows, style, containerStyle, }: StackDetailsProps): React__default.JSX.Element | null;
448
663
 
449
664
  type ColorWheelProps = {
450
665
  onPress: () => void;
451
666
  size?: number;
452
667
  };
453
- declare function ColorWheel({ onPress, size }: ColorWheelProps): react_jsx_runtime.JSX.Element;
668
+ declare function ColorWheel({ onPress, size }: ColorWheelProps): React__default.JSX.Element;
454
669
 
455
670
  type ColorToken = {
456
671
  /** Nombre legible del token (ej: "Fondo panel") */
@@ -470,7 +685,7 @@ type ColorCustomizerDialogProps = {
470
685
  tokens: ColorToken[];
471
686
  onTokenChange: (key: string, value: string) => void;
472
687
  };
473
- declare function ColorCustomizerDialog({ visible, onClose, componentName, tokens, onTokenChange, }: ColorCustomizerDialogProps): react_jsx_runtime.JSX.Element;
688
+ declare function ColorCustomizerDialog({ visible, onClose, componentName, tokens, onTokenChange, }: ColorCustomizerDialogProps): React__default.JSX.Element;
474
689
 
475
690
  interface ComposingOrbProps {
476
691
  /** Rendered size in points. Default 64. */
@@ -497,7 +712,108 @@ interface ComposingOrbProps {
497
712
  set(value: number): void;
498
713
  };
499
714
  }
500
- declare function ComposingOrb({ size, style, accessibilityLabel, ...rest }: ComposingOrbProps): react_jsx_runtime.JSX.Element;
715
+ declare function ComposingOrb({ size, style, accessibilityLabel, ...rest }: ComposingOrbProps): React.JSX.Element;
716
+
717
+ declare enum ActionTilesStyle {
718
+ DEFAULT = "DEFAULT",
719
+ LIGHT = "LIGHT",
720
+ DARKNESS = "DARKNESS"
721
+ }
722
+ type ActionTile = {
723
+ icon: IconName;
724
+ label: string;
725
+ onPress?: () => void;
726
+ /** true pinta ícono y texto en color de peligro (acciones destructivas). */
727
+ destructive?: boolean;
728
+ accessibilityLabel?: string;
729
+ };
730
+ type ActionTilesProps = {
731
+ actions: ActionTile[];
732
+ style?: ActionTilesStyle;
733
+ /** Margin horizontal del contenedor (si no se pasa, 0). Inserta el card completo. */
734
+ horizontalMargin?: number;
735
+ containerStyle?: StyleProp<ViewStyle>;
736
+ };
737
+ declare function ActionTiles({ actions, style, horizontalMargin, containerStyle }: ActionTilesProps): React__default.JSX.Element;
738
+
739
+ declare enum ActionCardStyle {
740
+ DEFAULT = "DEFAULT",
741
+ LIGHT = "LIGHT",
742
+ DARKNESS = "DARKNESS"
743
+ }
744
+ type ActionCardProps = {
745
+ /** Alto del card en píxeles. */
746
+ height: number;
747
+ /** Ancho del card en píxeles. Si no se pasa, el card reparte el espacio disponible (flex). */
748
+ width?: number;
749
+ /** Ícono tipado del design system, pequeño arriba a la derecha. */
750
+ icon: IconName;
751
+ /** Texto grande inferior izquierdo (acción). */
752
+ label: string;
753
+ /** Texto pequeño tenue sobre el label. */
754
+ caption?: string;
755
+ style?: ActionCardStyle;
756
+ onPress?: () => void;
757
+ accessibilityLabel?: string;
758
+ /** Override de estilo para el card contenedor. */
759
+ containerStyle?: StyleProp<ViewStyle>;
760
+ };
761
+ declare function ActionCard({ height, width, icon, label, caption, style, onPress, accessibilityLabel, containerStyle, }: ActionCardProps): React__default.JSX.Element;
762
+
763
+ declare enum ShortcutCardStyle {
764
+ DEFAULT = "DEFAULT",
765
+ LIGHT = "LIGHT",
766
+ DARKNESS = "DARKNESS"
767
+ }
768
+ type ShortcutItem = {
769
+ icon: IconName;
770
+ label: string;
771
+ onPress?: () => void;
772
+ accessibilityLabel?: string;
773
+ };
774
+ type ShortcutCardProps = {
775
+ /** Atajos a mostrar dentro de la card (se reparten el ancho en una fila). */
776
+ shortcuts: ShortcutItem[];
777
+ /** Diámetro del círculo (por defecto 44). */
778
+ circleSize?: number;
779
+ /** Tamaño del ícono (por defecto 20). */
780
+ iconSize?: number;
781
+ style?: ShortcutCardStyle;
782
+ /** Override de estilo para la card contenedora. */
783
+ containerStyle?: StyleProp<ViewStyle>;
784
+ };
785
+ declare function ShortcutCard({ shortcuts, circleSize, iconSize, style, containerStyle, }: ShortcutCardProps): React__default.JSX.Element;
786
+
787
+ declare enum TabNavigationStyle {
788
+ DEFAULT = "DEFAULT",
789
+ LIGHT = "LIGHT",
790
+ DARKNESS = "DARKNESS"
791
+ }
792
+ type TabNavigationOption = {
793
+ value: string;
794
+ label: string;
795
+ icon?: IconName;
796
+ };
797
+ type TabNavigationProps = {
798
+ options: TabNavigationOption[];
799
+ selected?: string;
800
+ onSelect?: (value: string) => void;
801
+ style?: TabNavigationStyle;
802
+ /** Fuerza el modo de reparto sin medir. `true` reparte el espacio en partes
803
+ * iguales siempre (equivalente al modo fit, útil cuando se sabe que las
804
+ * opciones son pocas y deben llenar el ancho); `false` fuerza scroll
805
+ * horizontal con las chips a ancho natural. Si no se pasa, el componente
806
+ * mide el ancho natural de las chips y decide solo: fit si entran, scroll si
807
+ * se desbordan. */
808
+ fits?: boolean;
809
+ /** Margin horizontal del contenedor (si no se pasa, 0). Cuando las opciones
810
+ * caben (fit) inserta el bar desde los costados del sitio de uso; si se
811
+ * desbordan (scroll) el bar va a ancho completo y el margen se reparte como
812
+ * colchones internos del contenido: margen izquierdo en la primera chip y
813
+ * margen derecho en la última. */
814
+ horizontalMargin?: number;
815
+ };
816
+ declare function TabNavigation({ options, selected: controlledSelected, onSelect, style, fits, horizontalMargin, }: TabNavigationProps): React__default.JSX.Element;
501
817
 
502
818
  type DropdownOption = {
503
819
  label: string;
@@ -518,7 +834,7 @@ type DropdownProps = {
518
834
  maxHeight?: number;
519
835
  disabled?: boolean;
520
836
  };
521
- declare function Dropdown({ value, placeholder, options, onChange, style, maxHeight, disabled, }: DropdownProps): react_jsx_runtime.JSX.Element;
837
+ declare function Dropdown({ value, placeholder, options, onChange, style, maxHeight, disabled, }: DropdownProps): React__default.JSX.Element;
522
838
 
523
839
  type FloatingActionButtonPosition = "bottom-right" | "bottom-left";
524
840
  interface FloatingActionButtonProps {
@@ -528,25 +844,25 @@ interface FloatingActionButtonProps {
528
844
  position?: FloatingActionButtonPosition;
529
845
  style?: StyleProp<ViewStyle>;
530
846
  }
531
- declare function FloatingActionButton({ icon, onPress, position, style, }: FloatingActionButtonProps): react_jsx_runtime.JSX.Element;
847
+ declare function FloatingActionButton({ icon, onPress, position, style, }: FloatingActionButtonProps): React__default.JSX.Element;
532
848
 
533
849
  type HeaderCardLayoutProps = {
534
850
  headerBackgroundColor?: string;
535
851
  bodyBackgroundColor?: string;
536
- header: React.ReactNode;
537
- children: React.ReactNode;
852
+ header: React__default.ReactNode;
853
+ children: React__default.ReactNode;
538
854
  style?: StyleProp<ViewStyle>;
539
855
  };
540
- declare function HeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: HeaderCardLayoutProps): react_jsx_runtime.JSX.Element;
856
+ declare function HeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: HeaderCardLayoutProps): React__default.JSX.Element;
541
857
 
542
858
  type ReverseHeaderCardLayoutProps = {
543
859
  headerBackgroundColor?: string;
544
860
  bodyBackgroundColor?: string;
545
- header: React.ReactNode;
546
- children: React.ReactNode;
861
+ header: React__default.ReactNode;
862
+ children: React__default.ReactNode;
547
863
  style?: StyleProp<ViewStyle>;
548
864
  };
549
- declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps): react_jsx_runtime.JSX.Element;
865
+ declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps): React__default.JSX.Element;
550
866
 
551
867
  interface InputProps extends TextInputProps {
552
868
  icon?: IconName;
@@ -558,7 +874,7 @@ interface InputProps extends TextInputProps {
558
874
  * (errores de validación previos a consultar el backend). */
559
875
  error?: string;
560
876
  }
561
- declare function Input({ style, inputStyle, placeholderTextColor, icon, showToggle, error, secureTextEntry, onFocus, onBlur, ...rest }: InputProps): react_jsx_runtime.JSX.Element;
877
+ declare function Input({ style, inputStyle, placeholderTextColor, icon, showToggle, error, secureTextEntry, onFocus, onBlur, ...rest }: InputProps): React__default.JSX.Element;
562
878
 
563
879
  type LayoutRowChildProps = {
564
880
  size?: LayoutRowSize;
@@ -571,9 +887,9 @@ type LayoutRowProps = {
571
887
  gap?: number;
572
888
  padding?: number;
573
889
  } & ViewProps;
574
- declare function LayoutRowFirst({ size, scroll, children }: LayoutRowChildProps): react_jsx_runtime.JSX.Element;
575
- declare function LayoutRowSecond({ size, scroll, children }: LayoutRowChildProps): react_jsx_runtime.JSX.Element;
576
- declare function LayoutRow({ debug, fill, gap, padding, style, children, ...rest }: LayoutRowProps): react_jsx_runtime.JSX.Element;
890
+ declare function LayoutRowFirst({ size, scroll, children }: LayoutRowChildProps): React__default.JSX.Element;
891
+ declare function LayoutRowSecond({ size, scroll, children }: LayoutRowChildProps): React__default.JSX.Element;
892
+ declare function LayoutRow({ debug, fill, gap, padding, style, children, ...rest }: LayoutRowProps): React__default.JSX.Element;
577
893
  declare namespace LayoutRow {
578
894
  var First: typeof LayoutRowFirst;
579
895
  var Second: typeof LayoutRowSecond;
@@ -590,9 +906,9 @@ type LayoutColumnProps = {
590
906
  gap?: number;
591
907
  padding?: number;
592
908
  } & ViewProps;
593
- declare function LayoutColumnFirst({ size, scroll, children }: LayoutColumnChildProps): react_jsx_runtime.JSX.Element;
594
- declare function LayoutColumnSecond({ size, scroll, children }: LayoutColumnChildProps): react_jsx_runtime.JSX.Element;
595
- declare function LayoutColumn({ debug, fill, gap, padding, style, children, ...rest }: LayoutColumnProps): react_jsx_runtime.JSX.Element;
909
+ declare function LayoutColumnFirst({ size, scroll, children }: LayoutColumnChildProps): React__default.JSX.Element;
910
+ declare function LayoutColumnSecond({ size, scroll, children }: LayoutColumnChildProps): React__default.JSX.Element;
911
+ declare function LayoutColumn({ debug, fill, gap, padding, style, children, ...rest }: LayoutColumnProps): React__default.JSX.Element;
596
912
  declare namespace LayoutColumn {
597
913
  var First: typeof LayoutColumnFirst;
598
914
  var Second: typeof LayoutColumnSecond;
@@ -610,7 +926,7 @@ interface SkeletonProps {
610
926
  shape?: SkeletonShape;
611
927
  style?: StyleProp<ViewStyle>;
612
928
  }
613
- declare function Skeleton({ width, height, borderRadius, shape, style, }: SkeletonProps): react_jsx_runtime.JSX.Element;
929
+ declare function Skeleton({ width, height, borderRadius, shape, style, }: SkeletonProps): React__default.JSX.Element;
614
930
 
615
931
  interface SkeletonTextProps {
616
932
  /** Ancho de la línea: número (px) o string (ej. "100%", "60%"). */
@@ -619,14 +935,14 @@ interface SkeletonTextProps {
619
935
  height?: number;
620
936
  style?: StyleProp<ViewStyle>;
621
937
  }
622
- declare function SkeletonText({ width, height, style, }: SkeletonTextProps): react_jsx_runtime.JSX.Element;
938
+ declare function SkeletonText({ width, height, style, }: SkeletonTextProps): React__default.JSX.Element;
623
939
 
624
940
  interface SkeletonCircleProps {
625
941
  /** Diámetro del círculo en px (default 32, imita iconos/avatares). */
626
942
  size?: number;
627
943
  style?: StyleProp<ViewStyle>;
628
944
  }
629
- declare function SkeletonCircle({ size, style }: SkeletonCircleProps): react_jsx_runtime.JSX.Element;
945
+ declare function SkeletonCircle({ size, style }: SkeletonCircleProps): React__default.JSX.Element;
630
946
 
631
947
  interface SkeletonCardProps extends ViewProps {
632
948
  /** Altura mínima del frame (útil cuando el esqueleto aún no define contenido). */
@@ -637,7 +953,7 @@ interface SkeletonCardProps extends ViewProps {
637
953
  * (`SkeletonText`, `SkeletonCircle`) como hijos. El frame NO anima: los
638
954
  * bloques internos son los que pulsan.
639
955
  */
640
- declare function SkeletonCard({ height, style, children, ...rest }: SkeletonCardProps): react_jsx_runtime.JSX.Element;
956
+ declare function SkeletonCard({ height, style, children, ...rest }: SkeletonCardProps): React__default.JSX.Element;
641
957
 
642
958
  interface ToolItem {
643
959
  id: string;
@@ -649,7 +965,7 @@ interface ToolsCardProps {
649
965
  tools: ToolItem[];
650
966
  style?: ViewStyle;
651
967
  }
652
- declare function ToolsCard({ tools, style }: ToolsCardProps): react_jsx_runtime.JSX.Element;
968
+ declare function ToolsCard({ tools, style }: ToolsCardProps): React__default.JSX.Element;
653
969
 
654
970
  type TreeNode = {
655
971
  id: string;
@@ -673,7 +989,7 @@ type TreeEditorProps = {
673
989
  /** Etiqueta del botón de agregar raíz (solo modo edición). Default: "Agregar raíz". */
674
990
  rootLabel?: string;
675
991
  /** Render custom para el contenido de cada nodo. Recibe el nodo y el render por defecto. */
676
- renderNode?: (node: TreeNode, defaultContent: React.ReactNode) => React.ReactNode;
992
+ renderNode?: (node: TreeNode, defaultContent: React__default.ReactNode) => React__default.ReactNode;
677
993
  /** Called when user taps any add button/row. When provided, the built-in add dialog is bypassed. */
678
994
  onRequestAdd?: (parentId: string | null) => void;
679
995
  /** Called when user taps "Editar" from the node menu. When provided, the built-in edit dialog is bypassed. */
@@ -695,7 +1011,7 @@ declare function countNodes(nodes: TreeNode[]): number;
695
1011
  * expandida con su primer nivel visible.
696
1012
  */
697
1013
  declare function buildInitialCollapsed(nodes: TreeNode[]): Record<string, boolean>;
698
- declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, style }: TreeEditorProps): react_jsx_runtime.JSX.Element;
1014
+ declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, style }: TreeEditorProps): React__default.JSX.Element;
699
1015
 
700
1016
  interface TextFieldProps {
701
1017
  label: string;
@@ -716,7 +1032,7 @@ interface TextFieldProps {
716
1032
  /** Estilo del contenedor (label + campo). */
717
1033
  style?: StyleProp<ViewStyle>;
718
1034
  }
719
- declare function TextField({ label, value, onChangeText, placeholder, editable, secureTextEntry, keyboardType, autoCapitalize, maxLength, multiline, error, style, }: TextFieldProps): react_jsx_runtime.JSX.Element;
1035
+ declare function TextField({ label, value, onChangeText, placeholder, editable, secureTextEntry, keyboardType, autoCapitalize, maxLength, multiline, error, style, }: TextFieldProps): React__default.JSX.Element;
720
1036
 
721
1037
  type SplitColorCardProps = {
722
1038
  label: string;
@@ -726,7 +1042,7 @@ type SplitColorCardProps = {
726
1042
  darkTokenName: string;
727
1043
  onPress?: () => void;
728
1044
  };
729
- declare function SplitColorCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, onPress, }: SplitColorCardProps): react_jsx_runtime.JSX.Element;
1045
+ declare function SplitColorCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, onPress, }: SplitColorCardProps): React__default.JSX.Element;
730
1046
  type SplitTextCardProps = {
731
1047
  label: string;
732
1048
  lightHex: string;
@@ -738,7 +1054,7 @@ type SplitTextCardProps = {
738
1054
  textContent?: string;
739
1055
  onPress?: () => void;
740
1056
  };
741
- declare function SplitTextCard({ label, lightHex, darkHex, lightBgHex, darkBgHex, lightTokenName, darkTokenName, textContent, onPress, }: SplitTextCardProps): react_jsx_runtime.JSX.Element;
1057
+ declare function SplitTextCard({ label, lightHex, darkHex, lightBgHex, darkBgHex, lightTokenName, darkTokenName, textContent, onPress, }: SplitTextCardProps): React__default.JSX.Element;
742
1058
  type SplitDarknessCardProps = {
743
1059
  label: string;
744
1060
  lightHex: string;
@@ -749,21 +1065,21 @@ type SplitDarknessCardProps = {
749
1065
  darkKey: string;
750
1066
  onPress?: () => void;
751
1067
  };
752
- declare function SplitDarknessCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, lightKey, darkKey, onPress, }: SplitDarknessCardProps): react_jsx_runtime.JSX.Element;
1068
+ declare function SplitDarknessCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, lightKey, darkKey, onPress, }: SplitDarknessCardProps): React__default.JSX.Element;
753
1069
 
754
1070
  type TextVariant = TextType;
755
1071
  interface TextProps extends TextProps$1 {
756
1072
  variant?: TextVariant;
757
1073
  color?: string;
758
1074
  }
759
- declare function Text({ variant, color, style, ...rest }: TextProps): react_jsx_runtime.JSX.Element;
1075
+ declare function Text({ variant, color, style, ...rest }: TextProps): React__default.JSX.Element;
760
1076
 
761
1077
  interface AppTextHeaderProps {
762
1078
  heading: string;
763
1079
  caption?: string;
764
1080
  style?: ViewStyle;
765
1081
  }
766
- declare function AppTextHeader({ heading, caption, style }: AppTextHeaderProps): react_jsx_runtime.JSX.Element;
1082
+ declare function AppTextHeader({ heading, caption, style }: AppTextHeaderProps): React__default.JSX.Element;
767
1083
 
768
1084
  interface EmptyStateProps {
769
1085
  icon?: IconName;
@@ -772,7 +1088,7 @@ interface EmptyStateProps {
772
1088
  caption?: string;
773
1089
  style?: ViewStyle;
774
1090
  }
775
- declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps): react_jsx_runtime.JSX.Element;
1091
+ declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps): React__default.JSX.Element;
776
1092
 
777
1093
  type AppInputProps = {
778
1094
  label: string;
@@ -785,19 +1101,34 @@ type AppFormCardProps = {
785
1101
  labelWidth?: number;
786
1102
  style?: ViewStyle;
787
1103
  };
788
- declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps): react_jsx_runtime.JSX.Element;
1104
+ declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps): React__default.JSX.Element;
789
1105
 
790
1106
  type AppTextInputProps = AppInputProps & {
791
1107
  type?: "text";
792
1108
  value: string;
793
- onChangeText: (value: string) => void;
1109
+ /** Opcional: los campos de solo lectura (readOnly u onPress) completados por
1110
+ * escaneo no necesitan proveer un handler de texto. */
1111
+ onChangeText?: (value: string) => void;
794
1112
  placeholder?: string;
795
1113
  autoCapitalize?: "none" | "sentences" | "words" | "characters";
796
1114
  keyboardType?: KeyboardTypeOptions;
797
1115
  maxLength?: number;
798
1116
  editable?: boolean;
1117
+ /** Solo lectura: bloquea el ingreso de texto (sin teclado) pero conserva el
1118
+ * aspecto normal de la fila y deja operativas las acciones (p. ej. escanear). */
1119
+ readOnly?: boolean;
1120
+ /** Al tocar la fila: si se pasa, se usa este handler en vez de enfocar el
1121
+ * input (p. ej. campos que solo se completan escaneando: tocar el campo abre
1122
+ * el escáner y no el teclado). */
1123
+ onPress?: () => void;
1124
+ /** Botón de acción a la derecha del campo (ej. escanear un código). */
1125
+ trailingAction?: {
1126
+ icon: IconName;
1127
+ onPress: () => void;
1128
+ accessibilityLabel?: string;
1129
+ };
799
1130
  };
800
- declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextInputProps): react_jsx_runtime.JSX.Element;
1131
+ declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, readOnly, trailingAction, onPress: onPressOverride, }: AppTextInputProps): React__default.JSX.Element;
801
1132
 
802
1133
  type AppTextAreaProps = AppInputProps & {
803
1134
  value: string;
@@ -808,7 +1139,7 @@ type AppTextAreaProps = AppInputProps & {
808
1139
  maxLength?: number;
809
1140
  editable?: boolean;
810
1141
  };
811
- declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): react_jsx_runtime.JSX.Element;
1142
+ declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): React__default.JSX.Element;
812
1143
 
813
1144
  type AppSelectorOption = {
814
1145
  label: string;
@@ -822,14 +1153,14 @@ type AppSelectorProps = AppInputProps & {
822
1153
  placeholder?: string;
823
1154
  disabled?: boolean;
824
1155
  };
825
- declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps): react_jsx_runtime.JSX.Element;
1156
+ declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps): React__default.JSX.Element;
826
1157
 
827
1158
  type AppToggleProps = AppInputProps & {
828
1159
  value: boolean;
829
1160
  onValueChange: (value: boolean) => void;
830
1161
  disabled?: boolean;
831
1162
  };
832
- declare function AppToggle({ label, labelWidth, value, onValueChange, disabled, }: AppToggleProps): react_jsx_runtime.JSX.Element;
1163
+ declare function AppToggle({ label, labelWidth, value, onValueChange, disabled, }: AppToggleProps): React__default.JSX.Element;
833
1164
 
834
1165
  type AppButtonVariant = "solid" | "outline" | "ghost";
835
1166
  type AppButtonProps = {
@@ -842,10 +1173,10 @@ type AppButtonProps = {
842
1173
  borderColor?: string;
843
1174
  style?: ViewStyle;
844
1175
  };
845
- declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): react_jsx_runtime.JSX.Element;
1176
+ declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): React__default.JSX.Element;
846
1177
 
847
1178
  type KeyboardSafeScreenProps = {
848
- children: React.ReactNode;
1179
+ children: React__default.ReactNode;
849
1180
  style?: StyleProp<ViewStyle>;
850
1181
  contentContainerStyle?: StyleProp<ViewStyle>;
851
1182
  scrollViewProps?: ScrollViewProps;
@@ -856,7 +1187,7 @@ type KeyboardSafeScreenProps = {
856
1187
  * react-native-keyboard-controller, negativa con teclado visible) para
857
1188
  * empujar el contenido sin re-renders de JS. En web mide el visualViewport.
858
1189
  */
859
- declare function KeyboardSafeScreen({ children, style, contentContainerStyle, scrollViewProps, }: KeyboardSafeScreenProps): react_jsx_runtime.JSX.Element;
1190
+ declare function KeyboardSafeScreen({ children, style, contentContainerStyle, scrollViewProps, }: KeyboardSafeScreenProps): React__default.JSX.Element;
860
1191
 
861
1192
  type SheetKind = "topSheet" | "bottomSheet" | "fullHeader" | "fullBody";
862
1193
  interface RouteOptions {
@@ -890,7 +1221,7 @@ type SheetLayoutContextValue = {
890
1221
  };
891
1222
  /** Permite que el contenido de una capa pida cambiar de ruta sin navigator. */
892
1223
  declare function useSheetLayout(): SheetLayoutContextValue;
893
- declare function SheetLayout({ routes, activeKey, onRequestChange, style, }: SheetLayoutProps): react_jsx_runtime.JSX.Element;
1224
+ declare function SheetLayout({ routes, activeKey, onRequestChange, style, }: SheetLayoutProps): React__default.JSX.Element;
894
1225
 
895
1226
  /**
896
1227
  * Cada "kind" de ruta se resuelve en una composición de capas (hosts):
@@ -921,10 +1252,10 @@ type SheetSlotProps = {
921
1252
  interactive: boolean;
922
1253
  baseColor: "header" | "body";
923
1254
  };
924
- declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps): react_jsx_runtime.JSX.Element | null;
1255
+ declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps): React__default.JSX.Element | null;
925
1256
 
926
1257
  type MainLayoutProps = {
927
- children?: React.ReactNode;
1258
+ children?: React__default.ReactNode;
928
1259
  backgroundColor?: string;
929
1260
  /** Si el body debe poder scrollear. Default true. */
930
1261
  scroll?: boolean;
@@ -936,15 +1267,15 @@ type MainLayoutProps = {
936
1267
  * muestra un body (scrolleable por defecto). Punto de partida mínimo para
937
1268
  * ir construyendo encima según se necesite.
938
1269
  */
939
- declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps): react_jsx_runtime.JSX.Element;
1270
+ declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps): React__default.JSX.Element;
940
1271
 
941
1272
  type SectionKey = "top" | "mid" | "bottom";
942
- type HeightSpec = "content" | "fill" | "fillRest" | "third" | number;
1273
+ type HeightSpec = "content" | "fill" | "fillRest" | "minFillRest" | "third" | number;
943
1274
  type SlotName = "header" | "body" | "footer";
944
1275
  type SectionBehavior = {
945
1276
  /** Si la sección se renderiza. Default true. */
946
1277
  visible?: boolean;
947
- /** Cómo se determina su alto: contenido medido, llenar (H), rellenar resto, un tercio, o px fijos. Default "content". */
1278
+ /** Cómo se determina su alto: contenido medido, llenar (H), rellenar resto, al menos rellenar el resto creciendo con el contenido, un tercio, o px fijos. Default "content". */
948
1279
  height?: HeightSpec;
949
1280
  /** La sección scrollea internamente (ScrollView propio). */
950
1281
  scroll?: boolean;
@@ -984,23 +1315,58 @@ type AppNavigation = {
984
1315
  /** Presets = las 5 variantes del motor, reutilizables por nombre. */
985
1316
  declare const layoutStates: Record<LayoutStateName, LayoutState>;
986
1317
  declare function useAppNavigation(): AppNavigation;
987
- type AppLayoutDebugSnapshot = {
988
- route: string;
989
- anchors: string[];
990
- anim: Record<string, number>;
991
- naturals: Record<SectionKey, number>;
992
- lastMeasured: Record<SectionKey, number>;
993
- windowH: number;
994
- };
995
- declare function useAppLayoutDebug(): {
996
- snapshot: () => AppLayoutDebugSnapshot;
997
- };
998
1318
  type AppLayoutProps = {
999
1319
  initialRoute: AppRoute;
1000
1320
  /** Muestra un botón de volver global cuando canGoBack. Default true. */
1001
1321
  showBackButton?: boolean;
1322
+ /**
1323
+ * Anima las transiciones de estado (rutas y colapsos por medición) con
1324
+ * layout transitions de Reanimated (morph de altura en hilo UI), en lugar de
1325
+ * aplicar las alturas planas de forma inmediata. Default false (motor
1326
+ * estático estable).
1327
+ */
1328
+ animateTransitions?: boolean;
1329
+ /**
1330
+ * Cuándo revelar el contenido visible de las secciones durante una
1331
+ * transición animada. "always": siempre visible (el alto anima con el
1332
+ * contenido pintado). "after": el contenido se oculta mientras el alto
1333
+ * transiciona y se desvanece al terminar. Default "always".
1334
+ */
1335
+ contentReveal?: "always" | "after";
1336
+ };
1337
+ declare function AppLayout({ initialRoute, showBackButton, animateTransitions, contentReveal, }: AppLayoutProps): React__default.JSX.Element;
1338
+
1339
+ type AppShellNavigation = {
1340
+ /** Nombre de la ruta actual del shell (lockedRoute si está bloqueada). */
1341
+ current: string;
1342
+ /** AppRoute resuelto de `current` contra el mapa `routes` (con fallback), listo para alimentar el AppLayout. */
1343
+ currentRoute: AppRoute;
1344
+ /** Hay una ruta anterior en el stack a la que volver. */
1345
+ canGoBack: boolean;
1346
+ /** Empuja una ruta al shell (no-op si ya es la actual o si está bloqueado). */
1347
+ navigate: (name: string) => void;
1348
+ /** Vuelve a la ruta anterior (no-op si no hay stack). */
1349
+ back: () => void;
1350
+ /** Reemplaza todo el stack por [name] (reset al salir del shell hacia una ruta expo-router). */
1351
+ reset: (name: string) => void;
1352
+ };
1353
+ type AppShellProps = {
1354
+ /** Mapa name → AppRoute del shell. */
1355
+ routes: Record<string, AppRoute>;
1356
+ /** Nombre de la ruta inicial del stack. Default: `fallbackRoute`. */
1357
+ initialRoute?: string;
1358
+ /** Ruta por defecto cuando un nombre no existe en `routes`. Default "home". */
1359
+ fallbackRoute?: string;
1360
+ /**
1361
+ * Ruta bloqueada: si está definida, el shell muestra SIEMPRE esta ruta y la
1362
+ * navegación interna se ignora (p. ej. "login" cuando no hay sesión). Al
1363
+ * volver a undefined, el shell cae a la ruta que esté en el tope del stack.
1364
+ */
1365
+ lockedRoute?: string;
1366
+ children?: ReactNode;
1002
1367
  };
1003
- declare function AppLayout({ initialRoute, showBackButton, }: AppLayoutProps): react_jsx_runtime.JSX.Element;
1368
+ declare function useAppShell(): AppShellNavigation;
1369
+ declare function AppShell({ routes, initialRoute, fallbackRoute, lockedRoute, children, }: AppShellProps): React__default.JSX.Element;
1004
1370
 
1005
1371
  type DivisorPosition = "top" | "bottom";
1006
1372
  type DivisorProps = {
@@ -1014,11 +1380,15 @@ type DivisorProps = {
1014
1380
  height?: number;
1015
1381
  /** Muestra el "grabber" (pill) estilo iOS centrado en el borde de la hoja. */
1016
1382
  handle?: boolean;
1383
+ /** Extiende la capa oscura más allá de la caja base por el lado recto (contra
1384
+ * el borde de la hoja), para que no quede costura ni subpixel entre el cap y
1385
+ * la hoja. Default 0. */
1386
+ extend?: number;
1017
1387
  /** Color del grabber. Default: blanco translúcido. */
1018
1388
  handleColor?: string;
1019
1389
  style?: ViewStyle;
1020
1390
  };
1021
- declare function Divisor({ position, color, baseColor, height, handle, handleColor, style, }: DivisorProps): react_jsx_runtime.JSX.Element;
1391
+ declare function Divisor({ position, color, baseColor, height, handle, extend, handleColor, style, }: DivisorProps): React__default.JSX.Element;
1022
1392
 
1023
1393
  /**
1024
1394
  * Dirección de entrada/salida de una capa durante una transición.
@@ -1038,6 +1408,139 @@ declare function resolveTransition(from: SheetKind, to: SheetKind): TransitionSp
1038
1408
  /** Signo del desplazamiento vertical para una dirección de translate. */
1039
1409
  declare function directionSign(dir: LayerDirection): number;
1040
1410
 
1411
+ /** Orientación de la cámara (cámara trasera o frontal). */
1412
+ type CameraFacing = CameraType;
1413
+ /** Modo de flash para la captura de fotos (off → on → auto). */
1414
+ type CameraFlashMode = FlashMode;
1415
+ /** Resultado de una foto capturada con la cámara. */
1416
+ type CapturePhoto = {
1417
+ /** URI local (nativo) o base64 (web) de la imagen capturada. */
1418
+ uri: string;
1419
+ /** Ancho de la imagen. */
1420
+ width: number;
1421
+ /** Alto de la imagen. */
1422
+ height: number;
1423
+ };
1424
+ /** Resultado de un código escaneado. */
1425
+ type ScanResult = {
1426
+ /** Tipo de código escaneado (ej. "qr", "code128"). */
1427
+ type: string;
1428
+ /** Información decodificada del código. */
1429
+ value: string;
1430
+ };
1431
+
1432
+ type CameraScreenContainerProps = {
1433
+ children?: React__default.ReactNode;
1434
+ style?: StyleProp<ViewStyle>;
1435
+ };
1436
+ declare function CameraScreenContainer({ children, style }: CameraScreenContainerProps): React__default.JSX.Element;
1437
+
1438
+ type CameraPermissionGateProps = {
1439
+ children?: React__default.ReactNode;
1440
+ /** Título mostrado en la cabecera (recién el host provee un onClose). */
1441
+ title?: string;
1442
+ onClose?: () => void;
1443
+ /** Texto del estado sin permiso. Default: mensaje estándar. */
1444
+ deniedMessage?: string;
1445
+ };
1446
+ declare function CameraPermissionGate({ children, title, onClose, deniedMessage }: CameraPermissionGateProps): React__default.JSX.Element;
1447
+
1448
+ type CameraHudProps = {
1449
+ /** Título centrado de la barra superior. */
1450
+ title?: string;
1451
+ /** Si se pasa, muestra el botón de volver (barra superior izquierda). */
1452
+ onClose?: () => void;
1453
+ /** Ícono del botón de volver. Default "arrow-back". */
1454
+ closeIcon?: IconName;
1455
+ /** Flash de captura (barra superior derecha). Se muestra solo en modo captura. */
1456
+ flash?: CameraFlashMode;
1457
+ onToggleFlash?: () => void;
1458
+ /** Linterna del scanner (barra superior derecha en modo escaneo). */
1459
+ torch?: boolean;
1460
+ onToggleTorch?: () => void;
1461
+ /** Par de botones del modo captura. */
1462
+ onFlipCamera?: () => void;
1463
+ canFlipCamera?: boolean;
1464
+ onCapture?: () => void;
1465
+ capturing?: boolean;
1466
+ canCapture?: boolean;
1467
+ };
1468
+ declare function CameraHud({ title, onClose, closeIcon, flash, onToggleFlash, torch, onToggleTorch, onFlipCamera, canFlipCamera, onCapture, capturing, canCapture, }: CameraHudProps): React__default.JSX.Element;
1469
+ type HudIconButtonProps = {
1470
+ icon: IconName;
1471
+ label: string;
1472
+ onPress?: () => void;
1473
+ active?: boolean;
1474
+ size?: "md" | "lg";
1475
+ };
1476
+ declare function HudIconButton({ icon, label, onPress, active, size }: HudIconButtonProps): React__default.JSX.Element;
1477
+ declare function ShutterButton({ busy, enabled, onPress, }: {
1478
+ busy?: boolean;
1479
+ enabled?: boolean;
1480
+ onPress?: () => void;
1481
+ }): React__default.JSX.Element;
1482
+
1483
+ type CameraCaptureScreenProps = {
1484
+ /** Si es false, la pantalla no se renderiza. Default true. */
1485
+ visible?: boolean;
1486
+ /** Título de la cabecera. Default "Cámara". */
1487
+ title?: string;
1488
+ /** Botón de volver (prop del host). */
1489
+ onClose?: () => void;
1490
+ /** Flash actual. Cicla off → on → auto → off al tocar. Default "off". */
1491
+ flash?: CameraFlashMode;
1492
+ onFlashChange?: (flash: CameraFlashMode) => void;
1493
+ /** Cámara activa. Default "back". */
1494
+ facing?: CameraFacing;
1495
+ onFacingChange?: (facing: CameraFacing) => void;
1496
+ /** Calidad JPEG de la captura (0–1). Default 0.85. */
1497
+ quality?: number;
1498
+ /** Incluir la imagen en Base64. Default false. */
1499
+ includeBase64?: boolean;
1500
+ /** Incluir datos EXIF. Default false. */
1501
+ includeExif?: boolean;
1502
+ /** Espejar la frontal. Default true. */
1503
+ mirrorFront?: boolean;
1504
+ /** Resultado de una foto tomada. */
1505
+ onCapture?: (photo: CapturePhoto) => void;
1506
+ /** Preview de la cámara listo. */
1507
+ onOpenCamera?: () => void;
1508
+ /** Error de montaje o captura. */
1509
+ onCameraError?: (error: unknown) => void;
1510
+ style?: StyleProp<ViewStyle>;
1511
+ };
1512
+ declare function CameraCaptureScreen({ visible, title, onClose, flash, onFlashChange, facing, onFacingChange, quality, includeBase64, includeExif, mirrorFront, onCapture, onOpenCamera, onCameraError, style, }: CameraCaptureScreenProps): React__default.JSX.Element | null;
1513
+
1514
+ type BarcodeScannerScreenProps = {
1515
+ /** Si es false, la pantalla no se renderiza. Default true. */
1516
+ visible?: boolean;
1517
+ /** Título de la cabecera. Default "Escanear". */
1518
+ title?: string;
1519
+ /** Ayuda que se muestra bajo el viewfinder. */
1520
+ caption?: string;
1521
+ onClose?: () => void;
1522
+ /** Resultado de un código detectado. */
1523
+ onScan?: (result: ScanResult) => void;
1524
+ /** Tipos a reconocer. Default solo QR. */
1525
+ barcodeTypes?: BarcodeType[];
1526
+ /** Tiempo mínimo entre scans consecutivos (ms). Default 1500. */
1527
+ throttleMs?: number;
1528
+ /** Ignora las lecturas durante los primeros N ms tras abrir el escáner
1529
+ * (para encuadrar antes de que dispare). Default 0. */
1530
+ detectionDelayMs?: number;
1531
+ /** Vibra al detectar (nativo). Default true. */
1532
+ haptics?: boolean;
1533
+ /** Linterna encendida (light durante el escaneo). */
1534
+ torch?: boolean;
1535
+ onTorchChange?: (torch: boolean) => void;
1536
+ facing?: CameraFacing;
1537
+ onFacingChange?: (facing: CameraFacing) => void;
1538
+ onOpenCamera?: () => void;
1539
+ onCameraError?: (error: unknown) => void;
1540
+ style?: StyleProp<ViewStyle>;
1541
+ };
1542
+ declare function BarcodeScannerScreen({ visible, title, caption, onClose, onScan, barcodeTypes, throttleMs, detectionDelayMs, haptics, torch, onTorchChange, facing, onFacingChange, onOpenCamera, onCameraError, style, }: BarcodeScannerScreenProps): React__default.JSX.Element | null;
1543
+
1041
1544
  declare const AppIcon: {
1042
1545
  readonly Home: IconName;
1043
1546
  readonly HomeFilled: IconName;
@@ -1086,4 +1589,4 @@ declare const AppIcon: {
1086
1589
  readonly Inbox: IconName;
1087
1590
  };
1088
1591
 
1089
- export { AppButton, type AppButtonProps, type AppButtonVariant, AppCheckItem, type AppCheckItemProps, type AppCheckItemStatus, AppDialogMode, type AppFilterChipOption, AppFilterChips, type AppFilterChipsProps, AppFormCard, type AppFormCardProps, AppIcon, type AppInputElement, type AppInputProps, AppLayout, type AppLayoutDebugSnapshot, type AppLayoutProps, type AppNavigation, AppResponsiveDialog, type AppResponsiveDialogProps, type AppRoute, AppSelector, type AppSelectorOption, type AppSelectorProps, AppTextArea, type AppTextAreaProps, AppTextHeader, type AppTextHeaderProps, AppTextInput, type AppTextInputProps, AppToggle, type AppToggleProps, Avatar, type AvatarProps, type AvatarSize, type BaseColorKey, BottomSheet, type BottomSheetProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarProps, Card, type CardProps, CardStackSheet, type CardStackSheetProps, CardTitle, type CardTitleProps, type CardVariant, CategoryText, type CategoryTextProps, CategoryTextStyle, Chip, type ChipProps, ChipRow, type ChipRowOption, type ChipRowProps, type ChipSize, type ChipVariant, ColorCustomizerDialog, type ColorToken, ColorWheel, ComposingOrb, type Composition, DashboardShell, type DashboardShellProps, Divisor, type DivisorPosition, type DivisorProps, Dock, type DockItem, type DockProps, DonutChart, type DonutChartProps, type DonutSegment, DrawerMenu, DrawerMenuItem, type DrawerMenuItemProps, DrawerMenuItemStyle, type DrawerMenuItemType, type DrawerMenuProps, Dropdown, type DropdownOption, type DropdownProps, type DropdownState, EmptyState, type EmptyStateProps, FloatingActionButton, type FloatingActionButtonPosition, type FloatingActionButtonProps, HeaderBar, type HeaderBarProps, HeaderBarStyle, HeaderCardLayout, type HeaderCardLayoutProps, type HeightSpec, type HostKey, Icon, type IconName, type IconProps, Input, type InputProps, Item, type ItemProps, ItemStyle, KeyboardSafeScreen, type KeyboardSafeScreenProps, type LayerDirection, type LayerRole, LayoutColumn, LayoutRow, type LayoutState, type LayoutStateName, MainLayout, type MainLayoutProps, Modal, type ModalProps, OptionListItem, type OptionListItemProps, OptionListItemVariant, PinKeypad, type PinKeypadProps, ReverseHeaderCardLayout, type ReverseHeaderCardLayoutProps, type Route, type RouteOptions, SearchBar, type SearchBarProps, SearchBarStyle, type SectionBehavior, type SectionKey, type SheetKind, SheetLayout, type SheetLayoutProps, SheetSlot, type SheetSlotProps, type SidebarItem, type SidebarSection, type SidebarType, Skeleton, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, type SkeletonProps, type SkeletonShape, SkeletonText, type SkeletonTextProps, type SlotName, SplitColorCard, SplitDarknessCard, SplitTextCard, StateMessage, type StateMessageProps, StateMessageStyle, StateMessageType, TOAST_DEFAULT_DURATION_MS, Text, TextField, type TextFieldProps, type TextProps, type TextVariant, Toast, type ToastOptions, type ToastProps, ToastProvider, ToastStyle, ToastTone, type ToolItem, ToolsCard, type ToolsCardProps, type TransitionSpec, TreeEditor, type TreeEditorMode, type TreeEditorProps, type TreeEditorVariant, type TreeNode, addChild, addSibling, buildInitialCollapsed, countNodes, createNode, directionSign, findNode, hasCode, hostDirection, iconMap, layoutStates, removeNode, resolveComposition, resolveTransition, updateNode, useAppLayoutDebug, useAppNavigation, useSheetLayout, useToast };
1592
+ export { ActionCard, type ActionCardProps, ActionCardStyle, type ActionTile, ActionTiles, type ActionTilesProps, ActionTilesStyle, AppBottomSheet, type AppBottomSheetProps, AppButton, type AppButtonProps, type AppButtonVariant, AppCheckItem, type AppCheckItemProps, type AppCheckItemStatus, AppDialogMode, type AppFilterChipOption, AppFilterChips, type AppFilterChipsProps, AppFormCard, type AppFormCardProps, AppIcon, type AppInputElement, type AppInputProps, AppLayout, type AppLayoutProps, type AppNavigation, type AppRoute, AppSelector, type AppSelectorOption, type AppSelectorProps, AppShell, type AppShellNavigation, type AppShellProps, AppTextArea, type AppTextAreaProps, AppTextHeader, type AppTextHeaderProps, AppTextInput, type AppTextInputProps, AppToggle, type AppToggleProps, Avatar, type AvatarProps, type AvatarSize, BarcodeScannerScreen, type BarcodeScannerScreenProps, type BaseColorKey, BottomSheet, type BottomSheetProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarProps, CameraCaptureScreen, type CameraCaptureScreenProps, type CameraFacing, type CameraFlashMode, CameraHud, type CameraHudProps, CameraPermissionGate, type CameraPermissionGateProps, CameraScreenContainer, type CameraScreenContainerProps, type CapturePhoto, Card, type CardProps, CardTitle, type CardTitleProps, type CardVariant, Chip, type ChipProps, type ChipSize, ChipTabs, type ChipTabsOption, type ChipTabsProps, type ChipVariant, ColorCustomizerDialog, type ColorToken, ColorWheel, ComposingOrb, type Composition, DashboardShell, type DashboardShellProps, Divisor, type DivisorPosition, type DivisorProps, Dock, type DockItem, type DockProps, DonutChart, type DonutChartProps, type DonutSegment, DrawerMenu, DrawerMenuItem, type DrawerMenuItemProps, DrawerMenuItemStyle, type DrawerMenuItemType, type DrawerMenuProps, Dropdown, type DropdownOption, type DropdownProps, type DropdownState, ElementCard, type ElementCardProps, ElementCardStyle, EmptyState, type EmptyStateProps, FloatingActionButton, type FloatingActionButtonPosition, type FloatingActionButtonProps, HeaderCardLayout, type HeaderCardLayoutProps, type HeightSpec, type HostKey, HudIconButton, type HudIconButtonProps, Icon, type IconName, type IconProps, Input, type InputProps, Item, type ItemProps, ItemStyle, type KeyValueItem, KeyValueList, type KeyValueListProps, KeyValueListStyle, KeyboardSafeScreen, type KeyboardSafeScreenProps, Label, type LabelProps, LabelStyle, type LayerDirection, type LayerRole, LayoutColumn, LayoutRow, type LayoutState, type LayoutStateName, ListItem, type ListItemProps, ListItemStyle, MainLayout, type MainLayoutProps, Modal, type ModalProps, OptionListItem, type OptionListItemProps, OptionListItemVariant, PinKeypad, type PinKeypadProps, ProductCard, type ProductCardCart, type ProductCardProps, ProductCardStyle, ReverseHeaderCardLayout, type ReverseHeaderCardLayoutProps, type Route, type RouteOptions, type ScanResult, SearchBar, type SearchBarProps, SearchBarStyle, type SectionBehavior, SectionHeader, type SectionHeaderProps, SectionHeaderStyle, type SectionKey, SectionTitle, type SectionTitleProps, Sheet, type SheetKind, SheetLayout, type SheetLayoutProps, type SheetProps, SheetSlot, type SheetSlotProps, ShortcutCard, type ShortcutCardProps, ShortcutCardStyle, type ShortcutItem, ShutterButton, type SidebarItem, type SidebarSection, type SidebarType, Skeleton, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, type SkeletonProps, type SkeletonShape, SkeletonText, type SkeletonTextProps, type SlotName, SplitColorCard, SplitDarknessCard, SplitTextCard, StackDetails, type StackDetailsAction, type StackDetailsProps, type StackDetailsRow, StackDetailsStyle, StateMessage, type StateMessageProps, StateMessageStyle, StateMessageType, TOAST_DEFAULT_DURATION_MS, TabNavigation, type TabNavigationOption, type TabNavigationProps, TabNavigationStyle, Text, TextField, type TextFieldProps, type TextProps, type TextVariant, Toast, type ToastOptions, type ToastProps, ToastProvider, ToastStyle, ToastTone, type ToolItem, ToolsCard, type ToolsCardProps, TopAction, type TopActionProps, TopActionStyle, TopBar, type TopBarProps, type TransitionSpec, TreeEditor, type TreeEditorMode, type TreeEditorProps, type TreeEditorVariant, type TreeNode, addChild, addSibling, buildInitialCollapsed, countNodes, createNode, directionSign, findNode, hasCode, hostDirection, iconMap, layoutStates, removeNode, resolveComposition, resolveTransition, updateNode, useAppNavigation, useAppShell, useSheetLayout, useToast };