orn-ui 0.2.6 → 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 (146) hide show
  1. package/AGENTS.md +372 -0
  2. package/README.md +46 -15
  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/Badge.d.ts +1 -1
  24. package/lib/typescript/atoms/Badge.d.ts.map +1 -1
  25. package/lib/typescript/atoms/Gradient.d.ts +37 -0
  26. package/lib/typescript/atoms/Gradient.d.ts.map +1 -0
  27. package/lib/typescript/atoms/Image.d.ts +6 -6
  28. package/lib/typescript/atoms/Image.d.ts.map +1 -1
  29. package/lib/typescript/atoms/Input.d.ts +1 -1
  30. package/lib/typescript/atoms/Input.d.ts.map +1 -1
  31. package/lib/typescript/atoms/PressableScale.d.ts +1 -1
  32. package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
  33. package/lib/typescript/atoms/Skeleton.d.ts +5 -5
  34. package/lib/typescript/atoms/Skeleton.d.ts.map +1 -1
  35. package/lib/typescript/atoms/Spinner.d.ts +4 -4
  36. package/lib/typescript/atoms/Spinner.d.ts.map +1 -1
  37. package/lib/typescript/atoms/Transition.d.ts +10 -10
  38. package/lib/typescript/atoms/Transition.d.ts.map +1 -1
  39. package/lib/typescript/atoms/index.d.ts +2 -0
  40. package/lib/typescript/atoms/index.d.ts.map +1 -1
  41. package/lib/typescript/molecules/AvatarHeader.d.ts +2 -2
  42. package/lib/typescript/molecules/AvatarHeader.d.ts.map +1 -1
  43. package/lib/typescript/molecules/FormActions.d.ts +1 -1
  44. package/lib/typescript/molecules/FormActions.d.ts.map +1 -1
  45. package/lib/typescript/molecules/OptionCard.d.ts +2 -2
  46. package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
  47. package/lib/typescript/molecules/Stepper.d.ts +8 -8
  48. package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
  49. package/lib/typescript/molecules/Steps.d.ts +3 -3
  50. package/lib/typescript/molecules/Steps.d.ts.map +1 -1
  51. package/lib/typescript/molecules/SymmetricGrid.d.ts +4 -4
  52. package/lib/typescript/molecules/SymmetricGrid.d.ts.map +1 -1
  53. package/lib/typescript/organisms/BottomSheet.d.ts +8 -8
  54. package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
  55. package/lib/typescript/organisms/DateField.d.ts +10 -10
  56. package/lib/typescript/organisms/DateField.d.ts.map +1 -1
  57. package/lib/typescript/organisms/DatePicker.d.ts +10 -10
  58. package/lib/typescript/organisms/DatePicker.d.ts.map +1 -1
  59. package/lib/typescript/organisms/List.d.ts +6 -6
  60. package/lib/typescript/organisms/List.d.ts.map +1 -1
  61. package/lib/typescript/organisms/NavigationBar.d.ts +2 -2
  62. package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -1
  63. package/lib/typescript/organisms/ReorderableList.d.ts +7 -7
  64. package/lib/typescript/organisms/ReorderableList.d.ts.map +1 -1
  65. package/lib/typescript/organisms/Screen.d.ts +6 -6
  66. package/lib/typescript/organisms/SearchList.d.ts +8 -8
  67. package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
  68. package/lib/typescript/organisms/Select.d.ts +2 -2
  69. package/lib/typescript/organisms/Select.d.ts.map +1 -1
  70. package/lib/typescript/organisms/Slides.d.ts +69 -0
  71. package/lib/typescript/organisms/Slides.d.ts.map +1 -0
  72. package/lib/typescript/organisms/Toast.d.ts +2 -2
  73. package/lib/typescript/organisms/Toast.d.ts.map +1 -1
  74. package/lib/typescript/organisms/ToastProvider.d.ts +2 -2
  75. package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
  76. package/lib/typescript/organisms/Wizard.d.ts +7 -7
  77. package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
  78. package/lib/typescript/organisms/index.d.ts +2 -0
  79. package/lib/typescript/organisms/index.d.ts.map +1 -1
  80. package/lib/typescript/organisms/useSlides.d.ts +52 -0
  81. package/lib/typescript/organisms/useSlides.d.ts.map +1 -0
  82. package/lib/typescript/theme/UIProvider.d.ts +9 -9
  83. package/lib/typescript/theme/UIProvider.d.ts.map +1 -1
  84. package/llms.txt +34 -0
  85. package/package.json +34 -6
  86. package/registry/avatar-header.json +1 -1
  87. package/registry/badge.json +1 -1
  88. package/registry/bottom-sheet.json +1 -1
  89. package/registry/core.json +1 -1
  90. package/registry/date-field.json +1 -1
  91. package/registry/date-picker.json +1 -1
  92. package/registry/form-actions.json +1 -1
  93. package/registry/gradient.json +18 -0
  94. package/registry/image.json +1 -1
  95. package/registry/index.json +52 -26
  96. package/registry/input.json +1 -1
  97. package/registry/list.json +1 -1
  98. package/registry/manifest.json +14 -0
  99. package/registry/navigation-bar.json +1 -1
  100. package/registry/option-card.json +1 -1
  101. package/registry/pressable-scale.json +1 -1
  102. package/registry/reorderable-list.json +1 -1
  103. package/registry/screen.json +1 -1
  104. package/registry/search-list.json +1 -1
  105. package/registry/select.json +1 -1
  106. package/registry/skeleton.json +1 -1
  107. package/registry/slides.json +24 -0
  108. package/registry/spinner.json +1 -1
  109. package/registry/stepper.json +1 -1
  110. package/registry/steps.json +1 -1
  111. package/registry/symmetric-grid.json +1 -1
  112. package/registry/toast-provider.json +1 -1
  113. package/registry/toast.json +1 -1
  114. package/registry/transition.json +1 -1
  115. package/registry/wizard.json +1 -1
  116. package/src/atoms/Badge.tsx +1 -1
  117. package/src/atoms/Gradient.tsx +99 -0
  118. package/src/atoms/Image.tsx +6 -6
  119. package/src/atoms/Input.tsx +1 -1
  120. package/src/atoms/PressableScale.tsx +1 -1
  121. package/src/atoms/Skeleton.tsx +5 -5
  122. package/src/atoms/Spinner.tsx +4 -4
  123. package/src/atoms/Transition.tsx +10 -10
  124. package/src/atoms/index.ts +2 -0
  125. package/src/molecules/AvatarHeader.tsx +2 -2
  126. package/src/molecules/FormActions.tsx +1 -1
  127. package/src/molecules/OptionCard.tsx +2 -2
  128. package/src/molecules/Stepper.tsx +8 -8
  129. package/src/molecules/Steps.tsx +3 -3
  130. package/src/molecules/SymmetricGrid.tsx +4 -4
  131. package/src/organisms/BottomSheet.tsx +8 -8
  132. package/src/organisms/DateField.tsx +10 -10
  133. package/src/organisms/DatePicker.tsx +10 -10
  134. package/src/organisms/List.tsx +6 -6
  135. package/src/organisms/NavigationBar.tsx +2 -2
  136. package/src/organisms/ReorderableList.tsx +7 -7
  137. package/src/organisms/Screen.tsx +6 -6
  138. package/src/organisms/SearchList.tsx +8 -8
  139. package/src/organisms/Select.tsx +2 -2
  140. package/src/organisms/Slides.tsx +413 -0
  141. package/src/organisms/Toast.tsx +2 -2
  142. package/src/organisms/ToastProvider.tsx +2 -2
  143. package/src/organisms/Wizard.tsx +7 -7
  144. package/src/organisms/index.ts +8 -0
  145. package/src/organisms/useSlides.ts +220 -0
  146. package/src/theme/UIProvider.tsx +9 -9
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Slides = Slides;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _createStyles = require("../theme/createStyles");
10
+ var _UIProvider = require("../theme/UIProvider");
11
+ var _Transition = require("../atoms/Transition");
12
+ var _Gradient = require("../atoms/Gradient");
13
+ var _useSlides = require("./useSlides");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ /** Un color sólido, o dos o más para un degradado (ver `Gradient`). */
17
+
18
+ const DOT = 8;
19
+ const DOT_ACTIVE = 20;
20
+ const NUMBER_CIRCLE = 24;
21
+ const TOGGLE = 32;
22
+ const DEFAULT_HEIGHT = 240;
23
+ const DEFAULT_INTERVAL = 4000;
24
+ const useStyles = (0, _createStyles.createStyles)(theme => ({
25
+ // Deja redondear el bloque por `style` sin que el degradado se salga.
26
+ root: {
27
+ overflow: 'hidden'
28
+ },
29
+ viewport: {
30
+ flex: 1
31
+ },
32
+ // La slide visible es la caja de adentro: con `spacing` la página es más
33
+ // ancha que ella, y el fondo tiene que recortarse acá y no en la página, o
34
+ // el degradado pinta también el hueco.
35
+ slide: {
36
+ flex: 1,
37
+ overflow: 'hidden'
38
+ },
39
+ // Con indicadores fuera y orientación vertical el contenedor es una fila:
40
+ // sin flex la ventana no tiene ancho propio y colapsa a 0.
41
+ viewportInRow: {
42
+ flex: 1
43
+ },
44
+ slideContent: {
45
+ flex: 1
46
+ },
47
+ indicatorsRow: {
48
+ flexDirection: 'row',
49
+ alignItems: 'center',
50
+ justifyContent: 'center'
51
+ },
52
+ indicatorsColumn: {
53
+ flexDirection: 'column',
54
+ alignItems: 'center',
55
+ justifyContent: 'center'
56
+ },
57
+ indicatorsOverlayHorizontal: {
58
+ position: 'absolute',
59
+ left: 0,
60
+ right: 0,
61
+ bottom: theme.tokens.spacing.md
62
+ },
63
+ indicatorsOverlayVertical: {
64
+ position: 'absolute',
65
+ top: 0,
66
+ bottom: 0,
67
+ right: theme.tokens.spacing.md
68
+ },
69
+ indicatorsOutsideHorizontal: {
70
+ paddingTop: theme.tokens.spacing.md
71
+ },
72
+ indicatorsOutsideVertical: {
73
+ paddingLeft: theme.tokens.spacing.md
74
+ },
75
+ indicatorSlot: {
76
+ padding: theme.tokens.spacing.xs
77
+ },
78
+ dot: {
79
+ width: DOT,
80
+ height: DOT,
81
+ borderRadius: DOT / 2
82
+ },
83
+ autoPlayToggle: {
84
+ position: 'absolute',
85
+ top: theme.tokens.spacing.md,
86
+ right: theme.tokens.spacing.md,
87
+ width: TOGGLE,
88
+ height: TOGGLE,
89
+ borderRadius: TOGGLE / 2,
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ flexDirection: 'row',
93
+ gap: 3
94
+ },
95
+ pauseBar: {
96
+ width: 3,
97
+ height: 12,
98
+ borderRadius: 1
99
+ },
100
+ // Triángulo con bordes: un "play" sin SVG ni set de íconos.
101
+ playTriangle: {
102
+ width: 0,
103
+ height: 0,
104
+ marginLeft: 2,
105
+ borderTopWidth: 6,
106
+ borderBottomWidth: 6,
107
+ borderLeftWidth: 10,
108
+ borderTopColor: 'transparent',
109
+ borderBottomColor: 'transparent'
110
+ },
111
+ numberCircle: {
112
+ minWidth: NUMBER_CIRCLE,
113
+ height: NUMBER_CIRCLE,
114
+ borderRadius: NUMBER_CIRCLE / 2,
115
+ borderWidth: 1,
116
+ paddingHorizontal: theme.tokens.spacing.xs,
117
+ alignItems: 'center',
118
+ justifyContent: 'center'
119
+ },
120
+ numberText: {
121
+ fontSize: theme.tokens.fontSize.xs,
122
+ fontWeight: theme.tokens.fontWeight.semibold
123
+ },
124
+ outsideHorizontal: {
125
+ flexDirection: 'column'
126
+ },
127
+ outsideVertical: {
128
+ flexDirection: 'row'
129
+ }
130
+ }));
131
+ /**
132
+ * El punto activo se estira en vez de saltar: el cambio de golpe se lee como
133
+ * "apareció otro punto", no como "el mismo se movió". Ancho y color son props
134
+ * de layout/pintura, así que van por el driver de JS.
135
+ */
136
+ const Dot = /*#__PURE__*/(0, _react.memo)(({
137
+ selected,
138
+ isHorizontal,
139
+ overlay,
140
+ activeColor,
141
+ inactiveColor,
142
+ testID
143
+ }) => {
144
+ const styles = useStyles();
145
+ const theme = (0, _UIProvider.useTheme)();
146
+ const reduceMotion = (0, _Transition.useReduceMotion)();
147
+ const progress = (0, _react.useRef)(new _reactNative.Animated.Value(selected ? 1 : 0)).current;
148
+ (0, _react.useEffect)(() => {
149
+ _reactNative.Animated.timing(progress, {
150
+ toValue: selected ? 1 : 0,
151
+ duration: reduceMotion ? 0 : theme.tokens.duration.base,
152
+ easing: _reactNative.Easing.out(_reactNative.Easing.quad),
153
+ useNativeDriver: false
154
+ }).start();
155
+ }, [progress, reduceMotion, selected, theme]);
156
+ const length = progress.interpolate({
157
+ inputRange: [0, 1],
158
+ outputRange: [DOT, DOT_ACTIVE]
159
+ });
160
+ const backgroundColor = progress.interpolate({
161
+ inputRange: [0, 1],
162
+ outputRange: [inactiveColor, activeColor]
163
+ });
164
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
165
+ testID: testID,
166
+ style: [styles.dot, isHorizontal ? {
167
+ width: length
168
+ } : {
169
+ height: length
170
+ }, {
171
+ backgroundColor
172
+ }, overlay && {
173
+ opacity: progress.interpolate({
174
+ inputRange: [0, 1],
175
+ outputRange: [0.45, 1]
176
+ })
177
+ }]
178
+ });
179
+ });
180
+ Dot.displayName = 'SlidesDot';
181
+
182
+ /**
183
+ * Slides
184
+ * Carrusel con fondo propio (color plano o degradado) y contenido libre:
185
+ * `renderItem` decide si adentro va una imagen, texto o botones. El estado
186
+ * vive en `useSlides`; acá sólo está el árbol.
187
+ *
188
+ * El deslizamiento es un `ScrollView` con `pagingEnabled` en vez de gestos a
189
+ * mano: es lo único que da snap nativo en iOS y Android sin
190
+ * `react-native-gesture-handler`, en todo el rango soportado (Expo SDK 54–57).
191
+ */
192
+ function Slides({
193
+ data,
194
+ keyExtractor,
195
+ renderItem,
196
+ background,
197
+ gradientDirection = 'vertical',
198
+ orientation = 'horizontal',
199
+ indicators = 'dots',
200
+ indicatorPlacement = 'overlay',
201
+ loop = false,
202
+ autoPlay = false,
203
+ interval = DEFAULT_INTERVAL,
204
+ showAutoPlayToggle = true,
205
+ spacing = 0,
206
+ index,
207
+ defaultIndex = 0,
208
+ onIndexChange,
209
+ height = DEFAULT_HEIGHT,
210
+ swipeEnabled = true,
211
+ slideStyle,
212
+ style,
213
+ testID
214
+ }) {
215
+ const colors = (0, _UIProvider.useColors)();
216
+ const styles = useStyles();
217
+ const allowFontScaling = (0, _UIProvider.useAllowFontScaling)();
218
+ const total = data.length;
219
+ const {
220
+ active,
221
+ pages,
222
+ isHorizontal,
223
+ size,
224
+ pageSize,
225
+ scrollRef,
226
+ autoPlayPaused,
227
+ motionReduced,
228
+ goTo,
229
+ toggleAutoPlay,
230
+ onLayout,
231
+ onMomentumScrollEnd,
232
+ onScrollBeginDrag,
233
+ onScrollEndDrag
234
+ } = (0, _useSlides.useSlides)({
235
+ total,
236
+ orientation,
237
+ loop,
238
+ autoPlay,
239
+ interval,
240
+ index,
241
+ defaultIndex,
242
+ onIndexChange
243
+ });
244
+ const isOverlay = indicatorPlacement === 'overlay';
245
+ const renderBackground = (item, real) => {
246
+ const value = background?.(item, real);
247
+ if (!value) return null;
248
+ if (Array.isArray(value)) {
249
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Gradient.Gradient, {
250
+ colors: value,
251
+ direction: gradientDirection,
252
+ style: _reactNative.StyleSheet.absoluteFill
253
+ });
254
+ }
255
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
256
+ style: [_reactNative.StyleSheet.absoluteFill, {
257
+ backgroundColor: value
258
+ }],
259
+ pointerEvents: "none"
260
+ });
261
+ };
262
+ const renderIndicator = position => {
263
+ const selected = position === active;
264
+ if (indicators === 'numbers') {
265
+ const numberColors = isOverlay ? {
266
+ background: selected ? colors.white : 'transparent',
267
+ border: colors.white,
268
+ text: selected ? colors.black : colors.white
269
+ } : {
270
+ background: selected ? colors.primary : 'transparent',
271
+ border: selected ? colors.primary : colors.border,
272
+ text: selected ? colors.onPrimary : colors.textLight
273
+ };
274
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
275
+ style: [styles.numberCircle, {
276
+ backgroundColor: numberColors.background,
277
+ borderColor: numberColors.border
278
+ }],
279
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
280
+ allowFontScaling: allowFontScaling,
281
+ style: [styles.numberText, {
282
+ color: numberColors.text
283
+ }],
284
+ children: position + 1
285
+ })
286
+ });
287
+ }
288
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Dot, {
289
+ testID: `${testID ?? 'slides'}-dot-${position}`,
290
+ selected: selected,
291
+ isHorizontal: isHorizontal,
292
+ overlay: isOverlay,
293
+ activeColor: isOverlay ? colors.white : colors.primary,
294
+ inactiveColor: isOverlay ? colors.white : colors.border
295
+ });
296
+ };
297
+
298
+ // Con reduce-motion el autoPlay ya está apagado: no hay nada que pausar.
299
+ const renderAutoPlayToggle = () => {
300
+ if (!autoPlay || !showAutoPlayToggle || motionReduced || total < 2) return null;
301
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
302
+ testID: `${testID ?? 'slides'}-autoplay-toggle`,
303
+ style: [styles.autoPlayToggle, {
304
+ backgroundColor: colors.black,
305
+ opacity: 0.55
306
+ }],
307
+ activeOpacity: 0.7,
308
+ onPress: toggleAutoPlay,
309
+ accessibilityRole: "button",
310
+ accessibilityLabel: autoPlayPaused ? 'Resume automatic slides' : 'Pause automatic slides',
311
+ accessibilityState: {
312
+ selected: !autoPlayPaused
313
+ },
314
+ children: autoPlayPaused ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
315
+ style: [styles.playTriangle, {
316
+ borderLeftColor: colors.white
317
+ }]
318
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
319
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
320
+ style: [styles.pauseBar, {
321
+ backgroundColor: colors.white
322
+ }]
323
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
324
+ style: [styles.pauseBar, {
325
+ backgroundColor: colors.white
326
+ }]
327
+ })]
328
+ })
329
+ });
330
+ };
331
+ const renderIndicators = () => {
332
+ if (indicators === 'none' || total < 2) return null;
333
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
334
+ testID: `${testID ?? 'slides'}-indicators`,
335
+ style: [isHorizontal ? styles.indicatorsRow : styles.indicatorsColumn, isOverlay ? isHorizontal ? styles.indicatorsOverlayHorizontal : styles.indicatorsOverlayVertical : isHorizontal ? styles.indicatorsOutsideHorizontal : styles.indicatorsOutsideVertical],
336
+ pointerEvents: "box-none",
337
+ children: data.map((item, position) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
338
+ testID: `${testID ?? 'slides'}-indicator-${position}`,
339
+ style: styles.indicatorSlot,
340
+ activeOpacity: 0.7,
341
+ onPress: () => goTo(position),
342
+ accessibilityRole: "button",
343
+ accessibilityLabel: `Slide ${position + 1} of ${total}`,
344
+ accessibilityState: {
345
+ selected: position === active
346
+ },
347
+ children: renderIndicator(position)
348
+ }, `indicator-${keyExtractor(item, position)}`))
349
+ });
350
+ };
351
+ const viewport = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
352
+ testID: testID,
353
+ style: [styles.root, {
354
+ height
355
+ }, !isOverlay && !isHorizontal && styles.viewportInRow, isOverlay && style],
356
+ onLayout: onLayout,
357
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
358
+ ref: scrollRef,
359
+ testID: `${testID ?? 'slides'}-scroll`,
360
+ style: styles.viewport,
361
+ horizontal: isHorizontal,
362
+ pagingEnabled: true,
363
+ scrollEnabled: swipeEnabled && total > 1,
364
+ showsHorizontalScrollIndicator: false,
365
+ showsVerticalScrollIndicator: false,
366
+ onMomentumScrollEnd: onMomentumScrollEnd,
367
+ onScrollBeginDrag: onScrollBeginDrag,
368
+ onScrollEndDrag: onScrollEndDrag,
369
+ children: pageSize > 0 && pages.map(({
370
+ real,
371
+ clone
372
+ }) => {
373
+ const item = data[real];
374
+ return (
375
+ /*#__PURE__*/
376
+ // El hueco se reparte a los dos lados de cada página: así la
377
+ // separación entre dos slides es `spacing` entero y la página
378
+ // sigue midiendo exactamente lo que pagina el ScrollView.
379
+ (0, _jsxRuntime.jsx)(_reactNative.View, {
380
+ style: [{
381
+ width: size.width,
382
+ height: size.height
383
+ }, isHorizontal ? {
384
+ paddingHorizontal: spacing / 2
385
+ } : {
386
+ paddingVertical: spacing / 2
387
+ }],
388
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
389
+ style: [styles.slide, slideStyle],
390
+ children: [renderBackground(item, real), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
391
+ style: styles.slideContent,
392
+ children: renderItem(item, real)
393
+ })]
394
+ })
395
+ }, clone ? `slides-clone-${clone}` : keyExtractor(item, real))
396
+ );
397
+ })
398
+ }), renderAutoPlayToggle(), isOverlay && renderIndicators()]
399
+ });
400
+ if (isOverlay) return viewport;
401
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
402
+ style: [isHorizontal ? styles.outsideHorizontal : styles.outsideVertical, style],
403
+ children: [viewport, renderIndicators()]
404
+ });
405
+ }
406
+ //# sourceMappingURL=Slides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Transition","_Gradient","_useSlides","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DOT","DOT_ACTIVE","NUMBER_CIRCLE","TOGGLE","DEFAULT_HEIGHT","DEFAULT_INTERVAL","useStyles","createStyles","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","memo","selected","isHorizontal","overlay","activeColor","inactiveColor","testID","styles","useTheme","reduceMotion","useReduceMotion","progress","useRef","Animated","Value","current","useEffect","timing","toValue","duration","base","easing","Easing","out","quad","useNativeDriver","start","length","interpolate","inputRange","outputRange","backgroundColor","jsx","View","style","opacity","displayName","Slides","data","keyExtractor","renderItem","background","gradientDirection","orientation","indicators","indicatorPlacement","loop","autoPlay","interval","showAutoPlayToggle","index","defaultIndex","onIndexChange","swipeEnabled","slideStyle","colors","useColors","allowFontScaling","useAllowFontScaling","total","active","pages","size","pageSize","scrollRef","autoPlayPaused","motionReduced","goTo","toggleAutoPlay","onLayout","onMomentumScrollEnd","onScrollBeginDrag","onScrollEndDrag","useSlides","isOverlay","renderBackground","item","real","value","Array","isArray","Gradient","direction","StyleSheet","absoluteFill","pointerEvents","renderIndicator","numberColors","white","border","text","black","primary","onPrimary","textLight","borderColor","children","Text","color","renderAutoPlayToggle","TouchableOpacity","activeOpacity","onPress","accessibilityRole","accessibilityLabel","accessibilityState","borderLeftColor","jsxs","Fragment","renderIndicators","map","ScrollView","ref","horizontal","pagingEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","clone","paddingVertical"],"sourceRoot":"../../../src","sources":["organisms/Slides.tsx"],"mappings":"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","ignoreList":[]}
@@ -87,6 +87,12 @@ Object.defineProperty(exports, "Select", {
87
87
  return _Select.Select;
88
88
  }
89
89
  });
90
+ Object.defineProperty(exports, "Slides", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _Slides.Slides;
94
+ }
95
+ });
90
96
  Object.defineProperty(exports, "ThemeToggle", {
91
97
  enumerable: true,
92
98
  get: function () {
@@ -181,4 +187,5 @@ var _Wizard = require("./Wizard");
181
187
  var _ThemeToggle = require("./ThemeToggle");
182
188
  var _NavigationBar = require("./NavigationBar");
183
189
  var _ReorderableList = require("./ReorderableList");
190
+ var _Slides = require("./Slides");
184
191
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_Modal","require","_BottomSheet","_Select","_Alert","_AlertProvider","_Screen","_List","_SearchList","_Toast","_ToastProvider","_DatePicker","_DateField","_Wizard","_ThemeToggle","_NavigationBar","_ReorderableList"],"sourceRoot":"../../../src","sources":["organisms/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AAEA,IAAAO,WAAA,GAAAP,OAAA;AAEA,IAAAQ,MAAA,GAAAR,OAAA;AAEA,IAAAS,cAAA,GAAAT,OAAA;AAEA,IAAAU,WAAA,GAAAV,OAAA;AAEA,IAAAW,UAAA,GAAAX,OAAA;AAEA,IAAAY,OAAA,GAAAZ,OAAA;AAEA,IAAAa,YAAA,GAAAb,OAAA;AAEA,IAAAc,cAAA,GAAAd,OAAA;AAEA,IAAAe,gBAAA,GAAAf,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Modal","require","_BottomSheet","_Select","_Alert","_AlertProvider","_Screen","_List","_SearchList","_Toast","_ToastProvider","_DatePicker","_DateField","_Wizard","_ThemeToggle","_NavigationBar","_ReorderableList","_Slides"],"sourceRoot":"../../../src","sources":["organisms/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AAEA,IAAAO,WAAA,GAAAP,OAAA;AAEA,IAAAQ,MAAA,GAAAR,OAAA;AAEA,IAAAS,cAAA,GAAAT,OAAA;AAEA,IAAAU,WAAA,GAAAV,OAAA;AAEA,IAAAW,UAAA,GAAAX,OAAA;AAEA,IAAAY,OAAA,GAAAZ,OAAA;AAEA,IAAAa,YAAA,GAAAb,OAAA;AAEA,IAAAc,cAAA,GAAAd,OAAA;AAEA,IAAAe,gBAAA,GAAAf,OAAA;AAEA,IAAAgB,OAAA,GAAAhB,OAAA","ignoreList":[]}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clampIndex = clampIndex;
7
+ exports.useSlides = useSlides;
8
+ var _react = require("react");
9
+ var _Transition = require("../atoms/Transition");
10
+ /** Una página del scroll. Los clones del modo infinito repiten el `real` de un vecino. */
11
+
12
+ function clampIndex(value, total) {
13
+ if (total === 0) return 0;
14
+ if (value < 0) return 0;
15
+ if (value > total - 1) return total - 1;
16
+ return value;
17
+ }
18
+
19
+ /**
20
+ * useSlides
21
+ * Todo lo que en `Slides` no se ve: qué página está encuadrada, cuándo mover el
22
+ * scroll, cómo se mapean los clones del modo infinito a índices reales, y el
23
+ * reloj del avance automático.
24
+ *
25
+ * Trabaja sólo con índices, nunca con los ítems: así no necesita el genérico
26
+ * `T` del componente, y el UI resuelve `pages[i].real` contra su propio `data`.
27
+ */
28
+ function useSlides({
29
+ total,
30
+ orientation,
31
+ loop,
32
+ autoPlay,
33
+ interval,
34
+ index,
35
+ defaultIndex,
36
+ onIndexChange
37
+ }) {
38
+ const motionReduced = (0, _Transition.useReduceMotion)();
39
+ const isHorizontal = orientation === 'horizontal';
40
+ // Un solo elemento no tiene a dónde ciclar: quedaría deslizable entre tres
41
+ // copias de lo mismo.
42
+ const isLoop = loop && total > 1;
43
+ const [uncontrolled, setUncontrolled] = (0, _react.useState)(() => clampIndex(defaultIndex, total));
44
+ const active = clampIndex(index ?? uncontrolled, total);
45
+ const activeRef = (0, _react.useRef)(active);
46
+ activeRef.current = active;
47
+ const [autoPlayPaused, setAutoPlayPaused] = (0, _react.useState)(false);
48
+ const [size, setSize] = (0, _react.useState)({
49
+ width: 0,
50
+ height: 0
51
+ });
52
+ const pageSize = isHorizontal ? size.width : size.height;
53
+ const scrollRef = (0, _react.useRef)(null);
54
+ /** Página realmente visible (índice dentro de `pages`, clones incluidos). */
55
+ const offsetPageRef = (0, _react.useRef)(isLoop ? 1 : 0);
56
+ const didInitRef = (0, _react.useRef)(false);
57
+ const lastPageSizeRef = (0, _react.useRef)(0);
58
+ const draggingRef = (0, _react.useRef)(false);
59
+ const pages = (0, _react.useMemo)(() => {
60
+ const real = Array.from({
61
+ length: total
62
+ }, (_, i) => ({
63
+ real: i,
64
+ clone: null
65
+ }));
66
+ if (!isLoop) return real;
67
+ return [{
68
+ real: total - 1,
69
+ clone: 'head'
70
+ }, ...real, {
71
+ real: 0,
72
+ clone: 'tail'
73
+ }];
74
+ }, [isLoop, total]);
75
+ const scrollToPage = (0, _react.useCallback)((page, animated) => {
76
+ const offset = page * pageSize;
77
+ scrollRef.current?.scrollTo({
78
+ x: isHorizontal ? offset : 0,
79
+ y: isHorizontal ? 0 : offset,
80
+ animated
81
+ });
82
+ }, [isHorizontal, pageSize]);
83
+ const goTo = (0, _react.useCallback)(next => {
84
+ if (next === activeRef.current) return;
85
+ activeRef.current = next;
86
+ if (index == null) setUncontrolled(next);
87
+ onIndexChange?.(next);
88
+ }, [index, onIndexChange]);
89
+
90
+ // Sólo actúa cuando el índice y la página visible discrepan: un cambio que
91
+ // vino del propio gesto no dispara un segundo scroll encima del que frenó.
92
+ (0, _react.useEffect)(() => {
93
+ if (pageSize === 0 || total === 0) return;
94
+ const target = isLoop ? active + 1 : active;
95
+ const resized = lastPageSizeRef.current !== pageSize;
96
+ if (offsetPageRef.current === target && didInitRef.current && !resized) return;
97
+ // Ni el primer posicionamiento ni el reacomodo por rotación son un cambio
98
+ // de slide: animarlos sería un deslizamiento que nadie pidió.
99
+ const animated = didInitRef.current && !resized;
100
+ didInitRef.current = true;
101
+ lastPageSizeRef.current = pageSize;
102
+ offsetPageRef.current = target;
103
+ scrollToPage(target, animated);
104
+ }, [active, isLoop, pageSize, scrollToPage, total]);
105
+ const onLayout = (0, _react.useCallback)(event => {
106
+ const {
107
+ width,
108
+ height
109
+ } = event.nativeEvent.layout;
110
+ setSize(prev => prev.width === width && prev.height === height ? prev : {
111
+ width,
112
+ height
113
+ });
114
+ }, []);
115
+ const onMomentumScrollEnd = (0, _react.useCallback)(event => {
116
+ draggingRef.current = false;
117
+ if (pageSize === 0) return;
118
+ const {
119
+ contentOffset
120
+ } = event.nativeEvent;
121
+ const page = Math.round((isHorizontal ? contentOffset.x : contentOffset.y) / pageSize);
122
+ if (isLoop) {
123
+ if (page === 0) {
124
+ offsetPageRef.current = total;
125
+ scrollToPage(total, false);
126
+ goTo(total - 1);
127
+ return;
128
+ }
129
+ if (page === total + 1) {
130
+ offsetPageRef.current = 1;
131
+ scrollToPage(1, false);
132
+ goTo(0);
133
+ return;
134
+ }
135
+ offsetPageRef.current = page;
136
+ goTo(page - 1);
137
+ return;
138
+ }
139
+ offsetPageRef.current = page;
140
+ goTo(clampIndex(page, total));
141
+ }, [goTo, isHorizontal, isLoop, pageSize, scrollToPage, total]);
142
+ const onScrollBeginDrag = (0, _react.useCallback)(() => {
143
+ draggingRef.current = true;
144
+ }, []);
145
+ const onScrollEndDrag = (0, _react.useCallback)(() => {
146
+ // Un arrastre corto puede soltarse sin inercia y no emitir
147
+ // momentumScrollEnd: sin esto el autoPlay quedaría pausado para siempre.
148
+ draggingRef.current = false;
149
+ }, []);
150
+ const toggleAutoPlay = (0, _react.useCallback)(() => setAutoPlayPaused(paused => !paused), []);
151
+ (0, _react.useEffect)(() => {
152
+ if (!autoPlay || autoPlayPaused || motionReduced || total < 2 || pageSize === 0) return;
153
+ const timer = setInterval(() => {
154
+ if (draggingRef.current) return;
155
+ const from = activeRef.current;
156
+ if (from < total - 1) {
157
+ goTo(from + 1);
158
+ return;
159
+ }
160
+ if (!isLoop) return;
161
+ // Última en modo infinito: avanza al clon de la primera en vez de
162
+ // rebobinar; el salto al original lo cierra momentumScrollEnd.
163
+ offsetPageRef.current = total + 1;
164
+ scrollToPage(total + 1, true);
165
+ }, interval);
166
+ return () => clearInterval(timer);
167
+ }, [autoPlay, autoPlayPaused, goTo, interval, isLoop, motionReduced, pageSize, scrollToPage, total]);
168
+ return {
169
+ active,
170
+ pages,
171
+ isHorizontal,
172
+ isLoop,
173
+ size,
174
+ pageSize,
175
+ scrollRef,
176
+ autoPlayPaused,
177
+ motionReduced,
178
+ goTo,
179
+ toggleAutoPlay,
180
+ onLayout,
181
+ onMomentumScrollEnd,
182
+ onScrollBeginDrag,
183
+ onScrollEndDrag
184
+ };
185
+ }
186
+ //# sourceMappingURL=useSlides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_Transition","clampIndex","value","total","useSlides","orientation","loop","autoPlay","interval","index","defaultIndex","onIndexChange","motionReduced","useReduceMotion","isHorizontal","isLoop","uncontrolled","setUncontrolled","useState","active","activeRef","useRef","current","autoPlayPaused","setAutoPlayPaused","size","setSize","width","height","pageSize","scrollRef","offsetPageRef","didInitRef","lastPageSizeRef","draggingRef","pages","useMemo","real","Array","from","length","_","i","clone","scrollToPage","useCallback","page","animated","offset","scrollTo","x","y","goTo","next","useEffect","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":[]}