@webority/mobile-ui 0.90.0 → 0.92.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 (480) hide show
  1. package/canvas-kit.json +8 -0
  2. package/lib/commonjs/components/Accordion/Accordion.meta.js +1 -0
  3. package/lib/commonjs/components/Accordion/AccordionGroup.meta.js +1 -0
  4. package/lib/commonjs/components/AmountSlider/AmountSlider.meta.js +1 -0
  5. package/lib/commonjs/components/AnimatePresence/AnimatePresence.meta.js +1 -0
  6. package/lib/commonjs/components/AppBar/AppBar.meta.js +1 -0
  7. package/lib/commonjs/components/AppIcon/AppIcon.meta.js +1 -0
  8. package/lib/commonjs/components/AsyncBlock/AsyncBlock.meta.js +1 -0
  9. package/lib/commonjs/components/AuthedImage/AuthedImage.meta.js +1 -0
  10. package/lib/commonjs/components/Autocomplete/Autocomplete.meta.js +1 -0
  11. package/lib/commonjs/components/Avatar/Avatar.meta.js +1 -0
  12. package/lib/commonjs/components/Avatar/AvatarGroup.meta.js +1 -0
  13. package/lib/commonjs/components/Badge/Badge.meta.js +1 -0
  14. package/lib/commonjs/components/Banner/Banner.meta.js +1 -0
  15. package/lib/commonjs/components/BarChart/BarChart.meta.js +1 -0
  16. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  17. package/lib/commonjs/components/BottomNavigation/BottomNavigation.meta.js +1 -0
  18. package/lib/commonjs/components/BottomSheet/BottomSheet.meta.js +1 -0
  19. package/lib/commonjs/components/Box/Spacer.meta.js +1 -0
  20. package/lib/commonjs/components/Button/Button.js +1 -1
  21. package/lib/commonjs/components/Button/Button.meta.js +1 -0
  22. package/lib/commonjs/components/Calendar/Calendar.meta.js +1 -0
  23. package/lib/commonjs/components/Card/Card.js +1 -1
  24. package/lib/commonjs/components/Card/Card.meta.js +1 -0
  25. package/lib/commonjs/components/Carousel/Carousel.meta.js +1 -0
  26. package/lib/commonjs/components/Checkbox/Checkbox.meta.js +1 -0
  27. package/lib/commonjs/components/Chip/Chip.meta.js +1 -0
  28. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.meta.js +1 -0
  29. package/lib/commonjs/components/Composer/Composer.js +1 -1
  30. package/lib/commonjs/components/Composer/Composer.meta.js +1 -0
  31. package/lib/commonjs/components/Confetti/Confetti.meta.js +1 -0
  32. package/lib/commonjs/components/DatePicker/DatePicker.meta.js +1 -0
  33. package/lib/commonjs/components/DateRangePicker/DateRangePicker.meta.js +1 -0
  34. package/lib/commonjs/components/DateSeparator/DateSeparator.meta.js +1 -0
  35. package/lib/commonjs/components/DecimalInput/DecimalInput.meta.js +1 -0
  36. package/lib/commonjs/components/Descriptions/Descriptions.meta.js +1 -0
  37. package/lib/commonjs/components/Dialog/Dialog.js +1 -1
  38. package/lib/commonjs/components/Dialog/Dialog.meta.js +1 -0
  39. package/lib/commonjs/components/Divider/Divider.meta.js +1 -0
  40. package/lib/commonjs/components/Drawer/Drawer.meta.js +1 -0
  41. package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
  42. package/lib/commonjs/components/EmptyState/EmptyState.meta.js +1 -0
  43. package/lib/commonjs/components/FilePicker/FilePicker.meta.js +1 -0
  44. package/lib/commonjs/components/FileViewer/FileViewer.meta.js +1 -0
  45. package/lib/commonjs/components/FilterChipRow/FilterChipRow.meta.js +1 -0
  46. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.meta.js +1 -0
  47. package/lib/commonjs/components/FloatingActionButton/FloatingActionButtonGroup.meta.js +1 -0
  48. package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.meta.js +1 -0
  49. package/lib/commonjs/components/FormField/FormField.meta.js +1 -0
  50. package/lib/commonjs/components/IconBadge/IconBadge.meta.js +1 -0
  51. package/lib/commonjs/components/IconButton/IconButton.js +1 -1
  52. package/lib/commonjs/components/IconButton/IconButton.meta.js +1 -0
  53. package/lib/commonjs/components/ImageGallery/ImageGallery.meta.js +1 -0
  54. package/lib/commonjs/components/InlineSelect/InlineSelect.meta.js +1 -0
  55. package/lib/commonjs/components/Input/Input.js +1 -1
  56. package/lib/commonjs/components/Input/Input.meta.js +1 -0
  57. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.meta.js +1 -0
  58. package/lib/commonjs/components/ListItem/ListItem.meta.js +1 -0
  59. package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.meta.js +1 -0
  60. package/lib/commonjs/components/Markdown/Markdown.meta.js +1 -0
  61. package/lib/commonjs/components/Menu/Menu.meta.js +1 -0
  62. package/lib/commonjs/components/MessageBubble/MessageBubble.meta.js +1 -0
  63. package/lib/commonjs/components/MessageList/MessageList.meta.js +1 -0
  64. package/lib/commonjs/components/Modal/Modal.meta.js +1 -0
  65. package/lib/commonjs/components/Notation/Notation.meta.js +1 -0
  66. package/lib/commonjs/components/NumberInput/NumberInput.meta.js +1 -0
  67. package/lib/commonjs/components/OTPInput/OTPInput.meta.js +1 -0
  68. package/lib/commonjs/components/OnboardingPager/OnboardingPager.meta.js +1 -0
  69. package/lib/commonjs/components/OptionSheet/OptionSheet.meta.js +1 -0
  70. package/lib/commonjs/components/PaymentResult/PaymentResult.meta.js +1 -0
  71. package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.meta.js +1 -0
  72. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.meta.js +1 -0
  73. package/lib/commonjs/components/PickerTrigger/PickerTrigger.meta.js +1 -0
  74. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -1
  75. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.meta.js +1 -0
  76. package/lib/commonjs/components/ProfilePicker/ProfilePicker.meta.js +1 -0
  77. package/lib/commonjs/components/ProgressBar/ProgressBar.meta.js +1 -0
  78. package/lib/commonjs/components/ProgressRing/ProgressRing.meta.js +1 -0
  79. package/lib/commonjs/components/Radio/Radio.meta.js +1 -0
  80. package/lib/commonjs/components/Radio/RadioGroup.meta.js +1 -0
  81. package/lib/commonjs/components/Rating/Rating.meta.js +1 -0
  82. package/lib/commonjs/components/Repeater/Repeater.meta.js +1 -0
  83. package/lib/commonjs/components/RichTextEditor/RichTextEditor.meta.js +1 -0
  84. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.meta.js +1 -0
  85. package/lib/commonjs/components/Screen/Screen.meta.js +1 -0
  86. package/lib/commonjs/components/SearchBar/SearchBar.meta.js +1 -0
  87. package/lib/commonjs/components/SectionHeader/SectionHeader.meta.js +1 -0
  88. package/lib/commonjs/components/SegmentedControl/SegmentedControl.meta.js +1 -0
  89. package/lib/commonjs/components/Select/Select.meta.js +1 -0
  90. package/lib/commonjs/components/SignaturePad/SignaturePad.meta.js +1 -0
  91. package/lib/commonjs/components/Skeleton/Skeleton.meta.js +1 -0
  92. package/lib/commonjs/components/Skeleton/SkeletonCircle.meta.js +1 -0
  93. package/lib/commonjs/components/Skeleton/SkeletonContent.meta.js +1 -0
  94. package/lib/commonjs/components/Skeleton/SkeletonList.meta.js +1 -0
  95. package/lib/commonjs/components/Skeleton/SkeletonText.meta.js +1 -0
  96. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.meta.js +1 -0
  97. package/lib/commonjs/components/Slider/Slider.meta.js +1 -0
  98. package/lib/commonjs/components/SliderField/SliderField.meta.js +1 -0
  99. package/lib/commonjs/components/Sparkline/Sparkline.meta.js +1 -0
  100. package/lib/commonjs/components/Spinner/Spinner.meta.js +1 -0
  101. package/lib/commonjs/components/SquircleView/SquircleView.meta.js +1 -0
  102. package/lib/commonjs/components/StatTile/StatTile.meta.js +1 -0
  103. package/lib/commonjs/components/StatusBadge/StatusBadge.meta.js +1 -0
  104. package/lib/commonjs/components/Stepper/Stepper.meta.js +1 -0
  105. package/lib/commonjs/components/Swipeable/Swipeable.meta.js +1 -0
  106. package/lib/commonjs/components/Switch/Switch.meta.js +1 -0
  107. package/lib/commonjs/components/Tabs/Tabs.meta.js +1 -0
  108. package/lib/commonjs/components/TagInput/TagInput.meta.js +1 -0
  109. package/lib/commonjs/components/Text/Text.js +1 -1
  110. package/lib/commonjs/components/Text/Text.meta.js +1 -0
  111. package/lib/commonjs/components/TimePicker/TimePicker.meta.js +1 -0
  112. package/lib/commonjs/components/Timeline/Timeline.meta.js +1 -0
  113. package/lib/commonjs/components/Toast/Toast.meta.js +1 -0
  114. package/lib/commonjs/components/Tooltip/Tooltip.meta.js +1 -0
  115. package/lib/commonjs/components/Tour/Tour.meta.js +1 -0
  116. package/lib/commonjs/components/TypingIndicator/TypingIndicator.meta.js +1 -0
  117. package/lib/commonjs/components/WheelPicker/WheelPickerColumns.meta.js +1 -0
  118. package/lib/commonjs/components/WheelPicker/WheelPickerDuration.meta.js +1 -0
  119. package/lib/commonjs/components/WheelPicker/WheelPickerList.meta.js +1 -0
  120. package/lib/commonjs/components/ZoomableImage/ZoomableImage.meta.js +1 -0
  121. package/lib/commonjs/components/not-drawn.json +17 -0
  122. package/lib/commonjs/theme/tokens.generated.js +1 -1
  123. package/lib/commonjs/utils/hitSlop.js +1 -0
  124. package/lib/commonjs/utils/warnInvalidValue.js +1 -0
  125. package/lib/module/components/Accordion/Accordion.meta.js +1 -0
  126. package/lib/module/components/Accordion/AccordionGroup.meta.js +1 -0
  127. package/lib/module/components/AmountSlider/AmountSlider.meta.js +1 -0
  128. package/lib/module/components/AnimatePresence/AnimatePresence.meta.js +1 -0
  129. package/lib/module/components/AppBar/AppBar.meta.js +1 -0
  130. package/lib/module/components/AppIcon/AppIcon.meta.js +1 -0
  131. package/lib/module/components/AsyncBlock/AsyncBlock.meta.js +1 -0
  132. package/lib/module/components/AuthedImage/AuthedImage.meta.js +1 -0
  133. package/lib/module/components/Autocomplete/Autocomplete.meta.js +1 -0
  134. package/lib/module/components/Avatar/Avatar.meta.js +1 -0
  135. package/lib/module/components/Avatar/AvatarGroup.meta.js +1 -0
  136. package/lib/module/components/Badge/Badge.meta.js +1 -0
  137. package/lib/module/components/Banner/Banner.meta.js +1 -0
  138. package/lib/module/components/BarChart/BarChart.meta.js +1 -0
  139. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  140. package/lib/module/components/BottomNavigation/BottomNavigation.meta.js +1 -0
  141. package/lib/module/components/BottomSheet/BottomSheet.meta.js +1 -0
  142. package/lib/module/components/Box/Spacer.meta.js +1 -0
  143. package/lib/module/components/Button/Button.js +1 -1
  144. package/lib/module/components/Button/Button.meta.js +1 -0
  145. package/lib/module/components/Calendar/Calendar.meta.js +1 -0
  146. package/lib/module/components/Card/Card.js +1 -1
  147. package/lib/module/components/Card/Card.meta.js +1 -0
  148. package/lib/module/components/Carousel/Carousel.meta.js +1 -0
  149. package/lib/module/components/Checkbox/Checkbox.meta.js +1 -0
  150. package/lib/module/components/Chip/Chip.meta.js +1 -0
  151. package/lib/module/components/ChoiceGroup/ChoiceGroup.meta.js +1 -0
  152. package/lib/module/components/Composer/Composer.js +1 -1
  153. package/lib/module/components/Composer/Composer.meta.js +1 -0
  154. package/lib/module/components/Confetti/Confetti.meta.js +1 -0
  155. package/lib/module/components/DatePicker/DatePicker.meta.js +1 -0
  156. package/lib/module/components/DateRangePicker/DateRangePicker.meta.js +1 -0
  157. package/lib/module/components/DateSeparator/DateSeparator.meta.js +1 -0
  158. package/lib/module/components/DecimalInput/DecimalInput.meta.js +1 -0
  159. package/lib/module/components/Descriptions/Descriptions.meta.js +1 -0
  160. package/lib/module/components/Dialog/Dialog.js +1 -1
  161. package/lib/module/components/Dialog/Dialog.meta.js +1 -0
  162. package/lib/module/components/Divider/Divider.meta.js +1 -0
  163. package/lib/module/components/Drawer/Drawer.meta.js +1 -0
  164. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  165. package/lib/module/components/EmptyState/EmptyState.meta.js +1 -0
  166. package/lib/module/components/FilePicker/FilePicker.meta.js +1 -0
  167. package/lib/module/components/FileViewer/FileViewer.meta.js +1 -0
  168. package/lib/module/components/FilterChipRow/FilterChipRow.meta.js +1 -0
  169. package/lib/module/components/FloatingActionButton/FloatingActionButton.meta.js +1 -0
  170. package/lib/module/components/FloatingActionButton/FloatingActionButtonGroup.meta.js +1 -0
  171. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.meta.js +1 -0
  172. package/lib/module/components/FormField/FormField.meta.js +1 -0
  173. package/lib/module/components/IconBadge/IconBadge.meta.js +1 -0
  174. package/lib/module/components/IconButton/IconButton.js +1 -1
  175. package/lib/module/components/IconButton/IconButton.meta.js +1 -0
  176. package/lib/module/components/ImageGallery/ImageGallery.meta.js +1 -0
  177. package/lib/module/components/InlineSelect/InlineSelect.meta.js +1 -0
  178. package/lib/module/components/Input/Input.js +1 -1
  179. package/lib/module/components/Input/Input.meta.js +1 -0
  180. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.meta.js +1 -0
  181. package/lib/module/components/ListItem/ListItem.meta.js +1 -0
  182. package/lib/module/components/LoaderOverlay/LoaderOverlay.meta.js +1 -0
  183. package/lib/module/components/Markdown/Markdown.meta.js +1 -0
  184. package/lib/module/components/Menu/Menu.meta.js +1 -0
  185. package/lib/module/components/MessageBubble/MessageBubble.meta.js +1 -0
  186. package/lib/module/components/MessageList/MessageList.meta.js +1 -0
  187. package/lib/module/components/Modal/Modal.meta.js +1 -0
  188. package/lib/module/components/Notation/Notation.meta.js +1 -0
  189. package/lib/module/components/NumberInput/NumberInput.meta.js +1 -0
  190. package/lib/module/components/OTPInput/OTPInput.meta.js +1 -0
  191. package/lib/module/components/OnboardingPager/OnboardingPager.meta.js +1 -0
  192. package/lib/module/components/OptionSheet/OptionSheet.meta.js +1 -0
  193. package/lib/module/components/PaymentResult/PaymentResult.meta.js +1 -0
  194. package/lib/module/components/PermissionPrompt/PermissionPrompt.meta.js +1 -0
  195. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.meta.js +1 -0
  196. package/lib/module/components/PickerTrigger/PickerTrigger.meta.js +1 -0
  197. package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
  198. package/lib/module/components/ProfileCompletion/ProfileCompletion.meta.js +1 -0
  199. package/lib/module/components/ProfilePicker/ProfilePicker.meta.js +1 -0
  200. package/lib/module/components/ProgressBar/ProgressBar.meta.js +1 -0
  201. package/lib/module/components/ProgressRing/ProgressRing.meta.js +1 -0
  202. package/lib/module/components/Radio/Radio.meta.js +1 -0
  203. package/lib/module/components/Radio/RadioGroup.meta.js +1 -0
  204. package/lib/module/components/Rating/Rating.meta.js +1 -0
  205. package/lib/module/components/Repeater/Repeater.meta.js +1 -0
  206. package/lib/module/components/RichTextEditor/RichTextEditor.meta.js +1 -0
  207. package/lib/module/components/ScannerOverlay/ScannerOverlay.meta.js +1 -0
  208. package/lib/module/components/Screen/Screen.meta.js +1 -0
  209. package/lib/module/components/SearchBar/SearchBar.meta.js +1 -0
  210. package/lib/module/components/SectionHeader/SectionHeader.meta.js +1 -0
  211. package/lib/module/components/SegmentedControl/SegmentedControl.meta.js +1 -0
  212. package/lib/module/components/Select/Select.meta.js +1 -0
  213. package/lib/module/components/SignaturePad/SignaturePad.meta.js +1 -0
  214. package/lib/module/components/Skeleton/Skeleton.meta.js +1 -0
  215. package/lib/module/components/Skeleton/SkeletonCircle.meta.js +1 -0
  216. package/lib/module/components/Skeleton/SkeletonContent.meta.js +1 -0
  217. package/lib/module/components/Skeleton/SkeletonList.meta.js +1 -0
  218. package/lib/module/components/Skeleton/SkeletonText.meta.js +1 -0
  219. package/lib/module/components/SlideToConfirm/SlideToConfirm.meta.js +1 -0
  220. package/lib/module/components/Slider/Slider.meta.js +1 -0
  221. package/lib/module/components/SliderField/SliderField.meta.js +1 -0
  222. package/lib/module/components/Sparkline/Sparkline.meta.js +1 -0
  223. package/lib/module/components/Spinner/Spinner.meta.js +1 -0
  224. package/lib/module/components/SquircleView/SquircleView.meta.js +1 -0
  225. package/lib/module/components/StatTile/StatTile.meta.js +1 -0
  226. package/lib/module/components/StatusBadge/StatusBadge.meta.js +1 -0
  227. package/lib/module/components/Stepper/Stepper.meta.js +1 -0
  228. package/lib/module/components/Swipeable/Swipeable.meta.js +1 -0
  229. package/lib/module/components/Switch/Switch.meta.js +1 -0
  230. package/lib/module/components/Tabs/Tabs.meta.js +1 -0
  231. package/lib/module/components/TagInput/TagInput.meta.js +1 -0
  232. package/lib/module/components/Text/Text.js +1 -1
  233. package/lib/module/components/Text/Text.meta.js +1 -0
  234. package/lib/module/components/TimePicker/TimePicker.meta.js +1 -0
  235. package/lib/module/components/Timeline/Timeline.meta.js +1 -0
  236. package/lib/module/components/Toast/Toast.meta.js +1 -0
  237. package/lib/module/components/Tooltip/Tooltip.meta.js +1 -0
  238. package/lib/module/components/Tour/Tour.meta.js +1 -0
  239. package/lib/module/components/TypingIndicator/TypingIndicator.meta.js +1 -0
  240. package/lib/module/components/WheelPicker/WheelPickerColumns.meta.js +1 -0
  241. package/lib/module/components/WheelPicker/WheelPickerDuration.meta.js +1 -0
  242. package/lib/module/components/WheelPicker/WheelPickerList.meta.js +1 -0
  243. package/lib/module/components/ZoomableImage/ZoomableImage.meta.js +1 -0
  244. package/lib/module/components/not-drawn.json +17 -0
  245. package/lib/module/theme/tokens.generated.js +1 -1
  246. package/lib/module/utils/hitSlop.js +1 -0
  247. package/lib/module/utils/warnInvalidValue.js +1 -0
  248. package/lib/typescript/commonjs/canvasKit/meta.d.ts +21 -6
  249. package/lib/typescript/commonjs/components/Accordion/Accordion.meta.d.ts +3 -0
  250. package/lib/typescript/commonjs/components/Accordion/AccordionGroup.meta.d.ts +3 -0
  251. package/lib/typescript/commonjs/components/AmountSlider/AmountSlider.meta.d.ts +3 -0
  252. package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.meta.d.ts +3 -0
  253. package/lib/typescript/commonjs/components/AppBar/AppBar.meta.d.ts +3 -0
  254. package/lib/typescript/commonjs/components/AppIcon/AppIcon.meta.d.ts +3 -0
  255. package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.meta.d.ts +3 -0
  256. package/lib/typescript/commonjs/components/AuthedImage/AuthedImage.meta.d.ts +5 -0
  257. package/lib/typescript/commonjs/components/Autocomplete/Autocomplete.meta.d.ts +3 -0
  258. package/lib/typescript/commonjs/components/Avatar/Avatar.meta.d.ts +3 -0
  259. package/lib/typescript/commonjs/components/Avatar/AvatarGroup.meta.d.ts +3 -0
  260. package/lib/typescript/commonjs/components/Badge/Badge.meta.d.ts +3 -0
  261. package/lib/typescript/commonjs/components/Banner/Banner.meta.d.ts +3 -0
  262. package/lib/typescript/commonjs/components/BarChart/BarChart.meta.d.ts +3 -0
  263. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.meta.d.ts +3 -0
  264. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.meta.d.ts +3 -0
  265. package/lib/typescript/commonjs/components/Box/Spacer.meta.d.ts +3 -0
  266. package/lib/typescript/commonjs/components/Button/Button.meta.d.ts +3 -0
  267. package/lib/typescript/commonjs/components/Calendar/Calendar.meta.d.ts +3 -0
  268. package/lib/typescript/commonjs/components/Card/Card.d.ts +3 -0
  269. package/lib/typescript/commonjs/components/Card/Card.meta.d.ts +3 -0
  270. package/lib/typescript/commonjs/components/Carousel/Carousel.meta.d.ts +3 -0
  271. package/lib/typescript/commonjs/components/Checkbox/Checkbox.meta.d.ts +3 -0
  272. package/lib/typescript/commonjs/components/Chip/Chip.meta.d.ts +3 -0
  273. package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.meta.d.ts +3 -0
  274. package/lib/typescript/commonjs/components/Composer/Composer.meta.d.ts +3 -0
  275. package/lib/typescript/commonjs/components/Confetti/Confetti.meta.d.ts +3 -0
  276. package/lib/typescript/commonjs/components/DatePicker/DatePicker.meta.d.ts +3 -0
  277. package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.meta.d.ts +3 -0
  278. package/lib/typescript/commonjs/components/DateSeparator/DateSeparator.meta.d.ts +3 -0
  279. package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.meta.d.ts +3 -0
  280. package/lib/typescript/commonjs/components/Descriptions/Descriptions.meta.d.ts +3 -0
  281. package/lib/typescript/commonjs/components/Dialog/Dialog.meta.d.ts +3 -0
  282. package/lib/typescript/commonjs/components/Divider/Divider.meta.d.ts +3 -0
  283. package/lib/typescript/commonjs/components/Drawer/Drawer.meta.d.ts +3 -0
  284. package/lib/typescript/commonjs/components/EmptyState/EmptyState.meta.d.ts +3 -0
  285. package/lib/typescript/commonjs/components/FilePicker/FilePicker.meta.d.ts +3 -0
  286. package/lib/typescript/commonjs/components/FileViewer/FileViewer.meta.d.ts +3 -0
  287. package/lib/typescript/commonjs/components/FilterChipRow/FilterChipRow.meta.d.ts +3 -0
  288. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButton.meta.d.ts +3 -0
  289. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButtonGroup.meta.d.ts +3 -0
  290. package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.meta.d.ts +3 -0
  291. package/lib/typescript/commonjs/components/FormField/FormField.meta.d.ts +3 -0
  292. package/lib/typescript/commonjs/components/IconBadge/IconBadge.meta.d.ts +3 -0
  293. package/lib/typescript/commonjs/components/IconButton/IconButton.meta.d.ts +3 -0
  294. package/lib/typescript/commonjs/components/ImageGallery/ImageGallery.meta.d.ts +3 -0
  295. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.meta.d.ts +3 -0
  296. package/lib/typescript/commonjs/components/Input/Input.meta.d.ts +3 -0
  297. package/lib/typescript/commonjs/components/KeyboardToolbar/KeyboardToolbar.meta.d.ts +3 -0
  298. package/lib/typescript/commonjs/components/ListItem/ListItem.meta.d.ts +3 -0
  299. package/lib/typescript/commonjs/components/LoaderOverlay/LoaderOverlay.meta.d.ts +3 -0
  300. package/lib/typescript/commonjs/components/Markdown/Markdown.meta.d.ts +3 -0
  301. package/lib/typescript/commonjs/components/Menu/Menu.meta.d.ts +3 -0
  302. package/lib/typescript/commonjs/components/MessageBubble/MessageBubble.meta.d.ts +3 -0
  303. package/lib/typescript/commonjs/components/MessageList/MessageList.meta.d.ts +5 -0
  304. package/lib/typescript/commonjs/components/Modal/Modal.meta.d.ts +3 -0
  305. package/lib/typescript/commonjs/components/Notation/Notation.meta.d.ts +3 -0
  306. package/lib/typescript/commonjs/components/NumberInput/NumberInput.meta.d.ts +3 -0
  307. package/lib/typescript/commonjs/components/OTPInput/OTPInput.meta.d.ts +3 -0
  308. package/lib/typescript/commonjs/components/OnboardingPager/OnboardingPager.meta.d.ts +3 -0
  309. package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.meta.d.ts +3 -0
  310. package/lib/typescript/commonjs/components/PaymentResult/PaymentResult.meta.d.ts +3 -0
  311. package/lib/typescript/commonjs/components/PermissionPrompt/PermissionPrompt.meta.d.ts +3 -0
  312. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.meta.d.ts +3 -0
  313. package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.meta.d.ts +3 -0
  314. package/lib/typescript/commonjs/components/ProfileCompletion/ProfileCompletion.meta.d.ts +3 -0
  315. package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.meta.d.ts +3 -0
  316. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.meta.d.ts +3 -0
  317. package/lib/typescript/commonjs/components/ProgressRing/ProgressRing.meta.d.ts +3 -0
  318. package/lib/typescript/commonjs/components/Radio/Radio.meta.d.ts +3 -0
  319. package/lib/typescript/commonjs/components/Radio/RadioGroup.meta.d.ts +3 -0
  320. package/lib/typescript/commonjs/components/Rating/Rating.meta.d.ts +3 -0
  321. package/lib/typescript/commonjs/components/Repeater/Repeater.meta.d.ts +3 -0
  322. package/lib/typescript/commonjs/components/RichTextEditor/RichTextEditor.meta.d.ts +3 -0
  323. package/lib/typescript/commonjs/components/ScannerOverlay/ScannerOverlay.meta.d.ts +3 -0
  324. package/lib/typescript/commonjs/components/Screen/Screen.meta.d.ts +3 -0
  325. package/lib/typescript/commonjs/components/SearchBar/SearchBar.meta.d.ts +3 -0
  326. package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.meta.d.ts +3 -0
  327. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.meta.d.ts +3 -0
  328. package/lib/typescript/commonjs/components/Select/Select.meta.d.ts +3 -0
  329. package/lib/typescript/commonjs/components/SignaturePad/SignaturePad.meta.d.ts +3 -0
  330. package/lib/typescript/commonjs/components/Skeleton/Skeleton.meta.d.ts +3 -0
  331. package/lib/typescript/commonjs/components/Skeleton/SkeletonCircle.meta.d.ts +3 -0
  332. package/lib/typescript/commonjs/components/Skeleton/SkeletonContent.meta.d.ts +3 -0
  333. package/lib/typescript/commonjs/components/Skeleton/SkeletonList.meta.d.ts +3 -0
  334. package/lib/typescript/commonjs/components/Skeleton/SkeletonText.meta.d.ts +3 -0
  335. package/lib/typescript/commonjs/components/SlideToConfirm/SlideToConfirm.meta.d.ts +3 -0
  336. package/lib/typescript/commonjs/components/Slider/Slider.meta.d.ts +3 -0
  337. package/lib/typescript/commonjs/components/SliderField/SliderField.meta.d.ts +3 -0
  338. package/lib/typescript/commonjs/components/Sparkline/Sparkline.meta.d.ts +3 -0
  339. package/lib/typescript/commonjs/components/Spinner/Spinner.meta.d.ts +3 -0
  340. package/lib/typescript/commonjs/components/SquircleView/SquircleView.meta.d.ts +2 -0
  341. package/lib/typescript/commonjs/components/StatTile/StatTile.meta.d.ts +3 -0
  342. package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.meta.d.ts +3 -0
  343. package/lib/typescript/commonjs/components/Stepper/Stepper.meta.d.ts +3 -0
  344. package/lib/typescript/commonjs/components/Swipeable/Swipeable.meta.d.ts +3 -0
  345. package/lib/typescript/commonjs/components/Switch/Switch.meta.d.ts +3 -0
  346. package/lib/typescript/commonjs/components/Tabs/Tabs.meta.d.ts +3 -0
  347. package/lib/typescript/commonjs/components/TagInput/TagInput.meta.d.ts +3 -0
  348. package/lib/typescript/commonjs/components/Text/Text.d.ts +1 -1
  349. package/lib/typescript/commonjs/components/Text/Text.meta.d.ts +3 -0
  350. package/lib/typescript/commonjs/components/TimePicker/TimePicker.meta.d.ts +3 -0
  351. package/lib/typescript/commonjs/components/Timeline/Timeline.meta.d.ts +3 -0
  352. package/lib/typescript/commonjs/components/Toast/Toast.meta.d.ts +3 -0
  353. package/lib/typescript/commonjs/components/Tooltip/Tooltip.meta.d.ts +3 -0
  354. package/lib/typescript/commonjs/components/Tour/Tour.meta.d.ts +3 -0
  355. package/lib/typescript/commonjs/components/TypingIndicator/TypingIndicator.meta.d.ts +3 -0
  356. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerColumns.meta.d.ts +3 -0
  357. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerDuration.meta.d.ts +3 -0
  358. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerList.meta.d.ts +3 -0
  359. package/lib/typescript/commonjs/components/ZoomableImage/ZoomableImage.meta.d.ts +3 -0
  360. package/lib/typescript/commonjs/theme/tokens.generated.d.ts +1 -2
  361. package/lib/typescript/commonjs/theme/types.d.ts +1 -1
  362. package/lib/typescript/commonjs/utils/hitSlop.d.ts +14 -0
  363. package/lib/typescript/commonjs/utils/warnInvalidValue.d.ts +10 -0
  364. package/lib/typescript/module/canvasKit/meta.d.ts +21 -6
  365. package/lib/typescript/module/components/Accordion/Accordion.meta.d.ts +3 -0
  366. package/lib/typescript/module/components/Accordion/AccordionGroup.meta.d.ts +3 -0
  367. package/lib/typescript/module/components/AmountSlider/AmountSlider.meta.d.ts +3 -0
  368. package/lib/typescript/module/components/AnimatePresence/AnimatePresence.meta.d.ts +3 -0
  369. package/lib/typescript/module/components/AppBar/AppBar.meta.d.ts +3 -0
  370. package/lib/typescript/module/components/AppIcon/AppIcon.meta.d.ts +3 -0
  371. package/lib/typescript/module/components/AsyncBlock/AsyncBlock.meta.d.ts +3 -0
  372. package/lib/typescript/module/components/AuthedImage/AuthedImage.meta.d.ts +5 -0
  373. package/lib/typescript/module/components/Autocomplete/Autocomplete.meta.d.ts +3 -0
  374. package/lib/typescript/module/components/Avatar/Avatar.meta.d.ts +3 -0
  375. package/lib/typescript/module/components/Avatar/AvatarGroup.meta.d.ts +3 -0
  376. package/lib/typescript/module/components/Badge/Badge.meta.d.ts +3 -0
  377. package/lib/typescript/module/components/Banner/Banner.meta.d.ts +3 -0
  378. package/lib/typescript/module/components/BarChart/BarChart.meta.d.ts +3 -0
  379. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.meta.d.ts +3 -0
  380. package/lib/typescript/module/components/BottomSheet/BottomSheet.meta.d.ts +3 -0
  381. package/lib/typescript/module/components/Box/Spacer.meta.d.ts +3 -0
  382. package/lib/typescript/module/components/Button/Button.meta.d.ts +3 -0
  383. package/lib/typescript/module/components/Calendar/Calendar.meta.d.ts +3 -0
  384. package/lib/typescript/module/components/Card/Card.d.ts +3 -0
  385. package/lib/typescript/module/components/Card/Card.meta.d.ts +3 -0
  386. package/lib/typescript/module/components/Carousel/Carousel.meta.d.ts +3 -0
  387. package/lib/typescript/module/components/Checkbox/Checkbox.meta.d.ts +3 -0
  388. package/lib/typescript/module/components/Chip/Chip.meta.d.ts +3 -0
  389. package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.meta.d.ts +3 -0
  390. package/lib/typescript/module/components/Composer/Composer.meta.d.ts +3 -0
  391. package/lib/typescript/module/components/Confetti/Confetti.meta.d.ts +3 -0
  392. package/lib/typescript/module/components/DatePicker/DatePicker.meta.d.ts +3 -0
  393. package/lib/typescript/module/components/DateRangePicker/DateRangePicker.meta.d.ts +3 -0
  394. package/lib/typescript/module/components/DateSeparator/DateSeparator.meta.d.ts +3 -0
  395. package/lib/typescript/module/components/DecimalInput/DecimalInput.meta.d.ts +3 -0
  396. package/lib/typescript/module/components/Descriptions/Descriptions.meta.d.ts +3 -0
  397. package/lib/typescript/module/components/Dialog/Dialog.meta.d.ts +3 -0
  398. package/lib/typescript/module/components/Divider/Divider.meta.d.ts +3 -0
  399. package/lib/typescript/module/components/Drawer/Drawer.meta.d.ts +3 -0
  400. package/lib/typescript/module/components/EmptyState/EmptyState.meta.d.ts +3 -0
  401. package/lib/typescript/module/components/FilePicker/FilePicker.meta.d.ts +3 -0
  402. package/lib/typescript/module/components/FileViewer/FileViewer.meta.d.ts +3 -0
  403. package/lib/typescript/module/components/FilterChipRow/FilterChipRow.meta.d.ts +3 -0
  404. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButton.meta.d.ts +3 -0
  405. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButtonGroup.meta.d.ts +3 -0
  406. package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.meta.d.ts +3 -0
  407. package/lib/typescript/module/components/FormField/FormField.meta.d.ts +3 -0
  408. package/lib/typescript/module/components/IconBadge/IconBadge.meta.d.ts +3 -0
  409. package/lib/typescript/module/components/IconButton/IconButton.meta.d.ts +3 -0
  410. package/lib/typescript/module/components/ImageGallery/ImageGallery.meta.d.ts +3 -0
  411. package/lib/typescript/module/components/InlineSelect/InlineSelect.meta.d.ts +3 -0
  412. package/lib/typescript/module/components/Input/Input.meta.d.ts +3 -0
  413. package/lib/typescript/module/components/KeyboardToolbar/KeyboardToolbar.meta.d.ts +3 -0
  414. package/lib/typescript/module/components/ListItem/ListItem.meta.d.ts +3 -0
  415. package/lib/typescript/module/components/LoaderOverlay/LoaderOverlay.meta.d.ts +3 -0
  416. package/lib/typescript/module/components/Markdown/Markdown.meta.d.ts +3 -0
  417. package/lib/typescript/module/components/Menu/Menu.meta.d.ts +3 -0
  418. package/lib/typescript/module/components/MessageBubble/MessageBubble.meta.d.ts +3 -0
  419. package/lib/typescript/module/components/MessageList/MessageList.meta.d.ts +5 -0
  420. package/lib/typescript/module/components/Modal/Modal.meta.d.ts +3 -0
  421. package/lib/typescript/module/components/Notation/Notation.meta.d.ts +3 -0
  422. package/lib/typescript/module/components/NumberInput/NumberInput.meta.d.ts +3 -0
  423. package/lib/typescript/module/components/OTPInput/OTPInput.meta.d.ts +3 -0
  424. package/lib/typescript/module/components/OnboardingPager/OnboardingPager.meta.d.ts +3 -0
  425. package/lib/typescript/module/components/OptionSheet/OptionSheet.meta.d.ts +3 -0
  426. package/lib/typescript/module/components/PaymentResult/PaymentResult.meta.d.ts +3 -0
  427. package/lib/typescript/module/components/PermissionPrompt/PermissionPrompt.meta.d.ts +3 -0
  428. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.meta.d.ts +3 -0
  429. package/lib/typescript/module/components/PickerTrigger/PickerTrigger.meta.d.ts +3 -0
  430. package/lib/typescript/module/components/ProfileCompletion/ProfileCompletion.meta.d.ts +3 -0
  431. package/lib/typescript/module/components/ProfilePicker/ProfilePicker.meta.d.ts +3 -0
  432. package/lib/typescript/module/components/ProgressBar/ProgressBar.meta.d.ts +3 -0
  433. package/lib/typescript/module/components/ProgressRing/ProgressRing.meta.d.ts +3 -0
  434. package/lib/typescript/module/components/Radio/Radio.meta.d.ts +3 -0
  435. package/lib/typescript/module/components/Radio/RadioGroup.meta.d.ts +3 -0
  436. package/lib/typescript/module/components/Rating/Rating.meta.d.ts +3 -0
  437. package/lib/typescript/module/components/Repeater/Repeater.meta.d.ts +3 -0
  438. package/lib/typescript/module/components/RichTextEditor/RichTextEditor.meta.d.ts +3 -0
  439. package/lib/typescript/module/components/ScannerOverlay/ScannerOverlay.meta.d.ts +3 -0
  440. package/lib/typescript/module/components/Screen/Screen.meta.d.ts +3 -0
  441. package/lib/typescript/module/components/SearchBar/SearchBar.meta.d.ts +3 -0
  442. package/lib/typescript/module/components/SectionHeader/SectionHeader.meta.d.ts +3 -0
  443. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.meta.d.ts +3 -0
  444. package/lib/typescript/module/components/Select/Select.meta.d.ts +3 -0
  445. package/lib/typescript/module/components/SignaturePad/SignaturePad.meta.d.ts +3 -0
  446. package/lib/typescript/module/components/Skeleton/Skeleton.meta.d.ts +3 -0
  447. package/lib/typescript/module/components/Skeleton/SkeletonCircle.meta.d.ts +3 -0
  448. package/lib/typescript/module/components/Skeleton/SkeletonContent.meta.d.ts +3 -0
  449. package/lib/typescript/module/components/Skeleton/SkeletonList.meta.d.ts +3 -0
  450. package/lib/typescript/module/components/Skeleton/SkeletonText.meta.d.ts +3 -0
  451. package/lib/typescript/module/components/SlideToConfirm/SlideToConfirm.meta.d.ts +3 -0
  452. package/lib/typescript/module/components/Slider/Slider.meta.d.ts +3 -0
  453. package/lib/typescript/module/components/SliderField/SliderField.meta.d.ts +3 -0
  454. package/lib/typescript/module/components/Sparkline/Sparkline.meta.d.ts +3 -0
  455. package/lib/typescript/module/components/Spinner/Spinner.meta.d.ts +3 -0
  456. package/lib/typescript/module/components/SquircleView/SquircleView.meta.d.ts +2 -0
  457. package/lib/typescript/module/components/StatTile/StatTile.meta.d.ts +3 -0
  458. package/lib/typescript/module/components/StatusBadge/StatusBadge.meta.d.ts +3 -0
  459. package/lib/typescript/module/components/Stepper/Stepper.meta.d.ts +3 -0
  460. package/lib/typescript/module/components/Swipeable/Swipeable.meta.d.ts +3 -0
  461. package/lib/typescript/module/components/Switch/Switch.meta.d.ts +3 -0
  462. package/lib/typescript/module/components/Tabs/Tabs.meta.d.ts +3 -0
  463. package/lib/typescript/module/components/TagInput/TagInput.meta.d.ts +3 -0
  464. package/lib/typescript/module/components/Text/Text.d.ts +1 -1
  465. package/lib/typescript/module/components/Text/Text.meta.d.ts +3 -0
  466. package/lib/typescript/module/components/TimePicker/TimePicker.meta.d.ts +3 -0
  467. package/lib/typescript/module/components/Timeline/Timeline.meta.d.ts +3 -0
  468. package/lib/typescript/module/components/Toast/Toast.meta.d.ts +3 -0
  469. package/lib/typescript/module/components/Tooltip/Tooltip.meta.d.ts +3 -0
  470. package/lib/typescript/module/components/Tour/Tour.meta.d.ts +3 -0
  471. package/lib/typescript/module/components/TypingIndicator/TypingIndicator.meta.d.ts +3 -0
  472. package/lib/typescript/module/components/WheelPicker/WheelPickerColumns.meta.d.ts +3 -0
  473. package/lib/typescript/module/components/WheelPicker/WheelPickerDuration.meta.d.ts +3 -0
  474. package/lib/typescript/module/components/WheelPicker/WheelPickerList.meta.d.ts +3 -0
  475. package/lib/typescript/module/components/ZoomableImage/ZoomableImage.meta.d.ts +3 -0
  476. package/lib/typescript/module/theme/tokens.generated.d.ts +1 -2
  477. package/lib/typescript/module/theme/types.d.ts +1 -1
  478. package/lib/typescript/module/utils/hitSlop.d.ts +14 -0
  479. package/lib/typescript/module/utils/warnInvalidValue.d.ts +10 -0
  480. package/package.json +7 -6
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"DateRangePicker",marker:null,platforms:["phone"],acceptsChildren:!1,props:{visible:{type:"boolean",description:"Opens the range sheet when the parent controls it; leave out to use the built-in trigger field."},value:{type:"object",required:!0,description:"The chosen range, from a start day to an end day.",fields:{start:{type:"string",required:!0,description:"Start day of the range, as an ISO 8601 date, or null."},end:{type:"string",required:!0,description:"End day of the range, as an ISO 8601 date, or null."}}},label:{type:"string",description:"Label shown above the trigger field."},placeholder:{type:"string",description:"Text shown in the trigger field when no range is set."},helperText:{type:"string",description:"Helper text shown below the trigger field."},error:{type:"node",description:"Error shown in place of the helper text."},required:{type:"boolean",description:"Shows a required marker on the trigger field."},disabled:{type:"boolean",description:"Disables the trigger field."},size:{type:"enum",values:["sm","md","lg"],description:"Size of the trigger field."},variant:{type:"enum",values:["outlined","filled","underline"],description:"Visual treatment of the trigger field."},clearable:{type:"boolean",description:"Shows a clear affordance in the trigger field."},minDate:{type:"string",description:"Selection bound: days before this date cannot be picked, as an ISO 8601 date."},maxDate:{type:"string",description:"Selection bound: days after this date cannot be picked, as an ISO 8601 date."},disabledDates:{type:"array",description:"Specific dates, as ISO 8601 dates, that cannot be picked."},markedDates:{type:"array",description:"Holidays, events and pending requests drawn on the grid; see Calendar.",itemFields:{date:{type:"string",required:!0,description:"The day, as an ISO 8601 date."},kind:{type:"enum",values:["holiday","event","pending"],required:!0,description:"What the day is: a holiday, an event or a pending request."},label:{type:"string",description:"What the day is, such as Dussehra or Casual leave; read aloud before the kind."},tone:{type:"enum",values:["success","warning","danger","info","primary","neutral"],description:"Dot colour. Default: danger for a holiday, primary for an event, warning for pending."}}},strikeMarkedInRange:{type:"boolean",description:"Strike holidays inside the chosen range and read them as not counted; see Calendar."},locale:{type:"string",default:"en-IN",description:"Locale used to format dates in the grid and the range header."},weekStartsOn:{type:"enum",values:[0,1,6],default:0,description:"First weekday of the grid: 0 Sunday, 1 Monday, 6 Saturday."},title:{type:"string",default:"Select Date Range",description:"Heading shown at the top of the sheet."},confirmLabel:{type:"string",default:"Confirm",description:"Label of the confirm button."},cancelLabel:{type:"string",default:"Cancel",description:"Label of the cancel button."},maxRange:{type:"number",description:"Cap on the selected range length, in days."}},omit:["haptic"],examples:[{id:"DateRangePicker.trigger",title:"Trigger field",props:{value:{start:"2026-10-12",end:"2026-10-16"},label:"Dates",placeholder:"Select range",size:"md"}},{id:"DateRangePicker.weekStart",title:"Monday start with a cap",props:{value:{start:"2026-10-12",end:"2026-10-16"},label:"Leave",weekStartsOn:1,maxRange:14}},{id:"DateRangePicker.disabled",title:"Disabled",props:{value:{start:"2026-10-12",end:"2026-10-16"},label:"Dates",disabled:!0}}],usage:{when:["Pick a start day and an end day as one range, such as the dates of a stay or a leave request.","Confirm a range in one step inside a sheet, with an optional cap on its length."],whenNot:[{text:"Picking a single day.",instead:"DatePicker"},{text:"Showing a month grid that stays on screen.",instead:"Calendar"},{text:"Picking a time of day.",instead:"TimePicker"}],do:[{note:"Set maxRange when a range has a limit, such as a 14-day leave cap, so a longer pick restarts from the new tap.",example:[{component:"DateRangePicker",props:{label:"Leave",weekStartsOn:1,maxRange:14}}]}],dont:[{note:"Do not use it for one day; a single day belongs in DatePicker.",example:[{component:"DateRangePicker",props:{label:"Day"}}]}],a11y:["Marked days are read aloud with their label before their kind, such as Dussehra holiday.","A range longer than maxRange is rejected with a warning haptic, and the selection restarts from the tapped day.","The picker opens as a modal sheet that screen readers treat as modal; Cancel, Dismiss or a drag down from the title closes it."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"DateSeparator",marker:null,platforms:["phone"],acceptsChildren:!1,props:{date:{type:"string",description:"The day to name."},label:{type:"string",description:'Draws this text instead of a day, e.g. "New messages" above the first unread.'},emphasis:{type:"boolean",default:!1,description:"Draws the text and rules in the brand colour, for an unread divider."},labels:{type:"object",description:"Custom relative day labels, defaulting to Today and Yesterday.",fields:{today:{type:"string",description:"The label for today, defaulting to Today."},yesterday:{type:"string",description:"The label for yesterday, defaulting to Yesterday."}}},now:{type:"string",description:"The reference for Today and Yesterday."}},omit:[],examples:[{id:"DateSeparator.day",title:"A day",props:{date:"2026-10-11T09:00:00Z"}},{id:"DateSeparator.label",title:"A text label",props:{label:"Earlier"}},{id:"DateSeparator.unread",title:"Unread divider",props:{label:"New messages",emphasis:!0}}],usage:{when:["Separate groups of chat messages by day in a message list.","Draw an unread divider line above the first unread message with label and emphasis."],whenNot:[{text:"A heading above a block of content.",instead:"SectionHeader"},{text:"Separating days inside MessageList where the list already inserts separators.",instead:"MessageList day grouping"}],do:[{note:"Pass either date for a day divider or label with emphasis for an unread messages divider.",example:[{component:"DateSeparator",props:{date:"2026-10-11T09:00:00Z"}}]}],dont:[{note:"Do not pass both date and label together, because label overrides date.",example:[{component:"DateSeparator",props:{date:"2026-10-11T09:00:00Z",label:"Today"}}]}],a11y:["The text uses an accessibility header role so screen reader users can navigate through a conversation by day.","The centred text element is announced directly to assistive technologies."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"DecimalInput",marker:null,platforms:["phone"],acceptsChildren:!1,props:{symbol:{type:"node",description:"The quantity's symbol, drawn in the prefix box before the value."},value:{type:"stringOrNumber",description:"The figure. Text in the default mode, a number or an empty string in numeric mode. Null and undefined show an empty field."},max:{type:"number",description:"A keystroke or paste that would pass this is refused; a figure already past it can still be edited down."},min:{type:"number",description:"Lower bound, refused the same way as max."},decimals:{type:"number",description:"Most fraction digits kept after the point."},whole:{type:"boolean",default:!1,description:"Digits only. Number-pad keyboard."},signed:{type:"boolean",default:!1,description:"Allow one leading minus. Numeric keyboard."},allowExponent:{type:"boolean",default:!1,description:"Allow exponent notation such as 1e-5."},numeric:{type:"boolean",default:!1,description:"Hand onChange a number. The field keeps the typed text itself, so a half-typed figure survives the keystroke, and follows value when it changes from elsewhere."},unclearCommaMessage:{type:"node",default:"Use a point for the decimal mark. A comma before three digits could mean thousands.",description:"Shown when the figure has a comma before exactly three digits and no error is passed."},readOnly:{type:"boolean",default:!1,description:"Selectable and focusable but not editable. Unlike disabled, the field is not dimmed."},disabled:{type:"boolean",default:!1,description:"Dims the field out and blocks editing."},label:{type:"node",description:"A string, or a node for a symbol with a subscript. A node label needs an explicit accessibilityLabel."},help:{type:"node",description:"Drawn beside the static label, right after it and centred on its line, such as a glossary info button."},error:{type:"node",description:"A string or a node puts the field in the error state and replaces the helper; true shows the error state without a message."},helperText:{type:"node",description:"A string or a node, shown below the field when there is no error."},prefix:{type:"node",description:"Fixed text drawn before the value in the leading slot, such as a currency symbol or a country code."},placeholder:{type:"string",description:"Placeholder text shown while the field is empty."},unit:{type:"string",description:"A fixed unit drawn after the value in the trailing slot, such as km, % or /month."},accessibilityLabel:{type:"string",description:"The screen reader name of the field. When left out, the label is used, or the placeholder when there is no label."},maxLength:{type:"number",description:"Character limit passed to the text input."},borderRadius:{type:"number",description:"Per-instance override for the field's corner radius. Wins over the field size's radius."},type:{type:"enum",values:["input","password","textarea"],default:"input",description:"One switch for the behaviour set: input for single-line text, password for a masked value with an eye toggle, textarea for multi-line text."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"Field height, padding and font size."},variant:{type:"enum",values:["outlined","filled","underline"],description:"The field's look. When left out, the theme's field variant is used, and outlined when the theme sets none."},labelMode:{type:"enum",values:["float","top"],description:"top keeps the static label above the field. float uses a floating label that rises to the top border on focus."},showPasswordToggle:{type:"boolean",default:!1,description:"Setting this alone also puts the field in password mode, the same as type password."},secureTextEntry:{type:"boolean",default:!1,description:"React Native's own prop: masks the value without the eye toggle."},multiline:{type:"boolean",default:!1,description:"React Native's own prop, the same as type textarea."},required:{type:"boolean",default:!1,description:"Marks the field as required."},showCounter:{type:"boolean",default:!0,description:"Renders a character counter below the field when maxLength is set. Set false for fields that cap input without advertising it."},leftIcon:{type:"icon",description:"Leading slot: an icon name such as user, a name and variant object, a render function or a node."},rightIcon:{type:"icon",description:"Trailing slot, same contract as leftIcon."},action:{type:"object",description:"A button beside the field box, for a Verify, Apply or Look up action on what was typed.",fields:{label:{type:"string",required:!0,description:"The button's text."},loading:{type:"boolean",description:"Shows the button's spinner and blocks presses."},disabled:{type:"boolean",description:"Blocks presses. The button is also disabled whenever the field is."},variant:{type:"enum",values:["solid","soft","outline","ghost","link","glass"],description:"Button variant."},tone:{type:"enum",values:["primary","secondary","success","warning","danger","neutral"],description:"Button tone."},icon:{type:"icon",description:"Icon drawn before the button label."}}}},omit:["allowFontScaling","autoCapitalize","autoComplete","autoCorrect","autoFocus","blurOnSubmit","submitBehavior","caretHidden","contextMenuHidden","defaultValue","editable","inputMode","placeholderTextColor","returnKeyType","enterKeyHint","selectTextOnFocus","selection","selectionColor","textAlign","inputAccessoryViewID","inputAccessoryViewButtonLabel","maxFontSizeMultiplier","hitSlop","id","needsOffscreenAlphaCompositing","pointerEvents","removeClippedSubviews","nativeID","collapsable","collapsableChildren","renderToHardwareTextureAndroid","focusable","tabIndex","shouldRasterizeIOS","isTVSelectable","hasTVPreferredFocus","tvParallaxShiftDistanceX","tvParallaxShiftDistanceY","tvParallaxTiltAngle","tvParallaxMagnification","accessible","accessibilityActions","aria-label","accessibilityRole","accessibilityState","aria-busy","aria-checked","aria-disabled","aria-expanded","aria-selected","accessibilityHint","accessibilityValue","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","importantForAccessibility","aria-hidden","aria-modal","role","accessibilityLabelledBy","aria-labelledby","accessibilityLiveRegion","aria-live","screenReaderFocusable","accessibilityElementsHidden","accessibilityViewIsModal","accessibilityIgnoresInvertColors","accessibilityLanguage","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","accessibilityRespondsToUserInteraction","disableKeyboardShortcuts","clearButtonMode","clearTextOnFocus","dataDetectorTypes","enablesReturnKeyAutomatically","keyboardAppearance","passwordRules","rejectResponderTermination","selectionState","spellCheck","textContentType","scrollEnabled","lineBreakStrategyIOS","lineBreakModeIOS","smartInsertDelete","cursorColor","selectionHandleColor","importantForAutofill","disableFullscreenUI","inlineImageLeft","inlineImagePadding","numberOfLines","returnKeyLabel","textBreakStrategy","underlineColorAndroid","textAlignVertical","showSoftInputOnFocus","verticalAlign"],examples:[{id:"DecimalInput.amount",title:"Amount with symbol",props:{label:"Amount",symbol:"₹",max:1e5}},{id:"DecimalInput.whole",title:"Whole number with unit",props:{label:"Quantity",whole:!0,unit:"pcs"}},{id:"DecimalInput.signed",title:"Signed with two decimals",props:{label:"Adjustment",signed:!0,decimals:2}},{id:"DecimalInput.readOnly",title:"Read only",props:{label:"Total",readOnly:!0,value:"1250.50"}}],usage:{when:["The figure can be empty or half-typed while the person types, such as 12. or a lone minus.","The value is a measurement, a tolerance or an amount the person types, not a count changed by steps."],whenNot:[{text:"The value changes by taps and is never empty or half-typed.",instead:"NumberInput"},{text:"The field takes free text rather than a figure.",instead:"Input"}],do:[{note:"Give the figure a label, and a symbol or unit so the number has a meaning.",example:[{component:"DecimalInput",props:{label:"Length",symbol:"L",unit:"m",max:500}}]}],dont:[{note:"Do not use it for a stepper quantity. Use NumberInput when the value is changed by steps.",example:[{component:"DecimalInput",props:{label:"Quantity",whole:!0,max:10}}]}],a11y:["Every figure needs a label. A symbol or unit alone does not name the field.","A comma before exactly three digits, such as 2,500, shows unclearCommaMessage as the field error, which a screen reader announces.","readOnly keeps the figure focusable and announced. disabled greys it out and drops it from the focus order."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Descriptions",marker:null,platforms:["phone"],acceptsChildren:!1,props:{items:{type:"array",required:!0,description:"The rows.",itemFields:{label:{type:"node",required:!0,description:"A string renders as text."},value:{type:"node",description:"A string, a number, a `sym()` / `Notation` or a list of those renders as text in the value's size, weight and colour (`strong`, `tone`), the subscript included."},full:{type:"boolean",description:"Make this row span both columns."},key:{type:"string",description:"React key."},strong:{type:"boolean",description:"Draw a string value in the semibold weight."},tone:{type:"enum",values:["primary","secondary","tertiary","inverse","disabled","link","textStrong","success","warning","danger","info"],description:"Colour of a string value: a text role, a semantic tone or a raw colour."}}},columns:{type:"enum",values:[1,2],default:1,description:"1 stacks label above value; 2 puts them side by side."},size:{type:"enum",values:["sm","md"],default:"md",description:"Row padding + font size."},bordered:{type:"boolean",default:!1,description:"Hairlines between rows."},title:{type:"string",description:"Optional heading above the list."},variant:{type:"enum",values:["list","summary"],default:"list",description:"'list' (default) is the record-detail layout."}},omit:[],examples:[{id:"Descriptions.default",title:"Two columns",props:{title:"Invoice details",columns:2,bordered:!0,items:[{label:"Invoice",value:"INV-1042"},{label:"Amount",value:"₹12,500"},{label:"Status",value:"Paid"},{label:"Notes",value:"Net 30",full:!0}]}},{id:"Descriptions.summary",title:"Summary table",props:{variant:"summary",items:[{label:"Collection area",value:"1 240 m²"},{label:"Risk",value:"3.2",strong:!0,tone:"danger"},{label:"Tolerable",value:"1.0",tone:"tertiary"}]}},{id:"Descriptions.compact",title:"Compact with a missing value",props:{size:"sm",items:[{label:"Name",value:"Asha"},{label:"City"}]}}],usage:{when:["Display read-only labelled facts and record details on a screen.","Show a compact summary table of key metrics with right-aligned values.","Present structured fields where missing values should read as no value rather than a broken row."],whenNot:[{text:"The row is interactive or navigates to another screen.",instead:"ListItem"},{text:"Displaying a single prominent headline metric or KPI.",instead:"StatTile"}],do:[{note:"Leave missing or empty values undefined so the component renders the standard hyphen.",example:[{component:"Descriptions",props:{items:[{label:"Status",value:"Active"},{label:"Paid on"}]}}]}],dont:[{note:"Do not pass placeholder strings like N/A for missing values.",example:[{component:"Descriptions",props:{items:[{label:"Status",value:"Active"},{label:"Paid on",value:"N/A"}]}}]}],a11y:["A missing value renders a plain hyphen so a row is never blank to a screen reader.","Labels and textual values are read in natural order by screen readers."]}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Modal=require("../Modal/Modal.js"),_jsxRuntime=require("react/jsx-runtime");const Dialog=e=>{const{visible:t,onClose:r,title:o,message:i,children:l,icon:s,variant:a="default",actions:n,dismissOnAction:c=!0,accessibilityLabel:d,contentStyle:u,containerStyle:b,titleStyle:g,messageStyle:m,iconWrapperStyle:x,actionsRowStyle:p,actionButtonStyle:_,actionTextStyle:y,haptic:h,testID:C}=e,f=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),S=(0,_react.useMemo)(()=>discFor(f,a),[f,a]),R=f.components.dialog["icon-wrapper-size"],v=f.components.dialog["action-button-min-height"],w=Boolean(n&&n.length>0),D=(0,_react.useCallback)(e=>{if(e.loading||e.disabled)return;const t=(0,_hapticUtils.resolveHaptic)(h,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),c?(r(),setTimeout(e.onPress,_Modal.MODAL_DISMISS_GRACE_MS)):e.onPress()},[c,r,h]);return(0,_jsxRuntime.jsx)(_Modal.Modal,{visible:t,onRequestClose:r,haptic:h,presentation:"centered",accessibilityLabel:d??o,contentStyle:u,testID:C,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"alert",accessibilityLabel:d??o,style:[j.container,b],children:[s?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.iconWrapper,{width:R,height:R,borderRadius:f.radius.pill,..._corners.smoothCorners,backgroundColor:S,marginBottom:f.space.md},x],children:s}):null,o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.title,{color:f.colors["text-body"],fontSize:f.text.xl.size,...(0,_index.fontFor)(f,"semibold"),marginBottom:i||null!=l?f.space.sm:f.space.md},g],accessibilityRole:"header",children:o}):null,i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.message,{color:f.colors["text-muted"],fontSize:f.text.base.size,lineHeight:f.text.base.size*f.leading.normal,marginBottom:null!=l?f.space.md:w?f.space.lg:0},m],children:i}):null,null!=l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginBottom:w?f.space.lg:0},children:l}):null,n&&n.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.actionsRow,p],children:n.map((e,t)=>{const r=e.tone??"primary",o=Boolean(e.disabled),i=actionStyleFor(f,r,o),l=t===n.length-1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(e),disabled:e.loading||o,accessibilityRole:"button",accessibilityLabel:e.label,accessibilityState:{busy:e.loading,disabled:Boolean(e.loading)||o},"aria-busy":e.loading,"aria-disabled":Boolean(e.loading)||o,style:({pressed:t})=>[j.actionButton,{minHeight:v,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,borderRadius:f.radius.md,..._corners.smoothCorners,paddingVertical:f.space.sm,paddingHorizontal:f.space.md,marginRight:l?0:f.space.sm,opacity:e.loading?.7:t&&!o?.85:1},_],children:e.loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:i.textColor}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:i.textColor,fontSize:f.text.base.size,...(0,_index.fontFor)(f,"semibold"),textAlign:"center"},y],children:e.label})},`${e.label}-${t}`)})}):null]})})};exports.Dialog=Dialog,Dialog.displayName="Dialog";const SOFT_DISC_OPACITY=.14,discFor=(e,t)=>{const r=e.colors["bg-subtle"];switch(t){case"success":return(0,_color.tintOf)(e.colors.success,.14,r);case"warning":return(0,_color.tintOf)(e.colors.warning,.14,r);case"danger":return(0,_color.tintOf)(e.colors.danger,.14,r);case"info":return(0,_color.tintOf)(e.colors.info,.14,r);default:return e.colors["primary-soft"]}},actionStyleFor=(e,t,r)=>{if(r)return{backgroundColor:"neutral"===t?"transparent":e.colors["surface-disabled"],borderColor:"neutral"===t?e.colors.border:"transparent",borderWidth:"neutral"===t?1:0,textColor:e.colors["text-disabled"]};switch(t){case"primary":return{backgroundColor:e.colors.primary,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-primary"]};case"info":return{backgroundColor:e.colors.info,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-info"]};case"danger":return{backgroundColor:e.colors.danger,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-danger"]};default:return{backgroundColor:"transparent",borderColor:e.colors.border,borderWidth:1,textColor:e.colors["text-body"]}}},buildStyles=e=>_reactNative.StyleSheet.create({container:{alignItems:"stretch"},iconWrapper:{alignItems:"center",justifyContent:"center",alignSelf:"center"},title:{textAlign:"center"},message:{textAlign:"center"},actionsRow:{flexDirection:"row",justifyContent:"flex-end",alignItems:"stretch"},actionButton:{flex:1,alignItems:"center",justifyContent:"center"}});var _default=exports.default=Dialog;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Modal=require("../Modal/Modal.js"),_jsxRuntime=require("react/jsx-runtime");const Dialog=e=>{const{visible:t,onClose:o,title:r,message:i,children:l,icon:s,variant:a="default",actions:n,dismissOnAction:c=!0,accessibilityLabel:d,contentStyle:u,containerStyle:b,titleStyle:g,messageStyle:m,iconWrapperStyle:x,actionsRowStyle:p,actionButtonStyle:_,actionTextStyle:y,haptic:h,testID:C}=e,f=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),S=(0,_react.useMemo)(()=>discFor(f,a),[f,a]),R=f.components.dialog["icon-wrapper-size"],v=f.components.dialog["action-button-min-height"],w=Boolean(n&&n.length>0),D=(0,_react.useCallback)(e=>{if(e.loading||e.disabled)return;const t=(0,_hapticUtils.resolveHaptic)(h,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),c?(o(),setTimeout(e.onPress,_Modal.MODAL_DISMISS_GRACE_MS)):e.onPress()},[c,o,h]);return(0,_jsxRuntime.jsx)(_Modal.Modal,{visible:t,onRequestClose:o,haptic:h,presentation:"centered",accessibilityLabel:d??r,contentStyle:u,testID:C,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"alert",accessibilityLabel:d??r,style:[j.container,b],children:[s?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.iconWrapper,{width:R,height:R,borderRadius:f.radius.pill,..._corners.smoothCorners,backgroundColor:S,marginBottom:f.space.md},x],children:s}):null,r?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.title,{color:f.colors["text-body"],fontSize:f.text.xl.size,...(0,_index.fontFor)(f,"semibold"),marginBottom:i||null!=l?f.space.sm:f.space.md},g],accessibilityRole:"header",children:r}):null,i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.message,{color:f.colors["text-muted"],fontSize:f.text.base.size,lineHeight:f.text.base.size*f.leading.body,marginBottom:null!=l?f.space.md:w?f.space.lg:0},m],children:i}):null,null!=l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginBottom:w?f.space.lg:0},children:l}):null,n&&n.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.actionsRow,p],children:n.map((e,t)=>{const o=e.tone??"primary",r=Boolean(e.disabled),i=actionStyleFor(f,o,r),l=t===n.length-1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(e),disabled:e.loading||r,accessibilityRole:"button",accessibilityLabel:e.label,accessibilityState:{busy:e.loading,disabled:Boolean(e.loading)||r},"aria-busy":e.loading,"aria-disabled":Boolean(e.loading)||r,style:({pressed:t})=>[j.actionButton,{minHeight:v,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,borderRadius:f.radius.md,..._corners.smoothCorners,paddingVertical:f.space.sm,paddingHorizontal:f.space.md,marginRight:l?0:f.space.sm,opacity:e.loading?.7:t&&!r?.85:1},_],children:e.loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:i.textColor}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:i.textColor,fontSize:f.text.base.size,...(0,_index.fontFor)(f,"semibold"),textAlign:"center"},y],children:e.label})},`${e.label}-${t}`)})}):null]})})};exports.Dialog=Dialog,Dialog.displayName="Dialog";const SOFT_DISC_OPACITY=.14,discFor=(e,t)=>{const o=e.colors["bg-subtle"];switch(t){case"success":return(0,_color.tintOf)(e.colors.success,.14,o);case"warning":return(0,_color.tintOf)(e.colors.warning,.14,o);case"danger":return(0,_color.tintOf)(e.colors.danger,.14,o);case"info":return(0,_color.tintOf)(e.colors.info,.14,o);default:return e.colors["primary-soft"]}},actionStyleFor=(e,t,o)=>{if(o)return{backgroundColor:"neutral"===t?"transparent":e.colors["surface-disabled"],borderColor:"neutral"===t?e.colors.border:"transparent",borderWidth:"neutral"===t?1:0,textColor:e.colors["text-disabled"]};switch(t){case"primary":return{backgroundColor:e.colors.primary,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-primary"]};case"info":return{backgroundColor:e.colors.info,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-info"]};case"danger":return{backgroundColor:e.colors.danger,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-danger"]};default:return{backgroundColor:"transparent",borderColor:e.colors.border,borderWidth:1,textColor:e.colors["text-body"]}}},buildStyles=e=>_reactNative.StyleSheet.create({container:{alignItems:"stretch"},iconWrapper:{alignItems:"center",justifyContent:"center",alignSelf:"center"},title:{textAlign:"center"},message:{textAlign:"center"},actionsRow:{flexDirection:"row",justifyContent:"flex-end",alignItems:"stretch"},actionButton:{flex:1,alignItems:"center",justifyContent:"center"}});var _default=exports.default=Dialog;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Dialog",marker:null,platforms:["phone"],acceptsChildren:!0,props:{visible:{type:"boolean",required:!0,description:"Controls visibility."},title:{type:"string",description:"Headline."},message:{type:"string",description:"Body text."},icon:{type:"node",description:"Top icon."},variant:{type:"enum",values:["default","success","warning","danger","info"],default:"default",description:"Semantic styling."},actions:{type:"array",description:"Ordered action buttons.",itemFields:{label:{type:"string",required:!0,description:"The text drawn on the action button."},tone:{type:"enum",values:["primary","neutral","info","danger"],description:"The color scheme of the action."},loading:{type:"boolean",description:"Shows a spinner and blocks its press."},disabled:{type:"boolean",description:"Dims the action and blocks its press (a confirm waiting on a typed phrase, say)."}}},dismissOnAction:{type:"boolean",default:!0,description:"Automatically close after an action fires."},accessibilityLabel:{type:"string",description:"Overrides the alert region label."}},omit:["haptic"],examples:[{id:"Dialog.default",title:"Default",props:{visible:!0,title:"Save changes?",message:"Your edits will be saved to the cloud and synced across all devices."}},{id:"Dialog.warning",title:"Warning",props:{visible:!0,variant:"warning",title:"Discard draft?",message:"The draft will be deleted."}},{id:"Dialog.danger",title:"Danger",props:{visible:!0,variant:"danger",title:"Delete account?",message:"This cannot be undone."}},{id:"Dialog.success",title:"Success",props:{visible:!0,variant:"success",title:"Payment received",message:"A receipt is on its way."}}],usage:{when:["For a confirm, alert or destructive dialog with action buttons.","When the user must explicitly choose an action to proceed."],whenNot:[{text:"For content anchored to the bottom edge.",instead:"BottomSheet"},{text:"For a menu or a longer form.",instead:"Drawer"},{text:"For a message that needs no answer.",instead:"Toast"}],do:[{note:"Use a warning or danger variant for destructive operations.",example:[{component:"Dialog",props:{visible:!0,title:"Delete account?",message:"This cannot be undone.",variant:"danger"}}]}],dont:[{note:"Do not use the default variant for destructive operations.",example:[{component:"Dialog",props:{visible:!0,title:"Delete account?",message:"This cannot be undone."}}]}],a11y:["The dialog sets the alert role and its accessible name defaults to the title.","Dismissing the dialog delays action execution until after the native modal has dismissed.","You can override the accessible name using the accessibility label prop."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Divider",marker:null,platforms:["phone"],acceptsChildren:!1,props:{orientation:{type:"enum",required:!1,values:["horizontal","vertical"],default:"horizontal",description:"Direction of the line; a vertical line stretches to fill the height of its parent."},thickness:{type:"number",required:!1,default:1,description:"Line thickness in points."},color:{type:"string",required:!1,description:"Line color; the theme border color when left out."},spacing:{type:"enum",required:!1,values:["none","sm","md","lg"],default:"none",description:"Margin around the line, vertical for a horizontal line and horizontal for a vertical one."},inset:{type:"number",required:!1,default:0,description:"Extra offset from the leading edge, to line up with an avatar or icon column."},label:{type:"string",required:!1,description:"Text drawn inline that splits the line in two; ignored on a vertical line."},labelPosition:{type:"enum",required:!1,values:["start","center","end"],default:"center",description:"Where the label sits along the line."}},omit:[],examples:[{id:"Divider.plain",title:"Plain line",props:{}},{id:"Divider.labelled",title:"Labelled break",props:{label:"OR"}},{id:"Divider.labelStart",title:"Label at the start",props:{label:"OR",labelPosition:"start"}},{id:"Divider.thick",title:"Thick line",props:{thickness:4}}],usage:{when:["Separate groups of rows in a list or form.","Show an OR break between two paths with a short label."],whenNot:[{text:"Spacing alone separates the content.",instead:"Use gap or margin, not a line."},{text:"A section needs a heading.",instead:"SectionHeader"}],do:[{note:"Keep a label to a word or two.",example:[{component:"Divider",props:{label:"OR"}}]}],dont:[{note:"Do not put a sentence in the label; it is cut to one line.",example:[{component:"Divider",props:{label:"Or continue with your email address instead"}}]}],a11y:["The line is decorative and hidden from screen readers, so never rely on it alone to show a grouping.","A label is read as plain text, so keep it meaningful."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const drawerChildren=[{component:"ListItem",props:{title:"Profile",chevron:!0}},{component:"ListItem",props:{title:"Settings",chevron:!0}}],meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Drawer",marker:null,platforms:["phone"],acceptsChildren:!0,props:{visible:{type:"boolean",required:!1,description:"Controlled visibility; leave it out to let the drawer manage its own state."},defaultVisible:{type:"boolean",required:!1,default:!1,description:"Initial visibility when the drawer manages its own state."},side:{type:"enum",required:!1,values:["left","right","top","bottom"],default:"left",description:"Edge the drawer slides in from."},width:{type:"stringOrNumber",required:!1,description:"Size along the slide axis, in points or as a percent string; 280 for left and right and 40% of the window height for top and bottom when left out."},enableSwipe:{type:"boolean",required:!1,default:!0,description:"Allows dragging the drawer toward its edge to dismiss it."},enableBackdropPress:{type:"boolean",required:!1,default:!0,description:"Allows a tap on the dimmed backdrop to dismiss the drawer."},backdropOpacity:{type:"number",required:!1,default:.5,description:"Backdrop opacity from 0 to 1 when the drawer is fully open."},accessibilityLabel:{type:"string",required:!1,description:"Name announced for the drawer panel; Drawer when left out."}},omit:["haptic"],examples:[{id:"Drawer.left",title:"Left drawer",props:{defaultVisible:!0,side:"left",width:280},children:drawerChildren},{id:"Drawer.right",title:"Right drawer, 320 wide",props:{defaultVisible:!0,side:"right",width:320},children:drawerChildren},{id:"Drawer.top",title:"Top drawer, 40 percent",props:{defaultVisible:!0,side:"top",width:"40%"},children:drawerChildren},{id:"Drawer.bottom",title:"Bottom drawer, 60 percent",props:{defaultVisible:!0,side:"bottom",width:"60%"},children:drawerChildren}],usage:{when:["A navigation menu or contextual actions that slide over the screen from an edge.","A settings or filter panel that keeps the page visible behind a dimmed backdrop."],whenNot:[{text:"The surface is partial height and driven by its content.",instead:"BottomSheet"},{text:"A short confirmation or choice.",instead:"Dialog"}],do:[{note:"Give the drawer a close button at the foot.",example:[{component:"ListItem",props:{title:"Profile",chevron:!0}},{component:"Button",props:{title:"Close drawer",variant:"outline"}}]}],dont:[{note:"Do not leave a drawer with no visible way to close it when swipe and backdrop dismissal are off.",example:[{component:"ListItem",props:{title:"Profile",chevron:!0}}]}],a11y:["The panel is announced with its accessibilityLabel, Drawer when left out, and the backdrop is a Close drawer button.","The rest of the screen is hidden from screen readers while the drawer is open."]}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.EmptyState=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const ActionButton=({action:e,variant:t})=>{const r=(0,_index.useTheme)(),{style:i,pressIn:s,pressOut:o}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),n=(0,_react.useMemo)(()=>buildActionStyles(r),[r]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,r.radius.md),fillFor=e=>a?e?r.colors["primary-hover"]:r.colors.primary:e?r.colors["surface-pressed"]:"transparent";return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:i,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{(0,_hapticUtils.triggerHaptic)("selection"),e.onPress()},onPressIn:s,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:l.onLayout,style:({pressed:e})=>[n.button,a?n.buttonPrimary:n.buttonSecondary,e&&!l.active?a?n.buttonPrimaryPressed:n.buttonSecondaryPressed:null,l.active?n.buttonSquircleHost:null],children:({pressed:t})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[l.active&&l.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:l.size.width,height:l.size.height,radius:r.radius.md,fill:fillFor(t),stroke:a?void 0:r.colors.border,strokeWidth:a?0:1,outset:a?0:1}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[n.buttonText,a?n.buttonTextPrimary:n.buttonTextSecondary],numberOfLines:1,children:e.label})]})})})},EmptyState=exports.EmptyState=(0,_react.forwardRef)((e,t)=>{const{icon:r,title:i,description:s,action:o,secondaryAction:n,size:a="md",fill:l=!1,style:c,testID:u}=e,d=(0,_index.useTheme)(),m=(0,_react.useMemo)(()=>(0,_index.resolveEmptyStateSize)(d,a),[d,a]),x=(0,_react.useMemo)(()=>buildStyles(d),[d]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"summary",testID:u,style:[x.root,{paddingVertical:m["padding-y"]},l?x.fill:null,c],children:[r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[x.iconCircle,{width:m.icon,height:m.icon,marginBottom:m["title-gap"],borderRadius:d.radius.pill,..._corners.smoothCorners}],children:r}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.title,{fontSize:m["title-text"],...(0,_index.fontFor)(d,"semibold")}],children:i}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.description,{fontSize:m["description-text"],marginTop:m["description-gap"]}],children:s}):null,o||n?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:x.actions,children:[o?(0,_jsxRuntime.jsx)(ActionButton,{action:o,variant:"primary"}):null,n?(0,_jsxRuntime.jsx)(ActionButton,{action:n,variant:"secondary"}):null]}):null]})});EmptyState.displayName="EmptyState";const buildStyles=e=>_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center",paddingHorizontal:e.space.lg},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors["surface-disabled"],alignItems:"center",justifyContent:"center"},title:{color:e.colors["text-body"],textAlign:"center"},description:{color:e.colors["text-muted"],textAlign:"center",maxWidth:320,lineHeight:e.text.base.size*e.leading.normal},actions:{flexDirection:"row",alignItems:"center",gap:e.space.sm,marginTop:e.space.lg}}),buildActionStyles=e=>_reactNative.StyleSheet.create({button:{paddingHorizontal:e.space.lg,paddingVertical:e.space.sm,minHeight:42,borderRadius:e.radius.md,..._corners.smoothCorners,overflow:"hidden",alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonPrimaryPressed:{backgroundColor:e.colors["primary-hover"]},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border},buttonSecondaryPressed:{backgroundColor:e.colors["surface-pressed"]},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.text.base.size,...(0,_index.fontFor)(e,"semibold")},buttonTextPrimary:{color:e.colors["on-primary"]},buttonTextSecondary:{color:e.colors["text-body"]}});var _default=exports.default=EmptyState;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.EmptyState=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const ActionButton=({action:e,variant:t})=>{const r=(0,_index.useTheme)(),{style:i,pressIn:s,pressOut:o}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),n=(0,_react.useMemo)(()=>buildActionStyles(r),[r]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,r.radius.md),fillFor=e=>a?e?r.colors["primary-hover"]:r.colors.primary:e?r.colors["surface-pressed"]:"transparent";return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:i,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{(0,_hapticUtils.triggerHaptic)("selection"),e.onPress()},onPressIn:s,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:l.onLayout,style:({pressed:e})=>[n.button,a?n.buttonPrimary:n.buttonSecondary,e&&!l.active?a?n.buttonPrimaryPressed:n.buttonSecondaryPressed:null,l.active?n.buttonSquircleHost:null],children:({pressed:t})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[l.active&&l.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:l.size.width,height:l.size.height,radius:r.radius.md,fill:fillFor(t),stroke:a?void 0:r.colors.border,strokeWidth:a?0:1,outset:a?0:1}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[n.buttonText,a?n.buttonTextPrimary:n.buttonTextSecondary],numberOfLines:1,children:e.label})]})})})},EmptyState=exports.EmptyState=(0,_react.forwardRef)((e,t)=>{const{icon:r,title:i,description:s,action:o,secondaryAction:n,size:a="md",fill:l=!1,style:c,testID:u}=e,d=(0,_index.useTheme)(),m=(0,_react.useMemo)(()=>(0,_index.resolveEmptyStateSize)(d,a),[d,a]),y=(0,_react.useMemo)(()=>buildStyles(d),[d]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"summary",testID:u,style:[y.root,{paddingVertical:m["padding-y"]},l?y.fill:null,c],children:[r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[y.iconCircle,{width:m.icon,height:m.icon,marginBottom:m["title-gap"],borderRadius:d.radius.pill,..._corners.smoothCorners}],children:r}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[y.title,{fontSize:m["title-text"],...(0,_index.fontFor)(d,"semibold")}],children:i}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[y.description,{fontSize:m["description-text"],marginTop:m["description-gap"]}],children:s}):null,o||n?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:y.actions,children:[o?(0,_jsxRuntime.jsx)(ActionButton,{action:o,variant:"primary"}):null,n?(0,_jsxRuntime.jsx)(ActionButton,{action:n,variant:"secondary"}):null]}):null]})});EmptyState.displayName="EmptyState";const buildStyles=e=>_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center",paddingHorizontal:e.space.lg},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors["surface-disabled"],alignItems:"center",justifyContent:"center"},title:{color:e.colors["text-body"],textAlign:"center"},description:{color:e.colors["text-muted"],textAlign:"center",maxWidth:320,lineHeight:e.text.base.size*e.leading.body},actions:{flexDirection:"row",alignItems:"center",gap:e.space.sm,marginTop:e.space.lg}}),buildActionStyles=e=>_reactNative.StyleSheet.create({button:{paddingHorizontal:e.space.lg,paddingVertical:e.space.sm,minHeight:42,borderRadius:e.radius.md,..._corners.smoothCorners,overflow:"hidden",alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonPrimaryPressed:{backgroundColor:e.colors["primary-hover"]},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border},buttonSecondaryPressed:{backgroundColor:e.colors["surface-pressed"]},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.text.base.size,...(0,_index.fontFor)(e,"semibold")},buttonTextPrimary:{color:e.colors["on-primary"]},buttonTextSecondary:{color:e.colors["text-body"]}});var _default=exports.default=EmptyState;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"EmptyState",marker:null,platforms:["phone"],acceptsChildren:!1,props:{icon:{type:"node",description:"Illustration or icon drawn in a circle above the title."},title:{type:"string",required:!0,description:"Headline message."},description:{type:"string",description:"Supporting copy under the title."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"Icon size, type scale and vertical padding."},fill:{type:"boolean",default:!1,description:"Grows to fill the space it is given and centres its content; pass it as the empty component of a list."}},omit:["action","secondaryAction"],examples:[{id:"EmptyState.medium",title:"Medium",props:{title:"No messages yet",description:"Start a conversation with anyone in your contacts.",size:"md"}},{id:"EmptyState.small",title:"Small",props:{title:"No messages yet",description:"Start a conversation with anyone in your contacts.",size:"sm"}},{id:"EmptyState.large",title:"Large",props:{title:"No messages yet",description:"Start a conversation with anyone in your contacts.",size:"lg"}},{id:"EmptyState.titleOnly",title:"Title only",props:{title:"Nothing here"}}],usage:{when:["A list, search or screen has no data yet and needs a clear next step.","A load failed and the screen shows a message with a retry action."],whenNot:[{text:"Data is still loading.",instead:"Skeleton"},{text:"A short passing message about an action.",instead:"Toast"}],do:[{note:"Say what is missing and what to do about it.",example:[{component:"EmptyState",props:{title:"No orders yet",description:"When you place an order it will show up here."}}]}],dont:[{note:"Do not leave a bare title with no explanation.",example:[{component:"EmptyState",props:{title:"Empty"}}]}],a11y:["Announced as a summary region, so write the title and description as plain sentences.","Put the meaning in the title and description, not in the icon."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"FilePicker",marker:null,platforms:["phone"],acceptsChildren:!1,props:{maxFiles:{type:"number",required:!1,description:"Most files that can be attached."},maxSizeMB:{type:"number",required:!1,description:"Largest size of one file in megabytes; bigger picks are rejected with an error."},accept:{type:"array",required:!1,description:"Accepted mime types, such as image/* or application/pdf; every type is accepted when left out."},variant:{type:"enum",required:!1,values:["card","list"],default:"card",description:"card shows a dashed upload tile and a strip of thumbnails; list shows one row per file."},disabled:{type:"boolean",required:!1,default:!1,description:"Blocks picking and removing files and dims the trigger."},helperText:{type:"string",required:!1,description:"Hint under the trigger, such as the file limits."},error:{type:"node",required:!1,description:"External error shown under the field; it wins over validation errors."},accessibilityLabel:{type:"string",required:!1,description:"Overrides the generated Attachments label."}},omit:["files","defaultFiles","sources","labels","haptic"],examples:[{id:"FilePicker.card",title:"Card with limits",props:{variant:"card",maxFiles:4,maxSizeMB:100,accept:["image/*","application/pdf"],helperText:"Up to 4 files, max 100MB each."}},{id:"FilePicker.list",title:"List with limits",props:{variant:"list",maxFiles:4,maxSizeMB:100,accept:["image/*","application/pdf"],helperText:"Up to 4 files, max 100MB each."}},{id:"FilePicker.disabled",title:"Disabled",props:{disabled:!0,helperText:"Up to 4 files, max 100MB each."}},{id:"FilePicker.error",title:"With an error",props:{error:"Add at least one file."}}],usage:{when:["A form needs photos or documents attached, with limits on count, size and type.","An edit screen shows files already uploaded beside new picks."],whenNot:[{text:"The file only needs to be viewed.",instead:"FileViewer"},{text:"The person picks one value from a short list.",instead:"Select"}],do:[{note:"Show the limits in the helper text so a rejection is no surprise.",example:[{component:"FilePicker",props:{maxFiles:4,helperText:"Up to 4 files, max 100MB each."}}]}],dont:[{note:"Do not set limits without telling the person.",example:[{component:"FilePicker",props:{maxFiles:4}}]}],a11y:["The picker is announced as a button named Attachments with the file count; set accessibilityLabel to name the field.","Remove and retry controls carry their own labels."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"FileViewer",marker:null,platforms:["phone"],acceptsChildren:!1,props:{zoomEnabled:{type:"boolean",required:!1,default:!0,description:"Allows pinch, double tap zoom and panning while zoomed; off also resets any zoom."},maxZoom:{type:"number",required:!1,default:4,description:"Upper bound on pinch zoom, as a multiple of the page fitting the width."},accessibilityLabel:{type:"string",required:!1,description:"Spoken name for the viewer."}},omit:["source"],examples:[{id:"FileViewer.default",title:"Sample document",props:{accessibilityLabel:"Sample PDF document"}},{id:"FileViewer.noZoom",title:"Zoom off",props:{zoomEnabled:!1,accessibilityLabel:"Sample PDF document"}},{id:"FileViewer.maxZoom",title:"Zoom capped at 2",props:{maxZoom:2,accessibilityLabel:"Sample PDF document"}}],usage:{when:["Showing a PDF inside the app, from a link or a saved file."],whenNot:[{text:"The document is not a PDF.",instead:"Open it with the system viewer."},{text:"The file is a picture or a set of pictures.",instead:"ImageGallery"}],do:[{note:"Leave zoom on so small print stays readable.",example:[{component:"FileViewer",props:{}}]}],dont:[{note:"Do not turn zoom off for a dense document.",example:[{component:"FileViewer",props:{zoomEnabled:!1}}]}],a11y:["Give the viewer an accessibilityLabel that names the document; without one it is not announced as a labelled element."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"FilterChipRow",marker:null,platforms:["phone"],acceptsChildren:!1,props:{items:{type:"array",required:!0,description:"The chips to show in the row.",itemFields:{key:{type:"string",required:!0,description:"Stable id of the chip."},label:{type:"string",required:!0,description:"The text on the chip."},count:{type:"stringOrNumber",description:"Shown after the label."},disabled:{type:"boolean",description:"Disables this chip only."}}},value:{type:"string",required:!0,description:"Key of the selected item."},bleed:{type:"number",default:0,description:"The page gutter in points."},size:{type:"enum",values:["sm","md"],description:"Size scale."},variant:{type:"enum",values:["filled","outlined","soft"],description:"Visual style."},tone:{type:"enum",values:["primary","neutral","success","warning","danger","info"],description:"Semantic color."},accessibilityLabel:{type:"string",description:'Names the radiogroup for screen readers, e.g. "Filter by status".'}},omit:["haptic"],examples:[{id:"FilterChipRow.default",title:"Default",props:{items:[{key:"all",label:"All"},{key:"open",label:"Open",count:4},{key:"closed",label:"Closed"}],value:"open"}},{id:"FilterChipRow.bleed",title:"Edge to edge",props:{bleed:16,items:[{key:"today",label:"Today"},{key:"week",label:"This week"},{key:"month",label:"This month"},{key:"year",label:"This year"}],value:"today"}},{id:"FilterChipRow.styled",title:"Styled chips",props:{variant:"soft",tone:"primary",size:"sm",items:[{key:"design",label:"Design"},{key:"engineering",label:"Engineering"},{key:"marketing",label:"Marketing"}],value:"engineering"}}],usage:{when:["A scrolling horizontal row of single-choice filter chips above a list."],whenNot:[{text:"To switch between entirely different views or tabs of a screen.",instead:"Tabs"}],do:[{note:"Provide a unique key for each item and pass the currently selected key to value.",example:[{component:"FilterChipRow",props:{items:[{key:"active",label:"Active"},{key:"inactive",label:"Inactive"}],value:"active"}}]},{note:"Use the count field on an item to show the number of results for that filter.",example:[{component:"FilterChipRow",props:{items:[{key:"draft",label:"Drafts",count:2},{key:"published",label:"Published",count:15}],value:"draft"}}]}],dont:[{note:"Do not leave value empty; one item should always be selected by default.",example:[{component:"FilterChipRow",props:{items:[{key:"active",label:"Active"},{key:"inactive",label:"Inactive"}],value:""}}]},{note:"Do not put the count in the label string; use the count field so it is styled correctly.",example:[{component:"FilterChipRow",props:{items:[{key:"draft",label:"Drafts (2)"},{key:"published",label:"Published (15)"}],value:"draft"}}]}],a11y:["Announces as a radiogroup of radios.","Use accessibilityLabel to name the group for screen readers."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"FloatingActionButton",marker:null,platforms:["phone"],acceptsChildren:!1,props:{label:{type:"string",description:"Text beside the icon; makes the button extended, a pill."},collapsed:{type:"boolean",default:!1,description:"Folds an extended button to its round icon, with the label fading out, and has no effect without a label."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The diameter of the round button."},tone:{type:"enum",values:["primary","success","warning","danger","neutral"],default:"primary",description:"The colour family of the button."},position:{type:"enum",values:["bottomRight","bottomLeft","bottomCenter"],description:"The corner or edge of the screen the button is pinned to; leave it unset to place the button yourself."},bottomOffset:{type:"number",description:"The gap above the bottom edge, in points, before the safe area inset is added."},disabled:{type:"boolean",default:!1,description:"Blocks presses and dims the button."},hideOnScroll:{type:"boolean",default:!1,description:"Slides the button off the bottom edge while isScrolling is true."},isScrolling:{type:"boolean",default:!1,description:"Whether the list behind the button is scrolling right now; wire it to your scroll handler."},accessibilityLabel:{type:"string",required:!0,description:"The name a screen reader reads for the button."},accessibilityHint:{type:"string",description:"What happens when the button is pressed, read after its name by a screen reader."}},omit:["icon","haptic"],examples:[{id:"FloatingActionButton.extended",title:"Extended",props:{label:"New invoice",accessibilityLabel:"New invoice",tone:"primary"}},{id:"FloatingActionButton.neutralLarge",title:"Neutral and large",props:{label:"Filter",accessibilityLabel:"Filter the list",tone:"neutral",size:"lg"}},{id:"FloatingActionButton.collapsed",title:"Collapsed",props:{label:"New invoice",accessibilityLabel:"New invoice",collapsed:!0}}],usage:{when:["A screen has one main action that a person repeats often, such as adding an item.","The action has to stay reachable while the list behind it scrolls."],whenNot:[{text:"The action is a confirmation or a submit inside a form or dialog.",instead:"Button"}],do:[{note:"Use one button per screen for its main action, with a label that says what happens.",example:[{component:"FloatingActionButton",props:{label:"New invoice",accessibilityLabel:"New invoice"}}]},{note:"Fold an extended button with collapsed while the list scrolls, so it covers fewer rows.",example:[{component:"FloatingActionButton",props:{label:"New invoice",accessibilityLabel:"New invoice",collapsed:!0}}]}],dont:[{note:"Do not put two buttons on one screen; the second competes with the first for attention.",example:[{component:"FloatingActionButton",props:{label:"New invoice",accessibilityLabel:"New invoice"}},{component:"FloatingActionButton",props:{label:"Import",accessibilityLabel:"Import invoices"}}]},{note:"Do not set collapsed on a button with no label, because there is nothing to fold.",example:[{component:"FloatingActionButton",props:{accessibilityLabel:"New invoice",collapsed:!0}}]}],a11y:["The accessibility label names the button for a screen reader; set it to the action, not to the icon.","A collapsed button keeps its label as the accessible name, so a screen reader still hears what it does."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"FloatingActionButtonGroup",marker:null,platforms:["phone"],acceptsChildren:!1,props:{open:{type:"boolean",description:"Whether the actions are expanded. Set it to control the group; leave it unset to let the group track its own state."},defaultOpen:{type:"boolean",default:!1,description:"Whether the group starts expanded when it is not controlled by open."},position:{type:"enum",values:["bottomRight","bottomLeft","bottomCenter"],default:"bottomRight",description:"The corner or edge of the screen the group is pinned to."},bottomOffset:{type:"number",description:"The gap above the bottom edge, in points, before the safe area inset is added."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The diameter of the primary button and of the action buttons."},accessibilityLabel:{type:"string",default:"Quick actions",description:"The name a screen reader reads for the primary button."},hideOnScroll:{type:"boolean",default:!1,description:"Slides the whole group off the bottom edge while isScrolling is true, and closes it first."},isScrolling:{type:"boolean",default:!1,description:"Whether the list behind the group is scrolling right now; wire it to your scroll handler."}},omit:["primaryIcon","primaryActiveIcon","actions","haptic"],examples:[{id:"FloatingActionButtonGroup.basic",title:"Basic",props:{accessibilityLabel:"Create"}},{id:"FloatingActionButtonGroup.open",title:"Open",props:{accessibilityLabel:"Create",defaultOpen:!0}},{id:"FloatingActionButtonGroup.placed",title:"Bottom left, large",props:{accessibilityLabel:"Create",position:"bottomLeft",size:"lg",bottomOffset:24}}],usage:{when:["A screen has one main task that offers two to six related actions, such as creating an item of several kinds.","The actions have to stay reachable while the list behind them scrolls."],whenNot:[{text:"The screen has one action only; a single button does the job.",instead:"FloatingActionButton"},{text:"The choices belong to a field or a row, not to the screen.",instead:"Menu"}],do:[{note:"Pin the group to a corner, where a thumb reaches it, and name it for what its actions create.",example:[{component:"FloatingActionButtonGroup",props:{accessibilityLabel:"Create",position:"bottomRight"}}]},{note:"Set hideOnScroll so the group slides away while the list behind it scrolls.",example:[{component:"FloatingActionButtonGroup",props:{accessibilityLabel:"Create",hideOnScroll:!0}}]}],dont:[{note:"Do not centre the group at the bottom of the screen, where it covers the buttons there.",example:[{component:"FloatingActionButtonGroup",props:{accessibilityLabel:"Create",position:"bottomCenter"}}]},{note:"Do not leave hideOnScroll off on a long list, because the group then covers the rows as they scroll.",example:[{component:"FloatingActionButtonGroup",props:{accessibilityLabel:"Create",hideOnScroll:!1}}]}],a11y:["The accessibility label names the group for a screen reader, so set it to what the actions create, not to an icon.","The primary button announces whether the group is expanded, and each action reads its own accessibility label."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"ForceUpdateDialog",marker:null,platforms:["phone"],acceptsChildren:!1,props:{visible:{type:"boolean",required:!0,description:"Whether the dialog is showing."},mandatory:{type:"boolean",required:!1,default:!1,description:"Hides the Later action and ignores backdrop and Back dismissal; use it for updates that must not be skipped."},updateUrl:{type:"string",required:!1,description:"Address the Update action opens; the platform store when left out."},title:{type:"string",required:!1,default:"Update available",description:"Dialog title."},message:{type:"string",required:!1,default:"A new version of the app is available. Please update to continue using the latest features and security improvements.",description:"Dialog message."},updateLabel:{type:"string",required:!1,default:"Update now",description:"Label of the main action."},laterLabel:{type:"string",required:!1,default:"Later",description:"Label of the dismiss action; hidden when mandatory."}},omit:[],examples:[{id:"ForceUpdateDialog.optional",title:"Optional update",props:{visible:!0,message:"Version 2.1.0 brings faster sync and improved offline support."}},{id:"ForceUpdateDialog.mandatory",title:"Mandatory update",props:{visible:!0,mandatory:!0,message:"Version 2.1.0 brings faster sync and improved offline support."}},{id:"ForceUpdateDialog.defaultCopy",title:"Default copy",props:{visible:!0}},{id:"ForceUpdateDialog.customLabels",title:"Custom labels",props:{visible:!0,title:"Time to update",updateLabel:"Get the update",laterLabel:"Not now"}}],usage:{when:["The installed version is too old and the person must move to the store version.","A newer version is out and the app offers it with a Later choice."],whenNot:[{text:"A passing notice about something new.",instead:"Banner"},{text:"Any other confirmation.",instead:"Dialog"}],do:[{note:"Mark the update mandatory only when the old version cannot keep working.",example:[{component:"ForceUpdateDialog",props:{visible:!0,mandatory:!0}}]}],dont:[{note:"Do not make an ordinary update mandatory; the person cannot dismiss it.",example:[{component:"ForceUpdateDialog",props:{visible:!0,mandatory:!0,message:"A small colour tweak is available."}}]}],a11y:["Shown as a modal dialog: focus stays inside until it is dismissed, and a mandatory one cannot be dismissed.","Keep the message short and say why the update is needed."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"FormField",marker:null,platforms:["phone"],acceptsChildren:!0,props:{label:{type:"node",required:!1,description:"Field label above the input, or left of it in the inline layout; a node label needs accessibilityLabel."},help:{type:"node",required:!1,description:"Drawn right after the label, such as an info button; not part of the label's spoken text."},helperText:{type:"node",required:!1,description:"Hint under the input; hidden while an error shows."},error:{type:"node",required:!1,description:"Error message in the error color; it hides the helper text and marks the field invalid."},required:{type:"boolean",required:!1,default:!1,description:"Adds the required marker after the label."},name:{type:"string",required:!1,description:"Connects the field to the surrounding form by name."},layout:{type:"enum",required:!1,values:["stacked","inline"],default:"stacked",description:"stacked puts the label above the input; inline puts it on the left."},helperLines:{type:"number",required:!1,description:"Lines the helper text and error may take before an ellipsis; no limit when left out or 0."},accessibilityLabel:{type:"string",required:!1,description:"Overrides the spoken label built from the label and the error."}},omit:[],examples:[{id:"FormField.stacked",title:"Stacked with helper",props:{label:"Email",required:!0,helperText:"We'll never share this."},children:[{component:"Input",props:{placeholder:"you@example.com"}}]},{id:"FormField.inline",title:"Inline label",props:{label:"Email",layout:"inline",helperText:"We'll never share this."},children:[{component:"Input",props:{placeholder:"you@example.com"}}]},{id:"FormField.error",title:"With an error",props:{label:"Email",required:!0,helperText:"We'll never share this.",error:"Enter a valid email address."},children:[{component:"Input",props:{placeholder:"you@example.com"}}]},{id:"FormField.optional",title:"Optional field",props:{label:"Nickname"},children:[{component:"Input",props:{placeholder:"What should we call you?"}}]}],usage:{when:["Wrap one input with a label, a helper or an error so every field in a form is laid out the same way.","Any input type: Input, Select, Switch or a date picker."],whenNot:[{text:"The control already draws its own label and error.",instead:"Use the control on its own."},{text:"The form is wired with react-hook-form.",instead:"HookFormField"}],do:[{note:"Say what to fix in the error, and keep the hint for what to enter.",example:[{component:"FormField",props:{label:"Email",error:"Enter a valid email address."},children:[{component:"Input",props:{placeholder:"you@example.com"}}]}]}],dont:[{note:"Do not repeat the label as the placeholder.",example:[{component:"FormField",props:{label:"Email"},children:[{component:"Input",props:{placeholder:"Email"}}]}]}],a11y:["The field is announced as the label plus the error when one shows; a node label needs accessibilityLabel.","The error is read out when it appears, through a live region."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"IconBadge",marker:null,platforms:["phone"],acceptsChildren:!1,props:{icon:{type:"icon",required:!0,description:"The icon to draw inside the badge."},iconVariant:{type:"enum",values:["linear","bold","broken","bulk","outline","twotone"],default:"linear",description:"The Iconsax style for the icon when given as a name."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The size of the badge circle and its icon."},tone:{type:"enum",values:["primary","secondary","success","warning","danger","info","neutral"],default:"primary",description:"The colour of the tinted background and the icon."},accessibilityLabel:{type:"string",description:"Announces the badge as an image to screen readers; without it the badge is decorative."}},omit:[],examples:[{id:"IconBadge.primary",title:"Primary",props:{icon:"user"}},{id:"IconBadge.danger",title:"Danger",props:{icon:"alert-circle",tone:"danger",size:"lg",accessibilityLabel:"Error"}},{id:"IconBadge.neutral",title:"Neutral",props:{icon:"user",tone:"neutral",iconVariant:"bold"}}],usage:{when:["Draw an icon on a circular surface tinted with the same colour."],whenNot:[{text:"Providing a tappable icon action.",instead:"Use IconButton."}],do:[{note:"Give a standalone badge an accessibility label when it carries meaning.",example:[{component:"IconBadge",props:{icon:"user",accessibilityLabel:"User profile"}}]},{note:"Use the danger tone to highlight an error or a critical warning.",example:[{component:"IconBadge",props:{icon:"alert-circle",tone:"danger",accessibilityLabel:"Error"}}]}],dont:[{note:"Do not leave a meaningful badge silent for screen readers.",example:[{component:"IconBadge",props:{icon:"user"}}]},{note:"Do not use the danger tone for a standard status or an informational icon.",example:[{component:"IconBadge",props:{icon:"user",tone:"danger",accessibilityLabel:"User profile"}}]}],a11y:["A decorative badge is hidden from screen readers; set accessibilityLabel when it carries meaning.","Colour is never the only signal; pair a coloured badge with text."]}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.IconButton=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index3=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");const GLASS_RIM_WIDTH=1,SOFT_FILL_OPACITY=.14,SIZE_MAP={sm:{diameter:32,icon:16},md:{diameter:40,icon:20},lg:{diameter:48,icon:24}},toneFor=(e,s)=>{switch(s){case"secondary":return{base:e.colors.neutral,on:e.colors["on-neutral"],fg:e.colors.neutral};case"success":return{base:e.colors.success,on:e.colors["on-success"],fg:e.colors["success-text"]};case"warning":return{base:e.colors.warning,on:e.colors["on-warning"],fg:e.colors["warning-text"]};case"danger":return{base:e.colors.danger,on:e.colors["on-danger"],fg:e.colors["danger-text"]};case"neutral":return{base:e.colors["bg-muted"],on:e.colors["text-body"],fg:e.colors["text-body"]};default:return{base:e.colors.primary,on:e.colors["on-primary"],fg:e.colors.primary}}},IconButton=exports.IconButton=(0,_react.forwardRef)((e,s)=>{const{icon:r,iconVariant:o,onPress:t,accessibilityLabel:n,tone:i="primary",variant:a="solid",size:c="md",shape:l="circle",active:d=!1,disabled:u=!1,loading:b=!1,haptic:_,style:m,testID:x}=e,g=(0,_index.useTheme)(),p=SIZE_MAP[c],y=u||b,{style:f,pressIn:I,pressOut:j}=(0,_usePressAnimation.usePressAnimation)({scaleTo:.92,enabled:!y}),{base:h,on:P,fg:v}=toneFor(g,i),S=d?"solid":a;let q="transparent",A="transparent",w=0,R=y?g.colors["text-disabled"]:v;"solid"===S?(q=y?g.colors["surface-disabled"]:h,R=y?g.colors["text-disabled"]:P):"soft"===S?q=y?g.colors["surface-disabled"]:(0,_color.tintOf)(h,.14,g.colors["bg-subtle"]):"outline"===S?(A=y?g.colors.border:h,w=g.size.border):"glass"===S&&(q=g.colors["glass-fill"],A=g.colors["glass-border"],w=1,R=y?g.colors["text-disabled"]:g.colors["on-glass"]);const B={color:R,size:p.icon,disabled:y},C="circle"===l?p.diameter/2:g.radius.md;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:s,onPress:e=>{if(y)return;const s=(0,_index2.resolveHaptic)(_,"selection");s&&(0,_index2.triggerHaptic)(s),t?.(e)},onPressIn:I,onPressOut:j,disabled:y,accessibilityRole:"button",accessibilityLabel:n,accessibilityState:{disabled:y,selected:d},"aria-disabled":y,"aria-selected":d,hitSlop:6,testID:x,style:({pressed:e})=>[styles.base,{width:p.diameter,height:p.diameter,borderRadius:C,..._corners.smoothCorners,backgroundColor:q,borderColor:A,borderWidth:w,opacity:e&&"solid"!==S?.7:1},m],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.content,f],children:b?(0,_jsxRuntime.jsx)(_index3.Spinner,{size:"sm",color:R}):(0,_slotIcon.renderSlotIcon)(r,B,o)})})});IconButton.displayName="IconButton";const styles=_reactNative.StyleSheet.create({base:{alignItems:"center",justifyContent:"center"},content:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=IconButton;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.IconButton=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hitSlop=require("../../utils/hitSlop.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index3=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");const GLASS_RIM_WIDTH=1,HIT_SLOP=6,SOFT_FILL_OPACITY=.14,SIZE_MAP={sm:{diameter:32,icon:16},md:{diameter:40,icon:20},lg:{diameter:48,icon:24}},toneFor=(e,s)=>{switch(s){case"secondary":return{base:e.colors.neutral,on:e.colors["on-neutral"],fg:e.colors.neutral};case"success":return{base:e.colors.success,on:e.colors["on-success"],fg:e.colors["success-text"]};case"warning":return{base:e.colors.warning,on:e.colors["on-warning"],fg:e.colors["warning-text"]};case"danger":return{base:e.colors.danger,on:e.colors["on-danger"],fg:e.colors["danger-text"]};case"neutral":return{base:e.colors["bg-muted"],on:e.colors["text-body"],fg:e.colors["text-body"]};default:return{base:e.colors.primary,on:e.colors["on-primary"],fg:e.colors.primary}}},IconButton=exports.IconButton=(0,_react.forwardRef)((e,s)=>{const{icon:r,iconVariant:o,onPress:t,accessibilityLabel:n,tone:i="primary",variant:a="solid",size:c="md",shape:l="circle",active:d=!1,disabled:u=!1,loading:b=!1,haptic:_,style:m,testID:x}=e,p=(0,_index.useTheme)(),g=SIZE_MAP[c],y=u||b,{style:I,pressIn:f,pressOut:h}=(0,_usePressAnimation.usePressAnimation)({scaleTo:.92,enabled:!y}),{base:j,on:S,fg:P}=toneFor(p,i),v=d?"solid":a;let q="transparent",A="transparent",w=0,R=y?p.colors["text-disabled"]:P;"solid"===v?(q=y?p.colors["surface-disabled"]:j,R=y?p.colors["text-disabled"]:S):"soft"===v?q=y?p.colors["surface-disabled"]:(0,_color.tintOf)(j,.14,p.colors["bg-subtle"]):"outline"===v?(A=y?p.colors.border:j,w=p.size.border):"glass"===v&&(q=p.colors["glass-fill"],A=p.colors["glass-border"],w=1,R=y?p.colors["text-disabled"]:p.colors["on-glass"]);const O={color:R,size:g.icon,disabled:y},B="circle"===l?g.diameter/2:p.radius.md;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:s,onPress:e=>{if(y)return;const s=(0,_index2.resolveHaptic)(_,"selection");s&&(0,_index2.triggerHaptic)(s),t?.(e)},onPressIn:f,onPressOut:h,disabled:y,accessibilityRole:"button",accessibilityLabel:n,accessibilityState:{disabled:y,selected:d},"aria-disabled":y,"aria-selected":d,hitSlop:6,...(0,_hitSlop.hitSlopMarker)(6),testID:x,style:({pressed:e})=>[styles.base,{width:g.diameter,height:g.diameter,borderRadius:B,..._corners.smoothCorners,backgroundColor:q,borderColor:A,borderWidth:w,opacity:e&&"solid"!==v?.7:1},m],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.content,I],children:b?(0,_jsxRuntime.jsx)(_index3.Spinner,{size:"sm",color:R}):(0,_slotIcon.renderSlotIcon)(r,O,o)})})});IconButton.displayName="IconButton";const styles=_reactNative.StyleSheet.create({base:{alignItems:"center",justifyContent:"center"},content:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=IconButton;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"IconButton",marker:null,platforms:["phone"],acceptsChildren:!1,props:{accessibilityLabel:{type:"string",required:!0,description:"The accessible name of the button, required for an icon-only control."},iconVariant:{type:"enum",values:["linear","bold","broken","bulk","outline","twotone"],default:"linear",description:"The Iconsax style for the icon when it is given by name."},tone:{type:"enum",values:["primary","secondary","success","warning","danger","neutral"],default:"primary",description:"The colour family of the button."},variant:{type:"enum",values:["solid","soft","outline","ghost","glass"],default:"solid",description:"The visual weight of the button, from a solid fill to no fill."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The diameter of the button and the size of its icon."},shape:{type:"enum",values:["circle","rounded"],default:"circle",description:"The outline of the button."},active:{type:"boolean",default:!1,description:"Draws the button filled regardless of the variant, as for an active nav tile."},disabled:{type:"boolean",default:!1,description:"Blocks presses and dims the button."},loading:{type:"boolean",default:!1,description:"Replaces the icon with a spinner and disables the button."}},omit:["icon","haptic"],examples:[{id:"IconButton.default",title:"Default",props:{accessibilityLabel:"Send",variant:"solid",tone:"primary"}},{id:"IconButton.outline",title:"Outline",props:{accessibilityLabel:"Close",variant:"outline",tone:"neutral"}},{id:"IconButton.active",title:"Active",props:{accessibilityLabel:"Menu",active:!0,tone:"primary"}}],usage:{when:["A single icon action that needs a clear touch target, such as a back or close control.","A navigation tile that is selected and should render filled."],whenNot:[{text:"A button with a text label.",instead:"Button"},{text:"A decorative icon with no action.",instead:"AppIcon"},{text:"A floating action button over the main content.",instead:"FloatingActionButton"}],do:[{note:"Always set an accessibility label so screen readers can announce the action.",example:[{component:"IconButton",props:{accessibilityLabel:"Close dialog"}}]},{note:"Use the outline variant for a quiet action beside stronger controls.",example:[{component:"IconButton",props:{accessibilityLabel:"Copy",variant:"outline",tone:"neutral"}}]}],dont:[{note:"Do not omit the accessibility label; an icon-only button is invisible to screen readers without it.",example:[{component:"IconButton",props:{variant:"solid"}}]},{note:"Do not use the danger tone for a standard destructive action without confirmation.",example:[{component:"IconButton",props:{accessibilityLabel:"Delete",tone:"danger"}}]}],a11y:["The accessibility label is the spoken name; without it the button has no accessible name.","The button announces itself as disabled when disabled or loading, with a disabled state.","The active state is exposed as selected for screen readers."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"ImageGallery",marker:null,platforms:["phone"],acceptsChildren:!1,props:{images:{type:"array",required:!0,description:"The photos in order. Each entry holds a source, and may hold a caption and alt text."},initialIndex:{type:"number",default:0,description:"The photo shown first, counted from 0."},showThumbnails:{type:"boolean",default:!0,description:"Draws a strip of small thumbnails under the photo."},showCounter:{type:"boolean",default:!0,description:"Draws a counter such as 2 / 5 over the photo."},enableLightbox:{type:"boolean",default:!0,description:"Opens a full screen view when the person taps a photo."},enablePinchZoom:{type:"boolean",default:!0,description:"Lets the person pinch and double tap to zoom into a photo in the full screen view."},loading:{type:"boolean",default:!1,description:"Draws the placeholder shape instead of the photos while data loads."},accessibilityLabel:{type:"string",description:"Names the gallery for a screen reader."}},omit:["haptic"],examples:[{id:"ImageGallery.withThumbnails",title:"With thumbnails",props:{images:[{source:{uri:"https://picsum.photos/seed/sunset/800/600"},caption:"Sunset"},{source:{uri:"https://picsum.photos/seed/mountain/800/600"},caption:"Mountain"},{source:{uri:"https://picsum.photos/seed/coast/800/600"},caption:"Coast"}],showThumbnails:!0,showCounter:!0}},{id:"ImageGallery.startsLater",title:"Starts on a later photo",props:{images:[{source:{uri:"https://picsum.photos/seed/forest/800/600"},alt:"Forest path in autumn"},{source:{uri:"https://picsum.photos/seed/river/800/600"},alt:"River at dawn"}],initialIndex:1,showThumbnails:!1}},{id:"ImageGallery.noLightbox",title:"Photos without full screen view",props:{images:[{source:{uri:"https://picsum.photos/seed/harbor/800/600"},caption:"Harbor"},{source:{uri:"https://picsum.photos/seed/meadow/800/600"},caption:"Meadow"}],enableLightbox:!1,showCounter:!1}}],usage:{when:["A short set of photos belongs together and the person looks through them in one place.","The person may need to zoom into a photo to see its detail."],whenNot:[{text:"The items are slides of a banner or promotion that rotate on their own.",instead:"Carousel"}],do:[{note:"Give each photo a caption so the person knows what it shows.",example:[{component:"ImageGallery",props:{images:[{source:{uri:"https://picsum.photos/seed/sunset/800/600"},caption:"Sunset"},{source:{uri:"https://picsum.photos/seed/coast/800/600"},caption:"Coast"}]}}]},{note:"Keep the full screen view on so the person can open each photo at full size.",example:[{component:"ImageGallery",props:{images:[{source:{uri:"https://picsum.photos/seed/harbor/800/600"},caption:"Harbor"},{source:{uri:"https://picsum.photos/seed/meadow/800/600"},caption:"Meadow"}],enableLightbox:!0}}]}],dont:[{note:"Do not leave out captions. Photos with no caption give the person no context.",example:[{component:"ImageGallery",props:{images:[{source:{uri:"https://picsum.photos/seed/sunset/800/600"}},{source:{uri:"https://picsum.photos/seed/coast/800/600"}}]}}]},{note:"Do not turn off the full screen view for photos the person must inspect. They cannot open them at full size.",example:[{component:"ImageGallery",props:{images:[{source:{uri:"https://picsum.photos/seed/harbor/800/600"},caption:"Harbor"},{source:{uri:"https://picsum.photos/seed/meadow/800/600"},caption:"Meadow"}],enableLightbox:!1}}]}],a11y:["Set accessibilityLabel to name the gallery for a screen reader.","Each photo is announced by its alt text, or by its position in the set when it has no alt text."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"InlineSelect",marker:null,platforms:["phone"],acceptsChildren:!1,props:{options:{type:"array",required:!0,description:"The options to pick from, each with a label, a value and an optional icon, description or disabled flag.",itemFields:{label:{type:"string",required:!0,description:"The text shown for the option."},value:{type:"stringOrNumber",required:!0,description:"The value the option stands for."},description:{type:"string",description:"A supporting description line under the label."},icon:{type:"icon",description:"An icon drawn beside the option."},disabled:{type:"boolean",description:"Blocks selection of this option."}}},value:{type:"stringOrNumber",description:"The selected option value."},placeholder:{type:"string",default:"Select",description:"Trigger text shown when nothing is selected."},label:{type:"string",description:"A label drawn above the trigger like a field label."},title:{type:"string",description:"Heading shown at the top of the options bottom sheet."},searchable:{type:"boolean",default:!1,description:"Shows a search box above the option list in the sheet."},disabled:{type:"boolean",default:!1,description:"Blocks opening the sheet and dims the trigger."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"Density of the trigger text and chevron, matching the host field."},color:{type:"string",description:"Color for the trigger text and chevron, falling back to the primary brand color."},chevronColor:{type:"string",description:"Color override for the chevron glyph."},chevronSize:{type:"number",description:"Chevron size in pixels, falling back to the icon size of the chosen field size."},accessibilityLabel:{type:"string",description:"The spoken name of the trigger for screen readers."}},omit:["haptic"],examples:[{id:"InlineSelect.currencyPrefix",title:"Currency prefix",props:{options:[{label:"INR",value:"inr"},{label:"USD",value:"usd"},{label:"EUR",value:"eur"}],value:"inr",size:"md"}},{id:"InlineSelect.sheetHeading",title:"With sheet heading and search",props:{options:[{label:"Bengaluru",value:"blr",description:"Karnataka"},{label:"Chennai",value:"maa",description:"Tamil Nadu"},{label:"Delhi",value:"del",description:"National Capital Territory"},{label:"Mumbai",value:"bom",description:"Maharashtra"}],value:"blr",title:"Select city",searchable:!0}},{id:"InlineSelect.withLabel",title:"With label and placeholder",props:{options:[{label:"Kilograms",value:"kg"},{label:"Pounds",value:"lbs"},{label:"Grams",value:"g"}],label:"Unit",placeholder:"Pick unit"}}],usage:{when:["A compact dropdown trigger inside a field prefix or suffix slot.","A borderless picker trigger in a toolbar or list header."],whenNot:[{text:"The choice needs a full standalone field with its own border or multi selection.",instead:"Select"}],do:[{note:"Provide a title so the sheet heading and spoken name describe the choice.",example:[{component:"InlineSelect",props:{options:[{label:"INR",value:"INR"},{label:"USD",value:"USD"}],value:"INR",title:"Currency"}}]},{note:"Turn on search when the list of options is long.",example:[{component:"InlineSelect",props:{options:[{label:"Bengaluru",value:"blr"},{label:"Chennai",value:"maa"},{label:"Delhi",value:"del"}],title:"City",searchable:!0}}]}],dont:[{note:"Do not leave the trigger with no title or label to describe the choice.",example:[{component:"InlineSelect",props:{options:[{label:"INR",value:"INR"},{label:"USD",value:"USD"}],value:"INR"}}]},{note:"Do not leave search off when the list of options is long.",example:[{component:"InlineSelect",props:{options:[{label:"Bengaluru",value:"blr"},{label:"Chennai",value:"maa"},{label:"Delhi",value:"del"}],title:"City",searchable:!1}}]}],a11y:["The trigger announces as a button with its label, selected value and expanded state.","Set title, label or accessibilityLabel so the trigger has a descriptive name for screen readers."]}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Input=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index4=require("../Button/index.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_useFloatingLabel=require("../FieldBase/useFloatingLabel.js"),_Notation=require("../Notation/Notation.js"),_jsxRuntime=require("react/jsx-runtime");const Input=exports.Input=(0,_react.forwardRef)((e,t)=>{const{label:i,help:n,placeholder:a,value:o,onChangeText:s,error:r,helperText:l,type:d="input",secureTextEntry:c=!1,showPasswordToggle:u=!1,disabled:x=!1,multiline:p=!1,leftIcon:f,rightIcon:_,unit:g,unitStyle:m,prefix:v,prefixStyle:h,readOnly:j=!1,action:y,actionStyle:b,size:N="md",variant:R,labelMode:S,required:w=!1,maxLength:F,showCounter:I=!0,textAlign:T,format:V,parse:A,style:B,containerStyle:z,inputStyle:q,labelStyle:C,messageStyle:L,borderRadius:k,onFocus:D,onBlur:P,accessibilityLabel:H,testID:M,editable:O,...E}=e,G=(0,_index2.useTheme)(),W=(0,_react.useMemo)(()=>buildStyles(G),[G]),$=(0,_index2.resolveFieldSize)(G,N),X=G.components.input[N]["multiline-min-height"],J=Math.round(1.4*$.text),K=R??G.settings.components.input?.defaultVariant??G.settings.components.field?.defaultVariant??"outlined",Q=S??G.settings.components.input?.defaultLabelMode??"top",[U,Y]=(0,_react.useState)(!1),[Z,ee]=(0,_react.useState)(!1),te="password"===d||u||c,ie="password"===d||u,ne="textarea"===d||p,ae=ne?Math.round(.1*$.text):0,oe="string"==typeof o&&o.length>0,se=(0,_FieldBase.hasFieldText)(r),re=!0===r||se,le=(0,_FieldBase.hasFieldText)(l),de=se||!re&&le,ce=(0,_FieldBase.hasFieldText)(i),ue=(0,_FieldBase.hasFieldText)(v),xe=!x&&!1!==O,pe=U||oe||ue,fe=(0,_react.useRef)(null),ge=(0,_react.useMemo)(()=>(0,_index3.mergeRefs)(fe,t),[t]),me=(0,_react.useCallback)(()=>{xe&&fe.current?.focus()},[xe]),ve=ce&&"float"===Q,he=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,je=(0,_react.useRef)((0,_index2.createAnimatedValue)(de?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(je,{toValue:de?1:0,duration:G.motion.duration.fast,easing:_reactNative.Easing.bezier(...G.motion.ease["in-out"]),useNativeDriver:!0});return e.start(),()=>e.stop()},[de,je,G.motion.duration.fast,G.motion.ease["in-out"]]);const ye=(0,_index.useReducedMotion)(),be=G.settings.components.input?.shakeOnError??!1,Ne=(0,_react.useRef)(re);(0,_react.useEffect)(()=>{if(!be)return void(Ne.current=re);let e;return re&&!Ne.current&&(ye||((0,_index2.setNativeValue)(he,0),e=_reactNative.Animated.sequence([_reactNative.Animated.timing(he,{toValue:1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:-1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:-1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:0,duration:100,useNativeDriver:!0})]),e.start()),(0,_index3.triggerHaptic)("notificationError")),Ne.current=re,()=>e?.stop()},[re,he,be,ye]);const Re=(0,_react.useCallback)(e=>{Y(!0),D?.(e)},[D]),Se=(0,_react.useCallback)(e=>{Y(!1),P?.(e)},[P]),we=(0,_react.useCallback)(()=>{(0,_index3.triggerHaptic)("selection"),ee(e=>!e)},[]),Fe=G.colors["field-caret"],Ie=k??$.radius,Te=G.settings.components.input?.tintLabelOnFocus??!1,Ve=U&&Te?G.colors["field-border-focus"]:G.colors["field-label"],Ae=he.interpolate({inputRange:[-1,0,1],outputRange:[-6,0,6]}),Be=Boolean(_)||Boolean(g)||ie,ze="underline"===K,qe=f?$.icon+G.space.md+1+G.space.md:0,Ce=(0,_useFloatingLabel.useFloatingLabel)({label:i,enabled:ve,floated:pe,required:w,variant:K,sizeTokens:$,leadingOffset:qe,trailingOffset:Be?$.icon+G.space.sm:0,textAlign:T,paddingLeft:ze?G.space.none:$["padding-x"],lineHeight:ne?J:void 0,restNudge:ae,floatTrim:ne?2:0,color:Ve,style:C}),Le=(0,_FieldBase.resolveFieldTextStyle)(G,{disabled:x}),ke=Le.color,De=Le.placeholderColor,Pe=w&&!ce&&!oe&&"string"==typeof a&&a.length>0,He=re?r:l,Me=I&&"number"==typeof F&&"string"==typeof o?`${o.length} / ${F}`:null,Oe=re?G.colors["field-message"]:G.colors["text-muted"],Ee=(0,_Notation.useNotationInk)(L,$["message-text"],Oe),Ge=H??(0,_FieldBase.fieldTextAsString)(i)??a,We=x?G.colors["field-icon-disabled"]:U?G.colors["field-icon-focus"]:G.colors["field-icon"],$e={focused:U,disabled:x,error:re,color:We,size:$.icon},renderSlot=e=>(0,_slotIcon.renderSlotIcon)(e,$e),Xe=(()=>{if(ie){const e=(Z?G.settings.icons.eyeOff:G.settings.icons.eye)??(Z?_defaultIcons.defaultIcons.eyeOff:_defaultIcons.defaultIcons.eye);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:we,disabled:!xe,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z?"Hide password":"Show password",children:e({size:$.icon,color:We})})}const e=g?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.unit,{fontSize:$.text,color:De},m],children:g}):null,t=_?(0,_jsxRuntime.jsx)(_reactNative.View,{children:renderSlot(_)}):null;return e&&t?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.trailingRow,children:[e,t]}):e??t})(),Je=f?(0,_jsxRuntime.jsx)(_reactNative.View,{children:renderSlot(f)}):null,Ke=_reactNative.StyleSheet.flatten(h),Qe=Ke?.fontSize??$.text,Ue=Ke?.color??De,Ye=(0,_react.useMemo)(()=>({fontSize:Qe,color:Ue}),[Qe,Ue]),Ze=ue?"string"==typeof v||"number"==typeof v?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.prefix,{fontSize:$.text,color:De,marginRight:G.space.xs,lineHeight:ne?J:void 0,paddingTop:ne?ae:void 0},h],children:v}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[W.prefixNode,{marginRight:G.space.xs,minHeight:ne?J:void 0,justifyContent:"center",paddingTop:ne?ae:void 0}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.prefix,{fontSize:$.text,color:De,lineHeight:ne?J:void 0},h],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:Ye,children:v})})}):null,et=y?(0,_jsxRuntime.jsx)(_index4.Button,{variant:y.variant??"outline",tone:y.tone??"primary",size:N,title:y.label,leftIcon:y.icon,loading:y.loading,disabled:x||y.disabled,onPress:y.onPress,pressAnimation:!1,testID:y.testID,style:[W.action,{minHeight:$["min-height"],alignSelf:ne?"flex-start":"stretch"},b]}):null;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[W.container,{transform:[{translateX:Ae}]},B],children:[ce&&!ve?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:N,required:w,help:n,color:Ve,style:C,children:i}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.fieldRow,{columnGap:G.space.sm,alignItems:ne?"flex-start":"stretch"}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.fieldWrapper,children:[(0,_jsxRuntime.jsxs)(_FieldBase.FieldBase,{size:N,variant:K,focused:U,disabled:x,error:re,filled:oe,minHeight:ne?X:void 0,borderRadius:Ie,leading:Je,leadingDivider:null!=f,paddingLeft:ze?G.space.none:void 0,trailing:Xe,slotAlign:ne?"top":"center",slotLineHeight:ne?J:void 0,topNotch:Ce.topNotch,onPress:me,pressFeedback:!1,style:z,children:[Ze,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.inputWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:ge,style:[W.input,{color:ke,fontSize:$.text,...Le.weightStyle,paddingLeft:ze?G.space.none:void 0,minHeight:ne?X-2*$["padding-y"]:void 0,lineHeight:ne?J:void 0,paddingTop:ne?ae:void 0,textAlignVertical:ne?"top":"center"},q],textAlign:T,placeholder:ve&&!pe||Pe?void 0:a,placeholderTextColor:De,value:V&&null!=o?V(o):o,onChangeText:e=>{s&&s(A?A(e):e)},onFocus:Re,onBlur:Se,editable:xe,readOnly:j,secureTextEntry:te&&!Z,multiline:ne,autoCapitalize:te?"none":void 0,autoCorrect:!te&&void 0,maxLength:F,selectionColor:Fe,accessibilityLabel:Ge,accessibilityState:{disabled:x},"aria-disabled":x,testID:M,...E}),Pe?(0,_jsxRuntime.jsx)(_FieldBase.RequiredPlaceholder,{text:a,color:De,fontSize:$.text,weightStyle:Le.weightStyle,align:ne?"top":"center",paddingTop:ne?ae:void 0,textAlign:T}):null]})]}),Ce.node]}),et]}),de||Me?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.footerRow,{marginTop:$["message-gap"]}],children:[de?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[W.messageRow,{columnGap:G.space.xs,opacity:je}],accessibilityLiveRegion:re?"polite":"none",children:[re?(0,_jsxRuntime.jsx)(_FieldBase.FieldErrorGlyph,{size:$["message-text"],color:Oe}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.messageText,{color:Oe,fontSize:$["message-text"],...(0,_index2.fontFor)(G,"normal")},L],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:Ee,children:He})})]}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.footerSpacer}),Me?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.counterText,{color:G.colors["text-subtle"],fontSize:$["message-text"],...(0,_index2.fontFor)(G,"normal")}],children:Me}):null]}):null]})});Input.displayName="Input";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},fieldRow:{flexDirection:"row"},fieldWrapper:{position:"relative",overflow:"visible",flex:1},action:{flexShrink:0},input:{padding:e.space.none,margin:e.space.none,includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},inputWrap:{flex:1,alignSelf:"stretch",justifyContent:"center"},unit:{includeFontPadding:!1},trailingRow:{flexDirection:"row",alignItems:"center",columnGap:e.space.sm},footerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",columnGap:e.space.sm},footerSpacer:{flex:1},messageRow:{flex:1,flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1},counterText:{flexShrink:0,includeFontPadding:!1}});var _default=exports.default=Input;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Input=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index4=require("../Button/index.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_useFloatingLabel=require("../FieldBase/useFloatingLabel.js"),_Notation=require("../Notation/Notation.js"),_jsxRuntime=require("react/jsx-runtime");const Input=exports.Input=(0,_react.forwardRef)((e,t)=>{const{label:i,help:n,placeholder:a,value:o,onChangeText:s,error:r,helperText:l,type:d="input",secureTextEntry:c=!1,showPasswordToggle:u=!1,disabled:x=!1,multiline:p=!1,leftIcon:f,rightIcon:g,unit:_,unitStyle:m,prefix:v,prefixStyle:h,readOnly:y=!1,action:j,actionStyle:b,size:N="md",variant:R,labelMode:S,required:w=!1,maxLength:F,showCounter:I=!0,textAlign:T,format:V,parse:A,style:B,containerStyle:z,inputStyle:q,labelStyle:C,messageStyle:L,borderRadius:k,onFocus:D,onBlur:P,accessibilityLabel:H,testID:M,editable:O,...E}=e,G=(0,_index2.useTheme)(),W=(0,_react.useMemo)(()=>buildStyles(G),[G]),$=(0,_index2.resolveFieldSize)(G,N),X=G.components.input[N]["multiline-min-height"],J=Math.round($.text*G.leading.body),K=R??G.settings.components.input?.defaultVariant??G.settings.components.field?.defaultVariant??"outlined",Q=S??G.settings.components.input?.defaultLabelMode??"top",[U,Y]=(0,_react.useState)(!1),[Z,ee]=(0,_react.useState)(!1),te="password"===d||u||c,ie="password"===d||u,ne="textarea"===d||p,ae=ne?Math.round(.1*$.text):0,oe="string"==typeof o&&o.length>0,se=(0,_FieldBase.hasFieldText)(r),re=!0===r||se,le=(0,_FieldBase.hasFieldText)(l),de=se||!re&&le,ce=(0,_FieldBase.hasFieldText)(i),ue=(0,_FieldBase.hasFieldText)(v),xe=!x&&!1!==O,pe=U||oe||ue,fe=(0,_react.useRef)(null),ge=(0,_react.useMemo)(()=>(0,_index3.mergeRefs)(fe,t),[t]),me=(0,_react.useCallback)(()=>{xe&&fe.current?.focus()},[xe]),ve=ce&&"float"===Q,he=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,ye=(0,_react.useRef)((0,_index2.createAnimatedValue)(de?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(ye,{toValue:de?1:0,duration:G.motion.duration.fast,easing:_reactNative.Easing.bezier(...G.motion.ease["in-out"]),useNativeDriver:!0});return e.start(),()=>e.stop()},[de,ye,G.motion.duration.fast,G.motion.ease["in-out"]]);const je=(0,_index.useReducedMotion)(),be=G.settings.components.input?.shakeOnError??!1,Ne=(0,_react.useRef)(re);(0,_react.useEffect)(()=>{if(!be)return void(Ne.current=re);let e;return re&&!Ne.current&&(je||((0,_index2.setNativeValue)(he,0),e=_reactNative.Animated.sequence([_reactNative.Animated.timing(he,{toValue:1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:-1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:-1,duration:50,useNativeDriver:!0}),_reactNative.Animated.timing(he,{toValue:0,duration:100,useNativeDriver:!0})]),e.start()),(0,_index3.triggerHaptic)("notificationError")),Ne.current=re,()=>e?.stop()},[re,he,be,je]);const Re=(0,_react.useCallback)(e=>{Y(!0),D?.(e)},[D]),Se=(0,_react.useCallback)(e=>{Y(!1),P?.(e)},[P]),we=(0,_react.useCallback)(()=>{(0,_index3.triggerHaptic)("selection"),ee(e=>!e)},[]),Fe=G.colors["field-caret"],Ie=k??$.radius,Te=G.settings.components.input?.tintLabelOnFocus??!1,Ve=U&&Te?G.colors["field-border-focus"]:G.colors["field-label"],Ae=he.interpolate({inputRange:[-1,0,1],outputRange:[-6,0,6]}),Be=Boolean(g)||Boolean(_)||ie,ze="underline"===K,qe=f?$.icon+G.space.md+1+G.space.md:0,Ce=(0,_useFloatingLabel.useFloatingLabel)({label:i,enabled:ve,floated:pe,required:w,variant:K,sizeTokens:$,leadingOffset:qe,trailingOffset:Be?$.icon+G.space.sm:0,textAlign:T,paddingLeft:ze?G.space.none:$["padding-x"],lineHeight:ne?J:void 0,restNudge:ae,floatTrim:ne?2:0,color:Ve,style:C}),Le=(0,_FieldBase.resolveFieldTextStyle)(G,{disabled:x}),ke=Le.color,De=Le.placeholderColor,Pe=w&&!ce&&!oe&&"string"==typeof a&&a.length>0,He=re?r:l,Me=I&&"number"==typeof F&&"string"==typeof o?`${o.length} / ${F}`:null,Oe=re?G.colors["field-message"]:G.colors["text-muted"],Ee=(0,_Notation.useNotationInk)(L,$["message-text"],Oe),Ge=H??(0,_FieldBase.fieldTextAsString)(i)??a,We=x?G.colors["field-icon-disabled"]:U?G.colors["field-icon-focus"]:G.colors["field-icon"],$e={focused:U,disabled:x,error:re,color:We,size:$.icon},renderSlot=e=>(0,_slotIcon.renderSlotIcon)(e,$e),Xe=(()=>{if(ie){const e=(Z?G.settings.icons.eyeOff:G.settings.icons.eye)??(Z?_defaultIcons.defaultIcons.eyeOff:_defaultIcons.defaultIcons.eye);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:we,disabled:!xe,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z?"Hide password":"Show password",children:e({size:$.icon,color:We})})}const e=_?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.unit,{fontSize:$.text,color:De},m],children:_}):null,t=g?(0,_jsxRuntime.jsx)(_reactNative.View,{children:renderSlot(g)}):null;return e&&t?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.trailingRow,children:[e,t]}):e??t})(),Je=f?(0,_jsxRuntime.jsx)(_reactNative.View,{children:renderSlot(f)}):null,Ke=_reactNative.StyleSheet.flatten(h),Qe=Ke?.fontSize??$.text,Ue=Ke?.color??De,Ye=(0,_react.useMemo)(()=>({fontSize:Qe,color:Ue}),[Qe,Ue]),Ze=ue?"string"==typeof v||"number"==typeof v?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.prefix,{fontSize:$.text,color:De,marginRight:G.space.xs,lineHeight:ne?J:void 0,paddingTop:ne?ae:void 0},h],children:v}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[W.prefixNode,{marginRight:G.space.xs,minHeight:ne?J:void 0,justifyContent:"center",paddingTop:ne?ae:void 0}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.prefix,{fontSize:$.text,color:De,lineHeight:ne?J:void 0},h],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:Ye,children:v})})}):null,et=j?(0,_jsxRuntime.jsx)(_index4.Button,{variant:j.variant??"outline",tone:j.tone??"primary",size:N,title:j.label,leftIcon:j.icon,loading:j.loading,disabled:x||j.disabled,onPress:j.onPress,pressAnimation:!1,testID:j.testID,style:[W.action,{minHeight:$["min-height"],alignSelf:ne?"flex-start":"stretch"},b]}):null;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[W.container,{transform:[{translateX:Ae}]},B],children:[ce&&!ve?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:N,required:w,help:n,color:Ve,style:C,children:i}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.fieldRow,{columnGap:G.space.sm,alignItems:ne?"flex-start":"stretch"}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.fieldWrapper,children:[(0,_jsxRuntime.jsxs)(_FieldBase.FieldBase,{size:N,variant:K,focused:U,disabled:x,error:re,filled:oe,minHeight:ne?X:void 0,borderRadius:Ie,leading:Je,leadingDivider:null!=f,paddingLeft:ze?G.space.none:void 0,trailing:Xe,slotAlign:ne?"top":"center",slotLineHeight:ne?J:void 0,topNotch:Ce.topNotch,onPress:me,pressFeedback:!1,style:z,children:[Ze,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.inputWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:ge,style:[W.input,{color:ke,fontSize:$.text,...Le.weightStyle,paddingLeft:ze?G.space.none:void 0,minHeight:ne?X-2*$["padding-y"]:void 0,lineHeight:ne?J:void 0,paddingTop:ne?ae:void 0,textAlignVertical:ne?"top":"center"},q],textAlign:T,placeholder:ve&&!pe||Pe?void 0:a,placeholderTextColor:De,value:V&&null!=o?V(o):o,onChangeText:e=>{s&&s(A?A(e):e)},onFocus:Re,onBlur:Se,editable:xe,readOnly:y,secureTextEntry:te&&!Z,multiline:ne,autoCapitalize:te?"none":void 0,autoCorrect:!te&&void 0,maxLength:F,selectionColor:Fe,accessibilityLabel:Ge,accessibilityState:{disabled:x},"aria-disabled":x,testID:M,...E}),Pe?(0,_jsxRuntime.jsx)(_FieldBase.RequiredPlaceholder,{text:a,color:De,fontSize:$.text,weightStyle:Le.weightStyle,align:ne?"top":"center",paddingTop:ne?ae:void 0,textAlign:T}):null]})]}),Ce.node]}),et]}),de||Me?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.footerRow,{marginTop:$["message-gap"]}],children:[de?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[W.messageRow,{columnGap:G.space.xs,opacity:ye}],accessibilityLiveRegion:re?"polite":"none",children:[re?(0,_jsxRuntime.jsx)(_FieldBase.FieldErrorGlyph,{size:$["message-text"],color:Oe}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.messageText,{color:Oe,fontSize:$["message-text"],...(0,_index2.fontFor)(G,"normal")},L],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:Ee,children:He})})]}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.footerSpacer}),Me?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.counterText,{color:G.colors["text-subtle"],fontSize:$["message-text"],...(0,_index2.fontFor)(G,"normal")}],children:Me}):null]}):null]})});Input.displayName="Input";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},fieldRow:{flexDirection:"row"},fieldWrapper:{position:"relative",overflow:"visible",flex:1},action:{flexShrink:0},input:{padding:e.space.none,margin:e.space.none,includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},inputWrap:{flex:1,alignSelf:"stretch",justifyContent:"center"},unit:{includeFontPadding:!1},trailingRow:{flexDirection:"row",alignItems:"center",columnGap:e.space.sm},footerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",columnGap:e.space.sm},footerSpacer:{flex:1},messageRow:{flex:1,flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1},counterText:{flexShrink:0,includeFontPadding:!1}});var _default=exports.default=Input;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Input",marker:null,platforms:["phone"],acceptsChildren:!1,props:{keyboardType:{type:"enum",values:["default","email-address","numeric","phone-pad","number-pad","decimal-pad","numbers-and-punctuation","url","visible-password"],description:"The keyboard layout shown while the field is focused."},label:{type:"node",description:"The field label. A node label needs an explicit accessibilityLabel."},help:{type:"node",description:"An info control drawn beside the static label. It is not part of the label's accessibility text."},placeholder:{type:"string",description:"Hint text shown while the field is empty."},value:{type:"string",description:"The controlled text value."},error:{type:"node",description:"An error message that puts the field in the error state and replaces the helper text."},helperText:{type:"node",description:"Help text shown under the field."},type:{type:"enum",values:["input","password","textarea"],default:"input",description:"The kind of field: single-line text, a masked password with an eye toggle, or a multi-line textarea."},showPasswordToggle:{type:"boolean",default:!1,description:"Adds the show and hide eye toggle to a masked field."},secureTextEntry:{type:"boolean",default:!1,description:"Masks the value without the eye toggle. The password type is the usual way to mask a field."},disabled:{type:"boolean",default:!1,description:"Blocks editing and dims the field."},multiline:{type:"boolean",default:!1,description:"Lets the value span several lines, the same as the textarea type."},unit:{type:"string",description:"Fixed text drawn after the value, such as km or %."},prefix:{type:"node",description:"Fixed text drawn before the value, such as a currency symbol or a country code."},readOnly:{type:"boolean",default:!1,description:"Shows the value in normal ink and lets it be selected and copied, but not edited."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The field height and text size."},variant:{type:"enum",values:["outlined","filled","underline"],default:"outlined",description:"The look of the field box."},labelMode:{type:"enum",values:["float","top"],default:"top",description:"Where the label sits: permanently above the field, or floating inside it until focus."},required:{type:"boolean",default:!1,description:"Marks the field as required."},maxLength:{type:"number",description:"The most characters the field accepts."},showCounter:{type:"boolean",default:!0,description:"Shows the character count under the field when maxLength is set."},borderRadius:{type:"number",description:"The corner radius of the field box, overriding the size's radius."},accessibilityLabel:{type:"string",description:"The screen reader name of the field. Without it the label text is used."},autoCapitalize:{type:"enum",values:["none","sentences","words","characters"],description:"Which letters the keyboard capitalises automatically."},editable:{type:"boolean",description:"Whether the field accepts editing."},returnKeyType:{type:"enum",values:["done","go","next","search","send","none","previous","default","google","join","route","yahoo","emergency-call"],description:"The label of the return key on the keyboard."}},omit:["accessibilityActions","accessibilityElementsHidden","accessibilityHint","accessibilityIgnoresInvertColors","accessibilityLabelledBy","accessibilityLanguage","accessibilityLargeContentTitle","accessibilityLiveRegion","accessibilityRespondsToUserInteraction","accessibilityRole","accessibilityShowsLargeContentViewer","accessibilityState","accessibilityValue","accessibilityViewIsModal","accessible","action","allowFontScaling","aria-busy","aria-checked","aria-disabled","aria-expanded","aria-hidden","aria-label","aria-labelledby","aria-live","aria-modal","aria-selected","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","autoComplete","autoCorrect","autoFocus","blurOnSubmit","caretHidden","clearButtonMode","clearTextOnFocus","collapsable","collapsableChildren","contextMenuHidden","cursorColor","dataDetectorTypes","defaultValue","disableFullscreenUI","disableKeyboardShortcuts","enablesReturnKeyAutomatically","enterKeyHint","focusable","hasTVPreferredFocus","hitSlop","id","importantForAccessibility","importantForAutofill","inlineImageLeft","inlineImagePadding","inputAccessoryViewButtonLabel","inputAccessoryViewID","inputMode","isTVSelectable","keyboardAppearance","leftIcon","lineBreakModeIOS","lineBreakStrategyIOS","maxFontSizeMultiplier","nativeID","needsOffscreenAlphaCompositing","numberOfLines","passwordRules","placeholderTextColor","pointerEvents","rejectResponderTermination","removeClippedSubviews","renderToHardwareTextureAndroid","returnKeyLabel","rightIcon","role","screenReaderFocusable","scrollEnabled","selection","selectionColor","selectionHandleColor","selectionState","selectTextOnFocus","shouldRasterizeIOS","showSoftInputOnFocus","smartInsertDelete","spellCheck","submitBehavior","tabIndex","textAlign","textAlignVertical","textBreakStrategy","textContentType","tvParallaxMagnification","tvParallaxShiftDistanceX","tvParallaxShiftDistanceY","tvParallaxTiltAngle","underlineColorAndroid","verticalAlign"],examples:[{id:"Input.default",title:"Text field",props:{label:"Full name",placeholder:"Enter your name",value:"Asha Rao",size:"md",variant:"outlined",labelMode:"top"}},{id:"Input.password",title:"Password field",props:{label:"Password",type:"password"}},{id:"Input.error",title:"Error state",props:{label:"Email",keyboardType:"email-address",value:"asha@example",error:"Enter a valid email address."}}],usage:{when:["The value is free text or a secret that the person types, such as a name, an email address or a password.","The field needs a visible label, an error message or a character limit."],whenNot:[{text:"The value is a count or quantity that needs plus and minus buttons.",instead:"NumberInput"}],do:[{note:"Give the field a visible label with label, so its name stays on screen once the person starts typing.",example:[{component:"Input",props:{label:"Email",placeholder:"name@example.com",keyboardType:"email-address"}}]},{note:"Set type to password for a secret: the value is masked and autocorrect and auto-capitalisation are turned off.",example:[{component:"Input",props:{label:"Password",type:"password"}}]}],dont:[{note:"A placeholder alone disappears on the first key press, so the field loses its name.",example:[{component:"Input",props:{placeholder:"name@example.com",keyboardType:"email-address"}}]},{note:"A plain text type shows a secret in clear text.",example:[{component:"Input",props:{label:"Password",type:"input"}}]}],a11y:["The field takes its screen reader name from accessibilityLabel, or from the label text when that is a string, and reads its error or helper text with it.","A password field keeps its value masked and names its eye toggle Show password or Hide password."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"KeyboardToolbar",marker:null,platforms:["phone"],acceptsChildren:!1,props:{doneLabel:{type:"string",description:"Label for the dismiss button.",default:"Done"},showNavigation:{type:"boolean",description:"Show the prev/next chevrons.",default:!0},leading:{type:"node",description:"Custom content rendered between the nav chevrons and the Done button."}},omit:[],examples:[{id:"KeyboardToolbar.default",title:"Default",props:{doneLabel:"Done",showNavigation:!0}},{id:"KeyboardToolbar.noNavigation",title:"No navigation",props:{doneLabel:"Close",showNavigation:!1}},{id:"KeyboardToolbar.customLabel",title:"Custom label",props:{doneLabel:"Finish",showNavigation:!0}}],usage:{when:["Help users navigate between text inputs and easily dismiss the keyboard."],whenNot:[{text:"The user is navigating between full screens.",instead:"Use BottomNavigation."}],do:[{note:"Use a clear and short label to dismiss the keyboard.",example:[{component:"KeyboardToolbar",props:{doneLabel:"Finish",showNavigation:!0}}]},{note:"Hide the navigation chevrons when the screen has only one text input.",example:[{component:"KeyboardToolbar",props:{doneLabel:"Done",showNavigation:!1}}]}],dont:[{note:"Do not use a long phrase for the done label.",example:[{component:"KeyboardToolbar",props:{doneLabel:"Hide the keyboard",showNavigation:!0}}]},{note:"Do not show navigation chevrons when there are no other text inputs.",example:[{component:"KeyboardToolbar",props:{doneLabel:"Done",showNavigation:!0}}]}],a11y:["The navigation chevrons have accessibility labels describing their action."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"ListItem",marker:null,platforms:["phone"],acceptsChildren:!0,props:{title:{type:"node",required:!0,description:"The row title text, or any node drawn as is."},subtitle:{type:"node",description:"Subtitle text or any node drawn under the title."},description:{type:"string",description:"A short line of text under the subtitle."},loading:{type:"boolean",default:!1,description:"Draws the skeleton placeholder instead of the content."},titleLines:{type:"number",default:1,description:"Lines a text title may take before it is truncated; 0 for no limit."},subtitleLines:{type:"number",default:1,description:"Lines a text subtitle may take before it is truncated; 0 for no limit."},left:{type:"node",description:"A node in the leading slot; wins over icon when both are set."},icon:{type:"icon",description:"A leading icon in a tinted circle, when left is not given."},iconTone:{type:"enum",values:["primary","secondary","success","warning","danger","info","neutral"],default:"primary",description:"The colour of the icon circle."},right:{type:"node",description:"A node drawn in the trailing slot, beside or below the text."},rightPlacement:{type:"enum",values:["auto","side","below"],default:"auto",description:"Where the right slot sits relative to the text column."},selectable:{type:"boolean",default:!1,description:"Selection mode: the row becomes a checkbox and presses toggle it."},checked:{type:"boolean",default:!1,description:"The checked state, used only with selectable."},selected:{type:"boolean",default:!1,description:"Highlights the row with the selected surface colour."},disabled:{type:"boolean",default:!1,description:"Blocks presses and dims the row."},divider:{type:"boolean",default:!1,description:"A bottom hairline drawn under the row."},chevron:{type:"boolean",default:!1,description:"A trailing chevron that indicates navigation."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The row size, which sets padding and font scale."},accessibilityLabel:{type:"string",description:"Names the row for a screen reader."},accessibilityHint:{type:"string",description:"What happens when the control is used, read after its name."}},omit:["actions","haptic","leftActions","rightActions","contextMenu"],examples:[{id:"ListItem.basic",title:"Basic row",props:{title:"Inbox",subtitle:"3 unread messages"}},{id:"ListItem.navigation",title:"Navigation row",props:{title:"Settings",icon:"setting-2",chevron:!0}},{id:"ListItem.selectable",title:"Selectable row",props:{title:"Use dark mode",subtitle:"Applies across the app",selectable:!0,checked:!1}}],usage:{when:["A single row in a list that has a title, an optional subtitle and an optional trailing indicator.","The row may be selectable, pressable or swipeable, or show a leading icon."],whenNot:[{text:"The content is a grouped card with a header, footer or image.",instead:"Card"},{text:"The content is just a plain label or divider between sections.",instead:"Text"}],do:[{note:"Keep the title short and give it a subtitle when the row needs identification.",example:[{component:"ListItem",props:{title:"Profile",subtitle:"Account settings"}}]},{note:"Use the selectable mode with a subtitle for multi-choice lists.",example:[{component:"ListItem",props:{title:"Use dark mode",subtitle:"Applies across the app",selectable:!0,checked:!1}}]}],dont:[{note:"Do not put a sentence in the title; it overflows on a narrow phone.",example:[{component:"ListItem",props:{title:"This is a very long sentence that tries to describe everything about this item at once"}}]},{note:"Do not set both left and icon; left wins and hides the icon.",example:[{component:"ListItem",props:{title:"Profile",left:{component:"Text",children:"X"},icon:"user"}}]}],a11y:["A selectable row announces its checked state through the checkbox role.","Set accessibilityLabel on a navigation row so the screen reader names its destination."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"LoaderOverlay",marker:null,platforms:["phone"],acceptsChildren:!1,props:{backdropColor:{type:"string",description:"The overlay dim colour; the themed scrim colour when left out."},showDelayMs:{type:"number",default:150,description:"Milliseconds to wait before the overlay appears, so a fast request never flashes it."},minVisibleMs:{type:"number",default:400,description:"Minimum milliseconds the overlay stays once shown, so it never flickers."}},omit:[],examples:[{id:"LoaderOverlay.default",title:"Default",props:{}},{id:"LoaderOverlay.slowRequest",title:"Slow request",props:{showDelayMs:300}},{id:"LoaderOverlay.holdLonger",title:"Hold longer",props:{minVisibleMs:800}}],usage:{when:["Block the whole screen while a request the user started is in flight, such as a save or a submit.","Stop a second tap during a short request that must finish before the user moves on."],whenNot:[{text:"A wait inside one card or section while the rest of the screen stays usable.",instead:"Spinner"}],do:[{note:"Keep the default delay so a fast request never flashes the overlay.",example:[{component:"LoaderOverlay",props:{showDelayMs:150}}]},{note:"Place it as the last child of the screen so it covers the whole page.",example:[{component:"Screen",props:{title:"Orders"},children:[{component:"LoaderOverlay",props:{}}]}]}],dont:[{note:"Do not set the delay to 0; every quick request then flashes the overlay.",example:[{component:"LoaderOverlay",props:{showDelayMs:0}}]},{note:"Do not place it inside a card; the overlay then covers only that card.",example:[{component:"Card",props:{title:"Orders"},children:[{component:"LoaderOverlay",props:{}}]}]}],a11y:["While it is visible it blocks touches and announces its message, so pass a message that says what is loading.","The Android back key does nothing while it is visible, so a save cannot be left half done."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Markdown",marker:null,platforms:["phone"],acceptsChildren:!0,props:{loading:{type:"boolean",default:!1,description:"Shows the skeleton placeholder shape instead of the text while data loads."}},omit:[],examples:[{id:"Markdown.basic",title:"Basic formatting",props:{},children:"### Release notes\n\n- Faster sync\n- Dark theme support"},{id:"Markdown.withLinks",title:"Links and code",props:{},children:"Run `npm install` or read the [setup guide](https://example.com) to start."},{id:"Markdown.loading",title:"Loading placeholder",props:{loading:!0}}],usage:{when:["Display formatted read-only text such as release notes, announcements or help guides.","Render headings, bullet lists, inline code and links authored in markdown."],whenNot:[{text:"Text that people can edit or compose.",instead:"RichTextEditor"}],do:[{note:"Use markdown syntax to format headings, lists and emphasis.",example:[{component:"Markdown",props:{},children:["### Updates\n\n- Improved sync\n- Dark mode support"]}]},{note:"Write descriptive link text that explains where the destination leads.",example:[{component:"Markdown",props:{},children:["Read the [documentation](https://example.com) for setup instructions."]}]}],dont:[{note:"Do not use HTML tags because the parser renders them as plain text.",example:[{component:"Markdown",props:{},children:["<h3>Updates</h3><ul><li>Improved sync</li><li>Dark mode support</li></ul>"]}]},{note:"Do not paste bare URLs without descriptive link text.",example:[{component:"Markdown",props:{},children:["Read the setup instructions at https://example.com directly."]}]}],a11y:["Headings and links use the appropriate accessibility roles so screen reader users can navigate by landmark.","Write descriptive link text so the purpose of each link is clear when read out of context."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Menu",marker:null,platforms:["phone"],acceptsChildren:!1,props:{items:{type:"array",required:!0,description:"A flat list, or a list of up to three groups split by dividers."},title:{type:"string",description:"A short heading over the items; also the menu's accessible name."},topActions:{type:"array",description:"Up to three icon actions in a row above the list."},placement:{type:"enum",values:["auto","bottom","top"],default:"bottom",description:"Preferred side of the trigger; flips when the other side has the room."},presentation:{type:"enum",values:["auto","popover","sheet"],default:"auto",description:"A sheet on a phone past seven items or with a description."},unavailable:{type:"enum",values:["disable","hide"],default:"disable",description:"Unavailable items stay visible, dimmed and focusable."},open:{type:"boolean",description:"Controlled open state."},accessibilityLabel:{type:"string",description:"Accessible name of the menu when there is no title."},closeLabel:{type:"string",default:"Close menu",description:"Accessible name of the tap-outside area."},backLabel:{type:"string",default:"Back",description:"Accessible name of a submenu's Back row."}},omit:["trigger","haptic"],examples:[{id:"Menu.default",title:"Plain list",props:{open:!0,items:[{key:"copy",label:"Copy"},{key:"paste",label:"Paste"}]}},{id:"Menu.grouped",title:"Grouped list",props:{open:!0,items:[[{key:"reply",label:"Reply"}],[{key:"delete",label:"Delete",destructive:!0}]]}},{id:"Menu.sheet",title:"As a sheet",props:{open:!0,title:"File actions",presentation:"sheet",items:[{key:"rename",label:"Rename"},{key:"move",label:"Move"}]}}],usage:{when:["The person selects an action from a list anchored to a button.","The choices are actions to take, not a single value to select."],whenNot:[{text:"The person is selecting a value for a form field.",instead:"Select"}],do:[{note:"Keep the menu list short and group related actions.",example:[{component:"Menu",props:{open:!0,items:[[{key:"copy",label:"Copy"},{key:"share",label:"Share"}],[{key:"rename",label:"Rename"},{key:"move",label:"Move"}],[{key:"delete",label:"Delete",destructive:!0}]]}}]},{note:"Use a title when the trigger does not clearly describe the menu's purpose.",example:[{component:"Menu",props:{open:!0,title:"File actions",items:[{key:"rename",label:"Rename"},{key:"move",label:"Move"}]}}]}],dont:[{note:"A menu with a long flat list of items makes the person search visually for their choice.",example:[{component:"Menu",props:{open:!0,items:[{key:"copy",label:"Copy"},{key:"share",label:"Share"},{key:"rename",label:"Rename"},{key:"move",label:"Move"},{key:"delete",label:"Delete",destructive:!0}]}}]},{note:"A menu with no title when anchored to an ambiguous icon leaves the context unclear.",example:[{component:"Menu",props:{open:!0,items:[{key:"rename",label:"Rename"},{key:"move",label:"Move"}]}}]}],a11y:["The menu manages focus natively and traps it while open.","Screen readers announce the menu's title when it opens."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"MessageBubble",marker:null,platforms:["phone"],acceptsChildren:!0,props:{side:{type:"enum",values:["mine","theirs"],required:!0,description:"Which side the bubble sits on: mine on the trailing side, theirs on the leading side."},text:{type:"string",required:!0,description:"The message as plain text, drawn when the bubble has no children and read by screen readers."},markdown:{type:"boolean",default:!1,description:"Draws the text as Markdown. Ignored when the bubble has children."},groupPosition:{type:"enum",values:["single","first","middle","last"],default:"single",description:"Where the message sits in a run from one author. Joined corners go small and the author and time show only on the run's edges."},author:{type:"string",description:"The author shown above the first message of a run from the other side."},status:{type:"enum",values:["sending","sent","delivered","read","failed"],description:"The delivery ticks under a message of your own, read as a word."},replyTo:{type:"object",description:"The message this one answers, drawn as a quote at the top of the bubble.",fields:{author:{type:"string",description:"The author of the quoted message."},text:{type:"string",required:!0,description:"The quoted text."}}},streaming:{type:"boolean",default:!1,description:"The reply is still arriving, so the bubble is marked busy."},error:{type:"string",description:"A curated message shown under the bubble."},actions:{type:"array",description:"Long-press actions, also offered to screen readers as accessibility actions.",itemFields:{name:{type:"string",required:!0,description:"A stable id for the action, such as copy."},label:{type:"string",required:!0,description:"The action's visible name."}}},footer:{type:"node",description:"Content under the bubble on the same side, such as action cards or a rating."}},omit:["time","labels","haptic"],examples:[{id:"MessageBubble.default",title:"Message from the other side",props:{side:"theirs",author:"Asha",text:"Can you send the site photos?"}},{id:"MessageBubble.mine",title:"Own message, read",props:{side:"mine",text:"Sharing the photos now.",status:"read"}},{id:"MessageBubble.failed",title:"Own message that failed",props:{side:"mine",text:"See you tomorrow.",status:"failed",error:"Not sent."}},{id:"MessageBubble.runStart",title:"Start of a run",props:{side:"theirs",author:"Asha",text:"Morning! Reached the site.",groupPosition:"first"}}],usage:{when:["A chat or assistant thread needs one message drawn with its author, time and delivery state.","Consecutive messages from one author should join into a run with shared corners."],whenNot:[{text:"The content is a standalone notice outside a conversation.",instead:"Banner"},{text:"A short confirmation that disappears by itself.",instead:"Toast"}],do:[{note:"Give every message a plain text, even when it holds rich content, so a screen reader can read it.",example:[{component:"MessageBubble",props:{side:"theirs",author:"Asha",text:"Can you send the site photos?"}}]},{note:"Show a curated error under a failed message, written for the person.",example:[{component:"MessageBubble",props:{side:"mine",text:"See you tomorrow.",status:"failed",error:"Not sent. Check your connection."}}]}],dont:[{note:"An empty text leaves the message with no spoken name.",example:[{component:"MessageBubble",props:{side:"theirs",text:""}}]},{note:"A raw error code tells the person nothing they can act on.",example:[{component:"MessageBubble",props:{side:"mine",text:"See you tomorrow.",status:"failed",error:"ERR_503"}}]}],a11y:["A bubble without rich children reads as one element: author, time, text, reply quote and the delivery word, with its long-press actions offered as accessibility actions.","A streaming reply is marked busy and announced once when it finishes, and an error is announced at once."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"MessageList",marker:null,platforms:["phone"],acceptsChildren:!1,props:{messages:{type:"array",required:!0,description:"The messages, newest first, the order the list draws from the bottom up."},firstUnreadKey:{type:"string",description:"The key of the message that gets the New messages divider above it."},loadingOlder:{type:"boolean",default:!1,description:"Shows a spinner under the oldest message while an earlier page loads."},hasOlder:{type:"boolean",default:!0,description:"False once the oldest page is in, so the list stops asking for more."},typing:{type:"node",description:"Drawn under the newest message, such as a typing indicator."},empty:{type:"node",description:"Drawn while there are no messages."},keyboardAware:{type:"boolean",default:!0,description:"Lifts the newest messages above the keyboard. Turn it off when a parent already moves with the keyboard."},keyboardOffset:{type:"number",description:"The composer's keyboard offset in points. Without it the bottom safe-area inset is used."}},omit:["labels","now"],examples:[{id:"MessageList.default",title:"Conversation with an unread divider",props:{messages:[],keyboardAware:!1,firstUnreadKey:"l1"}},{id:"MessageList.typing",title:"With a typing indicator",props:{messages:[],keyboardAware:!1,typing:"Asha is typing"}},{id:"MessageList.loadingOlder",title:"Loading earlier messages",props:{messages:[],keyboardAware:!1,loadingOlder:!0}},{id:"MessageList.empty",title:"No messages yet",props:{messages:[],keyboardAware:!1,empty:"No messages yet. Say hello."}}],usage:{when:["A conversation should start at the newest message and load older pages at the top.","Day separators, an unread divider and runs from one author are wanted without extra code."],whenNot:[{text:"The list is not a conversation and reads top to bottom.",instead:"a plain list of ListItem rows"},{text:"There are only a few static messages.",instead:"MessageBubble in a column"}],do:[{note:"Say in the empty area what the person can do next.",example:[{component:"MessageList",props:{messages:[],empty:"No messages yet. Say hello."}}]},{note:"Keep keyboardAware on so the newest message stays above the keyboard.",example:[{component:"MessageList",props:{messages:[],keyboardAware:!0}}]}],dont:[{note:"A blank empty area leaves the person unsure whether the list is still loading.",example:[{component:"MessageList",props:{messages:[],empty:""}}]},{note:"Turning keyboardAware off on a screen that does not move with the keyboard hides the newest message.",example:[{component:"MessageList",props:{messages:[],keyboardAware:!1}}]}],a11y:["Each new message is announced politely through the app's getAnnouncement text, one announcement per arriving message.","The jump to latest button names itself and adds the count of messages that arrived while the person was scrolled away."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Modal",marker:null,platforms:["phone"],acceptsChildren:!0,props:{visible:{type:"boolean",required:!0,description:"Whether the modal is shown. The parent owns it."},presentation:{type:"enum",values:["centered","bottom","fullScreen"],default:"centered",description:"How the dialog is laid out: a centred card, a sheet anchored to the bottom, or a full screen takeover."},backdropOpacity:{type:"number",description:"Overrides the opacity of the dimmed backdrop for this modal."},backdropPressClose:{type:"boolean",default:!0,description:"Whether tapping the dimmed backdrop closes the modal."},animationDuration:{type:"number",description:"The enter animation length in milliseconds. Without it the theme's normal duration is used."},accessibilityLabel:{type:"string",description:"The name a screen reader gives the dialog."},hardwareBackPress:{type:"boolean",default:!0,description:"Whether the Android back button closes the modal."}},omit:["restoreFocusRef","haptic"],examples:[{id:"Modal.default",title:"Centred dialog",props:{visible:!0,presentation:"centered",accessibilityLabel:"Demo modal"},children:"centered modal"},{id:"Modal.bottom",title:"Bottom sheet",props:{visible:!0,presentation:"bottom",accessibilityLabel:"Demo modal"},children:"bottom modal"},{id:"Modal.fullScreen",title:"Full screen",props:{visible:!0,presentation:"fullScreen",accessibilityLabel:"Demo modal"},children:"fullScreen modal"},{id:"Modal.backdropLocked",title:"Backdrop tap does not close",props:{visible:!0,presentation:"centered",backdropPressClose:!1,accessibilityLabel:"Demo modal"},children:"centered modal"}],usage:{when:["A dialog, confirmation or sheet must sit above the current screen.","A full screen takeover such as onboarding or a media viewer is needed."],whenNot:[{text:"The choice is a list of options.",instead:"OptionSheet"},{text:"A brief message needs no action.",instead:"Toast"}],do:[{note:"Name the dialog with an accessibilityLabel so a screen reader announces what opened.",example:[{component:"Modal",props:{visible:!0,accessibilityLabel:"Delete project"},children:"Delete this project?"}]},{note:"Use the bottom presentation for an action menu.",example:[{component:"Modal",props:{visible:!0,presentation:"bottom"},children:"Choose an action"}]}],dont:[{note:"A dialog with no label opens in silence for a screen reader.",example:[{component:"Modal",props:{visible:!0},children:"Delete this project?"}]},{note:"A full screen takeover for a one-line confirmation hides the page for no reason.",example:[{component:"Modal",props:{visible:!0,presentation:"fullScreen"},children:"Delete this project?"}]}],a11y:["The dialog is marked as a modal view with an alert role and takes its name from accessibilityLabel.","The Android back button closes it unless hardwareBackPress is off, and a screen reader can reach a Close modal button."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"Notation",marker:null,platforms:["phone"],acceptsChildren:!1,props:{text:{type:"string",description:"Engine text where an underscore after a one-letter symbol marks a subscript, such as N_SG. It must sit inside a Text."},base:{type:"string",description:"One symbol, drawn with its subscript small and lowered after it. It must sit inside a Text."},sub:{type:"string",description:"The subscript drawn small after the base."},desc:{type:"string",description:"A description that follows the symbol after a space."},color:{type:"string",description:"The subscript's colour. Inside a field label or message it follows that line, elsewhere the primary text colour."}},omit:[],examples:[{id:"Notation.default",title:"Engine text with subscripts",props:{text:"N_SG exceeds N_C, risk_total stays prose"}},{id:"Notation.symbol",title:"One symbol with a description",props:{base:"C",sub:"IP",desc:"index"}},{id:"Notation.plainSymbol",title:"One symbol",props:{base:"U",sub:"p"}}],usage:{when:["A standard's symbol needs a real subscript that React Native text cannot draw.","Engine text arrives with underscores that mark subscripts."],whenNot:[{text:"The text is stored or typed by a person.",instead:"a plain Text"},{text:"The name is a multi-letter word that happens to hold an underscore.",instead:"a plain Text"}],do:[{note:"Write the symbol as one letter, an underscore and its subscript.",example:[{component:"Notation",props:{text:"N_SG exceeds N_C"}}]},{note:"Give a symbol its description after a space with desc.",example:[{component:"Notation",props:{base:"C",sub:"IP",desc:"index"}}]}],dont:[{note:"A multi-letter name with an underscore stays prose, so it never becomes a subscript.",example:[{component:"Notation",props:{text:"risk_total stays prose"}}]},{note:"A description joined into the subscript is drawn as part of the subscript.",example:[{component:"Notation",props:{base:"C",sub:"IP index"}}]}],a11y:["It draws as nested text inside the parent Text and sets no role or label of its own.","The subscript takes the size and colour of the enclosing label or message line, so it stays legible with that line."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"NumberInput",marker:null,platforms:["phone"],acceptsChildren:!1,props:{value:{type:"number",description:"The controlled value."},defaultValue:{type:"number",description:"The starting value when the field is not controlled. Without it the minimum, or 0, is used."},min:{type:"number",description:"The lower bound that typed and stepped values clamp to. Without it there is no lower bound."},max:{type:"number",description:"The upper bound that typed and stepped values clamp to. Without it there is no upper bound."},step:{type:"number",default:1,description:"How much one tap on a stepper button adds or removes."},allowDecimal:{type:"boolean",default:!1,description:"Accepts a decimal point and shows the decimal keyboard."},precision:{type:"number",default:0,description:"The number of decimal places kept when decimals are allowed."},label:{type:"node",description:"The field label. A node label needs an explicit accessibilityLabel."},help:{type:"node",description:"Drawn right after the label, such as an info button. It is not part of the label's accessibility text."},helperText:{type:"node",description:"Help shown under the field."},error:{type:"node",description:"An error message that puts the field in the error state and replaces the helper text."},disabled:{type:"boolean",default:!1,description:"Blocks typing and stepping and dims the field."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The field height, stepper size and text size."},variant:{type:"enum",values:["inline","horizontal","stacked"],default:"inline",description:"How the label sits relative to the field."},unit:{type:"string",description:"A suffix shown after the value, such as kg."},accessibilityLabel:{type:"string",description:"The input's screen reader name. Without it the label text is used."}},omit:["haptic","textInputProps"],examples:[{id:"NumberInput.default",title:"Quantity stepper",props:{value:5,size:"md",variant:"inline",label:"Quantity",min:0,max:20,step:1}},{id:"NumberInput.stacked",title:"Stacked label with a unit",props:{value:5,size:"md",variant:"stacked",label:"Weight",unit:"kg",min:0,max:20,step:1}},{id:"NumberInput.decimal",title:"Decimal value",props:{value:5,label:"Quantity",min:0,max:20,step:1,allowDecimal:!0,precision:1}},{id:"NumberInput.error",title:"Error state",props:{value:5,label:"Quantity",min:0,max:20,step:1,error:"Choose at most 20."}}],usage:{when:["The value is a count, quantity or measurement that benefits from plus and minus buttons.","The value has bounds that the field should enforce."],whenNot:[{text:"The value is a long figure typed on a number keyboard.",instead:"DecimalInput"},{text:"The value is a fixed-length code.",instead:"OTPInput"}],do:[{note:"Set min and max so the stepper stops at real limits.",example:[{component:"NumberInput",props:{value:5,label:"Quantity",min:1,max:10}}]},{note:"Write the unit in the unit prop so it stays beside the value.",example:[{component:"NumberInput",props:{value:5,label:"Weight",unit:"kg"}}]}],dont:[{note:"No bounds let the person step to a value the page cannot use.",example:[{component:"NumberInput",props:{value:5,label:"Quantity"}}]},{note:"A unit written into the label is easy to miss next to the value.",example:[{component:"NumberInput",props:{value:5,label:"Weight in kg"}}]}],a11y:["The input is an adjustable element with the label as its name and the current value, and stepper buttons report their disabled state.","A node label needs an explicit accessibilityLabel, since a node has no text for the screen reader name."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"OTPInput",marker:null,platforms:["phone"],acceptsChildren:!1,props:{value:{type:"string",description:"The controlled code."},defaultValue:{type:"string",description:"The starting code when the field is not controlled."},length:{type:"number",default:6,description:"The number of cells."},keyboardType:{type:"enum",values:["number-pad","default"],default:"number-pad",description:"Digits only, or any character for an alphanumeric code."},autoFocus:{type:"boolean",default:!1,description:"Focuses the first cell when the field appears."},autoFocusDelay:{type:"number",default:0,description:"Milliseconds to wait before the first cell takes focus. Raise it on a screen pushed with a transition."},disabled:{type:"boolean",default:!1,description:"Blocks input and dims every cell."},error:{type:"node",description:"An error message shown under the cells that puts them in the error state."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The cell size and text size."},secure:{type:"boolean",default:!1,description:"Masks each filled cell."},accessibilityLabel:{type:"string",description:"The screen reader name of the field. Without it a Enter N-digit code line is used."}},omit:["haptic"],examples:[{id:"OTPInput.default",title:"Six digit code",props:{length:6,size:"md",keyboardType:"number-pad"}},{id:"OTPInput.filled",title:"Filled four digit code",props:{value:"1234",length:4,size:"md"}},{id:"OTPInput.secure",title:"Masked code",props:{value:"1234",length:4,secure:!0}},{id:"OTPInput.error",title:"Error state",props:{value:"123456",length:6,error:"That code is not right."}}],usage:{when:["The person enters a fixed-length one-time code or PIN.","The code arrives by SMS and should fill in from the keyboard suggestion."],whenNot:[{text:"The value is free text of any length.",instead:"Input"},{text:"The value is a count or quantity.",instead:"NumberInput"}],do:[{note:"Match length to the code you send.",example:[{component:"OTPInput",props:{length:6}}]},{note:"Say what is wrong in the error message.",example:[{component:"OTPInput",props:{value:"123456",length:6,error:"That code is not right. Try again."}}]}],dont:[{note:"A length that differs from the code leaves the person with cells they cannot fill.",example:[{component:"OTPInput",props:{length:8}}]},{note:"An error with no message shows red cells but not what to do.",example:[{component:"OTPInput",props:{value:"123456",length:6,error:""}}]}],a11y:["The whole field is one element named by accessibilityLabel, or Enter N-digit code, and it reports the typed code as its value and its disabled state.","The first cell carries the one-time code content type so the keyboard can offer the SMS code."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"OnboardingPager",marker:null,platforms:["phone"],acceptsChildren:!1,props:{pages:{type:"array",required:!0,description:"The intro pages. Three or four work best and only the first six are shown.",itemFields:{key:{type:"string",required:!0,description:"A stable identity for the page."},art:{type:"node",description:"The picture above the text."},title:{type:"string",required:!0,description:"The page heading."},body:{type:"string",required:!0,description:"The line under the heading."}}},doneLabel:{type:"string",default:"Get started",description:"The title of the final button."},safeArea:{type:"boolean",default:!0,description:"Pads the top and bottom by the device safe area. Turn it off inside a screen that already does."}},omit:["labels","haptic"],examples:[{id:"OnboardingPager.default",title:"Three pages",props:{pages:[{key:"page-1",title:"Everything in one place",body:"A short line that says why this matters, in a sentence or two."},{key:"page-2",title:"Work from anywhere",body:"A short line that says why this matters, in a sentence or two."},{key:"page-3",title:"Stay in the loop",body:"A short line that says why this matters, in a sentence or two."}],doneLabel:"Get started",safeArea:!1}},{id:"OnboardingPager.onePage",title:"One page",props:{pages:[{key:"page-1",title:"Everything in one place",body:"A short line that says why this matters, in a sentence or two."}],doneLabel:"Get started",safeArea:!1}},{id:"OnboardingPager.customDone",title:"Custom final button",props:{pages:[{key:"page-1",title:"Everything in one place",body:"A short line that says why this matters, in a sentence or two."},{key:"page-2",title:"Work from anywhere",body:"A short line that says why this matters, in a sentence or two."}],doneLabel:"Sign in",safeArea:!1}}],usage:{when:["A first launch needs a short intro before sign in.","Each page makes one point with a picture, a heading and a line of text."],whenNot:[{text:"The steps collect information from the person.",instead:"a form flow"},{text:"A feature needs a one-off explanation in context.",instead:"Tour"}],do:[{note:"Keep to three or four pages, each with one clear heading.",example:[{component:"OnboardingPager",props:{pages:[{key:"a",title:"Everything in one place",body:"All your work, together."},{key:"b",title:"Work from anywhere",body:"Pick up on any device."}],safeArea:!1}}]},{note:"Name the final button for what happens next.",example:[{component:"OnboardingPager",props:{pages:[{key:"a",title:"Everything in one place",body:"All your work, together."}],doneLabel:"Sign in",safeArea:!1}}]}],dont:[{note:"A page with no heading gives the screen reader nothing to announce.",example:[{component:"OnboardingPager",props:{pages:[{key:"a",title:"",body:"All your work, together."}],safeArea:!1}}]},{note:"A vague final label does not say what happens next.",example:[{component:"OnboardingPager",props:{pages:[{key:"a",title:"Everything in one place",body:"All your work, together."}],doneLabel:"OK",safeArea:!1}}]}],a11y:["Each page reads as one element: its step, title and body, such as Step 2 of 3.","The page control is one adjustable element, so a swipe up or down changes page, and pressing Next announces the new step and title."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const cities=[{label:"Bengaluru",value:"blr",description:"Karnataka"},{label:"Chennai",value:"maa",description:"Tamil Nadu"},{label:"Delhi",value:"del",description:"National Capital Territory"},{label:"Hyderabad",value:"hyd",description:"Telangana"},{label:"Mumbai",value:"bom",description:"Maharashtra"},{label:"Pune",value:"pnq",description:"Maharashtra",disabled:!0}],meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"OptionSheet",marker:null,platforms:["phone"],acceptsChildren:!1,props:{open:{type:"boolean",required:!0,description:"Whether the sheet is shown. The caller owns it."},title:{type:"string",description:"The sheet heading, also the screen reader name when there is no accessibilityLabel."},options:{type:"array",required:!0,description:"The options to list, each with a label, a value and optionally a description, an icon and a disabled flag."},sections:{type:"array",description:"Groups the options under a header row each instead of listing them flat.",itemFields:{title:{type:"string",required:!0,description:"The group header."},options:{type:"array",required:!0,description:"The options in the group."}}},alphabetIndex:{type:"boolean",default:!1,description:"Shows a rail of letters that jumps the list to the first option starting with that letter."},searchPlaceholder:{type:"string",default:"Search…",description:"The placeholder of the search box."},emptyText:{type:"string",default:"No options",description:"The text shown when nothing matches."},multi:{type:"boolean",default:!1,description:"Shows checkboxes and a Done footer instead of the selected dot."},searchable:{type:"boolean",default:!1,description:"Shows a search box above the list."},searchSelectionColor:{type:"string",description:"The caret and selection colour of the search box. Without it the focus border colour is used."},accessibilityLabel:{type:"string",description:"The screen reader name of the sheet. Without it the title, then Options, is used."}},omit:[],examples:[{id:"OptionSheet.default",title:"Single choice with search",props:{open:!0,title:"Pick a city",options:cities,searchable:!0}},{id:"OptionSheet.multi",title:"Multiple choice",props:{open:!0,title:"Pick a city",options:cities,multi:!0,searchable:!0}},{id:"OptionSheet.alphabetIndex",title:"With a letter rail",props:{open:!0,title:"Pick a city",options:cities,searchable:!0,alphabetIndex:!0}}],usage:{when:["The person picks from a list of options in a sheet that slides up from the bottom.","The list is long enough to need search or a letter rail."],whenNot:[{text:"There are only two or three choices.",instead:"SegmentedControl"},{text:"The choice sits in a form field.",instead:"Select"}],do:[{note:"Give the sheet a title that says what is being chosen.",example:[{component:"OptionSheet",props:{open:!0,title:"Pick a city",options:[{label:"Bengaluru",value:"blr"}]}}]},{note:"Turn on search when the list is long.",example:[{component:"OptionSheet",props:{open:!0,title:"Pick a city",options:[{label:"Bengaluru",value:"blr"}],searchable:!0}}]}],dont:[{note:"A sheet with no title leaves the person unsure what the list is for.",example:[{component:"OptionSheet",props:{open:!0,options:[{label:"Bengaluru",value:"blr"}]}}]},{note:"A long list with no search makes the person scroll for every choice.",example:[{component:"OptionSheet",props:{open:!0,title:"Pick a city",options:[{label:"Bengaluru",value:"blr"}],searchable:!1}}]}],a11y:["Each option is a button that reports its selected and disabled state, and a section header is a header.","The sheet is a modal view named by accessibilityLabel, then the title, and its backdrop and Done footer are reachable as buttons."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"PaymentResult",marker:null,platforms:["phone"],acceptsChildren:!1,props:{status:{type:"enum",values:["success","pending","failed","refunded"],required:!0,description:"The outcome. Pending is its own state, never shown as a failure and never offered a retry."},amount:{type:"number",required:!0,description:"The amount in integer paise, shown in rupees with Indian digit grouping."},currency:{type:"string",default:"INR",description:"The ISO 4217 code of the amount's currency."},payee:{type:"string",description:"Who was paid."},reference:{type:"string",description:"The bank or gateway reference, read digit by digit by a screen reader."},method:{type:"string",description:"How it was paid, such as the UPI handle or card."},rows:{type:"array",description:"Receipt rows after the built-in ones. A row with an empty value is dropped.",itemFields:{label:{type:"node",required:!0,description:"The row label."},value:{type:"node",description:"The row value."},full:{type:"boolean",description:"Makes the row span both columns."},strong:{type:"boolean",description:"Draws a text value in the semibold weight."},key:{type:"string",description:"A stable key for the row."}}},debited:{type:"boolean",description:"For a failed payment: whether money left the account. Only false lets Try again show."},refundDays:{type:"number",default:5,description:"Working days the bank takes to return a debited amount."},title:{type:"string",description:"Replaces the heading."},message:{type:"string",description:"Replaces the line under the amount."},refreshing:{type:"boolean",description:"Puts Check status into its busy state."},celebrate:{type:"boolean",default:!0,description:"Plays a burst of confetti on success. Not played under Reduce Motion."}},omit:["paidAt","settlesBy","haptic"],examples:[{id:"PaymentResult.default",title:"Successful payment",props:{status:"success",amount:14738200,payee:"Sunrise Traders",reference:"412345678901",method:"UPI, HDFC Bank ...4821",rows:[{label:"Plan",value:"Pro, yearly"}]}},{id:"PaymentResult.pending",title:"Pending payment",props:{status:"pending",amount:14738200,payee:"Sunrise Traders",reference:"412345678901"}},{id:"PaymentResult.failedNotDebited",title:"Failed, no money taken",props:{status:"failed",amount:14738200,payee:"Sunrise Traders",debited:!1}},{id:"PaymentResult.refunded",title:"Refunded payment",props:{status:"refunded",amount:14738200,payee:"Sunrise Traders",reference:"412345678901"}}],usage:{when:["A payment has ended and the person needs the outcome, the amount and the next step.","A receipt with reference and method should sit under the outcome."],whenNot:[{text:"The payment is still being entered.",instead:"a form with Button"},{text:"A short note that a save worked.",instead:"Toast"}],do:[{note:"Show a bank-unconfirmed payment as pending and tell the person not to pay again.",example:[{component:"PaymentResult",props:{status:"pending",amount:14738200}}]},{note:"Say whether money left the account on a failed payment.",example:[{component:"PaymentResult",props:{status:"failed",amount:14738200,debited:!1}}]}],dont:[{note:"Showing an unconfirmed payment as failed invites a second payment.",example:[{component:"PaymentResult",props:{status:"failed",amount:14738200}}]},{note:"Leaving debited unset on a failure sends the person to check their statement with no retry.",example:[{component:"PaymentResult",props:{status:"failed",amount:14738200,debited:!0}}]}],a11y:["The result is a summary whose outcome is announced when it appears, politely except for a failure.","The reference is read digit by digit."]}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.meta=void 0;var _meta=require("../../canvasKit/meta.js");const meta=exports.meta=(0,_meta.definePhoneMeta)()({name:"PermissionPrompt",marker:null,platforms:["phone"],acceptsChildren:!1,props:{kind:{type:"enum",required:!0,values:["camera","microphone","photos","photosAdd","mediaLibrary","location","locationAlways","contacts","calendar","reminders","notifications","bluetooth","storage"],description:"The permission being asked for."},title:{type:"string",required:!0,description:"What the feature is. A screen reader reads it first."},reason:{type:"string",required:!0,description:"One sentence on what the app does with the access, ending in a full stop."},icon:{type:"icon",description:"An icon drawn in a tinted disc above the title."}},omit:["fallback","haptic"],examples:[{id:"PermissionPrompt.default",title:"Camera for a receipt",props:{kind:"camera",title:"Scan a receipt",reason:"The camera reads the receipt so you do not have to type the amount.",icon:"camera"}},{id:"PermissionPrompt.location",title:"Location for nearby branches",props:{kind:"location",title:"Find branches near you",reason:"Your location sorts the branch list by distance. It is not stored.",icon:"location"}},{id:"PermissionPrompt.notifications",title:"Notifications for claim updates",props:{kind:"notifications",title:"Hear when your claim moves",reason:"A notification tells you when your claim is approved or needs a document.",icon:"notification"}}],usage:{when:["The app needs a permission and should explain why before the system prompt.","A refusal should leave an inline state with another way to do the job."],whenNot:[{text:"The permission is already granted and nothing needs explaining.",instead:"the feature itself"},{text:"The message is a general notice, not about a permission.",instead:"Banner"}],do:[{note:"Name the feature in the title and say what the access is used for in one sentence.",example:[{component:"PermissionPrompt",props:{kind:"camera",title:"Scan a receipt",reason:"The camera reads the receipt so you do not have to type the amount."}}]},{note:"Say plainly what is not done with the data.",example:[{component:"PermissionPrompt",props:{kind:"location",title:"Find branches near you",reason:"Your location sorts the branch list by distance. It is not stored."}}]}],dont:[{note:"A reason that only repeats the permission name does not explain anything.",example:[{component:"PermissionPrompt",props:{kind:"camera",title:"Camera",reason:"We need camera access."}}]},{note:"A reason that is silent about storage leaves the person guessing.",example:[{component:"PermissionPrompt",props:{kind:"location",title:"Location",reason:"We need your location."}}]}],a11y:["The title is a heading read first, and the reason or the unavailable message sits under it.","When a refusal swaps the explanation for the unavailable message, the new message is announced."]}});