orn-ui 0.2.7 → 0.2.8

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 (43) hide show
  1. package/AGENTS.md +21 -3
  2. package/README.md +7 -6
  3. package/lib/commonjs/atoms/Gradient.js +111 -0
  4. package/lib/commonjs/atoms/Gradient.js.map +1 -0
  5. package/lib/commonjs/atoms/index.js +7 -0
  6. package/lib/commonjs/atoms/index.js.map +1 -1
  7. package/lib/commonjs/organisms/Slides.js +406 -0
  8. package/lib/commonjs/organisms/Slides.js.map +1 -0
  9. package/lib/commonjs/organisms/index.js +7 -0
  10. package/lib/commonjs/organisms/index.js.map +1 -1
  11. package/lib/commonjs/organisms/useSlides.js +186 -0
  12. package/lib/commonjs/organisms/useSlides.js.map +1 -0
  13. package/lib/module/atoms/Gradient.js +106 -0
  14. package/lib/module/atoms/Gradient.js.map +1 -0
  15. package/lib/module/atoms/index.js +1 -0
  16. package/lib/module/atoms/index.js.map +1 -1
  17. package/lib/module/organisms/Slides.js +401 -0
  18. package/lib/module/organisms/Slides.js.map +1 -0
  19. package/lib/module/organisms/index.js +1 -0
  20. package/lib/module/organisms/index.js.map +1 -1
  21. package/lib/module/organisms/useSlides.js +182 -0
  22. package/lib/module/organisms/useSlides.js.map +1 -0
  23. package/lib/typescript/atoms/Gradient.d.ts +37 -0
  24. package/lib/typescript/atoms/Gradient.d.ts.map +1 -0
  25. package/lib/typescript/atoms/index.d.ts +2 -0
  26. package/lib/typescript/atoms/index.d.ts.map +1 -1
  27. package/lib/typescript/organisms/Slides.d.ts +69 -0
  28. package/lib/typescript/organisms/Slides.d.ts.map +1 -0
  29. package/lib/typescript/organisms/index.d.ts +2 -0
  30. package/lib/typescript/organisms/index.d.ts.map +1 -1
  31. package/lib/typescript/organisms/useSlides.d.ts +52 -0
  32. package/lib/typescript/organisms/useSlides.d.ts.map +1 -0
  33. package/llms.txt +6 -5
  34. package/package.json +12 -2
  35. package/registry/gradient.json +18 -0
  36. package/registry/index.json +26 -0
  37. package/registry/manifest.json +14 -0
  38. package/registry/slides.json +24 -0
  39. package/src/atoms/Gradient.tsx +99 -0
  40. package/src/atoms/index.ts +2 -0
  41. package/src/organisms/Slides.tsx +413 -0
  42. package/src/organisms/index.ts +8 -0
  43. package/src/organisms/useSlides.ts +220 -0
@@ -0,0 +1,401 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useEffect, useRef } from 'react';
4
+ import { Animated, Easing, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
7
+ import { useReduceMotion } from '../atoms/Transition';
8
+ import { Gradient } from '../atoms/Gradient';
9
+ import { useSlides } from './useSlides';
10
+
11
+ /** Un color sólido, o dos o más para un degradado (ver `Gradient`). */
12
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ const DOT = 8;
14
+ const DOT_ACTIVE = 20;
15
+ const NUMBER_CIRCLE = 24;
16
+ const TOGGLE = 32;
17
+ const DEFAULT_HEIGHT = 240;
18
+ const DEFAULT_INTERVAL = 4000;
19
+ const useStyles = createStyles(theme => ({
20
+ // Deja redondear el bloque por `style` sin que el degradado se salga.
21
+ root: {
22
+ overflow: 'hidden'
23
+ },
24
+ viewport: {
25
+ flex: 1
26
+ },
27
+ // La slide visible es la caja de adentro: con `spacing` la página es más
28
+ // ancha que ella, y el fondo tiene que recortarse acá y no en la página, o
29
+ // el degradado pinta también el hueco.
30
+ slide: {
31
+ flex: 1,
32
+ overflow: 'hidden'
33
+ },
34
+ // Con indicadores fuera y orientación vertical el contenedor es una fila:
35
+ // sin flex la ventana no tiene ancho propio y colapsa a 0.
36
+ viewportInRow: {
37
+ flex: 1
38
+ },
39
+ slideContent: {
40
+ flex: 1
41
+ },
42
+ indicatorsRow: {
43
+ flexDirection: 'row',
44
+ alignItems: 'center',
45
+ justifyContent: 'center'
46
+ },
47
+ indicatorsColumn: {
48
+ flexDirection: 'column',
49
+ alignItems: 'center',
50
+ justifyContent: 'center'
51
+ },
52
+ indicatorsOverlayHorizontal: {
53
+ position: 'absolute',
54
+ left: 0,
55
+ right: 0,
56
+ bottom: theme.tokens.spacing.md
57
+ },
58
+ indicatorsOverlayVertical: {
59
+ position: 'absolute',
60
+ top: 0,
61
+ bottom: 0,
62
+ right: theme.tokens.spacing.md
63
+ },
64
+ indicatorsOutsideHorizontal: {
65
+ paddingTop: theme.tokens.spacing.md
66
+ },
67
+ indicatorsOutsideVertical: {
68
+ paddingLeft: theme.tokens.spacing.md
69
+ },
70
+ indicatorSlot: {
71
+ padding: theme.tokens.spacing.xs
72
+ },
73
+ dot: {
74
+ width: DOT,
75
+ height: DOT,
76
+ borderRadius: DOT / 2
77
+ },
78
+ autoPlayToggle: {
79
+ position: 'absolute',
80
+ top: theme.tokens.spacing.md,
81
+ right: theme.tokens.spacing.md,
82
+ width: TOGGLE,
83
+ height: TOGGLE,
84
+ borderRadius: TOGGLE / 2,
85
+ alignItems: 'center',
86
+ justifyContent: 'center',
87
+ flexDirection: 'row',
88
+ gap: 3
89
+ },
90
+ pauseBar: {
91
+ width: 3,
92
+ height: 12,
93
+ borderRadius: 1
94
+ },
95
+ // Triángulo con bordes: un "play" sin SVG ni set de íconos.
96
+ playTriangle: {
97
+ width: 0,
98
+ height: 0,
99
+ marginLeft: 2,
100
+ borderTopWidth: 6,
101
+ borderBottomWidth: 6,
102
+ borderLeftWidth: 10,
103
+ borderTopColor: 'transparent',
104
+ borderBottomColor: 'transparent'
105
+ },
106
+ numberCircle: {
107
+ minWidth: NUMBER_CIRCLE,
108
+ height: NUMBER_CIRCLE,
109
+ borderRadius: NUMBER_CIRCLE / 2,
110
+ borderWidth: 1,
111
+ paddingHorizontal: theme.tokens.spacing.xs,
112
+ alignItems: 'center',
113
+ justifyContent: 'center'
114
+ },
115
+ numberText: {
116
+ fontSize: theme.tokens.fontSize.xs,
117
+ fontWeight: theme.tokens.fontWeight.semibold
118
+ },
119
+ outsideHorizontal: {
120
+ flexDirection: 'column'
121
+ },
122
+ outsideVertical: {
123
+ flexDirection: 'row'
124
+ }
125
+ }));
126
+ /**
127
+ * El punto activo se estira en vez de saltar: el cambio de golpe se lee como
128
+ * "apareció otro punto", no como "el mismo se movió". Ancho y color son props
129
+ * de layout/pintura, así que van por el driver de JS.
130
+ */
131
+ const Dot = /*#__PURE__*/memo(({
132
+ selected,
133
+ isHorizontal,
134
+ overlay,
135
+ activeColor,
136
+ inactiveColor,
137
+ testID
138
+ }) => {
139
+ const styles = useStyles();
140
+ const theme = useTheme();
141
+ const reduceMotion = useReduceMotion();
142
+ const progress = useRef(new Animated.Value(selected ? 1 : 0)).current;
143
+ useEffect(() => {
144
+ Animated.timing(progress, {
145
+ toValue: selected ? 1 : 0,
146
+ duration: reduceMotion ? 0 : theme.tokens.duration.base,
147
+ easing: Easing.out(Easing.quad),
148
+ useNativeDriver: false
149
+ }).start();
150
+ }, [progress, reduceMotion, selected, theme]);
151
+ const length = progress.interpolate({
152
+ inputRange: [0, 1],
153
+ outputRange: [DOT, DOT_ACTIVE]
154
+ });
155
+ const backgroundColor = progress.interpolate({
156
+ inputRange: [0, 1],
157
+ outputRange: [inactiveColor, activeColor]
158
+ });
159
+ return /*#__PURE__*/_jsx(Animated.View, {
160
+ testID: testID,
161
+ style: [styles.dot, isHorizontal ? {
162
+ width: length
163
+ } : {
164
+ height: length
165
+ }, {
166
+ backgroundColor
167
+ }, overlay && {
168
+ opacity: progress.interpolate({
169
+ inputRange: [0, 1],
170
+ outputRange: [0.45, 1]
171
+ })
172
+ }]
173
+ });
174
+ });
175
+ Dot.displayName = 'SlidesDot';
176
+
177
+ /**
178
+ * Slides
179
+ * Carrusel con fondo propio (color plano o degradado) y contenido libre:
180
+ * `renderItem` decide si adentro va una imagen, texto o botones. El estado
181
+ * vive en `useSlides`; acá sólo está el árbol.
182
+ *
183
+ * El deslizamiento es un `ScrollView` con `pagingEnabled` en vez de gestos a
184
+ * mano: es lo único que da snap nativo en iOS y Android sin
185
+ * `react-native-gesture-handler`, en todo el rango soportado (Expo SDK 54–57).
186
+ */
187
+ export function Slides({
188
+ data,
189
+ keyExtractor,
190
+ renderItem,
191
+ background,
192
+ gradientDirection = 'vertical',
193
+ orientation = 'horizontal',
194
+ indicators = 'dots',
195
+ indicatorPlacement = 'overlay',
196
+ loop = false,
197
+ autoPlay = false,
198
+ interval = DEFAULT_INTERVAL,
199
+ showAutoPlayToggle = true,
200
+ spacing = 0,
201
+ index,
202
+ defaultIndex = 0,
203
+ onIndexChange,
204
+ height = DEFAULT_HEIGHT,
205
+ swipeEnabled = true,
206
+ slideStyle,
207
+ style,
208
+ testID
209
+ }) {
210
+ const colors = useColors();
211
+ const styles = useStyles();
212
+ const allowFontScaling = useAllowFontScaling();
213
+ const total = data.length;
214
+ const {
215
+ active,
216
+ pages,
217
+ isHorizontal,
218
+ size,
219
+ pageSize,
220
+ scrollRef,
221
+ autoPlayPaused,
222
+ motionReduced,
223
+ goTo,
224
+ toggleAutoPlay,
225
+ onLayout,
226
+ onMomentumScrollEnd,
227
+ onScrollBeginDrag,
228
+ onScrollEndDrag
229
+ } = useSlides({
230
+ total,
231
+ orientation,
232
+ loop,
233
+ autoPlay,
234
+ interval,
235
+ index,
236
+ defaultIndex,
237
+ onIndexChange
238
+ });
239
+ const isOverlay = indicatorPlacement === 'overlay';
240
+ const renderBackground = (item, real) => {
241
+ const value = background?.(item, real);
242
+ if (!value) return null;
243
+ if (Array.isArray(value)) {
244
+ return /*#__PURE__*/_jsx(Gradient, {
245
+ colors: value,
246
+ direction: gradientDirection,
247
+ style: StyleSheet.absoluteFill
248
+ });
249
+ }
250
+ return /*#__PURE__*/_jsx(View, {
251
+ style: [StyleSheet.absoluteFill, {
252
+ backgroundColor: value
253
+ }],
254
+ pointerEvents: "none"
255
+ });
256
+ };
257
+ const renderIndicator = position => {
258
+ const selected = position === active;
259
+ if (indicators === 'numbers') {
260
+ const numberColors = isOverlay ? {
261
+ background: selected ? colors.white : 'transparent',
262
+ border: colors.white,
263
+ text: selected ? colors.black : colors.white
264
+ } : {
265
+ background: selected ? colors.primary : 'transparent',
266
+ border: selected ? colors.primary : colors.border,
267
+ text: selected ? colors.onPrimary : colors.textLight
268
+ };
269
+ return /*#__PURE__*/_jsx(View, {
270
+ style: [styles.numberCircle, {
271
+ backgroundColor: numberColors.background,
272
+ borderColor: numberColors.border
273
+ }],
274
+ children: /*#__PURE__*/_jsx(Text, {
275
+ allowFontScaling: allowFontScaling,
276
+ style: [styles.numberText, {
277
+ color: numberColors.text
278
+ }],
279
+ children: position + 1
280
+ })
281
+ });
282
+ }
283
+ return /*#__PURE__*/_jsx(Dot, {
284
+ testID: `${testID ?? 'slides'}-dot-${position}`,
285
+ selected: selected,
286
+ isHorizontal: isHorizontal,
287
+ overlay: isOverlay,
288
+ activeColor: isOverlay ? colors.white : colors.primary,
289
+ inactiveColor: isOverlay ? colors.white : colors.border
290
+ });
291
+ };
292
+
293
+ // Con reduce-motion el autoPlay ya está apagado: no hay nada que pausar.
294
+ const renderAutoPlayToggle = () => {
295
+ if (!autoPlay || !showAutoPlayToggle || motionReduced || total < 2) return null;
296
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
297
+ testID: `${testID ?? 'slides'}-autoplay-toggle`,
298
+ style: [styles.autoPlayToggle, {
299
+ backgroundColor: colors.black,
300
+ opacity: 0.55
301
+ }],
302
+ activeOpacity: 0.7,
303
+ onPress: toggleAutoPlay,
304
+ accessibilityRole: "button",
305
+ accessibilityLabel: autoPlayPaused ? 'Resume automatic slides' : 'Pause automatic slides',
306
+ accessibilityState: {
307
+ selected: !autoPlayPaused
308
+ },
309
+ children: autoPlayPaused ? /*#__PURE__*/_jsx(View, {
310
+ style: [styles.playTriangle, {
311
+ borderLeftColor: colors.white
312
+ }]
313
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
314
+ children: [/*#__PURE__*/_jsx(View, {
315
+ style: [styles.pauseBar, {
316
+ backgroundColor: colors.white
317
+ }]
318
+ }), /*#__PURE__*/_jsx(View, {
319
+ style: [styles.pauseBar, {
320
+ backgroundColor: colors.white
321
+ }]
322
+ })]
323
+ })
324
+ });
325
+ };
326
+ const renderIndicators = () => {
327
+ if (indicators === 'none' || total < 2) return null;
328
+ return /*#__PURE__*/_jsx(View, {
329
+ testID: `${testID ?? 'slides'}-indicators`,
330
+ style: [isHorizontal ? styles.indicatorsRow : styles.indicatorsColumn, isOverlay ? isHorizontal ? styles.indicatorsOverlayHorizontal : styles.indicatorsOverlayVertical : isHorizontal ? styles.indicatorsOutsideHorizontal : styles.indicatorsOutsideVertical],
331
+ pointerEvents: "box-none",
332
+ children: data.map((item, position) => /*#__PURE__*/_jsx(TouchableOpacity, {
333
+ testID: `${testID ?? 'slides'}-indicator-${position}`,
334
+ style: styles.indicatorSlot,
335
+ activeOpacity: 0.7,
336
+ onPress: () => goTo(position),
337
+ accessibilityRole: "button",
338
+ accessibilityLabel: `Slide ${position + 1} of ${total}`,
339
+ accessibilityState: {
340
+ selected: position === active
341
+ },
342
+ children: renderIndicator(position)
343
+ }, `indicator-${keyExtractor(item, position)}`))
344
+ });
345
+ };
346
+ const viewport = /*#__PURE__*/_jsxs(View, {
347
+ testID: testID,
348
+ style: [styles.root, {
349
+ height
350
+ }, !isOverlay && !isHorizontal && styles.viewportInRow, isOverlay && style],
351
+ onLayout: onLayout,
352
+ children: [/*#__PURE__*/_jsx(ScrollView, {
353
+ ref: scrollRef,
354
+ testID: `${testID ?? 'slides'}-scroll`,
355
+ style: styles.viewport,
356
+ horizontal: isHorizontal,
357
+ pagingEnabled: true,
358
+ scrollEnabled: swipeEnabled && total > 1,
359
+ showsHorizontalScrollIndicator: false,
360
+ showsVerticalScrollIndicator: false,
361
+ onMomentumScrollEnd: onMomentumScrollEnd,
362
+ onScrollBeginDrag: onScrollBeginDrag,
363
+ onScrollEndDrag: onScrollEndDrag,
364
+ children: pageSize > 0 && pages.map(({
365
+ real,
366
+ clone
367
+ }) => {
368
+ const item = data[real];
369
+ return (
370
+ /*#__PURE__*/
371
+ // El hueco se reparte a los dos lados de cada página: así la
372
+ // separación entre dos slides es `spacing` entero y la página
373
+ // sigue midiendo exactamente lo que pagina el ScrollView.
374
+ _jsx(View, {
375
+ style: [{
376
+ width: size.width,
377
+ height: size.height
378
+ }, isHorizontal ? {
379
+ paddingHorizontal: spacing / 2
380
+ } : {
381
+ paddingVertical: spacing / 2
382
+ }],
383
+ children: /*#__PURE__*/_jsxs(View, {
384
+ style: [styles.slide, slideStyle],
385
+ children: [renderBackground(item, real), /*#__PURE__*/_jsx(View, {
386
+ style: styles.slideContent,
387
+ children: renderItem(item, real)
388
+ })]
389
+ })
390
+ }, clone ? `slides-clone-${clone}` : keyExtractor(item, real))
391
+ );
392
+ })
393
+ }), renderAutoPlayToggle(), isOverlay && renderIndicators()]
394
+ });
395
+ if (isOverlay) return viewport;
396
+ return /*#__PURE__*/_jsxs(View, {
397
+ style: [isHorizontal ? styles.outsideHorizontal : styles.outsideVertical, style],
398
+ children: [viewport, renderIndicators()]
399
+ });
400
+ }
401
+ //# sourceMappingURL=Slides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useEffect","useRef","Animated","Easing","ScrollView","StyleSheet","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","useTheme","useReduceMotion","Gradient","useSlides","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DOT","DOT_ACTIVE","NUMBER_CIRCLE","TOGGLE","DEFAULT_HEIGHT","DEFAULT_INTERVAL","useStyles","theme","root","overflow","viewport","flex","slide","viewportInRow","slideContent","indicatorsRow","flexDirection","alignItems","justifyContent","indicatorsColumn","indicatorsOverlayHorizontal","position","left","right","bottom","tokens","spacing","md","indicatorsOverlayVertical","top","indicatorsOutsideHorizontal","paddingTop","indicatorsOutsideVertical","paddingLeft","indicatorSlot","padding","xs","dot","width","height","borderRadius","autoPlayToggle","gap","pauseBar","playTriangle","marginLeft","borderTopWidth","borderBottomWidth","borderLeftWidth","borderTopColor","borderBottomColor","numberCircle","minWidth","borderWidth","paddingHorizontal","numberText","fontSize","fontWeight","semibold","outsideHorizontal","outsideVertical","Dot","selected","isHorizontal","overlay","activeColor","inactiveColor","testID","styles","reduceMotion","progress","Value","current","timing","toValue","duration","base","easing","out","quad","useNativeDriver","start","length","interpolate","inputRange","outputRange","backgroundColor","style","opacity","displayName","Slides","data","keyExtractor","renderItem","background","gradientDirection","orientation","indicators","indicatorPlacement","loop","autoPlay","interval","showAutoPlayToggle","index","defaultIndex","onIndexChange","swipeEnabled","slideStyle","colors","allowFontScaling","total","active","pages","size","pageSize","scrollRef","autoPlayPaused","motionReduced","goTo","toggleAutoPlay","onLayout","onMomentumScrollEnd","onScrollBeginDrag","onScrollEndDrag","isOverlay","renderBackground","item","real","value","Array","isArray","direction","absoluteFill","pointerEvents","renderIndicator","numberColors","white","border","text","black","primary","onPrimary","textLight","borderColor","children","color","renderAutoPlayToggle","activeOpacity","onPress","accessibilityRole","accessibilityLabel","accessibilityState","borderLeftColor","renderIndicators","map","ref","horizontal","pagingEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","clone","paddingVertical"],"sourceRoot":"../../../src","sources":["organisms/Slides.tsx"],"mappings":"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","ignoreList":[]}
@@ -16,4 +16,5 @@ export { Wizard } from './Wizard';
16
16
  export { ThemeToggle } from './ThemeToggle';
17
17
  export { NavigationBar } from './NavigationBar';
18
18
  export { ReorderableList } from './ReorderableList';
19
+ export { Slides } from './Slides';
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","BottomSheet","Select","Alert","AlertProvider","useAlert","showAlert","showConfirm","hideAlert","Screen","List","SearchList","Toast","ToastProvider","useToast","showToast","hideToast","hideAllToasts","DatePicker","buildMonthGrid","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","DateField","Wizard","ThemeToggle","NavigationBar","ReorderableList"],"sourceRoot":"../../../src","sources":["organisms/index.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,SAAS;AAE/B,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AAE5F,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,EAAEC,aAAa,QAAQ,iBAAiB;AAE9F,SAASC,UAAU,EAAEC,cAAc,EAAEC,mBAAmB,EAAEC,qBAAqB,QAAQ,cAAc;AAErG,SAASC,SAAS,QAAQ,aAAa;AAEvC,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,eAAe,QAAQ,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["Modal","BottomSheet","Select","Alert","AlertProvider","useAlert","showAlert","showConfirm","hideAlert","Screen","List","SearchList","Toast","ToastProvider","useToast","showToast","hideToast","hideAllToasts","DatePicker","buildMonthGrid","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","DateField","Wizard","ThemeToggle","NavigationBar","ReorderableList","Slides"],"sourceRoot":"../../../src","sources":["organisms/index.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,SAAS;AAE/B,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AAE5F,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,EAAEC,aAAa,QAAQ,iBAAiB;AAE9F,SAASC,UAAU,EAAEC,cAAc,EAAEC,mBAAmB,EAAEC,qBAAqB,QAAQ,cAAc;AAErG,SAASC,SAAS,QAAQ,aAAa;AAEvC,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,MAAM,QAAQ,UAAU","ignoreList":[]}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
+ import { useReduceMotion } from '../atoms/Transition';
5
+
6
+ /** Una página del scroll. Los clones del modo infinito repiten el `real` de un vecino. */
7
+
8
+ export function clampIndex(value, total) {
9
+ if (total === 0) return 0;
10
+ if (value < 0) return 0;
11
+ if (value > total - 1) return total - 1;
12
+ return value;
13
+ }
14
+
15
+ /**
16
+ * useSlides
17
+ * Todo lo que en `Slides` no se ve: qué página está encuadrada, cuándo mover el
18
+ * scroll, cómo se mapean los clones del modo infinito a índices reales, y el
19
+ * reloj del avance automático.
20
+ *
21
+ * Trabaja sólo con índices, nunca con los ítems: así no necesita el genérico
22
+ * `T` del componente, y el UI resuelve `pages[i].real` contra su propio `data`.
23
+ */
24
+ export function useSlides({
25
+ total,
26
+ orientation,
27
+ loop,
28
+ autoPlay,
29
+ interval,
30
+ index,
31
+ defaultIndex,
32
+ onIndexChange
33
+ }) {
34
+ const motionReduced = useReduceMotion();
35
+ const isHorizontal = orientation === 'horizontal';
36
+ // Un solo elemento no tiene a dónde ciclar: quedaría deslizable entre tres
37
+ // copias de lo mismo.
38
+ const isLoop = loop && total > 1;
39
+ const [uncontrolled, setUncontrolled] = useState(() => clampIndex(defaultIndex, total));
40
+ const active = clampIndex(index ?? uncontrolled, total);
41
+ const activeRef = useRef(active);
42
+ activeRef.current = active;
43
+ const [autoPlayPaused, setAutoPlayPaused] = useState(false);
44
+ const [size, setSize] = useState({
45
+ width: 0,
46
+ height: 0
47
+ });
48
+ const pageSize = isHorizontal ? size.width : size.height;
49
+ const scrollRef = useRef(null);
50
+ /** Página realmente visible (índice dentro de `pages`, clones incluidos). */
51
+ const offsetPageRef = useRef(isLoop ? 1 : 0);
52
+ const didInitRef = useRef(false);
53
+ const lastPageSizeRef = useRef(0);
54
+ const draggingRef = useRef(false);
55
+ const pages = useMemo(() => {
56
+ const real = Array.from({
57
+ length: total
58
+ }, (_, i) => ({
59
+ real: i,
60
+ clone: null
61
+ }));
62
+ if (!isLoop) return real;
63
+ return [{
64
+ real: total - 1,
65
+ clone: 'head'
66
+ }, ...real, {
67
+ real: 0,
68
+ clone: 'tail'
69
+ }];
70
+ }, [isLoop, total]);
71
+ const scrollToPage = useCallback((page, animated) => {
72
+ const offset = page * pageSize;
73
+ scrollRef.current?.scrollTo({
74
+ x: isHorizontal ? offset : 0,
75
+ y: isHorizontal ? 0 : offset,
76
+ animated
77
+ });
78
+ }, [isHorizontal, pageSize]);
79
+ const goTo = useCallback(next => {
80
+ if (next === activeRef.current) return;
81
+ activeRef.current = next;
82
+ if (index == null) setUncontrolled(next);
83
+ onIndexChange?.(next);
84
+ }, [index, onIndexChange]);
85
+
86
+ // Sólo actúa cuando el índice y la página visible discrepan: un cambio que
87
+ // vino del propio gesto no dispara un segundo scroll encima del que frenó.
88
+ useEffect(() => {
89
+ if (pageSize === 0 || total === 0) return;
90
+ const target = isLoop ? active + 1 : active;
91
+ const resized = lastPageSizeRef.current !== pageSize;
92
+ if (offsetPageRef.current === target && didInitRef.current && !resized) return;
93
+ // Ni el primer posicionamiento ni el reacomodo por rotación son un cambio
94
+ // de slide: animarlos sería un deslizamiento que nadie pidió.
95
+ const animated = didInitRef.current && !resized;
96
+ didInitRef.current = true;
97
+ lastPageSizeRef.current = pageSize;
98
+ offsetPageRef.current = target;
99
+ scrollToPage(target, animated);
100
+ }, [active, isLoop, pageSize, scrollToPage, total]);
101
+ const onLayout = useCallback(event => {
102
+ const {
103
+ width,
104
+ height
105
+ } = event.nativeEvent.layout;
106
+ setSize(prev => prev.width === width && prev.height === height ? prev : {
107
+ width,
108
+ height
109
+ });
110
+ }, []);
111
+ const onMomentumScrollEnd = useCallback(event => {
112
+ draggingRef.current = false;
113
+ if (pageSize === 0) return;
114
+ const {
115
+ contentOffset
116
+ } = event.nativeEvent;
117
+ const page = Math.round((isHorizontal ? contentOffset.x : contentOffset.y) / pageSize);
118
+ if (isLoop) {
119
+ if (page === 0) {
120
+ offsetPageRef.current = total;
121
+ scrollToPage(total, false);
122
+ goTo(total - 1);
123
+ return;
124
+ }
125
+ if (page === total + 1) {
126
+ offsetPageRef.current = 1;
127
+ scrollToPage(1, false);
128
+ goTo(0);
129
+ return;
130
+ }
131
+ offsetPageRef.current = page;
132
+ goTo(page - 1);
133
+ return;
134
+ }
135
+ offsetPageRef.current = page;
136
+ goTo(clampIndex(page, total));
137
+ }, [goTo, isHorizontal, isLoop, pageSize, scrollToPage, total]);
138
+ const onScrollBeginDrag = useCallback(() => {
139
+ draggingRef.current = true;
140
+ }, []);
141
+ const onScrollEndDrag = useCallback(() => {
142
+ // Un arrastre corto puede soltarse sin inercia y no emitir
143
+ // momentumScrollEnd: sin esto el autoPlay quedaría pausado para siempre.
144
+ draggingRef.current = false;
145
+ }, []);
146
+ const toggleAutoPlay = useCallback(() => setAutoPlayPaused(paused => !paused), []);
147
+ useEffect(() => {
148
+ if (!autoPlay || autoPlayPaused || motionReduced || total < 2 || pageSize === 0) return;
149
+ const timer = setInterval(() => {
150
+ if (draggingRef.current) return;
151
+ const from = activeRef.current;
152
+ if (from < total - 1) {
153
+ goTo(from + 1);
154
+ return;
155
+ }
156
+ if (!isLoop) return;
157
+ // Última en modo infinito: avanza al clon de la primera en vez de
158
+ // rebobinar; el salto al original lo cierra momentumScrollEnd.
159
+ offsetPageRef.current = total + 1;
160
+ scrollToPage(total + 1, true);
161
+ }, interval);
162
+ return () => clearInterval(timer);
163
+ }, [autoPlay, autoPlayPaused, goTo, interval, isLoop, motionReduced, pageSize, scrollToPage, total]);
164
+ return {
165
+ active,
166
+ pages,
167
+ isHorizontal,
168
+ isLoop,
169
+ size,
170
+ pageSize,
171
+ scrollRef,
172
+ autoPlayPaused,
173
+ motionReduced,
174
+ goTo,
175
+ toggleAutoPlay,
176
+ onLayout,
177
+ onMomentumScrollEnd,
178
+ onScrollBeginDrag,
179
+ onScrollEndDrag
180
+ };
181
+ }
182
+ //# sourceMappingURL=useSlides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useReduceMotion","clampIndex","value","total","useSlides","orientation","loop","autoPlay","interval","index","defaultIndex","onIndexChange","motionReduced","isHorizontal","isLoop","uncontrolled","setUncontrolled","active","activeRef","current","autoPlayPaused","setAutoPlayPaused","size","setSize","width","height","pageSize","scrollRef","offsetPageRef","didInitRef","lastPageSizeRef","draggingRef","pages","real","Array","from","length","_","i","clone","scrollToPage","page","animated","offset","scrollTo","x","y","goTo","next","target","resized","onLayout","event","nativeEvent","layout","prev","onMomentumScrollEnd","contentOffset","Math","round","onScrollBeginDrag","onScrollEndDrag","toggleAutoPlay","paused","timer","setInterval","clearInterval"],"sourceRoot":"../../../src","sources":["organisms/useSlides.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type GradientDirection = 'vertical' | 'horizontal' | 'diagonal' | 'diagonal-reverse';
4
+ export interface GradientProps {
5
+ /** Paradas del degradado. Uno solo pinta plano; ninguno no pinta nada. */
6
+ colors: string[];
7
+ /**
8
+ * 'vertical' va de arriba a abajo, 'horizontal' de izquierda a derecha,
9
+ * 'diagonal' de arriba-izquierda a abajo-derecha y 'diagonal-reverse' de
10
+ * arriba-derecha a abajo-izquierda.
11
+ * @default 'vertical'
12
+ */
13
+ direction?: GradientDirection;
14
+ /**
15
+ * Bandas por tramo (un tramo = un par de colores consecutivos). Más bandas
16
+ * = transición más suave y más vistas en el árbol.
17
+ * @default 24
18
+ */
19
+ steps?: number;
20
+ /** Contenido por encima del degradado. */
21
+ children?: React.ReactNode;
22
+ style?: StyleProp<ViewStyle>;
23
+ testID?: string;
24
+ }
25
+ /**
26
+ * Gradient
27
+ * Degradado lineal sin dependencias: React Native no trae uno en el rango
28
+ * soportado (Expo SDK 54–57) y `experimental_backgroundImage` no está en toda
29
+ * esa ventana, así que se compone con bandas.
30
+ *
31
+ * Cada tramo pinta el color inicial y encima N bandas del final con opacidad
32
+ * de 0 a 1. El compositor mezcla alpha linealmente: el resultado es la
33
+ * interpolación sRGB entre paradas sin parsear el color, y por eso vale
34
+ * cualquier formato que acepte RN (hex, `rgba()`, nombre).
35
+ */
36
+ export declare const Gradient: React.MemoExoticComponent<({ colors, direction, steps, children, style, testID }: GradientProps) => React.JSX.Element>;
37
+ //# sourceMappingURL=Gradient.d.ts.map