@william-callao/antonella-ui 1.0.3 → 1.0.4

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 +640 -138
  2. package/dist/index.js +4602 -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,143 @@ 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
+ onQuantityChange?: (quantity: number) => void;
574
+ imageIcon?: IconName;
575
+ style?: ProductCardStyle;
576
+ containerStyle?: StyleProp<ViewStyle>;
577
+ };
578
+ declare function ProductCard({ name, price, code, cart, onQuantityChange, imageIcon, style, containerStyle, }: ProductCardProps): React__default.JSX.Element;
579
+
580
+ declare enum ElementCardStyle {
581
+ DEFAULT = "DEFAULT",
582
+ LIGHT = "LIGHT",
583
+ DARKNESS = "DARKNESS"
584
+ }
585
+ type ElementCardProps = {
586
+ name: string;
587
+ /** Texto secundario debajo del nombre (opcional). */
588
+ subtitle?: string;
589
+ /** Ícono del placeholder que identifica el tipo de elemento (por defecto "folder"). */
590
+ icon?: IconName;
591
+ /** Llamado al presionar la card. */
592
+ onPress?: () => void;
593
+ /** Ícono a la derecha (por defecto "chevron-forward"). */
594
+ trailing?: IconName;
595
+ /** Llamado al presionar el ícono de la derecha. Si no se pasa, el ícono no es táctil. */
596
+ onTrailingPress?: () => void;
597
+ /** Elemento oculto/inactivo: atenúa la card. */
598
+ dimmed?: boolean;
599
+ style?: ElementCardStyle;
600
+ /** Override de estilo para el card contenedor. */
601
+ containerStyle?: StyleProp<ViewStyle>;
602
+ /** Fondo del elemento visual (TopAction) a la izquierda (opcional). */
603
+ visualBg?: string;
604
+ /** Color del icono del elemento visual (opcional). */
605
+ visualIconColor?: string;
606
+ };
607
+ declare function ElementCard({ name, subtitle, icon, onPress, trailing, onTrailingPress, dimmed, style, containerStyle, visualBg, visualIconColor, }: ElementCardProps): React__default.JSX.Element;
608
+
609
+ declare enum KeyValueListStyle {
610
+ DEFAULT = "DEFAULT",
611
+ LIGHT = "LIGHT",
612
+ DARKNESS = "DARKNESS"
613
+ }
614
+ type KeyValueItem = {
615
+ /** Texto de la columna izquierda (la clave). */
616
+ label: string;
617
+ /** Texto de la columna derecha (el valor). */
618
+ value?: string;
619
+ /** Ícono al final de la fila, táctil (p. ej. un "close" para quitar la fila). */
620
+ actionIcon?: IconName;
621
+ /** Llamado al presionar el ícono de acción. */
622
+ onAction?: () => void;
623
+ /** Llamado al presionar la fila completa. */
624
+ onPress?: () => void;
625
+ };
626
+ type KeyValueListProps = {
627
+ items: KeyValueItem[];
628
+ style?: KeyValueListStyle;
629
+ /** Override de estilo para el contenedor. */
630
+ containerStyle?: StyleProp<ViewStyle>;
631
+ };
632
+ declare function KeyValueList({ items, style, containerStyle, }: KeyValueListProps): React__default.JSX.Element | null;
633
+
634
+ declare enum StackDetailsStyle {
635
+ DEFAULT = "DEFAULT",
636
+ LIGHT = "LIGHT",
637
+ DARKNESS = "DARKNESS"
638
+ }
639
+ type StackDetailsAction = {
640
+ /** Ícono de la acción, táctil (p. ej. "pencil" para editar o "trash" para eliminar). */
641
+ icon: IconName;
642
+ /** Llamado al presionar el ícono de acción. */
643
+ onPress: () => void;
644
+ };
645
+ type StackDetailsRow = {
646
+ /** Texto de la columna izquierda (la clave). */
647
+ label: string;
648
+ /** Texto de la columna derecha (el valor). */
649
+ value?: string;
650
+ /** Si se pasa, la fila es presionable y muestra un chevron al final. */
651
+ onPress?: () => void;
652
+ /** Íconos de acción al final de la fila (editar, eliminar, desasignar...). */
653
+ actions?: StackDetailsAction[];
654
+ };
655
+ type StackDetailsProps = {
656
+ rows: StackDetailsRow[];
657
+ style?: StackDetailsStyle;
658
+ /** Override de estilo para el contenedor. */
659
+ containerStyle?: StyleProp<ViewStyle>;
660
+ };
661
+ declare function StackDetails({ rows, style, containerStyle, }: StackDetailsProps): React__default.JSX.Element | null;
448
662
 
449
663
  type ColorWheelProps = {
450
664
  onPress: () => void;
451
665
  size?: number;
452
666
  };
453
- declare function ColorWheel({ onPress, size }: ColorWheelProps): react_jsx_runtime.JSX.Element;
667
+ declare function ColorWheel({ onPress, size }: ColorWheelProps): React__default.JSX.Element;
454
668
 
455
669
  type ColorToken = {
456
670
  /** Nombre legible del token (ej: "Fondo panel") */
@@ -470,7 +684,7 @@ type ColorCustomizerDialogProps = {
470
684
  tokens: ColorToken[];
471
685
  onTokenChange: (key: string, value: string) => void;
472
686
  };
473
- declare function ColorCustomizerDialog({ visible, onClose, componentName, tokens, onTokenChange, }: ColorCustomizerDialogProps): react_jsx_runtime.JSX.Element;
687
+ declare function ColorCustomizerDialog({ visible, onClose, componentName, tokens, onTokenChange, }: ColorCustomizerDialogProps): React__default.JSX.Element;
474
688
 
475
689
  interface ComposingOrbProps {
476
690
  /** Rendered size in points. Default 64. */
@@ -497,7 +711,108 @@ interface ComposingOrbProps {
497
711
  set(value: number): void;
498
712
  };
499
713
  }
500
- declare function ComposingOrb({ size, style, accessibilityLabel, ...rest }: ComposingOrbProps): react_jsx_runtime.JSX.Element;
714
+ declare function ComposingOrb({ size, style, accessibilityLabel, ...rest }: ComposingOrbProps): React.JSX.Element;
715
+
716
+ declare enum ActionTilesStyle {
717
+ DEFAULT = "DEFAULT",
718
+ LIGHT = "LIGHT",
719
+ DARKNESS = "DARKNESS"
720
+ }
721
+ type ActionTile = {
722
+ icon: IconName;
723
+ label: string;
724
+ onPress?: () => void;
725
+ /** true pinta ícono y texto en color de peligro (acciones destructivas). */
726
+ destructive?: boolean;
727
+ accessibilityLabel?: string;
728
+ };
729
+ type ActionTilesProps = {
730
+ actions: ActionTile[];
731
+ style?: ActionTilesStyle;
732
+ /** Margin horizontal del contenedor (si no se pasa, 0). Inserta el card completo. */
733
+ horizontalMargin?: number;
734
+ containerStyle?: StyleProp<ViewStyle>;
735
+ };
736
+ declare function ActionTiles({ actions, style, horizontalMargin, containerStyle }: ActionTilesProps): React__default.JSX.Element;
737
+
738
+ declare enum ActionCardStyle {
739
+ DEFAULT = "DEFAULT",
740
+ LIGHT = "LIGHT",
741
+ DARKNESS = "DARKNESS"
742
+ }
743
+ type ActionCardProps = {
744
+ /** Alto del card en píxeles. */
745
+ height: number;
746
+ /** Ancho del card en píxeles. Si no se pasa, el card reparte el espacio disponible (flex). */
747
+ width?: number;
748
+ /** Ícono tipado del design system, pequeño arriba a la derecha. */
749
+ icon: IconName;
750
+ /** Texto grande inferior izquierdo (acción). */
751
+ label: string;
752
+ /** Texto pequeño tenue sobre el label. */
753
+ caption?: string;
754
+ style?: ActionCardStyle;
755
+ onPress?: () => void;
756
+ accessibilityLabel?: string;
757
+ /** Override de estilo para el card contenedor. */
758
+ containerStyle?: StyleProp<ViewStyle>;
759
+ };
760
+ declare function ActionCard({ height, width, icon, label, caption, style, onPress, accessibilityLabel, containerStyle, }: ActionCardProps): React__default.JSX.Element;
761
+
762
+ declare enum ShortcutCardStyle {
763
+ DEFAULT = "DEFAULT",
764
+ LIGHT = "LIGHT",
765
+ DARKNESS = "DARKNESS"
766
+ }
767
+ type ShortcutItem = {
768
+ icon: IconName;
769
+ label: string;
770
+ onPress?: () => void;
771
+ accessibilityLabel?: string;
772
+ };
773
+ type ShortcutCardProps = {
774
+ /** Atajos a mostrar dentro de la card (se reparten el ancho en una fila). */
775
+ shortcuts: ShortcutItem[];
776
+ /** Diámetro del círculo (por defecto 44). */
777
+ circleSize?: number;
778
+ /** Tamaño del ícono (por defecto 20). */
779
+ iconSize?: number;
780
+ style?: ShortcutCardStyle;
781
+ /** Override de estilo para la card contenedora. */
782
+ containerStyle?: StyleProp<ViewStyle>;
783
+ };
784
+ declare function ShortcutCard({ shortcuts, circleSize, iconSize, style, containerStyle, }: ShortcutCardProps): React__default.JSX.Element;
785
+
786
+ declare enum TabNavigationStyle {
787
+ DEFAULT = "DEFAULT",
788
+ LIGHT = "LIGHT",
789
+ DARKNESS = "DARKNESS"
790
+ }
791
+ type TabNavigationOption = {
792
+ value: string;
793
+ label: string;
794
+ icon?: IconName;
795
+ };
796
+ type TabNavigationProps = {
797
+ options: TabNavigationOption[];
798
+ selected?: string;
799
+ onSelect?: (value: string) => void;
800
+ style?: TabNavigationStyle;
801
+ /** Fuerza el modo de reparto sin medir. `true` reparte el espacio en partes
802
+ * iguales siempre (equivalente al modo fit, útil cuando se sabe que las
803
+ * opciones son pocas y deben llenar el ancho); `false` fuerza scroll
804
+ * horizontal con las chips a ancho natural. Si no se pasa, el componente
805
+ * mide el ancho natural de las chips y decide solo: fit si entran, scroll si
806
+ * se desbordan. */
807
+ fits?: boolean;
808
+ /** Margin horizontal del contenedor (si no se pasa, 0). Cuando las opciones
809
+ * caben (fit) inserta el bar desde los costados del sitio de uso; si se
810
+ * desbordan (scroll) el bar va a ancho completo y el margen se reparte como
811
+ * colchones internos del contenido: margen izquierdo en la primera chip y
812
+ * margen derecho en la última. */
813
+ horizontalMargin?: number;
814
+ };
815
+ declare function TabNavigation({ options, selected: controlledSelected, onSelect, style, fits, horizontalMargin, }: TabNavigationProps): React__default.JSX.Element;
501
816
 
502
817
  type DropdownOption = {
503
818
  label: string;
@@ -518,7 +833,7 @@ type DropdownProps = {
518
833
  maxHeight?: number;
519
834
  disabled?: boolean;
520
835
  };
521
- declare function Dropdown({ value, placeholder, options, onChange, style, maxHeight, disabled, }: DropdownProps): react_jsx_runtime.JSX.Element;
836
+ declare function Dropdown({ value, placeholder, options, onChange, style, maxHeight, disabled, }: DropdownProps): React__default.JSX.Element;
522
837
 
523
838
  type FloatingActionButtonPosition = "bottom-right" | "bottom-left";
524
839
  interface FloatingActionButtonProps {
@@ -528,25 +843,25 @@ interface FloatingActionButtonProps {
528
843
  position?: FloatingActionButtonPosition;
529
844
  style?: StyleProp<ViewStyle>;
530
845
  }
531
- declare function FloatingActionButton({ icon, onPress, position, style, }: FloatingActionButtonProps): react_jsx_runtime.JSX.Element;
846
+ declare function FloatingActionButton({ icon, onPress, position, style, }: FloatingActionButtonProps): React__default.JSX.Element;
532
847
 
533
848
  type HeaderCardLayoutProps = {
534
849
  headerBackgroundColor?: string;
535
850
  bodyBackgroundColor?: string;
536
- header: React.ReactNode;
537
- children: React.ReactNode;
851
+ header: React__default.ReactNode;
852
+ children: React__default.ReactNode;
538
853
  style?: StyleProp<ViewStyle>;
539
854
  };
540
- declare function HeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: HeaderCardLayoutProps): react_jsx_runtime.JSX.Element;
855
+ declare function HeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: HeaderCardLayoutProps): React__default.JSX.Element;
541
856
 
542
857
  type ReverseHeaderCardLayoutProps = {
543
858
  headerBackgroundColor?: string;
544
859
  bodyBackgroundColor?: string;
545
- header: React.ReactNode;
546
- children: React.ReactNode;
860
+ header: React__default.ReactNode;
861
+ children: React__default.ReactNode;
547
862
  style?: StyleProp<ViewStyle>;
548
863
  };
549
- declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps): react_jsx_runtime.JSX.Element;
864
+ declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps): React__default.JSX.Element;
550
865
 
551
866
  interface InputProps extends TextInputProps {
552
867
  icon?: IconName;
@@ -558,7 +873,7 @@ interface InputProps extends TextInputProps {
558
873
  * (errores de validación previos a consultar el backend). */
559
874
  error?: string;
560
875
  }
561
- declare function Input({ style, inputStyle, placeholderTextColor, icon, showToggle, error, secureTextEntry, onFocus, onBlur, ...rest }: InputProps): react_jsx_runtime.JSX.Element;
876
+ declare function Input({ style, inputStyle, placeholderTextColor, icon, showToggle, error, secureTextEntry, onFocus, onBlur, ...rest }: InputProps): React__default.JSX.Element;
562
877
 
563
878
  type LayoutRowChildProps = {
564
879
  size?: LayoutRowSize;
@@ -571,9 +886,9 @@ type LayoutRowProps = {
571
886
  gap?: number;
572
887
  padding?: number;
573
888
  } & 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;
889
+ declare function LayoutRowFirst({ size, scroll, children }: LayoutRowChildProps): React__default.JSX.Element;
890
+ declare function LayoutRowSecond({ size, scroll, children }: LayoutRowChildProps): React__default.JSX.Element;
891
+ declare function LayoutRow({ debug, fill, gap, padding, style, children, ...rest }: LayoutRowProps): React__default.JSX.Element;
577
892
  declare namespace LayoutRow {
578
893
  var First: typeof LayoutRowFirst;
579
894
  var Second: typeof LayoutRowSecond;
@@ -590,9 +905,9 @@ type LayoutColumnProps = {
590
905
  gap?: number;
591
906
  padding?: number;
592
907
  } & 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;
908
+ declare function LayoutColumnFirst({ size, scroll, children }: LayoutColumnChildProps): React__default.JSX.Element;
909
+ declare function LayoutColumnSecond({ size, scroll, children }: LayoutColumnChildProps): React__default.JSX.Element;
910
+ declare function LayoutColumn({ debug, fill, gap, padding, style, children, ...rest }: LayoutColumnProps): React__default.JSX.Element;
596
911
  declare namespace LayoutColumn {
597
912
  var First: typeof LayoutColumnFirst;
598
913
  var Second: typeof LayoutColumnSecond;
@@ -610,7 +925,7 @@ interface SkeletonProps {
610
925
  shape?: SkeletonShape;
611
926
  style?: StyleProp<ViewStyle>;
612
927
  }
613
- declare function Skeleton({ width, height, borderRadius, shape, style, }: SkeletonProps): react_jsx_runtime.JSX.Element;
928
+ declare function Skeleton({ width, height, borderRadius, shape, style, }: SkeletonProps): React__default.JSX.Element;
614
929
 
615
930
  interface SkeletonTextProps {
616
931
  /** Ancho de la línea: número (px) o string (ej. "100%", "60%"). */
@@ -619,14 +934,14 @@ interface SkeletonTextProps {
619
934
  height?: number;
620
935
  style?: StyleProp<ViewStyle>;
621
936
  }
622
- declare function SkeletonText({ width, height, style, }: SkeletonTextProps): react_jsx_runtime.JSX.Element;
937
+ declare function SkeletonText({ width, height, style, }: SkeletonTextProps): React__default.JSX.Element;
623
938
 
624
939
  interface SkeletonCircleProps {
625
940
  /** Diámetro del círculo en px (default 32, imita iconos/avatares). */
626
941
  size?: number;
627
942
  style?: StyleProp<ViewStyle>;
628
943
  }
629
- declare function SkeletonCircle({ size, style }: SkeletonCircleProps): react_jsx_runtime.JSX.Element;
944
+ declare function SkeletonCircle({ size, style }: SkeletonCircleProps): React__default.JSX.Element;
630
945
 
631
946
  interface SkeletonCardProps extends ViewProps {
632
947
  /** Altura mínima del frame (útil cuando el esqueleto aún no define contenido). */
@@ -637,7 +952,7 @@ interface SkeletonCardProps extends ViewProps {
637
952
  * (`SkeletonText`, `SkeletonCircle`) como hijos. El frame NO anima: los
638
953
  * bloques internos son los que pulsan.
639
954
  */
640
- declare function SkeletonCard({ height, style, children, ...rest }: SkeletonCardProps): react_jsx_runtime.JSX.Element;
955
+ declare function SkeletonCard({ height, style, children, ...rest }: SkeletonCardProps): React__default.JSX.Element;
641
956
 
642
957
  interface ToolItem {
643
958
  id: string;
@@ -649,7 +964,7 @@ interface ToolsCardProps {
649
964
  tools: ToolItem[];
650
965
  style?: ViewStyle;
651
966
  }
652
- declare function ToolsCard({ tools, style }: ToolsCardProps): react_jsx_runtime.JSX.Element;
967
+ declare function ToolsCard({ tools, style }: ToolsCardProps): React__default.JSX.Element;
653
968
 
654
969
  type TreeNode = {
655
970
  id: string;
@@ -673,7 +988,7 @@ type TreeEditorProps = {
673
988
  /** Etiqueta del botón de agregar raíz (solo modo edición). Default: "Agregar raíz". */
674
989
  rootLabel?: string;
675
990
  /** 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;
991
+ renderNode?: (node: TreeNode, defaultContent: React__default.ReactNode) => React__default.ReactNode;
677
992
  /** Called when user taps any add button/row. When provided, the built-in add dialog is bypassed. */
678
993
  onRequestAdd?: (parentId: string | null) => void;
679
994
  /** Called when user taps "Editar" from the node menu. When provided, the built-in edit dialog is bypassed. */
@@ -695,7 +1010,7 @@ declare function countNodes(nodes: TreeNode[]): number;
695
1010
  * expandida con su primer nivel visible.
696
1011
  */
697
1012
  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;
1013
+ declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, style }: TreeEditorProps): React__default.JSX.Element;
699
1014
 
700
1015
  interface TextFieldProps {
701
1016
  label: string;
@@ -716,7 +1031,7 @@ interface TextFieldProps {
716
1031
  /** Estilo del contenedor (label + campo). */
717
1032
  style?: StyleProp<ViewStyle>;
718
1033
  }
719
- declare function TextField({ label, value, onChangeText, placeholder, editable, secureTextEntry, keyboardType, autoCapitalize, maxLength, multiline, error, style, }: TextFieldProps): react_jsx_runtime.JSX.Element;
1034
+ declare function TextField({ label, value, onChangeText, placeholder, editable, secureTextEntry, keyboardType, autoCapitalize, maxLength, multiline, error, style, }: TextFieldProps): React__default.JSX.Element;
720
1035
 
721
1036
  type SplitColorCardProps = {
722
1037
  label: string;
@@ -726,7 +1041,7 @@ type SplitColorCardProps = {
726
1041
  darkTokenName: string;
727
1042
  onPress?: () => void;
728
1043
  };
729
- declare function SplitColorCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, onPress, }: SplitColorCardProps): react_jsx_runtime.JSX.Element;
1044
+ declare function SplitColorCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, onPress, }: SplitColorCardProps): React__default.JSX.Element;
730
1045
  type SplitTextCardProps = {
731
1046
  label: string;
732
1047
  lightHex: string;
@@ -738,7 +1053,7 @@ type SplitTextCardProps = {
738
1053
  textContent?: string;
739
1054
  onPress?: () => void;
740
1055
  };
741
- declare function SplitTextCard({ label, lightHex, darkHex, lightBgHex, darkBgHex, lightTokenName, darkTokenName, textContent, onPress, }: SplitTextCardProps): react_jsx_runtime.JSX.Element;
1056
+ declare function SplitTextCard({ label, lightHex, darkHex, lightBgHex, darkBgHex, lightTokenName, darkTokenName, textContent, onPress, }: SplitTextCardProps): React__default.JSX.Element;
742
1057
  type SplitDarknessCardProps = {
743
1058
  label: string;
744
1059
  lightHex: string;
@@ -749,21 +1064,21 @@ type SplitDarknessCardProps = {
749
1064
  darkKey: string;
750
1065
  onPress?: () => void;
751
1066
  };
752
- declare function SplitDarknessCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, lightKey, darkKey, onPress, }: SplitDarknessCardProps): react_jsx_runtime.JSX.Element;
1067
+ declare function SplitDarknessCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, lightKey, darkKey, onPress, }: SplitDarknessCardProps): React__default.JSX.Element;
753
1068
 
754
1069
  type TextVariant = TextType;
755
1070
  interface TextProps extends TextProps$1 {
756
1071
  variant?: TextVariant;
757
1072
  color?: string;
758
1073
  }
759
- declare function Text({ variant, color, style, ...rest }: TextProps): react_jsx_runtime.JSX.Element;
1074
+ declare function Text({ variant, color, style, ...rest }: TextProps): React__default.JSX.Element;
760
1075
 
761
1076
  interface AppTextHeaderProps {
762
1077
  heading: string;
763
1078
  caption?: string;
764
1079
  style?: ViewStyle;
765
1080
  }
766
- declare function AppTextHeader({ heading, caption, style }: AppTextHeaderProps): react_jsx_runtime.JSX.Element;
1081
+ declare function AppTextHeader({ heading, caption, style }: AppTextHeaderProps): React__default.JSX.Element;
767
1082
 
768
1083
  interface EmptyStateProps {
769
1084
  icon?: IconName;
@@ -772,7 +1087,7 @@ interface EmptyStateProps {
772
1087
  caption?: string;
773
1088
  style?: ViewStyle;
774
1089
  }
775
- declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps): react_jsx_runtime.JSX.Element;
1090
+ declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps): React__default.JSX.Element;
776
1091
 
777
1092
  type AppInputProps = {
778
1093
  label: string;
@@ -785,19 +1100,34 @@ type AppFormCardProps = {
785
1100
  labelWidth?: number;
786
1101
  style?: ViewStyle;
787
1102
  };
788
- declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps): react_jsx_runtime.JSX.Element;
1103
+ declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps): React__default.JSX.Element;
789
1104
 
790
1105
  type AppTextInputProps = AppInputProps & {
791
1106
  type?: "text";
792
1107
  value: string;
793
- onChangeText: (value: string) => void;
1108
+ /** Opcional: los campos de solo lectura (readOnly u onPress) completados por
1109
+ * escaneo no necesitan proveer un handler de texto. */
1110
+ onChangeText?: (value: string) => void;
794
1111
  placeholder?: string;
795
1112
  autoCapitalize?: "none" | "sentences" | "words" | "characters";
796
1113
  keyboardType?: KeyboardTypeOptions;
797
1114
  maxLength?: number;
798
1115
  editable?: boolean;
1116
+ /** Solo lectura: bloquea el ingreso de texto (sin teclado) pero conserva el
1117
+ * aspecto normal de la fila y deja operativas las acciones (p. ej. escanear). */
1118
+ readOnly?: boolean;
1119
+ /** Al tocar la fila: si se pasa, se usa este handler en vez de enfocar el
1120
+ * input (p. ej. campos que solo se completan escaneando: tocar el campo abre
1121
+ * el escáner y no el teclado). */
1122
+ onPress?: () => void;
1123
+ /** Botón de acción a la derecha del campo (ej. escanear un código). */
1124
+ trailingAction?: {
1125
+ icon: IconName;
1126
+ onPress: () => void;
1127
+ accessibilityLabel?: string;
1128
+ };
799
1129
  };
800
- declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextInputProps): react_jsx_runtime.JSX.Element;
1130
+ declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, readOnly, trailingAction, onPress: onPressOverride, }: AppTextInputProps): React__default.JSX.Element;
801
1131
 
802
1132
  type AppTextAreaProps = AppInputProps & {
803
1133
  value: string;
@@ -808,7 +1138,7 @@ type AppTextAreaProps = AppInputProps & {
808
1138
  maxLength?: number;
809
1139
  editable?: boolean;
810
1140
  };
811
- declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): react_jsx_runtime.JSX.Element;
1141
+ declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): React__default.JSX.Element;
812
1142
 
813
1143
  type AppSelectorOption = {
814
1144
  label: string;
@@ -822,14 +1152,14 @@ type AppSelectorProps = AppInputProps & {
822
1152
  placeholder?: string;
823
1153
  disabled?: boolean;
824
1154
  };
825
- declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps): react_jsx_runtime.JSX.Element;
1155
+ declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps): React__default.JSX.Element;
826
1156
 
827
1157
  type AppToggleProps = AppInputProps & {
828
1158
  value: boolean;
829
1159
  onValueChange: (value: boolean) => void;
830
1160
  disabled?: boolean;
831
1161
  };
832
- declare function AppToggle({ label, labelWidth, value, onValueChange, disabled, }: AppToggleProps): react_jsx_runtime.JSX.Element;
1162
+ declare function AppToggle({ label, labelWidth, value, onValueChange, disabled, }: AppToggleProps): React__default.JSX.Element;
833
1163
 
834
1164
  type AppButtonVariant = "solid" | "outline" | "ghost";
835
1165
  type AppButtonProps = {
@@ -842,10 +1172,10 @@ type AppButtonProps = {
842
1172
  borderColor?: string;
843
1173
  style?: ViewStyle;
844
1174
  };
845
- declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): react_jsx_runtime.JSX.Element;
1175
+ declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): React__default.JSX.Element;
846
1176
 
847
1177
  type KeyboardSafeScreenProps = {
848
- children: React.ReactNode;
1178
+ children: React__default.ReactNode;
849
1179
  style?: StyleProp<ViewStyle>;
850
1180
  contentContainerStyle?: StyleProp<ViewStyle>;
851
1181
  scrollViewProps?: ScrollViewProps;
@@ -856,7 +1186,7 @@ type KeyboardSafeScreenProps = {
856
1186
  * react-native-keyboard-controller, negativa con teclado visible) para
857
1187
  * empujar el contenido sin re-renders de JS. En web mide el visualViewport.
858
1188
  */
859
- declare function KeyboardSafeScreen({ children, style, contentContainerStyle, scrollViewProps, }: KeyboardSafeScreenProps): react_jsx_runtime.JSX.Element;
1189
+ declare function KeyboardSafeScreen({ children, style, contentContainerStyle, scrollViewProps, }: KeyboardSafeScreenProps): React__default.JSX.Element;
860
1190
 
861
1191
  type SheetKind = "topSheet" | "bottomSheet" | "fullHeader" | "fullBody";
862
1192
  interface RouteOptions {
@@ -890,7 +1220,7 @@ type SheetLayoutContextValue = {
890
1220
  };
891
1221
  /** Permite que el contenido de una capa pida cambiar de ruta sin navigator. */
892
1222
  declare function useSheetLayout(): SheetLayoutContextValue;
893
- declare function SheetLayout({ routes, activeKey, onRequestChange, style, }: SheetLayoutProps): react_jsx_runtime.JSX.Element;
1223
+ declare function SheetLayout({ routes, activeKey, onRequestChange, style, }: SheetLayoutProps): React__default.JSX.Element;
894
1224
 
895
1225
  /**
896
1226
  * Cada "kind" de ruta se resuelve en una composición de capas (hosts):
@@ -921,10 +1251,10 @@ type SheetSlotProps = {
921
1251
  interactive: boolean;
922
1252
  baseColor: "header" | "body";
923
1253
  };
924
- declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps): react_jsx_runtime.JSX.Element | null;
1254
+ declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps): React__default.JSX.Element | null;
925
1255
 
926
1256
  type MainLayoutProps = {
927
- children?: React.ReactNode;
1257
+ children?: React__default.ReactNode;
928
1258
  backgroundColor?: string;
929
1259
  /** Si el body debe poder scrollear. Default true. */
930
1260
  scroll?: boolean;
@@ -936,15 +1266,15 @@ type MainLayoutProps = {
936
1266
  * muestra un body (scrolleable por defecto). Punto de partida mínimo para
937
1267
  * ir construyendo encima según se necesite.
938
1268
  */
939
- declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps): react_jsx_runtime.JSX.Element;
1269
+ declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps): React__default.JSX.Element;
940
1270
 
941
1271
  type SectionKey = "top" | "mid" | "bottom";
942
- type HeightSpec = "content" | "fill" | "fillRest" | "third" | number;
1272
+ type HeightSpec = "content" | "fill" | "fillRest" | "minFillRest" | "third" | number;
943
1273
  type SlotName = "header" | "body" | "footer";
944
1274
  type SectionBehavior = {
945
1275
  /** Si la sección se renderiza. Default true. */
946
1276
  visible?: boolean;
947
- /** Cómo se determina su alto: contenido medido, llenar (H), rellenar resto, un tercio, o px fijos. Default "content". */
1277
+ /** 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
1278
  height?: HeightSpec;
949
1279
  /** La sección scrollea internamente (ScrollView propio). */
950
1280
  scroll?: boolean;
@@ -984,23 +1314,58 @@ type AppNavigation = {
984
1314
  /** Presets = las 5 variantes del motor, reutilizables por nombre. */
985
1315
  declare const layoutStates: Record<LayoutStateName, LayoutState>;
986
1316
  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
1317
  type AppLayoutProps = {
999
1318
  initialRoute: AppRoute;
1000
1319
  /** Muestra un botón de volver global cuando canGoBack. Default true. */
1001
1320
  showBackButton?: boolean;
1321
+ /**
1322
+ * Anima las transiciones de estado (rutas y colapsos por medición) con
1323
+ * layout transitions de Reanimated (morph de altura en hilo UI), en lugar de
1324
+ * aplicar las alturas planas de forma inmediata. Default false (motor
1325
+ * estático estable).
1326
+ */
1327
+ animateTransitions?: boolean;
1328
+ /**
1329
+ * Cuándo revelar el contenido visible de las secciones durante una
1330
+ * transición animada. "always": siempre visible (el alto anima con el
1331
+ * contenido pintado). "after": el contenido se oculta mientras el alto
1332
+ * transiciona y se desvanece al terminar. Default "always".
1333
+ */
1334
+ contentReveal?: "always" | "after";
1335
+ };
1336
+ declare function AppLayout({ initialRoute, showBackButton, animateTransitions, contentReveal, }: AppLayoutProps): React__default.JSX.Element;
1337
+
1338
+ type AppShellNavigation = {
1339
+ /** Nombre de la ruta actual del shell (lockedRoute si está bloqueada). */
1340
+ current: string;
1341
+ /** AppRoute resuelto de `current` contra el mapa `routes` (con fallback), listo para alimentar el AppLayout. */
1342
+ currentRoute: AppRoute;
1343
+ /** Hay una ruta anterior en el stack a la que volver. */
1344
+ canGoBack: boolean;
1345
+ /** Empuja una ruta al shell (no-op si ya es la actual o si está bloqueado). */
1346
+ navigate: (name: string) => void;
1347
+ /** Vuelve a la ruta anterior (no-op si no hay stack). */
1348
+ back: () => void;
1349
+ /** Reemplaza todo el stack por [name] (reset al salir del shell hacia una ruta expo-router). */
1350
+ reset: (name: string) => void;
1351
+ };
1352
+ type AppShellProps = {
1353
+ /** Mapa name → AppRoute del shell. */
1354
+ routes: Record<string, AppRoute>;
1355
+ /** Nombre de la ruta inicial del stack. Default: `fallbackRoute`. */
1356
+ initialRoute?: string;
1357
+ /** Ruta por defecto cuando un nombre no existe en `routes`. Default "home". */
1358
+ fallbackRoute?: string;
1359
+ /**
1360
+ * Ruta bloqueada: si está definida, el shell muestra SIEMPRE esta ruta y la
1361
+ * navegación interna se ignora (p. ej. "login" cuando no hay sesión). Al
1362
+ * volver a undefined, el shell cae a la ruta que esté en el tope del stack.
1363
+ */
1364
+ lockedRoute?: string;
1365
+ children?: ReactNode;
1002
1366
  };
1003
- declare function AppLayout({ initialRoute, showBackButton, }: AppLayoutProps): react_jsx_runtime.JSX.Element;
1367
+ declare function useAppShell(): AppShellNavigation;
1368
+ declare function AppShell({ routes, initialRoute, fallbackRoute, lockedRoute, children, }: AppShellProps): React__default.JSX.Element;
1004
1369
 
1005
1370
  type DivisorPosition = "top" | "bottom";
1006
1371
  type DivisorProps = {
@@ -1014,11 +1379,15 @@ type DivisorProps = {
1014
1379
  height?: number;
1015
1380
  /** Muestra el "grabber" (pill) estilo iOS centrado en el borde de la hoja. */
1016
1381
  handle?: boolean;
1382
+ /** Extiende la capa oscura más allá de la caja base por el lado recto (contra
1383
+ * el borde de la hoja), para que no quede costura ni subpixel entre el cap y
1384
+ * la hoja. Default 0. */
1385
+ extend?: number;
1017
1386
  /** Color del grabber. Default: blanco translúcido. */
1018
1387
  handleColor?: string;
1019
1388
  style?: ViewStyle;
1020
1389
  };
1021
- declare function Divisor({ position, color, baseColor, height, handle, handleColor, style, }: DivisorProps): react_jsx_runtime.JSX.Element;
1390
+ declare function Divisor({ position, color, baseColor, height, handle, extend, handleColor, style, }: DivisorProps): React__default.JSX.Element;
1022
1391
 
1023
1392
  /**
1024
1393
  * Dirección de entrada/salida de una capa durante una transición.
@@ -1038,6 +1407,139 @@ declare function resolveTransition(from: SheetKind, to: SheetKind): TransitionSp
1038
1407
  /** Signo del desplazamiento vertical para una dirección de translate. */
1039
1408
  declare function directionSign(dir: LayerDirection): number;
1040
1409
 
1410
+ /** Orientación de la cámara (cámara trasera o frontal). */
1411
+ type CameraFacing = CameraType;
1412
+ /** Modo de flash para la captura de fotos (off → on → auto). */
1413
+ type CameraFlashMode = FlashMode;
1414
+ /** Resultado de una foto capturada con la cámara. */
1415
+ type CapturePhoto = {
1416
+ /** URI local (nativo) o base64 (web) de la imagen capturada. */
1417
+ uri: string;
1418
+ /** Ancho de la imagen. */
1419
+ width: number;
1420
+ /** Alto de la imagen. */
1421
+ height: number;
1422
+ };
1423
+ /** Resultado de un código escaneado. */
1424
+ type ScanResult = {
1425
+ /** Tipo de código escaneado (ej. "qr", "code128"). */
1426
+ type: string;
1427
+ /** Información decodificada del código. */
1428
+ value: string;
1429
+ };
1430
+
1431
+ type CameraScreenContainerProps = {
1432
+ children?: React__default.ReactNode;
1433
+ style?: StyleProp<ViewStyle>;
1434
+ };
1435
+ declare function CameraScreenContainer({ children, style }: CameraScreenContainerProps): React__default.JSX.Element;
1436
+
1437
+ type CameraPermissionGateProps = {
1438
+ children?: React__default.ReactNode;
1439
+ /** Título mostrado en la cabecera (recién el host provee un onClose). */
1440
+ title?: string;
1441
+ onClose?: () => void;
1442
+ /** Texto del estado sin permiso. Default: mensaje estándar. */
1443
+ deniedMessage?: string;
1444
+ };
1445
+ declare function CameraPermissionGate({ children, title, onClose, deniedMessage }: CameraPermissionGateProps): React__default.JSX.Element;
1446
+
1447
+ type CameraHudProps = {
1448
+ /** Título centrado de la barra superior. */
1449
+ title?: string;
1450
+ /** Si se pasa, muestra el botón de volver (barra superior izquierda). */
1451
+ onClose?: () => void;
1452
+ /** Ícono del botón de volver. Default "arrow-back". */
1453
+ closeIcon?: IconName;
1454
+ /** Flash de captura (barra superior derecha). Se muestra solo en modo captura. */
1455
+ flash?: CameraFlashMode;
1456
+ onToggleFlash?: () => void;
1457
+ /** Linterna del scanner (barra superior derecha en modo escaneo). */
1458
+ torch?: boolean;
1459
+ onToggleTorch?: () => void;
1460
+ /** Par de botones del modo captura. */
1461
+ onFlipCamera?: () => void;
1462
+ canFlipCamera?: boolean;
1463
+ onCapture?: () => void;
1464
+ capturing?: boolean;
1465
+ canCapture?: boolean;
1466
+ };
1467
+ declare function CameraHud({ title, onClose, closeIcon, flash, onToggleFlash, torch, onToggleTorch, onFlipCamera, canFlipCamera, onCapture, capturing, canCapture, }: CameraHudProps): React__default.JSX.Element;
1468
+ type HudIconButtonProps = {
1469
+ icon: IconName;
1470
+ label: string;
1471
+ onPress?: () => void;
1472
+ active?: boolean;
1473
+ size?: "md" | "lg";
1474
+ };
1475
+ declare function HudIconButton({ icon, label, onPress, active, size }: HudIconButtonProps): React__default.JSX.Element;
1476
+ declare function ShutterButton({ busy, enabled, onPress, }: {
1477
+ busy?: boolean;
1478
+ enabled?: boolean;
1479
+ onPress?: () => void;
1480
+ }): React__default.JSX.Element;
1481
+
1482
+ type CameraCaptureScreenProps = {
1483
+ /** Si es false, la pantalla no se renderiza. Default true. */
1484
+ visible?: boolean;
1485
+ /** Título de la cabecera. Default "Cámara". */
1486
+ title?: string;
1487
+ /** Botón de volver (prop del host). */
1488
+ onClose?: () => void;
1489
+ /** Flash actual. Cicla off → on → auto → off al tocar. Default "off". */
1490
+ flash?: CameraFlashMode;
1491
+ onFlashChange?: (flash: CameraFlashMode) => void;
1492
+ /** Cámara activa. Default "back". */
1493
+ facing?: CameraFacing;
1494
+ onFacingChange?: (facing: CameraFacing) => void;
1495
+ /** Calidad JPEG de la captura (0–1). Default 0.85. */
1496
+ quality?: number;
1497
+ /** Incluir la imagen en Base64. Default false. */
1498
+ includeBase64?: boolean;
1499
+ /** Incluir datos EXIF. Default false. */
1500
+ includeExif?: boolean;
1501
+ /** Espejar la frontal. Default true. */
1502
+ mirrorFront?: boolean;
1503
+ /** Resultado de una foto tomada. */
1504
+ onCapture?: (photo: CapturePhoto) => void;
1505
+ /** Preview de la cámara listo. */
1506
+ onOpenCamera?: () => void;
1507
+ /** Error de montaje o captura. */
1508
+ onCameraError?: (error: unknown) => void;
1509
+ style?: StyleProp<ViewStyle>;
1510
+ };
1511
+ declare function CameraCaptureScreen({ visible, title, onClose, flash, onFlashChange, facing, onFacingChange, quality, includeBase64, includeExif, mirrorFront, onCapture, onOpenCamera, onCameraError, style, }: CameraCaptureScreenProps): React__default.JSX.Element | null;
1512
+
1513
+ type BarcodeScannerScreenProps = {
1514
+ /** Si es false, la pantalla no se renderiza. Default true. */
1515
+ visible?: boolean;
1516
+ /** Título de la cabecera. Default "Escanear". */
1517
+ title?: string;
1518
+ /** Ayuda que se muestra bajo el viewfinder. */
1519
+ caption?: string;
1520
+ onClose?: () => void;
1521
+ /** Resultado de un código detectado. */
1522
+ onScan?: (result: ScanResult) => void;
1523
+ /** Tipos a reconocer. Default solo QR. */
1524
+ barcodeTypes?: BarcodeType[];
1525
+ /** Tiempo mínimo entre scans consecutivos (ms). Default 1500. */
1526
+ throttleMs?: number;
1527
+ /** Ignora las lecturas durante los primeros N ms tras abrir el escáner
1528
+ * (para encuadrar antes de que dispare). Default 0. */
1529
+ detectionDelayMs?: number;
1530
+ /** Vibra al detectar (nativo). Default true. */
1531
+ haptics?: boolean;
1532
+ /** Linterna encendida (light durante el escaneo). */
1533
+ torch?: boolean;
1534
+ onTorchChange?: (torch: boolean) => void;
1535
+ facing?: CameraFacing;
1536
+ onFacingChange?: (facing: CameraFacing) => void;
1537
+ onOpenCamera?: () => void;
1538
+ onCameraError?: (error: unknown) => void;
1539
+ style?: StyleProp<ViewStyle>;
1540
+ };
1541
+ 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;
1542
+
1041
1543
  declare const AppIcon: {
1042
1544
  readonly Home: IconName;
1043
1545
  readonly HomeFilled: IconName;
@@ -1086,4 +1588,4 @@ declare const AppIcon: {
1086
1588
  readonly Inbox: IconName;
1087
1589
  };
1088
1590
 
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 };
1591
+ 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 };