@webority/mobile-ui 0.88.1 → 0.90.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 (396) hide show
  1. package/README.md +2 -0
  2. package/lib/commonjs/canvasKit/index.js +1 -1
  3. package/lib/commonjs/components/Accordion/Accordion.js +1 -1
  4. package/lib/commonjs/components/AmountSlider/AmountSlider.js +1 -1
  5. package/lib/commonjs/components/AnimatePresence/AnimatePresence.js +1 -1
  6. package/lib/commonjs/components/AppBar/AppBar.js +1 -1
  7. package/lib/commonjs/components/AppIcon/AppIcon.js +1 -1
  8. package/lib/commonjs/components/AsyncBlock/AsyncBlock.js +1 -1
  9. package/lib/commonjs/components/AuthedImage/AuthedImage.js +1 -1
  10. package/lib/commonjs/components/Autocomplete/Autocomplete.js +1 -1
  11. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  12. package/lib/commonjs/components/Badge/Badge.js +1 -1
  13. package/lib/commonjs/components/Banner/Banner.js +1 -1
  14. package/lib/commonjs/components/BarChart/BarChart.js +1 -1
  15. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  16. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  17. package/lib/commonjs/components/Box/Box.js +1 -1
  18. package/lib/commonjs/components/Button/Button.js +1 -1
  19. package/lib/commonjs/components/Calendar/Calendar.js +1 -1
  20. package/lib/commonjs/components/Calendar/CalendarDay.js +1 -1
  21. package/lib/commonjs/components/Calendar/calendarStyles.js +1 -1
  22. package/lib/commonjs/components/Card/Card.js +1 -1
  23. package/lib/commonjs/components/Carousel/Carousel.js +1 -1
  24. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  25. package/lib/commonjs/components/Chip/Chip.js +1 -1
  26. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -1
  27. package/lib/commonjs/components/Composer/Composer.js +1 -1
  28. package/lib/commonjs/components/Confetti/Confetti.js +1 -1
  29. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  30. package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -1
  31. package/lib/commonjs/components/DateSeparator/DateSeparator.js +1 -1
  32. package/lib/commonjs/components/Descriptions/Descriptions.js +1 -1
  33. package/lib/commonjs/components/Dialog/Dialog.js +1 -1
  34. package/lib/commonjs/components/Divider/Divider.js +1 -1
  35. package/lib/commonjs/components/Drawer/Drawer.js +1 -1
  36. package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
  37. package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js +1 -1
  38. package/lib/commonjs/components/FieldBase/Chevron.js +1 -1
  39. package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -1
  40. package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
  41. package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -1
  42. package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
  43. package/lib/commonjs/components/FileViewer/FileViewer.js +1 -1
  44. package/lib/commonjs/components/FilterChipRow/FilterChipRow.js +1 -1
  45. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
  46. package/lib/commonjs/components/FormField/FormField.js +1 -1
  47. package/lib/commonjs/components/IconBadge/IconBadge.js +1 -1
  48. package/lib/commonjs/components/IconButton/IconButton.js +1 -1
  49. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  50. package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
  51. package/lib/commonjs/components/Input/Input.js +1 -1
  52. package/lib/commonjs/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -1
  53. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  54. package/lib/commonjs/components/ListItem/ListItem.js +1 -1
  55. package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.js +1 -1
  56. package/lib/commonjs/components/Markdown/Markdown.js +1 -1
  57. package/lib/commonjs/components/Menu/MenuSurface.js +1 -1
  58. package/lib/commonjs/components/MessageBubble/MessageBubble.js +1 -1
  59. package/lib/commonjs/components/MessageList/MessageList.js +1 -1
  60. package/lib/commonjs/components/Modal/Modal.js +1 -1
  61. package/lib/commonjs/components/Notation/Notation.js +1 -1
  62. package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
  63. package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
  64. package/lib/commonjs/components/OnboardingPager/OnboardingPager.js +1 -1
  65. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  66. package/lib/commonjs/components/PaymentResult/PaymentResult.js +1 -1
  67. package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.js +1 -1
  68. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  69. package/lib/commonjs/components/PickerTrigger/PickerTrigger.js +1 -1
  70. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -1
  71. package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -1
  72. package/lib/commonjs/components/ProgressBar/ProgressBar.js +1 -1
  73. package/lib/commonjs/components/ProgressRing/ProgressRing.js +1 -1
  74. package/lib/commonjs/components/Radio/Radio.js +1 -1
  75. package/lib/commonjs/components/Radio/RadioDot.js +1 -1
  76. package/lib/commonjs/components/Rating/Rating.js +1 -1
  77. package/lib/commonjs/components/Repeater/Repeater.js +1 -1
  78. package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -1
  79. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.js +1 -1
  80. package/lib/commonjs/components/Screen/Screen.js +1 -1
  81. package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
  82. package/lib/commonjs/components/SearchBar/SearchPanel.js +1 -1
  83. package/lib/commonjs/components/SectionHeader/SectionHeader.js +1 -1
  84. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
  85. package/lib/commonjs/components/Select/Select.js +1 -1
  86. package/lib/commonjs/components/SignaturePad/SignaturePad.js +1 -1
  87. package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
  88. package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
  89. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
  90. package/lib/commonjs/components/Slider/Slider.js +1 -1
  91. package/lib/commonjs/components/Slider/valueText.js +1 -1
  92. package/lib/commonjs/components/SliderField/SliderField.js +1 -1
  93. package/lib/commonjs/components/Sparkline/Sparkline.js +1 -1
  94. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  95. package/lib/commonjs/components/StatTile/StatTile.js +1 -1
  96. package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -1
  97. package/lib/commonjs/components/Stepper/Stepper.js +1 -1
  98. package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
  99. package/lib/commonjs/components/Switch/Switch.js +1 -1
  100. package/lib/commonjs/components/Tabs/Tabs.js +1 -1
  101. package/lib/commonjs/components/TagInput/TagInput.js +1 -1
  102. package/lib/commonjs/components/Text/Text.js +1 -1
  103. package/lib/commonjs/components/TimePicker/TimePicker.js +1 -1
  104. package/lib/commonjs/components/Timeline/Timeline.js +1 -1
  105. package/lib/commonjs/components/Toast/Toast.js +1 -1
  106. package/lib/commonjs/components/Toast/ToastProvider.js +1 -1
  107. package/lib/commonjs/components/Tooltip/RichTooltipBody.js +1 -1
  108. package/lib/commonjs/components/Tooltip/Tooltip.js +1 -1
  109. package/lib/commonjs/components/Tour/Tour.js +1 -1
  110. package/lib/commonjs/components/TypingIndicator/TypingIndicator.js +1 -1
  111. package/lib/commonjs/components/WheelPicker/Wheel.js +1 -1
  112. package/lib/commonjs/components/WheelPicker/WheelPicker.js +1 -1
  113. package/lib/commonjs/hooks/useDragToDismiss.js +1 -1
  114. package/lib/commonjs/hooks/usePressAnimation.js +1 -1
  115. package/lib/commonjs/hooks/useRefreshControl.js +1 -1
  116. package/lib/commonjs/index.js +1 -1
  117. package/lib/commonjs/initUI.js +1 -1
  118. package/lib/commonjs/network/NetworkStatusBanner.js +1 -1
  119. package/lib/commonjs/theme/ThemeContext.js +1 -1
  120. package/lib/commonjs/theme/componentSizes.js +1 -1
  121. package/lib/commonjs/theme/index.js +1 -1
  122. package/lib/commonjs/theme/merge.js +1 -1
  123. package/lib/commonjs/theme/scale.js +1 -1
  124. package/lib/commonjs/theme/textStyle.js +1 -1
  125. package/lib/commonjs/theme/tokens.generated.js +1 -1
  126. package/lib/commonjs/theme/tokens.js +1 -1
  127. package/lib/commonjs/utils/color.js +1 -1
  128. package/lib/module/canvasKit/index.js +1 -1
  129. package/lib/module/components/Accordion/Accordion.js +1 -1
  130. package/lib/module/components/AmountSlider/AmountSlider.js +1 -1
  131. package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -1
  132. package/lib/module/components/AppBar/AppBar.js +1 -1
  133. package/lib/module/components/AppIcon/AppIcon.js +1 -1
  134. package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -1
  135. package/lib/module/components/AuthedImage/AuthedImage.js +1 -1
  136. package/lib/module/components/Autocomplete/Autocomplete.js +1 -1
  137. package/lib/module/components/Avatar/Avatar.js +1 -1
  138. package/lib/module/components/Badge/Badge.js +1 -1
  139. package/lib/module/components/Banner/Banner.js +1 -1
  140. package/lib/module/components/BarChart/BarChart.js +1 -1
  141. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  142. package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
  143. package/lib/module/components/Box/Box.js +1 -1
  144. package/lib/module/components/Button/Button.js +1 -1
  145. package/lib/module/components/Calendar/Calendar.js +1 -1
  146. package/lib/module/components/Calendar/CalendarDay.js +1 -1
  147. package/lib/module/components/Calendar/calendarStyles.js +1 -1
  148. package/lib/module/components/Card/Card.js +1 -1
  149. package/lib/module/components/Carousel/Carousel.js +1 -1
  150. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  151. package/lib/module/components/Chip/Chip.js +1 -1
  152. package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
  153. package/lib/module/components/Composer/Composer.js +1 -1
  154. package/lib/module/components/Confetti/Confetti.js +1 -1
  155. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  156. package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
  157. package/lib/module/components/DateSeparator/DateSeparator.js +1 -1
  158. package/lib/module/components/Descriptions/Descriptions.js +1 -1
  159. package/lib/module/components/Dialog/Dialog.js +1 -1
  160. package/lib/module/components/Divider/Divider.js +1 -1
  161. package/lib/module/components/Drawer/Drawer.js +1 -1
  162. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  163. package/lib/module/components/ErrorBoundary/ErrorBoundary.js +1 -1
  164. package/lib/module/components/FieldBase/Chevron.js +1 -1
  165. package/lib/module/components/FieldBase/ChoiceText.js +1 -1
  166. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  167. package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
  168. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  169. package/lib/module/components/FileViewer/FileViewer.js +1 -1
  170. package/lib/module/components/FilterChipRow/FilterChipRow.js +1 -1
  171. package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
  172. package/lib/module/components/FormField/FormField.js +1 -1
  173. package/lib/module/components/IconBadge/IconBadge.js +1 -1
  174. package/lib/module/components/IconButton/IconButton.js +1 -1
  175. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  176. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  177. package/lib/module/components/Input/Input.js +1 -1
  178. package/lib/module/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -1
  179. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  180. package/lib/module/components/ListItem/ListItem.js +1 -1
  181. package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -1
  182. package/lib/module/components/Markdown/Markdown.js +1 -1
  183. package/lib/module/components/Menu/MenuSurface.js +1 -1
  184. package/lib/module/components/MessageBubble/MessageBubble.js +1 -1
  185. package/lib/module/components/MessageList/MessageList.js +1 -1
  186. package/lib/module/components/Modal/Modal.js +1 -1
  187. package/lib/module/components/Notation/Notation.js +1 -1
  188. package/lib/module/components/NumberInput/NumberInput.js +1 -1
  189. package/lib/module/components/OTPInput/OTPInput.js +1 -1
  190. package/lib/module/components/OnboardingPager/OnboardingPager.js +1 -1
  191. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  192. package/lib/module/components/PaymentResult/PaymentResult.js +1 -1
  193. package/lib/module/components/PermissionPrompt/PermissionPrompt.js +1 -1
  194. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  195. package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
  196. package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
  197. package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
  198. package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
  199. package/lib/module/components/ProgressRing/ProgressRing.js +1 -1
  200. package/lib/module/components/Radio/Radio.js +1 -1
  201. package/lib/module/components/Radio/RadioDot.js +1 -1
  202. package/lib/module/components/Rating/Rating.js +1 -1
  203. package/lib/module/components/Repeater/Repeater.js +1 -1
  204. package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
  205. package/lib/module/components/ScannerOverlay/ScannerOverlay.js +1 -1
  206. package/lib/module/components/Screen/Screen.js +1 -1
  207. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  208. package/lib/module/components/SearchBar/SearchPanel.js +1 -1
  209. package/lib/module/components/SectionHeader/SectionHeader.js +1 -1
  210. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  211. package/lib/module/components/Select/Select.js +1 -1
  212. package/lib/module/components/SignaturePad/SignaturePad.js +1 -1
  213. package/lib/module/components/Skeleton/Skeleton.js +1 -1
  214. package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
  215. package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
  216. package/lib/module/components/Slider/Slider.js +1 -1
  217. package/lib/module/components/Slider/valueText.js +1 -1
  218. package/lib/module/components/SliderField/SliderField.js +1 -1
  219. package/lib/module/components/Sparkline/Sparkline.js +1 -1
  220. package/lib/module/components/Spinner/Spinner.js +1 -1
  221. package/lib/module/components/StatTile/StatTile.js +1 -1
  222. package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
  223. package/lib/module/components/Stepper/Stepper.js +1 -1
  224. package/lib/module/components/Swipeable/Swipeable.js +1 -1
  225. package/lib/module/components/Switch/Switch.js +1 -1
  226. package/lib/module/components/Tabs/Tabs.js +1 -1
  227. package/lib/module/components/TagInput/TagInput.js +1 -1
  228. package/lib/module/components/Text/Text.js +1 -1
  229. package/lib/module/components/TimePicker/TimePicker.js +1 -1
  230. package/lib/module/components/Timeline/Timeline.js +1 -1
  231. package/lib/module/components/Toast/Toast.js +1 -1
  232. package/lib/module/components/Toast/ToastProvider.js +1 -1
  233. package/lib/module/components/Tooltip/RichTooltipBody.js +1 -1
  234. package/lib/module/components/Tooltip/Tooltip.js +1 -1
  235. package/lib/module/components/Tour/Tour.js +1 -1
  236. package/lib/module/components/TypingIndicator/TypingIndicator.js +1 -1
  237. package/lib/module/components/WheelPicker/Wheel.js +1 -1
  238. package/lib/module/components/WheelPicker/WheelPicker.js +1 -1
  239. package/lib/module/hooks/useDragToDismiss.js +1 -1
  240. package/lib/module/hooks/usePressAnimation.js +1 -1
  241. package/lib/module/hooks/useRefreshControl.js +1 -1
  242. package/lib/module/index.js +1 -1
  243. package/lib/module/initUI.js +1 -1
  244. package/lib/module/network/NetworkStatusBanner.js +1 -1
  245. package/lib/module/theme/ThemeContext.js +1 -1
  246. package/lib/module/theme/componentSizes.js +1 -1
  247. package/lib/module/theme/index.js +1 -1
  248. package/lib/module/theme/merge.js +1 -1
  249. package/lib/module/theme/scale.js +1 -1
  250. package/lib/module/theme/textStyle.js +1 -1
  251. package/lib/module/theme/tokens.generated.js +1 -1
  252. package/lib/module/theme/tokens.js +1 -1
  253. package/lib/module/utils/color.js +1 -1
  254. package/lib/typescript/commonjs/components/AmountSlider/AmountSlider.d.ts +1 -1
  255. package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.d.ts +1 -1
  256. package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +4 -4
  257. package/lib/typescript/commonjs/components/AppIcon/AppIcon.d.ts +1 -1
  258. package/lib/typescript/commonjs/components/AppIcon/defaultIcons.d.ts +1 -1
  259. package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +4 -4
  260. package/lib/typescript/commonjs/components/Badge/Badge.d.ts +1 -1
  261. package/lib/typescript/commonjs/components/Banner/Banner.d.ts +1 -1
  262. package/lib/typescript/commonjs/components/BarChart/BarChart.d.ts +1 -1
  263. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +8 -10
  264. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +2 -2
  265. package/lib/typescript/commonjs/components/Box/Box.d.ts +21 -21
  266. package/lib/typescript/commonjs/components/Button/Button.d.ts +3 -3
  267. package/lib/typescript/commonjs/components/Calendar/Calendar.d.ts +1 -1
  268. package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +9 -9
  269. package/lib/typescript/commonjs/components/Card/Card.d.ts +7 -6
  270. package/lib/typescript/commonjs/components/Checkbox/Checkbox.d.ts +1 -1
  271. package/lib/typescript/commonjs/components/Chip/Chip.d.ts +1 -1
  272. package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.d.ts +1 -1
  273. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +2 -2
  274. package/lib/typescript/commonjs/components/FieldBase/Chevron.d.ts +1 -1
  275. package/lib/typescript/commonjs/components/FieldBase/FieldBase.d.ts +32 -33
  276. package/lib/typescript/commonjs/components/FieldBase/useFloatingLabel.d.ts +2 -3
  277. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButton.d.ts +2 -2
  278. package/lib/typescript/commonjs/components/FormField/FormField.d.ts +2 -3
  279. package/lib/typescript/commonjs/components/IconBadge/IconBadge.d.ts +1 -1
  280. package/lib/typescript/commonjs/components/IconButton/IconButton.d.ts +2 -2
  281. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +2 -3
  282. package/lib/typescript/commonjs/components/Input/Input.d.ts +2 -2
  283. package/lib/typescript/commonjs/components/Notation/Notation.d.ts +1 -1
  284. package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.d.ts +2 -2
  285. package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.d.ts +2 -3
  286. package/lib/typescript/commonjs/components/ProfileCompletion/ProfileCompletion.d.ts +3 -4
  287. package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.d.ts +5 -6
  288. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +1 -1
  289. package/lib/typescript/commonjs/components/ProgressRing/ProgressRing.d.ts +6 -7
  290. package/lib/typescript/commonjs/components/Radio/Radio.d.ts +1 -1
  291. package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +1 -1
  292. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +3 -4
  293. package/lib/typescript/commonjs/components/Select/Select.d.ts +5 -5
  294. package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +2 -2
  295. package/lib/typescript/commonjs/components/SlideToConfirm/SlideToConfirm.d.ts +1 -1
  296. package/lib/typescript/commonjs/components/Slider/Slider.d.ts +6 -7
  297. package/lib/typescript/commonjs/components/Slider/valueText.d.ts +1 -1
  298. package/lib/typescript/commonjs/components/Sparkline/Sparkline.d.ts +1 -1
  299. package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.d.ts +2 -3
  300. package/lib/typescript/commonjs/components/Swipeable/Swipeable.d.ts +2 -2
  301. package/lib/typescript/commonjs/components/Switch/Switch.d.ts +1 -1
  302. package/lib/typescript/commonjs/components/Tabs/Tabs.d.ts +6 -7
  303. package/lib/typescript/commonjs/components/Text/Text.d.ts +6 -7
  304. package/lib/typescript/commonjs/components/Timeline/Timeline.d.ts +1 -1
  305. package/lib/typescript/commonjs/components/Toast/Toast.d.ts +1 -1
  306. package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +2 -2
  307. package/lib/typescript/commonjs/components/Tour/Tour.d.ts +2 -2
  308. package/lib/typescript/commonjs/hooks/usePresenceMotion.d.ts +2 -2
  309. package/lib/typescript/commonjs/index.d.ts +2 -2
  310. package/lib/typescript/commonjs/initUI.d.ts +3 -3
  311. package/lib/typescript/commonjs/theme/ThemeContext.d.ts +5 -3
  312. package/lib/typescript/commonjs/theme/componentSizes.d.ts +40 -18
  313. package/lib/typescript/commonjs/theme/index.d.ts +15 -17
  314. package/lib/typescript/commonjs/theme/merge.d.ts +15 -2
  315. package/lib/typescript/commonjs/theme/scale.d.ts +6 -4
  316. package/lib/typescript/commonjs/theme/textStyle.d.ts +4 -17
  317. package/lib/typescript/commonjs/theme/tokens.generated.d.ts +239 -92
  318. package/lib/typescript/commonjs/theme/types.d.ts +104 -347
  319. package/lib/typescript/commonjs/utils/color.d.ts +6 -2
  320. package/lib/typescript/commonjs/utils/shadows.d.ts +2 -2
  321. package/lib/typescript/module/components/AmountSlider/AmountSlider.d.ts +1 -1
  322. package/lib/typescript/module/components/AnimatePresence/AnimatePresence.d.ts +1 -1
  323. package/lib/typescript/module/components/AppBar/AppBar.d.ts +4 -4
  324. package/lib/typescript/module/components/AppIcon/AppIcon.d.ts +1 -1
  325. package/lib/typescript/module/components/AppIcon/defaultIcons.d.ts +1 -1
  326. package/lib/typescript/module/components/Avatar/Avatar.d.ts +4 -4
  327. package/lib/typescript/module/components/Badge/Badge.d.ts +1 -1
  328. package/lib/typescript/module/components/Banner/Banner.d.ts +1 -1
  329. package/lib/typescript/module/components/BarChart/BarChart.d.ts +1 -1
  330. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +8 -10
  331. package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +2 -2
  332. package/lib/typescript/module/components/Box/Box.d.ts +21 -21
  333. package/lib/typescript/module/components/Button/Button.d.ts +3 -3
  334. package/lib/typescript/module/components/Calendar/Calendar.d.ts +1 -1
  335. package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +9 -9
  336. package/lib/typescript/module/components/Card/Card.d.ts +7 -6
  337. package/lib/typescript/module/components/Checkbox/Checkbox.d.ts +1 -1
  338. package/lib/typescript/module/components/Chip/Chip.d.ts +1 -1
  339. package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.d.ts +1 -1
  340. package/lib/typescript/module/components/Dialog/Dialog.d.ts +2 -2
  341. package/lib/typescript/module/components/FieldBase/Chevron.d.ts +1 -1
  342. package/lib/typescript/module/components/FieldBase/FieldBase.d.ts +32 -33
  343. package/lib/typescript/module/components/FieldBase/useFloatingLabel.d.ts +2 -3
  344. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButton.d.ts +2 -2
  345. package/lib/typescript/module/components/FormField/FormField.d.ts +2 -3
  346. package/lib/typescript/module/components/IconBadge/IconBadge.d.ts +1 -1
  347. package/lib/typescript/module/components/IconButton/IconButton.d.ts +2 -2
  348. package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +2 -3
  349. package/lib/typescript/module/components/Input/Input.d.ts +2 -2
  350. package/lib/typescript/module/components/Notation/Notation.d.ts +1 -1
  351. package/lib/typescript/module/components/OptionSheet/OptionSheet.d.ts +2 -2
  352. package/lib/typescript/module/components/PickerTrigger/PickerTrigger.d.ts +2 -3
  353. package/lib/typescript/module/components/ProfileCompletion/ProfileCompletion.d.ts +3 -4
  354. package/lib/typescript/module/components/ProfilePicker/ProfilePicker.d.ts +5 -6
  355. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +1 -1
  356. package/lib/typescript/module/components/ProgressRing/ProgressRing.d.ts +6 -7
  357. package/lib/typescript/module/components/Radio/Radio.d.ts +1 -1
  358. package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +1 -1
  359. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +3 -4
  360. package/lib/typescript/module/components/Select/Select.d.ts +5 -5
  361. package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +2 -2
  362. package/lib/typescript/module/components/SlideToConfirm/SlideToConfirm.d.ts +1 -1
  363. package/lib/typescript/module/components/Slider/Slider.d.ts +6 -7
  364. package/lib/typescript/module/components/Slider/valueText.d.ts +1 -1
  365. package/lib/typescript/module/components/Sparkline/Sparkline.d.ts +1 -1
  366. package/lib/typescript/module/components/StatusBadge/StatusBadge.d.ts +2 -3
  367. package/lib/typescript/module/components/Swipeable/Swipeable.d.ts +2 -2
  368. package/lib/typescript/module/components/Switch/Switch.d.ts +1 -1
  369. package/lib/typescript/module/components/Tabs/Tabs.d.ts +6 -7
  370. package/lib/typescript/module/components/Text/Text.d.ts +6 -7
  371. package/lib/typescript/module/components/Timeline/Timeline.d.ts +1 -1
  372. package/lib/typescript/module/components/Toast/Toast.d.ts +1 -1
  373. package/lib/typescript/module/components/Toast/ToastProvider.d.ts +2 -2
  374. package/lib/typescript/module/components/Tour/Tour.d.ts +2 -2
  375. package/lib/typescript/module/hooks/usePresenceMotion.d.ts +2 -2
  376. package/lib/typescript/module/index.d.ts +2 -2
  377. package/lib/typescript/module/initUI.d.ts +3 -3
  378. package/lib/typescript/module/theme/ThemeContext.d.ts +5 -3
  379. package/lib/typescript/module/theme/componentSizes.d.ts +40 -18
  380. package/lib/typescript/module/theme/index.d.ts +15 -17
  381. package/lib/typescript/module/theme/merge.d.ts +15 -2
  382. package/lib/typescript/module/theme/scale.d.ts +6 -4
  383. package/lib/typescript/module/theme/textStyle.d.ts +4 -17
  384. package/lib/typescript/module/theme/tokens.generated.d.ts +239 -92
  385. package/lib/typescript/module/theme/types.d.ts +104 -347
  386. package/lib/typescript/module/utils/color.d.ts +6 -2
  387. package/lib/typescript/module/utils/shadows.d.ts +2 -2
  388. package/package.json +8 -15
  389. package/lib/commonjs/theme/componentTokens.js +0 -1
  390. package/lib/commonjs/theme/retiredThemeKeys.js +0 -1
  391. package/lib/module/theme/componentTokens.js +0 -1
  392. package/lib/module/theme/retiredThemeKeys.js +0 -1
  393. package/lib/typescript/commonjs/theme/componentTokens.d.ts +0 -762
  394. package/lib/typescript/commonjs/theme/retiredThemeKeys.d.ts +0 -22
  395. package/lib/typescript/module/theme/componentTokens.d.ts +0 -762
  396. package/lib/typescript/module/theme/retiredThemeKeys.d.ts +0 -22
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Toast=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("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,WEB_ACTION_MIN_DURATION_MS=8e3,COUNTDOWN_BAR_HEIGHT=3,ACTION_HIT_SLOP={top:10,bottom:10,left:10,right:10},DISMISS_ACTIONS=[{name:"dismiss",label:"Dismiss"}],Toast=({toast:e,index:t,onDismiss:i,shownAt:a,runtime:n})=>{const r=(0,_index.useTheme)(),s=(0,_usePresenceMotion.usePresenceMotion)(),o=s.duration("fast"),c=e.variant??"default",l=e.position??"bottom",u=(0,_react.useMemo)(()=>buildStyles(r),[r]),d=(0,_react.useMemo)(()=>tintFor(r,c),[r,c]),m=(0,_react.useMemo)(()=>inkFor(r,c),[r,c]),_=r.components.toast,p=_?.iconCircleSize??28,g=(0,_index.fontSizeOf)(r,_.iconGlyphText,"components.toast.iconGlyphText"),v=_?.tintBarWidth??0,h=_?.swipeDismissThreshold??80,f=_?.swipeVelocityThreshold??.5,x=_?.stackOffset??8,N=_?.stackScaleStep??.04,b=_?.stackMinScale??.9,S=_?.defaultDurationMs??3e3,y=_?.enableSwipeDismiss??!0,A=_?.enterSpringDamping??18,T=_?.enterSpringStiffness??180,w=_?.enterSpringMass??1,R="top"===l?-120:120,M=(0,_react.useRef)((0,_index.createAnimatedValue)(s.reduced?0:R)).current,D=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,V=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,C=(0,_react.useRef)(!1),j="top"===l?t*x:-t*x,E=Math.max(1-t*N,b),I=(0,_react.useRef)((0,_index.createAnimatedValue)(j)).current;(0,_react.useEffect)(()=>{(0,_index.setNativeValue)(I,j)},[j,I]);const k=(0,_react.useMemo)(()=>_reactNative.Animated.add(M,I),[M,I]),O=void 0!==e.action,P=e.duration??S,L=P>0&&O&&"web"===_reactNative.Platform.OS?Math.max(P,8e3):P,F=L<=0||O&&!0===n?.screenReaderOn,H=!0===e.countdown&&!F,B=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,z=(0,_react.useRef)({initialised:!1,timer:null,remaining:0,startedAt:0}),G=(0,_react.useRef)({touch:!1,pan:!1,hover:!1}),U=(0,_react.useRef)(()=>{}),q=(0,_react.useRef)({id:e.id,totalMs:L,shownAt:a,runtime:n,persistent:F,animateBar:!1});q.current={id:e.id,totalMs:L,shownAt:a,runtime:n,persistent:F,animateBar:H&&!s.reduced};const W=(0,_react.useCallback)(()=>{const e=z.current,t=q.current,i=G.current;if(!e.initialised){e.initialised=!0;const i=t.runtime?.readRemaining(t.id),a=void 0===t.shownAt?0:Date.now()-t.shownAt;e.remaining=i??(t.totalMs>0?Math.max(t.totalMs-a,0):0),t.totalMs>0&&e.remaining<t.totalMs&&(0,_index.setNativeValue)(B,e.remaining/t.totalMs)}const a=!(t.persistent||C.current||i.touch||i.pan||i.hover);a&&null===e.timer?(e.startedAt=Date.now(),e.timer=setTimeout(()=>{e.timer=null,e.remaining=0,U.current()},e.remaining),t.animateBar&&_reactNative.Animated.timing(B,{toValue:0,duration:e.remaining,easing:_reactNative.Easing.linear,useNativeDriver:!0}).start()):a||null===e.timer||(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0),B.stopAnimation())},[B]),dismiss=()=>{if(C.current)return;C.current=!0,W();const t=[_reactNative.Animated.timing(V,{toValue:0,duration:o,easing:_reactNative.Easing.bezier(...r.motion.easing.accelerate),useNativeDriver:!0})];s.reduced||t.push(_reactNative.Animated.timing(M,{toValue:R,duration:r.motion.duration.fast,easing:_reactNative.Easing.bezier(...r.motion.easing.accelerate),useNativeDriver:!0})),_reactNative.Animated.parallel(t).start(()=>i(e.id))};U.current=dismiss,(0,_react.useEffect)(()=>{const e=s.reduced?_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0}):_reactNative.Animated.parallel([_reactNative.Animated.spring(M,{toValue:0,damping:A,stiffness:T,mass:w,useNativeDriver:!0}),_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[]),(0,_react.useEffect)(()=>{W()},[F,W]),(0,_react.useEffect)(()=>()=>{const e=z.current,t=q.current;null!==e.timer&&(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0)),B.stopAnimation(),e.initialised&&t.totalMs>0&&!C.current&&t.runtime?.writeRemaining(t.id,e.remaining)},[B]);const $=(0,_react.useCallback)((e,t)=>{G.current[e]=t,W()},[W]),K=(0,_react.useCallback)(()=>$("touch",!0),[$]),X=(0,_react.useCallback)(e=>$("touch",(e.nativeEvent.touches?.length??0)>0),[$]),Y=(0,_react.useCallback)(()=>$("hover",!0),[$]),J=(0,_react.useCallback)(()=>$("hover",!1),[$]),Q=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderGrant:()=>$("pan",!0),onPanResponderMove:(e,t)=>{(0,_index.setNativeValue)(D,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);(0,_index.setNativeValue)(V,i)},onPanResponderTerminate:()=>{if($("pan",!1),s.reduced)return(0,_index.setNativeValue)(D,0),void _reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0}).start();_reactNative.Animated.parallel([_reactNative.Animated.spring(D,{toValue:0,damping:r.motion.spring.snappy.damping,stiffness:r.motion.spring.snappy.stiffness,mass:r.motion.spring.snappy.mass,useNativeDriver:!0}),_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,a)=>{if(Math.abs(a.dx)>h||Math.abs(a.vx)>f){const t=a.dx>=0?1:-1;C.current=!0,$("pan",!1);const n=[_reactNative.Animated.timing(V,{toValue:0,duration:o,useNativeDriver:!0})];s.reduced||n.push(_reactNative.Animated.timing(D,{toValue:500*t,duration:r.motion.duration.fast,useNativeDriver:!0})),_reactNative.Animated.parallel(n).start(()=>i(e.id))}else $("pan",!1),s.reduced?((0,_index.setNativeValue)(D,0),_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0}).start()):_reactNative.Animated.parallel([_reactNative.Animated.spring(D,{toValue:0,useNativeDriver:!0}),_reactNative.Animated.spring(V,{toValue:1,useNativeDriver:!0})]).start()}}),[D,V,$,h,f,o,s.reduced,r.motion.duration.fast,r.motion.spring.snappy.damping,r.motion.spring.snappy.stiffness,r.motion.spring.snappy.mass,i,e.id]),Z={accessibilityActions:DISMISS_ACTIONS,onAccessibilityAction:e=>{"dismiss"===e.nativeEvent.actionName&&dismiss()}},[ee,te]=(0,_react.useState)(0),ie=(0,_react.useMemo)(()=>B.interpolate({inputRange:[0,1],outputRange:[-ee,0]}),[B,ee]),ae=e.description?`${e.message}. ${e.description}`:e.message,ne=e.action&&H?`${e.action.label}, ${Math.ceil(L/1e3)} seconds`:e.action?.label;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{...y?Q.panHandlers:{},...O?{}:{accessible:!0,...Z},..."web"===_reactNative.Platform.OS?{onPointerEnter:Y,onPointerLeave:J}:{},onTouchStart:K,onTouchEnd:X,onTouchCancel:X,accessibilityLabel:ae,testID:e.testID,style:[u.container,{backgroundColor:r.colors.background.elevated,borderRadius:r.radius.lg,..._corners.smoothCorners,padding:r.spacing.md,...r.shadows.md,shadowColor:r.shadows.md.shadowColor,opacity:V,transform:[{translateY:k},{translateX:D},{scale:E}]},e.style,e.containerStyle],children:[v>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.tintBar,{width:v,backgroundColor:d}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(c);return t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.iconCircle,{width:p,height:p,borderRadius:r.radius.pill,..._corners.smoothCorners,backgroundColor:d+"22"},e.iconCircleStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.iconGlyph,{color:m,fontSize:g}],accessible:!1,children:t})}):null})(),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.textBlock,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.message,{color:r.colors.text.primary,fontSize:r.typography.fontSize.base,...(0,_index.fontFor)(r,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{color:r.colors.text.secondary,fontSize:r.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]}),e.action?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:ne,hitSlop:ACTION_HIT_SLOP,...Z,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[u.actionBtn,{backgroundColor:t?r.colors.surface.pressed:"transparent"},e.actionButtonStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:d,fontSize:r.typography.fontSize.sm,...(0,_index.fontFor)(r,"semibold")},numberOfLines:1,children:e.action.label})}):null]}),H?(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",onLayout:e=>te(e.nativeEvent.layout.width),testID:"toast-countdown",style:[u.countdownTrack,{backgroundColor:d+"22"}],children:[s.reduced?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.countdownFill,{backgroundColor:d}]}):null,!s.reduced&&ee>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u.countdownFill,{backgroundColor:d,transform:[{translateX:ie}]}]}):null]}):null]})};exports.Toast=Toast;const 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}},inkFor=(e,t)=>{switch(t){case"success":return e.colors.toneText.success;case"error":return e.colors.toneText.error;case"warning":return e.colors.toneText.warning;case"info":return e.colors.toneText.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=>_reactNative.StyleSheet.create({container:{overflow:"hidden",marginVertical:e.spacing.xs},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:e.spacing.sm},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:e.spacing.md},iconGlyph:{fontWeight:"700",lineHeight:19},textBlock:{flex:1,paddingRight:e.spacing.sm},message:{lineHeight:20},description:{marginTop:e.spacing.xxs,lineHeight:18},countdownTrack:{position:"absolute",left:0,right:0,bottom:0,height:3,overflow:"hidden"},countdownFill:{position:"absolute",left:0,right:0,top:0,bottom:0},actionBtn:{paddingHorizontal:e.spacing.sm,paddingVertical:e.spacing.xs,minHeight:e.components.toast.actionMinHeight,borderRadius:e.radius.md,..._corners.smoothCorners,marginLeft:e.spacing.sm}});var _default=exports.default=Toast;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Toast=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const SWIPE_DISMISS_THRESHOLD=80,SWIPE_VELOCITY_THRESHOLD=.5,STACK_OFFSET=8,STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,WEB_ACTION_MIN_DURATION_MS=8e3,COUNTDOWN_BAR_HEIGHT=3,ACTION_HIT_SLOP={top:10,bottom:10,left:10,right:10},DISMISS_ACTIONS=[{name:"dismiss",label:"Dismiss"}],Toast=({toast:e,index:t,onDismiss:a,shownAt:i,runtime:n})=>{const r=(0,_index.useTheme)(),s=(0,_usePresenceMotion.usePresenceMotion)(),o=s.duration("fast"),c=e.variant??"default",l=e.position??"bottom",u=(0,_react.useMemo)(()=>buildStyles(r),[r]),d=(0,_react.useMemo)(()=>tintFor(r,c),[r,c]),m=(0,_react.useMemo)(()=>inkFor(r,c),[r,c]),_=r.components.toast["icon-circle-size"],p=r.text[r.components.toast["icon-glyph-text"]].size,v=r.components.toast["tint-bar-width"],g=r.settings.components.toast?.defaultDurationMs??3e3,x=r.settings.components.toast?.enableSwipeDismiss??!0,h="top"===l?-120:120,f=(0,_react.useRef)((0,_index.createAnimatedValue)(s.reduced?0:h)).current,N=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,b=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,A=(0,_react.useRef)(!1),y="top"===l?8*t:8*-t,S=Math.max(1-.04*t,.9),w=(0,_react.useRef)((0,_index.createAnimatedValue)(y)).current;(0,_react.useEffect)(()=>{(0,_index.setNativeValue)(w,y)},[y,w]);const R=(0,_react.useMemo)(()=>_reactNative.Animated.add(f,w),[f,w]),M=void 0!==e.action,T=e.duration??g,V=T>0&&M&&"web"===_reactNative.Platform.OS?Math.max(T,8e3):T,D=V<=0||M&&!0===n?.screenReaderOn,j=!0===e.countdown&&!D,C=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,I=(0,_react.useRef)({initialised:!1,timer:null,remaining:0,startedAt:0}),E=(0,_react.useRef)({touch:!1,pan:!1,hover:!1}),P=(0,_react.useRef)(()=>{}),O=(0,_react.useRef)({id:e.id,totalMs:V,shownAt:i,runtime:n,persistent:D,animateBar:!1});O.current={id:e.id,totalMs:V,shownAt:i,runtime:n,persistent:D,animateBar:j&&!s.reduced};const k=(0,_react.useCallback)(()=>{const e=I.current,t=O.current,a=E.current;if(!e.initialised){e.initialised=!0;const a=t.runtime?.readRemaining(t.id),i=void 0===t.shownAt?0:Date.now()-t.shownAt;e.remaining=a??(t.totalMs>0?Math.max(t.totalMs-i,0):0),t.totalMs>0&&e.remaining<t.totalMs&&(0,_index.setNativeValue)(C,e.remaining/t.totalMs)}const i=!(t.persistent||A.current||a.touch||a.pan||a.hover);i&&null===e.timer?(e.startedAt=Date.now(),e.timer=setTimeout(()=>{e.timer=null,e.remaining=0,P.current()},e.remaining),t.animateBar&&_reactNative.Animated.timing(C,{toValue:0,duration:e.remaining,easing:_reactNative.Easing.linear,useNativeDriver:!0}).start()):i||null===e.timer||(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0),C.stopAnimation())},[C]),dismiss=()=>{if(A.current)return;A.current=!0,k();const t=[_reactNative.Animated.timing(b,{toValue:0,duration:o,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0})];s.reduced||t.push(_reactNative.Animated.timing(f,{toValue:h,duration:r.motion.duration.fast,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0})),_reactNative.Animated.parallel(t).start(()=>a(e.id))};P.current=dismiss,(0,_react.useEffect)(()=>{const e=s.reduced?_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}):_reactNative.Animated.parallel([_reactNative.Animated.spring(f,{toValue:0,damping:18,stiffness:180,mass:1,useNativeDriver:!0}),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[]),(0,_react.useEffect)(()=>{k()},[D,k]),(0,_react.useEffect)(()=>()=>{const e=I.current,t=O.current;null!==e.timer&&(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0)),C.stopAnimation(),e.initialised&&t.totalMs>0&&!A.current&&t.runtime?.writeRemaining(t.id,e.remaining)},[C]);const L=(0,_react.useCallback)((e,t)=>{E.current[e]=t,k()},[k]),H=(0,_react.useCallback)(()=>L("touch",!0),[L]),F=(0,_react.useCallback)(e=>L("touch",(e.nativeEvent.touches?.length??0)>0),[L]),z=(0,_react.useCallback)(()=>L("hover",!0),[L]),B=(0,_react.useCallback)(()=>L("hover",!1),[L]),q=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderGrant:()=>L("pan",!0),onPanResponderMove:(e,t)=>{(0,_index.setNativeValue)(N,t.dx);const a=1-.7*Math.min(Math.abs(t.dx)/200,1);(0,_index.setNativeValue)(b,a)},onPanResponderTerminate:()=>{if(L("pan",!1),s.reduced)return(0,_index.setNativeValue)(N,0),void _reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}).start();_reactNative.Animated.parallel([_reactNative.Animated.spring(N,{toValue:0,damping:r.motion.spring.snappy.damping,stiffness:r.motion.spring.snappy.stiffness,mass:r.motion.spring.snappy.mass,useNativeDriver:!0}),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,i)=>{if(Math.abs(i.dx)>80||Math.abs(i.vx)>.5){const t=i.dx>=0?1:-1;A.current=!0,L("pan",!1);const n=[_reactNative.Animated.timing(b,{toValue:0,duration:o,useNativeDriver:!0})];s.reduced||n.push(_reactNative.Animated.timing(N,{toValue:500*t,duration:r.motion.duration.fast,useNativeDriver:!0})),_reactNative.Animated.parallel(n).start(()=>a(e.id))}else L("pan",!1),s.reduced?((0,_index.setNativeValue)(N,0),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}).start()):_reactNative.Animated.parallel([_reactNative.Animated.spring(N,{toValue:0,useNativeDriver:!0}),_reactNative.Animated.spring(b,{toValue:1,useNativeDriver:!0})]).start()}}),[N,b,L,o,s.reduced,r.motion.duration.fast,r.motion.spring.snappy.damping,r.motion.spring.snappy.stiffness,r.motion.spring.snappy.mass,a,e.id]),G={accessibilityActions:DISMISS_ACTIONS,onAccessibilityAction:e=>{"dismiss"===e.nativeEvent.actionName&&dismiss()}},[W,U]=(0,_react.useState)(0),$=(0,_react.useMemo)(()=>C.interpolate({inputRange:[0,1],outputRange:[-W,0]}),[C,W]),K=e.description?`${e.message}. ${e.description}`:e.message,X=e.action&&j?`${e.action.label}, ${Math.ceil(V/1e3)} seconds`:e.action?.label;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{...x?q.panHandlers:{},...M?{}:{accessible:!0,...G},..."web"===_reactNative.Platform.OS?{onPointerEnter:z,onPointerLeave:B}:{},onTouchStart:H,onTouchEnd:F,onTouchCancel:F,accessibilityLabel:K,testID:e.testID,style:[u.container,{backgroundColor:r.colors.surface,borderRadius:r.radius.lg,..._corners.smoothCorners,padding:r.space.md,...r.shadow.elevated,opacity:b,transform:[{translateY:R},{translateX:N},{scale:S}]},e.style,e.containerStyle],children:[v>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.tintBar,{width:v,backgroundColor:d}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(c);return t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.iconCircle,{width:_,height:_,borderRadius:r.radius.pill,..._corners.smoothCorners,backgroundColor:d+"22"},e.iconCircleStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.iconGlyph,{color:m,fontSize:p}],accessible:!1,children:t})}):null})(),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.textBlock,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.message,{color:r.colors["text-body"],fontSize:r.text.base.size,...(0,_index.fontFor)(r,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{color:r.colors["text-muted"],fontSize:r.text.sm.size}],numberOfLines:3,children:e.description}):null]}),e.action?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:X,hitSlop:ACTION_HIT_SLOP,...G,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[u.actionBtn,{backgroundColor:t?r.colors["surface-pressed"]:"transparent"},e.actionButtonStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:d,fontSize:r.text.sm.size,...(0,_index.fontFor)(r,"semibold")},numberOfLines:1,children:e.action.label})}):null]}),j?(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",onLayout:e=>U(e.nativeEvent.layout.width),testID:"toast-countdown",style:[u.countdownTrack,{backgroundColor:d+"22"}],children:[s.reduced?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.countdownFill,{backgroundColor:d}]}):null,!s.reduced&&W>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u.countdownFill,{backgroundColor:d,transform:[{translateX:$}]}]}):null]}):null]})};exports.Toast=Toast;const tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"danger":return e.colors.danger;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors["text-body"]}},inkFor=(e,t)=>{switch(t){case"success":return e.colors["success-text"];case"danger":return e.colors["danger-text"];case"warning":return e.colors["warning-text"];case"info":return e.colors["info-text"];default:return e.colors["text-body"]}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"danger":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>_reactNative.StyleSheet.create({container:{overflow:"hidden",marginVertical:e.space.xs},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:e.space.sm},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:e.space.md},iconGlyph:{fontWeight:"700",lineHeight:19},textBlock:{flex:1,paddingRight:e.space.sm},message:{lineHeight:20},description:{marginTop:e.space.xxs,lineHeight:18},countdownTrack:{position:"absolute",left:0,right:0,bottom:0,height:3,overflow:"hidden"},countdownFill:{position:"absolute",left:0,right:0,top:0,bottom:0},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,minHeight:e.components.toast["action-min-height"],borderRadius:e.radius.md,..._corners.smoothCorners,marginLeft:e.space.sm}});var _default=exports.default=Toast;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useToast=exports.toast=exports.ToastProvider=exports.ToastHost=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Toast=_interopRequireDefault(require("./Toast.js")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const MAX_VISIBLE=3,UNDO_DEFAULT_DURATION_MS=6e3,UNDO_MIN_DURATION_MS=6e3,ToastContext=(0,_react.createContext)(null),ToastHostContext=(0,_react.createContext)(null);let nextId=0;const makeId=()=>(nextId+=1,`toast-${Date.now().toString(36)}-${nextId.toString(36)}`),defaultHaptic=e=>{switch(e){case"error":return"notificationError";case"success":return"notificationSuccess";case"warning":return"notificationWarning";default:return"selection"}},resolveHaptics=(e,t)=>{if(!1===e)return!1;const r=e?.[t??"default"];return void 0===r?defaultHaptic(t):r};let nextHostId=0;const makeHostId=()=>(nextHostId+=1,nextHostId),useScreenReaderEnabled=()=>{const[e,t]=(0,_react.useState)(!1);return(0,_react.useEffect)(()=>{if("web"===_reactNative.Platform.OS)return;let e=!0;_reactNative.AccessibilityInfo.isScreenReaderEnabled().then(r=>{e&&t(r)});const r=_reactNative.AccessibilityInfo.addEventListener("screenReaderChanged",t);return()=>{e=!1,r.remove()}},[]),e};let providerCount=0,activeApi=null;const setActiveApi=e=>{activeApi=e},getActiveApi=()=>activeApi,ToastProvider=({children:e,maxVisible:t=3,topOffset:r,bottomOffset:o,defaultDuration:s,haptics:n})=>{const a=(0,_react.useRef)({defaultDuration:s,haptics:n});a.current={defaultDuration:s,haptics:n};const[i,u]=(0,_react.useState)([]),[c,d]=(0,_react.useState)([]),l=useScreenReaderEnabled(),_=(0,_react.useRef)(new Map),p=(0,_react.useRef)(new Map);(0,_react.useEffect)(()=>{const e=new Set(i.map(e=>e.id));for(const[t,r]of[..._.current])e.has(t)||(_.current.delete(t),r());for(const t of[...p.current.keys()])e.has(t)||p.current.delete(t)},[i]),(0,_react.useEffect)(()=>{const e=_.current;return()=>{for(const[t,r]of[...e])e.delete(t),r()}},[]);const f=(0,_react.useMemo)(()=>({screenReaderOn:l,readRemaining:e=>p.current.get(e),writeRemaining:(e,t)=>{p.current.set(e,t)}}),[l]),m=(0,_react.useCallback)(e=>{u(t=>t.filter(t=>t.id!==e))},[]),x=(0,_react.useCallback)(()=>{u([])},[]),v=(0,_react.useCallback)(e=>{const r=makeId(),{defaultDuration:o,haptics:s}=a.current,n={...e,duration:e.duration??o,id:r,shownAt:Date.now()},i=void 0!==e.haptic?e.haptic:resolveHaptics(s,e.variant);return!1!==i&&(0,_hapticUtils.triggerHaptic)(i),(0,_announce.announce)(e.description?`${e.message}. ${e.description}`:e.message,{polite:"error"!==e.variant}),u(r=>{const o=[...void 0===e.key?r:r.filter(t=>t.key!==e.key),n];return o.length>t?o.slice(o.length-t):o}),r},[t]),h=(0,_react.useCallback)((e,t)=>{const{onUndo:r,onCommit:o,undoLabel:s,duration:n,...a}=t,i={id:""},u=v({...a,message:e,duration:0===n?0:Math.max(n??6e3,6e3),countdown:!0,action:{label:s??"Undo",onPress:()=>{_.current.delete(i.id),r()}}});return i.id=u,o&&_.current.set(u,o),u},[v]),g=(0,_react.useMemo)(()=>({show:v,undo:h,hide:m,hideAll:x}),[v,h,m,x]);(0,_react.useEffect)(()=>(providerCount+=1,setActiveApi(g),()=>{providerCount-=1,providerCount<=0&&(providerCount=0,setActiveApi(null))}),[g]);const w=(0,_react.useCallback)(e=>{d(t=>[...t,e])},[]),b=(0,_react.useCallback)(e=>{d(t=>t.filter(t=>t!==e))},[]),T=c.length>0?c[c.length-1]:null,y=(0,_react.useMemo)(()=>({register:w,unregister:b,activeHostId:T,queue:i,hide:m,topOffset:r,bottomOffset:o,runtime:f}),[w,b,T,i,m,r,o,f]);return(0,_jsxRuntime.jsx)(ToastContext.Provider,{value:g,children:(0,_jsxRuntime.jsxs)(ToastHostContext.Provider,{value:y,children:[e,null===T?(0,_jsxRuntime.jsx)(ToastLayers,{queue:i,onDismiss:m,topOffset:r,bottomOffset:o,runtime:f}):null]})})};exports.ToastProvider=ToastProvider;let warnedHost=!1;const warnHostWithoutProvider=()=>{warnedHost||(warnedHost=!0,"undefined"!=typeof __DEV__&&__DEV__&&_mobileCore.Logger.warn("[toast] <ToastHost /> rendered outside a <ToastProvider />; it renders nothing. Mount a provider near your app root."))},ToastHost=()=>{const e=(0,_react.useContext)(ToastHostContext),[t]=(0,_react.useState)(makeHostId),r=e?.register,o=e?.unregister;return(0,_react.useEffect)(()=>{if(r&&o)return r(t),()=>o(t);warnHostWithoutProvider()},[r,o,t]),e&&e.activeHostId===t?(0,_jsxRuntime.jsx)(ToastLayers,{queue:e.queue,onDismiss:e.hide,topOffset:e.topOffset,bottomOffset:e.bottomOffset,runtime:e.runtime}):null};exports.ToastHost=ToastHost;const ToastLayers=({queue:e,onDismiss:t,topOffset:r,bottomOffset:o,runtime:s})=>{const n=(0,_index.useTheme)(),a=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),i=(0,_react.useMemo)(()=>buildStyles(),[]),u=e.filter(e=>"top"===(e.position??"bottom")),c=e.filter(e=>"bottom"===(e.position??"bottom"));return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"toast-layer-top",pointerEvents:"box-none",style:[i.layer,i.top,{top:(r??a.top)+n.spacing.sm,paddingHorizontal:n.spacing.md}],children:u.map((e,r)=>(0,_jsxRuntime.jsx)(_Toast.default,{toast:e,index:u.length-1-r,shownAt:e.shownAt,runtime:s,onDismiss:t},e.id))}),(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"toast-layer-bottom",pointerEvents:"box-none",style:[i.layer,i.bottom,{bottom:(o??a.bottom)+n.spacing.sm,paddingHorizontal:n.spacing.md}],children:c.map((e,r)=>(0,_jsxRuntime.jsx)(_Toast.default,{toast:e,index:c.length-1-r,shownAt:e.shownAt,runtime:s,onDismiss:t},e.id))})]})},useToast=()=>{const e=(0,_react.useContext)(ToastContext);if(!e)throw new Error("useToast must be used within a <ToastProvider>.");return e};exports.useToast=useToast;let warned=!1;const warnNoProvider=()=>{warned||(warned=!0,"undefined"!=typeof __DEV__&&__DEV__&&_mobileCore.Logger.warn("[toast] No <ToastProvider /> mounted; toast() calls are no-ops. Mount a provider near your app root."))},proxy=e=>{const t=getActiveApi();return t?e(t):(warnNoProvider(),"")},toast=exports.toast={show:e=>proxy(t=>t.show(e)),undo:(e,t)=>proxy(r=>r.undo(e,t)),success:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"success"})),error:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"error"})),warning:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"warning"})),info:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"info"})),hideAll:()=>{const e=getActiveApi();e?e.hideAll():warnNoProvider()}},buildStyles=()=>_reactNative.StyleSheet.create({layer:{position:"absolute",left:0,right:0},top:{alignItems:"stretch"},bottom:{alignItems:"stretch"}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useToast=exports.toast=exports.ToastProvider=exports.ToastHost=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Toast=_interopRequireDefault(require("./Toast.js")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const MAX_VISIBLE=3,UNDO_DEFAULT_DURATION_MS=6e3,UNDO_MIN_DURATION_MS=6e3,ToastContext=(0,_react.createContext)(null),ToastHostContext=(0,_react.createContext)(null);let nextId=0;const makeId=()=>(nextId+=1,`toast-${Date.now().toString(36)}-${nextId.toString(36)}`),defaultHaptic=e=>{switch(e){case"danger":return"notificationError";case"success":return"notificationSuccess";case"warning":return"notificationWarning";default:return"selection"}},resolveHaptics=(e,t)=>{if(!1===e)return!1;const r=e?.[t??"default"];return void 0===r?defaultHaptic(t):r};let nextHostId=0;const makeHostId=()=>(nextHostId+=1,nextHostId),useScreenReaderEnabled=()=>{const[e,t]=(0,_react.useState)(!1);return(0,_react.useEffect)(()=>{if("web"===_reactNative.Platform.OS)return;let e=!0;_reactNative.AccessibilityInfo.isScreenReaderEnabled().then(r=>{e&&t(r)});const r=_reactNative.AccessibilityInfo.addEventListener("screenReaderChanged",t);return()=>{e=!1,r.remove()}},[]),e};let providerCount=0,activeApi=null;const setActiveApi=e=>{activeApi=e},getActiveApi=()=>activeApi,ToastProvider=({children:e,maxVisible:t=3,topOffset:r,bottomOffset:o,defaultDuration:s,haptics:n})=>{const a=(0,_react.useRef)({defaultDuration:s,haptics:n});a.current={defaultDuration:s,haptics:n};const[i,u]=(0,_react.useState)([]),[c,d]=(0,_react.useState)([]),l=useScreenReaderEnabled(),_=(0,_react.useRef)(new Map),p=(0,_react.useRef)(new Map);(0,_react.useEffect)(()=>{const e=new Set(i.map(e=>e.id));for(const[t,r]of[..._.current])e.has(t)||(_.current.delete(t),r());for(const t of[...p.current.keys()])e.has(t)||p.current.delete(t)},[i]),(0,_react.useEffect)(()=>{const e=_.current;return()=>{for(const[t,r]of[...e])e.delete(t),r()}},[]);const f=(0,_react.useMemo)(()=>({screenReaderOn:l,readRemaining:e=>p.current.get(e),writeRemaining:(e,t)=>{p.current.set(e,t)}}),[l]),m=(0,_react.useCallback)(e=>{u(t=>t.filter(t=>t.id!==e))},[]),x=(0,_react.useCallback)(()=>{u([])},[]),v=(0,_react.useCallback)(e=>{const r=makeId(),{defaultDuration:o,haptics:s}=a.current,n={...e,duration:e.duration??o,id:r,shownAt:Date.now()},i=void 0!==e.haptic?e.haptic:resolveHaptics(s,e.variant);return!1!==i&&(0,_hapticUtils.triggerHaptic)(i),(0,_announce.announce)(e.description?`${e.message}. ${e.description}`:e.message,{polite:"danger"!==e.variant}),u(r=>{const o=[...void 0===e.key?r:r.filter(t=>t.key!==e.key),n];return o.length>t?o.slice(o.length-t):o}),r},[t]),h=(0,_react.useCallback)((e,t)=>{const{onUndo:r,onCommit:o,undoLabel:s,duration:n,...a}=t,i={id:""},u=v({...a,message:e,duration:0===n?0:Math.max(n??6e3,6e3),countdown:!0,action:{label:s??"Undo",onPress:()=>{_.current.delete(i.id),r()}}});return i.id=u,o&&_.current.set(u,o),u},[v]),g=(0,_react.useMemo)(()=>({show:v,undo:h,hide:m,hideAll:x}),[v,h,m,x]);(0,_react.useEffect)(()=>(providerCount+=1,setActiveApi(g),()=>{providerCount-=1,providerCount<=0&&(providerCount=0,setActiveApi(null))}),[g]);const w=(0,_react.useCallback)(e=>{d(t=>[...t,e])},[]),b=(0,_react.useCallback)(e=>{d(t=>t.filter(t=>t!==e))},[]),T=c.length>0?c[c.length-1]:null,y=(0,_react.useMemo)(()=>({register:w,unregister:b,activeHostId:T,queue:i,hide:m,topOffset:r,bottomOffset:o,runtime:f}),[w,b,T,i,m,r,o,f]);return(0,_jsxRuntime.jsx)(ToastContext.Provider,{value:g,children:(0,_jsxRuntime.jsxs)(ToastHostContext.Provider,{value:y,children:[e,null===T?(0,_jsxRuntime.jsx)(ToastLayers,{queue:i,onDismiss:m,topOffset:r,bottomOffset:o,runtime:f}):null]})})};exports.ToastProvider=ToastProvider;let warnedHost=!1;const warnHostWithoutProvider=()=>{warnedHost||(warnedHost=!0,"undefined"!=typeof __DEV__&&__DEV__&&_mobileCore.Logger.warn("[toast] <ToastHost /> rendered outside a <ToastProvider />; it renders nothing. Mount a provider near your app root."))},ToastHost=()=>{const e=(0,_react.useContext)(ToastHostContext),[t]=(0,_react.useState)(makeHostId),r=e?.register,o=e?.unregister;return(0,_react.useEffect)(()=>{if(r&&o)return r(t),()=>o(t);warnHostWithoutProvider()},[r,o,t]),e&&e.activeHostId===t?(0,_jsxRuntime.jsx)(ToastLayers,{queue:e.queue,onDismiss:e.hide,topOffset:e.topOffset,bottomOffset:e.bottomOffset,runtime:e.runtime}):null};exports.ToastHost=ToastHost;const ToastLayers=({queue:e,onDismiss:t,topOffset:r,bottomOffset:o,runtime:s})=>{const n=(0,_index.useTheme)(),a=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),i=(0,_react.useMemo)(()=>buildStyles(),[]),u=e.filter(e=>"top"===(e.position??"bottom")),c=e.filter(e=>"bottom"===(e.position??"bottom"));return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"toast-layer-top",pointerEvents:"box-none",style:[i.layer,i.top,{top:(r??a.top)+n.space.sm,paddingHorizontal:n.space.md}],children:u.map((e,r)=>(0,_jsxRuntime.jsx)(_Toast.default,{toast:e,index:u.length-1-r,shownAt:e.shownAt,runtime:s,onDismiss:t},e.id))}),(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"toast-layer-bottom",pointerEvents:"box-none",style:[i.layer,i.bottom,{bottom:(o??a.bottom)+n.space.sm,paddingHorizontal:n.space.md}],children:c.map((e,r)=>(0,_jsxRuntime.jsx)(_Toast.default,{toast:e,index:c.length-1-r,shownAt:e.shownAt,runtime:s,onDismiss:t},e.id))})]})},useToast=()=>{const e=(0,_react.useContext)(ToastContext);if(!e)throw new Error("useToast must be used within a <ToastProvider>.");return e};exports.useToast=useToast;let warned=!1;const warnNoProvider=()=>{warned||(warned=!0,"undefined"!=typeof __DEV__&&__DEV__&&_mobileCore.Logger.warn("[toast] No <ToastProvider /> mounted; toast() calls are no-ops. Mount a provider near your app root."))},proxy=e=>{const t=getActiveApi();return t?e(t):(warnNoProvider(),"")},toast=exports.toast={show:e=>proxy(t=>t.show(e)),undo:(e,t)=>proxy(r=>r.undo(e,t)),success:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"success"})),error:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"danger"})),warning:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"warning"})),info:(e,t)=>proxy(r=>r.show({...t,message:e,variant:"info"})),hideAll:()=>{const e=getActiveApi();e?e.hideAll():warnNoProvider()}},buildStyles=()=>_reactNative.StyleSheet.create({layer:{position:"absolute",left:0,right:0},top:{alignItems:"stretch"},bottom:{alignItems:"stretch"}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RichTooltipBody=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const RichTooltipBody=({title:e,content:i,action:t,onAction:s,focusRef:r,actionRef:n,messageStyle:o})=>{const a=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(a),[a]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:c.card,children:[e?(0,_jsxRuntime.jsx)(_index3.Text,{ref:r,variant:"label",weight:"semibold",accessibilityRole:"header",children:e}):null,"string"==typeof i?(0,_jsxRuntime.jsx)(_index3.Text,{ref:e?void 0:r,variant:"bodySmall",color:"secondary",style:o,children:i}):i,t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.actions,children:(0,_jsxRuntime.jsx)(_index2.Button,{ref:n,title:t.label,variant:"ghost",size:"sm",accessibilityLabel:t.accessibilityLabel,onPress:s})}):null]})};exports.RichTooltipBody=RichTooltipBody;const buildStyles=e=>_reactNative.StyleSheet.create({card:{gap:e.spacing.xs,paddingHorizontal:e.spacing.md,paddingTop:e.spacing.md,paddingBottom:e.spacing.sm,backgroundColor:e.colors.background.elevated,borderRadius:e.radius.md,..._corners.smoothCorners,...e.shadows.lg},actions:{flexDirection:"row",justifyContent:"flex-end",marginTop:e.spacing.xs}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RichTooltipBody=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const RichTooltipBody=({title:e,content:i,action:t,onAction:s,focusRef:r,actionRef:o,messageStyle:n})=>{const a=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(a),[a]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:c.card,children:[e?(0,_jsxRuntime.jsx)(_index3.Text,{ref:r,variant:"label",weight:"semibold",accessibilityRole:"header",children:e}):null,"string"==typeof i?(0,_jsxRuntime.jsx)(_index3.Text,{ref:e?void 0:r,variant:"bodySmall",color:"secondary",style:n,children:i}):i,t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.actions,children:(0,_jsxRuntime.jsx)(_index2.Button,{ref:o,title:t.label,variant:"ghost",size:"sm",accessibilityLabel:t.accessibilityLabel,onPress:s})}):null]})};exports.RichTooltipBody=RichTooltipBody;const buildStyles=e=>_reactNative.StyleSheet.create({card:{gap:e.space.xs,paddingHorizontal:e.space.md,paddingTop:e.space.md,paddingBottom:e.space.sm,backgroundColor:e.colors.surface,borderRadius:e.radius.md,..._corners.smoothCorners,...e.shadow.popover},actions:{flexDirection:"row",justifyContent:"flex-end",marginTop:e.space.xs}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tooltip=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_placement=require("../../utils/placement.js"),_focusHost=require("../Menu/focusHost.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_RichTooltipBody=require("./RichTooltipBody.js"),_tooltipPosition=require("./tooltipPosition.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,a,o=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,i)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((r=o&&Object.getOwnPropertyDescriptor(e,a))&&(r.get||r.set)?o(i,a,r):i[a]=e[a]);return i}const DEFAULT_PRESS_AUTO_HIDE_MS=4e3,DEFAULT_ARROW_HALF_WIDTH=4,DEFAULT_ARROW_HEIGHT=6,DEFAULT_ARROW_CORNER_PADDING=12,DEFAULT_MAX_WIDTH=240,RICH_MAX_WIDTH=280,DEFAULT_LINE_HEIGHT=18,Tooltip=e=>{const{content:t,children:r,variant:a="plain",title:o,action:i,placement:s="auto",visible:n,onVisibleChange:c,hideOnContentPress:l=!0,maxWidth:u,showArrow:d=!0,accessibilityLabel:_,style:f,containerStyle:p,arrowStyle:m,messageStyle:h,closeLabel:g="Close tooltip",testID:v}=e,b="rich"===a,R=e.trigger??(b?"press":"longPress"),x=(0,_index.useTheme)(),y=(0,_usePresenceMotion.usePresenceMotion)(),j=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[T,S]=(0,_ModalSafeArea.useModalInsets)(),w=(0,_react.useMemo)(()=>({...j,top:T.top,bottom:T.bottom}),[j,T]),A=(0,_reactNative.useWindowDimensions)(),N=(0,_react.useMemo)(()=>buildStyles(x),[x]),P=x.components.tooltip,M=(0,_index.spaceOf)(x,P?.gap??"sm","components.tooltip.gap"),C=(0,_index.spaceOf)(x,P?.screenPadding??"sm","components.tooltip.screenPadding"),H=P?.pressAutoHideMs??4e3,E=P?.arrowHalfWidth??4,D=P?.arrowHeight??6,O=P?.arrowCornerPadding??12,L=P?.lineHeight??18,W=u??(b?280:P?.maxWidth??240),q="press"===R&&!b,I=(P?.enableScaleAnimation??!1)&&!y.reduced,k=P?.exitDurationMs??150,V="manual"===R||"boolean"==typeof n,[F,B]=(0,_react.useState)(!1),U=V?Boolean(n):F,[z,G]=(0,_react.useState)(null),[X,Y]=(0,_react.useState)({width:0,height:0}),J=(0,_react.useRef)(null),K=(0,_react.useRef)(null),Q=(0,_react.useRef)(null),Z=(0,_react.useRef)(null),$=(0,_react.useRef)(null),ee=(0,_react.useRef)(!1),te=(0,_react.useRef)(!1),re=(0,_react.useRef)((0,_index.createAnimatedValue)(U||!I?1:.85)).current,ae=(0,_react.useRef)((0,_index.createAnimatedValue)(U?1:0)).current,oe=(0,_react.useRef)(null),ie=(0,_react.useRef)(!1),[se,ne]=(0,_react.useState)(U),ce=(0,_react.useCallback)(e=>{V||B(e),c?.(e)},[V,c]),le=(0,_react.useCallback)(()=>{J.current&&J.current.measureInWindow((e,t,r,a)=>{G({x:e,y:t,width:r,height:a})})},[]),ue=(0,_react.useCallback)(e=>{le(),ce(!0)},[le,ce]),de=(0,_react.useCallback)(()=>{ce(!1)},[ce]),fe=(0,_react.useRef)(de);fe.current=de;const pe=(0,_react.useCallback)(()=>{if(!ee.current)return;ee.current=!1;const e=$.current;$.current=null,e?e():b&&(0,_focusHost.focusHost)(K.current??J.current)},[b]);(0,_react.useEffect)(()=>{if(U)return te.current=!0,ee.current=!1,(0,_placement.claimAnchoredSurface)(()=>fe.current());te.current&&(te.current=!1,ee.current=!0)},[U]),(0,_react.useEffect)(()=>{U&&ne(!0)},[U]);const me=(0,_react.useRef)(se);(0,_react.useEffect)(()=>{me.current&&!se&&"ios"!==_reactNative.Platform.OS&&pe(),me.current=se},[se,pe]);const he=(0,_react.useCallback)(()=>{$.current=i?.onPress??null,de()},[i,de]);(0,_react.useEffect)(()=>{if(!ie.current)return ie.current=!0,U&&(le(),q&&(oe.current&&clearTimeout(oe.current),oe.current=setTimeout(()=>{de()},H))),()=>{oe.current&&(clearTimeout(oe.current),oe.current=null)};let e;if(U){le();const t=[_reactNative.Animated.timing(ae,{toValue:1,duration:y.duration("fast"),useNativeDriver:!0})];I?t.push(_reactNative.Animated.spring(re,{toValue:1,damping:x.motion.spring.snappy.damping,stiffness:x.motion.spring.snappy.stiffness,mass:x.motion.spring.snappy.mass,useNativeDriver:!0})):(0,_index.setNativeValue)(re,1),e=_reactNative.Animated.parallel(t),e.start(),q&&(oe.current&&clearTimeout(oe.current),oe.current=setTimeout(()=>{de()},H))}else{const t=[_reactNative.Animated.timing(ae,{toValue:0,duration:y.reduced?y.duration("fast"):k,easing:_reactNative.Easing.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})];I&&t.push(_reactNative.Animated.timing(re,{toValue:.85,duration:k,easing:_reactNative.Easing.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})),e=_reactNative.Animated.parallel(t),e.start(({finished:e})=>{e&&ne(!1)}),oe.current&&(clearTimeout(oe.current),oe.current=null)}return()=>{e?.stop(),oe.current&&(clearTimeout(oe.current),oe.current=null)}},[U]);const handleContentLayout=e=>{const{width:t,height:r}=e.nativeEvent.layout;t===X.width&&r===X.height||Y({width:t,height:r})},ge=(0,_react.useMemo)(()=>(0,_tooltipPosition.resolveTooltipPosition)({anchor:z,size:X,placement:s,rich:b,viewport:{width:A.width,height:A.height,insets:w},maxWidth:W,gap:M,padding:C,arrowCornerPadding:O}),[z,X,s,b,A.width,A.height,w,W,M,C,O]),ve=null!==z&&X.width>0,be=U&&ve;(0,_react.useEffect)(()=>{if(!b||!be)return;const e="web"===_reactNative.Platform.OS?Z:Q,t=setTimeout(()=>(0,_focusHost.focusHost)(e.current),_focusHost.FOCUS_DELAY_MS);return()=>clearTimeout(t)},[b,be]),(0,_react.useEffect)(()=>{!b&&be&&"ios"===_reactNative.Platform.OS&&"string"==typeof t&&(0,_announce.announce)(t)},[b,be,t]);const Re=r.props,xe=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(Re.ref,K),[Re.ref]),ye={};"longPress"!==R||Re.contextMenu?"press"===R&&(ye.onPress=e=>{Re.onPress?.(e),ue(e)}):(ye.onLongPress=ue,ye.accessibilityHint="Long press for more info"),b&&(ye.ref=xe);const je=_react.default.cloneElement(r,ye),Te=_??("string"==typeof t?t:"Tooltip"),Se=(0,_react.useMemo)(()=>{if(!d)return null;const e=b?x.colors.background.elevated:x.colors.background.inverse,t={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:E,borderRightWidth:E,borderBottomWidth:D,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:e};return"top"===ge.placement?{...t,bottom:-D,left:ge.arrowOffset-E,transform:[{rotate:"180deg"}]}:"bottom"===ge.placement?{...t,top:-D,left:ge.arrowOffset-E}:"left"===ge.placement?{...t,right:-D,top:ge.arrowOffset-E,transform:[{rotate:"90deg"}]}:{...t,left:-D,top:ge.arrowOffset-E,transform:[{rotate:"-90deg"}]}},[d,ge,x,b,E,D]),we={position:"absolute",top:ge.top,left:ge.left,maxWidth:W,opacity:U&&!ve?0:ae,transform:[{scale:re}]},Ae=Se?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Se,m],pointerEvents:"none"}):null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{ref:J,collapsable:!1,onLayout:le,testID:v,children:je}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:se,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:de,onDismiss:pe,children:(0,_jsxRuntime.jsxs)(_ModalSafeArea.ModalSafeArea,{onInsets:S,children:[b?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?de:void 0,accessibilityLabel:g,accessibilityRole:"button"}),se?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{onLayout:handleContentLayout,style:[we,f,p],children:[(0,_jsxRuntime.jsx)(_RichTooltipBody.RichTooltipBody,{title:o,content:t,action:i,onAction:he,focusRef:Q,actionRef:Z,messageStyle:h}),Ae]}):null]}):(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?de:void 0,accessibilityLabel:g,accessibilityRole:"button",children:se?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityRole:"web"===_reactNative.Platform.OS?"tooltip":void 0,accessibilityLiveRegion:"polite",accessibilityLabel:Te,onLayout:handleContentLayout,style:[we,f,p],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[N.tooltip,{backgroundColor:x.colors.background.inverse,borderRadius:x.radius.md,..._corners.smoothCorners,paddingHorizontal:x.spacing.md,paddingVertical:x.spacing.sm,...x.shadows.lg,shadowColor:x.shadows.lg.shadowColor}],children:"string"==typeof t?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x.colors.text.inverse,fontSize:x.typography.fontSize.sm,lineHeight:L},h],children:t}):t}),Ae]}):null}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})]})};exports.Tooltip=Tooltip;const buildStyles=e=>_reactNative.StyleSheet.create({tooltip:{overflow:"hidden"}});var _default=exports.default=Tooltip;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tooltip=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_placement=require("../../utils/placement.js"),_focusHost=require("../Menu/focusHost.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_RichTooltipBody=require("./RichTooltipBody.js"),_tooltipPosition=require("./tooltipPosition.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,a,o=Object.defineProperty,s={__proto__:null,default:e};if(Object(e)!==e)return s;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,s)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((r=o&&Object.getOwnPropertyDescriptor(e,a))&&(r.get||r.set)?o(s,a,r):s[a]=e[a]);return s}const PRESS_AUTO_HIDE_MS=4e3,ARROW_HALF_WIDTH=4,ARROW_HEIGHT=6,ARROW_CORNER_PADDING=12,DEFAULT_MAX_WIDTH=240,RICH_MAX_WIDTH=280,MESSAGE_LINE_HEIGHT=18,EXIT_DURATION_MS=150,Tooltip=e=>{const{content:t,children:r,variant:a="plain",title:o,action:s,placement:i="auto",visible:n,onVisibleChange:c,hideOnContentPress:l=!0,maxWidth:u,showArrow:_=!0,accessibilityLabel:d,style:f,containerStyle:p,arrowStyle:m,messageStyle:h,closeLabel:v="Close tooltip",testID:R}=e,b="rich"===a,g=e.trigger??(b?"press":"longPress"),x=(0,_index.useTheme)(),y=(0,_usePresenceMotion.usePresenceMotion)(),j=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[S,T]=(0,_ModalSafeArea.useModalInsets)(),N=(0,_react.useMemo)(()=>({...j,top:S.top,bottom:S.bottom}),[j,S]),w=(0,_reactNative.useWindowDimensions)(),A=(0,_react.useMemo)(()=>buildStyles(x),[x]),P=x.space.sm,M=x.space.sm,C=u??(b?280:240),E="press"===g&&!b,O=(x.settings.components.tooltip?.enableScaleAnimation??!1)&&!y.reduced,H="manual"===g||"boolean"==typeof n,[W,q]=(0,_react.useState)(!1),D=H?Boolean(n):W,[I,L]=(0,_react.useState)(null),[V,k]=(0,_react.useState)({width:0,height:0}),B=(0,_react.useRef)(null),F=(0,_react.useRef)(null),z=(0,_react.useRef)(null),G=(0,_react.useRef)(null),U=(0,_react.useRef)(null),X=(0,_react.useRef)(!1),Y=(0,_react.useRef)(!1),J=(0,_react.useRef)((0,_index.createAnimatedValue)(D||!O?1:.85)).current,K=(0,_react.useRef)((0,_index.createAnimatedValue)(D?1:0)).current,Q=(0,_react.useRef)(null),Z=(0,_react.useRef)(!1),[$,ee]=(0,_react.useState)(D),te=(0,_react.useCallback)(e=>{H||q(e),c?.(e)},[H,c]),re=(0,_react.useCallback)(()=>{B.current&&B.current.measureInWindow((e,t,r,a)=>{L({x:e,y:t,width:r,height:a})})},[]),ae=(0,_react.useCallback)(e=>{re(),te(!0)},[re,te]),oe=(0,_react.useCallback)(()=>{te(!1)},[te]),se=(0,_react.useRef)(oe);se.current=oe;const ie=(0,_react.useCallback)(()=>{if(!X.current)return;X.current=!1;const e=U.current;U.current=null,e?e():b&&(0,_focusHost.focusHost)(F.current??B.current)},[b]);(0,_react.useEffect)(()=>{if(D)return Y.current=!0,X.current=!1,(0,_placement.claimAnchoredSurface)(()=>se.current());Y.current&&(Y.current=!1,X.current=!0)},[D]),(0,_react.useEffect)(()=>{D&&ee(!0)},[D]);const ne=(0,_react.useRef)($);(0,_react.useEffect)(()=>{ne.current&&!$&&"ios"!==_reactNative.Platform.OS&&ie(),ne.current=$},[$,ie]);const ce=(0,_react.useCallback)(()=>{U.current=s?.onPress??null,oe()},[s,oe]);(0,_react.useEffect)(()=>{if(!Z.current)return Z.current=!0,D&&(re(),E&&(Q.current&&clearTimeout(Q.current),Q.current=setTimeout(()=>{oe()},4e3))),()=>{Q.current&&(clearTimeout(Q.current),Q.current=null)};let e;if(D){re();const t=[_reactNative.Animated.timing(K,{toValue:1,duration:y.duration("fast"),useNativeDriver:!0})];O?t.push(_reactNative.Animated.spring(J,{toValue:1,damping:x.motion.spring.snappy.damping,stiffness:x.motion.spring.snappy.stiffness,mass:x.motion.spring.snappy.mass,useNativeDriver:!0})):(0,_index.setNativeValue)(J,1),e=_reactNative.Animated.parallel(t),e.start(),E&&(Q.current&&clearTimeout(Q.current),Q.current=setTimeout(()=>{oe()},4e3))}else{const t=[_reactNative.Animated.timing(K,{toValue:0,duration:y.reduced?y.duration("fast"):150,easing:_reactNative.Easing.bezier(...x.motion.ease.accelerate),useNativeDriver:!0})];O&&t.push(_reactNative.Animated.timing(J,{toValue:.85,duration:150,easing:_reactNative.Easing.bezier(...x.motion.ease.accelerate),useNativeDriver:!0})),e=_reactNative.Animated.parallel(t),e.start(({finished:e})=>{e&&ee(!1)}),Q.current&&(clearTimeout(Q.current),Q.current=null)}return()=>{e?.stop(),Q.current&&(clearTimeout(Q.current),Q.current=null)}},[D]);const handleContentLayout=e=>{const{width:t,height:r}=e.nativeEvent.layout;t===V.width&&r===V.height||k({width:t,height:r})},le=(0,_react.useMemo)(()=>(0,_tooltipPosition.resolveTooltipPosition)({anchor:I,size:V,placement:i,rich:b,viewport:{width:w.width,height:w.height,insets:N},maxWidth:C,gap:P,padding:M,arrowCornerPadding:12}),[I,V,i,b,w.width,w.height,N,C,P,M]),ue=null!==I&&V.width>0,de=D&&ue;(0,_react.useEffect)(()=>{if(!b||!de)return;const e="web"===_reactNative.Platform.OS?G:z,t=setTimeout(()=>(0,_focusHost.focusHost)(e.current),_focusHost.FOCUS_DELAY_MS);return()=>clearTimeout(t)},[b,de]),(0,_react.useEffect)(()=>{!b&&de&&"ios"===_reactNative.Platform.OS&&"string"==typeof t&&(0,_announce.announce)(t)},[b,de,t]);const fe=r.props,pe=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(fe.ref,F),[fe.ref]),me={};"longPress"!==g||fe.contextMenu?"press"===g&&(me.onPress=e=>{fe.onPress?.(e),ae(e)}):(me.onLongPress=ae,me.accessibilityHint="Long press for more info"),b&&(me.ref=pe);const he=_react.default.cloneElement(r,me),ve=d??("string"==typeof t?t:"Tooltip"),Re=(0,_react.useMemo)(()=>{if(!_)return null;const e={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:4,borderRightWidth:4,borderBottomWidth:6,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:b?x.colors.surface:x.colors["surface-inverse"]};return"top"===le.placement?{...e,bottom:-6,left:le.arrowOffset-4,transform:[{rotate:"180deg"}]}:"bottom"===le.placement?{...e,top:-6,left:le.arrowOffset-4}:"left"===le.placement?{...e,right:-6,top:le.arrowOffset-4,transform:[{rotate:"90deg"}]}:{...e,left:-6,top:le.arrowOffset-4,transform:[{rotate:"-90deg"}]}},[_,le,x,b]),be={position:"absolute",top:le.top,left:le.left,maxWidth:C,opacity:D&&!ue?0:K,transform:[{scale:J}]},ge=Re?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Re,m],pointerEvents:"none"}):null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{ref:B,collapsable:!1,onLayout:re,testID:R,children:he}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:$,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:oe,onDismiss:ie,children:(0,_jsxRuntime.jsxs)(_ModalSafeArea.ModalSafeArea,{onInsets:T,children:[b?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?oe:void 0,accessibilityLabel:v,accessibilityRole:"button"}),$?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{onLayout:handleContentLayout,style:[be,f,p],children:[(0,_jsxRuntime.jsx)(_RichTooltipBody.RichTooltipBody,{title:o,content:t,action:s,onAction:ce,focusRef:z,actionRef:G,messageStyle:h}),ge]}):null]}):(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?oe:void 0,accessibilityLabel:v,accessibilityRole:"button",children:$?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityRole:"web"===_reactNative.Platform.OS?"tooltip":void 0,accessibilityLiveRegion:"polite",accessibilityLabel:ve,onLayout:handleContentLayout,style:[be,f,p],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.tooltip,{backgroundColor:x.colors["surface-inverse"],borderRadius:x.radius.md,..._corners.smoothCorners,paddingHorizontal:x.space.md,paddingVertical:x.space.sm,...x.shadow.popover,shadowColor:x.shadow.popover.shadowColor}],children:"string"==typeof t?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x.colors["text-inverse"],fontSize:x.text.sm.size,lineHeight:18},h],children:t}):t}),ge]}):null}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})]})};exports.Tooltip=Tooltip;const buildStyles=e=>_reactNative.StyleSheet.create({tooltip:{overflow:"hidden"}});var _default=exports.default=Tooltip;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tour=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Modal/index.js"),_jsxRuntime=require("react/jsx-runtime");const MAX_CARD_WIDTH=360,HIGHLIGHT_BORDER_WIDTH=2,measureInWindow=e=>new Promise(t=>{const i=e.current;i?i.measureInWindow((e,i,r,n)=>t({x:e,y:i,width:r,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:r,seenStore:n,labels:s,haptic:o,testID:a})=>{const c=(0,_index.useTheme)(),l=(0,_usePresenceMotion.usePresenceMotion)().duration("fast"),u=(0,_react.useMemo)(()=>buildStyles(c),[c]),d=(0,_reactNative.useWindowDimensions)(),h=(0,_react.useRef)(d);h.current=d;const x=(0,_index.spaceOf)(c,c.components.tooltip?.gap??"sm","components.tooltip.gap"),p=(0,_index.spaceOf)(c,c.components.tooltip?.screenPadding??"sm","components.tooltip.screenPadding"),[_,m]=(0,_react.useState)(null),[g,y]=(0,_react.useState)(0),f=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,b=(0,_react.useRef)(t);b.current=t;const v=(0,_react.useRef)(r);v.current=r;const w=(0,_react.useRef)(n);w.current=n;const j=(0,_react.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,h.current))return{index:i,rect:e}}return null},[]);(0,_react.useEffect)(()=>{if(!i)return void m(null);let t=!1;return(async()=>{const i=w.current;if(i&&await i.isSeen(e))return void(t||v.current("alreadySeen"));const r=await j(0,1);t||(r?(y(r.index),m(r)):v.current("noTargets"))})(),()=>{t=!0}},[i,e,j]),(0,_react.useEffect)(()=>{if(!_)return;const e=b.current[_.index],t=`Step ${_.index+1} of ${b.current.length}`;_reactNative.AccessibilityInfo.announceForAccessibility([t,e.title,e.description].filter(Boolean).join(". ")),f.setValue(0);const i=_reactNative.Animated.timing(f,{toValue:1,duration:l,useNativeDriver:!0});return i.start(),()=>i.stop()},[_,f,l]);const R=(0,_react.useCallback)(async t=>{m(null),await(w.current?.markSeen(e)),v.current(t)},[e]),S=(0,_react.useCallback)(async()=>{if(!_)return;const e=await j(_.index+1,1);e?m(e):await R("finished")},[_,j,R]),k=(0,_react.useCallback)(async()=>{if(!_)return;const e=await j(_.index-1,-1);e&&m(e)},[_,j]),N=(0,_react.useCallback)(()=>{R("skipped")},[R]),M=_?t[_.index]:void 0,C=!!_&&_.index===t.length-1,I=c.spacing.xs,T=_?{x:_.rect.x-I,y:_.rect.y-I,width:_.rect.width+2*I,height:_.rect.height+2*I}:null,D=Math.min(d.width-2*p,360),P=T?(()=>{const e=T.x+T.width/2,t=Math.max(p,Math.min(e-D/2,d.width-D-p)),i=T.y,r=d.height-(T.y+T.height);return r>=i?{left:t,top:T.y+T.height+x,maxHeight:Math.max(r-x-p,0)}:{left:t,bottom:d.height-T.y+x,maxHeight:Math.max(i-x-p,0)}})():null,W=c.colors.background.overlay,q=T?Math.min(M?.radius?c.radius[M.radius]+I:c.radius.md,Math.min(T.width,T.height)/2):0,z=Math.max(d.width,d.height);return(0,_jsxRuntime.jsx)(_index3.Modal,{visible:null!==_,onRequestClose:N,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:u.transparent,contentStyle:u.transparent,accessibilityLabel:M?.title??M?.description,haptic:o,testID:a,children:T&&P&&M?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dim,{borderColor:W,borderWidth:z,top:T.y-z,left:T.x-z,width:T.width+2*z,height:T.height+2*z,borderRadius:q+z}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.highlight,{top:T.y,left:T.x,width:T.width,height:T.height,borderRadius:q}]}),(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityLiveRegion:"polite",style:[u.card,P,{width:D,opacity:f}],testID:a?`${a}-card`:void 0,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.position,children:`Step ${(_?.index??0)+1} of ${t.length}`}),M.title?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.title,accessibilityRole:"header",children:M.title}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.description,children:M.description}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.actions,children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:s?.skip??"Skip",variant:"ghost",size:"sm",haptic:o,onPress:N,testID:a?`${a}-skip`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.navigation,children:[_&&_.index>g?(0,_jsxRuntime.jsx)(_index2.Button,{title:s?.back??"Back",variant:"outline",size:"sm",haptic:o,onPress:()=>{k()},testID:a?`${a}-back`:void 0}):null,(0,_jsxRuntime.jsx)(_index2.Button,{title:C?s?.done??"Done":s?.next??"Next",size:"sm",haptic:o,onPress:()=>{S()},testID:a?`${a}-next`:void 0})]})]})]})]}):null})};exports.Tour=Tour,Tour.displayName="Tour";const buildStyles=e=>_reactNative.StyleSheet.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:e.colors.primary,borderRadius:e.radius.md,..._corners.smoothCorners},card:{position:"absolute",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,..._corners.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}});var _default=exports.default=Tour;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tour=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Modal/index.js"),_jsxRuntime=require("react/jsx-runtime");const MAX_CARD_WIDTH=360,HIGHLIGHT_BORDER_WIDTH=2,measureInWindow=e=>new Promise(t=>{const i=e.current;i?i.measureInWindow((e,i,r,s)=>t({x:e,y:i,width:r,height:s})):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:r,seenStore:s,labels:n,haptic:a,testID:o})=>{const c=(0,_index.useTheme)(),l=(0,_usePresenceMotion.usePresenceMotion)().duration("fast"),u=(0,_react.useMemo)(()=>buildStyles(c),[c]),d=(0,_reactNative.useWindowDimensions)(),h=(0,_react.useRef)(d);h.current=d;const x=c.space.sm,_=c.space.sm,[m,p]=(0,_react.useState)(null),[g,y]=(0,_react.useState)(0),b=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,f=(0,_react.useRef)(t);f.current=t;const w=(0,_react.useRef)(r);w.current=r;const v=(0,_react.useRef)(s);v.current=s;const j=(0,_react.useCallback)(async(e,t)=>{for(let i=e;i>=0&&i<f.current.length;i+=t){const e=await measureInWindow(f.current[i].target);if(e&&isOnScreen(e,h.current))return{index:i,rect:e}}return null},[]);(0,_react.useEffect)(()=>{if(!i)return void p(null);let t=!1;return(async()=>{const i=v.current;if(i&&await i.isSeen(e))return void(t||w.current("alreadySeen"));const r=await j(0,1);t||(r?(y(r.index),p(r)):w.current("noTargets"))})(),()=>{t=!0}},[i,e,j]),(0,_react.useEffect)(()=>{if(!m)return;const e=f.current[m.index],t=`Step ${m.index+1} of ${f.current.length}`;_reactNative.AccessibilityInfo.announceForAccessibility([t,e.title,e.description].filter(Boolean).join(". ")),b.setValue(0);const i=_reactNative.Animated.timing(b,{toValue:1,duration:l,useNativeDriver:!0});return i.start(),()=>i.stop()},[m,b,l]);const R=(0,_react.useCallback)(async t=>{p(null),await(v.current?.markSeen(e)),w.current(t)},[e]),S=(0,_react.useCallback)(async()=>{if(!m)return;const e=await j(m.index+1,1);e?p(e):await R("finished")},[m,j,R]),k=(0,_react.useCallback)(async()=>{if(!m)return;const e=await j(m.index-1,-1);e&&p(e)},[m,j]),N=(0,_react.useCallback)(()=>{R("skipped")},[R]),M=m?t[m.index]:void 0,C=!!m&&m.index===t.length-1,I=c.space.xs,T=m?{x:m.rect.x-I,y:m.rect.y-I,width:m.rect.width+2*I,height:m.rect.height+2*I}:null,D=Math.min(d.width-2*_,360),P=T?(()=>{const e=T.x+T.width/2,t=Math.max(_,Math.min(e-D/2,d.width-D-_)),i=T.y,r=d.height-(T.y+T.height);return r>=i?{left:t,top:T.y+T.height+x,maxHeight:Math.max(r-x-_,0)}:{left:t,bottom:d.height-T.y+x,maxHeight:Math.max(i-x-_,0)}})():null,q=c.colors.scrim,z=T?Math.min(M?.radius?c.radius[M.radius]+I:c.radius.md,Math.min(T.width,T.height)/2):0,V=Math.max(d.width,d.height);return(0,_jsxRuntime.jsx)(_index3.Modal,{visible:null!==m,onRequestClose:N,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:u.transparent,contentStyle:u.transparent,accessibilityLabel:M?.title??M?.description,haptic:a,testID:o,children:T&&P&&M?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dim,{borderColor:q,borderWidth:V,top:T.y-V,left:T.x-V,width:T.width+2*V,height:T.height+2*V,borderRadius:z+V}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.highlight,{top:T.y,left:T.x,width:T.width,height:T.height,borderRadius:z}]}),(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityLiveRegion:"polite",style:[u.card,P,{width:D,opacity:b}],testID:o?`${o}-card`:void 0,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.position,children:`Step ${(m?.index??0)+1} of ${t.length}`}),M.title?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.title,accessibilityRole:"header",children:M.title}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.description,children:M.description}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.actions,children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:n?.skip??"Skip",variant:"ghost",size:"sm",haptic:a,onPress:N,testID:o?`${o}-skip`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.navigation,children:[m&&m.index>g?(0,_jsxRuntime.jsx)(_index2.Button,{title:n?.back??"Back",variant:"outline",size:"sm",haptic:a,onPress:()=>{k()},testID:o?`${o}-back`:void 0}):null,(0,_jsxRuntime.jsx)(_index2.Button,{title:C?n?.done??"Done":n?.next??"Next",size:"sm",haptic:a,onPress:()=>{S()},testID:o?`${o}-next`:void 0})]})]})]})]}):null})};exports.Tour=Tour,Tour.displayName="Tour";const buildStyles=e=>_reactNative.StyleSheet.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:e.colors.primary,borderRadius:e.radius.md,..._corners.smoothCorners},card:{position:"absolute",backgroundColor:e.colors.surface,borderRadius:e.radius.lg,..._corners.smoothCorners,padding:e.space.lg,gap:e.space.sm,...e.shadow.popover},position:{color:e.colors["text-subtle"],fontSize:e.text.xs.size},title:{color:e.colors["text-body"],fontSize:e.text.lg.size,fontWeight:e.weight.semibold},description:{color:e.colors["text-muted"],fontSize:e.text.sm.size},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:e.space.xs},navigation:{flexDirection:"row",gap:e.space.sm}});var _default=exports.default=Tour;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TypingIndicator=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,a,r=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((i=r&&Object.getOwnPropertyDescriptor(e,a))&&(i.get||i.set)?r(n,a,i):n[a]=e[a]);return n}const DOT=6,DIM=.3,PULSE_MS=400,STAGGER_MS=160,STILL_OPACITY=[1,.65,.3],Dot=({index:e,still:t,colour:i,dotStyle:a})=>{const r=(0,_reactNativeReanimated.useSharedValue)(.3);(0,_react.useEffect)(()=>{if(!t)return r.value=(0,_reactNativeReanimated.withDelay)(160*e,(0,_reactNativeReanimated.withRepeat)((0,_reactNativeReanimated.withSequence)((0,_reactNativeReanimated.withTiming)(1,{duration:400}),(0,_reactNativeReanimated.withTiming)(.3,{duration:400})),-1)),()=>(0,_reactNativeReanimated.cancelAnimation)(r)},[t,e,r]);const n=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:r.value}));return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[a,{backgroundColor:i},t?{opacity:STILL_OPACITY[e]}:n]})},TypingIndicator=({label:e,accessibilityLabel:t,bubble:i=!0,style:a,testID:r})=>{const n=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(n),[n]),s=(0,_useReducedMotion.useReducedMotion)(),o=n.colors.text.tertiary;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.root,i?c.bubble:null,a],accessible:!0,accessibilityRole:"progressbar",accessibilityLabel:e??t??"Typing",accessibilityState:{busy:!0},"aria-busy":!0,testID:r,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.dots,children:[0,1,2].map(e=>(0,_jsxRuntime.jsx)(Dot,{index:e,still:s,colour:o,dotStyle:c.dot},e))}),e?(0,_jsxRuntime.jsx)(_index2.Text,{variant:"bodySmall",color:"secondary",children:e}):null]})};exports.TypingIndicator=TypingIndicator;const buildStyles=e=>_reactNative.StyleSheet.create({dot:{width:6,height:6,borderRadius:e.radius.pill,..._corners.smoothCorners},root:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:e.spacing.sm,marginTop:e.spacing.sm},bubble:{backgroundColor:e.colors.background.secondary,borderRadius:e.radius.xl,..._corners.smoothCorners,paddingHorizontal:e.spacing.md,paddingVertical:e.spacing.sm+e.spacing.xs},dots:{flexDirection:"row",alignItems:"center",gap:e.spacing.xs}});var _default=exports.default=TypingIndicator;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TypingIndicator=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,a,r=Object.defineProperty,s={__proto__:null,default:e};if(Object(e)!==e)return s;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,s)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((i=r&&Object.getOwnPropertyDescriptor(e,a))&&(i.get||i.set)?r(s,a,i):s[a]=e[a]);return s}const DOT=6,DIM=.3,PULSE_MS=400,STAGGER_MS=160,STILL_OPACITY=[1,.65,.3],Dot=({index:e,still:t,colour:i,dotStyle:a})=>{const r=(0,_reactNativeReanimated.useSharedValue)(.3);(0,_react.useEffect)(()=>{if(!t)return r.value=(0,_reactNativeReanimated.withDelay)(160*e,(0,_reactNativeReanimated.withRepeat)((0,_reactNativeReanimated.withSequence)((0,_reactNativeReanimated.withTiming)(1,{duration:400}),(0,_reactNativeReanimated.withTiming)(.3,{duration:400})),-1)),()=>(0,_reactNativeReanimated.cancelAnimation)(r)},[t,e,r]);const s=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:r.value}));return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[a,{backgroundColor:i},t?{opacity:STILL_OPACITY[e]}:s]})},TypingIndicator=({label:e,accessibilityLabel:t,bubble:i=!0,style:a,testID:r})=>{const s=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(s),[s]),n=(0,_useReducedMotion.useReducedMotion)(),o=s.colors["text-subtle"];return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.root,i?c.bubble:null,a],accessible:!0,accessibilityRole:"progressbar",accessibilityLabel:e??t??"Typing",accessibilityState:{busy:!0},"aria-busy":!0,testID:r,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.dots,children:[0,1,2].map(e=>(0,_jsxRuntime.jsx)(Dot,{index:e,still:n,colour:o,dotStyle:c.dot},e))}),e?(0,_jsxRuntime.jsx)(_index2.Text,{variant:"bodySmall",color:"secondary",children:e}):null]})};exports.TypingIndicator=TypingIndicator;const buildStyles=e=>_reactNative.StyleSheet.create({dot:{width:6,height:6,borderRadius:e.radius.pill,..._corners.smoothCorners},root:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:e.space.sm,marginTop:e.space.sm},bubble:{backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.xl,..._corners.smoothCorners,paddingHorizontal:e.space.md,paddingVertical:e.space.sm+e.space.xs},dots:{flexDirection:"row",alignItems:"center",gap:e.space.xs}});var _default=exports.default=TypingIndicator;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Wheel=exports.WHEEL_VISIBLE_ITEMS=exports.WHEEL_CENTER_OFFSET=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_jsxRuntime=require("react/jsx-runtime");const WHEEL_VISIBLE_ITEMS=exports.WHEEL_VISIBLE_ITEMS=5,WHEEL_CENTER_OFFSET=exports.WHEEL_CENTER_OFFSET=Math.floor(WHEEL_VISIBLE_ITEMS/2),HAPTIC_DEBOUNCE_MS=35,WEB_SETTLE_MS=120,SCALE_STOPS=[-2,-1,0,1,2],WheelRow=(0,_react.memo)(({label:e,index:t,scrollY:a,itemHeight:r,selected:n,theme:i,reducedMotion:c,onPress:s,editor:l})=>{const{opacity:o,scale:u}=(0,_react.useMemo)(()=>{const e=_reactNative.Animated.subtract(_reactNative.Animated.divide(a,r),t);return{opacity:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),scale:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"})}},[a,r,t]),d=(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,maxFontSizeMultiplier:1.5,style:{fontSize:i.typography.fontSize.xl,color:n?i.colors.text.primary:i.colors.text.secondary,fontWeight:n?i.typography.fontWeight.semibold:i.typography.fontWeight.medium,letterSpacing:i.typography.letterSpacing.normal},children:e});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.row,{height:r},c?{opacity:o}:{opacity:o,transform:[{scale:u}]}],accessible:!1,importantForAccessibility:"no",children:l??(s?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{focusable:!1,accessible:!1,onPress:()=>s(t),style:styles.rowPress,children:d}):d)})}),Wheel=({label:e,items:t,selectedIndex:a,onIndexChange:r,itemHeight:n,width:i,theme:c,haptic:s,disabled:l,reducedMotion:o,typeable:u,testID:d})=>{const m="web"===_reactNative.Platform.OS,[_,y]=(0,_react.useState)(null),h=(0,_react.useRef)(!1),p=(0,_react.useRef)(null),f=(0,_react.useRef)((0,_index.createAnimatedValue)(a*n)).current,b=(0,_react.useRef)(a*n),E=(0,_react.useRef)(a*n),x=(0,_react.useRef)(a),S=(0,_react.useRef)(0),v=(0,_react.useRef)(null),g=(0,_react.useRef)(()=>{}),T=c.components.timePicker?.hapticDebounceMs??35,I=t.length-1;(0,_react.useEffect)(()=>{x.current=a;const e=a*n;if(E.current===e)return;if(E.current=e,Math.abs(b.current-e)<1)return;b.current=e,m||(0,_index.setNativeValue)(f,e);const t=requestAnimationFrame(()=>{p.current?.scrollToOffset({offset:e,animated:!1})});return()=>cancelAnimationFrame(t)},[a,n,f,m]),(0,_react.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]);const M=(0,_react.useCallback)((e,n)=>{if(!(e===a||e<0||e>I)){if("accessibility"===n){const e=(0,_hapticUtils.resolveHaptic)(s,"denseTick");e&&(0,_hapticUtils.triggerHaptic)(e)}if("keyboard"!==n){const a=t[e];a&&(0,_announce.announce)(a.accessibilityLabel??a.label)}r(e)}},[a,I,t,s,r]),R=(0,_react.useCallback)(()=>{!l&&u&&(h.current=!0,y(String(t[a]?.value??"")))},[l,u,t,a]),L=(0,_react.useCallback)(e=>{if(!h.current)return;h.current=!1,y(null);const a=e.trim();if(!/^\d+$/.test(a))return;const r=Number(a),n=t.findIndex(e=>e.value===r);n>=0&&M(n,"keyboard")},[t,M]);g.current=()=>{v.current=null;const e=Math.max(0,Math.min(I,Math.round(b.current/n))),t=e*n;Math.abs(b.current-t)>=1&&p.current?.scrollToOffset({offset:t,animated:!o}),M(e,"scroll")};const j=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:f}}}],{useNativeDriver:!m,listener:e=>{const t=e.nativeEvent.contentOffset.y;b.current=t;const a=Math.round(t/n);if(a!==x.current&&a>=0&&a<=I){const e=Date.now();if(e-S.current>=T){const t=(0,_hapticUtils.resolveHaptic)(s,"denseTick");t&&(0,_hapticUtils.triggerHaptic)(t),S.current=e}x.current=a}m&&(v.current&&clearTimeout(v.current),v.current=setTimeout(()=>g.current(),120))}}),[f,n,I,s,T,m]),w=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentOffset.y;M(Math.max(0,Math.min(I,Math.round(t/n))),"scroll")},[M,I,n]),C=(0,_react.useCallback)(e=>{if(l)return;const t=e.nativeEvent.actionName;"increment"===t?M(Math.min(I,a+1),"accessibility"):"decrement"===t&&M(Math.max(0,a-1),"accessibility")},[l,M,I,a]),N=(0,_react.useCallback)(e=>{l||p.current?.scrollToOffset({offset:e*n,animated:!o})},[l,n,o]),W=(0,_react.useCallback)(({item:t,index:r})=>{const i=r===a,s=i&&null!==_;return(0,_jsxRuntime.jsx)(WheelRow,{label:t.label,index:r,scrollY:f,itemHeight:n,selected:i,theme:c,reducedMotion:o,onPress:i&&u?R:m?N:void 0,editor:s?(0,_jsxRuntime.jsx)(_reactNative.TextInput,{autoFocus:!0,selectTextOnFocus:!0,keyboardType:"number-pad",returnKeyType:"done",accessibilityLabel:e,value:_,onChangeText:y,onSubmitEditing:()=>L(_),onBlur:()=>L(_),style:{width:"100%",padding:c.spacing.none,textAlign:"center",fontSize:c.typography.fontSize.xl,color:c.colors.text.primary,fontWeight:c.typography.fontWeight.semibold,letterSpacing:c.typography.letterSpacing.normal}}):void 0})},[f,n,a,c,o,m,N,u,R,_,L,e]),A=(0,_react.useCallback)((e,t)=>`${String(e.value)}-${t}`,[]),F=(0,_react.useCallback)((e,t)=>({length:n,offset:n*t,index:t}),[n]),H=t[a]?t[a].accessibilityLabel??t[a].label:"",k=m?{focusable:!0,role:"spinbutton","aria-label":e,"aria-valuetext":H,"aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":I,"aria-disabled":l,onKeyDown:e=>{if(l)return;const t={ArrowDown:Math.min(I,a+1),PageDown:Math.min(I,a+1),ArrowUp:Math.max(0,a-1),PageUp:Math.max(0,a-1),Home:0,End:I}[e.key];void 0!==t&&(e.preventDefault?.(),M(t,"keyboard"))}}:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[void 0===i?styles.columnFlex:{width:i},{height:n*WHEEL_VISIBLE_ITEMS},styles.column,l?styles.disabled:null],testID:d,...k,children:[m?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:styles.a11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:e,accessibilityValue:{text:H},accessibilityState:{disabled:Boolean(l)},"aria-disabled":Boolean(l),accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:C}),(0,_jsxRuntime.jsx)(_reactNative.Animated.FlatList,{ref:p,data:t,keyExtractor:A,renderItem:W,getItemLayout:F,showsVerticalScrollIndicator:!1,snapToInterval:n,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEnabled:!l,nestedScrollEnabled:!0,scrollEventThrottle:16,onScroll:j,onMomentumScrollEnd:w,contentContainerStyle:{paddingVertical:n*WHEEL_CENTER_OFFSET},initialScrollIndex:a,style:[styles.list,{height:n*WHEEL_VISIBLE_ITEMS}],importantForAccessibility:"no-hide-descendants","aria-hidden":!0})]})};exports.Wheel=Wheel;const styles=_reactNative.StyleSheet.create({column:{overflow:"hidden"},columnFlex:{flex:1},disabled:{opacity:.5},list:{flexGrow:0},row:{alignItems:"center",justifyContent:"center"},rowPress:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",flex:1},a11yLayer:{..._reactNative.StyleSheet.absoluteFill,zIndex:2}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Wheel=exports.WHEEL_VISIBLE_ITEMS=exports.WHEEL_CENTER_OFFSET=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_jsxRuntime=require("react/jsx-runtime");const WHEEL_VISIBLE_ITEMS=exports.WHEEL_VISIBLE_ITEMS=5,WHEEL_CENTER_OFFSET=exports.WHEEL_CENTER_OFFSET=Math.floor(WHEEL_VISIBLE_ITEMS/2),HAPTIC_DEBOUNCE_MS=35,WEB_SETTLE_MS=120,SCALE_STOPS=[-2,-1,0,1,2],WheelRow=(0,_react.memo)(({label:e,index:t,scrollY:a,itemHeight:n,selected:r,theme:i,reducedMotion:s,onPress:c,editor:l})=>{const{opacity:o,scale:u}=(0,_react.useMemo)(()=>{const e=_reactNative.Animated.subtract(_reactNative.Animated.divide(a,n),t);return{opacity:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),scale:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"})}},[a,n,t]),d=(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,maxFontSizeMultiplier:1.5,style:{fontSize:i.text.xl.size,color:r?i.colors["text-body"]:i.colors["text-muted"],fontWeight:r?i.weight.semibold:i.weight.medium,letterSpacing:i["letter-spacing"].normal},children:e});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.row,{height:n},s?{opacity:o}:{opacity:o,transform:[{scale:u}]}],accessible:!1,importantForAccessibility:"no",children:l??(c?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{focusable:!1,accessible:!1,onPress:()=>c(t),style:styles.rowPress,children:d}):d)})}),Wheel=({label:e,items:t,selectedIndex:a,onIndexChange:n,itemHeight:r,width:i,theme:s,haptic:c,disabled:l,reducedMotion:o,typeable:u,testID:d})=>{const m="web"===_reactNative.Platform.OS,[_,b]=(0,_react.useState)(null),x=(0,_react.useRef)(!1),f=(0,_react.useRef)(null),h=(0,_react.useRef)((0,_index.createAnimatedValue)(a*r)).current,E=(0,_react.useRef)(a*r),y=(0,_react.useRef)(a*r),p=(0,_react.useRef)(a),v=(0,_react.useRef)(0),S=(0,_react.useRef)(null),g=(0,_react.useRef)(()=>{}),T=t.length-1;(0,_react.useEffect)(()=>{p.current=a;const e=a*r;if(y.current===e)return;if(y.current=e,Math.abs(E.current-e)<1)return;E.current=e,m||(0,_index.setNativeValue)(h,e);const t=requestAnimationFrame(()=>{f.current?.scrollToOffset({offset:e,animated:!1})});return()=>cancelAnimationFrame(t)},[a,r,h,m]),(0,_react.useEffect)(()=>()=>{S.current&&clearTimeout(S.current)},[]);const I=(0,_react.useCallback)((e,r)=>{if(!(e===a||e<0||e>T)){if("accessibility"===r){const e=(0,_hapticUtils.resolveHaptic)(c,"denseTick");e&&(0,_hapticUtils.triggerHaptic)(e)}if("keyboard"!==r){const a=t[e];a&&(0,_announce.announce)(a.accessibilityLabel??a.label)}n(e)}},[a,T,t,c,n]),M=(0,_react.useCallback)(()=>{!l&&u&&(x.current=!0,b(String(t[a]?.value??"")))},[l,u,t,a]),R=(0,_react.useCallback)(e=>{if(!x.current)return;x.current=!1,b(null);const a=e.trim();if(!/^\d+$/.test(a))return;const n=Number(a),r=t.findIndex(e=>e.value===n);r>=0&&I(r,"keyboard")},[t,I]);g.current=()=>{S.current=null;const e=Math.max(0,Math.min(T,Math.round(E.current/r))),t=e*r;Math.abs(E.current-t)>=1&&f.current?.scrollToOffset({offset:t,animated:!o}),I(e,"scroll")};const L=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:h}}}],{useNativeDriver:!m,listener:e=>{const t=e.nativeEvent.contentOffset.y;E.current=t;const a=Math.round(t/r);if(a!==p.current&&a>=0&&a<=T){const e=Date.now();if(e-v.current>=35){const t=(0,_hapticUtils.resolveHaptic)(c,"denseTick");t&&(0,_hapticUtils.triggerHaptic)(t),v.current=e}p.current=a}m&&(S.current&&clearTimeout(S.current),S.current=setTimeout(()=>g.current(),120))}}),[h,r,T,c,m]),w=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentOffset.y;I(Math.max(0,Math.min(T,Math.round(t/r))),"scroll")},[I,T,r]),j=(0,_react.useCallback)(e=>{if(l)return;const t=e.nativeEvent.actionName;"increment"===t?I(Math.min(T,a+1),"accessibility"):"decrement"===t&&I(Math.max(0,a-1),"accessibility")},[l,I,T,a]),C=(0,_react.useCallback)(e=>{l||f.current?.scrollToOffset({offset:e*r,animated:!o})},[l,r,o]),N=(0,_react.useCallback)(({item:t,index:n})=>{const i=n===a,c=i&&null!==_;return(0,_jsxRuntime.jsx)(WheelRow,{label:t.label,index:n,scrollY:h,itemHeight:r,selected:i,theme:s,reducedMotion:o,onPress:i&&u?M:m?C:void 0,editor:c?(0,_jsxRuntime.jsx)(_reactNative.TextInput,{autoFocus:!0,selectTextOnFocus:!0,keyboardType:"number-pad",returnKeyType:"done",accessibilityLabel:e,value:_,onChangeText:b,onSubmitEditing:()=>R(_),onBlur:()=>R(_),style:{width:"100%",padding:s.space.none,textAlign:"center",fontSize:s.text.xl.size,color:s.colors["text-body"],fontWeight:s.weight.semibold,letterSpacing:s["letter-spacing"].normal}}):void 0})},[h,r,a,s,o,m,C,u,M,_,R,e]),A=(0,_react.useCallback)((e,t)=>`${String(e.value)}-${t}`,[]),F=(0,_react.useCallback)((e,t)=>({length:r,offset:r*t,index:t}),[r]),H=t[a]?t[a].accessibilityLabel??t[a].label:"",W=m?{focusable:!0,role:"spinbutton","aria-label":e,"aria-valuetext":H,"aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":T,"aria-disabled":l,onKeyDown:e=>{if(l)return;const t={ArrowDown:Math.min(T,a+1),PageDown:Math.min(T,a+1),ArrowUp:Math.max(0,a-1),PageUp:Math.max(0,a-1),Home:0,End:T}[e.key];void 0!==t&&(e.preventDefault?.(),I(t,"keyboard"))}}:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[void 0===i?styles.columnFlex:{width:i},{height:r*WHEEL_VISIBLE_ITEMS},styles.column,l?styles.disabled:null],testID:d,...W,children:[m?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:styles.a11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:e,accessibilityValue:{text:H},accessibilityState:{disabled:Boolean(l)},"aria-disabled":Boolean(l),accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:j}),(0,_jsxRuntime.jsx)(_reactNative.Animated.FlatList,{ref:f,data:t,keyExtractor:A,renderItem:N,getItemLayout:F,showsVerticalScrollIndicator:!1,snapToInterval:r,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEnabled:!l,nestedScrollEnabled:!0,scrollEventThrottle:16,onScroll:L,onMomentumScrollEnd:w,contentContainerStyle:{paddingVertical:r*WHEEL_CENTER_OFFSET},initialScrollIndex:a,style:[styles.list,{height:r*WHEEL_VISIBLE_ITEMS}],importantForAccessibility:"no-hide-descendants","aria-hidden":!0})]})};exports.Wheel=Wheel;const styles=_reactNative.StyleSheet.create({column:{overflow:"hidden"},columnFlex:{flex:1},disabled:{opacity:.5},list:{flexGrow:0},row:{alignItems:"center",justifyContent:"center"},rowPress:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",flex:1},a11yLayer:{..._reactNative.StyleSheet.absoluteFill,zIndex:2}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.WheelPicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_index2=require("../Chip/index.js"),_Wheel=require("./Wheel.js"),_jsxRuntime=require("react/jsx-runtime");const BASE_ITEM_HEIGHT=40,MAX_FONT_SCALE=1.5,DEFAULT_COLUMN_WIDTH=64,MAX_DURATION_MINUTES=1439,range=(e,t,i=1)=>{const a=[];for(let r=e;r<=t;r+=i)a.push(r);return a},plural=(e,t,i)=>`${e} ${1===e?t:i}`,formatPreset=(e,t,i)=>{const a=Math.floor(e/60),r=e%60;return 0===a?`${r} ${i}`:0===r?`${a} ${t}`:`${a} ${t} ${r} ${i}`},toItem=e=>"object"==typeof e?e:{value:e,label:String(e)},WheelPicker=e=>{const{haptic:t,disabled:i,testID:a,style:r}=e,s=(0,_index.useTheme)(),n=(0,_useReducedMotion.useReducedMotion)(),{fontScale:o}=(0,_reactNative.useWindowDimensions)(),l=Math.min(Math.max(o,1),1.5),u=Math.round(40*l),d=(0,_react.useMemo)(()=>buildStyles(s,u),[s,u]),c="list"===e.mode?e.items:void 0,m=(0,_react.useMemo)(()=>c?.map(toItem),[c]),h="duration"===e.mode?e.minuteStep??1:1,p="duration"===e.mode?Math.max(0,Math.min(1439,Math.floor(e.maxMinutes??1/0))):0,_=Math.floor(p/60),x="duration"===e.mode?e.labels:void 0,b=x?.hours??"Hours",f=x?.minutes??"Minutes",y=x?.hourUnit??"hr",g=x?.minuteUnit??"min",M="duration"===e.mode?e.presets:void 0;for(const e of M??[])if(!Number.isInteger(e)||e<0||e>p||e%h!==0)throw new Error(`WheelPicker preset ${e} must be a whole number of minutes from 0 to ${p} in steps of ${h}.`);const v=(0,_react.useCallback)(e=>{const t=e===_?p%60:59;return Math.floor(t/h)*h},[_,p,h]),j="duration"===e.mode?e.value:0,S=(0,_react.useMemo)(()=>{const e=Number.isFinite(j)?j:0,t=Math.max(0,Math.min(p,e)),i=Math.floor(t/60),a=Math.round(t%60/h)*h;return{hour:i,minute:Math.min(v(i),a)}},[j,p,h,v]),w=(0,_react.useMemo)(()=>"duration"===e.mode?range(0,_).map(e=>({value:e,label:String(e),accessibilityLabel:plural(e,"hour","hours")})):[],[e.mode,_]),W=v(S.hour),N=(0,_react.useMemo)(()=>"duration"===e.mode?range(0,W,h).map(e=>({value:e,label:String(e).padStart(2,"0"),accessibilityLabel:plural(e,"minute","minutes")})):[],[e.mode,W,h]),I=(0,_react.useMemo)(()=>"list"===e.mode?[{key:"list",label:e.label??"Value",items:m??[],value:e.value??"",width:e.width}]:"duration"===e.mode?[{key:"hours",label:b,items:w,value:S.hour,unit:y,gapAfter:s.spacing.md},{key:"minutes",label:f,items:N,value:S.minute,unit:g}]:e.columns,[e,m,w,N,S,b,f,y,g,s.spacing.md]),{onChange:R}=e,k=(0,_react.useCallback)((t,i)=>{const a=t.items[i];if(a&&R)if("list"===e.mode)R(a.value);else if("duration"===e.mode){const e=Number(a.value),i=R;"hours"===t.key?i(60*e+Math.min(S.minute,v(e))):i(60*S.hour+e)}else R(t.key,a.value)},[R,e.mode,S,v]),E=(0,_react.useCallback)(e=>{R?.(e)},[R]),C=60*S.hour+S.minute,T=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[d.wheels,r],testID:a,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:d.selectionBand,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:d.bandLine}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:d.bandLine})]}),I.map(a=>{if(0===a.items.length)return null;const r=a.items.findIndex(e=>e.value===a.value);return(0,_jsxRuntime.jsxs)(_react.Fragment,{children:[(0,_jsxRuntime.jsx)(_Wheel.Wheel,{label:a.label,items:a.items,selectedIndex:Math.max(0,r),onIndexChange:e=>k(a,e),itemHeight:u,width:a.width??("list"===e.mode?void 0:64),theme:s,haptic:t,disabled:i,reducedMotion:n,typeable:"duration"===e.mode,testID:a.testID}),a.unit?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:d.unit,maxFontSizeMultiplier:1.5,numberOfLines:1,accessible:!1,importantForAccessibility:"no","aria-hidden":!0,children:a.unit}):null,a.separator?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:d.separator,maxFontSizeMultiplier:1.5,accessible:!1,importantForAccessibility:"no","aria-hidden":!0,children:a.separator}):null,a.gapAfter?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:a.gapAfter}}):null]},a.key)})]});return M&&0!==M.length?(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[T,(0,_jsxRuntime.jsx)(_reactNative.View,{style:d.presets,children:M.map(e=>(0,_jsxRuntime.jsx)(_index2.Chip,{label:formatPreset(e,y,g),size:"sm",selected:e===C,disabled:i,onPress:()=>E(e)},e))})]}):T};exports.WheelPicker=WheelPicker;const buildStyles=(e,t)=>_reactNative.StyleSheet.create({wheels:{flexDirection:"row",alignItems:"center",justifyContent:"center",height:t*_Wheel.WHEEL_VISIBLE_ITEMS,position:"relative"},selectionBand:{position:"absolute",left:0,right:0,top:t*_Wheel.WHEEL_CENTER_OFFSET,height:t,justifyContent:"space-between"},bandLine:{height:2*_reactNative.StyleSheet.hairlineWidth,backgroundColor:e.colors.primary,opacity:.85},separator:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.text.primary,paddingHorizontal:e.spacing.xs},unit:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.secondary,paddingLeft:e.spacing.xs},presets:{flexDirection:"row",flexWrap:"wrap",justifyContent:"center",gap:e.spacing.xs,paddingTop:e.spacing.sm}});var _default=exports.default=WheelPicker;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.WheelPicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_index2=require("../Chip/index.js"),_Wheel=require("./Wheel.js"),_jsxRuntime=require("react/jsx-runtime");const BASE_ITEM_HEIGHT=40,MAX_FONT_SCALE=1.5,DEFAULT_COLUMN_WIDTH=64,MAX_DURATION_MINUTES=1439,range=(e,t,i=1)=>{const a=[];for(let s=e;s<=t;s+=i)a.push(s);return a},plural=(e,t,i)=>`${e} ${1===e?t:i}`,formatPreset=(e,t,i)=>{const a=Math.floor(e/60),s=e%60;return 0===a?`${s} ${i}`:0===s?`${a} ${t}`:`${a} ${t} ${s} ${i}`},toItem=e=>"object"==typeof e?e:{value:e,label:String(e)},WheelPicker=e=>{const{haptic:t,disabled:i,testID:a,style:s}=e,r=(0,_index.useTheme)(),n=(0,_useReducedMotion.useReducedMotion)(),{fontScale:o}=(0,_reactNative.useWindowDimensions)(),l=Math.min(Math.max(o,1),1.5),u=Math.round(40*l),d=(0,_react.useMemo)(()=>buildStyles(r,u),[r,u]),c="list"===e.mode?e.items:void 0,m=(0,_react.useMemo)(()=>c?.map(toItem),[c]),h="duration"===e.mode?e.minuteStep??1:1,_="duration"===e.mode?Math.max(0,Math.min(1439,Math.floor(e.maxMinutes??1/0))):0,x=Math.floor(_/60),p="duration"===e.mode?e.labels:void 0,b=p?.hours??"Hours",f=p?.minutes??"Minutes",M=p?.hourUnit??"hr",v=p?.minuteUnit??"min",j="duration"===e.mode?e.presets:void 0;for(const e of j??[])if(!Number.isInteger(e)||e<0||e>_||e%h!==0)throw new Error(`WheelPicker preset ${e} must be a whole number of minutes from 0 to ${_} in steps of ${h}.`);const y=(0,_react.useCallback)(e=>{const t=e===x?_%60:59;return Math.floor(t/h)*h},[x,_,h]),g="duration"===e.mode?e.value:0,w=(0,_react.useMemo)(()=>{const e=Number.isFinite(g)?g:0,t=Math.max(0,Math.min(_,e)),i=Math.floor(t/60),a=Math.round(t%60/h)*h;return{hour:i,minute:Math.min(y(i),a)}},[g,_,h,y]),S=(0,_react.useMemo)(()=>"duration"===e.mode?range(0,x).map(e=>({value:e,label:String(e),accessibilityLabel:plural(e,"hour","hours")})):[],[e.mode,x]),N=y(w.hour),W=(0,_react.useMemo)(()=>"duration"===e.mode?range(0,N,h).map(e=>({value:e,label:String(e).padStart(2,"0"),accessibilityLabel:plural(e,"minute","minutes")})):[],[e.mode,N,h]),I=(0,_react.useMemo)(()=>"list"===e.mode?[{key:"list",label:e.label??"Value",items:m??[],value:e.value??"",width:e.width}]:"duration"===e.mode?[{key:"hours",label:b,items:S,value:w.hour,unit:M,gapAfter:r.space.md},{key:"minutes",label:f,items:W,value:w.minute,unit:v}]:e.columns,[e,m,S,W,w,b,f,M,v,r.space.md]),{onChange:R}=e,k=(0,_react.useCallback)((t,i)=>{const a=t.items[i];if(a&&R)if("list"===e.mode)R(a.value);else if("duration"===e.mode){const e=Number(a.value),i=R;"hours"===t.key?i(60*e+Math.min(w.minute,y(e))):i(60*w.hour+e)}else R(t.key,a.value)},[R,e.mode,w,y]),E=(0,_react.useCallback)(e=>{R?.(e)},[R]),C=60*w.hour+w.minute,T=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[d.wheels,s],testID:a,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:d.selectionBand,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:d.bandLine}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:d.bandLine})]}),I.map(a=>{if(0===a.items.length)return null;const s=a.items.findIndex(e=>e.value===a.value);return(0,_jsxRuntime.jsxs)(_react.Fragment,{children:[(0,_jsxRuntime.jsx)(_Wheel.Wheel,{label:a.label,items:a.items,selectedIndex:Math.max(0,s),onIndexChange:e=>k(a,e),itemHeight:u,width:a.width??("list"===e.mode?void 0:64),theme:r,haptic:t,disabled:i,reducedMotion:n,typeable:"duration"===e.mode,testID:a.testID}),a.unit?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:d.unit,maxFontSizeMultiplier:1.5,numberOfLines:1,accessible:!1,importantForAccessibility:"no","aria-hidden":!0,children:a.unit}):null,a.separator?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:d.separator,maxFontSizeMultiplier:1.5,accessible:!1,importantForAccessibility:"no","aria-hidden":!0,children:a.separator}):null,a.gapAfter?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:a.gapAfter}}):null]},a.key)})]});return j&&0!==j.length?(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[T,(0,_jsxRuntime.jsx)(_reactNative.View,{style:d.presets,children:j.map(e=>(0,_jsxRuntime.jsx)(_index2.Chip,{label:formatPreset(e,M,v),size:"sm",selected:e===C,disabled:i,onPress:()=>E(e)},e))})]}):T};exports.WheelPicker=WheelPicker;const buildStyles=(e,t)=>_reactNative.StyleSheet.create({wheels:{flexDirection:"row",alignItems:"center",justifyContent:"center",height:t*_Wheel.WHEEL_VISIBLE_ITEMS,position:"relative"},selectionBand:{position:"absolute",left:0,right:0,top:t*_Wheel.WHEEL_CENTER_OFFSET,height:t,justifyContent:"space-between"},bandLine:{height:2*_reactNative.StyleSheet.hairlineWidth,backgroundColor:e.colors.primary,opacity:.85},separator:{fontSize:e.text["2xl"].size,fontWeight:e.weight.bold,color:e.colors["text-body"],paddingHorizontal:e.space.xs},unit:{fontSize:e.text.base.size,fontWeight:e.weight.semibold,color:e.colors["text-muted"],paddingLeft:e.space.xs},presets:{flexDirection:"row",flexWrap:"wrap",justifyContent:"center",gap:e.space.xs,paddingTop:e.space.sm}});var _default=exports.default=WheelPicker;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useDragToDismiss=exports.createDragToDismissController=exports.DRAG_DISMISS_VELOCITY=exports.DRAG_DISMISS_DISTANCE=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_index=require("../theme/index.js"),_usePresenceMotion=require("./usePresenceMotion.js");const DRAG_DISMISS_DISTANCE=exports.DRAG_DISMISS_DISTANCE=100,DRAG_DISMISS_VELOCITY=exports.DRAG_DISMISS_VELOCITY=.5,createDragToDismissController=({drag:e,travel:t,onDismiss:r,opacity:a},s,i)=>{const{snappy:n}=s.spring,springBack=()=>_reactNative.Animated.spring(e,{toValue:0,damping:n.damping,stiffness:n.stiffness,mass:n.mass,useNativeDriver:!0}).start(),o=!0===i?.reduced?a:void 0,c=i?.duration("normal")??s.duration.normal;return{move:t=>{(0,_index.setNativeValue)(e,Math.max(0,t))},release:(a,i)=>{if(a>DRAG_DISMISS_DISTANCE||i>DRAG_DISMISS_VELOCITY){if(o)return void _reactNative.Animated.timing(o,{toValue:0,duration:c,easing:_reactNative.Easing.bezier(...s.easing.accelerate),useNativeDriver:!0}).start(()=>r());_reactNative.Animated.timing(e,{toValue:"function"==typeof t?t():t,duration:s.duration.fast,easing:_reactNative.Easing.bezier(...s.easing.accelerate),useNativeDriver:!0}).start(()=>r())}else springBack()},cancel:springBack}};exports.createDragToDismissController=createDragToDismissController;const useDragToDismiss=e=>{const{drag:t,travel:r,onDismiss:a,contentAtTop:s,scrollGesture:i}=e,{motion:n}=(0,_index.useTheme)(),o=(0,_usePresenceMotion.usePresenceMotion)(),c=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;return(0,_react.useMemo)(()=>{const e=createDragToDismissController({drag:t,travel:r,onDismiss:a,opacity:c},n,o),u=_reactNativeGestureHandler.Gesture.Pan().runOnJS(!0).activeOffsetY(6).failOffsetX([-12,12]).onUpdate(t=>e.move(t.translationY)).onEnd(t=>e.release(t.translationY,t.velocityY/1e3)).onFinalize((_e,t)=>{t||e.cancel()});let l=0,D=!1;const _=_reactNativeGestureHandler.Gesture.Pan().runOnJS(!0).activeOffsetY(8).failOffsetX([-12,12]).onBegin(()=>{l=0,D=!1}).onUpdate(t=>{if(!D){if(s&&!s())return;D=!0,l=t.translationY}e.move(t.translationY-l)}).onEnd(t=>{D&&e.release(t.translationY-l,t.velocityY/1e3)}).onFinalize((_e,t)=>{!t&&D&&e.cancel()});return i&&_.simultaneousWithExternalGesture(i),{handleGesture:u,sheetGesture:_,opacity:c}},[t,r,a,s,i,n,o,c])};exports.useDragToDismiss=useDragToDismiss;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useDragToDismiss=exports.createDragToDismissController=exports.DRAG_DISMISS_VELOCITY=exports.DRAG_DISMISS_DISTANCE=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_index=require("../theme/index.js"),_usePresenceMotion=require("./usePresenceMotion.js");const DRAG_DISMISS_DISTANCE=exports.DRAG_DISMISS_DISTANCE=100,DRAG_DISMISS_VELOCITY=exports.DRAG_DISMISS_VELOCITY=.5,createDragToDismissController=({drag:e,travel:t,onDismiss:r,opacity:a},s,i)=>{const{snappy:n}=s.spring,springBack=()=>_reactNative.Animated.spring(e,{toValue:0,damping:n.damping,stiffness:n.stiffness,mass:n.mass,useNativeDriver:!0}).start(),o=!0===i?.reduced?a:void 0,u=i?.duration("default")??s.duration.default;return{move:t=>{(0,_index.setNativeValue)(e,Math.max(0,t))},release:(a,i)=>{if(a>DRAG_DISMISS_DISTANCE||i>DRAG_DISMISS_VELOCITY){if(o)return void _reactNative.Animated.timing(o,{toValue:0,duration:u,easing:_reactNative.Easing.bezier(...s.ease.accelerate),useNativeDriver:!0}).start(()=>r());_reactNative.Animated.timing(e,{toValue:"function"==typeof t?t():t,duration:s.duration.fast,easing:_reactNative.Easing.bezier(...s.ease.accelerate),useNativeDriver:!0}).start(()=>r())}else springBack()},cancel:springBack}};exports.createDragToDismissController=createDragToDismissController;const useDragToDismiss=e=>{const{drag:t,travel:r,onDismiss:a,contentAtTop:s,scrollGesture:i}=e,{motion:n}=(0,_index.useTheme)(),o=(0,_usePresenceMotion.usePresenceMotion)(),u=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;return(0,_react.useMemo)(()=>{const e=createDragToDismissController({drag:t,travel:r,onDismiss:a,opacity:u},n,o),c=_reactNativeGestureHandler.Gesture.Pan().runOnJS(!0).activeOffsetY(6).failOffsetX([-12,12]).onUpdate(t=>e.move(t.translationY)).onEnd(t=>e.release(t.translationY,t.velocityY/1e3)).onFinalize((_e,t)=>{t||e.cancel()});let l=0,D=!1;const d=_reactNativeGestureHandler.Gesture.Pan().runOnJS(!0).activeOffsetY(8).failOffsetX([-12,12]).onBegin(()=>{l=0,D=!1}).onUpdate(t=>{if(!D){if(s&&!s())return;D=!0,l=t.translationY}e.move(t.translationY-l)}).onEnd(t=>{D&&e.release(t.translationY-l,t.velocityY/1e3)}).onFinalize((_e,t)=>{!t&&D&&e.cancel()});return i&&d.simultaneousWithExternalGesture(i),{handleGesture:c,sheetGesture:d,opacity:u}},[t,r,a,s,i,n,o,u])};exports.useDragToDismiss=useDragToDismiss;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.usePressAnimation=exports.PRESS_ANIMATION_PRESETS=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../theme/index.js"),_animatedValue=require("../theme/animatedValue.js"),_usePresenceMotion=require("./usePresenceMotion.js");const PRESS_ANIMATION_PRESETS=exports.PRESS_ANIMATION_PRESETS=["scale","bounce","fade","sink","pulse"],FADE_TO=.6,SINK_BY=2,PULSE_TO=1.05,DEFAULT_SCALE_TO={scale:.97,bounce:.92,fade:1,sink:1,pulse:1},usePressAnimation=({preset:e="scale",scaleTo:a,pressDuration:t,enabled:s=!0}={})=>{const r=(0,_index.useTheme)(),i=(0,_usePresenceMotion.usePresenceMotion)(),n=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(1)).current,c=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(1)).current,u=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,o=i.reduced?"fade":e,l=a??DEFAULT_SCALE_TO[o],_=t??i.duration("fast"),d=(0,_react.useCallback)((e,a,t)=>_reactNative.Animated.timing(e,{toValue:a,duration:_,easing:_reactNative.Easing.bezier(...t),useNativeDriver:!0}),[_]),m=(0,_react.useCallback)((e,a,t)=>_reactNative.Animated.spring(e,{toValue:a,damping:r.motion.spring[t].damping,stiffness:r.motion.spring[t].stiffness,mass:r.motion.spring[t].mass,useNativeDriver:!0}),[r]),p=(0,_react.useCallback)(()=>{if(s)switch(o){case"scale":case"bounce":d(n,l,r.motion.easing.standard).start();break;case"fade":d(c,.6,r.motion.easing.standard).start();break;case"sink":d(u,2,r.motion.easing.standard).start()}},[s,o,l,n,c,u,r,d]),A=(0,_react.useCallback)(()=>{if(s)switch(o){case"scale":m(n,1,"snappy").start();break;case"bounce":m(n,1,"bouncy").start();break;case"fade":d(c,1,r.motion.easing.decelerate).start();break;case"sink":m(u,0,"snappy").start()}},[s,o,n,c,u,r,d,m]),b=(0,_react.useCallback)(()=>{s&&"pulse"===o&&_reactNative.Animated.sequence([_reactNative.Animated.timing(n,{toValue:1.05,duration:r.motion.duration.instant,easing:_reactNative.Easing.bezier(...r.motion.easing.accelerate),useNativeDriver:!0}),m(n,1,"snappy")]).start()},[s,o,n,r,m]),f=(0,_react.useMemo)(()=>({transform:[{scale:n},{translateY:u}],opacity:c}),[n,u,c]);return{scale:n,opacity:c,translateY:u,style:f,pressIn:p,pressOut:A,press:b}};exports.usePressAnimation=usePressAnimation;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.usePressAnimation=exports.PRESS_ANIMATION_PRESETS=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../theme/index.js"),_animatedValue=require("../theme/animatedValue.js"),_usePresenceMotion=require("./usePresenceMotion.js");const PRESS_ANIMATION_PRESETS=exports.PRESS_ANIMATION_PRESETS=["scale","bounce","fade","sink","pulse"],FADE_TO=.6,SINK_BY=2,PULSE_TO=1.05,DEFAULT_SCALE_TO={scale:.97,bounce:.92,fade:1,sink:1,pulse:1},usePressAnimation=({preset:e="scale",scaleTo:a,pressDuration:t,enabled:s=!0}={})=>{const r=(0,_index.useTheme)(),i=(0,_usePresenceMotion.usePresenceMotion)(),n=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(1)).current,c=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(1)).current,u=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,o=i.reduced?"fade":e,l=a??DEFAULT_SCALE_TO[o],_=t??i.duration("fast"),m=(0,_react.useCallback)((e,a,t)=>_reactNative.Animated.timing(e,{toValue:a,duration:_,easing:_reactNative.Easing.bezier(...t),useNativeDriver:!0}),[_]),d=(0,_react.useCallback)((e,a,t)=>_reactNative.Animated.spring(e,{toValue:a,damping:r.motion.spring[t].damping,stiffness:r.motion.spring[t].stiffness,mass:r.motion.spring[t].mass,useNativeDriver:!0}),[r]),p=(0,_react.useCallback)(()=>{if(s)switch(o){case"scale":case"bounce":m(n,l,r.motion.ease["in-out"]).start();break;case"fade":m(c,.6,r.motion.ease["in-out"]).start();break;case"sink":m(u,2,r.motion.ease["in-out"]).start()}},[s,o,l,n,c,u,r,m]),A=(0,_react.useCallback)(()=>{if(s)switch(o){case"scale":d(n,1,"snappy").start();break;case"bounce":d(n,1,"bouncy").start();break;case"fade":m(c,1,r.motion.ease.decelerate).start();break;case"sink":d(u,0,"snappy").start()}},[s,o,n,c,u,r,m,d]),b=(0,_react.useCallback)(()=>{s&&"pulse"===o&&_reactNative.Animated.sequence([_reactNative.Animated.timing(n,{toValue:1.05,duration:r.motion.duration.instant,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0}),d(n,1,"snappy")]).start()},[s,o,n,r,d]),f=(0,_react.useMemo)(()=>({transform:[{scale:n},{translateY:u}],opacity:c}),[n,u,c]);return{scale:n,opacity:c,translateY:u,style:f,pressIn:p,pressOut:A,press:b}};exports.usePressAnimation=usePressAnimation;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useRefreshControl=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../theme/index.js"),_announce=require("../utils/announce.js"),_hapticUtils=require("../utils/hapticUtils.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_MIN_VISIBLE_MS=400,useRefreshControl=e=>{const{onRefresh:r,refreshing:t=!1,haptic:s,title:c,minVisibleMs:n=DEFAULT_MIN_VISIBLE_MS,labels:o}=e,a=(0,_index.useTheme)(),[i,u]=(0,_react.useState)(!1),l=(0,_react.useRef)(!1),_=(0,_react.useRef)(!0),f=(0,_react.useRef)(null),h=(0,_react.useRef)(r);h.current=r;const d=(0,_react.useRef)(o);d.current=o;const m=(0,_react.useRef)(n);m.current=n,(0,_react.useEffect)(()=>(_.current=!0,()=>{_.current=!1,f.current?.release()}),[]);const b=(0,_react.useCallback)(e=>new Promise(r=>{if(e<=0)return void r();const t=setTimeout(()=>{f.current=null,r()},e);f.current={release:()=>{clearTimeout(t),f.current=null,r()}}}),[]),R=(0,_react.useCallback)(async e=>{if(l.current)return;l.current=!0,u(!0);const r=Date.now();e&&(0,_announce.announce)(d.current?.refreshing??"Refreshing");let t=!1;try{await h.current()}catch(e){t=!0,_mobileCore.Logger.error("[@webority/mobile-ui] useRefreshControl: onRefresh failed.",e)}_.current&&await b(m.current-(Date.now()-r)),l.current=!1,_.current&&(u(!1),e&&!t&&(0,_announce.announce)(d.current?.refreshed??"Updated"))},[b]),p="android"===_reactNative.Platform.OS?"gestureStart":null,C=void 0===s?p:(0,_hapticUtils.resolveHaptic)(s,"gestureStart"),g=(0,_react.useCallback)(()=>{l.current||(C&&(0,_hapticUtils.triggerHaptic)(C),R(!1))},[C,R]),v=(0,_react.useCallback)(()=>R(!0),[R]),y=(0,_react.useMemo)(()=>({accessibilityActions:[{name:"refresh",label:o?.refresh??"Refresh"}],onAccessibilityAction:e=>{"refresh"===e.nativeEvent.actionName&&R(!0)}}),[o?.refresh,R]),x=i||t;return{refreshControl:(0,_react.useMemo)(()=>(0,_jsxRuntime.jsx)(_reactNative.RefreshControl,{refreshing:x,onRefresh:g,tintColor:a.colors.primary,colors:[a.colors.primary],progressBackgroundColor:a.colors.background.elevated,title:c,titleColor:a.colors.text.secondary}),[x,g,c,a.colors.primary,a.colors.background.elevated,a.colors.text.secondary]),refreshing:x,refresh:v,accessibilityProps:y}};exports.useRefreshControl=useRefreshControl;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useRefreshControl=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../theme/index.js"),_announce=require("../utils/announce.js"),_hapticUtils=require("../utils/hapticUtils.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_MIN_VISIBLE_MS=400,useRefreshControl=e=>{const{onRefresh:r,refreshing:t=!1,haptic:s,title:c,minVisibleMs:n=DEFAULT_MIN_VISIBLE_MS,labels:o}=e,a=(0,_index.useTheme)(),[i,u]=(0,_react.useState)(!1),l=(0,_react.useRef)(!1),_=(0,_react.useRef)(!0),f=(0,_react.useRef)(null),h=(0,_react.useRef)(r);h.current=r;const m=(0,_react.useRef)(o);m.current=o;const R=(0,_react.useRef)(n);R.current=n,(0,_react.useEffect)(()=>(_.current=!0,()=>{_.current=!1,f.current?.release()}),[]);const b=(0,_react.useCallback)(e=>new Promise(r=>{if(e<=0)return void r();const t=setTimeout(()=>{f.current=null,r()},e);f.current={release:()=>{clearTimeout(t),f.current=null,r()}}}),[]),d=(0,_react.useCallback)(async e=>{if(l.current)return;l.current=!0,u(!0);const r=Date.now();e&&(0,_announce.announce)(m.current?.refreshing??"Refreshing");let t=!1;try{await h.current()}catch(e){t=!0,_mobileCore.Logger.error("[@webority/mobile-ui] useRefreshControl: onRefresh failed.",e)}_.current&&await b(R.current-(Date.now()-r)),l.current=!1,_.current&&(u(!1),e&&!t&&(0,_announce.announce)(m.current?.refreshed??"Updated"))},[b]),p="android"===_reactNative.Platform.OS?"gestureStart":null,C=void 0===s?p:(0,_hapticUtils.resolveHaptic)(s,"gestureStart"),g=(0,_react.useCallback)(()=>{l.current||(C&&(0,_hapticUtils.triggerHaptic)(C),d(!1))},[C,d]),v=(0,_react.useCallback)(()=>d(!0),[d]),x=(0,_react.useMemo)(()=>({accessibilityActions:[{name:"refresh",label:o?.refresh??"Refresh"}],onAccessibilityAction:e=>{"refresh"===e.nativeEvent.actionName&&d(!0)}}),[o?.refresh,d]),y=i||t;return{refreshControl:(0,_react.useMemo)(()=>(0,_jsxRuntime.jsx)(_reactNative.RefreshControl,{refreshing:y,onRefresh:g,tintColor:a.colors.primary,colors:[a.colors.primary],progressBackgroundColor:a.colors.surface,title:c,titleColor:a.colors["text-muted"]}),[y,g,c,a.colors.primary,a.colors.surface,a.colors["text-muted"]]),refreshing:y,refresh:v,accessibilityProps:x}};exports.useRefreshControl=useRefreshControl;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={APP_ICON_SIZES:!0,AppIcon:!0,CURATED_ICON_NAMES:!0,defaultIcons:!0,ICON_NAMES:!0,ICONSAX_SUFFIX:!0,renderSlotIcon:!0,deletePath:!0,Form:!0,getPath:!0,HookFormField:!0,isFieldFilled:!0,rules:!0,setPath:!0,useField:!0,useFieldArray:!0,useForm:!0,useFormCompletion:!0,useFormContext:!0,useHookFormField:!0,useOptionalFormContext:!0,FLICK_TOLERANCE:!0,PRESENCE_REDUCE_MOTION:!0,PRESS_ANIMATION_PRESETS:!0,useControllableState:!0,useDebounce:!0,useFieldChain:!0,useFlickGuard:!0,usePresenceMotion:!0,usePressAnimation:!0,useReducedMotion:!0,useRefreshControl:!0,useScrollDirection:!0,useToggle:!0,initUI:!0,NetworkStatusBanner:!0,darkTheme:!0,fontSizeOf:!0,getColorMode:!0,getTheme:!0,lightTheme:!0,mergeTheme:!0,radiusOf:!0,resetTheme:!0,resolveBadgeSize:!0,resolveButtonSize:!0,resolveCheckboxSize:!0,resolveChipSize:!0,resolveEmptyStateSize:!0,resolveFieldSize:!0,resolveFloatingActionButtonSize:!0,resolveListItemSize:!0,resolveOtpInputSize:!0,resolveRadioSize:!0,resolveSegmentedControlSize:!0,resolveSliderSize:!0,resolveSwitchSize:!0,resolveTabsSize:!0,setColorMode:!0,setTheme:!0,spaceOf:!0,subscribeTheme:!0,ThemeProvider:!0,useTheme:!0,useThemeMode:!0,announce:!0,Breakpoints:!0,configureFeedback:!0,feedback:!0,hapticForIntent:!0,isFeedbackEnabled:!0,isScreenSize:!0,isTablet:!0,Responsive:!0,ScreenDimensions:!0,SQUIRCLE_MIN_RADIUS:!0,SQUIRCLE_SMOOTHING:!0,setHapticImplementation:!0,shadowStyle:!0,smoothCorners:!0,squircleApplies:!0,squircleHostRadius:!0,squirclePath:!0,triggerHaptic:!0,useScreenDimensions:!0,warnUnknownProps:!0};Object.defineProperty(exports,"APP_ICON_SIZES",{enumerable:!0,get:function(){return _index2.APP_ICON_SIZES}}),Object.defineProperty(exports,"AppIcon",{enumerable:!0,get:function(){return _index2.AppIcon}}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _index7.Breakpoints}}),Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _index2.CURATED_ICON_NAMES}}),Object.defineProperty(exports,"FLICK_TOLERANCE",{enumerable:!0,get:function(){return _index4.FLICK_TOLERANCE}}),Object.defineProperty(exports,"Form",{enumerable:!0,get:function(){return _index3.Form}}),Object.defineProperty(exports,"HookFormField",{enumerable:!0,get:function(){return _index3.HookFormField}}),Object.defineProperty(exports,"ICONSAX_SUFFIX",{enumerable:!0,get:function(){return _index2.ICONSAX_SUFFIX}}),Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _index2.ICON_NAMES}}),Object.defineProperty(exports,"NetworkStatusBanner",{enumerable:!0,get:function(){return _index5.NetworkStatusBanner}}),Object.defineProperty(exports,"PRESENCE_REDUCE_MOTION",{enumerable:!0,get:function(){return _index4.PRESENCE_REDUCE_MOTION}}),Object.defineProperty(exports,"PRESS_ANIMATION_PRESETS",{enumerable:!0,get:function(){return _index4.PRESS_ANIMATION_PRESETS}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _index7.Responsive}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _index7.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _index7.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _index7.ScreenDimensions}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _index6.ThemeProvider}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _index7.announce}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _index7.configureFeedback}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _index6.darkTheme}}),Object.defineProperty(exports,"defaultIcons",{enumerable:!0,get:function(){return _index2.defaultIcons}}),Object.defineProperty(exports,"deletePath",{enumerable:!0,get:function(){return _index3.deletePath}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _index7.feedback}}),Object.defineProperty(exports,"fontSizeOf",{enumerable:!0,get:function(){return _index6.fontSizeOf}}),Object.defineProperty(exports,"getColorMode",{enumerable:!0,get:function(){return _index6.getColorMode}}),Object.defineProperty(exports,"getPath",{enumerable:!0,get:function(){return _index3.getPath}}),Object.defineProperty(exports,"getTheme",{enumerable:!0,get:function(){return _index6.getTheme}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _index7.hapticForIntent}}),Object.defineProperty(exports,"initUI",{enumerable:!0,get:function(){return _initUI.initUI}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _index7.isFeedbackEnabled}}),Object.defineProperty(exports,"isFieldFilled",{enumerable:!0,get:function(){return _index3.isFieldFilled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _index7.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _index7.isTablet}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _index6.lightTheme}}),Object.defineProperty(exports,"mergeTheme",{enumerable:!0,get:function(){return _index6.mergeTheme}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _index6.radiusOf}}),Object.defineProperty(exports,"renderSlotIcon",{enumerable:!0,get:function(){return _index2.renderSlotIcon}}),Object.defineProperty(exports,"resetTheme",{enumerable:!0,get:function(){return _index6.resetTheme}}),Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _index6.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _index6.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _index6.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _index6.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _index6.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _index6.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _index6.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _index6.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _index6.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _index6.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _index6.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _index6.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _index6.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _index6.resolveTabsSize}}),Object.defineProperty(exports,"rules",{enumerable:!0,get:function(){return _index3.rules}}),Object.defineProperty(exports,"setColorMode",{enumerable:!0,get:function(){return _index6.setColorMode}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _index7.setHapticImplementation}}),Object.defineProperty(exports,"setPath",{enumerable:!0,get:function(){return _index3.setPath}}),Object.defineProperty(exports,"setTheme",{enumerable:!0,get:function(){return _index6.setTheme}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _index7.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _index7.smoothCorners}}),Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _index6.spaceOf}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _index7.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _index7.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _index7.squirclePath}}),Object.defineProperty(exports,"subscribeTheme",{enumerable:!0,get:function(){return _index6.subscribeTheme}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _index7.triggerHaptic}}),Object.defineProperty(exports,"useControllableState",{enumerable:!0,get:function(){return _index4.useControllableState}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return _index4.useDebounce}}),Object.defineProperty(exports,"useField",{enumerable:!0,get:function(){return _index3.useField}}),Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return _index3.useFieldArray}}),Object.defineProperty(exports,"useFieldChain",{enumerable:!0,get:function(){return _index4.useFieldChain}}),Object.defineProperty(exports,"useFlickGuard",{enumerable:!0,get:function(){return _index4.useFlickGuard}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return _index3.useForm}}),Object.defineProperty(exports,"useFormCompletion",{enumerable:!0,get:function(){return _index3.useFormCompletion}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return _index3.useFormContext}}),Object.defineProperty(exports,"useHookFormField",{enumerable:!0,get:function(){return _index3.useHookFormField}}),Object.defineProperty(exports,"useOptionalFormContext",{enumerable:!0,get:function(){return _index3.useOptionalFormContext}}),Object.defineProperty(exports,"usePresenceMotion",{enumerable:!0,get:function(){return _index4.usePresenceMotion}}),Object.defineProperty(exports,"usePressAnimation",{enumerable:!0,get:function(){return _index4.usePressAnimation}}),Object.defineProperty(exports,"useReducedMotion",{enumerable:!0,get:function(){return _index4.useReducedMotion}}),Object.defineProperty(exports,"useRefreshControl",{enumerable:!0,get:function(){return _index4.useRefreshControl}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _index7.useScreenDimensions}}),Object.defineProperty(exports,"useScrollDirection",{enumerable:!0,get:function(){return _index4.useScrollDirection}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _index6.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _index6.useThemeMode}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return _index4.useToggle}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _index7.warnUnknownProps}});var _index=require("./components/index.js");Object.keys(_index).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_index[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _index[e]}}))});var _index2=require("./components/AppIcon/index.js"),_index3=require("./form/index.js"),_index4=require("./hooks/index.js"),_initUI=require("./initUI.js"),_index5=require("./network/index.js"),_index6=require("./theme/index.js"),_index7=require("./utils/index.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={APP_ICON_SIZES:!0,AppIcon:!0,CURATED_ICON_NAMES:!0,defaultIcons:!0,ICON_NAMES:!0,ICONSAX_SUFFIX:!0,renderSlotIcon:!0,deletePath:!0,Form:!0,getPath:!0,HookFormField:!0,isFieldFilled:!0,rules:!0,setPath:!0,useField:!0,useFieldArray:!0,useForm:!0,useFormCompletion:!0,useFormContext:!0,useHookFormField:!0,useOptionalFormContext:!0,FLICK_TOLERANCE:!0,PRESENCE_REDUCE_MOTION:!0,PRESS_ANIMATION_PRESETS:!0,useControllableState:!0,useDebounce:!0,useFieldChain:!0,useFlickGuard:!0,usePresenceMotion:!0,usePressAnimation:!0,useReducedMotion:!0,useRefreshControl:!0,useScrollDirection:!0,useToggle:!0,initUI:!0,NetworkStatusBanner:!0,COLOR_NAMES:!0,DURATION_NAMES:!0,darkTheme:!0,EASE_NAMES:!0,FONT_NAMES:!0,getColorMode:!0,getTheme:!0,LEADING_NAMES:!0,LETTER_SPACING_NAMES:!0,lightTheme:!0,mergeBrand:!0,RADIUS_NAMES:!0,radiusOf:!0,resetTheme:!0,resolveBadgeSize:!0,resolveButtonSize:!0,resolveCheckboxSize:!0,resolveChipSize:!0,resolveEmptyStateSize:!0,resolveFieldSize:!0,resolveFloatingActionButtonSize:!0,resolveListItemSize:!0,resolveOtpInputSize:!0,resolveRadioSize:!0,resolveSegmentedControlSize:!0,resolveSliderSize:!0,resolveSwitchSize:!0,resolveTabsSize:!0,SHADOW_NAMES:!0,SIZE_NAMES:!0,SPACE_NAMES:!0,setColorMode:!0,setTheme:!0,spaceOf:!0,subscribeTheme:!0,TEXT_NAMES:!0,ThemeProvider:!0,textOf:!0,useTheme:!0,useThemeMode:!0,WEIGHT_NAMES:!0,announce:!0,Breakpoints:!0,configureFeedback:!0,feedback:!0,hapticForIntent:!0,isFeedbackEnabled:!0,isScreenSize:!0,isTablet:!0,Responsive:!0,ScreenDimensions:!0,SQUIRCLE_MIN_RADIUS:!0,SQUIRCLE_SMOOTHING:!0,setHapticImplementation:!0,shadowStyle:!0,smoothCorners:!0,squircleApplies:!0,squircleHostRadius:!0,squirclePath:!0,triggerHaptic:!0,useScreenDimensions:!0,warnUnknownProps:!0};Object.defineProperty(exports,"APP_ICON_SIZES",{enumerable:!0,get:function(){return _index2.APP_ICON_SIZES}}),Object.defineProperty(exports,"AppIcon",{enumerable:!0,get:function(){return _index2.AppIcon}}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _index7.Breakpoints}}),Object.defineProperty(exports,"COLOR_NAMES",{enumerable:!0,get:function(){return _index6.COLOR_NAMES}}),Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _index2.CURATED_ICON_NAMES}}),Object.defineProperty(exports,"DURATION_NAMES",{enumerable:!0,get:function(){return _index6.DURATION_NAMES}}),Object.defineProperty(exports,"EASE_NAMES",{enumerable:!0,get:function(){return _index6.EASE_NAMES}}),Object.defineProperty(exports,"FLICK_TOLERANCE",{enumerable:!0,get:function(){return _index4.FLICK_TOLERANCE}}),Object.defineProperty(exports,"FONT_NAMES",{enumerable:!0,get:function(){return _index6.FONT_NAMES}}),Object.defineProperty(exports,"Form",{enumerable:!0,get:function(){return _index3.Form}}),Object.defineProperty(exports,"HookFormField",{enumerable:!0,get:function(){return _index3.HookFormField}}),Object.defineProperty(exports,"ICONSAX_SUFFIX",{enumerable:!0,get:function(){return _index2.ICONSAX_SUFFIX}}),Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _index2.ICON_NAMES}}),Object.defineProperty(exports,"LEADING_NAMES",{enumerable:!0,get:function(){return _index6.LEADING_NAMES}}),Object.defineProperty(exports,"LETTER_SPACING_NAMES",{enumerable:!0,get:function(){return _index6.LETTER_SPACING_NAMES}}),Object.defineProperty(exports,"NetworkStatusBanner",{enumerable:!0,get:function(){return _index5.NetworkStatusBanner}}),Object.defineProperty(exports,"PRESENCE_REDUCE_MOTION",{enumerable:!0,get:function(){return _index4.PRESENCE_REDUCE_MOTION}}),Object.defineProperty(exports,"PRESS_ANIMATION_PRESETS",{enumerable:!0,get:function(){return _index4.PRESS_ANIMATION_PRESETS}}),Object.defineProperty(exports,"RADIUS_NAMES",{enumerable:!0,get:function(){return _index6.RADIUS_NAMES}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _index7.Responsive}}),Object.defineProperty(exports,"SHADOW_NAMES",{enumerable:!0,get:function(){return _index6.SHADOW_NAMES}}),Object.defineProperty(exports,"SIZE_NAMES",{enumerable:!0,get:function(){return _index6.SIZE_NAMES}}),Object.defineProperty(exports,"SPACE_NAMES",{enumerable:!0,get:function(){return _index6.SPACE_NAMES}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _index7.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _index7.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _index7.ScreenDimensions}}),Object.defineProperty(exports,"TEXT_NAMES",{enumerable:!0,get:function(){return _index6.TEXT_NAMES}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _index6.ThemeProvider}}),Object.defineProperty(exports,"WEIGHT_NAMES",{enumerable:!0,get:function(){return _index6.WEIGHT_NAMES}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _index7.announce}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _index7.configureFeedback}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _index6.darkTheme}}),Object.defineProperty(exports,"defaultIcons",{enumerable:!0,get:function(){return _index2.defaultIcons}}),Object.defineProperty(exports,"deletePath",{enumerable:!0,get:function(){return _index3.deletePath}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _index7.feedback}}),Object.defineProperty(exports,"getColorMode",{enumerable:!0,get:function(){return _index6.getColorMode}}),Object.defineProperty(exports,"getPath",{enumerable:!0,get:function(){return _index3.getPath}}),Object.defineProperty(exports,"getTheme",{enumerable:!0,get:function(){return _index6.getTheme}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _index7.hapticForIntent}}),Object.defineProperty(exports,"initUI",{enumerable:!0,get:function(){return _initUI.initUI}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _index7.isFeedbackEnabled}}),Object.defineProperty(exports,"isFieldFilled",{enumerable:!0,get:function(){return _index3.isFieldFilled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _index7.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _index7.isTablet}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _index6.lightTheme}}),Object.defineProperty(exports,"mergeBrand",{enumerable:!0,get:function(){return _index6.mergeBrand}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _index6.radiusOf}}),Object.defineProperty(exports,"renderSlotIcon",{enumerable:!0,get:function(){return _index2.renderSlotIcon}}),Object.defineProperty(exports,"resetTheme",{enumerable:!0,get:function(){return _index6.resetTheme}}),Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _index6.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _index6.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _index6.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _index6.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _index6.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _index6.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _index6.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _index6.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _index6.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _index6.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _index6.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _index6.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _index6.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _index6.resolveTabsSize}}),Object.defineProperty(exports,"rules",{enumerable:!0,get:function(){return _index3.rules}}),Object.defineProperty(exports,"setColorMode",{enumerable:!0,get:function(){return _index6.setColorMode}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _index7.setHapticImplementation}}),Object.defineProperty(exports,"setPath",{enumerable:!0,get:function(){return _index3.setPath}}),Object.defineProperty(exports,"setTheme",{enumerable:!0,get:function(){return _index6.setTheme}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _index7.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _index7.smoothCorners}}),Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _index6.spaceOf}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _index7.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _index7.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _index7.squirclePath}}),Object.defineProperty(exports,"subscribeTheme",{enumerable:!0,get:function(){return _index6.subscribeTheme}}),Object.defineProperty(exports,"textOf",{enumerable:!0,get:function(){return _index6.textOf}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _index7.triggerHaptic}}),Object.defineProperty(exports,"useControllableState",{enumerable:!0,get:function(){return _index4.useControllableState}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return _index4.useDebounce}}),Object.defineProperty(exports,"useField",{enumerable:!0,get:function(){return _index3.useField}}),Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return _index3.useFieldArray}}),Object.defineProperty(exports,"useFieldChain",{enumerable:!0,get:function(){return _index4.useFieldChain}}),Object.defineProperty(exports,"useFlickGuard",{enumerable:!0,get:function(){return _index4.useFlickGuard}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return _index3.useForm}}),Object.defineProperty(exports,"useFormCompletion",{enumerable:!0,get:function(){return _index3.useFormCompletion}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return _index3.useFormContext}}),Object.defineProperty(exports,"useHookFormField",{enumerable:!0,get:function(){return _index3.useHookFormField}}),Object.defineProperty(exports,"useOptionalFormContext",{enumerable:!0,get:function(){return _index3.useOptionalFormContext}}),Object.defineProperty(exports,"usePresenceMotion",{enumerable:!0,get:function(){return _index4.usePresenceMotion}}),Object.defineProperty(exports,"usePressAnimation",{enumerable:!0,get:function(){return _index4.usePressAnimation}}),Object.defineProperty(exports,"useReducedMotion",{enumerable:!0,get:function(){return _index4.useReducedMotion}}),Object.defineProperty(exports,"useRefreshControl",{enumerable:!0,get:function(){return _index4.useRefreshControl}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _index7.useScreenDimensions}}),Object.defineProperty(exports,"useScrollDirection",{enumerable:!0,get:function(){return _index4.useScrollDirection}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _index6.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _index6.useThemeMode}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return _index4.useToggle}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _index7.warnUnknownProps}});var _index=require("./components/index.js");Object.keys(_index).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_index[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _index[e]}}))});var _index2=require("./components/AppIcon/index.js"),_index3=require("./form/index.js"),_index4=require("./hooks/index.js"),_initUI=require("./initUI.js"),_index5=require("./network/index.js"),_index6=require("./theme/index.js"),_index7=require("./utils/index.js");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initUI=void 0;var _index=require("./theme/index.js");const initUI=(e={})=>{e.defaultMode&&(0,_index.setColorMode)(e.defaultMode),e.light&&(0,_index.setTheme)(e.light,"light"),e.dark&&(0,_index.setTheme)(e.dark,"dark")};exports.initUI=initUI;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initUI=void 0;var _index=require("./theme/index.js");const initUI=(e={})=>{e.defaultMode&&(0,_index.setColorMode)(e.defaultMode),(e.brand||e.settings)&&(0,_index.setTheme)(e.brand,e.settings)};exports.initUI=initUI;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NetworkStatusBanner=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../hooks/usePresenceMotion.js"),_index=require("../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const NetworkStatusBanner=({message:e="You are offline. Some features may be unavailable.",position:t="top",style:a,disabled:r=!1,safeArea:o=!0})=>{const n=(0,_index.useTheme)(),i=(0,_usePresenceMotion.usePresenceMotion)(),s=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),u=o?"top"===t?s.top:s.bottom:0,[c,l]=(0,_react.useState)(0),d=c>0?c:56+u,{isConnected:m,isInternetReachable:p}=(0,_mobileCore.useNetworkStatus)(),_=!(r||m&&!1!==p),v=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,f=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,b=i.duration("normal");(0,_react.useEffect)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(v,{toValue:_?1:0,duration:n.motion.duration.normal,useNativeDriver:!0}),_reactNative.Animated.timing(f,{toValue:_?1:0,duration:b,useNativeDriver:!0})]).start()},[_,v,f,n.motion.duration.normal,b]);const g=(0,_react.useMemo)(()=>buildStyles(n),[n]),x=v.interpolate({inputRange:[0,1],outputRange:i.range("top"===t?-d:d,0)});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:_?"auto":"none",accessibilityRole:"alert",accessibilityLiveRegion:_?"polite":"none",onLayout:e=>l(e.nativeEvent.layout.height),style:[g.container,"top"===t?g.top:g.bottom,"top"===t?{paddingTop:n.spacing.sm+u}:{paddingBottom:n.spacing.sm+u},{backgroundColor:n.colors.error,opacity:f,transform:[{translateY:x}]},a],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:n.colors.onError,fontSize:n.typography.fontSize.sm,...(0,_index.fontFor)(n,"semibold"),textAlign:"center"},numberOfLines:2,children:e})})};exports.NetworkStatusBanner=NetworkStatusBanner;const buildStyles=e=>_reactNative.StyleSheet.create({container:{position:"absolute",left:0,right:0,paddingVertical:e.spacing.sm,paddingHorizontal:e.spacing.lg,zIndex:1e3,elevation:8},top:{top:0},bottom:{bottom:0}});var _default=exports.default=NetworkStatusBanner;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NetworkStatusBanner=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../hooks/usePresenceMotion.js"),_index=require("../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const NetworkStatusBanner=({message:e="You are offline. Some features may be unavailable.",position:t="top",style:a,disabled:r=!1,safeArea:o=!0})=>{const n=(0,_index.useTheme)(),i=(0,_usePresenceMotion.usePresenceMotion)(),s=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),u=o?"top"===t?s.top:s.bottom:0,[c,l]=(0,_react.useState)(0),d=c>0?c:56+u,{isConnected:m,isInternetReachable:p}=(0,_mobileCore.useNetworkStatus)(),_=!(r||m&&!1!==p),v=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,f=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,x=i.duration("default");(0,_react.useEffect)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(v,{toValue:_?1:0,duration:n.motion.duration.default,useNativeDriver:!0}),_reactNative.Animated.timing(f,{toValue:_?1:0,duration:x,useNativeDriver:!0})]).start()},[_,v,f,n.motion.duration.default,x]);const b=(0,_react.useMemo)(()=>buildStyles(n),[n]),N=v.interpolate({inputRange:[0,1],outputRange:i.range("top"===t?-d:d,0)});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:_?"auto":"none",accessibilityRole:"alert",accessibilityLiveRegion:_?"polite":"none",onLayout:e=>l(e.nativeEvent.layout.height),style:[b.container,"top"===t?b.top:b.bottom,"top"===t?{paddingTop:n.space.sm+u}:{paddingBottom:n.space.sm+u},{backgroundColor:n.colors.danger,opacity:f,transform:[{translateY:N}]},a],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:n.colors["on-danger"],fontSize:n.text.sm.size,...(0,_index.fontFor)(n,"semibold"),textAlign:"center"},numberOfLines:2,children:e})})};exports.NetworkStatusBanner=NetworkStatusBanner;const buildStyles=e=>_reactNative.StyleSheet.create({container:{position:"absolute",left:0,right:0,paddingVertical:e.space.sm,paddingHorizontal:e.space.lg,zIndex:1e3,elevation:8},top:{top:0},bottom:{bottom:0}});var _default=exports.default=NetworkStatusBanner;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useThemeMode=exports.useTheme=exports.ThemeProvider=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../hooks/useReducedMotion.js"),_merge=require("./merge.js"),_tokens=require("./tokens.js"),_jsxRuntime=require("react/jsx-runtime");const REDUCED_SPRING={damping:100,stiffness:1e3,mass:1},collapseMotion=e=>({...e,duration:{instant:0,fast:0,normal:0,slow:0,slower:0},spring:{gentle:REDUCED_SPRING,bouncy:REDUCED_SPRING,snappy:REDUCED_SPRING}}),isPreference=e=>"light"===e||"dark"===e||"system"===e,defaultValue={theme:_tokens.lightTheme,mode:"light",preference:"system",setPreference:()=>{},toggleColorMode:()=>{}},ThemeContext=(0,_react.createContext)(defaultValue),ThemeProvider=({children:e,initialPreference:r="system",persistKey:t,lightOverrides:o,darkOverrides:s})=>{const[n,c]=(0,_react.useState)(r),a=(0,_react.useRef)(!1);(0,_react.useEffect)(()=>{if(!t)return;let e=!0;return _mobileCore.Storage.getItem(t).then(r=>{e&&!a.current&&isPreference(r)&&c(r)}),()=>{e=!1}},[t]);const i=(0,_react.useCallback)(e=>{a.current=!0,c(e)},[]);(0,_react.useEffect)(()=>{t&&a.current&&_mobileCore.Storage.setItem(t,n)},[t,n]);const[u,m]=(0,_react.useState)(()=>_reactNative.Appearance.getColorScheme()??"light");(0,_react.useEffect)(()=>{const e=_reactNative.Appearance.addChangeListener(({colorScheme:e})=>{m(e??"light")});return()=>e.remove()},[]);const d="system"===n?u:n,l=(0,_useReducedMotion.useReducedMotion)(),h=(0,_react.useMemo)(()=>{const e="dark"===d?_tokens.darkTheme:_tokens.lightTheme,r="dark"===d?s:o,t=r?(0,_merge.mergeTheme)(e,r):e;return l?{...t,motion:collapseMotion(t.motion)}:t},[d,o,s,l]),_=(0,_react.useMemo)(()=>({theme:h,mode:d,preference:n,setPreference:i,toggleColorMode:()=>i(e=>"system"===e?"dark"===u?"light":"dark":"dark"===e?"light":"dark")}),[h,d,n,u,i]);return(0,_jsxRuntime.jsx)(ThemeContext.Provider,{value:_,children:e})};exports.ThemeProvider=ThemeProvider;const useTheme=()=>(0,_react.useContext)(ThemeContext).theme;exports.useTheme=useTheme;const useThemeMode=()=>{const e=(0,_react.useContext)(ThemeContext);return{mode:e.mode,preference:e.preference,setPreference:e.setPreference,toggleColorMode:e.toggleColorMode}};exports.useThemeMode=useThemeMode;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useThemeMode=exports.useTheme=exports.ThemeProvider=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../hooks/useReducedMotion.js"),_merge=require("./merge.js"),_tokens=require("./tokens.js"),_jsxRuntime=require("react/jsx-runtime");const REDUCED_SPRING={damping:100,stiffness:1e3,mass:1},collapseMotion=e=>({...e,duration:{instant:0,fast:0,default:0,slow:0,slower:0},spring:{gentle:REDUCED_SPRING,bouncy:REDUCED_SPRING,snappy:REDUCED_SPRING}}),isPreference=e=>"light"===e||"dark"===e||"system"===e,defaultValue={theme:_tokens.lightTheme,mode:"light",preference:"system",setPreference:()=>{},toggleColorMode:()=>{}},ThemeContext=(0,_react.createContext)(defaultValue),ThemeProvider=e=>{const{children:t,initialPreference:r="system",persistKey:o,brand:s,settings:n,...i}=e;if(Object.keys(i).length>0)throw new Error("ThemeProvider takes only these props: children, initialPreference, persistKey, brand, settings (mobile-ui 0.89.0). Run webority upgrade 0.89.0 to move an app.");const[c,a]=(0,_react.useState)(r),u=(0,_react.useRef)(!1);(0,_react.useEffect)(()=>{if(!o)return;let e=!0;return _mobileCore.Storage.getItem(o).then(t=>{e&&!u.current&&isPreference(t)&&a(t)}),()=>{e=!1}},[o]);const m=(0,_react.useCallback)(e=>{u.current=!0,a(e)},[]);(0,_react.useEffect)(()=>{o&&u.current&&_mobileCore.Storage.setItem(o,c)},[o,c]);const[d,l]=(0,_react.useState)(()=>_reactNative.Appearance.getColorScheme()??"light");(0,_react.useEffect)(()=>{const e=_reactNative.Appearance.addChangeListener(({colorScheme:e})=>{l(e??"light")});return()=>e.remove()},[]);const h="system"===c?d:c,_=(0,_useReducedMotion.useReducedMotion)(),g=(0,_react.useMemo)(()=>{const e="dark"===h?_tokens.darkTheme:_tokens.lightTheme,t=s||n?(0,_merge.mergeBrand)(e,s,n):e;return _?{...t,motion:collapseMotion(t.motion)}:t},[h,s,n,_]),p=(0,_react.useMemo)(()=>({theme:g,mode:h,preference:c,setPreference:m,toggleColorMode:()=>m(e=>"system"===e?"dark"===d?"light":"dark":"dark"===e?"light":"dark")}),[g,h,c,d,m]);return(0,_jsxRuntime.jsx)(ThemeContext.Provider,{value:p,children:t})};exports.ThemeProvider=ThemeProvider;const useTheme=()=>(0,_react.useContext)(ThemeContext).theme;exports.useTheme=useTheme;const useThemeMode=()=>{const e=(0,_react.useContext)(ThemeContext);return{mode:e.mode,preference:e.preference,setPreference:e.setPreference,toggleColorMode:e.toggleColorMode}};exports.useThemeMode=useThemeMode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateComponentTokens=exports.resolveTabsSize=exports.resolveSwitchSize=exports.resolveSliderSize=exports.resolveSegmentedControlSize=exports.resolveRadioSize=exports.resolveOtpInputSize=exports.resolveListItemSize=exports.resolveFloatingActionButtonSize=exports.resolveFieldSize=exports.resolveEmptyStateSize=exports.resolveChipSize=exports.resolveCheckboxSize=exports.resolveButtonSize=exports.resolveBadgeSize=void 0;var _scale=require("./scale.js");const resolveSize=(e,t,o,s)=>{const i={};for(const n of Object.keys(o)){const a=t[n],p=`${s}.${n}`;switch(o[n]){case"space":i[n]=(0,_scale.spaceOf)(e,a,p);break;case"text":i[n]=(0,_scale.fontSizeOf)(e,a,p);break;case"radius":i[n]=(0,_scale.radiusOf)(e,a,p);break;case"px":if("number"!=typeof a)throw new Error(`${p} is ${JSON.stringify(a)}; it takes a number of pixels.`);i[n]=a}}return i},BUTTON={paddingX:"space",paddingY:"space",minHeight:"px",text:"text",radius:"radius",icon:"px",badgeIcon:"px"},FIELD={paddingX:"space",paddingY:"space",minHeight:"px",text:"text",radius:"radius",icon:"px",labelText:"text",labelGap:"space",messageText:"text",messageGap:"space"},EMPTY_STATE={icon:"px",titleText:"text",descriptionText:"text",paddingY:"space",titleGap:"space",descriptionGap:"space"},LIST_ITEM={paddingY:"space",titleText:"text",subtitleText:"text",minHeight:"px"},BADGE={text:"text",minWidth:"px",height:"px",paddingX:"space",dotSize:"px"},CHIP={paddingX:"space",paddingY:"space",text:"text",minHeight:"px",closeSize:"px",closeText:"text",gap:"space",icon:"px"},CHECKBOX={boxSize:"px"},RADIO={outer:"px",inner:"px"},SWITCH={trackWidth:"px",trackHeight:"px",thumbSize:"px",padding:"px"},OTP_INPUT={cell:"px",text:"text",radius:"radius",gap:"space"},SEGMENTED_CONTROL={height:"px",text:"text",paddingX:"space",icon:"px"},TABS={text:"text",paddingY:"space",paddingX:"space",scrollablePaddingX:"space",icon:"px"},SLIDER={trackHeight:"px",thumbDiameter:"px"},FAB={diameter:"px",icon:"px",text:"text",labelPaddingX:"space"},resolveButtonSize=(e,t)=>resolveSize(e,e.components.button[t],BUTTON,`components.button.${t}`);exports.resolveButtonSize=resolveButtonSize;const resolveFieldSize=(e,t)=>resolveSize(e,e.components.field[t],FIELD,`components.field.${t}`);exports.resolveFieldSize=resolveFieldSize;const resolveEmptyStateSize=(e,t)=>resolveSize(e,e.components.emptyState[t],EMPTY_STATE,`components.emptyState.${t}`);exports.resolveEmptyStateSize=resolveEmptyStateSize;const resolveListItemSize=(e,t)=>resolveSize(e,e.components.listItem[t],LIST_ITEM,`components.listItem.${t}`);exports.resolveListItemSize=resolveListItemSize;const resolveBadgeSize=(e,t)=>resolveSize(e,e.components.badge[t],BADGE,`components.badge.${t}`);exports.resolveBadgeSize=resolveBadgeSize;const resolveChipSize=(e,t)=>resolveSize(e,e.components.chip[t],CHIP,`components.chip.${t}`);exports.resolveChipSize=resolveChipSize;const resolveCheckboxSize=(e,t)=>resolveSize(e,e.components.checkbox[t],CHECKBOX,`components.checkbox.${t}`);exports.resolveCheckboxSize=resolveCheckboxSize;const resolveRadioSize=(e,t)=>resolveSize(e,e.components.radio[t],RADIO,`components.radio.${t}`);exports.resolveRadioSize=resolveRadioSize;const resolveSwitchSize=(e,t)=>resolveSize(e,e.components.switch[t],SWITCH,`components.switch.${t}`);exports.resolveSwitchSize=resolveSwitchSize;const resolveOtpInputSize=(e,t)=>resolveSize(e,e.components.otpInput[t],OTP_INPUT,`components.otpInput.${t}`);exports.resolveOtpInputSize=resolveOtpInputSize;const resolveSegmentedControlSize=(e,t)=>resolveSize(e,e.components.segmentedControl[t],SEGMENTED_CONTROL,`components.segmentedControl.${t}`);exports.resolveSegmentedControlSize=resolveSegmentedControlSize;const resolveTabsSize=(e,t)=>resolveSize(e,e.components.tabs[t],TABS,`components.tabs.${t}`);exports.resolveTabsSize=resolveTabsSize;const resolveSliderSize=(e,t)=>resolveSize(e,e.components.slider[t],SLIDER,`components.slider.${t}`);exports.resolveSliderSize=resolveSliderSize;const resolveFloatingActionButtonSize=(e,t)=>resolveSize(e,e.components.floatingActionButton[t],FAB,`components.floatingActionButton.${t}`);exports.resolveFloatingActionButtonSize=resolveFloatingActionButtonSize;const THREE=["sm","md","lg"],TWO=["sm","md"],FIVE=["xs","sm","md","lg","xl"],validateComponentTokens=e=>{const t=e.components;for(const t of FIVE)resolveButtonSize(e,t);for(const o of THREE)resolveFieldSize(e,o),resolveEmptyStateSize(e,o),resolveListItemSize(e,o),resolveCheckboxSize(e,o),resolveRadioSize(e,o),resolveSwitchSize(e,o),resolveOtpInputSize(e,o),resolveSegmentedControlSize(e,o),resolveTabsSize(e,o),resolveSliderSize(e,o),resolveFloatingActionButtonSize(e,o),(0,_scale.radiusOf)(e,t.searchBar[o].radius,`components.searchBar.${o}.radius`);for(const t of TWO)resolveBadgeSize(e,t),resolveChipSize(e,t);(0,_scale.spaceOf)(e,t.checkbox.labelGap,"components.checkbox.labelGap"),(0,_scale.spaceOf)(e,t.radio.labelGap,"components.radio.labelGap"),(0,_scale.spaceOf)(e,t.segmentedControl.trackPadding,"components.segmentedControl.trackPadding"),(0,_scale.spaceOf)(e,t.segmentedControl.pillInset,"components.segmentedControl.pillInset"),(0,_scale.spaceOf)(e,t.tabs.iconGap,"components.tabs.iconGap"),(0,_scale.spaceOf)(e,t.tabs.trackPadding,"components.tabs.trackPadding"),(0,_scale.spaceOf)(e,t.tabs.pillInset,"components.tabs.pillInset"),(0,_scale.spaceOf)(e,t.tabs.badgeGap,"components.tabs.badgeGap"),(0,_scale.spaceOf)(e,t.floatingActionButton.edgeOffset,"components.floatingActionButton.edgeOffset"),(0,_scale.spaceOf)(e,t.floatingActionButton.bottomOffset,"components.floatingActionButton.bottomOffset"),(0,_scale.spaceOf)(e,t.floatingActionButton.secondaryGap,"components.floatingActionButton.secondaryGap"),(0,_scale.fontSizeOf)(e,t.toast.iconGlyphText,"components.toast.iconGlyphText"),void 0!==t.segmentedControl.radius&&(0,_scale.radiusOf)(e,t.segmentedControl.radius,"components.segmentedControl.radius"),void 0!==t.tabs.radius&&(0,_scale.radiusOf)(e,t.tabs.radius,"components.tabs.radius")};exports.validateComponentTokens=validateComponentTokens;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateComponentTokens=exports.resolveTabsSize=exports.resolveSwitchSize=exports.resolveSliderSize=exports.resolveSegmentedControlSize=exports.resolveRadioSize=exports.resolveOtpInputSize=exports.resolveListItemSize=exports.resolveFloatingActionButtonSize=exports.resolveFieldSize=exports.resolveEmptyStateSize=exports.resolveChipSize=exports.resolveCheckboxSize=exports.resolveButtonSize=exports.resolveBadgeSize=void 0;var _scale=require("./scale.js"),_tokensGenerated=require("./tokens.generated.js");const SIZE_KEYS=["xs","sm","md","lg","xl"],kindOf=(e,o,s)=>{const t=_tokensGenerated.COMPONENT_KINDS[e][o];if(!t)throw new Error(`components.${e}${s?`.${s}`:""}.${o} has no kind in COMPONENT_KINDS.`);return t},pixelsOf=(e,o,s,t)=>{if("space"===o||"text"===o||"radius"===o)return(0,_scale.scaleStep)(e,o,String(s),t);if("number"!=typeof s)throw new Error(`${t} is ${JSON.stringify(s)}; it takes a number.`);return s},resolveSize=(e,o,s)=>{const t=e.components[o][s],r={};for(const i of Object.keys(t))r[i]=pixelsOf(e,kindOf(o,i,s),t[i],`components.${o}.${s}.${i}`);return r},resolveButtonSize=(e,o)=>resolveSize(e,"button",o);exports.resolveButtonSize=resolveButtonSize;const resolveFieldSize=(e,o)=>resolveSize(e,"field",o);exports.resolveFieldSize=resolveFieldSize;const resolveEmptyStateSize=(e,o)=>resolveSize(e,"empty-state",o);exports.resolveEmptyStateSize=resolveEmptyStateSize;const resolveListItemSize=(e,o)=>resolveSize(e,"list-item",o);exports.resolveListItemSize=resolveListItemSize;const resolveBadgeSize=(e,o)=>resolveSize(e,"badge",o);exports.resolveBadgeSize=resolveBadgeSize;const resolveChipSize=(e,o)=>resolveSize(e,"chip",o);exports.resolveChipSize=resolveChipSize;const resolveCheckboxSize=(e,o)=>resolveSize(e,"checkbox",o);exports.resolveCheckboxSize=resolveCheckboxSize;const resolveRadioSize=(e,o)=>resolveSize(e,"radio",o);exports.resolveRadioSize=resolveRadioSize;const resolveSwitchSize=(e,o)=>resolveSize(e,"switch",o);exports.resolveSwitchSize=resolveSwitchSize;const resolveOtpInputSize=(e,o)=>resolveSize(e,"otp-input",o);exports.resolveOtpInputSize=resolveOtpInputSize;const resolveSegmentedControlSize=(e,o)=>resolveSize(e,"segmented-control",o);exports.resolveSegmentedControlSize=resolveSegmentedControlSize;const resolveTabsSize=(e,o)=>resolveSize(e,"tabs",o);exports.resolveTabsSize=resolveTabsSize;const resolveSliderSize=(e,o)=>resolveSize(e,"slider",o);exports.resolveSliderSize=resolveSliderSize;const resolveFloatingActionButtonSize=(e,o)=>resolveSize(e,"floating-action-button",o);exports.resolveFloatingActionButtonSize=resolveFloatingActionButtonSize;const validateComponentTokens=e=>{for(const o of Object.keys(_tokensGenerated.COMPONENT_KINDS)){const s=e.components[o];for(const t of Object.keys(s))SIZE_KEYS.includes(t)?resolveSize(e,o,t):pixelsOf(e,kindOf(o,t),s[t],`components.${o}.${t}`)}};exports.validateComponentTokens=validateComponentTokens;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Gradient",{enumerable:!0,get:function(){return _Gradient.Gradient}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _ThemeContext.ThemeProvider}}),Object.defineProperty(exports,"createAnimatedValue",{enumerable:!0,get:function(){return _animatedValue.createAnimatedValue}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _tokens.darkTheme}}),Object.defineProperty(exports,"fontFor",{enumerable:!0,get:function(){return _textStyle.fontFor}}),Object.defineProperty(exports,"fontSizeOf",{enumerable:!0,get:function(){return _scale.fontSizeOf}}),exports.getTheme=exports.getColorMode=void 0,Object.defineProperty(exports,"gradientAngle",{enumerable:!0,get:function(){return _Gradient.gradientAngle}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _tokens.lightTheme}}),Object.defineProperty(exports,"mergeTheme",{enumerable:!0,get:function(){return _merge.mergeTheme}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _scale.radiusOf}}),exports.resetTheme=void 0,Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _componentSizes.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _componentSizes.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _componentSizes.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _componentSizes.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _componentSizes.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _componentSizes.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _componentSizes.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _componentSizes.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _componentSizes.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _componentSizes.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _componentSizes.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _componentSizes.resolveTabsSize}}),exports.setColorMode=void 0,Object.defineProperty(exports,"setNativeValue",{enumerable:!0,get:function(){return _animatedValue.setNativeValue}}),exports.setTheme=void 0,Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _scale.spaceOf}}),exports.subscribeTheme=void 0,Object.defineProperty(exports,"toBackgroundImage",{enumerable:!0,get:function(){return _Gradient.toBackgroundImage}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _ThemeContext.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _ThemeContext.useThemeMode}}),Object.defineProperty(exports,"validateComponentTokens",{enumerable:!0,get:function(){return _componentSizes.validateComponentTokens}});var _merge=require("./merge.js"),_tokens=require("./tokens.js"),_animatedValue=require("./animatedValue.js"),_componentSizes=require("./componentSizes.js"),_Gradient=require("./Gradient.js"),_scale=require("./scale.js"),_ThemeContext=require("./ThemeContext.js"),_textStyle=require("./textStyle.js");let lightOverridesGlobal,darkOverridesGlobal,currentMode="light",currentTheme=_tokens.lightTheme;const subscribers=new Set,recompute=()=>{const e="dark"===currentMode?_tokens.darkTheme:_tokens.lightTheme,t="dark"===currentMode?darkOverridesGlobal:lightOverridesGlobal;currentTheme=t?(0,_merge.mergeTheme)(e,t):e,subscribers.forEach(e=>e())},setTheme=(e,t)=>{t&&(currentMode=t),"dark"===currentMode?darkOverridesGlobal=e:lightOverridesGlobal=e,recompute()};exports.setTheme=setTheme;const setColorMode=e=>{currentMode=e,recompute()};exports.setColorMode=setColorMode;const getColorMode=()=>currentMode;exports.getColorMode=getColorMode;const getTheme=()=>currentTheme;exports.getTheme=getTheme;const resetTheme=()=>{currentMode="light",lightOverridesGlobal=void 0,darkOverridesGlobal=void 0,recompute()};exports.resetTheme=resetTheme;const subscribeTheme=e=>(subscribers.add(e),()=>{subscribers.delete(e)});exports.subscribeTheme=subscribeTheme;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"COLOR_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.COLOR_NAMES}}),Object.defineProperty(exports,"DURATION_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.DURATION_NAMES}}),Object.defineProperty(exports,"EASE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.EASE_NAMES}}),Object.defineProperty(exports,"FONT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.FONT_NAMES}}),Object.defineProperty(exports,"Gradient",{enumerable:!0,get:function(){return _Gradient.Gradient}}),Object.defineProperty(exports,"LEADING_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.LEADING_NAMES}}),Object.defineProperty(exports,"LETTER_SPACING_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.LETTER_SPACING_NAMES}}),Object.defineProperty(exports,"RADIUS_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.RADIUS_NAMES}}),Object.defineProperty(exports,"SHADOW_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SHADOW_NAMES}}),Object.defineProperty(exports,"SIZE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SIZE_NAMES}}),Object.defineProperty(exports,"SPACE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SPACE_NAMES}}),Object.defineProperty(exports,"TEXT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.TEXT_NAMES}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _ThemeContext.ThemeProvider}}),Object.defineProperty(exports,"WEIGHT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.WEIGHT_NAMES}}),Object.defineProperty(exports,"createAnimatedValue",{enumerable:!0,get:function(){return _animatedValue.createAnimatedValue}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _tokens.darkTheme}}),Object.defineProperty(exports,"fontFor",{enumerable:!0,get:function(){return _textStyle.fontFor}}),exports.getTheme=exports.getColorMode=void 0,Object.defineProperty(exports,"gradientAngle",{enumerable:!0,get:function(){return _Gradient.gradientAngle}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _tokens.lightTheme}}),Object.defineProperty(exports,"mergeBrand",{enumerable:!0,get:function(){return _merge.mergeBrand}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _scale.radiusOf}}),exports.resetTheme=void 0,Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _componentSizes.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _componentSizes.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _componentSizes.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _componentSizes.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _componentSizes.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _componentSizes.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _componentSizes.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _componentSizes.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _componentSizes.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _componentSizes.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _componentSizes.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _componentSizes.resolveTabsSize}}),exports.setColorMode=void 0,Object.defineProperty(exports,"setNativeValue",{enumerable:!0,get:function(){return _animatedValue.setNativeValue}}),exports.setTheme=void 0,Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _scale.spaceOf}}),exports.subscribeTheme=void 0,Object.defineProperty(exports,"textOf",{enumerable:!0,get:function(){return _scale.textOf}}),Object.defineProperty(exports,"toBackgroundImage",{enumerable:!0,get:function(){return _Gradient.toBackgroundImage}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _ThemeContext.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _ThemeContext.useThemeMode}}),Object.defineProperty(exports,"validateComponentTokens",{enumerable:!0,get:function(){return _componentSizes.validateComponentTokens}});var _merge=require("./merge.js"),_tokens=require("./tokens.js"),_animatedValue=require("./animatedValue.js"),_componentSizes=require("./componentSizes.js"),_Gradient=require("./Gradient.js"),_scale=require("./scale.js"),_ThemeContext=require("./ThemeContext.js"),_textStyle=require("./textStyle.js"),_tokensGenerated=require("./tokens.generated.js");let brandGlobal,settingsGlobal,currentMode="light",currentTheme=_tokens.lightTheme;const subscribers=new Set,recompute=()=>{const e="dark"===currentMode?_tokens.darkTheme:_tokens.lightTheme;currentTheme=brandGlobal||settingsGlobal?(0,_merge.mergeBrand)(e,brandGlobal,settingsGlobal):e,subscribers.forEach(e=>e())},setTheme=(e,t)=>{brandGlobal=e,settingsGlobal=t,recompute()};exports.setTheme=setTheme;const setColorMode=e=>{currentMode=e,recompute()};exports.setColorMode=setColorMode;const getColorMode=()=>currentMode;exports.getColorMode=getColorMode;const getTheme=()=>currentTheme;exports.getTheme=getTheme;const resetTheme=()=>{currentMode="light",brandGlobal=void 0,settingsGlobal=void 0,recompute()};exports.resetTheme=resetTheme;const subscribeTheme=e=>(subscribers.add(e),()=>{subscribers.delete(e)});exports.subscribeTheme=subscribeTheme;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeTheme=void 0;var _componentSizes=require("./componentSizes.js"),_retiredThemeKeys=require("./retiredThemeKeys.js"),_toneInk=require("./toneInk.js");const isPlainObject=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),SIZES=["xs","sm","md","lg","xl"],walkRetired=(e,r,o)=>{if(!isPlainObject(e)||0===r.length)return[];const[s,...t]=r,n="<size>"===s?Object.keys(e).filter(e=>SIZES.includes(e)):[s],i=[];for(const r of n){if(!Object.hasOwn(e,r))continue;const s=[...o,r],n=e[r];0===t.length?void 0!==n&&i.push(s):i.push(...walkRetired(n,t,s))}return i},refuseRetiredKeys=e=>{const r=[];for(const o of _retiredThemeKeys.RETIRED_THEME_KEYS)for(const s of walkRetired(e,o.path.split("."),[])){const e=s.join("."),t=s.slice(0,-1).join(".");if(null===o.to)r.push(`- ${e}: removed; ${o.hint}`);else if(o.scale){const s="fontSize"===o.scale?"base":"md";r.push(`- ${e}: now ${t}.${o.to}, a ${o.scale} scale name such as '${s}'`)}else r.push(`- ${e}: now ${t}.${o.to}`)}if(0!==r.length)throw new Error([`Theme overrides use keys mobile-ui ${_retiredThemeKeys.RETIRED_THEME_KEYS_RELEASE} retired. Run \`mobile-tools codemod theme-keys\` in the app folder, then fix what it lists:`,...r].join("\n"))},deepMerge=(e,r)=>{if(!isPlainObject(e)||!isPlainObject(r))return void 0!==r?r:e;const o={...e};for(const s of Object.keys(r)){const t=r[s],n=e[s];isPlainObject(t)&&isPlainObject(n)?o[s]=deepMerge(n,t):void 0!==t&&(o[s]=t)}return o},TONES=["primary","success","warning","error","info"],ON_INK={primary:"onPrimary",success:"onSuccess",warning:"onWarning",error:"onError",info:"onInfo"},withDerivedTones=(e,r,o)=>{const s=o?.colors;if(!s||!e?.colors?.toneText)return e;const{background:t}=e.colors,n=[t.primary,t.secondary,t.tertiary],i={},c={};let l={};for(const o of TONES){const t="string"==typeof s[o];let a=e.colors[o];if(t||"string"==typeof s[ON_INK[o]]){const r=(0,_toneInk.deriveSolidFill)(a,e.colors[ON_INK[o]]);r!==a&&(i[o]=r,a=r)}if(t&&"string"!=typeof s.toneText?.[o]&&(c[o]=(0,_toneInk.deriveToneInk)(a,n,r.mode)),"primary"===o&&(t||void 0!==i.primary)){const o=(0,_toneInk.deriveStateFills)(a,e.colors.onPrimary,{fill:r.colors.primary,hover:r.colors.primaryHover,pressed:r.colors.primaryPressed});l={..."string"==typeof s.primaryHover?{}:{primaryHover:o.hover},..."string"==typeof s.primaryPressed?{}:{primaryPressed:o.pressed}}}}return 0===Object.keys(i).length&&0===Object.keys(c).length&&0===Object.keys(l).length?e:{...e,colors:{...e.colors,...i,...l,toneText:{...e.colors.toneText,...c}}}},mergeTheme=(e,r)=>{refuseRetiredKeys(r);const o=withDerivedTones(deepMerge(e,r),e,r);return(0,_componentSizes.validateComponentTokens)(o),o};exports.mergeTheme=mergeTheme;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeBrand=void 0;var _componentSizes=require("./componentSizes.js"),_tokensGenerated=require("./tokens.generated.js"),_toneInk=require("./toneInk.js");const HINT="Run webority upgrade to rename old names.",BRAND_KEYS=["colors","radius","font"],COLOR_MODES=["light","dark"],FIXED_RADII=["none","pill"],RADIUS_ALLOWED="sm, md, lg, xl",SETTINGS_KEYS=["icons","gradients","textVariants","maxFontSizeMultiplier","components"],COMPONENT_SETTING_KEYS={field:{defaultVariant:!0,requiredMarker:!0},input:{defaultVariant:!0,defaultLabelMode:!0,tintLabelOnFocus:!0,shakeOnError:!0},"search-bar":{defaultVariant:!0},select:{defaultVariant:!0},"otp-input":{shakeOnError:!0},"option-sheet":{selectedMarker:!0},"profile-picker":{defaultTone:!0,defaultVariant:!0,defaultAvatarTone:!0},slider:{thumbPressAnimation:!0},rating:{pulseOnPress:!0},stepper:{pulseAnimation:!0},tooltip:{enableScaleAnimation:!0},toast:{enableSwipeDismiss:!0,defaultDurationMs:!0}},isPlainObject=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),validateBrand=e=>{if(void 0===e)return;if(!isPlainObject(e))throw new Error(`A brand is an object of colors, radius and font; got ${typeof e}. ${HINT}`);for(const o of Object.keys(e))if(!BRAND_KEYS.includes(o))throw new Error(`A brand sets colors, radius and font only; ${o} is not allowed (allowed: colors, radius, font). ${HINT}`);const o=e.colors;if(void 0!==o&&!isPlainObject(o))throw new Error(`A brand's colors is an object of light and dark; got ${typeof o}. ${HINT}`);for(const e of Object.keys(o??{})){if(!COLOR_MODES.includes(e))throw new Error(`A brand sets colours under light and dark only; ${e} is not allowed (allowed: light, dark). ${HINT}`);const t=o[e];for(const e of Object.keys(t)){if(!_tokensGenerated.COLOR_NAMES.includes(e))throw new Error(`unknown colour ${e}; allowed: ${_tokensGenerated.COLOR_NAMES.join(", ")}. ${HINT}`);if(void 0!==t[e]&&"string"!=typeof t[e])throw new Error(`colour ${e} must be a string; got ${typeof t[e]}.`)}}const t=e.radius;if(void 0!==t&&!isPlainObject(t))throw new Error(`A brand's radius is an object of radius names; got ${typeof t}. ${HINT}`);for(const e of Object.keys(t??{})){const o=t[e];if(!_tokensGenerated.RADIUS_NAMES.includes(e))throw new Error(`unknown radius ${e}; allowed: ${RADIUS_ALLOWED}. ${HINT}`);if(FIXED_RADII.includes(e))throw new Error(`radius ${e} is fixed by the library; allowed: ${RADIUS_ALLOWED}.`);if("number"!=typeof o||!Number.isFinite(o))throw new Error(`radius ${e} must be a number; got ${typeof o}.`)}const n=e.font;if(void 0!==n&&!isPlainObject(n))throw new Error(`A brand's font is an object of font names; got ${typeof n}. ${HINT}`);for(const e of Object.keys(n??{})){if(!_tokensGenerated.FONT_NAMES.includes(e))throw new Error(`unknown font ${e}; allowed: ${_tokensGenerated.FONT_NAMES.join(", ")}. ${HINT}`);const o=n[e];if(!isPlainObject(o))throw new Error(`font ${e} must be an object of weights; got ${typeof o}. ${HINT}`);for(const t of Object.keys(o)){if(!_tokensGenerated.WEIGHT_NAMES.includes(t))throw new Error(`unknown font weight ${t} in font ${e}; allowed: ${_tokensGenerated.WEIGHT_NAMES.join(", ")}. ${HINT}`);const n=o[t];if("string"!=typeof n||0===n.length)throw new Error(`font ${e} weight ${t} must be a non-empty string.`)}}},validateSettings=e=>{if(void 0===e)return;if(!isPlainObject(e))throw new Error(`Theme settings is an object; got ${typeof e}. ${HINT}`);for(const o of Object.keys(e))if(!SETTINGS_KEYS.includes(o))throw new Error(`Theme settings take ${SETTINGS_KEYS.join(", ")} only; ${o} is not allowed. ${HINT}`);const o=e.components;if(void 0===o)return;if(!isPlainObject(o))throw new Error(`Theme settings components is an object of component names; got ${typeof o}. ${HINT}`);const t=COMPONENT_SETTING_KEYS;for(const e of Object.keys(o)){if(!Object.keys(t).includes(e))throw new Error(`unknown component ${e} in theme settings; allowed: ${Object.keys(COMPONENT_SETTING_KEYS).join(", ")}. ${HINT}`);const n=o[e];if(void 0===n)continue;if(!isPlainObject(n))throw new Error(`theme settings for ${e} is an object; got ${typeof n}. ${HINT}`);const r=t[e];for(const o of Object.keys(n))if(!(o in r))throw new Error(`unknown setting ${o} for ${e}; allowed: ${Object.keys(r).join(", ")}. ${HINT}`)}},TONES=["primary","success","warning","danger","info"],mergeBrand=(e,o,t)=>{validateBrand(o),validateSettings(t);const n=Object.fromEntries(Object.entries(o?.colors?.[e.mode]??{}).filter(([,e])=>void 0!==e)),r={...e.colors,...n},s={...e.radius,...o?.radius},i={...e.font};for(const t of Object.keys(o?.font??{}))i[t]={...e.font[t],...o?.font?.[t]};const a=[r.bg,r["bg-subtle"],r["bg-muted"]],l={};for(const o of TONES){const t="string"==typeof n[o];let s=r[o];if(t||"string"==typeof n[`on-${o}`]){const e=(0,_toneInk.deriveSolidFill)(s,r[`on-${o}`]);e!==s&&(l[o]=e,s=e)}if(t&&"string"!=typeof n[`${o}-text`]&&(l[`${o}-text`]=(0,_toneInk.deriveToneInk)(s,a,e.mode)),"primary"===o&&(t||void 0!==l.primary)){const o=(0,_toneInk.deriveStateFills)(s,r["on-primary"],{fill:e.colors.primary,hover:e.colors["primary-hover"],pressed:e.colors["primary-pressed"]});"string"!=typeof n["primary-hover"]&&(l["primary-hover"]=o.hover),"string"!=typeof n["primary-pressed"]&&(l["primary-pressed"]=o.pressed)}}const c={},d=new Set([...Object.keys(e.settings.components),...Object.keys(t?.components??{})]);for(const o of d)c[o]={...e.settings.components[o],...t?.components?.[o]};const f=t?.maxFontSizeMultiplier??e.settings.maxFontSizeMultiplier,u={icons:{...e.settings.icons,...t?.icons},gradients:{...e.settings.gradients,...t?.gradients},textVariants:{...e.settings.textVariants,...t?.textVariants},components:c,...void 0===f?{}:{maxFontSizeMultiplier:f}},p={...e,colors:{...r,...l},radius:s,font:i,settings:u};return(0,_componentSizes.validateComponentTokens)(p),p};exports.mergeBrand=mergeBrand;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.spaceOf=exports.radiusOf=exports.fontSizeOf=void 0;const resolve=(e,s,o,r)=>{const t=e[o];if("number"!=typeof t)throw new Error(`${r} is ${JSON.stringify(o)}, which is not a ${s} name. Use one of: ${Object.keys(e).join(", ")}.`);return t},spaceOf=(e,s,o)=>resolve(e.spacing,"spacing",s,o);exports.spaceOf=spaceOf;const fontSizeOf=(e,s,o)=>resolve(e.typography.fontSize,"text size",s,o);exports.fontSizeOf=fontSizeOf;const radiusOf=(e,s,o)=>resolve(e.radius,"corner",s,o);exports.radiusOf=radiusOf;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.textOf=exports.spaceOf=exports.scaleStep=exports.radiusOf=void 0;const scaleStep=(e,t,s,r)=>{const a="space"===t?e.space:"radius"===t?e.radius:e.text,c=a[s],o="text"===t?c?.size:c;if("number"!=typeof o){const e=Object.keys(a).join(", ");throw new Error(`${r?`${r} is `:""}${JSON.stringify(s)}, which is not a ${"text"===t?"text size":"radius"===t?"corner":"space"} name. Use one of: ${e}.`)}return o};exports.scaleStep=scaleStep;const spaceOf=(e,t)=>scaleStep(e,"space",t);exports.spaceOf=spaceOf;const radiusOf=(e,t)=>scaleStep(e,"radius",t);exports.radiusOf=radiusOf;const textOf=(e,t)=>scaleStep(e,"text",t);exports.textOf=textOf;