@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.
- package/dist/index.d.ts +640 -138
- package/dist/index.js +4602 -2263
- package/package.json +37 -33
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import * as
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
106
|
+
declare function Item({ icon, label, onPress, selected, style, colors: overrideColors, }: ItemProps): React__default.JSX.Element;
|
|
106
107
|
|
|
107
|
-
type
|
|
108
|
+
type ChipTabsOption = {
|
|
108
109
|
icon: IconName;
|
|
109
110
|
label: string;
|
|
110
111
|
value: string;
|
|
111
112
|
};
|
|
112
|
-
type
|
|
113
|
-
options:
|
|
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
|
|
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):
|
|
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
|
|
174
|
+
declare enum TopActionStyle {
|
|
140
175
|
DEFAULT = "DEFAULT",
|
|
141
176
|
DARKNESS = "DARKNESS"
|
|
142
177
|
}
|
|
143
|
-
type
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
|
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
|
-
|
|
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):
|
|
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):
|
|
240
|
+
declare function DrawerMenuItem({ icon, label, onPress, selected, style, }: DrawerMenuItemProps): React__default.JSX.Element;
|
|
193
241
|
|
|
194
|
-
declare enum
|
|
242
|
+
declare enum SectionHeaderStyle {
|
|
195
243
|
DEFAULT = "DEFAULT",
|
|
196
244
|
LIGHT = "LIGHT",
|
|
197
245
|
DARKNESS = "DARKNESS"
|
|
198
246
|
}
|
|
199
|
-
type
|
|
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
|
-
|
|
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
|
|
269
|
+
declare function SectionHeader({ title, subtitle, hideDescription, action, onAction, actionIcon, onActionIcon, style, horizontalPadding, containerStyle, }: SectionHeaderProps): React__default.JSX.Element;
|
|
206
270
|
|
|
207
|
-
type
|
|
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:
|
|
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,
|
|
312
|
+
declare function BottomSheet({ visible, onClose, mode, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: BottomSheetProps): React__default.JSX.Element;
|
|
220
313
|
|
|
221
|
-
type
|
|
314
|
+
type AppBottomSheetProps = {
|
|
222
315
|
visible: boolean;
|
|
223
316
|
onClose: () => void;
|
|
224
317
|
dismissible?: boolean;
|
|
225
|
-
children:
|
|
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
|
|
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):
|
|
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):
|
|
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
|
-
}):
|
|
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:
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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?:
|
|
457
|
+
children?: React__default.ReactNode;
|
|
368
458
|
}
|
|
369
|
-
declare function DonutChart({ size, thickness, segments, trackColor, startAngle, style, children, ...rest }: DonutChartProps):
|
|
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?:
|
|
391
|
-
sidebarFooter?:
|
|
392
|
-
topBar?:
|
|
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:
|
|
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):
|
|
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?:
|
|
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):
|
|
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?:
|
|
442
|
-
footer?:
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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:
|
|
537
|
-
children:
|
|
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):
|
|
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:
|
|
546
|
-
children:
|
|
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):
|
|
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):
|
|
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):
|
|
575
|
-
declare function LayoutRowSecond({ size, scroll, children }: LayoutRowChildProps):
|
|
576
|
-
declare function LayoutRow({ debug, fill, gap, padding, style, children, ...rest }: LayoutRowProps):
|
|
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):
|
|
594
|
-
declare function LayoutColumnSecond({ size, scroll, children }: LayoutColumnChildProps):
|
|
595
|
-
declare function LayoutColumn({ debug, fill, gap, padding, style, children, ...rest }: LayoutColumnProps):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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:
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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
|
-
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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):
|
|
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:
|
|
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):
|
|
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):
|
|
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):
|
|
1254
|
+
declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps): React__default.JSX.Element | null;
|
|
925
1255
|
|
|
926
1256
|
type MainLayoutProps = {
|
|
927
|
-
children?:
|
|
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):
|
|
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
|
|
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):
|
|
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
|
|
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 };
|