@ovotech/element-native 5.5.0 → 5.7.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 (284) hide show
  1. package/dist/components/Accordion/styles.d.ts +3 -1725
  2. package/dist/components/ActionList/Action.d.ts +23 -0
  3. package/dist/components/ActionList/Action.js +29 -0
  4. package/dist/components/ActionList/ActionList.d.ts +11 -27
  5. package/dist/components/ActionList/ActionList.js +9 -25
  6. package/dist/components/ActionList/ActionListItems/DataListItem.d.ts +23 -0
  7. package/dist/components/ActionList/ActionListItems/DataListItem.js +23 -0
  8. package/dist/components/ActionList/ActionListItems/EditableListItem.d.ts +43 -0
  9. package/dist/components/ActionList/ActionListItems/EditableListItem.js +134 -0
  10. package/dist/components/ActionList/ActionListItems/NavigationListItem.d.ts +16 -0
  11. package/dist/components/ActionList/ActionListItems/NavigationListItem.js +30 -0
  12. package/dist/components/ActionList/ActionListItems/ProgressRing.d.ts +7 -0
  13. package/dist/components/ActionList/ActionListItems/ProgressRing.js +66 -0
  14. package/dist/components/ActionList/ActionListItems/ToggleListItem.d.ts +9 -0
  15. package/dist/components/ActionList/ActionListItems/ToggleListItem.js +12 -0
  16. package/dist/components/ActionList/ActionListItems/styles.d.ts +51 -0
  17. package/dist/components/ActionList/ActionListItems/styles.js +173 -0
  18. package/dist/components/ActionList/components/ActionListHeading.d.ts +9 -0
  19. package/dist/components/ActionList/components/ActionListHeading.js +11 -0
  20. package/dist/components/ActionList/index.d.ts +6 -1
  21. package/dist/components/ActionList/index.js +11 -2
  22. package/dist/components/ActionList/styled.d.ts +12 -5756
  23. package/dist/components/ActionList/styled.js +24 -9
  24. package/dist/components/Badge/Badge.d.ts +1 -575
  25. package/dist/components/BottomActionBar/BottomActionBar.d.ts +12 -0
  26. package/dist/components/BottomActionBar/BottomActionBar.js +80 -0
  27. package/dist/components/BottomActionBar/OverlayProvider.d.ts +8 -0
  28. package/dist/components/BottomActionBar/OverlayProvider.js +38 -0
  29. package/dist/components/BottomActionBar/index.d.ts +2 -0
  30. package/dist/components/BottomActionBar/index.js +7 -0
  31. package/dist/components/Button/Button.js +1 -1
  32. package/dist/components/Button/Button.styles.d.ts +5 -2300
  33. package/dist/components/Card/Card.d.ts +7 -4
  34. package/dist/components/Card/Card.js +44 -22
  35. package/dist/components/Card/Card.styles.d.ts +4 -1725
  36. package/dist/components/Card/Card.styles.js +7 -11
  37. package/dist/components/Cards/AccountCard/AccountCard.styles.d.ts +8 -4600
  38. package/dist/components/Cards/BalanceCard/BalanceCard.styles.d.ts +15 -8625
  39. package/dist/components/Cards/BalanceCard/BalanceCard.styles.js +2 -2
  40. package/dist/components/Cards/DisruptiveCard/DisruptiveCard.d.ts +13 -0
  41. package/dist/components/Cards/DisruptiveCard/DisruptiveCard.js +45 -0
  42. package/dist/components/Cards/DisruptiveCard/DisruptiveCard.styles.d.ts +3 -0
  43. package/dist/components/Cards/DisruptiveCard/DisruptiveCard.styles.js +11 -0
  44. package/dist/components/Cards/DisruptiveCard/index.d.ts +1 -0
  45. package/dist/components/Cards/DisruptiveCard/index.js +17 -0
  46. package/dist/components/Cards/HeroImageCard/HeroImageCard.d.ts +12 -0
  47. package/dist/components/Cards/HeroImageCard/HeroImageCard.js +65 -0
  48. package/dist/components/Cards/HeroImageCard/HeroImageCard.styles.d.ts +10 -0
  49. package/dist/components/Cards/HeroImageCard/HeroImageCard.styles.js +27 -0
  50. package/dist/components/Cards/HeroImageCard/index.d.ts +1 -0
  51. package/dist/components/Cards/HeroImageCard/index.js +17 -0
  52. package/dist/components/Cards/IconDataCard/IconDataCard.styles.d.ts +4 -2300
  53. package/dist/components/Cards/IconTextCard/IconTextCard.js +3 -16
  54. package/dist/components/Cards/IconTextCard/IconTextCard.styles.d.ts +3 -2300
  55. package/dist/components/Cards/IconTextCard/IconTextCard.styles.js +1 -6
  56. package/dist/components/Cards/IllustrationTextCard/IllustrationTextCard.d.ts +14 -0
  57. package/dist/components/Cards/IllustrationTextCard/IllustrationTextCard.js +26 -0
  58. package/dist/components/Cards/IllustrationTextCard/IllustrationTextCard.styles.d.ts +18 -0
  59. package/dist/components/Cards/IllustrationTextCard/IllustrationTextCard.styles.js +33 -0
  60. package/dist/components/Cards/IllustrationTextCard/index.d.ts +1 -0
  61. package/dist/components/Cards/IllustrationTextCard/index.js +17 -0
  62. package/dist/components/Cards/LinkTextCard/LinkTextCard.d.ts +2 -2
  63. package/dist/components/Cards/LinkTextCard/LinkTextCard.js +7 -6
  64. package/dist/components/Cards/LinkTextCard/LinkTextCard.styles.d.ts +8 -2875
  65. package/dist/components/Cards/LinkTextCard/LinkTextCard.styles.js +9 -6
  66. package/dist/components/Cards/OfferCard/OfferCard.d.ts +22 -0
  67. package/dist/components/Cards/OfferCard/OfferCard.js +36 -0
  68. package/dist/components/Cards/OfferCard/OfferCard.styles.d.ts +34 -0
  69. package/dist/components/Cards/OfferCard/OfferCard.styles.js +61 -0
  70. package/dist/components/Cards/OfferCard/index.d.ts +1 -0
  71. package/dist/components/Cards/OfferCard/index.js +17 -0
  72. package/dist/components/Cards/ProgressBarCard/ProgressBarCard.styles.d.ts +9 -5175
  73. package/dist/components/Cards/QuickLinkCard/QuickLinkCard.d.ts +12 -0
  74. package/dist/components/Cards/QuickLinkCard/QuickLinkCard.js +27 -0
  75. package/dist/components/Cards/QuickLinkCard/QuickLinkCard.styles.d.ts +12 -0
  76. package/dist/components/Cards/QuickLinkCard/QuickLinkCard.styles.js +31 -0
  77. package/dist/components/Cards/QuickLinkCard/index.d.ts +1 -0
  78. package/dist/components/Cards/QuickLinkCard/index.js +17 -0
  79. package/dist/components/Cards/ServicesImageCard/ServicesImageCard.d.ts +12 -0
  80. package/dist/components/Cards/ServicesImageCard/ServicesImageCard.js +24 -0
  81. package/dist/components/Cards/ServicesImageCard/ServicesImageCard.styles.d.ts +17 -0
  82. package/dist/components/Cards/ServicesImageCard/ServicesImageCard.styles.js +38 -0
  83. package/dist/components/Cards/ServicesImageCard/index.d.ts +1 -0
  84. package/dist/components/Cards/ServicesImageCard/index.js +17 -0
  85. package/dist/components/Cards/components.d.ts +15 -0
  86. package/dist/components/Cards/components.js +24 -0
  87. package/dist/components/Cards/index.d.ts +5 -0
  88. package/dist/components/Cards/index.js +11 -1
  89. package/dist/components/Cards/shared.styles.d.ts +11 -3451
  90. package/dist/components/Cards/shared.styles.js +18 -2
  91. package/dist/components/Cards/utils.d.ts +1 -0
  92. package/dist/components/Cards/utils.js +13 -1
  93. package/dist/components/Checkbox/Checkbox.d.ts +2 -13
  94. package/dist/components/Checkbox/Checkbox.js +3 -49
  95. package/dist/components/Checkbox/styled.d.ts +21 -0
  96. package/dist/components/Checkbox/styled.js +52 -0
  97. package/dist/components/Checkbox/types.d.ts +16 -0
  98. package/dist/components/Checkbox/types.js +2 -0
  99. package/dist/components/CurrencyInput/CurrencyInput.d.ts +2 -1
  100. package/dist/components/CurrencyInput/CurrencyInput.js +11 -4
  101. package/dist/components/CurrencyInput/styled.d.ts +10 -0
  102. package/dist/components/CurrencyInput/styled.js +39 -0
  103. package/dist/components/DataTable/styles.d.ts +13 -7475
  104. package/dist/components/Disclosure/Disclosure.d.ts +1 -575
  105. package/dist/components/Divider/Divider.d.ts +1 -1
  106. package/dist/components/Divider/Divider.js +3 -1
  107. package/dist/components/Em/Em.d.ts +1 -575
  108. package/dist/components/EmailInput/EmailInput.d.ts +4 -1
  109. package/dist/components/EmailInput/EmailInput.js +18 -2
  110. package/dist/components/EmptyState/EmptyState.d.ts +2 -0
  111. package/dist/components/EmptyState/EmptyState.js +17 -0
  112. package/dist/components/EmptyState/EmptyState.test.d.ts +1 -0
  113. package/dist/components/EmptyState/EmptyState.test.js +92 -0
  114. package/dist/components/EmptyState/index.d.ts +1 -0
  115. package/dist/components/EmptyState/index.js +17 -0
  116. package/dist/components/EmptyState/styles.d.ts +2 -0
  117. package/dist/components/EmptyState/styles.js +23 -0
  118. package/dist/components/EmptyState/types.d.ts +18 -0
  119. package/dist/components/EmptyState/types.js +2 -0
  120. package/dist/components/ErrorText/ErrorText.d.ts +1 -575
  121. package/dist/components/Field/Field.d.ts +3 -2
  122. package/dist/components/Field/Field.js +3 -2
  123. package/dist/components/Grid/Col.d.ts +1 -575
  124. package/dist/components/HintText/HintText.d.ts +1 -575
  125. package/dist/components/Input/Input.d.ts +2 -1
  126. package/dist/components/Input/Input.js +6 -97
  127. package/dist/components/Input/styled.d.ts +16 -0
  128. package/dist/components/Input/styled.js +96 -0
  129. package/dist/components/LabelText/LabelText.d.ts +1 -575
  130. package/dist/components/LargeValueReference/LargeValueReference.d.ts +11 -0
  131. package/dist/components/LargeValueReference/LargeValueReference.js +49 -0
  132. package/dist/components/LargeValueReference/index.d.ts +1 -0
  133. package/dist/components/LargeValueReference/index.js +17 -0
  134. package/dist/components/LargeValueReference/styles.d.ts +10 -0
  135. package/dist/components/LargeValueReference/styles.js +29 -0
  136. package/dist/components/LineThrough/LineThrough.d.ts +1 -575
  137. package/dist/components/List/styled.d.ts +4 -2300
  138. package/dist/components/Margin/Margin.d.ts +1 -575
  139. package/dist/components/NavHeader/NavHeader.styles.d.ts +11 -6325
  140. package/dist/components/Notification/Notification.d.ts +2 -2
  141. package/dist/components/Notification/Notification.js +20 -12
  142. package/dist/components/Notification/Notification.styles.d.ts +13 -5175
  143. package/dist/components/Notification/Notification.styles.js +21 -2
  144. package/dist/components/PasswordInput/PasswordInput.styled.d.ts +1 -577
  145. package/dist/components/PasswordInput/PasswordInput.styled.js +5 -3
  146. package/dist/components/PasswordInput/PasswordVisibilityToggle.js +2 -8
  147. package/dist/components/Radio/Radio.d.ts +2 -2
  148. package/dist/components/Radio/Radio.js +5 -43
  149. package/dist/components/Radio/Radio.styles.d.ts +9 -0
  150. package/dist/components/Radio/Radio.styles.js +74 -0
  151. package/dist/components/RadioCard/RadioCard.d.ts +2 -1
  152. package/dist/components/RadioCard/RadioCard.js +7 -57
  153. package/dist/components/RadioCard/RadioCard.styles.d.ts +16 -0
  154. package/dist/components/RadioCard/RadioCard.styles.js +97 -0
  155. package/dist/components/Rail/Rail.d.ts +12 -0
  156. package/dist/components/Rail/Rail.js +58 -0
  157. package/dist/components/Rail/RailIndicator.d.ts +7 -0
  158. package/dist/components/Rail/RailIndicator.js +81 -0
  159. package/dist/components/Rail/index.d.ts +1 -0
  160. package/dist/components/Rail/index.js +5 -0
  161. package/dist/components/Rail/styles.d.ts +13 -0
  162. package/dist/components/Rail/styles.js +55 -0
  163. package/dist/components/Rail/useRailPaging.d.ts +13 -0
  164. package/dist/components/Rail/useRailPaging.js +95 -0
  165. package/dist/components/SelectField/Select.d.ts +5 -579
  166. package/dist/components/SelectField/Select.js +7 -107
  167. package/dist/components/SelectField/SelectField.d.ts +2 -2
  168. package/dist/components/SelectField/SelectField.js +2 -2
  169. package/dist/components/SelectField/styled.d.ts +26 -0
  170. package/dist/components/SelectField/styled.js +118 -0
  171. package/dist/components/SkeletonText/SkeletonText.js +4 -4
  172. package/dist/components/Strong/Strong.d.ts +1 -575
  173. package/dist/components/SubLabelText/SubLabelText.d.ts +1 -575
  174. package/dist/components/Tabs/Tab.d.ts +1 -575
  175. package/dist/components/TextareaInput/TextareaInput.js +12 -6
  176. package/dist/components/Toast/Toast.d.ts +10 -4
  177. package/dist/components/Toast/Toast.js +40 -27
  178. package/dist/components/Toggle/Toggle.d.ts +3 -1
  179. package/dist/components/Toggle/Toggle.js +4 -6
  180. package/dist/components/Toggle/styles.d.ts +5 -2300
  181. package/dist/components/Toggle/styles.js +3 -3
  182. package/dist/components/index.d.ts +5 -0
  183. package/dist/components/index.js +5 -0
  184. package/dist/esm/components/ActionList/Action.js +26 -0
  185. package/dist/esm/components/ActionList/ActionList.js +12 -28
  186. package/dist/esm/components/ActionList/ActionListItems/DataListItem.js +19 -0
  187. package/dist/esm/components/ActionList/ActionListItems/EditableListItem.js +131 -0
  188. package/dist/esm/components/ActionList/ActionListItems/NavigationListItem.js +26 -0
  189. package/dist/esm/components/ActionList/ActionListItems/ProgressRing.js +29 -0
  190. package/dist/esm/components/ActionList/ActionListItems/ToggleListItem.js +8 -0
  191. package/dist/esm/components/ActionList/ActionListItems/styles.js +137 -0
  192. package/dist/esm/components/ActionList/components/ActionListHeading.js +7 -0
  193. package/dist/esm/components/ActionList/index.js +6 -1
  194. package/dist/esm/components/ActionList/styled.js +23 -8
  195. package/dist/esm/components/BottomActionBar/BottomActionBar.js +40 -0
  196. package/dist/esm/components/BottomActionBar/OverlayProvider.js +30 -0
  197. package/dist/esm/components/BottomActionBar/index.js +2 -0
  198. package/dist/esm/components/Button/Button.js +1 -1
  199. package/dist/esm/components/Card/Card.js +45 -23
  200. package/dist/esm/components/Card/Card.styles.js +8 -12
  201. package/dist/esm/components/Cards/BalanceCard/BalanceCard.styles.js +2 -2
  202. package/dist/esm/components/Cards/DisruptiveCard/DisruptiveCard.js +41 -0
  203. package/dist/esm/components/Cards/DisruptiveCard/DisruptiveCard.styles.js +5 -0
  204. package/dist/esm/components/Cards/DisruptiveCard/index.js +1 -0
  205. package/dist/esm/components/Cards/HeroImageCard/HeroImageCard.js +28 -0
  206. package/dist/esm/components/Cards/HeroImageCard/HeroImageCard.styles.js +21 -0
  207. package/dist/esm/components/Cards/HeroImageCard/index.js +1 -0
  208. package/dist/esm/components/Cards/IconTextCard/IconTextCard.js +5 -18
  209. package/dist/esm/components/Cards/IconTextCard/IconTextCard.styles.js +0 -5
  210. package/dist/esm/components/Cards/IllustrationTextCard/IllustrationTextCard.js +22 -0
  211. package/dist/esm/components/Cards/IllustrationTextCard/IllustrationTextCard.styles.js +27 -0
  212. package/dist/esm/components/Cards/IllustrationTextCard/index.js +1 -0
  213. package/dist/esm/components/Cards/LinkTextCard/LinkTextCard.js +7 -6
  214. package/dist/esm/components/Cards/LinkTextCard/LinkTextCard.styles.js +9 -6
  215. package/dist/esm/components/Cards/OfferCard/OfferCard.js +32 -0
  216. package/dist/esm/components/Cards/OfferCard/OfferCard.styles.js +55 -0
  217. package/dist/esm/components/Cards/OfferCard/index.js +1 -0
  218. package/dist/esm/components/Cards/QuickLinkCard/QuickLinkCard.js +23 -0
  219. package/dist/esm/components/Cards/QuickLinkCard/QuickLinkCard.styles.js +25 -0
  220. package/dist/esm/components/Cards/QuickLinkCard/index.js +1 -0
  221. package/dist/esm/components/Cards/ServicesImageCard/ServicesImageCard.js +20 -0
  222. package/dist/esm/components/Cards/ServicesImageCard/ServicesImageCard.styles.js +32 -0
  223. package/dist/esm/components/Cards/ServicesImageCard/index.js +1 -0
  224. package/dist/esm/components/Cards/components.js +19 -0
  225. package/dist/esm/components/Cards/index.js +5 -0
  226. package/dist/esm/components/Cards/shared.styles.js +17 -1
  227. package/dist/esm/components/Cards/utils.js +11 -0
  228. package/dist/esm/components/Checkbox/Checkbox.js +2 -45
  229. package/dist/esm/components/Checkbox/styled.js +46 -0
  230. package/dist/esm/components/Checkbox/types.js +1 -0
  231. package/dist/esm/components/CurrencyInput/CurrencyInput.js +12 -5
  232. package/dist/esm/components/CurrencyInput/styled.js +33 -0
  233. package/dist/esm/components/Divider/Divider.js +3 -1
  234. package/dist/esm/components/EmailInput/EmailInput.js +18 -2
  235. package/dist/esm/components/EmptyState/EmptyState.js +13 -0
  236. package/dist/esm/components/EmptyState/EmptyState.test.js +90 -0
  237. package/dist/esm/components/EmptyState/index.js +1 -0
  238. package/dist/esm/components/EmptyState/styles.js +17 -0
  239. package/dist/esm/components/EmptyState/types.js +1 -0
  240. package/dist/esm/components/Field/Field.js +3 -2
  241. package/dist/esm/components/Input/Input.js +6 -64
  242. package/dist/esm/components/Input/styled.js +60 -0
  243. package/dist/esm/components/LargeValueReference/LargeValueReference.js +45 -0
  244. package/dist/esm/components/LargeValueReference/index.js +1 -0
  245. package/dist/esm/components/LargeValueReference/styles.js +23 -0
  246. package/dist/esm/components/Notification/Notification.js +21 -13
  247. package/dist/esm/components/Notification/Notification.styles.js +20 -1
  248. package/dist/esm/components/PasswordInput/PasswordInput.styled.js +5 -3
  249. package/dist/esm/components/PasswordInput/PasswordVisibilityToggle.js +2 -8
  250. package/dist/esm/components/Radio/Radio.js +4 -39
  251. package/dist/esm/components/Radio/Radio.styles.js +38 -0
  252. package/dist/esm/components/RadioCard/RadioCard.js +5 -52
  253. package/dist/esm/components/RadioCard/RadioCard.styles.js +61 -0
  254. package/dist/esm/components/Rail/Rail.js +21 -0
  255. package/dist/esm/components/Rail/RailIndicator.js +44 -0
  256. package/dist/esm/components/Rail/index.js +1 -0
  257. package/dist/esm/components/Rail/styles.js +49 -0
  258. package/dist/esm/components/Rail/useRailPaging.js +92 -0
  259. package/dist/esm/components/SelectField/Select.js +7 -74
  260. package/dist/esm/components/SelectField/SelectField.js +3 -3
  261. package/dist/esm/components/SelectField/styled.js +82 -0
  262. package/dist/esm/components/SkeletonText/SkeletonText.js +4 -4
  263. package/dist/esm/components/TextareaInput/TextareaInput.js +12 -6
  264. package/dist/esm/components/Toast/Toast.js +40 -27
  265. package/dist/esm/components/Toggle/Toggle.js +4 -6
  266. package/dist/esm/components/Toggle/styles.js +3 -3
  267. package/dist/esm/components/index.js +5 -0
  268. package/dist/esm/hooks/use-font-scaling.js +32 -0
  269. package/dist/esm/index.js +1 -0
  270. package/dist/esm/test/utils.js +12 -0
  271. package/dist/esm/utils/utils.js +12 -1
  272. package/dist/hooks/use-font-scaling.d.ts +26 -0
  273. package/dist/hooks/use-font-scaling.js +35 -0
  274. package/dist/index.d.ts +1 -0
  275. package/dist/index.js +1 -0
  276. package/dist/styled.native.d.ts +1 -3445
  277. package/dist/test/utils.d.ts +4 -0
  278. package/dist/test/utils.js +28 -0
  279. package/dist/utils/utils.d.ts +11 -1
  280. package/dist/utils/utils.js +12 -0
  281. package/package.json +5 -5
  282. package/dist/components/ErrorWrapper/styles.d.ts +0 -0
  283. package/dist/components/ErrorWrapper/styles.js +0 -1
  284. package/dist/esm/components/ErrorWrapper/styles.js +0 -1
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useRailPaging = useRailPaging;
4
+ const react_1 = require("react");
5
+ //Epsilon allowable margin for nearly equal comparisons
6
+ const EPS = 0.5;
7
+ function nearlyEqual(a, b, eps = EPS) {
8
+ return Math.abs(a - b) <= eps;
9
+ }
10
+ function clamp(n, lo, hi) {
11
+ return Math.max(lo, Math.min(n, hi));
12
+ }
13
+ function uniqueNearlyEqual(values, eps = EPS) {
14
+ const out = [];
15
+ for (const v of values) {
16
+ if (out.length === 0 || !nearlyEqual(out[out.length - 1], v, eps))
17
+ out.push(v);
18
+ }
19
+ return out;
20
+ }
21
+ function useRailPaging({ itemCount }) {
22
+ const safeItemCount = Math.max(0, itemCount);
23
+ const [containerWidth, setContainerWidth] = (0, react_1.useState)(0);
24
+ const [contentWidth, setContentWidth] = (0, react_1.useState)(0);
25
+ const [itemWidth, setItemWidth] = (0, react_1.useState)(0);
26
+ const [activeStartIndex, setActiveStartIndex] = (0, react_1.useState)(0);
27
+ const stride = itemWidth;
28
+ const isScrollable = containerWidth > 0 && contentWidth > containerWidth + 1;
29
+ const visibleCount = (0, react_1.useMemo)(() => {
30
+ const maxVisible = Math.max(1, safeItemCount);
31
+ if (safeItemCount === 0)
32
+ return 1;
33
+ if (containerWidth <= 0 || stride <= 0)
34
+ return 1;
35
+ return clamp(Math.ceil(containerWidth / stride), 1, maxVisible);
36
+ }, [containerWidth, stride, safeItemCount]);
37
+ const maxStartIndex = (0, react_1.useMemo)(() => {
38
+ if (safeItemCount <= 0)
39
+ return 0;
40
+ return clamp(safeItemCount - visibleCount, 0, safeItemCount - 1);
41
+ }, [safeItemCount, visibleCount]);
42
+ (0, react_1.useEffect)(() => {
43
+ setActiveStartIndex(prev => clamp(prev, 0, maxStartIndex));
44
+ }, [maxStartIndex]);
45
+ (0, react_1.useEffect)(() => {
46
+ setActiveStartIndex(0);
47
+ }, [safeItemCount]);
48
+ const snapOffsets = (0, react_1.useMemo)(() => {
49
+ var _a;
50
+ if (safeItemCount === 0)
51
+ return [0];
52
+ if (containerWidth <= 0 || contentWidth <= 0 || stride <= 0)
53
+ return [0];
54
+ const maxScrollX = Math.max(0, contentWidth - containerWidth);
55
+ const offsets = [];
56
+ for (let index = 0; index <= maxStartIndex; index++) {
57
+ offsets.push(index * stride);
58
+ }
59
+ const last = (_a = offsets[offsets.length - 1]) !== null && _a !== void 0 ? _a : 0;
60
+ if (!nearlyEqual(last, maxScrollX))
61
+ offsets.push(maxScrollX);
62
+ return uniqueNearlyEqual(offsets);
63
+ }, [safeItemCount, containerWidth, contentWidth, stride, maxStartIndex]);
64
+ const onContainerLayout = (0, react_1.useCallback)((width) => {
65
+ setContainerWidth(width > 0 ? width : 0);
66
+ }, []);
67
+ const onContentSizeChange = (0, react_1.useCallback)((width) => {
68
+ setContentWidth(width > 0 ? width : 0);
69
+ }, []);
70
+ /**
71
+ * NOTE: This measures ONE item width (e.g. the first child) and assumes all
72
+ * items are the same width.
73
+ */
74
+ const onItemLayout = (0, react_1.useCallback)((width) => {
75
+ if (width > 0)
76
+ setItemWidth(width);
77
+ }, []);
78
+ const onMomentumEnd = (0, react_1.useCallback)((offsetX) => {
79
+ if (stride <= 0)
80
+ return;
81
+ const raw = Math.round(offsetX / stride);
82
+ const nextStart = clamp(raw, 0, maxStartIndex);
83
+ setActiveStartIndex(prev => (prev === nextStart ? prev : nextStart));
84
+ }, [stride, maxStartIndex]);
85
+ return {
86
+ snapOffsets,
87
+ isScrollable,
88
+ activeStartIndex,
89
+ visibleCount,
90
+ onContainerLayout,
91
+ onContentSizeChange,
92
+ onItemLayout,
93
+ onMomentumEnd,
94
+ };
95
+ }
@@ -1,4 +1,6 @@
1
1
  import { TouchableOpacityProps } from 'react-native';
2
+ import { InputProps } from '../Input/Input';
3
+ import { SelectOption } from './styled';
2
4
  type SelectOption = {
3
5
  label: string;
4
6
  value: string;
@@ -10,585 +12,9 @@ export type SelectProps = {
10
12
  noOptionMessage?: string;
11
13
  hasError?: boolean;
12
14
  onSelected?(value: SelectOption): void;
15
+ size?: 'medium' | 'small';
13
16
  testID?: string;
14
17
  ref?: React.RefObject<TouchableOpacityProps | null>;
15
- };
16
- declare const SelectOption: import("styled-components").StyledComponent<typeof import("react-native").TouchableOpacity, {
17
- color: {
18
- neutral: {
19
- "20": string;
20
- "30": string;
21
- "40": string;
22
- "50": string;
23
- "60": string;
24
- "70": string;
25
- "80": string;
26
- white: string;
27
- black: string;
28
- };
29
- red: {
30
- "20": string;
31
- "30": string;
32
- "40": string;
33
- "50": string;
34
- "60": string;
35
- "70": string;
36
- "80": string;
37
- };
38
- orange: {
39
- "20": string;
40
- "30": string;
41
- "40": string;
42
- "50": string;
43
- "60": string;
44
- "70": string;
45
- };
46
- yellow: {
47
- "70": string;
48
- "80": string;
49
- };
50
- green: {
51
- "20": string;
52
- "30": string;
53
- "40": string;
54
- "50": string;
55
- "56": string;
56
- "60": string;
57
- "70": string;
58
- "80": string;
59
- "90": string;
60
- };
61
- blue: {
62
- "20": string;
63
- "30": string;
64
- "40": string;
65
- "50": string;
66
- "60": string;
67
- "70": string;
68
- };
69
- alert: {
70
- success: string;
71
- successTint: string;
72
- warning: string;
73
- warningTint: string;
74
- error: string;
75
- errorTint: string;
76
- info: string;
77
- infoTint: string;
78
- neutral: string;
79
- neutralTint: string;
80
- border: string;
81
- };
82
- input: {
83
- borderDim: string;
84
- };
85
- brand: {
86
- brand: string;
87
- dark: string;
88
- dim: string;
89
- bold: string;
90
- bright: string;
91
- gradientFrom: string;
92
- gradientTo: string;
93
- onBrand: string;
94
- onBrandVariant: string;
95
- aiGradientFrom: string;
96
- aiGradientTo: string;
97
- fixed: {
98
- brand: string;
99
- dark: string;
100
- dim: string;
101
- bold: string;
102
- bright: string;
103
- onBrand: string;
104
- onBrandVariant: string;
105
- };
106
- };
107
- outline: {
108
- outer: string;
109
- inner: string;
110
- };
111
- surface: {
112
- surface: string;
113
- bright: string;
114
- dim: string;
115
- onSurface: string;
116
- onSurfaceVariant: string;
117
- border: string;
118
- borderDim: string;
119
- link: string;
120
- electricity: string;
121
- gas: string;
122
- fadeFrom: string;
123
- fadeTo: string;
124
- fixed: {
125
- onSurface: string;
126
- bright: string;
127
- };
128
- };
129
- };
130
- transition: {
131
- duration: {
132
- fast: number;
133
- medium: number;
134
- slow: number;
135
- };
136
- };
137
- unit: {
138
- "0": number;
139
- "25": number;
140
- "50": number;
141
- "100": number;
142
- "200": number;
143
- "300": number;
144
- "350": number;
145
- "400": number;
146
- "450": number;
147
- "500": number;
148
- "550": number;
149
- "600": number;
150
- "700": number;
151
- "800": number;
152
- "900": number;
153
- "1000": number;
154
- "1100": number;
155
- "1200": number;
156
- "1300": number;
157
- "1400": number;
158
- "1500": number;
159
- "1600": number;
160
- "1800": number;
161
- "2000": number;
162
- "2400": number;
163
- "3000": number;
164
- "3500": number;
165
- };
166
- border: {
167
- radius: {
168
- xs: number;
169
- sm: number;
170
- md: number;
171
- lg: number;
172
- xl: number;
173
- "2xl": number;
174
- "3xl": number;
175
- };
176
- width: {
177
- sm: number;
178
- md: number;
179
- lg: number;
180
- };
181
- };
182
- breakpoint: {
183
- xsmall: number;
184
- small: number;
185
- medium: number;
186
- large: number;
187
- };
188
- native: {
189
- font: {
190
- family: {
191
- black: string;
192
- book: string;
193
- bold: string;
194
- };
195
- };
196
- };
197
- web: {
198
- font: {
199
- family: string;
200
- };
201
- };
202
- font: {
203
- letterSpacing: {
204
- d1: {
205
- mediaQuery: {
206
- sm: number;
207
- lg: number;
208
- };
209
- };
210
- d2: {
211
- mediaQuery: {
212
- sm: number;
213
- lg: number;
214
- };
215
- };
216
- d3: {
217
- mediaQuery: {
218
- sm: number;
219
- lg: number;
220
- };
221
- };
222
- d4: {
223
- mediaQuery: {
224
- sm: number;
225
- lg: number;
226
- };
227
- };
228
- "4xl": {
229
- mediaQuery: {
230
- sm: number;
231
- lg: number;
232
- };
233
- };
234
- "3xl": {
235
- mediaQuery: {
236
- sm: number;
237
- lg: number;
238
- };
239
- };
240
- "2xl": {
241
- mediaQuery: {
242
- sm: number;
243
- lg: number;
244
- };
245
- };
246
- xl: {
247
- mediaQuery: {
248
- sm: number;
249
- lg: number;
250
- };
251
- };
252
- lg: {
253
- mediaQuery: {
254
- sm: number;
255
- lg: number;
256
- };
257
- };
258
- md: {
259
- mediaQuery: {
260
- sm: number;
261
- lg: number;
262
- };
263
- };
264
- sm: {
265
- mediaQuery: {
266
- sm: number;
267
- lg: number;
268
- };
269
- };
270
- xs: {
271
- mediaQuery: {
272
- sm: number;
273
- lg: number;
274
- };
275
- };
276
- };
277
- lineHeight: {
278
- d1: {
279
- mediaQuery: {
280
- sm: number;
281
- lg: number;
282
- };
283
- };
284
- d2: {
285
- mediaQuery: {
286
- sm: number;
287
- lg: number;
288
- };
289
- };
290
- d3: {
291
- mediaQuery: {
292
- sm: number;
293
- lg: number;
294
- };
295
- };
296
- d4: {
297
- mediaQuery: {
298
- sm: number;
299
- lg: number;
300
- };
301
- };
302
- "4xl": {
303
- mediaQuery: {
304
- sm: number;
305
- lg: number;
306
- };
307
- };
308
- "3xl": {
309
- mediaQuery: {
310
- sm: number;
311
- lg: number;
312
- };
313
- };
314
- "2xl": {
315
- mediaQuery: {
316
- sm: number;
317
- lg: number;
318
- };
319
- };
320
- xl: {
321
- mediaQuery: {
322
- sm: number;
323
- lg: number;
324
- };
325
- };
326
- lg: {
327
- mediaQuery: {
328
- sm: number;
329
- lg: number;
330
- };
331
- };
332
- md: {
333
- mediaQuery: {
334
- sm: number;
335
- lg: number;
336
- };
337
- };
338
- sm: {
339
- mediaQuery: {
340
- sm: number;
341
- lg: number;
342
- };
343
- };
344
- xs: {
345
- mediaQuery: {
346
- sm: number;
347
- lg: number;
348
- };
349
- };
350
- };
351
- paragraphSpace: {
352
- d1: {
353
- mediaQuery: {
354
- sm: number;
355
- lg: number;
356
- };
357
- };
358
- d2: {
359
- mediaQuery: {
360
- sm: number;
361
- lg: number;
362
- };
363
- };
364
- d3: {
365
- mediaQuery: {
366
- sm: number;
367
- lg: number;
368
- };
369
- };
370
- d4: {
371
- mediaQuery: {
372
- sm: number;
373
- lg: number;
374
- };
375
- };
376
- "4xl": {
377
- mediaQuery: {
378
- sm: number;
379
- lg: number;
380
- };
381
- };
382
- "3xl": {
383
- mediaQuery: {
384
- sm: number;
385
- lg: number;
386
- };
387
- };
388
- "2xl": {
389
- mediaQuery: {
390
- sm: number;
391
- lg: number;
392
- };
393
- };
394
- xl: {
395
- mediaQuery: {
396
- sm: number;
397
- lg: number;
398
- };
399
- };
400
- lg: {
401
- mediaQuery: {
402
- sm: number;
403
- lg: number;
404
- };
405
- };
406
- md: {
407
- mediaQuery: {
408
- sm: number;
409
- lg: number;
410
- };
411
- };
412
- sm: {
413
- mediaQuery: {
414
- sm: number;
415
- lg: number;
416
- };
417
- };
418
- xs: {
419
- mediaQuery: {
420
- sm: number;
421
- lg: number;
422
- };
423
- };
424
- };
425
- size: {
426
- d1: {
427
- mediaQuery: {
428
- sm: number;
429
- lg: number;
430
- };
431
- };
432
- d2: {
433
- mediaQuery: {
434
- sm: number;
435
- lg: number;
436
- };
437
- };
438
- d3: {
439
- mediaQuery: {
440
- sm: number;
441
- lg: number;
442
- };
443
- };
444
- d4: {
445
- mediaQuery: {
446
- sm: number;
447
- lg: number;
448
- };
449
- };
450
- "4xl": {
451
- mediaQuery: {
452
- sm: number;
453
- lg: number;
454
- };
455
- };
456
- "3xl": {
457
- mediaQuery: {
458
- sm: number;
459
- lg: number;
460
- };
461
- };
462
- "2xl": {
463
- mediaQuery: {
464
- sm: number;
465
- lg: number;
466
- };
467
- };
468
- xl: {
469
- mediaQuery: {
470
- sm: number;
471
- lg: number;
472
- };
473
- };
474
- lg: {
475
- mediaQuery: {
476
- sm: number;
477
- lg: number;
478
- };
479
- };
480
- md: {
481
- mediaQuery: {
482
- sm: number;
483
- lg: number;
484
- };
485
- };
486
- sm: {
487
- mediaQuery: {
488
- sm: number;
489
- lg: number;
490
- };
491
- };
492
- xs: {
493
- mediaQuery: {
494
- sm: number;
495
- lg: number;
496
- };
497
- };
498
- };
499
- weight: {
500
- book: number;
501
- bold: number;
502
- black: number;
503
- };
504
- };
505
- mediaQuery: {
506
- xsmall: number;
507
- small: number;
508
- medium: number;
509
- large: number;
510
- };
511
- customMediaQuery: {
512
- "xsmall-and-up": number;
513
- "small-and-up": number;
514
- "medium-and-up": number;
515
- "large-and-up": number;
516
- };
517
- opacity: {
518
- solid: number;
519
- translucent: number;
520
- transparent: number;
521
- };
522
- space: {
523
- "0": number;
524
- "25": number;
525
- "50": number;
526
- "100": number;
527
- "150": number;
528
- "200": number;
529
- "250": number;
530
- "300": number;
531
- "350": number;
532
- "400": number;
533
- "450": number;
534
- "500": number;
535
- "550": number;
536
- "600": number;
537
- "700": number;
538
- "800": number;
539
- "900": number;
540
- "1000": number;
541
- "1100": number;
542
- "1200": number;
543
- "1300": number;
544
- "1400": number;
545
- "1500": number;
546
- "1600": number;
547
- "1800": number;
548
- "2000": number;
549
- "2400": number;
550
- "3000": number;
551
- "3500": number;
552
- base: number;
553
- };
554
- button: {
555
- color: {
556
- focus: {
557
- blue: string;
558
- white: string;
559
- };
560
- };
561
- surface: {
562
- color: {
563
- fg: string;
564
- bg: string;
565
- bgVariant: string;
566
- bgHover: string;
567
- fgInverted: string;
568
- bgInverted: string;
569
- bgInvertedHover: string;
570
- };
571
- };
572
- destructive: {
573
- color: {
574
- fg: string;
575
- bg: string;
576
- bgHover: string;
577
- };
578
- };
579
- };
580
- input: {
581
- color: {
582
- label: string;
583
- border: string;
584
- borderError: string;
585
- hint: string;
586
- selected: string;
587
- selectedTint: string;
588
- };
589
- };
590
- }, {
591
- isLastOption: boolean;
592
- }, never>;
593
- export declare const Select: ({ options, defaultSelected, noOptionMessage, onSelected, hasError, testID, ref, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
18
+ } & Pick<InputProps, 'selected'>;
19
+ export declare const Select: ({ options, defaultSelected, noOptionMessage, onSelected, hasError, selected, size, testID, ref, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
594
20
  export {};