@sincpro/mobile-ui 3.0.1 → 3.1.0

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 (308) hide show
  1. package/dist/Actions/Actions.Button.d.ts +6 -6
  2. package/dist/Actions/Actions.Button.js +650 -180
  3. package/dist/Actions/Actions.Dock.d.ts +1 -1
  4. package/dist/Actions/Actions.Dock.js +297 -18
  5. package/dist/Actions/Actions.FAB.js +100 -12
  6. package/dist/Actions/Actions.FilterButton.d.ts +17 -0
  7. package/dist/Actions/Actions.FilterButton.js +263 -33
  8. package/dist/Actions/Actions.IconButton.d.ts +1 -0
  9. package/dist/Actions/Actions.IconButton.js +196 -33
  10. package/dist/Actions/index.js +13 -13
  11. package/dist/Dialog/Confirmation.context.js +82 -16
  12. package/dist/Dialog/Dialog.ActionSheet.js +200 -41
  13. package/dist/Dialog/Dialog.Confirmation.js +168 -31
  14. package/dist/Dialog/Dialog.EditValue.js +449 -61
  15. package/dist/Dialog/Dialog.Sheet.d.ts +7 -3
  16. package/dist/Dialog/Dialog.Sheet.js +231 -15
  17. package/dist/Dialog/OverlayHost.d.ts +23 -0
  18. package/dist/Dialog/OverlayHost.js +196 -0
  19. package/dist/Dialog/SheetSurface.d.ts +24 -0
  20. package/dist/Dialog/SheetSurface.js +441 -0
  21. package/dist/Dialog/dialog-actions.d.ts +17 -0
  22. package/dist/Dialog/dialog-actions.js +59 -0
  23. package/dist/Dialog/index.d.ts +4 -1
  24. package/dist/Dialog/index.js +8 -7
  25. package/dist/Dialog/overlay.store.d.ts +24 -0
  26. package/dist/Dialog/overlay.store.js +59 -0
  27. package/dist/Dialog/requestConfirmation.js +20 -10
  28. package/dist/Display/Display.Accordion.js +185 -13
  29. package/dist/Display/Display.AmountSummary.js +206 -15
  30. package/dist/Display/Display.Avatar.js +93 -31
  31. package/dist/Display/Display.AvatarGroup.js +132 -17
  32. package/dist/Display/Display.Badge.d.ts +18 -2
  33. package/dist/Display/Display.Badge.js +117 -49
  34. package/dist/Display/Display.Card.js +163 -26
  35. package/dist/Display/Display.Carousel.js +459 -105
  36. package/dist/Display/Display.Chip.d.ts +4 -1
  37. package/dist/Display/Display.Chip.js +165 -31
  38. package/dist/Display/Display.CircleButton.d.ts +1 -0
  39. package/dist/Display/Display.CircleButton.js +86 -27
  40. package/dist/Display/Display.CopyableText.js +289 -66
  41. package/dist/Display/Display.CountRecords.js +60 -3
  42. package/dist/Display/Display.DataTable.js +123 -13
  43. package/dist/Display/Display.Date.js +243 -33
  44. package/dist/Display/Display.Divider.d.ts +10 -10
  45. package/dist/Display/Display.Divider.js +67 -20
  46. package/dist/Display/Display.ExpoImage.js +97 -8
  47. package/dist/Display/Display.GradientSurface.d.ts +9 -4
  48. package/dist/Display/Display.GradientSurface.js +196 -46
  49. package/dist/Display/Display.Icon.js +129 -15
  50. package/dist/Display/Display.IconBadge.js +95 -25
  51. package/dist/Display/Display.Image.d.ts +7 -1
  52. package/dist/Display/Display.Image.js +344 -39
  53. package/dist/Display/Display.KeyValue.js +90 -5
  54. package/dist/Display/Display.ListGroup.js +181 -9
  55. package/dist/Display/Display.ListItem.js +324 -28
  56. package/dist/Display/Display.Logo.js +84 -29
  57. package/dist/Display/Display.MediaCard.js +125 -4
  58. package/dist/Display/Display.MediaEmbed.d.ts +0 -5
  59. package/dist/Display/Display.MediaEmbed.js +170 -26
  60. package/dist/Display/Display.MenuButton.d.ts +2 -2
  61. package/dist/Display/Display.MenuButton.js +380 -94
  62. package/dist/Display/Display.MenuCard.js +122 -18
  63. package/dist/Display/Display.MenuGrid.js +43 -3
  64. package/dist/Display/Display.Monetary.js +90 -5
  65. package/dist/Display/Display.Pattern.js +306 -47
  66. package/dist/Display/Display.PriceTag.js +117 -14
  67. package/dist/Display/Display.ProductCard.js +154 -4
  68. package/dist/Display/Display.Rating.js +92 -11
  69. package/dist/Display/Display.SearchHistory.js +132 -6
  70. package/dist/Display/Display.SectionHeader.d.ts +5 -1
  71. package/dist/Display/Display.SectionHeader.js +125 -12
  72. package/dist/Display/Display.Stat.js +62 -3
  73. package/dist/Display/Display.StatCard.js +131 -7
  74. package/dist/Display/Display.StatusBadge.d.ts +29 -0
  75. package/dist/Display/Display.StatusBadge.js +68 -0
  76. package/dist/Display/Display.StatusDot.js +93 -18
  77. package/dist/Display/Display.Story.js +285 -35
  78. package/dist/Display/Display.StoryTray.js +354 -34
  79. package/dist/Display/Display.StoryViewer.js +571 -72
  80. package/dist/Display/Display.SwipeableRow.js +141 -20
  81. package/dist/Display/Display.Tag.d.ts +4 -1
  82. package/dist/Display/Display.Tag.js +66 -4
  83. package/dist/Display/Display.Timeline.js +102 -13
  84. package/dist/Display/Display.Tooltip.js +122 -26
  85. package/dist/Display/chevron.d.ts +6 -0
  86. package/dist/Display/chevron.js +32 -0
  87. package/dist/Display/count-badge.d.ts +21 -0
  88. package/dist/Display/count-badge.js +124 -0
  89. package/dist/Display/group-title.d.ts +10 -0
  90. package/dist/Display/group-title.js +53 -0
  91. package/dist/Display/icon-font.d.ts +3 -0
  92. package/dist/Display/icon-font.ios.d.ts +3 -0
  93. package/dist/Display/icon-font.ios.js +4 -0
  94. package/dist/Display/icon-font.js +7 -0
  95. package/dist/Display/icon-glyphs.d.ts +2 -0
  96. package/dist/Display/icon-glyphs.js +87 -0
  97. package/dist/Display/icon-map.d.ts +5 -1
  98. package/dist/Display/icon-map.js +340 -84
  99. package/dist/Display/icon-registry.d.ts +21 -0
  100. package/dist/Display/icon-registry.js +21 -0
  101. package/dist/Display/index.d.ts +6 -1
  102. package/dist/Display/index.js +53 -48
  103. package/dist/Display/pill.d.ts +16 -0
  104. package/dist/Display/pill.js +47 -0
  105. package/dist/Feedback/ErrorBoundary.js +35 -23
  106. package/dist/Feedback/Feedback.Banner.js +202 -24
  107. package/dist/Feedback/Feedback.DomainSplashScreen.js +246 -70
  108. package/dist/Feedback/Feedback.Empty.js +54 -3
  109. package/dist/Feedback/Feedback.EmptyState.js +114 -5
  110. package/dist/Feedback/Feedback.Error.d.ts +1 -1
  111. package/dist/Feedback/Feedback.Error.js +130 -5
  112. package/dist/Feedback/Feedback.Loading.d.ts +1 -1
  113. package/dist/Feedback/Feedback.Loading.js +70 -3
  114. package/dist/Feedback/Feedback.PermissionCard.js +161 -5
  115. package/dist/Feedback/Feedback.Progress.js +199 -41
  116. package/dist/Feedback/Feedback.ProgressCircle.js +184 -12
  117. package/dist/Feedback/Feedback.Skeleton.js +149 -36
  118. package/dist/Feedback/Feedback.Spinner.js +407 -79
  119. package/dist/Feedback/Feedback.Splash.js +240 -33
  120. package/dist/Feedback/Feedback.State.d.ts +17 -0
  121. package/dist/Feedback/Feedback.State.js +104 -0
  122. package/dist/Feedback/Toast.context.js +883 -167
  123. package/dist/Feedback/index.d.ts +3 -0
  124. package/dist/Feedback/index.js +15 -13
  125. package/dist/Form/Form.Checkbox.js +212 -22
  126. package/dist/Form/Form.ControlledCheckbox.d.ts +1 -1
  127. package/dist/Form/Form.ControlledCheckbox.js +46 -4
  128. package/dist/Form/Form.ControlledDropdown.d.ts +1 -1
  129. package/dist/Form/Form.ControlledDropdown.js +62 -4
  130. package/dist/Form/Form.ControlledInput.d.ts +4 -3
  131. package/dist/Form/Form.ControlledInput.js +72 -4
  132. package/dist/Form/Form.ControlledMonetaryInput.d.ts +6 -3
  133. package/dist/Form/Form.ControlledMonetaryInput.js +50 -4
  134. package/dist/Form/Form.ControlledRadioButton.d.ts +2 -2
  135. package/dist/Form/Form.ControlledRadioButton.js +45 -4
  136. package/dist/Form/Form.DatePicker.js +505 -107
  137. package/dist/Form/Form.Dropdown.js +303 -52
  138. package/dist/Form/Form.ErrorSummary.js +236 -44
  139. package/dist/Form/Form.Field.d.ts +24 -0
  140. package/dist/Form/Form.Field.js +55 -0
  141. package/dist/Form/Form.FractionalQuantityInput.js +508 -96
  142. package/dist/Form/Form.Input.d.ts +17 -3
  143. package/dist/Form/Form.Input.js +478 -29
  144. package/dist/Form/Form.KeyboardForm.d.ts +22 -8
  145. package/dist/Form/Form.KeyboardForm.js +83 -8
  146. package/dist/Form/Form.KeyboardToolbarHost.d.ts +14 -0
  147. package/dist/Form/Form.KeyboardToolbarHost.js +182 -0
  148. package/dist/Form/Form.MonetaryInput.js +164 -17
  149. package/dist/Form/Form.PickerField.d.ts +31 -0
  150. package/dist/Form/Form.PickerField.js +562 -0
  151. package/dist/Form/Form.PinInput.js +150 -15
  152. package/dist/Form/Form.QuantitySelector.js +229 -25
  153. package/dist/Form/Form.RadioButton.js +132 -24
  154. package/dist/Form/Form.Select.js +487 -56
  155. package/dist/Form/Form.Slider.js +133 -10
  156. package/dist/Form/Form.Switch.js +99 -4
  157. package/dist/Form/index.d.ts +11 -6
  158. package/dist/Form/index.js +26 -27
  159. package/dist/Form/input-text.d.ts +7 -0
  160. package/dist/Form/input-text.js +18 -0
  161. package/dist/Navigation/Navigation.AppBar.d.ts +3 -4
  162. package/dist/Navigation/Navigation.AppBar.js +535 -99
  163. package/dist/Navigation/Navigation.BottomNav.js +363 -98
  164. package/dist/Navigation/Navigation.CollapsingHeader.d.ts +28 -13
  165. package/dist/Navigation/Navigation.CollapsingHeader.js +369 -36
  166. package/dist/Navigation/Navigation.FloatingBar.js +71 -11
  167. package/dist/Navigation/Navigation.Menu.js +309 -95
  168. package/dist/Navigation/Navigation.MenuSection.js +80 -11
  169. package/dist/Navigation/Navigation.RowItem.d.ts +4 -2
  170. package/dist/Navigation/Navigation.RowItem.js +93 -8
  171. package/dist/Navigation/Navigation.Search.js +241 -27
  172. package/dist/Navigation/Navigation.SearchBar.d.ts +7 -1
  173. package/dist/Navigation/Navigation.SearchBar.js +218 -29
  174. package/dist/Navigation/Navigation.SearchSuggestions.js +77 -3
  175. package/dist/Navigation/Navigation.SegmentedControl.js +152 -14
  176. package/dist/Navigation/Navigation.Steps.js +105 -11
  177. package/dist/Navigation/Navigation.Tabs.js +449 -41
  178. package/dist/Navigation/index.d.ts +9 -4
  179. package/dist/Navigation/index.js +13 -13
  180. package/dist/Typography/Typography.Heading.js +33 -3
  181. package/dist/Typography/Typography.SelectableText.js +95 -7
  182. package/dist/Typography/Typography.Text.d.ts +4 -2
  183. package/dist/Typography/Typography.Text.js +217 -7
  184. package/dist/Typography/index.js +3 -3
  185. package/dist/branding.js +29 -13
  186. package/dist/icons/AddItemIcon.js +76 -2
  187. package/dist/icons/ArrangeCircle.js +82 -2
  188. package/dist/icons/ArrowDownIcon.js +63 -3
  189. package/dist/icons/ArrowUpIcon.js +63 -3
  190. package/dist/icons/BoxIcon.js +64 -2
  191. package/dist/icons/BoxTimeIcon.js +63 -2
  192. package/dist/icons/CalendarIcon.js +145 -2
  193. package/dist/icons/CardIcon.js +80 -2
  194. package/dist/icons/CashierIcon.js +39 -2
  195. package/dist/icons/CreditIcon.js +76 -3
  196. package/dist/icons/DuoIcon.js +75 -2
  197. package/dist/icons/HomeIcon.js +39 -2
  198. package/dist/icons/HomeIconOutlined.js +53 -2
  199. package/dist/icons/LogoIcon.js +87 -2
  200. package/dist/icons/MoneyReceiveIcon.js +86 -2
  201. package/dist/icons/PinIcon.js +39 -2
  202. package/dist/icons/ProfileIcon.js +47 -2
  203. package/dist/icons/SettingsIcon.js +114 -2
  204. package/dist/icons/SinpeIcon.js +60 -2
  205. package/dist/icons/ToggleOffIcon.js +53 -2
  206. package/dist/icons/WalletMoneyIcon.js +81 -2
  207. package/dist/index.d.ts +1 -0
  208. package/dist/index.js +8 -2
  209. package/dist/layouts/AuthContainer.d.ts +4 -5
  210. package/dist/layouts/AuthContainer.js +231 -7
  211. package/dist/layouts/BottomInset.js +4 -1
  212. package/dist/layouts/Container.d.ts +2 -2
  213. package/dist/layouts/Container.js +45 -3
  214. package/dist/layouts/GradientContainer.js +37 -5
  215. package/dist/layouts/PlainLayout.js +19 -3
  216. package/dist/layouts/ScrollContainer.d.ts +14 -9
  217. package/dist/layouts/ScrollContainer.js +125 -4
  218. package/dist/layouts/edges.d.ts +2 -0
  219. package/dist/layouts/edges.js +1 -0
  220. package/dist/primitives/AspectRatio.js +75 -3
  221. package/dist/primitives/Box.js +45 -3
  222. package/dist/primitives/Pressable.js +95 -5
  223. package/dist/primitives/Row.js +84 -13
  224. package/dist/primitives/Spacer.js +42 -5
  225. package/dist/primitives/Stack.js +66 -7
  226. package/dist/primitives/index.js +1 -1
  227. package/dist/theme/active.js +20 -18
  228. package/dist/theme/build.js +118 -87
  229. package/dist/theme/color.js +87 -87
  230. package/dist/theme/components/ThemedActivityIndicator.d.ts +2 -15
  231. package/dist/theme/components/ThemedActivityIndicator.js +35 -3
  232. package/dist/theme/components/index.js +1 -0
  233. package/dist/theme/contrast.js +32 -33
  234. package/dist/theme/css-vars.js +71 -75
  235. package/dist/theme/dark.js +116 -97
  236. package/dist/theme/default.js +116 -97
  237. package/dist/theme/define.js +16 -12
  238. package/dist/theme/index.d.ts +1 -0
  239. package/dist/theme/index.js +7 -6
  240. package/dist/theme/on-dark-surface.d.ts +12 -0
  241. package/dist/theme/on-dark-surface.js +13 -0
  242. package/dist/theme/theme.js +1 -0
  243. package/dist/theme/tw.js +3 -1
  244. package/dist/theme/types.js +0 -18
  245. package/dist/theme/typography.d.ts +1 -1
  246. package/dist/theme/typography.js +337 -303
  247. package/dist/theme/useTheme.js +12 -3
  248. package/dist/theme/useThemeVars.d.ts +9 -0
  249. package/dist/theme/useThemeVars.js +23 -0
  250. package/dist/theme/validate.js +175 -166
  251. package/dist/tokens/index.js +1 -1
  252. package/dist/tokens/motion.js +30 -13
  253. package/dist/utils/async.d.ts +14 -0
  254. package/dist/utils/async.js +22 -0
  255. package/dist/utils/criteria.js +66 -85
  256. package/dist/utils/date.d.ts +8 -2
  257. package/dist/utils/date.js +63 -50
  258. package/dist/utils/image.js +8 -8
  259. package/dist/utils/intl.d.ts +1 -0
  260. package/dist/utils/intl.js +13 -0
  261. package/dist/utils/keys.js +3 -5
  262. package/dist/utils/monetary.d.ts +1 -0
  263. package/dist/utils/monetary.js +28 -24
  264. package/dist/utils/progress.js +2 -3
  265. package/dist/utils/quantity.js +25 -26
  266. package/dist/utils/reorder.js +11 -20
  267. package/dist/utils/search.d.ts +4 -0
  268. package/dist/utils/search.js +12 -0
  269. package/dist/utils/serializer.js +38 -38
  270. package/dist/utils/useReducedMotion.js +32 -30
  271. package/dist/views/AppSplashView.js +117 -3
  272. package/dist/views/AuthFormView.d.ts +4 -5
  273. package/dist/views/AuthFormView.js +119 -11
  274. package/dist/views/FormViewV2.context.js +75 -23
  275. package/dist/views/FormViewV2.d.ts +4 -5
  276. package/dist/views/FormViewV2.js +658 -92
  277. package/dist/views/ListViewV2.context.js +91 -47
  278. package/dist/views/ListViewV2.d.ts +84 -43
  279. package/dist/views/ListViewV2.js +1350 -200
  280. package/dist/views/Wizard/Wizard.context.js +248 -84
  281. package/dist/views/Wizard/Wizard.js +260 -67
  282. package/dist/views/types/IListView.js +34 -31
  283. package/dist/widgets/CollectionOptions.js +557 -138
  284. package/dist/widgets/FilterBar.js +159 -7
  285. package/dist/widgets/FilterBuilder.js +375 -102
  286. package/dist/widgets/JSONViewer.js +275 -129
  287. package/dist/widgets/PromoBanner.js +336 -42
  288. package/dist/widgets/PromoModal.d.ts +2 -2
  289. package/dist/widgets/PromoModal.js +389 -62
  290. package/dist/widgets/QueryChoice.js +150 -8
  291. package/dist/widgets/QuickActions.js +120 -31
  292. package/dist/widgets/ReorderableList.js +399 -128
  293. package/dist/widgets/TimeZoneSelectorModal.js +458 -51
  294. package/dist/widgets/index.js +3 -3
  295. package/package.json +6 -1
  296. package/tailwind.preset.js +7 -5
  297. package/dist/Form/Form.InputField.d.ts +0 -10
  298. package/dist/Form/Form.InputField.js +0 -38
  299. package/dist/Form/Form.KeyboardToolbar.d.ts +0 -22
  300. package/dist/Form/Form.KeyboardToolbar.js +0 -66
  301. package/dist/Form/Form.PasswordInput.d.ts +0 -9
  302. package/dist/Form/Form.PasswordInput.js +0 -17
  303. package/dist/Form/Form.TextInput.d.ts +0 -8
  304. package/dist/Form/Form.TextInput.js +0 -8
  305. package/dist/primitives/BaseButton.d.ts +0 -150
  306. package/dist/primitives/BaseButton.js +0 -229
  307. package/dist/utils/useSheetTranslation.d.ts +0 -5
  308. package/dist/utils/useSheetTranslation.js +0 -23
@@ -1,119 +1,473 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  import IconButton from "../Actions/Actions.IconButton.js";
3
3
  import { useTheme } from "../theme/index.js";
4
4
  import { Typography } from "../Typography/index.js";
5
5
  import { uniqueKeys } from "../utils/keys.js";
6
6
  import { useReducedMotion } from "../utils/useReducedMotion.js";
7
7
  import { useEffect, useRef, useState } from "react";
8
- import { ScrollView, View, } from "react-native";
9
- function Carousel({ data, renderItem, keyExtractor, itemWidth, gap = 12, showDots = true, className, testID, index: controlledIndex, onIndexChange, previousAccessibilityLabel = "Elemento anterior", nextAccessibilityLabel = "Elemento siguiente", formatPageLabel = (index, count) => `Elemento ${index + 1} de ${count}`, renderControls, controlsClassName, paginationTextProps, contentContainerStyle, itemStyle, dotStyle, activeDotStyle, ...viewProps }) {
10
- if (!Number.isFinite(itemWidth) ||
11
- itemWidth <= 0 ||
12
- !Number.isFinite(gap) ||
13
- gap < 0 ||
14
- !Number.isFinite(itemWidth + gap))
15
- throw new RangeError("Carousel requires a positive finite itemWidth and a non-negative finite gap.");
16
- if (controlledIndex !== undefined &&
17
- (!Number.isInteger(controlledIndex) || controlledIndex < 0))
18
- throw new RangeError("Carousel index must be a non-negative integer.");
19
- if (controlledIndex !== undefined && !onIndexChange)
20
- throw new Error("Carousel requires onIndexChange when index is controlled.");
21
- const keys = uniqueKeys(data, keyExtractor, "Carousel");
22
- const theme = useTheme();
23
- const reducedMotion = useReducedMotion();
24
- const [active, setActive] = useState(0);
25
- const [viewportWidth, setViewportWidth] = useState(0);
26
- const [scrollRevision, setScrollRevision] = useState(0);
27
- const scrollRef = useRef(null);
28
- const mounted = useRef(false);
29
- const snap = itemWidth + gap;
30
- const current = Math.min(controlledIndex ?? active, Math.max(0, data.length - 1));
31
- const nativePosition = useRef({ index: 0, snap, count: data.length, width: 0 });
32
- if (controlledIndex === undefined && active !== current)
33
- setActive(current);
34
- useEffect(() => {
35
- const previous = nativePosition.current;
36
- if (previous.index !== current ||
37
- previous.snap !== snap ||
38
- previous.width !== viewportWidth) {
39
- scrollRef.current?.scrollTo({
40
- x: current * snap,
41
- y: 0,
42
- animated: mounted.current &&
43
- !reducedMotion &&
44
- previous.snap === snap &&
45
- previous.count === data.length &&
46
- previous.width === viewportWidth,
47
- });
48
- }
49
- nativePosition.current = {
50
- index: current,
51
- snap,
52
- count: data.length,
53
- width: viewportWidth,
54
- };
55
- mounted.current = true;
56
- if (controlledIndex === undefined &&
57
- previous.count > data.length &&
58
- previous.index !== current) {
59
- onIndexChange?.(current);
60
- }
61
- }, [
62
- active,
63
- current,
64
- controlledIndex,
65
- data.length,
66
- onIndexChange,
67
- reducedMotion,
8
+ import { ScrollView, View } from "react-native";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
10
+ function defaultPageLabel(index, count) {
11
+ return `Elemento ${index + 1} de ${count}`;
12
+ }
13
+ function Carousel(t0) {
14
+ const $ = _c(130);
15
+ let activeDotStyle;
16
+ let className;
17
+ let contentContainerStyle;
18
+ let controlledIndex;
19
+ let controlsClassName;
20
+ let data;
21
+ let dotStyle;
22
+ let itemStyle;
23
+ let itemWidth;
24
+ let keyExtractor;
25
+ let onIndexChange;
26
+ let paginationTextProps;
27
+ let renderControls;
28
+ let renderItem;
29
+ let t1;
30
+ let t2;
31
+ let t3;
32
+ let t4;
33
+ let t5;
34
+ let testID;
35
+ let viewProps;
36
+ if ($[0] !== t0) {
37
+ ({
38
+ data,
39
+ renderItem,
40
+ keyExtractor,
41
+ itemWidth,
42
+ gap: t1,
43
+ showDots: t2,
44
+ className,
45
+ testID,
46
+ index: controlledIndex,
47
+ onIndexChange,
48
+ previousAccessibilityLabel: t3,
49
+ nextAccessibilityLabel: t4,
50
+ formatPageLabel: t5,
51
+ renderControls,
52
+ controlsClassName,
53
+ paginationTextProps,
54
+ contentContainerStyle,
55
+ itemStyle,
56
+ dotStyle,
57
+ activeDotStyle,
58
+ ...viewProps
59
+ } = t0);
60
+ $[0] = t0;
61
+ $[1] = activeDotStyle;
62
+ $[2] = className;
63
+ $[3] = contentContainerStyle;
64
+ $[4] = controlledIndex;
65
+ $[5] = controlsClassName;
66
+ $[6] = data;
67
+ $[7] = dotStyle;
68
+ $[8] = itemStyle;
69
+ $[9] = itemWidth;
70
+ $[10] = keyExtractor;
71
+ $[11] = onIndexChange;
72
+ $[12] = paginationTextProps;
73
+ $[13] = renderControls;
74
+ $[14] = renderItem;
75
+ $[15] = t1;
76
+ $[16] = t2;
77
+ $[17] = t3;
78
+ $[18] = t4;
79
+ $[19] = t5;
80
+ $[20] = testID;
81
+ $[21] = viewProps;
82
+ } else {
83
+ activeDotStyle = $[1];
84
+ className = $[2];
85
+ contentContainerStyle = $[3];
86
+ controlledIndex = $[4];
87
+ controlsClassName = $[5];
88
+ data = $[6];
89
+ dotStyle = $[7];
90
+ itemStyle = $[8];
91
+ itemWidth = $[9];
92
+ keyExtractor = $[10];
93
+ onIndexChange = $[11];
94
+ paginationTextProps = $[12];
95
+ renderControls = $[13];
96
+ renderItem = $[14];
97
+ t1 = $[15];
98
+ t2 = $[16];
99
+ t3 = $[17];
100
+ t4 = $[18];
101
+ t5 = $[19];
102
+ testID = $[20];
103
+ viewProps = $[21];
104
+ }
105
+ const gap = t1 === undefined ? 12 : t1;
106
+ const showDots = t2 === undefined ? true : t2;
107
+ const previousAccessibilityLabel = t3 === undefined ? "Elemento anterior" : t3;
108
+ const nextAccessibilityLabel = t4 === undefined ? "Elemento siguiente" : t4;
109
+ const formatPageLabel = t5 === undefined ? defaultPageLabel : t5;
110
+ if (!Number.isFinite(itemWidth) || itemWidth <= 0 || !Number.isFinite(gap) || gap < 0 || !Number.isFinite(itemWidth + gap)) {
111
+ throw new RangeError("Carousel requires a positive finite itemWidth and a non-negative finite gap.");
112
+ }
113
+ if (controlledIndex !== undefined && (!Number.isInteger(controlledIndex) || controlledIndex < 0)) {
114
+ throw new RangeError("Carousel index must be a non-negative integer.");
115
+ }
116
+ if (controlledIndex !== undefined && !onIndexChange) {
117
+ throw new Error("Carousel requires onIndexChange when index is controlled.");
118
+ }
119
+ let t6;
120
+ if ($[22] !== data || $[23] !== keyExtractor) {
121
+ t6 = uniqueKeys(data, keyExtractor, "Carousel");
122
+ $[22] = data;
123
+ $[23] = keyExtractor;
124
+ $[24] = t6;
125
+ } else {
126
+ t6 = $[24];
127
+ }
128
+ const keys = t6;
129
+ const theme = useTheme();
130
+ const reducedMotion = useReducedMotion();
131
+ const [active, setActive] = useState(0);
132
+ const [viewportWidth, setViewportWidth] = useState(0);
133
+ const [scrollRevision, setScrollRevision] = useState(0);
134
+ const scrollRef = useRef(null);
135
+ const mounted = useRef(false);
136
+ const snap = itemWidth + gap;
137
+ const current = Math.min(controlledIndex ?? active, Math.max(0, data.length - 1));
138
+ let t7;
139
+ if ($[25] !== data.length || $[26] !== snap) {
140
+ t7 = {
141
+ index: 0,
142
+ snap,
143
+ count: data.length,
144
+ width: 0
145
+ };
146
+ $[25] = data.length;
147
+ $[26] = snap;
148
+ $[27] = t7;
149
+ } else {
150
+ t7 = $[27];
151
+ }
152
+ const nativePosition = useRef(t7);
153
+ if (controlledIndex === undefined && active !== current) {
154
+ setActive(current);
155
+ }
156
+ let t8;
157
+ if ($[28] !== controlledIndex || $[29] !== current || $[30] !== data.length || $[31] !== onIndexChange || $[32] !== reducedMotion || $[33] !== snap || $[34] !== viewportWidth) {
158
+ t8 = () => {
159
+ const previous = nativePosition.current;
160
+ if (previous.index !== current || previous.snap !== snap || previous.width !== viewportWidth) {
161
+ scrollRef.current?.scrollTo({
162
+ x: current * snap,
163
+ y: 0,
164
+ animated: mounted.current && !reducedMotion && previous.snap === snap && previous.count === data.length && previous.width === viewportWidth
165
+ });
166
+ }
167
+ nativePosition.current = {
168
+ index: current,
68
169
  snap,
69
- viewportWidth,
70
- scrollRevision,
71
- ]);
72
- const changeIndex = (next) => {
73
- setActive(next);
74
- if (next !== current)
75
- onIndexChange?.(next);
170
+ count: data.length,
171
+ width: viewportWidth
172
+ };
173
+ mounted.current = true;
174
+ if (controlledIndex === undefined && previous.count > data.length && previous.index !== current) {
175
+ onIndexChange?.(current);
176
+ }
76
177
  };
77
- const goTo = (next) => {
78
- if (!Number.isInteger(next) || next < 0 || next >= data.length)
79
- throw new RangeError("Carousel goTo requires an index within the current data.");
80
- changeIndex(next);
178
+ $[28] = controlledIndex;
179
+ $[29] = current;
180
+ $[30] = data.length;
181
+ $[31] = onIndexChange;
182
+ $[32] = reducedMotion;
183
+ $[33] = snap;
184
+ $[34] = viewportWidth;
185
+ $[35] = t8;
186
+ } else {
187
+ t8 = $[35];
188
+ }
189
+ let t9;
190
+ if ($[36] !== active || $[37] !== controlledIndex || $[38] !== current || $[39] !== data.length || $[40] !== onIndexChange || $[41] !== reducedMotion || $[42] !== scrollRevision || $[43] !== snap || $[44] !== viewportWidth) {
191
+ t9 = [active, current, controlledIndex, data.length, onIndexChange, reducedMotion, snap, viewportWidth, scrollRevision];
192
+ $[36] = active;
193
+ $[37] = controlledIndex;
194
+ $[38] = current;
195
+ $[39] = data.length;
196
+ $[40] = onIndexChange;
197
+ $[41] = reducedMotion;
198
+ $[42] = scrollRevision;
199
+ $[43] = snap;
200
+ $[44] = viewportWidth;
201
+ $[45] = t9;
202
+ } else {
203
+ t9 = $[45];
204
+ }
205
+ useEffect(t8, t9);
206
+ let t10;
207
+ if ($[46] !== current || $[47] !== onIndexChange) {
208
+ t10 = next => {
209
+ setActive(next);
210
+ if (next !== current) {
211
+ onIndexChange?.(next);
212
+ }
81
213
  };
82
- const onScroll = (event) => {
83
- const offset = event.nativeEvent.contentOffset.x;
84
- if (!Number.isFinite(offset))
85
- throw new RangeError("Carousel received a non-finite scroll offset.");
86
- const next = Math.max(0, Math.min(Math.round(offset / snap), data.length - 1));
87
- nativePosition.current = { index: next, snap, count: data.length, width: viewportWidth };
88
- changeIndex(next);
89
- if (controlledIndex !== undefined)
90
- setScrollRevision((revision) => revision + 1);
214
+ $[46] = current;
215
+ $[47] = onIndexChange;
216
+ $[48] = t10;
217
+ } else {
218
+ t10 = $[48];
219
+ }
220
+ const changeIndex = t10;
221
+ let t11;
222
+ if ($[49] !== changeIndex || $[50] !== data.length) {
223
+ t11 = next_0 => {
224
+ if (!Number.isInteger(next_0) || next_0 < 0 || next_0 >= data.length) {
225
+ throw new RangeError("Carousel goTo requires an index within the current data.");
226
+ }
227
+ changeIndex(next_0);
91
228
  };
92
- const controls = {
93
- index: current,
229
+ $[49] = changeIndex;
230
+ $[50] = data.length;
231
+ $[51] = t11;
232
+ } else {
233
+ t11 = $[51];
234
+ }
235
+ const goTo = t11;
236
+ let t12;
237
+ if ($[52] !== changeIndex || $[53] !== controlledIndex || $[54] !== data.length || $[55] !== snap || $[56] !== viewportWidth) {
238
+ t12 = event => {
239
+ const offset = event.nativeEvent.contentOffset.x;
240
+ if (!Number.isFinite(offset)) {
241
+ throw new RangeError("Carousel received a non-finite scroll offset.");
242
+ }
243
+ const next_1 = Math.max(0, Math.min(Math.round(offset / snap), data.length - 1));
244
+ nativePosition.current = {
245
+ index: next_1,
246
+ snap,
94
247
  count: data.length,
95
- canPrevious: current > 0,
96
- canNext: current < data.length - 1,
97
- previous: () => {
98
- if (current > 0)
99
- goTo(current - 1);
100
- },
101
- next: () => {
102
- if (current < data.length - 1)
103
- goTo(current + 1);
104
- },
105
- goTo,
248
+ width: viewportWidth
249
+ };
250
+ changeIndex(next_1);
251
+ if (controlledIndex !== undefined) {
252
+ setScrollRevision(_temp);
253
+ }
254
+ };
255
+ $[52] = changeIndex;
256
+ $[53] = controlledIndex;
257
+ $[54] = data.length;
258
+ $[55] = snap;
259
+ $[56] = viewportWidth;
260
+ $[57] = t12;
261
+ } else {
262
+ t12 = $[57];
263
+ }
264
+ const onScroll = t12;
265
+ const t13 = current > 0;
266
+ const t14 = current < data.length - 1;
267
+ let t15;
268
+ if ($[58] !== current || $[59] !== goTo) {
269
+ t15 = () => {
270
+ if (current > 0) {
271
+ goTo(current - 1);
272
+ }
273
+ };
274
+ $[58] = current;
275
+ $[59] = goTo;
276
+ $[60] = t15;
277
+ } else {
278
+ t15 = $[60];
279
+ }
280
+ let t16;
281
+ if ($[61] !== current || $[62] !== data.length || $[63] !== goTo) {
282
+ t16 = () => {
283
+ if (current < data.length - 1) {
284
+ goTo(current + 1);
285
+ }
106
286
  };
107
- return (_jsxs(View, { ...viewProps, className: className, testID: testID, children: [_jsxs(ScrollView, { contentContainerStyle: contentContainerStyle, decelerationRate: "fast", horizontal: true, onLayout: (event) => setViewportWidth(event.nativeEvent.layout.width), onMomentumScrollEnd: onScroll, ref: scrollRef, showsHorizontalScrollIndicator: false, snapToInterval: snap, testID: testID ? `${testID}-scroll` : undefined, children: [data.map((item, index) => (_jsx(View, { style: [
108
- itemStyle,
109
- { width: itemWidth, marginRight: index < data.length - 1 ? gap : 0 },
110
- ], children: renderItem(item, index) }, keys[index]))), data.length > 0 ? (_jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: { width: Math.max(0, viewportWidth - itemWidth) }, testID: testID ? `${testID}-end-spacing` : undefined })) : null] }), showDots && data.length > 1 ? (_jsx(View, { accessibilityElementsHidden: true, className: "flex-row justify-center gap-1.5 mt-3", importantForAccessibility: "no-hide-descendants", children: data.map((_item, index) => (_jsx(View, { className: "h-1.5 rounded-full", style: [
111
- {
112
- width: index === current ? 16 : 6,
113
- backgroundColor: index === current ? theme.primary : theme.border.strong,
114
- },
115
- dotStyle,
116
- index === current ? activeDotStyle : undefined,
117
- ] }, keys[index]))) })) : null, data.length > 1 ? (renderControls ? (renderControls(controls)) : (_jsxs(View, { className: controlsClassName ?? "flex-row items-center justify-center gap-3 mt-2", children: [_jsx(IconButton, { accessibilityLabel: previousAccessibilityLabel, disabled: !controls.canPrevious, icon: "back", onPress: controls.previous }), _jsx(Typography.Text, { ...paginationTextProps, accessibilityLiveRegion: "polite", children: formatPageLabel(current, data.length) }), _jsx(IconButton, { accessibilityLabel: nextAccessibilityLabel, disabled: !controls.canNext, icon: "next", onPress: controls.next })] }))) : null] }));
287
+ $[61] = current;
288
+ $[62] = data.length;
289
+ $[63] = goTo;
290
+ $[64] = t16;
291
+ } else {
292
+ t16 = $[64];
293
+ }
294
+ let t17;
295
+ if ($[65] !== activeDotStyle || $[66] !== className || $[67] !== contentContainerStyle || $[68] !== controlsClassName || $[69] !== current || $[70] !== data || $[71] !== dotStyle || $[72] !== formatPageLabel || $[73] !== gap || $[74] !== goTo || $[75] !== itemStyle || $[76] !== itemWidth || $[77] !== keys || $[78] !== nextAccessibilityLabel || $[79] !== onScroll || $[80] !== paginationTextProps || $[81] !== previousAccessibilityLabel || $[82] !== renderControls || $[83] !== renderItem || $[84] !== showDots || $[85] !== snap || $[86] !== t13 || $[87] !== t14 || $[88] !== t15 || $[89] !== t16 || $[90] !== testID || $[91] !== theme || $[92] !== viewProps || $[93] !== viewportWidth) {
296
+ const controls = {
297
+ index: current,
298
+ count: data.length,
299
+ canPrevious: t13,
300
+ canNext: t14,
301
+ previous: t15,
302
+ next: t16,
303
+ goTo
304
+ };
305
+ let t18;
306
+ if ($[95] === Symbol.for("react.memo_cache_sentinel")) {
307
+ t18 = event_0 => setViewportWidth(event_0.nativeEvent.layout.width);
308
+ $[95] = t18;
309
+ } else {
310
+ t18 = $[95];
311
+ }
312
+ const t19 = testID ? `${testID}-scroll` : undefined;
313
+ let t20;
314
+ if ($[96] !== data || $[97] !== gap || $[98] !== itemStyle || $[99] !== itemWidth || $[100] !== keys || $[101] !== renderItem) {
315
+ let t21;
316
+ if ($[103] !== data.length || $[104] !== gap || $[105] !== itemStyle || $[106] !== itemWidth || $[107] !== keys || $[108] !== renderItem) {
317
+ t21 = (item, index) => _jsx(View, {
318
+ style: [itemStyle, {
319
+ width: itemWidth,
320
+ marginRight: index < data.length - 1 ? gap : 0
321
+ }],
322
+ children: renderItem(item, index)
323
+ }, keys[index]);
324
+ $[103] = data.length;
325
+ $[104] = gap;
326
+ $[105] = itemStyle;
327
+ $[106] = itemWidth;
328
+ $[107] = keys;
329
+ $[108] = renderItem;
330
+ $[109] = t21;
331
+ } else {
332
+ t21 = $[109];
333
+ }
334
+ t20 = data.map(t21);
335
+ $[96] = data;
336
+ $[97] = gap;
337
+ $[98] = itemStyle;
338
+ $[99] = itemWidth;
339
+ $[100] = keys;
340
+ $[101] = renderItem;
341
+ $[102] = t20;
342
+ } else {
343
+ t20 = $[102];
344
+ }
345
+ let t21;
346
+ if ($[110] !== data.length || $[111] !== itemWidth || $[112] !== testID || $[113] !== viewportWidth) {
347
+ t21 = data.length > 0 ? _jsx(View, {
348
+ accessibilityElementsHidden: true,
349
+ importantForAccessibility: "no-hide-descendants",
350
+ style: {
351
+ width: Math.max(0, viewportWidth - itemWidth)
352
+ },
353
+ testID: testID ? `${testID}-end-spacing` : undefined
354
+ }) : null;
355
+ $[110] = data.length;
356
+ $[111] = itemWidth;
357
+ $[112] = testID;
358
+ $[113] = viewportWidth;
359
+ $[114] = t21;
360
+ } else {
361
+ t21 = $[114];
362
+ }
363
+ let t22;
364
+ if ($[115] !== contentContainerStyle || $[116] !== onScroll || $[117] !== snap || $[118] !== t19 || $[119] !== t20 || $[120] !== t21) {
365
+ t22 = _jsxs(ScrollView, {
366
+ contentContainerStyle: contentContainerStyle,
367
+ decelerationRate: "fast",
368
+ horizontal: true,
369
+ onLayout: t18,
370
+ onMomentumScrollEnd: onScroll,
371
+ ref: scrollRef,
372
+ showsHorizontalScrollIndicator: false,
373
+ snapToInterval: snap,
374
+ testID: t19,
375
+ children: [t20, t21]
376
+ });
377
+ $[115] = contentContainerStyle;
378
+ $[116] = onScroll;
379
+ $[117] = snap;
380
+ $[118] = t19;
381
+ $[119] = t20;
382
+ $[120] = t21;
383
+ $[121] = t22;
384
+ } else {
385
+ t22 = $[121];
386
+ }
387
+ let t23;
388
+ if ($[122] !== activeDotStyle || $[123] !== current || $[124] !== data || $[125] !== dotStyle || $[126] !== keys || $[127] !== showDots || $[128] !== theme) {
389
+ t23 = showDots && data.length > 1 ? _jsx(View, {
390
+ accessibilityElementsHidden: true,
391
+ className: "flex-row justify-center gap-1.5 mt-3",
392
+ importantForAccessibility: "no-hide-descendants",
393
+ children: data.map((_item, index_0) => _jsx(View, {
394
+ className: "h-1.5 rounded-full",
395
+ style: [{
396
+ width: index_0 === current ? 16 : 6,
397
+ backgroundColor: index_0 === current ? theme.primary : theme.border.strong
398
+ }, dotStyle, index_0 === current ? activeDotStyle : undefined]
399
+ }, keys[index_0]))
400
+ }) : null;
401
+ $[122] = activeDotStyle;
402
+ $[123] = current;
403
+ $[124] = data;
404
+ $[125] = dotStyle;
405
+ $[126] = keys;
406
+ $[127] = showDots;
407
+ $[128] = theme;
408
+ $[129] = t23;
409
+ } else {
410
+ t23 = $[129];
411
+ }
412
+ t17 = _jsxs(View, {
413
+ ...viewProps,
414
+ className: className,
415
+ testID: testID,
416
+ children: [t22, t23, data.length > 1 ? renderControls ? renderControls(controls) : _jsxs(View, {
417
+ className: controlsClassName ?? "flex-row items-center justify-center gap-3 mt-2",
418
+ children: [_jsx(IconButton, {
419
+ accessibilityLabel: previousAccessibilityLabel,
420
+ disabled: !controls.canPrevious,
421
+ icon: "back",
422
+ onPress: controls.previous
423
+ }), _jsx(Typography.Text, {
424
+ ...paginationTextProps,
425
+ accessibilityLiveRegion: "polite",
426
+ children: formatPageLabel(current, data.length)
427
+ }), _jsx(IconButton, {
428
+ accessibilityLabel: nextAccessibilityLabel,
429
+ disabled: !controls.canNext,
430
+ icon: "next",
431
+ onPress: controls.next
432
+ })]
433
+ }) : null]
434
+ });
435
+ $[65] = activeDotStyle;
436
+ $[66] = className;
437
+ $[67] = contentContainerStyle;
438
+ $[68] = controlsClassName;
439
+ $[69] = current;
440
+ $[70] = data;
441
+ $[71] = dotStyle;
442
+ $[72] = formatPageLabel;
443
+ $[73] = gap;
444
+ $[74] = goTo;
445
+ $[75] = itemStyle;
446
+ $[76] = itemWidth;
447
+ $[77] = keys;
448
+ $[78] = nextAccessibilityLabel;
449
+ $[79] = onScroll;
450
+ $[80] = paginationTextProps;
451
+ $[81] = previousAccessibilityLabel;
452
+ $[82] = renderControls;
453
+ $[83] = renderItem;
454
+ $[84] = showDots;
455
+ $[85] = snap;
456
+ $[86] = t13;
457
+ $[87] = t14;
458
+ $[88] = t15;
459
+ $[89] = t16;
460
+ $[90] = testID;
461
+ $[91] = theme;
462
+ $[92] = viewProps;
463
+ $[93] = viewportWidth;
464
+ $[94] = t17;
465
+ } else {
466
+ t17 = $[94];
467
+ }
468
+ return t17;
469
+ }
470
+ function _temp(revision) {
471
+ return revision + 1;
118
472
  }
119
473
  export default Carousel;
@@ -1,4 +1,5 @@
1
1
  import { type VariantProps } from "../theme/tw.js";
2
+ import type { typographyVariants } from "../theme/typography.js";
2
3
  declare const chip: import("tailwind-variants").TVReturnType<{
3
4
  tone: {
4
5
  neutral: {
@@ -99,7 +100,9 @@ export interface ChipProps extends VariantProps<typeof chip> {
99
100
  onRemove?: () => void;
100
101
  className?: string;
101
102
  testID?: string;
103
+ /** Typography variant of the label. Defaults to the shared pill metrics (12/16). */
104
+ textVariant?: keyof typeof typographyVariants;
102
105
  }
103
- declare function Chip({ label, tone, selected, onPress, onRemove, className, testID, }: ChipProps): import("react").JSX.Element;
106
+ declare function Chip({ label, tone, selected, onPress, onRemove, className, testID, textVariant, }: ChipProps): import("react").JSX.Element;
104
107
  export default Chip;
105
108
  export { Chip };