@webority/mobile-ui 0.8.2 → 0.9.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 (315) hide show
  1. package/lib/commonjs/components/Accordion/Accordion.js +1 -1
  2. package/lib/commonjs/components/AnimatePresence/AnimatePresence.js +1 -1
  3. package/lib/commonjs/components/AppBar/AppBar.js +1 -1
  4. package/lib/commonjs/components/AppIcon/AppIcon.js +1 -1
  5. package/lib/commonjs/components/AsyncBlock/AsyncBlock.js +1 -1
  6. package/lib/commonjs/components/Autocomplete/Autocomplete.js +1 -1
  7. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  8. package/lib/commonjs/components/Badge/Badge.js +1 -1
  9. package/lib/commonjs/components/Banner/Banner.js +1 -1
  10. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  11. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  12. package/lib/commonjs/components/Box/Box.js +1 -1
  13. package/lib/commonjs/components/Button/Button.js +1 -1
  14. package/lib/commonjs/components/Calendar/Calendar.js +1 -0
  15. package/lib/commonjs/components/Calendar/CalendarDay.js +1 -0
  16. package/lib/commonjs/components/Calendar/calendarDates.js +1 -0
  17. package/lib/commonjs/components/Calendar/calendarStyles.js +1 -0
  18. package/lib/commonjs/components/Calendar/index.js +1 -0
  19. package/lib/commonjs/components/Card/Card.js +1 -1
  20. package/lib/commonjs/components/Carousel/Carousel.js +1 -1
  21. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  22. package/lib/commonjs/components/Chip/Chip.js +1 -1
  23. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -1
  24. package/lib/commonjs/components/Confetti/Confetti.js +1 -1
  25. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  26. package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -1
  27. package/lib/commonjs/components/Descriptions/Descriptions.js +1 -1
  28. package/lib/commonjs/components/Dialog/Dialog.js +1 -1
  29. package/lib/commonjs/components/Drawer/Drawer.js +1 -1
  30. package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
  31. package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js +1 -1
  32. package/lib/commonjs/components/ErrorBoundary/withErrorBoundary.js +1 -1
  33. package/lib/commonjs/components/FieldBase/Chevron.js +1 -1
  34. package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
  35. package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
  36. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
  37. package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
  38. package/lib/commonjs/components/FormField/FormField.js +1 -1
  39. package/lib/commonjs/components/IconButton/IconButton.js +1 -1
  40. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  41. package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
  42. package/lib/commonjs/components/Input/Input.js +1 -1
  43. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  44. package/lib/commonjs/components/ListItem/ListItem.js +1 -1
  45. package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.js +1 -1
  46. package/lib/commonjs/components/Markdown/Markdown.js +1 -1
  47. package/lib/commonjs/components/Modal/Modal.js +1 -1
  48. package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
  49. package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
  50. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  51. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  52. package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -1
  53. package/lib/commonjs/components/Radio/Radio.js +1 -1
  54. package/lib/commonjs/components/Radio/RadioDot.js +1 -1
  55. package/lib/commonjs/components/Radio/RadioGroup.js +1 -1
  56. package/lib/commonjs/components/Rating/Rating.js +1 -1
  57. package/lib/commonjs/components/Repeater/Repeater.js +1 -1
  58. package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -1
  59. package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
  60. package/lib/commonjs/components/SectionHeader/SectionHeader.js +1 -1
  61. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
  62. package/lib/commonjs/components/Select/Select.js +1 -1
  63. package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
  64. package/lib/commonjs/components/Skeleton/SkeletonClock.js +1 -1
  65. package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
  66. package/lib/commonjs/components/Skeleton/SkeletonProvider.js +1 -1
  67. package/lib/commonjs/components/Skeleton/SkeletonSkip.js +1 -1
  68. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
  69. package/lib/commonjs/components/Slider/Slider.js +1 -1
  70. package/lib/commonjs/components/SliderField/SliderField.js +1 -1
  71. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  72. package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -1
  73. package/lib/commonjs/components/Stepper/Stepper.js +1 -1
  74. package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
  75. package/lib/commonjs/components/Switch/Switch.js +1 -1
  76. package/lib/commonjs/components/Tabs/Tabs.js +1 -1
  77. package/lib/commonjs/components/Text/Text.js +1 -1
  78. package/lib/commonjs/components/TimePicker/TimePicker.js +1 -1
  79. package/lib/commonjs/components/Timeline/Timeline.js +1 -1
  80. package/lib/commonjs/components/Toast/Toast.js +1 -1
  81. package/lib/commonjs/components/Toast/ToastProvider.js +1 -1
  82. package/lib/commonjs/components/ZoomableImage/ZoomableImage.js +1 -1
  83. package/lib/commonjs/components/index.js +1 -1
  84. package/lib/commonjs/form/FormContext.js +1 -1
  85. package/lib/commonjs/network/NetworkStatusBanner.js +1 -1
  86. package/lib/commonjs/theme/ThemeContext.js +1 -1
  87. package/lib/commonjs/theme/merge.js +1 -1
  88. package/lib/commonjs/theme/textStyle.js +1 -1
  89. package/lib/commonjs/theme/tokens.js +1 -1
  90. package/lib/commonjs/theme/toneInk.js +1 -0
  91. package/lib/commonjs/utils/ariaState.js +1 -0
  92. package/lib/module/components/Accordion/Accordion.js +1 -1
  93. package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -1
  94. package/lib/module/components/AppBar/AppBar.js +1 -1
  95. package/lib/module/components/AppIcon/AppIcon.js +1 -1
  96. package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -1
  97. package/lib/module/components/Autocomplete/Autocomplete.js +1 -1
  98. package/lib/module/components/Avatar/Avatar.js +1 -1
  99. package/lib/module/components/Badge/Badge.js +1 -1
  100. package/lib/module/components/Banner/Banner.js +1 -1
  101. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  102. package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
  103. package/lib/module/components/Box/Box.js +1 -1
  104. package/lib/module/components/Button/Button.js +1 -1
  105. package/lib/module/components/Calendar/Calendar.js +1 -0
  106. package/lib/module/components/Calendar/CalendarDay.js +1 -0
  107. package/lib/module/components/Calendar/calendarDates.js +1 -0
  108. package/lib/module/components/Calendar/calendarStyles.js +1 -0
  109. package/lib/module/components/Calendar/index.js +1 -0
  110. package/lib/module/components/Card/Card.js +1 -1
  111. package/lib/module/components/Carousel/Carousel.js +1 -1
  112. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  113. package/lib/module/components/Chip/Chip.js +1 -1
  114. package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
  115. package/lib/module/components/Confetti/Confetti.js +1 -1
  116. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  117. package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
  118. package/lib/module/components/Descriptions/Descriptions.js +1 -1
  119. package/lib/module/components/Dialog/Dialog.js +1 -1
  120. package/lib/module/components/Drawer/Drawer.js +1 -1
  121. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  122. package/lib/module/components/ErrorBoundary/ErrorBoundary.js +1 -1
  123. package/lib/module/components/ErrorBoundary/withErrorBoundary.js +1 -1
  124. package/lib/module/components/FieldBase/Chevron.js +1 -1
  125. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  126. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  127. package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
  128. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
  129. package/lib/module/components/FormField/FormField.js +1 -1
  130. package/lib/module/components/IconButton/IconButton.js +1 -1
  131. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  132. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  133. package/lib/module/components/Input/Input.js +1 -1
  134. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  135. package/lib/module/components/ListItem/ListItem.js +1 -1
  136. package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -1
  137. package/lib/module/components/Markdown/Markdown.js +1 -1
  138. package/lib/module/components/Modal/Modal.js +1 -1
  139. package/lib/module/components/NumberInput/NumberInput.js +1 -1
  140. package/lib/module/components/OTPInput/OTPInput.js +1 -1
  141. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  142. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  143. package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
  144. package/lib/module/components/Radio/Radio.js +1 -1
  145. package/lib/module/components/Radio/RadioDot.js +1 -1
  146. package/lib/module/components/Radio/RadioGroup.js +1 -1
  147. package/lib/module/components/Rating/Rating.js +1 -1
  148. package/lib/module/components/Repeater/Repeater.js +1 -1
  149. package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
  150. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  151. package/lib/module/components/SectionHeader/SectionHeader.js +1 -1
  152. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  153. package/lib/module/components/Select/Select.js +1 -1
  154. package/lib/module/components/Skeleton/Skeleton.js +1 -1
  155. package/lib/module/components/Skeleton/SkeletonClock.js +1 -1
  156. package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
  157. package/lib/module/components/Skeleton/SkeletonProvider.js +1 -1
  158. package/lib/module/components/Skeleton/SkeletonSkip.js +1 -1
  159. package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
  160. package/lib/module/components/Slider/Slider.js +1 -1
  161. package/lib/module/components/SliderField/SliderField.js +1 -1
  162. package/lib/module/components/Spinner/Spinner.js +1 -1
  163. package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
  164. package/lib/module/components/Stepper/Stepper.js +1 -1
  165. package/lib/module/components/Swipeable/Swipeable.js +1 -1
  166. package/lib/module/components/Switch/Switch.js +1 -1
  167. package/lib/module/components/Tabs/Tabs.js +1 -1
  168. package/lib/module/components/Text/Text.js +1 -1
  169. package/lib/module/components/TimePicker/TimePicker.js +1 -1
  170. package/lib/module/components/Timeline/Timeline.js +1 -1
  171. package/lib/module/components/Toast/Toast.js +1 -1
  172. package/lib/module/components/Toast/ToastProvider.js +1 -1
  173. package/lib/module/components/ZoomableImage/ZoomableImage.js +1 -1
  174. package/lib/module/components/index.js +1 -1
  175. package/lib/module/form/FormContext.js +1 -1
  176. package/lib/module/network/NetworkStatusBanner.js +1 -1
  177. package/lib/module/theme/ThemeContext.js +1 -1
  178. package/lib/module/theme/merge.js +1 -1
  179. package/lib/module/theme/textStyle.js +1 -1
  180. package/lib/module/theme/tokens.js +1 -1
  181. package/lib/module/theme/toneInk.js +1 -0
  182. package/lib/module/utils/ariaState.js +1 -0
  183. package/lib/typescript/commonjs/components/Accordion/Accordion.d.ts +1 -1
  184. package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.d.ts +1 -1
  185. package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +1 -1
  186. package/lib/typescript/commonjs/components/AppIcon/AppIcon.d.ts +1 -1
  187. package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.d.ts +1 -1
  188. package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +2 -2
  189. package/lib/typescript/commonjs/components/Badge/Badge.d.ts +1 -1
  190. package/lib/typescript/commonjs/components/Banner/Banner.d.ts +1 -1
  191. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +6 -0
  192. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +1 -1
  193. package/lib/typescript/commonjs/components/Box/Box.d.ts +1 -1
  194. package/lib/typescript/commonjs/components/Calendar/Calendar.d.ts +70 -0
  195. package/lib/typescript/commonjs/components/Calendar/CalendarDay.d.ts +30 -0
  196. package/lib/typescript/commonjs/components/Calendar/calendarDates.d.ts +24 -0
  197. package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +125 -0
  198. package/lib/typescript/commonjs/components/Calendar/index.d.ts +4 -0
  199. package/lib/typescript/commonjs/components/Carousel/Carousel.d.ts +1 -1
  200. package/lib/typescript/commonjs/components/Chip/Chip.d.ts +1 -1
  201. package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.d.ts +11 -1
  202. package/lib/typescript/commonjs/components/Confetti/Confetti.d.ts +1 -1
  203. package/lib/typescript/commonjs/components/DatePicker/DatePicker.d.ts +1 -1
  204. package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.d.ts +7 -1
  205. package/lib/typescript/commonjs/components/Descriptions/Descriptions.d.ts +1 -1
  206. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +1 -1
  207. package/lib/typescript/commonjs/components/Drawer/Drawer.d.ts +1 -1
  208. package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +1 -1
  209. package/lib/typescript/commonjs/components/ErrorBoundary/withErrorBoundary.d.ts +1 -1
  210. package/lib/typescript/commonjs/components/FieldBase/Chevron.d.ts +1 -1
  211. package/lib/typescript/commonjs/components/FilePicker/FilePicker.d.ts +1 -1
  212. package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +1 -1
  213. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +1 -1
  214. package/lib/typescript/commonjs/components/ListItem/ListItem.d.ts +24 -0
  215. package/lib/typescript/commonjs/components/ListItem/index.d.ts +1 -1
  216. package/lib/typescript/commonjs/components/LoaderOverlay/LoaderOverlay.d.ts +1 -1
  217. package/lib/typescript/commonjs/components/Markdown/Markdown.d.ts +1 -1
  218. package/lib/typescript/commonjs/components/Modal/Modal.d.ts +1 -1
  219. package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.d.ts +1 -1
  220. package/lib/typescript/commonjs/components/Radio/RadioDot.d.ts +1 -1
  221. package/lib/typescript/commonjs/components/Radio/RadioGroup.d.ts +1 -1
  222. package/lib/typescript/commonjs/components/Rating/Rating.d.ts +1 -1
  223. package/lib/typescript/commonjs/components/Repeater/Repeater.d.ts +1 -1
  224. package/lib/typescript/commonjs/components/RichTextEditor/RichTextEditor.d.ts +1 -1
  225. package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.d.ts +1 -1
  226. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +7 -0
  227. package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +1 -1
  228. package/lib/typescript/commonjs/components/Skeleton/SkeletonClock.d.ts +1 -1
  229. package/lib/typescript/commonjs/components/Skeleton/SkeletonProvider.d.ts +1 -1
  230. package/lib/typescript/commonjs/components/Skeleton/SkeletonSkip.d.ts +1 -1
  231. package/lib/typescript/commonjs/components/Spinner/Spinner.d.ts +1 -1
  232. package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.d.ts +1 -1
  233. package/lib/typescript/commonjs/components/Stepper/Stepper.d.ts +1 -1
  234. package/lib/typescript/commonjs/components/Swipeable/Swipeable.d.ts +1 -1
  235. package/lib/typescript/commonjs/components/Text/Text.d.ts +1 -1
  236. package/lib/typescript/commonjs/components/TimePicker/TimePicker.d.ts +1 -1
  237. package/lib/typescript/commonjs/components/Timeline/Timeline.d.ts +1 -1
  238. package/lib/typescript/commonjs/components/Toast/Toast.d.ts +1 -1
  239. package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +1 -1
  240. package/lib/typescript/commonjs/components/ZoomableImage/ZoomableImage.d.ts +1 -1
  241. package/lib/typescript/commonjs/components/index.d.ts +3 -1
  242. package/lib/typescript/commonjs/form/FormContext.d.ts +1 -1
  243. package/lib/typescript/commonjs/network/NetworkStatusBanner.d.ts +1 -1
  244. package/lib/typescript/commonjs/theme/ThemeContext.d.ts +1 -1
  245. package/lib/typescript/commonjs/theme/textStyle.d.ts +4 -1
  246. package/lib/typescript/commonjs/theme/toneInk.d.ts +38 -0
  247. package/lib/typescript/commonjs/theme/types.d.ts +37 -4
  248. package/lib/typescript/commonjs/utils/ariaState.d.ts +10 -0
  249. package/lib/typescript/module/components/Accordion/Accordion.d.ts +1 -1
  250. package/lib/typescript/module/components/AnimatePresence/AnimatePresence.d.ts +1 -1
  251. package/lib/typescript/module/components/AppBar/AppBar.d.ts +1 -1
  252. package/lib/typescript/module/components/AppIcon/AppIcon.d.ts +1 -1
  253. package/lib/typescript/module/components/AsyncBlock/AsyncBlock.d.ts +1 -1
  254. package/lib/typescript/module/components/Avatar/Avatar.d.ts +2 -2
  255. package/lib/typescript/module/components/Badge/Badge.d.ts +1 -1
  256. package/lib/typescript/module/components/Banner/Banner.d.ts +1 -1
  257. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +6 -0
  258. package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +1 -1
  259. package/lib/typescript/module/components/Box/Box.d.ts +1 -1
  260. package/lib/typescript/module/components/Calendar/Calendar.d.ts +70 -0
  261. package/lib/typescript/module/components/Calendar/CalendarDay.d.ts +30 -0
  262. package/lib/typescript/module/components/Calendar/calendarDates.d.ts +24 -0
  263. package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +125 -0
  264. package/lib/typescript/module/components/Calendar/index.d.ts +4 -0
  265. package/lib/typescript/module/components/Carousel/Carousel.d.ts +1 -1
  266. package/lib/typescript/module/components/Chip/Chip.d.ts +1 -1
  267. package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.d.ts +11 -1
  268. package/lib/typescript/module/components/Confetti/Confetti.d.ts +1 -1
  269. package/lib/typescript/module/components/DatePicker/DatePicker.d.ts +1 -1
  270. package/lib/typescript/module/components/DateRangePicker/DateRangePicker.d.ts +7 -1
  271. package/lib/typescript/module/components/Descriptions/Descriptions.d.ts +1 -1
  272. package/lib/typescript/module/components/Dialog/Dialog.d.ts +1 -1
  273. package/lib/typescript/module/components/Drawer/Drawer.d.ts +1 -1
  274. package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +1 -1
  275. package/lib/typescript/module/components/ErrorBoundary/withErrorBoundary.d.ts +1 -1
  276. package/lib/typescript/module/components/FieldBase/Chevron.d.ts +1 -1
  277. package/lib/typescript/module/components/FilePicker/FilePicker.d.ts +1 -1
  278. package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +1 -1
  279. package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +1 -1
  280. package/lib/typescript/module/components/ListItem/ListItem.d.ts +24 -0
  281. package/lib/typescript/module/components/ListItem/index.d.ts +1 -1
  282. package/lib/typescript/module/components/LoaderOverlay/LoaderOverlay.d.ts +1 -1
  283. package/lib/typescript/module/components/Markdown/Markdown.d.ts +1 -1
  284. package/lib/typescript/module/components/Modal/Modal.d.ts +1 -1
  285. package/lib/typescript/module/components/ProfilePicker/ProfilePicker.d.ts +1 -1
  286. package/lib/typescript/module/components/Radio/RadioDot.d.ts +1 -1
  287. package/lib/typescript/module/components/Radio/RadioGroup.d.ts +1 -1
  288. package/lib/typescript/module/components/Rating/Rating.d.ts +1 -1
  289. package/lib/typescript/module/components/Repeater/Repeater.d.ts +1 -1
  290. package/lib/typescript/module/components/RichTextEditor/RichTextEditor.d.ts +1 -1
  291. package/lib/typescript/module/components/SectionHeader/SectionHeader.d.ts +1 -1
  292. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +7 -0
  293. package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +1 -1
  294. package/lib/typescript/module/components/Skeleton/SkeletonClock.d.ts +1 -1
  295. package/lib/typescript/module/components/Skeleton/SkeletonProvider.d.ts +1 -1
  296. package/lib/typescript/module/components/Skeleton/SkeletonSkip.d.ts +1 -1
  297. package/lib/typescript/module/components/Spinner/Spinner.d.ts +1 -1
  298. package/lib/typescript/module/components/StatusBadge/StatusBadge.d.ts +1 -1
  299. package/lib/typescript/module/components/Stepper/Stepper.d.ts +1 -1
  300. package/lib/typescript/module/components/Swipeable/Swipeable.d.ts +1 -1
  301. package/lib/typescript/module/components/Text/Text.d.ts +1 -1
  302. package/lib/typescript/module/components/TimePicker/TimePicker.d.ts +1 -1
  303. package/lib/typescript/module/components/Timeline/Timeline.d.ts +1 -1
  304. package/lib/typescript/module/components/Toast/Toast.d.ts +1 -1
  305. package/lib/typescript/module/components/Toast/ToastProvider.d.ts +1 -1
  306. package/lib/typescript/module/components/ZoomableImage/ZoomableImage.d.ts +1 -1
  307. package/lib/typescript/module/components/index.d.ts +3 -1
  308. package/lib/typescript/module/form/FormContext.d.ts +1 -1
  309. package/lib/typescript/module/network/NetworkStatusBanner.d.ts +1 -1
  310. package/lib/typescript/module/theme/ThemeContext.d.ts +1 -1
  311. package/lib/typescript/module/theme/textStyle.d.ts +4 -1
  312. package/lib/typescript/module/theme/toneInk.d.ts +38 -0
  313. package/lib/typescript/module/theme/types.d.ts +37 -4
  314. package/lib/typescript/module/utils/ariaState.d.ts +10 -0
  315. package/package.json +3 -3
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useSkeletonClock=exports.SkeletonClockProvider=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}const SHIMMER_DURATION={slow:1800,normal:1200,fast:800},PULSE_DURATION=1e3,SkeletonClockContext=(0,_react.createContext)(null),SkeletonClockProvider=({speed:e,enabled:t,variant:r,children:a})=>{const n=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,i=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current;(0,_react.useEffect)(()=>{if(!t)return n.setValue(0),void i.setValue(.5);const r=_reactNative.Animated.loop(_reactNative.Animated.timing(n,{toValue:1,duration:SHIMMER_DURATION[e],easing:_reactNative.Easing.linear,useNativeDriver:!0})),a=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(i,{toValue:1,duration:500,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(i,{toValue:0,duration:500,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0})]));return r.start(),a.start(),()=>{r.stop(),a.stop()}},[e,t,n,i]);const o=(0,_react.useMemo)(()=>({shimmer:n,pulse:i,enabled:t}),[n,i,t]);return(0,_jsxRuntime.jsx)(SkeletonClockContext.Provider,{value:o,children:a})};exports.SkeletonClockProvider=SkeletonClockProvider,SkeletonClockProvider.displayName="SkeletonClockProvider";const useSkeletonClock=()=>{const e=(0,_react.useContext)(SkeletonClockContext);return e||fallbackClock};exports.useSkeletonClock=useSkeletonClock;const fallbackClock={shimmer:(0,_index.createAnimatedValue)(0),pulse:(0,_index.createAnimatedValue)(.5),enabled:!1};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useSkeletonClock=exports.SkeletonClockProvider=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const SHIMMER_DURATION={slow:1800,normal:1200,fast:800},PULSE_DURATION=1e3,SkeletonClockContext=(0,_react.createContext)(null),SkeletonClockProvider=({speed:e,enabled:t,variant:a,children:r})=>{const i=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,n=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current;(0,_react.useEffect)(()=>{if(!t)return i.setValue(0),void n.setValue(.5);const a=_reactNative.Animated.loop(_reactNative.Animated.timing(i,{toValue:1,duration:SHIMMER_DURATION[e],easing:_reactNative.Easing.linear,useNativeDriver:!0})),r=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(n,{toValue:1,duration:500,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(n,{toValue:0,duration:500,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0})]));return a.start(),r.start(),()=>{a.stop(),r.stop()}},[e,t,i,n]);const o=(0,_react.useMemo)(()=>({shimmer:i,pulse:n,enabled:t}),[i,n,t]);return(0,_jsxRuntime.jsx)(SkeletonClockContext.Provider,{value:o,children:r})};exports.SkeletonClockProvider=SkeletonClockProvider,SkeletonClockProvider.displayName="SkeletonClockProvider";const useSkeletonClock=()=>{const e=(0,_react.useContext)(SkeletonClockContext);return e||fallbackClock};exports.useSkeletonClock=useSkeletonClock;const fallbackClock={shimmer:(0,_index.createAnimatedValue)(0),pulse:(0,_index.createAnimatedValue)(.5),enabled:!1};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonContent=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Skeleton=require("./Skeleton.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_SkeletonSkip=require("./SkeletonSkip.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,o,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?n(s,t,o):s[t]=e[t]);return s})(e,t)}const flattenStyle=e=>{if(!e)return{};return _reactNative.StyleSheet.flatten(e)??{}},resolveWidth=(e,t)=>"number"==typeof e?e:"string"!=typeof e||"auto"!==e&&"100%"!==e&&!/^\d+(\.\d+)?%$/.test(e)?t:e,resolveRadius=(e,t)=>"number"==typeof e?e:t,skeletonizeNode=(e,t,r,i,n="r")=>{if(null==e||"boolean"==typeof e)return null;if("string"==typeof e||"number"==typeof e)return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:"60%",height:14,variant:t,speed:r,colors:i},`${n}-text`);if(Array.isArray(e))return _react.Children.map(e,(e,o)=>skeletonizeNode(e,t,r,i,`${n}-${o}`));if(!(0,_react.isValidElement)(e))return null;const o=e,s=o.props??{},l=o.type;if(l===_SkeletonSkip.SkeletonSkip)return(0,_react.cloneElement)(o,{key:`${n}-skip`});if("function"==typeof l||"object"==typeof l){const e=l.Skeleton;if(e){const t=e;return(0,_jsxRuntime.jsx)(t,{...s},`${n}-self`)}}if(l===_reactNative.Image){const e=flattenStyle(s.style),o=resolveWidth(e.width,"100%"),l="number"==typeof e.height?e.height:120,a=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:o,height:l,radius:a,variant:t,speed:r,colors:i,style:{margin:"number"==typeof e.margin?e.margin:void 0}},`${n}-img`)}if(l===_reactNative.Text){const e=flattenStyle(s.style),o="number"==typeof e.fontSize?e.fontSize:14,l=resolveWidth(e.width,"85%");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:l,height:Math.round(1.15*o),variant:t,speed:r,colors:i,style:{marginVertical:2}},`${n}-txt`)}if(null!=s.children)return(0,_react.cloneElement)(o,{key:`${n}-w`},skeletonizeNode(s.children,t,r,i,`${n}-c`));if(l===_reactNative.View){const e=flattenStyle(s.style);if(null!=e.width||null!=e.height){const o=resolveWidth(e.width,"100%"),s="number"==typeof e.height?e.height:20,l=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:o,height:s,radius:l,variant:t,speed:r,colors:i},`${n}-vw`)}}return(0,_react.cloneElement)(o,{key:`${n}-leaf`})},SkeletonContent=({loading:e,children:t,placeholder:r,variant:i,speed:n,count:o=1,colors:s,fadeDuration:l,style:a,testID:u})=>{const c=(0,_SkeletonProvider.useSkeletonDefaults)(),d=l??c.fadeDuration??300,f=(0,_react.useRef)(e),p=(0,_react.useRef)((0,_index.createAnimatedValue)(e?0:1)).current;if((0,_react.useEffect)(()=>{let t;return f.current&&!e?(p.setValue(0),t=_reactNative.Animated.timing(p,{toValue:1,duration:d,useNativeDriver:!0}),t.start()):!f.current&&e&&p.setValue(1),f.current=e,()=>t?.stop()},[e,p,d]),!e)return d<=0?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[a,{opacity:p}],testID:u,children:t});if(void 0!==r){const e=o>1?Array.from({length:o},(e,t)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:r},`sk-ph-${t}`)):r;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:a,testID:u,accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},accessibilityLiveRegion:"polite",children:e})}const _=o>1?Array.from({length:o},(e,r)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:t},`sk-rep-${r}`)):t;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:a,testID:u,accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},accessibilityLiveRegion:"polite",children:skeletonizeNode(_,i,n,s)})};exports.SkeletonContent=SkeletonContent,SkeletonContent.displayName="SkeletonContent";var _default=exports.default=SkeletonContent;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonContent=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Skeleton=require("./Skeleton.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_SkeletonSkip=require("./SkeletonSkip.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,o,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?n(s,t,o):s[t]=e[t]);return s})(e,t)}const flattenStyle=e=>{if(!e)return{};return _reactNative.StyleSheet.flatten(e)??{}},resolveWidth=(e,t)=>"number"==typeof e?e:"string"!=typeof e||"auto"!==e&&"100%"!==e&&!/^\d+(\.\d+)?%$/.test(e)?t:e,resolveRadius=(e,t)=>"number"==typeof e?e:t,skeletonizeNode=(e,t,r,i,n="r")=>{if(null==e||"boolean"==typeof e)return null;if("string"==typeof e||"number"==typeof e)return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:"60%",height:14,variant:t,speed:r,colors:i},`${n}-text`);if(Array.isArray(e))return _react.Children.map(e,(e,o)=>skeletonizeNode(e,t,r,i,`${n}-${o}`));if(!(0,_react.isValidElement)(e))return null;const o=e,s=o.props??{},a=o.type;if(a===_SkeletonSkip.SkeletonSkip)return(0,_react.cloneElement)(o,{key:`${n}-skip`});if("function"==typeof a||"object"==typeof a){const e=a.Skeleton;if(e){const t=e;return(0,_jsxRuntime.jsx)(t,{...s},`${n}-self`)}}if(a===_reactNative.Image){const e=flattenStyle(s.style),o=resolveWidth(e.width,"100%"),a="number"==typeof e.height?e.height:120,l=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:o,height:a,radius:l,variant:t,speed:r,colors:i,style:{margin:"number"==typeof e.margin?e.margin:void 0}},`${n}-img`)}if(a===_reactNative.Text){const e=flattenStyle(s.style),o="number"==typeof e.fontSize?e.fontSize:14,a=resolveWidth(e.width,"85%");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:a,height:Math.round(1.15*o),variant:t,speed:r,colors:i,style:{marginVertical:2}},`${n}-txt`)}if(null!=s.children)return(0,_react.cloneElement)(o,{key:`${n}-w`},skeletonizeNode(s.children,t,r,i,`${n}-c`));if(a===_reactNative.View){const e=flattenStyle(s.style);if(null!=e.width||null!=e.height){const o=resolveWidth(e.width,"100%"),s="number"==typeof e.height?e.height:20,a=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:o,height:s,radius:a,variant:t,speed:r,colors:i},`${n}-vw`)}}return(0,_react.cloneElement)(o,{key:`${n}-leaf`})},SkeletonContent=({loading:e,children:t,placeholder:r,variant:i,speed:n,count:o=1,colors:s,fadeDuration:a,style:l,testID:u})=>{const c=(0,_SkeletonProvider.useSkeletonDefaults)(),d=a??c.fadeDuration??300,f=(0,_react.useRef)(e),p=(0,_react.useRef)((0,_index.createAnimatedValue)(e?0:1)).current;if((0,_react.useEffect)(()=>{let t;return f.current&&!e?(p.setValue(0),t=_reactNative.Animated.timing(p,{toValue:1,duration:d,useNativeDriver:!0}),t.start()):!f.current&&e&&p.setValue(1),f.current=e,()=>t?.stop()},[e,p,d]),!e)return d<=0?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[l,{opacity:p}],testID:u,children:t});if(void 0!==r){const e=o>1?Array.from({length:o},(e,t)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:r},`sk-ph-${t}`)):r;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:u,accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",children:e})}const _=o>1?Array.from({length:o},(e,r)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:t},`sk-rep-${r}`)):t;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:u,accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",children:skeletonizeNode(_,i,n,s)})};exports.SkeletonContent=SkeletonContent,SkeletonContent.displayName="SkeletonContent";var _default=exports.default=SkeletonContent;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useSkeletonDefaults=exports.useReduceMotion=exports.SkeletonProvider=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_SkeletonClock=require("./SkeletonClock.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,a)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(a,t,i):a[t]=e[t]);return a})(e,t)}const SkeletonDefaultsContext=(0,_react.createContext)({}),SkeletonProvider=({children:e,variant:t,speed:r,placeholderCount:o,radius:n,colors:i,fadeDuration:a,animation:s="auto"})=>{const u=useReduceMotion(),l="always"===s||"never"!==s&&!u,c=r??"normal",d=t??"shimmer",f=(0,_react.useMemo)(()=>({variant:t,speed:r,placeholderCount:o,radius:n,colors:i,fadeDuration:a,animation:s}),[t,r,o,n,i,a,s]);return(0,_jsxRuntime.jsx)(SkeletonDefaultsContext.Provider,{value:f,children:(0,_jsxRuntime.jsx)(_SkeletonClock.SkeletonClockProvider,{speed:c,variant:d,enabled:l,children:e})})};exports.SkeletonProvider=SkeletonProvider,SkeletonProvider.displayName="SkeletonProvider";const useSkeletonDefaults=()=>(0,_react.useContext)(SkeletonDefaultsContext);exports.useSkeletonDefaults=useSkeletonDefaults;const useReduceMotion=()=>{const[e,t]=(0,_react.useState)(!1);return(0,_react.useEffect)(()=>{let e=!0;_reactNative.AccessibilityInfo.isReduceMotionEnabled().then(r=>{e&&t(r)}).catch(()=>{e&&t(!1)});const r=_reactNative.AccessibilityInfo.addEventListener("reduceMotionChanged",e=>{t(e)});return()=>{e=!1,r.remove()}},[]),e};exports.useReduceMotion=useReduceMotion;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useSkeletonDefaults=exports.useReduceMotion=exports.SkeletonProvider=void 0;var _react=require("react"),_reactNative=require("react-native"),_SkeletonClock=require("./SkeletonClock.js"),_jsxRuntime=require("react/jsx-runtime");const SkeletonDefaultsContext=(0,_react.createContext)({}),SkeletonProvider=({children:e,variant:t,speed:o,placeholderCount:r,radius:n,colors:s,fadeDuration:a,animation:i="auto"})=>{const u=useReduceMotion(),l="always"===i||"never"!==i&&!u,c=o??"normal",d=t??"shimmer",v=(0,_react.useMemo)(()=>({variant:t,speed:o,placeholderCount:r,radius:n,colors:s,fadeDuration:a,animation:i}),[t,o,r,n,s,a,i]);return(0,_jsxRuntime.jsx)(SkeletonDefaultsContext.Provider,{value:v,children:(0,_jsxRuntime.jsx)(_SkeletonClock.SkeletonClockProvider,{speed:c,variant:d,enabled:l,children:e})})};exports.SkeletonProvider=SkeletonProvider,SkeletonProvider.displayName="SkeletonProvider";const useSkeletonDefaults=()=>(0,_react.useContext)(SkeletonDefaultsContext);exports.useSkeletonDefaults=useSkeletonDefaults;const useReduceMotion=()=>{const[e,t]=(0,_react.useState)(!1);return(0,_react.useEffect)(()=>{let e=!0;_reactNative.AccessibilityInfo.isReduceMotionEnabled().then(o=>{e&&t(o)}).catch(()=>{e&&t(!1)});const o=_reactNative.AccessibilityInfo.addEventListener("reduceMotionChanged",e=>{t(e)});return()=>{e=!1,o.remove()}},[]),e};exports.useReduceMotion=useReduceMotion;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SkeletonSkip=void 0;var _react=_interopRequireDefault(require("react")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const SkeletonSkip=({children:e})=>(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:e});exports.SkeletonSkip=SkeletonSkip,SkeletonSkip.displayName="SkeletonSkip";
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SkeletonSkip=void 0;var _jsxRuntime=require("react/jsx-runtime");const SkeletonSkip=({children:e})=>(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:e});exports.SkeletonSkip=SkeletonSkip,SkeletonSkip.displayName="SkeletonSkip";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SlideToConfirm=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(o,t,n):o[t]=e[t]);return o})(e,t)}const SIZE_MAP={sm:{height:44,pad:4},md:{height:56,pad:5},lg:{height:64,pad:6}},Chevron=({color:e,size:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:0,height:0,borderTopWidth:.4*t,borderBottomWidth:.4*t,borderLeftWidth:.55*t,borderTopColor:"transparent",borderBottomColor:"transparent",borderLeftColor:e,marginLeft:.2*t}}),ACCESSIBILITY_ACTIONS=[{name:"activate",label:"Confirm"},{name:"increment",label:"Confirm"}],SlideToConfirm=exports.SlideToConfirm=(0,_react.forwardRef)((e,t)=>{const{onConfirm:a,label:r="Slide to confirm",confirmedLabel:i="Confirmed",tone:n="primary",size:o="md",disabled:s=!1,threshold:l=.9,resetAfter:c=!1,haptic:d,icon:u,style:m,trackStyle:_,handleStyle:h,labelStyle:f,testID:v}=e,p=(0,_index.useTheme)(),b=SIZE_MAP[o],y=b.height-2*b.pad,g=(0,_react.useMemo)(()=>buildStyles(p,b),[p,b]),S=p.colors[n],[x,R]=(0,_react.useState)(!1),C=(0,_reactNativeReanimated.useSharedValue)(0),N=(0,_reactNativeReanimated.useSharedValue)(0),j=(0,_reactNativeReanimated.useSharedValue)(0),w=(0,_react.useRef)(null),k=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(d,"notificationSuccess");e&&(0,_index2.triggerHaptic)(e)},[d]),T=(0,_react.useCallback)(()=>{R(!1),C.value=(0,_reactNativeReanimated.withSpring)(0,{damping:18,stiffness:160,mass:1})},[C]),A=(0,_react.useCallback)(()=>{R(!0),k(),a(),!1!==c&&(w.current&&clearTimeout(w.current),w.current=setTimeout(T,c))},[k,a,c,T]),I=(0,_react.useCallback)(e=>{if(s||x)return;const{actionName:t}=e.nativeEvent;"activate"!==t&&"increment"!==t||A()},[s,x,A]);_react.default.useEffect(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(C),w.current&&clearTimeout(w.current)},[C]);const M=(0,_react.useCallback)(e=>{N.value=Math.max(0,e.nativeEvent.layout.width-y-2*b.pad)},[N,y,b.pad]),q=(0,_react.useMemo)(()=>{const e=l,t={damping:18,stiffness:160,mass:1},a={duration:p.motion.duration.fast,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)};return _reactNativeGestureHandler.Gesture.Pan().enabled(!s&&!x).minDistance(0).onStart(()=>{"worklet";j.value=C.value}).onUpdate(e=>{"worklet";C.value=Math.min(Math.max(j.value+e.translationX,0),N.value)}).onEnd(()=>{"worklet";N.value>0&&C.value>=N.value*e?(C.value=(0,_reactNativeReanimated.withTiming)(N.value,a),(0,_reactNativeReanimated.runOnJS)(A)()):C.value=(0,_reactNativeReanimated.withSpring)(0,t)})},[s,x,l,C,N,j,A,p.motion.duration.fast]),E=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:C.value}]})),W=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({width:C.value+y+b.pad})),L=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=N.value>0?N.value:1;return{opacity:Math.max(0,1-C.value/(.6*e))}});return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[g.track,{backgroundColor:p.colors.background.secondary},_,m],onLayout:M,testID:v,accessibilityRole:"adjustable",accessibilityLabel:x?i:r,accessibilityState:{disabled:s},accessibilityActions:ACCESSIBILITY_ACTIONS,onAccessibilityAction:I,children:[(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[g.fill,{backgroundColor:S,opacity:s?.5:1},W],pointerEvents:"none"}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[g.labelWrap,L],pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[g.label,{color:p.colors.text.secondary,fontSize:p.typography.fontSize.base},f],numberOfLines:1,children:x?i:r})}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:q,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[g.handle,{width:y,height:y,borderRadius:y/2,..._corners.smoothCorners,backgroundColor:p.colors.background.elevated,opacity:s?.5:1,...p.shadows.sm},h,E],children:u??(0,_jsxRuntime.jsx)(Chevron,{color:S,size:.5*y})})})]})});SlideToConfirm.displayName="SlideToConfirm";const buildStyles=(e,t)=>_reactNative.StyleSheet.create({track:{height:t.height,borderRadius:t.height/2,..._corners.smoothCorners,justifyContent:"center",overflow:"hidden",padding:t.pad},fill:{position:"absolute",left:0,top:0,bottom:0,borderRadius:t.height/2,..._corners.smoothCorners},labelWrap:{position:"absolute",left:t.height,right:t.height},label:{textAlign:"center",includeFontPadding:!1},handle:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=SlideToConfirm;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SlideToConfirm=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(o,t,n):o[t]=e[t]);return o})(e,t)}const SIZE_MAP={sm:{height:44,pad:4},md:{height:56,pad:5},lg:{height:64,pad:6}},Chevron=({color:e,size:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:0,height:0,borderTopWidth:.4*t,borderBottomWidth:.4*t,borderLeftWidth:.55*t,borderTopColor:"transparent",borderBottomColor:"transparent",borderLeftColor:e,marginLeft:.2*t}}),ACCESSIBILITY_ACTIONS=[{name:"activate",label:"Confirm"},{name:"increment",label:"Confirm"}],SlideToConfirm=exports.SlideToConfirm=(0,_react.forwardRef)((e,t)=>{const{onConfirm:a,label:r="Slide to confirm",confirmedLabel:i="Confirmed",tone:n="primary",size:o="md",disabled:s=!1,threshold:l=.9,resetAfter:c=!1,haptic:d,icon:u,style:m,trackStyle:_,handleStyle:h,labelStyle:f,testID:v}=e,p=(0,_index.useTheme)(),b=SIZE_MAP[o],y=b.height-2*b.pad,g=(0,_react.useMemo)(()=>buildStyles(b),[b]),S=p.colors[n],[x,R]=(0,_react.useState)(!1),C=(0,_reactNativeReanimated.useSharedValue)(0),N=(0,_reactNativeReanimated.useSharedValue)(0),j=(0,_reactNativeReanimated.useSharedValue)(0),w=(0,_react.useRef)(null),k=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(d,"notificationSuccess");e&&(0,_index2.triggerHaptic)(e)},[d]),T=(0,_react.useCallback)(()=>{R(!1),C.value=(0,_reactNativeReanimated.withSpring)(0,{damping:18,stiffness:160,mass:1})},[C]),A=(0,_react.useCallback)(()=>{R(!0),k(),a(),!1!==c&&(w.current&&clearTimeout(w.current),w.current=setTimeout(T,c))},[k,a,c,T]),I=(0,_react.useCallback)(e=>{if(s||x)return;const{actionName:t}=e.nativeEvent;"activate"!==t&&"increment"!==t||A()},[s,x,A]);_react.default.useEffect(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(C),w.current&&clearTimeout(w.current)},[C]);const M=(0,_react.useCallback)(e=>{N.value=Math.max(0,e.nativeEvent.layout.width-y-2*b.pad)},[N,y,b.pad]),q=(0,_react.useMemo)(()=>{const e=l,t={damping:18,stiffness:160,mass:1},a={duration:p.motion.duration.fast,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)};return _reactNativeGestureHandler.Gesture.Pan().enabled(!s&&!x).minDistance(0).onStart(()=>{"worklet";j.value=C.value}).onUpdate(e=>{"worklet";C.value=Math.min(Math.max(j.value+e.translationX,0),N.value)}).onEnd(()=>{"worklet";N.value>0&&C.value>=N.value*e?(C.value=(0,_reactNativeReanimated.withTiming)(N.value,a),(0,_reactNativeReanimated.runOnJS)(A)()):C.value=(0,_reactNativeReanimated.withSpring)(0,t)})},[s,x,l,C,N,j,A,p.motion.duration.fast]),E=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:C.value}]})),W=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({width:C.value+y+b.pad})),L=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=N.value>0?N.value:1;return{opacity:Math.max(0,1-C.value/(.6*e))}});return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[g.track,{backgroundColor:p.colors.background.secondary},_,m],onLayout:M,testID:v,accessibilityRole:"adjustable",accessibilityLabel:x?i:r,accessibilityState:{disabled:s},"aria-disabled":s,accessibilityActions:ACCESSIBILITY_ACTIONS,onAccessibilityAction:I,children:[(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[g.fill,{backgroundColor:S,opacity:s?.5:1},W],pointerEvents:"none"}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[g.labelWrap,L],pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[g.label,{color:p.colors.text.secondary,fontSize:p.typography.fontSize.base},f],numberOfLines:1,children:x?i:r})}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:q,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[g.handle,{width:y,height:y,borderRadius:y/2,..._corners.smoothCorners,backgroundColor:p.colors.background.elevated,opacity:s?.5:1,...p.shadows.sm},h,E],children:u??(0,_jsxRuntime.jsx)(Chevron,{color:S,size:.5*y})})})]})});SlideToConfirm.displayName="SlideToConfirm";const buildStyles=e=>_reactNative.StyleSheet.create({track:{height:e.height,borderRadius:e.height/2,..._corners.smoothCorners,justifyContent:"center",overflow:"hidden",padding:e.pad},fill:{position:"absolute",left:0,top:0,bottom:0,borderRadius:e.height/2,..._corners.smoothCorners},labelWrap:{position:"absolute",left:e.height,right:e.height},label:{textAlign:"center",includeFontPadding:!1},handle:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=SlideToConfirm;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Slider=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_valueText=require("./valueText.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,n,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(s,t,n):s[t]=e[t]);return s})(e,t)}const SIZE_MAP={sm:{trackHeight:4,thumbDiameter:24},md:{trackHeight:6,thumbDiameter:28},lg:{trackHeight:8,thumbDiameter:32}},VARIANT_SIZE_MAP={inset:{sm:{trackHeight:14,thumbDiameter:10},md:{trackHeight:20,thumbDiameter:14},lg:{trackHeight:26,thumbDiameter:18}},minimal:{sm:{trackHeight:2,thumbDiameter:14},md:{trackHeight:3,thumbDiameter:18},lg:{trackHeight:4,thumbDiameter:22}},bar:{sm:{trackHeight:20,thumbDiameter:20},md:{trackHeight:28,thumbDiameter:28},lg:{trackHeight:36,thumbDiameter:36}}},INSET_RING_RATIO=.3,MIN_THUMB_TOUCH=44,TONE_TO_COLOR_KEY={primary:"primary",success:"success",warning:"warning",error:"error"},clamp=(e,t,a)=>Math.min(Math.max(e,t),a),snapToStep=(e,t,a,r)=>{if(r<=0)return clamp(e,t,a);const i=Math.round((e-t)/r)*r+t,n=String(r).split(".")[1]?.length??0,s=n>0?Number(i.toFixed(n)):i;return clamp(s,t,a)},BUBBLE_GAP=2,BUBBLE_CARET=8,BUBBLE_WRAP_WIDTH=160,NO_SHADOW={shadowOpacity:0,elevation:0},defaultFormatLabel=e=>String(e),Slider=exports.Slider=(0,_react.forwardRef)((e,t)=>{const{min:a=0,max:r=100,step:i=1,disabled:n=!1,tone:s="primary",size:o="md",variant:l="default",showLabel:c=!1,snapThumb:u=!1,formatLabel:d=defaultFormatLabel,renderLabel:m,accessibilityLabel:h,haptic:b,style:_,containerStyle:v,trackStyle:p,fillStyle:f,thumbStyle:g,labelStyle:R,thumbPressScale:y,labelShowDuration:x,labelOpacity:N,testID:w}=e,k=(0,_index2.useTheme)(),S=k.components.slider,j=S?.[o],C=(0,_react.useMemo)(()=>"default"===l?{trackHeight:j?.trackHeight??SIZE_MAP[o].trackHeight,thumbDiameter:j?.thumbDiameter??SIZE_MAP[o].thumbDiameter}:VARIANT_SIZE_MAP[l][o],[j,o,l]),M="inset"===l?C.trackHeight/2:0,O=S?.thumbPressAnimation??!1,H=y??S?.thumbPressScale??1.1,D=x??S?.labelShowDuration??k.motion.duration.fast,A=N??S?.labelOpacity??1,E=(0,_react.useMemo)(()=>buildStyles(k,C),[k,C]),T=(0,_react.useMemo)(()=>({damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass}),[k.motion.spring.snappy]),[V,W]=(0,_react.useState)(0),P=k.colors[TONE_TO_COLOR_KEY[s]],I=(0,_valueText.sliderToneInk)(k,s),L=!0===e.range,[q,X]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[a,r]:a),onChange:e.onChange}),B=(0,_reactNativeReanimated.useSharedValue)(0),G=(0,_reactNativeReanimated.useSharedValue)(0),F=(0,_reactNativeReanimated.useSharedValue)(L?q[0]:q),J=(0,_reactNativeReanimated.useSharedValue)(L?q[1]:q),U=(0,_reactNativeReanimated.useSharedValue)(0),z=(0,_reactNativeReanimated.useSharedValue)(0),Z=(0,_reactNativeReanimated.useSharedValue)(1),K=(0,_reactNativeReanimated.useSharedValue)(1),Y="always"===c,$=(0,_reactNativeReanimated.useSharedValue)(Y?1:0),Q=(0,_reactNativeReanimated.useSharedValue)(Y?1:0),ee=(0,_react.useMemo)(()=>{const e=String(i).split(".")[1]?.length??0;return Math.pow(10,e)},[i]);(0,_react.useEffect)(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(B),(0,_reactNativeReanimated.cancelAnimation)(G),(0,_reactNativeReanimated.cancelAnimation)(Z),(0,_reactNativeReanimated.cancelAnimation)(K),(0,_reactNativeReanimated.cancelAnimation)($),(0,_reactNativeReanimated.cancelAnimation)(Q)},[B,G,Z,K,$,Q]);const te=(0,_react.useCallback)((e,t)=>{const i=t-2*M;return r===a||i<=0?M:M+(e-a)/(r-a)*i},[a,r,M]),ae=(0,_react.useCallback)((e,t)=>{const n=t-2*M;if(n<=0)return a;const s=clamp((e-M)/n,0,1);return snapToStep(a+s*(r-a),a,r,i)},[a,r,i,M]),re=(0,_react.useRef)(!1),ie=k.motion.duration.fast,ne=(0,_react.useRef)(q);ne.current=q;const se=(0,_react.useRef)(V);se.current=V;const oe=(0,_react.useCallback)((e=!1)=>{const t=se.current;if(t<=0)return;const place=t=>e?(0,_reactNativeReanimated.withTiming)(t,{duration:ie,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)}):t,a=ne.current;if(L){const[e,r]=a,i=Math.min(e,r),n=Math.max(e,r);F.value=i,J.value=n,B.value=place(te(i,t)),G.value=place(te(n,t))}else{const e=a;F.value=e,J.value=e,B.value=place(te(e,t))}},[L,te,F,J,B,G,ie]),[le,ce]=(0,_react.useState)(0),ue=(0,_react.useRef)(!1),de=(0,_react.useCallback)(e=>{re.current=e,e||(ue.current=!0,ce(e=>e+1))},[]);(0,_react.useEffect)(()=>{if(re.current)return;const e=ue.current;ue.current=!1,oe(e)},[JSON.stringify(q),V,le,oe]);const me=(0,_react.useCallback)(e=>{const t=e.nativeEvent.layout.width;z.value=t,W(t)},[z]),he=(0,_react.useCallback)((e,t)=>{X(L?[e,t]:e)},[L,X]),be=(0,_react.useCallback)(()=>{const e=(0,_index3.resolveHaptic)(b,"selection");e&&(0,_index3.triggerHaptic)(e)},[b]),_e=(0,_react.useRef)(he);_e.current=he;const ve=(0,_react.useRef)(be);ve.current=be;const pe=(0,_react.useCallback)((e,t)=>_e.current(e,t),[]),fe=(0,_react.useCallback)(()=>ve.current(),[]),ge=Math.max(0,(44-C.thumbDiameter)/2),Re=ge>0?ge:void 0,ye=(0,_react.useCallback)(e=>{const t="low"===e?B:G,s="low"===e?F:J,o="low"===e?J:F,l="low"===e?Z:K,d="low"===e?$:Q,m="low"===e,h=a,b=r,_=i,v=ee,p=L,f=H,g=O,R=!0===c,y=u,x=A,N=D,w=T,k=M,follow=e=>{"worklet";const a=z.value-2*k;if(a<=0||!Number.isFinite(e))return;const r=Math.min(Math.max(U.value+e,k),z.value-k);let i=h+(r-k)/a*(b-h);_>0&&(i=Math.round((i-h)/_)*_+h,i=Math.round(i*v)/v),i=Math.min(Math.max(i,h),b),p&&(m&&i>o.value&&(i=o.value),!m&&i<o.value&&(i=o.value)),t.value=y||b===h?b===h?k:k+(i-h)/(b-h)*a:p?m?Math.min(r,G.value):Math.max(r,B.value):r,i!==s.value&&(s.value=i,i!==h&&i!==b||(0,_reactNativeReanimated.runOnJS)(fe)(),(0,_reactNativeReanimated.runOnJS)(pe)(F.value,J.value))},S=_reactNativeGestureHandler.Gesture.Pan().enabled(!n).minDistance(0);return(void 0===Re?S:S.hitSlop(Re)).onStart(()=>{"worklet";(0,_reactNativeReanimated.runOnJS)(de)(!0),U.value=t.value,g&&(l.value=(0,_reactNativeReanimated.withSpring)(f,w)),R&&(d.value=(0,_reactNativeReanimated.withTiming)(x,{duration:N,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)})),(0,_reactNativeReanimated.runOnJS)(fe)()}).onUpdate(e=>{"worklet";follow(e.translationX)}).onEnd(e=>{"worklet";follow(e.translationX),g&&(l.value=(0,_reactNativeReanimated.withSpring)(1,w)),R&&(d.value=(0,_reactNativeReanimated.withTiming)(0,{duration:N,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)}))}).onFinalize(()=>{"worklet";(0,_reactNativeReanimated.runOnJS)(de)(!1)})},[n,a,r,i,ee,L,H,O,c,u,A,D,T,M,Re,pe,fe,de,B,G,F,J,Z,K,$,Q,U,z]),xe=(0,_react.useMemo)(()=>ye("low"),[ye]),Ne=(0,_react.useMemo)(()=>ye("high"),[ye]),we=(0,_react.useCallback)(e=>{if(n||L||V<=0)return;const t=clamp(e.nativeEvent.locationX,0,V),a=ae(t,V);a!==F.value&&(be(),F.value=a,B.value=(0,_reactNativeReanimated.withTiming)(te(a,V),{duration:k.motion.duration.fast,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)}),he(a,a))},[n,L,V,ae,te,he,be,B,F,k.motion.duration.fast]),ke=(0,_react.useCallback)(e=>{if(n)return;const t="increment"===e.nativeEvent.actionName?i:-i,s=i>0?Math.round(t*ee)/ee:t;if(L){const e=Math.round((F.value+s)*ee)/ee,t=clamp(e,a,J.value);t!==F.value&&(F.value=t,B.value=te(t,V),be(),he(t,J.value))}else{const e=Math.round((F.value+s)*ee)/ee,t=clamp(e,a,r);t!==F.value&&(F.value=t,B.value=te(t,V),be(),he(t,t))}},[n,i,ee,L,a,r,te,V,B,F,J,he,be]),Se=C.thumbDiameter/2,je=n?k.colors.surface.disabled:P,Ce="inset"===l?{backgroundColor:je,borderColor:k.colors.background.elevated,borderWidth:Math.max(2,Math.round(.3*C.thumbDiameter)),...NO_SHADOW}:"minimal"===l?{backgroundColor:je,borderWidth:0}:"bar"===l?{backgroundColor:"transparent",borderWidth:0,...NO_SHADOW}:{backgroundColor:k.colors.background.elevated,borderColor:je},Me=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=z.value;if(e<=0)return{opacity:0,transform:[{translateX:0},{scaleX:1}]};const t=n?.55:1;if(L){const a=Math.max(0,G.value-B.value+2*M);return{opacity:t,transform:[{translateX:B.value-M},{scaleX:a/e}]}}return{opacity:t,transform:[{translateX:B.value+M-e},{scaleX:1}]}}),Oe=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:B.value-Se},{scale:Z.value}]})),He=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:G.value-Se},{scale:K.value}]})),De=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:$.value})),Ae=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:Q.value})),clampDisplay=e=>clamp(e,a,r),Ee=clampDisplay(L?Math.min(...q):q),Te=clampDisplay(L?Math.max(...q):q);return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:[E.container,v,_],testID:w,accessibilityRole:"adjustable",accessibilityLabel:h,accessibilityState:{disabled:n},accessibilityValue:L?{min:a,max:r,now:Ee,text:`${Ee} to ${Te}`}:{min:a,max:r,now:Ee},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:ke,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:we,disabled:n||L,style:E.trackTouch,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E.trackWrap,onLayout:me,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E.trackClip,pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.track,{backgroundColor:n?k.colors.surface.disabled:k.colors.border.primary},p]}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[E.fill,{backgroundColor:n?k.colors.surface.disabled:P},f,Me]})]}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:xe,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[E.thumb,{width:C.thumbDiameter,height:C.thumbDiameter,borderRadius:Se,..._corners.smoothCorners,opacity:n?.55:1},Ce,g,Oe],accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:c?(0,_jsxRuntime.jsxs)(_reactNativeReanimated.default.View,{style:[E.bubbleWrap,De],pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubble,{backgroundColor:P}],children:m?m(Ee):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[E.bubbleText,{color:I},R],numberOfLines:1,children:d(Ee)})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubbleCaret,{backgroundColor:P}]})]}):null})}),L?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Ne,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[E.thumb,{width:C.thumbDiameter,height:C.thumbDiameter,borderRadius:Se,..._corners.smoothCorners,opacity:n?.55:1},Ce,g,He],accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:c?(0,_jsxRuntime.jsxs)(_reactNativeReanimated.default.View,{style:[E.bubbleWrap,Ae],pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubble,{backgroundColor:P}],children:m?m(Te):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[E.bubbleText,{color:I},R],numberOfLines:1,children:d(Te)})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubbleCaret,{backgroundColor:P}]})]}):null})}):null]})})})});Slider.displayName="Slider";const buildStyles=(e,t)=>{const a=e.shadows.md,r=Math.max(t.thumbDiameter,t.trackHeight),i=r/2+4;return _reactNative.StyleSheet.create({container:{width:"100%",paddingVertical:i,justifyContent:"center"},trackTouch:{width:"100%",justifyContent:"center"},trackWrap:{width:"100%",height:r,justifyContent:"center"},trackClip:{position:"absolute",left:0,right:0,height:t.trackHeight,top:(r-t.trackHeight)/2,borderRadius:t.trackHeight/2,..._corners.smoothCorners,overflow:"hidden"},track:{position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:t.trackHeight/2,..._corners.smoothCorners},fill:{position:"absolute",top:0,left:0,width:"100%",height:t.trackHeight,borderRadius:t.trackHeight/2,..._corners.smoothCorners,transformOrigin:"left"},thumb:{position:"absolute",top:(r-t.thumbDiameter)/2,left:0,borderWidth:2,shadowColor:a.shadowColor,shadowOffset:a.shadowOffset,shadowOpacity:a.shadowOpacity,shadowRadius:a.shadowRadius,elevation:a.elevation,alignItems:"center",justifyContent:"center"},bubbleWrap:{position:"absolute",bottom:t.thumbDiameter+2,left:t.thumbDiameter/2-80,width:160,alignItems:"center"},bubbleCaret:{width:8,height:8,marginTop:-5,borderRadius:1,..._corners.smoothCorners,transform:[{rotate:"45deg"}]},bubble:{paddingHorizontal:e.spacing.sm,paddingVertical:e.spacing.xxs,borderRadius:e.radius.md,..._corners.smoothCorners,minWidth:36,alignItems:"center",justifyContent:"center",..._reactNative.Platform.select({ios:{shadowColor:e.shadows.sm.shadowColor,shadowOffset:e.shadows.sm.shadowOffset,shadowOpacity:e.shadows.sm.shadowOpacity,shadowRadius:e.shadows.sm.shadowRadius},android:{elevation:e.shadows.sm.elevation},default:{}})},bubbleText:{color:e.colors.onPrimary,fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=Slider;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Slider=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_valueText=require("./valueText.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,n,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(s,t,n):s[t]=e[t]);return s})(e,t)}const SIZE_MAP={sm:{trackHeight:4,thumbDiameter:24},md:{trackHeight:6,thumbDiameter:28},lg:{trackHeight:8,thumbDiameter:32}},VARIANT_SIZE_MAP={inset:{sm:{trackHeight:14,thumbDiameter:10},md:{trackHeight:20,thumbDiameter:14},lg:{trackHeight:26,thumbDiameter:18}},minimal:{sm:{trackHeight:2,thumbDiameter:14},md:{trackHeight:3,thumbDiameter:18},lg:{trackHeight:4,thumbDiameter:22}},bar:{sm:{trackHeight:20,thumbDiameter:20},md:{trackHeight:28,thumbDiameter:28},lg:{trackHeight:36,thumbDiameter:36}}},INSET_RING_RATIO=.3,MIN_THUMB_TOUCH=44,TONE_TO_COLOR_KEY={primary:"primary",success:"success",warning:"warning",error:"error"},clamp=(e,t,a)=>Math.min(Math.max(e,t),a),snapToStep=(e,t,a,r)=>{if(r<=0)return clamp(e,t,a);const i=Math.round((e-t)/r)*r+t,n=String(r).split(".")[1]?.length??0,s=n>0?Number(i.toFixed(n)):i;return clamp(s,t,a)},BUBBLE_GAP=2,BUBBLE_CARET=8,BUBBLE_WRAP_WIDTH=160,NO_SHADOW={shadowOpacity:0,elevation:0},defaultFormatLabel=e=>String(e),Slider=exports.Slider=(0,_react.forwardRef)((e,t)=>{const{min:a=0,max:r=100,step:i=1,disabled:n=!1,tone:s="primary",size:o="md",variant:l="default",showLabel:c=!1,snapThumb:u=!1,formatLabel:d=defaultFormatLabel,renderLabel:m,accessibilityLabel:h,haptic:b,style:_,containerStyle:v,trackStyle:p,fillStyle:f,thumbStyle:g,labelStyle:R,thumbPressScale:y,labelShowDuration:x,labelOpacity:N,testID:w}=e,k=(0,_index2.useTheme)(),S=k.components.slider,j=S?.[o],C=(0,_react.useMemo)(()=>"default"===l?{trackHeight:j?.trackHeight??SIZE_MAP[o].trackHeight,thumbDiameter:j?.thumbDiameter??SIZE_MAP[o].thumbDiameter}:VARIANT_SIZE_MAP[l][o],[j,o,l]),M="inset"===l?C.trackHeight/2:0,O=S?.thumbPressAnimation??!1,H=y??S?.thumbPressScale??1.1,D=x??S?.labelShowDuration??k.motion.duration.fast,A=N??S?.labelOpacity??1,E=(0,_react.useMemo)(()=>buildStyles(k,C),[k,C]),T=(0,_react.useMemo)(()=>({damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass}),[k.motion.spring.snappy]),[V,W]=(0,_react.useState)(0),P=k.colors[TONE_TO_COLOR_KEY[s]],I=(0,_valueText.sliderToneInk)(k,s),L=!0===e.range,[q,X]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[a,r]:a),onChange:e.onChange}),B=(0,_reactNativeReanimated.useSharedValue)(0),G=(0,_reactNativeReanimated.useSharedValue)(0),F=(0,_reactNativeReanimated.useSharedValue)(L?q[0]:q),J=(0,_reactNativeReanimated.useSharedValue)(L?q[1]:q),U=(0,_reactNativeReanimated.useSharedValue)(0),z=(0,_reactNativeReanimated.useSharedValue)(0),Z=(0,_reactNativeReanimated.useSharedValue)(1),K=(0,_reactNativeReanimated.useSharedValue)(1),Y="always"===c,$=(0,_reactNativeReanimated.useSharedValue)(Y?1:0),Q=(0,_reactNativeReanimated.useSharedValue)(Y?1:0),ee=(0,_react.useMemo)(()=>10**(String(i).split(".")[1]?.length??0),[i]);(0,_react.useEffect)(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(B),(0,_reactNativeReanimated.cancelAnimation)(G),(0,_reactNativeReanimated.cancelAnimation)(Z),(0,_reactNativeReanimated.cancelAnimation)(K),(0,_reactNativeReanimated.cancelAnimation)($),(0,_reactNativeReanimated.cancelAnimation)(Q)},[B,G,Z,K,$,Q]);const te=(0,_react.useCallback)((e,t)=>{const i=t-2*M;return r===a||i<=0?M:M+(e-a)/(r-a)*i},[a,r,M]),ae=(0,_react.useCallback)((e,t)=>{const n=t-2*M;if(n<=0)return a;const s=clamp((e-M)/n,0,1);return snapToStep(a+s*(r-a),a,r,i)},[a,r,i,M]),re=(0,_react.useRef)(!1),ie=k.motion.duration.fast,ne=(0,_react.useRef)(q);ne.current=q;const se=(0,_react.useRef)(V);se.current=V;const oe=(0,_react.useCallback)((e=!1)=>{const t=se.current;if(t<=0)return;const place=t=>e?(0,_reactNativeReanimated.withTiming)(t,{duration:ie,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)}):t,a=ne.current;if(L){const[e,r]=a,i=Math.min(e,r),n=Math.max(e,r);F.value=i,J.value=n,B.value=place(te(i,t)),G.value=place(te(n,t))}else{const e=a;F.value=e,J.value=e,B.value=place(te(e,t))}},[L,te,F,J,B,G,ie]),[le,ce]=(0,_react.useState)(0),ue=(0,_react.useRef)(!1),de=(0,_react.useCallback)(e=>{re.current=e,e||(ue.current=!0,ce(e=>e+1))},[]);(0,_react.useEffect)(()=>{if(re.current)return;const e=ue.current;ue.current=!1,oe(e)},[JSON.stringify(q),V,le,oe]);const me=(0,_react.useCallback)(e=>{const t=e.nativeEvent.layout.width;z.value=t,W(t)},[z]),he=(0,_react.useCallback)((e,t)=>{X(L?[e,t]:e)},[L,X]),be=(0,_react.useCallback)(()=>{const e=(0,_index3.resolveHaptic)(b,"selection");e&&(0,_index3.triggerHaptic)(e)},[b]),_e=(0,_react.useRef)(he);_e.current=he;const ve=(0,_react.useRef)(be);ve.current=be;const pe=(0,_react.useCallback)((e,t)=>_e.current(e,t),[]),fe=(0,_react.useCallback)(()=>ve.current(),[]),ge=Math.max(0,(44-C.thumbDiameter)/2),Re=ge>0?ge:void 0,ye=(0,_react.useCallback)(e=>{const t="low"===e?B:G,s="low"===e?F:J,o="low"===e?J:F,l="low"===e?Z:K,d="low"===e?$:Q,m="low"===e,h=a,b=r,_=i,v=ee,p=L,f=H,g=O,R=!0===c,y=u,x=A,N=D,w=T,k=M,follow=e=>{"worklet";const a=z.value-2*k;if(a<=0||!Number.isFinite(e))return;const r=Math.min(Math.max(U.value+e,k),z.value-k);let i=h+(r-k)/a*(b-h);_>0&&(i=Math.round((i-h)/_)*_+h,i=Math.round(i*v)/v),i=Math.min(Math.max(i,h),b),p&&(m&&i>o.value&&(i=o.value),!m&&i<o.value&&(i=o.value)),t.value=y||b===h?b===h?k:k+(i-h)/(b-h)*a:p?m?Math.min(r,G.value):Math.max(r,B.value):r,i!==s.value&&(s.value=i,i!==h&&i!==b||(0,_reactNativeReanimated.runOnJS)(fe)(),(0,_reactNativeReanimated.runOnJS)(pe)(F.value,J.value))},S=_reactNativeGestureHandler.Gesture.Pan().enabled(!n).minDistance(0);return(void 0===Re?S:S.hitSlop(Re)).onStart(()=>{"worklet";(0,_reactNativeReanimated.runOnJS)(de)(!0),U.value=t.value,g&&(l.value=(0,_reactNativeReanimated.withSpring)(f,w)),R&&(d.value=(0,_reactNativeReanimated.withTiming)(x,{duration:N,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)})),(0,_reactNativeReanimated.runOnJS)(fe)()}).onUpdate(e=>{"worklet";follow(e.translationX)}).onEnd(e=>{"worklet";follow(e.translationX),g&&(l.value=(0,_reactNativeReanimated.withSpring)(1,w)),R&&(d.value=(0,_reactNativeReanimated.withTiming)(0,{duration:N,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)}))}).onFinalize(()=>{"worklet";(0,_reactNativeReanimated.runOnJS)(de)(!1)})},[n,a,r,i,ee,L,H,O,c,u,A,D,T,M,Re,pe,fe,de,B,G,F,J,Z,K,$,Q,U,z]),xe=(0,_react.useMemo)(()=>ye("low"),[ye]),Ne=(0,_react.useMemo)(()=>ye("high"),[ye]),we=(0,_react.useCallback)(e=>{if(n||L||V<=0)return;const t=clamp(e.nativeEvent.locationX,0,V),a=ae(t,V);a!==F.value&&(be(),F.value=a,B.value=(0,_reactNativeReanimated.withTiming)(te(a,V),{duration:k.motion.duration.fast,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)}),he(a,a))},[n,L,V,ae,te,he,be,B,F,k.motion.duration.fast]),ke=(0,_react.useCallback)(e=>{if(n)return;const t="increment"===e.nativeEvent.actionName?i:-i,s=i>0?Math.round(t*ee)/ee:t;if(L){const e=Math.round((F.value+s)*ee)/ee,t=clamp(e,a,J.value);t!==F.value&&(F.value=t,B.value=te(t,V),be(),he(t,J.value))}else{const e=Math.round((F.value+s)*ee)/ee,t=clamp(e,a,r);t!==F.value&&(F.value=t,B.value=te(t,V),be(),he(t,t))}},[n,i,ee,L,a,r,te,V,B,F,J,he,be]),Se=C.thumbDiameter/2,je=n?k.colors.surface.disabled:P,Ce="inset"===l?{backgroundColor:je,borderColor:k.colors.background.elevated,borderWidth:Math.max(2,Math.round(.3*C.thumbDiameter)),...NO_SHADOW}:"minimal"===l?{backgroundColor:je,borderWidth:0}:"bar"===l?{backgroundColor:"transparent",borderWidth:0,...NO_SHADOW}:{backgroundColor:k.colors.background.elevated,borderColor:je},Me=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=z.value;if(e<=0)return{opacity:0,transform:[{translateX:0},{scaleX:1}]};const t=n?.55:1;if(L){const a=Math.max(0,G.value-B.value+2*M);return{opacity:t,transform:[{translateX:B.value-M},{scaleX:a/e}]}}return{opacity:t,transform:[{translateX:B.value+M-e},{scaleX:1}]}}),Oe=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:B.value-Se},{scale:Z.value}]})),He=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:G.value-Se},{scale:K.value}]})),De=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:$.value})),Ae=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:Q.value})),clampDisplay=e=>clamp(e,a,r),Ee=clampDisplay(L?Math.min(...q):q),Te=clampDisplay(L?Math.max(...q):q);return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:[E.container,v,_],testID:w,accessibilityRole:"adjustable",accessibilityLabel:h,accessibilityState:{disabled:n},"aria-disabled":n,accessibilityValue:L?{min:a,max:r,now:Ee,text:`${Ee} to ${Te}`}:{min:a,max:r,now:Ee},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:ke,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:we,disabled:n||L,style:E.trackTouch,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E.trackWrap,onLayout:me,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E.trackClip,pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.track,{backgroundColor:n?k.colors.surface.disabled:k.colors.border.primary},p]}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[E.fill,{backgroundColor:n?k.colors.surface.disabled:P},f,Me]})]}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:xe,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[E.thumb,{width:C.thumbDiameter,height:C.thumbDiameter,borderRadius:Se,..._corners.smoothCorners,opacity:n?.55:1},Ce,g,Oe],accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:c?(0,_jsxRuntime.jsxs)(_reactNativeReanimated.default.View,{style:[E.bubbleWrap,De],pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubble,{backgroundColor:P}],children:m?m(Ee):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[E.bubbleText,{color:I},R],numberOfLines:1,children:d(Ee)})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubbleCaret,{backgroundColor:P}]})]}):null})}),L?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Ne,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[E.thumb,{width:C.thumbDiameter,height:C.thumbDiameter,borderRadius:Se,..._corners.smoothCorners,opacity:n?.55:1},Ce,g,He],accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:c?(0,_jsxRuntime.jsxs)(_reactNativeReanimated.default.View,{style:[E.bubbleWrap,Ae],pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubble,{backgroundColor:P}],children:m?m(Te):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[E.bubbleText,{color:I},R],numberOfLines:1,children:d(Te)})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bubbleCaret,{backgroundColor:P}]})]}):null})}):null]})})})});Slider.displayName="Slider";const buildStyles=(e,t)=>{const a=e.shadows.md,r=Math.max(t.thumbDiameter,t.trackHeight),i=r/2+4;return _reactNative.StyleSheet.create({container:{width:"100%",paddingVertical:i,justifyContent:"center"},trackTouch:{width:"100%",justifyContent:"center"},trackWrap:{width:"100%",height:r,justifyContent:"center"},trackClip:{position:"absolute",left:0,right:0,height:t.trackHeight,top:(r-t.trackHeight)/2,borderRadius:t.trackHeight/2,..._corners.smoothCorners,overflow:"hidden"},track:{position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:t.trackHeight/2,..._corners.smoothCorners},fill:{position:"absolute",top:0,left:0,width:"100%",height:t.trackHeight,borderRadius:t.trackHeight/2,..._corners.smoothCorners,transformOrigin:"left"},thumb:{position:"absolute",top:(r-t.thumbDiameter)/2,left:0,borderWidth:2,shadowColor:a.shadowColor,shadowOffset:a.shadowOffset,shadowOpacity:a.shadowOpacity,shadowRadius:a.shadowRadius,elevation:a.elevation,alignItems:"center",justifyContent:"center"},bubbleWrap:{position:"absolute",bottom:t.thumbDiameter+2,left:t.thumbDiameter/2-80,width:160,alignItems:"center"},bubbleCaret:{width:8,height:8,marginTop:-5,borderRadius:1,..._corners.smoothCorners,transform:[{rotate:"45deg"}]},bubble:{paddingHorizontal:e.spacing.sm,paddingVertical:e.spacing.xxs,borderRadius:e.radius.md,..._corners.smoothCorners,minWidth:36,alignItems:"center",justifyContent:"center",..._reactNative.Platform.select({ios:{shadowColor:e.shadows.sm.shadowColor,shadowOffset:e.shadows.sm.shadowOffset,shadowOpacity:e.shadows.sm.shadowOpacity,shadowRadius:e.shadows.sm.shadowRadius},android:{elevation:e.shadows.sm.elevation},default:{}})},bubbleText:{color:e.colors.onPrimary,fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=Slider;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SliderField=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../AppIcon/index.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index4=require("../IconButton/index.js"),_index5=require("../Slider/index.js"),_valueText=require("../Slider/valueText.js"),_index6=require("../Tooltip/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_INPUT_WIDTH=72,defaultFormatValue=e=>String(e),stepDecimals=e=>String(e).split(".")[1]?.length??0,ValueBox=({draft:e,error:t,disabled:i,width:l,accessibilityLabel:s,style:a,testID:n})=>{const r=(0,_index2.useTheme)(),o=(0,_FieldBase.resolveFieldSize)(r,"sm"),d=(0,_FieldBase.resolveFieldTextStyle)(r,{disabled:i}),u=(0,_react.useRef)(null),c=(0,_react.useCallback)(()=>{i||u.current?.focus()},[i]);return(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:"sm",focused:e.editing,disabled:i,error:t,filled:!0,width:l,onPress:c,pressFeedback:!1,paddingHorizontal:r.spacing.sm,gap:r.spacing.xs,trailing:t?(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",size:o.iconSize,color:r.colors.error}):void 0,style:a,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:u,style:[styles.boxInput,{color:d.color,fontSize:o.fontSize,...d.weightStyle}],value:e.text,onChangeText:e.onChangeText,onFocus:e.onFocus,onBlur:e.onBlur,onSubmitEditing:e.onBlur,editable:!i,keyboardType:"decimal-pad",returnKeyType:"done",textAlign:"center",selectionColor:r.colors.primary,accessibilityLabel:s,accessibilityState:{disabled:i},testID:n})})},SliderField=exports.SliderField=(0,_react.forwardRef)((e,t)=>{const{label:i,unit:l,info:s,required:a=!1,helperText:n,error:r,min:o=0,max:d=100,step:u=1,disabled:c=!1,tone:x="primary",size:_,variant:m,haptic:p,showBubble:b=!0,showBounds:h=!0,showInput:j=!1,showStepper:y=!1,startIcon:v,endIcon:g,startLabel:f,endLabel:S,formatValue:I=defaultFormatValue,parseInput:T,animationDuration:R,inputWidth:w=DEFAULT_INPUT_WIDTH,accessibilityLabel:F,style:B,labelStyle:z,boundStyle:V,sliderStyle:D,inputStyle:L,testID:N}=e,q=(0,_index2.useTheme)(),C=(0,_react.useMemo)(()=>buildStyles(q),[q]),$=R??q.motion.duration.fast,A=!0===e.range,W=!0===r||(0,_FieldBase.hasFieldText)(r),P=stepDecimals(u),[M,k]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(A?[o,d]:o),onChange:e.onChange}),[H,U]=A?M:[M,d],E=(0,_valueText.clampValue)(Math.min(H,U),o,d),K=(0,_valueText.clampValue)(Math.max(H,U),o,d),O=(0,_valueText.useValueDraft)({value:E,min:o,max:d,step:u,format:I,parse:T,onChange:e=>k(A?[Math.min(e,K),K]:e)}),G=(0,_valueText.useValueDraft)({value:K,min:o,max:d,step:u,format:I,parse:T,onChange:e=>k([E,Math.max(e,E)])}),stepBy=e=>{const t=(0,_valueText.snapValue)(E+e*u,o,d,u);t!==E&&k(t)},J={color:c?q.colors.text.disabled:q.colors.text.secondary,size:q.components.field?.md?.iconSize??18,disabled:c},Q=[C.bubbleText,{color:(0,_valueText.sliderToneInk)(q,x),fontWeight:q.typography.fontWeight.semibold}],boundText=e=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.bound,{color:c?q.colors.text.disabled:q.colors.text.secondary},V],children:e}),X={min:o,max:d,step:u,disabled:c,tone:x,size:_,variant:m,haptic:p,showLabel:!!b&&"always",renderLabel:b?e=>(0,_jsxRuntime.jsx)(_valueText.CountingText,{value:e,format:I,decimals:P,duration:$,style:Q,testID:N&&!A?`${N}-bubble`:void 0}):void 0,accessibilityLabel:F??i,style:D,testID:N?`${N}-slider`:void 0};return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[C.container,B],testID:N,children:[i?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:C.labelRow,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{required:a,style:z,children:i}),l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.unit,{color:q.colors.text.tertiary}],children:l}):null,s?(0,_jsxRuntime.jsx)(_index6.Tooltip,{content:s,trigger:"press",placement:"top",children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:`About ${i}`,hitSlop:8,style:C.infoButton,children:(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",variant:"bold",size:16,color:q.colors.text.tertiary})})}):null]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.row,b?C.rowWithBubble:null],children:[v?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(v,J)}):null,y&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"minus",size:e.size,color:e.color}),onPress:()=>stepBy(-1),accessibilityLabel:"Decrease",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E<=o,haptic:p,testID:N?`${N}-minus`:void 0}):null,A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:W,disabled:c,width:w,accessibilityLabel:`${i??"Value"} low`,style:L,testID:N?`${N}-input-low`:void 0}):h?boundText(f??I(o)):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:C.sliderWrap,children:A?(0,_jsxRuntime.jsx)(_index5.Slider,{...X,range:!0,value:[E,K],onChange:k}):(0,_jsxRuntime.jsx)(_index5.Slider,{...X,value:E,onChange:k})}),A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:G,error:W,disabled:c,width:w,accessibilityLabel:`${i??"Value"} high`,style:L,testID:N?`${N}-input-high`:void 0}):h?boundText(S??I(d)):null,y&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"add",size:e.size,color:e.color}),onPress:()=>stepBy(1),accessibilityLabel:"Increase",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E>=d,haptic:p,testID:N?`${N}-plus`:void 0}):null,g?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(g,J)}):null,!A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:W,disabled:c,width:w,accessibilityLabel:`${i??"Value"} value`,style:L,testID:N?`${N}-input`:void 0}):null]}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{text:W?r:n,error:W})]})});SliderField.displayName="SliderField";const styles=_reactNative.StyleSheet.create({boxInput:{flex:1,padding:0,margin:0,includeFontPadding:!1}}),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},labelRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.xs},unit:{fontSize:e.typography.fontSize.xs},infoButton:{marginLeft:e.spacing.xxs},row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},rowWithBubble:{marginTop:e.spacing.lg},sliderWrap:{flex:1,paddingHorizontal:10},bound:{fontSize:e.typography.fontSize.sm,fontVariant:["tabular-nums"]},bubbleText:{fontSize:e.typography.fontSize.xs,fontVariant:["tabular-nums"]}});var _default=exports.default=SliderField;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SliderField=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../AppIcon/index.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index4=require("../IconButton/index.js"),_index5=require("../Slider/index.js"),_valueText=require("../Slider/valueText.js"),_index6=require("../Tooltip/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_INPUT_WIDTH=72,defaultFormatValue=e=>String(e),stepDecimals=e=>String(e).split(".")[1]?.length??0,ValueBox=({draft:e,error:t,disabled:i,width:l,accessibilityLabel:s,style:a,testID:n})=>{const r=(0,_index2.useTheme)(),o=(0,_FieldBase.resolveFieldSize)(r,"sm"),d=(0,_FieldBase.resolveFieldTextStyle)(r,{disabled:i}),u=(0,_react.useRef)(null),c=(0,_react.useCallback)(()=>{i||u.current?.focus()},[i]);return(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:"sm",focused:e.editing,disabled:i,error:t,filled:!0,width:l,onPress:c,pressFeedback:!1,paddingHorizontal:r.spacing.sm,gap:r.spacing.xs,trailing:t?(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",size:o.iconSize,color:r.colors.toneText.error}):void 0,style:a,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:u,style:[styles.boxInput,{color:d.color,fontSize:o.fontSize,...d.weightStyle}],value:e.text,onChangeText:e.onChangeText,onFocus:e.onFocus,onBlur:e.onBlur,onSubmitEditing:e.onBlur,editable:!i,keyboardType:"decimal-pad",returnKeyType:"done",textAlign:"center",selectionColor:r.colors.primary,accessibilityLabel:s,accessibilityState:{disabled:i},"aria-disabled":i,testID:n})})},SliderField=exports.SliderField=(0,_react.forwardRef)((e,t)=>{const{label:i,unit:l,info:s,required:a=!1,helperText:n,error:r,min:o=0,max:d=100,step:u=1,disabled:c=!1,tone:x="primary",size:_,variant:m,haptic:p,showBubble:b=!0,showBounds:h=!0,showInput:j=!1,showStepper:y=!1,startIcon:v,endIcon:g,startLabel:f,endLabel:S,formatValue:I=defaultFormatValue,parseInput:T,animationDuration:R,inputWidth:w=DEFAULT_INPUT_WIDTH,accessibilityLabel:F,style:B,labelStyle:z,boundStyle:V,sliderStyle:D,inputStyle:L,testID:N}=e,q=(0,_index2.useTheme)(),C=(0,_react.useMemo)(()=>buildStyles(q),[q]),$=R??q.motion.duration.fast,A=!0===e.range,W=!0===r||(0,_FieldBase.hasFieldText)(r),P=stepDecimals(u),[M,k]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(A?[o,d]:o),onChange:e.onChange}),[H,U]=A?M:[M,d],E=(0,_valueText.clampValue)(Math.min(H,U),o,d),K=(0,_valueText.clampValue)(Math.max(H,U),o,d),O=(0,_valueText.useValueDraft)({value:E,min:o,max:d,step:u,format:I,parse:T,onChange:e=>k(A?[Math.min(e,K),K]:e)}),G=(0,_valueText.useValueDraft)({value:K,min:o,max:d,step:u,format:I,parse:T,onChange:e=>k([E,Math.max(e,E)])}),stepBy=e=>{const t=(0,_valueText.snapValue)(E+e*u,o,d,u);t!==E&&k(t)},J={color:c?q.colors.text.disabled:q.colors.text.secondary,size:q.components.field?.md?.iconSize??18,disabled:c},Q=[C.bubbleText,{color:(0,_valueText.sliderToneInk)(q,x),fontWeight:q.typography.fontWeight.semibold}],boundText=e=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.bound,{color:c?q.colors.text.disabled:q.colors.text.secondary},V],children:e}),X={min:o,max:d,step:u,disabled:c,tone:x,size:_,variant:m,haptic:p,showLabel:!!b&&"always",renderLabel:b?e=>(0,_jsxRuntime.jsx)(_valueText.CountingText,{value:e,format:I,decimals:P,duration:$,style:Q,testID:N&&!A?`${N}-bubble`:void 0}):void 0,accessibilityLabel:F??i,style:D,testID:N?`${N}-slider`:void 0};return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[C.container,B],testID:N,children:[i?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:C.labelRow,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{required:a,style:z,children:i}),l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.unit,{color:q.colors.text.tertiary}],children:l}):null,s?(0,_jsxRuntime.jsx)(_index6.Tooltip,{content:s,trigger:"press",placement:"top",children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:`About ${i}`,hitSlop:8,style:C.infoButton,children:(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",variant:"bold",size:16,color:q.colors.text.tertiary})})}):null]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.row,b?C.rowWithBubble:null],children:[v?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(v,J)}):null,y&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"minus",size:e.size,color:e.color}),onPress:()=>stepBy(-1),accessibilityLabel:"Decrease",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E<=o,haptic:p,testID:N?`${N}-minus`:void 0}):null,A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:W,disabled:c,width:w,accessibilityLabel:`${i??"Value"} low`,style:L,testID:N?`${N}-input-low`:void 0}):h?boundText(f??I(o)):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:C.sliderWrap,children:A?(0,_jsxRuntime.jsx)(_index5.Slider,{...X,range:!0,value:[E,K],onChange:k}):(0,_jsxRuntime.jsx)(_index5.Slider,{...X,value:E,onChange:k})}),A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:G,error:W,disabled:c,width:w,accessibilityLabel:`${i??"Value"} high`,style:L,testID:N?`${N}-input-high`:void 0}):h?boundText(S??I(d)):null,y&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"add",size:e.size,color:e.color}),onPress:()=>stepBy(1),accessibilityLabel:"Increase",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E>=d,haptic:p,testID:N?`${N}-plus`:void 0}):null,g?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(g,J)}):null,!A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:W,disabled:c,width:w,accessibilityLabel:`${i??"Value"} value`,style:L,testID:N?`${N}-input`:void 0}):null]}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{text:W?r:n,error:W})]})});SliderField.displayName="SliderField";const styles=_reactNative.StyleSheet.create({boxInput:{flex:1,padding:0,margin:0,includeFontPadding:!1}}),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},labelRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.xs},unit:{fontSize:e.typography.fontSize.xs},infoButton:{marginLeft:e.spacing.xxs},row:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},rowWithBubble:{marginTop:e.spacing.lg},sliderWrap:{flex:1,paddingHorizontal:10},bound:{fontSize:e.typography.fontSize.sm,fontVariant:["tabular-nums"]},bubbleText:{fontSize:e.typography.fontSize.xs,fontVariant:["tabular-nums"]}});var _default=exports.default=SliderField;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Spinner=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_squircle=require("../../utils/squircle.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(a=t?r:i){if(a.has(e))return a.get(e);a.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(s,t,n):s[t]=e[t]);return s})(e,t)}const sizeMap={sm:20,md:32,lg:48},DOT_COUNT=3,DOT_STAGGER_MS=150,DOT_CYCLE_MS=600,Dot=({size:e,color:t,delay:i,duration:r})=>{const a=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;return(0,_react.useEffect)(()=>{const e=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.delay(i),_reactNative.Animated.timing(a,{toValue:1.4,duration:r/2,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(a,{toValue:1,duration:r/2,easing:_reactNative.Easing.in(_reactNative.Easing.quad),useNativeDriver:!0})]));return e.start(),()=>{e.stop()}},[a,i,r]),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{width:e,height:e,borderRadius:e/2,..._corners.smoothCorners,backgroundColor:t,transform:[{scale:a}]}})},Spinner=exports.Spinner=(0,_react.forwardRef)((e,t)=>{const{size:i="md",color:r,message:a,overlay:n=!1,backdropColor:s,variant:o="circular",accessibilityLabel:l,style:c,testID:u}=e,d=(0,_index.useTheme)(),_=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current;(0,_react.useEffect)(()=>{_reactNative.Animated.timing(_,{toValue:1,duration:d.motion.duration.normal,easing:_reactNative.Easing.bezier(...d.motion.easing.standard),useNativeDriver:!0}).start()},[_,d]);const m=(0,_react.useMemo)(()=>buildStyles(d),[d]),g=sizeMap[i],y=r??d.colors.primary,p=s??d.colors.background.overlay,v=(0,_react.useMemo)(()=>{if("dots"===o){const e=Math.max(6,Math.round(g/4));return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m.dotsRow,{gap:Math.round(e/2)}],children:Array.from({length:3}).map((t,i)=>(0,_jsxRuntime.jsx)(Dot,{size:e,color:y,delay:150*i,duration:600},i))})}return(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{color:y,size:"sm"===i?"small":"large",style:{width:g,height:g}})},[o,i,g,y,m.dotsRow]),f=l??a??"Loading",h=(0,_SquircleFill.useSquircle)(n,d.radius.lg),x=h.active&&h.size?{borderRadius:(0,_squircle.squircleHostRadius)(h.size.width,h.size.height,d.radius.lg)}:null,j=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{ref:t,accessible:!0,accessibilityRole:"progressbar",accessibilityLiveRegion:"polite",accessibilityLabel:f,accessibilityState:{busy:!0},testID:u,onLayout:h.onLayout,style:[n?m.overlayContent:m.inlineContent,x,{opacity:_}],children:[h.active&&h.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:h.size.width,height:h.size.height,radius:d.radius.lg,fill:d.colors.background.elevated}):null,v,a?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.message,{color:d.colors.text.primary,fontSize:d.typography.fontSize.base,fontWeight:d.typography.fontWeight.medium,marginTop:d.spacing.md}],numberOfLines:2,children:a}):null]});return n?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"auto",style:[m.overlay,{backgroundColor:p},c],children:j}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m.inline,c],children:j})});Spinner.displayName="Spinner";const buildStyles=e=>_reactNative.StyleSheet.create({inline:{alignItems:"center",justifyContent:"center"},inlineContent:{alignItems:"center",justifyContent:"center"},overlay:{..._reactNative.StyleSheet.absoluteFill,alignItems:"center",justifyContent:"center",zIndex:1e3},overlayContent:{alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,..._corners.smoothCorners,paddingHorizontal:e.spacing.xl,paddingVertical:e.spacing.xl,minWidth:140,...e.shadows.lg},dotsRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},message:{textAlign:"center"}});var _default=exports.default=Spinner;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Spinner=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_squircle=require("../../utils/squircle.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const sizeMap={sm:20,md:32,lg:48},DOT_COUNT=3,DOT_STAGGER_MS=150,DOT_CYCLE_MS=600,Dot=({size:e,color:t,delay:i,duration:r})=>{const a=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;return(0,_react.useEffect)(()=>{const e=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.delay(i),_reactNative.Animated.timing(a,{toValue:1.4,duration:r/2,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(a,{toValue:1,duration:r/2,easing:_reactNative.Easing.in(_reactNative.Easing.quad),useNativeDriver:!0})]));return e.start(),()=>{e.stop()}},[a,i,r]),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{width:e,height:e,borderRadius:e/2,..._corners.smoothCorners,backgroundColor:t,transform:[{scale:a}]}})},Spinner=exports.Spinner=(0,_react.forwardRef)((e,t)=>{const{size:i="md",color:r,message:a,overlay:n=!1,backdropColor:s,variant:o="circular",accessibilityLabel:l,style:c,testID:u}=e,d=(0,_index.useTheme)(),m=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current;(0,_react.useEffect)(()=>{_reactNative.Animated.timing(m,{toValue:1,duration:d.motion.duration.normal,easing:_reactNative.Easing.bezier(...d.motion.easing.standard),useNativeDriver:!0}).start()},[m,d]);const _=(0,_react.useMemo)(()=>buildStyles(d),[d]),g=sizeMap[i],v=r??d.colors.primary,y=s??d.colors.background.overlay,x=(0,_react.useMemo)(()=>{if("dots"===o){const e=Math.max(6,Math.round(g/4));return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[_.dotsRow,{gap:Math.round(e/2)}],children:Array.from({length:3}).map((t,i)=>(0,_jsxRuntime.jsx)(Dot,{size:e,color:v,delay:150*i,duration:600},i))})}return(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{color:v,size:"sm"===i?"small":"large",style:{width:g,height:g}})},[o,i,g,v,_.dotsRow]),h=l??a??"Loading",p=(0,_SquircleFill.useSquircle)(n,d.radius.lg),j=p.active&&p.size?{borderRadius:(0,_squircle.squircleHostRadius)(p.size.width,p.size.height,d.radius.lg)}:null,b=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{ref:t,accessible:!0,accessibilityRole:"progressbar",accessibilityLiveRegion:"polite",accessibilityLabel:h,accessibilityState:{busy:!0},"aria-busy":!0,testID:u,onLayout:p.onLayout,style:[n?_.overlayContent:_.inlineContent,j,{opacity:m}],children:[p.active&&p.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:p.size.width,height:p.size.height,radius:d.radius.lg,fill:d.colors.background.elevated}):null,x,a?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[_.message,{color:d.colors.text.primary,fontSize:d.typography.fontSize.base,fontWeight:d.typography.fontWeight.medium,marginTop:d.spacing.md}],numberOfLines:2,children:a}):null]});return n?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"auto",style:[_.overlay,{backgroundColor:y},c],children:b}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[_.inline,c],children:b})});Spinner.displayName="Spinner";const buildStyles=e=>_reactNative.StyleSheet.create({inline:{alignItems:"center",justifyContent:"center"},inlineContent:{alignItems:"center",justifyContent:"center"},overlay:{..._reactNative.StyleSheet.absoluteFill,alignItems:"center",justifyContent:"center",zIndex:1e3},overlayContent:{alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,..._corners.smoothCorners,paddingHorizontal:e.spacing.xl,paddingVertical:e.spacing.xl,minWidth:140,...e.shadows.lg},dotsRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},message:{textAlign:"center"}});var _default=exports.default=Spinner;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.StatusBadge=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var s,a,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(s=t?o:r){if(s.has(e))return s.get(e);s.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?s(n,t,a):n[t]=e[t]);return n})(e,t)}const sizeMap={sm:{height:22,paddingH:8,fontSize:11,dot:5,gap:5},md:{height:24,paddingH:10,fontSize:12,dot:6,gap:6}},SOFT_FILL_OPACITY=.14,SOFT_BORDER_OPACITY=.4,BORDER_WIDTH=1,toneFor=(e,t)=>{switch(t){case"success":return{base:e.colors.success,on:e.colors.onSuccess};case"warning":return{base:e.colors.warning,on:e.colors.onWarning};case"error":return{base:e.colors.error,on:e.colors.onError};case"info":return{base:e.colors.info,on:e.colors.onInfo};case"primary":return{base:e.colors.primary,on:e.colors.onPrimary};default:return{base:e.colors.text.secondary,on:e.colors.text.inverse}}},isHex=e=>"string"==typeof e&&/^#[0-9a-f]{6}$/i.test(e),paletteFor=(e,t,r,o)=>{const s=isHex(o),{base:a,on:n}=s?{base:o,on:e.colors.text.inverse}:toneFor(e,t),i=!s&&"neutral"===t,l=i?e.colors.background.tertiary:(0,_color.tintOf)(a,.14,e.colors.background.secondary),d=i?e.colors.border.primary:(0,_color.tintOf)(a,.4,a);switch(r){case"solid":return{fill:a,border:a,text:n,dot:n};case"outline":return{fill:"transparent",border:i?d:a,text:a,dot:a};default:return{fill:l,border:d,text:a,dot:a}}},StatusBadge=exports.StatusBadge=(0,_react.forwardRef)((e,t)=>{const{label:r,tone:o="neutral",variant:s="soft",size:a="md",dot:n=!1,color:i,loading:l=!1,accessibilityLabel:d,style:c,textStyle:u,testID:g}=e,f=(0,_index.useTheme)(),x=sizeMap[a],p=(0,_react.useMemo)(()=>paletteFor(f,o,s,i),[f,o,s,i]);return l?(0,_jsxRuntime.jsx)(StatusBadgeSkeleton,{...e}):(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessible:!0,accessibilityRole:"text",accessibilityLabel:d??r,testID:g,style:[styles.base,{minHeight:x.height,paddingHorizontal:x.paddingH,borderRadius:f.radius.full,..._corners.smoothCorners,backgroundColor:p.fill,borderColor:p.border,borderWidth:1},c],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"status-badge-dot",style:{width:x.dot,height:x.dot,borderRadius:x.dot/2,marginRight:x.gap,backgroundColor:p.dot}}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:p.text,fontSize:x.fontSize,...(0,_index.fontFor)(f,"semibold")},u],numberOfLines:1,maxFontSizeMultiplier:f.maxFontSizeMultiplier,children:r})]})});StatusBadge.displayName="StatusBadge";const StatusBadgeSkeleton=({label:e,size:t="md",dot:r,style:o})=>{const s=sizeMap[t],a=Math.max(32,Math.min(120,6.5*(e??"").length))+2*s.paddingH+(r?s.dot+s.gap:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:a,height:s.height,radius:s.height/2,style:[styles.skeleton,o]})};StatusBadgeSkeleton.displayName="StatusBadgeSkeleton",StatusBadge.Skeleton=StatusBadgeSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},skeleton:{alignSelf:"flex-start"}});var _default=exports.default=StatusBadge;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.StatusBadge=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const sizeMap={sm:{height:22,paddingH:8,fontSize:11,dot:5,gap:5},md:{height:24,paddingH:10,fontSize:12,dot:6,gap:6}},SOFT_FILL_OPACITY=.14,SOFT_BORDER_OPACITY=.4,BORDER_WIDTH=1,toneFor=(e,t)=>{const{toneText:r}=e.colors;switch(t){case"success":return{base:e.colors.success,on:e.colors.onSuccess,ink:r.success};case"warning":return{base:e.colors.warning,on:e.colors.onWarning,ink:r.warning};case"error":return{base:e.colors.error,on:e.colors.onError,ink:r.error};case"info":return{base:e.colors.info,on:e.colors.onInfo,ink:r.info};case"primary":return{base:e.colors.primary,on:e.colors.onPrimary,ink:r.primary};default:return{base:e.colors.text.secondary,on:e.colors.text.inverse,ink:e.colors.text.secondary}}},isHex=e=>"string"==typeof e&&/^#[0-9a-f]{6}$/i.test(e),paletteFor=(e,t,r,o)=>{const s=isHex(o),{base:a,on:n,ink:i}=s?{base:o,on:e.colors.text.inverse,ink:o}:toneFor(e,t),l=!s&&"neutral"===t,c=l?e.colors.background.tertiary:(0,_color.tintOf)(a,.14,e.colors.background.secondary),d=l?e.colors.border.primary:(0,_color.tintOf)(a,.4,a);switch(r){case"solid":return{fill:a,border:a,text:n,dot:n};case"outline":return{fill:"transparent",border:l?d:a,text:i,dot:a};default:return{fill:c,border:d,text:i,dot:a}}},StatusBadge=exports.StatusBadge=(0,_react.forwardRef)((e,t)=>{const{label:r,tone:o="neutral",variant:s="soft",size:a="md",dot:n=!1,color:i,loading:l=!1,accessibilityLabel:c,style:d,textStyle:u,testID:g}=e,x=(0,_index.useTheme)(),b=sizeMap[a],f=(0,_react.useMemo)(()=>paletteFor(x,o,s,i),[x,o,s,i]);return l?(0,_jsxRuntime.jsx)(StatusBadgeSkeleton,{...e}):(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessible:!0,accessibilityRole:"text",accessibilityLabel:c??r,testID:g,style:[styles.base,{minHeight:b.height,paddingHorizontal:b.paddingH,borderRadius:x.radius.full,..._corners.smoothCorners,backgroundColor:f.fill,borderColor:f.border,borderWidth:1},d],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"status-badge-dot",style:{width:b.dot,height:b.dot,borderRadius:b.dot/2,marginRight:b.gap,backgroundColor:f.dot}}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:f.text,fontSize:b.fontSize,...(0,_index.fontFor)(x,"semibold")},u],numberOfLines:1,maxFontSizeMultiplier:x.maxFontSizeMultiplier,children:r})]})});StatusBadge.displayName="StatusBadge";const StatusBadgeSkeleton=({label:e,size:t="md",dot:r,style:o})=>{const s=sizeMap[t],a=Math.max(32,Math.min(120,6.5*(e??"").length))+2*s.paddingH+(r?s.dot+s.gap:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:a,height:s.height,radius:s.height/2,style:[styles.skeleton,o]})};StatusBadgeSkeleton.displayName="StatusBadgeSkeleton",StatusBadge.Skeleton=StatusBadgeSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},skeleton:{alignSelf:"flex-start"}});var _default=exports.default=StatusBadge;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Stepper=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var s,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(s=t?r:i){if(s.has(e))return s.get(e);s.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?s(o,t,n):o[t]=e[t]);return o})(e,t)}const CIRCLE_SIZE=24,SEGMENT_HEIGHT=4,SEGMENT_GAP=6,PULSE_SIZE=32,PULSE_DURATION=1100,toneColorFor=(e,t)=>"success"===t?e.colors.success:e.colors.primary,toneOnColorFor=(e,t)=>"success"===t?e.colors.onSuccess:e.colors.onPrimary,StepCircle=({index:e,step:t,status:i,toneColor:r,upcomingColor:s,upcomingFillColor:n,textOnColor:o,upcomingTextColor:a,interactive:l,canPress:c,totalSteps:u,onPress:p,circleSize:d,pulseSize:m,pulseEnabled:x,pulseDuration:_,circleSlotStyle:h})=>{const y="active"===i,v=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,g=(0,_react.useRef)((0,_index.createAnimatedValue)(.5)).current;(0,_react.useEffect)(()=>{if(!y||!x)return v.setValue(1),void g.setValue(0);const e=_reactNative.Animated.loop(_reactNative.Animated.parallel([_reactNative.Animated.sequence([_reactNative.Animated.timing(v,{toValue:1.4,duration:_,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(v,{toValue:1,duration:0,useNativeDriver:!0})]),_reactNative.Animated.sequence([_reactNative.Animated.timing(g,{toValue:0,duration:_,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(g,{toValue:.5,duration:0,useNativeDriver:!0})])]));return e.start(),()=>e.stop()},[y,v,g,x,_]);const j="upcoming"===i?n:r,S="upcoming"===i?s:r,b="upcoming"===i?a:o,f="complete"===i,R=`Step ${e+1} of ${u}, ${t.label}, ${i}`,w=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:circleStyles.relative,children:[y&&x?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[circleStyles.pulse,{width:m,height:m,borderRadius:m/2,..._corners.smoothCorners,backgroundColor:r,opacity:g,transform:[{scale:v}]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[circleStyles.circle,{width:d,height:d,borderRadius:d/2,..._corners.smoothCorners,backgroundColor:j,borderColor:S},h],children:t.icon?t.icon:f?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[circleStyles.glyph,{color:b}],children:"✓"}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[circleStyles.glyph,{color:b}],children:e+1})})]});return l?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>p(e),disabled:!c,accessibilityRole:"button",accessibilityLabel:R,accessibilityState:{selected:y,disabled:!c},hitSlop:8,children:w}):(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"text",accessibilityLabel:R,accessibilityState:{selected:y},children:w})},circleStyles=_reactNative.StyleSheet.create({relative:{alignItems:"center",justifyContent:"center"},pulse:{position:"absolute"},circle:{borderWidth:2,alignItems:"center",justifyContent:"center"},glyph:{fontSize:12,fontWeight:"600",includeFontPadding:!1}}),Stepper=exports.Stepper=(0,_react.forwardRef)((e,t)=>{const{steps:i,activeStep:r,defaultActiveStep:s=0,pressMode:n="none",onStepPress:o,onActiveStepChange:a,variant:l="horizontal",tone:c="primary",formatCaption:u,showCaption:p=!0,loading:d=!1,accessibilityLabel:m,style:x,containerStyle:_,circleStyle:h,labelStyle:y,connectorStyle:v,haptic:g,testID:j}=e,S=(0,_index.useTheme)(),b=S.components.stepper,f=b?.circleSize??24,R=b?.pulseSize??32,w=b?.pulseAnimation??!1,C=b?.pulseDuration??1100,N=(0,_hapticUtils.resolveHaptic)(g,"selection"),k=(0,_react.useMemo)(()=>buildStyles(S),[S]),V=toneColorFor(S,c),I=S.colors.border.primary,D=S.colors.background.primary,A=S.colors.text.secondary,P=toneOnColorFor(S,c),E=i.length,L="none"!==n,T=void 0!==r,[$,z]=(0,_react.useState)(s),F=T?r:$,O=null==F||F<0?null:F,q=i.map((e,t)=>(e=>null===O?"upcoming":e<O?"complete":e===O?"active":"upcoming")(t)),M=q.filter(e=>"upcoming"!==e).length,B=q.filter(e=>"complete"===e).length,canPressStatus=e=>"back"===n?"complete"===e:L,handleStepPress=e=>{if(!canPressStatus(q[e]))return;N&&(0,_hapticUtils.triggerHaptic)(N),o?.(e);const t="select"===n&&e===O?null:e;T||z(t),a?.(t)},W=(0,_react.useRef)((0,_index.createAnimatedValue)(M)).current,U=(0,_react.useRef)(M);(0,_react.useEffect)(()=>{const e=U.current;if(e===M)return;U.current=M;const t=_reactNative.Animated.timing(W,{toValue:M,duration:S.motion.duration.normal*Math.abs(M-e),easing:_reactNative.Easing.linear,useNativeDriver:!1});return t.start(),()=>t.stop()},[M,W,S.motion]);const sliceOf=e=>W.interpolate({inputRange:[e,e+1],outputRange:["0%","100%"],extrapolate:"clamp"}),G=E<=1?"0%":W.interpolate({inputRange:[1,E],outputRange:["0%","100%"],extrapolate:"clamp"}),H=null!==O&&O<E?O:null,Z=m??(null!==H?`Progress: step ${H+1} of ${E}`:`Progress: ${B} of ${E} steps done`),[J,K]=(0,_react.useState)(0),Q=E>0&&J>0?J/(2*E):0,X=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:[k.container,_,x],testID:j,accessibilityRole:"progressbar",accessibilityLabel:Z,accessibilityValue:{min:0,max:E,now:M},children:"segmented"===l?(()=>{const e=null!==H?i[H]:void 0,t=p?u?u(H,E,e):null!==H?`Step ${H+1} of ${E}${e?.label?` · ${e.label}`:""}`:`${B} of ${E} done`:"";return(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[k.sCaption,{color:S.colors.text.secondary,fontSize:S.typography.fontSize.sm,marginBottom:S.spacing.sm},y],numberOfLines:1,children:t}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:k.sRow,children:i.map((e,t)=>{const i=q[t],r=`Step ${t+1} of ${E}, ${e.label}, ${i}`,s=(0,_jsxRuntime.jsx)(_reactNative.View,{testID:j?`${j}-segment-${t}`:void 0,style:[k.sTrack,{backgroundColor:I},v],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.sFill,{backgroundColor:V,width:sliceOf(t)}]})});if(L){const n=canPressStatus(i);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:k.sItem,onPress:()=>handleStepPress(t),disabled:!n,accessibilityRole:"button",accessibilityLabel:r,accessibilityState:{selected:"active"===i,disabled:!n},hitSlop:{top:12,bottom:12},children:s},e.key)}return(0,_jsxRuntime.jsx)(_reactNative.View,{style:k.sItem,accessibilityRole:"text",accessibilityLabel:r,accessibilityState:{selected:"active"===i},children:s},e.key)})})]})})():"vertical"===l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:k.vCol,children:i.map((e,t)=>{const i=q[t],r=t===E-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:k.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:k.vLeft,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:V,upcomingColor:I,upcomingFillColor:D,onPressColor:V,textOnColor:P,upcomingTextColor:A,interactive:L,canPress:canPressStatus(i),totalSteps:E,onPress:handleStepPress,circleSize:f,pulseSize:R,pulseEnabled:w,pulseDuration:C,circleSlotStyle:h}),r?null:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[k.vConnectorContainer,v],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[k.vConnectorTrack,{backgroundColor:I}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.vConnectorFill,{backgroundColor:V,height:sliceOf(t+1)}]})]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:k.vBody,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[k.vLabel,{color:"upcoming"===i?S.colors.text.tertiary:S.colors.text.primary,fontSize:S.typography.fontSize.base,fontWeight:S.typography.fontWeight.semibold},y],numberOfLines:1,children:e?.label??" "}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[k.vDescription,{color:S.colors.text.secondary,fontSize:S.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]})]},e.key)})}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:k.hRow,onLayout:e=>K(e.nativeEvent.layout.width),children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:[k.hConnectorContainer,{left:Q,right:Q},v],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[k.hConnectorTrack,{backgroundColor:I}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.hConnectorFill,{backgroundColor:V,width:G}]})]}),i.map((e,t)=>{const i=q[t];return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:k.hStepItem,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:V,upcomingColor:I,upcomingFillColor:D,onPressColor:V,textOnColor:P,upcomingTextColor:A,interactive:L,canPress:canPressStatus(i),totalSteps:E,onPress:handleStepPress,circleSize:f,pulseSize:R,pulseEnabled:w,pulseDuration:C,circleSlotStyle:h}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[k.hLabel,{color:"upcoming"===i?S.colors.text.tertiary:S.colors.text.primary,fontSize:S.typography.fontSize.xs},y],numberOfLines:1,children:e?.label??" "})]},e.key)})]})});return d?(0,_jsxRuntime.jsx)(StepperSkeleton,{...e}):X});Stepper.displayName="Stepper";const StepperSkeleton=({steps:e,variant:t="horizontal",showCaption:i=!0,containerStyle:r,style:s,testID:n})=>{const o=(0,_index.useTheme)(),a=o.components.stepper,l=a?.circleSize??24,c=(0,_react.useMemo)(()=>buildStyles(o),[o]),u=e.length||3;return"segmented"===t?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.container,r,s],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},children:[i?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"45%",height:14,style:{marginBottom:o.spacing.sm}}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.sRow,children:Array.from({length:u}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.sItem,children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:4,radius:2})},`sk-step-${t}`))})]}):"vertical"===t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c.container,r,s],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:skeletonStyles.vCol,children:Array.from({length:u}).map((e,t)=>{const i=t===u-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:skeletonStyles.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[skeletonStyles.vLeft,{width:l+8}],children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:l,height:l}),i?null:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:2,height:36})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:skeletonStyles.vBody,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:4}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12})]})]},`sk-step-${t}`)})})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c.container,r,s],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:c.hRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[c.hConnectorContainer,{left:50/u+"%",right:50/u+"%"}],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:2,radius:1})}),Array.from({length:u}).map((e,t)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:c.hStepItem,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:l,height:l}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12,style:{marginTop:o.spacing.xs}})]},`sk-step-${t}`))]})})};StepperSkeleton.displayName="StepperSkeleton",Stepper.Skeleton=StepperSkeleton;const skeletonStyles=_reactNative.StyleSheet.create({vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center"},vBody:{flex:1,paddingLeft:12,paddingBottom:16}}),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},hRow:{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",position:"relative"},hConnectorContainer:{position:"absolute",top:11,height:2,flexDirection:"row",alignItems:"center"},hConnectorTrack:{position:"absolute",left:0,right:0,height:2,borderRadius:1,..._corners.smoothCorners},hConnectorFill:{position:"absolute",left:0,height:2,borderRadius:1,..._corners.smoothCorners},hStepItem:{alignItems:"center",flex:1},hLabel:{marginTop:e.spacing.xs,textAlign:"center"},vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center",alignSelf:"stretch",width:32},vConnectorContainer:{flex:1,width:2,minHeight:32,position:"relative",alignSelf:"center"},vConnectorTrack:{position:"absolute",top:0,bottom:0,width:2,borderRadius:1,..._corners.smoothCorners},vConnectorFill:{position:"absolute",top:0,width:2,borderRadius:1,..._corners.smoothCorners},vBody:{flex:1,paddingLeft:e.spacing.sm,paddingBottom:e.spacing.md},vLabel:{marginBottom:2},vDescription:{},sCaption:{includeFontPadding:!1},sRow:{flexDirection:"row",columnGap:6},sItem:{flex:1},sTrack:{height:4,borderRadius:2,overflow:"hidden"},sFill:{height:4,borderRadius:2}});var _default=exports.default=Stepper;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Stepper=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CIRCLE_SIZE=24,SEGMENT_HEIGHT=4,SEGMENT_GAP=6,PULSE_SIZE=32,PULSE_DURATION=1100,toneColorFor=(e,t)=>"success"===t?e.colors.success:e.colors.primary,toneOnColorFor=(e,t)=>"success"===t?e.colors.onSuccess:e.colors.onPrimary,StepCircle=({index:e,step:t,status:i,toneColor:s,upcomingColor:r,upcomingFillColor:n,textOnColor:o,upcomingTextColor:a,interactive:l,canPress:c,totalSteps:u,onPress:d,circleSize:p,pulseSize:m,pulseEnabled:x,pulseDuration:h,circleSlotStyle:_})=>{const y="active"===i,v=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,g=(0,_react.useRef)((0,_index.createAnimatedValue)(.5)).current;(0,_react.useEffect)(()=>{if(!y||!x)return v.setValue(1),void g.setValue(0);const e=_reactNative.Animated.loop(_reactNative.Animated.parallel([_reactNative.Animated.sequence([_reactNative.Animated.timing(v,{toValue:1.4,duration:h,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(v,{toValue:1,duration:0,useNativeDriver:!0})]),_reactNative.Animated.sequence([_reactNative.Animated.timing(g,{toValue:0,duration:h,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(g,{toValue:.5,duration:0,useNativeDriver:!0})])]));return e.start(),()=>e.stop()},[y,v,g,x,h]);const j="upcoming"===i?n:s,S="upcoming"===i?r:s,b="upcoming"===i?a:o,R="complete"===i,f=`Step ${e+1} of ${u}, ${t.label}, ${i}`,w=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:circleStyles.relative,children:[y&&x?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[circleStyles.pulse,{width:m,height:m,borderRadius:m/2,..._corners.smoothCorners,backgroundColor:s,opacity:g,transform:[{scale:v}]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[circleStyles.circle,{width:p,height:p,borderRadius:p/2,..._corners.smoothCorners,backgroundColor:j,borderColor:S},_],children:t.icon?t.icon:R?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[circleStyles.glyph,{color:b}],children:"✓"}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[circleStyles.glyph,{color:b}],children:e+1})})]});return l?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>d(e),disabled:!c,accessibilityRole:"button",accessibilityLabel:f,accessibilityState:{selected:y,disabled:!c},"aria-selected":y,"aria-disabled":!c,hitSlop:8,children:w}):(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"text",accessibilityLabel:f,accessibilityState:{selected:y},"aria-selected":y,children:w})},circleStyles=_reactNative.StyleSheet.create({relative:{alignItems:"center",justifyContent:"center"},pulse:{position:"absolute"},circle:{borderWidth:2,alignItems:"center",justifyContent:"center"},glyph:{fontSize:12,fontWeight:"600",includeFontPadding:!1}}),Stepper=exports.Stepper=(0,_react.forwardRef)((e,t)=>{const{steps:i,activeStep:s,defaultActiveStep:r=0,pressMode:n="none",onStepPress:o,onActiveStepChange:a,variant:l="horizontal",tone:c="primary",formatCaption:u,showCaption:d=!0,loading:p=!1,accessibilityLabel:m,style:x,containerStyle:h,circleStyle:_,labelStyle:y,connectorStyle:v,haptic:g,testID:j}=e,S=(0,_index.useTheme)(),b=S.components.stepper,R=b?.circleSize??24,f=b?.pulseSize??32,w=b?.pulseAnimation??!1,C=b?.pulseDuration??1100,N=(0,_hapticUtils.resolveHaptic)(g,"selection"),V=(0,_react.useMemo)(()=>buildStyles(S),[S]),k=toneColorFor(S,c),I=S.colors.border.primary,D=S.colors.background.primary,A=S.colors.text.secondary,E=toneOnColorFor(S,c),L=i.length,T="none"!==n,$=void 0!==s,[P,z]=(0,_react.useState)(r),F=$?s:P,O=null==F||F<0?null:F,B=i.map((e,t)=>(e=>null===O?"upcoming":e<O?"complete":e===O?"active":"upcoming")(t)),q=B.filter(e=>"upcoming"!==e).length,M=B.filter(e=>"complete"===e).length,canPressStatus=e=>"back"===n?"complete"===e:T,handleStepPress=e=>{if(!canPressStatus(B[e]))return;N&&(0,_hapticUtils.triggerHaptic)(N),o?.(e);const t="select"===n&&e===O?null:e;$||z(t),a?.(t)},U=(0,_react.useRef)((0,_index.createAnimatedValue)(q)).current,G=(0,_react.useRef)(q);(0,_react.useEffect)(()=>{const e=G.current;if(e===q)return;G.current=q;const t=_reactNative.Animated.timing(U,{toValue:q,duration:S.motion.duration.normal*Math.abs(q-e),easing:_reactNative.Easing.linear,useNativeDriver:!1});return t.start(),()=>t.stop()},[q,U,S.motion]);const sliceOf=e=>U.interpolate({inputRange:[e,e+1],outputRange:["0%","100%"],extrapolate:"clamp"}),H=L<=1?"0%":U.interpolate({inputRange:[1,L],outputRange:["0%","100%"],extrapolate:"clamp"}),W=null!==O&&O<L?O:null,Z=m??(null!==W?`Progress: step ${W+1} of ${L}`:`Progress: ${M} of ${L} steps done`),[J,K]=(0,_react.useState)(0),Q=L>0&&J>0?J/(2*L):0,X=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:[V.container,h,x],testID:j,accessibilityRole:"progressbar",accessibilityLabel:Z,accessibilityValue:{min:0,max:L,now:q},children:"segmented"===l?(()=>{const e=null!==W?i[W]:void 0,t=d?u?u(W,L,e):null!==W?`Step ${W+1} of ${L}${e?.label?` · ${e.label}`:""}`:`${M} of ${L} done`:"";return(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[d?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[V.sCaption,{color:S.colors.text.secondary,fontSize:S.typography.fontSize.sm,marginBottom:S.spacing.sm},y],numberOfLines:1,children:t}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:V.sRow,children:i.map((e,t)=>{const i=B[t],s=`Step ${t+1} of ${L}, ${e.label}, ${i}`,r=(0,_jsxRuntime.jsx)(_reactNative.View,{testID:j?`${j}-segment-${t}`:void 0,style:[V.sTrack,{backgroundColor:I},v],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[V.sFill,{backgroundColor:k,width:sliceOf(t)}]})});if(T){const n=canPressStatus(i);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:V.sItem,onPress:()=>handleStepPress(t),disabled:!n,accessibilityRole:"button",accessibilityLabel:s,accessibilityState:{selected:"active"===i,disabled:!n},"aria-selected":"active"===i,"aria-disabled":!n,hitSlop:{top:12,bottom:12},children:r},e.key)}return(0,_jsxRuntime.jsx)(_reactNative.View,{style:V.sItem,accessibilityRole:"text",accessibilityLabel:s,accessibilityState:{selected:"active"===i},"aria-selected":"active"===i,children:r},e.key)})})]})})():"vertical"===l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:V.vCol,children:i.map((e,t)=>{const i=B[t],s=t===L-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:V.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:V.vLeft,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:k,upcomingColor:I,upcomingFillColor:D,onPressColor:k,textOnColor:E,upcomingTextColor:A,interactive:T,canPress:canPressStatus(i),totalSteps:L,onPress:handleStepPress,circleSize:R,pulseSize:f,pulseEnabled:w,pulseDuration:C,circleSlotStyle:_}),s?null:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[V.vConnectorContainer,v],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[V.vConnectorTrack,{backgroundColor:I}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[V.vConnectorFill,{backgroundColor:k,height:sliceOf(t+1)}]})]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:V.vBody,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[V.vLabel,{color:"upcoming"===i?S.colors.text.tertiary:S.colors.text.primary,fontSize:S.typography.fontSize.base,fontWeight:S.typography.fontWeight.semibold},y],numberOfLines:1,children:e?.label??" "}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[V.vDescription,{color:S.colors.text.secondary,fontSize:S.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]})]},e.key)})}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:V.hRow,onLayout:e=>K(e.nativeEvent.layout.width),children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:[V.hConnectorContainer,{left:Q,right:Q},v],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[V.hConnectorTrack,{backgroundColor:I}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[V.hConnectorFill,{backgroundColor:k,width:H}]})]}),i.map((e,t)=>{const i=B[t];return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:V.hStepItem,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:k,upcomingColor:I,upcomingFillColor:D,onPressColor:k,textOnColor:E,upcomingTextColor:A,interactive:T,canPress:canPressStatus(i),totalSteps:L,onPress:handleStepPress,circleSize:R,pulseSize:f,pulseEnabled:w,pulseDuration:C,circleSlotStyle:_}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[V.hLabel,{color:"upcoming"===i?S.colors.text.tertiary:S.colors.text.primary,fontSize:S.typography.fontSize.xs},y],numberOfLines:1,children:e?.label??" "})]},e.key)})]})});return p?(0,_jsxRuntime.jsx)(StepperSkeleton,{...e}):X});Stepper.displayName="Stepper";const StepperSkeleton=({steps:e,variant:t="horizontal",showCaption:i=!0,containerStyle:s,style:r,testID:n})=>{const o=(0,_index.useTheme)(),a=o.components.stepper,l=a?.circleSize??24,c=(0,_react.useMemo)(()=>buildStyles(o),[o]),u=e.length||3;return"segmented"===t?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"45%",height:14,style:{marginBottom:o.spacing.sm}}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.sRow,children:Array.from({length:u}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.sItem,children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:4,radius:2})},`sk-step-${t}`))})]}):"vertical"===t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:skeletonStyles.vCol,children:Array.from({length:u}).map((e,t)=>{const i=t===u-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:skeletonStyles.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[skeletonStyles.vLeft,{width:l+8}],children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:l,height:l}),i?null:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:2,height:36})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:skeletonStyles.vBody,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:4}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12})]})]},`sk-step-${t}`)})})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:c.hRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[c.hConnectorContainer,{left:50/u+"%",right:50/u+"%"}],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:2,radius:1})}),Array.from({length:u}).map((e,t)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:c.hStepItem,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:l,height:l}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12,style:{marginTop:o.spacing.xs}})]},`sk-step-${t}`))]})})};StepperSkeleton.displayName="StepperSkeleton",Stepper.Skeleton=StepperSkeleton;const skeletonStyles=_reactNative.StyleSheet.create({vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center"},vBody:{flex:1,paddingLeft:12,paddingBottom:16}}),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},hRow:{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",position:"relative"},hConnectorContainer:{position:"absolute",top:11,height:2,flexDirection:"row",alignItems:"center"},hConnectorTrack:{position:"absolute",left:0,right:0,height:2,borderRadius:1,..._corners.smoothCorners},hConnectorFill:{position:"absolute",left:0,height:2,borderRadius:1,..._corners.smoothCorners},hStepItem:{alignItems:"center",flex:1},hLabel:{marginTop:e.spacing.xs,textAlign:"center"},vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center",alignSelf:"stretch",width:32},vConnectorContainer:{flex:1,width:2,minHeight:32,position:"relative",alignSelf:"center"},vConnectorTrack:{position:"absolute",top:0,bottom:0,width:2,borderRadius:1,..._corners.smoothCorners},vConnectorFill:{position:"absolute",top:0,width:2,borderRadius:1,..._corners.smoothCorners},vBody:{flex:1,paddingLeft:e.spacing.sm,paddingBottom:e.spacing.md},vLabel:{marginBottom:2},vDescription:{},sCaption:{includeFontPadding:!1},sRow:{flexDirection:"row",columnGap:6},sItem:{flex:1},sTrack:{height:4,borderRadius:2,overflow:"hidden"},sFill:{height:4,borderRadius:2}});var _default=exports.default=Stepper;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Swipeable=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,r,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?i:a){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((r=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(r.get||r.set)?n(s,t,r):s[t]=e[t]);return s})(e,t)}const SPRING_CONFIG={damping:22,stiffness:260,mass:1},DRAG_ACTIVATION_OFFSET=10,RUBBER_BAND_FACTOR=.35,FAIL_OFFSET_Y=15,toneToBg=(e,t)=>{switch(t){case"primary":return e.colors.primary;case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.secondary}},toneToOnColor=(e,t)=>{switch(t){case"primary":return e.colors.onPrimary;case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onSecondary}},Swipeable=e=>{const{children:t,leftActions:a,rightActions:i,threshold:n,fullSwipeThreshold:r,onSwipeOpen:s,onSwipeClose:o,disabled:c=!1,haptic:l,containerStyle:u,contentStyle:d,actionStyle:_,accessibilityLabel:m,testID:p}=e,v=(0,_index.useTheme)(),f=v.components.swipeable,h=n??f?.threshold??80,S=r??f?.fullSwipeThreshold??200,R=f?.dragActivationOffset??10,g=f?.rubberBandFactor??.35,y=f?.failOffsetY??15,N=(0,_react.useMemo)(()=>({damping:f?.springDamping??SPRING_CONFIG.damping,stiffness:f?.springStiffness??SPRING_CONFIG.stiffness,mass:f?.springMass??SPRING_CONFIG.mass}),[f]),b=(0,_react.useMemo)(()=>buildStyles(v),[v]),w=!!a&&a.length>0,x=!!i&&i.length>0,j=_reactNative.Dimensions.get("window").width,O=w?h*(a?.length??0):0,I=x?h*(i?.length??0):0,C=(0,_reactNativeReanimated.useSharedValue)(0),G=(0,_reactNativeReanimated.useSharedValue)(0),P=(0,_react.useRef)(null);(0,_react.useEffect)(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(C),(0,_reactNativeReanimated.cancelAnimation)(G)},[C,G]);const A=(0,_react.useCallback)(e=>{P.current!==e&&(P.current=e,s?.(e))},[s]),k=(0,_react.useCallback)(()=>{null!==P.current&&(P.current=null,o?.())},[o]),F=(0,_react.useCallback)(e=>{const t="left"===e?a:i,n=t?.[0];n&&(!1!==l&&(0,_index2.triggerHaptic)("notificationSuccess"),n.onPress(),C.value=(0,_reactNativeReanimated.withSpring)(0,N),P.current=null,o?.())},[a,i,C,o,N,l]),M=(0,_react.useCallback)(()=>{C.value=(0,_reactNativeReanimated.withSpring)(0,N),k()},[C,k,N]),T=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(l,"selection");t&&(0,_index2.triggerHaptic)(t),e.onPress(),M()},[M,l]),q=(0,_react.useMemo)(()=>{const e=O,t=I,a=S,i=-S,n=j,r=-j,s=h,o=w,l=x;return _reactNativeGestureHandler.Gesture.Pan().enabled(!c).withTestId(p?`${p}-gesture`:"swipeable-gesture").activeOffsetX([-R,R]).failOffsetY([-y,y]).onStart(()=>{"worklet";G.value=C.value}).onUpdate(a=>{"worklet";const i=G.value+a.translationX;C.value=i>0&&!o||i<0&&!l?0:i>e&&o?e+(i-e)*g:i<-t&&l?(i+t)*g-t:i}).onEnd(()=>{"worklet";const c=C.value;return o&&c>=a?(C.value=(0,_reactNativeReanimated.withSpring)(n,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(F)("left")):l&&c<=i?(C.value=(0,_reactNativeReanimated.withSpring)(r,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(F)("right")):o&&c>=s?(C.value=(0,_reactNativeReanimated.withSpring)(e,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(A)("left")):l&&c<=-s?(C.value=(0,_reactNativeReanimated.withSpring)(-t,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(A)("right")):(C.value=(0,_reactNativeReanimated.withSpring)(0,N),void(0,_reactNativeReanimated.runOnJS)(k)())})},[c,G,F,S,w,x,O,k,A,I,j,h,C,R,y,g,N,p]),E=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:C.value}]})),B=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:O>0?Math.min(1,Math.max(0,C.value/O)):0})),D=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:I>0?Math.min(1,Math.max(0,-C.value/I)):0})),W=(0,_react.useMemo)(()=>{const e=[];return a?.forEach(t=>e.push({name:t.key,label:t.label})),i?.forEach(t=>e.push({name:t.key,label:t.label})),e},[a,i]),V=(0,_react.useCallback)(e=>{const t=e.nativeEvent.actionName,n=[...a??[],...i??[]].find(e=>e.key===t);n&&(!1!==l&&(0,_index2.triggerHaptic)("selection"),n.onPress())},[a,i,l]);return w||x?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[b.root,u],testID:p,accessibilityLabel:m,accessibilityActions:W,onAccessibilityAction:V,children:[w?(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[b.actionsRow,b.actionsLeft,{width:O},_,B],pointerEvents:"box-none",children:a?.map(e=>(0,_jsxRuntime.jsx)(ActionButton,{action:e,theme:v,width:h,onPress:T},e.key))}):null,x?(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[b.actionsRow,b.actionsRight,{width:I},_,D],pointerEvents:"box-none",children:i?.map(e=>(0,_jsxRuntime.jsx)(ActionButton,{action:e,theme:v,width:h,onPress:T},e.key))}):null,(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:q,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[b.content,d,E],children:t})})]}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:u,testID:p,children:t})};exports.Swipeable=Swipeable,Swipeable.displayName="Swipeable";const ActionButton=({action:e,theme:t,width:a,onPress:i})=>{const n=e.tone??"neutral",r=toneToBg(t,n);return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>i(e),accessibilityRole:"button",accessibilityLabel:e.label,style:[actionStyles.button,{width:a,backgroundColor:r,paddingHorizontal:t.spacing.sm}],children:[e.icon?(0,_jsxRuntime.jsx)(_reactNative.View,{style:actionStyles.icon,children:e.icon}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[actionStyles.label,{color:toneToOnColor(t,n),fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.semibold}],numberOfLines:1,children:e.label})]})},actionStyles=_reactNative.StyleSheet.create({button:{flexGrow:0,flexShrink:0,alignItems:"center",justifyContent:"center"},icon:{marginBottom:2},label:{textAlign:"center"}}),buildStyles=e=>_reactNative.StyleSheet.create({root:{position:"relative",overflow:"hidden"},content:{backgroundColor:"transparent"},actionsRow:{position:"absolute",top:0,bottom:0,flexDirection:"row"},actionsLeft:{left:0},actionsRight:{right:0,justifyContent:"flex-end"}});var _default=exports.default=Swipeable;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Swipeable=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,r,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?i:a){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((r=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(r.get||r.set)?n(s,t,r):s[t]=e[t]);return s})(e,t)}const SPRING_CONFIG={damping:22,stiffness:260,mass:1},DRAG_ACTIVATION_OFFSET=10,RUBBER_BAND_FACTOR=.35,FAIL_OFFSET_Y=15,toneToBg=(e,t)=>{switch(t){case"primary":return e.colors.primary;case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.secondary}},toneToOnColor=(e,t)=>{switch(t){case"primary":return e.colors.onPrimary;case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onSecondary}},Swipeable=e=>{const{children:t,leftActions:a,rightActions:i,threshold:n,fullSwipeThreshold:r,onSwipeOpen:s,onSwipeClose:o,disabled:c=!1,haptic:l,containerStyle:u,contentStyle:d,actionStyle:_,accessibilityLabel:m,testID:p}=e,v=(0,_index.useTheme)(),f=v.components.swipeable,h=n??f?.threshold??80,S=r??f?.fullSwipeThreshold??200,R=f?.dragActivationOffset??10,g=f?.rubberBandFactor??.35,y=f?.failOffsetY??15,N=(0,_react.useMemo)(()=>({damping:f?.springDamping??SPRING_CONFIG.damping,stiffness:f?.springStiffness??SPRING_CONFIG.stiffness,mass:f?.springMass??SPRING_CONFIG.mass}),[f]),b=(0,_react.useMemo)(()=>buildStyles(v),[v]),w=!!a&&a.length>0,x=!!i&&i.length>0,j=_reactNative.Dimensions.get("window").width,O=w?h*(a?.length??0):0,I=x?h*(i?.length??0):0,C=(0,_reactNativeReanimated.useSharedValue)(0),G=(0,_reactNativeReanimated.useSharedValue)(0),P=(0,_react.useRef)(null);(0,_react.useEffect)(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(C),(0,_reactNativeReanimated.cancelAnimation)(G)},[C,G]);const A=(0,_react.useCallback)(e=>{P.current!==e&&(P.current=e,s?.(e))},[s]),k=(0,_react.useCallback)(()=>{null!==P.current&&(P.current=null,o?.())},[o]),F=(0,_react.useCallback)(e=>{const t="left"===e?a:i,n=t?.[0];n&&(!1!==l&&(0,_index2.triggerHaptic)("notificationSuccess"),n.onPress(),C.value=(0,_reactNativeReanimated.withSpring)(0,N),P.current=null,o?.())},[a,i,C,o,N,l]),M=(0,_react.useCallback)(()=>{C.value=(0,_reactNativeReanimated.withSpring)(0,N),k()},[C,k,N]),T=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(l,"selection");t&&(0,_index2.triggerHaptic)(t),e.onPress(),M()},[M,l]),E=(0,_react.useMemo)(()=>{const e=O,t=I,a=S,i=-S,n=j,r=-j,s=h,o=w,l=x;return _reactNativeGestureHandler.Gesture.Pan().enabled(!c).withTestId(p?`${p}-gesture`:"swipeable-gesture").activeOffsetX([-R,R]).failOffsetY([-y,y]).onStart(()=>{"worklet";G.value=C.value}).onUpdate(a=>{"worklet";const i=G.value+a.translationX;C.value=i>0&&!o||i<0&&!l?0:i>e&&o?e+(i-e)*g:i<-t&&l?(i+t)*g-t:i}).onEnd(()=>{"worklet";const c=C.value;return o&&c>=a?(C.value=(0,_reactNativeReanimated.withSpring)(n,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(F)("left")):l&&c<=i?(C.value=(0,_reactNativeReanimated.withSpring)(r,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(F)("right")):o&&c>=s?(C.value=(0,_reactNativeReanimated.withSpring)(e,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(A)("left")):l&&c<=-s?(C.value=(0,_reactNativeReanimated.withSpring)(-t,SPRING_CONFIG),void(0,_reactNativeReanimated.runOnJS)(A)("right")):(C.value=(0,_reactNativeReanimated.withSpring)(0,N),void(0,_reactNativeReanimated.runOnJS)(k)())})},[c,G,F,S,w,x,O,k,A,I,j,h,C,R,y,g,N,p]),q=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:C.value}]})),B=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:O>0?Math.min(1,Math.max(0,C.value/O)):0})),D=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:I>0?Math.min(1,Math.max(0,-C.value/I)):0})),V=(0,_react.useMemo)(()=>{const e=[];return a?.forEach(t=>e.push({name:t.key,label:t.label})),i?.forEach(t=>e.push({name:t.key,label:t.label})),e},[a,i]),W=(0,_react.useCallback)(e=>{const t=e.nativeEvent.actionName,n=[...a??[],...i??[]].find(e=>e.key===t);n&&(!1!==l&&(0,_index2.triggerHaptic)("selection"),n.onPress())},[a,i,l]);return w||x?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[b.root,u],testID:p,accessibilityLabel:m,accessibilityActions:V,onAccessibilityAction:W,children:[w?(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[b.actionsRow,b.actionsLeft,{width:O},_,B],pointerEvents:"box-none",children:a?.map(e=>(0,_jsxRuntime.jsx)(ActionButton,{action:e,theme:v,width:h,onPress:T},e.key))}):null,x?(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[b.actionsRow,b.actionsRight,{width:I},_,D],pointerEvents:"box-none",children:i?.map(e=>(0,_jsxRuntime.jsx)(ActionButton,{action:e,theme:v,width:h,onPress:T},e.key))}):null,(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:E,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[b.content,d,q],children:t})})]}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:u,testID:p,children:t})};exports.Swipeable=Swipeable,Swipeable.displayName="Swipeable";const ActionButton=({action:e,theme:t,width:a,onPress:i})=>{const n=e.tone??"neutral",r=toneToBg(t,n);return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>i(e),accessibilityRole:"button",accessibilityLabel:e.label,style:[actionStyles.button,{width:a,backgroundColor:r,paddingHorizontal:t.spacing.sm}],children:[e.icon?(0,_jsxRuntime.jsx)(_reactNative.View,{style:actionStyles.icon,children:e.icon}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[actionStyles.label,{color:toneToOnColor(t,n),fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.semibold}],numberOfLines:1,children:e.label})]})},actionStyles=_reactNative.StyleSheet.create({button:{flexGrow:0,flexShrink:0,alignItems:"center",justifyContent:"center"},icon:{marginBottom:2},label:{textAlign:"center"}}),buildStyles=e=>_reactNative.StyleSheet.create({root:{position:"relative",overflow:"hidden"},content:{backgroundColor:"transparent"},actionsRow:{position:"absolute",top:0,bottom:0,flexDirection:"row"},actionsLeft:{left:0},actionsRight:{right:0,justifyContent:"flex-end"}});var _default=exports.default=Swipeable;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Switch=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_jsxRuntime=require("react/jsx-runtime");const sizeMap={sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2}},toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Switch=exports.Switch=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:s,onChange:r,disabled:a=!1,size:n="md",tone:c="primary",label:o,description:l,error:u,labelLines:d,layout:h="inline",accessibilityLabel:p,haptic:m="selection",bounce:_=!1,style:b,containerStyle:x,trackStyle:g,thumbStyle:f,testID:y,...v}=e,[w,j]=(0,_index.useControllableState)({value:i,defaultValue:s??!1,onChange:r}),R=(0,_index2.useTheme)(),C={...sizeMap[n],...R.components.switch?.[n]??{}},S=R.components.switch?.thumbColor??"#FFFFFF",N=(0,_react.useMemo)(()=>buildStyles(R),[R]),k="dark"===R.mode?R.colors.secondary:R.colors.surface.disabled,T=toneColor(R,c),V=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(V,{toValue:w?1:0,damping:R.motion.spring.snappy.damping,stiffness:R.motion.spring.snappy.stiffness,mass:R.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,V,R.motion.spring.snappy]);const D=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(D,{toValue:w?1:0,duration:R.motion.duration.fast,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[w,D,R.motion.duration.fast]);const H=C.padding,z=C.trackWidth-C.thumbSize-C.padding,A=V.interpolate({inputRange:[0,1],outputRange:[H,z]}),q=D.interpolate({inputRange:[0,1],outputRange:[k,T]}),L=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,F=(0,_react.useRef)(!0);(0,_react.useEffect)(()=>{if(!_)return;if(F.current)return void(F.current=!1);const e=_reactNative.Animated.sequence([_reactNative.Animated.spring(L,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),_reactNative.Animated.spring(L,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[w,_,L]);const handlePress=e=>{a||(!1!==m&&(0,_hapticUtils.triggerHaptic)(m),j(!w),v.onPressOut?.(e))},P=p??o,E=Boolean(o)||(0,_ChoiceText.hasChoiceDetail)(l,u),I="row"===h&&E,W=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[N.track,{width:C.trackWidth,height:C.trackHeight,borderRadius:C.trackHeight/2,..._corners.smoothCorners,backgroundColor:q},g],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[N.thumb,R.shadows.sm,{backgroundColor:S,width:C.thumbSize,height:C.thumbSize,borderRadius:C.thumbSize/2,..._corners.smoothCorners,transform:[{translateX:A},{scale:L}]},f]})});if(I)return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:v.accessibilityHint??l,accessibilityState:{checked:w,disabled:a},testID:y,...v,style:({pressed:e})=>[N.row,N.spreadRow,(0,_ChoiceText.hasChoiceDetail)(l,u)?N.rowTop:null,{opacity:a?.55:e?.9:1},x,b],children:[(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:o,description:l,error:u,disabled:a,labelLines:d||void 0,descriptionLines:d||void 0,style:N.spreadText}),W]});const M=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:v.accessibilityHint??l,accessibilityState:{checked:w,disabled:a},testID:y,hitSlop:8,...v,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},E?null:b],children:W});return E?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[N.row,(0,_ChoiceText.hasChoiceDetail)(l,u)?N.rowTop:null,x,b],children:[M,(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:o,description:l,error:u,disabled:a,labelLines:d||void 0,descriptionLines:d||void 0,style:N.text})]}):x?(0,_jsxRuntime.jsx)(_reactNative.View,{style:x,children:M}):M});Switch.displayName="Switch";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},rowTop:{alignItems:"flex-start"},text:{marginLeft:10},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:12}});var _default=exports.default=Switch;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Switch=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_jsxRuntime=require("react/jsx-runtime");const sizeMap={sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2}},toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Switch=exports.Switch=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:s,onChange:r,disabled:a=!1,size:n="md",tone:c="primary",label:o,description:l,error:d,labelLines:u,layout:h="inline",accessibilityLabel:p,haptic:m="selection",bounce:_=!1,style:b,containerStyle:x,trackStyle:g,thumbStyle:f,testID:y,...v}=e,[w,j]=(0,_index.useControllableState)({value:i,defaultValue:s??!1,onChange:r}),R=(0,_index2.useTheme)(),C={...sizeMap[n],...R.components.switch?.[n]??{}},S=R.components.switch?.thumbColor??"#FFFFFF",k=(0,_react.useMemo)(()=>buildStyles(R),[R]),N="dark"===R.mode?R.colors.secondary:R.colors.surface.disabled,T=toneColor(R,c),V=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(V,{toValue:w?1:0,damping:R.motion.spring.snappy.damping,stiffness:R.motion.spring.snappy.stiffness,mass:R.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,V,R.motion.spring.snappy]);const D=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(D,{toValue:w?1:0,duration:R.motion.duration.fast,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[w,D,R.motion.duration.fast]);const H=C.padding,z=C.trackWidth-C.thumbSize-C.padding,A=V.interpolate({inputRange:[0,1],outputRange:[H,z]}),q=D.interpolate({inputRange:[0,1],outputRange:[N,T]}),L=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,F=(0,_react.useRef)(!0);(0,_react.useEffect)(()=>{if(!_)return;if(F.current)return void(F.current=!1);const e=_reactNative.Animated.sequence([_reactNative.Animated.spring(L,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),_reactNative.Animated.spring(L,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[w,_,L]);const handlePress=e=>{a||(!1!==m&&(0,_hapticUtils.triggerHaptic)(m),j(!w),v.onPressOut?.(e))},P=p??o,E=Boolean(o)||(0,_ChoiceText.hasChoiceDetail)(l,d),I="row"===h&&E,W=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.track,{width:C.trackWidth,height:C.trackHeight,borderRadius:C.trackHeight/2,..._corners.smoothCorners,backgroundColor:q},g],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.thumb,R.shadows.sm,{backgroundColor:S,width:C.thumbSize,height:C.thumbSize,borderRadius:C.thumbSize/2,..._corners.smoothCorners,transform:[{translateX:A},{scale:L}]},f]})});if(I)return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:v.accessibilityHint??l,accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,...v,style:({pressed:e})=>[k.row,k.spreadRow,(0,_ChoiceText.hasChoiceDetail)(l,d)?k.rowTop:null,{opacity:a?.55:e?.9:1},x,b],children:[(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:o,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:k.spreadText}),W]});const M=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:v.accessibilityHint??l,accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,hitSlop:8,...v,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},E?null:b],children:W});return E?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[k.row,(0,_ChoiceText.hasChoiceDetail)(l,d)?k.rowTop:null,x,b],children:[M,(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:o,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:k.text})]}):x?(0,_jsxRuntime.jsx)(_reactNative.View,{style:x,children:M}):M});Switch.displayName="Switch";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},rowTop:{alignItems:"flex-start"},text:{marginLeft:10},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:12}});var _default=exports.default=Switch;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tabs=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_SegmentedControl=require("../SegmentedControl/SegmentedControl.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const tabsSizes={sm:{fontSize:13,paddingVertical:8,paddingHorizontal:4,scrollablePaddingHorizontal:12,iconSize:16},md:{fontSize:15,paddingVertical:12,paddingHorizontal:8,scrollablePaddingHorizontal:16,iconSize:18},lg:{fontSize:17,paddingVertical:16,paddingHorizontal:12,scrollablePaddingHorizontal:24,iconSize:20}},Tabs=exports.Tabs=(0,_react.forwardRef)((e,t)=>{const{tabs:i,activeKey:a,onChange:r,variant:n="underline",radius:o,size:l="md",scrollable:s=!1,align:d="left",style:c,containerStyle:u,tabStyle:p,tabLabelStyle:g,tabIconStyle:b,tabBadgeStyle:m,dividerStyle:h,indicatorStyle:y,progress:x,haptic:f,accessibilityLabel:_,testID:S}=e,v=(0,_index.useTheme)(),z=(0,_react.useMemo)(()=>buildStyles(v),[v]),j=v.components.tabs,R=tabsSizes[l],C=j?.[l],H=s?C?.scrollablePaddingHorizontal??j?.tabPaddingHorizontal??R.scrollablePaddingHorizontal:C?.paddingHorizontal??j?.tabPaddingHorizontal??R.paddingHorizontal,w=C?.paddingVertical??j?.tabPaddingVertical??R.paddingVertical,k=C?.fontSize??R.fontSize,I=j?.tabIconSpacing??6,N=C?.iconSize??j?.tabIconSize??R.iconSize,V=j?.underlineHeight??2,q=j?.pillInset??4,P=j?.disabledOpacity??.45,L=j?.badgeGap??6,T="segmented"===n,F=v.components.segmentedControl,W=_SegmentedControl.segmentedControlSizes[l],A=F?.[l]?.height??W.height,M=F?.[l]?.fontSize??W.fontSize,D=F?.[l]?.paddingHorizontal??W.paddingHorizontal,B=j?.trackPadding??4,O="number"==typeof o?o:o?v.radius[o]:j?.radius,E=O??v.radius.md,U=void 0===O?v.radius.sm:Math.max(O-B,0),G=O??v.radius.full,K=O??0,X=v.colors.background.tertiary,J=(0,_SquircleFill.useSquircle)(T,E),[Q,Y]=(0,_react.useState)({}),Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,$=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=Q[a],te=i.every(e=>void 0!==Q[e.key]),ie=void 0!==x&&te&&i.length>1,ae=(0,_react.useMemo)(()=>ie&&x?x.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].x),extrapolate:"clamp"}):null,[ie,x,i,Q]),re=(0,_react.useMemo)(()=>ie&&x?x.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].width),extrapolate:"clamp"}):null,[ie,x,i,Q]);(0,_react.useEffect)(()=>{if(!ee)return;if(ie)return;const e=v.motion.spring.snappy,t=_reactNative.Animated.parallel([_reactNative.Animated.spring(Z,{toValue:ee.x,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1}),_reactNative.Animated.spring($,{toValue:ee.width,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1})]);return t.start(),()=>t.stop()},[ee,a,Z,$,v.motion.spring.snappy,ie]);const ne=(0,_react.useCallback)(e=>t=>{const{x:i,width:a}=t.nativeEvent.layout;Y(t=>{const r=t[e];return r&&r.x===i&&r.width===a?t:{...t,[e]:{x:i,width:a}}})},[]),oe=(0,_react.useCallback)(e=>{if(e.disabled)return;if(e.key===a)return;const t=(0,_index2.resolveHaptic)(f,"selection");t&&(0,_index2.triggerHaptic)(t),r(e.key)},[a,r,f]),le="pills"===n,se=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[T?z.indicatorThumb:le?z.indicatorPill:z.indicatorUnderline,T?null:le?{top:q,bottom:q}:{height:V},{width:re??$,transform:[{translateX:ae??Z}],backgroundColor:T?v.colors.background.elevated:le?v.colors.primaryMuted:v.colors.primary,borderRadius:T?U:le?G:K,..._corners.smoothCorners},y]}),renderTabs=()=>i.map(e=>{const t=e.key===a,i=!0===e.disabled,r=t?v.colors.primary:v.colors.text.tertiary,n=(0,_slotIcon.renderSlotIcon)(e.icon,{color:r,size:N,focused:t,disabled:i});return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>oe(e),onLayout:ne(e.key),disabled:i,accessibilityRole:"tab",accessibilityLabel:e.label,accessibilityState:{selected:t,disabled:i},android_ripple:T?void 0:{color:v.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[z.tab,s?null:z.tabFlex,T?{paddingHorizontal:D,height:A-2*B}:{paddingHorizontal:H,paddingVertical:w},{opacity:i?P:e&&T&&!t?.7:1,backgroundColor:e&&!T?v.colors.surface.pressed:"transparent"},p],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[z.tabIcon,{marginRight:I},b],children:n}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.tabLabel,{color:r,fontSize:T?M:k,fontWeight:t?v.typography.fontWeight.semibold:v.typography.fontWeight.medium},g],numberOfLines:1,children:e.label}),void 0!==e.badge&&null!==e.badge?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[z.tabBadge,{marginLeft:L,backgroundColor:v.colors.primaryMuted,borderRadius:v.radius.full,..._corners.smoothCorners,paddingHorizontal:v.spacing.xs},m],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:v.colors.primary,fontSize:v.typography.fontSize.xs,fontWeight:v.typography.fontWeight.semibold},numberOfLines:1,children:String(e.badge)})}):null]},e.key)}),de={flexDirection:"row",alignItems:"stretch",justifyContent:s?"flex-start":"center"===d?"center":"flex-start",position:"relative",overflow:"hidden"},ce=T?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[se,renderTabs()]}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[renderTabs(),se]});return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[z.container,{borderBottomColor:v.colors.border.secondary,borderBottomWidth:"underline"===n?_reactNative.StyleSheet.hairlineWidth:0},"underline"===n?h:null,T?{padding:B,borderRadius:E,..._corners.smoothCorners,backgroundColor:J.active?"transparent":X}:null,c,u],onLayout:J.onLayout,accessibilityRole:"tablist",accessibilityLabel:_,testID:S,children:[J.active&&J.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:J.size.width,height:J.size.height,radius:E,fill:X}):null,s?(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[de],keyboardShouldPersistTaps:"handled",children:ce}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:de,children:ce})]})});Tabs.displayName="Tabs";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%",position:"relative"},tab:{flexDirection:"row",alignItems:"center",justifyContent:"center"},tabFlex:{flex:1},tabIcon:{},tabLabel:{includeFontPadding:!1,flexShrink:1},tabBadge:{minWidth:18,alignItems:"center",justifyContent:"center"},indicatorUnderline:{position:"absolute",left:0,bottom:0},indicatorPill:{position:"absolute",left:0,zIndex:-1},indicatorThumb:{position:"absolute",left:0,top:0,bottom:0}});var _default=exports.default=Tabs;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tabs=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_SegmentedControl=require("../SegmentedControl/SegmentedControl.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const tabsSizes={sm:{fontSize:13,paddingVertical:8,paddingHorizontal:4,scrollablePaddingHorizontal:12,iconSize:16},md:{fontSize:15,paddingVertical:12,paddingHorizontal:8,scrollablePaddingHorizontal:16,iconSize:18},lg:{fontSize:17,paddingVertical:16,paddingHorizontal:12,scrollablePaddingHorizontal:24,iconSize:20}},Tabs=exports.Tabs=(0,_react.forwardRef)((e,t)=>{const{tabs:i,activeKey:a,onChange:r,variant:n="underline",radius:o,size:l="md",scrollable:s=!1,align:d="left",style:c,containerStyle:u,tabStyle:p,tabLabelStyle:b,tabIconStyle:g,tabBadgeStyle:m,dividerStyle:h,indicatorStyle:y,progress:x,haptic:f,accessibilityLabel:_,testID:S}=e,v=(0,_index.useTheme)(),z=(0,_react.useMemo)(()=>buildStyles(v),[v]),j=v.components.tabs,R=tabsSizes[l],C=j?.[l],H=s?C?.scrollablePaddingHorizontal??j?.tabPaddingHorizontal??R.scrollablePaddingHorizontal:C?.paddingHorizontal??j?.tabPaddingHorizontal??R.paddingHorizontal,w=C?.paddingVertical??j?.tabPaddingVertical??R.paddingVertical,k=C?.fontSize??R.fontSize,I=j?.tabIconSpacing??6,N=C?.iconSize??j?.tabIconSize??R.iconSize,V=j?.underlineHeight??2,q=j?.pillInset??4,P=j?.disabledOpacity??.45,L=j?.badgeGap??6,T="segmented"===n,F=v.components.segmentedControl,W=_SegmentedControl.segmentedControlSizes[l],A=F?.[l]?.height??W.height,M=F?.[l]?.fontSize??W.fontSize,D=F?.[l]?.paddingHorizontal??W.paddingHorizontal,B=j?.trackPadding??4,O="number"==typeof o?o:o?v.radius[o]:j?.radius,E=O??v.radius.md,U=void 0===O?v.radius.sm:Math.max(O-B,0),G=O??v.radius.full,K=O??0,X=v.colors.background.tertiary,J=(0,_SquircleFill.useSquircle)(T,E),[Q,Y]=(0,_react.useState)({}),Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,$=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=Q[a],te=i.every(e=>void 0!==Q[e.key]),ie=void 0!==x&&te&&i.length>1,ae=(0,_react.useMemo)(()=>ie&&x?x.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].x),extrapolate:"clamp"}):null,[ie,x,i,Q]),re=(0,_react.useMemo)(()=>ie&&x?x.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].width),extrapolate:"clamp"}):null,[ie,x,i,Q]);(0,_react.useEffect)(()=>{if(!ee)return;if(ie)return;const e=v.motion.spring.snappy,t=_reactNative.Animated.parallel([_reactNative.Animated.spring(Z,{toValue:ee.x,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1}),_reactNative.Animated.spring($,{toValue:ee.width,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1})]);return t.start(),()=>t.stop()},[ee,a,Z,$,v.motion.spring.snappy,ie]);const ne=(0,_react.useCallback)(e=>t=>{const{x:i,width:a}=t.nativeEvent.layout;Y(t=>{const r=t[e];return r&&r.x===i&&r.width===a?t:{...t,[e]:{x:i,width:a}}})},[]),oe=(0,_react.useCallback)(e=>{if(e.disabled)return;if(e.key===a)return;const t=(0,_index2.resolveHaptic)(f,"selection");t&&(0,_index2.triggerHaptic)(t),r(e.key)},[a,r,f]),le="pills"===n,se=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[T?z.indicatorThumb:le?z.indicatorPill:z.indicatorUnderline,T?null:le?{top:q,bottom:q}:{height:V},{width:re??$,transform:[{translateX:ae??Z}],backgroundColor:T?v.colors.background.elevated:le?v.colors.primaryMuted:v.colors.primary,borderRadius:T?U:le?G:K,..._corners.smoothCorners},y]}),renderTabs=()=>i.map(e=>{const t=e.key===a,i=!0===e.disabled,r=t?v.colors.primary:v.colors.text.tertiary,n=(0,_slotIcon.renderSlotIcon)(e.icon,{color:r,size:N,focused:t,disabled:i});return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>oe(e),onLayout:ne(e.key),disabled:i,accessibilityRole:"tab",accessibilityLabel:e.label,accessibilityState:{selected:t,disabled:i},"aria-selected":t,"aria-disabled":i,android_ripple:T?void 0:{color:v.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[z.tab,s?null:z.tabFlex,T?{paddingHorizontal:D,height:A-2*B}:{paddingHorizontal:H,paddingVertical:w},{opacity:i?P:e&&T&&!t?.7:1,backgroundColor:e&&!T?v.colors.surface.pressed:"transparent"},p],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[z.tabIcon,{marginRight:I},g],children:n}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.tabLabel,{color:r,fontSize:T?M:k,fontWeight:t?v.typography.fontWeight.semibold:v.typography.fontWeight.medium},b],numberOfLines:1,children:e.label}),void 0!==e.badge&&null!==e.badge?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[z.tabBadge,{marginLeft:L,backgroundColor:v.colors.primaryMuted,borderRadius:v.radius.full,..._corners.smoothCorners,paddingHorizontal:v.spacing.xs},m],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:v.colors.primary,fontSize:v.typography.fontSize.xs,fontWeight:v.typography.fontWeight.semibold},numberOfLines:1,children:String(e.badge)})}):null]},e.key)}),de={flexDirection:"row",alignItems:"stretch",justifyContent:s?"flex-start":"center"===d?"center":"flex-start",position:"relative",overflow:"hidden"},ce=T?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[se,renderTabs()]}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[renderTabs(),se]});return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[z.container,{borderBottomColor:v.colors.border.secondary,borderBottomWidth:"underline"===n?_reactNative.StyleSheet.hairlineWidth:0},"underline"===n?h:null,T?{padding:B,borderRadius:E,..._corners.smoothCorners,backgroundColor:J.active?"transparent":X}:null,c,u],onLayout:J.onLayout,accessibilityRole:"tablist",accessibilityLabel:_,testID:S,children:[J.active&&J.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:J.size.width,height:J.size.height,radius:E,fill:X}):null,s?(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[de],keyboardShouldPersistTaps:"handled",children:ce}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:de,children:ce})]})});Tabs.displayName="Tabs";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%",position:"relative"},tab:{flexDirection:"row",alignItems:"center",justifyContent:"center"},tabFlex:{flex:1},tabIcon:{},tabLabel:{includeFontPadding:!1,flexShrink:1},tabBadge:{minWidth:18,alignItems:"center",justifyContent:"center"},indicatorUnderline:{position:"absolute",left:0,bottom:0},indicatorPill:{position:"absolute",left:0,zIndex:-1},indicatorThumb:{position:"absolute",left:0,top:0,bottom:0}});var _default=exports.default=Tabs;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveColor=exports.default=exports.Text=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?i:r){if(o.has(e))return o.get(e);o.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(l,t,n):l[t]=e[t]);return l})(e,t)}const VARIANTS={display:{size:"4xl",weight:"bold",line:"tight",color:"primary",heading:!0},h1:{size:"3xl",weight:"bold",line:"tight",color:"primary",heading:!0},h2:{size:"2xl",weight:"semibold",line:"tight",color:"primary",heading:!0},h3:{size:"xl",weight:"semibold",line:"tight",color:"primary",heading:!0},title:{size:"lg",weight:"semibold",line:"normal",color:"primary"},body:{size:"base",weight:"normal",line:"normal",color:"primary"},bodySmall:{size:"sm",weight:"normal",line:"normal",color:"secondary"},caption:{size:"xs",weight:"normal",line:"normal",color:"tertiary"},label:{size:"sm",weight:"medium",line:"normal",color:"secondary"},overline:{size:"xs",weight:"semibold",line:"normal",color:"secondary",uppercase:!0,letterSpacing:"wide"}},TEXT_ROLES={primary:!0,secondary:!0,tertiary:!0,inverse:!0,disabled:!0,link:!0,textStrong:!0},TEXT_ROLE_KEY={textStrong:"strong"},SEMANTIC={success:!0,warning:!0,error:!0,info:!0},resolveColor=(e,t)=>TEXT_ROLES[t]?e.colors.text[TEXT_ROLE_KEY[t]??t]:SEMANTIC[t]?e.colors[t]:t;exports.resolveColor=resolveColor;const Text=exports.Text=(0,_react.forwardRef)((e,t)=>{const{variant:r="body",color:i,weight:o,size:n,align:l,italic:a,underline:s,style:c,children:p,...d}=e,u=(0,_index.useTheme)(),g=Object.hasOwn(VARIANTS,r),y=u.textVariants,h=!g&&y&&Object.hasOwn(y,r)?y[r]:void 0,f=(0,_react.useMemo)(()=>{if(h){const{typography:e}=u,t="number"==typeof h.size?h.size:e.fontSize[h.size],r="number"==typeof n?n:n?e.fontSize[n]:t,c=h.lineHeight,p=h.letterSpacing;return{fontSize:r,lineHeight:"number"==typeof c?c:c?Math.round(r*e.lineHeight[c]):void 0,color:resolveColor(u,i??h.color??"primary"),textAlign:l,textTransform:h.uppercase?"uppercase":void 0,letterSpacing:"number"!=typeof p&&p?e.letterSpacing[p]:p,fontStyle:a||h.italic?"italic":void 0,fontVariant:h.fontVariant,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(u,o??h.weight??"normal")}}const e=VARIANTS[g?r:"body"],t="number"==typeof n?n:u.typography.fontSize[n??e.size];return{fontSize:t,lineHeight:Math.round(t*u.typography.lineHeight[e.line]),color:resolveColor(u,i??e.color),textAlign:l,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?u.typography.letterSpacing[e.letterSpacing]:void 0,fontStyle:a?"italic":void 0,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(u,o??e.weight)}},[u,h,g,r,i,o,n,l,a,s]),m=!!g&&VARIANTS[r].heading;return(0,_jsxRuntime.jsx)(_reactNative.Text,{ref:t,style:[f,c],maxFontSizeMultiplier:u.maxFontSizeMultiplier,accessibilityRole:m?"header":d.accessibilityRole,...d,children:p})});Text.displayName="Text";var _default=exports.default=Text;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveColor=exports.default=exports.Text=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const VARIANTS={display:{size:"4xl",weight:"bold",line:"tight",color:"primary",heading:!0,fontFamily:"display"},h1:{size:"3xl",weight:"bold",line:"tight",color:"primary",heading:!0,fontFamily:"display"},h2:{size:"2xl",weight:"semibold",line:"tight",color:"primary",heading:!0,fontFamily:"display"},h3:{size:"xl",weight:"semibold",line:"tight",color:"primary",heading:!0},title:{size:"lg",weight:"semibold",line:"normal",color:"primary",fontFamily:"display"},body:{size:"base",weight:"normal",line:"normal",color:"primary"},bodySmall:{size:"sm",weight:"normal",line:"normal",color:"secondary"},caption:{size:"xs",weight:"normal",line:"normal",color:"tertiary"},label:{size:"sm",weight:"medium",line:"normal",color:"secondary"},overline:{size:"xs",weight:"semibold",line:"normal",color:"secondary",uppercase:!0,letterSpacing:"wide"}},TEXT_ROLES={primary:!0,secondary:!0,tertiary:!0,inverse:!0,disabled:!0,link:!0,textStrong:!0},TEXT_ROLE_KEY={textStrong:"strong"},SEMANTIC={success:!0,warning:!0,error:!0,info:!0},resolveColor=(e,i)=>TEXT_ROLES[i]?e.colors.text[TEXT_ROLE_KEY[i]??i]:SEMANTIC[i]?e.colors.toneText[i]:i;exports.resolveColor=resolveColor;const Text=exports.Text=(0,_react.forwardRef)((e,i)=>{const{variant:t="body",color:r,weight:o,size:l,align:n,italic:a,underline:s,style:c,children:d,...p}=e,y=(0,_index.useTheme)(),m=Object.hasOwn(VARIANTS,t),g=y.textVariants,h=!m&&g&&Object.hasOwn(g,t)?g[t]:void 0,x=(0,_react.useMemo)(()=>{if(h){const{typography:e}=y,i="number"==typeof h.size?h.size:e.fontSize[h.size],t="number"==typeof l?l:l?e.fontSize[l]:i,c=h.lineHeight,d=h.letterSpacing;return{fontSize:t,lineHeight:"number"==typeof c?c:c?Math.round(t*e.lineHeight[c]):void 0,color:resolveColor(y,r??h.color??"primary"),textAlign:n,textTransform:h.uppercase?"uppercase":void 0,letterSpacing:"number"!=typeof d&&d?e.letterSpacing[d]:d,fontStyle:a||h.italic?"italic":void 0,fontVariant:h.fontVariant,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(y,o??h.weight??"normal",h.fontFamily)}}const e=VARIANTS[m?t:"body"],i="number"==typeof l?l:y.typography.fontSize[l??e.size];return{fontSize:i,lineHeight:Math.round(i*y.typography.lineHeight[e.line]),color:resolveColor(y,r??e.color),textAlign:n,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?y.typography.letterSpacing[e.letterSpacing]:void 0,fontStyle:a?"italic":void 0,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(y,o??e.weight,e.fontFamily)}},[y,h,m,t,r,o,l,n,a,s]),u=!!m&&VARIANTS[t].heading;return(0,_jsxRuntime.jsx)(_reactNative.Text,{ref:i,style:[x,c],maxFontSizeMultiplier:y.maxFontSizeMultiplier,accessibilityRole:u?"header":p.accessibilityRole,...p,children:d})});Text.displayName="Text";var _default=exports.default=Text;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TimePicker=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Button=_interopRequireDefault(require("../Button/Button.js")),_PickerTrigger=require("../PickerTrigger/PickerTrigger.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var r,n,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(r=t?a:i){if(r.has(e))return r.get(e);r.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?r(s,t,n):s[t]=e[t]);return s})(e,t)}const ITEM_HEIGHT=40,VISIBLE_ITEMS=5,PICKER_HEIGHT=200,CENTER_OFFSET=Math.floor(2.5),HAPTIC_DEBOUNCE_MS=35,range=(e,t,i=1)=>{const a=[];for(let r=e;r<=t;r+=i)a.push(r);return a},pad2=e=>e.toString().padStart(2,"0"),to24h=(e,t,i)=>"24h"===i?e:"AM"===t?12===e?0:e:12===e?12:e+12,from24h=(e,t)=>"24h"===t?{displayHour:e,period:"AM"}:0===e?{displayHour:12,period:"AM"}:12===e?{displayHour:12,period:"PM"}:e>12?{displayHour:e-12,period:"PM"}:{displayHour:e,period:"AM"},clampMinuteToStep=(e,t)=>{const i=Math.round(e/t)*t;return Math.min(59,Math.max(0,i))},Wheel=({kind:e,label:t,data:i,selectedIndex:a,onIndexChange:r,formatItem:n,theme:s,haptic:o,testID:c})=>{const l=(0,_react.useRef)(null),u=(0,_react.useRef)((0,_index.createAnimatedValue)(40*a)).current,d=(0,_react.useRef)(a),m=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(d.current!==a){d.current=a;const e=40*a;(0,_index.setNativeValue)(u,e),requestAnimationFrame(()=>{l.current?.scrollToOffset({offset:e,animated:!1})})}},[a,u]);const p=s.components.timePicker?.hapticDebounceMs??35,h=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:u}}}],{useNativeDriver:!0,listener:e=>{const t=e.nativeEvent.contentOffset.y,a=Math.round(t/40);if(a!==d.current&&a>=0&&a<i.length){const e=Date.now();if(e-m.current>=p){const t=(0,_hapticUtils.resolveHaptic)(o,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),m.current=e}d.current=a}}}),[u,i.length,o,p]),_=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentOffset.y,n=Math.max(0,Math.min(i.length-1,Math.round(t/40)));n!==a&&r(n)},[i.length,r,a]),g=(0,_react.useCallback)(e=>{const t=e.nativeEvent.actionName;if("increment"===t){const e=Math.min(i.length-1,a+1);e!==a&&r(e)}else if("decrement"===t){const e=Math.max(0,a-1);e!==a&&r(e)}},[i.length,r,a]),f=(0,_react.useCallback)(({item:e,index:t})=>{const i=_reactNative.Animated.subtract(_reactNative.Animated.divide(u,40),t),r=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),o=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"}),c=t===a;return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.wheelItem,{opacity:r,transform:[{scale:o}]}],accessible:!1,importantForAccessibility:"no",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{fontSize:s.typography.fontSize.xl,color:c?s.colors.text.primary:s.colors.text.secondary,fontWeight:c?s.typography.fontWeight.semibold:s.typography.fontWeight.medium,letterSpacing:s.typography.letterSpacing.normal}],children:n(e)})})},[u,a,s,n]),y=(0,_react.useCallback)((t,i)=>`${e}-${String(t)}-${i}`,[e]),x=(0,_react.useCallback)((e,t)=>({length:40,offset:40*t,index:t}),[]),v=n(i[a]??"");return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wheelColumn,testID:c,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:styles.wheelA11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:t,accessibilityValue:{text:v},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:g}),(0,_jsxRuntime.jsx)(_reactNative.Animated.FlatList,{ref:l,data:i,keyExtractor:y,renderItem:f,getItemLayout:x,showsVerticalScrollIndicator:!1,snapToInterval:40,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEventThrottle:16,onScroll:h,onMomentumScrollEnd:_,contentContainerStyle:{paddingVertical:40*CENTER_OFFSET},initialScrollIndex:a,style:styles.wheelList,importantForAccessibility:"no-hide-descendants"})]})},TimePicker=e=>{const{visible:t,value:i,onChange:a,onClose:r,format:n="12h",minuteStep:s=1,title:o="Select Time",confirmLabel:c="Confirm",cancelLabel:l="Cancel",testID:u,style:d,containerStyle:m,headerLabelStyle:p,footerButtonStyle:h,label:_,placeholder:g,helperText:f,error:y,required:x,disabled:v,size:b,variant:j,clearable:R,onClear:N,formatValue:S,triggerStyle:w,haptic:C}=e,k=void 0!==e.visible,[T,M]=(0,_react.useState)(!1),I=k?t:T,A=k?u:u?`${u}-modal`:void 0,D=(0,_index.useTheme)(),P=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),E=(0,_react.useMemo)(()=>buildStyles(D),[D]),H=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,V=(0,_react.useRef)((0,_index.createAnimatedValue)(40)).current,B=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,O=(0,_react.useRef)(0),W=(0,_react.useCallback)(()=>{k?r?.():M(!1)},[k,r]),L=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(H,{toValue:0,duration:D.motion.duration.fast,easing:_reactNative.Easing.bezier(...D.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(V,{toValue:40,duration:D.motion.duration.fast,easing:_reactNative.Easing.bezier(...D.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>W())},[W,H,V,D.motion.duration.fast,D.motion.easing.accelerate]),{handleGesture:q}=(0,_useDragToDismiss.useDragToDismiss)({drag:B,travel:()=>O.current||320,onDismiss:L}),F=(0,_react.useMemo)(()=>"24h"===n?range(0,23):range(1,12),[n]),$=(0,_react.useMemo)(()=>range(0,59,s),[s]),z=(0,_react.useMemo)(()=>["AM","PM"],[]),G=(0,_react.useMemo)(()=>{const e=i&&Number.isFinite(i.hour)?i.hour:(new Date).getHours(),t=i&&Number.isFinite(i.minute)?i.minute:(new Date).getMinutes(),a=clampMinuteToStep(t,s),{displayHour:r,period:o}=from24h(e,n);return{displayHour:r,minute:a,period:o,hour24:e}},[i,n,s]),[U,K]=(0,_react.useState)(()=>{const e=F.indexOf(G.displayHour);return e>=0?e:0}),[Y,J]=(0,_react.useState)(()=>{const e=$.indexOf(G.minute);return e>=0?e:0}),[Q,X]=(0,_react.useState)(()=>"PM"===G.period?1:0);(0,_react.useEffect)(()=>{if(!I)return;const e=i&&Number.isFinite(i.hour)?i.hour:(new Date).getHours(),t=i&&Number.isFinite(i.minute)?i.minute:(new Date).getMinutes(),a=clampMinuteToStep(t,s),{displayHour:r,period:o}=from24h(e,n),c=F.indexOf(r);K(c>=0?c:0);const l=$.indexOf(a);J(l>=0?l:0),X("PM"===o?1:0)},[I,i,n,s,F,$]),(0,_react.useEffect)(()=>{let e;return I?(e=_reactNative.Animated.parallel([_reactNative.Animated.timing(H,{toValue:1,duration:D.motion.duration.normal,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),_reactNative.Animated.spring(V,{toValue:0,damping:D.motion.spring.snappy.damping,stiffness:D.motion.spring.snappy.stiffness,mass:D.motion.spring.snappy.mass,useNativeDriver:!0})]),e.start()):(H.setValue(0),(0,_index.setNativeValue)(V,40),(0,_index.setNativeValue)(B,0)),()=>e?.stop()},[I,H,V,B,D.motion]);const Z=(0,_react.useCallback)(e=>{"ios"!==_reactNative.Platform.OS&&"android"!==_reactNative.Platform.OS||_reactNative.AccessibilityInfo.announceForAccessibility(e)},[]),ee=(0,_react.useCallback)(e=>{K(e),Z(`Hour ${F[e]}`)},[F,Z]),te=(0,_react.useCallback)(e=>{J(e),Z(`${$[e]} minutes`)},[$,Z]),ie=(0,_react.useCallback)(e=>{X(e),Z(z[e]??"")},[z,Z]),ae=(0,_react.useCallback)(()=>{!1!==C&&(0,_hapticUtils.triggerHaptic)("selection"),L()},[L,C]),re=(0,_react.useCallback)(()=>{const e=F[U]??0,t=z[Q]??"AM",i=to24h(e,t,n),r=$[Y]??0;!1!==C&&(0,_hapticUtils.triggerHaptic)("notificationSuccess"),a?.({hour:i,minute:r}),L()},[F,U,z,Q,$,Y,n,a,L,C]),ne=(0,_react.useMemo)(()=>{const e=F[U]??0,t=$[Y]??0;if("24h"===n)return`${pad2(e)}:${pad2(t)}`;const i=z[Q]??"AM";return`${pad2(e)}:${pad2(t)} ${i}`},[F,U,$,Y,z,Q,n]),se=(0,_react.useCallback)(e=>pad2(Number(e)),[]),oe=(0,_react.useCallback)(e=>pad2(Number(e)),[]),ce=(0,_react.useCallback)(e=>String(e),[]),le=(0,_react.useCallback)(e=>{if("24h"===n)return`${pad2(e.hour)}:${pad2(e.minute)}`;const{displayHour:t,period:i}=from24h(e.hour,"12h");return`${t}:${pad2(e.minute)} ${i}`},[n]),ue=!k&&i&&Number.isFinite(i.hour)&&Number.isFinite(i.minute)?(S??le)(i):void 0,de=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:L,testID:A,children:(0,_jsxRuntime.jsxs)(_reactNativeGestureHandler.GestureHandlerRootView,{collapsable:!1,style:E.backdrop,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:L,accessibilityLabel:"Close time picker",accessibilityRole:"button"}),(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[E.sheet,{paddingBottom:Math.max(P.bottom,D.spacing.lg),transform:[{translateY:_reactNative.Animated.add(V,B)}]},d,m],onLayout:e=>{O.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessible:!0,accessibilityRole:"none",accessibilityLabel:o,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:q,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:E.handle}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[E.title,p],accessibilityRole:"header",children:o})]})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:E.summaryWrap,accessibilityLiveRegion:"polite",accessibilityLabel:`Selected ${ne}`,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:E.summary,children:ne})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E.wheelsRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:E.selectionBand,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:E.bandLine}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[E.bandLine,E.bandLineBottom]})]}),(0,_jsxRuntime.jsx)(Wheel,{kind:"hour",label:"Hour",data:F,selectedIndex:U,onIndexChange:ee,formatItem:se,theme:D,haptic:C,testID:"time-picker-hour"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:E.separator,children:":"}),(0,_jsxRuntime.jsx)(Wheel,{kind:"minute",label:"Minute",data:$,selectedIndex:Y,onIndexChange:te,formatItem:oe,theme:D,haptic:C,testID:"time-picker-minute"}),"12h"===n?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:E.spacer}),(0,_jsxRuntime.jsx)(Wheel,{kind:"period",label:"Period",data:z,selectedIndex:Q,onIndexChange:ie,formatItem:ce,theme:D,haptic:C,testID:"time-picker-period"})]}):null]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E.footer,children:[(0,_jsxRuntime.jsx)(_Button.default,{title:l,haptic:!1,variant:"ghost",tone:"neutral",onPress:ae,style:[E.footerBtn,h],accessibilityHint:"Dismiss without changes",testID:"time-picker-cancel"}),(0,_jsxRuntime.jsx)(_Button.default,{title:c,variant:"solid",tone:"primary",haptic:!1,onPress:re,style:[E.footerBtn,h],accessibilityHint:"Confirm selected time",testID:"time-picker-confirm"})]})]}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})});return k?de:(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_PickerTrigger.PickerTrigger,{label:_,placeholder:g,helperText:f,error:y,required:x,disabled:v,size:b,variant:j,clearable:R,onClear:N,value:ue,onPress:()=>M(!0),triggerStyle:w,testID:u}),de]})};exports.TimePicker=TimePicker;const styles=_reactNative.StyleSheet.create({wheelColumn:{width:64,height:200,overflow:"hidden"},wheelList:{flexGrow:0,height:200},wheelItem:{height:40,alignItems:"center",justifyContent:"center"},wheelA11yLayer:{..._reactNative.StyleSheet.absoluteFill,zIndex:2}}),buildStyles=e=>{const t=e.shadows.xl;return _reactNative.StyleSheet.create({backdrop:{flex:1,backgroundColor:e.colors.background.overlay,justifyContent:"flex-end"},sheet:{backgroundColor:e.colors.background.elevated,borderTopLeftRadius:e.radius.xl,borderTopRightRadius:e.radius.xl,..._corners.smoothCorners,paddingTop:e.spacing.sm,paddingHorizontal:e.spacing.lg,paddingBottom:e.spacing.xl,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},handle:{alignSelf:"center",width:e.components.timePicker?.handleWidth??36,height:e.components.timePicker?.handleHeight??4,borderRadius:e.radius.full,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},title:{textAlign:"center",fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary,marginBottom:e.spacing.sm},summaryWrap:{alignItems:"center",marginBottom:e.spacing.md},summary:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.primary,letterSpacing:e.typography.letterSpacing.wide},wheelsRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",height:200,position:"relative",marginBottom:e.spacing.lg},selectionBand:{position:"absolute",left:0,right:0,top:40*CENTER_OFFSET,height:40,justifyContent:"space-between"},bandLine:{height:2*_reactNative.StyleSheet.hairlineWidth,backgroundColor:e.colors.primary,opacity:.85},bandLineBottom:{},separator:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.text.primary,paddingHorizontal:e.spacing.xs},spacer:{width:e.spacing.md},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg}})};var _default=exports.default=TimePicker;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TimePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Button=_interopRequireDefault(require("../Button/Button.js")),_PickerTrigger=require("../PickerTrigger/PickerTrigger.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const ITEM_HEIGHT=40,VISIBLE_ITEMS=5,PICKER_HEIGHT=200,CENTER_OFFSET=Math.floor(2.5),HAPTIC_DEBOUNCE_MS=35,range=(e,t,i=1)=>{const a=[];for(let r=e;r<=t;r+=i)a.push(r);return a},pad2=e=>e.toString().padStart(2,"0"),to24h=(e,t,i)=>"24h"===i?e:"AM"===t?12===e?0:e:12===e?12:e+12,from24h=(e,t)=>"24h"===t?{displayHour:e,period:"AM"}:0===e?{displayHour:12,period:"AM"}:12===e?{displayHour:12,period:"PM"}:e>12?{displayHour:e-12,period:"PM"}:{displayHour:e,period:"AM"},clampMinuteToStep=(e,t)=>{const i=Math.round(e/t)*t;return Math.min(59,Math.max(0,i))},Wheel=({kind:e,label:t,data:i,selectedIndex:a,onIndexChange:r,formatItem:n,theme:s,haptic:o,testID:c})=>{const l=(0,_react.useRef)(null),u=(0,_react.useRef)((0,_index.createAnimatedValue)(40*a)).current,d=(0,_react.useRef)(a),m=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(d.current!==a){d.current=a;const e=40*a;(0,_index.setNativeValue)(u,e),requestAnimationFrame(()=>{l.current?.scrollToOffset({offset:e,animated:!1})})}},[a,u]);const p=s.components.timePicker?.hapticDebounceMs??35,h=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:u}}}],{useNativeDriver:!0,listener:e=>{const t=e.nativeEvent.contentOffset.y,a=Math.round(t/40);if(a!==d.current&&a>=0&&a<i.length){const e=Date.now();if(e-m.current>=p){const t=(0,_hapticUtils.resolveHaptic)(o,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),m.current=e}d.current=a}}}),[u,i.length,o,p]),_=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentOffset.y,n=Math.max(0,Math.min(i.length-1,Math.round(t/40)));n!==a&&r(n)},[i.length,r,a]),g=(0,_react.useCallback)(e=>{const t=e.nativeEvent.actionName;if("increment"===t){const e=Math.min(i.length-1,a+1);e!==a&&r(e)}else if("decrement"===t){const e=Math.max(0,a-1);e!==a&&r(e)}},[i.length,r,a]),x=(0,_react.useCallback)(({item:e,index:t})=>{const i=_reactNative.Animated.subtract(_reactNative.Animated.divide(u,40),t),r=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),o=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"}),c=t===a;return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.wheelItem,{opacity:r,transform:[{scale:o}]}],accessible:!1,importantForAccessibility:"no",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{fontSize:s.typography.fontSize.xl,color:c?s.colors.text.primary:s.colors.text.secondary,fontWeight:c?s.typography.fontWeight.semibold:s.typography.fontWeight.medium,letterSpacing:s.typography.letterSpacing.normal}],children:n(e)})})},[u,a,s,n]),y=(0,_react.useCallback)((t,i)=>`${e}-${String(t)}-${i}`,[e]),f=(0,_react.useCallback)((e,t)=>({length:40,offset:40*t,index:t}),[]),v=n(i[a]??"");return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wheelColumn,testID:c,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:styles.wheelA11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:t,accessibilityValue:{text:v},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:g}),(0,_jsxRuntime.jsx)(_reactNative.Animated.FlatList,{ref:l,data:i,keyExtractor:y,renderItem:x,getItemLayout:f,showsVerticalScrollIndicator:!1,snapToInterval:40,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEventThrottle:16,onScroll:h,onMomentumScrollEnd:_,contentContainerStyle:{paddingVertical:40*CENTER_OFFSET},initialScrollIndex:a,style:styles.wheelList,importantForAccessibility:"no-hide-descendants"})]})},TimePicker=e=>{const{visible:t,value:i,onChange:a,onClose:r,format:n="12h",minuteStep:s=1,title:o="Select Time",confirmLabel:c="Confirm",cancelLabel:l="Cancel",testID:u,style:d,containerStyle:m,headerLabelStyle:p,footerButtonStyle:h,label:_,placeholder:g,helperText:x,error:y,required:f,disabled:v,size:b,variant:j,clearable:N,onClear:R,formatValue:S,triggerStyle:C,haptic:w}=e,T=void 0!==e.visible,[k,I]=(0,_react.useState)(!1),M=T?t:k,A=T?u:u?`${u}-modal`:void 0,D=(0,_index.useTheme)(),E=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),H=(0,_react.useMemo)(()=>buildStyles(D),[D]),P=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,V=(0,_react.useRef)((0,_index.createAnimatedValue)(40)).current,B=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,L=(0,_react.useRef)(0),F=(0,_react.useCallback)(()=>{T?r?.():I(!1)},[T,r]),O=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(P,{toValue:0,duration:D.motion.duration.fast,easing:_reactNative.Easing.bezier(...D.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(V,{toValue:40,duration:D.motion.duration.fast,easing:_reactNative.Easing.bezier(...D.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>F())},[F,P,V,D.motion.duration.fast,D.motion.easing.accelerate]),{handleGesture:q}=(0,_useDragToDismiss.useDragToDismiss)({drag:B,travel:()=>L.current||320,onDismiss:O}),W=(0,_react.useMemo)(()=>"24h"===n?range(0,23):range(1,12),[n]),$=(0,_react.useMemo)(()=>range(0,59,s),[s]),z=(0,_react.useMemo)(()=>["AM","PM"],[]),G=(0,_react.useMemo)(()=>{const e=i&&Number.isFinite(i.hour)?i.hour:(new Date).getHours(),t=i&&Number.isFinite(i.minute)?i.minute:(new Date).getMinutes(),a=clampMinuteToStep(t,s),{displayHour:r,period:o}=from24h(e,n);return{displayHour:r,minute:a,period:o,hour24:e}},[i,n,s]),[U,K]=(0,_react.useState)(()=>{const e=W.indexOf(G.displayHour);return e>=0?e:0}),[Y,J]=(0,_react.useState)(()=>{const e=$.indexOf(G.minute);return e>=0?e:0}),[Q,X]=(0,_react.useState)(()=>"PM"===G.period?1:0);(0,_react.useEffect)(()=>{if(!M)return;const e=i&&Number.isFinite(i.hour)?i.hour:(new Date).getHours(),t=i&&Number.isFinite(i.minute)?i.minute:(new Date).getMinutes(),a=clampMinuteToStep(t,s),{displayHour:r,period:o}=from24h(e,n),c=W.indexOf(r);K(c>=0?c:0);const l=$.indexOf(a);J(l>=0?l:0),X("PM"===o?1:0)},[M,i,n,s,W,$]),(0,_react.useEffect)(()=>{let e;return M?(e=_reactNative.Animated.parallel([_reactNative.Animated.timing(P,{toValue:1,duration:D.motion.duration.normal,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),_reactNative.Animated.spring(V,{toValue:0,damping:D.motion.spring.snappy.damping,stiffness:D.motion.spring.snappy.stiffness,mass:D.motion.spring.snappy.mass,useNativeDriver:!0})]),e.start()):(P.setValue(0),(0,_index.setNativeValue)(V,40),(0,_index.setNativeValue)(B,0)),()=>e?.stop()},[M,P,V,B,D.motion]);const Z=(0,_react.useCallback)(e=>{"ios"!==_reactNative.Platform.OS&&"android"!==_reactNative.Platform.OS||_reactNative.AccessibilityInfo.announceForAccessibility(e)},[]),ee=(0,_react.useCallback)(e=>{K(e),Z(`Hour ${W[e]}`)},[W,Z]),te=(0,_react.useCallback)(e=>{J(e),Z(`${$[e]} minutes`)},[$,Z]),ie=(0,_react.useCallback)(e=>{X(e),Z(z[e]??"")},[z,Z]),ae=(0,_react.useCallback)(()=>{!1!==w&&(0,_hapticUtils.triggerHaptic)("selection"),O()},[O,w]),re=(0,_react.useCallback)(()=>{const e=W[U]??0,t=z[Q]??"AM",i=to24h(e,t,n),r=$[Y]??0;!1!==w&&(0,_hapticUtils.triggerHaptic)("notificationSuccess"),a?.({hour:i,minute:r}),O()},[W,U,z,Q,$,Y,n,a,O,w]),ne=(0,_react.useMemo)(()=>{const e=W[U]??0,t=$[Y]??0;if("24h"===n)return`${pad2(e)}:${pad2(t)}`;const i=z[Q]??"AM";return`${pad2(e)}:${pad2(t)} ${i}`},[W,U,$,Y,z,Q,n]),se=(0,_react.useCallback)(e=>pad2(Number(e)),[]),oe=(0,_react.useCallback)(e=>pad2(Number(e)),[]),ce=(0,_react.useCallback)(e=>String(e),[]),le=(0,_react.useCallback)(e=>{if("24h"===n)return`${pad2(e.hour)}:${pad2(e.minute)}`;const{displayHour:t,period:i}=from24h(e.hour,"12h");return`${t}:${pad2(e.minute)} ${i}`},[n]),ue=!T&&i&&Number.isFinite(i.hour)&&Number.isFinite(i.minute)?(S??le)(i):void 0,de=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:M,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:O,testID:A,children:(0,_jsxRuntime.jsxs)(_reactNativeGestureHandler.GestureHandlerRootView,{collapsable:!1,style:H.backdrop,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:O,accessibilityLabel:"Close time picker",accessibilityRole:"button"}),(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[H.sheet,{paddingBottom:Math.max(E.bottom,D.spacing.lg),transform:[{translateY:_reactNative.Animated.add(V,B)}]},d,m],onLayout:e=>{L.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessible:!0,accessibilityRole:"none",accessibilityLabel:o,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:q,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:H.handle}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[H.title,p],accessibilityRole:"header",children:o})]})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:H.summaryWrap,accessibilityLiveRegion:"polite",accessibilityLabel:`Selected ${ne}`,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:H.summary,children:ne})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:H.wheelsRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:H.selectionBand,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:H.bandLine}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.bandLine,H.bandLineBottom]})]}),(0,_jsxRuntime.jsx)(Wheel,{kind:"hour",label:"Hour",data:W,selectedIndex:U,onIndexChange:ee,formatItem:se,theme:D,haptic:w,testID:"time-picker-hour"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:H.separator,children:":"}),(0,_jsxRuntime.jsx)(Wheel,{kind:"minute",label:"Minute",data:$,selectedIndex:Y,onIndexChange:te,formatItem:oe,theme:D,haptic:w,testID:"time-picker-minute"}),"12h"===n?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:H.spacer}),(0,_jsxRuntime.jsx)(Wheel,{kind:"period",label:"Period",data:z,selectedIndex:Q,onIndexChange:ie,formatItem:ce,theme:D,haptic:w,testID:"time-picker-period"})]}):null]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:H.footer,children:[(0,_jsxRuntime.jsx)(_Button.default,{title:l,haptic:!1,variant:"ghost",tone:"neutral",onPress:ae,style:[H.footerBtn,h],accessibilityHint:"Dismiss without changes",testID:"time-picker-cancel"}),(0,_jsxRuntime.jsx)(_Button.default,{title:c,variant:"solid",tone:"primary",haptic:!1,onPress:re,style:[H.footerBtn,h],accessibilityHint:"Confirm selected time",testID:"time-picker-confirm"})]})]}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})});return T?de:(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_PickerTrigger.PickerTrigger,{label:_,placeholder:g,helperText:x,error:y,required:f,disabled:v,size:b,variant:j,clearable:N,onClear:R,value:ue,onPress:()=>I(!0),triggerStyle:C,testID:u}),de]})};exports.TimePicker=TimePicker;const styles=_reactNative.StyleSheet.create({wheelColumn:{width:64,height:200,overflow:"hidden"},wheelList:{flexGrow:0,height:200},wheelItem:{height:40,alignItems:"center",justifyContent:"center"},wheelA11yLayer:{..._reactNative.StyleSheet.absoluteFill,zIndex:2}}),buildStyles=e=>{const t=e.shadows.xl;return _reactNative.StyleSheet.create({backdrop:{flex:1,backgroundColor:e.colors.background.overlay,justifyContent:"flex-end"},sheet:{backgroundColor:e.colors.background.elevated,borderTopLeftRadius:e.radius.xl,borderTopRightRadius:e.radius.xl,..._corners.smoothCorners,paddingTop:e.spacing.sm,paddingHorizontal:e.spacing.lg,paddingBottom:e.spacing.xl,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},handle:{alignSelf:"center",width:e.components.timePicker?.handleWidth??36,height:e.components.timePicker?.handleHeight??4,borderRadius:e.radius.full,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},title:{textAlign:"center",fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary,marginBottom:e.spacing.sm},summaryWrap:{alignItems:"center",marginBottom:e.spacing.md},summary:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.primary,letterSpacing:e.typography.letterSpacing.wide},wheelsRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",height:200,position:"relative",marginBottom:e.spacing.lg},selectionBand:{position:"absolute",left:0,right:0,top:40*CENTER_OFFSET,height:40,justifyContent:"space-between"},bandLine:{height:2*_reactNative.StyleSheet.hairlineWidth,backgroundColor:e.colors.primary,opacity:.85},bandLineBottom:{},separator:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.text.primary,paddingHorizontal:e.spacing.xs},spacer:{width:e.spacing.md},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg}})};var _default=exports.default=TimePicker;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Timeline=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,o,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?n(s,t,o):s[t]=e[t]);return s})(e,t)}const DOT=12,HALO=6,RAIL=2,GAP=4,GUTTER=28,HALO_OPACITY=.16,Timeline=({items:e,variant:t="feed",orientation:r="vertical",style:i,testID:n})=>{const o=(0,_index.useTheme)(),s=o.components.timeline,a=s?.dotSize??12,l=s?.haloWidth??6,c=s?.connectorGap??4,d=a+2*l,u=(0,_react.useMemo)(()=>buildStyles(o,a,d,c),[o,a,d,c]),m="horizontal"===r,x=o.colors.border.primary,[_,h]=(0,_react.useState)(0),p=(0,_react.useCallback)(e=>{const{width:t}=e.nativeEvent.layout;h(e=>e===t?e:t)},[]),g=m&&_>0&&e.length>0?_/e.length:0,renderDisc=(e,t)=>e.icon?(0,_jsxRuntime.jsx)(_reactNative.View,{style:u.disc,children:e.icon}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.disc,{backgroundColor:(0,_color.tintOf)(t,.16,o.colors.background.tertiary)}],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dot,{backgroundColor:t}]})}),renderText=(e,t)=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.title,{fontSize:m?o.typography.fontSize.sm:o.typography.fontSize.base,color:"upcoming"===t?o.colors.text.secondary:o.colors.text.primary},m?u.centred:null],children:e.title}),e.meta?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.meta,{fontSize:o.typography.fontSize.xs,color:o.colors.text.tertiary},m?u.centred:null],children:e.meta}):null,e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{fontSize:o.typography.fontSize.sm,color:o.colors.text.secondary},m?u.centred:null],children:e.description}):null,e.children]}),f=e.map((r,i)=>{const n=r.status??("feed"===t?"done":"upcoming"),s=r.color??(e=>{switch(e){case"done":return o.colors.success;case"current":return o.colors.warning;case"onHold":return o.colors.info;case"rejected":return o.colors.error;case"cancelled":case"skipped":return o.colors.text.tertiary;default:return o.colors.text.disabled}})(n),a=0===i,l=i===e.length-1,d=r.key??`${r.title}-${i}`;return m?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[u.hColumn,g>0?{width:g,flex:0}:null],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.hDotRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.hSegment,{marginRight:c,backgroundColor:a?"transparent":x}]}),renderDisc(r,s),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.hSegment,{marginLeft:c,backgroundColor:l?"transparent":x}]})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:u.hBody,children:renderText(r,n)})]},d):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.gutter,children:[renderDisc(r,s),l?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.rail,{backgroundColor:x}]})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.body,{paddingBottom:l?0:o.spacing.lg}],children:renderText(r,n)})]},d)});return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m?u.hRow:null,i],onLayout:m?p:void 0,testID:n,children:f})};exports.Timeline=Timeline;const buildStyles=(e,t,r,i)=>_reactNative.StyleSheet.create({row:{flexDirection:"row"},gutter:{width:Math.max(28,r+4),alignItems:"center"},disc:{width:r,height:r,borderRadius:r/2,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},dot:{width:t,height:t,borderRadius:t/2,..._corners.smoothCorners},rail:{width:2,flex:1,marginTop:i,borderRadius:1,..._corners.smoothCorners},body:{flex:1,gap:2,paddingLeft:e.spacing.sm},hRow:{flexDirection:"row",alignItems:"flex-start"},hColumn:{flex:1,minWidth:0,alignItems:"center"},hDotRow:{alignSelf:"stretch",flexDirection:"row",alignItems:"center"},hSegment:{flex:1,height:2,borderRadius:1,..._corners.smoothCorners},hBody:{alignSelf:"stretch",alignItems:"center",paddingHorizontal:e.spacing.xs,marginTop:e.spacing.sm,gap:2},centred:{textAlign:"center"},title:{...(0,_index.fontFor)(e,"semibold"),fontWeight:"600"},meta:{...(0,_index.fontFor)(e,"normal")},description:{...(0,_index.fontFor)(e,"normal")}});var _default=exports.default=Timeline;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Timeline=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const DOT=12,HALO=6,RAIL=2,GAP=4,GUTTER=28,HALO_OPACITY=.16,Timeline=({items:e,variant:t="feed",orientation:r="vertical",style:i,testID:n})=>{const o=(0,_index.useTheme)(),s=o.components.timeline,a=s?.dotSize??12,l=s?.haloWidth??6,c=s?.connectorGap??4,d=a+2*l,u=(0,_react.useMemo)(()=>buildStyles(o,a,d,c),[o,a,d,c]),m="horizontal"===r,x=o.colors.border.primary,[h,_]=(0,_react.useState)(0),g=(0,_react.useCallback)(e=>{const{width:t}=e.nativeEvent.layout;_(e=>e===t?e:t)},[]),y=m&&h>0&&e.length>0?h/e.length:0,renderDisc=(e,t)=>e.icon?(0,_jsxRuntime.jsx)(_reactNative.View,{style:u.disc,children:e.icon}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.disc,{backgroundColor:(0,_color.tintOf)(t,.16,o.colors.background.tertiary)}],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dot,{backgroundColor:t}]})}),renderText=(e,t)=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.title,{fontSize:m?o.typography.fontSize.sm:o.typography.fontSize.base,color:"upcoming"===t?o.colors.text.secondary:o.colors.text.primary},m?u.centred:null],children:e.title}),e.meta?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.meta,{fontSize:o.typography.fontSize.xs,color:o.colors.text.tertiary},m?u.centred:null],children:e.meta}):null,e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{fontSize:o.typography.fontSize.sm,color:o.colors.text.secondary},m?u.centred:null],children:e.description}):null,e.children]}),j=e.map((r,i)=>{const n=r.status??("feed"===t?"done":"upcoming"),s=r.color??(e=>{switch(e){case"done":return o.colors.success;case"current":return o.colors.warning;case"onHold":return o.colors.info;case"rejected":return o.colors.error;case"cancelled":case"skipped":return o.colors.text.tertiary;default:return o.colors.text.disabled}})(n),a=0===i,l=i===e.length-1,d=r.key??`${r.title}-${i}`;return m?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[u.hColumn,y>0?{width:y,flex:0}:null],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.hDotRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.hSegment,{marginRight:c,backgroundColor:a?"transparent":x}]}),renderDisc(r,s),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.hSegment,{marginLeft:c,backgroundColor:l?"transparent":x}]})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:u.hBody,children:renderText(r,n)})]},d):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.gutter,children:[renderDisc(r,s),l?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.rail,{backgroundColor:x}]})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.body,{paddingBottom:l?0:o.spacing.lg}],children:renderText(r,n)})]},d)});return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m?u.hRow:null,i],onLayout:m?g:void 0,testID:n,children:j})};exports.Timeline=Timeline;const buildStyles=(e,t,r,i)=>_reactNative.StyleSheet.create({row:{flexDirection:"row"},gutter:{width:Math.max(28,r+4),alignItems:"center"},disc:{width:r,height:r,borderRadius:r/2,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},dot:{width:t,height:t,borderRadius:t/2,..._corners.smoothCorners},rail:{width:2,flex:1,marginTop:i,borderRadius:1,..._corners.smoothCorners},body:{flex:1,gap:2,paddingLeft:e.spacing.sm},hRow:{flexDirection:"row",alignItems:"flex-start"},hColumn:{flex:1,minWidth:0,alignItems:"center"},hDotRow:{alignSelf:"stretch",flexDirection:"row",alignItems:"center"},hSegment:{flex:1,height:2,borderRadius:1,..._corners.smoothCorners},hBody:{alignSelf:"stretch",alignItems:"center",paddingHorizontal:e.spacing.xs,marginTop:e.spacing.sm,gap:2},centred:{textAlign:"center"},title:{...(0,_index.fontFor)(e,"semibold"),fontWeight:"600"},meta:{...(0,_index.fontFor)(e,"normal")},description:{...(0,_index.fontFor)(e,"normal")}});var _default=exports.default=Timeline;