orn-ui 0.1.1 → 0.2.1

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 (240) hide show
  1. package/README.md +20 -2
  2. package/lib/commonjs/atoms/PressableScale.js +9 -10
  3. package/lib/commonjs/atoms/PressableScale.js.map +1 -1
  4. package/lib/commonjs/atoms/Skeleton.js +96 -0
  5. package/lib/commonjs/atoms/Skeleton.js.map +1 -0
  6. package/lib/commonjs/atoms/Transition.js +171 -0
  7. package/lib/commonjs/atoms/Transition.js.map +1 -0
  8. package/lib/commonjs/atoms/index.js +20 -0
  9. package/lib/commonjs/atoms/index.js.map +1 -1
  10. package/lib/commonjs/molecules/OptionCard.js +55 -22
  11. package/lib/commonjs/molecules/OptionCard.js.map +1 -1
  12. package/lib/commonjs/molecules/{ThemeToggle.js → SegmentedControl.js} +36 -36
  13. package/lib/commonjs/molecules/SegmentedControl.js.map +1 -0
  14. package/lib/commonjs/molecules/Stepper.js +124 -47
  15. package/lib/commonjs/molecules/Stepper.js.map +1 -1
  16. package/lib/commonjs/molecules/Steps.js +36 -6
  17. package/lib/commonjs/molecules/Steps.js.map +1 -1
  18. package/lib/commonjs/molecules/index.js +9 -3
  19. package/lib/commonjs/molecules/index.js.map +1 -1
  20. package/lib/commonjs/organisms/AlertProvider.js +26 -0
  21. package/lib/commonjs/organisms/AlertProvider.js.map +1 -1
  22. package/lib/commonjs/organisms/BottomSheet.js +118 -39
  23. package/lib/commonjs/organisms/BottomSheet.js.map +1 -1
  24. package/lib/commonjs/organisms/DateField.js +46 -15
  25. package/lib/commonjs/organisms/DateField.js.map +1 -1
  26. package/lib/commonjs/organisms/DatePicker.js +129 -50
  27. package/lib/commonjs/organisms/DatePicker.js.map +1 -1
  28. package/lib/commonjs/organisms/List.js +66 -44
  29. package/lib/commonjs/organisms/List.js.map +1 -1
  30. package/lib/commonjs/organisms/Modal.js +42 -87
  31. package/lib/commonjs/organisms/Modal.js.map +1 -1
  32. package/lib/commonjs/organisms/NavigationBar.js +210 -0
  33. package/lib/commonjs/organisms/NavigationBar.js.map +1 -0
  34. package/lib/commonjs/organisms/Screen.js +9 -2
  35. package/lib/commonjs/organisms/Screen.js.map +1 -1
  36. package/lib/commonjs/organisms/SearchList.js +95 -27
  37. package/lib/commonjs/organisms/SearchList.js.map +1 -1
  38. package/lib/commonjs/organisms/Select.js +222 -50
  39. package/lib/commonjs/organisms/Select.js.map +1 -1
  40. package/lib/commonjs/organisms/ThemeToggle.js +52 -0
  41. package/lib/commonjs/organisms/ThemeToggle.js.map +1 -0
  42. package/lib/commonjs/organisms/Toast.js +8 -22
  43. package/lib/commonjs/organisms/Toast.js.map +1 -1
  44. package/lib/commonjs/organisms/ToastProvider.js +24 -0
  45. package/lib/commonjs/organisms/ToastProvider.js.map +1 -1
  46. package/lib/commonjs/organisms/Wizard.js +23 -2
  47. package/lib/commonjs/organisms/Wizard.js.map +1 -1
  48. package/lib/commonjs/organisms/imperativeBridge.js +28 -0
  49. package/lib/commonjs/organisms/imperativeBridge.js.map +1 -0
  50. package/lib/commonjs/organisms/index.js +50 -0
  51. package/lib/commonjs/organisms/index.js.map +1 -1
  52. package/lib/commonjs/theme/colors.js +207 -0
  53. package/lib/commonjs/theme/colors.js.map +1 -0
  54. package/lib/commonjs/theme/createTheme.js +25 -2
  55. package/lib/commonjs/theme/createTheme.js.map +1 -1
  56. package/lib/commonjs/theme/index.js +25 -0
  57. package/lib/commonjs/theme/index.js.map +1 -1
  58. package/lib/commonjs/theme/labels.js +5 -1
  59. package/lib/commonjs/theme/labels.js.map +1 -1
  60. package/lib/commonjs/theme/palettes.js +5 -2
  61. package/lib/commonjs/theme/palettes.js.map +1 -1
  62. package/lib/module/atoms/PressableScale.js +9 -10
  63. package/lib/module/atoms/PressableScale.js.map +1 -1
  64. package/lib/module/atoms/Skeleton.js +91 -0
  65. package/lib/module/atoms/Skeleton.js.map +1 -0
  66. package/lib/module/atoms/Transition.js +165 -0
  67. package/lib/module/atoms/Transition.js.map +1 -0
  68. package/lib/module/atoms/index.js +2 -0
  69. package/lib/module/atoms/index.js.map +1 -1
  70. package/lib/module/molecules/OptionCard.js +56 -23
  71. package/lib/module/molecules/OptionCard.js.map +1 -1
  72. package/lib/module/molecules/{ThemeToggle.js → SegmentedControl.js} +36 -36
  73. package/lib/module/molecules/SegmentedControl.js.map +1 -0
  74. package/lib/module/molecules/Stepper.js +125 -49
  75. package/lib/module/molecules/Stepper.js.map +1 -1
  76. package/lib/module/molecules/Steps.js +37 -7
  77. package/lib/module/molecules/Steps.js.map +1 -1
  78. package/lib/module/molecules/index.js +2 -2
  79. package/lib/module/molecules/index.js.map +1 -1
  80. package/lib/module/organisms/AlertProvider.js +24 -1
  81. package/lib/module/organisms/AlertProvider.js.map +1 -1
  82. package/lib/module/organisms/BottomSheet.js +120 -41
  83. package/lib/module/organisms/BottomSheet.js.map +1 -1
  84. package/lib/module/organisms/DateField.js +49 -18
  85. package/lib/module/organisms/DateField.js.map +1 -1
  86. package/lib/module/organisms/DatePicker.js +131 -52
  87. package/lib/module/organisms/DatePicker.js.map +1 -1
  88. package/lib/module/organisms/List.js +68 -46
  89. package/lib/module/organisms/List.js.map +1 -1
  90. package/lib/module/organisms/Modal.js +44 -89
  91. package/lib/module/organisms/Modal.js.map +1 -1
  92. package/lib/module/organisms/NavigationBar.js +205 -0
  93. package/lib/module/organisms/NavigationBar.js.map +1 -0
  94. package/lib/module/organisms/Screen.js +9 -2
  95. package/lib/module/organisms/Screen.js.map +1 -1
  96. package/lib/module/organisms/SearchList.js +96 -28
  97. package/lib/module/organisms/SearchList.js.map +1 -1
  98. package/lib/module/organisms/Select.js +224 -52
  99. package/lib/module/organisms/Select.js.map +1 -1
  100. package/lib/module/organisms/ThemeToggle.js +47 -0
  101. package/lib/module/organisms/ThemeToggle.js.map +1 -0
  102. package/lib/module/organisms/Toast.js +10 -24
  103. package/lib/module/organisms/Toast.js.map +1 -1
  104. package/lib/module/organisms/ToastProvider.js +21 -0
  105. package/lib/module/organisms/ToastProvider.js.map +1 -1
  106. package/lib/module/organisms/Wizard.js +24 -3
  107. package/lib/module/organisms/Wizard.js.map +1 -1
  108. package/lib/module/organisms/imperativeBridge.js +24 -0
  109. package/lib/module/organisms/imperativeBridge.js.map +1 -0
  110. package/lib/module/organisms/index.js +4 -2
  111. package/lib/module/organisms/index.js.map +1 -1
  112. package/lib/module/theme/colors.js +194 -0
  113. package/lib/module/theme/colors.js.map +1 -0
  114. package/lib/module/theme/createTheme.js +25 -2
  115. package/lib/module/theme/createTheme.js.map +1 -1
  116. package/lib/module/theme/index.js +1 -0
  117. package/lib/module/theme/index.js.map +1 -1
  118. package/lib/module/theme/labels.js +5 -1
  119. package/lib/module/theme/labels.js.map +1 -1
  120. package/lib/module/theme/palettes.js +5 -2
  121. package/lib/module/theme/palettes.js.map +1 -1
  122. package/lib/typescript/atoms/PressableScale.d.ts +3 -2
  123. package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
  124. package/lib/typescript/atoms/Skeleton.d.ts +29 -0
  125. package/lib/typescript/atoms/Skeleton.d.ts.map +1 -0
  126. package/lib/typescript/atoms/Transition.d.ts +51 -0
  127. package/lib/typescript/atoms/Transition.d.ts.map +1 -0
  128. package/lib/typescript/atoms/index.d.ts +4 -0
  129. package/lib/typescript/atoms/index.d.ts.map +1 -1
  130. package/lib/typescript/molecules/OptionCard.d.ts +11 -6
  131. package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
  132. package/lib/typescript/molecules/SegmentedControl.d.ts +24 -0
  133. package/lib/typescript/molecules/SegmentedControl.d.ts.map +1 -0
  134. package/lib/typescript/molecules/Stepper.d.ts +35 -3
  135. package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
  136. package/lib/typescript/molecules/Steps.d.ts.map +1 -1
  137. package/lib/typescript/molecules/index.d.ts +4 -4
  138. package/lib/typescript/molecules/index.d.ts.map +1 -1
  139. package/lib/typescript/organisms/AlertProvider.d.ts +9 -0
  140. package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -1
  141. package/lib/typescript/organisms/BottomSheet.d.ts +26 -4
  142. package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
  143. package/lib/typescript/organisms/DateField.d.ts +23 -5
  144. package/lib/typescript/organisms/DateField.d.ts.map +1 -1
  145. package/lib/typescript/organisms/DatePicker.d.ts +5 -1
  146. package/lib/typescript/organisms/DatePicker.d.ts.map +1 -1
  147. package/lib/typescript/organisms/List.d.ts +9 -2
  148. package/lib/typescript/organisms/List.d.ts.map +1 -1
  149. package/lib/typescript/organisms/Modal.d.ts +3 -5
  150. package/lib/typescript/organisms/Modal.d.ts.map +1 -1
  151. package/lib/typescript/organisms/NavigationBar.d.ts +32 -0
  152. package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -0
  153. package/lib/typescript/organisms/Screen.d.ts +2 -1
  154. package/lib/typescript/organisms/Screen.d.ts.map +1 -1
  155. package/lib/typescript/organisms/SearchList.d.ts +21 -5
  156. package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
  157. package/lib/typescript/organisms/Select.d.ts +19 -4
  158. package/lib/typescript/organisms/Select.d.ts.map +1 -1
  159. package/lib/typescript/{molecules → organisms}/ThemeToggle.d.ts +4 -4
  160. package/lib/typescript/organisms/ThemeToggle.d.ts.map +1 -0
  161. package/lib/typescript/organisms/Toast.d.ts.map +1 -1
  162. package/lib/typescript/organisms/ToastProvider.d.ts +8 -0
  163. package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
  164. package/lib/typescript/organisms/Wizard.d.ts +7 -1
  165. package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
  166. package/lib/typescript/organisms/imperativeBridge.d.ts +12 -0
  167. package/lib/typescript/organisms/imperativeBridge.d.ts.map +1 -0
  168. package/lib/typescript/organisms/index.d.ts +7 -3
  169. package/lib/typescript/organisms/index.d.ts.map +1 -1
  170. package/lib/typescript/theme/colors.d.ts +44 -0
  171. package/lib/typescript/theme/colors.d.ts.map +1 -0
  172. package/lib/typescript/theme/createTheme.d.ts +3 -0
  173. package/lib/typescript/theme/createTheme.d.ts.map +1 -1
  174. package/lib/typescript/theme/index.d.ts +3 -1
  175. package/lib/typescript/theme/index.d.ts.map +1 -1
  176. package/lib/typescript/theme/labels.d.ts +6 -0
  177. package/lib/typescript/theme/labels.d.ts.map +1 -1
  178. package/lib/typescript/theme/palettes.d.ts.map +1 -1
  179. package/lib/typescript/theme/types.d.ts +9 -0
  180. package/lib/typescript/theme/types.d.ts.map +1 -1
  181. package/package.json +67 -6
  182. package/registry/alert-provider.json +9 -2
  183. package/registry/bottom-sheet.json +6 -2
  184. package/registry/core.json +9 -5
  185. package/registry/date-field.json +2 -1
  186. package/registry/date-picker.json +1 -1
  187. package/registry/index.json +99 -30
  188. package/registry/list.json +2 -1
  189. package/registry/manifest.json +44 -6
  190. package/registry/modal.json +3 -2
  191. package/registry/navigation-bar.json +18 -0
  192. package/registry/option-card.json +3 -2
  193. package/registry/pressable-scale.json +1 -1
  194. package/registry/screen.json +1 -1
  195. package/registry/search-list.json +2 -1
  196. package/registry/segmented-control.json +18 -0
  197. package/registry/select.json +1 -1
  198. package/registry/skeleton.json +18 -0
  199. package/registry/stepper.json +3 -2
  200. package/registry/steps.json +1 -1
  201. package/registry/theme-toggle.json +5 -4
  202. package/registry/toast-provider.json +11 -3
  203. package/registry/toast.json +3 -2
  204. package/registry/transition.json +19 -0
  205. package/registry/wizard.json +3 -2
  206. package/src/atoms/PressableScale.tsx +16 -6
  207. package/src/atoms/Skeleton.tsx +114 -0
  208. package/src/atoms/Transition.tsx +189 -0
  209. package/src/atoms/index.ts +4 -0
  210. package/src/molecules/OptionCard.tsx +62 -25
  211. package/src/molecules/SegmentedControl.tsx +84 -0
  212. package/src/molecules/Stepper.tsx +147 -32
  213. package/src/molecules/Steps.tsx +27 -8
  214. package/src/molecules/index.ts +4 -4
  215. package/src/organisms/AlertProvider.tsx +26 -1
  216. package/src/organisms/BottomSheet.tsx +214 -62
  217. package/src/organisms/DateField.tsx +79 -19
  218. package/src/organisms/DatePicker.tsx +198 -80
  219. package/src/organisms/List.tsx +73 -41
  220. package/src/organisms/Modal.tsx +49 -61
  221. package/src/organisms/NavigationBar.tsx +226 -0
  222. package/src/organisms/Screen.tsx +11 -3
  223. package/src/organisms/SearchList.tsx +131 -35
  224. package/src/organisms/Select.tsx +223 -45
  225. package/src/organisms/ThemeToggle.tsx +30 -0
  226. package/src/organisms/Toast.tsx +8 -21
  227. package/src/organisms/ToastProvider.tsx +24 -0
  228. package/src/organisms/Wizard.tsx +37 -3
  229. package/src/organisms/imperativeBridge.ts +28 -0
  230. package/src/organisms/index.ts +7 -3
  231. package/src/theme/colors.ts +175 -0
  232. package/src/theme/createTheme.ts +38 -4
  233. package/src/theme/index.ts +3 -1
  234. package/src/theme/labels.ts +13 -0
  235. package/src/theme/palettes.ts +5 -2
  236. package/src/theme/types.ts +10 -0
  237. package/lib/commonjs/molecules/ThemeToggle.js.map +0 -1
  238. package/lib/module/molecules/ThemeToggle.js.map +0 -1
  239. package/lib/typescript/molecules/ThemeToggle.d.ts.map +0 -1
  240. package/src/molecules/ThemeToggle.tsx +0 -67
@@ -1,33 +1,36 @@
1
1
  "use strict";
2
2
 
3
- import React, { memo, useMemo, useState } from 'react';
3
+ import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { Text, TouchableOpacity, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
- import { useAllowFontScaling, useColors } from '../theme/UIProvider';
6
+ import { useAllowFontScaling, useLabels } from '../theme/UIProvider';
7
7
  import { IconButton } from '../atoms/IconButton';
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export const DEFAULT_MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
10
10
 
11
11
  /** Índice 0 = domingo, para alinear con Date.getDay(). */
12
12
  export const DEFAULT_WEEKDAY_NAMES = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
13
- /** Compara sólo año/mes/día, ignorando hora — dos Date del mismo día son "iguales". */
14
- function isSameDay(a, b) {
15
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
16
- }
17
13
  function startOfDay(d) {
18
14
  return new Date(d.getFullYear(), d.getMonth(), d.getDate());
19
15
  }
20
16
 
21
- /** Estrictamente entre start y end, sin incluir los extremos. */
22
- function isBetween(day, start, end) {
23
- const t = startOfDay(day).getTime();
24
- return t > startOfDay(start).getTime() && t < startOfDay(end).getTime();
17
+ /** Timestamp del día, para comparar sin volver a crear Date en cada celda. */
18
+ function dayTime(d) {
19
+ return startOfDay(d).getTime();
20
+ }
21
+ function dayTimeOf(d) {
22
+ return d ? dayTime(d) : undefined;
25
23
  }
26
- function isOutOfRange(day, minDate, maxDate) {
27
- const t = startOfDay(day).getTime();
28
- if (minDate && t < startOfDay(minDate).getTime()) return true;
29
- if (maxDate && t > startOfDay(maxDate).getTime()) return true;
30
- return false;
24
+
25
+ /** Milisegundos que faltan para la próxima medianoche local. */
26
+ function msUntilNextMidnight(from) {
27
+ const next = new Date(from.getFullYear(), from.getMonth(), from.getDate() + 1);
28
+ return next.getTime() - from.getTime();
29
+ }
30
+
31
+ /** Número de mes absoluto (año * 12 + mes), para comparar meses con un `<`. */
32
+ function monthIndex(d) {
33
+ return d.getFullYear() * 12 + d.getMonth();
31
34
  }
32
35
 
33
36
  /**
@@ -130,6 +133,43 @@ const useStyles = createStyles(theme => ({
130
133
  opacity: 0.4
131
134
  }
132
135
  }));
136
+ /**
137
+ * Una celda del calendario. Va memoizada aparte porque el mes entero son 42
138
+ * celdas: sin esto, cualquier render del padre reconcilia las 42.
139
+ */
140
+ const DayCell = /*#__PURE__*/memo(({
141
+ day,
142
+ label,
143
+ selected,
144
+ inRange,
145
+ isRangeStart,
146
+ isRangeEnd,
147
+ isToday,
148
+ disabled,
149
+ allowFontScaling,
150
+ styles,
151
+ onPress
152
+ }) => /*#__PURE__*/_jsx(View, {
153
+ style: [styles.cell, (inRange || isRangeStart || isRangeEnd) && styles.cellInRange, isRangeStart && styles.cellRangeStart, isRangeEnd && styles.cellRangeEnd],
154
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
155
+ style: [styles.dayButton, selected && styles.daySelected, !selected && isToday && styles.dayToday],
156
+ onPress: () => onPress(day),
157
+ disabled: disabled,
158
+ activeOpacity: 0.7,
159
+ accessibilityRole: "button",
160
+ accessibilityLabel: label,
161
+ accessibilityState: {
162
+ selected,
163
+ disabled
164
+ },
165
+ children: /*#__PURE__*/_jsx(Text, {
166
+ allowFontScaling: allowFontScaling,
167
+ style: [styles.dayText, inRange && styles.dayTextInRange, selected && styles.dayTextSelected, disabled && styles.dayTextDisabled],
168
+ children: day.getDate()
169
+ })
170
+ })
171
+ }));
172
+ DayCell.displayName = 'DayCell';
133
173
 
134
174
  /**
135
175
  * DatePicker
@@ -146,24 +186,27 @@ export const DatePicker = /*#__PURE__*/memo(({
146
186
  minDate,
147
187
  maxDate,
148
188
  defaultMonth,
149
- monthNames = DEFAULT_MONTH_NAMES,
150
- weekdayNames = DEFAULT_WEEKDAY_NAMES,
189
+ monthNames,
190
+ weekdayNames,
151
191
  firstDayOfWeek = 0,
192
+ onVisibleMonthChange,
152
193
  style,
153
194
  testID
154
195
  }) => {
155
- const colors = useColors();
156
196
  const styles = useStyles();
197
+ const labels = useLabels();
157
198
  const allowFontScaling = useAllowFontScaling();
158
199
  const isRange = mode === 'range';
159
- const handlePress = day => {
200
+ const months = monthNames ?? labels.months;
201
+ const weekdays = weekdayNames ?? labels.weekdaysShort;
202
+ const handlePress = useCallback(day => {
160
203
  if (!isRange) {
161
204
  onChange?.(day);
162
205
  return;
163
206
  }
164
207
  // Primer toque (o rango ya cerrado, o toque antes del inicio): arranca
165
208
  // un rango nuevo. Segundo toque en adelante: lo cierra.
166
- if (!range?.start || range.end || startOfDay(day) < startOfDay(range.start)) {
209
+ if (!range?.start || range.end || dayTime(day) < dayTime(range.start)) {
167
210
  onRangeChange?.({
168
211
  start: day
169
212
  });
@@ -173,14 +216,51 @@ export const DatePicker = /*#__PURE__*/memo(({
173
216
  end: day
174
217
  });
175
218
  }
176
- };
177
- const initial = value ?? range?.start ?? defaultMonth ?? new Date();
178
- const [visibleMonth, setVisibleMonth] = useState(() => new Date(initial.getFullYear(), initial.getMonth(), 1));
179
- const today = useMemo(() => new Date(), []);
219
+ }, [isRange, onChange, onRangeChange, range?.start, range?.end]);
220
+ const anchor = value ?? range?.start ?? defaultMonth;
221
+ const [visibleMonth, setVisibleMonth] = useState(() => new Date((anchor ?? new Date()).getFullYear(), (anchor ?? new Date()).getMonth(), 1));
222
+
223
+ // La fecha elegida puede cambiar desde afuera (uso controlado): sin esto,
224
+ // el calendario se quedaba clavado en el mes con el que montó.
225
+ const anchorMonth = anchor ? monthIndex(anchor) : undefined;
226
+ const lastAnchorMonth = useRef(anchorMonth);
227
+ useEffect(() => {
228
+ if (anchorMonth === undefined || anchorMonth === lastAnchorMonth.current) return;
229
+ lastAnchorMonth.current = anchorMonth;
230
+ setVisibleMonth(new Date(Math.floor(anchorMonth / 12), anchorMonth % 12, 1));
231
+ }, [anchorMonth]);
232
+
233
+ // "Hoy" se recalcula en la próxima medianoche: una app que queda abierta
234
+ // toda la noche marcaba el día anterior.
235
+ const [todayTs, setTodayTs] = useState(() => dayTime(new Date()));
236
+ useEffect(() => {
237
+ const timer = setTimeout(() => setTodayTs(dayTime(new Date())), msUntilNextMidnight(new Date()));
238
+ return () => clearTimeout(timer);
239
+ }, [todayTs]);
180
240
  const grid = useMemo(() => buildMonthGrid(visibleMonth.getFullYear(), visibleMonth.getMonth(), firstDayOfWeek), [visibleMonth, firstDayOfWeek]);
181
- const orderedWeekdays = useMemo(() => firstDayOfWeek === 0 ? weekdayNames : [...weekdayNames.slice(1), weekdayNames[0]], [weekdayNames, firstDayOfWeek]);
182
- const shiftMonth = delta => setVisibleMonth(m => new Date(m.getFullYear(), m.getMonth() + delta, 1));
183
- const monthLabel = `${monthNames[visibleMonth.getMonth()]} ${visibleMonth.getFullYear()}`;
241
+ const orderedWeekdays = useMemo(() => firstDayOfWeek === 0 ? weekdays : [...weekdays.slice(1), weekdays[0]], [weekdays, firstDayOfWeek]);
242
+
243
+ // Los límites se resuelven una vez y no 42 veces por render: comparar
244
+ // timestamps sale gratis, crear un Date por celda no.
245
+ const bounds = useMemo(() => ({
246
+ min: dayTimeOf(minDate),
247
+ max: dayTimeOf(maxDate),
248
+ start: dayTimeOf(range?.start),
249
+ end: dayTimeOf(range?.end),
250
+ selected: dayTimeOf(value)
251
+ }), [minDate, maxDate, range?.start, range?.end, value]);
252
+ const shiftMonth = delta => setVisibleMonth(m => {
253
+ const next = new Date(m.getFullYear(), m.getMonth() + delta, 1);
254
+ onVisibleMonthChange?.(next);
255
+ return next;
256
+ });
257
+
258
+ // Un mes entero fuera de los límites no tiene nada que elegir: la flecha
259
+ // que lleva ahí se apaga en vez de dejar navegar al vacío.
260
+ const visibleIndex = monthIndex(visibleMonth);
261
+ const canGoBack = !minDate || visibleIndex > monthIndex(minDate);
262
+ const canGoForward = !maxDate || visibleIndex < monthIndex(maxDate);
263
+ const monthLabel = `${months[visibleMonth.getMonth()]} ${visibleMonth.getFullYear()}`;
184
264
  return /*#__PURE__*/_jsxs(View, {
185
265
  style: [styles.container, style],
186
266
  testID: testID,
@@ -189,6 +269,7 @@ export const DatePicker = /*#__PURE__*/memo(({
189
269
  children: [/*#__PURE__*/_jsx(IconButton, {
190
270
  iconName: "chevron-left",
191
271
  accessibilityLabel: "Previous month",
272
+ disabled: !canGoBack,
192
273
  onPress: () => shiftMonth(-1)
193
274
  }), /*#__PURE__*/_jsx(Text, {
194
275
  allowFontScaling: allowFontScaling,
@@ -198,6 +279,7 @@ export const DatePicker = /*#__PURE__*/memo(({
198
279
  }), /*#__PURE__*/_jsx(IconButton, {
199
280
  iconName: "chevron-right",
200
281
  accessibilityLabel: "Next month",
282
+ disabled: !canGoForward,
201
283
  onPress: () => shiftMonth(1)
202
284
  })]
203
285
  }), /*#__PURE__*/_jsx(View, {
@@ -213,31 +295,28 @@ export const DatePicker = /*#__PURE__*/memo(({
213
295
  if (!day) return /*#__PURE__*/_jsx(View, {
214
296
  style: styles.cell
215
297
  }, cellIndex);
216
- const isStart = isRange && !!range?.start && isSameDay(day, range.start);
217
- const isEnd = isRange && !!range?.end && isSameDay(day, range.end);
218
- const inRange = isRange && !!range?.start && !!range.end && isBetween(day, range.start, range.end);
219
- const selected = isRange ? isStart || isEnd : !!value && isSameDay(day, value);
220
- const disabled = isOutOfRange(day, minDate, maxDate);
221
- const isToday = isSameDay(day, today);
222
- return /*#__PURE__*/_jsx(View, {
223
- style: [styles.cell, (inRange || isStart && !!range?.end || isEnd) && styles.cellInRange, isStart && !!range?.end && styles.cellRangeStart, isEnd && styles.cellRangeEnd],
224
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
225
- style: [styles.dayButton, selected && styles.daySelected, !selected && isToday && styles.dayToday],
226
- onPress: () => handlePress(day),
227
- disabled: disabled,
228
- activeOpacity: 0.7,
229
- accessibilityRole: "button",
230
- accessibilityLabel: `${monthNames[day.getMonth()]} ${day.getDate()}, ${day.getFullYear()}`,
231
- accessibilityState: {
232
- selected,
233
- disabled
234
- },
235
- children: /*#__PURE__*/_jsx(Text, {
236
- allowFontScaling: allowFontScaling,
237
- style: [styles.dayText, inRange && styles.dayTextInRange, selected && styles.dayTextSelected, disabled && styles.dayTextDisabled],
238
- children: day.getDate()
239
- })
240
- })
298
+ const t = dayTime(day);
299
+ const disabled = bounds.min !== undefined && t < bounds.min || bounds.max !== undefined && t > bounds.max;
300
+ const isStart = isRange && bounds.start === t;
301
+ const isEnd = isRange && bounds.end === t;
302
+ const closed = isRange && bounds.start !== undefined && bounds.end !== undefined;
303
+ const between = closed && t > bounds.start && t < bounds.end;
304
+ const selected = isRange ? isStart || isEnd : bounds.selected === t;
305
+ return /*#__PURE__*/_jsx(DayCell, {
306
+ day: day,
307
+ label: `${months[day.getMonth()]} ${day.getDate()}, ${day.getFullYear()}`,
308
+ selected: selected
309
+ // Un día fuera de los límites no se pinta como parte del
310
+ // rango: se ve deshabilitado, y eso es lo que es.
311
+ ,
312
+ inRange: between && !disabled,
313
+ isRangeStart: !!closed && isStart && !disabled,
314
+ isRangeEnd: isEnd && !disabled,
315
+ isToday: t === todayTs,
316
+ disabled: disabled,
317
+ allowFontScaling: allowFontScaling,
318
+ styles: styles,
319
+ onPress: handlePress
241
320
  }, cellIndex);
242
321
  })
243
322
  }, rowIndex))]
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useMemo","useState","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","IconButton","jsx","_jsx","jsxs","_jsxs","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","isSameDay","a","b","getFullYear","getMonth","getDate","startOfDay","d","Date","isBetween","day","start","end","t","getTime","isOutOfRange","minDate","maxDate","buildMonthGrid","year","month","firstDayOfWeek","first","daysInMonth","leading","getDay","cells","i","push","length","rows","r","slice","useStyles","theme","container","backgroundColor","colors","surface","borderRadius","tokens","radius","lg","borderWidth","borderColor","border","padding","spacing","md","header","flexDirection","alignItems","justifyContent","marginBottom","sm","monthLabel","fontSize","fontWeight","semibold","color","text","weekRow","weekday","flex","textAlign","xs","textLight","paddingVertical","row","cell","aspectRatio","dayButton","width","height","dayText","daySelected","primary","dayTextSelected","onPrimary","bold","cellInRange","primarySoft","cellRangeStart","borderTopLeftRadius","borderBottomLeftRadius","cellRangeEnd","borderTopRightRadius","borderBottomRightRadius","dayTextInRange","primaryText","dayToday","dayTextDisabled","opacity","DatePicker","mode","value","onChange","range","onRangeChange","defaultMonth","monthNames","weekdayNames","style","testID","styles","allowFontScaling","isRange","handlePress","initial","visibleMonth","setVisibleMonth","today","grid","orderedWeekdays","shiftMonth","delta","m","children","iconName","accessibilityLabel","onPress","accessibilityRole","map","w","rowIndex","cellIndex","isStart","isEnd","inRange","selected","disabled","isToday","activeOpacity","accessibilityState","displayName"],"sourceRoot":"../../../src","sources":["organisms/DatePicker.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useCallback","useEffect","useMemo","useRef","useState","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useLabels","IconButton","jsx","_jsx","jsxs","_jsxs","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","startOfDay","d","Date","getFullYear","getMonth","getDate","dayTime","getTime","dayTimeOf","undefined","msUntilNextMidnight","from","next","monthIndex","buildMonthGrid","year","month","firstDayOfWeek","first","daysInMonth","leading","getDay","cells","i","push","length","rows","r","slice","useStyles","theme","container","backgroundColor","colors","surface","borderRadius","tokens","radius","lg","borderWidth","borderColor","border","padding","spacing","md","header","flexDirection","alignItems","justifyContent","marginBottom","sm","monthLabel","fontSize","fontWeight","semibold","color","text","weekRow","weekday","flex","textAlign","xs","textLight","paddingVertical","row","cell","aspectRatio","dayButton","width","height","dayText","daySelected","primary","dayTextSelected","onPrimary","bold","cellInRange","primarySoft","cellRangeStart","borderTopLeftRadius","borderBottomLeftRadius","cellRangeEnd","borderTopRightRadius","borderBottomRightRadius","dayTextInRange","primaryText","dayToday","dayTextDisabled","opacity","DayCell","day","label","selected","inRange","isRangeStart","isRangeEnd","isToday","disabled","allowFontScaling","styles","onPress","style","children","activeOpacity","accessibilityRole","accessibilityLabel","accessibilityState","displayName","DatePicker","mode","value","onChange","range","onRangeChange","minDate","maxDate","defaultMonth","monthNames","weekdayNames","onVisibleMonthChange","testID","labels","isRange","months","weekdays","weekdaysShort","handlePress","start","end","anchor","visibleMonth","setVisibleMonth","anchorMonth","lastAnchorMonth","current","Math","floor","todayTs","setTodayTs","timer","setTimeout","clearTimeout","grid","orderedWeekdays","bounds","min","max","shiftMonth","delta","m","visibleIndex","canGoBack","canGoForward","iconName","map","w","rowIndex","cellIndex","t","isStart","isEnd","closed","between"],"sourceRoot":"../../../src","sources":["organisms/DatePicker.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,40 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useCallback } from 'react';
4
- import { ActivityIndicator, FlatList, Platform, RefreshControl, Text, View } from 'react-native';
4
+ import { FlatList, RefreshControl, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { useColors, useLabels } from '../theme/UIProvider';
7
7
  import { EmptyState } from '../atoms/EmptyState';
8
+ import { Skeleton } from '../atoms/Skeleton';
8
9
  import { Spinner } from '../atoms/Spinner';
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
11
  const useStyles = createStyles(theme => ({
11
12
  container: {
12
13
  flex: 1,
13
14
  backgroundColor: theme.colors.background
14
15
  },
15
- loadingOverlay: {
16
- position: 'absolute',
17
- top: 0,
18
- left: 0,
19
- right: 0,
20
- bottom: 0,
21
- backgroundColor: theme.colors.scrim,
22
- zIndex: 10,
23
- justifyContent: 'center',
24
- alignItems: 'center'
25
- },
26
- loadingText: {
27
- marginTop: theme.tokens.spacing.md,
28
- color: theme.colors.textLight,
29
- fontWeight: theme.tokens.fontWeight.medium
30
- },
31
16
  listContent: {
32
- padding: theme.tokens.spacing.md,
33
- paddingBottom: Platform.OS === 'android' ? 100 : 80
17
+ padding: theme.tokens.spacing.md
34
18
  },
35
19
  footerLoader: {
36
20
  paddingVertical: theme.tokens.spacing.xl,
37
21
  alignItems: 'center'
22
+ },
23
+ skeletonRow: {
24
+ flexDirection: 'row',
25
+ alignItems: 'center',
26
+ gap: theme.tokens.spacing.md,
27
+ padding: theme.tokens.spacing.md
28
+ },
29
+ skeletonText: {
30
+ flex: 1,
31
+ gap: theme.tokens.spacing.sm
38
32
  }
39
33
  }));
40
34
 
@@ -49,10 +43,13 @@ export function List({
49
43
  keyExtractor,
50
44
  renderItem,
51
45
  isLoading,
46
+ isRefreshing = false,
52
47
  isLoadingMore = false,
53
48
  isReady = true,
54
49
  loadingText,
55
50
  loadingMoreText,
51
+ skeletonCount = 6,
52
+ renderSkeletonItem,
56
53
  onEndReached,
57
54
  onEndReachedThreshold = 0.3,
58
55
  onRefresh,
@@ -71,21 +68,27 @@ export function List({
71
68
  const labels = useLabels();
72
69
  const resolvedLoadingText = loadingText ?? labels.loading;
73
70
  const resolvedLoadingMoreText = loadingMoreText ?? labels.loadingMore;
71
+ const isInitialLoading = isLoading && data.length === 0;
72
+
73
+ // El footer propio y el loader de paginación conviven: antes el primero
74
+ // tapaba al segundo y la lista dejaba de avisar que estaba trayendo más.
74
75
  const renderFooter = useCallback(() => {
75
- if (ListFooterComponent) {
76
- return typeof ListFooterComponent === 'function' ? /*#__PURE__*/_jsx(ListFooterComponent, {}) : ListFooterComponent;
77
- }
78
- if (!isLoadingMore) return null;
79
- return /*#__PURE__*/_jsx(View, {
80
- style: styles.footerLoader,
81
- children: /*#__PURE__*/_jsx(Spinner, {
82
- text: resolvedLoadingMoreText,
83
- fullscreen: false
84
- })
76
+ const custom = typeof ListFooterComponent === 'function' ? /*#__PURE__*/_jsx(ListFooterComponent, {}) : ListFooterComponent ?? null;
77
+ return /*#__PURE__*/_jsxs(_Fragment, {
78
+ children: [custom, isLoadingMore && /*#__PURE__*/_jsx(View, {
79
+ style: styles.footerLoader,
80
+ children: /*#__PURE__*/_jsx(Spinner, {
81
+ text: resolvedLoadingMoreText,
82
+ fullscreen: false
83
+ })
84
+ })]
85
85
  });
86
86
  }, [isLoadingMore, resolvedLoadingMoreText, ListFooterComponent, styles.footerLoader]);
87
+
88
+ // Vacío sólo cuando ya se sabe que no hay nada: durante la carga inicial se
89
+ // muestran placeholders, no "sin resultados".
87
90
  const renderEmpty = useCallback(() => {
88
- if (isLoading) return null;
91
+ if (isLoading || isRefreshing) return null;
89
92
  return /*#__PURE__*/_jsx(EmptyState, {
90
93
  title: emptyTitle,
91
94
  description: emptyDescription,
@@ -94,7 +97,7 @@ export function List({
94
97
  marginTop: 50
95
98
  }
96
99
  });
97
- }, [isLoading, emptyTitle, emptyDescription, emptyIconName]);
100
+ }, [isLoading, isRefreshing, emptyTitle, emptyDescription, emptyIconName]);
98
101
  if (!isReady) {
99
102
  return /*#__PURE__*/_jsx(View, {
100
103
  style: styles.container,
@@ -103,19 +106,38 @@ export function List({
103
106
  })
104
107
  });
105
108
  }
106
- return /*#__PURE__*/_jsxs(View, {
109
+ if (isInitialLoading) {
110
+ return /*#__PURE__*/_jsx(View, {
111
+ style: [styles.container, containerStyle],
112
+ testID: "list-skeleton",
113
+ children: /*#__PURE__*/_jsx(View, {
114
+ style: [styles.listContent, contentContainerStyle],
115
+ children: Array.from({
116
+ length: skeletonCount
117
+ }, (_, i) => /*#__PURE__*/_jsx(React.Fragment, {
118
+ children: renderSkeletonItem?.() ?? /*#__PURE__*/_jsxs(View, {
119
+ style: styles.skeletonRow,
120
+ children: [/*#__PURE__*/_jsx(Skeleton, {
121
+ variant: "circle",
122
+ width: 40
123
+ }), /*#__PURE__*/_jsxs(View, {
124
+ style: styles.skeletonText,
125
+ children: [/*#__PURE__*/_jsx(Skeleton, {
126
+ width: "60%",
127
+ height: 14
128
+ }), /*#__PURE__*/_jsx(Skeleton, {
129
+ width: "35%",
130
+ height: 12
131
+ })]
132
+ })]
133
+ })
134
+ }, i))
135
+ })
136
+ });
137
+ }
138
+ return /*#__PURE__*/_jsx(View, {
107
139
  style: [styles.container, containerStyle],
108
- children: [isLoading && data.length === 0 && /*#__PURE__*/_jsxs(View, {
109
- style: styles.loadingOverlay,
110
- pointerEvents: "none",
111
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
112
- size: "large",
113
- color: colors.primary
114
- }), /*#__PURE__*/_jsx(Text, {
115
- style: styles.loadingText,
116
- children: resolvedLoadingText
117
- })]
118
- }), /*#__PURE__*/_jsx(ListComponent, {
140
+ children: /*#__PURE__*/_jsx(ListComponent, {
119
141
  data: data,
120
142
  keyExtractor: keyExtractor,
121
143
  renderItem: renderItem,
@@ -126,13 +148,13 @@ export function List({
126
148
  ListFooterComponent: renderFooter,
127
149
  ListEmptyComponent: renderEmpty,
128
150
  refreshControl: onRefresh ? /*#__PURE__*/_jsx(RefreshControl, {
129
- refreshing: isLoading,
151
+ refreshing: isRefreshing,
130
152
  onRefresh: onRefresh,
131
153
  colors: [colors.primary],
132
154
  tintColor: colors.primary
133
155
  }) : undefined,
134
156
  ...listProps
135
- })]
157
+ })
136
158
  });
137
159
  }
138
160
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","ActivityIndicator","FlatList","Platform","RefreshControl","Text","View","createStyles","useColors","useLabels","EmptyState","Spinner","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flex","backgroundColor","colors","background","loadingOverlay","position","top","left","right","bottom","scrim","zIndex","justifyContent","alignItems","loadingText","marginTop","tokens","spacing","md","color","textLight","fontWeight","medium","listContent","padding","paddingBottom","OS","footerLoader","paddingVertical","xl","List","data","keyExtractor","renderItem","isLoading","isLoadingMore","isReady","loadingMoreText","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","listProps","styles","labels","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","renderFooter","style","children","text","fullscreen","renderEmpty","title","description","iconName","length","pointerEvents","size","primary","ListEmptyComponent","refreshControl","refreshing","tintColor","undefined"],"sourceRoot":"../../../src","sources":["organisms/List.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","FlatList","RefreshControl","View","createStyles","useColors","useLabels","EmptyState","Skeleton","Spinner","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useStyles","theme","container","flex","backgroundColor","colors","background","listContent","padding","tokens","spacing","md","footerLoader","paddingVertical","xl","alignItems","skeletonRow","flexDirection","gap","skeletonText","sm","List","data","keyExtractor","renderItem","isLoading","isRefreshing","isLoadingMore","isReady","loadingText","loadingMoreText","skeletonCount","renderSkeletonItem","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","listProps","styles","labels","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","isInitialLoading","length","renderFooter","custom","children","style","text","fullscreen","renderEmpty","title","description","iconName","marginTop","testID","Array","from","_","i","variant","width","height","ListEmptyComponent","refreshControl","refreshing","primary","tintColor","undefined"],"sourceRoot":"../../../src","sources":["organisms/List.tsx"],"mappings":"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","ignoreList":[]}