@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.useBottomSheet=exports.default=exports.BottomSheet=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var a,r,n=Object.defineProperty,o={__proto__:null,default:e};if(Object(e)!==e)return o;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,o)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((a=n&&Object.getOwnPropertyDescriptor(e,r))&&(a.get||a.set)?n(o,r,a):o[r]=e[r]);return o}const TABLET_MIN_SHORT_SIDE=600,DIALOG_MAX_WIDTH=560,BottomSheetContext=(0,_react.createContext)(null),useBottomSheet=()=>{const e=(0,_react.useContext)(BottomSheetContext);if(!e)throw new Error("useBottomSheet must be used inside a <BottomSheet>.");return e};exports.useBottomSheet=useBottomSheet;const SPRING_CONFIG={damping:20,stiffness:240,mass:1},CLOSE_VELOCITY_THRESHOLD=1e3,DRAG_ACTIVATION_OFFSET=10,BottomSheet=exports.BottomSheet=(0,_react.forwardRef)((e,t)=>{const{snapPoints:a,index:r,onChange:n,onAnimate:o,onAfterClose:s,enablePanDownToClose:i=!0,enableBackdropPress:c=!0,confirmDismiss:l,scrollable:u=!1,scrollRef:d,onScroll:_,onContentSizeChange:h,onScrollLayout:m,scrollEventThrottle:v,keyboardBehavior:f="shift",mode:b="modal",presentation:p="sheet",handleIndicatorStyle:S,containerStyle:R,header:g,footer:x,headerStyle:y,footerStyle:N,children:w,accessibilityLabel:C,accessibilityViewIsModal:j,testID:M}=e,k=(0,_index.useTheme)(),O=(0,_usePresenceMotion.usePresenceMotion)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[T,P]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").height),[E,A]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),H=(0,_react.useCallback)(e=>{const{height:t,width:a}=e.nativeEvent.layout;t>0&&P(e=>e===t?e:t),a>0&&A(e=>e===a?e:a)},[]),B=(0,_reactNative.useWindowDimensions)(),D="dialog"===p||"auto"===p&&Math.min(B.width,B.height)>=600,G=Math.min(560,E-2*k.spacing.xl),[V,q]=(0,_ModalSafeArea.useModalInsets)(),L="modal"===b?V.top:I.top,F="modal"===b?V.bottom:I.bottom,J=a.includes("content"),[W,z]=useMeasuredHeight(),[Y,$]=useMeasuredHeight(),[K,U,X]=useMeasuredHeight(),[Q,Z]=useMeasuredHeight(),ee=D?k.spacing.md:W,te=J?Math.min(ee+(null!=g?Y:0)+K+(null!=x?Q:0)+F,T-L):0,ae=(0,_react.useCallback)((e,t)=>{J&&X(t),h?.(e,t)},[J,h,X]),re=(0,_react.useMemo)(()=>resolveSnapPoints(a,T,te),[a,T,te]),ne=T,oe=re[re.length-1]??0,se=(0,_reactNativeReanimated.useSharedValue)(ne),ie=(0,_reactNativeReanimated.useSharedValue)(ne),ce=(0,_reactNativeReanimated.useSharedValue)(1),le=(0,_reactNativeReanimated.useSharedValue)(-1),[ue,de]=(0,_react.useState)(-1),he=(0,_react.useRef)(!1),[me,ve]=(0,_react.useState)(!1),[fe,be]=(0,_react.useState)(!1),pe=(0,_react.useRef)(!1),Se=(0,_react.useRef)(s);Se.current=s;const[Re,ge]=(0,_react.useState)(!1),xe=(0,_react.useRef)(-1),ye=(0,_react.useRef)(!1);ye.current="modal"===b?fe:Re;const Ne=(0,_react.useRef)(l);Ne.current=l;const we=(0,_react.useRef)(!1),Ce=(0,_react.useRef)(!0),je=(0,_react.useRef)([]),Me=(0,_react.useCallback)(e=>{const t=je.current;je.current=[];for(const a of t)a(e)},[]);(0,_react.useEffect)(()=>(Ce.current=!0,()=>{Ce.current=!1,Me(!1)}),[Me]);const ke=(0,_react.useCallback)(e=>{if(e<0||e>=re.length)return ne;const t=re[e];return D?(T-t)/2:T-t},[re,T,ne,D]),Oe=(0,_react.useCallback)(e=>{xe.current=e;ue!==e&&(de(e),le.value=e,n?.(e))},[ue,le,n]),Ie=(0,_react.useCallback)(()=>{he.current=!1,le.value<0&&(pe.current=!0,"modal"===b?(ve(!1),"ios"!==_reactNative.Platform.OS&&be(!1)):ge(!1))},[b,le]),Te=(0,_react.useCallback)(()=>{pe.current&&be(!1)},[]);(0,_react.useEffect)(()=>{("modal"===b?!fe:!Re)&&pe.current&&(pe.current=!1,Se.current?.(),Me(!0))},[b,fe,Re,Me]);const Pe=(0,_react.useCallback)((e,t,a)=>{he.current=!0,o?.(t,a),se.value=(0,_reactNativeReanimated.withSpring)(e,SPRING_CONFIG,e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(Ie)()})},[o,se,Ie]),Ee=(0,_react.useCallback)(e=>{const t="number"==typeof e?clamp(e,0,re.length-1):ue>=0?ue:0,a=le.value,r=ke(t);if(pe.current=!1,Me(!1),"modal"===b?(be(!0),ve(!0)):ge(!0),a<0&&O.reduced)return se.value=r,ce.value=0,ce.value=(0,_reactNativeReanimated.withTiming)(1,{duration:O.duration("fast"),easing:_reactNativeReanimated.Easing.bezier(...k.motion.easing.decelerate),reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION}),Oe(t),void o?.(a,t);a<0&&(se.value=ne,ce.value=1),Oe(t),Pe(r,a,t)},[Pe,ne,ue,le,b,o,O,ce,re.length,Oe,Me,k.motion.easing.decelerate,se,ke]),Ae=(0,_react.useCallback)(()=>{if(0===re.length)return;const e=le.value,t=ke(0);Oe(0),Pe(t,e,0)},[Pe,le,re.length,Oe,ke]),He=(0,_react.useCallback)(()=>new Promise(e=>{if(xe.current<0)return void(ye.current?je.current.push(e):e(!0));je.current.push(e);const t=le.value;Oe(-1),he.current=!0,o?.(t,-1);const a=O.reduced?ce:se,r=O.reduced?0:ne;a.value=(0,_reactNativeReanimated.withTiming)(r,{duration:O.duration("fast"),easing:_reactNativeReanimated.Easing.bezier(...k.motion.easing.accelerate),reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION},e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(Ie)()})}),[ne,le,Ie,o,O,ce,Oe,se,k.motion.easing.accelerate]),Be=(0,_react.useCallback)(async()=>{await He()},[He]),De=(0,_react.useCallback)((e,t,a)=>{const r=Ne.current;if(!r)return void e();if(we.current)return void t?.();const n=r();"boolean"!=typeof n?(we.current=!0,a?.(),n.then(a=>{we.current=!1,a&&Ce.current&&xe.current>=0?e():t?.()},e=>{throw we.current=!1,e})):(n?e:t)?.()},[]),Ge=(0,_react.useCallback)(()=>new Promise(e=>{xe.current<0?He().then(e):De(()=>{He().then(e)},()=>e(!1))}),[He,De]),Ve=(0,_react.useCallback)(()=>{c&&Ge()},[c,Ge]);(0,_react.useImperativeHandle)(t,()=>({expand:Ee,collapse:Ae,close:Be,requestClose:Ge}),[Ee,Ae,Be,Ge]),(0,_react.useEffect)(()=>{"number"==typeof r&&r!==ue&&(-1===r?Be():Ee(r))},[r]);const qe=(0,_react.useRef)({hostHeight:T,contentSnap:te});(0,_react.useEffect)(()=>{const e=qe.current;e.hostHeight===T&&e.contentSnap===te||(qe.current={hostHeight:T,contentSnap:te},e.hostHeight===T&&le.value<0||(se.value=(0,_reactNativeReanimated.withSpring)(ke(le.value),SPRING_CONFIG)))},[T,te]);const Le=T-oe,Fe=(0,_react.useMemo)(()=>re.map(e=>T-e),[re,T]),Je=(0,_react.useCallback)(()=>{const e=xe.current;e<0||Pe(ke(e),e,e)},[Pe,ke]),We=(0,_react.useCallback)((e,t)=>{const a=le.value;-1!==e?(Oe(e),Pe(t,a,e)):De(()=>{(0,_index2.triggerHaptic)("selection"),Be()},Je,Je)},[Pe,Be,le,De,Oe,Je]),ze=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Native().withTestId(M?`${M}-content-gesture`:"bottom-sheet-content-gesture"),[M]),Ye=(0,_react.useMemo)(()=>{const e=Fe,t=ne,a=Le,r=i;return _reactNativeGestureHandler.Gesture.Pan().withTestId(M?`${M}-pan-gesture`:"bottom-sheet-pan-gesture").activeOffsetY([-10,10]).failOffsetX([-15,15]).onStart(()=>{"worklet";ie.value=se.value}).onUpdate(e=>{"worklet";const t=ie.value+e.translationY;se.value=t<a?a+.25*(t-a):t}).onEnd(a=>{"worklet";const n=se.value;if(a.velocityY>1e3)return r?void(0,_reactNativeReanimated.runOnJS)(We)(-1,t):void(0,_reactNativeReanimated.runOnJS)(We)(0,e[0]);let o=0,s=Math.abs(n-e[0]);for(let t=1;t<e.length;t++){const a=Math.abs(n-e[t]);a<s&&(s=a,o=t)}const i=e[0];r&&n-i>80?(0,_reactNativeReanimated.runOnJS)(We)(-1,t):(0,_reactNativeReanimated.runOnJS)(We)(o,e[o])})},[ne,ie,i,We,Le,Fe,M,se]),{height:$e}=(0,_reactNativeKeyboardController.useReanimatedKeyboardAnimation)(),Ke="shift"===f,Ue=(0,_reactNativeReanimated.useDerivedValue)(()=>Ke?$e.value:0),Xe=re[ue>=0?ue:0]??oe,Qe=k.spacing.md,Ze=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{if(D){const e=Ue.value,t=T+e-Xe-Qe,a=e<0&&se.value>t?t:se.value;return{top:a<L?L:a,opacity:ce.value}}const e=se.value+Ue.value,t=Ue.value<0?L:Le;return{top:e<t?t:e,opacity:ce.value}}),et=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=Ue.value;if(D){const t=T+e-Xe-Qe,a=e<0&&se.value>t?t:se.value,r=T+e-Qe-(a<L?L:a);return{height:r<0?0:r>Xe?Xe:r}}const t=e<0?L:Le,a=se.value+e,r=T+e-(a<t?t:a);return{height:r<0?0:r>oe?oe:r}}),tt=ue>=0,at=(0,_react.useMemo)(()=>buildStyles(k),[k]),rt=(0,_react.useCallback)(()=>{c&&De(()=>{(0,_index2.triggerHaptic)("selection"),Be()})},[c,Be,De]),nt=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Tap().withTestId(M?`${M}-backdrop-gesture`:"bottom-sheet-backdrop-gesture").maxDuration(250).onEnd((_e,e)=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(rt)()}),[rt,M]),ot=(0,_react.useMemo)(()=>({snapIndex:ue,snapPoints:re,expand:Ee,collapse:Ae,close:Be,requestClose:Ge}),[ue,re,Ee,Ae,Be,Ge]);if("inline"===b&&!Re)return null;if("modal"===b&&!fe)return null;const st=(0,_jsxRuntime.jsxs)(_reactNative.View,{collapsable:!1,style:["modal"===b?at.backdropModal:at.backdropInline,{backgroundColor:k.colors.background.overlay}],onLayout:H,testID:M,accessibilityViewIsModal:j??tt,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:nt,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:_reactNative.StyleSheet.absoluteFill,accessibilityRole:"button",accessibilityLabel:"Close bottom sheet"})}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{accessibilityRole:"alert",accessibilityLabel:C,accessibilityViewIsModal:j??tt,accessibilityActions:[{name:"escape",label:"Close bottom sheet"}],onAccessibilityAction:e=>{"escape"===e.nativeEvent.actionName&&Ve()},onAccessibilityEscape:Ve,style:[at.sheet,{height:oe,backgroundColor:k.colors.background.elevated,borderTopLeftRadius:k.radius.xl,borderTopRightRadius:k.radius.xl,..._corners.smoothCorners,...k.shadows.xl},D?{height:Xe,left:(E-G)/2,right:void 0,width:G,borderBottomLeftRadius:k.radius.xl,borderBottomRightRadius:k.radius.xl}:null,R,Ze],children:(0,_jsxRuntime.jsxs)(SheetBody,{style:[at.body,et],keyboardOffset:Ue,children:[D?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:k.spacing.md}}):(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Ye,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:at.handleRow,onLayout:J?z:void 0,accessible:!0,accessibilityLabel:"Drag handle",accessibilityHint:"Drag up or down to resize the sheet, or swipe down to close it",testID:M?`${M}-handle`:"bottom-sheet-handle",children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[at.handle,{backgroundColor:k.components.bottomSheet?.handleColor??k.colors.border.primary},S]})})}),null!=g&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[at.header,y],onLayout:J?$:void 0,children:g}),u?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:ze,children:(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{ref:d,style:at.scrollContent,onScroll:_,onContentSizeChange:ae,onLayout:m,scrollEventThrottle:v,keyboardShouldPersistTaps:"always",keyboardDismissMode:"none",children:w})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:J?[at.content,{overflow:"visible"}]:at.content,children:J?(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:U,children:w}):w}),null!=x&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[at.footer,N],onLayout:J?Z:void 0,children:x})]})})]}),it=(0,_jsxRuntime.jsx)(BottomSheetContext.Provider,{value:ot,children:st});return"modal"===b?(0,_jsxRuntime.jsx)(_reactNative.Modal,{transparent:!0,visible:me,onRequestClose:Ve,onDismiss:"ios"===_reactNative.Platform.OS?Te:void 0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",supportedOrientations:["portrait","landscape"],children:(0,_jsxRuntime.jsxs)(_ModalSafeArea.ModalSafeArea,{onInsets:q,children:["android"===_reactNative.Platform.OS?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView,{style:at.modalRoot,children:it}):it,(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})}):it}),SheetBody=({style:e,keyboardOffset:t,children:a})=>{const r=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)().bottom,n=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=r+t.value;return{paddingBottom:e>0?e:0}});return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[e,n],children:a})};BottomSheet.displayName="BottomSheet";const useMeasuredHeight=()=>{const[e,t]=(0,_react.useState)(0),a=(0,_react.useCallback)(e=>{t(t=>t===e?t:e)},[]);return[e,(0,_react.useCallback)(e=>a(e.nativeEvent.layout.height),[a]),a]},resolveSnapPoints=(e,t,a)=>[...e.map(e=>{if("number"==typeof e)return e;if("content"===e)return a;const r=parseFloat(e);return Number.isNaN(r)?0:r/100*t})].sort((e,t)=>e-t),clamp=(e,t,a)=>Math.min(Math.max(e,t),a),buildStyles=e=>_reactNative.StyleSheet.create({backdropModal:{flex:1},backdropInline:{..._reactNative.StyleSheet.absoluteFill},sheet:{position:"absolute",left:0,right:0,overflow:"hidden"},body:{overflow:"hidden"},handleRow:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",paddingTop:e.spacing.md,paddingBottom:e.spacing.xl},header:{},footer:{},handle:{width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners},content:{flex:1,overflow:"hidden"},scrollContent:{flex:1},modalRoot:{flex:1}});var _default=exports.default=BottomSheet;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useBottomSheet=exports.default=exports.BottomSheet=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var a,r,n=Object.defineProperty,o={__proto__:null,default:e};if(Object(e)!==e)return o;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,o)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((a=n&&Object.getOwnPropertyDescriptor(e,r))&&(a.get||a.set)?n(o,r,a):o[r]=e[r]);return o}const TABLET_MIN_SHORT_SIDE=600,DIALOG_MAX_WIDTH=560,BottomSheetContext=(0,_react.createContext)(null),useBottomSheet=()=>{const e=(0,_react.useContext)(BottomSheetContext);if(!e)throw new Error("useBottomSheet must be used inside a <BottomSheet>.");return e};exports.useBottomSheet=useBottomSheet;const SPRING_CONFIG={damping:20,stiffness:240,mass:1},CLOSE_VELOCITY_THRESHOLD=1e3,DRAG_ACTIVATION_OFFSET=10,BottomSheet=exports.BottomSheet=(0,_react.forwardRef)((e,t)=>{const{snapPoints:a,index:r,onChange:n,onAnimate:o,onAfterClose:s,enablePanDownToClose:i=!0,enableBackdropPress:c=!0,confirmDismiss:l,scrollable:u=!1,scrollRef:d,onScroll:_,onContentSizeChange:h,onScrollLayout:m,scrollEventThrottle:v,keyboardBehavior:f="shift",mode:b="modal",presentation:p="sheet",handleIndicatorStyle:S,containerStyle:R,header:x,footer:y,headerStyle:N,footerStyle:g,children:w,accessibilityLabel:C,accessibilityViewIsModal:j,testID:M}=e,k=(0,_index.useTheme)(),O=(0,_usePresenceMotion.usePresenceMotion)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[T,P]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").height),[E,A]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),H=(0,_react.useCallback)(e=>{const{height:t,width:a}=e.nativeEvent.layout;t>0&&P(e=>e===t?e:t),a>0&&A(e=>e===a?e:a)},[]),B=(0,_reactNative.useWindowDimensions)(),D="dialog"===p||"auto"===p&&Math.min(B.width,B.height)>=600,G=Math.min(560,E-2*k.space.xl),[V,q]=(0,_ModalSafeArea.useModalInsets)(),L="modal"===b?V.top:I.top,F="modal"===b?V.bottom:I.bottom,J=a.includes("content"),[W,z]=useMeasuredHeight(),[Y,$]=useMeasuredHeight(),[K,U,X]=useMeasuredHeight(),[Q,Z]=useMeasuredHeight(),ee=D?k.space.md:W,te=J?Math.min(ee+(null!=x?Y:0)+K+(null!=y?Q:0)+F,T-L):0,ae=(0,_react.useCallback)((e,t)=>{J&&X(t),h?.(e,t)},[J,h,X]),re=(0,_react.useMemo)(()=>resolveSnapPoints(a,T,te),[a,T,te]),ne=T,oe=re[re.length-1]??0,se=(0,_reactNativeReanimated.useSharedValue)(ne),ie=(0,_reactNativeReanimated.useSharedValue)(ne),ce=(0,_reactNativeReanimated.useSharedValue)(1),le=(0,_reactNativeReanimated.useSharedValue)(-1),[ue,de]=(0,_react.useState)(-1),he=(0,_react.useRef)(!1),[me,ve]=(0,_react.useState)(!1),[fe,be]=(0,_react.useState)(!1),pe=(0,_react.useRef)(!1),Se=(0,_react.useRef)(s);Se.current=s;const[Re,xe]=(0,_react.useState)(!1),ye=(0,_react.useRef)(-1),Ne=(0,_react.useRef)(!1);Ne.current="modal"===b?fe:Re;const ge=(0,_react.useRef)(l);ge.current=l;const we=(0,_react.useRef)(!1),Ce=(0,_react.useRef)(!0),je=(0,_react.useRef)([]),Me=(0,_react.useCallback)(e=>{const t=je.current;je.current=[];for(const a of t)a(e)},[]);(0,_react.useEffect)(()=>(Ce.current=!0,()=>{Ce.current=!1,Me(!1)}),[Me]);const ke=(0,_react.useCallback)(e=>{if(e<0||e>=re.length)return ne;const t=re[e];return D?(T-t)/2:T-t},[re,T,ne,D]),Oe=(0,_react.useCallback)(e=>{ye.current=e;ue!==e&&(de(e),le.value=e,n?.(e))},[ue,le,n]),Ie=(0,_react.useCallback)(()=>{he.current=!1,le.value<0&&(pe.current=!0,"modal"===b?(ve(!1),"ios"!==_reactNative.Platform.OS&&be(!1)):xe(!1))},[b,le]),Te=(0,_react.useCallback)(()=>{pe.current&&be(!1)},[]);(0,_react.useEffect)(()=>{("modal"===b?!fe:!Re)&&pe.current&&(pe.current=!1,Se.current?.(),Me(!0))},[b,fe,Re,Me]);const Pe=(0,_react.useCallback)((e,t,a)=>{he.current=!0,o?.(t,a),se.value=(0,_reactNativeReanimated.withSpring)(e,SPRING_CONFIG,e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(Ie)()})},[o,se,Ie]),Ee=(0,_react.useCallback)(e=>{const t="number"==typeof e?clamp(e,0,re.length-1):ue>=0?ue:0,a=le.value,r=ke(t);if(pe.current=!1,Me(!1),"modal"===b?(be(!0),ve(!0)):xe(!0),a<0&&O.reduced)return se.value=r,ce.value=0,ce.value=(0,_reactNativeReanimated.withTiming)(1,{duration:O.duration("fast"),easing:_reactNativeReanimated.Easing.bezier(...k.motion.ease.decelerate),reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION}),Oe(t),void o?.(a,t);a<0&&(se.value=ne,ce.value=1),Oe(t),Pe(r,a,t)},[Pe,ne,ue,le,b,o,O,ce,re.length,Oe,Me,k.motion.ease.decelerate,se,ke]),Ae=(0,_react.useCallback)(()=>{if(0===re.length)return;const e=le.value,t=ke(0);Oe(0),Pe(t,e,0)},[Pe,le,re.length,Oe,ke]),He=(0,_react.useCallback)(()=>new Promise(e=>{if(ye.current<0)return void(Ne.current?je.current.push(e):e(!0));je.current.push(e);const t=le.value;Oe(-1),he.current=!0,o?.(t,-1);const a=O.reduced?ce:se,r=O.reduced?0:ne;a.value=(0,_reactNativeReanimated.withTiming)(r,{duration:O.duration("fast"),easing:_reactNativeReanimated.Easing.bezier(...k.motion.ease.accelerate),reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION},e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(Ie)()})}),[ne,le,Ie,o,O,ce,Oe,se,k.motion.ease.accelerate]),Be=(0,_react.useCallback)(async()=>{await He()},[He]),De=(0,_react.useCallback)((e,t,a)=>{const r=ge.current;if(!r)return void e();if(we.current)return void t?.();const n=r();"boolean"!=typeof n?(we.current=!0,a?.(),n.then(a=>{we.current=!1,a&&Ce.current&&ye.current>=0?e():t?.()},e=>{throw we.current=!1,e})):(n?e:t)?.()},[]),Ge=(0,_react.useCallback)(()=>new Promise(e=>{ye.current<0?He().then(e):De(()=>{He().then(e)},()=>e(!1))}),[He,De]),Ve=(0,_react.useCallback)(()=>{c&&Ge()},[c,Ge]);(0,_react.useImperativeHandle)(t,()=>({expand:Ee,collapse:Ae,close:Be,requestClose:Ge}),[Ee,Ae,Be,Ge]),(0,_react.useEffect)(()=>{"number"==typeof r&&r!==ue&&(-1===r?Be():Ee(r))},[r]);const qe=(0,_react.useRef)({hostHeight:T,contentSnap:te});(0,_react.useEffect)(()=>{const e=qe.current;e.hostHeight===T&&e.contentSnap===te||(qe.current={hostHeight:T,contentSnap:te},e.hostHeight===T&&le.value<0||(se.value=(0,_reactNativeReanimated.withSpring)(ke(le.value),SPRING_CONFIG)))},[T,te]);const Le=T-oe,Fe=(0,_react.useMemo)(()=>re.map(e=>T-e),[re,T]),Je=(0,_react.useCallback)(()=>{const e=ye.current;e<0||Pe(ke(e),e,e)},[Pe,ke]),We=(0,_react.useCallback)((e,t)=>{const a=le.value;-1!==e?(Oe(e),Pe(t,a,e)):De(()=>{(0,_index2.triggerHaptic)("selection"),Be()},Je,Je)},[Pe,Be,le,De,Oe,Je]),ze=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Native().withTestId(M?`${M}-content-gesture`:"bottom-sheet-content-gesture"),[M]),Ye=(0,_react.useMemo)(()=>{const e=Fe,t=ne,a=Le,r=i;return _reactNativeGestureHandler.Gesture.Pan().withTestId(M?`${M}-pan-gesture`:"bottom-sheet-pan-gesture").activeOffsetY([-10,10]).failOffsetX([-15,15]).onStart(()=>{"worklet";ie.value=se.value}).onUpdate(e=>{"worklet";const t=ie.value+e.translationY;se.value=t<a?a+.25*(t-a):t}).onEnd(a=>{"worklet";const n=se.value;if(a.velocityY>1e3)return r?void(0,_reactNativeReanimated.runOnJS)(We)(-1,t):void(0,_reactNativeReanimated.runOnJS)(We)(0,e[0]);let o=0,s=Math.abs(n-e[0]);for(let t=1;t<e.length;t++){const a=Math.abs(n-e[t]);a<s&&(s=a,o=t)}const i=e[0];r&&n-i>80?(0,_reactNativeReanimated.runOnJS)(We)(-1,t):(0,_reactNativeReanimated.runOnJS)(We)(o,e[o])})},[ne,ie,i,We,Le,Fe,M,se]),{height:$e}=(0,_reactNativeKeyboardController.useReanimatedKeyboardAnimation)(),Ke="shift"===f,Ue=(0,_reactNativeReanimated.useDerivedValue)(()=>Ke?$e.value:0),Xe=re[ue>=0?ue:0]??oe,Qe=k.space.md,Ze=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{if(D){const e=Ue.value,t=T+e-Xe-Qe,a=e<0&&se.value>t?t:se.value;return{top:a<L?L:a,opacity:ce.value}}const e=se.value+Ue.value,t=Ue.value<0?L:Le;return{top:e<t?t:e,opacity:ce.value}}),et=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=Ue.value;if(D){const t=T+e-Xe-Qe,a=e<0&&se.value>t?t:se.value,r=T+e-Qe-(a<L?L:a);return{height:r<0?0:r>Xe?Xe:r}}const t=e<0?L:Le,a=se.value+e,r=T+e-(a<t?t:a);return{height:r<0?0:r>oe?oe:r}}),tt=ue>=0,at=(0,_react.useMemo)(()=>buildStyles(k),[k]),rt=(0,_react.useCallback)(()=>{c&&De(()=>{(0,_index2.triggerHaptic)("selection"),Be()})},[c,Be,De]),nt=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Tap().withTestId(M?`${M}-backdrop-gesture`:"bottom-sheet-backdrop-gesture").maxDuration(250).onEnd((_e,e)=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(rt)()}),[rt,M]),ot=(0,_react.useMemo)(()=>({snapIndex:ue,snapPoints:re,expand:Ee,collapse:Ae,close:Be,requestClose:Ge}),[ue,re,Ee,Ae,Be,Ge]);if("inline"===b&&!Re)return null;if("modal"===b&&!fe)return null;const st=(0,_jsxRuntime.jsxs)(_reactNative.View,{collapsable:!1,style:["modal"===b?at.backdropModal:at.backdropInline,{backgroundColor:k.colors.scrim}],onLayout:H,testID:M,accessibilityViewIsModal:j??tt,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:nt,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:_reactNative.StyleSheet.absoluteFill,accessibilityRole:"button",accessibilityLabel:"Close bottom sheet"})}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{accessibilityRole:"alert",accessibilityLabel:C,accessibilityViewIsModal:j??tt,accessibilityActions:[{name:"escape",label:"Close bottom sheet"}],onAccessibilityAction:e=>{"escape"===e.nativeEvent.actionName&&Ve()},onAccessibilityEscape:Ve,style:[at.sheet,{height:oe,backgroundColor:k.colors.surface,borderTopLeftRadius:k.radius.xl,borderTopRightRadius:k.radius.xl,..._corners.smoothCorners,...k.shadow.modal},D?{height:Xe,left:(E-G)/2,right:void 0,width:G,borderBottomLeftRadius:k.radius.xl,borderBottomRightRadius:k.radius.xl}:null,R,Ze],children:(0,_jsxRuntime.jsxs)(SheetBody,{style:[at.body,et],keyboardOffset:Ue,children:[D?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:k.space.md}}):(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Ye,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:at.handleRow,onLayout:J?z:void 0,accessible:!0,accessibilityLabel:"Drag handle",accessibilityHint:"Drag up or down to resize the sheet, or swipe down to close it",testID:M?`${M}-handle`:"bottom-sheet-handle",children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[at.handle,{backgroundColor:k.colors.border},S]})})}),null!=x&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[at.header,N],onLayout:J?$:void 0,children:x}),u?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:ze,children:(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{ref:d,style:at.scrollContent,onScroll:_,onContentSizeChange:ae,onLayout:m,scrollEventThrottle:v,keyboardShouldPersistTaps:"always",keyboardDismissMode:"none",children:w})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:J?[at.content,{overflow:"visible"}]:at.content,children:J?(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:U,children:w}):w}),null!=y&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[at.footer,g],onLayout:J?Z:void 0,children:y})]})})]}),it=(0,_jsxRuntime.jsx)(BottomSheetContext.Provider,{value:ot,children:st});return"modal"===b?(0,_jsxRuntime.jsx)(_reactNative.Modal,{transparent:!0,visible:me,onRequestClose:Ve,onDismiss:"ios"===_reactNative.Platform.OS?Te:void 0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",supportedOrientations:["portrait","landscape"],children:(0,_jsxRuntime.jsxs)(_ModalSafeArea.ModalSafeArea,{onInsets:q,children:["android"===_reactNative.Platform.OS?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView,{style:at.modalRoot,children:it}):it,(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})}):it}),SheetBody=({style:e,keyboardOffset:t,children:a})=>{const r=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)().bottom,n=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=r+t.value;return{paddingBottom:e>0?e:0}});return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[e,n],children:a})};BottomSheet.displayName="BottomSheet";const useMeasuredHeight=()=>{const[e,t]=(0,_react.useState)(0),a=(0,_react.useCallback)(e=>{t(t=>t===e?t:e)},[]);return[e,(0,_react.useCallback)(e=>a(e.nativeEvent.layout.height),[a]),a]},resolveSnapPoints=(e,t,a)=>[...e.map(e=>{if("number"==typeof e)return e;if("content"===e)return a;const r=parseFloat(e);return Number.isNaN(r)?0:r/100*t})].sort((e,t)=>e-t),clamp=(e,t,a)=>Math.min(Math.max(e,t),a),buildStyles=e=>_reactNative.StyleSheet.create({backdropModal:{flex:1},backdropInline:{..._reactNative.StyleSheet.absoluteFill},sheet:{position:"absolute",left:0,right:0,overflow:"hidden"},body:{overflow:"hidden"},handleRow:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",paddingTop:e.space.md,paddingBottom:e.space.xl},header:{},footer:{},handle:{width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners},content:{flex:1,overflow:"hidden"},scrollContent:{flex:1},modalRoot:{flex:1}});var _default=exports.default=BottomSheet;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveBoxStyle=exports.default=exports.Stack=exports.Spacer=exports.Row=exports.Box=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_scale=require("../../theme/scale.js"),_corners=require("../../utils/corners.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const space=(e,r,t)=>null==r?void 0:(0,_scale.spaceOf)(e,r,`Box ${t}`),resolveBoxStyle=(e,r)=>{const t={};if(null!=r.p&&(t.padding=space(e,r.p,"p")),null!=r.px&&(t.paddingHorizontal=space(e,r.px,"px")),null!=r.py&&(t.paddingVertical=space(e,r.py,"py")),null!=r.pt&&(t.paddingTop=space(e,r.pt,"pt")),null!=r.pr&&(t.paddingRight=space(e,r.pr,"pr")),null!=r.pb&&(t.paddingBottom=space(e,r.pb,"pb")),null!=r.pl&&(t.paddingLeft=space(e,r.pl,"pl")),null!=r.m&&(t.margin=space(e,r.m,"m")),null!=r.mx&&(t.marginHorizontal=space(e,r.mx,"mx")),null!=r.my&&(t.marginVertical=space(e,r.my,"my")),null!=r.mt&&(t.marginTop=space(e,r.mt,"mt")),null!=r.mr&&(t.marginRight=space(e,r.mr,"mr")),null!=r.mb&&(t.marginBottom=space(e,r.mb,"mb")),null!=r.ml&&(t.marginLeft=space(e,r.ml,"ml")),null!=r.gap&&(t.gap=space(e,r.gap,"gap")),null!=r.bg){const l=e.colors.background;t.backgroundColor=l[r.bg]??r.bg}return null!=r.radius&&(t.borderRadius=(0,_scale.radiusOf)(e,r.radius,"Box radius"),t.borderCurve=_corners.smoothCorners.borderCurve),r.border&&(t.borderWidth=e.colors.border.width,t.borderColor=e.colors.border.primary),null!=r.flex&&(t.flex=r.flex),null!=r.align&&(t.alignItems=r.align),null!=r.justify&&(t.justifyContent=r.justify),null!=r.direction&&(t.flexDirection=r.direction),r.wrap&&(t.flexWrap="wrap"),t};exports.resolveBoxStyle=resolveBoxStyle;const Box=exports.Box=(0,_react.forwardRef)((e,r)=>{const t=(0,_index.useTheme)(),{p:l,px:a,py:o,pt:i,pr:s,pb:n,pl:p,m:c,mx:u,my:d,mt:m,mr:x,mb:g,ml:b,gap:f,bg:y,radius:_,border:j,flex:S,align:h,justify:w,direction:R,wrap:v,style:B,children:q,...k}=e,C=resolveBoxStyle(t,{p:l,px:a,py:o,pt:i,pr:s,pb:n,pl:p,m:c,mx:u,my:d,mt:m,mr:x,mb:g,ml:b,gap:f,bg:y,radius:_,border:j,flex:S,align:h,justify:w,direction:R,wrap:v}),N=(0,_SquircleFill.useSquircle)(null!=_&&(null!=y||Boolean(j)),C.borderRadius,k.onLayout),z=N.active?{...C,backgroundColor:"transparent",borderColor:"transparent"}:C;return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:r,...k,onLayout:N.onLayout,style:[z,B],children:[N.active&&N.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:N.size.width,height:N.size.height,radius:C.borderRadius,fill:C.backgroundColor??"transparent",stroke:C.borderColor,strokeWidth:C.borderWidth??0,outset:C.borderWidth??0}):null,q]})});Box.displayName="Box";const Stack=exports.Stack=(0,_react.forwardRef)(({gap:e="md",...r},t)=>(0,_jsxRuntime.jsx)(Box,{ref:t,direction:"column",gap:e,...r}));Stack.displayName="Stack";const Row=exports.Row=(0,_react.forwardRef)(({gap:e="sm",align:r="center",...t},l)=>(0,_jsxRuntime.jsx)(Box,{ref:l,direction:"row",gap:e,align:r,...t}));Row.displayName="Row";const Spacer=({size:e,style:r,testID:t})=>{const l=(0,_index.useTheme)();if(null!=e){const a=(0,_scale.spaceOf)(l,e,"Spacer size");return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t,style:[{width:a,height:a},r]})}return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t,style:[{flex:1},r]})};exports.Spacer=Spacer,Spacer.displayName="Spacer";var _default=exports.default=Box;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveBoxStyle=exports.default=exports.Stack=exports.Spacer=exports.Row=exports.Box=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_scale=require("../../theme/scale.js"),_corners=require("../../utils/corners.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const BACKGROUND_TOKENS=["bg","bg-subtle","bg-muted","surface","scrim","surface-inverse"],space=(e,r)=>null==r?void 0:(0,_scale.spaceOf)(e,r),resolveBoxStyle=(e,r)=>{const t={};return null!=r.p&&(t.padding=space(e,r.p)),null!=r.px&&(t.paddingHorizontal=space(e,r.px)),null!=r.py&&(t.paddingVertical=space(e,r.py)),null!=r.pt&&(t.paddingTop=space(e,r.pt)),null!=r.pr&&(t.paddingRight=space(e,r.pr)),null!=r.pb&&(t.paddingBottom=space(e,r.pb)),null!=r.pl&&(t.paddingLeft=space(e,r.pl)),null!=r.m&&(t.margin=space(e,r.m)),null!=r.mx&&(t.marginHorizontal=space(e,r.mx)),null!=r.my&&(t.marginVertical=space(e,r.my)),null!=r.mt&&(t.marginTop=space(e,r.mt)),null!=r.mr&&(t.marginRight=space(e,r.mr)),null!=r.mb&&(t.marginBottom=space(e,r.mb)),null!=r.ml&&(t.marginLeft=space(e,r.ml)),null!=r.gap&&(t.gap=space(e,r.gap)),null!=r.bg&&(t.backgroundColor=BACKGROUND_TOKENS.includes(r.bg)?e.colors[r.bg]:r.bg),null!=r.radius&&(t.borderRadius=(0,_scale.radiusOf)(e,r.radius),t.borderCurve=_corners.smoothCorners.borderCurve),r.border&&(t.borderWidth=e.size.border,t.borderColor=e.colors.border),null!=r.flex&&(t.flex=r.flex),null!=r.align&&(t.alignItems=r.align),null!=r.justify&&(t.justifyContent=r.justify),null!=r.direction&&(t.flexDirection=r.direction),r.wrap&&(t.flexWrap="wrap"),t};exports.resolveBoxStyle=resolveBoxStyle;const Box=exports.Box=(0,_react.forwardRef)((e,r)=>{const t=(0,_index.useTheme)(),{p:l,px:a,py:i,pt:s,pr:o,pb:n,pl:p,m:u,mx:c,my:d,mt:m,mr:x,mb:g,ml:b,gap:f,bg:_,radius:y,border:S,flex:j,align:h,justify:R,direction:v,wrap:w,style:B,children:q,...C}=e,N=resolveBoxStyle(t,{p:l,px:a,py:i,pt:s,pr:o,pb:n,pl:p,m:u,mx:c,my:d,mt:m,mr:x,mb:g,ml:b,gap:f,bg:_,radius:y,border:S,flex:j,align:h,justify:R,direction:v,wrap:w}),k=(0,_SquircleFill.useSquircle)(null!=y&&(null!=_||Boolean(S)),N.borderRadius,C.onLayout),O=k.active?{...N,backgroundColor:"transparent",borderColor:"transparent"}:N;return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:r,...C,onLayout:k.onLayout,style:[O,B],children:[k.active&&k.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:k.size.width,height:k.size.height,radius:N.borderRadius,fill:N.backgroundColor??"transparent",stroke:N.borderColor,strokeWidth:N.borderWidth??0,outset:N.borderWidth??0}):null,q]})});Box.displayName="Box";const Stack=exports.Stack=(0,_react.forwardRef)(({gap:e="md",...r},t)=>(0,_jsxRuntime.jsx)(Box,{ref:t,direction:"column",gap:e,...r}));Stack.displayName="Stack";const Row=exports.Row=(0,_react.forwardRef)(({gap:e="sm",align:r="center",...t},l)=>(0,_jsxRuntime.jsx)(Box,{ref:l,direction:"row",gap:e,align:r,...t}));Row.displayName="Row";const Spacer=({size:e,style:r,testID:t})=>{const l=(0,_index.useTheme)();if(null!=e){const a=(0,_scale.spaceOf)(l,e);return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t,style:[{width:a,height:a},r]})}return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t,style:[{flex:1},r]})};exports.Spacer=Spacer,Spacer.displayName="Spacer";var _default=exports.default=Box;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Button=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useFlickGuard=require("../../hooks/useFlickGuard.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_animatedValue=require("../../theme/animatedValue.js"),_ariaState=require("../../utils/ariaState.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Spinner/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,o,s=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(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((t=s&&Object.getOwnPropertyDescriptor(e,o))&&(t.get||t.set)?s(i,o,t):i[o]=e[o]);return i}const Button=exports.Button=(0,_react.forwardRef)((e,r)=>{const{title:t,children:o,variant:s="solid",tone:i="primary",size:n="md",loading:a=!1,disabled:l=!1,fullWidth:c=!1,leftIcon:d,rightIcon:u,iconVariant:b,leftIconBadge:g=!1,haptic:_,rounded:h=!1,gradient:p,style:f,containerStyle:x,textStyle:m,pressAnimation:y,onPress:j,accessibilityLabel:v,accessibilityHint:S,accessibilityState:C,testID:k,onLayout:I,...R}=e;if(__DEV__&&hasTextChild(o))throw new Error('[@webority/mobile-ui] Button was given its label as text children. Pass it as `title` (<Button title="Save" />): text children draw a blank button with no accessible name.');const w=(0,_index.useTheme)(),T=!l&&!a,F={...C,disabled:!T,busy:a},N="link"===s,L=y??(!N&&"scale"),q=(0,_usePressAnimation.usePressAnimation)({preset:L||"scale",enabled:!1!==L&&T}),O=(0,_useFlickGuard.useFlickGuard)(),P=(0,_react.useMemo)(()=>buildStyles(w),[w]),W=(0,_react.useMemo)(()=>(0,_index.resolveButtonSize)(w,n),[w,n]),V=(0,_react.useMemo)(()=>toneFor(w,i),[w,i]),A=(0,_react.useMemo)(()=>variantFor(w,s,V,l),[w,s,V,l]),B=(0,_react.useMemo)(()=>!p||l||"solid"!==s?null:"string"==typeof p?w.gradients[p]??null:p,[p,l,s,w.gradients]),H=_reactNative.StyleSheet.flatten(f)?.borderRadius,z=N?0:"number"==typeof H?H:h?w.radius.pill:W.radius,D=(0,_SquircleFill.useSquircle)(!B&&"link"!==s,z,I),M=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,[E,U]=(0,_react.useState)(0),[G,K]=(0,_react.useState)(null),X=N?e=>U(e.nativeEvent.layout.width):void 0,Y=v??t,J="outline"===s||"ghost"===s,Q=!J&&!N,Z={color:A.textColor,size:W.icon,disabled:l},$=g&&!N&&Boolean(d),ee=w.spacing.xs,re=W.minHeight-2*ee-2*A.borderWidth,te={color:A.badgeInk,size:W.badgeIcon,disabled:l},oe=a?(0,_jsxRuntime.jsx)(_index2.Spinner,{variant:"circular",size:"sm",color:$?A.badgeInk:A.textColor,accessibilityLabel:"Loading"}):d?(0,_slotIcon.renderSlotIcon)(d,$?te:Z,b):null,se=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:P.contentRow,children:[$?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"button-icon-badge",style:[P.iconLeft,P.iconBadge,{width:re,height:re,borderRadius:re/2,backgroundColor:A.badgeFill}],children:oe}):oe?(0,_jsxRuntime.jsx)(_reactNative.View,{style:P.iconLeft,children:oe}):null,t?(0,_jsxRuntime.jsxs)(_reactNative.View,{onLayout:X,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[P.label,{color:A.textColor,fontSize:W.text,...(0,_index.fontFor)(w,"semibold")},m],numberOfLines:1,children:t}),N?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",testID:"button-link-underline",style:[P.linkUnderline,{backgroundColor:A.textColor,transform:[{translateX:M.interpolate({inputRange:[0,1],outputRange:[-E/2,0]})},{scaleX:M.interpolate({inputRange:[0,1],outputRange:[0,1]})}]}]}):null]}):o,u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:P.iconRight,children:(0,_slotIcon.renderSlotIcon)(u,Z,b)}):null]}),ie=N?null===G?LINK_HIT_SLOP:Math.max(LINK_HIT_SLOP,touchSlopFor(G)):touchSlopFor(W.minHeight),ne={top:ie,bottom:ie,left:N?LINK_HIT_SLOP:0,right:N?LINK_HIT_SLOP:0};return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[q.style,c?P.fullWidth:null,x],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:e=>{T&&!O.isFlick(e)&&(q.press(),_&&(0,_hapticUtils.triggerHaptic)(_),j?.(e))},onPressIn:e=>{O.onPressIn(e),q.pressIn(),N&&T&&(M.stopAnimation(),M.setValue(0),_reactNative.Animated.timing(M,{toValue:1,duration:w.motion.duration.slower,easing:_reactNative.Easing.bezier(...w.motion.easing.decelerate),useNativeDriver:!0}).start())},onPressOut:()=>{q.pressOut()},disabled:!T,hitSlop:ne,accessibilityRole:"button",accessibilityLabel:Y,accessibilityHint:S,accessibilityState:F,...(0,_ariaState.ariaFromState)(F),testID:k,onLayout:e=>{D.onLayout(e),N&&K(e.nativeEvent.layout.height)},style:({pressed:e})=>[P.base,{paddingHorizontal:N?0:W.paddingX,paddingVertical:N?0:$?ee:W.paddingY,paddingLeft:$?ee:void 0,minHeight:N?void 0:W.minHeight,borderRadius:z,..._corners.smoothCorners,backgroundColor:B||D.active?"transparent":A.backgroundColor,borderWidth:A.borderWidth,borderColor:D.active?"transparent":A.borderColor,opacity:a?.55:1,overflow:D.active||N?"visible":"hidden"},e&&J&&!D.active?{backgroundColor:w.colors.surface.pressed}:null,c?P.fullWidth:null,f],...R,"aria-disabled":!T,"aria-busy":a,children:({pressed:e})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[D.active&&D.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:D.size.width,height:D.size.height,radius:z,fill:e&&J?w.colors.surface.pressed:A.backgroundColor,stroke:A.borderColor,strokeWidth:A.borderWidth,outset:A.borderWidth}):null,B?(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:B,style:[_reactNative.StyleSheet.absoluteFill,{borderRadius:z,..._corners.smoothCorners}]}):null,e&&Q?D.active&&D.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:D.size.width,height:D.size.height,radius:z,fill:A.pressedTint,outset:A.borderWidth,testID:"button-pressed"}):(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[P.pressedOverlay,{borderRadius:z,backgroundColor:A.pressedTint,..._corners.smoothCorners}],testID:"button-pressed"}):null,se]})})})});Button.displayName="Button";const hasTextChild=e=>_react.default.Children.toArray(e).some(e=>"string"==typeof e||"number"==typeof e),SOFT_FILL_OPACITY=.14,toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primary,on:e.colors.onPrimary,fg:e.colors.toneText.primary,soft:(0,_color.tintOf)(e.colors.primary,.14,e.colors.primaryMuted)};case"secondary":return{base:e.colors.secondary,on:e.colors.onSecondary,fg:e.colors.onSecondary,soft:e.colors.secondary};case"success":return{base:e.colors.success,on:e.colors.onSuccess,fg:e.colors.toneText.success,soft:(0,_color.tintOf)(e.colors.success,.14,e.colors.background.secondary)};case"warning":return{base:e.colors.warning,on:e.colors.onWarning,fg:e.colors.toneText.warning,soft:(0,_color.tintOf)(e.colors.warning,.14,e.colors.background.secondary)};case"error":return{base:e.colors.error,on:e.colors.onError,fg:e.colors.toneText.error,soft:(0,_color.tintOf)(e.colors.error,.14,e.colors.background.secondary)};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,fg:e.colors.text.primary,soft:e.colors.background.secondary}}},BUTTON_BORDER_WIDTH=1,MIN_TOUCH_TARGET=44,LINK_HIT_SLOP=8,touchSlopFor=e=>Math.max(0,Math.ceil((44-e)/2)),variantFor=(e,r,t,o)=>{const s=o?e.colors.text.disabled:t.fg,i={badgeFill:e.colors.surface.disabled,badgeInk:e.colors.text.disabled},n=o?i:{badgeFill:t.on,badgeInk:t.base},a=o?i:{badgeFill:t.base,badgeInk:t.on};switch(r){case"solid":return{backgroundColor:o?e.colors.surface.disabled:t.base,borderColor:"transparent",borderWidth:1,textColor:o?e.colors.text.disabled:t.on,pressedTint:e.colors.surface.pressed,...n};case"soft":return{backgroundColor:o?e.colors.surface.disabled:t.soft,borderColor:"transparent",borderWidth:1,textColor:s,pressedTint:e.colors.surface.pressed,...a};case"outline":return{backgroundColor:"transparent",borderColor:o?e.colors.border.primary:t.base,borderWidth:1,textColor:s,pressedTint:e.colors.surface.pressed,...a};case"ghost":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:1,textColor:s,pressedTint:e.colors.surface.pressed,...a};case"link":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:0,textColor:o?e.colors.text.disabled:e.colors.text.link,pressedTint:e.colors.surface.pressed,...a};case"glass":return{backgroundColor:e.colors.glass.fill,borderColor:e.colors.glass.border,borderWidth:1,textColor:o?e.colors.text.disabled:e.colors.glass.on,pressedTint:_color.ACCENT_PRESSED_TINT,badgeFill:e.colors.glass.badge,badgeInk:o?e.colors.text.disabled:t.base};default:return{backgroundColor:t.base,borderColor:"transparent",borderWidth:1,textColor:t.on,pressedTint:e.colors.surface.pressed,...n}}},buildStyles=e=>_reactNative.StyleSheet.create({pressedOverlay:{position:"absolute",top:0,right:0,bottom:0,left:0},base:{alignItems:"center",justifyContent:"center",flexDirection:"row",overflow:"hidden"},contentRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},linkUnderline:{height:1.5,marginTop:1},iconLeft:{marginRight:e.spacing.sm},iconBadge:{alignItems:"center",justifyContent:"center"},iconRight:{marginLeft:e.spacing.sm},fullWidth:{alignSelf:"stretch"}});var _default=exports.default=Button;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Button=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useFlickGuard=require("../../hooks/useFlickGuard.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_animatedValue=require("../../theme/animatedValue.js"),_ariaState=require("../../utils/ariaState.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Spinner/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,o,s=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(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((r=s&&Object.getOwnPropertyDescriptor(e,o))&&(r.get||r.set)?s(i,o,r):i[o]=e[o]);return i}const Button=exports.Button=(0,_react.forwardRef)((e,t)=>{const{title:r,children:o,variant:s="solid",tone:i="primary",size:n="md",loading:a=!1,disabled:l=!1,fullWidth:c=!1,leftIcon:d,rightIcon:u,iconVariant:b,leftIconBadge:g=!1,haptic:_,rounded:h=!1,gradient:p,style:f,containerStyle:x,textStyle:m,pressAnimation:y,onPress:j,accessibilityLabel:v,accessibilityHint:C,accessibilityState:S,testID:I,onLayout:R,...k}=e;if(__DEV__&&hasTextChild(o))throw new Error('[@webority/mobile-ui] Button was given its label as text children. Pass it as `title` (<Button title="Save" />): text children draw a blank button with no accessible name.');const w=(0,_index.useTheme)(),F=!l&&!a,T={...S,disabled:!F,busy:a},N="link"===s,L=y??(!N&&"scale"),q=(0,_usePressAnimation.usePressAnimation)({preset:L||"scale",enabled:!1!==L&&F}),O=(0,_useFlickGuard.useFlickGuard)(),P=(0,_react.useMemo)(()=>buildStyles(w),[w]),W=(0,_react.useMemo)(()=>(0,_index.resolveButtonSize)(w,n),[w,n]),V=(0,_react.useMemo)(()=>toneFor(w,i),[w,i]),A=(0,_react.useMemo)(()=>variantFor(w,s,V,l),[w,s,V,l]),B=(0,_react.useMemo)(()=>!p||l||"solid"!==s?null:"string"==typeof p?w.settings.gradients[p]??null:p,[p,l,s,w.settings.gradients]),z=_reactNative.StyleSheet.flatten(f)?.borderRadius,D=N?0:"number"==typeof z?z:h?w.radius.pill:W.radius,M=(0,_SquircleFill.useSquircle)(!B&&"link"!==s,D,R),E=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,[H,U]=(0,_react.useState)(0),[G,K]=(0,_react.useState)(null),X=N?e=>U(e.nativeEvent.layout.width):void 0,Y=v??r,J="outline"===s||"ghost"===s,Q=!J&&!N,Z={color:A.textColor,size:W.icon,disabled:l},$=g&&!N&&Boolean(d),ee=w.space.xs,te=W["min-height"]-2*ee-2*A.borderWidth,re={color:A.badgeInk,size:W["badge-icon"],disabled:l},oe=a?(0,_jsxRuntime.jsx)(_index2.Spinner,{variant:"circular",size:"sm",color:$?A.badgeInk:A.textColor,accessibilityLabel:"Loading"}):d?(0,_slotIcon.renderSlotIcon)(d,$?re:Z,b):null,se=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:P.contentRow,children:[$?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"button-icon-badge",style:[P.iconLeft,P.iconBadge,{width:te,height:te,borderRadius:te/2,backgroundColor:A.badgeFill}],children:oe}):oe?(0,_jsxRuntime.jsx)(_reactNative.View,{style:P.iconLeft,children:oe}):null,r?(0,_jsxRuntime.jsxs)(_reactNative.View,{onLayout:X,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[P.label,{color:A.textColor,fontSize:W.text,...(0,_index.fontFor)(w,"semibold")},m],numberOfLines:1,children:r}),N?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",testID:"button-link-underline",style:[P.linkUnderline,{backgroundColor:A.textColor,transform:[{translateX:E.interpolate({inputRange:[0,1],outputRange:[-H/2,0]})},{scaleX:E.interpolate({inputRange:[0,1],outputRange:[0,1]})}]}]}):null]}):o,u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:P.iconRight,children:(0,_slotIcon.renderSlotIcon)(u,Z,b)}):null]}),ie=N?null===G?LINK_HIT_SLOP:Math.max(LINK_HIT_SLOP,touchSlopFor(G)):touchSlopFor(W["min-height"]),ne={top:ie,bottom:ie,left:N?LINK_HIT_SLOP:0,right:N?LINK_HIT_SLOP:0};return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[q.style,c?P.fullWidth:null,x],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:e=>{F&&!O.isFlick(e)&&(q.press(),_&&(0,_hapticUtils.triggerHaptic)(_),j?.(e))},onPressIn:e=>{O.onPressIn(e),q.pressIn(),N&&F&&(E.stopAnimation(),E.setValue(0),_reactNative.Animated.timing(E,{toValue:1,duration:w.motion.duration.slower,easing:_reactNative.Easing.bezier(...w.motion.ease.decelerate),useNativeDriver:!0}).start())},onPressOut:()=>{q.pressOut()},disabled:!F,hitSlop:ne,accessibilityRole:"button",accessibilityLabel:Y,accessibilityHint:C,accessibilityState:T,...(0,_ariaState.ariaFromState)(T),testID:I,onLayout:e=>{M.onLayout(e),N&&K(e.nativeEvent.layout.height)},style:({pressed:e})=>[P.base,{paddingHorizontal:N?0:W["padding-x"],paddingVertical:N?0:$?ee:W["padding-y"],paddingLeft:$?ee:void 0,minHeight:N?void 0:W["min-height"],borderRadius:D,..._corners.smoothCorners,backgroundColor:B||M.active?"transparent":A.backgroundColor,borderWidth:A.borderWidth,borderColor:M.active?"transparent":A.borderColor,opacity:a?.55:1,overflow:M.active||N?"visible":"hidden"},e&&J&&!M.active?{backgroundColor:w.colors["surface-pressed"]}:null,c?P.fullWidth:null,f],...k,"aria-disabled":!F,"aria-busy":a,children:({pressed:e})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[M.active&&M.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:M.size.width,height:M.size.height,radius:D,fill:e&&J?w.colors["surface-pressed"]:A.backgroundColor,stroke:A.borderColor,strokeWidth:A.borderWidth,outset:A.borderWidth}):null,B?(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:B,style:[_reactNative.StyleSheet.absoluteFill,{borderRadius:D,..._corners.smoothCorners}]}):null,e&&Q?M.active&&M.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:M.size.width,height:M.size.height,radius:D,fill:A.pressedTint,outset:A.borderWidth,testID:"button-pressed"}):(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[P.pressedOverlay,{borderRadius:D,backgroundColor:A.pressedTint,..._corners.smoothCorners}],testID:"button-pressed"}):null,se]})})})});Button.displayName="Button";const hasTextChild=e=>_react.default.Children.toArray(e).some(e=>"string"==typeof e||"number"==typeof e),SOFT_FILL_OPACITY=.14,toneFor=(e,t)=>{switch(t){case"primary":return{base:e.colors.primary,on:e.colors["on-primary"],fg:e.colors["primary-text"],soft:(0,_color.tintOf)(e.colors.primary,.14,e.colors["primary-soft"])};case"secondary":return{base:e.colors.neutral,on:e.colors["on-neutral"],fg:e.colors["on-neutral"],soft:e.colors.neutral};case"success":return{base:e.colors.success,on:e.colors["on-success"],fg:e.colors["success-text"],soft:(0,_color.tintOf)(e.colors.success,.14,e.colors["bg-subtle"])};case"warning":return{base:e.colors.warning,on:e.colors["on-warning"],fg:e.colors["warning-text"],soft:(0,_color.tintOf)(e.colors.warning,.14,e.colors["bg-subtle"])};case"danger":return{base:e.colors.danger,on:e.colors["on-danger"],fg:e.colors["danger-text"],soft:(0,_color.tintOf)(e.colors.danger,.14,e.colors["bg-subtle"])};default:return{base:e.colors["bg-muted"],on:e.colors["text-body"],fg:e.colors["text-body"],soft:e.colors["bg-subtle"]}}},BUTTON_BORDER_WIDTH=1,MIN_TOUCH_TARGET=44,LINK_HIT_SLOP=8,touchSlopFor=e=>Math.max(0,Math.ceil((44-e)/2)),variantFor=(e,t,r,o)=>{const s=o?e.colors["text-disabled"]:r.fg,i={badgeFill:e.colors["surface-disabled"],badgeInk:e.colors["text-disabled"]},n=o?i:{badgeFill:r.on,badgeInk:r.base},a=o?i:{badgeFill:r.base,badgeInk:r.on};switch(t){case"solid":return{backgroundColor:o?e.colors["surface-disabled"]:r.base,borderColor:"transparent",borderWidth:1,textColor:o?e.colors["text-disabled"]:r.on,pressedTint:e.colors["surface-pressed"],...n};case"soft":return{backgroundColor:o?e.colors["surface-disabled"]:r.soft,borderColor:"transparent",borderWidth:1,textColor:s,pressedTint:e.colors["surface-pressed"],...a};case"outline":return{backgroundColor:"transparent",borderColor:o?e.colors.border:r.base,borderWidth:1,textColor:s,pressedTint:e.colors["surface-pressed"],...a};case"ghost":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:1,textColor:s,pressedTint:e.colors["surface-pressed"],...a};case"link":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:0,textColor:o?e.colors["text-disabled"]:e.colors.link,pressedTint:e.colors["surface-pressed"],...a};case"glass":return{backgroundColor:e.colors["glass-fill"],borderColor:e.colors["glass-border"],borderWidth:1,textColor:o?e.colors["text-disabled"]:e.colors["on-glass"],pressedTint:_color.ACCENT_PRESSED_TINT,badgeFill:e.colors["glass-badge"],badgeInk:o?e.colors["text-disabled"]:r.base};default:return{backgroundColor:r.base,borderColor:"transparent",borderWidth:1,textColor:r.on,pressedTint:e.colors["surface-pressed"],...n}}},buildStyles=e=>_reactNative.StyleSheet.create({pressedOverlay:{position:"absolute",top:0,right:0,bottom:0,left:0},base:{alignItems:"center",justifyContent:"center",flexDirection:"row",overflow:"hidden"},contentRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},linkUnderline:{height:1.5,marginTop:1},iconLeft:{marginRight:e.space.sm},iconBadge:{alignItems:"center",justifyContent:"center"},iconRight:{marginLeft:e.space.sm},fullWidth:{alignSelf:"stretch"}});var _default=exports.default=Button;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Calendar=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_CalendarDay=require("./CalendarDay.js"),_calendarDates=require("./calendarDates.js"),_calendarStyles=require("./calendarStyles.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_TONE={holiday:"error",event:"primary",pending:"warning"},MAX_DOTS=3,DAY_TEXT_MAX_SCALE=1.5,toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":case"danger":return e.colors.error;case"info":return e.colors.info;case"primary":return e.colors.primary;default:return e.colors.text.secondary}},toneInk=(e,t)=>"neutral"===t?e.colors.text.secondary:e.colors.toneText["danger"===t?"error":t],Calendar=exports.Calendar=(0,_react.forwardRef)((e,t)=>{const{mode:a="single",value:r,onChange:n,month:i,onMonthChange:s,minDate:l,maxDate:o,disabledDates:c,weekStartsOn:d=0,locale:u="en-IN",markedDates:_,strikeMarkedInRange:m=!1,cellSize:y,haptic:h,accessibilityLabel:x,style:g,headerLabelStyle:v,navButtonStyle:p,testID:D}=e,b=(0,_index2.useTheme)(),f=(0,_index.usePresenceMotion)(),N=(0,_react.useMemo)(()=>(0,_calendarStyles.buildCalendarStyles)(b),[b]),[M,j]=(0,_index.useControllableState)({value:i?(0,_calendarDates.startOfMonth)(i):void 0,defaultValue:(0,_calendarDates.startOfMonth)(r?.start??new Date),onChange:s}),S=12*M.getFullYear()+M.getMonth(),k=r?.start?(0,_calendarDates.startOfDay)(r.start):null,w="range"===a&&r?.end?(0,_calendarDates.startOfDay)(r.end):null,T=k?.getTime()??null,R=w?.getTime()??null,C=(0,_calendarDates.toIso)(new Date),I=l?(0,_calendarDates.startOfDay)(l).getTime():null,L=o?(0,_calendarDates.startOfDay)(o).getTime():null,A=(0,_react.useMemo)(()=>new Set((c??[]).map(e=>(0,_calendarDates.toIso)(e))),[c]),E=(0,_react.useCallback)(e=>null!==I&&e.getTime()<I||null!==L&&e.getTime()>L||A.has((0,_calendarDates.toIso)(e)),[I,L,A]),O=(0,_react.useMemo)(()=>{const e=new Map;for(const t of _??[]){const a=(0,_calendarDates.toIso)(t.date);let r=e.get(a);r||(r={dots:[],holiday:!1,spoken:[]},e.set(a,r));const n=t.tone??DEFAULT_TONE[t.kind],i=toneColor(b,n);r.dots.length<3&&r.dots.push({key:`${t.kind}-${r.dots.length}`,color:i}),"holiday"===t.kind&&(r.holiday=!0,r.holidayInk??=toneInk(b,n)),t.label&&r.spoken.push(t.label),r.spoken.push(t.kind)}return e},[_,b]),V=(0,_react.useMemo)(()=>(0,_calendarDates.buildMonthMatrix)(new Date(Math.floor(S/12),S%12,1),d),[S,d]),F=(0,_react.useMemo)(()=>(0,_calendarDates.weekdayLabels)(u,d),[u,d]),P=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}),[u]),q=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{weekday:"short",day:"numeric",month:"long"}),[u]),z=P.format(M),B=null===I||(0,_calendarDates.startOfMonth)(new Date(I)).getTime()<M.getTime(),H=null===L||(0,_calendarDates.startOfMonth)(new Date(L)).getTime()>M.getTime(),X=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,Z=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,$=(0,_react.useRef)(null);(0,_react.useEffect)(()=>()=>$.current?.stop(),[]);const U=(0,_react.useCallback)(e=>{!1!==h&&(0,_index3.triggerHaptic)("impactLight");const t=b.components.dateRangePicker,a=t?.monthSlideDistance??32,r=t?.monthSlideOutDuration??b.motion.duration.fast,n=t?.monthSlideInDuration??b.motion.duration.fast,[i]=f.range(-e*a,0),[s]=f.range(e*a,0),l=f.reduced?f.duration("fast"):r,o=f.reduced?f.duration("fast"):n;$.current?.stop(),$.current=_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:i,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(Z,{toValue:0,duration:l,useNativeDriver:!0})]),_reactNative.Animated.timing(X,{toValue:s,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:0,duration:n,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(Z,{toValue:1,duration:o,useNativeDriver:!0})])]),$.current.start();const c=(0,_calendarDates.addMonths)(M,e);j(c),_reactNative.AccessibilityInfo.announceForAccessibility(P.format(c))},[h,M,Z,P,X,f,j,b]),Y=(0,_react.useCallback)(()=>U(-1),[U]),G=(0,_react.useCallback)(()=>U(1),[U]),pressDay=e=>{if(E(e.date))return;const t=(0,_index3.resolveHaptic)(h,"selection");t&&(0,_index3.triggerHaptic)(t);const r=e.date;"single"===a||!k||w||r.getTime()<k.getTime()?n({start:r}):n({start:k,end:r}),e.inMonth||j((0,_calendarDates.startOfMonth)(r))},W=(0,_react.useRef)(pressDay);(0,_react.useLayoutEffect)(()=>{W.current=pressDay});const J=(0,_react.useCallback)(e=>W.current(e),[]),K=void 0===y?void 0:Math.max(y,_calendarStyles.MIN_CELL_SIZE),Q=(0,_react.useMemo)(()=>void 0===K?{flex:1}:{width:K},[K]),ee=(0,_react.useMemo)(()=>void 0===K?{flex:1,aspectRatio:1,minHeight:_calendarStyles.MIN_CELL_SIZE}:{width:K,height:K},[K]),te=b.components.dateRangePicker?.navButtonSize??_calendarStyles.NAV_BUTTON_SIZE,ae=Math.max(b.spacing.sm,(_calendarStyles.MIN_CELL_SIZE-te)/2),re=Math.min(b.maxFontSizeMultiplier??1.5,1.5),ne=[];for(let e=0;e<_calendarDates.GRID_CELLS;e+=7)ne.push(V.slice(e,e+7));return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[N.root,g],testID:D,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:N.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Y,disabled:!B,style:({pressed:e})=>[N.navBtn,e&&N.navBtnPressed,!B&&N.navBtnDisabled,p],accessibilityRole:"button",accessibilityLabel:"Previous month",accessibilityState:{disabled:!B},"aria-disabled":!B,hitSlop:ae,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.navText,maxFontSizeMultiplier:re,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[N.headerLabelWrap,{opacity:Z,transform:[{translateX:X}]},v],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.headerLabel,accessibilityRole:"header",accessibilityLabel:x?`${x}, ${z}`:void 0,maxFontSizeMultiplier:b.maxFontSizeMultiplier,children:z})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:G,disabled:!H,style:({pressed:e})=>[N.navBtn,e&&N.navBtnPressed,!H&&N.navBtnDisabled,p],accessibilityRole:"button",accessibilityLabel:"Next month",accessibilityState:{disabled:!H},"aria-disabled":!H,hitSlop:ae,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.navText,maxFontSizeMultiplier:re,children:"›"})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.weekdayRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:F.map(({weekday:e,label:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[N.weekdayCell,Q],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.weekdayText,maxFontSizeMultiplier:re,children:t})},e))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{opacity:Z,transform:[{translateX:X}]},children:ne.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.gridRow,children:e.map(e=>{const t=e.date.getTime(),r=null!==T&&t===T,n=null!==R&&t===R,i=null!==T&&null!==R&&t>=T&&t<=R,s=i&&!r&&!n,l=e.iso===C,o=O.get(e.iso),c=m&&i&&!0===o?.holiday,d=[q.format(e.date),...o?.spoken??[]];return l&&d.push("today"),"range"===a&&(r&&n?d.push("start and end of your range"):r?d.push("start of your range"):n?d.push("end of your range"):s&&d.push("in your range")),c&&d.push("not counted"),(0,_jsxRuntime.jsx)(_CalendarDay.CalendarDay,{cell:e,accessibilityLabel:d.join(", "),disabled:E(e.date),edge:r||n,mid:s,barLeft:i&&(n||s)&&!(r&&n),barRight:i&&(r||s)&&!(r&&n),today:l,struck:c,dots:o?.dots,inkColor:o?.holidayInk,cellStyle:ee,styles:N,maxFontSizeMultiplier:re,onPressDay:J},e.iso)})},e[0].iso))})]})});Calendar.displayName="Calendar";var _default=exports.default=Calendar;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Calendar=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_CalendarDay=require("./CalendarDay.js"),_calendarDates=require("./calendarDates.js"),_calendarStyles=require("./calendarStyles.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_TONE={holiday:"danger",event:"primary",pending:"warning"},MAX_DOTS=3,DAY_TEXT_MAX_SCALE=1.5,toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;case"info":return e.colors.info;case"primary":return e.colors.primary;default:return e.colors["text-muted"]}},toneInk=(e,t)=>"neutral"===t?e.colors["text-muted"]:e.colors[`${t}-text`],Calendar=exports.Calendar=(0,_react.forwardRef)((e,t)=>{const{mode:a="single",value:r,onChange:n,month:i,onMonthChange:s,minDate:l,maxDate:o,disabledDates:c,weekStartsOn:d=0,locale:u="en-IN",markedDates:_,strikeMarkedInRange:m=!1,cellSize:y,haptic:h,accessibilityLabel:x,style:g,headerLabelStyle:v,navButtonStyle:p,testID:D}=e,b=(0,_index2.useTheme)(),f=(0,_index.usePresenceMotion)(),N=(0,_react.useMemo)(()=>(0,_calendarStyles.buildCalendarStyles)(b),[b]),[M,j]=(0,_index.useControllableState)({value:i?(0,_calendarDates.startOfMonth)(i):void 0,defaultValue:(0,_calendarDates.startOfMonth)(r?.start??new Date),onChange:s}),w=12*M.getFullYear()+M.getMonth(),S=r?.start?(0,_calendarDates.startOfDay)(r.start):null,T="range"===a&&r?.end?(0,_calendarDates.startOfDay)(r.end):null,k=S?.getTime()??null,R=T?.getTime()??null,C=(0,_calendarDates.toIso)(new Date),I=l?(0,_calendarDates.startOfDay)(l).getTime():null,L=o?(0,_calendarDates.startOfDay)(o).getTime():null,A=(0,_react.useMemo)(()=>new Set((c??[]).map(e=>(0,_calendarDates.toIso)(e))),[c]),E=(0,_react.useCallback)(e=>null!==I&&e.getTime()<I||null!==L&&e.getTime()>L||A.has((0,_calendarDates.toIso)(e)),[I,L,A]),V=(0,_react.useMemo)(()=>{const e=new Map;for(const t of _??[]){const a=(0,_calendarDates.toIso)(t.date);let r=e.get(a);r||(r={dots:[],holiday:!1,spoken:[]},e.set(a,r));const n=t.tone??DEFAULT_TONE[t.kind],i=toneColor(b,n);r.dots.length<3&&r.dots.push({key:`${t.kind}-${r.dots.length}`,color:i}),"holiday"===t.kind&&(r.holiday=!0,r.holidayInk??=toneInk(b,n)),t.label&&r.spoken.push(t.label),r.spoken.push(t.kind)}return e},[_,b]),O=(0,_react.useMemo)(()=>(0,_calendarDates.buildMonthMatrix)(new Date(Math.floor(w/12),w%12,1),d),[w,d]),F=(0,_react.useMemo)(()=>(0,_calendarDates.weekdayLabels)(u,d),[u,d]),q=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}),[u]),P=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{weekday:"short",day:"numeric",month:"long"}),[u]),z=q.format(M),B=null===I||(0,_calendarDates.startOfMonth)(new Date(I)).getTime()<M.getTime(),H=null===L||(0,_calendarDates.startOfMonth)(new Date(L)).getTime()>M.getTime(),X=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,$=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,Z=(0,_react.useRef)(null);(0,_react.useEffect)(()=>()=>Z.current?.stop(),[]);const U=(0,_react.useCallback)(e=>{!1!==h&&(0,_index3.triggerHaptic)("impactLight");const t=b.motion.duration.fast,a=b.motion.duration.fast,[r]=f.range(32*-e,0),[n]=f.range(32*e,0),i=f.reduced?f.duration("fast"):t,s=f.reduced?f.duration("fast"):a;Z.current?.stop(),Z.current=_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:r,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing($,{toValue:0,duration:i,useNativeDriver:!0})]),_reactNative.Animated.timing(X,{toValue:n,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:0,duration:a,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing($,{toValue:1,duration:s,useNativeDriver:!0})])]),Z.current.start();const l=(0,_calendarDates.addMonths)(M,e);j(l),_reactNative.AccessibilityInfo.announceForAccessibility(q.format(l))},[h,M,$,q,X,f,j,b]),Y=(0,_react.useCallback)(()=>U(-1),[U]),G=(0,_react.useCallback)(()=>U(1),[U]),pressDay=e=>{if(E(e.date))return;const t=(0,_index3.resolveHaptic)(h,"selection");t&&(0,_index3.triggerHaptic)(t);const r=e.date;"single"===a||!S||T||r.getTime()<S.getTime()?n({start:r}):n({start:S,end:r}),e.inMonth||j((0,_calendarDates.startOfMonth)(r))},W=(0,_react.useRef)(pressDay);(0,_react.useLayoutEffect)(()=>{W.current=pressDay});const J=(0,_react.useCallback)(e=>W.current(e),[]),K=void 0===y?void 0:Math.max(y,_calendarStyles.MIN_CELL_SIZE),Q=(0,_react.useMemo)(()=>void 0===K?{flex:1}:{width:K},[K]),ee=(0,_react.useMemo)(()=>void 0===K?{flex:1,aspectRatio:1,minHeight:_calendarStyles.MIN_CELL_SIZE}:{width:K,height:K},[K]),te=Math.max(b.space.sm,(_calendarStyles.MIN_CELL_SIZE-_calendarStyles.NAV_BUTTON_SIZE)/2),ae=Math.min(b.settings.maxFontSizeMultiplier??1.5,1.5),re=[];for(let e=0;e<_calendarDates.GRID_CELLS;e+=7)re.push(O.slice(e,e+7));return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[N.root,g],testID:D,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:N.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Y,disabled:!B,style:({pressed:e})=>[N.navBtn,e&&N.navBtnPressed,!B&&N.navBtnDisabled,p],accessibilityRole:"button",accessibilityLabel:"Previous month",accessibilityState:{disabled:!B},"aria-disabled":!B,hitSlop:te,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.navText,maxFontSizeMultiplier:ae,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[N.headerLabelWrap,{opacity:$,transform:[{translateX:X}]},v],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.headerLabel,accessibilityRole:"header",accessibilityLabel:x?`${x}, ${z}`:void 0,maxFontSizeMultiplier:b.settings.maxFontSizeMultiplier,children:z})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:G,disabled:!H,style:({pressed:e})=>[N.navBtn,e&&N.navBtnPressed,!H&&N.navBtnDisabled,p],accessibilityRole:"button",accessibilityLabel:"Next month",accessibilityState:{disabled:!H},"aria-disabled":!H,hitSlop:te,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.navText,maxFontSizeMultiplier:ae,children:"›"})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.weekdayRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:F.map(({weekday:e,label:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[N.weekdayCell,Q],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:N.weekdayText,maxFontSizeMultiplier:ae,children:t})},e))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{opacity:$,transform:[{translateX:X}]},children:re.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.gridRow,children:e.map(e=>{const t=e.date.getTime(),r=null!==k&&t===k,n=null!==R&&t===R,i=null!==k&&null!==R&&t>=k&&t<=R,s=i&&!r&&!n,l=e.iso===C,o=V.get(e.iso),c=m&&i&&!0===o?.holiday,d=[P.format(e.date),...o?.spoken??[]];return l&&d.push("today"),"range"===a&&(r&&n?d.push("start and end of your range"):r?d.push("start of your range"):n?d.push("end of your range"):s&&d.push("in your range")),c&&d.push("not counted"),(0,_jsxRuntime.jsx)(_CalendarDay.CalendarDay,{cell:e,accessibilityLabel:d.join(", "),disabled:E(e.date),edge:r||n,mid:s,barLeft:i&&(n||s)&&!(r&&n),barRight:i&&(r||s)&&!(r&&n),today:l,struck:c,dots:o?.dots,inkColor:o?.holidayInk,cellStyle:ee,styles:N,maxFontSizeMultiplier:ae,onPressDay:J},e.iso)})},e[0].iso))})]})});Calendar.displayName="Calendar";var _default=exports.default=Calendar;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CalendarDay=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const DISABLED_OPACITY=.3,OUTSIDE_MONTH_OPACITY=.4,TODAY_RING_WIDTH=1.5,CalendarDayBase=({cell:e,accessibilityLabel:t,disabled:a,edge:i,mid:r,barLeft:l,barRight:s,today:n,struck:d,dots:o,inkColor:c,cellStyle:y,styles:u,maxFontSizeMultiplier:x,onPressDay:_})=>{const b=(0,_index.useTheme)(),{colors:m}=b,j=i?m.onPrimary:e.inMonth?a?m.text.disabled:c??m.text.primary:m.text.tertiary,v=n&&!i;return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{disabled:a,onPress:()=>_(e),accessibilityRole:"button",accessibilityLabel:t,accessibilityState:{selected:i,disabled:a},"aria-selected":i,"aria-disabled":a,style:[u.dayCell,y],children:[l?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.barLeft,u.rangeFill]}):null,s?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.barRight,u.rangeFill]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[u.dayInner,i?u.dayEdge:r?u.rangeFill:null,r?u.dayMid:null,v?{borderColor:m.primary,borderWidth:1.5}:null,{opacity:a?.3:e.inMonth?1:.4}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.dayText,{color:j},d?u.dayStruck:null],maxFontSizeMultiplier:x,children:e.date.getDate()}),o&&o.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:u.dots,children:o.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dot,{backgroundColor:i?m.onPrimary:e.color}]},e.key))}):null]})]})},CalendarDay=exports.CalendarDay=(0,_react.memo)(CalendarDayBase);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CalendarDay=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const DISABLED_OPACITY=.3,OUTSIDE_MONTH_OPACITY=.4,TODAY_RING_WIDTH=1.5,CalendarDayBase=({cell:e,accessibilityLabel:t,disabled:a,edge:i,mid:r,barLeft:l,barRight:s,today:n,struck:d,dots:o,inkColor:c,cellStyle:y,styles:u,maxFontSizeMultiplier:x,onPressDay:_})=>{const b=(0,_index.useTheme)(),{colors:m}=b,j=i?m["on-primary"]:e.inMonth?a?m["text-disabled"]:c??m["text-body"]:m["text-subtle"],v=n&&!i;return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{disabled:a,onPress:()=>_(e),accessibilityRole:"button",accessibilityLabel:t,accessibilityState:{selected:i,disabled:a},"aria-selected":i,"aria-disabled":a,style:[u.dayCell,y],children:[l?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.barLeft,u.rangeFill]}):null,s?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.barRight,u.rangeFill]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[u.dayInner,i?u.dayEdge:r?u.rangeFill:null,r?u.dayMid:null,v?{borderColor:m.primary,borderWidth:1.5}:null,{opacity:a?.3:e.inMonth?1:.4}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.dayText,{color:j},d?u.dayStruck:null],maxFontSizeMultiplier:x,children:e.date.getDate()}),o&&o.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:u.dots,children:o.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dot,{backgroundColor:i?m["on-primary"]:e.color}]},e.key))}):null]})]})},CalendarDay=exports.CalendarDay=(0,_react.memo)(CalendarDayBase);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildCalendarStyles=exports.NAV_BUTTON_SIZE=exports.MIN_CELL_SIZE=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_scale=require("../../theme/scale.js"),_corners=require("../../utils/corners.js");const MIN_CELL_SIZE=exports.MIN_CELL_SIZE=44,NAV_BUTTON_SIZE=exports.NAV_BUTTON_SIZE=36,DOT_SIZE=5,buildCalendarStyles=e=>{const t=e.components.dateRangePicker,r=t?.navButtonSize??NAV_BUTTON_SIZE;return _reactNative.StyleSheet.create({root:{alignSelf:"stretch"},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.spacing.md},navBtn:{width:r,height:r,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navBtnDisabled:{opacity:.4},navText:{fontSize:(0,_scale.fontSizeOf)(e,t?.navText??"2xl","components.dateRangePicker.navText"),lineHeight:t?.navTextLineHeight??26,color:e.colors.text.primary,...(0,_index.fontFor)(e,"semibold")},headerLabelWrap:{flex:1,alignItems:"center"},headerLabel:{fontSize:e.typography.fontSize.base,color:e.colors.text.primary,...(0,_index.fontFor)(e,"semibold")},weekdayRow:{flexDirection:"row",justifyContent:"center",marginBottom:e.spacing.xs},weekdayCell:{alignItems:"center",paddingVertical:e.spacing.xs},weekdayText:{fontSize:e.typography.fontSize.xs,color:e.colors.text.tertiary,letterSpacing:e.typography.letterSpacing.wide,...(0,_index.fontFor)(e,"medium")},gridRow:{flexDirection:"row",justifyContent:"center"},dayCell:{alignItems:"center",justifyContent:"center",padding:e.spacing.none},barLeft:{position:"absolute",left:0,right:"50%",top:"5%",bottom:"5%"},barRight:{position:"absolute",left:"50%",right:0,top:"5%",bottom:"5%"},rangeFill:{backgroundColor:e.colors.primaryMuted},dayInner:{width:"90%",height:"90%",alignItems:"center",justifyContent:"center",borderRadius:e.radius.pill,..._corners.smoothCorners},dayEdge:{backgroundColor:e.colors.primary},dayMid:{borderRadius:e.radius.none},dayText:{fontSize:e.typography.fontSize.sm,...(0,_index.fontFor)(e,"medium")},dayStruck:{textDecorationLine:"line-through"},dots:{position:"absolute",bottom:e.spacing.xs,flexDirection:"row",gap:e.spacing.xxs},dot:{width:5,height:5,borderRadius:e.radius.pill,..._corners.smoothCorners}})};exports.buildCalendarStyles=buildCalendarStyles;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildCalendarStyles=exports.NAV_BUTTON_SIZE=exports.MIN_CELL_SIZE=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js");const MIN_CELL_SIZE=exports.MIN_CELL_SIZE=44,NAV_BUTTON_SIZE=exports.NAV_BUTTON_SIZE=36,DOT_SIZE=5,buildCalendarStyles=e=>_reactNative.StyleSheet.create({root:{alignSelf:"stretch"},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.space.md},navBtn:{width:NAV_BUTTON_SIZE,height:NAV_BUTTON_SIZE,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors["bg-subtle"]},navBtnPressed:{backgroundColor:e.colors["surface-pressed"]},navBtnDisabled:{opacity:.4},navText:{fontSize:e.text["2xl"].size,lineHeight:26,color:e.colors["text-body"],...(0,_index.fontFor)(e,"semibold")},headerLabelWrap:{flex:1,alignItems:"center"},headerLabel:{fontSize:e.text.base.size,color:e.colors["text-body"],...(0,_index.fontFor)(e,"semibold")},weekdayRow:{flexDirection:"row",justifyContent:"center",marginBottom:e.space.xs},weekdayCell:{alignItems:"center",paddingVertical:e.space.xs},weekdayText:{fontSize:e.text.xs.size,color:e.colors["text-subtle"],letterSpacing:e["letter-spacing"].wide,...(0,_index.fontFor)(e,"medium")},gridRow:{flexDirection:"row",justifyContent:"center"},dayCell:{alignItems:"center",justifyContent:"center",padding:e.space.none},barLeft:{position:"absolute",left:0,right:"50%",top:"5%",bottom:"5%"},barRight:{position:"absolute",left:"50%",right:0,top:"5%",bottom:"5%"},rangeFill:{backgroundColor:e.colors["primary-soft"]},dayInner:{width:"90%",height:"90%",alignItems:"center",justifyContent:"center",borderRadius:e.radius.pill,..._corners.smoothCorners},dayEdge:{backgroundColor:e.colors.primary},dayMid:{borderRadius:e.radius.none},dayText:{fontSize:e.text.sm.size,...(0,_index.fontFor)(e,"medium")},dayStruck:{textDecorationLine:"line-through"},dots:{position:"absolute",bottom:e.space.xs,flexDirection:"row",gap:e.space.xxs},dot:{width:5,height:5,borderRadius:e.radius.pill,..._corners.smoothCorners}});exports.buildCalendarStyles=buildCalendarStyles;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Card=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_shadows=require("../../utils/shadows.js"),_squircle=require("../../utils/squircle.js"),_themeStyles=require("../../utils/themeStyles.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_useContextMenu=require("../Menu/useContextMenu.js"),_index2=require("../Skeleton/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,r,s=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(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((i=s&&Object.getOwnPropertyDescriptor(e,r))&&(i.get||i.set)?s(n,r,i):n[r]=e[r]);return n}const paddingMap={none:"none",sm:"sm",md:"lg",lg:"xl",xl:"2xl"},Card=exports.Card=_react.default.memo((0,_react.forwardRef)((e,t)=>{const{children:i,variant:r="elevated",elevation:s="sm",radius:n="lg",padding:a="md",interactive:o=!1,bg:l,header:c,title:d,lead:u,action:h,headerActions:m,collapsible:x=!1,collapsed:p,defaultCollapsed:_=!1,onCollapsedChange:g,collapsedSummary:b,onRemove:y,removeLabel:j="Remove",separatorHeight:v=_reactNative.StyleSheet.hairlineWidth,footer:R,imageSource:f,imageHeight:S=160,imageAspectRatio:w,imageOverlay:C,loading:k=!1,gradient:A,onPress:q,haptic:N,contextMenu:T,accessibilityLabel:P,accessibilityHint:I,accessibilityRole:B,style:L,containerStyle:F,headerStyle:M,bodyStyle:V,footerStyle:H,borderRadius:W,testID:z,onLayout:O,...D}=e,U=(0,_index.useTheme)(),E=o||"function"==typeof q,G=(0,_useContextMenu.useContextMenu)(T,{haptic:N||!1,testID:z,accessibilityActions:D.accessibilityActions,onAccessibilityAction:D.onAccessibilityAction}),$=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(t,G.hostRef),[t,G.hostRef]),J=E||G.enabled,{style:K,pressIn:Q,pressOut:X}=(0,_usePressAnimation.usePressAnimation)({enabled:J}),Y=stylesFor(U),Z=Boolean(f),ee=U.spacing[paddingMap[a]],te=(0,_react.useMemo)(()=>A?"string"==typeof A?U.gradients[A]??null:A:null,[A,U.gradients]),ie="flat"===r,re=ie?U.radius.none:W??U.radius[n],se=resolveBackground(U,l),[ne,ae]=(0,_useControllableState.useControllableState)({value:p,defaultValue:_,onChange:g}),oe=x&&ne,le=hasBuiltInHeaderContent(e),ce=Boolean(c)||le,de=(0,_SquircleFill.useSquircle)(!Z&&!te&&!ie,re,O),ue=_reactNative.StyleSheet.flatten([L,F])??{},he=ue.backgroundColor,me=ue.borderColor,xe=he??se??("filled"===r?U.colors.background.secondary:U.colors.background.elevated),pe="outlined"===r?U.colors.border.width:0,ge=me??U.colors.border.primary,be="elevated"===r&&(0,_shadows.supportsBoxShadow)()?(0,_shadows.toBoxShadow)(U.shadows[s]):void 0,ye=de.active&&"elevated"===r&&!be,je=de.active&&!ye?{backgroundColor:"transparent",borderColor:"transparent"}:null,ve=(0,_react.useMemo)(()=>{const e={borderRadius:ye&&de.size?(0,_squircle.squircleHostRadius)(de.size.width,de.size.height,re):re,..._corners.smoothCorners,padding:Z?U.spacing.none:ee,overflow:de.active?"visible":"hidden"};switch(r){case"flat":return{...e,backgroundColor:se??U.colors.background.elevated,borderBottomWidth:v,borderBottomColor:U.colors.border.primary};case"outlined":return{...e,backgroundColor:de.active?"transparent":se??U.colors.background.elevated,borderWidth:U.colors.border.width,borderColor:de.active?"transparent":U.colors.border.primary};case"filled":return{...e,backgroundColor:de.active?"transparent":se??U.colors.background.secondary};default:return{...e,backgroundColor:se??U.colors.background.elevated,...be?{boxShadow:be}:U.shadows[s]}}},[U,r,s,re,Z,ee,de.active,de.size,be,ye,se,v]),Re=(0,_react.useMemo)(()=>({..."number"==typeof w?{width:"100%",aspectRatio:w}:{width:"100%",height:S},borderTopLeftRadius:re,borderTopRightRadius:re,borderBottomLeftRadius:U.radius.none,borderBottomRightRadius:U.radius.none,..._corners.smoothCorners}),[U,re,w,S]),fe="string"==typeof d?d:"",Se=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.titleColumn,children:["string"==typeof d?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"title",accessibilityRole:"header",children:d}):d,u?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",style:Y.lead,children:u}):null,oe&&b?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"caption",style:Y.lead,children:b}):null]}),isCardTextAction(h)?(0,_jsxRuntime.jsx)(CardTextActionButton,{action:h,haptic:N}):h?(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.actionNode,children:h}):null,m,x?(0,_jsxRuntime.jsx)(CardIconAction,{icon:oe?"chevron-down":"chevron-up",label:`${oe?"Show":"Hide"} ${fe}`.trim(),expanded:!oe,onPress:()=>ae(!oe),haptic:N}):null,y?(0,_jsxRuntime.jsx)(CardIconAction,{icon:"trash",label:j,onPress:y,color:U.colors.toneText.error,haptic:N}):null]}),we=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ce?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.header,!c&&Y.headerRow,oe&&Y.headerFolded,M],children:c??Se}):null,oe?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[ce||R?Y.body:null,V],children:i}),R&&!oe?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.footer,H],children:R}):null]}),Ce=Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.imageWrapper,children:[(0,_jsxRuntime.jsx)(_reactNative.Image,{source:f,resizeMode:"cover",style:Re,accessibilityLabel:"",accessible:!1}),C?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"box-none",style:Y.imageOverlay,children:C}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{padding:ee},children:we})]}):we,ke=te?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:te,style:_reactNative.StyleSheet.absoluteFill}),Ce]}):de.active&&de.size?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:de.size.width,height:de.size.height,radius:re,fill:xe,stroke:pe?ge:void 0,strokeWidth:pe,outset:pe}),Ce]}):Ce;let Ae;if(J){const handlePress=e=>{E&&(N&&(0,_hapticUtils.triggerHaptic)(N),q?.(e))};Ae=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:K,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:$,onPress:handlePress,onPressIn:Q,onPressOut:X,android_ripple:{color:U.colors.surface.pressed,borderless:!1},accessibilityRole:B??(E?"button":void 0),accessibilityLabel:P,accessibilityHint:I,testID:z,onLayout:de.onLayout,style:[ve,L,F,je],...D,...G.hostProps,children:ke})})}else Ae=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityLabel:P,accessibilityHint:I,accessibilityRole:B,testID:z,onLayout:de.onLayout,style:[ve,L,F,je],...D,children:ke});return k?(0,_jsxRuntime.jsx)(CardSkeleton,{...e}):G.enabled?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[Ae,G.renderSurface((0,_jsxRuntime.jsx)(_reactNative.View,{style:[ve,L,F,je,Y.preview],children:ke}))]}):Ae}));Card.displayName="Card";const CardSkeleton=({variant:e="elevated",elevation:t,radius:i="lg",padding:r="md",bg:s,header:n,footer:a,imageSource:o,imageHeight:l=160,imageAspectRatio:c,borderRadius:d,containerStyle:u,headerStyle:h,bodyStyle:m,footerStyle:x,style:p,..._})=>{const g=(0,_index.useTheme)(),b=paddingMap[r],y=g.spacing[b],j="flat"===e?g.radius.none:d??g.radius[i],v=void 0!==n||hasBuiltInHeaderContent(_),R=resolveBackground(g,s)??g.colors.background.elevated,f="outlined"===e?1:0,S="outlined"===e?g.colors.border.primary:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{backgroundColor:R,borderRadius:j,..._corners.smoothCorners,borderWidth:f,borderColor:S,overflow:"hidden"},u,p],accessibilityRole:"progressbar",accessibilityLabel:"Loading",accessibilityState:{busy:!0},"aria-busy":!0,children:[void 0!==o?(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:c?void 0:l,style:c?{aspectRatio:c,width:"100%"}:void 0}):null,v?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingBottom:g.spacing.sm},h],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y},m],children:(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:3,fontSize:g.typography.fontSize.base,lastLineWidth:"55%"})}),void 0!==a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingTop:g.spacing.sm,flexDirection:"row"},x],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:88,height:32,shape:"rounded"})}):null]})};CardSkeleton.displayName="CardSkeleton",Card.Skeleton=CardSkeleton;const hasBuiltInHeaderContent=e=>Boolean(e.title||e.lead||e.action||e.headerActions||e.collapsible||e.onRemove),isCardTextAction=e=>"object"==typeof e&&null!==e&&!_react.default.isValidElement(e)&&"label"in e&&"onPress"in e,HIT_TARGET=44,CardIconAction=({icon:e,label:t,onPress:i,expanded:r,color:s,haptic:n})=>{const a=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:t,accessibilityState:void 0===r?void 0:{expanded:r},"aria-expanded":r,onPress:()=>{n&&(0,_hapticUtils.triggerHaptic)(n),i()},style:iconActionStyle,children:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:e,size:20,color:s??a.colors.text.primary})})},CardTextActionButton=({action:e,haptic:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,onPress:()=>{t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},style:textActionStyle,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"label",weight:"semibold",color:i.colors.primary,children:e.label})})},iconActionStyle={width:44,height:44,alignItems:"center",justifyContent:"center"},textActionStyle={minWidth:44,minHeight:44,alignItems:"center",justifyContent:"center"},resolveBackground=(e,t)=>{if(null==t)return;return e.colors.background[t]??t},buildStyles=e=>_reactNative.StyleSheet.create({header:{marginBottom:e.spacing.md},headerRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},headerFolded:{marginBottom:e.spacing.none},titleColumn:{flex:1},lead:{marginTop:e.spacing.xs},actionNode:{flexShrink:0},body:{flexShrink:1},footer:{marginTop:e.spacing.md},imageWrapper:{position:"relative"},imageOverlay:{..._reactNative.StyleSheet.absoluteFill},preview:{margin:e.spacing.none,marginTop:e.spacing.none,marginBottom:e.spacing.none,marginLeft:e.spacing.none,marginRight:e.spacing.none,marginStart:e.spacing.none,marginEnd:e.spacing.none,marginHorizontal:e.spacing.none,marginVertical:e.spacing.none,position:"relative",top:0,left:0,width:"100%",height:"100%"}}),stylesFor=(0,_themeStyles.themeStyles)(buildStyles);var _default=exports.default=Card;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Card=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_shadows=require("../../utils/shadows.js"),_squircle=require("../../utils/squircle.js"),_themeStyles=require("../../utils/themeStyles.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_useContextMenu=require("../Menu/useContextMenu.js"),_index2=require("../Skeleton/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,s,r=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(s in e)"default"!==s&&{}.hasOwnProperty.call(e,s)&&((i=r&&Object.getOwnPropertyDescriptor(e,s))&&(i.get||i.set)?r(a,s,i):a[s]=e[s]);return a}const BACKGROUND_TOKENS=["bg","bg-subtle","bg-muted","surface","scrim","surface-inverse"],paddingMap={none:"none",sm:"sm",md:"lg",lg:"xl",xl:"2xl"},Card=exports.Card=_react.default.memo((0,_react.forwardRef)((e,t)=>{const{children:i,variant:s="elevated",elevation:r="card",radius:a="lg",padding:n="md",interactive:o=!1,bg:l,header:c,title:d,lead:u,action:h,headerActions:x,collapsible:m=!1,collapsed:_,defaultCollapsed:p=!1,onCollapsedChange:b,collapsedSummary:g,onRemove:j,removeLabel:y="Remove",separatorHeight:v=_reactNative.StyleSheet.hairlineWidth,footer:R,imageSource:f,imageHeight:S=160,imageAspectRatio:C,imageOverlay:w,loading:A=!1,gradient:N,onPress:q,haptic:k,contextMenu:T,accessibilityLabel:B,accessibilityHint:P,accessibilityRole:I,style:L,containerStyle:F,headerStyle:M,bodyStyle:V,footerStyle:H,borderRadius:O,testID:z,onLayout:W,...D}=e,U=(0,_index.useTheme)(),E=o||"function"==typeof q,G=(0,_useContextMenu.useContextMenu)(T,{haptic:k||!1,testID:z,accessibilityActions:D.accessibilityActions,onAccessibilityAction:D.onAccessibilityAction}),K=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(t,G.hostRef),[t,G.hostRef]),$=E||G.enabled,{style:J,pressIn:Q,pressOut:X}=(0,_usePressAnimation.usePressAnimation)({enabled:$}),Y=stylesFor(U),Z=Boolean(f),ee=U.space[paddingMap[n]],te=(0,_react.useMemo)(()=>N?"string"==typeof N?U.settings.gradients[N]??null:N:null,[N,U.settings.gradients]),ie="flat"===s,se=ie?U.radius.none:O??U.radius[a],re=resolveBackground(U,l),[ae,ne]=(0,_useControllableState.useControllableState)({value:_,defaultValue:p,onChange:b}),oe=m&&ae,le=hasBuiltInHeaderContent(e),ce=Boolean(c)||le,de=(0,_SquircleFill.useSquircle)(!Z&&!te&&!ie,se,W),ue=_reactNative.StyleSheet.flatten([L,F])??{},he=ue.backgroundColor,xe=ue.borderColor,me=he??re??("filled"===s?U.colors["bg-subtle"]:U.colors.surface),pe="outlined"===s?U.size.border:0,be=xe??U.colors.border,ge="none"===r?void 0:U.shadow[r],je="elevated"===s&&(0,_shadows.supportsBoxShadow)()&&ge?(0,_shadows.toBoxShadow)(ge):void 0,ye=de.active&&"elevated"===s&&!je,ve=de.active&&!ye?{backgroundColor:"transparent",borderColor:"transparent"}:null,Re=(0,_react.useMemo)(()=>{const e={borderRadius:ye&&de.size?(0,_squircle.squircleHostRadius)(de.size.width,de.size.height,se):se,..._corners.smoothCorners,padding:Z?U.space.none:ee,overflow:de.active?"visible":"hidden"};switch(s){case"flat":return{...e,backgroundColor:re??U.colors.surface,borderBottomWidth:v,borderBottomColor:U.colors.border};case"outlined":return{...e,backgroundColor:de.active?"transparent":re??U.colors.surface,borderWidth:U.size.border,borderColor:de.active?"transparent":U.colors.border};case"filled":return{...e,backgroundColor:de.active?"transparent":re??U.colors["bg-subtle"]};default:return{...e,backgroundColor:re??U.colors.surface,...je?{boxShadow:je}:ge}}},[U,s,ge,se,Z,ee,de.active,de.size,je,ye,re,v]),fe=(0,_react.useMemo)(()=>({..."number"==typeof C?{width:"100%",aspectRatio:C}:{width:"100%",height:S},borderTopLeftRadius:se,borderTopRightRadius:se,borderBottomLeftRadius:U.radius.none,borderBottomRightRadius:U.radius.none,..._corners.smoothCorners}),[U,se,C,S]),Se="string"==typeof d?d:"",Ce=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.titleColumn,children:["string"==typeof d?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"title",accessibilityRole:"header",children:d}):d,u?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",style:Y.lead,children:u}):null,oe&&g?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"caption",style:Y.lead,children:g}):null]}),isCardTextAction(h)?(0,_jsxRuntime.jsx)(CardTextActionButton,{action:h,haptic:k}):h?(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.actionNode,children:h}):null,x,m?(0,_jsxRuntime.jsx)(CardIconAction,{icon:oe?"chevron-down":"chevron-up",label:`${oe?"Show":"Hide"} ${Se}`.trim(),expanded:!oe,onPress:()=>ne(!oe),haptic:k}):null,j?(0,_jsxRuntime.jsx)(CardIconAction,{icon:"trash",label:y,onPress:j,color:U.colors["danger-text"],haptic:k}):null]}),we=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ce?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.header,!c&&Y.headerRow,oe&&Y.headerFolded,M],children:c??Ce}):null,oe?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[ce||R?Y.body:null,V],children:i}),R&&!oe?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.footer,H],children:R}):null]}),Ae=Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.imageWrapper,children:[(0,_jsxRuntime.jsx)(_reactNative.Image,{source:f,resizeMode:"cover",style:fe,accessibilityLabel:"",accessible:!1}),w?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"box-none",style:Y.imageOverlay,children:w}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{padding:ee},children:we})]}):we,Ne=te?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:te,style:_reactNative.StyleSheet.absoluteFill}),Ae]}):de.active&&de.size?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:de.size.width,height:de.size.height,radius:se,fill:me,stroke:pe?be:void 0,strokeWidth:pe,outset:pe}),Ae]}):Ae;let qe;if($){const handlePress=e=>{E&&(k&&(0,_hapticUtils.triggerHaptic)(k),q?.(e))};qe=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:J,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:K,onPress:handlePress,onPressIn:Q,onPressOut:X,android_ripple:{color:U.colors["surface-pressed"],borderless:!1},accessibilityRole:I??(E?"button":void 0),accessibilityLabel:B,accessibilityHint:P,testID:z,onLayout:de.onLayout,style:[Re,L,F,ve],...D,...G.hostProps,children:Ne})})}else qe=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityLabel:B,accessibilityHint:P,accessibilityRole:I,testID:z,onLayout:de.onLayout,style:[Re,L,F,ve],...D,children:Ne});return A?(0,_jsxRuntime.jsx)(CardSkeleton,{...e}):G.enabled?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[qe,G.renderSurface((0,_jsxRuntime.jsx)(_reactNative.View,{style:[Re,L,F,ve,Y.preview],children:Ne}))]}):qe}));Card.displayName="Card";const CardSkeleton=({variant:e="elevated",elevation:t,radius:i="lg",padding:s="md",bg:r,header:a,footer:n,imageSource:o,imageHeight:l=160,imageAspectRatio:c,borderRadius:d,containerStyle:u,headerStyle:h,bodyStyle:x,footerStyle:m,style:_,...p})=>{const b=(0,_index.useTheme)(),g=paddingMap[s],j=b.space[g],y="flat"===e?b.radius.none:d??b.radius[i],v=void 0!==a||hasBuiltInHeaderContent(p),R=resolveBackground(b,r)??b.colors.surface,f="outlined"===e?1:0,S="outlined"===e?b.colors.border:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{backgroundColor:R,borderRadius:y,..._corners.smoothCorners,borderWidth:f,borderColor:S,overflow:"hidden"},u,_],accessibilityRole:"progressbar",accessibilityLabel:"Loading",accessibilityState:{busy:!0},"aria-busy":!0,children:[void 0!==o?(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:c?void 0:l,style:c?{aspectRatio:c,width:"100%"}:void 0}):null,v?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:j,paddingBottom:b.space.sm},h],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:j},x],children:(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:3,fontSize:b.text.base.size,lastLineWidth:"55%"})}),void 0!==n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:j,paddingTop:b.space.sm,flexDirection:"row"},m],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:88,height:32,shape:"rounded"})}):null]})};CardSkeleton.displayName="CardSkeleton",Card.Skeleton=CardSkeleton;const hasBuiltInHeaderContent=e=>Boolean(e.title||e.lead||e.action||e.headerActions||e.collapsible||e.onRemove),isCardTextAction=e=>"object"==typeof e&&null!==e&&!_react.default.isValidElement(e)&&"label"in e&&"onPress"in e,HIT_TARGET=44,CardIconAction=({icon:e,label:t,onPress:i,expanded:s,color:r,haptic:a})=>{const n=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:t,accessibilityState:void 0===s?void 0:{expanded:s},"aria-expanded":s,onPress:()=>{a&&(0,_hapticUtils.triggerHaptic)(a),i()},style:iconActionStyle,children:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:e,size:20,color:r??n.colors["text-body"]})})},CardTextActionButton=({action:e,haptic:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,onPress:()=>{t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},style:textActionStyle,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"label",weight:"semibold",color:i.colors.primary,children:e.label})})},iconActionStyle={width:44,height:44,alignItems:"center",justifyContent:"center"},textActionStyle={minWidth:44,minHeight:44,alignItems:"center",justifyContent:"center"},resolveBackground=(e,t)=>{if(null!=t)return BACKGROUND_TOKENS.includes(t)?e.colors[t]:t},buildStyles=e=>_reactNative.StyleSheet.create({header:{marginBottom:e.space.md},headerRow:{flexDirection:"row",alignItems:"center",gap:e.space.sm},headerFolded:{marginBottom:e.space.none},titleColumn:{flex:1},lead:{marginTop:e.space.xs},actionNode:{flexShrink:0},body:{flexShrink:1},footer:{marginTop:e.space.md},imageWrapper:{position:"relative"},imageOverlay:{..._reactNative.StyleSheet.absoluteFill},preview:{margin:e.space.none,marginTop:e.space.none,marginBottom:e.space.none,marginLeft:e.space.none,marginRight:e.space.none,marginStart:e.space.none,marginEnd:e.space.none,marginHorizontal:e.space.none,marginVertical:e.space.none,position:"relative",top:0,left:0,width:"100%",height:"100%"}}),stylesFor=(0,_themeStyles.themeStyles)(buildStyles);var _default=exports.default=Card;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Carousel=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CarouselInner=(0,_react.forwardRef)((e,t)=>{const{data:n,renderItem:r,keyExtractor:a,index:i,defaultIndex:s=0,onIndexChange:l,onScrollOffsetChange:c,autoPlay:o=!1,autoPlayInterval:u=4e3,loop:d=!1,showPagination:m=!0,paginationStyle:h="dots",itemWidth:x="screen",spacing:g=0,containerStyle:_,accessibilityLabel:p,testID:y,showThumbnails:b=!1,haptic:f,renderThumbnail:v,loading:S=!1}=e,j=(0,_index.useTheme)(),R="number"==typeof i,w=d||o,[C,k]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),I="screen"===x?C:x,N=I+g,T=(0,_react.useRef)(null),A=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,E=clamp(R?i:s,0,Math.max(0,n.length-1)),[V,z]=(0,_react.useState)(E),M=(0,_react.useRef)(null),H=(0,_react.useRef)(null),P=(0,_react.useRef)(!1),W=(0,_react.useRef)(V);W.current=V;const D=(0,_react.useCallback)(e=>{const t=clamp(e,0,Math.max(0,n.length-1));z(e=>e===t?e:(l?.(t),t))},[n.length,l]),$=(0,_react.useCallback)((e,t=!0)=>{if(0===n.length)return;const r=clamp(e,0,n.length-1);T.current?.scrollToOffset({offset:r*N,animated:t}),D(r)},[n.length,N,D]),L=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=W.current+1;e>=n.length?w&&$(0,!1):$(e,!0)},[n.length,w,$]),q=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=W.current-1;e<0?w&&$(n.length-1,!1):$(e,!0)},[n.length,w,$]);(0,_react.useImperativeHandle)(t,()=>({scrollTo:$,next:L,prev:q}),[$,L,q]),(0,_react.useEffect)(()=>{R&&i!==V&&$(i,!0)},[i]);const O=(0,_react.useCallback)(()=>{M.current&&(clearInterval(M.current),M.current=null)},[]),F=(0,_react.useCallback)(()=>{!o||n.length<=1||(O(),M.current=setInterval(()=>{if(P.current)return;const e=W.current+1;e>=n.length?$(0,!1):$(e,!0)},u))},[o,u,n.length,$,O]);(0,_react.useEffect)(()=>(F(),()=>{O(),H.current&&clearTimeout(H.current)}),[F,O]),(0,_react.useEffect)(()=>{const e=_reactNative.AppState.addEventListener("change",e=>{"active"!==e?(O(),H.current&&(clearTimeout(H.current),H.current=null)):F()});return()=>e.remove()},[F,O]);const X=m&&n.length>1&&"numbers"!==h||void 0!==c,B=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{x:A}}}],{useNativeDriver:!1,listener:c?e=>c(e.nativeEvent.contentOffset.x):void 0}),[A,c]),G=(0,_react.useCallback)(e=>{if(N<=0)return;const t=e.nativeEvent.contentOffset.x,n=Math.round(t/N);D(n)},[N,D]),J=(0,_react.useCallback)(()=>{P.current=!0,O(),H.current&&(clearTimeout(H.current),H.current=null)},[O]),K=(0,_react.useCallback)(()=>{P.current=!1,o&&(H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{F()},1e3))},[o,F]),Q=(0,_react.useCallback)(e=>{switch(e.nativeEvent.actionName){case"increment":L();break;case"decrement":q()}},[L,q]),U=(0,_react.useMemo)(()=>buildStyles(j),[j]),Y=(0,_react.useCallback)(({item:e,index:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:I,marginRight:t===n.length-1?0:g},accessibilityElementsHidden:t!==V,importantForAccessibility:t===V?"yes":"no-hide-descendants",children:r(e,t)}),[r,I,g,n.length,V]),Z=(0,_react.useCallback)((e,t)=>String(t),[]),ee=(0,_react.useCallback)((e,t)=>({length:N,offset:N*t,index:t}),[N]);return S?(0,_jsxRuntime.jsx)(CarouselSkeleton,{...e,containerWidth:C}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[U.container,_],onLayout:e=>k(e.nativeEvent.layout.width),accessibilityRole:"adjustable",accessibilityLabel:p??"Carousel",accessibilityValue:{min:0,max:Math.max(0,n.length-1),now:V,text:`Slide ${V+1} of ${n.length}`},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:Q,testID:y,children:[(0,_jsxRuntime.jsx)(_reactNative.FlatList,{ref:T,data:n,keyExtractor:a??Z,renderItem:Y,horizontal:!0,pagingEnabled:"screen"===x&&0===g,snapToInterval:N,snapToAlignment:"start",decelerationRate:"fast",showsHorizontalScrollIndicator:!1,onScroll:X?B:void 0,scrollEventThrottle:X?16:void 0,onMomentumScrollEnd:G,onScrollBeginDrag:J,onScrollEndDrag:K,getItemLayout:ee,initialScrollIndex:E,bounces:!1}),m&&n.length>1?(0,_jsxRuntime.jsx)(Pagination,{count:n.length,currentIndex:V,scrollX:A,slideStride:N,variant:h,theme:j}):null,b&&n.length>0?(0,_jsxRuntime.jsx)(ThumbnailStrip,{data:n,currentIndex:V,renderThumbnail:v,onSelect:e=>{const t=(0,_index2.resolveHaptic)(f,"selection");t&&(0,_index2.triggerHaptic)(t),$(e,!0)},theme:j}):null]})});CarouselInner.displayName="Carousel";const CarouselSkeleton=({itemWidth:e="screen",showPagination:t=!0,paginationStyle:n="dots",containerStyle:r,containerWidth:a})=>{const i=(0,_index.useTheme)(),s="screen"===e?a||320:e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[carouselSkeletonStyles.container,r],children:[(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:s,height:160,radius:"md"}),t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[carouselSkeletonStyles.paginationRow,{marginTop:i.spacing.md}],children:Array.from({length:3}).map((e,t)=>"numbers"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:24,height:16,radius:"sm",style:{marginHorizontal:i.spacing.xs}},`sk-pg-${t}`):"bars"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:20,height:4,radius:"pill",style:{marginHorizontal:i.spacing.xxs}},`sk-pg-${t}`):(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"circle",width:8,height:8,style:{marginHorizontal:i.spacing.xs}},`sk-pg-${t}`))}):null]})};CarouselSkeleton.displayName="CarouselSkeleton";const carouselSkeletonStyles=_reactNative.StyleSheet.create({container:{alignItems:"center"},paginationRow:{flexDirection:"row",justifyContent:"center"}}),Carousel=exports.Carousel=CarouselInner;Carousel.Skeleton=CarouselSkeleton;const Pagination=({count:e,currentIndex:t,scrollX:n,slideStride:r,variant:a,theme:i})=>{const s=(0,_react.useMemo)(()=>buildPaginationStyles(i),[i]);if("numbers"===a)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.numbersWrap,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[s.numbersText,{color:i.colors.text.secondary,fontSize:i.typography.fontSize.sm,fontWeight:i.typography.fontWeight.medium}],accessibilityLabel:`Slide ${t+1} of ${e}`,children:`${t+1} / ${e}`})});const l=Array.from({length:e},(e,t)=>t),c="bars"===a,o=c?24:6,u=c?36:16,d=c?3:6;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.dotRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:l.map(e=>{const a=[(e-1)*r,e*r,(e+1)*r],s=n.interpolate({inputRange:a,outputRange:[o,u,o],extrapolate:"clamp"}),l=n.interpolate({inputRange:a,outputRange:[.5,1,.5],extrapolate:"clamp"});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{width:s,height:d,marginHorizontal:i.spacing.xs,borderRadius:i.radius.pill,..._corners.smoothCorners,backgroundColor:e===t?i.colors.primary:i.colors.border.primary,opacity:l}]},e)})})},ThumbnailStrip=({data:e,currentIndex:t,renderThumbnail:n,onSelect:r,theme:a})=>{const i=(0,_react.useMemo)(()=>buildThumbStyles(a),[a]);return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:i.row,accessibilityRole:"tablist",children:e.map((e,s)=>(0,_jsxRuntime.jsx)(ThumbnailItem,{item:e,index:s,isActive:s===t,renderThumbnail:n,onPress:()=>r(s),theme:a,styles:i},s))})},ThumbnailItem=({item:e,index:t,isActive:n,renderThumbnail:r,onPress:a,theme:i,styles:s})=>{const l=(0,_react.useRef)((0,_index.createAnimatedValue)(n?1.1:1)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(l,{toValue:n?1.1:1,useNativeDriver:!0,friction:6,tension:80});return e.start(),()=>e.stop()},[n,l]);const c=(0,_react.useMemo)(()=>r?r(e,t):e&&"object"==typeof e&&"uri"in e&&"string"==typeof e.uri?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:e.uri},style:s.image,resizeMode:"cover"}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[s.placeholder,{backgroundColor:i.colors.background.secondary}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:i.colors.text.secondary,fontSize:i.typography.fontSize.xs,fontWeight:i.typography.fontWeight.semibold},children:t+1})}),[e,t,r,i,s]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:a,accessibilityRole:"tab",accessibilityState:{selected:n},"aria-selected":n,accessibilityLabel:`Go to slide ${t+1}`,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[s.thumb,{borderColor:n?i.colors.primary:"transparent",transform:[{scale:l}]}],children:c})})},buildThumbStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.spacing.sm,paddingVertical:e.spacing.sm},thumb:{width:40,height:40,marginHorizontal:e.spacing.xs,borderRadius:e.radius.sm,..._corners.smoothCorners,borderWidth:2,overflow:"hidden"},image:{width:"100%",height:"100%"},placeholder:{flex:1,alignItems:"center",justifyContent:"center"}}),clamp=(e,t,n)=>Math.min(Math.max(e,t),n),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"}}),buildPaginationStyles=e=>_reactNative.StyleSheet.create({dotRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:e.spacing.md},numbersWrap:{alignItems:"center",justifyContent:"center",paddingVertical:e.spacing.md},numbersText:{textAlign:"center"}});var _default=exports.default=Carousel;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Carousel=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CarouselInner=(0,_react.forwardRef)((e,t)=>{const{data:n,renderItem:r,keyExtractor:a,index:i,defaultIndex:s=0,onIndexChange:l,onScrollOffsetChange:c,autoPlay:o=!1,autoPlayInterval:u=4e3,loop:d=!1,showPagination:m=!0,paginationStyle:h="dots",itemWidth:x="screen",spacing:_=0,containerStyle:g,accessibilityLabel:b,testID:p,showThumbnails:y=!1,haptic:f,renderThumbnail:v,loading:S=!1}=e,j=(0,_index.useTheme)(),R="number"==typeof i,w=d||o,[C,k]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),I="screen"===x?C:x,N=I+_,T=(0,_react.useRef)(null),A=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,E=clamp(R?i:s,0,Math.max(0,n.length-1)),[V,z]=(0,_react.useState)(E),M=(0,_react.useRef)(null),H=(0,_react.useRef)(null),P=(0,_react.useRef)(!1),D=(0,_react.useRef)(V);D.current=V;const $=(0,_react.useCallback)(e=>{const t=clamp(e,0,Math.max(0,n.length-1));z(e=>e===t?e:(l?.(t),t))},[n.length,l]),W=(0,_react.useCallback)((e,t=!0)=>{if(0===n.length)return;const r=clamp(e,0,n.length-1);T.current?.scrollToOffset({offset:r*N,animated:t}),$(r)},[n.length,N,$]),L=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=D.current+1;e>=n.length?w&&W(0,!1):W(e,!0)},[n.length,w,W]),q=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=D.current-1;e<0?w&&W(n.length-1,!1):W(e,!0)},[n.length,w,W]);(0,_react.useImperativeHandle)(t,()=>({scrollTo:W,next:L,prev:q}),[W,L,q]),(0,_react.useEffect)(()=>{R&&i!==V&&W(i,!0)},[i]);const O=(0,_react.useCallback)(()=>{M.current&&(clearInterval(M.current),M.current=null)},[]),F=(0,_react.useCallback)(()=>{!o||n.length<=1||(O(),M.current=setInterval(()=>{if(P.current)return;const e=D.current+1;e>=n.length?W(0,!1):W(e,!0)},u))},[o,u,n.length,W,O]);(0,_react.useEffect)(()=>(F(),()=>{O(),H.current&&clearTimeout(H.current)}),[F,O]),(0,_react.useEffect)(()=>{const e=_reactNative.AppState.addEventListener("change",e=>{"active"!==e?(O(),H.current&&(clearTimeout(H.current),H.current=null)):F()});return()=>e.remove()},[F,O]);const X=m&&n.length>1&&"numbers"!==h||void 0!==c,B=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{x:A}}}],{useNativeDriver:!1,listener:c?e=>c(e.nativeEvent.contentOffset.x):void 0}),[A,c]),G=(0,_react.useCallback)(e=>{if(N<=0)return;const t=e.nativeEvent.contentOffset.x,n=Math.round(t/N);$(n)},[N,$]),J=(0,_react.useCallback)(()=>{P.current=!0,O(),H.current&&(clearTimeout(H.current),H.current=null)},[O]),K=(0,_react.useCallback)(()=>{P.current=!1,o&&(H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{F()},1e3))},[o,F]),Q=(0,_react.useCallback)(e=>{switch(e.nativeEvent.actionName){case"increment":L();break;case"decrement":q()}},[L,q]),U=(0,_react.useMemo)(()=>buildStyles(j),[j]),Y=(0,_react.useCallback)(({item:e,index:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:I,marginRight:t===n.length-1?0:_},accessibilityElementsHidden:t!==V,importantForAccessibility:t===V?"yes":"no-hide-descendants",children:r(e,t)}),[r,I,_,n.length,V]),Z=(0,_react.useCallback)((e,t)=>String(t),[]),ee=(0,_react.useCallback)((e,t)=>({length:N,offset:N*t,index:t}),[N]);return S?(0,_jsxRuntime.jsx)(CarouselSkeleton,{...e,containerWidth:C}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[U.container,g],onLayout:e=>k(e.nativeEvent.layout.width),accessibilityRole:"adjustable",accessibilityLabel:b??"Carousel",accessibilityValue:{min:0,max:Math.max(0,n.length-1),now:V,text:`Slide ${V+1} of ${n.length}`},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:Q,testID:p,children:[(0,_jsxRuntime.jsx)(_reactNative.FlatList,{ref:T,data:n,keyExtractor:a??Z,renderItem:Y,horizontal:!0,pagingEnabled:"screen"===x&&0===_,snapToInterval:N,snapToAlignment:"start",decelerationRate:"fast",showsHorizontalScrollIndicator:!1,onScroll:X?B:void 0,scrollEventThrottle:X?16:void 0,onMomentumScrollEnd:G,onScrollBeginDrag:J,onScrollEndDrag:K,getItemLayout:ee,initialScrollIndex:E,bounces:!1}),m&&n.length>1?(0,_jsxRuntime.jsx)(Pagination,{count:n.length,currentIndex:V,scrollX:A,slideStride:N,variant:h,theme:j}):null,y&&n.length>0?(0,_jsxRuntime.jsx)(ThumbnailStrip,{data:n,currentIndex:V,renderThumbnail:v,onSelect:e=>{const t=(0,_index2.resolveHaptic)(f,"selection");t&&(0,_index2.triggerHaptic)(t),W(e,!0)},theme:j}):null]})});CarouselInner.displayName="Carousel";const CarouselSkeleton=({itemWidth:e="screen",showPagination:t=!0,paginationStyle:n="dots",containerStyle:r,containerWidth:a})=>{const i=(0,_index.useTheme)(),s="screen"===e?a||320:e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[carouselSkeletonStyles.container,r],children:[(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:s,height:160,radius:"md"}),t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[carouselSkeletonStyles.paginationRow,{marginTop:i.space.md}],children:Array.from({length:3}).map((e,t)=>"numbers"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:24,height:16,radius:"sm",style:{marginHorizontal:i.space.xs}},`sk-pg-${t}`):"bars"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:20,height:4,radius:"pill",style:{marginHorizontal:i.space.xxs}},`sk-pg-${t}`):(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"circle",width:8,height:8,style:{marginHorizontal:i.space.xs}},`sk-pg-${t}`))}):null]})};CarouselSkeleton.displayName="CarouselSkeleton";const carouselSkeletonStyles=_reactNative.StyleSheet.create({container:{alignItems:"center"},paginationRow:{flexDirection:"row",justifyContent:"center"}}),Carousel=exports.Carousel=CarouselInner;Carousel.Skeleton=CarouselSkeleton;const Pagination=({count:e,currentIndex:t,scrollX:n,slideStride:r,variant:a,theme:i})=>{const s=(0,_react.useMemo)(()=>buildPaginationStyles(i),[i]);if("numbers"===a)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.numbersWrap,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[s.numbersText,{color:i.colors["text-muted"],fontSize:i.text.sm.size,fontWeight:i.weight.medium}],accessibilityLabel:`Slide ${t+1} of ${e}`,children:`${t+1} / ${e}`})});const l=Array.from({length:e},(e,t)=>t),c="bars"===a,o=c?24:6,u=c?36:16,d=c?3:6;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.dotRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:l.map(e=>{const a=[(e-1)*r,e*r,(e+1)*r],s=n.interpolate({inputRange:a,outputRange:[o,u,o],extrapolate:"clamp"}),l=n.interpolate({inputRange:a,outputRange:[.5,1,.5],extrapolate:"clamp"});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{width:s,height:d,marginHorizontal:i.space.xs,borderRadius:i.radius.pill,..._corners.smoothCorners,backgroundColor:e===t?i.colors.primary:i.colors.border,opacity:l}]},e)})})},ThumbnailStrip=({data:e,currentIndex:t,renderThumbnail:n,onSelect:r,theme:a})=>{const i=(0,_react.useMemo)(()=>buildThumbStyles(a),[a]);return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:i.row,accessibilityRole:"tablist",children:e.map((e,s)=>(0,_jsxRuntime.jsx)(ThumbnailItem,{item:e,index:s,isActive:s===t,renderThumbnail:n,onPress:()=>r(s),theme:a,styles:i},s))})},ThumbnailItem=({item:e,index:t,isActive:n,renderThumbnail:r,onPress:a,theme:i,styles:s})=>{const l=(0,_react.useRef)((0,_index.createAnimatedValue)(n?1.1:1)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(l,{toValue:n?1.1:1,useNativeDriver:!0,friction:6,tension:80});return e.start(),()=>e.stop()},[n,l]);const c=(0,_react.useMemo)(()=>r?r(e,t):e&&"object"==typeof e&&"uri"in e&&"string"==typeof e.uri?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:e.uri},style:s.image,resizeMode:"cover"}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[s.placeholder,{backgroundColor:i.colors["bg-subtle"]}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:i.colors["text-muted"],fontSize:i.text.xs.size,fontWeight:i.weight.semibold},children:t+1})}),[e,t,r,i,s]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:a,accessibilityRole:"tab",accessibilityState:{selected:n},"aria-selected":n,accessibilityLabel:`Go to slide ${t+1}`,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[s.thumb,{borderColor:n?i.colors.primary:"transparent",transform:[{scale:l}]}],children:c})})},buildThumbStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.space.sm,paddingVertical:e.space.sm},thumb:{width:40,height:40,marginHorizontal:e.space.xs,borderRadius:e.radius.sm,..._corners.smoothCorners,borderWidth:2,overflow:"hidden"},image:{width:"100%",height:"100%"},placeholder:{flex:1,alignItems:"center",justifyContent:"center"}}),clamp=(e,t,n)=>Math.min(Math.max(e,t),n),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"}}),buildPaginationStyles=e=>_reactNative.StyleSheet.create({dotRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:e.space.md},numbersWrap:{alignItems:"center",justifyContent:"center",paddingVertical:e.space.md},numbersText:{textAlign:"center"}});var _default=exports.default=Carousel;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,i,s=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((t=s&&Object.getOwnPropertyDescriptor(e,i))&&(t.get||t.set)?s(a,i,t):a[i]=e[i]);return a}const toneColor=(e,r)=>{switch(r){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},toneOnColor=(e,r)=>{switch(r){case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onPrimary}},Checkbox=exports.Checkbox=(0,_react.forwardRef)((e,r)=>{const{checked:t,defaultChecked:i,onChange:s,indeterminate:a=!1,disabled:o=!1,label:n,description:c,error:l,help:d,labelLines:u,size:h="md",tone:p="primary",accessibilityLabel:x,haptic:_,style:b,boxStyle:m,indeterminateBarStyle:f,containerStyle:y,labelStyle:g,testID:j,...v}=e,[w,C]=(0,_index.useControllableState)({value:t,defaultValue:i??!1,onChange:s}),k=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(k),[k]),{boxSize:R}=(0,_react.useMemo)(()=>(0,_index2.resolveCheckboxSize)(k,h),[k,h]),T=k.colors.border.width,N=(0,_index2.spaceOf)(k,k.components.checkbox.labelGap,"components.checkbox.labelGap"),q=toneColor(k,p),F=w||a,B=(0,_react.useRef)((0,_index2.createAnimatedValue)(F?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(B,{toValue:F?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[F,B,k.motion.spring.snappy]);const M=B.interpolate({inputRange:[0,1],outputRange:[0,1]}),L=x??(0,_FieldBase.fieldTextAsString)(n),O=!0===l||(0,_FieldBase.hasFieldText)(l),P=F?q:o?k.colors.border.primary:O?k.colors.field.borderError:k.colors.border.primary,W=F?q:o?k.colors.surface.disabled:"transparent",D=o&&!F?k.colors.text.disabled:toneOnColor(k,p),V=Math.round(.72*R),I=Math.round(.55*R),A=Math.max(2,Math.round(.12*R)),H=(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:r,onPress:e=>{if(o)return;const r=(0,_hapticUtils.resolveHaptic)(_,"selection");r&&(0,_hapticUtils.triggerHaptic)(r),C(!w),v.onPressOut?.(e)},disabled:o,accessibilityRole:"checkbox",accessibilityLabel:L,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(c),accessibilityState:{checked:a?"mixed":w,disabled:o},"aria-checked":a?"mixed":w,"aria-disabled":o,testID:j,hitSlop:6,...v,style:({pressed:e})=>[S.row,(0,_ChoiceText.hasChoiceDetail)(c,l)?S.rowTop:null,(0,_FieldBase.hasFieldText)(d)?S.rowShrink:null,{opacity:o?.55:e?.85:1},y,b],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.box,{width:R,height:R,borderWidth:T,borderRadius:k.radius.sm,..._corners.smoothCorners,borderColor:P,backgroundColor:W},m],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[S.glyphWrap,{opacity:B,transform:[{scale:M}]}],children:a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:I,height:A,borderRadius:k.radius.pill,..._corners.smoothCorners,backgroundColor:D},f]}):(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:V,height:V,viewBox:"0 0 24 24",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:D,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:n,description:c,error:l,disabled:o,labelLines:u||void 0,descriptionLines:u||void 0,style:{marginLeft:N},labelStyle:g})]});return(0,_FieldBase.hasFieldText)(d)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.helpRow,(0,_ChoiceText.hasChoiceDetail)(c,l)?S.rowTop:null],children:[H,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.help,{marginLeft:k.spacing.xs}],children:d})]}):H});Checkbox.displayName="Checkbox";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"},rowShrink:{flexShrink:1},helpRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},box:{alignItems:"center",justifyContent:"center"},glyphWrap:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Checkbox;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,i,s=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((r=s&&Object.getOwnPropertyDescriptor(e,i))&&(r.get||r.set)?s(a,i,r):a[i]=e[i]);return a}const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;default:return e.colors.primary}},toneOnColor=(e,t)=>{switch(t){case"success":return e.colors["on-success"];case"warning":return e.colors["on-warning"];case"danger":return e.colors["on-danger"];default:return e.colors["on-primary"]}},Checkbox=exports.Checkbox=(0,_react.forwardRef)((e,t)=>{const{checked:r,defaultChecked:i,onChange:s,indeterminate:a=!1,disabled:o=!1,label:n,description:c,error:l,help:d,labelLines:u,size:h="md",tone:p="primary",accessibilityLabel:x,haptic:_,style:b,boxStyle:m,indeterminateBarStyle:f,containerStyle:g,labelStyle:y,testID:j,...v}=e,[w,C]=(0,_index.useControllableState)({value:r,defaultValue:i??!1,onChange:s}),k=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(k),[k]),{"box-size":R}=(0,_react.useMemo)(()=>(0,_index2.resolveCheckboxSize)(k,h),[k,h]),T=k.size.border,N=(0,_index2.spaceOf)(k,k.components.checkbox["label-gap"]),q=toneColor(k,p),F=w||a,B=(0,_react.useRef)((0,_index2.createAnimatedValue)(F?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(B,{toValue:F?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[F,B,k.motion.spring.snappy]);const M=B.interpolate({inputRange:[0,1],outputRange:[0,1]}),L=x??(0,_FieldBase.fieldTextAsString)(n),O=!0===l||(0,_FieldBase.hasFieldText)(l),D=F?q:o?k.colors.border:O?k.colors["field-border-error"]:k.colors.border,P=F?q:o?k.colors["surface-disabled"]:"transparent",V=o&&!F?k.colors["text-disabled"]:toneOnColor(k,p),W=Math.round(.72*R),I=Math.round(.55*R),A=Math.max(2,Math.round(.12*R)),z=(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:e=>{if(o)return;const t=(0,_hapticUtils.resolveHaptic)(_,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),C(!w),v.onPressOut?.(e)},disabled:o,accessibilityRole:"checkbox",accessibilityLabel:L,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(c),accessibilityState:{checked:a?"mixed":w,disabled:o},"aria-checked":a?"mixed":w,"aria-disabled":o,testID:j,hitSlop:6,...v,style:({pressed:e})=>[S.row,(0,_ChoiceText.hasChoiceDetail)(c,l)?S.rowTop:null,(0,_FieldBase.hasFieldText)(d)?S.rowShrink:null,{opacity:o?.55:e?.85:1},g,b],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.box,{width:R,height:R,borderWidth:T,borderRadius:k.radius.sm,..._corners.smoothCorners,borderColor:D,backgroundColor:P},m],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[S.glyphWrap,{opacity:B,transform:[{scale:M}]}],children:a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:I,height:A,borderRadius:k.radius.pill,..._corners.smoothCorners,backgroundColor:V},f]}):(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:W,height:W,viewBox:"0 0 24 24",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:V,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:n,description:c,error:l,disabled:o,labelLines:u||void 0,descriptionLines:u||void 0,style:{marginLeft:N},labelStyle:y})]});return(0,_FieldBase.hasFieldText)(d)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.helpRow,(0,_ChoiceText.hasChoiceDetail)(c,l)?S.rowTop:null],children:[z,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.help,{marginLeft:k.space.xs}],children:d})]}):z});Checkbox.displayName="Checkbox";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"},rowShrink:{flexShrink:1},helpRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},box:{alignItems:"center",justifyContent:"center"},glyphWrap:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Checkbox;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primaryMuted,on:e.colors.primary,ink:e.colors.toneText.primary,border:e.colors.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"success":return{base:e.colors.background.tertiary,on:e.colors.success,ink:e.colors.toneText.success,border:e.colors.success,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"warning":return{base:e.colors.background.tertiary,on:e.colors.warning,ink:e.colors.toneText.warning,border:e.colors.warning,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"error":return{base:e.colors.background.tertiary,on:e.colors.error,ink:e.colors.toneText.error,border:e.colors.error,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"info":return{base:e.colors.background.tertiary,on:e.colors.info,ink:e.colors.toneText.info,border:e.colors.info,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,ink:e.colors.text.primary,border:e.colors.border.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,hasChipCount=e=>null!=e&&""!==e,Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:t,count:s,selected:o=!1,selectionMode:i="single",onPress:l,onClose:n,leftIcon:a,iconVariant:c,variant:d="filled",tone:u="neutral",size:p="md",disabled:m=!1,loading:y=!1,accessibilityLabel:x,haptic:b,style:h,textStyle:g,containerStyle:_,countStyle:f,closeButtonStyle:S,closeIconStyle:k,testID:j}=e,C=(0,_index.useTheme)(),v=!!l&&!m,I="radio"===i,T=!!l&&(!m||I),R=hasChipCount(s),{style:w,pressIn:M,pressOut:O}=(0,_usePressAnimation.usePressAnimation)({enabled:v}),B=(0,_react.useMemo)(()=>toneFor(C,u),[C,u]),z=(0,_react.useMemo)(()=>(0,_index.resolveChipSize)(C,p),[C,p]),L=Math.max(0,Math.ceil((44-z.minHeight)/2)),P=I?{top:L,bottom:L}:void 0,N="filled"===d,q="soft"===d,F=(()=>{if(q){const e=o?B.selectedOn:B.on,r=o?.24:.14;return(0,_color.tintOf)(e,r,o?B.selectedBg:B.base)}return o?N?B.selectedBg:"transparent":N?B.base:"transparent"})(),A=q?"transparent":o?B.selectedBorder:N?"transparent":B.border,H=m?C.colors.text.disabled:o?q?C.colors.text.primary:B.selectedInk:B.ink,V=N||q?0:C.colors.border.width,handlePress=()=>{if(!v)return;const e=(0,_hapticUtils.resolveHaptic)(b,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),l?.()},D=x??(R?`${t}, ${s}`:t),U=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:z.gap},children:(0,_slotIcon.renderSlotIcon)(a,{color:H,size:z.icon,disabled:m},c)}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:H,fontSize:z.text,...(0,_index.fontFor)(C,"medium")},g],numberOfLines:1,children:t??" "}),R?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.count,{color:H,fontSize:Math.min(C.typography.fontSize.xs,z.text),marginLeft:C.spacing.xs,...(0,_index.fontFor)(C,"normal")},f],numberOfLines:1,children:s}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{m||(!1!==b&&(0,_hapticUtils.triggerHaptic)("impactLight"),n?.())},disabled:m,accessibilityRole:"button",accessibilityLabel:`Remove ${t}`,accessibilityState:{disabled:m},"aria-disabled":m,hitSlop:6,style:({pressed:e})=>[styles.close,{width:z.closeSize,height:z.closeSize,borderRadius:z.closeSize/2,..._corners.smoothCorners,marginLeft:z.gap,backgroundColor:e?C.colors.surface.pressed:C.colors.surface.hovered},S],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:H,fontSize:z.closeText,...(0,_index.fontFor)(C,"bold"),lineHeight:z.closeText+2},k],maxFontSizeMultiplier:1,children:"×"})}):null]}),E={paddingHorizontal:z.paddingX,paddingVertical:z.paddingY,minHeight:z.minHeight,borderRadius:C.radius.pill,..._corners.smoothCorners,overflow:"hidden",backgroundColor:F,borderWidth:V,borderColor:A,opacity:m?.55:1};let Y;return Y=T?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[w,{alignSelf:"flex-start",borderRadius:C.radius.pill,..._corners.smoothCorners,overflow:"hidden"}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:handlePress,onPressIn:M,onPressOut:O,disabled:!v,accessibilityRole:I?"radio":"multiple"===i?"checkbox":"button",accessibilityLabel:D,accessibilityState:I||"multiple"===i?{checked:o,disabled:m}:{selected:o,disabled:m},"aria-checked":I||"multiple"===i?o:void 0,"aria-selected":I||"multiple"===i?void 0:o,"aria-disabled":m,hitSlop:P,android_ripple:{color:C.colors.surface.pressed,borderless:!1},testID:j,style:({pressed:e})=>[styles.base,E,e&&"outlined"===d?{backgroundColor:C.colors.surface.pressed}:null,_,h],children:U})}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:r,style:[styles.base,E,_,h],accessible:!0,accessibilityRole:"text",accessibilityLabel:D,accessibilityState:{selected:o,disabled:m},"aria-selected":o,"aria-disabled":m,testID:j,children:U}),y?(0,_jsxRuntime.jsx)(ChipSkeleton,{...e}):Y});Chip.displayName="Chip";const ChipSkeleton=({label:e,count:r,size:t="md",leftIcon:s,onClose:o,style:i,containerStyle:l})=>{const n=(0,_index.useTheme)(),a=(0,_index.resolveChipSize)(n,t),c=Math.max(40,Math.min(120,7*(e??"").length)),d=a.minHeight,u=d/2,p=c+2*a.paddingX+(hasChipCount(r)?a.gap/2+7*String(r).length:0)+(void 0!==s?a.gap+14:0)+(void 0!==o?a.gap+a.closeSize:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:p,height:d,radius:u,style:[{alignSelf:"flex-start"},l,i]})};ChipSkeleton.displayName="ChipSkeleton",Chip.Skeleton=ChipSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},row:{flexDirection:"row",alignItems:"center"},label:{flexShrink:1,textAlign:"center"},count:{flexShrink:0,fontVariant:["tabular-nums"]},close:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Chip;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors["primary-soft"],on:e.colors.primary,ink:e.colors["primary-text"],border:e.colors.primary,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"success":return{base:e.colors["bg-muted"],on:e.colors.success,ink:e.colors["success-text"],border:e.colors.success,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"warning":return{base:e.colors["bg-muted"],on:e.colors.warning,ink:e.colors["warning-text"],border:e.colors.warning,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"danger":return{base:e.colors["bg-muted"],on:e.colors.danger,ink:e.colors["danger-text"],border:e.colors.danger,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"info":return{base:e.colors["bg-muted"],on:e.colors.info,ink:e.colors["info-text"],border:e.colors.info,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};default:return{base:e.colors["bg-muted"],on:e.colors["text-body"],ink:e.colors["text-body"],border:e.colors.border,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,hasChipCount=e=>null!=e&&""!==e,Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:t,count:s,selected:o=!1,selectionMode:i="single",onPress:l,onClose:n,leftIcon:c,iconVariant:a,variant:d="filled",tone:u="neutral",size:p="md",disabled:m=!1,loading:x=!1,accessibilityLabel:b,haptic:h,style:y,textStyle:g,containerStyle:_,countStyle:f,closeButtonStyle:S,closeIconStyle:j,testID:C}=e,k=(0,_index.useTheme)(),v=!!l&&!m,I="radio"===i,R=!!l&&(!m||I),w=hasChipCount(s),{style:O,pressIn:z,pressOut:B}=(0,_usePressAnimation.usePressAnimation)({enabled:v}),L=(0,_react.useMemo)(()=>toneFor(k,u),[k,u]),P=(0,_react.useMemo)(()=>(0,_index.resolveChipSize)(k,p),[k,p]),N=Math.max(0,Math.ceil((44-P["min-height"])/2)),q=I?{top:N,bottom:N}:void 0,F="filled"===d,M="soft"===d,T=(()=>{if(M){const e=o?L.selectedOn:L.on,r=o?.24:.14;return(0,_color.tintOf)(e,r,o?L.selectedBg:L.base)}return o?F?L.selectedBg:"transparent":F?L.base:"transparent"})(),A=M?"transparent":o?L.selectedBorder:F?"transparent":L.border,V=m?k.colors["text-disabled"]:o?M?k.colors["text-body"]:L.selectedInk:L.ink,D=F||M?0:k.size.border,handlePress=()=>{if(!v)return;const e=(0,_hapticUtils.resolveHaptic)(h,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),l?.()},H=b??(w?`${t}, ${s}`:t),U=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[c?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:P.gap},children:(0,_slotIcon.renderSlotIcon)(c,{color:V,size:P.icon,disabled:m},a)}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:V,fontSize:P.text,...(0,_index.fontFor)(k,"medium")},g],numberOfLines:1,children:t??" "}),w?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.count,{color:V,fontSize:Math.min(k.text.xs.size,P.text),marginLeft:k.space.xs,...(0,_index.fontFor)(k,"normal")},f],numberOfLines:1,children:s}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{m||(!1!==h&&(0,_hapticUtils.triggerHaptic)("impactLight"),n?.())},disabled:m,accessibilityRole:"button",accessibilityLabel:`Remove ${t}`,accessibilityState:{disabled:m},"aria-disabled":m,hitSlop:6,style:({pressed:e})=>[styles.close,{width:P["close-size"],height:P["close-size"],borderRadius:P["close-size"]/2,..._corners.smoothCorners,marginLeft:P.gap,backgroundColor:e?k.colors["surface-pressed"]:k.colors["surface-hover"]},S],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:V,fontSize:P["close-text"],...(0,_index.fontFor)(k,"bold"),lineHeight:P["close-text"]+2},j],maxFontSizeMultiplier:1,children:"×"})}):null]}),E={paddingHorizontal:P["padding-x"],paddingVertical:P["padding-y"],minHeight:P["min-height"],borderRadius:k.radius.pill,..._corners.smoothCorners,overflow:"hidden",backgroundColor:T,borderWidth:D,borderColor:A,opacity:m?.55:1};let $;return $=R?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[O,{alignSelf:"flex-start",borderRadius:k.radius.pill,..._corners.smoothCorners,overflow:"hidden"}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:handlePress,onPressIn:z,onPressOut:B,disabled:!v,accessibilityRole:I?"radio":"multiple"===i?"checkbox":"button",accessibilityLabel:H,accessibilityState:I||"multiple"===i?{checked:o,disabled:m}:{selected:o,disabled:m},"aria-checked":I||"multiple"===i?o:void 0,"aria-selected":I||"multiple"===i?void 0:o,"aria-disabled":m,hitSlop:q,android_ripple:{color:k.colors["surface-pressed"],borderless:!1},testID:C,style:({pressed:e})=>[styles.base,E,e&&"outlined"===d?{backgroundColor:k.colors["surface-pressed"]}:null,_,y],children:U})}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:r,style:[styles.base,E,_,y],accessible:!0,accessibilityRole:"text",accessibilityLabel:H,accessibilityState:{selected:o,disabled:m},"aria-selected":o,"aria-disabled":m,testID:C,children:U}),x?(0,_jsxRuntime.jsx)(ChipSkeleton,{...e}):$});Chip.displayName="Chip";const ChipSkeleton=({label:e,count:r,size:t="md",leftIcon:s,onClose:o,style:i,containerStyle:l})=>{const n=(0,_index.useTheme)(),c=(0,_index.resolveChipSize)(n,t),a=Math.max(40,Math.min(120,7*(e??"").length)),d=c["min-height"],u=d/2,p=a+2*c["padding-x"]+(hasChipCount(r)?c.gap/2+7*String(r).length:0)+(void 0!==s?c.gap+14:0)+(void 0!==o?c.gap+c["close-size"]:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:p,height:d,radius:u,style:[{alignSelf:"flex-start"},l,i]})};ChipSkeleton.displayName="ChipSkeleton",Chip.Skeleton=ChipSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},row:{flexDirection:"row",alignItems:"center"},label:{flexShrink:1,textAlign:"center"},count:{flexShrink:0,fontVariant:["tabular-nums"]},close:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Chip;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ChoiceGroup=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_RadioDot=require("../Radio/RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const sizeTokensOf=e=>({sm:{paddingHorizontal:e.spacing.sm,chipPaddingHorizontal:e.spacing.md,paddingVertical:e.spacing.xs,fontSize:e.typography.fontSize.sm,minHeight:32,iconSize:14},md:{paddingHorizontal:e.spacing.md,chipPaddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,fontSize:e.typography.fontSize.base,minHeight:40,iconSize:16},lg:{paddingHorizontal:e.spacing.lg,chipPaddingHorizontal:e.spacing.xl,paddingVertical:e.spacing.md,fontSize:e.typography.fontSize.lg,minHeight:48,iconSize:18}}),ChoiceGroup=exports.ChoiceGroup=(0,_react.forwardRef)((e,i)=>{const{options:t,getOptionLabel:r,getOptionValue:o,getOptionDisabled:a,getOptionDescription:n,getOptionIcon:s,getOptionColor:l,renderOption:c,variant:d="card",indicatorPosition:p="trailing",direction:u="row",gap:g,wrap:x=!1,fullWidth:m,disabled:b=!1,size:_="md",labelLines:h=1,descriptionLines:f=2,haptic:y,accessibilityLabel:j,style:z,optionStyle:v,testID:S}=e,C=(0,_index2.useTheme)(),R=(0,_react.useMemo)(()=>buildStyles(C),[C]),H=(0,_react.useMemo)(()=>sizeTokensOf(C)[_],[C,_]),O=(0,_react.useCallback)(e=>r?r(e):e.label??"",[r]),k=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),w=(0,_react.useCallback)(e=>a?a(e):!0===e.disabled,[a]),V=(0,_react.useCallback)(e=>n?n(e):e.description,[n]),D=(0,_react.useCallback)(e=>s?s(e):e.icon,[s]),N=(0,_react.useCallback)(e=>l?l(e):e.color,[l]),L="multiple"===e.selectionMode,{min:G,max:q}=e,[I,P]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[]:void 0),onChange:e.onChange}),T=Array.isArray(I)?I:[],M=(0,_react.useCallback)(e=>{const i=k(e);if(L){const e=T.includes(i);if(e&&null!=G&&T.length<=G)return;if(!e&&null!=q&&T.length>=q)return;const t=(0,_index3.resolveHaptic)(y,"selection");return t&&(0,_index3.triggerHaptic)(t),void P(e?T.filter(e=>e!==i):[...T,i])}const t=(0,_index3.resolveHaptic)(y,"selection");t&&(0,_index3.triggerHaptic)(t),P(i)},[y,L,G,q,T,P,k]),F=m??("card"===d&&"row"===u&&!x),W=C.components.choiceGroup?.selectedFillOpacity??.12,A=(0,_index2.radiusOf)(C,C.components.choiceGroup?.radius??"md","components.choiceGroup.radius"),surfaceFor=(e,i,t)=>i?{borderColor:C.colors.border.primary,backgroundColor:C.colors.surface.disabled}:{borderColor:e?t:C.colors.border.primary,backgroundColor:e?(0,_color.tintOf)(t,W,C.colors.surface.selected):C.colors.background.primary},renderIcon=(e,i,t,r)=>{const o=D(e);if(null==o)return null;const a="string"==typeof o&&i?{name:o,variant:"bold"}:o;return(0,_slotIcon.renderSlotIcon)(a,{color:t,size:H.iconSize,disabled:r})},renderChip=e=>{const{option:i,selected:t,disabled:r,color:o}=e,a=r?C.colors.text.disabled:t?o:C.colors.text.primary,n=renderIcon(i,t,a,r);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[R.chip,{minHeight:H.minHeight,paddingHorizontal:H.chipPaddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:C.radius.pill,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(t,r,o),columnGap:C.spacing.xs}],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{children:n}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[R.cardLabel,{color:a,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:O(i)})]})},renderDefaultCard=e=>{const{option:i,selected:t,disabled:r,color:o}=e,a=N(i),n=r?C.colors.text.disabled:a??C.colors.text.primary,s=V(i),l=renderIcon(i,t,n,r),c=(0,_jsxRuntime.jsx)(_RadioDot.RadioDot,{selected:t,color:o,disabled:r,size:_});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[R.card,{minHeight:H.minHeight,paddingHorizontal:H.paddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:A,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(t,r,o),columnGap:C.spacing.sm}],children:["leading"===p?c:null,l?(0,_jsxRuntime.jsx)(_reactNative.View,{children:l}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:R.cardTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[R.cardLabel,{color:n,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:O(i)}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[R.cardDescription,{color:t?C.colors.text.secondary:C.colors.text.tertiary,fontSize:C.typography.fontSize.xs}],numberOfLines:f,ellipsizeMode:"tail",children:s}):null]}),"trailing"===p?c:null]})};return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:i,accessibilityRole:L?void 0:"radiogroup",accessibilityLabel:j,accessibilityState:{disabled:b},"aria-disabled":b,testID:S,style:[{flexDirection:u,gap:g??C.spacing.sm,flexWrap:x?"wrap":"nowrap"},z],children:t.map((e,i)=>{const t=k(e),r=L?T.includes(t):I===t,o=L&&null!=q&&!r&&T.length>=q,a=b||o||w(e),n=N(e)??C.colors.primary,s=c||"card"!==d?void 0:V(e);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{a||M(e)},disabled:a,accessibilityRole:L?"checkbox":"radio",accessibilityLabel:s?`${O(e)}, ${s}`:O(e),accessibilityState:{checked:r,disabled:a},"aria-checked":r,"aria-disabled":a,style:[F?R.stretchOption:null,{opacity:a&&c?.55:1},v],children:({pressed:t})=>{const o={option:e,index:i,selected:r,pressed:t&&!a,disabled:a,color:n};return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:c?c(o):"chip"===d?renderChip(o):renderDefaultCard(o)})}},String(t))})})});ChoiceGroup.displayName="ChoiceGroup";const buildStyles=e=>_reactNative.StyleSheet.create({stretchOption:{flex:1},card:{flexDirection:"row",alignItems:"center"},chip:{flexDirection:"row",alignItems:"center",justifyContent:"center"},cardTextWrap:{flex:1},cardLabel:{includeFontPadding:!1},cardDescription:{includeFontPadding:!1,marginTop:e.spacing.xxs}});var _default=exports.default=ChoiceGroup;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ChoiceGroup=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_RadioDot=require("../Radio/RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const sizeTokensOf=e=>({sm:{paddingHorizontal:e.space.sm,chipPaddingHorizontal:e.space.md,paddingVertical:e.space.xs,fontSize:e.text.sm.size,minHeight:32,iconSize:14},md:{paddingHorizontal:e.space.md,chipPaddingHorizontal:e.space.lg,paddingVertical:e.space.sm,fontSize:e.text.base.size,minHeight:40,iconSize:16},lg:{paddingHorizontal:e.space.lg,chipPaddingHorizontal:e.space.xl,paddingVertical:e.space.md,fontSize:e.text.lg.size,minHeight:48,iconSize:18}}),ChoiceGroup=exports.ChoiceGroup=(0,_react.forwardRef)((e,i)=>{const{options:t,getOptionLabel:r,getOptionValue:o,getOptionDisabled:a,getOptionDescription:s,getOptionIcon:l,getOptionColor:n,renderOption:c,variant:d="card",indicatorPosition:u="trailing",direction:p="row",gap:x,wrap:b=!1,fullWidth:m,disabled:g=!1,size:_="md",labelLines:h=1,descriptionLines:f=2,haptic:j,accessibilityLabel:z,style:y,optionStyle:v,testID:C}=e,R=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(R),[R]),H=(0,_react.useMemo)(()=>sizeTokensOf(R)[_],[R,_]),O=(0,_react.useCallback)(e=>r?r(e):e.label??"",[r]),V=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),k=(0,_react.useCallback)(e=>a?a(e):!0===e.disabled,[a]),w=(0,_react.useCallback)(e=>s?s(e):e.description,[s]),D=(0,_react.useCallback)(e=>l?l(e):e.icon,[l]),N=(0,_react.useCallback)(e=>n?n(e):e.color,[n]),L="multiple"===e.selectionMode,{min:q,max:I}=e,[P,T]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[]:void 0),onChange:e.onChange}),G=Array.isArray(P)?P:[],M=(0,_react.useCallback)(e=>{const i=V(e);if(L){const e=G.includes(i);if(e&&null!=q&&G.length<=q)return;if(!e&&null!=I&&G.length>=I)return;const t=(0,_index3.resolveHaptic)(j,"selection");return t&&(0,_index3.triggerHaptic)(t),void T(e?G.filter(e=>e!==i):[...G,i])}const t=(0,_index3.resolveHaptic)(j,"selection");t&&(0,_index3.triggerHaptic)(t),T(i)},[j,L,q,I,G,T,V]),W=m??("card"===d&&"row"===p&&!b),F=R.radius.md,surfaceFor=(e,i,t)=>i?{borderColor:R.colors.border,backgroundColor:R.colors["surface-disabled"]}:{borderColor:e?t:R.colors.border,backgroundColor:e?(0,_color.tintOf)(t,.12,R.colors["surface-selected"]):R.colors.bg},renderIcon=(e,i,t,r)=>{const o=D(e);if(null==o)return null;const a="string"==typeof o&&i?{name:o,variant:"bold"}:o;return(0,_slotIcon.renderSlotIcon)(a,{color:t,size:H.iconSize,disabled:r})},renderChip=e=>{const{option:i,selected:t,disabled:r,color:o}=e,a=r?R.colors["text-disabled"]:t?o:R.colors["text-body"],s=renderIcon(i,t,a,r);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.chip,{minHeight:H.minHeight,paddingHorizontal:H.chipPaddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:R.radius.pill,..._corners.smoothCorners,borderWidth:R.size.border,...surfaceFor(t,r,o),columnGap:R.space.xs}],children:[s?(0,_jsxRuntime.jsx)(_reactNative.View,{children:s}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardLabel,{color:a,fontSize:H.fontSize,...(0,_index2.fontFor)(R,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:O(i)})]})},renderDefaultCard=e=>{const{option:i,selected:t,disabled:r,color:o}=e,a=N(i),s=r?R.colors["text-disabled"]:a??R.colors["text-body"],l=w(i),n=renderIcon(i,t,s,r),c=(0,_jsxRuntime.jsx)(_RadioDot.RadioDot,{selected:t,color:o,disabled:r,size:_});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.card,{minHeight:H.minHeight,paddingHorizontal:H.paddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:F,..._corners.smoothCorners,borderWidth:R.size.border,...surfaceFor(t,r,o),columnGap:R.space.sm}],children:["leading"===u?c:null,n?(0,_jsxRuntime.jsx)(_reactNative.View,{children:n}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:S.cardTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardLabel,{color:s,fontSize:H.fontSize,...(0,_index2.fontFor)(R,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:O(i)}),l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardDescription,{color:t?R.colors["text-muted"]:R.colors["text-subtle"],fontSize:R.text.xs.size}],numberOfLines:f,ellipsizeMode:"tail",children:l}):null]}),"trailing"===u?c:null]})};return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:i,accessibilityRole:L?void 0:"radiogroup",accessibilityLabel:z,accessibilityState:{disabled:g},"aria-disabled":g,testID:C,style:[{flexDirection:p,gap:x??R.space.sm,flexWrap:b?"wrap":"nowrap"},y],children:t.map((e,i)=>{const t=V(e),r=L?G.includes(t):P===t,o=L&&null!=I&&!r&&G.length>=I,a=g||o||k(e),s=N(e)??R.colors.primary,l=c||"card"!==d?void 0:w(e);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{a||M(e)},disabled:a,accessibilityRole:L?"checkbox":"radio",accessibilityLabel:l?`${O(e)}, ${l}`:O(e),accessibilityState:{checked:r,disabled:a},"aria-checked":r,"aria-disabled":a,style:[W?S.stretchOption:null,{opacity:a&&c?.55:1},v],children:({pressed:t})=>{const o={option:e,index:i,selected:r,pressed:t&&!a,disabled:a,color:s};return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:c?c(o):"chip"===d?renderChip(o):renderDefaultCard(o)})}},String(t))})})});ChoiceGroup.displayName="ChoiceGroup";const buildStyles=e=>_reactNative.StyleSheet.create({stretchOption:{flex:1},card:{flexDirection:"row",alignItems:"center"},chip:{flexDirection:"row",alignItems:"center",justifyContent:"center"},cardTextWrap:{flex:1},cardLabel:{includeFontPadding:!1},cardDescription:{includeFontPadding:!1,marginTop:e.space.xxs}});var _default=exports.default=ChoiceGroup;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Composer=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useControllableState=require("../../hooks/useControllableState.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index2=require("../IconButton/index.js"),_jsxRuntime=require("react/jsx-runtime");const MIN_BOX=44,Composer=exports.Composer=(0,_react.forwardRef)(({onSend:e,value:t,onChangeText:a,placeholder:o="Message",accessibilityLabel:r,sendLabel:i="Send",busy:n=!1,disabled:s=!1,maxLength:l,maxLines:d=5,leading:c,trailing:u,above:b,below:p,keyboardAware:x=!0,keyboardOffset:g,safeArea:m=!0,autoFocus:_,haptic:h,style:v,testID:y},C)=>{const f=(0,_index.useTheme)(),S=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),[N,k]=(0,_useControllableState.useControllableState)({value:t,defaultValue:"",onChange:a}),w=N.trim(),q=n||s||""===w,I=m?S.bottom:0,R=g??I,T=(0,_FieldBase.resolveFieldTextStyle)(f,{disabled:s}),B=f.typography.fontSize.base,D=Math.round(B*f.typography.lineHeight.normal),F=(44-D)/2,z=D*d+2*F,[H,L]=(0,_react.useState)(void 0),M=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentSize.height+2*F;L(Math.min(Math.max(t,44),z))},[F,z]),V=(0,_react.useCallback)(()=>{q||(k(""),e(w))},[q,k,e,w]),A=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.bar,{paddingBottom:f.spacing.sm+I},v],testID:y,children:[b,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.row,children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.box,s?j.boxDisabled:null],children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:C,value:N,onChangeText:k,multiline:!0,maxLength:l,editable:!s,autoFocus:_,placeholder:o,placeholderTextColor:T.placeholderColor,selectionColor:f.colors.field.caret,accessibilityLabel:r??o,accessibilityState:{disabled:s},"aria-disabled":s,onContentSizeChange:"web"===_reactNative.Platform.OS?M:void 0,style:[j.input,{color:T.color,...T.weightStyle,fontSize:B,lineHeight:D,paddingVertical:F,maxHeight:z,height:"web"===_reactNative.Platform.OS?H:void 0}],testID:y?`${y}-input`:void 0})}),u,(0,_jsxRuntime.jsx)(_index2.IconButton,{icon:"send",accessibilityLabel:i,variant:"solid",tone:"primary",disabled:q,loading:n,haptic:h,onPress:V,testID:y?`${y}-send`:void 0})]}),p]});return x?(0,_jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardStickyView,{offset:{closed:0,opened:R},children:A}):A});Composer.displayName="Composer";const buildStyles=e=>_reactNative.StyleSheet.create({bar:{gap:e.spacing.xs,paddingHorizontal:e.spacing.md,paddingTop:e.spacing.sm,backgroundColor:e.colors.background.primary,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors.border.secondary},row:{flexDirection:"row",alignItems:"flex-end",gap:e.spacing.sm},box:{flex:1,minHeight:44,justifyContent:"center",backgroundColor:e.colors.field.background,borderRadius:e.radius.pill,..._corners.smoothCorners,paddingHorizontal:e.spacing.md},boxDisabled:{backgroundColor:e.colors.field.backgroundDisabled},input:{margin:e.spacing.none,paddingHorizontal:e.spacing.none,includeFontPadding:!1,textAlignVertical:"top"}});var _default=exports.default=Composer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Composer=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useControllableState=require("../../hooks/useControllableState.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index2=require("../IconButton/index.js"),_jsxRuntime=require("react/jsx-runtime");const MIN_BOX=44,Composer=exports.Composer=(0,_react.forwardRef)(({onSend:e,value:t,onChangeText:a,placeholder:o="Message",accessibilityLabel:r,sendLabel:i="Send",busy:s=!1,disabled:l=!1,maxLength:n,maxLines:d=5,leading:c,trailing:u,above:b,below:x,keyboardAware:p=!0,keyboardOffset:m,safeArea:_=!0,autoFocus:h,haptic:g,style:v,testID:C},f)=>{const y=(0,_index.useTheme)(),S=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),j=(0,_react.useMemo)(()=>buildStyles(y),[y]),[N,w]=(0,_useControllableState.useControllableState)({value:t,defaultValue:"",onChange:a}),k=N.trim(),q=s||l||""===k,I=_?S.bottom:0,R=m??I,T=(0,_FieldBase.resolveFieldTextStyle)(y,{disabled:l}),B=y.text.base.size,F=Math.round(B*y.leading.normal),z=(44-F)/2,D=F*d+2*z,[L,M]=(0,_react.useState)(void 0),V=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentSize.height+2*z;M(Math.min(Math.max(t,44),D))},[z,D]),A=(0,_react.useCallback)(()=>{q||(w(""),e(k))},[q,w,e,k]),H=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.bar,{paddingBottom:y.space.sm+I},v],testID:C,children:[b,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.row,children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.box,l?j.boxDisabled:null],children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:f,value:N,onChangeText:w,multiline:!0,maxLength:n,editable:!l,autoFocus:h,placeholder:o,placeholderTextColor:T.placeholderColor,selectionColor:y.colors["field-caret"],accessibilityLabel:r??o,accessibilityState:{disabled:l},"aria-disabled":l,onContentSizeChange:"web"===_reactNative.Platform.OS?V:void 0,style:[j.input,{color:T.color,...T.weightStyle,fontSize:B,lineHeight:F,paddingVertical:z,maxHeight:D,height:"web"===_reactNative.Platform.OS?L:void 0}],testID:C?`${C}-input`:void 0})}),u,(0,_jsxRuntime.jsx)(_index2.IconButton,{icon:"send",accessibilityLabel:i,variant:"solid",tone:"primary",disabled:q,loading:s,haptic:g,onPress:A,testID:C?`${C}-send`:void 0})]}),x]});return p?(0,_jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardStickyView,{offset:{closed:0,opened:R},children:H}):H});Composer.displayName="Composer";const buildStyles=e=>_reactNative.StyleSheet.create({bar:{gap:e.space.xs,paddingHorizontal:e.space.md,paddingTop:e.space.sm,backgroundColor:e.colors.bg,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors["border-subtle"]},row:{flexDirection:"row",alignItems:"flex-end",gap:e.space.sm},box:{flex:1,minHeight:44,justifyContent:"center",backgroundColor:e.colors["field-bg"],borderRadius:e.radius.pill,..._corners.smoothCorners,paddingHorizontal:e.space.md},boxDisabled:{backgroundColor:e.colors["field-bg-disabled"]},input:{margin:e.space.none,paddingHorizontal:e.space.none,includeFontPadding:!1,textAlignVertical:"top"}});var _default=exports.default=Composer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.buildPieces=exports.DEFAULT_PHYSICS=exports.Confetti=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,a){if(!a&&e&&e.__esModule)return e;var t,r,i=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(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((t=i&&Object.getOwnPropertyDescriptor(e,r))&&(t.get||t.set)?i(s,r,t):s[r]=e[r]);return s}const TAU=2*Math.PI,DEG=Math.PI/180,SPEED_FACTOR={slow:1.6,normal:1,fast:.6},DEFAULT_PHYSICS=exports.DEFAULT_PHYSICS={velocity:1,drag:1,fallSpeed:1,spread:0},PRESET_SHAPES={pop:["strip","strip","strip","square","circle","triangle","star","streamer"],rain:["strip","strip","strip","circle","square"],fireworks:["circle","circle","star","star","triangle","strip"]},rand=(e,a)=>e+Math.random()*(a-e),pick=e=>e[Math.floor(Math.random()*e.length)]??e[0],commonPiece=(e,a)=>({color:e.colors[a%e.colors.length]??e.colors[0],size:e.baseSize*rand(.6,1.4),shape:pick(e.shapes),rotations:rand(1,5),rotateDir:Math.random()<.5?1:-1,flutterFreq:rand(2,5)}),popPiece=(e,a)=>{const t=e.physics.spread>0?e.physics.spread/2:100,r=(-90+rand(-t,t))*DEG,i=rand(1.8,4.2)*e.physics.velocity;return{...commonPiece(e,a),x0Frac:e.originXFrac,y0Frac:e.originYFrac,vxFrac:Math.cos(r)*i*.7,vyFrac:Math.sin(r)*i,drag:rand(5.5,7.5)*e.physics.drag,terminalFrac:rand(.22,.44)*e.physics.fallSpeed,delay:rand(0,.05),swayAmp:rand(4,16),swayFreq:rand(1,3)}},rainPiece=(e,a)=>({...commonPiece(e,a),x0Frac:Math.random(),y0Frac:-.05,vxFrac:rand(-.12,.12)*e.physics.velocity,vyFrac:rand(.05,.25)*e.physics.velocity,drag:rand(2.5,4)*e.physics.drag,terminalFrac:rand(.95,1.35)*e.physics.fallSpeed,delay:rand(0,.35),swayAmp:rand(10,30),swayFreq:rand(1,3)}),FIREWORK_BURSTS=4,buildFireworks=(e,a)=>{const t=Math.max(1,Math.round(e/4)),r=a.physics.spread>0?a.physics.spread/2:180,i=[];for(let s=0;s<4&&i.length<e;s+=1){const c=rand(.18,.82),n=rand(.18,.52),o=s/4*.5+rand(0,.06);for(let s=0;s<t&&i.length<e;s+=1){const e=rand(-r,r)*DEG,t=rand(1.4,3.4)*a.physics.velocity;i.push({...commonPiece(a,i.length),x0Frac:c,y0Frac:n,vxFrac:Math.cos(e)*t*.7,vyFrac:Math.sin(e)*t,drag:rand(6.5,8.5)*a.physics.drag,terminalFrac:rand(.18,.38)*a.physics.fallSpeed,delay:o,swayAmp:rand(3,12),swayFreq:rand(1,3)})}}return i},buildPieces=(e,a,t)=>{if("fireworks"===a)return buildFireworks(e,t);const r="rain"===a?rainPiece:popPiece;return Array.from({length:e},(e,a)=>r(t,a))};exports.buildPieces=buildPieces;const SHAPE_BOX={strip:{w:1,h:.45},square:{w:1,h:1},circle:{w:1,h:1},triangle:{w:1,h:1},star:{w:1.2,h:1.2},streamer:{w:3,h:1.2}},TRIANGLE_POINTS="50,4 96,96 4,96",STAR_POINTS="50,2 61,36 97,36 68,58 79,94 50,72 21,94 32,58 3,36 39,36",STREAMER_PATH="M2,50 C20,6 44,94 62,50 S92,6 98,50",ShapeBody=({shape:e,color:a})=>"triangle"===e||"star"===e?(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:"100%",height:"100%",viewBox:"0 0 100 100",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Polygon,{points:"star"===e?STAR_POINTS:TRIANGLE_POINTS,fill:a})}):"streamer"===e?(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:STREAMER_PATH,stroke:a,strokeWidth:22,strokeLinecap:"round",fill:"none"})}):null,ConfettiPiece=({piece:e,progress:a,width:t,height:r,fadeOut:i})=>{const s=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const s=1-e.delay,c=s<=0?0:Math.min(1,Math.max(0,(a.value-e.delay)/s)),n=(1-Math.exp(-e.drag*c))/e.drag,o=e.x0Frac*t+e.vxFrac*t*n,d=e.y0Frac*r+e.terminalFrac*r*c+(e.vyFrac-e.terminalFrac)*r*n,l=Math.sin(c*e.swayFreq*TAU)*e.swayAmp,h=e.rotateDir*e.rotations*360*c,p=.35+.65*Math.abs(Math.cos(c*e.flutterFreq*TAU));return{opacity:i?Math.max(0,1-Math.max(0,c-.75)/.25):1,transform:[{translateX:o+l},{translateY:d},{rotate:`${h}deg`},{scaleY:p}]}}),c=SHAPE_BOX[e.shape],n="triangle"===e.shape||"star"===e.shape||"streamer"===e.shape;return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{position:"absolute",width:e.size*c.w,height:e.size*c.h,borderRadius:"circle"===e.shape?e.size*c.h/2:1,backgroundColor:n?"transparent":e.color},s],children:(0,_jsxRuntime.jsx)(ShapeBody,{shape:e.shape,color:e.color})})},Confetti=exports.Confetti=(0,_react.forwardRef)(({count:e=80,colors:a,preset:t="pop",shapes:r,speed:i="normal",physics:s,origin:c,duration:n=2800,fadeOut:o=!0,autoStart:d=!1,recycle:l=!1,size:h=10,onComplete:p,style:u,testID:_},m)=>{const y=(0,_index2.useTheme)(),v=(0,_index.useReducedMotion)(),g=(0,_reactNative.useWindowDimensions)(),[f,x]=(0,_react.useState)({width:g.width,height:g.height}),[S,w]=(0,_react.useState)(!1),[R,F]=(0,_react.useState)([]),P=(0,_react.useMemo)(()=>a??[y.colors.primary,y.colors.secondary,y.colors.success,y.colors.warning,y.colors.error,y.colors.info],[a,y.colors]),M=(0,_reactNativeReanimated.useSharedValue)(0),A=n*SPEED_FACTOR[i],E=(0,_react.useCallback)(()=>{w(!1),p?.()},[p]),N=(0,_react.useCallback)(()=>{if(v)return void p?.();(0,_reactNativeReanimated.cancelAnimation)(M),M.value=0,F(buildPieces(e,t,{colors:P,baseSize:h,originXFrac:c?c.x/Math.max(1,f.width):.5,originYFrac:c?c.y/Math.max(1,f.height):.5,physics:{...DEFAULT_PHYSICS,...s},shapes:r??PRESET_SHAPES[t]})),w(!0);const a=(0,_reactNativeReanimated.withTiming)(1,{duration:A,easing:_reactNativeReanimated.Easing.linear},e=>{"worklet";e&&!l&&(0,_reactNativeReanimated.runOnJS)(E)()});M.value=l?(0,_reactNativeReanimated.withRepeat)(a,-1,!1):a},[v,M,A,l,E,p,e,P,t,r,s,h,c,f.width,f.height]),T=(0,_react.useCallback)(()=>{(0,_reactNativeReanimated.cancelAnimation)(M),w(!1)},[M]);(0,_react.useImperativeHandle)(m,()=>({start:N,stop:T}),[N,T]),(0,_react.useEffect)(()=>(d&&N(),()=>(0,_reactNativeReanimated.cancelAnimation)(M)),[]);const j=(0,_react.useCallback)(e=>{const{width:a,height:t}=e.nativeEvent.layout;a>0&&t>0&&x({width:a,height:t})},[]);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[_reactNative.StyleSheet.absoluteFill,u],pointerEvents:"none",onLayout:j,testID:_,children:S?R.map((e,a)=>(0,_jsxRuntime.jsx)(ConfettiPiece,{piece:e,progress:M,width:f.width,height:f.height,fadeOut:o},a)):null})});Confetti.displayName="Confetti";var _default=exports.default=Confetti;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.buildPieces=exports.DEFAULT_PHYSICS=exports.Confetti=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,a){if(!a&&e&&e.__esModule)return e;var t,r,i=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(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((t=i&&Object.getOwnPropertyDescriptor(e,r))&&(t.get||t.set)?i(s,r,t):s[r]=e[r]);return s}const TAU=2*Math.PI,DEG=Math.PI/180,SPEED_FACTOR={slow:1.6,normal:1,fast:.6},DEFAULT_PHYSICS=exports.DEFAULT_PHYSICS={velocity:1,drag:1,fallSpeed:1,spread:0},PRESET_SHAPES={pop:["strip","strip","strip","square","circle","triangle","star","streamer"],rain:["strip","strip","strip","circle","square"],fireworks:["circle","circle","star","star","triangle","strip"]},rand=(e,a)=>e+Math.random()*(a-e),pick=e=>e[Math.floor(Math.random()*e.length)]??e[0],commonPiece=(e,a)=>({color:e.colors[a%e.colors.length]??e.colors[0],size:e.baseSize*rand(.6,1.4),shape:pick(e.shapes),rotations:rand(1,5),rotateDir:Math.random()<.5?1:-1,flutterFreq:rand(2,5)}),popPiece=(e,a)=>{const t=e.physics.spread>0?e.physics.spread/2:100,r=(-90+rand(-t,t))*DEG,i=rand(1.8,4.2)*e.physics.velocity;return{...commonPiece(e,a),x0Frac:e.originXFrac,y0Frac:e.originYFrac,vxFrac:Math.cos(r)*i*.7,vyFrac:Math.sin(r)*i,drag:rand(5.5,7.5)*e.physics.drag,terminalFrac:rand(.22,.44)*e.physics.fallSpeed,delay:rand(0,.05),swayAmp:rand(4,16),swayFreq:rand(1,3)}},rainPiece=(e,a)=>({...commonPiece(e,a),x0Frac:Math.random(),y0Frac:-.05,vxFrac:rand(-.12,.12)*e.physics.velocity,vyFrac:rand(.05,.25)*e.physics.velocity,drag:rand(2.5,4)*e.physics.drag,terminalFrac:rand(.95,1.35)*e.physics.fallSpeed,delay:rand(0,.35),swayAmp:rand(10,30),swayFreq:rand(1,3)}),FIREWORK_BURSTS=4,buildFireworks=(e,a)=>{const t=Math.max(1,Math.round(e/4)),r=a.physics.spread>0?a.physics.spread/2:180,i=[];for(let s=0;s<4&&i.length<e;s+=1){const n=rand(.18,.82),c=rand(.18,.52),o=s/4*.5+rand(0,.06);for(let s=0;s<t&&i.length<e;s+=1){const e=rand(-r,r)*DEG,t=rand(1.4,3.4)*a.physics.velocity;i.push({...commonPiece(a,i.length),x0Frac:n,y0Frac:c,vxFrac:Math.cos(e)*t*.7,vyFrac:Math.sin(e)*t,drag:rand(6.5,8.5)*a.physics.drag,terminalFrac:rand(.18,.38)*a.physics.fallSpeed,delay:o,swayAmp:rand(3,12),swayFreq:rand(1,3)})}}return i},buildPieces=(e,a,t)=>{if("fireworks"===a)return buildFireworks(e,t);const r="rain"===a?rainPiece:popPiece;return Array.from({length:e},(e,a)=>r(t,a))};exports.buildPieces=buildPieces;const SHAPE_BOX={strip:{w:1,h:.45},square:{w:1,h:1},circle:{w:1,h:1},triangle:{w:1,h:1},star:{w:1.2,h:1.2},streamer:{w:3,h:1.2}},TRIANGLE_POINTS="50,4 96,96 4,96",STAR_POINTS="50,2 61,36 97,36 68,58 79,94 50,72 21,94 32,58 3,36 39,36",STREAMER_PATH="M2,50 C20,6 44,94 62,50 S92,6 98,50",ShapeBody=({shape:e,color:a})=>"triangle"===e||"star"===e?(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:"100%",height:"100%",viewBox:"0 0 100 100",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Polygon,{points:"star"===e?STAR_POINTS:TRIANGLE_POINTS,fill:a})}):"streamer"===e?(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:STREAMER_PATH,stroke:a,strokeWidth:22,strokeLinecap:"round",fill:"none"})}):null,ConfettiPiece=({piece:e,progress:a,width:t,height:r,fadeOut:i})=>{const s=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const s=1-e.delay,n=s<=0?0:Math.min(1,Math.max(0,(a.value-e.delay)/s)),c=(1-Math.exp(-e.drag*n))/e.drag,o=e.x0Frac*t+e.vxFrac*t*c,d=e.y0Frac*r+e.terminalFrac*r*n+(e.vyFrac-e.terminalFrac)*r*c,l=Math.sin(n*e.swayFreq*TAU)*e.swayAmp,h=e.rotateDir*e.rotations*360*n,p=.35+.65*Math.abs(Math.cos(n*e.flutterFreq*TAU));return{opacity:i?Math.max(0,1-Math.max(0,n-.75)/.25):1,transform:[{translateX:o+l},{translateY:d},{rotate:`${h}deg`},{scaleY:p}]}}),n=SHAPE_BOX[e.shape],c="triangle"===e.shape||"star"===e.shape||"streamer"===e.shape;return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{position:"absolute",width:e.size*n.w,height:e.size*n.h,borderRadius:"circle"===e.shape?e.size*n.h/2:1,backgroundColor:c?"transparent":e.color},s],children:(0,_jsxRuntime.jsx)(ShapeBody,{shape:e.shape,color:e.color})})},Confetti=exports.Confetti=(0,_react.forwardRef)(({count:e=80,colors:a,preset:t="pop",shapes:r,speed:i="normal",physics:s,origin:n,duration:c=2800,fadeOut:o=!0,autoStart:d=!1,recycle:l=!1,size:h=10,onComplete:p,style:u,testID:_},m)=>{const y=(0,_index2.useTheme)(),v=(0,_index.useReducedMotion)(),g=(0,_reactNative.useWindowDimensions)(),[f,x]=(0,_react.useState)({width:g.width,height:g.height}),[S,w]=(0,_react.useState)(!1),[R,F]=(0,_react.useState)([]),P=(0,_react.useMemo)(()=>a??[y.colors.primary,y.colors.neutral,y.colors.success,y.colors.warning,y.colors.danger,y.colors.info],[a,y.colors]),M=(0,_reactNativeReanimated.useSharedValue)(0),A=c*SPEED_FACTOR[i],E=(0,_react.useCallback)(()=>{w(!1),p?.()},[p]),N=(0,_react.useCallback)(()=>{if(v)return void p?.();(0,_reactNativeReanimated.cancelAnimation)(M),M.value=0,F(buildPieces(e,t,{colors:P,baseSize:h,originXFrac:n?n.x/Math.max(1,f.width):.5,originYFrac:n?n.y/Math.max(1,f.height):.5,physics:{...DEFAULT_PHYSICS,...s},shapes:r??PRESET_SHAPES[t]})),w(!0);const a=(0,_reactNativeReanimated.withTiming)(1,{duration:A,easing:_reactNativeReanimated.Easing.linear},e=>{"worklet";e&&!l&&(0,_reactNativeReanimated.runOnJS)(E)()});M.value=l?(0,_reactNativeReanimated.withRepeat)(a,-1,!1):a},[v,M,A,l,E,p,e,P,t,r,s,h,n,f.width,f.height]),T=(0,_react.useCallback)(()=>{(0,_reactNativeReanimated.cancelAnimation)(M),w(!1)},[M]);(0,_react.useImperativeHandle)(m,()=>({start:N,stop:T}),[N,T]),(0,_react.useEffect)(()=>(d&&N(),()=>(0,_reactNativeReanimated.cancelAnimation)(M)),[]);const j=(0,_react.useCallback)(e=>{const{width:a,height:t}=e.nativeEvent.layout;a>0&&t>0&&x({width:a,height:t})},[]);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[_reactNative.StyleSheet.absoluteFill,u],pointerEvents:"none",onLayout:j,testID:_,children:S?R.map((e,a)=>(0,_jsxRuntime.jsx)(ConfettiPiece,{piece:e,progress:M,width:f.width,height:f.height,fadeOut:o},a)):null})});Confetti.displayName="Confetti";var _default=exports.default=Confetti;