@webority/mobile-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  2. package/lib/commonjs/components/Button/Button.js +1 -1
  3. package/lib/commonjs/components/Confetti/Confetti.js +1 -1
  4. package/lib/commonjs/components/Drawer/Drawer.js +1 -1
  5. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  6. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
  7. package/lib/commonjs/components/Slider/Slider.js +1 -1
  8. package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
  9. package/lib/commonjs/components/ZoomableImage/ZoomableImage.js +1 -1
  10. package/lib/module/components/Accordion/Accordion.js +1 -1
  11. package/lib/module/components/Accordion/index.js +1 -1
  12. package/lib/module/components/AmountSlider/AmountSlider.js +1 -1
  13. package/lib/module/components/AmountSlider/index.js +1 -1
  14. package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -1
  15. package/lib/module/components/AnimatePresence/index.js +1 -1
  16. package/lib/module/components/AppBar/AppBar.js +1 -1
  17. package/lib/module/components/AppBar/index.js +1 -1
  18. package/lib/module/components/AppIcon/AppIcon.js +1 -1
  19. package/lib/module/components/AppIcon/catalog/bold/a.g.js +1 -1
  20. package/lib/module/components/AppIcon/catalog/bold/b.g.js +1 -1
  21. package/lib/module/components/AppIcon/catalog/bold/c.g.js +1 -1
  22. package/lib/module/components/AppIcon/catalog/bold/d.g.js +1 -1
  23. package/lib/module/components/AppIcon/catalog/bold/e.g.js +1 -1
  24. package/lib/module/components/AppIcon/catalog/bold/f.g.js +1 -1
  25. package/lib/module/components/AppIcon/catalog/bold/g.g.js +1 -1
  26. package/lib/module/components/AppIcon/catalog/bold/h.g.js +1 -1
  27. package/lib/module/components/AppIcon/catalog/bold/i.g.js +1 -1
  28. package/lib/module/components/AppIcon/catalog/bold/j.g.js +1 -1
  29. package/lib/module/components/AppIcon/catalog/bold/k.g.js +1 -1
  30. package/lib/module/components/AppIcon/catalog/bold/l.g.js +1 -1
  31. package/lib/module/components/AppIcon/catalog/bold/m.g.js +1 -1
  32. package/lib/module/components/AppIcon/catalog/bold/n.g.js +1 -1
  33. package/lib/module/components/AppIcon/catalog/bold/o.g.js +1 -1
  34. package/lib/module/components/AppIcon/catalog/bold/p.g.js +1 -1
  35. package/lib/module/components/AppIcon/catalog/bold/q.g.js +1 -1
  36. package/lib/module/components/AppIcon/catalog/bold/r.g.js +1 -1
  37. package/lib/module/components/AppIcon/catalog/bold/s.g.js +1 -1
  38. package/lib/module/components/AppIcon/catalog/bold/t.g.js +1 -1
  39. package/lib/module/components/AppIcon/catalog/bold/u.g.js +1 -1
  40. package/lib/module/components/AppIcon/catalog/bold/v.g.js +1 -1
  41. package/lib/module/components/AppIcon/catalog/bold/w.g.js +1 -1
  42. package/lib/module/components/AppIcon/catalog/bold/x.g.js +1 -1
  43. package/lib/module/components/AppIcon/catalog/bold/y.g.js +1 -1
  44. package/lib/module/components/AppIcon/catalog/bold/z.g.js +1 -1
  45. package/lib/module/components/AppIcon/catalog/broken/a.g.js +1 -1
  46. package/lib/module/components/AppIcon/catalog/broken/b.g.js +1 -1
  47. package/lib/module/components/AppIcon/catalog/broken/c.g.js +1 -1
  48. package/lib/module/components/AppIcon/catalog/broken/d.g.js +1 -1
  49. package/lib/module/components/AppIcon/catalog/broken/e.g.js +1 -1
  50. package/lib/module/components/AppIcon/catalog/broken/f.g.js +1 -1
  51. package/lib/module/components/AppIcon/catalog/broken/g.g.js +1 -1
  52. package/lib/module/components/AppIcon/catalog/broken/h.g.js +1 -1
  53. package/lib/module/components/AppIcon/catalog/broken/i.g.js +1 -1
  54. package/lib/module/components/AppIcon/catalog/broken/j.g.js +1 -1
  55. package/lib/module/components/AppIcon/catalog/broken/k.g.js +1 -1
  56. package/lib/module/components/AppIcon/catalog/broken/l.g.js +1 -1
  57. package/lib/module/components/AppIcon/catalog/broken/m.g.js +1 -1
  58. package/lib/module/components/AppIcon/catalog/broken/n.g.js +1 -1
  59. package/lib/module/components/AppIcon/catalog/broken/o.g.js +1 -1
  60. package/lib/module/components/AppIcon/catalog/broken/p.g.js +1 -1
  61. package/lib/module/components/AppIcon/catalog/broken/q.g.js +1 -1
  62. package/lib/module/components/AppIcon/catalog/broken/r.g.js +1 -1
  63. package/lib/module/components/AppIcon/catalog/broken/s.g.js +1 -1
  64. package/lib/module/components/AppIcon/catalog/broken/t.g.js +1 -1
  65. package/lib/module/components/AppIcon/catalog/broken/u.g.js +1 -1
  66. package/lib/module/components/AppIcon/catalog/broken/v.g.js +1 -1
  67. package/lib/module/components/AppIcon/catalog/broken/w.g.js +1 -1
  68. package/lib/module/components/AppIcon/catalog/broken/x.g.js +1 -1
  69. package/lib/module/components/AppIcon/catalog/broken/y.g.js +1 -1
  70. package/lib/module/components/AppIcon/catalog/broken/z.g.js +1 -1
  71. package/lib/module/components/AppIcon/catalog/bulk/a.g.js +1 -1
  72. package/lib/module/components/AppIcon/catalog/bulk/b.g.js +1 -1
  73. package/lib/module/components/AppIcon/catalog/bulk/c.g.js +1 -1
  74. package/lib/module/components/AppIcon/catalog/bulk/d.g.js +1 -1
  75. package/lib/module/components/AppIcon/catalog/bulk/e.g.js +1 -1
  76. package/lib/module/components/AppIcon/catalog/bulk/f.g.js +1 -1
  77. package/lib/module/components/AppIcon/catalog/bulk/g.g.js +1 -1
  78. package/lib/module/components/AppIcon/catalog/bulk/h.g.js +1 -1
  79. package/lib/module/components/AppIcon/catalog/bulk/i.g.js +1 -1
  80. package/lib/module/components/AppIcon/catalog/bulk/j.g.js +1 -1
  81. package/lib/module/components/AppIcon/catalog/bulk/k.g.js +1 -1
  82. package/lib/module/components/AppIcon/catalog/bulk/l.g.js +1 -1
  83. package/lib/module/components/AppIcon/catalog/bulk/m.g.js +1 -1
  84. package/lib/module/components/AppIcon/catalog/bulk/n.g.js +1 -1
  85. package/lib/module/components/AppIcon/catalog/bulk/o.g.js +1 -1
  86. package/lib/module/components/AppIcon/catalog/bulk/p.g.js +1 -1
  87. package/lib/module/components/AppIcon/catalog/bulk/q.g.js +1 -1
  88. package/lib/module/components/AppIcon/catalog/bulk/r.g.js +1 -1
  89. package/lib/module/components/AppIcon/catalog/bulk/s.g.js +1 -1
  90. package/lib/module/components/AppIcon/catalog/bulk/t.g.js +1 -1
  91. package/lib/module/components/AppIcon/catalog/bulk/u.g.js +1 -1
  92. package/lib/module/components/AppIcon/catalog/bulk/v.g.js +1 -1
  93. package/lib/module/components/AppIcon/catalog/bulk/w.g.js +1 -1
  94. package/lib/module/components/AppIcon/catalog/bulk/x.g.js +1 -1
  95. package/lib/module/components/AppIcon/catalog/bulk/y.g.js +1 -1
  96. package/lib/module/components/AppIcon/catalog/bulk/z.g.js +1 -1
  97. package/lib/module/components/AppIcon/catalog/linear/a.g.js +1 -1
  98. package/lib/module/components/AppIcon/catalog/linear/b.g.js +1 -1
  99. package/lib/module/components/AppIcon/catalog/linear/c.g.js +1 -1
  100. package/lib/module/components/AppIcon/catalog/linear/d.g.js +1 -1
  101. package/lib/module/components/AppIcon/catalog/linear/e.g.js +1 -1
  102. package/lib/module/components/AppIcon/catalog/linear/f.g.js +1 -1
  103. package/lib/module/components/AppIcon/catalog/linear/g.g.js +1 -1
  104. package/lib/module/components/AppIcon/catalog/linear/h.g.js +1 -1
  105. package/lib/module/components/AppIcon/catalog/linear/i.g.js +1 -1
  106. package/lib/module/components/AppIcon/catalog/linear/j.g.js +1 -1
  107. package/lib/module/components/AppIcon/catalog/linear/k.g.js +1 -1
  108. package/lib/module/components/AppIcon/catalog/linear/l.g.js +1 -1
  109. package/lib/module/components/AppIcon/catalog/linear/m.g.js +1 -1
  110. package/lib/module/components/AppIcon/catalog/linear/n.g.js +1 -1
  111. package/lib/module/components/AppIcon/catalog/linear/o.g.js +1 -1
  112. package/lib/module/components/AppIcon/catalog/linear/p.g.js +1 -1
  113. package/lib/module/components/AppIcon/catalog/linear/q.g.js +1 -1
  114. package/lib/module/components/AppIcon/catalog/linear/r.g.js +1 -1
  115. package/lib/module/components/AppIcon/catalog/linear/s.g.js +1 -1
  116. package/lib/module/components/AppIcon/catalog/linear/t.g.js +1 -1
  117. package/lib/module/components/AppIcon/catalog/linear/u.g.js +1 -1
  118. package/lib/module/components/AppIcon/catalog/linear/v.g.js +1 -1
  119. package/lib/module/components/AppIcon/catalog/linear/w.g.js +1 -1
  120. package/lib/module/components/AppIcon/catalog/linear/x.g.js +1 -1
  121. package/lib/module/components/AppIcon/catalog/linear/y.g.js +1 -1
  122. package/lib/module/components/AppIcon/catalog/linear/z.g.js +1 -1
  123. package/lib/module/components/AppIcon/catalog/outline/a.g.js +1 -1
  124. package/lib/module/components/AppIcon/catalog/outline/b.g.js +1 -1
  125. package/lib/module/components/AppIcon/catalog/outline/c.g.js +1 -1
  126. package/lib/module/components/AppIcon/catalog/outline/d.g.js +1 -1
  127. package/lib/module/components/AppIcon/catalog/outline/e.g.js +1 -1
  128. package/lib/module/components/AppIcon/catalog/outline/f.g.js +1 -1
  129. package/lib/module/components/AppIcon/catalog/outline/g.g.js +1 -1
  130. package/lib/module/components/AppIcon/catalog/outline/h.g.js +1 -1
  131. package/lib/module/components/AppIcon/catalog/outline/i.g.js +1 -1
  132. package/lib/module/components/AppIcon/catalog/outline/j.g.js +1 -1
  133. package/lib/module/components/AppIcon/catalog/outline/k.g.js +1 -1
  134. package/lib/module/components/AppIcon/catalog/outline/l.g.js +1 -1
  135. package/lib/module/components/AppIcon/catalog/outline/m.g.js +1 -1
  136. package/lib/module/components/AppIcon/catalog/outline/n.g.js +1 -1
  137. package/lib/module/components/AppIcon/catalog/outline/o.g.js +1 -1
  138. package/lib/module/components/AppIcon/catalog/outline/p.g.js +1 -1
  139. package/lib/module/components/AppIcon/catalog/outline/q.g.js +1 -1
  140. package/lib/module/components/AppIcon/catalog/outline/r.g.js +1 -1
  141. package/lib/module/components/AppIcon/catalog/outline/s.g.js +1 -1
  142. package/lib/module/components/AppIcon/catalog/outline/t.g.js +1 -1
  143. package/lib/module/components/AppIcon/catalog/outline/u.g.js +1 -1
  144. package/lib/module/components/AppIcon/catalog/outline/v.g.js +1 -1
  145. package/lib/module/components/AppIcon/catalog/outline/w.g.js +1 -1
  146. package/lib/module/components/AppIcon/catalog/outline/x.g.js +1 -1
  147. package/lib/module/components/AppIcon/catalog/outline/y.g.js +1 -1
  148. package/lib/module/components/AppIcon/catalog/outline/z.g.js +1 -1
  149. package/lib/module/components/AppIcon/catalog/twotone/a.g.js +1 -1
  150. package/lib/module/components/AppIcon/catalog/twotone/b.g.js +1 -1
  151. package/lib/module/components/AppIcon/catalog/twotone/c.g.js +1 -1
  152. package/lib/module/components/AppIcon/catalog/twotone/d.g.js +1 -1
  153. package/lib/module/components/AppIcon/catalog/twotone/e.g.js +1 -1
  154. package/lib/module/components/AppIcon/catalog/twotone/f.g.js +1 -1
  155. package/lib/module/components/AppIcon/catalog/twotone/g.g.js +1 -1
  156. package/lib/module/components/AppIcon/catalog/twotone/h.g.js +1 -1
  157. package/lib/module/components/AppIcon/catalog/twotone/i.g.js +1 -1
  158. package/lib/module/components/AppIcon/catalog/twotone/j.g.js +1 -1
  159. package/lib/module/components/AppIcon/catalog/twotone/k.g.js +1 -1
  160. package/lib/module/components/AppIcon/catalog/twotone/l.g.js +1 -1
  161. package/lib/module/components/AppIcon/catalog/twotone/m.g.js +1 -1
  162. package/lib/module/components/AppIcon/catalog/twotone/n.g.js +1 -1
  163. package/lib/module/components/AppIcon/catalog/twotone/o.g.js +1 -1
  164. package/lib/module/components/AppIcon/catalog/twotone/p.g.js +1 -1
  165. package/lib/module/components/AppIcon/catalog/twotone/q.g.js +1 -1
  166. package/lib/module/components/AppIcon/catalog/twotone/r.g.js +1 -1
  167. package/lib/module/components/AppIcon/catalog/twotone/s.g.js +1 -1
  168. package/lib/module/components/AppIcon/catalog/twotone/t.g.js +1 -1
  169. package/lib/module/components/AppIcon/catalog/twotone/u.g.js +1 -1
  170. package/lib/module/components/AppIcon/catalog/twotone/v.g.js +1 -1
  171. package/lib/module/components/AppIcon/catalog/twotone/w.g.js +1 -1
  172. package/lib/module/components/AppIcon/catalog/twotone/x.g.js +1 -1
  173. package/lib/module/components/AppIcon/catalog/twotone/y.g.js +1 -1
  174. package/lib/module/components/AppIcon/catalog/twotone/z.g.js +1 -1
  175. package/lib/module/components/AppIcon/catalog.g.js +1 -1
  176. package/lib/module/components/AppIcon/defaultIcons.js +1 -1
  177. package/lib/module/components/AppIcon/glyphs.g.js +1 -1
  178. package/lib/module/components/AppIcon/index.js +1 -1
  179. package/lib/module/components/AppIcon/slotIcon.js +1 -1
  180. package/lib/module/components/AppIcon/variants.g.js +1 -1
  181. package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -1
  182. package/lib/module/components/AsyncBlock/index.js +1 -1
  183. package/lib/module/components/AuthedImage/AuthedImage.js +1 -1
  184. package/lib/module/components/AuthedImage/authedImageCache.js +1 -1
  185. package/lib/module/components/AuthedImage/index.js +1 -1
  186. package/lib/module/components/Autocomplete/Autocomplete.js +1 -1
  187. package/lib/module/components/Autocomplete/index.js +1 -1
  188. package/lib/module/components/Avatar/Avatar.js +1 -1
  189. package/lib/module/components/Avatar/index.js +1 -1
  190. package/lib/module/components/Badge/Badge.js +1 -1
  191. package/lib/module/components/Badge/index.js +1 -1
  192. package/lib/module/components/Banner/Banner.js +1 -1
  193. package/lib/module/components/Banner/index.js +1 -1
  194. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  195. package/lib/module/components/BottomNavigation/index.js +1 -1
  196. package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
  197. package/lib/module/components/BottomSheet/index.js +1 -1
  198. package/lib/module/components/Box/Box.js +1 -1
  199. package/lib/module/components/Box/index.js +1 -1
  200. package/lib/module/components/Button/Button.js +1 -1
  201. package/lib/module/components/Button/index.js +1 -1
  202. package/lib/module/components/Card/Card.js +1 -1
  203. package/lib/module/components/Card/index.js +1 -1
  204. package/lib/module/components/Carousel/Carousel.js +1 -1
  205. package/lib/module/components/Carousel/index.js +1 -1
  206. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  207. package/lib/module/components/Checkbox/index.js +1 -1
  208. package/lib/module/components/Chip/Chip.js +1 -1
  209. package/lib/module/components/Chip/index.js +1 -1
  210. package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
  211. package/lib/module/components/ChoiceGroup/index.js +1 -1
  212. package/lib/module/components/Confetti/Confetti.js +1 -1
  213. package/lib/module/components/Confetti/index.js +1 -1
  214. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  215. package/lib/module/components/DatePicker/index.js +1 -1
  216. package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
  217. package/lib/module/components/DateRangePicker/index.js +1 -1
  218. package/lib/module/components/DecimalInput/DecimalInput.js +1 -1
  219. package/lib/module/components/DecimalInput/index.js +1 -1
  220. package/lib/module/components/Descriptions/Descriptions.js +1 -1
  221. package/lib/module/components/Descriptions/index.js +1 -1
  222. package/lib/module/components/Dialog/Dialog.js +1 -1
  223. package/lib/module/components/Dialog/index.js +1 -1
  224. package/lib/module/components/Divider/Divider.js +1 -1
  225. package/lib/module/components/Divider/index.js +1 -1
  226. package/lib/module/components/Drawer/Drawer.js +1 -1
  227. package/lib/module/components/Drawer/index.js +1 -1
  228. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  229. package/lib/module/components/EmptyState/index.js +1 -1
  230. package/lib/module/components/ErrorBoundary/ErrorBoundary.js +1 -1
  231. package/lib/module/components/ErrorBoundary/index.js +1 -1
  232. package/lib/module/components/ErrorBoundary/useErrorHandler.js +1 -1
  233. package/lib/module/components/ErrorBoundary/withErrorBoundary.js +1 -1
  234. package/lib/module/components/FieldBase/Chevron.js +1 -1
  235. package/lib/module/components/FieldBase/ChoiceText.js +1 -1
  236. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  237. package/lib/module/components/FieldBase/index.js +1 -1
  238. package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
  239. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  240. package/lib/module/components/FilePicker/index.js +1 -1
  241. package/lib/module/components/FileViewer/FileViewer.js +1 -1
  242. package/lib/module/components/FileViewer/index.js +1 -1
  243. package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
  244. package/lib/module/components/FloatingActionButton/index.js +1 -1
  245. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
  246. package/lib/module/components/ForceUpdateDialog/index.js +1 -1
  247. package/lib/module/components/FormField/FormField.js +1 -1
  248. package/lib/module/components/FormField/index.js +1 -1
  249. package/lib/module/components/IconBadge/IconBadge.js +1 -1
  250. package/lib/module/components/IconBadge/index.js +1 -1
  251. package/lib/module/components/IconButton/IconButton.js +1 -1
  252. package/lib/module/components/IconButton/index.js +1 -1
  253. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  254. package/lib/module/components/ImageGallery/index.js +1 -1
  255. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  256. package/lib/module/components/InlineSelect/index.js +1 -1
  257. package/lib/module/components/Input/Input.js +1 -1
  258. package/lib/module/components/Input/index.js +1 -1
  259. package/lib/module/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -1
  260. package/lib/module/components/KeyboardAwareScrollView/index.js +1 -1
  261. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  262. package/lib/module/components/KeyboardToolbar/index.js +1 -1
  263. package/lib/module/components/ListItem/ListItem.js +1 -1
  264. package/lib/module/components/ListItem/index.js +1 -1
  265. package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -1
  266. package/lib/module/components/LoaderOverlay/index.js +1 -1
  267. package/lib/module/components/Markdown/Markdown.js +1 -1
  268. package/lib/module/components/Markdown/index.js +1 -1
  269. package/lib/module/components/Markdown/parse.js +1 -1
  270. package/lib/module/components/Modal/Modal.js +1 -1
  271. package/lib/module/components/Modal/index.js +1 -1
  272. package/lib/module/components/Notation/Notation.js +1 -1
  273. package/lib/module/components/Notation/index.js +1 -1
  274. package/lib/module/components/NumberInput/NumberInput.js +1 -1
  275. package/lib/module/components/NumberInput/index.js +1 -1
  276. package/lib/module/components/OTPInput/OTPInput.js +1 -1
  277. package/lib/module/components/OTPInput/index.js +1 -1
  278. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  279. package/lib/module/components/OptionSheet/index.js +1 -1
  280. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  281. package/lib/module/components/PhoneNumberInput/index.js +1 -1
  282. package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
  283. package/lib/module/components/PickerTrigger/index.js +1 -1
  284. package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
  285. package/lib/module/components/ProfileCompletion/index.js +1 -1
  286. package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
  287. package/lib/module/components/ProfilePicker/index.js +1 -1
  288. package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
  289. package/lib/module/components/ProgressBar/index.js +1 -1
  290. package/lib/module/components/ProgressRing/ProgressRing.js +1 -1
  291. package/lib/module/components/ProgressRing/index.js +1 -1
  292. package/lib/module/components/Radio/Radio.js +1 -1
  293. package/lib/module/components/Radio/RadioDot.js +1 -1
  294. package/lib/module/components/Radio/RadioGroup.js +1 -1
  295. package/lib/module/components/Radio/index.js +1 -1
  296. package/lib/module/components/Rating/Rating.js +1 -1
  297. package/lib/module/components/Rating/index.js +1 -1
  298. package/lib/module/components/Repeater/Repeater.js +1 -1
  299. package/lib/module/components/Repeater/index.js +1 -1
  300. package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
  301. package/lib/module/components/RichTextEditor/index.js +1 -1
  302. package/lib/module/components/RichTextEditor/markdownActions.js +1 -1
  303. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  304. package/lib/module/components/SearchBar/index.js +1 -1
  305. package/lib/module/components/SectionHeader/SectionHeader.js +1 -1
  306. package/lib/module/components/SectionHeader/index.js +1 -1
  307. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  308. package/lib/module/components/SegmentedControl/index.js +1 -1
  309. package/lib/module/components/Select/Select.js +1 -1
  310. package/lib/module/components/Select/index.js +1 -1
  311. package/lib/module/components/Skeleton/Skeleton.js +1 -1
  312. package/lib/module/components/Skeleton/SkeletonClock.js +1 -1
  313. package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
  314. package/lib/module/components/Skeleton/SkeletonList.js +1 -1
  315. package/lib/module/components/Skeleton/SkeletonProvider.js +1 -1
  316. package/lib/module/components/Skeleton/SkeletonSkip.js +1 -1
  317. package/lib/module/components/Skeleton/index.js +1 -1
  318. package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
  319. package/lib/module/components/SlideToConfirm/index.js +1 -1
  320. package/lib/module/components/Slider/Slider.js +1 -1
  321. package/lib/module/components/Slider/index.js +1 -1
  322. package/lib/module/components/Slider/valueText.js +1 -1
  323. package/lib/module/components/SliderField/SliderField.js +1 -1
  324. package/lib/module/components/SliderField/index.js +1 -1
  325. package/lib/module/components/Spinner/Spinner.js +1 -1
  326. package/lib/module/components/Spinner/index.js +1 -1
  327. package/lib/module/components/SquircleFill/SquircleFill.js +1 -1
  328. package/lib/module/components/StatTile/StatTile.js +1 -1
  329. package/lib/module/components/StatTile/index.js +1 -1
  330. package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
  331. package/lib/module/components/StatusBadge/index.js +1 -1
  332. package/lib/module/components/Stepper/Stepper.js +1 -1
  333. package/lib/module/components/Stepper/index.js +1 -1
  334. package/lib/module/components/Swipeable/Swipeable.js +1 -1
  335. package/lib/module/components/Swipeable/index.js +1 -1
  336. package/lib/module/components/Switch/Switch.js +1 -1
  337. package/lib/module/components/Switch/index.js +1 -1
  338. package/lib/module/components/Tabs/Tabs.js +1 -1
  339. package/lib/module/components/Tabs/index.js +1 -1
  340. package/lib/module/components/TagInput/TagInput.js +1 -1
  341. package/lib/module/components/TagInput/index.js +1 -1
  342. package/lib/module/components/Text/Text.js +1 -1
  343. package/lib/module/components/Text/index.js +1 -1
  344. package/lib/module/components/TimePicker/TimePicker.js +1 -1
  345. package/lib/module/components/TimePicker/index.js +1 -1
  346. package/lib/module/components/Timeline/Timeline.js +1 -1
  347. package/lib/module/components/Timeline/index.js +1 -1
  348. package/lib/module/components/Toast/Toast.js +1 -1
  349. package/lib/module/components/Toast/ToastProvider.js +1 -1
  350. package/lib/module/components/Toast/index.js +1 -1
  351. package/lib/module/components/Tooltip/Tooltip.js +1 -1
  352. package/lib/module/components/Tooltip/index.js +1 -1
  353. package/lib/module/components/Tour/Tour.js +1 -1
  354. package/lib/module/components/Tour/index.js +1 -1
  355. package/lib/module/components/ZoomableImage/ZoomableImage.js +1 -1
  356. package/lib/module/components/ZoomableImage/index.js +1 -1
  357. package/lib/module/components/index.js +1 -1
  358. package/lib/module/form/FormContext.js +1 -1
  359. package/lib/module/form/HookFormField.js +1 -1
  360. package/lib/module/form/equal.js +1 -1
  361. package/lib/module/form/index.js +1 -1
  362. package/lib/module/form/path.js +1 -1
  363. package/lib/module/form/rules.js +1 -1
  364. package/lib/module/form/types.js +1 -0
  365. package/lib/module/form/useField.js +1 -1
  366. package/lib/module/form/useForm.js +1 -1
  367. package/lib/module/form/useFormCompletion.js +1 -1
  368. package/lib/module/form/useHookFormField.js +1 -1
  369. package/lib/module/hooks/index.js +1 -1
  370. package/lib/module/hooks/useControllableState.js +1 -1
  371. package/lib/module/hooks/useDebounce.js +1 -1
  372. package/lib/module/hooks/useDragToDismiss.js +1 -1
  373. package/lib/module/hooks/useFlickGuard.js +1 -1
  374. package/lib/module/hooks/usePressAnimation.js +1 -1
  375. package/lib/module/hooks/useReducedMotion.js +1 -1
  376. package/lib/module/hooks/useToggle.js +1 -1
  377. package/lib/module/index.js +1 -1
  378. package/lib/module/initUI.js +1 -1
  379. package/lib/module/network/NetworkStatusBanner.js +1 -1
  380. package/lib/module/network/index.js +1 -1
  381. package/lib/module/specs/NativePdfRasterizer.js +1 -1
  382. package/lib/module/theme/Gradient.js +1 -1
  383. package/lib/module/theme/ThemeContext.js +1 -1
  384. package/lib/module/theme/animatedValue.js +1 -1
  385. package/lib/module/theme/index.js +1 -1
  386. package/lib/module/theme/merge.js +1 -1
  387. package/lib/module/theme/textStyle.js +1 -1
  388. package/lib/module/theme/tokens.js +1 -1
  389. package/lib/module/theme/types.js +1 -1
  390. package/lib/module/utils/color.js +1 -1
  391. package/lib/module/utils/corners.js +1 -1
  392. package/lib/module/utils/dimensions.js +1 -1
  393. package/lib/module/utils/feedback.js +1 -1
  394. package/lib/module/utils/hapticUtils.js +1 -1
  395. package/lib/module/utils/hashString.js +1 -1
  396. package/lib/module/utils/index.js +1 -1
  397. package/lib/module/utils/mergeRefs.js +1 -1
  398. package/lib/module/utils/responsive.js +1 -1
  399. package/lib/module/utils/shadows.js +1 -1
  400. package/lib/module/utils/spacing.js +1 -1
  401. package/lib/module/utils/squircle.js +1 -1
  402. package/lib/module/utils/warnUnknownProps.js +1 -1
  403. package/lib/typescript/commonjs/components/Button/Button.d.ts +5 -0
  404. package/lib/typescript/module/components/Button/Button.d.ts +5 -0
  405. package/package.json +2 -2
@@ -1 +1 @@
1
- import e,{useCallback as t,useEffect as n,useMemo as o,useRef as r}from"react";import{Dimensions as s,Pressable as i,StyleSheet as a,Text as l,View as c}from"react-native";import{Gesture as u,GestureDetector as h}from"react-native-gesture-handler";import d,{cancelAnimation as f,runOnJS as m,useAnimatedStyle as p,useSharedValue as g,withSpring as y}from"react-native-reanimated";import{useTheme as b}from"../../theme/index.js";import{resolveHaptic as v,triggerHaptic as w}from"../../utils/index.js";import{jsx as x,jsxs as S}from"react/jsx-runtime";const P={damping:22,stiffness:260,mass:1},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:i,leftActions:a,rightActions:l,threshold:k,fullSwipeThreshold:j,onSwipeOpen:A,onSwipeClose:E,disabled:L=!1,haptic:O,containerStyle:R,contentStyle:C,actionStyle:D,accessibilityLabel:I,testID:M}=e,z=b(),T=z.components.swipeable,V=k??T?.threshold??80,W=j??T?.fullSwipeThreshold??200,X=T?.dragActivationOffset??10,B=T?.rubberBandFactor??.35,N=T?.failOffsetY??15,Y=o(()=>({damping:T?.springDamping??P.damping,stiffness:T?.springStiffness??P.stiffness,mass:T?.springMass??P.mass}),[T]),F=o(()=>buildStyles(z),[z]),G=!!a&&a.length>0,H=!!l&&l.length>0,U=s.get("window").width,$=G?V*(a?.length??0):0,q=H?V*(l?.length??0):0,J=g(0),K=g(0),Q=r(null);n(()=>()=>{f(J),f(K)},[J,K]);const Z=t(e=>{Q.current!==e&&(Q.current=e,A?.(e))},[A]),_=t(()=>{null!==Q.current&&(Q.current=null,E?.())},[E]),ee=t(e=>{const t="left"===e?a:l,n=t?.[0];n&&(!1!==O&&w("notificationSuccess"),n.onPress(),J.value=y(0,Y),Q.current=null,E?.())},[a,l,J,E,Y,O]),te=t(()=>{J.value=y(0,Y),_()},[J,_,Y]),ne=t(e=>{const t=v(O,"selection");t&&w(t),e.onPress(),te()},[te,O]),oe=o(()=>{const e=$,t=q,n=W,o=-W,r=U,s=-U,i=V,a=G,l=H;return u.Pan().enabled(!L).withTestId(M?`${M}-gesture`:"swipeable-gesture").activeOffsetX([-X,X]).failOffsetY([-N,N]).onStart(()=>{K.value=J.value}).onUpdate(n=>{const o=K.value+n.translationX;J.value=o>0&&!a||o<0&&!l?0:o>e&&a?e+(o-e)*B:o<-t&&l?(o+t)*B-t:o}).onEnd(()=>{const c=J.value;return a&&c>=n?(J.value=y(r,P),void m(ee)("left")):l&&c<=o?(J.value=y(s,P),void m(ee)("right")):a&&c>=i?(J.value=y(e,P),void m(Z)("left")):l&&c<=-i?(J.value=y(-t,P),void m(Z)("right")):(J.value=y(0,Y),void m(_)())})},[L,K,ee,W,G,H,$,_,Z,q,U,V,J,X,N,B,Y,M]),re=p(()=>({transform:[{translateX:J.value}]})),se=p(()=>({opacity:$>0?Math.min(1,Math.max(0,J.value/$)):0})),ie=p(()=>({opacity:q>0?Math.min(1,Math.max(0,-J.value/q)):0})),ae=o(()=>{const e=[];return a?.forEach(t=>e.push({name:t.key,label:t.label})),l?.forEach(t=>e.push({name:t.key,label:t.label})),e},[a,l]),le=t(e=>{const t=e.nativeEvent.actionName,n=[...a??[],...l??[]].find(e=>e.key===t);n&&(!1!==O&&w("selection"),n.onPress())},[a,l,O]);return G||H?S(c,{style:[F.root,R],testID:M,accessibilityLabel:I,accessibilityActions:ae,onAccessibilityAction:le,children:[G?x(d.View,{style:[F.actionsRow,F.actionsLeft,{width:$},D,se],pointerEvents:"box-none",children:a?.map(e=>x(ActionButton,{action:e,theme:z,width:V,onPress:ne},e.key))}):null,H?x(d.View,{style:[F.actionsRow,F.actionsRight,{width:q},D,ie],pointerEvents:"box-none",children:l?.map(e=>x(ActionButton,{action:e,theme:z,width:V,onPress:ne},e.key))}):null,x(h,{gesture:oe,children:x(d.View,{style:[F.content,C,re],children:i})})]}):x(c,{style:R,testID:M,children:i})};Swipeable.displayName="Swipeable";const ActionButton=({action:e,theme:t,width:n,onPress:o})=>{const r=e.tone??"neutral",s=((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}})(t,r);return S(i,{onPress:()=>o(e),accessibilityRole:"button",accessibilityLabel:e.label,style:[k.button,{width:n,backgroundColor:s,paddingHorizontal:t.spacing.sm}],children:[e.icon?x(c,{style:k.icon,children:e.icon}):null,x(l,{style:[k.label,{color:toneToOnColor(t,r),fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.semibold}],numberOfLines:1,children:e.label})]})},k=a.create({button:{flexGrow:0,flexShrink:0,alignItems:"center",justifyContent:"center"},icon:{marginBottom:2},label:{textAlign:"center"}}),buildStyles=e=>a.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"}});export{Swipeable};export default Swipeable;
1
+ "use strict";import React,{useCallback,useEffect,useMemo,useRef}from"react";import{Dimensions,Pressable,StyleSheet,Text,View}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import Animated,{cancelAnimation,runOnJS,useAnimatedStyle,useSharedValue,withSpring}from"react-native-reanimated";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";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:n,rightActions:s,threshold:i,fullSwipeThreshold:r,onSwipeOpen:o,onSwipeClose:a,disabled:l=!1,haptic:c,containerStyle:u,contentStyle:h,actionStyle:m,accessibilityLabel:d,testID:p}=e,S=useTheme(),f=S.components.swipeable,g=i??f?.threshold??80,b=r??f?.fullSwipeThreshold??200,w=f?.dragActivationOffset??10,y=f?.rubberBandFactor??.35,v=f?.failOffsetY??15,x=useMemo(()=>({damping:f?.springDamping??SPRING_CONFIG.damping,stiffness:f?.springStiffness??SPRING_CONFIG.stiffness,mass:f?.springMass??SPRING_CONFIG.mass}),[f]),A=useMemo(()=>buildStyles(S),[S]),_=!!n&&n.length>0,O=!!s&&s.length>0,C=Dimensions.get("window").width,I=_?g*(n?.length??0):0,G=O?g*(s?.length??0):0,R=useSharedValue(0),j=useSharedValue(0),N=useRef(null);useEffect(()=>()=>{cancelAnimation(R),cancelAnimation(j)},[R,j]);const P=useCallback(e=>{N.current!==e&&(N.current=e,o?.(e))},[o]),k=useCallback(()=>{null!==N.current&&(N.current=null,a?.())},[a]),T=useCallback(e=>{const t="left"===e?n:s,i=t?.[0];i&&(!1!==c&&triggerHaptic("notificationSuccess"),i.onPress(),R.value=withSpring(0,x),N.current=null,a?.())},[n,s,R,a,x,c]),F=useCallback(()=>{R.value=withSpring(0,x),k()},[R,k,x]),E=useCallback(e=>{const t=resolveHaptic(c,"selection");t&&triggerHaptic(t),e.onPress(),F()},[F,c]),D=useMemo(()=>{const e=I,t=G,n=b,s=-b,i=C,r=-C,o=g,a=_,c=O;return Gesture.Pan().enabled(!l).withTestId(p?`${p}-gesture`:"swipeable-gesture").activeOffsetX([-w,w]).failOffsetY([-v,v]).onStart(()=>{"worklet";j.value=R.value}).onUpdate(n=>{"worklet";const s=j.value+n.translationX;R.value=s>0&&!a||s<0&&!c?0:s>e&&a?e+(s-e)*y:s<-t&&c?(s+t)*y-t:s}).onEnd(()=>{"worklet";const l=R.value;return a&&l>=n?(R.value=withSpring(i,SPRING_CONFIG),void runOnJS(T)("left")):c&&l<=s?(R.value=withSpring(r,SPRING_CONFIG),void runOnJS(T)("right")):a&&l>=o?(R.value=withSpring(e,SPRING_CONFIG),void runOnJS(P)("left")):c&&l<=-o?(R.value=withSpring(-t,SPRING_CONFIG),void runOnJS(P)("right")):(R.value=withSpring(0,x),void runOnJS(k)())})},[l,j,T,b,_,O,I,k,P,G,C,g,R,w,v,y,x,p]),V=useAnimatedStyle(()=>({transform:[{translateX:R.value}]})),B=useAnimatedStyle(()=>({opacity:I>0?Math.min(1,Math.max(0,R.value/I)):0})),M=useAnimatedStyle(()=>({opacity:G>0?Math.min(1,Math.max(0,-R.value/G)):0})),H=useMemo(()=>{const e=[];return n?.forEach(t=>e.push({name:t.key,label:t.label})),s?.forEach(t=>e.push({name:t.key,label:t.label})),e},[n,s]),L=useCallback(e=>{const t=e.nativeEvent.actionName,i=[...n??[],...s??[]].find(e=>e.key===t);i&&(!1!==c&&triggerHaptic("selection"),i.onPress())},[n,s,c]);return _||O?_jsxs(View,{style:[A.root,u],testID:p,accessibilityLabel:d,accessibilityActions:H,onAccessibilityAction:L,children:[_?_jsx(Animated.View,{style:[A.actionsRow,A.actionsLeft,{width:I},m,B],pointerEvents:"box-none",children:n?.map(e=>_jsx(ActionButton,{action:e,theme:S,width:g,onPress:E},e.key))}):null,O?_jsx(Animated.View,{style:[A.actionsRow,A.actionsRight,{width:G},m,M],pointerEvents:"box-none",children:s?.map(e=>_jsx(ActionButton,{action:e,theme:S,width:g,onPress:E},e.key))}):null,_jsx(GestureDetector,{gesture:D,children:_jsx(Animated.View,{style:[A.content,h,V],children:t})})]}):_jsx(View,{style:u,testID:p,children:t})};Swipeable.displayName="Swipeable";const ActionButton=({action:e,theme:t,width:n,onPress:s})=>{const i=e.tone??"neutral",r=toneToBg(t,i);return _jsxs(Pressable,{onPress:()=>s(e),accessibilityRole:"button",accessibilityLabel:e.label,style:[actionStyles.button,{width:n,backgroundColor:r,paddingHorizontal:t.spacing.sm}],children:[e.icon?_jsx(View,{style:actionStyles.icon,children:e.icon}):null,_jsx(Text,{style:[actionStyles.label,{color:toneToOnColor(t,i),fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.semibold}],numberOfLines:1,children:e.label})]})},actionStyles=StyleSheet.create({button:{flexGrow:0,flexShrink:0,alignItems:"center",justifyContent:"center"},icon:{marginBottom:2},label:{textAlign:"center"}}),buildStyles=e=>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"}});export{Swipeable};export default Swipeable;
@@ -1 +1 @@
1
- export{default,Swipeable}from"./Swipeable.js";
1
+ "use strict";export{default,Swipeable}from"./Swipeable.js";
@@ -1 +1 @@
1
- import{forwardRef as e,useEffect as t,useMemo as i,useRef as s}from"react";import{Animated as r,Easing as a,Pressable as o,StyleSheet as n,View as c}from"react-native";import{useControllableState as l}from"../../hooks/index.js";import{createAnimatedValue as d,useTheme as u}from"../../theme/index.js";import{smoothCorners as p}from"../../utils/corners.js";import{triggerHaptic as m}from"../../utils/hapticUtils.js";import{ChoiceText as h,hasChoiceDetail as b}from"../FieldBase/ChoiceText.js";import{jsx as g,jsxs as y}from"react/jsx-runtime";const f={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}},w=e((e,n)=>{const{value:w,defaultValue:k,onChange:v,disabled:x=!1,size:S="md",tone:R="primary",label:j,description:H,error:L,labelLines:z,layout:C="inline",accessibilityLabel:D,haptic:V="selection",bounce:F=!1,style:T,containerStyle:I,trackStyle:N,thumbStyle:W,testID:P,...B}=e,[q,O]=l({value:w,defaultValue:k??!1,onChange:v}),U=u(),X={...f[S],...U.components.switch?.[S]??{}},A=U.components.switch?.thumbColor??"#FFFFFF",E=i(()=>buildStyles(U),[U]),G="dark"===U.mode?U.colors.secondary:U.colors.surface.disabled,J=((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}})(U,R),K=s(d(q?1:0)).current;t(()=>{const e=r.spring(K,{toValue:q?1:0,damping:U.motion.spring.snappy.damping,stiffness:U.motion.spring.snappy.stiffness,mass:U.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[q,K,U.motion.spring.snappy]);const M=s(d(q?1:0)).current;t(()=>{const e=r.timing(M,{toValue:q?1:0,duration:U.motion.duration.fast,easing:a.out(a.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[q,M,U.motion.duration.fast]);const Q=X.padding,Y=X.trackWidth-X.thumbSize-X.padding,Z=K.interpolate({inputRange:[0,1],outputRange:[Q,Y]}),$=M.interpolate({inputRange:[0,1],outputRange:[G,J]}),_=s(d(1)).current,ee=s(!0);t(()=>{if(!F)return;if(ee.current)return void(ee.current=!1);const e=r.sequence([r.spring(_,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),r.spring(_,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[q,F,_]);const handlePress=e=>{x||(!1!==V&&m(V),O(!q),B.onPressOut?.(e))},te=D??j,ie=Boolean(j)||b(H,L),se="row"===C&&ie,re=g(r.View,{style:[E.track,{width:X.trackWidth,height:X.trackHeight,borderRadius:X.trackHeight/2,...p,backgroundColor:$},N],children:g(r.View,{style:[E.thumb,U.shadows.sm,{backgroundColor:A,width:X.thumbSize,height:X.thumbSize,borderRadius:X.thumbSize/2,...p,transform:[{translateX:Z},{scale:_}]},W]})});if(se)return y(o,{ref:n,onPress:handlePress,disabled:x,accessibilityRole:"switch",accessibilityLabel:te,accessibilityHint:B.accessibilityHint??H,accessibilityState:{checked:q,disabled:x},testID:P,...B,style:({pressed:e})=>[E.row,E.spreadRow,b(H,L)?E.rowTop:null,{opacity:x?.55:e?.9:1},I,T],children:[g(h,{label:j,description:H,error:L,disabled:x,labelLines:z||void 0,descriptionLines:z||void 0,style:E.spreadText}),re]});const ae=g(o,{ref:n,onPress:handlePress,disabled:x,accessibilityRole:"switch",accessibilityLabel:te,accessibilityHint:B.accessibilityHint??H,accessibilityState:{checked:q,disabled:x},testID:P,hitSlop:8,...B,style:({pressed:e})=>[{opacity:x?.55:e?.9:1},ie?null:T],children:re});return ie?y(c,{style:[E.row,b(H,L)?E.rowTop:null,I,T],children:[ae,g(h,{label:j,description:H,error:L,disabled:x,labelLines:z||void 0,descriptionLines:z||void 0,style:E.text})]}):I?g(c,{style:I,children:ae}):ae});w.displayName="Switch";const buildStyles=e=>n.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}});export{w as Switch};export default w;
1
+ "use strict";import{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,Easing,Pressable,StyleSheet,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{triggerHaptic}from"../../utils/hapticUtils.js";import{ChoiceText,hasChoiceDetail}from"../FieldBase/ChoiceText.js";import{jsx as _jsx,jsxs as _jsxs}from"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=forwardRef((e,t)=>{const{value:s,defaultValue:i,onChange:r,disabled:a=!1,size:o="md",tone:n="primary",label:c,description:l,error:d,labelLines:u,layout:m="inline",accessibilityLabel:p,haptic:h="selection",bounce:b=!1,style:f,containerStyle:g,trackStyle:y,thumbStyle:w,testID:x,...S}=e,[C,j]=useControllableState({value:s,defaultValue:i??!1,onChange:r}),k=useTheme(),R={...sizeMap[o],...k.components.switch?.[o]??{}},v=k.components.switch?.thumbColor??"#FFFFFF",V=useMemo(()=>buildStyles(k),[k]),A="dark"===k.mode?k.colors.secondary:k.colors.surface.disabled,D=toneColor(k,n),H=useRef(createAnimatedValue(C?1:0)).current;useEffect(()=>{const e=Animated.spring(H,{toValue:C?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[C,H,k.motion.spring.snappy]);const T=useRef(createAnimatedValue(C?1:0)).current;useEffect(()=>{const e=Animated.timing(T,{toValue:C?1:0,duration:k.motion.duration.fast,easing:Easing.out(Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[C,T,k.motion.duration.fast]);const z=R.padding,_=R.trackWidth-R.thumbSize-R.padding,L=H.interpolate({inputRange:[0,1],outputRange:[z,_]}),E=T.interpolate({inputRange:[0,1],outputRange:[A,D]}),F=useRef(createAnimatedValue(1)).current,P=useRef(!0);useEffect(()=>{if(!b)return;if(P.current)return void(P.current=!1);const e=Animated.sequence([Animated.spring(F,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),Animated.spring(F,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[C,b,F]);const handlePress=e=>{a||(!1!==h&&triggerHaptic(h),j(!C),S.onPressOut?.(e))},I=p??c,N=Boolean(c)||hasChoiceDetail(l,d),W="row"===m&&N,M=_jsx(Animated.View,{style:[V.track,{width:R.trackWidth,height:R.trackHeight,borderRadius:R.trackHeight/2,...smoothCorners,backgroundColor:E},y],children:_jsx(Animated.View,{style:[V.thumb,k.shadows.sm,{backgroundColor:v,width:R.thumbSize,height:R.thumbSize,borderRadius:R.thumbSize/2,...smoothCorners,transform:[{translateX:L},{scale:F}]},w]})});if(W)return _jsxs(Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:I,accessibilityHint:S.accessibilityHint??l,accessibilityState:{checked:C,disabled:a},testID:x,...S,style:({pressed:e})=>[V.row,V.spreadRow,hasChoiceDetail(l,d)?V.rowTop:null,{opacity:a?.55:e?.9:1},g,f],children:[_jsx(ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:V.spreadText}),M]});const B=_jsx(Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:I,accessibilityHint:S.accessibilityHint??l,accessibilityState:{checked:C,disabled:a},testID:x,hitSlop:8,...S,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},N?null:f],children:M});return N?_jsxs(View,{style:[V.row,hasChoiceDetail(l,d)?V.rowTop:null,g,f],children:[B,_jsx(ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:V.text})]}):g?_jsx(View,{style:g,children:B}):B});Switch.displayName="Switch";const buildStyles=e=>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}});export{Switch};export default Switch;
@@ -1 +1 @@
1
- export{default,Switch}from"./Switch.js";
1
+ "use strict";export{default,Switch}from"./Switch.js";
@@ -1 +1 @@
1
- import{forwardRef as e,useCallback as t,useEffect as i,useMemo as o,useRef as n,useState as a}from"react";import{Animated as r,Pressable as l,ScrollView as s,StyleSheet as d,Text as c,View as p}from"react-native";import{createAnimatedValue as g,useTheme as u}from"../../theme/index.js";import{resolveHaptic as b,triggerHaptic as m}from"../../utils/index.js";import{smoothCorners as f}from"../../utils/corners.js";import{renderSlotIcon as y}from"../AppIcon/slotIcon.js";import{segmentedControlSizes as h}from"../SegmentedControl/SegmentedControl.js";import{SquircleFill as z,useSquircle as S}from"../SquircleFill/SquircleFill.js";import{jsx as x,jsxs as v,Fragment as H}from"react/jsx-runtime";const k={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}},C=e((e,C)=>{const{tabs:I,activeKey:w,onChange:P,variant:j="underline",radius:L,size:R="md",scrollable:V=!1,align:W="left",style:D,containerStyle:F,tabStyle:B,tabLabelStyle:T,tabIconStyle:M,tabBadgeStyle:N,dividerStyle:O,indicatorStyle:q,progress:E,haptic:U,accessibilityLabel:A,testID:G}=e,K=u(),X=o(()=>buildStyles(K),[K]),_=K.components.tabs,J=k[R],Q=_?.[R],Y=V?Q?.scrollablePaddingHorizontal??_?.tabPaddingHorizontal??J.scrollablePaddingHorizontal:Q?.paddingHorizontal??_?.tabPaddingHorizontal??J.paddingHorizontal,Z=Q?.paddingVertical??_?.tabPaddingVertical??J.paddingVertical,$=Q?.fontSize??J.fontSize,ee=_?.tabIconSpacing??6,te=Q?.iconSize??_?.tabIconSize??J.iconSize,ie=_?.underlineHeight??2,oe=_?.pillInset??4,ne=_?.disabledOpacity??.45,ae=_?.badgeGap??6,re="segmented"===j,le=K.components.segmentedControl,se=h[R],de=le?.[R]?.height??se.height,ce=le?.[R]?.fontSize??se.fontSize,pe=le?.[R]?.paddingHorizontal??se.paddingHorizontal,ge=_?.trackPadding??4,ue="number"==typeof L?L:L?K.radius[L]:_?.radius,be=ue??K.radius.md,me=void 0===ue?K.radius.sm:Math.max(ue-ge,0),fe=ue??K.radius.full,ye=ue??0,he=K.colors.background.tertiary,ze=S(re,be),[Se,xe]=a({}),ve=n(g(0)).current,He=n(g(0)).current,ke=Se[w],Ce=I.every(e=>void 0!==Se[e.key]),Ie=void 0!==E&&Ce&&I.length>1,we=o(()=>Ie&&E?E.interpolate({inputRange:I.map((e,t)=>t),outputRange:I.map(e=>Se[e.key].x),extrapolate:"clamp"}):null,[Ie,E,I,Se]),Pe=o(()=>Ie&&E?E.interpolate({inputRange:I.map((e,t)=>t),outputRange:I.map(e=>Se[e.key].width),extrapolate:"clamp"}):null,[Ie,E,I,Se]);i(()=>{if(!ke)return;if(Ie)return;const e=K.motion.spring.snappy,t=r.parallel([r.spring(ve,{toValue:ke.x,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1}),r.spring(He,{toValue:ke.width,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1})]);return t.start(),()=>t.stop()},[ke,w,ve,He,K.motion.spring.snappy,Ie]);const je=t(e=>t=>{const{x:i,width:o}=t.nativeEvent.layout;xe(t=>{const n=t[e];return n&&n.x===i&&n.width===o?t:{...t,[e]:{x:i,width:o}}})},[]),Le=t(e=>{if(e.disabled)return;if(e.key===w)return;const t=b(U,"selection");t&&m(t),P(e.key)},[w,P,U]),Re="pills"===j,Ve=x(r.View,{pointerEvents:"none",style:[re?X.indicatorThumb:Re?X.indicatorPill:X.indicatorUnderline,re?null:Re?{top:oe,bottom:oe}:{height:ie},{width:Pe??He,transform:[{translateX:we??ve}],backgroundColor:re?K.colors.background.elevated:Re?K.colors.primaryMuted:K.colors.primary,borderRadius:re?me:Re?fe:ye,...f},q]}),renderTabs=()=>I.map(e=>{const t=e.key===w,i=!0===e.disabled,o=t?K.colors.primary:K.colors.text.tertiary,n=y(e.icon,{color:o,size:te,focused:t,disabled:i});return v(l,{onPress:()=>Le(e),onLayout:je(e.key),disabled:i,accessibilityRole:"tab",accessibilityLabel:e.label,accessibilityState:{selected:t,disabled:i},android_ripple:re?void 0:{color:K.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[X.tab,V?null:X.tabFlex,re?{paddingHorizontal:pe,height:de-2*ge}:{paddingHorizontal:Y,paddingVertical:Z},{opacity:i?ne:e&&re&&!t?.7:1,backgroundColor:e&&!re?K.colors.surface.pressed:"transparent"},B],children:[n?x(p,{style:[X.tabIcon,{marginRight:ee},M],children:n}):null,x(c,{style:[X.tabLabel,{color:o,fontSize:re?ce:$,fontWeight:t?K.typography.fontWeight.semibold:K.typography.fontWeight.medium},T],numberOfLines:1,children:e.label}),void 0!==e.badge&&null!==e.badge?x(p,{style:[X.tabBadge,{marginLeft:ae,backgroundColor:K.colors.primaryMuted,borderRadius:K.radius.full,...f,paddingHorizontal:K.spacing.xs},N],children:x(c,{style:{color:K.colors.primary,fontSize:K.typography.fontSize.xs,fontWeight:K.typography.fontWeight.semibold},numberOfLines:1,children:String(e.badge)})}):null]},e.key)}),We={flexDirection:"row",alignItems:"stretch",justifyContent:V?"flex-start":"center"===W?"center":"flex-start",position:"relative",overflow:"hidden"},De=v(H,re?{children:[Ve,renderTabs()]}:{children:[renderTabs(),Ve]});return v(p,{ref:C,style:[X.container,{borderBottomColor:K.colors.border.secondary,borderBottomWidth:"underline"===j?d.hairlineWidth:0},"underline"===j?O:null,re?{padding:ge,borderRadius:be,...f,backgroundColor:ze.active?"transparent":he}:null,D,F],onLayout:ze.onLayout,accessibilityRole:"tablist",accessibilityLabel:A,testID:G,children:[ze.active&&ze.size?x(z,{width:ze.size.width,height:ze.size.height,radius:be,fill:he}):null,V?x(s,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[We],keyboardShouldPersistTaps:"handled",children:De}):x(p,{style:We,children:De})]})});C.displayName="Tabs";const buildStyles=e=>d.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}});export{C as Tabs};export default C;
1
+ "use strict";import{forwardRef,useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Pressable,ScrollView,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{segmentedControlSizes}from"../SegmentedControl/SegmentedControl.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"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=forwardRef((e,t)=>{const{tabs:i,activeKey:o,onChange:a,variant:r="underline",radius:n,size:l="md",scrollable:s=!1,align:d="left",style:c,containerStyle:u,tabStyle:p,tabLabelStyle:m,tabIconStyle:g,tabBadgeStyle:b,dividerStyle:f,indicatorStyle:h,progress:y,haptic:S,accessibilityLabel:z,testID:x}=e,v=useTheme(),j=useMemo(()=>buildStyles(v),[v]),C=v.components.tabs,w=tabsSizes[l],H=C?.[l],k=s?H?.scrollablePaddingHorizontal??C?.tabPaddingHorizontal??w.scrollablePaddingHorizontal:H?.paddingHorizontal??C?.tabPaddingHorizontal??w.paddingHorizontal,V=H?.paddingVertical??C?.tabPaddingVertical??w.paddingVertical,I=H?.fontSize??w.fontSize,P=C?.tabIconSpacing??6,_=H?.iconSize??C?.tabIconSize??w.iconSize,R=C?.underlineHeight??2,T=C?.pillInset??4,L=C?.disabledOpacity??.45,F=C?.badgeGap??6,A="segmented"===r,W=v.components.segmentedControl,M=segmentedControlSizes[l],q=W?.[l]?.height??M.height,D=W?.[l]?.fontSize??M.fontSize,B=W?.[l]?.paddingHorizontal??M.paddingHorizontal,E=C?.trackPadding??4,N="number"==typeof n?n:n?v.radius[n]:C?.radius,O=N??v.radius.md,U=void 0===N?v.radius.sm:Math.max(N-E,0),G=N??v.radius.full,K=N??0,X=v.colors.background.tertiary,J=useSquircle(A,O),[Q,Y]=useState({}),Z=useRef(createAnimatedValue(0)).current,$=useRef(createAnimatedValue(0)).current,ee=Q[o],te=i.every(e=>void 0!==Q[e.key]),ie=void 0!==y&&te&&i.length>1,oe=useMemo(()=>ie&&y?y.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].x),extrapolate:"clamp"}):null,[ie,y,i,Q]),ae=useMemo(()=>ie&&y?y.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].width),extrapolate:"clamp"}):null,[ie,y,i,Q]);useEffect(()=>{if(!ee)return;if(ie)return;const e=v.motion.spring.snappy,t=Animated.parallel([Animated.spring(Z,{toValue:ee.x,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1}),Animated.spring($,{toValue:ee.width,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1})]);return t.start(),()=>t.stop()},[ee,o,Z,$,v.motion.spring.snappy,ie]);const re=useCallback(e=>t=>{const{x:i,width:o}=t.nativeEvent.layout;Y(t=>{const a=t[e];return a&&a.x===i&&a.width===o?t:{...t,[e]:{x:i,width:o}}})},[]),ne=useCallback(e=>{if(e.disabled)return;if(e.key===o)return;const t=resolveHaptic(S,"selection");t&&triggerHaptic(t),a(e.key)},[o,a,S]),le="pills"===r,se=_jsx(Animated.View,{pointerEvents:"none",style:[A?j.indicatorThumb:le?j.indicatorPill:j.indicatorUnderline,A?null:le?{top:T,bottom:T}:{height:R},{width:ae??$,transform:[{translateX:oe??Z}],backgroundColor:A?v.colors.background.elevated:le?v.colors.primaryMuted:v.colors.primary,borderRadius:A?U:le?G:K,...smoothCorners},h]}),renderTabs=()=>i.map(e=>{const t=e.key===o,i=!0===e.disabled,a=t?v.colors.primary:v.colors.text.tertiary,r=renderSlotIcon(e.icon,{color:a,size:_,focused:t,disabled:i});return _jsxs(Pressable,{onPress:()=>ne(e),onLayout:re(e.key),disabled:i,accessibilityRole:"tab",accessibilityLabel:e.label,accessibilityState:{selected:t,disabled:i},android_ripple:A?void 0:{color:v.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[j.tab,s?null:j.tabFlex,A?{paddingHorizontal:B,height:q-2*E}:{paddingHorizontal:k,paddingVertical:V},{opacity:i?L:e&&A&&!t?.7:1,backgroundColor:e&&!A?v.colors.surface.pressed:"transparent"},p],children:[r?_jsx(View,{style:[j.tabIcon,{marginRight:P},g],children:r}):null,_jsx(Text,{style:[j.tabLabel,{color:a,fontSize:A?D:I,fontWeight:t?v.typography.fontWeight.semibold:v.typography.fontWeight.medium},m],numberOfLines:1,children:e.label}),void 0!==e.badge&&null!==e.badge?_jsx(View,{style:[j.tabBadge,{marginLeft:F,backgroundColor:v.colors.primaryMuted,borderRadius:v.radius.full,...smoothCorners,paddingHorizontal:v.spacing.xs},b],children:_jsx(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=_jsxs(_Fragment,A?{children:[se,renderTabs()]}:{children:[renderTabs(),se]});return _jsxs(View,{ref:t,style:[j.container,{borderBottomColor:v.colors.border.secondary,borderBottomWidth:"underline"===r?StyleSheet.hairlineWidth:0},"underline"===r?f:null,A?{padding:E,borderRadius:O,...smoothCorners,backgroundColor:J.active?"transparent":X}:null,c,u],onLayout:J.onLayout,accessibilityRole:"tablist",accessibilityLabel:z,testID:x,children:[J.active&&J.size?_jsx(SquircleFill,{width:J.size.width,height:J.size.height,radius:O,fill:X}):null,s?_jsx(ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[de],keyboardShouldPersistTaps:"handled",children:ce}):_jsx(View,{style:de,children:ce})]})});Tabs.displayName="Tabs";const buildStyles=e=>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}});export{Tabs};export default Tabs;
@@ -1 +1 @@
1
- export{default,Tabs}from"./Tabs.js";
1
+ "use strict";export{default,Tabs}from"./Tabs.js";
@@ -1 +1 @@
1
- import{forwardRef as e,useCallback as t,useMemo as r,useRef as o,useState as n}from"react";import{StyleSheet as i,TextInput as a,View as l}from"react-native";import{useControllableState as s}from"../../hooks/index.js";import{fontFor as p,useTheme as d}from"../../theme/index.js";import{mergeRefs as c,resolveHaptic as u,triggerHaptic as m}from"../../utils/index.js";import{Chip as f}from"../Chip/index.js";import{FieldBase as h}from"../FieldBase/index.js";import{FormField as x}from"../FormField/index.js";import{jsx as g,jsxs as y}from"react/jsx-runtime";export const TagInput=e((e,i)=>{const{value:p,defaultValue:v,onChange:b,placeholder:T,label:j,helperText:I,error:C,required:w,disabled:z=!1,size:D="md",variant:F,maxTags:k,unique:B=!0,transform:S,separators:q=[","],haptic:V,style:$,testID:E}=e,K=d(),L=r(()=>buildStyles(K),[K]),[P,W]=s({value:p,defaultValue:v??[],onChange:b}),[G,N]=n(""),[O,A]=n(!1),H=o(null),J=r(()=>c(H,i),[i]),M=t(()=>{z||H.current?.focus()},[z]),Q="number"==typeof k&&P.length>=k,R=t(e=>{const t=S?S(e.trim()):e.trim();if(!t)return;if(Q)return;if(B&&P.some(e=>e.toLowerCase()===t.toLowerCase()))return void N("");W([...P,t]),N("");const r=u(V,"selection");r&&m(r)},[Q,V,W,P,S,B]),U=t(e=>{const t=P.filter((t,r)=>r!==e);W(t);const r=u(V,"selection");r&&m(r)},[V,W,P]),X=t(e=>{const t=q.find(t=>t.length>0&&e.includes(t));if(t){const[r]=e.split(t);return void R(r)}N(e)},[R,q]),Y=t(e=>{z||"Backspace"===e.nativeEvent.key&&""===G&&P.length>0&&U(P.length-1)},[z,G,U,P.length]),Z=g(h,{size:D,variant:F,focused:O,disabled:z,error:Boolean(C),filled:P.length>0||G.length>0,onPress:M,pressFeedback:!1,style:$,children:y(l,{style:L.wrap,children:[P.map((e,t)=>g(f,{label:e,size:"sm",onClose:z?void 0:()=>U(t),haptic:V},`${e}-${t}`)),g(a,{ref:J,value:G,onChangeText:X,onKeyPress:Y,onSubmitEditing:()=>R(G),onFocus:()=>A(!0),onBlur:()=>{A(!1),R(G)},editable:!z&&!Q,placeholder:Q?void 0:T,placeholderTextColor:K.colors.text.tertiary,blurOnSubmit:!1,returnKeyType:"done",style:[L.input,{color:K.colors.text.primary,fontSize:K.typography.fontSize.base}],testID:E?`${E}-input`:void 0})]})});return g(l,j||I||C?{testID:E,children:g(x,{label:j,helperText:I,error:C,required:w,children:Z})}:{testID:E,children:Z})});TagInput.displayName="TagInput";const buildStyles=e=>i.create({wrap:{flex:1,flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:e.spacing.xs,paddingVertical:e.spacing.xs},input:{...p(e,"normal"),flexGrow:1,minWidth:80,padding:0}});export default TagInput;
1
+ "use strict";import{forwardRef,useCallback,useMemo,useRef,useState}from"react";import{StyleSheet,TextInput,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{fontFor,useTheme}from"../../theme/index.js";import{mergeRefs,resolveHaptic,triggerHaptic}from"../../utils/index.js";import{Chip}from"../Chip/index.js";import{FieldBase}from"../FieldBase/index.js";import{FormField}from"../FormField/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const TagInput=forwardRef((e,t)=>{const{value:r,defaultValue:s,onChange:o,placeholder:i,label:l,helperText:a,error:n,required:u,disabled:p=!1,size:c="md",variant:d,maxTags:m,unique:f=!0,transform:x,separators:h=[","],haptic:g,style:b,testID:y}=e,C=useTheme(),j=useMemo(()=>buildStyles(C),[C]),[v,S]=useControllableState({value:r,defaultValue:s??[],onChange:o}),[T,F]=useState(""),[w,I]=useState(!1),k=useRef(null),_=useMemo(()=>mergeRefs(k,t),[t]),B=useCallback(()=>{p||k.current?.focus()},[p]),H="number"==typeof m&&v.length>=m,R=useCallback(e=>{const t=x?x(e.trim()):e.trim();if(!t)return;if(H)return;if(f&&v.some(e=>e.toLowerCase()===t.toLowerCase()))return void F("");S([...v,t]),F("");const r=resolveHaptic(g,"selection");r&&triggerHaptic(r)},[H,g,S,v,x,f]),V=useCallback(e=>{const t=v.filter((t,r)=>r!==e);S(t);const r=resolveHaptic(g,"selection");r&&triggerHaptic(r)},[g,S,v]),z=useCallback(e=>{const t=h.find(t=>t.length>0&&e.includes(t));if(t){const[r]=e.split(t);return void R(r)}F(e)},[R,h]),D=useCallback(e=>{p||"Backspace"===e.nativeEvent.key&&""===T&&v.length>0&&V(v.length-1)},[p,T,V,v.length]),q=_jsx(FieldBase,{size:c,variant:d,focused:w,disabled:p,error:Boolean(n),filled:v.length>0||T.length>0,onPress:B,pressFeedback:!1,style:b,children:_jsxs(View,{style:j.wrap,children:[v.map((e,t)=>_jsx(Chip,{label:e,size:"sm",onClose:p?void 0:()=>V(t),haptic:g},`${e}-${t}`)),_jsx(TextInput,{ref:_,value:T,onChangeText:z,onKeyPress:D,onSubmitEditing:()=>R(T),onFocus:()=>I(!0),onBlur:()=>{I(!1),R(T)},editable:!p&&!H,placeholder:H?void 0:i,placeholderTextColor:C.colors.text.tertiary,blurOnSubmit:!1,returnKeyType:"done",style:[j.input,{color:C.colors.text.primary,fontSize:C.typography.fontSize.base}],testID:y?`${y}-input`:void 0})]})});return _jsx(View,l||a||n?{testID:y,children:_jsx(FormField,{label:l,helperText:a,error:n,required:u,children:q})}:{testID:y,children:q})});TagInput.displayName="TagInput";const buildStyles=e=>StyleSheet.create({wrap:{flex:1,flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:e.spacing.xs,paddingVertical:e.spacing.xs},input:{...fontFor(e,"normal"),flexGrow:1,minWidth:80,padding:0}});export default TagInput;
@@ -1 +1 @@
1
- export{default,TagInput}from"./TagInput.js";
1
+ "use strict";export{default,TagInput}from"./TagInput.js";
@@ -1 +1 @@
1
- import e,{forwardRef as i,useMemo as t}from"react";import{Text as o}from"react-native";import{fontFor as r,useTheme as n}from"../../theme/index.js";import{jsx as l}from"react/jsx-runtime";const a={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"}},s={primary:!0,secondary:!0,tertiary:!0,inverse:!0,disabled:!0,link:!0,textStrong:!0},c={textStrong:"strong"},p={success:!0,warning:!0,error:!0,info:!0};export const resolveColor=(e,i)=>s[i]?e.colors.text[c[i]??i]:p[i]?e.colors[i]:i;const g=i((e,i)=>{const{variant:s="body",color:c,weight:p,size:g,align:m,italic:d,underline:h,style:y,children:x,...f}=e,u=n(),b=Object.hasOwn(a,s),z=u.textVariants,S=!b&&z&&Object.hasOwn(z,s)?z[s]:void 0,w=t(()=>{if(S){const{typography:e}=u,i="number"==typeof S.size?S.size:e.fontSize[S.size],t="number"==typeof g?g:g?e.fontSize[g]:i,o=S.lineHeight,n=S.letterSpacing;return{fontSize:t,lineHeight:"number"==typeof o?o:o?Math.round(t*e.lineHeight[o]):void 0,color:resolveColor(u,c??S.color??"primary"),textAlign:m,textTransform:S.uppercase?"uppercase":void 0,letterSpacing:"number"!=typeof n&&n?e.letterSpacing[n]:n,fontStyle:d||S.italic?"italic":void 0,fontVariant:S.fontVariant,textDecorationLine:h?"underline":void 0,...r(u,p??S.weight??"normal")}}const e=a[b?s:"body"],i="number"==typeof g?g:u.typography.fontSize[g??e.size];return{fontSize:i,lineHeight:Math.round(i*u.typography.lineHeight[e.line]),color:resolveColor(u,c??e.color),textAlign:m,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?u.typography.letterSpacing[e.letterSpacing]:void 0,fontStyle:d?"italic":void 0,textDecorationLine:h?"underline":void 0,...r(u,p??e.weight)}},[u,S,b,s,c,p,g,m,d,h]),v=!!b&&a[s].heading;return l(o,{ref:i,style:[w,y],maxFontSizeMultiplier:u.maxFontSizeMultiplier,accessibilityRole:v?"header":f.accessibilityRole,...f,children:x})});g.displayName="Text";export{g as Text};export default g;
1
+ "use strict";import React,{forwardRef,useMemo}from"react";import{Text as RNText}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{jsx as _jsx}from"react/jsx-runtime";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};export const resolveColor=(e,i)=>TEXT_ROLES[i]?e.colors.text[TEXT_ROLE_KEY[i]??i]:SEMANTIC[i]?e.colors[i]:i;const Text=forwardRef((e,i)=>{const{variant:t="body",color:o,weight:r,size:n,align:l,italic:a,underline:s,style:c,children:m,...p}=e,g=useTheme(),d=Object.hasOwn(VARIANTS,t),h=g.textVariants,y=!d&&h&&Object.hasOwn(h,t)?h[t]:void 0,x=useMemo(()=>{if(y){const{typography:e}=g,i="number"==typeof y.size?y.size:e.fontSize[y.size],t="number"==typeof n?n:n?e.fontSize[n]:i,c=y.lineHeight,m=y.letterSpacing;return{fontSize:t,lineHeight:"number"==typeof c?c:c?Math.round(t*e.lineHeight[c]):void 0,color:resolveColor(g,o??y.color??"primary"),textAlign:l,textTransform:y.uppercase?"uppercase":void 0,letterSpacing:"number"!=typeof m&&m?e.letterSpacing[m]:m,fontStyle:a||y.italic?"italic":void 0,fontVariant:y.fontVariant,textDecorationLine:s?"underline":void 0,...fontFor(g,r??y.weight??"normal")}}const e=VARIANTS[d?t:"body"],i="number"==typeof n?n:g.typography.fontSize[n??e.size];return{fontSize:i,lineHeight:Math.round(i*g.typography.lineHeight[e.line]),color:resolveColor(g,o??e.color),textAlign:l,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?g.typography.letterSpacing[e.letterSpacing]:void 0,fontStyle:a?"italic":void 0,textDecorationLine:s?"underline":void 0,...fontFor(g,r??e.weight)}},[g,y,d,t,o,r,n,l,a,s]),f=!!d&&VARIANTS[t].heading;return _jsx(RNText,{ref:i,style:[x,c],maxFontSizeMultiplier:g.maxFontSizeMultiplier,accessibilityRole:f?"header":p.accessibilityRole,...p,children:m})});Text.displayName="Text";export{Text};export default Text;
@@ -1 +1 @@
1
- export{Text}from"./Text.js";
1
+ "use strict";export{Text}from"./Text.js";
@@ -1 +1 @@
1
- import e,{useCallback as t,useEffect as i,useMemo as n,useRef as o,useState as r}from"react";import{AccessibilityInfo as a,Animated as s,Easing as l,Modal as c,Platform as d,Pressable as m,StyleSheet as u,Text as p,View as h}from"react-native";import{GestureDetector as g,GestureHandlerRootView as y}from"react-native-gesture-handler";import{useSafeAreaInsets as f}from"react-native-safe-area-context";import{useDragToDismiss as b}from"../../hooks/useDragToDismiss.js";import{createAnimatedValue as x,setNativeValue as v,useTheme as w}from"../../theme/index.js";import{smoothCorners as I}from"../../utils/corners.js";import{resolveHaptic as S,triggerHaptic as M}from"../../utils/hapticUtils.js";import C from"../Button/Button.js";import{PickerTrigger as D}from"../PickerTrigger/PickerTrigger.js";import{ToastHost as k}from"../Toast/ToastProvider.js";import{jsx as L,jsxs as H,Fragment as R}from"react/jsx-runtime";const A=40,B=Math.floor(2.5),range=(e,t,i=1)=>{const n=[];for(let o=e;o<=t;o+=i)n.push(o);return n},pad2=e=>e.toString().padStart(2,"0"),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:r,data:a,selectedIndex:l,onIndexChange:c,formatItem:d,theme:m,haptic:u,testID:g})=>{const y=o(null),f=o(x(l*A)).current,b=o(l),w=o(0);i(()=>{if(b.current!==l){b.current=l;const e=l*A;v(f,e),requestAnimationFrame(()=>{y.current?.scrollToOffset({offset:e,animated:!1})})}},[l,f]);const I=m.components.timePicker?.hapticDebounceMs??35,C=n(()=>s.event([{nativeEvent:{contentOffset:{y:f}}}],{useNativeDriver:!0,listener:e=>{const t=e.nativeEvent.contentOffset.y,i=Math.round(t/A);if(i!==b.current&&i>=0&&i<a.length){const e=Date.now();if(e-w.current>=I){const t=S(u,"selection");t&&M(t),w.current=e}b.current=i}}}),[f,a.length,u,I]),D=t(e=>{const t=e.nativeEvent.contentOffset.y,i=Math.max(0,Math.min(a.length-1,Math.round(t/A)));i!==l&&c(i)},[a.length,c,l]),k=t(e=>{const t=e.nativeEvent.actionName;if("increment"===t){const e=Math.min(a.length-1,l+1);e!==l&&c(e)}else if("decrement"===t){const e=Math.max(0,l-1);e!==l&&c(e)}},[a.length,c,l]),R=t(({item:e,index:t})=>{const i=s.subtract(s.divide(f,A),t),n=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"}),r=t===l;return L(s.View,{style:[T.wheelItem,{opacity:n,transform:[{scale:o}]}],accessible:!1,importantForAccessibility:"no",children:L(p,{style:[{fontSize:m.typography.fontSize.xl,color:r?m.colors.text.primary:m.colors.text.secondary,fontWeight:r?m.typography.fontWeight.semibold:m.typography.fontWeight.medium,letterSpacing:m.typography.letterSpacing.normal}],children:d(e)})})},[f,l,m,d]),$=t((t,i)=>`${e}-${String(t)}-${i}`,[e]),j=t((e,t)=>({length:A,offset:A*t,index:t}),[]),z=d(a[l]??"");return H(h,{style:T.wheelColumn,testID:g,children:[L(h,{pointerEvents:"none",style:T.wheelA11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:r,accessibilityValue:{text:z},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:k}),L(s.FlatList,{ref:y,data:a,keyExtractor:$,renderItem:R,getItemLayout:j,showsVerticalScrollIndicator:!1,snapToInterval:A,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEventThrottle:16,onScroll:C,onMomentumScrollEnd:D,contentContainerStyle:{paddingVertical:A*B},initialScrollIndex:l,style:T.wheelList,importantForAccessibility:"no-hide-descendants"})]})},TimePicker=e=>{const{visible:I,value:S,onChange:A,onClose:B,format:T="12h",minuteStep:$=1,title:j="Select Time",confirmLabel:z="Confirm",cancelLabel:P="Cancel",testID:F,style:N,containerStyle:O,headerLabelStyle:W,footerButtonStyle:V,label:E,placeholder:q,helperText:G,error:U,required:Y,disabled:J,size:K,variant:Q,clearable:X,onClear:Z,formatValue:_,triggerStyle:ee,haptic:te}=e,ie=void 0!==e.visible,[ne,oe]=r(!1),re=ie?I:ne,ae=ie?F:F?`${F}-modal`:void 0,se=w(),le=f(),ce=n(()=>buildStyles(se),[se]),de=o(x(0)).current,me=o(x(40)).current,ue=o(x(0)).current,pe=o(0),he=t(()=>{ie?B?.():oe(!1)},[ie,B]),ge=t(()=>{s.parallel([s.timing(de,{toValue:0,duration:se.motion.duration.fast,easing:l.bezier(...se.motion.easing.accelerate),useNativeDriver:!1}),s.timing(me,{toValue:40,duration:se.motion.duration.fast,easing:l.bezier(...se.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>he())},[he,de,me,se.motion.duration.fast,se.motion.easing.accelerate]),{handleGesture:ye}=b({drag:ue,travel:()=>pe.current||320,onDismiss:ge}),fe=n(()=>"24h"===T?range(0,23):range(1,12),[T]),be=n(()=>range(0,59,$),[$]),xe=n(()=>["AM","PM"],[]),ve=n(()=>{const e=S&&Number.isFinite(S.hour)?S.hour:(new Date).getHours(),t=S&&Number.isFinite(S.minute)?S.minute:(new Date).getMinutes(),i=clampMinuteToStep(t,$),{displayHour:n,period:o}=from24h(e,T);return{displayHour:n,minute:i,period:o,hour24:e}},[S,T,$]),[we,Ie]=r(()=>{const e=fe.indexOf(ve.displayHour);return e>=0?e:0}),[Se,Me]=r(()=>{const e=be.indexOf(ve.minute);return e>=0?e:0}),[Ce,De]=r(()=>"PM"===ve.period?1:0);i(()=>{if(!re)return;const e=S&&Number.isFinite(S.hour)?S.hour:(new Date).getHours(),t=S&&Number.isFinite(S.minute)?S.minute:(new Date).getMinutes(),i=clampMinuteToStep(t,$),{displayHour:n,period:o}=from24h(e,T),r=fe.indexOf(n);Ie(r>=0?r:0);const a=be.indexOf(i);Me(a>=0?a:0),De("PM"===o?1:0)},[re,S,T,$,fe,be]),i(()=>{let e;return re?(e=s.parallel([s.timing(de,{toValue:1,duration:se.motion.duration.normal,easing:l.out(l.cubic),useNativeDriver:!1}),s.spring(me,{toValue:0,damping:se.motion.spring.snappy.damping,stiffness:se.motion.spring.snappy.stiffness,mass:se.motion.spring.snappy.mass,useNativeDriver:!0})]),e.start()):(de.setValue(0),v(me,40),v(ue,0)),()=>e?.stop()},[re,de,me,ue,se.motion]);const ke=t(e=>{"ios"!==d.OS&&"android"!==d.OS||a.announceForAccessibility(e)},[]),Le=t(e=>{Ie(e),ke(`Hour ${fe[e]}`)},[fe,ke]),He=t(e=>{Me(e),ke(`${be[e]} minutes`)},[be,ke]),Re=t(e=>{De(e),ke(xe[e]??"")},[xe,ke]),Ae=t(()=>{!1!==te&&M("selection"),ge()},[ge,te]),Be=t(()=>{const e=((e,t,i)=>"24h"===i?e:"AM"===t?12===e?0:e:12===e?12:e+12)(fe[we]??0,xe[Ce]??"AM",T),t=be[Se]??0;!1!==te&&M("notificationSuccess"),A?.({hour:e,minute:t}),ge()},[fe,we,xe,Ce,be,Se,T,A,ge,te]),Te=n(()=>{const e=fe[we]??0,t=be[Se]??0;if("24h"===T)return`${pad2(e)}:${pad2(t)}`;const i=xe[Ce]??"AM";return`${pad2(e)}:${pad2(t)} ${i}`},[fe,we,be,Se,xe,Ce,T]),$e=t(e=>pad2(Number(e)),[]),je=t(e=>pad2(Number(e)),[]),ze=t(e=>String(e),[]),Pe=t(e=>{if("24h"===T)return`${pad2(e.hour)}:${pad2(e.minute)}`;const{displayHour:t,period:i}=from24h(e.hour,"12h");return`${t}:${pad2(e.minute)} ${i}`},[T]),Fe=!ie&&S&&Number.isFinite(S.hour)&&Number.isFinite(S.minute)?(_??Pe)(S):void 0,Ne=L(c,{visible:re,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:ge,testID:ae,children:H(y,{collapsable:!1,style:ce.backdrop,children:[L(m,{style:u.absoluteFill,onPress:ge,accessibilityLabel:"Close time picker",accessibilityRole:"button"}),H(s.View,{style:[ce.sheet,{paddingBottom:Math.max(le.bottom,se.spacing.lg),transform:[{translateY:s.add(me,ue)}]},N,O],onLayout:e=>{pe.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessible:!0,accessibilityRole:"none",accessibilityLabel:j,children:[L(g,{gesture:ye,children:H(h,{children:[L(h,{style:ce.handle}),L(p,{style:[ce.title,W],accessibilityRole:"header",children:j})]})}),L(h,{style:ce.summaryWrap,accessibilityLiveRegion:"polite",accessibilityLabel:`Selected ${Te}`,children:L(p,{style:ce.summary,children:Te})}),H(h,{style:ce.wheelsRow,children:[H(h,{pointerEvents:"none",style:ce.selectionBand,children:[L(h,{style:ce.bandLine}),L(h,{style:[ce.bandLine,ce.bandLineBottom]})]}),L(Wheel,{kind:"hour",label:"Hour",data:fe,selectedIndex:we,onIndexChange:Le,formatItem:$e,theme:se,haptic:te,testID:"time-picker-hour"}),L(p,{style:ce.separator,children:":"}),L(Wheel,{kind:"minute",label:"Minute",data:be,selectedIndex:Se,onIndexChange:He,formatItem:je,theme:se,haptic:te,testID:"time-picker-minute"}),"12h"===T?H(R,{children:[L(h,{style:ce.spacer}),L(Wheel,{kind:"period",label:"Period",data:xe,selectedIndex:Ce,onIndexChange:Re,formatItem:ze,theme:se,haptic:te,testID:"time-picker-period"})]}):null]}),H(h,{style:ce.footer,children:[L(C,{title:P,haptic:!1,variant:"ghost",tone:"neutral",onPress:Ae,style:[ce.footerBtn,V],accessibilityHint:"Dismiss without changes",testID:"time-picker-cancel"}),L(C,{title:z,variant:"solid",tone:"primary",haptic:!1,onPress:Be,style:[ce.footerBtn,V],accessibilityHint:"Confirm selected time",testID:"time-picker-confirm"})]})]}),L(k,{})]})});return ie?Ne:H(R,{children:[L(D,{label:E,placeholder:q,helperText:G,error:U,required:Y,disabled:J,size:K,variant:Q,clearable:X,onClear:Z,value:Fe,onPress:()=>oe(!0),triggerStyle:ee,testID:F}),Ne]})},T=u.create({wheelColumn:{width:64,height:200,overflow:"hidden"},wheelList:{flexGrow:0,height:200},wheelItem:{height:A,alignItems:"center",justifyContent:"center"},wheelA11yLayer:{...u.absoluteFill,zIndex:2}}),buildStyles=e=>{const t=e.shadows.xl;return u.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,...I,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,...I,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:A*B,height:A,justifyContent:"space-between"},bandLine:{height:2*u.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}})};export{TimePicker};export default TimePicker;
1
+ "use strict";import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,Easing,Modal,Platform,Pressable,StyleSheet,Text,View}from"react-native";import{GestureDetector,GestureHandlerRootView}from"react-native-gesture-handler";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useDragToDismiss}from"../../hooks/useDragToDismiss.js";import{createAnimatedValue,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import Button from"../Button/Button.js";import{PickerTrigger}from"../PickerTrigger/PickerTrigger.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";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 n=e;n<=t;n+=i)a.push(n);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:n,formatItem:s,theme:r,haptic:o,testID:l})=>{const c=useRef(null),u=useRef(createAnimatedValue(40*a)).current,d=useRef(a),m=useRef(0);useEffect(()=>{if(d.current!==a){d.current=a;const e=40*a;setNativeValue(u,e),requestAnimationFrame(()=>{c.current?.scrollToOffset({offset:e,animated:!1})})}},[a,u]);const p=r.components.timePicker?.hapticDebounceMs??35,h=useMemo(()=>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=resolveHaptic(o,"selection");t&&triggerHaptic(t),m.current=e}d.current=a}}}),[u,i.length,o,p]),g=useCallback(e=>{const t=e.nativeEvent.contentOffset.y,s=Math.max(0,Math.min(i.length-1,Math.round(t/40)));s!==a&&n(s)},[i.length,n,a]),f=useCallback(e=>{const t=e.nativeEvent.actionName;if("increment"===t){const e=Math.min(i.length-1,a+1);e!==a&&n(e)}else if("decrement"===t){const e=Math.max(0,a-1);e!==a&&n(e)}},[i.length,n,a]),y=useCallback(({item:e,index:t})=>{const i=Animated.subtract(Animated.divide(u,40),t),n=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"}),l=t===a;return _jsx(Animated.View,{style:[styles.wheelItem,{opacity:n,transform:[{scale:o}]}],accessible:!1,importantForAccessibility:"no",children:_jsx(Text,{style:[{fontSize:r.typography.fontSize.xl,color:l?r.colors.text.primary:r.colors.text.secondary,fontWeight:l?r.typography.fontWeight.semibold:r.typography.fontWeight.medium,letterSpacing:r.typography.letterSpacing.normal}],children:s(e)})})},[u,a,r,s]),b=useCallback((t,i)=>`${e}-${String(t)}-${i}`,[e]),x=useCallback((e,t)=>({length:40,offset:40*t,index:t}),[]),S=s(i[a]??"");return _jsxs(View,{style:styles.wheelColumn,testID:l,children:[_jsx(View,{pointerEvents:"none",style:styles.wheelA11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:t,accessibilityValue:{text:S},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:f}),_jsx(Animated.FlatList,{ref:c,data:i,keyExtractor:b,renderItem:y,getItemLayout:x,showsVerticalScrollIndicator:!1,snapToInterval:40,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEventThrottle:16,onScroll:h,onMomentumScrollEnd:g,contentContainerStyle:{paddingVertical:40*CENTER_OFFSET},initialScrollIndex:a,style:styles.wheelList,importantForAccessibility:"no-hide-descendants"})]})},TimePicker=e=>{const{visible:t,value:i,onChange:a,onClose:n,format:s="12h",minuteStep:r=1,title:o="Select Time",confirmLabel:l="Confirm",cancelLabel:c="Cancel",testID:u,style:d,containerStyle:m,headerLabelStyle:p,footerButtonStyle:h,label:g,placeholder:f,helperText:y,error:b,required:x,disabled:S,size:v,variant:w,clearable:C,onClear:j,formatValue:k,triggerStyle:T,haptic:I}=e,M=void 0!==e.visible,[_,A]=useState(!1),E=M?t:_,V=M?u:u?`${u}-modal`:void 0,H=useTheme(),R=useSafeAreaInsets(),D=useMemo(()=>buildStyles(H),[H]),P=useRef(createAnimatedValue(0)).current,B=useRef(createAnimatedValue(40)).current,F=useRef(createAnimatedValue(0)).current,L=useRef(0),N=useCallback(()=>{M?n?.():A(!1)},[M,n]),O=useCallback(()=>{Animated.parallel([Animated.timing(P,{toValue:0,duration:H.motion.duration.fast,easing:Easing.bezier(...H.motion.easing.accelerate),useNativeDriver:!1}),Animated.timing(B,{toValue:40,duration:H.motion.duration.fast,easing:Easing.bezier(...H.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>N())},[N,P,B,H.motion.duration.fast,H.motion.easing.accelerate]),{handleGesture:W}=useDragToDismiss({drag:F,travel:()=>L.current||320,onDismiss:O}),$=useMemo(()=>"24h"===s?range(0,23):range(1,12),[s]),z=useMemo(()=>range(0,59,r),[r]),G=useMemo(()=>["AM","PM"],[]),q=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,r),{displayHour:n,period:o}=from24h(e,s);return{displayHour:n,minute:a,period:o,hour24:e}},[i,s,r]),[U,K]=useState(()=>{const e=$.indexOf(q.displayHour);return e>=0?e:0}),[Y,J]=useState(()=>{const e=z.indexOf(q.minute);return e>=0?e:0}),[Q,X]=useState(()=>"PM"===q.period?1:0);useEffect(()=>{if(!E)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,r),{displayHour:n,period:o}=from24h(e,s),l=$.indexOf(n);K(l>=0?l:0);const c=z.indexOf(a);J(c>=0?c:0),X("PM"===o?1:0)},[E,i,s,r,$,z]),useEffect(()=>{let e;return E?(e=Animated.parallel([Animated.timing(P,{toValue:1,duration:H.motion.duration.normal,easing:Easing.out(Easing.cubic),useNativeDriver:!1}),Animated.spring(B,{toValue:0,damping:H.motion.spring.snappy.damping,stiffness:H.motion.spring.snappy.stiffness,mass:H.motion.spring.snappy.mass,useNativeDriver:!0})]),e.start()):(P.setValue(0),setNativeValue(B,40),setNativeValue(F,0)),()=>e?.stop()},[E,P,B,F,H.motion]);const Z=useCallback(e=>{"ios"!==Platform.OS&&"android"!==Platform.OS||AccessibilityInfo.announceForAccessibility(e)},[]),ee=useCallback(e=>{K(e),Z(`Hour ${$[e]}`)},[$,Z]),te=useCallback(e=>{J(e),Z(`${z[e]} minutes`)},[z,Z]),ie=useCallback(e=>{X(e),Z(G[e]??"")},[G,Z]),ae=useCallback(()=>{!1!==I&&triggerHaptic("selection"),O()},[O,I]),ne=useCallback(()=>{const e=$[U]??0,t=G[Q]??"AM",i=to24h(e,t,s),n=z[Y]??0;!1!==I&&triggerHaptic("notificationSuccess"),a?.({hour:i,minute:n}),O()},[$,U,G,Q,z,Y,s,a,O,I]),se=useMemo(()=>{const e=$[U]??0,t=z[Y]??0;if("24h"===s)return`${pad2(e)}:${pad2(t)}`;const i=G[Q]??"AM";return`${pad2(e)}:${pad2(t)} ${i}`},[$,U,z,Y,G,Q,s]),re=useCallback(e=>pad2(Number(e)),[]),oe=useCallback(e=>pad2(Number(e)),[]),le=useCallback(e=>String(e),[]),ce=useCallback(e=>{if("24h"===s)return`${pad2(e.hour)}:${pad2(e.minute)}`;const{displayHour:t,period:i}=from24h(e.hour,"12h");return`${t}:${pad2(e.minute)} ${i}`},[s]),ue=!M&&i&&Number.isFinite(i.hour)&&Number.isFinite(i.minute)?(k??ce)(i):void 0,de=_jsx(Modal,{visible:E,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:O,testID:V,children:_jsxs(GestureHandlerRootView,{collapsable:!1,style:D.backdrop,children:[_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:O,accessibilityLabel:"Close time picker",accessibilityRole:"button"}),_jsxs(Animated.View,{style:[D.sheet,{paddingBottom:Math.max(R.bottom,H.spacing.lg),transform:[{translateY:Animated.add(B,F)}]},d,m],onLayout:e=>{L.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessible:!0,accessibilityRole:"none",accessibilityLabel:o,children:[_jsx(GestureDetector,{gesture:W,children:_jsxs(View,{children:[_jsx(View,{style:D.handle}),_jsx(Text,{style:[D.title,p],accessibilityRole:"header",children:o})]})}),_jsx(View,{style:D.summaryWrap,accessibilityLiveRegion:"polite",accessibilityLabel:`Selected ${se}`,children:_jsx(Text,{style:D.summary,children:se})}),_jsxs(View,{style:D.wheelsRow,children:[_jsxs(View,{pointerEvents:"none",style:D.selectionBand,children:[_jsx(View,{style:D.bandLine}),_jsx(View,{style:[D.bandLine,D.bandLineBottom]})]}),_jsx(Wheel,{kind:"hour",label:"Hour",data:$,selectedIndex:U,onIndexChange:ee,formatItem:re,theme:H,haptic:I,testID:"time-picker-hour"}),_jsx(Text,{style:D.separator,children:":"}),_jsx(Wheel,{kind:"minute",label:"Minute",data:z,selectedIndex:Y,onIndexChange:te,formatItem:oe,theme:H,haptic:I,testID:"time-picker-minute"}),"12h"===s?_jsxs(_Fragment,{children:[_jsx(View,{style:D.spacer}),_jsx(Wheel,{kind:"period",label:"Period",data:G,selectedIndex:Q,onIndexChange:ie,formatItem:le,theme:H,haptic:I,testID:"time-picker-period"})]}):null]}),_jsxs(View,{style:D.footer,children:[_jsx(Button,{title:c,haptic:!1,variant:"ghost",tone:"neutral",onPress:ae,style:[D.footerBtn,h],accessibilityHint:"Dismiss without changes",testID:"time-picker-cancel"}),_jsx(Button,{title:l,variant:"solid",tone:"primary",haptic:!1,onPress:ne,style:[D.footerBtn,h],accessibilityHint:"Confirm selected time",testID:"time-picker-confirm"})]})]}),_jsx(ToastHost,{})]})});return M?de:_jsxs(_Fragment,{children:[_jsx(PickerTrigger,{label:g,placeholder:f,helperText:y,error:b,required:x,disabled:S,size:v,variant:w,clearable:C,onClear:j,value:ue,onPress:()=>A(!0),triggerStyle:T,testID:u}),de]})},styles=StyleSheet.create({wheelColumn:{width:64,height:200,overflow:"hidden"},wheelList:{flexGrow:0,height:200},wheelItem:{height:40,alignItems:"center",justifyContent:"center"},wheelA11yLayer:{...StyleSheet.absoluteFill,zIndex:2}}),buildStyles=e=>{const t=e.shadows.xl;return 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,...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,...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*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}})};export{TimePicker};export default TimePicker;
@@ -1 +1 @@
1
- export{default,TimePicker}from"./TimePicker.js";
1
+ "use strict";export{default,TimePicker}from"./TimePicker.js";
@@ -1 +1 @@
1
- import e,{useCallback as t,useMemo as r,useState as o}from"react";import{StyleSheet as n,Text as i,View as l}from"react-native";import{fontFor as s,useTheme as c}from"../../theme/index.js";import{tintOf as a}from"../../utils/color.js";import{smoothCorners as d}from"../../utils/corners.js";import{jsx as h,Fragment as m,jsxs as g}from"react/jsx-runtime";export const Timeline=({items:e,variant:n="feed",orientation:s="vertical",style:d,testID:u})=>{const p=c(),y=p.components.timeline,f=y?.dotSize??12,x=y?.haloWidth??6,w=y?.connectorGap??4,b=f+2*x,S=r(()=>buildStyles(p,f,b,w),[p,f,b,w]),z="horizontal"===s,R=p.colors.border.primary,[j,k]=o(0),C=t(e=>{const{width:t}=e.nativeEvent.layout;k(e=>e===t?e:t)},[]),I=z&&j>0&&e.length>0?j/e.length:0,renderDisc=(e,t)=>e.icon?h(l,{style:S.disc,children:e.icon}):h(l,{style:[S.disc,{backgroundColor:a(t,.16,p.colors.background.tertiary)}],children:h(l,{style:[S.dot,{backgroundColor:t}]})}),renderText=(e,t)=>g(m,{children:[h(i,{style:[S.title,{fontSize:z?p.typography.fontSize.sm:p.typography.fontSize.base,color:"upcoming"===t?p.colors.text.secondary:p.colors.text.primary},z?S.centred:null],children:e.title}),e.meta?h(i,{style:[S.meta,{fontSize:p.typography.fontSize.xs,color:p.colors.text.tertiary},z?S.centred:null],children:e.meta}):null,e.description?h(i,{style:[S.description,{fontSize:p.typography.fontSize.sm,color:p.colors.text.secondary},z?S.centred:null],children:e.description}):null,e.children]}),D=e.map((t,r)=>{const o=t.status??("feed"===n?"done":"upcoming"),i=t.color??(e=>{switch(e){case"done":return p.colors.success;case"current":return p.colors.warning;case"onHold":return p.colors.info;case"rejected":return p.colors.error;case"cancelled":case"skipped":return p.colors.text.tertiary;default:return p.colors.text.disabled}})(o),s=0===r,c=r===e.length-1,a=t.key??`${t.title}-${r}`;return g(l,z?{style:[S.hColumn,I>0?{width:I,flex:0}:null],children:[g(l,{style:S.hDotRow,children:[h(l,{style:[S.hSegment,{marginRight:w,backgroundColor:s?"transparent":R}]}),renderDisc(t,i),h(l,{style:[S.hSegment,{marginLeft:w,backgroundColor:c?"transparent":R}]})]}),h(l,{style:S.hBody,children:renderText(t,o)})]}:{style:S.row,children:[g(l,{style:S.gutter,children:[renderDisc(t,i),c?null:h(l,{style:[S.rail,{backgroundColor:R}]})]}),h(l,{style:[S.body,{paddingBottom:c?0:p.spacing.lg}],children:renderText(t,o)})]},a)});return h(l,{style:[z?S.hRow:null,d],onLayout:z?C:void 0,testID:u,children:D})};const buildStyles=(e,t,r,o)=>n.create({row:{flexDirection:"row"},gutter:{width:Math.max(28,r+4),alignItems:"center"},disc:{width:r,height:r,borderRadius:r/2,...d,alignItems:"center",justifyContent:"center"},dot:{width:t,height:t,borderRadius:t/2,...d},rail:{width:2,flex:1,marginTop:o,borderRadius:1,...d},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,...d},hBody:{alignSelf:"stretch",alignItems:"center",paddingHorizontal:e.spacing.xs,marginTop:e.spacing.sm,gap:2},centred:{textAlign:"center"},title:{...s(e,"semibold"),fontWeight:"600"},meta:{...s(e,"normal")},description:{...s(e,"normal")}});export default Timeline;
1
+ "use strict";import React,{useCallback,useMemo,useState}from"react";import{StyleSheet,Text,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const DOT=12,HALO=6,RAIL=2,GAP=4,GUTTER=28,HALO_OPACITY=.16;export const Timeline=({items:e,variant:t="feed",orientation:r="vertical",style:o,testID:n})=>{const s=useTheme(),i=s.components.timeline,l=i?.dotSize??12,c=i?.haloWidth??6,a=i?.connectorGap??4,d=l+2*c,m=useMemo(()=>buildStyles(s,l,d,a),[s,l,d,a]),h="horizontal"===r,u=s.colors.border.primary,[g,x]=useState(0),y=useCallback(e=>{const{width:t}=e.nativeEvent.layout;x(e=>e===t?e:t)},[]),p=h&&g>0&&e.length>0?g/e.length:0,renderDisc=(e,t)=>e.icon?_jsx(View,{style:m.disc,children:e.icon}):_jsx(View,{style:[m.disc,{backgroundColor:tintOf(t,.16,s.colors.background.tertiary)}],children:_jsx(View,{style:[m.dot,{backgroundColor:t}]})}),renderText=(e,t)=>_jsxs(_Fragment,{children:[_jsx(Text,{style:[m.title,{fontSize:h?s.typography.fontSize.sm:s.typography.fontSize.base,color:"upcoming"===t?s.colors.text.secondary:s.colors.text.primary},h?m.centred:null],children:e.title}),e.meta?_jsx(Text,{style:[m.meta,{fontSize:s.typography.fontSize.xs,color:s.colors.text.tertiary},h?m.centred:null],children:e.meta}):null,e.description?_jsx(Text,{style:[m.description,{fontSize:s.typography.fontSize.sm,color:s.colors.text.secondary},h?m.centred:null],children:e.description}):null,e.children]}),f=e.map((r,o)=>{const n=r.status??("feed"===t?"done":"upcoming"),i=r.color??(e=>{switch(e){case"done":return s.colors.success;case"current":return s.colors.warning;case"onHold":return s.colors.info;case"rejected":return s.colors.error;case"cancelled":case"skipped":return s.colors.text.tertiary;default:return s.colors.text.disabled}})(n),l=0===o,c=o===e.length-1,d=r.key??`${r.title}-${o}`;return _jsxs(View,h?{style:[m.hColumn,p>0?{width:p,flex:0}:null],children:[_jsxs(View,{style:m.hDotRow,children:[_jsx(View,{style:[m.hSegment,{marginRight:a,backgroundColor:l?"transparent":u}]}),renderDisc(r,i),_jsx(View,{style:[m.hSegment,{marginLeft:a,backgroundColor:c?"transparent":u}]})]}),_jsx(View,{style:m.hBody,children:renderText(r,n)})]}:{style:m.row,children:[_jsxs(View,{style:m.gutter,children:[renderDisc(r,i),c?null:_jsx(View,{style:[m.rail,{backgroundColor:u}]})]}),_jsx(View,{style:[m.body,{paddingBottom:c?0:s.spacing.lg}],children:renderText(r,n)})]},d)});return _jsx(View,{style:[h?m.hRow:null,o],onLayout:h?y:void 0,testID:n,children:f})};const buildStyles=(e,t,r,o)=>StyleSheet.create({row:{flexDirection:"row"},gutter:{width:Math.max(28,r+4),alignItems:"center"},disc:{width:r,height:r,borderRadius:r/2,...smoothCorners,alignItems:"center",justifyContent:"center"},dot:{width:t,height:t,borderRadius:t/2,...smoothCorners},rail:{width:2,flex:1,marginTop:o,borderRadius:1,...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,...smoothCorners},hBody:{alignSelf:"stretch",alignItems:"center",paddingHorizontal:e.spacing.xs,marginTop:e.spacing.sm,gap:2},centred:{textAlign:"center"},title:{...fontFor(e,"semibold"),fontWeight:"600"},meta:{...fontFor(e,"normal")},description:{...fontFor(e,"normal")}});export default Timeline;
@@ -1 +1 @@
1
- export{default,Timeline}from"./Timeline.js";
1
+ "use strict";export{default,Timeline}from"./Timeline.js";
@@ -1 +1 @@
1
- import e,{useEffect as t,useMemo as i,useRef as r}from"react";import{Animated as n,Easing as s,PanResponder as o,Pressable as a,StyleSheet as l,Text as c,View as d}from"react-native";import{createAnimatedValue as u,fontFor as p,setNativeValue as m,useTheme as g}from"../../theme/index.js";import{smoothCorners as f}from"../../utils/corners.js";import{jsx as h,jsxs as y}from"react/jsx-runtime";const Toast=({toast:e,index:l,onDismiss:b,shownAt:v})=>{const x=g(),S=e.variant??"default",w=e.position??"bottom",D=i(()=>buildStyles(x),[x]),M=i(()=>tintFor(x,S),[x,S]),R=x.components.toast,V=R?.iconCircleSize??28,z=R?.iconCircleBorderRadius??14,C=R?.iconGlyphFontSize??16,k=R?.tintBarWidth??4,N=R?.swipeDismissThreshold??80,B=R?.swipeVelocityThreshold??.5,L=R?.stackOffset??8,j=R?.stackScaleStep??.04,P=R?.stackMinScale??.9,T=R?.defaultDurationMs??3e3,H=R?.enableSwipeDismiss??!0,I=R?.enterSpringDamping??18,O=R?.enterSpringStiffness??180,G=R?.enterSpringMass??1,W="top"===w?-120:120,$=r(u(W)).current,A=r(u(0)).current,F=r(u(0)).current,X=r(!1),Y="top"===w?l*L:-l*L,q=Math.max(1-l*j,P),E=r(u(Y)).current;t(()=>{m(E,Y)},[Y,E]);const J=i(()=>n.add($,E),[$,E]),dismiss=()=>{X.current||(X.current=!0,n.parallel([n.timing(F,{toValue:0,duration:x.motion.duration.fast,easing:s.bezier(...x.motion.easing.accelerate),useNativeDriver:!0}),n.timing($,{toValue:W,duration:x.motion.duration.fast,easing:s.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>b(e.id)))};t(()=>{const t=n.parallel([n.spring($,{toValue:0,damping:I,stiffness:O,mass:G,useNativeDriver:!0}),n.timing(F,{toValue:1,duration:x.motion.duration.fast,useNativeDriver:!0})]);t.start();const i=e.duration??T;if(i>0){const e=void 0===v?0:Date.now()-v,r=setTimeout(()=>dismiss(),Math.max(i-e,0));return()=>{t.stop(),clearTimeout(r)}}return()=>t.stop()},[]);const K=i(()=>o.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderMove:(e,t)=>{m(A,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);m(F,i)},onPanResponderTerminate:()=>{n.parallel([n.spring(A,{toValue:0,damping:x.motion.spring.snappy.damping,stiffness:x.motion.spring.snappy.stiffness,mass:x.motion.spring.snappy.mass,useNativeDriver:!0}),n.timing(F,{toValue:1,duration:x.motion.duration.fast,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,i)=>{if(Math.abs(i.dx)>N||Math.abs(i.vx)>B){const t=i.dx>=0?1:-1;n.parallel([n.timing(A,{toValue:500*t,duration:x.motion.duration.fast,useNativeDriver:!0}),n.timing(F,{toValue:0,duration:x.motion.duration.fast,useNativeDriver:!0})]).start(()=>{X.current=!0,b(e.id)})}else n.parallel([n.spring(A,{toValue:0,useNativeDriver:!0}),n.spring(F,{toValue:1,useNativeDriver:!0})]).start()}}),[A,F,N,B,x.motion.duration.fast,x.motion.spring.snappy.damping,x.motion.spring.snappy.stiffness,x.motion.spring.snappy.mass,b,e.id]),Q=e.description?`${e.message}. ${e.description}`:e.message;return y(n.View,{...H?K.panHandlers:{},accessibilityRole:"alert",accessibilityLiveRegion:"assertive",accessibilityLabel:Q,testID:e.testID,style:[D.container,{backgroundColor:x.colors.background.elevated,borderRadius:x.radius.lg,...f,padding:x.spacing.md,...x.shadows.md,shadowColor:x.shadows.md.shadowColor,opacity:F,transform:[{translateY:J},{translateX:A},{scale:q}]},e.style,e.containerStyle],children:[h(d,{style:[D.tintBar,{width:k,backgroundColor:M}]}),y(d,{style:D.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(S);return t?h(d,{style:[D.iconCircle,{width:V,height:V,borderRadius:z,...f,backgroundColor:M+"22"},e.iconCircleStyle],children:h(c,{style:[D.iconGlyph,{color:M,fontSize:C}],accessible:!1,children:t})}):null})(),y(d,{style:D.textBlock,children:[h(c,{style:[D.message,{color:x.colors.text.primary,fontSize:x.typography.fontSize.base,...p(x,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?h(c,{style:[D.description,{color:x.colors.text.secondary,fontSize:x.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]}),e.action?h(a,{accessibilityRole:"button",accessibilityLabel:e.action.label,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[D.actionBtn,{backgroundColor:t?x.colors.surface.pressed:"transparent"},e.actionButtonStyle],children:h(c,{style:{color:M,fontSize:x.typography.fontSize.sm,...p(x,"semibold")},numberOfLines:1,children:e.action.label})}):null]})]})},tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"error":return e.colors.error;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors.text.primary}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"error":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>l.create({container:{overflow:"hidden",marginVertical:4},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:8},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:12},iconGlyph:{fontWeight:"700",lineHeight:18},textBlock:{flex:1,paddingRight:8},message:{lineHeight:20},description:{marginTop:2,lineHeight:18},actionBtn:{paddingHorizontal:10,paddingVertical:6,borderRadius:8,...f,marginLeft:8}});export{Toast};export default Toast;
1
+ "use strict";import React,{useEffect,useMemo,useRef}from"react";import{Animated,Easing,PanResponder,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const DEFAULT_SWIPE_DISMISS_THRESHOLD=80,DEFAULT_SWIPE_VELOCITY_THRESHOLD=.5,DEFAULT_STACK_OFFSET=8,DEFAULT_STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,Toast=({toast:e,index:t,onDismiss:i,shownAt:s})=>{const n=useTheme(),a=e.variant??"default",r=e.position??"bottom",o=useMemo(()=>buildStyles(n),[n]),l=useMemo(()=>tintFor(n,a),[n,a]),c=n.components.toast,d=c?.iconCircleSize??28,u=c?.iconCircleBorderRadius??14,m=c?.iconGlyphFontSize??16,p=c?.tintBarWidth??4,f=c?.swipeDismissThreshold??80,g=c?.swipeVelocityThreshold??.5,h=c?.stackOffset??8,y=c?.stackScaleStep??.04,S=c?.stackMinScale??.9,b=c?.defaultDurationMs??3e3,x=c?.enableSwipeDismiss??!0,v=c?.enterSpringDamping??18,A=c?.enterSpringStiffness??180,T=c?.enterSpringMass??1,V="top"===r?-120:120,D=useRef(createAnimatedValue(V)).current,w=useRef(createAnimatedValue(0)).current,_=useRef(createAnimatedValue(0)).current,R=useRef(!1),M="top"===r?t*h:-t*h,C=Math.max(1-t*y,S),E=useRef(createAnimatedValue(M)).current;useEffect(()=>{setNativeValue(E,M)},[M,E]);const j=useMemo(()=>Animated.add(D,E),[D,E]),dismiss=()=>{R.current||(R.current=!0,Animated.parallel([Animated.timing(_,{toValue:0,duration:n.motion.duration.fast,easing:Easing.bezier(...n.motion.easing.accelerate),useNativeDriver:!0}),Animated.timing(D,{toValue:V,duration:n.motion.duration.fast,easing:Easing.bezier(...n.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>i(e.id)))};useEffect(()=>{const t=Animated.parallel([Animated.spring(D,{toValue:0,damping:v,stiffness:A,mass:T,useNativeDriver:!0}),Animated.timing(_,{toValue:1,duration:n.motion.duration.fast,useNativeDriver:!0})]);t.start();const i=e.duration??b;if(i>0){const e=void 0===s?0:Date.now()-s,n=setTimeout(()=>dismiss(),Math.max(i-e,0));return()=>{t.stop(),clearTimeout(n)}}return()=>t.stop()},[]);const L=useMemo(()=>PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderMove:(e,t)=>{setNativeValue(w,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);setNativeValue(_,i)},onPanResponderTerminate:()=>{Animated.parallel([Animated.spring(w,{toValue:0,damping:n.motion.spring.snappy.damping,stiffness:n.motion.spring.snappy.stiffness,mass:n.motion.spring.snappy.mass,useNativeDriver:!0}),Animated.timing(_,{toValue:1,duration:n.motion.duration.fast,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,s)=>{if(Math.abs(s.dx)>f||Math.abs(s.vx)>g){const t=s.dx>=0?1:-1;Animated.parallel([Animated.timing(w,{toValue:500*t,duration:n.motion.duration.fast,useNativeDriver:!0}),Animated.timing(_,{toValue:0,duration:n.motion.duration.fast,useNativeDriver:!0})]).start(()=>{R.current=!0,i(e.id)})}else Animated.parallel([Animated.spring(w,{toValue:0,useNativeDriver:!0}),Animated.spring(_,{toValue:1,useNativeDriver:!0})]).start()}}),[w,_,f,g,n.motion.duration.fast,n.motion.spring.snappy.damping,n.motion.spring.snappy.stiffness,n.motion.spring.snappy.mass,i,e.id]),N=e.description?`${e.message}. ${e.description}`:e.message;return _jsxs(Animated.View,{...x?L.panHandlers:{},accessibilityRole:"alert",accessibilityLiveRegion:"assertive",accessibilityLabel:N,testID:e.testID,style:[o.container,{backgroundColor:n.colors.background.elevated,borderRadius:n.radius.lg,...smoothCorners,padding:n.spacing.md,...n.shadows.md,shadowColor:n.shadows.md.shadowColor,opacity:_,transform:[{translateY:j},{translateX:w},{scale:C}]},e.style,e.containerStyle],children:[_jsx(View,{style:[o.tintBar,{width:p,backgroundColor:l}]}),_jsxs(View,{style:o.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(a);return t?_jsx(View,{style:[o.iconCircle,{width:d,height:d,borderRadius:u,...smoothCorners,backgroundColor:l+"22"},e.iconCircleStyle],children:_jsx(Text,{style:[o.iconGlyph,{color:l,fontSize:m}],accessible:!1,children:t})}):null})(),_jsxs(View,{style:o.textBlock,children:[_jsx(Text,{style:[o.message,{color:n.colors.text.primary,fontSize:n.typography.fontSize.base,...fontFor(n,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?_jsx(Text,{style:[o.description,{color:n.colors.text.secondary,fontSize:n.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]}),e.action?_jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:e.action.label,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[o.actionBtn,{backgroundColor:t?n.colors.surface.pressed:"transparent"},e.actionButtonStyle],children:_jsx(Text,{style:{color:l,fontSize:n.typography.fontSize.sm,...fontFor(n,"semibold")},numberOfLines:1,children:e.action.label})}):null]})]})},tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"error":return e.colors.error;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors.text.primary}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"error":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>StyleSheet.create({container:{overflow:"hidden",marginVertical:4},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:8},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:12},iconGlyph:{fontWeight:"700",lineHeight:18},textBlock:{flex:1,paddingRight:8},message:{lineHeight:20},description:{marginTop:2,lineHeight:18},actionBtn:{paddingHorizontal:10,paddingVertical:6,borderRadius:8,...smoothCorners,marginLeft:8}});export{Toast};export default Toast;
@@ -1 +1 @@
1
- import t,{createContext as o,useCallback as e,useContext as s,useEffect as n,useMemo as r,useRef as i,useState as a}from"react";import{StyleSheet as l,View as c}from"react-native";import{useSafeAreaInsets as u}from"react-native-safe-area-context";import{useTheme as f}from"../../theme/index.js";import{triggerHaptic as d}from"../../utils/hapticUtils.js";import p from"./Toast.js";import{jsx as m,jsxs as h,Fragment as g}from"react/jsx-runtime";const v=o(null),w=o(null);let b=0;let D=0;const makeHostId=()=>(D+=1,D);let _=0,x=null;const setActiveApi=t=>{x=t},getActiveApi=()=>x;export const ToastProvider=({children:t,maxVisible:o=3,topOffset:s,bottomOffset:l,defaultDuration:c,haptics:u})=>{const f=i({defaultDuration:c,haptics:u});f.current={defaultDuration:c,haptics:u};const[p,g]=a([]),[D,x]=a([]),y=e(t=>{g(o=>o.filter(o=>o.id!==t))},[]),O=e(()=>{g([])},[]),T=e(t=>{const e=(b+=1,`toast-${Date.now().toString(36)}-${b.toString(36)}`),{defaultDuration:s,haptics:n}=f.current,r={...t,duration:t.duration??s,id:e,shownAt:Date.now()},i=void 0!==t.haptic?t.haptic:((t,o)=>{if(!1===t)return!1;const e=t?.[o??"default"];return void 0===e?(t=>{switch(t){case"error":return"notificationError";case"success":return"notificationSuccess";case"warning":return"notificationWarning";default:return"selection"}})(o):e})(n,t.variant);return!1!==i&&d(i),g(t=>{const e=[...t,r];return e.length>o?e.slice(e.length-o):e}),e},[o]),A=r(()=>({show:T,hide:y,hideAll:O}),[T,y,O]);n(()=>(_+=1,setActiveApi(A),()=>{_-=1,_<=0&&(_=0,setActiveApi(null))}),[A]);const E=e(t=>{x(o=>[...o,t])},[]),j=e(t=>{x(o=>o.filter(o=>o!==t))},[]),H=D.length>0?D[D.length-1]:null,I=r(()=>({register:E,unregister:j,activeHostId:H,queue:p,hide:y,topOffset:s,bottomOffset:l}),[E,j,H,p,y,s,l]);return m(v.Provider,{value:A,children:h(w.Provider,{value:I,children:[t,null===H?m(ToastLayers,{queue:p,onDismiss:y,topOffset:s,bottomOffset:l}):null]})})};let y=!1;export const ToastHost=()=>{const t=s(w),[o]=a(makeHostId),e=t?.register,r=t?.unregister;return n(()=>{if(e&&r)return e(o),()=>r(o);y||(y=!0,"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[toast] <ToastHost /> rendered outside a <ToastProvider />; it renders nothing. Mount a provider near your app root."))},[e,r,o]),t&&t.activeHostId===o?m(ToastLayers,{queue:t.queue,onDismiss:t.hide,topOffset:t.topOffset,bottomOffset:t.bottomOffset}):null};const ToastLayers=({queue:t,onDismiss:o,topOffset:e,bottomOffset:s})=>{const n=f(),i=u(),a=r(()=>buildStyles(),[]),l=t.filter(t=>"top"===(t.position??"bottom")),d=t.filter(t=>"bottom"===(t.position??"bottom"));return h(g,{children:[m(c,{testID:"toast-layer-top",pointerEvents:"box-none",style:[a.layer,a.top,{top:(e??i.top)+n.spacing.sm,paddingHorizontal:n.spacing.md}],children:l.map((t,e)=>m(p,{toast:t,index:l.length-1-e,shownAt:t.shownAt,onDismiss:o},t.id))}),m(c,{testID:"toast-layer-bottom",pointerEvents:"box-none",style:[a.layer,a.bottom,{bottom:(s??i.bottom)+n.spacing.sm,paddingHorizontal:n.spacing.md}],children:d.map((t,e)=>m(p,{toast:t,index:d.length-1-e,shownAt:t.shownAt,onDismiss:o},t.id))})]})};export const useToast=()=>{const t=s(v);if(!t)throw new Error("useToast must be used within a <ToastProvider>.");return t};let O=!1;const warnNoProvider=()=>{O||(O=!0,"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[toast] No <ToastProvider /> mounted; toast() calls are no-ops. Mount a provider near your app root."))},proxy=t=>{const o=getActiveApi();if(!o)return warnNoProvider(),"";const e=t(o);return"string"==typeof e?e:""};export const toast={show:t=>proxy(o=>o.show(t)),success:(t,o)=>proxy(e=>e.show({...o,message:t,variant:"success"})),error:(t,o)=>proxy(e=>e.show({...o,message:t,variant:"error"})),warning:(t,o)=>proxy(e=>e.show({...o,message:t,variant:"warning"})),info:(t,o)=>proxy(e=>e.show({...o,message:t,variant:"info"})),hideAll:()=>{const t=getActiveApi();t?t.hideAll():warnNoProvider()}};const buildStyles=()=>l.create({layer:{position:"absolute",left:0,right:0},top:{alignItems:"stretch"},bottom:{alignItems:"stretch"}});
1
+ "use strict";import React,{createContext,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{StyleSheet,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useTheme}from"../../theme/index.js";import{triggerHaptic}from"../../utils/hapticUtils.js";import Toast from"./Toast.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const MAX_VISIBLE=3,ToastContext=createContext(null),ToastHostContext=createContext(null);let nextId=0;const makeId=()=>(nextId+=1,`toast-${Date.now().toString(36)}-${nextId.toString(36)}`),defaultHaptic=t=>{switch(t){case"error":return"notificationError";case"success":return"notificationSuccess";case"warning":return"notificationWarning";default:return"selection"}},resolveHaptics=(t,e)=>{if(!1===t)return!1;const o=t?.[e??"default"];return void 0===o?defaultHaptic(e):o};let nextHostId=0;const makeHostId=()=>(nextHostId+=1,nextHostId);let providerCount=0,activeApi=null;const setActiveApi=t=>{activeApi=t},getActiveApi=()=>activeApi;export const ToastProvider=({children:t,maxVisible:e=3,topOffset:o,bottomOffset:s,defaultDuration:r,haptics:n})=>{const a=useRef({defaultDuration:r,haptics:n});a.current={defaultDuration:r,haptics:n};const[i,u]=useState([]),[c,l]=useState([]),d=useCallback(t=>{u(e=>e.filter(e=>e.id!==t))},[]),p=useCallback(()=>{u([])},[]),f=useCallback(t=>{const o=makeId(),{defaultDuration:s,haptics:r}=a.current,n={...t,duration:t.duration??s,id:o,shownAt:Date.now()},i=void 0!==t.haptic?t.haptic:resolveHaptics(r,t.variant);return!1!==i&&triggerHaptic(i),u(t=>{const o=[...t,n];return o.length>e?o.slice(o.length-e):o}),o},[e]),m=useMemo(()=>({show:f,hide:d,hideAll:p}),[f,d,p]);useEffect(()=>(providerCount+=1,setActiveApi(m),()=>{providerCount-=1,providerCount<=0&&(providerCount=0,setActiveApi(null))}),[m]);const h=useCallback(t=>{l(e=>[...e,t])},[]),x=useCallback(t=>{l(e=>e.filter(e=>e!==t))},[]),v=c.length>0?c[c.length-1]:null,g=useMemo(()=>({register:h,unregister:x,activeHostId:v,queue:i,hide:d,topOffset:o,bottomOffset:s}),[h,x,v,i,d,o,s]);return _jsx(ToastContext.Provider,{value:m,children:_jsxs(ToastHostContext.Provider,{value:g,children:[t,null===v?_jsx(ToastLayers,{queue:i,onDismiss:d,topOffset:o,bottomOffset:s}):null]})})};let warnedHost=!1;const warnHostWithoutProvider=()=>{warnedHost||(warnedHost=!0,"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[toast] <ToastHost /> rendered outside a <ToastProvider />; it renders nothing. Mount a provider near your app root."))};export const ToastHost=()=>{const t=useContext(ToastHostContext),[e]=useState(makeHostId),o=t?.register,s=t?.unregister;return useEffect(()=>{if(o&&s)return o(e),()=>s(e);warnHostWithoutProvider()},[o,s,e]),t&&t.activeHostId===e?_jsx(ToastLayers,{queue:t.queue,onDismiss:t.hide,topOffset:t.topOffset,bottomOffset:t.bottomOffset}):null};const ToastLayers=({queue:t,onDismiss:e,topOffset:o,bottomOffset:s})=>{const r=useTheme(),n=useSafeAreaInsets(),a=useMemo(()=>buildStyles(),[]),i=t.filter(t=>"top"===(t.position??"bottom")),u=t.filter(t=>"bottom"===(t.position??"bottom"));return _jsxs(_Fragment,{children:[_jsx(View,{testID:"toast-layer-top",pointerEvents:"box-none",style:[a.layer,a.top,{top:(o??n.top)+r.spacing.sm,paddingHorizontal:r.spacing.md}],children:i.map((t,o)=>_jsx(Toast,{toast:t,index:i.length-1-o,shownAt:t.shownAt,onDismiss:e},t.id))}),_jsx(View,{testID:"toast-layer-bottom",pointerEvents:"box-none",style:[a.layer,a.bottom,{bottom:(s??n.bottom)+r.spacing.sm,paddingHorizontal:r.spacing.md}],children:u.map((t,o)=>_jsx(Toast,{toast:t,index:u.length-1-o,shownAt:t.shownAt,onDismiss:e},t.id))})]})};export const useToast=()=>{const t=useContext(ToastContext);if(!t)throw new Error("useToast must be used within a <ToastProvider>.");return t};let warned=!1;const warnNoProvider=()=>{warned||(warned=!0,"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[toast] No <ToastProvider /> mounted; toast() calls are no-ops. Mount a provider near your app root."))},proxy=t=>{const e=getActiveApi();if(!e)return warnNoProvider(),"";const o=t(e);return"string"==typeof o?o:""};export const toast={show:t=>proxy(e=>e.show(t)),success:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"success"})),error:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"error"})),warning:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"warning"})),info:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"info"})),hideAll:()=>{const t=getActiveApi();t?t.hideAll():warnNoProvider()}};const buildStyles=()=>StyleSheet.create({layer:{position:"absolute",left:0,right:0},top:{alignItems:"stretch"},bottom:{alignItems:"stretch"}});
@@ -1 +1 @@
1
- export{default,Toast}from"./Toast.js";export{ToastHost,ToastProvider,toast,useToast}from"./ToastProvider.js";
1
+ "use strict";export{default,Toast}from"./Toast.js";export{ToastHost,ToastProvider,toast,useToast}from"./ToastProvider.js";
@@ -1 +1 @@
1
- import t,{useCallback as e,useEffect as o,useMemo as r,useRef as i,useState as n}from"react";import{Animated as s,Dimensions as a,Easing as l,Modal as c,Pressable as h,StyleSheet as p,Text as u,View as m}from"react-native";import{createAnimatedValue as d,useTheme as g}from"../../theme/index.js";import{smoothCorners as f}from"../../utils/corners.js";import{ToastHost as b}from"../Toast/ToastProvider.js";import{jsx as y,jsxs as w,Fragment as x}from"react/jsx-runtime";const Tooltip=v=>{const{content:M,children:T,placement:C="auto",trigger:L="longPress",visible:P,onVisibleChange:S,hideOnContentPress:W=!0,maxWidth:D,showArrow:H=!0,accessibilityLabel:O,style:R,containerStyle:V,arrowStyle:j,messageStyle:z,testID:k}=v,B=g(),N=r(()=>buildStyles(B),[B]),A=B.components.tooltip,E=A?.gap??8,F=A?.screenPadding??8,I=A?.pressAutoHideMs??4e3,q=A?.arrowHalfWidth??4,G=A?.arrowHeight??6,J=A?.arrowCornerPadding??12,K=A?.lineHeight??18,Q=D??A?.maxWidth??240,U=A?.enableScaleAnimation??!1,X=A?.exitDurationMs??150,Y="manual"===L||"boolean"==typeof P,[Z,$]=n(!1),_=Y?Boolean(P):Z,[tt,et]=n(null),[ot,rt]=n({width:0,height:0}),it=i(null),nt=i(d(_?1:U?.85:1)).current,st=i(d(_?1:0)).current,at=i(null),lt=i(!1),ct=e(t=>{Y||$(t),S?.(t)},[Y,S]),ht=e(()=>{it.current&&it.current.measureInWindow((t,e,o,r)=>{et({x:t,y:e,width:o,height:r})})},[]),pt=e(t=>{ht(),ct(!0)},[ht,ct]),ut=e(()=>{ct(!1)},[ct]);o(()=>{if(!lt.current)return lt.current=!0,_&&(ht(),"press"===L&&(at.current&&clearTimeout(at.current),at.current=setTimeout(()=>{ut()},I))),()=>{at.current&&(clearTimeout(at.current),at.current=null)};let t;if(_){ht();const e=[s.timing(st,{toValue:1,duration:B.motion.duration.fast,useNativeDriver:!0})];U&&e.push(s.spring(nt,{toValue:1,damping:B.motion.spring.snappy.damping,stiffness:B.motion.spring.snappy.stiffness,mass:B.motion.spring.snappy.mass,useNativeDriver:!0})),t=s.parallel(e),t.start(),"press"===L&&(at.current&&clearTimeout(at.current),at.current=setTimeout(()=>{ut()},I))}else{const e=[s.timing(st,{toValue:0,duration:X,easing:l.bezier(...B.motion.easing.accelerate),useNativeDriver:!0})];U&&e.push(s.timing(nt,{toValue:.85,duration:X,easing:l.bezier(...B.motion.easing.accelerate),useNativeDriver:!0})),t=s.parallel(e),t.start(),at.current&&(clearTimeout(at.current),at.current=null)}return()=>{t?.stop(),at.current&&(clearTimeout(at.current),at.current=null)}},[_]);const mt=r(()=>{const t=a.get("window");if(!tt)return{top:F,left:F,placement:"bottom",arrowOffset:0};const e=ot.width||Math.min(Q,t.width-2*F),o=ot.height||0;let r;if("auto"===C){const e={top:tt.y,bottom:t.height-(tt.y+tt.height),left:tt.x,right:t.width-(tt.x+tt.width)},o=Math.max(e.top,e.bottom,e.left,e.right);r=o===e.bottom?"bottom":o===e.top?"top":o===e.right?"right":"left"}else r=C;let i=0,n=0;"top"===r?(i=tt.y-o-E,n=tt.x+tt.width/2-e/2):"bottom"===r?(i=tt.y+tt.height+E,n=tt.x+tt.width/2-e/2):"left"===r?(i=tt.y+tt.height/2-o/2,n=tt.x-e-E):(i=tt.y+tt.height/2-o/2,n=tt.x+tt.width+E),n=Math.max(F,Math.min(n,t.width-e-F)),i=Math.max(F,Math.min(i,t.height-o-F));let s=0;if("top"===r||"bottom"===r){const t=tt.x+tt.width/2-n,o=J,r=Math.max(o,e-J);s=Math.max(o,Math.min(t,r))}else{const t=tt.y+tt.height/2-i,e=J,r=Math.max(e,o-J);s=Math.max(e,Math.min(t,r))}return{top:i,left:n,placement:r,arrowOffset:s}},[tt,ot,C,Q,F,E,J]),dt={};if("longPress"===L)dt.onLongPress=pt,dt.accessibilityHint="Long press for more info";else if("press"===L){const t=T.props.onPress;dt.onPress=e=>{t?.(e),pt(e)}}const gt=t.cloneElement(T,dt),ft=O??("string"==typeof M?M:"Tooltip"),bt=r(()=>{if(!H)return null;const t=B.colors.background.inverse,e={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:q,borderRightWidth:q,borderBottomWidth:G,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:t};return"top"===mt.placement?{...e,bottom:-G,left:mt.arrowOffset-q,transform:[{rotate:"180deg"}]}:"bottom"===mt.placement?{...e,top:-G,left:mt.arrowOffset-q}:"left"===mt.placement?{...e,right:-G,top:mt.arrowOffset-q,transform:[{rotate:"90deg"}]}:{...e,left:-G,top:mt.arrowOffset-q,transform:[{rotate:"-90deg"}]}},[H,mt,B,q,G]);return w(x,{children:[y(m,{ref:it,collapsable:!1,onLayout:ht,testID:k,children:gt}),w(c,{visible:_,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:ut,children:[y(h,{style:p.absoluteFill,onPress:W?ut:void 0,accessibilityLabel:"Close tooltip",accessibilityRole:"button",children:_?w(s.View,{accessibilityRole:"tooltip",accessibilityLiveRegion:"polite",accessibilityLabel:ft,onLayout:t=>{const{width:e,height:o}=t.nativeEvent.layout;e===ot.width&&o===ot.height||rt({width:e,height:o})},style:[{position:"absolute",top:mt.top,left:mt.left,maxWidth:Q,opacity:st,transform:[{scale:nt}]},R,V],children:[y(m,{style:[N.tooltip,{backgroundColor:B.colors.background.inverse,borderRadius:B.radius.md,...f,paddingHorizontal:B.spacing.md,paddingVertical:B.spacing.sm,...B.shadows.lg,shadowColor:B.shadows.lg.shadowColor}],children:"string"==typeof M?y(u,{style:[{color:B.colors.text.inverse,fontSize:B.typography.fontSize.sm,lineHeight:K},z],children:M}):M}),bt?y(m,{style:[bt,j],pointerEvents:"none"}):null]}):null}),y(b,{})]})]})},buildStyles=t=>p.create({tooltip:{overflow:"hidden"}});export{Tooltip};export default Tooltip;
1
+ "use strict";import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Dimensions,Easing,Modal,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const DEFAULT_TOOLTIP_GAP=8,DEFAULT_SCREEN_PADDING=8,DEFAULT_PRESS_AUTO_HIDE_MS=4e3,DEFAULT_ARROW_HALF_WIDTH=4,DEFAULT_ARROW_HEIGHT=6,DEFAULT_ARROW_CORNER_PADDING=12,DEFAULT_MAX_WIDTH=240,DEFAULT_LINE_HEIGHT=18,Tooltip=e=>{const{content:t,children:o,placement:r="auto",trigger:s="longPress",visible:i,onVisibleChange:n,hideOnContentPress:a=!0,maxWidth:l,showArrow:u=!0,accessibilityLabel:c,style:m,containerStyle:h,arrowStyle:d,messageStyle:p,testID:g}=e,f=useTheme(),b=useMemo(()=>buildStyles(f),[f]),y=f.components.tooltip,w=y?.gap??8,x=y?.screenPadding??8,T=y?.pressAutoHideMs??4e3,_=y?.arrowHalfWidth??4,A=y?.arrowHeight??6,R=y?.arrowCornerPadding??12,S=y?.lineHeight??18,D=l??y?.maxWidth??240,E=y?.enableScaleAnimation??!1,v=y?.exitDurationMs??150,C="manual"===s||"boolean"==typeof i,[M,L]=useState(!1),j=C?Boolean(i):M,[H,P]=useState(null),[F,O]=useState({width:0,height:0}),V=useRef(null),W=useRef(createAnimatedValue(j?1:E?.85:1)).current,I=useRef(createAnimatedValue(j?1:0)).current,k=useRef(null),N=useRef(!1),U=useCallback(e=>{C||L(e),n?.(e)},[C,n]),z=useCallback(()=>{V.current&&V.current.measureInWindow((e,t,o,r)=>{P({x:e,y:t,width:o,height:r})})},[]),G=useCallback(e=>{z(),U(!0)},[z,U]),B=useCallback(()=>{U(!1)},[U]);useEffect(()=>{if(!N.current)return N.current=!0,j&&(z(),"press"===s&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{B()},T))),()=>{k.current&&(clearTimeout(k.current),k.current=null)};let e;if(j){z();const t=[Animated.timing(I,{toValue:1,duration:f.motion.duration.fast,useNativeDriver:!0})];E&&t.push(Animated.spring(W,{toValue:1,damping:f.motion.spring.snappy.damping,stiffness:f.motion.spring.snappy.stiffness,mass:f.motion.spring.snappy.mass,useNativeDriver:!0})),e=Animated.parallel(t),e.start(),"press"===s&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{B()},T))}else{const t=[Animated.timing(I,{toValue:0,duration:v,easing:Easing.bezier(...f.motion.easing.accelerate),useNativeDriver:!0})];E&&t.push(Animated.timing(W,{toValue:.85,duration:v,easing:Easing.bezier(...f.motion.easing.accelerate),useNativeDriver:!0})),e=Animated.parallel(t),e.start(),k.current&&(clearTimeout(k.current),k.current=null)}return()=>{e?.stop(),k.current&&(clearTimeout(k.current),k.current=null)}},[j]);const q=useMemo(()=>{const e=Dimensions.get("window");if(!H)return{top:x,left:x,placement:"bottom",arrowOffset:0};const t=F.width||Math.min(D,e.width-2*x),o=F.height||0;let s;if("auto"===r){const t={top:H.y,bottom:e.height-(H.y+H.height),left:H.x,right:e.width-(H.x+H.width)},o=Math.max(t.top,t.bottom,t.left,t.right);s=o===t.bottom?"bottom":o===t.top?"top":o===t.right?"right":"left"}else s=r;let i=0,n=0;"top"===s?(i=H.y-o-w,n=H.x+H.width/2-t/2):"bottom"===s?(i=H.y+H.height+w,n=H.x+H.width/2-t/2):"left"===s?(i=H.y+H.height/2-o/2,n=H.x-t-w):(i=H.y+H.height/2-o/2,n=H.x+H.width+w),n=Math.max(x,Math.min(n,e.width-t-x)),i=Math.max(x,Math.min(i,e.height-o-x));let a=0;if("top"===s||"bottom"===s){const e=H.x+H.width/2-n,o=R,r=Math.max(o,t-R);a=Math.max(o,Math.min(e,r))}else{const e=H.y+H.height/2-i,t=R,r=Math.max(t,o-R);a=Math.max(t,Math.min(e,r))}return{top:i,left:n,placement:s,arrowOffset:a}},[H,F,r,D,x,w,R]),X={};if("longPress"===s)X.onLongPress=G,X.accessibilityHint="Long press for more info";else if("press"===s){const e=o.props.onPress;X.onPress=t=>{e?.(t),G(t)}}const J=React.cloneElement(o,X),K=c??("string"==typeof t?t:"Tooltip"),Q=useMemo(()=>{if(!u)return null;const e=f.colors.background.inverse,t={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:_,borderRightWidth:_,borderBottomWidth:A,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:e};return"top"===q.placement?{...t,bottom:-A,left:q.arrowOffset-_,transform:[{rotate:"180deg"}]}:"bottom"===q.placement?{...t,top:-A,left:q.arrowOffset-_}:"left"===q.placement?{...t,right:-A,top:q.arrowOffset-_,transform:[{rotate:"90deg"}]}:{...t,left:-A,top:q.arrowOffset-_,transform:[{rotate:"-90deg"}]}},[u,q,f,_,A]);return _jsxs(_Fragment,{children:[_jsx(View,{ref:V,collapsable:!1,onLayout:z,testID:g,children:J}),_jsxs(Modal,{visible:j,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:B,children:[_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:a?B:void 0,accessibilityLabel:"Close tooltip",accessibilityRole:"button",children:j?_jsxs(Animated.View,{accessibilityRole:"tooltip",accessibilityLiveRegion:"polite",accessibilityLabel:K,onLayout:e=>{const{width:t,height:o}=e.nativeEvent.layout;t===F.width&&o===F.height||O({width:t,height:o})},style:[{position:"absolute",top:q.top,left:q.left,maxWidth:D,opacity:I,transform:[{scale:W}]},m,h],children:[_jsx(View,{style:[b.tooltip,{backgroundColor:f.colors.background.inverse,borderRadius:f.radius.md,...smoothCorners,paddingHorizontal:f.spacing.md,paddingVertical:f.spacing.sm,...f.shadows.lg,shadowColor:f.shadows.lg.shadowColor}],children:"string"==typeof t?_jsx(Text,{style:[{color:f.colors.text.inverse,fontSize:f.typography.fontSize.sm,lineHeight:S},p],children:t}):t}),Q?_jsx(View,{style:[Q,d],pointerEvents:"none"}):null]}):null}),_jsx(ToastHost,{})]})]})},buildStyles=e=>StyleSheet.create({tooltip:{overflow:"hidden"}});export{Tooltip};export default Tooltip;
@@ -1 +1 @@
1
- export{default,Tooltip}from"./Tooltip.js";
1
+ "use strict";export{default,Tooltip}from"./Tooltip.js";
@@ -1 +1 @@
1
- import{useCallback as t,useEffect as e,useMemo as i,useRef as o,useState as n}from"react";import{AccessibilityInfo as r,Animated as s,StyleSheet as a,Text as l,useWindowDimensions as c,View as h}from"react-native";import{createAnimatedValue as d,useTheme as p}from"../../theme/index.js";import{smoothCorners as u}from"../../utils/corners.js";import{Button as g}from"../Button/index.js";import{Modal as y}from"../Modal/index.js";import{jsx as m,jsxs as x}from"react/jsx-runtime";const measureInWindow=t=>new Promise(e=>{const i=t.current;i?i.measureInWindow((t,i,o,n)=>e({x:t,y:i,width:o,height:n})):e(null)}),isOnScreen=(t,e)=>t.width>0&&t.height>0&&t.x<e.width&&t.y<e.height&&t.x+t.width>0&&t.y+t.height>0,Tour=({tourId:u,steps:f,visible:b,onClose:w,seenStore:v,labels:k,haptic:S,testID:C})=>{const D=p(),j=i(()=>buildStyles(D),[D]),z=c(),I=o(z);I.current=z;const M=D.components.tooltip?.gap??8,$=D.components.tooltip?.screenPadding??8,[P,R]=n(null),[W,B]=n(0),N=o(d(0)).current,T=o(f);T.current=f;const V=o(w);V.current=w;const F=o(v);F.current=v;const H=t(async(t,e)=>{for(let i=t;i>=0&&i<T.current.length;i+=e){const t=await measureInWindow(T.current[i].target);if(t&&isOnScreen(t,I.current))return{index:i,rect:t}}return null},[]);e(()=>{if(!b)return void R(null);let t=!1;return(async()=>{const e=F.current;if(e&&await e.isSeen(u))return void(t||V.current("alreadySeen"));const i=await H(0,1);t||(i?(B(i.index),R(i)):V.current("noTargets"))})(),()=>{t=!0}},[b,u,H]),e(()=>{if(!P)return;const t=T.current[P.index],e=`Step ${P.index+1} of ${T.current.length}`;r.announceForAccessibility([e,t.title,t.description].filter(Boolean).join(". ")),N.setValue(0);const i=s.timing(N,{toValue:1,duration:D.motion.duration.fast,useNativeDriver:!0});return i.start(),()=>i.stop()},[P,N,D.motion.duration.fast]);const L=t(async t=>{R(null),await(F.current?.markSeen(u)),V.current(t)},[u]),q=t(async()=>{if(!P)return;const t=await H(P.index+1,1);t?R(t):await L("finished")},[P,H,L]),A=t(async()=>{if(!P)return;const t=await H(P.index-1,-1);t&&R(t)},[P,H]),E=t(()=>{L("skipped")},[L]),G=P?f[P.index]:void 0,J=!!P&&P.index===f.length-1,K=D.spacing.xs,O=P?{x:P.rect.x-K,y:P.rect.y-K,width:P.rect.width+2*K,height:P.rect.height+2*K}:null,Q=Math.min(z.width-2*$,360),U=O?(()=>{const t=O.x+O.width/2,e=Math.max($,Math.min(t-Q/2,z.width-Q-$)),i=O.y,o=z.height-(O.y+O.height);return o>=i?{left:e,top:O.y+O.height+M,maxHeight:Math.max(o-M-$,0)}:{left:e,bottom:z.height-O.y+M,maxHeight:Math.max(i-M-$,0)}})():null,X=D.colors.background.overlay;return m(y,{visible:null!==P,onRequestClose:E,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:j.transparent,contentStyle:j.transparent,accessibilityLabel:G?.title??G?.description,haptic:S,testID:C,children:O&&U&&G?x(h,{style:a.absoluteFill,children:[m(h,{style:[j.dim,{backgroundColor:X,top:0,left:0,right:0,height:Math.max(O.y,0)}]}),m(h,{style:[j.dim,{backgroundColor:X,top:O.y+O.height,left:0,right:0,bottom:0}]}),m(h,{style:[j.dim,{backgroundColor:X,top:O.y,left:0,width:Math.max(O.x,0),height:O.height}]}),m(h,{style:[j.dim,{backgroundColor:X,top:O.y,left:O.x+O.width,right:0,height:O.height}]}),m(h,{pointerEvents:"none",style:[j.highlight,{top:O.y,left:O.x,width:O.width,height:O.height}]}),x(s.View,{accessibilityLiveRegion:"polite",style:[j.card,U,{width:Q,opacity:N}],testID:C?`${C}-card`:void 0,children:[m(l,{style:j.position,children:`Step ${(P?.index??0)+1} of ${f.length}`}),G.title?m(l,{style:j.title,accessibilityRole:"header",children:G.title}):null,m(l,{style:j.description,children:G.description}),x(h,{style:j.actions,children:[m(g,{title:k?.skip??"Skip",variant:"ghost",size:"sm",haptic:S,onPress:E,testID:C?`${C}-skip`:void 0}),x(h,{style:j.navigation,children:[P&&P.index>W?m(g,{title:k?.back??"Back",variant:"outline",size:"sm",haptic:S,onPress:()=>{A()},testID:C?`${C}-back`:void 0}):null,m(g,{title:J?k?.done??"Done":k?.next??"Next",size:"sm",haptic:S,onPress:()=>{q()},testID:C?`${C}-next`:void 0})]})]})]})]}):null})};Tour.displayName="Tour";const buildStyles=t=>a.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:t.colors.primary,borderRadius:t.radius.md,...u},card:{position:"absolute",backgroundColor:t.colors.background.elevated,borderRadius:t.radius.lg,...u,padding:t.spacing.lg,gap:t.spacing.sm,...t.shadows.lg},position:{color:t.colors.text.tertiary,fontSize:t.typography.fontSize.xs},title:{color:t.colors.text.primary,fontSize:t.typography.fontSize.lg,fontWeight:t.typography.fontWeight.semibold},description:{color:t.colors.text.secondary,fontSize:t.typography.fontSize.sm},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:t.spacing.xs},navigation:{flexDirection:"row",gap:t.spacing.sm}});export{Tour};export default Tour;
1
+ "use strict";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,StyleSheet,Text,useWindowDimensions,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{Button}from"../Button/index.js";import{Modal}from"../Modal/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const DEFAULT_GAP=8,DEFAULT_SCREEN_PADDING=8,MAX_CARD_WIDTH=360,HIGHLIGHT_BORDER_WIDTH=2,measureInWindow=e=>new Promise(t=>{const i=e.current;i?i.measureInWindow((e,i,o,n)=>t({x:e,y:i,width:o,height:n})):t(null)}),isOnScreen=(e,t)=>e.width>0&&e.height>0&&e.x<t.width&&e.y<t.height&&e.x+e.width>0&&e.y+e.height>0,Tour=({tourId:e,steps:t,visible:i,onClose:o,seenStore:n,labels:s,haptic:r,testID:a})=>{const l=useTheme(),c=useMemo(()=>buildStyles(l),[l]),u=useWindowDimensions(),d=useRef(u);d.current=u;const h=l.components.tooltip?.gap??8,p=l.components.tooltip?.screenPadding??8,[m,g]=useState(null),[x,y]=useState(0),f=useRef(createAnimatedValue(0)).current,b=useRef(t);b.current=t;const w=useRef(o);w.current=o;const S=useRef(n);S.current=n;const j=useCallback(async(e,t)=>{for(let i=e;i>=0&&i<b.current.length;i+=t){const e=await measureInWindow(b.current[i].target);if(e&&isOnScreen(e,d.current))return{index:i,rect:e}}return null},[]);useEffect(()=>{if(!i)return void g(null);let t=!1;return(async()=>{const i=S.current;if(i&&await i.isSeen(e))return void(t||w.current("alreadySeen"));const o=await j(0,1);t||(o?(y(o.index),g(o)):w.current("noTargets"))})(),()=>{t=!0}},[i,e,j]),useEffect(()=>{if(!m)return;const e=b.current[m.index],t=`Step ${m.index+1} of ${b.current.length}`;AccessibilityInfo.announceForAccessibility([t,e.title,e.description].filter(Boolean).join(". ")),f.setValue(0);const i=Animated.timing(f,{toValue:1,duration:l.motion.duration.fast,useNativeDriver:!0});return i.start(),()=>i.stop()},[m,f,l.motion.duration.fast]);const _=useCallback(async t=>{g(null),await(S.current?.markSeen(e)),w.current(t)},[e]),k=useCallback(async()=>{if(!m)return;const e=await j(m.index+1,1);e?g(e):await _("finished")},[m,j,_]),C=useCallback(async()=>{if(!m)return;const e=await j(m.index-1,-1);e&&g(e)},[m,j]),v=useCallback(()=>{_("skipped")},[_]),D=m?t[m.index]:void 0,I=!!m&&m.index===t.length-1,T=l.spacing.xs,R=m?{x:m.rect.x-T,y:m.rect.y-T,width:m.rect.width+2*T,height:m.rect.height+2*T}:null,A=Math.min(u.width-2*p,360),V=R?(()=>{const e=R.x+R.width/2,t=Math.max(p,Math.min(e-A/2,u.width-A-p)),i=R.y,o=u.height-(R.y+R.height);return o>=i?{left:t,top:R.y+R.height+h,maxHeight:Math.max(o-h-p,0)}:{left:t,bottom:u.height-R.y+h,maxHeight:Math.max(i-h-p,0)}})():null,M=l.colors.background.overlay;return _jsx(Modal,{visible:null!==m,onRequestClose:v,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:c.transparent,contentStyle:c.transparent,accessibilityLabel:D?.title??D?.description,haptic:r,testID:a,children:R&&V&&D?_jsxs(View,{style:StyleSheet.absoluteFill,children:[_jsx(View,{style:[c.dim,{backgroundColor:M,top:0,left:0,right:0,height:Math.max(R.y,0)}]}),_jsx(View,{style:[c.dim,{backgroundColor:M,top:R.y+R.height,left:0,right:0,bottom:0}]}),_jsx(View,{style:[c.dim,{backgroundColor:M,top:R.y,left:0,width:Math.max(R.x,0),height:R.height}]}),_jsx(View,{style:[c.dim,{backgroundColor:M,top:R.y,left:R.x+R.width,right:0,height:R.height}]}),_jsx(View,{pointerEvents:"none",style:[c.highlight,{top:R.y,left:R.x,width:R.width,height:R.height}]}),_jsxs(Animated.View,{accessibilityLiveRegion:"polite",style:[c.card,V,{width:A,opacity:f}],testID:a?`${a}-card`:void 0,children:[_jsx(Text,{style:c.position,children:`Step ${(m?.index??0)+1} of ${t.length}`}),D.title?_jsx(Text,{style:c.title,accessibilityRole:"header",children:D.title}):null,_jsx(Text,{style:c.description,children:D.description}),_jsxs(View,{style:c.actions,children:[_jsx(Button,{title:s?.skip??"Skip",variant:"ghost",size:"sm",haptic:r,onPress:v,testID:a?`${a}-skip`:void 0}),_jsxs(View,{style:c.navigation,children:[m&&m.index>x?_jsx(Button,{title:s?.back??"Back",variant:"outline",size:"sm",haptic:r,onPress:()=>{C()},testID:a?`${a}-back`:void 0}):null,_jsx(Button,{title:I?s?.done??"Done":s?.next??"Next",size:"sm",haptic:r,onPress:()=>{k()},testID:a?`${a}-next`:void 0})]})]})]})]}):null})};Tour.displayName="Tour";const buildStyles=e=>StyleSheet.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:e.colors.primary,borderRadius:e.radius.md,...smoothCorners},card:{position:"absolute",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,...smoothCorners,padding:e.spacing.lg,gap:e.spacing.sm,...e.shadows.lg},position:{color:e.colors.text.tertiary,fontSize:e.typography.fontSize.xs},title:{color:e.colors.text.primary,fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold},description:{color:e.colors.text.secondary,fontSize:e.typography.fontSize.sm},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:e.spacing.xs},navigation:{flexDirection:"row",gap:e.spacing.sm}});export{Tour};export default Tour;
@@ -1 +1 @@
1
- export{default,Tour}from"./Tour.js";
1
+ "use strict";export{default,Tour}from"./Tour.js";
@@ -1 +1 @@
1
- import e,{useCallback as a,useEffect as l,useMemo as t}from"react";import{StyleSheet as n}from"react-native";import{Gesture as u,GestureDetector as i}from"react-native-gesture-handler";import v,{runOnJS as o,useAnimatedStyle as r,useSharedValue as s,withSpring as c}from"react-native-reanimated";import{resolveHaptic as m,triggerHaptic as d}from"../../utils/index.js";import{jsx as p}from"react/jsx-runtime";const b={damping:18,stiffness:220,mass:1};export const ZoomableImage=({children:e,maxScale:n=4,minScale:h=1,doubleTapScale:g=2,disabled:y=!1,haptic:x,style:I,accessibilityLabel:S,testID:j})=>{const w=s(1),P=s(1),Z=s(0),E=s(0),L=s(0),T=s(0),C=a(()=>{w.value=c(1,b),P.value=1,Z.value=c(0,b),E.value=c(0,b),L.value=0,T.value=0},[w,P,Z,E,L,T]);l(()=>{y&&C()},[y,C]);const D=a(()=>{const e=m(x,"impactLight");e&&d(e)},[x]),U=t(()=>u.Pinch().enabled(!y).onStart(()=>{P.value=w.value}).onUpdate(e=>{const a=P.value*e.scale;w.value=a<h?h+.3*(a-h):a>n?n+.2*(a-n):a}).onEnd(()=>w.value<h?(w.value=c(h,b),Z.value=c(0,b),E.value=c(0,b),P.value=h,L.value=0,void(T.value=0)):w.value>n?(w.value=c(n,b),void(P.value=n)):void(P.value=w.value)),[y,w,P,Z,E,L,T,h,n]),V=t(()=>u.Pan().enabled(!y).minPointers(1).maxPointers(1).onStart(()=>{L.value=Z.value,T.value=E.value}).onUpdate(e=>{w.value<=1||(Z.value=L.value+e.translationX,E.value=T.value+e.translationY)}).onEnd(()=>{L.value=Z.value,T.value=E.value}),[y,w,Z,E,L,T]),X=t(()=>u.Tap().enabled(!y).numberOfTaps(2).onEnd(()=>{o(D)(),w.value>1?(w.value=c(1,b),Z.value=c(0,b),E.value=c(0,b),P.value=1,L.value=0,T.value=0):(w.value=c(g,b),P.value=g)}),[y,w,P,Z,E,L,T,D,g]),Y=t(()=>u.Race(U,V,X),[U,V,X]),N=r(()=>({transform:[{translateX:Z.value},{translateY:E.value},{scale:w.value}]}));return p(i,{gesture:Y,children:p(v.View,{style:[f.container,I],testID:j,accessibilityLabel:S,accessibilityState:{disabled:y},children:p(v.View,{style:[f.content,N],children:e})})})};ZoomableImage.displayName="ZoomableImage";const f=n.create({container:{flex:1,alignItems:"center",justifyContent:"center",overflow:"hidden"},content:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"}});export default ZoomableImage;
1
+ "use strict";import React,{useCallback,useEffect,useMemo}from"react";import{StyleSheet}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import Animated,{runOnJS,useAnimatedStyle,useSharedValue,withSpring}from"react-native-reanimated";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{jsx as _jsx}from"react/jsx-runtime";const DEFAULT_MAX_SCALE=4,DEFAULT_MIN_SCALE=1,DEFAULT_DOUBLE_TAP_SCALE=2,SPRING_CONFIG={damping:18,stiffness:220,mass:1};export const ZoomableImage=({children:e,maxScale:a=4,minScale:t=1,doubleTapScale:l=2,disabled:r=!1,haptic:u,style:i,accessibilityLabel:n,testID:s})=>{const o=useSharedValue(1),v=useSharedValue(1),c=useSharedValue(0),S=useSharedValue(0),m=useSharedValue(0),d=useSharedValue(0),h=useCallback(()=>{o.value=withSpring(1,SPRING_CONFIG),v.value=1,c.value=withSpring(0,SPRING_CONFIG),S.value=withSpring(0,SPRING_CONFIG),m.value=0,d.value=0},[o,v,c,S,m,d]);useEffect(()=>{r&&h()},[r,h]);const p=useCallback(()=>{const e=resolveHaptic(u,"impactLight");e&&triggerHaptic(e)},[u]),I=useMemo(()=>Gesture.Pinch().enabled(!r).onStart(()=>{"worklet";v.value=o.value}).onUpdate(e=>{"worklet";const l=v.value*e.scale;o.value=l<t?t+.3*(l-t):l>a?a+.2*(l-a):l}).onEnd(()=>{"worklet";return o.value<t?(o.value=withSpring(t,SPRING_CONFIG),c.value=withSpring(0,SPRING_CONFIG),S.value=withSpring(0,SPRING_CONFIG),v.value=t,m.value=0,void(d.value=0)):o.value>a?(o.value=withSpring(a,SPRING_CONFIG),void(v.value=a)):void(v.value=o.value)}),[r,o,v,c,S,m,d,t,a]),G=useMemo(()=>Gesture.Pan().enabled(!r).minPointers(1).maxPointers(1).onStart(()=>{"worklet";m.value=c.value,d.value=S.value}).onUpdate(e=>{"worklet";o.value<=1||(c.value=m.value+e.translationX,S.value=d.value+e.translationY)}).onEnd(()=>{"worklet";m.value=c.value,d.value=S.value}),[r,o,c,S,m,d]),g=useMemo(()=>Gesture.Tap().enabled(!r).numberOfTaps(2).onEnd(()=>{"worklet";runOnJS(p)(),o.value>1?(o.value=withSpring(1,SPRING_CONFIG),c.value=withSpring(0,SPRING_CONFIG),S.value=withSpring(0,SPRING_CONFIG),v.value=1,m.value=0,d.value=0):(o.value=withSpring(l,SPRING_CONFIG),v.value=l)}),[r,o,v,c,S,m,d,p,l]),N=useMemo(()=>Gesture.Race(I,G,g),[I,G,g]),w=useAnimatedStyle(()=>({transform:[{translateX:c.value},{translateY:S.value},{scale:o.value}]}));return _jsx(GestureDetector,{gesture:N,children:_jsx(Animated.View,{style:[styles.container,i],testID:s,accessibilityLabel:n,accessibilityState:{disabled:r},children:_jsx(Animated.View,{style:[styles.content,w],children:e})})})};ZoomableImage.displayName="ZoomableImage";const styles=StyleSheet.create({container:{flex:1,alignItems:"center",justifyContent:"center",overflow:"hidden"},content:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"}});export default ZoomableImage;
@@ -1 +1 @@
1
- export{ZoomableImage}from"./ZoomableImage.js";
1
+ "use strict";export{ZoomableImage}from"./ZoomableImage.js";
@@ -1 +1 @@
1
- export{Accordion,AccordionGroup}from"./Accordion/index.js";export{AmountSlider}from"./AmountSlider/index.js";export{AnimatePresence}from"./AnimatePresence/index.js";export{AppBar}from"./AppBar/index.js";export{AsyncBlock}from"./AsyncBlock/index.js";export{AuthedImage,authedImageCacheStats,clearAuthedImageCache,getAuthedImageCacheLimit,setAuthedImageCacheLimit}from"./AuthedImage/index.js";export{Autocomplete}from"./Autocomplete/index.js";export{Avatar,AvatarGroup}from"./Avatar/index.js";export{Badge}from"./Badge/index.js";export{Banner}from"./Banner/index.js";export{BottomNavigation}from"./BottomNavigation/index.js";export{BottomSheet,useBottomSheet}from"./BottomSheet/index.js";export{Box,Row,Spacer,Stack}from"./Box/index.js";export{Button}from"./Button/index.js";export{Card}from"./Card/index.js";export{Carousel}from"./Carousel/index.js";export{Checkbox}from"./Checkbox/index.js";export{Chip}from"./Chip/index.js";export{ChoiceGroup}from"./ChoiceGroup/index.js";export{Confetti}from"./Confetti/index.js";export{DatePicker}from"./DatePicker/index.js";export{DateRangePicker}from"./DateRangePicker/index.js";export{cleanDecimalText,DecimalInput,parseDecimalText}from"./DecimalInput/index.js";export{Descriptions}from"./Descriptions/index.js";export{Dialog}from"./Dialog/index.js";export{Divider}from"./Divider/index.js";export{Drawer}from"./Drawer/index.js";export{EmptyState}from"./EmptyState/index.js";export{ErrorBoundary,useErrorHandler,withErrorBoundary}from"./ErrorBoundary/index.js";export{FilePicker,formatFileSize}from"./FilePicker/index.js";export{FileViewer}from"./FileViewer/index.js";export{FloatingActionButton,FloatingActionButtonGroup}from"./FloatingActionButton/index.js";export{ForceUpdateDialog}from"./ForceUpdateDialog/index.js";export{FormField}from"./FormField/index.js";export{IconBadge}from"./IconBadge/index.js";export{IconButton}from"./IconButton/index.js";export{ImageGallery}from"./ImageGallery/index.js";export{InlineSelect}from"./InlineSelect/index.js";export{Input}from"./Input/index.js";export{KeyboardAwareScrollView}from"./KeyboardAwareScrollView/index.js";export{KeyboardToolbar}from"./KeyboardToolbar/index.js";export{ListItem}from"./ListItem/index.js";export{LoaderOverlay,loader,useLoader}from"./LoaderOverlay/index.js";export{Markdown}from"./Markdown/index.js";export{MODAL_DISMISS_GRACE_MS,Modal}from"./Modal/index.js";export{Notation,parseNotation,sym}from"./Notation/index.js";export{NumberInput}from"./NumberInput/index.js";export{OptionSheet}from"./OptionSheet/index.js";export{OTPInput}from"./OTPInput/index.js";export{ALL_CALLING_CODES,DEFAULT_CALLING_CODES,formatE164,PhoneNumberInput,parseE164}from"./PhoneNumberInput/index.js";export{PickerTrigger}from"./PickerTrigger/index.js";export{ProfileCompletion}from"./ProfileCompletion/index.js";export{ProfilePicker}from"./ProfilePicker/index.js";export{ProgressBar}from"./ProgressBar/index.js";export{ProgressRing}from"./ProgressRing/index.js";export{Radio,RadioDot,RadioGroup}from"./Radio/index.js";export{Rating}from"./Rating/index.js";export{Repeater}from"./Repeater/index.js";export{applyMarkdownAction,RichTextEditor}from"./RichTextEditor/index.js";export{SearchBar}from"./SearchBar/index.js";export{SectionHeader}from"./SectionHeader/index.js";export{SegmentedControl}from"./SegmentedControl/index.js";export{Select}from"./Select/index.js";export{Skeleton,SkeletonCircle,SkeletonClockProvider,SkeletonContent,SkeletonList,SkeletonProvider,SkeletonSkip,SkeletonText,useReduceMotion,useSkeletonClock,useSkeletonDefaults}from"./Skeleton/index.js";export{Slider}from"./Slider/index.js";export{SliderField}from"./SliderField/index.js";export{SlideToConfirm}from"./SlideToConfirm/index.js";export{Spinner}from"./Spinner/index.js";export{StatTile}from"./StatTile/index.js";export{StatusBadge}from"./StatusBadge/index.js";export{Stepper}from"./Stepper/index.js";export{Swipeable}from"./Swipeable/index.js";export{Switch}from"./Switch/index.js";export{Tabs}from"./Tabs/index.js";export{TagInput}from"./TagInput/index.js";export{Text}from"./Text/index.js";export{Timeline}from"./Timeline/index.js";export{TimePicker}from"./TimePicker/index.js";export{Toast,ToastHost,ToastProvider,toast,useToast}from"./Toast/index.js";export{Tooltip}from"./Tooltip/index.js";export{Tour}from"./Tour/index.js";export{ZoomableImage}from"./ZoomableImage/index.js";
1
+ "use strict";export{Accordion,AccordionGroup}from"./Accordion/index.js";export{AmountSlider}from"./AmountSlider/index.js";export{AnimatePresence}from"./AnimatePresence/index.js";export{AppBar}from"./AppBar/index.js";export{AsyncBlock}from"./AsyncBlock/index.js";export{AuthedImage,authedImageCacheStats,clearAuthedImageCache,getAuthedImageCacheLimit,setAuthedImageCacheLimit}from"./AuthedImage/index.js";export{Autocomplete}from"./Autocomplete/index.js";export{Avatar,AvatarGroup}from"./Avatar/index.js";export{Badge}from"./Badge/index.js";export{Banner}from"./Banner/index.js";export{BottomNavigation}from"./BottomNavigation/index.js";export{BottomSheet,useBottomSheet}from"./BottomSheet/index.js";export{Box,Row,Spacer,Stack}from"./Box/index.js";export{Button}from"./Button/index.js";export{Card}from"./Card/index.js";export{Carousel}from"./Carousel/index.js";export{Checkbox}from"./Checkbox/index.js";export{Chip}from"./Chip/index.js";export{ChoiceGroup}from"./ChoiceGroup/index.js";export{Confetti}from"./Confetti/index.js";export{DatePicker}from"./DatePicker/index.js";export{DateRangePicker}from"./DateRangePicker/index.js";export{cleanDecimalText,DecimalInput,parseDecimalText}from"./DecimalInput/index.js";export{Descriptions}from"./Descriptions/index.js";export{Dialog}from"./Dialog/index.js";export{Divider}from"./Divider/index.js";export{Drawer}from"./Drawer/index.js";export{EmptyState}from"./EmptyState/index.js";export{ErrorBoundary,useErrorHandler,withErrorBoundary}from"./ErrorBoundary/index.js";export{FilePicker,formatFileSize}from"./FilePicker/index.js";export{FileViewer}from"./FileViewer/index.js";export{FloatingActionButton,FloatingActionButtonGroup}from"./FloatingActionButton/index.js";export{ForceUpdateDialog}from"./ForceUpdateDialog/index.js";export{FormField}from"./FormField/index.js";export{IconBadge}from"./IconBadge/index.js";export{IconButton}from"./IconButton/index.js";export{ImageGallery}from"./ImageGallery/index.js";export{InlineSelect}from"./InlineSelect/index.js";export{Input}from"./Input/index.js";export{KeyboardAwareScrollView}from"./KeyboardAwareScrollView/index.js";export{KeyboardToolbar}from"./KeyboardToolbar/index.js";export{ListItem}from"./ListItem/index.js";export{LoaderOverlay,loader,useLoader}from"./LoaderOverlay/index.js";export{Markdown}from"./Markdown/index.js";export{MODAL_DISMISS_GRACE_MS,Modal}from"./Modal/index.js";export{Notation,parseNotation,sym}from"./Notation/index.js";export{NumberInput}from"./NumberInput/index.js";export{OptionSheet}from"./OptionSheet/index.js";export{OTPInput}from"./OTPInput/index.js";export{ALL_CALLING_CODES,DEFAULT_CALLING_CODES,formatE164,PhoneNumberInput,parseE164}from"./PhoneNumberInput/index.js";export{PickerTrigger}from"./PickerTrigger/index.js";export{ProfileCompletion}from"./ProfileCompletion/index.js";export{ProfilePicker}from"./ProfilePicker/index.js";export{ProgressBar}from"./ProgressBar/index.js";export{ProgressRing}from"./ProgressRing/index.js";export{Radio,RadioDot,RadioGroup}from"./Radio/index.js";export{Rating}from"./Rating/index.js";export{Repeater}from"./Repeater/index.js";export{applyMarkdownAction,RichTextEditor}from"./RichTextEditor/index.js";export{SearchBar}from"./SearchBar/index.js";export{SectionHeader}from"./SectionHeader/index.js";export{SegmentedControl}from"./SegmentedControl/index.js";export{Select}from"./Select/index.js";export{Skeleton,SkeletonCircle,SkeletonClockProvider,SkeletonContent,SkeletonList,SkeletonProvider,SkeletonSkip,SkeletonText,useReduceMotion,useSkeletonClock,useSkeletonDefaults}from"./Skeleton/index.js";export{Slider}from"./Slider/index.js";export{SliderField}from"./SliderField/index.js";export{SlideToConfirm}from"./SlideToConfirm/index.js";export{Spinner}from"./Spinner/index.js";export{StatTile}from"./StatTile/index.js";export{StatusBadge}from"./StatusBadge/index.js";export{Stepper}from"./Stepper/index.js";export{Swipeable}from"./Swipeable/index.js";export{Switch}from"./Switch/index.js";export{Tabs}from"./Tabs/index.js";export{TagInput}from"./TagInput/index.js";export{Text}from"./Text/index.js";export{Timeline}from"./Timeline/index.js";export{TimePicker}from"./TimePicker/index.js";export{Toast,ToastHost,ToastProvider,toast,useToast}from"./Toast/index.js";export{Tooltip}from"./Tooltip/index.js";export{Tour}from"./Tour/index.js";export{ZoomableImage}from"./ZoomableImage/index.js";
@@ -1 +1 @@
1
- import r,{createContext as e,useContext as o}from"react";import{jsx as t}from"react/jsx-runtime";const n=e(null);export const Form=({form:r,children:e})=>t(n.Provider,{value:r,children:e});Form.displayName="Form";export function useFormContext(){const r=o(n);if(!r)throw new Error("useFormContext / useField / <FormField name> must be rendered inside a <Form> from @webority/mobile-ui.");return r}export function useOptionalFormContext(){return o(n)}
1
+ "use strict";import React,{createContext,useContext}from"react";import{jsx as _jsx}from"react/jsx-runtime";const FormContext=createContext(null);export const Form=({form:e,children:t})=>_jsx(FormContext.Provider,{value:e,children:t});Form.displayName="Form";export function useFormContext(){const e=useContext(FormContext);if(!e)throw new Error("useFormContext / useField / <FormField name> must be rendered inside a <Form> from @webority/mobile-ui.");return e}export function useOptionalFormContext(){return useContext(FormContext)}
@@ -1 +1 @@
1
- import e from"react";import{FormField as r}from"../components/FormField/FormField.js";import{useHookFormField as o}from"./useHookFormField.js";import{jsx as l}from"react/jsx-runtime";export const HookFormField=t=>{const{label:n,helperText:i,required:a,layout:s,labelStyle:m,helperStyle:c,errorStyle:p,containerStyle:u,inputContainerStyle:y,accessibilityLabel:d,testID:f,children:F,hideError:h,...S}=t,b=o(S),x="function"==typeof F;let C=null;if(x)C=F(b);else if(e.isValidElement(F)){const r=F.props;C=e.cloneElement(F,{value:b.value,error:b.error,onChangeText:e=>{b.onChangeText(e),r.onChangeText?.(e)},onBlur:e=>{b.onBlur(),r.onBlur?.(e)},ref:e=>{b.ref(e),((e,r)=>{"function"==typeof e?e(r):e&&(e.current=r)})(r.ref,e)}})}const T=!x||e.isValidElement(C)&&"error"in C.props;return l(r,{label:n,helperText:i,required:a,layout:s,labelStyle:m,helperStyle:c,errorStyle:p,containerStyle:u,inputContainerStyle:y,accessibilityLabel:d,testID:f,error:h??T?void 0:b.error,children:C})};HookFormField.displayName="HookFormField";
1
+ "use strict";import React from"react";import{FormField}from"../components/FormField/FormField.js";import{useHookFormField}from"./useHookFormField.js";import{jsx as _jsx}from"react/jsx-runtime";const assignRef=(e,r)=>{"function"==typeof e?e(r):e&&(e.current=r)};export const HookFormField=e=>{const{label:r,helperText:o,required:t,layout:l,labelStyle:i,helperStyle:n,errorStyle:s,containerStyle:a,inputContainerStyle:c,accessibilityLabel:m,testID:u,children:F,hideError:d,...p}=e,y=useHookFormField(p),f="function"==typeof F;let h=null;if(f)h=F(y);else if(React.isValidElement(F)){const e=F.props;h=React.cloneElement(F,{value:y.value,error:y.error,onChangeText:r=>{y.onChangeText(r),e.onChangeText?.(r)},onBlur:r=>{y.onBlur(),e.onBlur?.(r)},ref:r=>{y.ref(r),assignRef(e.ref,r)}})}const x=!f||React.isValidElement(h)&&"error"in h.props;return _jsx(FormField,{label:r,helperText:o,required:t,layout:l,labelStyle:i,helperStyle:n,errorStyle:s,containerStyle:a,inputContainerStyle:c,accessibilityLabel:m,testID:u,error:d??x?void 0:y.error,children:h})};HookFormField.displayName="HookFormField";