@webority/mobile-ui 0.106.0 → 0.107.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 (1238) hide show
  1. package/dist/canvas-kit/kit.js +12626 -12474
  2. package/dist/canvas-kit/manifest.json +958 -766
  3. package/dist/canvas-kit/release.json +6 -6
  4. package/lib/commonjs/components/Accordion/Accordion.js +1 -1
  5. package/lib/commonjs/components/AmountSlider/AmountSlider.js +1 -1
  6. package/lib/commonjs/components/AmountSlider/index.js +1 -1
  7. package/lib/commonjs/components/AnimatePresence/AnimatePresence.js +1 -1
  8. package/lib/commonjs/components/AppBar/AppBar.js +1 -1
  9. package/lib/commonjs/components/AppBar/index.js +1 -1
  10. package/lib/commonjs/components/AppIcon/AppIcon.js +1 -1
  11. package/lib/commonjs/components/AppLockOverlay/AppLockOverlay.js +1 -0
  12. package/lib/commonjs/components/AppLockOverlay/index.js +1 -0
  13. package/lib/commonjs/components/AsyncBlock/AsyncBlock.js +1 -1
  14. package/lib/commonjs/components/AsyncBlock/index.js +1 -1
  15. package/lib/commonjs/components/AuthedImage/AuthedImage.js +1 -1
  16. package/lib/commonjs/components/AuthedImage/authedImageCache.js +1 -1
  17. package/lib/commonjs/components/Autocomplete/Autocomplete.js +1 -1
  18. package/lib/commonjs/components/Autocomplete/index.js +1 -1
  19. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  20. package/lib/commonjs/components/Avatar/index.js +1 -1
  21. package/lib/commonjs/components/Badge/Badge.js +1 -1
  22. package/lib/commonjs/components/Badge/index.js +1 -1
  23. package/lib/commonjs/components/Banner/Banner.js +1 -1
  24. package/lib/commonjs/components/Banner/index.js +1 -1
  25. package/lib/commonjs/components/BarChart/BarChart.js +1 -1
  26. package/lib/commonjs/components/BarChart/index.js +1 -1
  27. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  28. package/lib/commonjs/components/BottomNavigation/index.js +1 -1
  29. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  30. package/lib/commonjs/components/BottomSheet/index.js +1 -1
  31. package/lib/commonjs/components/Button/Button.js +1 -1
  32. package/lib/commonjs/components/Calendar/Calendar.js +1 -1
  33. package/lib/commonjs/components/Calendar/CalendarDay.js +1 -1
  34. package/lib/commonjs/components/Calendar/calendarStyles.js +1 -1
  35. package/lib/commonjs/components/Calendar/index.js +1 -1
  36. package/lib/commonjs/components/Card/Card.js +1 -1
  37. package/lib/commonjs/components/Card/index.js +1 -1
  38. package/lib/commonjs/components/Carousel/Carousel.js +1 -1
  39. package/lib/commonjs/components/Carousel/index.js +1 -1
  40. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  41. package/lib/commonjs/components/Chip/Chip.js +1 -1
  42. package/lib/commonjs/components/Chip/index.js +1 -1
  43. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -1
  44. package/lib/commonjs/components/Composer/Composer.js +1 -1
  45. package/lib/commonjs/components/Composer/index.js +1 -1
  46. package/lib/commonjs/components/Confetti/Confetti.js +1 -1
  47. package/lib/commonjs/components/Confirm/confirm.js +1 -0
  48. package/lib/commonjs/components/Confirm/index.js +1 -0
  49. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  50. package/lib/commonjs/components/DatePicker/index.js +1 -1
  51. package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -1
  52. package/lib/commonjs/components/DateRangePicker/index.js +1 -1
  53. package/lib/commonjs/components/DateSeparator/DateSeparator.js +1 -1
  54. package/lib/commonjs/components/DecimalInput/DecimalInput.js +1 -1
  55. package/lib/commonjs/components/DecimalInput/index.js +1 -1
  56. package/lib/commonjs/components/Descriptions/Descriptions.js +1 -1
  57. package/lib/commonjs/components/Dialog/Dialog.js +1 -1
  58. package/lib/commonjs/components/Divider/Divider.js +1 -1
  59. package/lib/commonjs/components/Drawer/Drawer.js +1 -1
  60. package/lib/commonjs/components/Drawer/index.js +1 -1
  61. package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
  62. package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js +1 -1
  63. package/lib/commonjs/components/ErrorBoundary/index.js +1 -1
  64. package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -1
  65. package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
  66. package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -1
  67. package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
  68. package/lib/commonjs/components/FilePicker/index.js +1 -1
  69. package/lib/commonjs/components/FilterChipRow/FilterChipRow.js +1 -1
  70. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
  71. package/lib/commonjs/components/FloatingActionButton/index.js +1 -1
  72. package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
  73. package/lib/commonjs/components/ForceUpdateDialog/index.js +1 -1
  74. package/lib/commonjs/components/FormField/FormField.js +1 -1
  75. package/lib/commonjs/components/FormField/index.js +1 -1
  76. package/lib/commonjs/components/IconBadge/IconBadge.js +1 -1
  77. package/lib/commonjs/components/IconButton/IconButton.js +1 -1
  78. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  79. package/lib/commonjs/components/ImageGallery/index.js +1 -1
  80. package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
  81. package/lib/commonjs/components/InlineSelect/index.js +1 -1
  82. package/lib/commonjs/components/Input/Input.js +1 -1
  83. package/lib/commonjs/components/Input/index.js +1 -1
  84. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  85. package/lib/commonjs/components/KeyboardToolbar/index.js +1 -1
  86. package/lib/commonjs/components/ListItem/ListItem.js +1 -1
  87. package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.js +1 -1
  88. package/lib/commonjs/components/LoaderOverlay/index.js +1 -1
  89. package/lib/commonjs/components/Menu/Menu.js +1 -1
  90. package/lib/commonjs/components/Menu/MenuSurface.js +1 -1
  91. package/lib/commonjs/components/Menu/index.js +1 -1
  92. package/lib/commonjs/components/Menu/menuModel.js +1 -1
  93. package/lib/commonjs/components/Menu/useContextMenu.js +1 -1
  94. package/lib/commonjs/components/MessageBubble/MessageBubble.js +1 -1
  95. package/lib/commonjs/components/Modal/Modal.js +1 -1
  96. package/lib/commonjs/components/Modal/index.js +1 -1
  97. package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
  98. package/lib/commonjs/components/NumberInput/index.js +1 -1
  99. package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
  100. package/lib/commonjs/components/OTPInput/index.js +1 -1
  101. package/lib/commonjs/components/OnboardingPager/OnboardingPager.js +1 -1
  102. package/lib/commonjs/components/OnboardingPager/index.js +1 -1
  103. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  104. package/lib/commonjs/components/OptionSheet/index.js +1 -1
  105. package/lib/commonjs/components/PagedListFooter/PagedListFooter.js +1 -0
  106. package/lib/commonjs/components/PagedListFooter/index.js +1 -0
  107. package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.js +1 -1
  108. package/lib/commonjs/components/PermissionPrompt/index.js +1 -1
  109. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  110. package/lib/commonjs/components/PhoneNumberInput/index.js +1 -1
  111. package/lib/commonjs/components/PickerTrigger/PickerTrigger.js +1 -1
  112. package/lib/commonjs/components/PickerTrigger/index.js +1 -1
  113. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -1
  114. package/lib/commonjs/components/ProfileCompletion/index.js +1 -1
  115. package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -1
  116. package/lib/commonjs/components/ProfilePicker/index.js +1 -1
  117. package/lib/commonjs/components/ProgressBar/ProgressBar.js +1 -1
  118. package/lib/commonjs/components/ProgressBar/index.js +1 -1
  119. package/lib/commonjs/components/ProgressRing/ProgressRing.js +1 -1
  120. package/lib/commonjs/components/Radio/Radio.js +1 -1
  121. package/lib/commonjs/components/Radio/RadioGroup.js +1 -1
  122. package/lib/commonjs/components/Rating/Rating.js +1 -1
  123. package/lib/commonjs/components/Rating/index.js +1 -1
  124. package/lib/commonjs/components/Repeater/Repeater.js +1 -1
  125. package/lib/commonjs/components/Repeater/index.js +1 -1
  126. package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -1
  127. package/lib/commonjs/components/RichTextEditor/index.js +1 -1
  128. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.js +1 -1
  129. package/lib/commonjs/components/ScannerOverlay/index.js +1 -1
  130. package/lib/commonjs/components/Screen/Screen.js +1 -1
  131. package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
  132. package/lib/commonjs/components/SearchBar/SearchPanel.js +1 -1
  133. package/lib/commonjs/components/SearchBar/index.js +1 -1
  134. package/lib/commonjs/components/SectionHeader/SectionHeader.js +1 -1
  135. package/lib/commonjs/components/SectionHeader/index.js +1 -1
  136. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
  137. package/lib/commonjs/components/Select/Select.js +1 -1
  138. package/lib/commonjs/components/Select/index.js +1 -1
  139. package/lib/commonjs/components/SignaturePad/SignaturePad.js +1 -1
  140. package/lib/commonjs/components/SignaturePad/index.js +1 -1
  141. package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
  142. package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
  143. package/lib/commonjs/components/Skeleton/SkeletonList.js +1 -1
  144. package/lib/commonjs/components/Skeleton/index.js +1 -1
  145. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
  146. package/lib/commonjs/components/SlideToConfirm/index.js +1 -1
  147. package/lib/commonjs/components/Slider/Slider.js +1 -1
  148. package/lib/commonjs/components/Slider/valueText.js +1 -1
  149. package/lib/commonjs/components/SliderField/SliderField.js +1 -1
  150. package/lib/commonjs/components/SliderField/index.js +1 -1
  151. package/lib/commonjs/components/SortableList/SortableList.js +1 -1
  152. package/lib/commonjs/components/SortableList/index.js +1 -1
  153. package/lib/commonjs/components/Sparkline/Sparkline.js +1 -1
  154. package/lib/commonjs/components/Sparkline/index.js +1 -1
  155. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  156. package/lib/commonjs/components/Spinner/index.js +1 -1
  157. package/lib/commonjs/components/StatTile/StatTile.js +1 -1
  158. package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -1
  159. package/lib/commonjs/components/StatusBadge/statusMap.js +1 -0
  160. package/lib/commonjs/components/Stepper/Stepper.js +1 -1
  161. package/lib/commonjs/components/Stepper/index.js +1 -1
  162. package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
  163. package/lib/commonjs/components/Switch/Switch.js +1 -1
  164. package/lib/commonjs/components/Tabs/Tabs.js +1 -1
  165. package/lib/commonjs/components/TagInput/TagInput.js +1 -1
  166. package/lib/commonjs/components/Text/Text.js +1 -1
  167. package/lib/commonjs/components/TimePicker/TimePicker.js +1 -1
  168. package/lib/commonjs/components/TimePicker/index.js +1 -1
  169. package/lib/commonjs/components/Timeline/Timeline.js +1 -1
  170. package/lib/commonjs/components/Toast/Toast.js +1 -1
  171. package/lib/commonjs/components/Toast/ToastProvider.js +1 -1
  172. package/lib/commonjs/components/Toast/index.js +1 -1
  173. package/lib/commonjs/components/Tooltip/RichTooltipBody.js +1 -1
  174. package/lib/commonjs/components/Tooltip/Tooltip.js +1 -1
  175. package/lib/commonjs/components/Tooltip/index.js +1 -1
  176. package/lib/commonjs/components/Tour/Tour.js +1 -1
  177. package/lib/commonjs/components/Tour/index.js +1 -1
  178. package/lib/commonjs/components/TypingIndicator/TypingIndicator.js +1 -1
  179. package/lib/commonjs/components/TypingIndicator/index.js +1 -1
  180. package/lib/commonjs/components/WheelPicker/Wheel.js +1 -1
  181. package/lib/commonjs/components/WheelPicker/WheelPicker.js +1 -1
  182. package/lib/commonjs/components/WheelPicker/index.js +1 -1
  183. package/lib/commonjs/components/index.js +1 -1
  184. package/lib/commonjs/components/not-drawn.json +2 -1
  185. package/lib/commonjs/form/index.js +1 -1
  186. package/lib/commonjs/index.js +1 -1
  187. package/lib/commonjs/navigation/DiscardGuard.js +1 -0
  188. package/lib/commonjs/navigation/NavigationScreen.js +1 -0
  189. package/lib/commonjs/navigation/index.js +1 -0
  190. package/lib/commonjs/theme/index.js +1 -1
  191. package/lib/commonjs/theme/makeStyles.js +1 -0
  192. package/lib/commonjs/theme/merge.js +1 -1
  193. package/lib/commonjs/theme/tokens.generated.js +1 -1
  194. package/lib/commonjs/utils/placement.js +1 -1
  195. package/lib/commonjs/utils/warnInvalidValue.js +1 -1
  196. package/lib/module/components/Accordion/Accordion.js +1 -1
  197. package/lib/module/components/AmountSlider/AmountSlider.js +1 -1
  198. package/lib/module/components/AmountSlider/index.js +1 -1
  199. package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -1
  200. package/lib/module/components/AppBar/AppBar.js +1 -1
  201. package/lib/module/components/AppBar/index.js +1 -1
  202. package/lib/module/components/AppIcon/AppIcon.js +1 -1
  203. package/lib/module/components/AppLockOverlay/AppLockOverlay.js +1 -0
  204. package/lib/module/components/AppLockOverlay/index.js +1 -0
  205. package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -1
  206. package/lib/module/components/AsyncBlock/index.js +1 -1
  207. package/lib/module/components/AuthedImage/AuthedImage.js +1 -1
  208. package/lib/module/components/AuthedImage/authedImageCache.js +1 -1
  209. package/lib/module/components/Autocomplete/Autocomplete.js +1 -1
  210. package/lib/module/components/Autocomplete/index.js +1 -1
  211. package/lib/module/components/Avatar/Avatar.js +1 -1
  212. package/lib/module/components/Avatar/index.js +1 -1
  213. package/lib/module/components/Badge/Badge.js +1 -1
  214. package/lib/module/components/Badge/index.js +1 -1
  215. package/lib/module/components/Banner/Banner.js +1 -1
  216. package/lib/module/components/Banner/index.js +1 -1
  217. package/lib/module/components/BarChart/BarChart.js +1 -1
  218. package/lib/module/components/BarChart/index.js +1 -1
  219. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  220. package/lib/module/components/BottomNavigation/index.js +1 -1
  221. package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
  222. package/lib/module/components/BottomSheet/index.js +1 -1
  223. package/lib/module/components/Button/Button.js +1 -1
  224. package/lib/module/components/Calendar/Calendar.js +1 -1
  225. package/lib/module/components/Calendar/CalendarDay.js +1 -1
  226. package/lib/module/components/Calendar/calendarStyles.js +1 -1
  227. package/lib/module/components/Calendar/index.js +1 -1
  228. package/lib/module/components/Card/Card.js +1 -1
  229. package/lib/module/components/Card/index.js +1 -1
  230. package/lib/module/components/Carousel/Carousel.js +1 -1
  231. package/lib/module/components/Carousel/index.js +1 -1
  232. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  233. package/lib/module/components/Chip/Chip.js +1 -1
  234. package/lib/module/components/Chip/index.js +1 -1
  235. package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
  236. package/lib/module/components/Composer/Composer.js +1 -1
  237. package/lib/module/components/Composer/index.js +1 -1
  238. package/lib/module/components/Confetti/Confetti.js +1 -1
  239. package/lib/module/components/Confirm/confirm.js +1 -0
  240. package/lib/module/components/Confirm/index.js +1 -0
  241. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  242. package/lib/module/components/DatePicker/index.js +1 -1
  243. package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
  244. package/lib/module/components/DateRangePicker/index.js +1 -1
  245. package/lib/module/components/DateSeparator/DateSeparator.js +1 -1
  246. package/lib/module/components/DecimalInput/DecimalInput.js +1 -1
  247. package/lib/module/components/DecimalInput/index.js +1 -1
  248. package/lib/module/components/Descriptions/Descriptions.js +1 -1
  249. package/lib/module/components/Dialog/Dialog.js +1 -1
  250. package/lib/module/components/Divider/Divider.js +1 -1
  251. package/lib/module/components/Drawer/Drawer.js +1 -1
  252. package/lib/module/components/Drawer/index.js +1 -1
  253. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  254. package/lib/module/components/ErrorBoundary/ErrorBoundary.js +1 -1
  255. package/lib/module/components/ErrorBoundary/index.js +1 -1
  256. package/lib/module/components/FieldBase/ChoiceText.js +1 -1
  257. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  258. package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
  259. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  260. package/lib/module/components/FilePicker/index.js +1 -1
  261. package/lib/module/components/FilterChipRow/FilterChipRow.js +1 -1
  262. package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
  263. package/lib/module/components/FloatingActionButton/index.js +1 -1
  264. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
  265. package/lib/module/components/ForceUpdateDialog/index.js +1 -1
  266. package/lib/module/components/FormField/FormField.js +1 -1
  267. package/lib/module/components/FormField/index.js +1 -1
  268. package/lib/module/components/IconBadge/IconBadge.js +1 -1
  269. package/lib/module/components/IconButton/IconButton.js +1 -1
  270. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  271. package/lib/module/components/ImageGallery/index.js +1 -1
  272. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  273. package/lib/module/components/InlineSelect/index.js +1 -1
  274. package/lib/module/components/Input/Input.js +1 -1
  275. package/lib/module/components/Input/index.js +1 -1
  276. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  277. package/lib/module/components/KeyboardToolbar/index.js +1 -1
  278. package/lib/module/components/ListItem/ListItem.js +1 -1
  279. package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -1
  280. package/lib/module/components/LoaderOverlay/index.js +1 -1
  281. package/lib/module/components/Menu/Menu.js +1 -1
  282. package/lib/module/components/Menu/MenuSurface.js +1 -1
  283. package/lib/module/components/Menu/index.js +1 -1
  284. package/lib/module/components/Menu/menuModel.js +1 -1
  285. package/lib/module/components/Menu/useContextMenu.js +1 -1
  286. package/lib/module/components/MessageBubble/MessageBubble.js +1 -1
  287. package/lib/module/components/Modal/Modal.js +1 -1
  288. package/lib/module/components/Modal/index.js +1 -1
  289. package/lib/module/components/NumberInput/NumberInput.js +1 -1
  290. package/lib/module/components/NumberInput/index.js +1 -1
  291. package/lib/module/components/OTPInput/OTPInput.js +1 -1
  292. package/lib/module/components/OTPInput/index.js +1 -1
  293. package/lib/module/components/OnboardingPager/OnboardingPager.js +1 -1
  294. package/lib/module/components/OnboardingPager/index.js +1 -1
  295. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  296. package/lib/module/components/OptionSheet/index.js +1 -1
  297. package/lib/module/components/PagedListFooter/PagedListFooter.js +1 -0
  298. package/lib/module/components/PagedListFooter/index.js +1 -0
  299. package/lib/module/components/PermissionPrompt/PermissionPrompt.js +1 -1
  300. package/lib/module/components/PermissionPrompt/index.js +1 -1
  301. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  302. package/lib/module/components/PhoneNumberInput/index.js +1 -1
  303. package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
  304. package/lib/module/components/PickerTrigger/index.js +1 -1
  305. package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
  306. package/lib/module/components/ProfileCompletion/index.js +1 -1
  307. package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
  308. package/lib/module/components/ProfilePicker/index.js +1 -1
  309. package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
  310. package/lib/module/components/ProgressBar/index.js +1 -1
  311. package/lib/module/components/ProgressRing/ProgressRing.js +1 -1
  312. package/lib/module/components/Radio/Radio.js +1 -1
  313. package/lib/module/components/Radio/RadioGroup.js +1 -1
  314. package/lib/module/components/Rating/Rating.js +1 -1
  315. package/lib/module/components/Rating/index.js +1 -1
  316. package/lib/module/components/Repeater/Repeater.js +1 -1
  317. package/lib/module/components/Repeater/index.js +1 -1
  318. package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
  319. package/lib/module/components/RichTextEditor/index.js +1 -1
  320. package/lib/module/components/ScannerOverlay/ScannerOverlay.js +1 -1
  321. package/lib/module/components/ScannerOverlay/index.js +1 -1
  322. package/lib/module/components/Screen/Screen.js +1 -1
  323. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  324. package/lib/module/components/SearchBar/SearchPanel.js +1 -1
  325. package/lib/module/components/SearchBar/index.js +1 -1
  326. package/lib/module/components/SectionHeader/SectionHeader.js +1 -1
  327. package/lib/module/components/SectionHeader/index.js +1 -1
  328. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  329. package/lib/module/components/Select/Select.js +1 -1
  330. package/lib/module/components/Select/index.js +1 -1
  331. package/lib/module/components/SignaturePad/SignaturePad.js +1 -1
  332. package/lib/module/components/SignaturePad/index.js +1 -1
  333. package/lib/module/components/Skeleton/Skeleton.js +1 -1
  334. package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
  335. package/lib/module/components/Skeleton/SkeletonList.js +1 -1
  336. package/lib/module/components/Skeleton/index.js +1 -1
  337. package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
  338. package/lib/module/components/SlideToConfirm/index.js +1 -1
  339. package/lib/module/components/Slider/Slider.js +1 -1
  340. package/lib/module/components/Slider/valueText.js +1 -1
  341. package/lib/module/components/SliderField/SliderField.js +1 -1
  342. package/lib/module/components/SliderField/index.js +1 -1
  343. package/lib/module/components/SortableList/SortableList.js +1 -1
  344. package/lib/module/components/SortableList/index.js +1 -1
  345. package/lib/module/components/Sparkline/Sparkline.js +1 -1
  346. package/lib/module/components/Sparkline/index.js +1 -1
  347. package/lib/module/components/Spinner/Spinner.js +1 -1
  348. package/lib/module/components/Spinner/index.js +1 -1
  349. package/lib/module/components/StatTile/StatTile.js +1 -1
  350. package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
  351. package/lib/module/components/StatusBadge/statusMap.js +1 -0
  352. package/lib/module/components/Stepper/Stepper.js +1 -1
  353. package/lib/module/components/Stepper/index.js +1 -1
  354. package/lib/module/components/Swipeable/Swipeable.js +1 -1
  355. package/lib/module/components/Switch/Switch.js +1 -1
  356. package/lib/module/components/Tabs/Tabs.js +1 -1
  357. package/lib/module/components/TagInput/TagInput.js +1 -1
  358. package/lib/module/components/Text/Text.js +1 -1
  359. package/lib/module/components/TimePicker/TimePicker.js +1 -1
  360. package/lib/module/components/TimePicker/index.js +1 -1
  361. package/lib/module/components/Timeline/Timeline.js +1 -1
  362. package/lib/module/components/Toast/Toast.js +1 -1
  363. package/lib/module/components/Toast/ToastProvider.js +1 -1
  364. package/lib/module/components/Toast/index.js +1 -1
  365. package/lib/module/components/Tooltip/RichTooltipBody.js +1 -1
  366. package/lib/module/components/Tooltip/Tooltip.js +1 -1
  367. package/lib/module/components/Tooltip/index.js +1 -1
  368. package/lib/module/components/Tour/Tour.js +1 -1
  369. package/lib/module/components/Tour/index.js +1 -1
  370. package/lib/module/components/TypingIndicator/TypingIndicator.js +1 -1
  371. package/lib/module/components/TypingIndicator/index.js +1 -1
  372. package/lib/module/components/WheelPicker/Wheel.js +1 -1
  373. package/lib/module/components/WheelPicker/WheelPicker.js +1 -1
  374. package/lib/module/components/WheelPicker/index.js +1 -1
  375. package/lib/module/components/index.js +1 -1
  376. package/lib/module/components/not-drawn.json +2 -1
  377. package/lib/module/form/index.js +1 -1
  378. package/lib/module/index.js +1 -1
  379. package/lib/module/navigation/DiscardGuard.js +1 -0
  380. package/lib/module/navigation/NavigationScreen.js +1 -0
  381. package/lib/module/navigation/index.js +1 -0
  382. package/lib/module/theme/index.js +1 -1
  383. package/lib/module/theme/makeStyles.js +1 -0
  384. package/lib/module/theme/merge.js +1 -1
  385. package/lib/module/theme/tokens.generated.js +1 -1
  386. package/lib/module/utils/placement.js +1 -1
  387. package/lib/module/utils/warnInvalidValue.js +1 -1
  388. package/lib/typescript/commonjs/components/AmountSlider/AmountSlider.d.ts +24 -17
  389. package/lib/typescript/commonjs/components/AmountSlider/index.d.ts +2 -2
  390. package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +13 -8
  391. package/lib/typescript/commonjs/components/AppBar/index.d.ts +2 -2
  392. package/lib/typescript/commonjs/components/AppIcon/AppIcon.d.ts +2 -1
  393. package/lib/typescript/commonjs/components/AppLockOverlay/AppLockOverlay.d.ts +27 -0
  394. package/lib/typescript/commonjs/components/AppLockOverlay/index.d.ts +3 -0
  395. package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.d.ts +13 -4
  396. package/lib/typescript/commonjs/components/AsyncBlock/index.d.ts +2 -2
  397. package/lib/typescript/commonjs/components/AuthedImage/AuthedImage.d.ts +8 -0
  398. package/lib/typescript/commonjs/components/Autocomplete/Autocomplete.d.ts +9 -4
  399. package/lib/typescript/commonjs/components/Autocomplete/index.d.ts +2 -2
  400. package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +19 -8
  401. package/lib/typescript/commonjs/components/Avatar/index.d.ts +2 -2
  402. package/lib/typescript/commonjs/components/Badge/Badge.d.ts +9 -2
  403. package/lib/typescript/commonjs/components/Badge/index.d.ts +2 -2
  404. package/lib/typescript/commonjs/components/Banner/Banner.d.ts +16 -8
  405. package/lib/typescript/commonjs/components/Banner/index.d.ts +2 -2
  406. package/lib/typescript/commonjs/components/BarChart/BarChart.d.ts +12 -3
  407. package/lib/typescript/commonjs/components/BarChart/index.d.ts +2 -2
  408. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +8 -0
  409. package/lib/typescript/commonjs/components/BottomNavigation/index.d.ts +2 -2
  410. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +42 -58
  411. package/lib/typescript/commonjs/components/BottomSheet/index.d.ts +2 -4
  412. package/lib/typescript/commonjs/components/Button/Button.d.ts +13 -11
  413. package/lib/typescript/commonjs/components/Button/index.d.ts +1 -1
  414. package/lib/typescript/commonjs/components/Calendar/Calendar.d.ts +24 -15
  415. package/lib/typescript/commonjs/components/Calendar/CalendarDay.d.ts +1 -4
  416. package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +4 -7
  417. package/lib/typescript/commonjs/components/Calendar/index.d.ts +2 -2
  418. package/lib/typescript/commonjs/components/Card/Card.d.ts +13 -6
  419. package/lib/typescript/commonjs/components/Card/index.d.ts +2 -2
  420. package/lib/typescript/commonjs/components/Carousel/Carousel.d.ts +7 -0
  421. package/lib/typescript/commonjs/components/Carousel/index.d.ts +2 -2
  422. package/lib/typescript/commonjs/components/Checkbox/Checkbox.d.ts +10 -12
  423. package/lib/typescript/commonjs/components/Chip/Chip.d.ts +12 -6
  424. package/lib/typescript/commonjs/components/Chip/index.d.ts +2 -2
  425. package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.d.ts +11 -4
  426. package/lib/typescript/commonjs/components/Composer/Composer.d.ts +8 -3
  427. package/lib/typescript/commonjs/components/Composer/index.d.ts +2 -2
  428. package/lib/typescript/commonjs/components/Confirm/confirm.d.ts +17 -0
  429. package/lib/typescript/commonjs/components/Confirm/index.d.ts +3 -0
  430. package/lib/typescript/commonjs/components/DatePicker/DatePicker.d.ts +22 -6
  431. package/lib/typescript/commonjs/components/DatePicker/index.d.ts +2 -2
  432. package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.d.ts +12 -8
  433. package/lib/typescript/commonjs/components/DateRangePicker/index.d.ts +2 -2
  434. package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.d.ts +11 -15
  435. package/lib/typescript/commonjs/components/DecimalInput/index.d.ts +2 -2
  436. package/lib/typescript/commonjs/components/Descriptions/Descriptions.d.ts +2 -1
  437. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +7 -4
  438. package/lib/typescript/commonjs/components/Dialog/index.d.ts +1 -1
  439. package/lib/typescript/commonjs/components/Drawer/Drawer.d.ts +8 -1
  440. package/lib/typescript/commonjs/components/Drawer/index.d.ts +2 -2
  441. package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +7 -2
  442. package/lib/typescript/commonjs/components/ErrorBoundary/ErrorBoundary.d.ts +8 -0
  443. package/lib/typescript/commonjs/components/ErrorBoundary/index.d.ts +2 -2
  444. package/lib/typescript/commonjs/components/FieldBase/ChoiceText.d.ts +12 -9
  445. package/lib/typescript/commonjs/components/FieldBase/FieldBase.d.ts +5 -4
  446. package/lib/typescript/commonjs/components/FieldBase/useFloatingLabel.d.ts +3 -3
  447. package/lib/typescript/commonjs/components/FilePicker/FilePicker.d.ts +27 -25
  448. package/lib/typescript/commonjs/components/FilePicker/index.d.ts +2 -2
  449. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButton.d.ts +28 -11
  450. package/lib/typescript/commonjs/components/FloatingActionButton/index.d.ts +2 -2
  451. package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +11 -6
  452. package/lib/typescript/commonjs/components/ForceUpdateDialog/index.d.ts +2 -2
  453. package/lib/typescript/commonjs/components/FormField/FormField.d.ts +8 -12
  454. package/lib/typescript/commonjs/components/FormField/index.d.ts +2 -2
  455. package/lib/typescript/commonjs/components/IconBadge/IconBadge.d.ts +3 -2
  456. package/lib/typescript/commonjs/components/IconButton/IconButton.d.ts +4 -3
  457. package/lib/typescript/commonjs/components/ImageGallery/ImageGallery.d.ts +12 -0
  458. package/lib/typescript/commonjs/components/ImageGallery/index.d.ts +2 -2
  459. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +12 -2
  460. package/lib/typescript/commonjs/components/InlineSelect/index.d.ts +2 -2
  461. package/lib/typescript/commonjs/components/Input/Input.d.ts +11 -2
  462. package/lib/typescript/commonjs/components/Input/index.d.ts +2 -2
  463. package/lib/typescript/commonjs/components/KeyboardToolbar/KeyboardToolbar.d.ts +12 -10
  464. package/lib/typescript/commonjs/components/KeyboardToolbar/index.d.ts +2 -2
  465. package/lib/typescript/commonjs/components/ListItem/ListItem.d.ts +3 -3
  466. package/lib/typescript/commonjs/components/LoaderOverlay/LoaderOverlay.d.ts +7 -0
  467. package/lib/typescript/commonjs/components/LoaderOverlay/index.d.ts +2 -2
  468. package/lib/typescript/commonjs/components/Menu/Menu.d.ts +6 -8
  469. package/lib/typescript/commonjs/components/Menu/MenuSurface.d.ts +2 -3
  470. package/lib/typescript/commonjs/components/Menu/index.d.ts +2 -1
  471. package/lib/typescript/commonjs/components/Menu/menuModel.d.ts +6 -0
  472. package/lib/typescript/commonjs/components/Menu/useContextMenu.d.ts +4 -6
  473. package/lib/typescript/commonjs/components/Modal/Modal.d.ts +16 -3
  474. package/lib/typescript/commonjs/components/Modal/index.d.ts +2 -2
  475. package/lib/typescript/commonjs/components/NumberInput/NumberInput.d.ts +9 -1
  476. package/lib/typescript/commonjs/components/NumberInput/index.d.ts +2 -2
  477. package/lib/typescript/commonjs/components/OTPInput/OTPInput.d.ts +7 -1
  478. package/lib/typescript/commonjs/components/OTPInput/index.d.ts +2 -2
  479. package/lib/typescript/commonjs/components/OnboardingPager/OnboardingPager.d.ts +10 -9
  480. package/lib/typescript/commonjs/components/OnboardingPager/index.d.ts +1 -1
  481. package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.d.ts +60 -44
  482. package/lib/typescript/commonjs/components/OptionSheet/index.d.ts +2 -2
  483. package/lib/typescript/commonjs/components/PagedListFooter/PagedListFooter.d.ts +15 -0
  484. package/lib/typescript/commonjs/components/PagedListFooter/index.d.ts +3 -0
  485. package/lib/typescript/commonjs/components/PermissionPrompt/PermissionPrompt.d.ts +12 -0
  486. package/lib/typescript/commonjs/components/PermissionPrompt/index.d.ts +2 -2
  487. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.d.ts +35 -25
  488. package/lib/typescript/commonjs/components/PhoneNumberInput/index.d.ts +2 -2
  489. package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.d.ts +11 -3
  490. package/lib/typescript/commonjs/components/PickerTrigger/index.d.ts +2 -2
  491. package/lib/typescript/commonjs/components/ProfileCompletion/ProfileCompletion.d.ts +13 -5
  492. package/lib/typescript/commonjs/components/ProfileCompletion/index.d.ts +2 -2
  493. package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.d.ts +21 -20
  494. package/lib/typescript/commonjs/components/ProfilePicker/index.d.ts +2 -2
  495. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +8 -3
  496. package/lib/typescript/commonjs/components/ProgressBar/index.d.ts +2 -2
  497. package/lib/typescript/commonjs/components/ProgressRing/ProgressRing.d.ts +2 -2
  498. package/lib/typescript/commonjs/components/ProgressRing/index.d.ts +1 -1
  499. package/lib/typescript/commonjs/components/Radio/Radio.d.ts +10 -7
  500. package/lib/typescript/commonjs/components/Radio/RadioGroup.d.ts +3 -3
  501. package/lib/typescript/commonjs/components/Rating/Rating.d.ts +8 -2
  502. package/lib/typescript/commonjs/components/Rating/index.d.ts +2 -2
  503. package/lib/typescript/commonjs/components/Repeater/Repeater.d.ts +16 -6
  504. package/lib/typescript/commonjs/components/Repeater/index.d.ts +2 -2
  505. package/lib/typescript/commonjs/components/RichTextEditor/RichTextEditor.d.ts +4 -0
  506. package/lib/typescript/commonjs/components/RichTextEditor/index.d.ts +2 -2
  507. package/lib/typescript/commonjs/components/ScannerOverlay/ScannerOverlay.d.ts +5 -2
  508. package/lib/typescript/commonjs/components/ScannerOverlay/index.d.ts +1 -1
  509. package/lib/typescript/commonjs/components/Screen/Screen.d.ts +33 -10
  510. package/lib/typescript/commonjs/components/Screen/index.d.ts +1 -1
  511. package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +22 -8
  512. package/lib/typescript/commonjs/components/SearchBar/SearchPanel.d.ts +3 -1
  513. package/lib/typescript/commonjs/components/SearchBar/index.d.ts +2 -2
  514. package/lib/typescript/commonjs/components/SearchBar/useRecentSearches.d.ts +1 -1
  515. package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.d.ts +5 -0
  516. package/lib/typescript/commonjs/components/SectionHeader/index.d.ts +2 -2
  517. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +3 -2
  518. package/lib/typescript/commonjs/components/Select/Select.d.ts +18 -8
  519. package/lib/typescript/commonjs/components/Select/index.d.ts +2 -2
  520. package/lib/typescript/commonjs/components/SignaturePad/SignaturePad.d.ts +3 -2
  521. package/lib/typescript/commonjs/components/SignaturePad/index.d.ts +1 -1
  522. package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +7 -0
  523. package/lib/typescript/commonjs/components/Skeleton/SkeletonContent.d.ts +3 -1
  524. package/lib/typescript/commonjs/components/Skeleton/SkeletonList.d.ts +3 -1
  525. package/lib/typescript/commonjs/components/Skeleton/index.d.ts +2 -2
  526. package/lib/typescript/commonjs/components/SlideToConfirm/SlideToConfirm.d.ts +12 -5
  527. package/lib/typescript/commonjs/components/SlideToConfirm/index.d.ts +2 -2
  528. package/lib/typescript/commonjs/components/Slider/Slider.d.ts +3 -2
  529. package/lib/typescript/commonjs/components/Slider/valueText.d.ts +2 -1
  530. package/lib/typescript/commonjs/components/SliderField/SliderField.d.ts +15 -3
  531. package/lib/typescript/commonjs/components/SliderField/index.d.ts +2 -2
  532. package/lib/typescript/commonjs/components/SortableList/SortableList.d.ts +6 -0
  533. package/lib/typescript/commonjs/components/SortableList/index.d.ts +2 -2
  534. package/lib/typescript/commonjs/components/Sparkline/Sparkline.d.ts +11 -3
  535. package/lib/typescript/commonjs/components/Sparkline/index.d.ts +2 -2
  536. package/lib/typescript/commonjs/components/Spinner/Spinner.d.ts +7 -1
  537. package/lib/typescript/commonjs/components/Spinner/index.d.ts +2 -2
  538. package/lib/typescript/commonjs/components/StatTile/StatTile.d.ts +10 -2
  539. package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.d.ts +6 -4
  540. package/lib/typescript/commonjs/components/StatusBadge/statusMap.d.ts +8 -0
  541. package/lib/typescript/commonjs/components/Stepper/Stepper.d.ts +15 -1
  542. package/lib/typescript/commonjs/components/Stepper/index.d.ts +2 -2
  543. package/lib/typescript/commonjs/components/Swipeable/Swipeable.d.ts +4 -2
  544. package/lib/typescript/commonjs/components/Switch/Switch.d.ts +9 -11
  545. package/lib/typescript/commonjs/components/Tabs/Tabs.d.ts +5 -3
  546. package/lib/typescript/commonjs/components/TagInput/TagInput.d.ts +3 -4
  547. package/lib/typescript/commonjs/components/Text/Text.d.ts +6 -5
  548. package/lib/typescript/commonjs/components/TimePicker/TimePicker.d.ts +17 -4
  549. package/lib/typescript/commonjs/components/TimePicker/index.d.ts +2 -2
  550. package/lib/typescript/commonjs/components/Toast/Toast.d.ts +11 -5
  551. package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +15 -14
  552. package/lib/typescript/commonjs/components/Toast/index.d.ts +2 -2
  553. package/lib/typescript/commonjs/components/Tooltip/Tooltip.d.ts +8 -2
  554. package/lib/typescript/commonjs/components/Tooltip/index.d.ts +2 -2
  555. package/lib/typescript/commonjs/components/Tour/Tour.d.ts +7 -5
  556. package/lib/typescript/commonjs/components/Tour/index.d.ts +1 -1
  557. package/lib/typescript/commonjs/components/TypingIndicator/TypingIndicator.d.ts +7 -2
  558. package/lib/typescript/commonjs/components/TypingIndicator/index.d.ts +2 -2
  559. package/lib/typescript/commonjs/components/WheelPicker/WheelPicker.d.ts +13 -6
  560. package/lib/typescript/commonjs/components/WheelPicker/index.d.ts +2 -2
  561. package/lib/typescript/commonjs/components/index.d.ts +125 -119
  562. package/lib/typescript/commonjs/form/HookFormField.d.ts +1 -1
  563. package/lib/typescript/commonjs/form/index.d.ts +0 -8
  564. package/lib/typescript/commonjs/index.d.ts +6 -5
  565. package/lib/typescript/commonjs/navigation/DiscardGuard.d.ts +26 -0
  566. package/lib/typescript/commonjs/navigation/NavigationScreen.d.ts +12 -0
  567. package/lib/typescript/commonjs/navigation/index.d.ts +5 -0
  568. package/lib/typescript/commonjs/theme/index.d.ts +1 -0
  569. package/lib/typescript/commonjs/theme/makeStyles.d.ts +5 -0
  570. package/lib/typescript/commonjs/theme/tokens.generated.d.ts +2 -0
  571. package/lib/typescript/commonjs/theme/types.d.ts +15 -2
  572. package/lib/typescript/commonjs/types/vocabulary.d.ts +10 -0
  573. package/lib/typescript/commonjs/utils/placement.d.ts +2 -0
  574. package/lib/typescript/commonjs/utils/warnInvalidValue.d.ts +1 -1
  575. package/lib/typescript/module/components/AmountSlider/AmountSlider.d.ts +24 -17
  576. package/lib/typescript/module/components/AmountSlider/index.d.ts +2 -2
  577. package/lib/typescript/module/components/AppBar/AppBar.d.ts +13 -8
  578. package/lib/typescript/module/components/AppBar/index.d.ts +2 -2
  579. package/lib/typescript/module/components/AppIcon/AppIcon.d.ts +2 -1
  580. package/lib/typescript/module/components/AppLockOverlay/AppLockOverlay.d.ts +27 -0
  581. package/lib/typescript/module/components/AppLockOverlay/index.d.ts +3 -0
  582. package/lib/typescript/module/components/AsyncBlock/AsyncBlock.d.ts +13 -4
  583. package/lib/typescript/module/components/AsyncBlock/index.d.ts +2 -2
  584. package/lib/typescript/module/components/AuthedImage/AuthedImage.d.ts +8 -0
  585. package/lib/typescript/module/components/Autocomplete/Autocomplete.d.ts +9 -4
  586. package/lib/typescript/module/components/Autocomplete/index.d.ts +2 -2
  587. package/lib/typescript/module/components/Avatar/Avatar.d.ts +19 -8
  588. package/lib/typescript/module/components/Avatar/index.d.ts +2 -2
  589. package/lib/typescript/module/components/Badge/Badge.d.ts +9 -2
  590. package/lib/typescript/module/components/Badge/index.d.ts +2 -2
  591. package/lib/typescript/module/components/Banner/Banner.d.ts +16 -8
  592. package/lib/typescript/module/components/Banner/index.d.ts +2 -2
  593. package/lib/typescript/module/components/BarChart/BarChart.d.ts +12 -3
  594. package/lib/typescript/module/components/BarChart/index.d.ts +2 -2
  595. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +8 -0
  596. package/lib/typescript/module/components/BottomNavigation/index.d.ts +2 -2
  597. package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +42 -58
  598. package/lib/typescript/module/components/BottomSheet/index.d.ts +2 -4
  599. package/lib/typescript/module/components/Button/Button.d.ts +13 -11
  600. package/lib/typescript/module/components/Button/index.d.ts +1 -1
  601. package/lib/typescript/module/components/Calendar/Calendar.d.ts +24 -15
  602. package/lib/typescript/module/components/Calendar/CalendarDay.d.ts +1 -4
  603. package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +4 -7
  604. package/lib/typescript/module/components/Calendar/index.d.ts +2 -2
  605. package/lib/typescript/module/components/Card/Card.d.ts +13 -6
  606. package/lib/typescript/module/components/Card/index.d.ts +2 -2
  607. package/lib/typescript/module/components/Carousel/Carousel.d.ts +7 -0
  608. package/lib/typescript/module/components/Carousel/index.d.ts +2 -2
  609. package/lib/typescript/module/components/Checkbox/Checkbox.d.ts +10 -12
  610. package/lib/typescript/module/components/Chip/Chip.d.ts +12 -6
  611. package/lib/typescript/module/components/Chip/index.d.ts +2 -2
  612. package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.d.ts +11 -4
  613. package/lib/typescript/module/components/Composer/Composer.d.ts +8 -3
  614. package/lib/typescript/module/components/Composer/index.d.ts +2 -2
  615. package/lib/typescript/module/components/Confirm/confirm.d.ts +17 -0
  616. package/lib/typescript/module/components/Confirm/index.d.ts +3 -0
  617. package/lib/typescript/module/components/DatePicker/DatePicker.d.ts +22 -6
  618. package/lib/typescript/module/components/DatePicker/index.d.ts +2 -2
  619. package/lib/typescript/module/components/DateRangePicker/DateRangePicker.d.ts +12 -8
  620. package/lib/typescript/module/components/DateRangePicker/index.d.ts +2 -2
  621. package/lib/typescript/module/components/DecimalInput/DecimalInput.d.ts +11 -15
  622. package/lib/typescript/module/components/DecimalInput/index.d.ts +2 -2
  623. package/lib/typescript/module/components/Descriptions/Descriptions.d.ts +2 -1
  624. package/lib/typescript/module/components/Dialog/Dialog.d.ts +7 -4
  625. package/lib/typescript/module/components/Dialog/index.d.ts +1 -1
  626. package/lib/typescript/module/components/Drawer/Drawer.d.ts +8 -1
  627. package/lib/typescript/module/components/Drawer/index.d.ts +2 -2
  628. package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +7 -2
  629. package/lib/typescript/module/components/ErrorBoundary/ErrorBoundary.d.ts +8 -0
  630. package/lib/typescript/module/components/ErrorBoundary/index.d.ts +2 -2
  631. package/lib/typescript/module/components/FieldBase/ChoiceText.d.ts +12 -9
  632. package/lib/typescript/module/components/FieldBase/FieldBase.d.ts +5 -4
  633. package/lib/typescript/module/components/FieldBase/useFloatingLabel.d.ts +3 -3
  634. package/lib/typescript/module/components/FilePicker/FilePicker.d.ts +27 -25
  635. package/lib/typescript/module/components/FilePicker/index.d.ts +2 -2
  636. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButton.d.ts +28 -11
  637. package/lib/typescript/module/components/FloatingActionButton/index.d.ts +2 -2
  638. package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +11 -6
  639. package/lib/typescript/module/components/ForceUpdateDialog/index.d.ts +2 -2
  640. package/lib/typescript/module/components/FormField/FormField.d.ts +8 -12
  641. package/lib/typescript/module/components/FormField/index.d.ts +2 -2
  642. package/lib/typescript/module/components/IconBadge/IconBadge.d.ts +3 -2
  643. package/lib/typescript/module/components/IconButton/IconButton.d.ts +4 -3
  644. package/lib/typescript/module/components/ImageGallery/ImageGallery.d.ts +12 -0
  645. package/lib/typescript/module/components/ImageGallery/index.d.ts +2 -2
  646. package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +12 -2
  647. package/lib/typescript/module/components/InlineSelect/index.d.ts +2 -2
  648. package/lib/typescript/module/components/Input/Input.d.ts +11 -2
  649. package/lib/typescript/module/components/Input/index.d.ts +2 -2
  650. package/lib/typescript/module/components/KeyboardToolbar/KeyboardToolbar.d.ts +12 -10
  651. package/lib/typescript/module/components/KeyboardToolbar/index.d.ts +2 -2
  652. package/lib/typescript/module/components/ListItem/ListItem.d.ts +3 -3
  653. package/lib/typescript/module/components/LoaderOverlay/LoaderOverlay.d.ts +7 -0
  654. package/lib/typescript/module/components/LoaderOverlay/index.d.ts +2 -2
  655. package/lib/typescript/module/components/Menu/Menu.d.ts +6 -8
  656. package/lib/typescript/module/components/Menu/MenuSurface.d.ts +2 -3
  657. package/lib/typescript/module/components/Menu/index.d.ts +2 -1
  658. package/lib/typescript/module/components/Menu/menuModel.d.ts +6 -0
  659. package/lib/typescript/module/components/Menu/useContextMenu.d.ts +4 -6
  660. package/lib/typescript/module/components/Modal/Modal.d.ts +16 -3
  661. package/lib/typescript/module/components/Modal/index.d.ts +2 -2
  662. package/lib/typescript/module/components/NumberInput/NumberInput.d.ts +9 -1
  663. package/lib/typescript/module/components/NumberInput/index.d.ts +2 -2
  664. package/lib/typescript/module/components/OTPInput/OTPInput.d.ts +7 -1
  665. package/lib/typescript/module/components/OTPInput/index.d.ts +2 -2
  666. package/lib/typescript/module/components/OnboardingPager/OnboardingPager.d.ts +10 -9
  667. package/lib/typescript/module/components/OnboardingPager/index.d.ts +1 -1
  668. package/lib/typescript/module/components/OptionSheet/OptionSheet.d.ts +60 -44
  669. package/lib/typescript/module/components/OptionSheet/index.d.ts +2 -2
  670. package/lib/typescript/module/components/PagedListFooter/PagedListFooter.d.ts +15 -0
  671. package/lib/typescript/module/components/PagedListFooter/index.d.ts +3 -0
  672. package/lib/typescript/module/components/PermissionPrompt/PermissionPrompt.d.ts +12 -0
  673. package/lib/typescript/module/components/PermissionPrompt/index.d.ts +2 -2
  674. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.d.ts +35 -25
  675. package/lib/typescript/module/components/PhoneNumberInput/index.d.ts +2 -2
  676. package/lib/typescript/module/components/PickerTrigger/PickerTrigger.d.ts +11 -3
  677. package/lib/typescript/module/components/PickerTrigger/index.d.ts +2 -2
  678. package/lib/typescript/module/components/ProfileCompletion/ProfileCompletion.d.ts +13 -5
  679. package/lib/typescript/module/components/ProfileCompletion/index.d.ts +2 -2
  680. package/lib/typescript/module/components/ProfilePicker/ProfilePicker.d.ts +21 -20
  681. package/lib/typescript/module/components/ProfilePicker/index.d.ts +2 -2
  682. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +8 -3
  683. package/lib/typescript/module/components/ProgressBar/index.d.ts +2 -2
  684. package/lib/typescript/module/components/ProgressRing/ProgressRing.d.ts +2 -2
  685. package/lib/typescript/module/components/ProgressRing/index.d.ts +1 -1
  686. package/lib/typescript/module/components/Radio/Radio.d.ts +10 -7
  687. package/lib/typescript/module/components/Radio/RadioGroup.d.ts +3 -3
  688. package/lib/typescript/module/components/Rating/Rating.d.ts +8 -2
  689. package/lib/typescript/module/components/Rating/index.d.ts +2 -2
  690. package/lib/typescript/module/components/Repeater/Repeater.d.ts +16 -6
  691. package/lib/typescript/module/components/Repeater/index.d.ts +2 -2
  692. package/lib/typescript/module/components/RichTextEditor/RichTextEditor.d.ts +4 -0
  693. package/lib/typescript/module/components/RichTextEditor/index.d.ts +2 -2
  694. package/lib/typescript/module/components/ScannerOverlay/ScannerOverlay.d.ts +5 -2
  695. package/lib/typescript/module/components/ScannerOverlay/index.d.ts +1 -1
  696. package/lib/typescript/module/components/Screen/Screen.d.ts +33 -10
  697. package/lib/typescript/module/components/Screen/index.d.ts +1 -1
  698. package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +22 -8
  699. package/lib/typescript/module/components/SearchBar/SearchPanel.d.ts +3 -1
  700. package/lib/typescript/module/components/SearchBar/index.d.ts +2 -2
  701. package/lib/typescript/module/components/SearchBar/useRecentSearches.d.ts +1 -1
  702. package/lib/typescript/module/components/SectionHeader/SectionHeader.d.ts +5 -0
  703. package/lib/typescript/module/components/SectionHeader/index.d.ts +2 -2
  704. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +3 -2
  705. package/lib/typescript/module/components/Select/Select.d.ts +18 -8
  706. package/lib/typescript/module/components/Select/index.d.ts +2 -2
  707. package/lib/typescript/module/components/SignaturePad/SignaturePad.d.ts +3 -2
  708. package/lib/typescript/module/components/SignaturePad/index.d.ts +1 -1
  709. package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +7 -0
  710. package/lib/typescript/module/components/Skeleton/SkeletonContent.d.ts +3 -1
  711. package/lib/typescript/module/components/Skeleton/SkeletonList.d.ts +3 -1
  712. package/lib/typescript/module/components/Skeleton/index.d.ts +2 -2
  713. package/lib/typescript/module/components/SlideToConfirm/SlideToConfirm.d.ts +12 -5
  714. package/lib/typescript/module/components/SlideToConfirm/index.d.ts +2 -2
  715. package/lib/typescript/module/components/Slider/Slider.d.ts +3 -2
  716. package/lib/typescript/module/components/Slider/valueText.d.ts +2 -1
  717. package/lib/typescript/module/components/SliderField/SliderField.d.ts +15 -3
  718. package/lib/typescript/module/components/SliderField/index.d.ts +2 -2
  719. package/lib/typescript/module/components/SortableList/SortableList.d.ts +6 -0
  720. package/lib/typescript/module/components/SortableList/index.d.ts +2 -2
  721. package/lib/typescript/module/components/Sparkline/Sparkline.d.ts +11 -3
  722. package/lib/typescript/module/components/Sparkline/index.d.ts +2 -2
  723. package/lib/typescript/module/components/Spinner/Spinner.d.ts +7 -1
  724. package/lib/typescript/module/components/Spinner/index.d.ts +2 -2
  725. package/lib/typescript/module/components/StatTile/StatTile.d.ts +10 -2
  726. package/lib/typescript/module/components/StatusBadge/StatusBadge.d.ts +6 -4
  727. package/lib/typescript/module/components/StatusBadge/statusMap.d.ts +8 -0
  728. package/lib/typescript/module/components/Stepper/Stepper.d.ts +15 -1
  729. package/lib/typescript/module/components/Stepper/index.d.ts +2 -2
  730. package/lib/typescript/module/components/Swipeable/Swipeable.d.ts +4 -2
  731. package/lib/typescript/module/components/Switch/Switch.d.ts +9 -11
  732. package/lib/typescript/module/components/Tabs/Tabs.d.ts +5 -3
  733. package/lib/typescript/module/components/TagInput/TagInput.d.ts +3 -4
  734. package/lib/typescript/module/components/Text/Text.d.ts +6 -5
  735. package/lib/typescript/module/components/TimePicker/TimePicker.d.ts +17 -4
  736. package/lib/typescript/module/components/TimePicker/index.d.ts +2 -2
  737. package/lib/typescript/module/components/Toast/Toast.d.ts +11 -5
  738. package/lib/typescript/module/components/Toast/ToastProvider.d.ts +15 -14
  739. package/lib/typescript/module/components/Toast/index.d.ts +2 -2
  740. package/lib/typescript/module/components/Tooltip/Tooltip.d.ts +8 -2
  741. package/lib/typescript/module/components/Tooltip/index.d.ts +2 -2
  742. package/lib/typescript/module/components/Tour/Tour.d.ts +7 -5
  743. package/lib/typescript/module/components/Tour/index.d.ts +1 -1
  744. package/lib/typescript/module/components/TypingIndicator/TypingIndicator.d.ts +7 -2
  745. package/lib/typescript/module/components/TypingIndicator/index.d.ts +2 -2
  746. package/lib/typescript/module/components/WheelPicker/WheelPicker.d.ts +13 -6
  747. package/lib/typescript/module/components/WheelPicker/index.d.ts +2 -2
  748. package/lib/typescript/module/components/index.d.ts +125 -119
  749. package/lib/typescript/module/form/HookFormField.d.ts +1 -1
  750. package/lib/typescript/module/form/index.d.ts +0 -8
  751. package/lib/typescript/module/index.d.ts +6 -5
  752. package/lib/typescript/module/navigation/DiscardGuard.d.ts +26 -0
  753. package/lib/typescript/module/navigation/NavigationScreen.d.ts +12 -0
  754. package/lib/typescript/module/navigation/index.d.ts +5 -0
  755. package/lib/typescript/module/theme/index.d.ts +1 -0
  756. package/lib/typescript/module/theme/makeStyles.d.ts +5 -0
  757. package/lib/typescript/module/theme/tokens.generated.d.ts +2 -0
  758. package/lib/typescript/module/theme/types.d.ts +15 -2
  759. package/lib/typescript/module/types/vocabulary.d.ts +10 -0
  760. package/lib/typescript/module/utils/placement.d.ts +2 -0
  761. package/lib/typescript/module/utils/warnInvalidValue.d.ts +1 -1
  762. package/package.json +30 -8
  763. package/lib/commonjs/components/Accordion/Accordion.meta.js +0 -1
  764. package/lib/commonjs/components/Accordion/AccordionGroup.meta.js +0 -1
  765. package/lib/commonjs/components/AmountSlider/AmountSlider.meta.js +0 -1
  766. package/lib/commonjs/components/AnimatePresence/AnimatePresence.meta.js +0 -1
  767. package/lib/commonjs/components/AppBar/AppBar.meta.js +0 -1
  768. package/lib/commonjs/components/AppIcon/AppIcon.meta.js +0 -1
  769. package/lib/commonjs/components/AsyncBlock/AsyncBlock.meta.js +0 -1
  770. package/lib/commonjs/components/AuthedImage/AuthedImage.meta.js +0 -1
  771. package/lib/commonjs/components/Autocomplete/Autocomplete.meta.js +0 -1
  772. package/lib/commonjs/components/Avatar/Avatar.meta.js +0 -1
  773. package/lib/commonjs/components/Avatar/AvatarGroup.meta.js +0 -1
  774. package/lib/commonjs/components/Badge/Badge.meta.js +0 -1
  775. package/lib/commonjs/components/Banner/Banner.meta.js +0 -1
  776. package/lib/commonjs/components/BarChart/BarChart.meta.js +0 -1
  777. package/lib/commonjs/components/BottomNavigation/BottomNavigation.meta.js +0 -1
  778. package/lib/commonjs/components/BottomSheet/BottomSheet.meta.js +0 -1
  779. package/lib/commonjs/components/BottomSheet/useSheetSwap.js +0 -1
  780. package/lib/commonjs/components/Box/Spacer.meta.js +0 -1
  781. package/lib/commonjs/components/Button/Button.meta.js +0 -1
  782. package/lib/commonjs/components/Calendar/Calendar.meta.js +0 -1
  783. package/lib/commonjs/components/Card/Card.meta.js +0 -1
  784. package/lib/commonjs/components/Carousel/Carousel.meta.js +0 -1
  785. package/lib/commonjs/components/Checkbox/Checkbox.meta.js +0 -1
  786. package/lib/commonjs/components/Chip/Chip.meta.js +0 -1
  787. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.meta.js +0 -1
  788. package/lib/commonjs/components/Composer/Composer.meta.js +0 -1
  789. package/lib/commonjs/components/Confetti/Confetti.meta.js +0 -1
  790. package/lib/commonjs/components/DatePicker/DatePicker.meta.js +0 -1
  791. package/lib/commonjs/components/DateRangePicker/DateRangePicker.meta.js +0 -1
  792. package/lib/commonjs/components/DateSeparator/DateSeparator.meta.js +0 -1
  793. package/lib/commonjs/components/DecimalInput/DecimalInput.meta.js +0 -1
  794. package/lib/commonjs/components/Descriptions/Descriptions.meta.js +0 -1
  795. package/lib/commonjs/components/Dialog/Dialog.meta.js +0 -1
  796. package/lib/commonjs/components/Divider/Divider.meta.js +0 -1
  797. package/lib/commonjs/components/Drawer/Drawer.meta.js +0 -1
  798. package/lib/commonjs/components/EmptyState/EmptyState.meta.js +0 -1
  799. package/lib/commonjs/components/FilePicker/FilePicker.meta.js +0 -1
  800. package/lib/commonjs/components/FileViewer/FileViewer.meta.js +0 -1
  801. package/lib/commonjs/components/FilterChipRow/FilterChipRow.meta.js +0 -1
  802. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.meta.js +0 -1
  803. package/lib/commonjs/components/FloatingActionButton/FloatingActionButtonGroup.meta.js +0 -1
  804. package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.meta.js +0 -1
  805. package/lib/commonjs/components/FormField/FormField.meta.js +0 -1
  806. package/lib/commonjs/components/IconBadge/IconBadge.meta.js +0 -1
  807. package/lib/commonjs/components/IconButton/IconButton.meta.js +0 -1
  808. package/lib/commonjs/components/ImageGallery/ImageGallery.meta.js +0 -1
  809. package/lib/commonjs/components/InlineSelect/InlineSelect.meta.js +0 -1
  810. package/lib/commonjs/components/Input/Input.meta.js +0 -1
  811. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.meta.js +0 -1
  812. package/lib/commonjs/components/ListItem/ListItem.meta.js +0 -1
  813. package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.meta.js +0 -1
  814. package/lib/commonjs/components/Markdown/Markdown.meta.js +0 -1
  815. package/lib/commonjs/components/Menu/Menu.meta.js +0 -1
  816. package/lib/commonjs/components/MessageBubble/MessageBubble.meta.js +0 -1
  817. package/lib/commonjs/components/MessageList/MessageList.meta.js +0 -1
  818. package/lib/commonjs/components/Modal/Modal.meta.js +0 -1
  819. package/lib/commonjs/components/Notation/Notation.meta.js +0 -1
  820. package/lib/commonjs/components/NumberInput/NumberInput.meta.js +0 -1
  821. package/lib/commonjs/components/OTPInput/OTPInput.meta.js +0 -1
  822. package/lib/commonjs/components/OnboardingPager/OnboardingPager.meta.js +0 -1
  823. package/lib/commonjs/components/OptionSheet/OptionSheet.meta.js +0 -1
  824. package/lib/commonjs/components/PaymentResult/PaymentResult.js +0 -1
  825. package/lib/commonjs/components/PaymentResult/PaymentResult.meta.js +0 -1
  826. package/lib/commonjs/components/PaymentResult/index.js +0 -1
  827. package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.meta.js +0 -1
  828. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.meta.js +0 -1
  829. package/lib/commonjs/components/PickerTrigger/PickerTrigger.meta.js +0 -1
  830. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.meta.js +0 -1
  831. package/lib/commonjs/components/ProfilePicker/ProfilePicker.meta.js +0 -1
  832. package/lib/commonjs/components/ProgressBar/ProgressBar.meta.js +0 -1
  833. package/lib/commonjs/components/ProgressRing/ProgressRing.meta.js +0 -1
  834. package/lib/commonjs/components/Radio/Radio.meta.js +0 -1
  835. package/lib/commonjs/components/Radio/RadioGroup.meta.js +0 -1
  836. package/lib/commonjs/components/Rating/Rating.meta.js +0 -1
  837. package/lib/commonjs/components/Repeater/Repeater.meta.js +0 -1
  838. package/lib/commonjs/components/RichTextEditor/RichTextEditor.meta.js +0 -1
  839. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.meta.js +0 -1
  840. package/lib/commonjs/components/Screen/Screen.meta.js +0 -1
  841. package/lib/commonjs/components/SearchBar/SearchBar.meta.js +0 -1
  842. package/lib/commonjs/components/SectionHeader/SectionHeader.meta.js +0 -1
  843. package/lib/commonjs/components/SegmentedControl/SegmentedControl.meta.js +0 -1
  844. package/lib/commonjs/components/Select/Select.meta.js +0 -1
  845. package/lib/commonjs/components/SignaturePad/SignaturePad.meta.js +0 -1
  846. package/lib/commonjs/components/Skeleton/Skeleton.meta.js +0 -1
  847. package/lib/commonjs/components/Skeleton/SkeletonCircle.meta.js +0 -1
  848. package/lib/commonjs/components/Skeleton/SkeletonContent.meta.js +0 -1
  849. package/lib/commonjs/components/Skeleton/SkeletonList.meta.js +0 -1
  850. package/lib/commonjs/components/Skeleton/SkeletonText.meta.js +0 -1
  851. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.meta.js +0 -1
  852. package/lib/commonjs/components/Slider/Slider.meta.js +0 -1
  853. package/lib/commonjs/components/SliderField/SliderField.meta.js +0 -1
  854. package/lib/commonjs/components/SortableList/SortableList.meta.js +0 -1
  855. package/lib/commonjs/components/Sparkline/Sparkline.meta.js +0 -1
  856. package/lib/commonjs/components/Spinner/Spinner.meta.js +0 -1
  857. package/lib/commonjs/components/SquircleView/SquircleView.meta.js +0 -1
  858. package/lib/commonjs/components/StatTile/StatTile.meta.js +0 -1
  859. package/lib/commonjs/components/StatusBadge/StatusBadge.meta.js +0 -1
  860. package/lib/commonjs/components/Stepper/Stepper.meta.js +0 -1
  861. package/lib/commonjs/components/Swipeable/Swipeable.meta.js +0 -1
  862. package/lib/commonjs/components/Switch/Switch.meta.js +0 -1
  863. package/lib/commonjs/components/Tabs/Tabs.meta.js +0 -1
  864. package/lib/commonjs/components/TagInput/TagInput.meta.js +0 -1
  865. package/lib/commonjs/components/Text/Text.meta.js +0 -1
  866. package/lib/commonjs/components/TimePicker/TimePicker.meta.js +0 -1
  867. package/lib/commonjs/components/Timeline/Timeline.meta.js +0 -1
  868. package/lib/commonjs/components/Toast/Toast.meta.js +0 -1
  869. package/lib/commonjs/components/Tooltip/Tooltip.meta.js +0 -1
  870. package/lib/commonjs/components/Tour/Tour.meta.js +0 -1
  871. package/lib/commonjs/components/TypingIndicator/TypingIndicator.meta.js +0 -1
  872. package/lib/commonjs/components/WheelPicker/WheelPickerColumns.meta.js +0 -1
  873. package/lib/commonjs/components/WheelPicker/WheelPickerDuration.meta.js +0 -1
  874. package/lib/commonjs/components/WheelPicker/WheelPickerList.meta.js +0 -1
  875. package/lib/commonjs/components/ZoomableImage/ZoomableImage.meta.js +0 -1
  876. package/lib/commonjs/form/FormContext.js +0 -1
  877. package/lib/commonjs/form/equal.js +0 -1
  878. package/lib/commonjs/form/rules.js +0 -1
  879. package/lib/commonjs/form/useField.js +0 -1
  880. package/lib/commonjs/form/useForm.js +0 -1
  881. package/lib/module/components/Accordion/Accordion.meta.js +0 -1
  882. package/lib/module/components/Accordion/AccordionGroup.meta.js +0 -1
  883. package/lib/module/components/AmountSlider/AmountSlider.meta.js +0 -1
  884. package/lib/module/components/AnimatePresence/AnimatePresence.meta.js +0 -1
  885. package/lib/module/components/AppBar/AppBar.meta.js +0 -1
  886. package/lib/module/components/AppIcon/AppIcon.meta.js +0 -1
  887. package/lib/module/components/AsyncBlock/AsyncBlock.meta.js +0 -1
  888. package/lib/module/components/AuthedImage/AuthedImage.meta.js +0 -1
  889. package/lib/module/components/Autocomplete/Autocomplete.meta.js +0 -1
  890. package/lib/module/components/Avatar/Avatar.meta.js +0 -1
  891. package/lib/module/components/Avatar/AvatarGroup.meta.js +0 -1
  892. package/lib/module/components/Badge/Badge.meta.js +0 -1
  893. package/lib/module/components/Banner/Banner.meta.js +0 -1
  894. package/lib/module/components/BarChart/BarChart.meta.js +0 -1
  895. package/lib/module/components/BottomNavigation/BottomNavigation.meta.js +0 -1
  896. package/lib/module/components/BottomSheet/BottomSheet.meta.js +0 -1
  897. package/lib/module/components/BottomSheet/useSheetSwap.js +0 -1
  898. package/lib/module/components/Box/Spacer.meta.js +0 -1
  899. package/lib/module/components/Button/Button.meta.js +0 -1
  900. package/lib/module/components/Calendar/Calendar.meta.js +0 -1
  901. package/lib/module/components/Card/Card.meta.js +0 -1
  902. package/lib/module/components/Carousel/Carousel.meta.js +0 -1
  903. package/lib/module/components/Checkbox/Checkbox.meta.js +0 -1
  904. package/lib/module/components/Chip/Chip.meta.js +0 -1
  905. package/lib/module/components/ChoiceGroup/ChoiceGroup.meta.js +0 -1
  906. package/lib/module/components/Composer/Composer.meta.js +0 -1
  907. package/lib/module/components/Confetti/Confetti.meta.js +0 -1
  908. package/lib/module/components/DatePicker/DatePicker.meta.js +0 -1
  909. package/lib/module/components/DateRangePicker/DateRangePicker.meta.js +0 -1
  910. package/lib/module/components/DateSeparator/DateSeparator.meta.js +0 -1
  911. package/lib/module/components/DecimalInput/DecimalInput.meta.js +0 -1
  912. package/lib/module/components/Descriptions/Descriptions.meta.js +0 -1
  913. package/lib/module/components/Dialog/Dialog.meta.js +0 -1
  914. package/lib/module/components/Divider/Divider.meta.js +0 -1
  915. package/lib/module/components/Drawer/Drawer.meta.js +0 -1
  916. package/lib/module/components/EmptyState/EmptyState.meta.js +0 -1
  917. package/lib/module/components/FilePicker/FilePicker.meta.js +0 -1
  918. package/lib/module/components/FileViewer/FileViewer.meta.js +0 -1
  919. package/lib/module/components/FilterChipRow/FilterChipRow.meta.js +0 -1
  920. package/lib/module/components/FloatingActionButton/FloatingActionButton.meta.js +0 -1
  921. package/lib/module/components/FloatingActionButton/FloatingActionButtonGroup.meta.js +0 -1
  922. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.meta.js +0 -1
  923. package/lib/module/components/FormField/FormField.meta.js +0 -1
  924. package/lib/module/components/IconBadge/IconBadge.meta.js +0 -1
  925. package/lib/module/components/IconButton/IconButton.meta.js +0 -1
  926. package/lib/module/components/ImageGallery/ImageGallery.meta.js +0 -1
  927. package/lib/module/components/InlineSelect/InlineSelect.meta.js +0 -1
  928. package/lib/module/components/Input/Input.meta.js +0 -1
  929. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.meta.js +0 -1
  930. package/lib/module/components/ListItem/ListItem.meta.js +0 -1
  931. package/lib/module/components/LoaderOverlay/LoaderOverlay.meta.js +0 -1
  932. package/lib/module/components/Markdown/Markdown.meta.js +0 -1
  933. package/lib/module/components/Menu/Menu.meta.js +0 -1
  934. package/lib/module/components/MessageBubble/MessageBubble.meta.js +0 -1
  935. package/lib/module/components/MessageList/MessageList.meta.js +0 -1
  936. package/lib/module/components/Modal/Modal.meta.js +0 -1
  937. package/lib/module/components/Notation/Notation.meta.js +0 -1
  938. package/lib/module/components/NumberInput/NumberInput.meta.js +0 -1
  939. package/lib/module/components/OTPInput/OTPInput.meta.js +0 -1
  940. package/lib/module/components/OnboardingPager/OnboardingPager.meta.js +0 -1
  941. package/lib/module/components/OptionSheet/OptionSheet.meta.js +0 -1
  942. package/lib/module/components/PaymentResult/PaymentResult.js +0 -1
  943. package/lib/module/components/PaymentResult/PaymentResult.meta.js +0 -1
  944. package/lib/module/components/PaymentResult/index.js +0 -1
  945. package/lib/module/components/PermissionPrompt/PermissionPrompt.meta.js +0 -1
  946. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.meta.js +0 -1
  947. package/lib/module/components/PickerTrigger/PickerTrigger.meta.js +0 -1
  948. package/lib/module/components/ProfileCompletion/ProfileCompletion.meta.js +0 -1
  949. package/lib/module/components/ProfilePicker/ProfilePicker.meta.js +0 -1
  950. package/lib/module/components/ProgressBar/ProgressBar.meta.js +0 -1
  951. package/lib/module/components/ProgressRing/ProgressRing.meta.js +0 -1
  952. package/lib/module/components/Radio/Radio.meta.js +0 -1
  953. package/lib/module/components/Radio/RadioGroup.meta.js +0 -1
  954. package/lib/module/components/Rating/Rating.meta.js +0 -1
  955. package/lib/module/components/Repeater/Repeater.meta.js +0 -1
  956. package/lib/module/components/RichTextEditor/RichTextEditor.meta.js +0 -1
  957. package/lib/module/components/ScannerOverlay/ScannerOverlay.meta.js +0 -1
  958. package/lib/module/components/Screen/Screen.meta.js +0 -1
  959. package/lib/module/components/SearchBar/SearchBar.meta.js +0 -1
  960. package/lib/module/components/SectionHeader/SectionHeader.meta.js +0 -1
  961. package/lib/module/components/SegmentedControl/SegmentedControl.meta.js +0 -1
  962. package/lib/module/components/Select/Select.meta.js +0 -1
  963. package/lib/module/components/SignaturePad/SignaturePad.meta.js +0 -1
  964. package/lib/module/components/Skeleton/Skeleton.meta.js +0 -1
  965. package/lib/module/components/Skeleton/SkeletonCircle.meta.js +0 -1
  966. package/lib/module/components/Skeleton/SkeletonContent.meta.js +0 -1
  967. package/lib/module/components/Skeleton/SkeletonList.meta.js +0 -1
  968. package/lib/module/components/Skeleton/SkeletonText.meta.js +0 -1
  969. package/lib/module/components/SlideToConfirm/SlideToConfirm.meta.js +0 -1
  970. package/lib/module/components/Slider/Slider.meta.js +0 -1
  971. package/lib/module/components/SliderField/SliderField.meta.js +0 -1
  972. package/lib/module/components/SortableList/SortableList.meta.js +0 -1
  973. package/lib/module/components/Sparkline/Sparkline.meta.js +0 -1
  974. package/lib/module/components/Spinner/Spinner.meta.js +0 -1
  975. package/lib/module/components/SquircleView/SquircleView.meta.js +0 -1
  976. package/lib/module/components/StatTile/StatTile.meta.js +0 -1
  977. package/lib/module/components/StatusBadge/StatusBadge.meta.js +0 -1
  978. package/lib/module/components/Stepper/Stepper.meta.js +0 -1
  979. package/lib/module/components/Swipeable/Swipeable.meta.js +0 -1
  980. package/lib/module/components/Switch/Switch.meta.js +0 -1
  981. package/lib/module/components/Tabs/Tabs.meta.js +0 -1
  982. package/lib/module/components/TagInput/TagInput.meta.js +0 -1
  983. package/lib/module/components/Text/Text.meta.js +0 -1
  984. package/lib/module/components/TimePicker/TimePicker.meta.js +0 -1
  985. package/lib/module/components/Timeline/Timeline.meta.js +0 -1
  986. package/lib/module/components/Toast/Toast.meta.js +0 -1
  987. package/lib/module/components/Tooltip/Tooltip.meta.js +0 -1
  988. package/lib/module/components/Tour/Tour.meta.js +0 -1
  989. package/lib/module/components/TypingIndicator/TypingIndicator.meta.js +0 -1
  990. package/lib/module/components/WheelPicker/WheelPickerColumns.meta.js +0 -1
  991. package/lib/module/components/WheelPicker/WheelPickerDuration.meta.js +0 -1
  992. package/lib/module/components/WheelPicker/WheelPickerList.meta.js +0 -1
  993. package/lib/module/components/ZoomableImage/ZoomableImage.meta.js +0 -1
  994. package/lib/module/form/FormContext.js +0 -1
  995. package/lib/module/form/equal.js +0 -1
  996. package/lib/module/form/rules.js +0 -1
  997. package/lib/module/form/useField.js +0 -1
  998. package/lib/module/form/useForm.js +0 -1
  999. package/lib/typescript/commonjs/components/Accordion/Accordion.meta.d.ts +0 -3
  1000. package/lib/typescript/commonjs/components/Accordion/AccordionGroup.meta.d.ts +0 -3
  1001. package/lib/typescript/commonjs/components/AmountSlider/AmountSlider.meta.d.ts +0 -3
  1002. package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.meta.d.ts +0 -3
  1003. package/lib/typescript/commonjs/components/AppBar/AppBar.meta.d.ts +0 -3
  1004. package/lib/typescript/commonjs/components/AppIcon/AppIcon.meta.d.ts +0 -3
  1005. package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.meta.d.ts +0 -3
  1006. package/lib/typescript/commonjs/components/AuthedImage/AuthedImage.meta.d.ts +0 -5
  1007. package/lib/typescript/commonjs/components/Autocomplete/Autocomplete.meta.d.ts +0 -3
  1008. package/lib/typescript/commonjs/components/Avatar/Avatar.meta.d.ts +0 -3
  1009. package/lib/typescript/commonjs/components/Avatar/AvatarGroup.meta.d.ts +0 -3
  1010. package/lib/typescript/commonjs/components/Badge/Badge.meta.d.ts +0 -3
  1011. package/lib/typescript/commonjs/components/Banner/Banner.meta.d.ts +0 -3
  1012. package/lib/typescript/commonjs/components/BarChart/BarChart.meta.d.ts +0 -3
  1013. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.meta.d.ts +0 -3
  1014. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.meta.d.ts +0 -3
  1015. package/lib/typescript/commonjs/components/BottomSheet/useSheetSwap.d.ts +0 -24
  1016. package/lib/typescript/commonjs/components/Box/Spacer.meta.d.ts +0 -3
  1017. package/lib/typescript/commonjs/components/Button/Button.meta.d.ts +0 -3
  1018. package/lib/typescript/commonjs/components/Calendar/Calendar.meta.d.ts +0 -3
  1019. package/lib/typescript/commonjs/components/Card/Card.meta.d.ts +0 -3
  1020. package/lib/typescript/commonjs/components/Carousel/Carousel.meta.d.ts +0 -3
  1021. package/lib/typescript/commonjs/components/Checkbox/Checkbox.meta.d.ts +0 -3
  1022. package/lib/typescript/commonjs/components/Chip/Chip.meta.d.ts +0 -3
  1023. package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.meta.d.ts +0 -3
  1024. package/lib/typescript/commonjs/components/Composer/Composer.meta.d.ts +0 -3
  1025. package/lib/typescript/commonjs/components/Confetti/Confetti.meta.d.ts +0 -3
  1026. package/lib/typescript/commonjs/components/DatePicker/DatePicker.meta.d.ts +0 -3
  1027. package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.meta.d.ts +0 -3
  1028. package/lib/typescript/commonjs/components/DateSeparator/DateSeparator.meta.d.ts +0 -3
  1029. package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.meta.d.ts +0 -3
  1030. package/lib/typescript/commonjs/components/Descriptions/Descriptions.meta.d.ts +0 -3
  1031. package/lib/typescript/commonjs/components/Dialog/Dialog.meta.d.ts +0 -3
  1032. package/lib/typescript/commonjs/components/Divider/Divider.meta.d.ts +0 -3
  1033. package/lib/typescript/commonjs/components/Drawer/Drawer.meta.d.ts +0 -3
  1034. package/lib/typescript/commonjs/components/EmptyState/EmptyState.meta.d.ts +0 -3
  1035. package/lib/typescript/commonjs/components/FilePicker/FilePicker.meta.d.ts +0 -3
  1036. package/lib/typescript/commonjs/components/FileViewer/FileViewer.meta.d.ts +0 -3
  1037. package/lib/typescript/commonjs/components/FilterChipRow/FilterChipRow.meta.d.ts +0 -3
  1038. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButton.meta.d.ts +0 -3
  1039. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButtonGroup.meta.d.ts +0 -3
  1040. package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.meta.d.ts +0 -3
  1041. package/lib/typescript/commonjs/components/FormField/FormField.meta.d.ts +0 -3
  1042. package/lib/typescript/commonjs/components/IconBadge/IconBadge.meta.d.ts +0 -3
  1043. package/lib/typescript/commonjs/components/IconButton/IconButton.meta.d.ts +0 -3
  1044. package/lib/typescript/commonjs/components/ImageGallery/ImageGallery.meta.d.ts +0 -3
  1045. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.meta.d.ts +0 -3
  1046. package/lib/typescript/commonjs/components/Input/Input.meta.d.ts +0 -3
  1047. package/lib/typescript/commonjs/components/KeyboardToolbar/KeyboardToolbar.meta.d.ts +0 -3
  1048. package/lib/typescript/commonjs/components/ListItem/ListItem.meta.d.ts +0 -3
  1049. package/lib/typescript/commonjs/components/LoaderOverlay/LoaderOverlay.meta.d.ts +0 -3
  1050. package/lib/typescript/commonjs/components/Markdown/Markdown.meta.d.ts +0 -3
  1051. package/lib/typescript/commonjs/components/Menu/Menu.meta.d.ts +0 -3
  1052. package/lib/typescript/commonjs/components/MessageBubble/MessageBubble.meta.d.ts +0 -3
  1053. package/lib/typescript/commonjs/components/MessageList/MessageList.meta.d.ts +0 -5
  1054. package/lib/typescript/commonjs/components/Modal/Modal.meta.d.ts +0 -3
  1055. package/lib/typescript/commonjs/components/Notation/Notation.meta.d.ts +0 -3
  1056. package/lib/typescript/commonjs/components/NumberInput/NumberInput.meta.d.ts +0 -3
  1057. package/lib/typescript/commonjs/components/OTPInput/OTPInput.meta.d.ts +0 -3
  1058. package/lib/typescript/commonjs/components/OnboardingPager/OnboardingPager.meta.d.ts +0 -3
  1059. package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.meta.d.ts +0 -3
  1060. package/lib/typescript/commonjs/components/PaymentResult/PaymentResult.d.ts +0 -71
  1061. package/lib/typescript/commonjs/components/PaymentResult/PaymentResult.meta.d.ts +0 -3
  1062. package/lib/typescript/commonjs/components/PaymentResult/index.d.ts +0 -3
  1063. package/lib/typescript/commonjs/components/PermissionPrompt/PermissionPrompt.meta.d.ts +0 -3
  1064. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.meta.d.ts +0 -3
  1065. package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.meta.d.ts +0 -3
  1066. package/lib/typescript/commonjs/components/ProfileCompletion/ProfileCompletion.meta.d.ts +0 -3
  1067. package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.meta.d.ts +0 -3
  1068. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.meta.d.ts +0 -3
  1069. package/lib/typescript/commonjs/components/ProgressRing/ProgressRing.meta.d.ts +0 -3
  1070. package/lib/typescript/commonjs/components/Radio/Radio.meta.d.ts +0 -3
  1071. package/lib/typescript/commonjs/components/Radio/RadioGroup.meta.d.ts +0 -3
  1072. package/lib/typescript/commonjs/components/Rating/Rating.meta.d.ts +0 -3
  1073. package/lib/typescript/commonjs/components/Repeater/Repeater.meta.d.ts +0 -3
  1074. package/lib/typescript/commonjs/components/RichTextEditor/RichTextEditor.meta.d.ts +0 -3
  1075. package/lib/typescript/commonjs/components/ScannerOverlay/ScannerOverlay.meta.d.ts +0 -3
  1076. package/lib/typescript/commonjs/components/Screen/Screen.meta.d.ts +0 -3
  1077. package/lib/typescript/commonjs/components/SearchBar/SearchBar.meta.d.ts +0 -3
  1078. package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.meta.d.ts +0 -3
  1079. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.meta.d.ts +0 -3
  1080. package/lib/typescript/commonjs/components/Select/Select.meta.d.ts +0 -3
  1081. package/lib/typescript/commonjs/components/SignaturePad/SignaturePad.meta.d.ts +0 -3
  1082. package/lib/typescript/commonjs/components/Skeleton/Skeleton.meta.d.ts +0 -3
  1083. package/lib/typescript/commonjs/components/Skeleton/SkeletonCircle.meta.d.ts +0 -3
  1084. package/lib/typescript/commonjs/components/Skeleton/SkeletonContent.meta.d.ts +0 -3
  1085. package/lib/typescript/commonjs/components/Skeleton/SkeletonList.meta.d.ts +0 -3
  1086. package/lib/typescript/commonjs/components/Skeleton/SkeletonText.meta.d.ts +0 -3
  1087. package/lib/typescript/commonjs/components/SlideToConfirm/SlideToConfirm.meta.d.ts +0 -3
  1088. package/lib/typescript/commonjs/components/Slider/Slider.meta.d.ts +0 -3
  1089. package/lib/typescript/commonjs/components/SliderField/SliderField.meta.d.ts +0 -3
  1090. package/lib/typescript/commonjs/components/SortableList/SortableList.meta.d.ts +0 -3
  1091. package/lib/typescript/commonjs/components/Sparkline/Sparkline.meta.d.ts +0 -3
  1092. package/lib/typescript/commonjs/components/Spinner/Spinner.meta.d.ts +0 -3
  1093. package/lib/typescript/commonjs/components/SquircleView/SquircleView.meta.d.ts +0 -2
  1094. package/lib/typescript/commonjs/components/StatTile/StatTile.meta.d.ts +0 -3
  1095. package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.meta.d.ts +0 -3
  1096. package/lib/typescript/commonjs/components/Stepper/Stepper.meta.d.ts +0 -3
  1097. package/lib/typescript/commonjs/components/Swipeable/Swipeable.meta.d.ts +0 -3
  1098. package/lib/typescript/commonjs/components/Switch/Switch.meta.d.ts +0 -3
  1099. package/lib/typescript/commonjs/components/Tabs/Tabs.meta.d.ts +0 -3
  1100. package/lib/typescript/commonjs/components/TagInput/TagInput.meta.d.ts +0 -3
  1101. package/lib/typescript/commonjs/components/Text/Text.meta.d.ts +0 -3
  1102. package/lib/typescript/commonjs/components/TimePicker/TimePicker.meta.d.ts +0 -3
  1103. package/lib/typescript/commonjs/components/Timeline/Timeline.meta.d.ts +0 -3
  1104. package/lib/typescript/commonjs/components/Toast/Toast.meta.d.ts +0 -3
  1105. package/lib/typescript/commonjs/components/Tooltip/Tooltip.meta.d.ts +0 -3
  1106. package/lib/typescript/commonjs/components/Tour/Tour.meta.d.ts +0 -3
  1107. package/lib/typescript/commonjs/components/TypingIndicator/TypingIndicator.meta.d.ts +0 -3
  1108. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerColumns.meta.d.ts +0 -3
  1109. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerDuration.meta.d.ts +0 -3
  1110. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerList.meta.d.ts +0 -3
  1111. package/lib/typescript/commonjs/components/ZoomableImage/ZoomableImage.meta.d.ts +0 -3
  1112. package/lib/typescript/commonjs/form/FormContext.d.ts +0 -36
  1113. package/lib/typescript/commonjs/form/equal.d.ts +0 -9
  1114. package/lib/typescript/commonjs/form/rules.d.ts +0 -37
  1115. package/lib/typescript/commonjs/form/types.d.ts +0 -94
  1116. package/lib/typescript/commonjs/form/useField.d.ts +0 -33
  1117. package/lib/typescript/commonjs/form/useForm.d.ts +0 -14
  1118. package/lib/typescript/module/components/Accordion/Accordion.meta.d.ts +0 -3
  1119. package/lib/typescript/module/components/Accordion/AccordionGroup.meta.d.ts +0 -3
  1120. package/lib/typescript/module/components/AmountSlider/AmountSlider.meta.d.ts +0 -3
  1121. package/lib/typescript/module/components/AnimatePresence/AnimatePresence.meta.d.ts +0 -3
  1122. package/lib/typescript/module/components/AppBar/AppBar.meta.d.ts +0 -3
  1123. package/lib/typescript/module/components/AppIcon/AppIcon.meta.d.ts +0 -3
  1124. package/lib/typescript/module/components/AsyncBlock/AsyncBlock.meta.d.ts +0 -3
  1125. package/lib/typescript/module/components/AuthedImage/AuthedImage.meta.d.ts +0 -5
  1126. package/lib/typescript/module/components/Autocomplete/Autocomplete.meta.d.ts +0 -3
  1127. package/lib/typescript/module/components/Avatar/Avatar.meta.d.ts +0 -3
  1128. package/lib/typescript/module/components/Avatar/AvatarGroup.meta.d.ts +0 -3
  1129. package/lib/typescript/module/components/Badge/Badge.meta.d.ts +0 -3
  1130. package/lib/typescript/module/components/Banner/Banner.meta.d.ts +0 -3
  1131. package/lib/typescript/module/components/BarChart/BarChart.meta.d.ts +0 -3
  1132. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.meta.d.ts +0 -3
  1133. package/lib/typescript/module/components/BottomSheet/BottomSheet.meta.d.ts +0 -3
  1134. package/lib/typescript/module/components/BottomSheet/useSheetSwap.d.ts +0 -24
  1135. package/lib/typescript/module/components/Box/Spacer.meta.d.ts +0 -3
  1136. package/lib/typescript/module/components/Button/Button.meta.d.ts +0 -3
  1137. package/lib/typescript/module/components/Calendar/Calendar.meta.d.ts +0 -3
  1138. package/lib/typescript/module/components/Card/Card.meta.d.ts +0 -3
  1139. package/lib/typescript/module/components/Carousel/Carousel.meta.d.ts +0 -3
  1140. package/lib/typescript/module/components/Checkbox/Checkbox.meta.d.ts +0 -3
  1141. package/lib/typescript/module/components/Chip/Chip.meta.d.ts +0 -3
  1142. package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.meta.d.ts +0 -3
  1143. package/lib/typescript/module/components/Composer/Composer.meta.d.ts +0 -3
  1144. package/lib/typescript/module/components/Confetti/Confetti.meta.d.ts +0 -3
  1145. package/lib/typescript/module/components/DatePicker/DatePicker.meta.d.ts +0 -3
  1146. package/lib/typescript/module/components/DateRangePicker/DateRangePicker.meta.d.ts +0 -3
  1147. package/lib/typescript/module/components/DateSeparator/DateSeparator.meta.d.ts +0 -3
  1148. package/lib/typescript/module/components/DecimalInput/DecimalInput.meta.d.ts +0 -3
  1149. package/lib/typescript/module/components/Descriptions/Descriptions.meta.d.ts +0 -3
  1150. package/lib/typescript/module/components/Dialog/Dialog.meta.d.ts +0 -3
  1151. package/lib/typescript/module/components/Divider/Divider.meta.d.ts +0 -3
  1152. package/lib/typescript/module/components/Drawer/Drawer.meta.d.ts +0 -3
  1153. package/lib/typescript/module/components/EmptyState/EmptyState.meta.d.ts +0 -3
  1154. package/lib/typescript/module/components/FilePicker/FilePicker.meta.d.ts +0 -3
  1155. package/lib/typescript/module/components/FileViewer/FileViewer.meta.d.ts +0 -3
  1156. package/lib/typescript/module/components/FilterChipRow/FilterChipRow.meta.d.ts +0 -3
  1157. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButton.meta.d.ts +0 -3
  1158. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButtonGroup.meta.d.ts +0 -3
  1159. package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.meta.d.ts +0 -3
  1160. package/lib/typescript/module/components/FormField/FormField.meta.d.ts +0 -3
  1161. package/lib/typescript/module/components/IconBadge/IconBadge.meta.d.ts +0 -3
  1162. package/lib/typescript/module/components/IconButton/IconButton.meta.d.ts +0 -3
  1163. package/lib/typescript/module/components/ImageGallery/ImageGallery.meta.d.ts +0 -3
  1164. package/lib/typescript/module/components/InlineSelect/InlineSelect.meta.d.ts +0 -3
  1165. package/lib/typescript/module/components/Input/Input.meta.d.ts +0 -3
  1166. package/lib/typescript/module/components/KeyboardToolbar/KeyboardToolbar.meta.d.ts +0 -3
  1167. package/lib/typescript/module/components/ListItem/ListItem.meta.d.ts +0 -3
  1168. package/lib/typescript/module/components/LoaderOverlay/LoaderOverlay.meta.d.ts +0 -3
  1169. package/lib/typescript/module/components/Markdown/Markdown.meta.d.ts +0 -3
  1170. package/lib/typescript/module/components/Menu/Menu.meta.d.ts +0 -3
  1171. package/lib/typescript/module/components/MessageBubble/MessageBubble.meta.d.ts +0 -3
  1172. package/lib/typescript/module/components/MessageList/MessageList.meta.d.ts +0 -5
  1173. package/lib/typescript/module/components/Modal/Modal.meta.d.ts +0 -3
  1174. package/lib/typescript/module/components/Notation/Notation.meta.d.ts +0 -3
  1175. package/lib/typescript/module/components/NumberInput/NumberInput.meta.d.ts +0 -3
  1176. package/lib/typescript/module/components/OTPInput/OTPInput.meta.d.ts +0 -3
  1177. package/lib/typescript/module/components/OnboardingPager/OnboardingPager.meta.d.ts +0 -3
  1178. package/lib/typescript/module/components/OptionSheet/OptionSheet.meta.d.ts +0 -3
  1179. package/lib/typescript/module/components/PaymentResult/PaymentResult.d.ts +0 -71
  1180. package/lib/typescript/module/components/PaymentResult/PaymentResult.meta.d.ts +0 -3
  1181. package/lib/typescript/module/components/PaymentResult/index.d.ts +0 -3
  1182. package/lib/typescript/module/components/PermissionPrompt/PermissionPrompt.meta.d.ts +0 -3
  1183. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.meta.d.ts +0 -3
  1184. package/lib/typescript/module/components/PickerTrigger/PickerTrigger.meta.d.ts +0 -3
  1185. package/lib/typescript/module/components/ProfileCompletion/ProfileCompletion.meta.d.ts +0 -3
  1186. package/lib/typescript/module/components/ProfilePicker/ProfilePicker.meta.d.ts +0 -3
  1187. package/lib/typescript/module/components/ProgressBar/ProgressBar.meta.d.ts +0 -3
  1188. package/lib/typescript/module/components/ProgressRing/ProgressRing.meta.d.ts +0 -3
  1189. package/lib/typescript/module/components/Radio/Radio.meta.d.ts +0 -3
  1190. package/lib/typescript/module/components/Radio/RadioGroup.meta.d.ts +0 -3
  1191. package/lib/typescript/module/components/Rating/Rating.meta.d.ts +0 -3
  1192. package/lib/typescript/module/components/Repeater/Repeater.meta.d.ts +0 -3
  1193. package/lib/typescript/module/components/RichTextEditor/RichTextEditor.meta.d.ts +0 -3
  1194. package/lib/typescript/module/components/ScannerOverlay/ScannerOverlay.meta.d.ts +0 -3
  1195. package/lib/typescript/module/components/Screen/Screen.meta.d.ts +0 -3
  1196. package/lib/typescript/module/components/SearchBar/SearchBar.meta.d.ts +0 -3
  1197. package/lib/typescript/module/components/SectionHeader/SectionHeader.meta.d.ts +0 -3
  1198. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.meta.d.ts +0 -3
  1199. package/lib/typescript/module/components/Select/Select.meta.d.ts +0 -3
  1200. package/lib/typescript/module/components/SignaturePad/SignaturePad.meta.d.ts +0 -3
  1201. package/lib/typescript/module/components/Skeleton/Skeleton.meta.d.ts +0 -3
  1202. package/lib/typescript/module/components/Skeleton/SkeletonCircle.meta.d.ts +0 -3
  1203. package/lib/typescript/module/components/Skeleton/SkeletonContent.meta.d.ts +0 -3
  1204. package/lib/typescript/module/components/Skeleton/SkeletonList.meta.d.ts +0 -3
  1205. package/lib/typescript/module/components/Skeleton/SkeletonText.meta.d.ts +0 -3
  1206. package/lib/typescript/module/components/SlideToConfirm/SlideToConfirm.meta.d.ts +0 -3
  1207. package/lib/typescript/module/components/Slider/Slider.meta.d.ts +0 -3
  1208. package/lib/typescript/module/components/SliderField/SliderField.meta.d.ts +0 -3
  1209. package/lib/typescript/module/components/SortableList/SortableList.meta.d.ts +0 -3
  1210. package/lib/typescript/module/components/Sparkline/Sparkline.meta.d.ts +0 -3
  1211. package/lib/typescript/module/components/Spinner/Spinner.meta.d.ts +0 -3
  1212. package/lib/typescript/module/components/SquircleView/SquircleView.meta.d.ts +0 -2
  1213. package/lib/typescript/module/components/StatTile/StatTile.meta.d.ts +0 -3
  1214. package/lib/typescript/module/components/StatusBadge/StatusBadge.meta.d.ts +0 -3
  1215. package/lib/typescript/module/components/Stepper/Stepper.meta.d.ts +0 -3
  1216. package/lib/typescript/module/components/Swipeable/Swipeable.meta.d.ts +0 -3
  1217. package/lib/typescript/module/components/Switch/Switch.meta.d.ts +0 -3
  1218. package/lib/typescript/module/components/Tabs/Tabs.meta.d.ts +0 -3
  1219. package/lib/typescript/module/components/TagInput/TagInput.meta.d.ts +0 -3
  1220. package/lib/typescript/module/components/Text/Text.meta.d.ts +0 -3
  1221. package/lib/typescript/module/components/TimePicker/TimePicker.meta.d.ts +0 -3
  1222. package/lib/typescript/module/components/Timeline/Timeline.meta.d.ts +0 -3
  1223. package/lib/typescript/module/components/Toast/Toast.meta.d.ts +0 -3
  1224. package/lib/typescript/module/components/Tooltip/Tooltip.meta.d.ts +0 -3
  1225. package/lib/typescript/module/components/Tour/Tour.meta.d.ts +0 -3
  1226. package/lib/typescript/module/components/TypingIndicator/TypingIndicator.meta.d.ts +0 -3
  1227. package/lib/typescript/module/components/WheelPicker/WheelPickerColumns.meta.d.ts +0 -3
  1228. package/lib/typescript/module/components/WheelPicker/WheelPickerDuration.meta.d.ts +0 -3
  1229. package/lib/typescript/module/components/WheelPicker/WheelPickerList.meta.d.ts +0 -3
  1230. package/lib/typescript/module/components/ZoomableImage/ZoomableImage.meta.d.ts +0 -3
  1231. package/lib/typescript/module/form/FormContext.d.ts +0 -36
  1232. package/lib/typescript/module/form/equal.d.ts +0 -9
  1233. package/lib/typescript/module/form/rules.d.ts +0 -37
  1234. package/lib/typescript/module/form/types.d.ts +0 -94
  1235. package/lib/typescript/module/form/useField.d.ts +0 -33
  1236. package/lib/typescript/module/form/useForm.d.ts +0 -14
  1237. /package/lib/commonjs/{form/types.js → types/vocabulary.js} +0 -0
  1238. /package/lib/module/{form/types.js → types/vocabulary.js} +0 -0
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{AppIcon}from"../AppIcon/AppIcon.js";import{Text as ThemedText}from"../Text/Text.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const ACTION_BUTTON_SIZE=44,DOT_OFFSET=10,DOT_SIZE=8,BADGE_OFFSET=4,variantSize=(e,t)=>{switch(t){case"compact":return{height:44,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1,subtitleLines:1};case"large":return{height:96,titleSize:e.text["2xl"].size,titleWeight:"bold",alignBottom:!0,subtitleLines:2};default:return{height:56,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1,subtitleLines:1}}},ActionButton=({action:e,side:t,badgeStyle:i,haptic:n,flush:o})=>{const l=useTheme(),{style:s,pressIn:r,pressOut:a}=usePressAnimation({enabled:!0}),c=useMemo(()=>buildActionStyles(l),[l]),d=e.badge,u=void 0!==d&&0!==d,p=void 0!==e.text;return _jsx(Animated.View,{style:s,children:_jsxs(Pressable,{onPress:()=>{const t=resolveHaptic(n,"selection");t&&triggerHaptic(t),e.onPress()},onPressIn:r,onPressOut:a,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.text,testID:e.testID,android_ripple:{color:l.colors["surface-pressed"],borderless:!p},style:({pressed:e})=>[p?c.textButton:c.actionButton,o?null:"left"===t?c.actionLeft:c.actionRight,e&&!p?c.actionPressed:null,e&&p?c.textPressed:null],children:[p?_jsx(Text,{style:c.actionText,numberOfLines:1,children:e.text}):_jsx(View,{style:c.iconWrap,children:e.icon}),u?_jsx(View,{style:[c.badge,i],pointerEvents:"none",children:_jsx(Text,{style:c.badgeText,numberOfLines:1,children:String(d)})}):null,e.dot?_jsx(View,{testID:e.testID?`${e.testID}-dot`:"appbar-action-dot",style:c.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=forwardRef((e,t)=>{const{title:i,subtitle:n,titleAlignment:o="left",leftAction:l,rightActions:s,leading:r,trailing:a,onBack:c,gutter:d,titleVariant:u,titleOffset:p,height:m,divider:g,variant:h="default",transparent:x=!1,scrollY:f,style:b,containerStyle:y,titleStyle:S,subtitleStyle:A,badgeStyle:j,haptic:_,testID:w}=e,T=useTheme(),B=useSafeAreaInsets(),I=useMemo(()=>variantSize(T,h),[T,h]),C=useMemo(()=>buildStyles(T),[T]),R="large"===h&&void 0!==f,L=l??(c?{icon:_jsx(AppIcon,{name:"arrow-left",size:24,color:T.colors["text-body"]}),onPress:c,accessibilityLabel:"Back"}:void 0),v=a?void 0:s?.[s.length-1],opticalInset=e=>void 0===e?0:void 0!==e.text?T.space.sm:Math.max(10,0),z=void 0===d?null:{paddingLeft:Math.max(d-opticalInset(L),0),paddingRight:Math.max(d-opticalInset(v),0)},V=void 0!==p,O=Boolean(L)||Boolean(r),W=g??!x,P=StyleSheet.hairlineWidth,D=useMemo(()=>{if(!f)return null;const e={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:f.interpolate({...e,outputRange:[1,.71]}),titleTranslateY:f.interpolate({...e,outputRange:[0,-20]}),titleTranslateX:f.interpolate({...e,outputRange:"center"===o?[0,0]:[0,8]}),subtitleOpacity:f.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:f.interpolate({...e,outputRange:[96,56]}),borderOpacity:f.interpolate({...e,outputRange:[0,1]})}},[f,o]),E=R&&D?{transform:[{translateX:D.titleTranslateX},{translateY:D.titleTranslateY},{scale:D.titleScale}]}:null,H=i?u?_jsx(Animated.View,{style:E,children:_jsx(ThemedText,{variant:u,align:"center"===o?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,S],children:i})}):_jsx(Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:I.titleSize,fontWeight:T.weight[I.titleWeight],textAlign:"center"===o?"center":"left"},E,S],numberOfLines:1,children:i}):null,k=n?_jsx(Animated.Text,{style:[C.subtitle,{textAlign:"center"===o?"center":"left"},R&&D?{opacity:D.subtitleOpacity}:null,A],numberOfLines:I.subtitleLines,children:n}):null,M=_jsxs(View,{style:[C.titleColumn,"center"===o?C.titleColumnCenter:null,I.alignBottom?C.titleColumnBottom:null],children:[H,k]}),N=R?Animated.View:View,F=R&&D?{height:Animated.add(D.barHeight,new Animated.Value(B.top))}:{height:(m??I.height)+B.top};return _jsxs(N,{ref:t,testID:w,style:[C.root,{paddingTop:B.top,backgroundColor:x?"transparent":T.colors.surface},F,!R&&W?{borderBottomWidth:P,borderBottomColor:T.colors.border}:null,b,y],children:[R&&D&&W?_jsx(Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:T.colors.border,opacity:D.borderOpacity}]}):null,_jsxs(View,{style:[C.row,I.alignBottom?C.rowAlignBottom:null,z,{flex:1}],children:[_jsxs(View,{style:[C.sideSlot,V?C.sideSlotCompact:null],children:[L?_jsx(ActionButton,{action:L,side:"left",haptic:_,flush:V}):null,null!=r&&!1!==r?_jsx(View,{style:C.slotNode,children:r}):null]}),_jsx(View,{pointerEvents:"none",style:[C.center,"center"===o?C.centerAligned:C.centerLeft,V?{paddingLeft:O?p:T.space.none,paddingRight:T.space.none}:null],children:M}),_jsxs(View,{style:[C.sideSlot,C.sideSlotRight,V?C.sideSlotCompact:null],children:[s?.map((e,t)=>_jsx(ActionButton,{action:e,side:"right",badgeStyle:j,haptic:_,flush:V},`appbar-right-${t}`)),null!=a&&!1!==a?_jsx(View,{style:C.slotNode,children:a}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=e=>StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.space.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:e.space.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},slotNode:{flexDirection:"row",alignItems:"center"},center:{flex:1,minWidth:0,paddingHorizontal:e.space.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column",maxWidth:"100%"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:e.colors["text-body"]},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:e.space.xxs,color:e.colors["text-subtle"],fontSize:e.text.sm.size,fontWeight:e.weight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:StyleSheet.hairlineWidth}}),buildActionStyles=e=>StyleSheet.create({actionButton:{width:44,height:44,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:e.space.xs},actionRight:{marginLeft:e.space.xs},actionPressed:{backgroundColor:e.colors["surface-pressed"]},textButton:{minWidth:44,minHeight:44,paddingHorizontal:e.space.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},actionText:{color:e.colors.link,fontSize:e.text.base.size,...fontFor(e,"semibold")},dot:{position:"absolute",top:10,right:10,width:8,height:8,borderRadius:e.radius.pill,backgroundColor:e.colors.danger},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:4,right:4,minWidth:16,height:16,paddingHorizontal:e.space.xs,borderRadius:e.radius.pill,...smoothCorners,backgroundColor:e.colors.danger,alignItems:"center",justifyContent:"center"},badgeText:{color:e.colors["on-danger"],fontSize:e.text.xs.size,fontWeight:e.weight.semibold,lineHeight:13}});export{AppBar};export default AppBar;
1
+ "use strict";import{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{AppIcon}from"../AppIcon/AppIcon.js";import{Text as ThemedText}from"../Text/Text.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const ACTION_BUTTON_SIZE=44,DOT_OFFSET=10,DOT_SIZE=8,BADGE_OFFSET=4;export const DEFAULT_APP_BAR_LABELS=Object.freeze({back:"Back"});const variantSize=(e,t)=>{switch(t){case"compact":return{height:44,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1,subtitleLines:1};case"large":return{height:96,titleSize:e.text["2xl"].size,titleWeight:"bold",alignBottom:!0,subtitleLines:2};default:return{height:56,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1,subtitleLines:1}}},ActionButton=({action:e,side:t,badgeStyle:i,haptic:n,flush:l})=>{const o=useTheme(),{style:s,pressIn:r,pressOut:a}=usePressAnimation({enabled:!0}),c=useMemo(()=>buildActionStyles(o),[o]),d=e.badge,u=void 0!==d&&0!==d,p=void 0!==e.label;return _jsx(Animated.View,{style:s,children:_jsxs(Pressable,{onPress:()=>{const t=resolveHaptic(n,"selection");t&&triggerHaptic(t),e.onPress()},onPressIn:r,onPressOut:a,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,testID:e.testID,android_ripple:{color:o.colors["surface-pressed"],borderless:!p},style:({pressed:e})=>[p?c.textButton:c.actionButton,l?null:"left"===t?c.actionLeft:c.actionRight,e&&!p?c.actionPressed:null,e&&p?c.textPressed:null],children:[p?_jsx(ThemedText,{variant:"body",weight:"semibold",color:"link",numberOfLines:1,children:e.label}):_jsx(View,{style:c.iconWrap,children:e.icon}),u?_jsx(View,{style:[c.badge,i],pointerEvents:"none",children:_jsx(ThemedText,{variant:"caption",weight:"semibold",numberOfLines:1,style:c.badgeText,children:String(d)})}):null,e.dot?_jsx(View,{testID:e.testID?`${e.testID}-dot`:"appbar-action-dot",style:c.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=forwardRef((e,t)=>{const{title:i,subtitle:n,titleAlignment:l="left",leftAction:o,rightActions:s,leading:r,trailing:a,onBack:c,gutter:d,titleVariant:u,titleOffset:p,height:m,divider:g,variant:h="default",transparent:x=!1,scrollY:b,style:f,containerStyle:y,titleStyle:A,subtitleStyle:S,badgeStyle:j,haptic:_,labels:w,testID:B}=e;warnInvalidValue("AppBar","variant",e.variant,["default","large","compact"]),warnInvalidValue("AppBar","titleAlignment",e.titleAlignment,["left","center"]);const T=useMemo(()=>({...DEFAULT_APP_BAR_LABELS,...w}),[w]),I=useTheme(),v=useSafeAreaInsets(),L=useMemo(()=>variantSize(I,h),[I,h]),C=useMemo(()=>buildStyles(I),[I]),R="large"===h&&void 0!==b,V=o??(c?{icon:_jsx(AppIcon,{name:"arrow-left",size:24,color:I.colors["text-body"]}),onPress:c,accessibilityLabel:T.back}:void 0),z=a?void 0:s?.[s.length-1],opticalInset=e=>void 0===e?0:void 0!==e.label?I.space.sm:Math.max(10,0),O=void 0===d?null:{paddingLeft:Math.max(d-opticalInset(V),0),paddingRight:Math.max(d-opticalInset(z),0)},P=void 0!==p,E=Boolean(V)||Boolean(r),W=g??!x,D=StyleSheet.hairlineWidth,H=useMemo(()=>{if(!b)return null;const e={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:b.interpolate({...e,outputRange:[1,.71]}),titleTranslateY:b.interpolate({...e,outputRange:[0,-20]}),titleTranslateX:b.interpolate({...e,outputRange:"center"===l?[0,0]:[0,8]}),subtitleOpacity:b.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:b.interpolate({...e,outputRange:[96,56]}),borderOpacity:b.interpolate({...e,outputRange:[0,1]})}},[b,l]),k=R&&H?{transform:[{translateX:H.titleTranslateX},{translateY:H.titleTranslateY},{scale:H.titleScale}]}:null,M=i?u?_jsx(Animated.View,{style:k,children:_jsx(ThemedText,{variant:u,align:"center"===l?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,A],children:i})}):_jsx(Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:L.titleSize,fontWeight:I.weight[L.titleWeight],textAlign:"center"===l?"center":"left"},k,A],numberOfLines:1,children:i}):null,N=n?_jsx(Animated.Text,{style:[C.subtitle,{textAlign:"center"===l?"center":"left"},R&&H?{opacity:H.subtitleOpacity}:null,S],numberOfLines:L.subtitleLines,children:n}):null,F=_jsxs(View,{style:[C.titleColumn,"center"===l?C.titleColumnCenter:null,L.alignBottom?C.titleColumnBottom:null],children:[M,N]}),U=R?Animated.View:View,Y=R&&H?{height:Animated.add(H.barHeight,new Animated.Value(v.top))}:{height:(m??L.height)+v.top};return _jsxs(U,{ref:t,testID:B,style:[C.root,{paddingTop:v.top,backgroundColor:x?"transparent":I.colors.surface},Y,!R&&W?{borderBottomWidth:D,borderBottomColor:I.colors.border}:null,f,y],children:[R&&H&&W?_jsx(Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:I.colors.border,opacity:H.borderOpacity}]}):null,_jsxs(View,{style:[C.row,L.alignBottom?C.rowAlignBottom:null,O,{flex:1}],children:[_jsxs(View,{style:[C.sideSlot,P?C.sideSlotCompact:null],children:[V?_jsx(ActionButton,{action:V,side:"left",haptic:_,flush:P}):null,null!=r&&!1!==r?_jsx(View,{style:C.slotNode,children:r}):null]}),_jsx(View,{pointerEvents:"none",style:[C.center,"center"===l?C.centerAligned:C.centerLeft,P?{paddingLeft:E?p:I.space.none,paddingRight:I.space.none}:null],children:F}),_jsxs(View,{style:[C.sideSlot,C.sideSlotRight,P?C.sideSlotCompact:null],children:[s?.map((e,t)=>_jsx(ActionButton,{action:e,side:"right",badgeStyle:j,haptic:_,flush:P},`appbar-right-${t}`)),null!=a&&!1!==a?_jsx(View,{style:C.slotNode,children:a}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=e=>StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.space.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:e.space.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},slotNode:{flexDirection:"row",alignItems:"center"},center:{flex:1,minWidth:0,paddingHorizontal:e.space.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column",maxWidth:"100%"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:e.colors["text-body"]},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:e.space.xxs,color:e.colors["text-subtle"],fontSize:e.text.sm.size,fontWeight:e.weight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:StyleSheet.hairlineWidth}}),buildActionStyles=e=>StyleSheet.create({actionButton:{width:44,height:44,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:e.space.xs},actionRight:{marginLeft:e.space.xs},actionPressed:{backgroundColor:e.colors["surface-pressed"]},textButton:{minWidth:44,minHeight:44,paddingHorizontal:e.space.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},dot:{position:"absolute",top:10,right:10,width:8,height:8,borderRadius:e.radius.pill,backgroundColor:e.colors.danger},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:4,right:4,minWidth:16,height:16,paddingHorizontal:e.space.xs,borderRadius:e.radius.pill,...smoothCorners,backgroundColor:e.colors.danger,alignItems:"center",justifyContent:"center"},badgeText:{color:e.colors["on-danger"],fontSize:e.text.xs.size,fontWeight:e.weight.semibold,lineHeight:13}});export{AppBar};export default AppBar;
@@ -1 +1 @@
1
- "use strict";export{AppBar,default}from"./AppBar.js";
1
+ "use strict";export{AppBar,DEFAULT_APP_BAR_LABELS,default}from"./AppBar.js";
@@ -1 +1 @@
1
- "use strict";import{Logger}from"@webority/mobile-core";import{useMemo}from"react";import{SvgXml}from"react-native-svg";import{useTheme}from"../../theme/index.js";import{CATALOG_LOADERS,ICON_NAMES}from"./catalog.g.js";import{CURATED_ICON_NAMES,GLYPHS}from"./glyphs.g.js";import{jsx as _jsx}from"react/jsx-runtime";export{CURATED_ICON_NAMES,ICON_NAMES};export const ICONSAX_SUFFIX="-iconsax";export const APP_ICON_SIZES={xs:14,sm:18,md:22,lg:28,xl:36};const tryRequire=e=>{try{return e()}catch{return null}};let curatedVariants=null;const loadCuratedVariants=()=>(curatedVariants||(curatedVariants=tryRequire(()=>require("./variants.g").VARIANT_GLYPHS)??{}),curatedVariants),shardCache=new Map,loadShard=(e,r)=>{const t=r[0]?.toLowerCase()??"",o=`${e}:${t}`,n=shardCache.get(o);if(void 0!==n)return n;const a=CATALOG_LOADERS[e]?.[t],s=a?tryRequire(a):null;return shardCache.set(o,s),s},warned=new Set,resolveCatalogue=(e,r)=>{const t=loadShard(r,e)?.[e];return t||("linear"===r?null:loadShard("linear",e)?.[e]??null)};export const resolveGlyph=(e,r="linear")=>{if(e.endsWith("-iconsax")){const t=e.slice(0,-8);return t in GLYPHS?resolveCatalogue(t,r):null}const t=GLYPHS[e];return t?"linear"===r?t:loadCuratedVariants()[r]?.[e]??t:resolveCatalogue(e,r)};export const buildIconXml=(e,r,t)=>`<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 24 24" fill="none">${e.replace(/currentColor/g,t)}</svg>`;const iconXmlCache=new Map;export const AppIcon=({name:e,size:r="md",color:t,variant:o="linear",style:n,accessibilityLabel:a,testID:s})=>{const l=useTheme(),i="number"==typeof r?r:APP_ICON_SIZES[r],c=t??l.colors["text-body"],u=resolveGlyph(e,o),m=useMemo(()=>{if(!u)return null;const r=`${e}|${o}|${i}|${c}`,t=iconXmlCache.get(r);if(void 0!==t)return t;iconXmlCache.size>=500&&iconXmlCache.clear();const n=buildIconXml(u,i,c);return iconXmlCache.set(r,n),n},[e,o,u,i,c]);return m?_jsx(SvgXml,{xml:m,width:i,height:i,style:n,accessible:null!=a,accessibilityLabel:a,accessibilityRole:null!=a?"image":void 0,testID:s}):(__DEV__&&!warned.has(e)&&(warned.add(e),Logger.warn(`[AppIcon] Unknown icon "${e}". Names come from webority-ui's icon map and the Iconsax catalogue; run scripts/sync-icons.mjs after adding one there.`)),null)};AppIcon.displayName="AppIcon";export default AppIcon;
1
+ "use strict";import{Logger}from"@webority/mobile-core";import{useMemo}from"react";import{SvgXml}from"react-native-svg";import{useTheme}from"../../theme/index.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{CATALOG_LOADERS,ICON_NAMES}from"./catalog.g.js";import{CURATED_ICON_NAMES,GLYPHS}from"./glyphs.g.js";import{jsx as _jsx}from"react/jsx-runtime";export{CURATED_ICON_NAMES,ICON_NAMES};export const ICONSAX_SUFFIX="-iconsax";export const APP_ICON_SIZES={xs:14,sm:18,md:22,lg:28,xl:36};const tryRequire=e=>{try{return e()}catch{return null}};let curatedVariants=null;const loadCuratedVariants=()=>(curatedVariants||(curatedVariants=tryRequire(()=>require("./variants.g").VARIANT_GLYPHS)??{}),curatedVariants),shardCache=new Map,loadShard=(e,r)=>{const t=r[0]?.toLowerCase()??"",o=`${e}:${t}`,n=shardCache.get(o);if(void 0!==n)return n;const a=CATALOG_LOADERS[e]?.[t],l=a?tryRequire(a):null;return shardCache.set(o,l),l},warned=new Set,resolveCatalogue=(e,r)=>{const t=loadShard(r,e)?.[e];return t||("linear"===r?null:loadShard("linear",e)?.[e]??null)};export const resolveGlyph=(e,r="linear")=>{if(e.endsWith("-iconsax")){const t=e.slice(0,-8);return t in GLYPHS?resolveCatalogue(t,r):null}const t=GLYPHS[e];return t?"linear"===r?t:loadCuratedVariants()[r]?.[e]??t:resolveCatalogue(e,r)};export const buildIconXml=(e,r,t)=>`<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 24 24" fill="none">${e.replace(/currentColor/g,t)}</svg>`;const iconXmlCache=new Map;export const AppIcon=({name:e,size:r="md",color:t,variant:o="linear",style:n,accessibilityLabel:a,testID:l})=>{const s=useTheme();"string"==typeof r&&warnInvalidValue("AppIcon","size",r,Object.keys(APP_ICON_SIZES)),warnInvalidValue("AppIcon","variant",o,["linear","bold","bulk","broken","outline","twotone"]);const i="number"==typeof r?r:APP_ICON_SIZES[r]??APP_ICON_SIZES.md,c=t??s.colors["text-body"],u=resolveGlyph(e,o),m=useMemo(()=>{if(!u)return null;const r=`${e}|${o}|${i}|${c}`,t=iconXmlCache.get(r);if(void 0!==t)return t;iconXmlCache.size>=500&&iconXmlCache.clear();const n=buildIconXml(u,i,c);return iconXmlCache.set(r,n),n},[e,o,u,i,c]);return m?_jsx(SvgXml,{xml:m,width:i,height:i,style:n,accessible:null!=a,accessibilityLabel:a,accessibilityRole:null!=a?"image":void 0,testID:l}):(__DEV__&&!warned.has(e)&&(warned.add(e),Logger.warn(`[@webority/mobile-ui] AppIcon: Unknown icon "${e}". Names come from webority-ui's icon map and the Iconsax catalogue; run scripts/sync-icons.mjs after adding one there.`)),null)};AppIcon.displayName="AppIcon";export default AppIcon;
@@ -0,0 +1 @@
1
+ "use strict";import{useEffect,useMemo,useRef}from"react";import{View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{makeStyles,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{AppIcon}from"../AppIcon/index.js";import{Button}from"../Button/index.js";import{Modal}from"../Modal/index.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_APP_LOCK_OVERLAY_LABELS=Object.freeze({title:"Locked",message:"Unlock to continue",unlock:"Unlock",lockout:"Too many tries. Wait a moment, then try again.",notEnrolled:"Set up a screen lock on this phone to use app lock.",failed:"That didn't unlock. Try again."});const noop=()=>{},useStyles=makeStyles(e=>({body:{alignItems:"center",flex:1,gap:e.space.sm,justifyContent:"center",paddingHorizontal:e.space["2xl"]},footer:{paddingHorizontal:e.space.xl},iconCircle:{alignItems:"center",backgroundColor:e.colors["primary-wash"],borderRadius:e.radius.pill,...smoothCorners,height:e.space["4xl"],justifyContent:"center",marginBottom:e.space.md,width:e.space["4xl"]}})),failureMessage=(e,t)=>{switch(e){case"lockout":return t.lockout;case"not-enrolled":return t.notEnrolled;case"failed":case"not-available":return t.failed;default:return null}};export function AppLockOverlay({visible:e,onUnlock:t,failure:o,secondaryAction:s,brandMark:n,labels:r,testID:l}){const a=useTheme(),i=useStyles(),c=useSafeAreaInsets(),u=useMemo(()=>({...DEFAULT_APP_LOCK_OVERLAY_LABELS,...r}),[r]),d=useRef(t);d.current=t,useEffect(()=>{e&&d.current()},[e]);const m=failureMessage(o,u);return _jsxs(Modal,{visible:e,onClose:noop,presentation:"fullScreen",hardwareBackPress:!1,haptic:!1,accessibilityLabel:u.title,testID:l,children:[_jsxs(View,{style:i.body,children:[n??_jsx(View,{style:i.iconCircle,children:_jsx(AppIcon,{name:"lock",size:"xl",color:a.colors["primary-text"]})}),_jsx(Text,{variant:"h3",weight:"semibold",align:"center",children:u.title}),_jsx(Text,{variant:"bodySmall",weight:"medium",align:"center",children:u.message}),m?_jsx(Text,{variant:"caption",weight:"semibold",align:"center",color:"danger",children:m}):null]}),_jsxs(View,{style:[i.footer,{paddingBottom:a.space.xl+c.bottom}],children:[_jsx(Button,{fullWidth:!0,size:"lg",label:u.unlock,onPress:t,testID:l?`${l}-unlock`:void 0}),s?_jsx(Button,{variant:"link",label:s.label,onPress:s.onPress,testID:l?`${l}-secondary`:void 0}):null]})]})}
@@ -0,0 +1 @@
1
+ "use strict";export{AppLockOverlay,DEFAULT_APP_LOCK_OVERLAY_LABELS}from"./AppLockOverlay.js";
@@ -1 +1 @@
1
- "use strict";import{extractApiError,OFFLINE_CODE}from"@webority/mobile-core";import{isValidElement}from"react";import{View}from"react-native";import{useTheme}from"../../theme/index.js";import{AppIcon}from"../AppIcon/index.js";import{EmptyState}from"../EmptyState/index.js";import{Spinner}from"../Spinner/index.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const OFFLINE_HINT="Check your connection, then try again.",isNode=e=>isValidElement(e)||Array.isArray(e);export const AsyncBlock=({loading:e=!1,error:t,errorVariant:r,empty:i=!1,onRetry:o,skeleton:n,emptyTitle:s="Nothing here yet",emptyDescription:l,emptyIcon:c,errorTitle:a="That didn't load",offlineTitle:m="You're offline",retryLabel:p="Try again",children:d,style:y,testID:x})=>{const f=useTheme();if(e)return _jsx(View,{style:y,testID:x,children:n??_jsx(View,{style:{paddingVertical:f.space["2xl"],alignItems:"center"},children:_jsx(Spinner,{})})});if(t){const e="string"==typeof t?t:null,i=null!==e||isNode(t)?null:extractApiError(t),n="offline"===(r??(i?.code===OFFLINE_CODE?"offline":"default")),s=e??i?.message??(n?OFFLINE_HINT:void 0);return _jsxs(View,{style:y,testID:x,children:[_jsx(EmptyState,{icon:n?_jsx(AppIcon,{name:"cloud-cross",size:"xl",color:f.colors["text-subtle"],testID:"async-block-offline-icon"}):void 0,title:n?m:a,description:s,action:o?{label:p,onPress:o}:void 0}),isNode(t)?t:null]})}return i?_jsx(View,{style:y,testID:x,children:_jsx(EmptyState,{icon:c,title:s,description:l})}):_jsx(_Fragment,{children:d})};export default AsyncBlock;
1
+ "use strict";import{extractApiError,OFFLINE_CODE}from"@webority/mobile-core";import{isValidElement,useMemo}from"react";import{View}from"react-native";import{useTheme}from"../../theme/index.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{AppIcon}from"../AppIcon/index.js";import{EmptyState}from"../EmptyState/index.js";import{Spinner}from"../Spinner/index.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export const DEFAULT_ASYNC_BLOCK_LABELS=Object.freeze({emptyTitle:"Nothing here yet",errorTitle:"That didn't load",offlineTitle:"You're offline",offlineHint:"Check your connection, then try again.",retry:"Try again"});const isNode=e=>isValidElement(e)||Array.isArray(e);export const AsyncBlock=({loading:e=!1,error:t,errorVariant:r,empty:i=!1,onRetry:o,skeleton:n,emptyTitle:l,emptyDescription:s,emptyIcon:a,errorTitle:c,offlineTitle:m,labels:p,children:f,style:d,testID:y})=>{const x=useTheme(),u=useMemo(()=>({...DEFAULT_ASYNC_BLOCK_LABELS,...p}),[p]);if(warnInvalidValue("AsyncBlock","errorVariant",r,["default","offline"]),e)return _jsx(View,{style:d,testID:y,children:n??_jsx(View,{style:{paddingVertical:x.space["2xl"],alignItems:"center"},children:_jsx(Spinner,{})})});if(t){const e="string"==typeof t?t:null,i=null!==e||isNode(t)?null:extractApiError(t),n="offline"===(r??(i?.code===OFFLINE_CODE?"offline":"default")),l=e??i?.message??(n?u.offlineHint:void 0);return _jsxs(View,{style:d,testID:y,children:[_jsx(EmptyState,{icon:n?_jsx(AppIcon,{name:"cloud-cross",size:"xl",color:x.colors["text-subtle"],testID:"async-block-offline-icon"}):void 0,title:n?m??u.offlineTitle:c??u.errorTitle,description:l,action:o?{label:u.retry,onPress:o}:void 0}),isNode(t)?t:null]})}return i?_jsx(View,{style:d,testID:y,children:_jsx(EmptyState,{icon:a,title:l??u.emptyTitle,description:s})}):_jsx(_Fragment,{children:f})};export default AsyncBlock;
@@ -1 +1 @@
1
- "use strict";export{AsyncBlock,default}from"./AsyncBlock.js";
1
+ "use strict";export{AsyncBlock,DEFAULT_ASYNC_BLOCK_LABELS,default}from"./AsyncBlock.js";
@@ -1 +1 @@
1
- "use strict";import{Image}from"expo-image";import{useEffect,useMemo,useRef,useState}from"react";import{StyleSheet,Text,View}from"react-native";import{useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{Spinner}from"../Spinner/index.js";import{acquireFetch,DEFAULT_TTL_MS,deriveCacheKey,isFresh,isPermanentRefusal,readEntry,releaseFetch,removeEntry,touchEntry}from"./authedImageCache.js";import{jsx as _jsx}from"react/jsx-runtime";const CONTENT_FIT={cover:"cover",contain:"contain",stretch:"fill",center:"scale-down",repeat:"cover"},toError=e=>e instanceof Error?e:new Error(String(e)),AuthedImage=e=>{const{uri:t,headers:r,client:i,authenticated:o=!0,ttlMs:s=DEFAULT_TTL_MS,placeholder:a,fallback:n,onLoadStart:l,onLoadEnd:c,onError:d,cacheKey:u,testID:m,accessibilityLabel:h,style:y,resizeMode:f,fadeDuration:b,contentFit:g,transition:E,cachePolicy:p="memory",...I}=e,x=useTheme(),S=useMemo(()=>buildStyles(x),[x]),[v,L]=useState({status:"loading"}),T=useRef({onLoadStart:l,onLoadEnd:c,onError:d});T.current={onLoadStart:l,onLoadEnd:c,onError:d};const j=JSON.stringify(r??{});return useEffect(()=>{let e=!1,r=null;const finish=t=>{e||(L(t),T.current.onLoadEnd?.())};return(async()=>{if(!t){const t=new Error("[@webority/mobile-ui] AuthedImage was given an empty `uri`. Pass the image URL, or render nothing while the URL is still unknown.");return void(e||(L({status:"error"}),T.current.onError?.(t)))}L({status:"loading"}),T.current.onLoadStart?.();const a=deriveCacheKey(t,u),n=await readEntry(a);if(e)return;if(n&&isFresh(n.meta,s))return touchEntry(a),void finish({status:"ready",fileUri:n.fileUri});const l=acquireFetch(a,{uri:t,headers:JSON.parse(j),authenticated:o,client:i});r={key:a,entry:l};try{const e=await l.promise;finish({status:"ready",fileUri:e.fileUri})}catch(t){if(e)return;if(n&&!isPermanentRefusal(t))return void finish({status:"ready",fileUri:n.fileUri});if(n&&(await removeEntry(a),e))return;L({status:"error"}),T.current.onError?.(toError(t)),T.current.onLoadEnd?.()}})(),()=>{e=!0,r&&releaseFetch(r.key,r.entry)}},[t,u,s,o,i,j]),"loading"===v.status?_jsx(View,void 0!==a?{style:y,testID:m,children:a}:{style:[S.placeholder,y],testID:m,children:_jsx(View,{style:S.stateFill,testID:m?`${m}-placeholder`:void 0,pointerEvents:"none",children:_jsx(Spinner,{size:"sm",accessibilityLabel:h??"Loading image"})})}):"error"===v.status?_jsx(View,void 0!==n?{style:y,testID:m,children:n}:{style:[S.fallback,y],testID:m,children:_jsx(View,{accessible:!0,accessibilityRole:"image",accessibilityLabel:h?`${h}, image unavailable`:"Image unavailable",testID:m?`${m}-fallback`:void 0,style:S.stateFill,children:_jsx(Text,{style:S.fallbackText,children:"!"})})}):_jsx(Image,{...I,accessible:!0,accessibilityRole:"image",accessibilityLabel:h,testID:m,style:y,contentFit:g??(f?CONTENT_FIT[f]:void 0),transition:E??b,cachePolicy:p,source:{uri:v.fileUri}})};AuthedImage.displayName="AuthedImage";const buildStyles=e=>StyleSheet.create({placeholder:{alignItems:"center",justifyContent:"center",backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.md,...smoothCorners},fallback:{alignItems:"center",justifyContent:"center",backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.md,...smoothCorners,borderWidth:e.size.border,borderColor:e.colors["border-subtle"],padding:e.space.sm},stateFill:{alignItems:"center",flex:1,justifyContent:"center"},fallbackText:{color:e.colors["text-subtle"],fontSize:e.text.lg.size,fontWeight:e.weight.bold}});export{AuthedImage};export default AuthedImage;
1
+ "use strict";import{Image}from"expo-image";import{useEffect,useMemo,useRef,useState}from"react";import{StyleSheet,View}from"react-native";import{useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{Spinner}from"../Spinner/index.js";import{Text}from"../Text/index.js";import{acquireFetch,DEFAULT_TTL_MS,deriveCacheKey,isFresh,isPermanentRefusal,readEntry,releaseFetch,removeEntry,touchEntry}from"./authedImageCache.js";import{jsx as _jsx}from"react/jsx-runtime";export const DEFAULT_AUTHED_IMAGE_LABELS=Object.freeze({loading:"Loading image",unavailable:"Image unavailable",unavailableNamed:e=>`${e}, image unavailable`});const CONTENT_FIT={cover:"cover",contain:"contain",stretch:"fill",center:"scale-down",repeat:"cover"},toError=e=>e instanceof Error?e:new Error(String(e)),AuthedImage=e=>{const{uri:t,headers:r,client:a,authenticated:i=!0,ttlMs:s=DEFAULT_TTL_MS,placeholder:o,fallback:n,onLoadStart:l,onLoadEnd:c,onError:d,cacheKey:u,testID:m,accessibilityLabel:h,style:y,resizeMode:f,fadeDuration:b,contentFit:E,transition:g,labels:I,cachePolicy:p="memory",...v}=e;warnInvalidValue("AuthedImage","resizeMode",f,Object.keys(CONTENT_FIT));const L=useMemo(()=>({...DEFAULT_AUTHED_IMAGE_LABELS,...I}),[I]),T=useTheme(),S=useMemo(()=>buildStyles(T),[T]),[j,x]=useState({status:"loading"}),_=useRef({onLoadStart:l,onLoadEnd:c,onError:d});_.current={onLoadStart:l,onLoadEnd:c,onError:d};const w=JSON.stringify(r??{});return useEffect(()=>{let e=!1,r=null;const finish=t=>{e||(x(t),_.current.onLoadEnd?.())};return(async()=>{if(!t){const t=new Error("[@webority/mobile-ui] AuthedImage was given an empty `uri`. Pass the image URL, or render nothing while the URL is still unknown.");return void(e||(x({status:"error"}),_.current.onError?.(t)))}x({status:"loading"}),_.current.onLoadStart?.();const o=deriveCacheKey(t,u),n=await readEntry(o);if(e)return;if(n&&isFresh(n.meta,s))return touchEntry(o),void finish({status:"ready",fileUri:n.fileUri});const l=acquireFetch(o,{uri:t,headers:JSON.parse(w),authenticated:i,client:a});r={key:o,entry:l};try{const e=await l.promise;finish({status:"ready",fileUri:e.fileUri})}catch(t){if(e)return;if(n&&!isPermanentRefusal(t))return void finish({status:"ready",fileUri:n.fileUri});if(n&&(await removeEntry(o),e))return;x({status:"error"}),_.current.onError?.(toError(t)),_.current.onLoadEnd?.()}})(),()=>{e=!0,r&&releaseFetch(r.key,r.entry)}},[t,u,s,i,a,w]),"loading"===j.status?_jsx(View,void 0!==o?{style:y,testID:m,children:o}:{style:[S.placeholder,y],testID:m,children:_jsx(View,{style:S.stateFill,testID:m?`${m}-placeholder`:void 0,pointerEvents:"none",children:_jsx(Spinner,{size:"sm",accessibilityLabel:h??L.loading})})}):"error"===j.status?_jsx(View,void 0!==n?{style:y,testID:m,children:n}:{style:[S.fallback,y],testID:m,children:_jsx(View,{accessible:!0,accessibilityRole:"image",accessibilityLabel:h?L.unavailableNamed(h):L.unavailable,testID:m?`${m}-fallback`:void 0,style:S.stateFill,children:_jsx(Text,{variant:"title",color:"tertiary",accessible:!1,children:"!"})})}):_jsx(Image,{...v,accessible:!0,accessibilityRole:"image",accessibilityLabel:h,testID:m,style:y,contentFit:E??(f?CONTENT_FIT[f]:void 0),transition:g??b,cachePolicy:p,source:{uri:j.fileUri}})};AuthedImage.displayName="AuthedImage";const buildStyles=e=>StyleSheet.create({placeholder:{alignItems:"center",justifyContent:"center",backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.md,...smoothCorners},fallback:{alignItems:"center",justifyContent:"center",backgroundColor:e.colors["bg-subtle"],borderRadius:e.radius.md,...smoothCorners,borderWidth:e.size.border,borderColor:e.colors["border-subtle"],padding:e.space.sm},stateFill:{alignItems:"center",flex:1,justifyContent:"center"}});export{AuthedImage};export default AuthedImage;
@@ -1 +1 @@
1
- "use strict";import{ACCESS_TOKEN_KEY,getConfigValue,getToken,isStorageAvailable,Logger,publicClient,Storage}from"@webority/mobile-core";import{Directory,File,Paths}from"expo-file-system";import{AppState}from"react-native";import{hashString}from"../../utils/hashString.js";const INDEX_KEY="@webority/authed-image/v2/index",LEGACY_PREFIX="@webority/authed-image/v1/",FOLDER="authed-images",DEFAULT_BYTE_CEILING=52428800,TOUCH_PERSIST_MS=36e5,PERSIST_DELAY_MS=1e3;export const DEFAULT_TTL_MS=6048e5;let byteCeiling=52428800;export const setAuthedImageCacheLimit=e=>{if(!Number.isFinite(e)||e<=0)throw new Error(`[@webority/mobile-ui] setAuthedImageCacheLimit() needs a positive number of bytes, received ${String(e)}. Pass e.g. 50 * 1024 * 1024 for 50 MB.`);byteCeiling=e};export const getAuthedImageCacheLimit=()=>byteCeiling;export const deriveCacheKey=(e,t)=>hashString(t??e);const imageFile=e=>new File(Paths.cache,FOLDER,e),toMeta=({fetchedAt:e,bytes:t,contentType:s,lastAccessedAt:r})=>({fetchedAt:e,bytes:t,contentType:s,lastAccessedAt:r});let index=null,indexBytes=0,indexLoad=null,persistTimer=null,persistTarget=null,appStateSub=null;const persistIndex=async e=>{if(!isStorageAvailable())return;const t={};for(const[s,r]of e)t[s]={...r,persistedAccessAt:r.lastAccessedAt};if(await Storage.setItem(INDEX_KEY,JSON.stringify(t)))for(const t of e.values())t.persistedAccessAt=t.lastAccessedAt},schedulePersist=e=>{persistTarget=e,null===appStateSub&&(appStateSub=AppState.addEventListener("change",e=>{"active"!==e&&flushAuthedImageIndex()})),null===persistTimer&&(persistTimer=setTimeout(()=>{flushAuthedImageIndex()},1e3))};export const flushAuthedImageIndex=async()=>{null!==persistTimer&&(clearTimeout(persistTimer),persistTimer=null);const e=persistTarget;persistTarget=null,null!==e&&await persistIndex(e)};const removeLegacyEntries=async()=>{const e=(await Storage.getAllKeys()).filter(e=>e.startsWith(LEGACY_PREFIX));e.length>0&&await Storage.multiRemove(e)},removeOrphanFiles=e=>{try{const t=new Directory(Paths.cache,FOLDER);if(!t.exists)return;const s=new Set([...e.values()].map(e=>imageFile(e.fileName).uri));for(const e of t.list())s.has(e.uri)||e.delete()}catch(e){Logger.warn("[AuthedImage] could not tidy the image cache folder",e)}},readStoredIndex=async()=>{const e=new Map;if(!isStorageAvailable())return e;const t=await Storage.getItem(INDEX_KEY);if(!t)return await removeLegacyEntries(),e;try{for(const[s,r]of Object.entries(JSON.parse(t)))e.set(s,r)}catch{}return e},loadIndex=()=>index?Promise.resolve(index):(indexLoad||(indexLoad=readStoredIndex().then(e=>(removeOrphanFiles(e),index=e,indexBytes=[...e.values()].reduce((e,t)=>e+t.bytes,0),e)).finally(()=>{indexLoad=null})),indexLoad),deleteFile=e=>{try{const t=imageFile(e);t.exists&&t.delete()}catch(e){Logger.warn("[AuthedImage] could not delete a cached image file",e)}};export const readEntry=async e=>{const t=await loadIndex(),s=t.get(e);if(!s)return null;const r=imageFile(s.fileName);return r.exists?{fileUri:r.uri,meta:toMeta(s)}:(t.delete(e),indexBytes-=s.bytes,schedulePersist(t),null)};export const removeEntry=async e=>{const t=await loadIndex(),s=t.get(e);s&&(t.delete(e),indexBytes-=s.bytes,deleteFile(s.fileName),schedulePersist(t))};export class AuthedImageHttpError extends Error{constructor(e,t){super(e),this.name="AuthedImageHttpError",this.status=t}}export const isPermanentRefusal=e=>e instanceof AuthedImageHttpError&&e.status>=400&&e.status<500&&408!==e.status&&429!==e.status;export const isFresh=(e,t,s=Date.now())=>s-e.fetchedAt<t;export const touchEntry=async e=>{const t=await loadIndex(),s=t.get(e);s&&(s.lastAccessedAt=Date.now(),s.lastAccessedAt-s.persistedAccessAt>=36e5&&schedulePersist(t))};const evictIfNeeded=e=>{let t=indexBytes;if(t<=byteCeiling)return 0;const s=[...e].sort(([,e],[,t])=>e.lastAccessedAt-t.lastAccessedAt);let r=0;for(const[i,a]of s){if(t<=byteCeiling)break;e.delete(i),indexBytes-=a.bytes,deleteFile(a.fileName),t-=a.bytes,r+=1}return r};export const clearAuthedImageCache=async()=>{null!==persistTimer&&(clearTimeout(persistTimer),persistTimer=null),persistTarget=null;(await loadIndex()).clear(),indexBytes=0;const e=new Directory(Paths.cache,FOLDER);e.exists&&e.delete(),isStorageAvailable()&&await Storage.removeItem(INDEX_KEY)};export const authedImageCacheStats=async()=>{const e=await loadIndex();let t=0;for(const s of e.values())t+=s.bytes;return{entries:e.size,bytes:t}};const responseHeader=(e,t)=>{if(!e||"object"!=typeof e)return;const s=e.get,r="function"==typeof s?s.call(e,t):e[t];return"string"==typeof r?r:void 0},originOf=e=>{const t=/^([a-z][a-z0-9+.-]*:\/\/[^/?#]+)/i.exec(e);return t?t[1].toLowerCase():null},isOwnApiAddress=e=>{const t=originOf(e);if(null===t)return!0;const s=getConfigValue("baseUrl");return"string"==typeof s&&originOf(s)===t},fetchAndStore=async(e,t,s)=>{const r={Accept:"image/*",...t.headers};if(!t.client&&t.authenticated&&isOwnApiAddress(t.uri)){const e=await getToken(ACCESS_TOKEN_KEY);e?.token&&(r.Authorization=`Bearer ${e.token}`)}const i=t.client??publicClient;let a;try{a=await i.get(t.uri,{headers:r,responseType:"arraybuffer",signal:s})}catch(e){const s=e?.response?.status;if("number"!=typeof s)throw e;throw new AuthedImageHttpError(`[@webority/mobile-ui] AuthedImage could not load "${t.uri}": the server answered ${s}. Check the URL and whether the request needs to be signed in (pass the signed-in client as \`client\`, or authenticated={false} for public media).`,s)}const n=new Uint8Array(a.data??new ArrayBuffer(0)),o=responseHeader(a.headers,"content-type"),c=(o?o.split(";")[0].trim():"")||"image/jpeg",l=await loadIndex(),d=Date.now(),u=`${e}-${d.toString(36)}`,g=imageFile(u);try{g.create({intermediates:!0,overwrite:!0}),g.write(n)}catch(e){throw new Error(`[@webority/mobile-ui] AuthedImage fetched "${t.uri}" but could not write it to the app's cache folder: ${e instanceof Error?e.message:String(e)}. The device may be out of storage.`)}const h={fetchedAt:d,bytes:n.byteLength,contentType:c,lastAccessedAt:d,fileName:u,persistedAccessAt:d},m=l.get(e);m&&(indexBytes-=m.bytes),l.set(e,h),indexBytes+=h.bytes,m&&m.fileName!==u&&deleteFile(m.fileName);const p=evictIfNeeded(l);return schedulePersist(l),p>0&&Logger.info(`[AuthedImage] evicted ${p} cached image(s) over the byte ceiling`),{fileUri:g.uri,meta:toMeta(h)}},inFlight=new Map;export const acquireFetch=(e,t)=>{const s=inFlight.get(e);if(s)return s.waiters+=1,s;const r=new AbortController,i={controller:r,waiters:1,promise:Promise.resolve()};return i.promise=fetchAndStore(e,t,r.signal).finally(()=>{inFlight.get(e)===i&&inFlight.delete(e)}),inFlight.set(e,i),i};export const releaseFetch=(e,t)=>{t.waiters-=1,t.waiters>0||(inFlight.get(e)===t&&inFlight.delete(e),t.controller.abort())};
1
+ "use strict";import{ACCESS_TOKEN_KEY,getConfigValue,getToken,isStorageAvailable,Logger,publicClient,Storage}from"@webority/mobile-core";import{Directory,File,Paths}from"expo-file-system";import{AppState}from"react-native";import{hashString}from"../../utils/hashString.js";const INDEX_KEY="@webority/authed-image/v2/index",LEGACY_PREFIX="@webority/authed-image/v1/",FOLDER="authed-images",DEFAULT_BYTE_CEILING=52428800,TOUCH_PERSIST_MS=36e5,PERSIST_DELAY_MS=1e3;export const DEFAULT_TTL_MS=6048e5;let byteCeiling=52428800;export const setAuthedImageCacheLimit=e=>{if(!Number.isFinite(e)||e<=0)throw new Error(`[@webority/mobile-ui] setAuthedImageCacheLimit() needs a positive number of bytes, received ${String(e)}. Pass e.g. 50 * 1024 * 1024 for 50 MB.`);byteCeiling=e};export const getAuthedImageCacheLimit=()=>byteCeiling;export const deriveCacheKey=(e,t)=>hashString(t??e);const imageFile=e=>new File(Paths.cache,FOLDER,e),toMeta=({fetchedAt:e,bytes:t,contentType:s,lastAccessedAt:i})=>({fetchedAt:e,bytes:t,contentType:s,lastAccessedAt:i});let index=null,indexBytes=0,indexLoad=null,persistTimer=null,persistTarget=null,appStateSub=null;const persistIndex=async e=>{if(!isStorageAvailable())return;const t={};for(const[s,i]of e)t[s]={...i,persistedAccessAt:i.lastAccessedAt};if(await Storage.setItem(INDEX_KEY,JSON.stringify(t)))for(const t of e.values())t.persistedAccessAt=t.lastAccessedAt},schedulePersist=e=>{persistTarget=e,null===appStateSub&&(appStateSub=AppState.addEventListener("change",e=>{"active"!==e&&flushAuthedImageIndex()})),null===persistTimer&&(persistTimer=setTimeout(()=>{flushAuthedImageIndex()},1e3))};export const flushAuthedImageIndex=async()=>{null!==persistTimer&&(clearTimeout(persistTimer),persistTimer=null);const e=persistTarget;persistTarget=null,null!==e&&await persistIndex(e)};const removeLegacyEntries=async()=>{const e=(await Storage.getAllKeys()).filter(e=>e.startsWith(LEGACY_PREFIX));e.length>0&&await Storage.multiRemove(e)},removeOrphanFiles=e=>{try{const t=new Directory(Paths.cache,FOLDER);if(!t.exists)return;const s=new Set([...e.values()].map(e=>imageFile(e.fileName).uri));for(const e of t.list())s.has(e.uri)||e.delete()}catch(e){Logger.warn("[@webority/mobile-ui] AuthedImage could not tidy the image cache folder",e)}},readStoredIndex=async()=>{const e=new Map;if(!isStorageAvailable())return e;const t=await Storage.getItem(INDEX_KEY);if(!t)return await removeLegacyEntries(),e;try{for(const[s,i]of Object.entries(JSON.parse(t)))e.set(s,i)}catch{}return e},loadIndex=()=>index?Promise.resolve(index):(indexLoad||(indexLoad=readStoredIndex().then(e=>(removeOrphanFiles(e),index=e,indexBytes=[...e.values()].reduce((e,t)=>e+t.bytes,0),e)).finally(()=>{indexLoad=null})),indexLoad),deleteFile=e=>{try{const t=imageFile(e);t.exists&&t.delete()}catch(e){Logger.warn("[@webority/mobile-ui] AuthedImage could not delete a cached image file",e)}};export const readEntry=async e=>{const t=await loadIndex(),s=t.get(e);if(!s)return null;const i=imageFile(s.fileName);return i.exists?{fileUri:i.uri,meta:toMeta(s)}:(t.delete(e),indexBytes-=s.bytes,schedulePersist(t),null)};export const removeEntry=async e=>{const t=await loadIndex(),s=t.get(e);s&&(t.delete(e),indexBytes-=s.bytes,deleteFile(s.fileName),schedulePersist(t))};export class AuthedImageHttpError extends Error{constructor(e,t){super(e),this.name="AuthedImageHttpError",this.status=t}}export const isPermanentRefusal=e=>e instanceof AuthedImageHttpError&&e.status>=400&&e.status<500&&408!==e.status&&429!==e.status;export const isFresh=(e,t,s=Date.now())=>s-e.fetchedAt<t;export const touchEntry=async e=>{const t=await loadIndex(),s=t.get(e);s&&(s.lastAccessedAt=Date.now(),s.lastAccessedAt-s.persistedAccessAt>=36e5&&schedulePersist(t))};const evictIfNeeded=e=>{let t=indexBytes;if(t<=byteCeiling)return 0;const s=[...e].sort(([,e],[,t])=>e.lastAccessedAt-t.lastAccessedAt);let i=0;for(const[r,a]of s){if(t<=byteCeiling)break;e.delete(r),indexBytes-=a.bytes,deleteFile(a.fileName),t-=a.bytes,i+=1}return i};export const clearAuthedImageCache=async()=>{null!==persistTimer&&(clearTimeout(persistTimer),persistTimer=null),persistTarget=null;(await loadIndex()).clear(),indexBytes=0;const e=new Directory(Paths.cache,FOLDER);e.exists&&e.delete(),isStorageAvailable()&&await Storage.removeItem(INDEX_KEY)};export const authedImageCacheStats=async()=>{const e=await loadIndex();let t=0;for(const s of e.values())t+=s.bytes;return{entries:e.size,bytes:t}};const responseHeader=(e,t)=>{if(!e||"object"!=typeof e)return;const s=e.get,i="function"==typeof s?s.call(e,t):e[t];return"string"==typeof i?i:void 0},originOf=e=>{const t=/^([a-z][a-z0-9+.-]*:\/\/[^/?#]+)/i.exec(e);return t?t[1].toLowerCase():null},isOwnApiAddress=e=>{const t=originOf(e);if(null===t)return!0;const s=getConfigValue("baseUrl");return"string"==typeof s&&originOf(s)===t},fetchAndStore=async(e,t,s)=>{const i={Accept:"image/*",...t.headers};if(!t.client&&t.authenticated&&isOwnApiAddress(t.uri)){const e=await getToken(ACCESS_TOKEN_KEY);e?.token&&(i.Authorization=`Bearer ${e.token}`)}const r=t.client??publicClient;let a;try{a=await r.get(t.uri,{headers:i,responseType:"arraybuffer",signal:s})}catch(e){const s=e?.response?.status;if("number"!=typeof s)throw e;throw new AuthedImageHttpError(`[@webority/mobile-ui] AuthedImage could not load "${t.uri}": the server answered ${s}. Check the URL and whether the request needs to be signed in (pass the signed-in client as \`client\`, or authenticated={false} for public media).`,s)}const n=new Uint8Array(a.data??new ArrayBuffer(0)),o=responseHeader(a.headers,"content-type"),c=(o?o.split(";")[0].trim():"")||"image/jpeg",l=await loadIndex(),d=Date.now(),u=`${e}-${d.toString(36)}`,g=imageFile(u);try{g.create({intermediates:!0,overwrite:!0}),g.write(n)}catch(e){throw new Error(`[@webority/mobile-ui] AuthedImage fetched "${t.uri}" but could not write it to the app's cache folder: ${e instanceof Error?e.message:String(e)}. The device may be out of storage.`)}const h={fetchedAt:d,bytes:n.byteLength,contentType:c,lastAccessedAt:d,fileName:u,persistedAccessAt:d},m=l.get(e);m&&(indexBytes-=m.bytes),l.set(e,h),indexBytes+=h.bytes,m&&m.fileName!==u&&deleteFile(m.fileName);const p=evictIfNeeded(l);return schedulePersist(l),p>0&&Logger.info(`[@webority/mobile-ui] AuthedImage evicted ${p} cached image(s) over the byte ceiling`),{fileUri:g.uri,meta:toMeta(h)}},inFlight=new Map;export const acquireFetch=(e,t)=>{const s=inFlight.get(e);if(s)return s.waiters+=1,s;const i=new AbortController,r={controller:i,waiters:1,promise:Promise.resolve()};return r.promise=fetchAndStore(e,t,i.signal).finally(()=>{inFlight.get(e)===r&&inFlight.delete(e)}),inFlight.set(e,r),r};export const releaseFetch=(e,t)=>{t.waiters-=1,t.waiters>0||(inFlight.get(e)===t&&inFlight.delete(e),t.controller.abort())};
@@ -1 +1 @@
1
- "use strict";import React,{useCallback,useMemo,useRef,useState}from"react";import{Keyboard,Pressable,ScrollView,StyleSheet,Text,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{Input}from"../Input/index.js";import{Spinner}from"../Spinner/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const defaultGetLabel=e=>"string"==typeof e?e:String(e);function Autocomplete(e){const{options:t,value:o,defaultValue:r,onChangeText:s,onSelect:i,getOptionLabel:l,getOptionKey:n,filter:a,minChars:c=1,maxResults:d=8,emptyText:u="No matches",loading:p=!1,filterMode:m="client",loadingText:x="Searching…",placeholder:h,label:b,error:g,helperText:f,disabled:y=!1,size:S="md",variant:j,haptic:T,style:C,listStyle:w,optionTextStyle:_,testID:v}=e,z=useTheme(),V=useMemo(()=>buildStyles(z),[z]),[R,k]=useControllableState({value:o,defaultValue:r??"",onChange:s}),[I,L]=useState(!1),[H,P]=useState(0),A=useRef(null),F=useCallback(e=>l?l(e):defaultGetLabel(e),[l]),M=useMemo(()=>{if("none"===m)return t.slice(0,d);const e=R.trim();if(e.length<c)return[];const o=e.toLowerCase(),r=a?t=>a(t,e):e=>F(e).toLowerCase().includes(o);return t.filter(r).slice(0,d)},[t,R,c,d,a,F,m]),D=I&&(p||R.trim().length>=c),K=useCallback(e=>{const t=resolveHaptic(T,"selection");t&&triggerHaptic(t),A.current&&clearTimeout(A.current),k(F(e)),L(!1),Keyboard.dismiss(),i(e)},[T,k,F,i]);React.useEffect(()=>()=>{A.current&&clearTimeout(A.current)},[]);const O=useCallback(e=>{P(e.nativeEvent.layout.height)},[]);return _jsxs(View,{style:[V.container,C],testID:v,children:[_jsx(View,{onLayout:O,children:_jsx(Input,{value:R,onChangeText:k,onFocus:()=>{A.current&&clearTimeout(A.current),L(!0)},onBlur:()=>{A.current=setTimeout(()=>L(!1),120)},placeholder:h,label:b,error:g,helperText:f,editable:!y,accessibilityState:{disabled:y},"aria-disabled":y,size:S,variant:j,autoCorrect:!1,autoCapitalize:"none"})}),D?_jsx(View,{style:[V.list,{top:H,backgroundColor:z.colors.surface,borderColor:z.colors.border,borderRadius:z.radius.md,...smoothCorners,...z.shadow.popover},w],children:p?_jsxs(View,{style:V.loadingRow,children:[_jsx(Spinner,{size:"sm"}),_jsx(Text,{style:[V.loadingText,{color:z.colors["text-muted"],fontSize:z.text.sm.size}],children:x})]}):0===M.length?_jsx(Text,{style:[V.empty,{color:z.colors["text-subtle"],fontSize:z.text.sm.size}],children:u}):_jsx(ScrollView,{keyboardShouldPersistTaps:"handled",style:V.scroll,children:M.map((e,t)=>_jsx(Pressable,{onPress:()=>K(e),android_ripple:{color:z.colors["surface-pressed"]},style:({pressed:e})=>[V.option,{paddingHorizontal:z.space.md,paddingVertical:z.space.sm,backgroundColor:e?z.colors["surface-pressed"]:"transparent"}],accessibilityRole:"button",accessibilityLabel:F(e),accessibilityState:{selected:F(e)===R},"aria-selected":F(e)===R,children:_jsx(Text,{style:[V.optionText,{color:z.colors["text-body"],fontSize:z.text.base.size},_],numberOfLines:1,children:F(e)})},n?n(e):`${F(e)}-${t}`))})}):null]})}Autocomplete.displayName="Autocomplete";const buildStyles=e=>StyleSheet.create({container:{width:"100%",position:"relative",zIndex:10},list:{position:"absolute",left:0,right:0,borderWidth:StyleSheet.hairlineWidth,overflow:"hidden",zIndex:20,maxHeight:240},scroll:{maxHeight:240},option:{width:"100%"},optionText:{includeFontPadding:!1},empty:{padding:e.space.md,textAlign:"center",includeFontPadding:!1},loadingRow:{flexDirection:"row",alignItems:"center",gap:e.space.sm,padding:e.space.md},loadingText:{includeFontPadding:!1}});export{Autocomplete};export default Autocomplete;
1
+ "use strict";import React,{useCallback,useMemo,useRef,useState}from"react";import{Keyboard,Pressable,ScrollView,StyleSheet,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{Input}from"../Input/index.js";import{Spinner}from"../Spinner/index.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_AUTOCOMPLETE_LABELS=Object.freeze({empty:"No matches",searching:"Searching…"});const defaultGetLabel=e=>"string"==typeof e?e:String(e);function Autocomplete(e){const{options:t,value:o,defaultValue:r,onChangeText:l,onSelect:i,getOptionLabel:s,getOptionKey:a,filter:n,minChars:c=1,maxResults:d=8,loading:u=!1,filterMode:p="client",loadingText:m,labels:h,placeholder:x,label:b,error:g,helperText:f,disabled:y=!1,size:S="md",variant:T,haptic:j,style:C,listStyle:v,optionTextStyle:w,testID:_}=e;warnInvalidValue("Autocomplete","filterMode",e.filterMode,["client","none"]);const L=useMemo(()=>({...DEFAULT_AUTOCOMPLETE_LABELS,...h}),[h]),V=useTheme(),A=useMemo(()=>buildStyles(V),[V]),[I,E]=useControllableState({value:o,defaultValue:r??"",onChange:l}),[M,P]=useState(!1),[R,k]=useState(0),z=useRef(null),O=useCallback(e=>s?s(e):defaultGetLabel(e),[s]),H=useMemo(()=>{if("none"===p)return t.slice(0,d);const e=I.trim();if(e.length<c)return[];const o=e.toLowerCase(),r=n?t=>n(t,e):e=>O(e).toLowerCase().includes(o);return t.filter(r).slice(0,d)},[t,I,c,d,n,O,p]),F=M&&(u||I.trim().length>=c),D=useCallback(e=>{const t=resolveHaptic(j,"selection");t&&triggerHaptic(t),z.current&&clearTimeout(z.current),E(O(e)),P(!1),Keyboard.dismiss(),i(e)},[j,E,O,i]);React.useEffect(()=>()=>{z.current&&clearTimeout(z.current)},[]);const U=useCallback(e=>{k(e.nativeEvent.layout.height)},[]);return _jsxs(View,{style:[A.container,C],testID:_,children:[_jsx(View,{onLayout:U,children:_jsx(Input,{value:I,onChangeText:E,onFocus:()=>{z.current&&clearTimeout(z.current),P(!0)},onBlur:()=>{z.current=setTimeout(()=>P(!1),120)},placeholder:x,label:b,error:g,helperText:f,editable:!y,accessibilityState:{disabled:y},"aria-disabled":y,size:S,variant:T,autoCorrect:!1,autoCapitalize:"none"})}),F?_jsx(View,{style:[A.list,{top:R,backgroundColor:V.colors.surface,borderColor:V.colors.border,borderRadius:V.radius.md,...smoothCorners,...V.shadow.popover},v],children:u?_jsxs(View,{style:A.loadingRow,children:[_jsx(Spinner,{size:"sm"}),_jsx(Text,{variant:"bodySmall",color:"secondary",style:A.loadingText,children:m??L.searching})]}):0===H.length?_jsx(Text,{variant:"bodySmall",color:"tertiary",align:"center",style:A.empty,children:L.empty}):_jsx(ScrollView,{keyboardShouldPersistTaps:"handled",style:A.scroll,children:H.map(e=>_jsx(Pressable,{onPress:()=>D(e),android_ripple:{color:V.colors["surface-pressed"]},style:({pressed:e})=>[A.option,{paddingHorizontal:V.space.md,paddingVertical:V.space.sm,backgroundColor:e?V.colors["surface-pressed"]:"transparent"}],accessibilityRole:"button",accessibilityLabel:O(e),accessibilityState:{selected:O(e)===I},"aria-selected":O(e)===I,children:_jsx(Text,{variant:"body",numberOfLines:1,style:[A.optionText,w],children:O(e)})},a?a(e):O(e)))})}):null]})}Autocomplete.displayName="Autocomplete";const buildStyles=e=>StyleSheet.create({container:{width:"100%",position:"relative",zIndex:10},list:{position:"absolute",left:0,right:0,borderWidth:StyleSheet.hairlineWidth,overflow:"hidden",zIndex:20,maxHeight:240},scroll:{maxHeight:240},option:{width:"100%"},optionText:{includeFontPadding:!1},empty:{padding:e.space.md,includeFontPadding:!1},loadingRow:{flexDirection:"row",alignItems:"center",gap:e.space.sm,padding:e.space.md},loadingText:{includeFontPadding:!1}});export{Autocomplete};export default Autocomplete;
@@ -1 +1 @@
1
- "use strict";export{Autocomplete}from"./Autocomplete.js";
1
+ "use strict";export{Autocomplete,DEFAULT_AUTOCOMPLETE_LABELS}from"./Autocomplete.js";
@@ -1 +1 @@
1
- "use strict";import{Image}from"expo-image";import{Children,cloneElement,forwardRef,isValidElement,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{AppIcon}from"../AppIcon/index.js";import{Skeleton}from"../Skeleton/index.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const SOFT_FILL_OPACITY=.14,MIN_TOUCH_TARGET=44,PRESSED_OPACITY=.7,INITIALS_MAX_FONT_SCALE=1.2;export const AVATAR_COLORS=["avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8"];export const avatarToneColors=(e,t)=>{const soft=(e,t)=>tintOf(e,.14,t);switch(t){case"primary":return{background:soft(e.colors.primary,e.colors["primary-soft"]),color:e.colors["primary-text"]};case"secondary":return{background:e.colors.neutral,color:e.colors["on-neutral"]};case"success":return{background:soft(e.colors.success,e.colors["bg-subtle"]),color:e.colors["success-text"]};case"warning":return{background:soft(e.colors.warning,e.colors["bg-subtle"]),color:e.colors["warning-text"]};case"danger":return{background:soft(e.colors.danger,e.colors["bg-subtle"]),color:e.colors["danger-text"]};case"info":return{background:soft(e.colors.info,e.colors["bg-subtle"]),color:e.colors["info-text"]};default:return{background:e.colors["bg-muted"],color:e.colors["text-body"]}}};const sizeMap={xs:24,sm:32,md:48,lg:64,xl:80},resolveSize=e=>"number"==typeof e?e:sizeMap[e],resolveRadius=(e,t,r)=>{switch(t){case"circle":return r/2;case"rounded":return Math.max(e.radius.sm,Math.round(.22*r));default:return 0}},initialsFromName=e=>{if(!e)return"";const t=e.trim().split(/\s+/u).filter(Boolean);return 0===t.length?"":1===t.length?t[0].charAt(0).toUpperCase():(t[0].charAt(0)+t[1].charAt(0)).toUpperCase()},hashColor=(e,t)=>{if(!e)return t[0];let r=0;for(let t=0;t<e.length;t+=1)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t[Math.abs(r)%t.length]},RING_WIDTH=1.5,isRingStatus=e=>"verified"===e||"pending"===e,statusColor=(e,t)=>{switch(t){case"online":case"verified":return e.colors.success;case"busy":return e.colors.danger;case"away":case"pending":return e.colors.warning;default:return e.colors["text-subtle"]}},Avatar=forwardRef((e,t)=>{const{source:r,ImageComponent:o,name:s,size:a="md",shape:i="circle",status:n=null,statusPosition:l="bottomRight",tone:c,backgroundColor:u,color:d,fontSize:m,loading:h=!1,accessibilityLabel:g,onPress:p,onLongPress:b,haptic:f,hitSlop:y,style:v,textStyle:x,testID:A}=e,C=useTheme(),[S,R]=useState(!1),_=useMemo(()=>resolveSize(a),[a]),I=useMemo(()=>resolveRadius(C,i,_),[C,i,_]),w=C.colors.border,j=C.colors.surface,M=useMemo(()=>initialsFromName(s),[s]),T=useMemo(()=>c?avatarToneColors(C,c):null,[C,c]),k=useMemo(()=>u||(T?.background??C.colors[hashColor(s??"",AVATAR_COLORS)]),[u,T,s,C]),E=d??T?.color??C.colors["on-primary"],L=!!r&&!S,z=m??Math.max(C.text.xs.size,Math.round(.4*_)),G=Math.max(8,Math.round(.25*_)),V=isRingStatus(n),F=_-2*(V?3:0),O=V?resolveRadius(C,i,F):I,N=V?statusColor(C,n):"transparent",W=Math.max(12,Math.round(.32*_)),P=Math.max(10,W-4),D=L?C.colors["bg-muted"]:k,$=A??"avatar",H=s?`${s}'s avatar`:"Avatar",B="verified"===n?", verified":"pending"===n?", pending verification":"",U=g??`${H}${B}`,Y="function"==typeof p||"function"==typeof b,X=g??`${s||H}${B}`,q=Math.max(0,Math.ceil((44-_)/2)),J=y??q,K=[styles.root,{width:_,height:_,borderRadius:I,...smoothCorners,borderWidth:0,borderColor:w,backgroundColor:V?"transparent":D},v],Q=_jsxs(_Fragment,{children:[V?_jsx(View,{style:[styles.ring,{borderRadius:I,...smoothCorners,borderWidth:1.5,borderColor:N}],accessible:!1,pointerEvents:"none",testID:`${$}-ring`}):null,_jsx(View,{style:[styles.picture,{width:F,height:F,borderRadius:O,...smoothCorners,borderWidth:0,borderColor:w,backgroundColor:V?D:"transparent"}],children:L?(()=>{const e={width:F,height:F,borderRadius:O,...smoothCorners},onError=()=>R(!0);return o?_jsx(o,{source:r,onError:onError,style:e,contentFit:"cover",resizeMode:"cover",accessibilityIgnoresInvertColors:!0}):_jsx(Image,{source:r,onError:onError,style:e,contentFit:"cover",accessibilityIgnoresInvertColors:!0})})():_jsx(Text,{style:[styles.initials,{color:E,fontSize:z,fontWeight:C.weight.semibold},x],numberOfLines:1,maxFontSizeMultiplier:1.2,children:M??" "})}),"verified"===n?_jsx(View,{style:[styles.status,"topRight"===l?styles.badgeTopRight:styles.badgeBottomRight,{width:W,height:W,borderRadius:W/2,...smoothCorners,backgroundColor:j}],accessible:!1,pointerEvents:"none",testID:`${$}-badge`,children:_jsx(AppIcon,{name:"verify",variant:"bold",size:P,color:N})}):null,n&&!V?_jsx(View,{style:[styles.status,"topRight"===l?styles.statusTopRight:styles.statusBottomRight,{width:G,height:G,borderRadius:G/2,...smoothCorners,backgroundColor:statusColor(C,n),borderWidth:2,borderColor:j}],accessible:!1,pointerEvents:"none"}):null]}),Z=Y?_jsx(Pressable,{ref:t,onPress:p?e=>{const t=resolveHaptic(f,"selection");t&&triggerHaptic(t),p?.(e)}:void 0,onLongPress:b?e=>{const t=resolveHaptic(f,"longPress");t&&triggerHaptic(t),b?.(e)}:void 0,hitSlop:J,...hitSlopMarker(J),accessibilityRole:"button",accessibilityLabel:X,testID:A,style:({pressed:e})=>[K,e?styles.pressed:null],children:Q}):_jsx(View,{ref:t,style:K,accessible:!0,accessibilityRole:"image",accessibilityLabel:U,testID:A,children:Q});return h?_jsx(AvatarSkeleton,{...e}):Z});Avatar.displayName="Avatar";const AvatarSkeleton=({size:e="md",shape:t="circle",style:r})=>{const o=resolveSize(e);return _jsx(Skeleton,{shape:"circle"===t?"circle":"rounded"===t?"rounded":"rect",width:o,height:o,style:r})};AvatarSkeleton.displayName="AvatarSkeleton",Avatar.Skeleton=AvatarSkeleton;const styles=StyleSheet.create({root:{alignItems:"center",justifyContent:"center",overflow:"visible",position:"relative"},pressed:{opacity:.7},initials:{textAlign:"center"},ring:{position:"absolute",top:0,right:0,bottom:0,left:0},picture:{alignItems:"center",justifyContent:"center",overflow:"hidden"},status:{position:"absolute"},badgeTopRight:{top:-2,right:-2,alignItems:"center",justifyContent:"center"},badgeBottomRight:{bottom:-2,right:-2,alignItems:"center",justifyContent:"center"},statusTopRight:{top:0,right:0},statusBottomRight:{bottom:0,right:0}}),SPACING_OFFSET={tight:"lg",normal:"md",loose:"sm"},STAGGER_MS=50,ENTRANCE_DURATION_MS=220,AvatarGroupItem=({delay:e,marginLeft:t,borderColor:r,borderWidth:o,children:s})=>{const a=useTheme(),i=useRef(createAnimatedValue(0)).current;return useEffect(()=>{const t=Animated.timing(i,{toValue:1,duration:220,delay:e,easing:Easing.out(Easing.cubic),useNativeDriver:!0});return t.start(),()=>t.stop()},[e,i]),_jsx(Animated.View,{style:[groupStyles.item,{marginLeft:t,borderRadius:a.radius.pill,borderColor:r,borderWidth:o,opacity:i}],children:s})},AvatarGroup=e=>{const{children:t,max:r=4,size:o="md",spacing:s="normal",overflowVariant:a="count",accessibilityLabel:i,style:n,testID:l}=e,c=useTheme(),u=useMemo(()=>Children.toArray(t).filter(e=>isValidElement(e)),[t]),d=u.length,m=u.slice(0,r),h=Math.max(0,d-r),g=h>0,p=-c.space[SPACING_OFFSET[s]],b=c.colors.surface,f=i??`Group of ${d} ${1===d?"person":"people"}`,y=useMemo(()=>resolveSize(o),[o]),v=Math.max(c.text.xs.size,Math.round(.34*y));return _jsxs(View,{style:[groupStyles.row,n],accessible:!0,accessibilityLabel:f,accessibilityRole:"summary",testID:l,children:[m.map((e,t)=>{const r=e.key??`avatar-${t}`;return _jsx(AvatarGroupItem,{delay:50*t,marginLeft:0===t?0:p,borderColor:b,borderWidth:1.5,children:cloneElement(e,{size:o})},r)}),g?_jsx(AvatarGroupItem,{delay:50*m.length,marginLeft:0===m.length?0:p,borderColor:b,borderWidth:1.5,children:_jsx(View,{style:[groupStyles.overflow,{width:y,height:y,borderRadius:y/2,...smoothCorners,backgroundColor:c.colors["surface-disabled"]}],accessible:!0,accessibilityRole:"text",accessibilityLabel:"count"===a?`${h} more`:"More avatars",children:_jsx(Text,{style:{color:c.colors["text-muted"],fontSize:v,fontWeight:c.weight.semibold},numberOfLines:1,maxFontSizeMultiplier:1.2,children:"count"===a?`+${h}`:"+"})})},"avatar-overflow"):null]})},groupStyles=StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},item:{...smoothCorners},overflow:{alignItems:"center",justifyContent:"center"}}),AvatarWithGroup=Avatar;AvatarWithGroup.Group=AvatarGroup;export{Avatar,AvatarGroup};export default AvatarWithGroup;
1
+ "use strict";import{Image}from"expo-image";import{Children,cloneElement,forwardRef,isValidElement,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{AppIcon}from"../AppIcon/index.js";import{Skeleton}from"../Skeleton/index.js";import{Text}from"../Text/index.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const SOFT_FILL_OPACITY=.14,MIN_TOUCH_TARGET=44,PRESSED_OPACITY=.7,INITIALS_MAX_FONT_SCALE=1.2;export const AVATAR_COLORS=["avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8"];export const avatarToneColors=(e,t)=>{const soft=(e,t)=>tintOf(e,.14,t);switch(t){case"primary":return{background:soft(e.colors.primary,e.colors["primary-soft"]),color:e.colors["primary-text"]};case"success":return{background:soft(e.colors.success,e.colors["bg-subtle"]),color:e.colors["success-text"]};case"warning":return{background:soft(e.colors.warning,e.colors["bg-subtle"]),color:e.colors["warning-text"]};case"danger":return{background:soft(e.colors.danger,e.colors["bg-subtle"]),color:e.colors["danger-text"]};case"info":return{background:soft(e.colors.info,e.colors["bg-subtle"]),color:e.colors["info-text"]};default:return{background:e.colors["bg-muted"],color:e.colors["text-body"]}}};export const DEFAULT_AVATAR_LABELS=Object.freeze({avatar:"Avatar",avatarOf:e=>`${e}'s avatar`,verified:"verified",pendingVerification:"pending verification",groupOf:e=>`Group of ${e} ${1===e?"person":"people"}`,moreCount:e=>`${e} more`,moreAvatars:"More avatars"});const sizeMap={xs:24,sm:32,md:48,lg:64,xl:80},resolveSize=e=>sizeMap[e],resolveRadius=(e,t,r)=>{switch(t){case"circle":return r/2;case"rounded":return Math.max(e.radius.sm,Math.round(.22*r));default:return 0}},initialsFromName=e=>{if(!e)return"";const t=e.trim().split(/\s+/u).filter(Boolean);return 0===t.length?"":1===t.length?t[0].charAt(0).toUpperCase():(t[0].charAt(0)+t[1].charAt(0)).toUpperCase()},hashColor=(e,t)=>{if(!e)return t[0];let r=0;for(let t=0;t<e.length;t+=1)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t[Math.abs(r)%t.length]},RING_WIDTH=1.5,isRingStatus=e=>"verified"===e||"pending"===e,statusColor=(e,t)=>{switch(t){case"online":case"verified":return e.colors.success;case"busy":return e.colors.danger;case"away":case"pending":return e.colors.warning;default:return e.colors["text-subtle"]}},Avatar=forwardRef((e,t)=>{const{source:r,ImageComponent:o,name:s,size:a="md",shape:i="circle",status:n=null,statusPosition:l="bottomRight",tone:c,backgroundColor:u,color:d,fontSize:m,loading:h=!1,accessibilityLabel:g,onPress:p,onLongPress:b,haptic:v,hitSlop:f,style:y,textStyle:A,testID:x,labels:S}=e;warnInvalidValue("Avatar","size",e.size,Object.keys(sizeMap)),warnInvalidValue("Avatar","shape",e.shape,["circle","square","rounded"]),warnInvalidValue("Avatar","status",e.status,["online","offline","busy","away","verified","pending"]),warnInvalidValue("Avatar","statusPosition",e.statusPosition,["topRight","bottomRight"]),warnInvalidValue("Avatar","tone",e.tone,["primary","success","warning","danger","info","neutral"]);const C=useMemo(()=>S?{...DEFAULT_AVATAR_LABELS,...S}:DEFAULT_AVATAR_LABELS,[S]),w=useTheme(),[R,_]=useState(!1),I=useMemo(()=>resolveSize(a),[a]),j=useMemo(()=>resolveRadius(w,i,I),[w,i,I]),M=w.colors.border,T=w.colors.surface,V=useMemo(()=>initialsFromName(s),[s]),L=useMemo(()=>c?avatarToneColors(w,c):null,[w,c]),E=useMemo(()=>u||(L?.background??w.colors[hashColor(s??"",AVATAR_COLORS)]),[u,L,s,w]),k=d??L?.color??w.colors["on-primary"],z=!!r&&!R,O=m??Math.max(w.text.xs.size,Math.round(.4*I)),F=Math.max(8,Math.round(.25*I)),D=isRingStatus(n),G=I-2*(D?3:0),P=D?resolveRadius(w,i,G):j,N=D?statusColor(w,n):"transparent",$=Math.max(12,Math.round(.32*I)),B=Math.max(10,$-4),H=z?w.colors["bg-muted"]:E,U=x??"avatar",W=s?C.avatarOf(s):C.avatar,Y="verified"===n?`, ${C.verified}`:"pending"===n?`, ${C.pendingVerification}`:"",q=g??`${W}${Y}`,X="function"==typeof p||"function"==typeof b,J=g??`${s||W}${Y}`,K=Math.max(0,Math.ceil((44-I)/2)),Q=f??K,Z=[styles.root,{width:I,height:I,borderRadius:j,...smoothCorners,borderWidth:0,borderColor:M,backgroundColor:D?"transparent":H},y],ee=_jsxs(_Fragment,{children:[D?_jsx(View,{style:[styles.ring,{borderRadius:j,...smoothCorners,borderWidth:1.5,borderColor:N}],accessible:!1,pointerEvents:"none",testID:`${U}-ring`}):null,_jsx(View,{style:[styles.picture,{width:G,height:G,borderRadius:P,...smoothCorners,borderWidth:0,borderColor:M,backgroundColor:D?H:"transparent"}],children:z?(()=>{const e={width:G,height:G,borderRadius:P,...smoothCorners},onError=()=>_(!0);return o?_jsx(o,{source:r,onError:onError,style:e,contentFit:"cover",resizeMode:"cover",accessibilityIgnoresInvertColors:!0}):_jsx(Image,{source:r,onError:onError,style:e,contentFit:"cover",accessibilityIgnoresInvertColors:!0})})():_jsx(Text,{variant:"label",weight:"semibold",numberOfLines:1,maxFontSizeMultiplier:1.2,style:[styles.initials,{color:k,fontSize:O,lineHeight:Math.round(O*w.leading.body)},A],children:V??" "})}),"verified"===n?_jsx(View,{style:[styles.status,"topRight"===l?styles.badgeTopRight:styles.badgeBottomRight,{width:$,height:$,borderRadius:$/2,...smoothCorners,backgroundColor:T}],accessible:!1,pointerEvents:"none",testID:`${U}-badge`,children:_jsx(AppIcon,{name:"verify",variant:"bold",size:B,color:N})}):null,n&&!D?_jsx(View,{style:[styles.status,"topRight"===l?styles.statusTopRight:styles.statusBottomRight,{width:F,height:F,borderRadius:F/2,...smoothCorners,backgroundColor:statusColor(w,n),borderWidth:2,borderColor:T}],accessible:!1,pointerEvents:"none"}):null]}),te=X?_jsx(Pressable,{ref:t,onPress:p?e=>{const t=resolveHaptic(v,"selection");t&&triggerHaptic(t),p?.(e)}:void 0,onLongPress:b?e=>{const t=resolveHaptic(v,"longPress");t&&triggerHaptic(t),b?.(e)}:void 0,hitSlop:Q,...hitSlopMarker(Q),accessibilityRole:"button",accessibilityLabel:J,testID:x,style:({pressed:e})=>[Z,e?styles.pressed:null],children:ee}):_jsx(View,{ref:t,style:Z,accessible:!0,accessibilityRole:"image",accessibilityLabel:q,testID:x,children:ee});return h?_jsx(AvatarSkeleton,{...e}):te});Avatar.displayName="Avatar";const AvatarSkeleton=({size:e="md",shape:t="circle",style:r})=>{const o=resolveSize(e);return _jsx(Skeleton,{shape:"circle"===t?"circle":"rounded"===t?"rounded":"rect",width:o,height:o,style:r})};AvatarSkeleton.displayName="AvatarSkeleton",Avatar.Skeleton=AvatarSkeleton;const styles=StyleSheet.create({root:{alignItems:"center",justifyContent:"center",overflow:"visible",position:"relative"},pressed:{opacity:.7},initials:{textAlign:"center"},ring:{position:"absolute",top:0,right:0,bottom:0,left:0},picture:{alignItems:"center",justifyContent:"center",overflow:"hidden"},status:{position:"absolute"},badgeTopRight:{top:-2,right:-2,alignItems:"center",justifyContent:"center"},badgeBottomRight:{bottom:-2,right:-2,alignItems:"center",justifyContent:"center"},statusTopRight:{top:0,right:0},statusBottomRight:{bottom:0,right:0}}),SPACING_OFFSET={tight:"lg",normal:"md",loose:"sm"},STAGGER_MS=50,ENTRANCE_DURATION_MS=220,AvatarGroupItem=({delay:e,marginLeft:t,borderColor:r,borderWidth:o,children:s})=>{const a=useTheme(),i=useRef(createAnimatedValue(0)).current;return useEffect(()=>{const t=Animated.timing(i,{toValue:1,duration:220,delay:e,easing:Easing.out(Easing.cubic),useNativeDriver:!0});return t.start(),()=>t.stop()},[e,i]),_jsx(Animated.View,{style:[groupStyles.item,{marginLeft:t,borderRadius:a.radius.pill,borderColor:r,borderWidth:o,opacity:i}],children:s})},AvatarGroup=e=>{const{children:t,max:r=4,size:o="md",spacing:s="normal",overflowVariant:a="count",accessibilityLabel:i,style:n,testID:l,labels:c}=e;warnInvalidValue("AvatarGroup","spacing",e.spacing,["tight","normal","loose"]),warnInvalidValue("AvatarGroup","overflowVariant",e.overflowVariant,["count","plus"]),warnInvalidValue("AvatarGroup","size",e.size,Object.keys(sizeMap));const u=useMemo(()=>c?{...DEFAULT_AVATAR_LABELS,...c}:DEFAULT_AVATAR_LABELS,[c]),d=useTheme(),m=useMemo(()=>Children.toArray(t).filter(e=>isValidElement(e)),[t]),h=m.length,g=m.slice(0,r),p=Math.max(0,h-r),b=p>0,v=-d.space[SPACING_OFFSET[s]],f=d.colors.surface,y=i??u.groupOf(h),A=useMemo(()=>resolveSize(o),[o]),x=Math.max(d.text.xs.size,Math.round(.34*A));return _jsxs(View,{style:[groupStyles.row,n],accessible:!0,accessibilityLabel:y,accessibilityRole:"summary",testID:l,children:[g.map((e,t)=>{const r=e.key??`avatar-${t}`,s=cloneElement(e,{size:o,labels:e.props.labels??c});return _jsx(AvatarGroupItem,{delay:50*t,marginLeft:0===t?0:v,borderColor:f,borderWidth:1.5,children:s},r)}),b?_jsx(AvatarGroupItem,{delay:50*g.length,marginLeft:0===g.length?0:v,borderColor:f,borderWidth:1.5,children:_jsx(View,{style:[groupStyles.overflow,{width:A,height:A,borderRadius:A/2,...smoothCorners,backgroundColor:d.colors["surface-disabled"]}],accessible:!0,accessibilityRole:"text",accessibilityLabel:"count"===a?u.moreCount(p):u.moreAvatars,children:_jsx(Text,{variant:"label",weight:"semibold",color:"secondary",numberOfLines:1,maxFontSizeMultiplier:1.2,style:{fontSize:x,lineHeight:Math.round(x*d.leading.body)},children:"count"===a?`+${p}`:"+"})})},"avatar-overflow"):null]})},groupStyles=StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},item:{...smoothCorners},overflow:{alignItems:"center",justifyContent:"center"}});export{Avatar,AvatarGroup};export default Avatar;
@@ -1 +1 @@
1
- "use strict";export{Avatar,AvatarGroup,avatarToneColors,default}from"./Avatar.js";
1
+ "use strict";export{Avatar,AvatarGroup,avatarToneColors,DEFAULT_AVATAR_LABELS,default}from"./Avatar.js";
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,Easing,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,resolveBadgeSize,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{Skeleton}from"../Skeleton/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const toneFor=(e,t)=>{switch(t){case"primary":return{background:e.colors.primary,text:e.colors["on-primary"]};case"success":return{background:e.colors.success,text:e.colors["on-success"]};case"warning":return{background:e.colors.warning,text:e.colors["on-warning"]};case"info":return{background:e.colors.info,text:e.colors["on-info"]};case"neutral":return{background:e.colors["bg-muted"],text:e.colors["text-body"]};default:return{background:e.colors.danger,text:e.colors["on-danger"]}}},anchorPosition=(e,t)=>{const o=-t;switch(e){case"topLeft":return{top:o,left:o};case"bottomRight":return{bottom:o,right:o};case"bottomLeft":return{bottom:o,left:o};default:return{top:o,right:o}}},formatValue=(e,t)=>{if(null==e)return null;if("number"==typeof e)return e<=0?null:e>t?`${t}+`:String(e);const o=String(e);return 0===o.length?null:o},Badge=forwardRef((e,t)=>{const{value:o,max:i=99,variant:r="standard",tone:n="danger",size:s="sm",invisible:a=!1,loading:l=!1,children:d,anchor:c="topRight",pulse:u=!1,accessibilityLabel:g,style:h,badgeStyle:m,textStyle:f,testID:p}=e,b=useTheme(),x=useMemo(()=>toneFor(b,n),[b,n]),y=resolveBadgeSize(b,s),w=b.components.badge["border-width"],S=b.components.badge["anchor-offset"],j="dot"===r?null:formatValue(o,i),k=!a&&("dot"===r||null!==j),v=useRef(createAnimatedValue(1)).current;useEffect(()=>{if(!u||!k)return void setNativeValue(v,1);const e=Animated.loop(Animated.sequence([Animated.timing(v,{toValue:1.15,duration:b.motion.duration.slow,easing:Easing.bezier(...b.motion.ease["in-out"]),useNativeDriver:!0}),Animated.timing(v,{toValue:1,duration:b.motion.duration.slow,easing:Easing.bezier(...b.motion.ease["in-out"]),useNativeDriver:!0})]));return e.start(),()=>{e.stop()}},[u,k,v,b]);const z="dot"===r,B=z?"image":"text",V=g??(z?"Notification indicator":j?`${j} unread`:void 0),_=k?_jsx(Animated.View,{style:[styles.badge,z?{width:y["dot-size"],height:y["dot-size"],borderRadius:y["dot-size"]/2,...smoothCorners,paddingHorizontal:0}:{minWidth:y["min-width"],minHeight:y.height,borderRadius:b.radius.pill,...smoothCorners,paddingHorizontal:y["padding-x"]},{backgroundColor:x.background,transform:[{scale:v}]},d?{position:"absolute",borderWidth:w,borderColor:b.colors.surface,...anchorPosition(c,S)}:null,m],accessible:!0,accessibilityRole:B,accessibilityLabel:V,children:z||null===j?null:_jsx(Text,{style:[styles.text,{color:x.text,fontSize:y.text,...fontFor(b,"bold")},f],numberOfLines:1,maxFontSizeMultiplier:b.settings.maxFontSizeMultiplier,children:j??" "})}):null,R=d?_jsxs(View,{ref:t,style:[styles.wrapper,h],testID:p,children:[d,_]}):_jsx(View,{ref:t,style:h,testID:p,children:_});return l?_jsx(BadgeSkeleton,{...e}):R});Badge.displayName="Badge";const BadgeSkeleton=({variant:e="standard",size:t="md",children:o,anchor:i,style:r,badgeStyle:n})=>{const s=useTheme(),a=resolveBadgeSize(s,t);if("dot"===e)return _jsx(Skeleton,{shape:"circle",width:a["dot-size"],height:a["dot-size"],style:[n,r]});const l=a.height/2;if(void 0!==o){const e="topLeft"===i?{top:-a.height/2,left:-a.height/2}:"bottomRight"===i?{bottom:-a.height/2,right:-a.height/2}:"bottomLeft"===i?{bottom:-a.height/2,left:-a.height/2}:{top:-a.height/2,right:-a.height/2};return _jsxs(View,{style:[styles.wrapper,r],children:[o,_jsx(View,{style:[{position:"absolute"},e],children:_jsx(Skeleton,{width:a["min-width"]+a["padding-x"],height:a.height,radius:l,style:n})})]})}return _jsx(Skeleton,{width:a["min-width"]+a["padding-x"],height:a.height,radius:l,style:[n,r]})};BadgeSkeleton.displayName="BadgeSkeleton",Badge.Skeleton=BadgeSkeleton;const styles=StyleSheet.create({wrapper:{position:"relative",alignSelf:"flex-start"},badge:{alignItems:"center",justifyContent:"center",flexDirection:"row"},text:{textAlign:"center",includeFontPadding:!1}});export{Badge};export default Badge;
1
+ "use strict";import{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,Easing,StyleSheet,View}from"react-native";import{createAnimatedValue,resolveBadgeSize,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{Skeleton}from"../Skeleton/index.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_BADGE_LABELS=Object.freeze({indicator:"Notification indicator",unread:e=>`${e} unread`});const toneFor=(e,t)=>{switch(t){case"primary":return{background:e.colors.primary,text:e.colors["on-primary"]};case"success":return{background:e.colors.success,text:e.colors["on-success"]};case"warning":return{background:e.colors.warning,text:e.colors["on-warning"]};case"info":return{background:e.colors.info,text:e.colors["on-info"]};case"neutral":return{background:e.colors["bg-muted"],text:e.colors["text-body"]};default:return{background:e.colors.danger,text:e.colors["on-danger"]}}},anchorPosition=(e,t)=>{const o=-t;switch(e){case"topLeft":return{top:o,left:o};case"bottomRight":return{bottom:o,right:o};case"bottomLeft":return{bottom:o,left:o};default:return{top:o,right:o}}},formatValue=(e,t)=>{if(null==e)return null;if("number"==typeof e)return e<=0?null:e>t?`${t}+`:String(e);const o=String(e);return 0===o.length?null:o},Badge=forwardRef((e,t)=>{const{value:o,max:i=99,variant:r="standard",tone:n="danger",size:a="sm",invisible:s=!1,loading:l=!1,children:d,anchor:c="topRight",pulse:u=!1,accessibilityLabel:g,labels:h,style:m,badgeStyle:f,textStyle:p,testID:b}=e;warnInvalidValue("Badge","variant",e.variant,["standard","dot"]),warnInvalidValue("Badge","tone",e.tone,["primary","success","warning","danger","neutral","info"]),warnInvalidValue("Badge","size",e.size,["sm","md"]),warnInvalidValue("Badge","anchor",e.anchor,["topRight","topLeft","bottomRight","bottomLeft"]);const x=useMemo(()=>({...DEFAULT_BADGE_LABELS,...h}),[h]),w=useTheme(),y=useMemo(()=>toneFor(w,n),[w,n]),v=resolveBadgeSize(w,a),S=w.components.badge["border-width"],j=w.components.badge["anchor-offset"],B="dot"===r?null:formatValue(o,i),V=!s&&("dot"===r||null!==B),k=useRef(createAnimatedValue(1)).current;useEffect(()=>{if(!u||!V)return void setNativeValue(k,1);const e=Animated.loop(Animated.sequence([Animated.timing(k,{toValue:1.15,duration:w.motion.duration.slow,easing:Easing.bezier(...w.motion.ease["in-out"]),useNativeDriver:!0}),Animated.timing(k,{toValue:1,duration:w.motion.duration.slow,easing:Easing.bezier(...w.motion.ease["in-out"]),useNativeDriver:!0})]));return e.start(),()=>{e.stop()}},[u,V,k,w]);const z="dot"===r,_=z?"image":"text",A=g??(z?x.indicator:B?x.unread(B):void 0),L=V?_jsx(Animated.View,{style:[styles.badge,z?{width:v["dot-size"],height:v["dot-size"],borderRadius:v["dot-size"]/2,...smoothCorners,paddingHorizontal:0}:{minWidth:v["min-width"],minHeight:v.height,borderRadius:w.radius.pill,...smoothCorners,paddingHorizontal:v["padding-x"]},{backgroundColor:y.background,transform:[{scale:k}]},d?{position:"absolute",borderWidth:S,borderColor:w.colors.surface,...anchorPosition(c,j)}:null,f],accessible:!0,accessibilityRole:_,accessibilityLabel:A,children:z||null===B?null:_jsx(Text,{variant:"caption",weight:"bold",numberOfLines:1,style:[styles.text,{color:y.text,fontSize:v.text,lineHeight:Math.round(v.text*w.leading.body)},p],children:B??" "})}):null,R=d?_jsxs(View,{ref:t,style:[styles.wrapper,m],testID:b,children:[d,L]}):_jsx(View,{ref:t,style:m,testID:b,children:L});return l?_jsx(BadgeSkeleton,{...e}):R});Badge.displayName="Badge";const BadgeSkeleton=({variant:e="standard",size:t="md",children:o,anchor:i,style:r,badgeStyle:n})=>{const a=useTheme(),s=resolveBadgeSize(a,t);if("dot"===e)return _jsx(Skeleton,{shape:"circle",width:s["dot-size"],height:s["dot-size"],style:[n,r]});const l=s.height/2;if(void 0!==o){const e="topLeft"===i?{top:-s.height/2,left:-s.height/2}:"bottomRight"===i?{bottom:-s.height/2,right:-s.height/2}:"bottomLeft"===i?{bottom:-s.height/2,left:-s.height/2}:{top:-s.height/2,right:-s.height/2};return _jsxs(View,{style:[styles.wrapper,r],children:[o,_jsx(View,{style:[{position:"absolute"},e],children:_jsx(Skeleton,{width:s["min-width"]+s["padding-x"],height:s.height,radius:l,style:n})})]})}return _jsx(Skeleton,{width:s["min-width"]+s["padding-x"],height:s.height,radius:l,style:[n,r]})};BadgeSkeleton.displayName="BadgeSkeleton",Badge.Skeleton=BadgeSkeleton;const styles=StyleSheet.create({wrapper:{position:"relative",alignSelf:"flex-start"},badge:{alignItems:"center",justifyContent:"center",flexDirection:"row"},text:{textAlign:"center",includeFontPadding:!1}});export{Badge};export default Badge;
@@ -1 +1 @@
1
- "use strict";export{Badge,default}from"./Badge.js";
1
+ "use strict";export{Badge,DEFAULT_BADGE_LABELS,default}from"./Badge.js";
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useEffect,useMemo,useRef,useState}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{Skeleton,SkeletonText}from"../Skeleton/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const Banner=forwardRef((e,t)=>{const{title:r,message:o,variant:s="info",icon:n,actions:i,dismissible:l=!1,onDismiss:a,haptic:c,visible:d=!0,animateMount:u=!0,loading:m=!1,accessibilityRole:p="alert",accessibilityLabel:g,style:h,containerStyle:x,iconCircleStyle:y,tintBarStyle:b,closeButtonStyle:f,actionButtonStyle:w,testID:j}=e,S=useTheme(),k=usePresenceMotion(),C=useMemo(()=>buildStyles(S),[S]),B=useMemo(()=>tintFor(S,s),[S,s]),[_,R]=k.range(-20,0),V=useRef(createAnimatedValue(u&&d?_:0)).current,v=useRef(createAnimatedValue(u&&d?0:d?1:0)).current,[z,T]=useState(d),H=useRef(!0);if(useEffect(()=>{if(H.current&&(H.current=!1,!u))return;let e;return d?(T(!0),e=Animated.parallel([Animated.timing(V,{toValue:R,duration:S.motion.duration.default,useNativeDriver:!0}),Animated.timing(v,{toValue:1,duration:k.duration("default"),useNativeDriver:!0})]),e.start()):z&&(e=Animated.parallel([Animated.timing(V,{toValue:_,duration:S.motion.duration.fast,useNativeDriver:!0}),Animated.timing(v,{toValue:0,duration:k.duration("fast"),useNativeDriver:!0})]),e.start(()=>{T(!1)})),()=>e?.stop()},[d]),!z)return null;const A=r??" ",D="string"==typeof o?o??" ":"",M="alert"===p?"danger"===s?"assertive":"polite":"none",L=_jsxs(Animated.View,{ref:t,accessibilityRole:p,accessibilityLiveRegion:M,accessibilityLabel:g,testID:j,style:[C.container,{backgroundColor:S.colors["bg-subtle"],borderRadius:S.radius.md,...smoothCorners,padding:S.space.md,opacity:v,transform:[{translateY:V}]},h,x],children:[S.components.banner["tint-bar-width"]>0?_jsx(View,{style:[C.tintBar,{backgroundColor:B.bar},b]}):null,_jsxs(View,{style:C.row,children:[!1===n?null:_jsx(View,n?{style:C.iconWrap,children:n}:{style:[C.iconCircle,{backgroundColor:`${B.bar}22`},y],children:_jsx(Text,{style:[C.iconGlyph,{color:B.ink}],accessible:!1,children:B.glyph})}),_jsxs(View,{style:C.textBlock,children:[r||m?_jsx(Text,{style:{color:S.colors["text-body"],fontSize:S.text.base.size,...fontFor(S,"semibold"),lineHeight:20},numberOfLines:2,children:A}):null,"string"==typeof o||m?_jsx(Text,{style:{color:S.colors["text-muted"],fontSize:S.text.sm.size,...fontFor(S,"normal"),lineHeight:18,marginTop:r?S.space.xxs:0},children:D||" "}):_jsx(View,{style:{marginTop:r?S.space.xxs:0},children:o})]}),l?_jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:"Dismiss banner",onPress:()=>{const e=resolveHaptic(c,"selection");e&&triggerHaptic(e),a?.()},hitSlop:8,...hitSlopMarker(8),style:({pressed:e})=>[C.closeBtn,{backgroundColor:e?S.colors["surface-pressed"]:"transparent"},f],children:_jsx(Text,{style:{color:S.colors["text-muted"],fontSize:S.text.lg.size,fontWeight:S.weight.bold,lineHeight:17},accessible:!1,children:"×"})}):null]}),i&&i.length>0?_jsx(View,{style:C.actionsRow,children:i.map((e,t)=>{const r=e.tone??"primary",o=e.variant??"ghost",s="danger"===r?S.colors.danger:"neutral"===r?S.colors["text-muted"]:B.glyphColor,n="danger"===r?S.colors["danger-text"]:"neutral"===r?S.colors["text-muted"]:B.ink,i="danger"===r?S.colors["on-danger"]:"neutral"===r?S.colors["on-neutral-strong"]:B.on,l="solid"===o;return _jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:e.label,onPress:()=>{const t=resolveHaptic(c,"selection");t&&triggerHaptic(t),e.onPress()},style:({pressed:t})=>[C.actionBtn,"md"===e.size&&C.actionBtnMd,"outline"===o&&{borderWidth:1,borderColor:n},{backgroundColor:l?s:t?S.colors["surface-pressed"]:"transparent",opacity:l&&t?.85:1},w],children:_jsx(Text,{style:{color:l?i:n,fontSize:S.text.sm.size,textAlign:"center",...fontFor(S,"semibold")},children:e.label})},`${e.label}-${t}`)})}):null]});return m?_jsx(BannerSkeleton,{...e}):L});Banner.displayName="Banner";const BannerSkeleton=({title:e,actions:t,icon:r,containerStyle:o,style:s})=>{const n=useTheme(),i=!1!==r;return _jsxs(View,{style:[{flexDirection:"row",alignItems:"flex-start",backgroundColor:n.colors.surface,borderRadius:n.radius.md,...smoothCorners,padding:n.space.md,borderWidth:1,borderColor:n.colors.border},o,s],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?_jsx(View,{style:{marginRight:n.space.sm},children:_jsx(Skeleton,{shape:"circle",width:32,height:32})}):null,_jsxs(View,{style:{flex:1},children:[void 0!==e?_jsx(Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:n.space.xs}}):null,_jsx(SkeletonText,{lines:2,fontSize:n.text.sm.size,lastLineWidth:"70%"}),t&&t.length>0?_jsx(View,{style:{flexDirection:"row",marginTop:n.space.sm},children:t.map((e,t)=>_jsx(Skeleton,{width:72,height:28,shape:"rounded",style:{marginRight:n.space.sm}},`sk-banner-action-${t}`))}):null]})]})};BannerSkeleton.displayName="BannerSkeleton",Banner.Skeleton=BannerSkeleton;const tintFor=(e,t)=>{switch(t){case"success":return{bar:e.colors.success,glyphColor:e.colors.success,ink:e.colors["success-text"],on:e.colors["on-success"],glyph:"✓"};case"warning":return{bar:e.colors.warning,glyphColor:e.colors.warning,ink:e.colors["warning-text"],on:e.colors["on-warning"],glyph:"⚠"};case"danger":return{bar:e.colors.danger,glyphColor:e.colors.danger,ink:e.colors["danger-text"],on:e.colors["on-danger"],glyph:"✗"};case"neutral":return{bar:e.colors["text-subtle"],glyphColor:e.colors["text-muted"],ink:e.colors["text-muted"],on:e.colors["on-neutral-strong"],glyph:"i"};default:return{bar:e.colors.primary,glyphColor:e.colors.primary,ink:e.colors["primary-text"],on:e.colors["on-primary"],glyph:"i"}}},buildStyles=e=>{const t=e.components.banner,r=e.space.sm;return StyleSheet.create({container:{overflow:"hidden",paddingLeft:e.space.md},tintBar:{position:"absolute",left:0,top:0,bottom:0,width:t["tint-bar-width"]},row:{flexDirection:"row",alignItems:"flex-start"},iconWrap:{marginRight:r},iconCircle:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginRight:r},iconGlyph:{fontSize:e.text.base.size,fontWeight:"700",lineHeight:17},textBlock:{flex:1,paddingRight:e.space.xs},closeBtn:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginLeft:e.space.xxs},actionsRow:{flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",marginTop:e.space.xs,columnGap:e.space.xs,rowGap:e.space.xs},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,borderRadius:e.radius.sm,...smoothCorners,maxWidth:"100%",alignItems:"center",justifyContent:"center"},actionBtnMd:{minHeight:44,paddingHorizontal:e.space.md}})};export{Banner};export default Banner;
1
+ "use strict";import{forwardRef,useEffect,useMemo,useRef,useState}from"react";import{Animated,Pressable,StyleSheet,View}from"react-native";import{usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{Skeleton,SkeletonText}from"../Skeleton/index.js";import{Text}from"../Text/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_BANNER_LABELS=Object.freeze({dismiss:"Dismiss banner"});const Banner=forwardRef((e,t)=>{const{title:r,message:n,tone:o="neutral",icon:s,actions:i,dismissible:a=!1,onClose:l,haptic:c,visible:d=!0,animateMount:u=!0,loading:m=!1,accessibilityRole:p="alert",accessibilityLabel:g,labels:h,style:y,containerStyle:x,iconCircleStyle:b,tintBarStyle:f,closeButtonStyle:w,actionButtonStyle:j,testID:S}=e;warnInvalidValue("Banner","tone",e.tone,["primary","success","warning","danger","info","neutral"]),warnInvalidValue("Banner","accessibilityRole",e.accessibilityRole,["alert","summary","none"]);const k=useTheme(),B=usePresenceMotion(),v=useMemo(()=>buildStyles(k),[k]),C=useMemo(()=>tintFor(k,o),[k,o]),_=useMemo(()=>({...DEFAULT_BANNER_LABELS,...h}),[h]),[R,V]=B.range(-20,0),A=useRef(createAnimatedValue(u&&d?R:0)).current,I=useRef(createAnimatedValue(u&&d?0:d?1:0)).current,[T,L]=useState(d),D=useRef(!0);if(useEffect(()=>{if(D.current&&(D.current=!1,!u))return;let e;return d?(L(!0),e=Animated.parallel([Animated.timing(A,{toValue:V,duration:k.motion.duration.default,useNativeDriver:!0}),Animated.timing(I,{toValue:1,duration:B.duration("default"),useNativeDriver:!0})]),e.start()):T&&(e=Animated.parallel([Animated.timing(A,{toValue:R,duration:k.motion.duration.fast,useNativeDriver:!0}),Animated.timing(I,{toValue:0,duration:B.duration("fast"),useNativeDriver:!0})]),e.start(()=>{L(!1)})),()=>e?.stop()},[d]),!T)return null;const H=r??" ",M="string"==typeof n?n??" ":"",z="alert"===p?"danger"===o?"assertive":"polite":"none",N=_jsxs(Animated.View,{ref:t,accessibilityRole:p,accessibilityLiveRegion:z,accessibilityLabel:g,testID:S,style:[v.container,{backgroundColor:k.colors["bg-subtle"],borderRadius:k.radius.md,...smoothCorners,padding:k.space.md,opacity:I,transform:[{translateY:A}]},y,x],children:[k.components.banner["tint-bar-width"]>0?_jsx(View,{style:[v.tintBar,{backgroundColor:C.bar},f]}):null,_jsxs(View,{style:v.row,children:[!1===s?null:_jsx(View,s?{style:v.iconWrap,children:renderSlotIcon(s,{color:C.ink,size:k.text.xl.size,disabled:!1})}:{style:[v.iconCircle,{backgroundColor:`${C.bar}22`},b],children:_jsx(Text,{variant:"body",weight:"bold",accessible:!1,style:[v.iconGlyph,{color:C.ink}],children:C.glyph})}),_jsxs(View,{style:v.textBlock,children:[r||m?_jsx(Text,{variant:"body",weight:"semibold",numberOfLines:2,style:{lineHeight:20},children:H}):null,"string"==typeof n||m?_jsx(Text,{variant:"bodySmall",color:"secondary",style:{lineHeight:18,marginTop:r?k.space.xxs:0},children:M||" "}):_jsx(View,{style:{marginTop:r?k.space.xxs:0},children:n})]}),a?_jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:_.dismiss,onPress:()=>{const e=resolveHaptic(c,"selection");e&&triggerHaptic(e),l?.()},hitSlop:8,...hitSlopMarker(8),style:({pressed:e})=>[v.closeBtn,{backgroundColor:e?k.colors["surface-pressed"]:"transparent"},w],children:_jsx(Text,{variant:"title",weight:"bold",color:"secondary",accessible:!1,style:{lineHeight:17},children:"×"})}):null]}),i&&i.length>0?_jsx(View,{style:v.actionsRow,children:i.map((e,t)=>{warnInvalidValue("Banner","action.tone",e.tone,["primary","success","warning","danger","info","neutral"]),warnInvalidValue("Banner","action.variant",e.variant,["solid","outline","ghost"]),warnInvalidValue("Banner","action.size",e.size,["sm","md"]);const r=e.tone??"primary",n=e.variant??"ghost",o="primary"===r?C.glyphColor:"neutral"===r?k.colors["text-muted"]:k.colors[r],s="primary"===r?C.ink:"neutral"===r?k.colors["text-muted"]:k.colors[`${r}-text`],i="primary"===r?C.on:"neutral"===r?k.colors["on-neutral-strong"]:k.colors[`on-${r}`],a="solid"===n;return _jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:e.label,onPress:()=>{const t=resolveHaptic(c,"selection");t&&triggerHaptic(t),e.onPress()},style:({pressed:t})=>[v.actionBtn,"md"===e.size&&v.actionBtnMd,"outline"===n&&{borderWidth:1,borderColor:s},{backgroundColor:a?o:t?k.colors["surface-pressed"]:"transparent",opacity:a&&t?.85:1},j],children:_jsx(Text,{variant:"bodySmall",weight:"semibold",align:"center",style:{color:a?i:s},children:e.label})},`${e.label}-${t}`)})}):null]});return m?_jsx(BannerSkeleton,{...e}):N});Banner.displayName="Banner";const BannerSkeleton=({title:e,actions:t,icon:r,containerStyle:n,style:o})=>{const s=useTheme(),i=!1!==r;return _jsxs(View,{style:[{flexDirection:"row",alignItems:"flex-start",backgroundColor:s.colors.surface,borderRadius:s.radius.md,...smoothCorners,padding:s.space.md,borderWidth:1,borderColor:s.colors.border},n,o],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?_jsx(View,{style:{marginRight:s.space.sm},children:_jsx(Skeleton,{shape:"circle",width:32,height:32})}):null,_jsxs(View,{style:{flex:1},children:[void 0!==e?_jsx(Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:s.space.xs}}):null,_jsx(SkeletonText,{lines:2,fontSize:s.text.sm.size,lastLineWidth:"70%"}),t&&t.length>0?_jsx(View,{style:{flexDirection:"row",marginTop:s.space.sm},children:t.map((e,t)=>_jsx(Skeleton,{width:72,height:28,shape:"rounded",style:{marginRight:s.space.sm}},`sk-banner-action-${t}`))}):null]})]})};BannerSkeleton.displayName="BannerSkeleton",Banner.Skeleton=BannerSkeleton;const tintFor=(e,t)=>{switch(t){case"success":return{bar:e.colors.success,glyphColor:e.colors.success,ink:e.colors["success-text"],on:e.colors["on-success"],glyph:"✓"};case"warning":return{bar:e.colors.warning,glyphColor:e.colors.warning,ink:e.colors["warning-text"],on:e.colors["on-warning"],glyph:"⚠"};case"danger":return{bar:e.colors.danger,glyphColor:e.colors.danger,ink:e.colors["danger-text"],on:e.colors["on-danger"],glyph:"✗"};case"neutral":return{bar:e.colors["text-subtle"],glyphColor:e.colors["text-muted"],ink:e.colors["text-muted"],on:e.colors["on-neutral-strong"],glyph:"i"};case"primary":return{bar:e.colors.primary,glyphColor:e.colors.primary,ink:e.colors["primary-text"],on:e.colors["on-primary"],glyph:"i"};case"info":return{bar:e.colors.info,glyphColor:e.colors.info,ink:e.colors["info-text"],on:e.colors["on-info"],glyph:"i"};default:return tintFor(e,"neutral")}},buildStyles=e=>{const t=e.components.banner,r=e.space.sm;return StyleSheet.create({container:{overflow:"hidden",paddingLeft:e.space.md},tintBar:{position:"absolute",left:0,top:0,bottom:0,width:t["tint-bar-width"]},row:{flexDirection:"row",alignItems:"flex-start"},iconWrap:{marginRight:r},iconCircle:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginRight:r},iconGlyph:{lineHeight:17},textBlock:{flex:1,paddingRight:e.space.xs},closeBtn:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginLeft:e.space.xxs},actionsRow:{flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",marginTop:e.space.xs,columnGap:e.space.xs,rowGap:e.space.xs},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,borderRadius:e.radius.sm,...smoothCorners,maxWidth:"100%",alignItems:"center",justifyContent:"center"},actionBtnMd:{minHeight:44,paddingHorizontal:e.space.md}})};export{Banner};export default Banner;
@@ -1 +1 @@
1
- "use strict";export{Banner,default}from"./Banner.js";
1
+ "use strict";export{Banner,DEFAULT_BANNER_LABELS,default}from"./Banner.js";
@@ -1 +1 @@
1
- "use strict";import{formatCompactNumber,formatNumber}from"@webority/mobile-core";import{forwardRef,useCallback,useMemo,useRef,useState}from"react";import{StyleSheet,View}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import{useControllableState}from"../../hooks/index.js";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{Text}from"../Text/index.js";import{barScale}from"./scale.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const AUTO_VALUES_MAX_BARS=7,MAX_BAR_WIDTH=40,BAR_SHARE=.6,MIN_BAR_HEIGHT=2,VALUE_LABEL_ROOM=20,PLOT_PAD=6,HEADER_MIN_HEIGHT=48,AXIS_LABEL_MIN_WIDTH=44,CHAR_WIDTH=7,FONT_SCALE_CAP=1.2,toneColor=(e,t)=>"neutral"===t?e.colors["text-muted"]:e.colors[`${t}-text`],safe=e=>Number.isFinite(e)?e:0,defaultFormatValue=e=>formatNumber(e),defaultFormatTick=e=>formatCompactNumber(e),BarChart=forwardRef((e,t)=>{const{data:r,tone:a="primary",color:s,height:i=160,label:l,summary:o,formatValue:n=defaultFormatValue,formatTick:c=defaultFormatTick,showValues:u,selection:m,defaultSelection:h=null,onSelect:d,haptic:x,style:f,testID:b}=e,p=useTheme(),y=r.length,[_,g]=useState(0),[S,j]=useControllableState({value:m,defaultValue:h,onChange:d}),M=null!==S&&S>=0&&S<y?S:null,w=useRef(M);w.current=M;const C=useRef(-1),T=resolveHaptic(x,"tick"),v=useCallback(()=>{T&&triggerHaptic(T)},[T]),R=u??(y>0&&y<=7),V=useMemo(()=>r.map(e=>safe(e.value)),[r]),A=useMemo(()=>barScale(V),[V]),L=R?20:6,I=R&&A.min<0?20:6,k=Math.max(1,i-L-I),D=useCallback(e=>L+(A.max-e)/(A.max-A.min)*k,[L,A.max,A.min,k]),H=D(0),B=useMemo(()=>A.ticks.map(e=>c(e)),[A.ticks,c]),E=Math.ceil(7*Math.max(...B.map(e=>e.length),1)*1.2),O=y>0?_/y:0,$=Math.max(1,Math.ceil(44/Math.max(1,O||44))),F=useCallback(e=>{const t=r[e];return t.accessibilityLabel??`${t.label}, ${n(V[e])}`},[r,n,V]),N=useMemo(()=>{let e=-1;return V.forEach((t,r)=>{(-1===e||t>V[e])&&(e=r)}),e},[V]),G=o??(N>=0?`Highest: ${r[N].label}, ${n(V[N])}`:""),W=useRef({fire:v,setSelected:j,count:y,plotWidth:_});W.current={fire:v,setSelected:j,count:y,plotWidth:_};const P=useMemo(()=>{const indexAt=e=>{const{count:t,plotWidth:r}=W.current;return 0===t||r<=0||!Number.isFinite(e)?-1:Math.min(t-1,Math.max(0,Math.floor(e/r*t)))},scrubTo=e=>{const t=indexAt(e);t<0||t===C.current||(C.current=t,W.current.fire(),W.current.setSelected(t))},e=Gesture.Pan().runOnJS(!0).activeOffsetX([-8,8]).failOffsetY([-12,12]).onStart(e=>{C.current=w.current??-1,scrubTo(e.x)}).onUpdate(e=>scrubTo(e.x)).withTestId(b?`${b}-pan`:"bar-chart-pan"),t=Gesture.Tap().runOnJS(!0).onEnd((e,t)=>{if(!t)return;const r=indexAt(e.x);r<0||(W.current.fire(),C.current=r,W.current.setSelected(r===w.current?null:r))}).withTestId(b?`${b}-tap`:"bar-chart-tap");return Gesture.Race(e,t)},[b]),U=useCallback(e=>{if(0===y)return;const t=w.current,r="increment"===e.nativeEvent.actionName?null===t?0:Math.min(y-1,t+1):null===t?y-1:Math.max(0,t-1);r!==t&&(v(),j(r))},[y,v,j]),X=useCallback(e=>{const t=Math.round(e.nativeEvent.layout.width);g(e=>e===t?e:t)},[]),z=s??toneColor(p,a),J=p.radius.sm,Y=l??"Bar chart",q=0===y?`${Y}, no data`:G?`${Y}, ${G}`:Y,K=null===M?G:F(M),Q=V.map((e,t)=>{const r=Math.min(40,Math.max(4,.6*O)),a=D(e),s=e>=0?a:H,l=0===e?0:Math.max(2,Math.abs(a-H)),o=null!==M&&M!==t;return _jsxs(View,{style:[styles.slot,{height:i}],children:[_>0&&l>0?_jsx(View,{testID:b?`${b}-bar-${t}`:void 0,style:{position:"absolute",left:(O-r)/2,top:s,width:r,height:l,backgroundColor:z,opacity:o?.4:1,...smoothCorners,...e>=0?{borderTopLeftRadius:J,borderTopRightRadius:J}:{borderBottomLeftRadius:J,borderBottomRightRadius:J}}}):null,R&&_>0?_jsx(Text,{variant:"caption",color:"secondary",align:"center",numberOfLines:1,maxFontSizeMultiplier:1.2,style:{position:"absolute",left:0,right:0,top:e>=0?a-20+2:a+2},children:c(e)}):null]},t)});return 0===y?_jsx(View,{ref:t,accessible:!0,accessibilityRole:"image",accessibilityLabel:q,testID:b,style:[styles.root,f],children:_jsx(Text,{variant:"bodySmall",color:"secondary",children:"No data"})}):_jsxs(View,{ref:t,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:q,accessibilityValue:{min:0,max:y-1,now:M??0,text:K},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:U,testID:b,style:[styles.root,f],children:[_jsx(View,{style:[styles.header,{minHeight:48,marginBottom:p.space.sm}],children:null===M?G?_jsx(Text,{variant:"bodySmall",color:"secondary",children:G}):null:_jsxs(_Fragment,{children:[_jsx(Text,{variant:"caption",color:"secondary",numberOfLines:1,children:r[M].label}),_jsx(Text,{variant:"h3",numberOfLines:1,testID:b?`${b}-callout`:void 0,children:n(V[M])})]})}),_jsxs(View,{style:styles.body,children:[_jsx(View,{style:{width:E,height:i},children:A.ticks.map((e,t)=>_jsx(Text,{variant:"caption",color:"tertiary",align:"right",numberOfLines:1,maxFontSizeMultiplier:1.2,style:{position:"absolute",right:p.space.xs,left:0,top:D(e)-8},children:B[t]},e))}),_jsxs(View,{style:styles.plotColumn,children:[_jsx(GestureDetector,{gesture:P,children:_jsxs(View,{style:{height:i},onLayout:X,testID:b?`${b}-plot`:void 0,children:[A.ticks.map(e=>_jsx(View,{pointerEvents:"none",style:{position:"absolute",left:0,right:0,top:D(e)-(0===e?.75:StyleSheet.hairlineWidth),height:0===e?1.5:2*StyleSheet.hairlineWidth,backgroundColor:0===e?p.colors["text-subtle"]:p.colors["border-subtle"]}},e)),_jsx(View,{style:[styles.slots,{height:i}],children:Q})]})}),_jsx(View,{style:styles.axis,children:r.map((e,t)=>_jsx(View,{style:styles.axisSlot,children:t%$===0?_jsx(Text,{variant:"caption",color:M===t?"primary":"tertiary",weight:M===t?"semibold":void 0,align:"center",numberOfLines:1,maxFontSizeMultiplier:1.2,style:O>0?{width:O*$}:void 0,children:e.axisLabel??e.label}):null},t))})]})]})]})});BarChart.displayName="BarChart";const styles=StyleSheet.create({root:{alignSelf:"stretch"},header:{justifyContent:"center"},body:{flexDirection:"row"},plotColumn:{flex:1},slots:{flexDirection:"row"},slot:{flex:1},axis:{flexDirection:"row"},axisSlot:{flex:1,alignItems:"center",overflow:"visible"}});export{BarChart};export default BarChart;
1
+ "use strict";import{formatCompactNumber,formatNumber}from"@webority/mobile-core";import{forwardRef,useCallback,useMemo,useRef,useState}from"react";import{StyleSheet,View}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import{useControllableState}from"../../hooks/index.js";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{Text}from"../Text/index.js";import{barScale}from"./scale.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export const DEFAULT_BAR_CHART_LABELS=Object.freeze({chart:"Bar chart",noData:"no data",highest:(e,t)=>`Highest: ${e}, ${t}`});const AUTO_VALUES_MAX_BARS=7,MAX_BAR_WIDTH=40,BAR_SHARE=.6,MIN_BAR_HEIGHT=2,VALUE_LABEL_ROOM=20,PLOT_PAD=6,HEADER_MIN_HEIGHT=48,AXIS_LABEL_MIN_WIDTH=44,CHAR_WIDTH=7,FONT_SCALE_CAP=1.2,toneColor=(e,t)=>"neutral"===t?e.colors["text-muted"]:e.colors[`${t}-text`],safe=e=>Number.isFinite(e)?e:0,defaultFormatValue=e=>formatNumber(e),defaultFormatTick=e=>formatCompactNumber(e),BarChart=forwardRef((e,t)=>{const{data:r,tone:a="primary",color:s,height:i=160,label:l,summary:o,formatValue:n=defaultFormatValue,formatTick:c=defaultFormatTick,showValues:u,selection:m,defaultSelection:h=null,onSelect:d,haptic:x,labels:f,style:b,testID:p}=e;warnInvalidValue("BarChart","tone",e.tone,["primary","success","warning","danger","info","neutral"]);const y=useMemo(()=>({...DEFAULT_BAR_CHART_LABELS,...f}),[f]),_=useTheme(),g=r.length,[S,j]=useState(0),[w,M]=useControllableState({value:m,defaultValue:h,onChange:d}),C=null!==w&&w>=0&&w<g?w:null,T=useRef(C);T.current=C;const v=useRef(-1),A=resolveHaptic(x,"tick"),R=useCallback(()=>{A&&triggerHaptic(A)},[A]),L=u??(g>0&&g<=7),V=useMemo(()=>r.map(e=>safe(e.value)),[r]),I=useMemo(()=>barScale(V),[V]),B=L?20:6,D=L&&I.min<0?20:6,E=Math.max(1,i-B-D),H=useCallback(e=>B+(I.max-e)/(I.max-I.min)*E,[B,I.max,I.min,E]),k=H(0),F=useMemo(()=>I.ticks.map(e=>c(e)),[I.ticks,c]),O=Math.ceil(7*Math.max(...F.map(e=>e.length),1)*1.2),$=g>0?S/g:0,N=Math.max(1,Math.ceil(44/Math.max(1,$||44))),G=useCallback(e=>{const t=r[e];return t.accessibilityLabel??`${t.label}, ${n(V[e])}`},[r,n,V]),W=useMemo(()=>{let e=-1;return V.forEach((t,r)=>{(-1===e||t>V[e])&&(e=r)}),e},[V]),U=o??(W>=0?y.highest(r[W].label,n(V[W])):""),z=useRef({fire:R,setSelected:M,count:g,plotWidth:S});z.current={fire:R,setSelected:M,count:g,plotWidth:S};const P=useMemo(()=>{const indexAt=e=>{const{count:t,plotWidth:r}=z.current;return 0===t||r<=0||!Number.isFinite(e)?-1:Math.min(t-1,Math.max(0,Math.floor(e/r*t)))},scrubTo=e=>{const t=indexAt(e);t<0||t===v.current||(v.current=t,z.current.fire(),z.current.setSelected(t))},e=Gesture.Pan().runOnJS(!0).activeOffsetX([-8,8]).failOffsetY([-12,12]).onStart(e=>{v.current=T.current??-1,scrubTo(e.x)}).onUpdate(e=>scrubTo(e.x)).withTestId(p?`${p}-pan`:"bar-chart-pan"),t=Gesture.Tap().runOnJS(!0).onEnd((e,t)=>{if(!t)return;const r=indexAt(e.x);r<0||(z.current.fire(),v.current=r,z.current.setSelected(r===T.current?null:r))}).withTestId(p?`${p}-tap`:"bar-chart-tap");return Gesture.Race(e,t)},[p]),X=useCallback(e=>{if(0===g)return;const t=T.current,r="increment"===e.nativeEvent.actionName?null===t?0:Math.min(g-1,t+1):null===t?g-1:Math.max(0,t-1);r!==t&&(R(),M(r))},[g,R,M]),J=useCallback(e=>{const t=Math.round(e.nativeEvent.layout.width);j(e=>e===t?e:t)},[]),Y=s??toneColor(_,a),q=_.radius.sm,K=l??y.chart,Q=0===g?`${K}, ${y.noData}`:U?`${K}, ${U}`:K,Z=null===C?U:G(C),ee=V.map((e,t)=>{const r=Math.min(40,Math.max(4,.6*$)),a=H(e),s=e>=0?a:k,l=0===e?0:Math.max(2,Math.abs(a-k)),o=null!==C&&C!==t;return _jsxs(View,{style:[styles.slot,{height:i}],children:[S>0&&l>0?_jsx(View,{testID:p?`${p}-bar-${t}`:void 0,style:{position:"absolute",left:($-r)/2,top:s,width:r,height:l,backgroundColor:Y,opacity:o?.4:1,...smoothCorners,...e>=0?{borderTopLeftRadius:q,borderTopRightRadius:q}:{borderBottomLeftRadius:q,borderBottomRightRadius:q}}}):null,L&&S>0?_jsx(Text,{variant:"caption",color:"secondary",align:"center",numberOfLines:1,maxFontSizeMultiplier:1.2,style:{position:"absolute",left:0,right:0,top:e>=0?a-20+2:a+2},children:c(e)}):null]},t)});return 0===g?_jsx(View,{ref:t,accessible:!0,accessibilityRole:"image",accessibilityLabel:Q,testID:p,style:[styles.root,b],children:_jsx(Text,{variant:"bodySmall",color:"secondary",children:"No data"})}):_jsxs(View,{ref:t,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:Q,accessibilityValue:{min:0,max:g-1,now:C??0,text:Z},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:X,testID:p,style:[styles.root,b],children:[_jsx(View,{style:[styles.header,{minHeight:48,marginBottom:_.space.sm}],children:null===C?U?_jsx(Text,{variant:"bodySmall",color:"secondary",children:U}):null:_jsxs(_Fragment,{children:[_jsx(Text,{variant:"caption",color:"secondary",numberOfLines:1,children:r[C].label}),_jsx(Text,{variant:"h3",numberOfLines:1,testID:p?`${p}-callout`:void 0,children:n(V[C])})]})}),_jsxs(View,{style:styles.body,children:[_jsx(View,{style:{width:O,height:i},children:I.ticks.map((e,t)=>_jsx(Text,{variant:"caption",color:"tertiary",align:"right",numberOfLines:1,maxFontSizeMultiplier:1.2,style:{position:"absolute",right:_.space.xs,left:0,top:H(e)-8},children:F[t]},e))}),_jsxs(View,{style:styles.plotColumn,children:[_jsx(GestureDetector,{gesture:P,children:_jsxs(View,{style:{height:i},onLayout:J,testID:p?`${p}-plot`:void 0,children:[I.ticks.map(e=>_jsx(View,{pointerEvents:"none",style:{position:"absolute",left:0,right:0,top:H(e)-(0===e?.75:StyleSheet.hairlineWidth),height:0===e?1.5:2*StyleSheet.hairlineWidth,backgroundColor:0===e?_.colors["text-subtle"]:_.colors["border-subtle"]}},e)),_jsx(View,{style:[styles.slots,{height:i}],children:ee})]})}),_jsx(View,{style:styles.axis,children:r.map((e,t)=>_jsx(View,{style:styles.axisSlot,children:t%N===0?_jsx(Text,{variant:"caption",color:C===t?"primary":"tertiary",weight:C===t?"semibold":void 0,align:"center",numberOfLines:1,maxFontSizeMultiplier:1.2,style:$>0?{width:$*N}:void 0,children:e.axisLabel??e.label}):null},t))})]})]})]})});BarChart.displayName="BarChart";const styles=StyleSheet.create({root:{alignSelf:"stretch"},header:{justifyContent:"center"},body:{flexDirection:"row"},plotColumn:{flex:1},slots:{flexDirection:"row"},slot:{flex:1},axis:{flexDirection:"row"},axisSlot:{flex:1,alignItems:"center",overflow:"visible"}});export{BarChart};export default BarChart;
@@ -1 +1 @@
1
- "use strict";export{BarChart,default}from"./BarChart.js";
1
+ "use strict";export{BarChart,DEFAULT_BAR_CHART_LABELS,default}from"./BarChart.js";
@@ -1 +1 @@
1
- "use strict";import React,{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,LayoutAnimation,Platform,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useReducedMotion}from"../../hooks/useReducedMotion.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{supportsBoxShadow,toBoxShadow}from"../../utils/shadows.js";import{renderSlotIcon}from"../AppIcon/index.js";import{useScreenReaderEnabled}from"./useScreenReaderEnabled.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const DEFAULT_ICON_SIZE=18,DEFAULT_LABEL_MAX_FONT_SCALE=1.2,ICON_WRAP_AIR=4,PILL_AIR=8,DEFAULT_PILL_MAX_WIDTH=64,TILE_MAX_WIDTH=96,DEFAULT_UNDERLINE_HEIGHT=3,DEFAULT_BUBBLE_SIZE=48,DEFAULT_BUBBLE_LIFT=14,DEFAULT_CENTER_SIZE=48,DEFAULT_CENTER_ICON_SIZE=24,CENTER_KEY="__webority_center_action__",EXPANDED_FLEX=1.5,SOLID_INACTIVE_OPACITY=.7,TILE_INSET=2,formatBadge=e=>null==e||!1===e?null:!0===e||"·"===e?{text:"",isDot:!0}:"number"==typeof e?e<=0?null:{text:e>99?"99+":String(e),isDot:!1}:"string"==typeof e?0===e.length?null:{text:e,isDot:!1}:null,badgeAccessibilitySuffix=e=>null==e||!1===e?"":"number"==typeof e?e>0?`, ${e} unread`:"":!0===e||"·"===e?", new updates":"string"==typeof e&&e.length>0?`, ${e}`:"",BottomNavigation=forwardRef((e,t)=>{const{tabs:i,centerAction:n,activeTab:o,onChange:r,haptic:a="selection",showLabels:s=!0,variant:l="pill",indicatorPosition:d="bottom",radius:c,indicatorRadius:u="auto",elevation:p,iconSize:m,marginHorizontal:h,marginVertical:g,paddingHorizontal:b,paddingVertical:f,border:x,minimizeOnScroll:y=!1,scrollDirection:S="idle",accessory:_,style:w,indicatorStyle:R,labelStyle:I,labelMaxFontScale:E,testID:A}=e,v=useTheme(),j=useSafeAreaInsets(),C=useMemo(()=>buildStyles(v),[v]),T=m??18,L=T+4+8,V=v.space.lg,D=v.space.lg,M=v.radius.xl,k=useReducedMotion(),B=useScreenReaderEnabled(y),[z,F]=React.useState(null);useEffect(()=>{null!==z&&z!==S&&F(null)},[z,S]);const N=y&&!B&&"down"===S&&null===z,[P,H]=React.useState(N);useEffect(()=>{P!==N&&(k||"web"===Platform.OS||LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut),H(N))},[P,N,k]);const W="function"==typeof _?_({minimized:P}):_,O=null!=W&&!1!==W,U=P&&O,[$,X]=React.useState(0),Z=O&&!U?$+v.space.xs:0,Y="tile"===l,K="floating"===l||Y,q="bubble"===l,G="expand"===l,J="solid"===l,Q="pill"===l||K||J,ee=Math.max(0,i.findIndex(e=>e.key===o)),[te,ie]=React.useState(0),[ne,oe]=React.useState(0),re=n?Math.ceil(i.length/2):i.length,ae=i.length+(n?1:0),[se,le]=React.useState({width:0,height:0}),de=n?.size??48,ce=void 0!==n?.gap,ue=Math.max(0,n?.gap??0),pe=ce?(se.width||de)+2*ue:0,me=ce?i.length>0?Math.max(0,te-pe)/i.length:0:ae>0?te/ae:0,he=ce?pe:me,ge=useRef(createAnimatedValue(ee)).current,be=useRef({}),fe=useRef({});i.forEach(e=>{be.current[e.key]||(be.current[e.key]=new Animated.Value(1)),fe.current[e.key]||(fe.current[e.key]=createAnimatedValue(e.key===o?1:0))});const xe=me>0?Y?Math.min(me-4,96):Math.min(me-V,64):0,ye=me>0?(me-xe)/2:0,Se=me>0?(me-48)/2:0,hasLabel=e=>s&&!P&&!1!==e.showLabel&&e.label.trim().length>0,we=i[ee],Re=we&&!hasLabel(we)&&ne>0?ne/2:v.space.xs+(T+4)/2,Ie=Re-14-24,Ee=Math.max(0,ne-4),Ae=Y?2:Re-L/2,ve=useRef(ee);useEffect(()=>{if(ve.current===ee)return;ve.current=ee;const e=Animated.spring(ge,{toValue:ee,tension:120,friction:14,useNativeDriver:!0});return e.start(),()=>e.stop()},[ee,ge]);const je=Math.max(1,i.length-1),Ce=useMemo(()=>{const e=[],t=[];for(let i=0;i<=je;i++)e.push(i),t.push(i<re?i*me:i*me+he);return ge.interpolate({inputRange:e,outputRange:t})},[ge,je,re,me,he]),Te=i.map(e=>e.key).join(" "),Le=q||G;useEffect(()=>{const e=Te.split(" ").flatMap(e=>{const t=e===o?1:0,i=fe.current[e];return i?Le?[Animated.spring(i,{toValue:t,tension:140,friction:13,useNativeDriver:!1})]:(i.setValue(t),[]):[]});if(0===e.length)return;const t=Animated.parallel(e);return t.start(),()=>t.stop()},[o,Te,Le]);const popIcon=e=>{Animated.sequence([Animated.timing(e,{toValue:1.15,duration:120,useNativeDriver:!0}),Animated.spring(e,{toValue:1,tension:200,friction:8,useNativeDriver:!0})]).start()},Ve=useRef(new Animated.Value(1)).current,{colors:De}=v,Me=J?De.primary:De.surface,ke=J?De["on-primary"]:De.primary,Be=J?De["on-primary"]:Y?De["text-body"]:De["text-subtle"],ze=J?De["on-primary"]:De["primary-soft"],Fe=J?De.primary:q?De["on-primary"]:ke,Ne=h??D,Pe=g??(K?D:0),He=Pe>0,We=f??v.space.sm,Oe=b??(K?v.space.sm:v.space.xs),Ue=He?We:Math.max(We,j.bottom),$e=He?Math.max(Pe,j.bottom>0?j.bottom+v.space.sm:0):0,Xe="pill"===c,Ze=K?ne+Z+2*We+2*StyleSheet.hairlineWidth:ne+Z+We+Ue,Ye=Xe?ne>0?Ze/2:v.radius.pill:c??(Y?v.radius.pill:K?M:v.radius.none),Ke=void 0!==c,activeBgRadius=(e,t)=>"number"==typeof u?Math.max(0,Math.min(u,e/2)):"auto"===u&&Ke?Math.min(Ye,e/2):t,qe="underline"===l?Math.max(Oe,Xe&&0===ne?0:Ye):Oe,Ge=p??"none",Je="none"===Ge?void 0:v.shadow[Ge],Qe=void 0===Je?null:supportsBoxShadow()?{boxShadow:toBoxShadow(Je)}:Je,et=x?StyleSheet.hairlineWidth:0,tt=J?De.primary:De.border,it=n?.lift??0,nt=We+et+Z,ot=n&&ne>0?Math.max(0,(se.height||de)/2+it-ne/2-nt):0,rt=n?_jsx(View,{style:[C.centerCell,ce?{flex:0,marginHorizontal:ue}:null],pointerEvents:"box-none",children:_jsxs(Pressable,{onPress:()=>{if(!n)return;const e=n.haptic??a;!1!==e&&triggerHaptic(e),popIcon(Ve),n.onPress()},onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;le(e=>e.width===t&&e.height===i?e:{width:t,height:i})},accessibilityRole:"button",accessibilityLabel:n.label,hitSlop:{top:6,bottom:6,left:6,right:6},...hitSlopMarker({top:6,bottom:6,left:6,right:6}),style:({pressed:e})=>[C.centerPressable,{top:-it},e?{opacity:.85}:null],testID:n.testID??(A?`${A}-center`:void 0),children:[n.content?_jsx(Animated.View,{style:{transform:[{scale:Ve}]},children:n.content}):_jsx(View,{style:[C.centerCircle,{width:de,height:de,borderRadius:v.radius.pill,...smoothCorners,backgroundColor:n.color??De.primary}],children:_jsx(Animated.View,{style:{transform:[{scale:Ve}]},children:renderSlotIcon(n.icon??"add",{color:n.iconColor??De["on-primary"],size:n.iconSize??24,disabled:!1})})}),(at=n,s&&!P&&at.label.trim().length>0?_jsx(Text,{numberOfLines:1,maxFontSizeMultiplier:E??v.settings.maxFontSizeMultiplier??1.2,style:[C.label,{color:Be,opacity:J?.7:1},I],children:n.label}):null)]})},CENTER_KEY):null;var at;const st=O?_jsx(View,{style:U?C.accessoryInline:C.accessoryStacked,onLayout:e=>X(e.nativeEvent.layout.height),testID:A?`${A}-accessory`:void 0,children:W}):null,lt=_jsxs(View,{style:U?[C.tabRow,C.tabRowInline]:C.tabRow,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;ie(t),oe(i)},children:[Q&&xe>0&&(!Y||Ee>0)?_jsx(Animated.View,{pointerEvents:"none",style:[C.pill,{width:xe,height:Y?Ee:L,left:ye,top:Ae,backgroundColor:ze,borderRadius:Y?activeBgRadius(Ee,Ee/2):activeBgRadius(L,v.radius.pill),...smoothCorners,transform:[{translateX:Ce}]},R]}):null,q&&me>0?_jsx(Animated.View,{pointerEvents:"none",style:[C.bubble,v.shadow.elevated,{width:48,height:48,borderRadius:v.radius.pill,...smoothCorners,left:Se,top:Ie,backgroundColor:De.primary,borderColor:De.surface,transform:[{translateX:Ce}]},R]}):null,(dt=i.map(e=>{const t=e.key===o,i=t?ke:Be,n=t?Fe:Be,s="string"==typeof e.icon?{name:e.icon,variant:"bold"}:e.icon,l=t?e.activeIcon??s:e.icon,d=be.current[e.key],c=fe.current[e.key],u=formatBadge(e.badge??null),p=badgeAccessibilitySuffix(e.badge??null),m=J&&!t?.7:1,h=q&&t||J?De.primary:De.surface,g=hasLabel(e),b=g&&(!G||t),f=_jsxs(Animated.View,{style:[C.iconWrap,{width:T+4,height:T+4,opacity:m,transform:[{scale:d}]}],children:[renderSlotIcon(l,{color:n,size:T,focused:t,disabled:!1}),u?_jsx(View,{style:[u.isDot?C.badgeDot:C.badgePill,{backgroundColor:De.danger,borderColor:h}],children:u.isDot?null:_jsx(Text,{style:[C.badgeText,{color:De["on-danger"]}],numberOfLines:1,children:u.text})}):null]}),x=q?_jsx(Animated.View,{style:{top:c.interpolate({inputRange:[0,1],outputRange:[0,-14]})},children:f}):f,y=b?_jsx(Animated.Text,{numberOfLines:1,maxFontSizeMultiplier:E??v.settings.maxFontSizeMultiplier??1.2,style:[C.label,G?C.labelInline:null,{color:i,opacity:G?c:m,fontWeight:t?v.weight.semibold:v.weight.normal},I],children:e.label}):null,_=_jsx(Pressable,{onPress:()=>(e=>{P&&F(S),e.key!==o&&!1!==a&&triggerHaptic(a);const t=be.current[e.key];t&&popIcon(t),r(e.key)})(e),accessibilityRole:"tab",accessibilityState:{selected:t},"aria-selected":t,accessibilityLabel:`${e.label}${p}`,accessibilityHint:`Switches to ${e.label}`,hitSlop:{top:6,bottom:6,left:6,right:6},...hitSlopMarker({top:6,bottom:6,left:6,right:6}),style:({pressed:e})=>[C.tab,Y?C.tabTile:null,e?{opacity:.85}:null],testID:A?`${A}-tab-${e.key}`:void 0,children:G?_jsxs(View,{style:[C.expandPill,{height:L,paddingHorizontal:t&&g?v.space.md:Math.max(0,(L-(T+4))/2)}],children:[_jsx(View,{pointerEvents:"none",style:[C.expandFill,{borderRadius:activeBgRadius(L,L/2),...smoothCorners,backgroundColor:t?De["primary-soft"]:"transparent"},t?R:null]}),x,y]}):_jsxs(_Fragment,{children:[x,y]})},e.key);return G?_jsx(Animated.View,{style:{flex:c.interpolate({inputRange:[0,1],outputRange:[1,g?1.5:1]})},children:_},e.key):_}),rt?[...dt.slice(0,re),rt,...dt.slice(re)]:dt),"underline"===l&&me>0?_jsx(Animated.View,{pointerEvents:"none",style:[C.underline,"top"===d?C.underlineTop:C.underlineBottom,"top"===d?{top:-We-Z}:{bottom:-We},{width:me,height:3,backgroundColor:De.primary,transform:[{translateX:Ce}]},R]}):null]});var dt;return _jsx(View,{ref:t,testID:A,accessibilityRole:"tablist",style:[C.outer,{paddingHorizontal:Ne,paddingTop:Math.max(Pe,ot),paddingBottom:$e},w],children:_jsxs(View,{style:[K?C.floatingBar:C.dockedBar,U?C.barInline:null,Qe,{backgroundColor:Me,borderColor:tt,borderRadius:Ye,...smoothCorners},K?{borderWidth:et,paddingHorizontal:Oe,paddingVertical:We}:{borderTopWidth:et,borderBottomWidth:et,borderLeftWidth:et,borderRightWidth:et,paddingHorizontal:qe,paddingTop:We,paddingBottom:Ue}],children:[st,lt]})})});BottomNavigation.displayName="BottomNavigation";const buildStyles=e=>StyleSheet.create({outer:{backgroundColor:"transparent"},dockedBar:{paddingHorizontal:e.space.xs},floatingBar:{paddingVertical:e.space.sm,paddingHorizontal:e.space.sm},tabRow:{flexDirection:"row",alignItems:"stretch",position:"relative"},tabRowInline:{flex:1},barInline:{flexDirection:"row",alignItems:"center"},accessoryStacked:{marginBottom:e.space.xs},accessoryInline:{flexShrink:0,marginRight:e.space.xs},tab:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center",paddingVertical:e.space.xs,gap:e.space.xs},tabTile:{paddingVertical:e.space.sm,gap:e.space.xxs},centerCell:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center"},centerPressable:{alignItems:"center",maxWidth:"100%",gap:e.space.xs},centerCircle:{alignItems:"center",justifyContent:"center"},iconWrap:{alignItems:"center",justifyContent:"center",position:"relative"},label:{fontSize:e.text.xs.size,lineHeight:e.text.xs.size*e.leading.heading,textAlign:"center",includeFontPadding:!1},labelInline:{fontSize:e.text.sm.size,lineHeight:e.text.sm.size*e.leading.heading,flexShrink:1,includeFontPadding:!1},expandPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:e.space.xs},expandFill:{position:"absolute",top:0,right:0,bottom:0,left:0,overflow:"hidden"},pill:{position:"absolute",left:0},bubble:{position:"absolute",left:0,borderWidth:3},underline:{position:"absolute",left:0,height:3},underlineBottom:{borderTopLeftRadius:e.radius.none,borderTopRightRadius:e.radius.none,...smoothCorners},underlineTop:{borderBottomLeftRadius:e.radius.none,borderBottomRightRadius:e.radius.none,...smoothCorners},badgePill:{position:"absolute",top:-4,right:-8,minWidth:18,height:18,borderRadius:e.radius.pill,...smoothCorners,paddingHorizontal:e.space.xs,paddingVertical:e.space.xxs,alignItems:"center",justifyContent:"center",borderWidth:1.5},badgeDot:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:e.radius.pill,...smoothCorners,borderWidth:1.5},badgeText:{fontSize:e.text.xs.size,fontWeight:"700",lineHeight:13,textAlign:"center",includeFontPadding:!1}});export{BottomNavigation};export default BottomNavigation;
1
+ "use strict";import React,{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,LayoutAnimation,Platform,Pressable,StyleSheet,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useReducedMotion}from"../../hooks/useReducedMotion.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{supportsBoxShadow,toBoxShadow}from"../../utils/shadows.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{renderSlotIcon}from"../AppIcon/index.js";import{Text}from"../Text/index.js";import{useScreenReaderEnabled}from"./useScreenReaderEnabled.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export const DEFAULT_BOTTOM_NAVIGATION_LABELS=Object.freeze({switchesTo:e=>`Switches to ${e}`,unread:e=>`${e} unread`,newUpdates:"new updates"});const DEFAULT_ICON_SIZE=18,DEFAULT_LABEL_MAX_FONT_SCALE=1.2,ICON_WRAP_AIR=4,PILL_AIR=8,DEFAULT_PILL_MAX_WIDTH=64,TILE_MAX_WIDTH=96,DEFAULT_UNDERLINE_HEIGHT=3,DEFAULT_BUBBLE_SIZE=48,DEFAULT_BUBBLE_LIFT=14,DEFAULT_CENTER_SIZE=48,DEFAULT_CENTER_ICON_SIZE=24,CENTER_KEY="__center_action__",EXPANDED_FLEX=1.5,SOLID_INACTIVE_OPACITY=.7,TILE_INSET=2,formatBadge=e=>null==e||!1===e?null:!0===e||"·"===e?{text:"",isDot:!0}:"number"==typeof e?e<=0?null:{text:e>99?"99+":String(e),isDot:!1}:"string"==typeof e?0===e.length?null:{text:e,isDot:!1}:null,badgeAccessibilitySuffix=(e,t)=>null==e||!1===e?"":"number"==typeof e?e>0?`, ${t.unread(e)}`:"":!0===e||"·"===e?`, ${t.newUpdates}`:"string"==typeof e&&e.length>0?`, ${e}`:"",BottomNavigation=forwardRef((e,t)=>{const{tabs:i,centerAction:n,activeTab:o,onChange:a,haptic:r="selection",showLabels:s=!0,variant:l="pill",indicatorPosition:d="bottom",radius:c,indicatorRadius:u="auto",elevation:p,iconSize:m,marginHorizontal:h,marginVertical:g,paddingHorizontal:b,paddingVertical:f,border:x,minimizeOnScroll:y=!1,scrollDirection:_="idle",accessory:w,style:S,indicatorStyle:I,labelStyle:A,labelMaxFontScale:E,labels:R,testID:T}=e;warnInvalidValue("BottomNavigation","variant",e.variant,["pill","underline","floating","bubble","expand","solid","tile"]),warnInvalidValue("BottomNavigation","indicatorPosition",e.indicatorPosition,["top","bottom"]);const v=useMemo(()=>R?{...DEFAULT_BOTTOM_NAVIGATION_LABELS,...R}:DEFAULT_BOTTOM_NAVIGATION_LABELS,[R]),L=useTheme(),j=useSafeAreaInsets(),C=useMemo(()=>buildStyles(L),[L]),V=m??18,M=V+4+8,B=L.space.lg,D=L.space.lg,k=L.radius.xl,N=useReducedMotion(),z=useScreenReaderEnabled(y),[F,P]=React.useState(null);useEffect(()=>{null!==F&&F!==_&&P(null)},[F,_]);const H=y&&!z&&"down"===_&&null===F,[O,W]=React.useState(H);useEffect(()=>{O!==H&&(N||"web"===Platform.OS||LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut),W(H))},[O,H,N]);const U="function"==typeof w?w({minimized:O}):w,$=null!=U&&!1!==U,X=O&&$,[G,Z]=React.useState(0),Y=$&&!X?G+L.space.xs:0,K="tile"===l,q="floating"===l||K,J="bubble"===l,Q="expand"===l,ee="solid"===l,te="pill"===l||q||ee,ie=Math.max(0,i.findIndex(e=>e.key===o)),[ne,oe]=React.useState(0),[ae,re]=React.useState(0),se=n?Math.ceil(i.length/2):i.length,le=i.length+(n?1:0),[de,ce]=React.useState({width:0,height:0}),ue=n?.size??48,pe=void 0!==n?.gap,me=Math.max(0,n?.gap??0),he=pe?(de.width||ue)+2*me:0,ge=pe?i.length>0?Math.max(0,ne-he)/i.length:0:le>0?ne/le:0,be=pe?he:ge,fe=useRef(createAnimatedValue(ie)).current,xe=useRef({}),ye=useRef({});i.forEach(e=>{xe.current[e.key]||(xe.current[e.key]=new Animated.Value(1)),ye.current[e.key]||(ye.current[e.key]=createAnimatedValue(e.key===o?1:0))});const we=ge>0?K?Math.min(ge-4,96):Math.min(ge-B,64):0,Se=ge>0?(ge-we)/2:0,Ie=ge>0?(ge-48)/2:0,hasLabel=e=>s&&!O&&!1!==e.showLabel&&e.label.trim().length>0,Ae=i[ie],Ee=Ae&&!hasLabel(Ae)&&ae>0?ae/2:L.space.xs+(V+4)/2,Re=Ee-14-24,Te=Math.max(0,ae-4),ve=K?2:Ee-M/2,Le=useRef(ie);useEffect(()=>{if(Le.current===ie)return;Le.current=ie;const e=Animated.spring(fe,{toValue:ie,tension:120,friction:14,useNativeDriver:!0});return e.start(),()=>e.stop()},[ie,fe]);const je=Math.max(1,i.length-1),Ce=useMemo(()=>{const e=[],t=[];for(let i=0;i<=je;i++)e.push(i),t.push(i<se?i*ge:i*ge+be);return fe.interpolate({inputRange:e,outputRange:t})},[fe,je,se,ge,be]),Ve=i.map(e=>e.key).join(" "),Me=J||Q;useEffect(()=>{const e=Ve.split(" ").flatMap(e=>{const t=e===o?1:0,i=ye.current[e];return i?Me?[Animated.spring(i,{toValue:t,tension:140,friction:13,useNativeDriver:!1})]:(i.setValue(t),[]):[]});if(0===e.length)return;const t=Animated.parallel(e);return t.start(),()=>t.stop()},[o,Ve,Me]);const popIcon=e=>{Animated.sequence([Animated.timing(e,{toValue:1.15,duration:120,useNativeDriver:!0}),Animated.spring(e,{toValue:1,tension:200,friction:8,useNativeDriver:!0})]).start()},Be=useRef(new Animated.Value(1)).current,{colors:De}=L,ke=ee?De.primary:De.surface,Ne=ee?De["on-primary"]:De.primary,ze=ee?De["on-primary"]:K?De["text-body"]:De["text-subtle"],Fe=ee?De["on-primary"]:De["primary-soft"],Pe=ee?De.primary:J?De["on-primary"]:Ne,He=h??D,Oe=g??(q?D:0),We=Oe>0,Ue=f??L.space.sm,$e=b??(q?L.space.sm:L.space.xs),Xe=We?Ue:Math.max(Ue,j.bottom),Ge=We?Math.max(Oe,j.bottom>0?j.bottom+L.space.sm:0):0,Ze="pill"===c,Ye=q?ae+Y+2*Ue+2*StyleSheet.hairlineWidth:ae+Y+Ue+Xe,Ke=Ze?ae>0?Ye/2:L.radius.pill:c??(K?L.radius.pill:q?k:L.radius.none),qe=void 0!==c,activeBgRadius=(e,t)=>"number"==typeof u?Math.max(0,Math.min(u,e/2)):"auto"===u&&qe?Math.min(Ke,e/2):t,Je="underline"===l?Math.max($e,Ze&&0===ae?0:Ke):$e,Qe=p??"none",et="none"===Qe?void 0:L.shadow[Qe],tt=void 0===et?null:supportsBoxShadow()?{boxShadow:toBoxShadow(et)}:et,it=x?StyleSheet.hairlineWidth:0,nt=ee?De.primary:De.border,ot=n?.lift??0,at=Ue+it+Y,rt=n&&ae>0?Math.max(0,(de.height||ue)/2+ot-ae/2-at):0,st=n?_jsx(View,{style:[C.centerCell,pe?{flex:0,marginHorizontal:me}:null],pointerEvents:"box-none",children:_jsxs(Pressable,{onPress:()=>{if(!n)return;const e=n.haptic??r;!1!==e&&triggerHaptic(e),popIcon(Be),n.onPress()},onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;ce(e=>e.width===t&&e.height===i?e:{width:t,height:i})},accessibilityRole:"button",accessibilityLabel:n.label,hitSlop:{top:6,bottom:6,left:6,right:6},...hitSlopMarker({top:6,bottom:6,left:6,right:6}),style:({pressed:e})=>[C.centerPressable,{top:-ot},e?{opacity:.85}:null],testID:n.testID??(T?`${T}-center`:void 0),children:[n.content?_jsx(Animated.View,{style:{transform:[{scale:Be}]},children:n.content}):_jsx(View,{style:[C.centerCircle,{width:ue,height:ue,borderRadius:L.radius.pill,...smoothCorners,backgroundColor:n.color??De.primary}],children:_jsx(Animated.View,{style:{transform:[{scale:Be}]},children:renderSlotIcon(n.icon??"add",{color:n.iconColor??De["on-primary"],size:n.iconSize??24,disabled:!1})})}),(lt=n,s&&!O&&lt.label.trim().length>0?_jsx(Text,{variant:"caption",numberOfLines:1,maxFontSizeMultiplier:E??L.settings.maxFontSizeMultiplier??1.2,style:[C.label,{color:ze,opacity:ee?.7:1},A],children:n.label}):null)]})},CENTER_KEY):null;var lt;const dt=$?_jsx(View,{style:X?C.accessoryInline:C.accessoryStacked,onLayout:e=>Z(e.nativeEvent.layout.height),testID:T?`${T}-accessory`:void 0,children:U}):null,ct=_jsxs(View,{style:X?[C.tabRow,C.tabRowInline]:C.tabRow,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;oe(t),re(i)},children:[te&&we>0&&(!K||Te>0)?_jsx(Animated.View,{pointerEvents:"none",style:[C.pill,{width:we,height:K?Te:M,left:Se,top:ve,backgroundColor:Fe,borderRadius:K?activeBgRadius(Te,Te/2):activeBgRadius(M,L.radius.pill),...smoothCorners,transform:[{translateX:Ce}]},I]}):null,J&&ge>0?_jsx(Animated.View,{pointerEvents:"none",style:[C.bubble,L.shadow.elevated,{width:48,height:48,borderRadius:L.radius.pill,...smoothCorners,left:Ie,top:Re,backgroundColor:De.primary,borderColor:De.surface,transform:[{translateX:Ce}]},I]}):null,(ut=i.map(e=>{const t=e.key===o,i=t?Ne:ze,n=t?Pe:ze,s="string"==typeof e.icon?{name:e.icon,variant:"bold"}:e.icon,l=t?e.activeIcon??s:e.icon,d=xe.current[e.key],c=ye.current[e.key],u=formatBadge(e.badge??null),p=badgeAccessibilitySuffix(e.badge??null,v),m=ee&&!t?.7:1,h=J&&t||ee?De.primary:De.surface,g=hasLabel(e),b=g&&(!Q||t),f=_jsxs(Animated.View,{style:[C.iconWrap,{width:V+4,height:V+4,opacity:m,transform:[{scale:d}]}],children:[renderSlotIcon(l,{color:n,size:V,focused:t,disabled:!1}),u?_jsx(View,{style:[u.isDot?C.badgeDot:C.badgePill,{backgroundColor:De.danger,borderColor:h}],children:u.isDot?null:_jsx(Text,{variant:"caption",weight:"bold",style:[C.badgeText,{color:De["on-danger"]}],numberOfLines:1,children:u.text})}):null]}),x=J?_jsx(Animated.View,{style:{top:c.interpolate({inputRange:[0,1],outputRange:[0,-14]})},children:f}):f,y=b?_jsx(Animated.Text,{numberOfLines:1,maxFontSizeMultiplier:E??L.settings.maxFontSizeMultiplier??1.2,style:[C.label,Q?C.labelInline:null,{color:i,opacity:Q?c:m,fontWeight:t?L.weight.semibold:L.weight.normal},A],children:e.label}):null,w=_jsx(Pressable,{onPress:()=>(e=>{O&&P(_),e.key!==o&&!1!==r&&triggerHaptic(r);const t=xe.current[e.key];t&&popIcon(t),a(e.key)})(e),accessibilityRole:"tab",accessibilityState:{selected:t},"aria-selected":t,accessibilityLabel:`${e.label}${p}`,accessibilityHint:v.switchesTo(e.label),hitSlop:{top:6,bottom:6,left:6,right:6},...hitSlopMarker({top:6,bottom:6,left:6,right:6}),style:({pressed:e})=>[C.tab,K?C.tabTile:null,e?{opacity:.85}:null],testID:T?`${T}-tab-${e.key}`:void 0,children:Q?_jsxs(View,{style:[C.expandPill,{height:M,paddingHorizontal:t&&g?L.space.md:Math.max(0,(M-(V+4))/2)}],children:[_jsx(View,{pointerEvents:"none",style:[C.expandFill,{borderRadius:activeBgRadius(M,M/2),...smoothCorners,backgroundColor:t?De["primary-soft"]:"transparent"},t?I:null]}),x,y]}):_jsxs(_Fragment,{children:[x,y]})},e.key);return Q?_jsx(Animated.View,{style:{flex:c.interpolate({inputRange:[0,1],outputRange:[1,g?1.5:1]})},children:w},e.key):w}),st?[...ut.slice(0,se),st,...ut.slice(se)]:ut),"underline"===l&&ge>0?_jsx(Animated.View,{pointerEvents:"none",style:[C.underline,"top"===d?C.underlineTop:C.underlineBottom,"top"===d?{top:-Ue-Y}:{bottom:-Ue},{width:ge,height:3,backgroundColor:De.primary,transform:[{translateX:Ce}]},I]}):null]});var ut;return _jsx(View,{ref:t,testID:T,accessibilityRole:"tablist",style:[C.outer,{paddingHorizontal:He,paddingTop:Math.max(Oe,rt),paddingBottom:Ge},S],children:_jsxs(View,{style:[q?C.floatingBar:C.dockedBar,X?C.barInline:null,tt,{backgroundColor:ke,borderColor:nt,borderRadius:Ke,...smoothCorners},q?{borderWidth:it,paddingHorizontal:$e,paddingVertical:Ue}:{borderTopWidth:it,borderBottomWidth:it,borderLeftWidth:it,borderRightWidth:it,paddingHorizontal:Je,paddingTop:Ue,paddingBottom:Xe}],children:[dt,ct]})})});BottomNavigation.displayName="BottomNavigation";const buildStyles=e=>StyleSheet.create({outer:{backgroundColor:"transparent"},dockedBar:{paddingHorizontal:e.space.xs},floatingBar:{paddingVertical:e.space.sm,paddingHorizontal:e.space.sm},tabRow:{flexDirection:"row",alignItems:"stretch",position:"relative"},tabRowInline:{flex:1},barInline:{flexDirection:"row",alignItems:"center"},accessoryStacked:{marginBottom:e.space.xs},accessoryInline:{flexShrink:0,marginRight:e.space.xs},tab:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center",paddingVertical:e.space.xs,gap:e.space.xs},tabTile:{paddingVertical:e.space.sm,gap:e.space.xxs},centerCell:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center"},centerPressable:{alignItems:"center",maxWidth:"100%",gap:e.space.xs},centerCircle:{alignItems:"center",justifyContent:"center"},iconWrap:{alignItems:"center",justifyContent:"center",position:"relative"},label:{fontSize:e.text.xs.size,lineHeight:e.text.xs.size*e.leading.heading,textAlign:"center",includeFontPadding:!1},labelInline:{fontSize:e.text.sm.size,lineHeight:e.text.sm.size*e.leading.heading,flexShrink:1,includeFontPadding:!1},expandPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:e.space.xs},expandFill:{position:"absolute",top:0,right:0,bottom:0,left:0,overflow:"hidden"},pill:{position:"absolute",left:0},bubble:{position:"absolute",left:0,borderWidth:3},underline:{position:"absolute",left:0,height:3},underlineBottom:{borderTopLeftRadius:e.radius.none,borderTopRightRadius:e.radius.none,...smoothCorners},underlineTop:{borderBottomLeftRadius:e.radius.none,borderBottomRightRadius:e.radius.none,...smoothCorners},badgePill:{position:"absolute",top:-4,right:-8,minWidth:18,height:18,borderRadius:e.radius.pill,...smoothCorners,paddingHorizontal:e.space.xs,paddingVertical:e.space.xxs,alignItems:"center",justifyContent:"center",borderWidth:1.5},badgeDot:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:e.radius.pill,...smoothCorners,borderWidth:1.5},badgeText:{fontSize:e.text.xs.size,lineHeight:13,textAlign:"center",includeFontPadding:!1}});export{BottomNavigation};export default BottomNavigation;
@@ -1 +1 @@
1
- "use strict";export{BottomNavigation,default}from"./BottomNavigation.js";
1
+ "use strict";export{BottomNavigation,DEFAULT_BOTTOM_NAVIGATION_LABELS,default}from"./BottomNavigation.js";
@@ -1 +1 @@
1
- "use strict";import{createContext,forwardRef,useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Dimensions,Keyboard,Modal,Platform,ScrollView,StyleSheet,useWindowDimensions,View}from"react-native";import{Gesture,GestureDetector,GestureHandlerRootView}from"react-native-gesture-handler";import{useReanimatedKeyboardAnimation}from"react-native-keyboard-controller";import Animated,{Easing,runOnJS,useAnimatedStyle,useDerivedValue,useSharedValue,withSpring,withTiming}from"react-native-reanimated";import{useSafeAreaInsets}from"react-native-safe-area-context";import{PRESENCE_REDUCE_MOTION,usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{useTheme}from"../../theme/index.js";import{triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{ModalSafeArea,useModalInsets}from"../ModalSafeArea/ModalSafeArea.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const TABLET_MIN_SHORT_SIDE=600,DIALOG_MAX_WIDTH=560,BottomSheetContext=createContext(null);export const useBottomSheet=()=>{const e=useContext(BottomSheetContext);if(!e)throw new Error("useBottomSheet must be used inside a <BottomSheet>.");return e};const SPRING_CONFIG={damping:20,stiffness:240,mass:1},CLOSE_VELOCITY_THRESHOLD=1e3,DRAG_ACTIVATION_OFFSET=10,BottomSheet=forwardRef((e,t)=>{const{snapPoints:o,index:s,onChange:n,onAnimate:r,onAfterClose:a,enablePanDownToClose:l=!0,enableBackdropPress:i=!0,confirmDismiss:u,scrollable:c=!1,scrollRef:d,onScroll:h,onContentSizeChange:m,onScrollLayout:f,scrollEventThrottle:b,keyboardBehavior:p="shift",mode:S="modal",presentation:v="sheet",animateMount:y=!0,handleIndicatorStyle:g,containerStyle:w,header:C,footer:x,headerStyle:M,footerStyle:R,children:k,accessibilityLabel:_,accessibilityViewIsModal:E,testID:I}=e,T=useTheme(),j=usePresenceMotion(),O=useSafeAreaInsets(),[A,D]=useState(()=>Dimensions.get("window").height),[V,P]=useState(()=>Dimensions.get("window").width),H=useCallback(e=>{const{height:t,width:o}=e.nativeEvent.layout;t>0&&D(e=>e===t?e:t),o>0&&P(e=>e===o?e:o)},[]),B=useWindowDimensions(),N="dialog"===v||"auto"===v&&Math.min(B.width,B.height)>=600,G=Math.min(560,V-2*T.space.xl),[L,F]=useModalInsets(),J="modal"===S?L.top:O.top,z="modal"===S?L.bottom:O.bottom,K=o.includes("content"),[U,Y]=useMeasuredHeight(),[$,q]=useMeasuredHeight(),[W,X,Q]=useMeasuredHeight(),[Z,ee]=useMeasuredHeight(),te=N?T.space.md:U,oe=K?Math.min(te+(null!=C?$:0)+W+(null!=x?Z:0)+z,A-J):0,se=useCallback((e,t)=>{K&&Q(t),m?.(e,t)},[K,m,Q]),ne=useMemo(()=>resolveSnapPoints(o,A,oe),[o,A,oe]),re=A,ae=ne[ne.length-1]??0,le=useSharedValue(re),ie=useSharedValue(re),ue=useSharedValue(1),ce=useSharedValue(-1),[de,he]=useState(-1),me=useRef(!1),[fe,be]=useState(!1),[pe,Se]=useState(!1),ve=useRef(!1),ye=useRef(a);ye.current=a;const[ge,we]=useState(!1),Ce=useRef(!y&&"number"==typeof s&&s>=0),xe=useRef(-1),Me=useRef(!1);Me.current="modal"===S?pe:ge;const Re=useRef(u);Re.current=u;const ke=useRef(!1),Ee=useRef(!0),Ie=useRef([]),Te=useCallback(e=>{const t=Ie.current;Ie.current=[];for(const o of t)o(e)},[]);useEffect(()=>(Ee.current=!0,()=>{Ee.current=!1,Te(!1)}),[Te]);const je=useCallback(e=>{if(e<0||e>=ne.length)return re;const t=ne[e];return N?(A-t)/2:A-t},[ne,A,re,N]),Oe=useCallback(e=>{xe.current=e;de!==e&&(he(e),ce.value=e,n?.(e))},[de,ce,n]),Ae=useCallback(()=>{me.current=!1,ce.value<0&&(ve.current=!0,"modal"===S?(be(!1),"ios"!==Platform.OS&&Se(!1)):we(!1))},[S,ce]),De=useCallback(()=>{ve.current&&Se(!1)},[]);useEffect(()=>{("modal"===S?!pe:!ge)&&ve.current&&(ve.current=!1,ye.current?.(),Te(!0))},[S,pe,ge,Te]);const Ve=useCallback((e,t,o)=>{me.current=!0,r?.(t,o),le.value=withSpring(e,SPRING_CONFIG,e=>{"worklet";e&&runOnJS(Ae)()})},[r,le,Ae]),Pe=useCallback(e=>{const t="number"==typeof e?clamp(e,0,ne.length-1):de>=0?de:0,o=ce.value,s=je(t);return ve.current=!1,Te(!1),"modal"===S?(Se(!0),be(!0)):we(!0),o<0&&Ce.current?(le.value=s,ue.value=1,Oe(t),void r?.(o,t)):o<0&&j.reduced?(le.value=s,ue.value=0,ue.value=withTiming(1,{duration:j.duration("fast"),easing:Easing.bezier(...T.motion.ease.decelerate),reduceMotion:PRESENCE_REDUCE_MOTION}),Oe(t),void r?.(o,t)):(o<0&&(le.value=re,ue.value=1),Oe(t),void Ve(s,o,t))},[Ve,re,de,ce,S,r,j,ue,ne.length,Oe,Te,T.motion.ease.decelerate,le,je]),He=useCallback(()=>{if(0===ne.length)return;const e=ce.value,t=je(0);Oe(0),Ve(t,e,0)},[Ve,ce,ne.length,Oe,je]),Be=useCallback(()=>new Promise(e=>{if(xe.current<0)return void(Me.current?Ie.current.push(e):e(!0));Ie.current.push(e),Ce.current=!1;const t=ce.value;Oe(-1),me.current=!0,r?.(t,-1);const o=j.reduced?ue:le,s=j.reduced?0:re;o.value=withTiming(s,{duration:j.duration("fast"),easing:Easing.bezier(...T.motion.ease.accelerate),reduceMotion:PRESENCE_REDUCE_MOTION},e=>{"worklet";e&&runOnJS(Ae)()})}),[re,ce,Ae,r,j,ue,Oe,le,T.motion.ease.accelerate]),Ne=useCallback(async()=>{await Be()},[Be]),Ge=useCallback((e,t,o)=>{const s=Re.current;if(!s)return void e();if(ke.current)return void t?.();const n=s();"boolean"!=typeof n?(ke.current=!0,o?.(),n.then(o=>{ke.current=!1,o&&Ee.current&&xe.current>=0?e():t?.()},e=>{throw ke.current=!1,e})):(n?e:t)?.()},[]),Le=useCallback(()=>new Promise(e=>{xe.current<0?Be().then(e):Ge(()=>{Be().then(e)},()=>e(!1))}),[Be,Ge]),Fe=useCallback(()=>{i&&Le()},[i,Le]);useImperativeHandle(t,()=>({expand:Pe,collapse:He,close:Ne,requestClose:Le}),[Pe,He,Ne,Le]),useEffect(()=>{"number"==typeof s&&s!==de&&(-1===s?Ne():Pe(s))},[s]);const Je=useRef({hostHeight:A,contentSnap:oe});useEffect(()=>{const e=Je.current;if(e.hostHeight===A&&e.contentSnap===oe)return;if(Je.current={hostHeight:A,contentSnap:oe},e.hostHeight===A&&ce.value<0)return;const t=je(ce.value);le.value=Ce.current?t:withSpring(t,SPRING_CONFIG)},[A,oe]);const ze=A-ae,Ke=useMemo(()=>ne.map(e=>A-e),[ne,A]),Ue=useCallback(()=>{const e=xe.current;e<0||Ve(je(e),e,e)},[Ve,je]),Ye=useCallback((e,t)=>{const o=ce.value;-1!==e?(Oe(e),Ve(t,o,e)):Ge(()=>{Keyboard.dismiss(),triggerHaptic("selection"),Ne()},Ue,Ue)},[Ve,Ne,ce,Ge,Oe,Ue]),$e=useMemo(()=>Gesture.Native().withTestId(I?`${I}-content-gesture`:"bottom-sheet-content-gesture"),[I]),qe=useMemo(()=>{const e=Ke,t=re,o=ze,s=l;return Gesture.Pan().withTestId(I?`${I}-pan-gesture`:"bottom-sheet-pan-gesture").activeOffsetY([-10,10]).failOffsetX([-15,15]).onStart(()=>{"worklet";ie.value=le.value}).onUpdate(e=>{"worklet";const t=ie.value+e.translationY;le.value=t<o?o+.25*(t-o):t}).onEnd(o=>{"worklet";const n=le.value;if(o.velocityY>1e3)return s?void runOnJS(Ye)(-1,t):void runOnJS(Ye)(0,e[0]);let r=0,a=Math.abs(n-e[0]);for(let t=1;t<e.length;t++){const o=Math.abs(n-e[t]);o<a&&(a=o,r=t)}const l=e[0];s&&n-l>80?runOnJS(Ye)(-1,t):runOnJS(Ye)(r,e[r])})},[re,ie,l,Ye,ze,Ke,I,le]),{height:We}=useReanimatedKeyboardAnimation(),Xe="shift"===p,Qe=useDerivedValue(()=>Xe?We.value:0),Ze=ne[de>=0?de:0]??ae,et=T.space.md,tt=useAnimatedStyle(()=>{if(N){const e=Qe.value,t=A+e-Ze-et,o=e<0&&le.value>t?t:le.value;return{top:o<J?J:o,opacity:ue.value}}const e=le.value+Qe.value,t=Qe.value<0?J:ze;return{top:e<t?t:e,opacity:ue.value}}),ot=useAnimatedStyle(()=>{const e=Qe.value;if(N){const t=A+e-Ze-et,o=e<0&&le.value>t?t:le.value,s=A+e-et-(o<J?J:o);return{height:s<0?0:s>Ze?Ze:s}}const t=e<0?J:ze,o=le.value+e,s=A+e-(o<t?t:o);return{height:s<0?0:s>ae?ae:s}}),st=de>=0,nt=useMemo(()=>buildStyles(T),[T]),rt=useCallback(()=>{i&&Ge(()=>{triggerHaptic("selection"),Ne()})},[i,Ne,Ge]),at=useMemo(()=>Gesture.Tap().withTestId(I?`${I}-backdrop-gesture`:"bottom-sheet-backdrop-gesture").maxDuration(250).onEnd((_e,e)=>{"worklet";e&&runOnJS(rt)()}),[rt,I]),lt=useMemo(()=>({snapIndex:de,snapPoints:ne,expand:Pe,collapse:He,close:Ne,requestClose:Le}),[de,ne,Pe,He,Ne,Le]);if("inline"===S&&!ge)return null;if("modal"===S&&!pe)return null;const it=_jsxs(View,{collapsable:!1,style:["modal"===S?nt.backdropModal:nt.backdropInline,{backgroundColor:T.colors.scrim}],onLayout:H,testID:I,accessibilityViewIsModal:E??st,children:[_jsx(GestureDetector,{gesture:at,children:_jsx(Animated.View,{style:StyleSheet.absoluteFill,accessibilityRole:"button",accessibilityLabel:"Close bottom sheet"})}),_jsx(Animated.View,{accessibilityRole:"alert",accessibilityLabel:_,accessibilityViewIsModal:E??st,accessibilityActions:[{name:"escape",label:"Close bottom sheet"}],onAccessibilityAction:e=>{"escape"===e.nativeEvent.actionName&&Fe()},onAccessibilityEscape:Fe,style:[nt.sheet,{height:ae,backgroundColor:T.colors.surface,borderTopLeftRadius:T.radius.xl,borderTopRightRadius:T.radius.xl,...smoothCorners,...T.shadow.modal},N?{height:Ze,left:(V-G)/2,right:void 0,width:G,borderBottomLeftRadius:T.radius.xl,borderBottomRightRadius:T.radius.xl}:null,w,tt],children:_jsxs(SheetBody,{style:[nt.body,ot],keyboardOffset:Qe,children:[N?_jsx(View,{style:{height:T.space.md}}):_jsx(GestureDetector,{gesture:qe,children:_jsx(View,{style:nt.handleRow,onLayout:K?Y:void 0,accessible:!0,accessibilityLabel:"Drag handle",accessibilityHint:"Drag up or down to resize the sheet, or swipe down to close it",testID:I?`${I}-handle`:"bottom-sheet-handle",children:_jsx(View,{style:[nt.handle,{backgroundColor:T.colors.border},g]})})}),null!=C&&_jsx(View,{style:[nt.header,M],onLayout:K?q:void 0,children:C}),c?_jsx(GestureDetector,{gesture:$e,children:_jsx(ScrollView,{ref:d,style:nt.scrollContent,onScroll:h,onContentSizeChange:se,onLayout:f,scrollEventThrottle:b,keyboardShouldPersistTaps:"always",keyboardDismissMode:"none",children:k})}):_jsx(View,{style:K?[nt.content,{overflow:"visible"}]:nt.content,children:K?_jsx(View,{onLayout:X,children:k}):k}),null!=x&&_jsx(View,{style:[nt.footer,R],onLayout:K?ee:void 0,children:x})]})})]}),ut=_jsx(BottomSheetContext.Provider,{value:lt,children:it});return"modal"===S?_jsx(Modal,{transparent:!0,visible:fe,onRequestClose:Fe,onDismiss:"ios"===Platform.OS?De:void 0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",supportedOrientations:["portrait","landscape"],children:_jsxs(ModalSafeArea,{onInsets:F,children:["android"===Platform.OS?_jsx(GestureHandlerRootView,{style:nt.modalRoot,children:ut}):ut,_jsx(ToastHost,{})]})}):ut}),SheetBody=({style:e,keyboardOffset:t,children:o})=>{const s=useSafeAreaInsets().bottom,n=useAnimatedStyle(()=>{const e=s+t.value;return{paddingBottom:e>0?e:0}});return _jsx(Animated.View,{style:[e,n],children:o})};BottomSheet.displayName="BottomSheet";const useMeasuredHeight=()=>{const[e,t]=useState(0),o=useCallback(e=>{t(t=>t===e?t:e)},[]);return[e,useCallback(e=>o(e.nativeEvent.layout.height),[o]),o]},resolveSnapPoints=(e,t,o)=>[...e.map(e=>{if("number"==typeof e)return e;if("content"===e)return o;const s=parseFloat(e);return Number.isNaN(s)?0:s/100*t})].sort((e,t)=>e-t),clamp=(e,t,o)=>Math.min(Math.max(e,t),o),buildStyles=e=>StyleSheet.create({backdropModal:{flex:1},backdropInline:{...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,...smoothCorners},content:{flex:1,overflow:"hidden"},scrollContent:{flex:1},modalRoot:{flex:1}});export{BottomSheet};export default BottomSheet;
1
+ "use strict";import{createContext,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{Dimensions,Keyboard,Modal,Platform,ScrollView,StyleSheet,useWindowDimensions,View}from"react-native";import{Gesture,GestureDetector,GestureHandlerRootView}from"react-native-gesture-handler";import{useReanimatedKeyboardAnimation}from"react-native-keyboard-controller";import Animated,{Easing,runOnJS,useAnimatedStyle,useDerivedValue,useSharedValue,withSpring,withTiming}from"react-native-reanimated";import{useSafeAreaInsets}from"react-native-safe-area-context";import{PRESENCE_REDUCE_MOTION,usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{useTheme}from"../../theme/index.js";import{triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{warnInvalidValue}from"../../utils/warnInvalidValue.js";import{ModalSafeArea,useModalInsets}from"../ModalSafeArea/ModalSafeArea.js";import{Text}from"../Text/index.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_BOTTOM_SHEET_LABELS=Object.freeze({close:"Close bottom sheet",dragHandle:"Drag handle"});const DEFAULT_SNAP_POINTS=["content"],TABLET_MIN_SHORT_SIDE=600,DIALOG_MAX_WIDTH=560,BottomSheetContext=createContext(null);export const useBottomSheet=()=>{const e=useContext(BottomSheetContext);if(!e)throw new Error("[@webority/mobile-ui] BottomSheet: useBottomSheet must be used inside a <BottomSheet>.");return e};const SPRING_CONFIG={damping:20,stiffness:240,mass:1},CLOSE_VELOCITY_THRESHOLD=1e3,DRAG_ACTIVATION_OFFSET=10,BottomSheet=e=>{const{snapPoints:t=DEFAULT_SNAP_POINTS,visible:o,onClose:s,snapIndex:n,onSnapChange:r,onAnimate:a,onAfterClose:l,enablePanDownToClose:i=!0,enableBackdropPress:u=!0,onBeforeClose:c,title:d,labels:h,scrollable:m=!1,scrollRef:f,onScroll:b,onContentSizeChange:S,onScrollLayout:p,scrollEventThrottle:v,keyboardBehavior:y="shift",inline:g=!1,presentation:w="sheet",animateMount:C=!0,handleIndicatorStyle:x,containerStyle:_,header:T,footer:E,headerStyle:M,footerStyle:R,children:k,accessibilityLabel:I,accessibilityViewIsModal:O,testID:j}=e;warnInvalidValue("BottomSheet","presentation",e.presentation,["sheet","dialog","auto"]),warnInvalidValue("BottomSheet","keyboardBehavior",e.keyboardBehavior,["none","shift"]);const A=useMemo(()=>({...DEFAULT_BOTTOM_SHEET_LABELS,...h}),[h]),B=null!=T||null!=d,D=g?"inline":"modal",V=useTheme(),P=usePresenceMotion(),L=useSafeAreaInsets(),[H,N]=useState(()=>Dimensions.get("window").height),[G,F]=useState(()=>Dimensions.get("window").width),J=useCallback(e=>{const{height:t,width:o}=e.nativeEvent.layout;t>0&&N(e=>e===t?e:t),o>0&&F(e=>e===o?e:o)},[]),U=useWindowDimensions(),z="dialog"===w||"auto"===w&&Math.min(U.width,U.height)>=600,K=Math.min(560,G-2*V.space.xl),[Y,$]=useModalInsets(),W="modal"===D?Y.top:L.top,q="modal"===D?Y.bottom:L.bottom,X=t.includes("content"),[Q,Z]=useMeasuredHeight(),[ee,te]=useMeasuredHeight(),[oe,se,ne]=useMeasuredHeight(),[re,ae]=useMeasuredHeight(),le=z?V.space.md:Q,ie=X?Math.min(le+(B?ee:0)+oe+(null!=E?re:0)+q,H-W):0,ue=useCallback((e,t)=>{X&&ne(t),S?.(e,t)},[X,S,ne]),ce=useMemo(()=>resolveSnapPoints(t,H,ie),[t,H,ie]),de=H,he=ce[ce.length-1]??0,me=useSharedValue(de),fe=useSharedValue(de),be=useSharedValue(1),Se=useSharedValue(-1),[pe,ve]=useState(-1),ye=useRef(!1),[ge,we]=useState(!1),[Ce,xe]=useState(!1),Te=useRef(!1),Ee=useRef(l);Ee.current=l;const[Me,Re]=useState(!1),ke=useRef(!C&&o),Ie=useRef(-1),Oe=useRef(!1);Oe.current="modal"===D?Ce:Me;const je=useRef(c);je.current=c;const Ae=useRef(s);Ae.current=s;const Be=useRef(!1),De=useRef(!0),Ve=useRef([]),Pe=useCallback(e=>{const t=Ve.current;Ve.current=[];for(const o of t)o(e)},[]);useEffect(()=>(De.current=!0,()=>{De.current=!1,Pe(!1)}),[Pe]);const Le=useCallback(e=>{if(e<0||e>=ce.length)return de;const t=ce[e];return z?(H-t)/2:H-t},[ce,H,de,z]),He=useCallback(e=>{Ie.current=e;pe!==e&&(ve(e),Se.value=e,e>=0&&r?.(e))},[pe,Se,r]),Ne=useCallback(()=>{ye.current=!1,Se.value<0&&(Te.current=!0,"modal"===D?(we(!1),"ios"!==Platform.OS&&xe(!1)):Re(!1))},[D,Se]),Ge=useCallback(()=>{Te.current&&xe(!1)},[]);useEffect(()=>{("modal"===D?!Ce:!Me)&&Te.current&&(Te.current=!1,Ee.current?.(),Pe(!0))},[D,Ce,Me,Pe]);const Fe=useCallback((e,t,o)=>{ye.current=!0,a?.(t,o),me.value=withSpring(e,SPRING_CONFIG,e=>{"worklet";e&&runOnJS(Ne)()})},[a,me,Ne]),Je=useCallback(e=>{const t="number"==typeof e?clamp(e,0,ce.length-1):pe>=0?pe:0,o=Se.value,s=Le(t);return Te.current=!1,Pe(!1),"modal"===D?(xe(!0),we(!0)):Re(!0),o<0&&ke.current?(me.value=s,be.value=1,He(t),void a?.(o,t)):o<0&&P.reduced?(me.value=s,be.value=0,be.value=withTiming(1,{duration:P.duration("fast"),easing:Easing.bezier(...V.motion.ease.decelerate),reduceMotion:PRESENCE_REDUCE_MOTION}),He(t),void a?.(o,t)):(o<0&&(me.value=de,be.value=1),He(t),void Fe(s,o,t))},[Fe,de,pe,Se,D,a,P,be,ce.length,He,Pe,V.motion.ease.decelerate,me,Le]),Ue=useCallback(()=>new Promise(e=>{if(Ie.current<0)return void(Oe.current?Ve.current.push(e):e(!0));Ve.current.push(e),ke.current=!1;const t=Se.value;He(-1),ye.current=!0,a?.(t,-1);const o=P.reduced?be:me,s=P.reduced?0:de;o.value=withTiming(s,{duration:P.duration("fast"),easing:Easing.bezier(...V.motion.ease.accelerate),reduceMotion:PRESENCE_REDUCE_MOTION},e=>{"worklet";e&&runOnJS(Ne)()})}),[de,Se,Ne,a,P,be,He,me,V.motion.ease.accelerate]),ze=useCallback((e,t,o)=>{const s=je.current;if(!s)return void e();if(Be.current)return void t?.();const n=s();"boolean"!=typeof n?(Be.current=!0,o?.(),n.then(o=>{Be.current=!1,o&&De.current&&Ie.current>=0?e():t?.()},e=>{throw Be.current=!1,e})):(n?e:t)?.()},[]),Ke=useCallback(()=>new Promise(e=>{Ie.current<0?e(!0):ze(()=>{Ae.current(),Ue(),e(!0)},()=>e(!1))}),[Ue,ze]),Ye=useCallback(()=>{Ae.current()},[]),$e=useCallback(()=>{u&&Ke()},[u,Ke]),We=useRef(null);useEffect(()=>{const e=We.current!==o;We.current=o,e?o?Je(n??0):Ue():o&&"number"==typeof n&&n!==Se.value&&Je(n)},[o,n]);const qe=useRef({hostHeight:H,contentSnap:ie});useEffect(()=>{const e=qe.current;if(e.hostHeight===H&&e.contentSnap===ie)return;if(qe.current={hostHeight:H,contentSnap:ie},e.hostHeight===H&&Se.value<0)return;const t=Le(Se.value);me.value=ke.current?t:withSpring(t,SPRING_CONFIG)},[H,ie]);const Xe=H-he,Qe=useMemo(()=>ce.map(e=>H-e),[ce,H]),Ze=useCallback(()=>{const e=Ie.current;e<0||Fe(Le(e),e,e)},[Fe,Le]),et=useCallback((e,t)=>{const o=Se.value;-1!==e?(He(e),Fe(t,o,e)):ze(()=>{Keyboard.dismiss(),triggerHaptic("selection"),Ae.current(),Ue()},Ze,Ze)},[Fe,Ue,Se,ze,He,Ze]),tt=useMemo(()=>Gesture.Native().withTestId(j?`${j}-content-gesture`:"bottom-sheet-content-gesture"),[j]),ot=useMemo(()=>{const e=Qe,t=de,o=Xe,s=i;return Gesture.Pan().withTestId(j?`${j}-pan-gesture`:"bottom-sheet-pan-gesture").activeOffsetY([-10,10]).failOffsetX([-15,15]).onStart(()=>{"worklet";fe.value=me.value}).onUpdate(e=>{"worklet";const t=fe.value+e.translationY;me.value=t<o?o+.25*(t-o):t}).onEnd(o=>{"worklet";const n=me.value;if(o.velocityY>1e3)return s?void runOnJS(et)(-1,t):void runOnJS(et)(0,e[0]);let r=0,a=Math.abs(n-e[0]);for(let t=1;t<e.length;t++){const o=Math.abs(n-e[t]);o<a&&(a=o,r=t)}const l=e[0];s&&n-l>80?runOnJS(et)(-1,t):runOnJS(et)(r,e[r])})},[de,fe,i,et,Xe,Qe,j,me]),{height:st}=useReanimatedKeyboardAnimation(),nt="shift"===y,rt=useDerivedValue(()=>nt?st.value:0),at=ce[pe>=0?pe:0]??he,lt=V.space.md,it=useAnimatedStyle(()=>{if(z){const e=rt.value,t=H+e-at-lt,o=e<0&&me.value>t?t:me.value;return{top:o<W?W:o,opacity:be.value}}const e=me.value+rt.value,t=rt.value<0?W:Xe;return{top:e<t?t:e,opacity:be.value}}),ut=useAnimatedStyle(()=>{const e=rt.value;if(z){const t=H+e-at-lt,o=e<0&&me.value>t?t:me.value,s=H+e-lt-(o<W?W:o);return{height:s<0?0:s>at?at:s}}const t=e<0?W:Xe,o=me.value+e,s=H+e-(o<t?t:o);return{height:s<0?0:s>he?he:s}}),ct=pe>=0,dt=useMemo(()=>buildStyles(V),[V]),ht=useCallback(()=>{u&&ze(()=>{triggerHaptic("selection"),Ae.current(),Ue()})},[u,Ue,ze]),mt=useMemo(()=>Gesture.Tap().withTestId(j?`${j}-backdrop-gesture`:"bottom-sheet-backdrop-gesture").maxDuration(250).onEnd((_e,e)=>{"worklet";e&&runOnJS(ht)()}),[ht,j]),ft=useMemo(()=>({snapIndex:pe,snapPoints:ce,close:Ye,requestClose:Ke}),[pe,ce,Ye,Ke]);if("inline"===D&&!Me)return null;if("modal"===D&&!Ce)return null;const bt=_jsxs(View,{collapsable:!1,style:["modal"===D?dt.backdropModal:dt.backdropInline,{backgroundColor:V.colors.scrim}],onLayout:J,testID:j,accessibilityViewIsModal:O??ct,children:[_jsx(GestureDetector,{gesture:mt,children:_jsx(Animated.View,{style:StyleSheet.absoluteFill,accessibilityRole:"button",accessibilityLabel:A.close})}),_jsx(Animated.View,{accessibilityRole:"alert",accessibilityLabel:I,accessibilityViewIsModal:O??ct,accessibilityActions:[{name:"escape",label:A.close}],onAccessibilityAction:e=>{"escape"===e.nativeEvent.actionName&&$e()},onAccessibilityEscape:$e,style:[dt.sheet,{height:he,backgroundColor:V.colors.surface,borderTopLeftRadius:V.radius.xl,borderTopRightRadius:V.radius.xl,...smoothCorners,...V.shadow.modal},z?{height:at,left:(G-K)/2,right:void 0,width:K,borderBottomLeftRadius:V.radius.xl,borderBottomRightRadius:V.radius.xl}:null,_,it],children:_jsxs(SheetBody,{style:[dt.body,ut],keyboardOffset:rt,children:[z?_jsx(View,{style:{height:V.space.md}}):_jsx(GestureDetector,{gesture:ot,children:_jsx(View,{style:dt.handleRow,onLayout:X?Z:void 0,accessible:!0,accessibilityLabel:A.dragHandle,accessibilityHint:"Drag up or down to resize the sheet, or swipe down to close it",testID:j?`${j}-handle`:"bottom-sheet-handle",children:_jsx(View,{style:[dt.handle,{backgroundColor:V.colors.border},x]})})}),B&&_jsxs(View,{style:[dt.header,M],onLayout:X?te:void 0,children:[null!=d?_jsx(Text,{variant:"title",accessibilityRole:"header",children:d}):null,T]}),m?_jsx(GestureDetector,{gesture:tt,children:_jsx(ScrollView,{ref:f,style:dt.scrollContent,onScroll:b,onContentSizeChange:ue,onLayout:p,scrollEventThrottle:v,keyboardShouldPersistTaps:"always",keyboardDismissMode:"none",children:k})}):_jsx(View,{style:X?[dt.content,{overflow:"visible"}]:dt.content,children:X?_jsx(View,{onLayout:se,children:k}):k}),null!=E&&_jsx(View,{style:[dt.footer,R],onLayout:X?ae:void 0,children:E})]})})]}),St=_jsx(BottomSheetContext.Provider,{value:ft,children:bt});return"modal"===D?_jsx(Modal,{transparent:!0,visible:ge,onRequestClose:$e,onDismiss:"ios"===Platform.OS?Ge:void 0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",supportedOrientations:["portrait","landscape"],children:_jsxs(ModalSafeArea,{onInsets:$,children:["android"===Platform.OS?_jsx(GestureHandlerRootView,{style:dt.modalRoot,children:St}):St,_jsx(ToastHost,{})]})}):St},SheetBody=({style:e,keyboardOffset:t,children:o})=>{const s=useSafeAreaInsets().bottom,n=useAnimatedStyle(()=>{const e=s+t.value;return{paddingBottom:e>0?e:0}});return _jsx(Animated.View,{style:[e,n],children:o})};BottomSheet.displayName="BottomSheet";const useMeasuredHeight=()=>{const[e,t]=useState(0),o=useCallback(e=>{t(t=>t===e?t:e)},[]);return[e,useCallback(e=>o(e.nativeEvent.layout.height),[o]),o]},resolveSnapPoints=(e,t,o)=>[...e.map(e=>{if("number"==typeof e)return e;if("content"===e)return o;const s=parseFloat(e);return Number.isNaN(s)?0:s/100*t})].sort((e,t)=>e-t),clamp=(e,t,o)=>Math.min(Math.max(e,t),o),buildStyles=e=>StyleSheet.create({backdropModal:{flex:1},backdropInline:{...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,...smoothCorners},content:{flex:1,overflow:"hidden"},scrollContent:{flex:1},modalRoot:{flex:1}});export{BottomSheet};export default BottomSheet;
@@ -1 +1 @@
1
- "use strict";export{BottomSheet,default,useBottomSheet}from"./BottomSheet.js";export{useSheetSwap}from"./useSheetSwap.js";
1
+ "use strict";export{BottomSheet,DEFAULT_BOTTOM_SHEET_LABELS,default,useBottomSheet}from"./BottomSheet.js";