@webority/mobile-ui 0.91.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 (442) 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.meta.js +1 -0
  17. package/lib/commonjs/components/BottomSheet/BottomSheet.meta.js +1 -0
  18. package/lib/commonjs/components/Box/Spacer.meta.js +1 -0
  19. package/lib/commonjs/components/Button/Button.meta.js +1 -0
  20. package/lib/commonjs/components/Calendar/Calendar.meta.js +1 -0
  21. package/lib/commonjs/components/Card/Card.meta.js +1 -0
  22. package/lib/commonjs/components/Carousel/Carousel.meta.js +1 -0
  23. package/lib/commonjs/components/Checkbox/Checkbox.meta.js +1 -0
  24. package/lib/commonjs/components/Chip/Chip.meta.js +1 -0
  25. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.meta.js +1 -0
  26. package/lib/commonjs/components/Composer/Composer.meta.js +1 -0
  27. package/lib/commonjs/components/Confetti/Confetti.meta.js +1 -0
  28. package/lib/commonjs/components/DatePicker/DatePicker.meta.js +1 -0
  29. package/lib/commonjs/components/DateRangePicker/DateRangePicker.meta.js +1 -0
  30. package/lib/commonjs/components/DateSeparator/DateSeparator.meta.js +1 -0
  31. package/lib/commonjs/components/DecimalInput/DecimalInput.meta.js +1 -0
  32. package/lib/commonjs/components/Descriptions/Descriptions.meta.js +1 -0
  33. package/lib/commonjs/components/Dialog/Dialog.meta.js +1 -0
  34. package/lib/commonjs/components/Divider/Divider.meta.js +1 -0
  35. package/lib/commonjs/components/Drawer/Drawer.meta.js +1 -0
  36. package/lib/commonjs/components/EmptyState/EmptyState.meta.js +1 -0
  37. package/lib/commonjs/components/FilePicker/FilePicker.meta.js +1 -0
  38. package/lib/commonjs/components/FileViewer/FileViewer.meta.js +1 -0
  39. package/lib/commonjs/components/FilterChipRow/FilterChipRow.meta.js +1 -0
  40. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.meta.js +1 -0
  41. package/lib/commonjs/components/FloatingActionButton/FloatingActionButtonGroup.meta.js +1 -0
  42. package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.meta.js +1 -0
  43. package/lib/commonjs/components/FormField/FormField.meta.js +1 -0
  44. package/lib/commonjs/components/IconBadge/IconBadge.meta.js +1 -0
  45. package/lib/commonjs/components/IconButton/IconButton.meta.js +1 -0
  46. package/lib/commonjs/components/ImageGallery/ImageGallery.meta.js +1 -0
  47. package/lib/commonjs/components/InlineSelect/InlineSelect.meta.js +1 -0
  48. package/lib/commonjs/components/Input/Input.meta.js +1 -0
  49. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.meta.js +1 -0
  50. package/lib/commonjs/components/ListItem/ListItem.meta.js +1 -0
  51. package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.meta.js +1 -0
  52. package/lib/commonjs/components/Markdown/Markdown.meta.js +1 -0
  53. package/lib/commonjs/components/Menu/Menu.meta.js +1 -0
  54. package/lib/commonjs/components/MessageBubble/MessageBubble.meta.js +1 -0
  55. package/lib/commonjs/components/MessageList/MessageList.meta.js +1 -0
  56. package/lib/commonjs/components/Modal/Modal.meta.js +1 -0
  57. package/lib/commonjs/components/Notation/Notation.meta.js +1 -0
  58. package/lib/commonjs/components/NumberInput/NumberInput.meta.js +1 -0
  59. package/lib/commonjs/components/OTPInput/OTPInput.meta.js +1 -0
  60. package/lib/commonjs/components/OnboardingPager/OnboardingPager.meta.js +1 -0
  61. package/lib/commonjs/components/OptionSheet/OptionSheet.meta.js +1 -0
  62. package/lib/commonjs/components/PaymentResult/PaymentResult.meta.js +1 -0
  63. package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.meta.js +1 -0
  64. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.meta.js +1 -0
  65. package/lib/commonjs/components/PickerTrigger/PickerTrigger.meta.js +1 -0
  66. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.meta.js +1 -0
  67. package/lib/commonjs/components/ProfilePicker/ProfilePicker.meta.js +1 -0
  68. package/lib/commonjs/components/ProgressBar/ProgressBar.meta.js +1 -0
  69. package/lib/commonjs/components/ProgressRing/ProgressRing.meta.js +1 -0
  70. package/lib/commonjs/components/Radio/Radio.meta.js +1 -0
  71. package/lib/commonjs/components/Radio/RadioGroup.meta.js +1 -0
  72. package/lib/commonjs/components/Rating/Rating.meta.js +1 -0
  73. package/lib/commonjs/components/Repeater/Repeater.meta.js +1 -0
  74. package/lib/commonjs/components/RichTextEditor/RichTextEditor.meta.js +1 -0
  75. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.meta.js +1 -0
  76. package/lib/commonjs/components/Screen/Screen.meta.js +1 -0
  77. package/lib/commonjs/components/SearchBar/SearchBar.meta.js +1 -0
  78. package/lib/commonjs/components/SectionHeader/SectionHeader.meta.js +1 -0
  79. package/lib/commonjs/components/SegmentedControl/SegmentedControl.meta.js +1 -0
  80. package/lib/commonjs/components/Select/Select.meta.js +1 -0
  81. package/lib/commonjs/components/SignaturePad/SignaturePad.meta.js +1 -0
  82. package/lib/commonjs/components/Skeleton/Skeleton.meta.js +1 -0
  83. package/lib/commonjs/components/Skeleton/SkeletonCircle.meta.js +1 -0
  84. package/lib/commonjs/components/Skeleton/SkeletonContent.meta.js +1 -0
  85. package/lib/commonjs/components/Skeleton/SkeletonList.meta.js +1 -0
  86. package/lib/commonjs/components/Skeleton/SkeletonText.meta.js +1 -0
  87. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.meta.js +1 -0
  88. package/lib/commonjs/components/Slider/Slider.meta.js +1 -0
  89. package/lib/commonjs/components/SliderField/SliderField.meta.js +1 -0
  90. package/lib/commonjs/components/Sparkline/Sparkline.meta.js +1 -0
  91. package/lib/commonjs/components/Spinner/Spinner.meta.js +1 -0
  92. package/lib/commonjs/components/SquircleView/SquircleView.meta.js +1 -0
  93. package/lib/commonjs/components/StatTile/StatTile.meta.js +1 -0
  94. package/lib/commonjs/components/StatusBadge/StatusBadge.meta.js +1 -0
  95. package/lib/commonjs/components/Stepper/Stepper.meta.js +1 -0
  96. package/lib/commonjs/components/Swipeable/Swipeable.meta.js +1 -0
  97. package/lib/commonjs/components/Switch/Switch.meta.js +1 -0
  98. package/lib/commonjs/components/Tabs/Tabs.meta.js +1 -0
  99. package/lib/commonjs/components/TagInput/TagInput.meta.js +1 -0
  100. package/lib/commonjs/components/Text/Text.meta.js +1 -0
  101. package/lib/commonjs/components/TimePicker/TimePicker.meta.js +1 -0
  102. package/lib/commonjs/components/Timeline/Timeline.meta.js +1 -0
  103. package/lib/commonjs/components/Toast/Toast.meta.js +1 -0
  104. package/lib/commonjs/components/Tooltip/Tooltip.meta.js +1 -0
  105. package/lib/commonjs/components/Tour/Tour.meta.js +1 -0
  106. package/lib/commonjs/components/TypingIndicator/TypingIndicator.meta.js +1 -0
  107. package/lib/commonjs/components/WheelPicker/WheelPickerColumns.meta.js +1 -0
  108. package/lib/commonjs/components/WheelPicker/WheelPickerDuration.meta.js +1 -0
  109. package/lib/commonjs/components/WheelPicker/WheelPickerList.meta.js +1 -0
  110. package/lib/commonjs/components/ZoomableImage/ZoomableImage.meta.js +1 -0
  111. package/lib/commonjs/components/not-drawn.json +17 -0
  112. package/lib/module/components/Accordion/Accordion.meta.js +1 -0
  113. package/lib/module/components/Accordion/AccordionGroup.meta.js +1 -0
  114. package/lib/module/components/AmountSlider/AmountSlider.meta.js +1 -0
  115. package/lib/module/components/AnimatePresence/AnimatePresence.meta.js +1 -0
  116. package/lib/module/components/AppBar/AppBar.meta.js +1 -0
  117. package/lib/module/components/AppIcon/AppIcon.meta.js +1 -0
  118. package/lib/module/components/AsyncBlock/AsyncBlock.meta.js +1 -0
  119. package/lib/module/components/AuthedImage/AuthedImage.meta.js +1 -0
  120. package/lib/module/components/Autocomplete/Autocomplete.meta.js +1 -0
  121. package/lib/module/components/Avatar/Avatar.meta.js +1 -0
  122. package/lib/module/components/Avatar/AvatarGroup.meta.js +1 -0
  123. package/lib/module/components/Badge/Badge.meta.js +1 -0
  124. package/lib/module/components/Banner/Banner.meta.js +1 -0
  125. package/lib/module/components/BarChart/BarChart.meta.js +1 -0
  126. package/lib/module/components/BottomNavigation/BottomNavigation.meta.js +1 -0
  127. package/lib/module/components/BottomSheet/BottomSheet.meta.js +1 -0
  128. package/lib/module/components/Box/Spacer.meta.js +1 -0
  129. package/lib/module/components/Button/Button.meta.js +1 -0
  130. package/lib/module/components/Calendar/Calendar.meta.js +1 -0
  131. package/lib/module/components/Card/Card.meta.js +1 -0
  132. package/lib/module/components/Carousel/Carousel.meta.js +1 -0
  133. package/lib/module/components/Checkbox/Checkbox.meta.js +1 -0
  134. package/lib/module/components/Chip/Chip.meta.js +1 -0
  135. package/lib/module/components/ChoiceGroup/ChoiceGroup.meta.js +1 -0
  136. package/lib/module/components/Composer/Composer.meta.js +1 -0
  137. package/lib/module/components/Confetti/Confetti.meta.js +1 -0
  138. package/lib/module/components/DatePicker/DatePicker.meta.js +1 -0
  139. package/lib/module/components/DateRangePicker/DateRangePicker.meta.js +1 -0
  140. package/lib/module/components/DateSeparator/DateSeparator.meta.js +1 -0
  141. package/lib/module/components/DecimalInput/DecimalInput.meta.js +1 -0
  142. package/lib/module/components/Descriptions/Descriptions.meta.js +1 -0
  143. package/lib/module/components/Dialog/Dialog.meta.js +1 -0
  144. package/lib/module/components/Divider/Divider.meta.js +1 -0
  145. package/lib/module/components/Drawer/Drawer.meta.js +1 -0
  146. package/lib/module/components/EmptyState/EmptyState.meta.js +1 -0
  147. package/lib/module/components/FilePicker/FilePicker.meta.js +1 -0
  148. package/lib/module/components/FileViewer/FileViewer.meta.js +1 -0
  149. package/lib/module/components/FilterChipRow/FilterChipRow.meta.js +1 -0
  150. package/lib/module/components/FloatingActionButton/FloatingActionButton.meta.js +1 -0
  151. package/lib/module/components/FloatingActionButton/FloatingActionButtonGroup.meta.js +1 -0
  152. package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.meta.js +1 -0
  153. package/lib/module/components/FormField/FormField.meta.js +1 -0
  154. package/lib/module/components/IconBadge/IconBadge.meta.js +1 -0
  155. package/lib/module/components/IconButton/IconButton.meta.js +1 -0
  156. package/lib/module/components/ImageGallery/ImageGallery.meta.js +1 -0
  157. package/lib/module/components/InlineSelect/InlineSelect.meta.js +1 -0
  158. package/lib/module/components/Input/Input.meta.js +1 -0
  159. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.meta.js +1 -0
  160. package/lib/module/components/ListItem/ListItem.meta.js +1 -0
  161. package/lib/module/components/LoaderOverlay/LoaderOverlay.meta.js +1 -0
  162. package/lib/module/components/Markdown/Markdown.meta.js +1 -0
  163. package/lib/module/components/Menu/Menu.meta.js +1 -0
  164. package/lib/module/components/MessageBubble/MessageBubble.meta.js +1 -0
  165. package/lib/module/components/MessageList/MessageList.meta.js +1 -0
  166. package/lib/module/components/Modal/Modal.meta.js +1 -0
  167. package/lib/module/components/Notation/Notation.meta.js +1 -0
  168. package/lib/module/components/NumberInput/NumberInput.meta.js +1 -0
  169. package/lib/module/components/OTPInput/OTPInput.meta.js +1 -0
  170. package/lib/module/components/OnboardingPager/OnboardingPager.meta.js +1 -0
  171. package/lib/module/components/OptionSheet/OptionSheet.meta.js +1 -0
  172. package/lib/module/components/PaymentResult/PaymentResult.meta.js +1 -0
  173. package/lib/module/components/PermissionPrompt/PermissionPrompt.meta.js +1 -0
  174. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.meta.js +1 -0
  175. package/lib/module/components/PickerTrigger/PickerTrigger.meta.js +1 -0
  176. package/lib/module/components/ProfileCompletion/ProfileCompletion.meta.js +1 -0
  177. package/lib/module/components/ProfilePicker/ProfilePicker.meta.js +1 -0
  178. package/lib/module/components/ProgressBar/ProgressBar.meta.js +1 -0
  179. package/lib/module/components/ProgressRing/ProgressRing.meta.js +1 -0
  180. package/lib/module/components/Radio/Radio.meta.js +1 -0
  181. package/lib/module/components/Radio/RadioGroup.meta.js +1 -0
  182. package/lib/module/components/Rating/Rating.meta.js +1 -0
  183. package/lib/module/components/Repeater/Repeater.meta.js +1 -0
  184. package/lib/module/components/RichTextEditor/RichTextEditor.meta.js +1 -0
  185. package/lib/module/components/ScannerOverlay/ScannerOverlay.meta.js +1 -0
  186. package/lib/module/components/Screen/Screen.meta.js +1 -0
  187. package/lib/module/components/SearchBar/SearchBar.meta.js +1 -0
  188. package/lib/module/components/SectionHeader/SectionHeader.meta.js +1 -0
  189. package/lib/module/components/SegmentedControl/SegmentedControl.meta.js +1 -0
  190. package/lib/module/components/Select/Select.meta.js +1 -0
  191. package/lib/module/components/SignaturePad/SignaturePad.meta.js +1 -0
  192. package/lib/module/components/Skeleton/Skeleton.meta.js +1 -0
  193. package/lib/module/components/Skeleton/SkeletonCircle.meta.js +1 -0
  194. package/lib/module/components/Skeleton/SkeletonContent.meta.js +1 -0
  195. package/lib/module/components/Skeleton/SkeletonList.meta.js +1 -0
  196. package/lib/module/components/Skeleton/SkeletonText.meta.js +1 -0
  197. package/lib/module/components/SlideToConfirm/SlideToConfirm.meta.js +1 -0
  198. package/lib/module/components/Slider/Slider.meta.js +1 -0
  199. package/lib/module/components/SliderField/SliderField.meta.js +1 -0
  200. package/lib/module/components/Sparkline/Sparkline.meta.js +1 -0
  201. package/lib/module/components/Spinner/Spinner.meta.js +1 -0
  202. package/lib/module/components/SquircleView/SquircleView.meta.js +1 -0
  203. package/lib/module/components/StatTile/StatTile.meta.js +1 -0
  204. package/lib/module/components/StatusBadge/StatusBadge.meta.js +1 -0
  205. package/lib/module/components/Stepper/Stepper.meta.js +1 -0
  206. package/lib/module/components/Swipeable/Swipeable.meta.js +1 -0
  207. package/lib/module/components/Switch/Switch.meta.js +1 -0
  208. package/lib/module/components/Tabs/Tabs.meta.js +1 -0
  209. package/lib/module/components/TagInput/TagInput.meta.js +1 -0
  210. package/lib/module/components/Text/Text.meta.js +1 -0
  211. package/lib/module/components/TimePicker/TimePicker.meta.js +1 -0
  212. package/lib/module/components/Timeline/Timeline.meta.js +1 -0
  213. package/lib/module/components/Toast/Toast.meta.js +1 -0
  214. package/lib/module/components/Tooltip/Tooltip.meta.js +1 -0
  215. package/lib/module/components/Tour/Tour.meta.js +1 -0
  216. package/lib/module/components/TypingIndicator/TypingIndicator.meta.js +1 -0
  217. package/lib/module/components/WheelPicker/WheelPickerColumns.meta.js +1 -0
  218. package/lib/module/components/WheelPicker/WheelPickerDuration.meta.js +1 -0
  219. package/lib/module/components/WheelPicker/WheelPickerList.meta.js +1 -0
  220. package/lib/module/components/ZoomableImage/ZoomableImage.meta.js +1 -0
  221. package/lib/module/components/not-drawn.json +17 -0
  222. package/lib/typescript/commonjs/canvasKit/meta.d.ts +21 -6
  223. package/lib/typescript/commonjs/components/Accordion/Accordion.meta.d.ts +3 -0
  224. package/lib/typescript/commonjs/components/Accordion/AccordionGroup.meta.d.ts +3 -0
  225. package/lib/typescript/commonjs/components/AmountSlider/AmountSlider.meta.d.ts +3 -0
  226. package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.meta.d.ts +3 -0
  227. package/lib/typescript/commonjs/components/AppBar/AppBar.meta.d.ts +3 -0
  228. package/lib/typescript/commonjs/components/AppIcon/AppIcon.meta.d.ts +3 -0
  229. package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.meta.d.ts +3 -0
  230. package/lib/typescript/commonjs/components/AuthedImage/AuthedImage.meta.d.ts +5 -0
  231. package/lib/typescript/commonjs/components/Autocomplete/Autocomplete.meta.d.ts +3 -0
  232. package/lib/typescript/commonjs/components/Avatar/Avatar.meta.d.ts +3 -0
  233. package/lib/typescript/commonjs/components/Avatar/AvatarGroup.meta.d.ts +3 -0
  234. package/lib/typescript/commonjs/components/Badge/Badge.meta.d.ts +3 -0
  235. package/lib/typescript/commonjs/components/Banner/Banner.meta.d.ts +3 -0
  236. package/lib/typescript/commonjs/components/BarChart/BarChart.meta.d.ts +3 -0
  237. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.meta.d.ts +3 -0
  238. package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.meta.d.ts +3 -0
  239. package/lib/typescript/commonjs/components/Box/Spacer.meta.d.ts +3 -0
  240. package/lib/typescript/commonjs/components/Button/Button.meta.d.ts +3 -0
  241. package/lib/typescript/commonjs/components/Calendar/Calendar.meta.d.ts +3 -0
  242. package/lib/typescript/commonjs/components/Card/Card.meta.d.ts +3 -0
  243. package/lib/typescript/commonjs/components/Carousel/Carousel.meta.d.ts +3 -0
  244. package/lib/typescript/commonjs/components/Checkbox/Checkbox.meta.d.ts +3 -0
  245. package/lib/typescript/commonjs/components/Chip/Chip.meta.d.ts +3 -0
  246. package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.meta.d.ts +3 -0
  247. package/lib/typescript/commonjs/components/Composer/Composer.meta.d.ts +3 -0
  248. package/lib/typescript/commonjs/components/Confetti/Confetti.meta.d.ts +3 -0
  249. package/lib/typescript/commonjs/components/DatePicker/DatePicker.meta.d.ts +3 -0
  250. package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.meta.d.ts +3 -0
  251. package/lib/typescript/commonjs/components/DateSeparator/DateSeparator.meta.d.ts +3 -0
  252. package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.meta.d.ts +3 -0
  253. package/lib/typescript/commonjs/components/Descriptions/Descriptions.meta.d.ts +3 -0
  254. package/lib/typescript/commonjs/components/Dialog/Dialog.meta.d.ts +3 -0
  255. package/lib/typescript/commonjs/components/Divider/Divider.meta.d.ts +3 -0
  256. package/lib/typescript/commonjs/components/Drawer/Drawer.meta.d.ts +3 -0
  257. package/lib/typescript/commonjs/components/EmptyState/EmptyState.meta.d.ts +3 -0
  258. package/lib/typescript/commonjs/components/FilePicker/FilePicker.meta.d.ts +3 -0
  259. package/lib/typescript/commonjs/components/FileViewer/FileViewer.meta.d.ts +3 -0
  260. package/lib/typescript/commonjs/components/FilterChipRow/FilterChipRow.meta.d.ts +3 -0
  261. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButton.meta.d.ts +3 -0
  262. package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButtonGroup.meta.d.ts +3 -0
  263. package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.meta.d.ts +3 -0
  264. package/lib/typescript/commonjs/components/FormField/FormField.meta.d.ts +3 -0
  265. package/lib/typescript/commonjs/components/IconBadge/IconBadge.meta.d.ts +3 -0
  266. package/lib/typescript/commonjs/components/IconButton/IconButton.meta.d.ts +3 -0
  267. package/lib/typescript/commonjs/components/ImageGallery/ImageGallery.meta.d.ts +3 -0
  268. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.meta.d.ts +3 -0
  269. package/lib/typescript/commonjs/components/Input/Input.meta.d.ts +3 -0
  270. package/lib/typescript/commonjs/components/KeyboardToolbar/KeyboardToolbar.meta.d.ts +3 -0
  271. package/lib/typescript/commonjs/components/ListItem/ListItem.meta.d.ts +3 -0
  272. package/lib/typescript/commonjs/components/LoaderOverlay/LoaderOverlay.meta.d.ts +3 -0
  273. package/lib/typescript/commonjs/components/Markdown/Markdown.meta.d.ts +3 -0
  274. package/lib/typescript/commonjs/components/Menu/Menu.meta.d.ts +3 -0
  275. package/lib/typescript/commonjs/components/MessageBubble/MessageBubble.meta.d.ts +3 -0
  276. package/lib/typescript/commonjs/components/MessageList/MessageList.meta.d.ts +5 -0
  277. package/lib/typescript/commonjs/components/Modal/Modal.meta.d.ts +3 -0
  278. package/lib/typescript/commonjs/components/Notation/Notation.meta.d.ts +3 -0
  279. package/lib/typescript/commonjs/components/NumberInput/NumberInput.meta.d.ts +3 -0
  280. package/lib/typescript/commonjs/components/OTPInput/OTPInput.meta.d.ts +3 -0
  281. package/lib/typescript/commonjs/components/OnboardingPager/OnboardingPager.meta.d.ts +3 -0
  282. package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.meta.d.ts +3 -0
  283. package/lib/typescript/commonjs/components/PaymentResult/PaymentResult.meta.d.ts +3 -0
  284. package/lib/typescript/commonjs/components/PermissionPrompt/PermissionPrompt.meta.d.ts +3 -0
  285. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.meta.d.ts +3 -0
  286. package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.meta.d.ts +3 -0
  287. package/lib/typescript/commonjs/components/ProfileCompletion/ProfileCompletion.meta.d.ts +3 -0
  288. package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.meta.d.ts +3 -0
  289. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.meta.d.ts +3 -0
  290. package/lib/typescript/commonjs/components/ProgressRing/ProgressRing.meta.d.ts +3 -0
  291. package/lib/typescript/commonjs/components/Radio/Radio.meta.d.ts +3 -0
  292. package/lib/typescript/commonjs/components/Radio/RadioGroup.meta.d.ts +3 -0
  293. package/lib/typescript/commonjs/components/Rating/Rating.meta.d.ts +3 -0
  294. package/lib/typescript/commonjs/components/Repeater/Repeater.meta.d.ts +3 -0
  295. package/lib/typescript/commonjs/components/RichTextEditor/RichTextEditor.meta.d.ts +3 -0
  296. package/lib/typescript/commonjs/components/ScannerOverlay/ScannerOverlay.meta.d.ts +3 -0
  297. package/lib/typescript/commonjs/components/Screen/Screen.meta.d.ts +3 -0
  298. package/lib/typescript/commonjs/components/SearchBar/SearchBar.meta.d.ts +3 -0
  299. package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.meta.d.ts +3 -0
  300. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.meta.d.ts +3 -0
  301. package/lib/typescript/commonjs/components/Select/Select.meta.d.ts +3 -0
  302. package/lib/typescript/commonjs/components/SignaturePad/SignaturePad.meta.d.ts +3 -0
  303. package/lib/typescript/commonjs/components/Skeleton/Skeleton.meta.d.ts +3 -0
  304. package/lib/typescript/commonjs/components/Skeleton/SkeletonCircle.meta.d.ts +3 -0
  305. package/lib/typescript/commonjs/components/Skeleton/SkeletonContent.meta.d.ts +3 -0
  306. package/lib/typescript/commonjs/components/Skeleton/SkeletonList.meta.d.ts +3 -0
  307. package/lib/typescript/commonjs/components/Skeleton/SkeletonText.meta.d.ts +3 -0
  308. package/lib/typescript/commonjs/components/SlideToConfirm/SlideToConfirm.meta.d.ts +3 -0
  309. package/lib/typescript/commonjs/components/Slider/Slider.meta.d.ts +3 -0
  310. package/lib/typescript/commonjs/components/SliderField/SliderField.meta.d.ts +3 -0
  311. package/lib/typescript/commonjs/components/Sparkline/Sparkline.meta.d.ts +3 -0
  312. package/lib/typescript/commonjs/components/Spinner/Spinner.meta.d.ts +3 -0
  313. package/lib/typescript/commonjs/components/SquircleView/SquircleView.meta.d.ts +2 -0
  314. package/lib/typescript/commonjs/components/StatTile/StatTile.meta.d.ts +3 -0
  315. package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.meta.d.ts +3 -0
  316. package/lib/typescript/commonjs/components/Stepper/Stepper.meta.d.ts +3 -0
  317. package/lib/typescript/commonjs/components/Swipeable/Swipeable.meta.d.ts +3 -0
  318. package/lib/typescript/commonjs/components/Switch/Switch.meta.d.ts +3 -0
  319. package/lib/typescript/commonjs/components/Tabs/Tabs.meta.d.ts +3 -0
  320. package/lib/typescript/commonjs/components/TagInput/TagInput.meta.d.ts +3 -0
  321. package/lib/typescript/commonjs/components/Text/Text.meta.d.ts +3 -0
  322. package/lib/typescript/commonjs/components/TimePicker/TimePicker.meta.d.ts +3 -0
  323. package/lib/typescript/commonjs/components/Timeline/Timeline.meta.d.ts +3 -0
  324. package/lib/typescript/commonjs/components/Toast/Toast.meta.d.ts +3 -0
  325. package/lib/typescript/commonjs/components/Tooltip/Tooltip.meta.d.ts +3 -0
  326. package/lib/typescript/commonjs/components/Tour/Tour.meta.d.ts +3 -0
  327. package/lib/typescript/commonjs/components/TypingIndicator/TypingIndicator.meta.d.ts +3 -0
  328. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerColumns.meta.d.ts +3 -0
  329. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerDuration.meta.d.ts +3 -0
  330. package/lib/typescript/commonjs/components/WheelPicker/WheelPickerList.meta.d.ts +3 -0
  331. package/lib/typescript/commonjs/components/ZoomableImage/ZoomableImage.meta.d.ts +3 -0
  332. package/lib/typescript/module/canvasKit/meta.d.ts +21 -6
  333. package/lib/typescript/module/components/Accordion/Accordion.meta.d.ts +3 -0
  334. package/lib/typescript/module/components/Accordion/AccordionGroup.meta.d.ts +3 -0
  335. package/lib/typescript/module/components/AmountSlider/AmountSlider.meta.d.ts +3 -0
  336. package/lib/typescript/module/components/AnimatePresence/AnimatePresence.meta.d.ts +3 -0
  337. package/lib/typescript/module/components/AppBar/AppBar.meta.d.ts +3 -0
  338. package/lib/typescript/module/components/AppIcon/AppIcon.meta.d.ts +3 -0
  339. package/lib/typescript/module/components/AsyncBlock/AsyncBlock.meta.d.ts +3 -0
  340. package/lib/typescript/module/components/AuthedImage/AuthedImage.meta.d.ts +5 -0
  341. package/lib/typescript/module/components/Autocomplete/Autocomplete.meta.d.ts +3 -0
  342. package/lib/typescript/module/components/Avatar/Avatar.meta.d.ts +3 -0
  343. package/lib/typescript/module/components/Avatar/AvatarGroup.meta.d.ts +3 -0
  344. package/lib/typescript/module/components/Badge/Badge.meta.d.ts +3 -0
  345. package/lib/typescript/module/components/Banner/Banner.meta.d.ts +3 -0
  346. package/lib/typescript/module/components/BarChart/BarChart.meta.d.ts +3 -0
  347. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.meta.d.ts +3 -0
  348. package/lib/typescript/module/components/BottomSheet/BottomSheet.meta.d.ts +3 -0
  349. package/lib/typescript/module/components/Box/Spacer.meta.d.ts +3 -0
  350. package/lib/typescript/module/components/Button/Button.meta.d.ts +3 -0
  351. package/lib/typescript/module/components/Calendar/Calendar.meta.d.ts +3 -0
  352. package/lib/typescript/module/components/Card/Card.meta.d.ts +3 -0
  353. package/lib/typescript/module/components/Carousel/Carousel.meta.d.ts +3 -0
  354. package/lib/typescript/module/components/Checkbox/Checkbox.meta.d.ts +3 -0
  355. package/lib/typescript/module/components/Chip/Chip.meta.d.ts +3 -0
  356. package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.meta.d.ts +3 -0
  357. package/lib/typescript/module/components/Composer/Composer.meta.d.ts +3 -0
  358. package/lib/typescript/module/components/Confetti/Confetti.meta.d.ts +3 -0
  359. package/lib/typescript/module/components/DatePicker/DatePicker.meta.d.ts +3 -0
  360. package/lib/typescript/module/components/DateRangePicker/DateRangePicker.meta.d.ts +3 -0
  361. package/lib/typescript/module/components/DateSeparator/DateSeparator.meta.d.ts +3 -0
  362. package/lib/typescript/module/components/DecimalInput/DecimalInput.meta.d.ts +3 -0
  363. package/lib/typescript/module/components/Descriptions/Descriptions.meta.d.ts +3 -0
  364. package/lib/typescript/module/components/Dialog/Dialog.meta.d.ts +3 -0
  365. package/lib/typescript/module/components/Divider/Divider.meta.d.ts +3 -0
  366. package/lib/typescript/module/components/Drawer/Drawer.meta.d.ts +3 -0
  367. package/lib/typescript/module/components/EmptyState/EmptyState.meta.d.ts +3 -0
  368. package/lib/typescript/module/components/FilePicker/FilePicker.meta.d.ts +3 -0
  369. package/lib/typescript/module/components/FileViewer/FileViewer.meta.d.ts +3 -0
  370. package/lib/typescript/module/components/FilterChipRow/FilterChipRow.meta.d.ts +3 -0
  371. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButton.meta.d.ts +3 -0
  372. package/lib/typescript/module/components/FloatingActionButton/FloatingActionButtonGroup.meta.d.ts +3 -0
  373. package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.meta.d.ts +3 -0
  374. package/lib/typescript/module/components/FormField/FormField.meta.d.ts +3 -0
  375. package/lib/typescript/module/components/IconBadge/IconBadge.meta.d.ts +3 -0
  376. package/lib/typescript/module/components/IconButton/IconButton.meta.d.ts +3 -0
  377. package/lib/typescript/module/components/ImageGallery/ImageGallery.meta.d.ts +3 -0
  378. package/lib/typescript/module/components/InlineSelect/InlineSelect.meta.d.ts +3 -0
  379. package/lib/typescript/module/components/Input/Input.meta.d.ts +3 -0
  380. package/lib/typescript/module/components/KeyboardToolbar/KeyboardToolbar.meta.d.ts +3 -0
  381. package/lib/typescript/module/components/ListItem/ListItem.meta.d.ts +3 -0
  382. package/lib/typescript/module/components/LoaderOverlay/LoaderOverlay.meta.d.ts +3 -0
  383. package/lib/typescript/module/components/Markdown/Markdown.meta.d.ts +3 -0
  384. package/lib/typescript/module/components/Menu/Menu.meta.d.ts +3 -0
  385. package/lib/typescript/module/components/MessageBubble/MessageBubble.meta.d.ts +3 -0
  386. package/lib/typescript/module/components/MessageList/MessageList.meta.d.ts +5 -0
  387. package/lib/typescript/module/components/Modal/Modal.meta.d.ts +3 -0
  388. package/lib/typescript/module/components/Notation/Notation.meta.d.ts +3 -0
  389. package/lib/typescript/module/components/NumberInput/NumberInput.meta.d.ts +3 -0
  390. package/lib/typescript/module/components/OTPInput/OTPInput.meta.d.ts +3 -0
  391. package/lib/typescript/module/components/OnboardingPager/OnboardingPager.meta.d.ts +3 -0
  392. package/lib/typescript/module/components/OptionSheet/OptionSheet.meta.d.ts +3 -0
  393. package/lib/typescript/module/components/PaymentResult/PaymentResult.meta.d.ts +3 -0
  394. package/lib/typescript/module/components/PermissionPrompt/PermissionPrompt.meta.d.ts +3 -0
  395. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.meta.d.ts +3 -0
  396. package/lib/typescript/module/components/PickerTrigger/PickerTrigger.meta.d.ts +3 -0
  397. package/lib/typescript/module/components/ProfileCompletion/ProfileCompletion.meta.d.ts +3 -0
  398. package/lib/typescript/module/components/ProfilePicker/ProfilePicker.meta.d.ts +3 -0
  399. package/lib/typescript/module/components/ProgressBar/ProgressBar.meta.d.ts +3 -0
  400. package/lib/typescript/module/components/ProgressRing/ProgressRing.meta.d.ts +3 -0
  401. package/lib/typescript/module/components/Radio/Radio.meta.d.ts +3 -0
  402. package/lib/typescript/module/components/Radio/RadioGroup.meta.d.ts +3 -0
  403. package/lib/typescript/module/components/Rating/Rating.meta.d.ts +3 -0
  404. package/lib/typescript/module/components/Repeater/Repeater.meta.d.ts +3 -0
  405. package/lib/typescript/module/components/RichTextEditor/RichTextEditor.meta.d.ts +3 -0
  406. package/lib/typescript/module/components/ScannerOverlay/ScannerOverlay.meta.d.ts +3 -0
  407. package/lib/typescript/module/components/Screen/Screen.meta.d.ts +3 -0
  408. package/lib/typescript/module/components/SearchBar/SearchBar.meta.d.ts +3 -0
  409. package/lib/typescript/module/components/SectionHeader/SectionHeader.meta.d.ts +3 -0
  410. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.meta.d.ts +3 -0
  411. package/lib/typescript/module/components/Select/Select.meta.d.ts +3 -0
  412. package/lib/typescript/module/components/SignaturePad/SignaturePad.meta.d.ts +3 -0
  413. package/lib/typescript/module/components/Skeleton/Skeleton.meta.d.ts +3 -0
  414. package/lib/typescript/module/components/Skeleton/SkeletonCircle.meta.d.ts +3 -0
  415. package/lib/typescript/module/components/Skeleton/SkeletonContent.meta.d.ts +3 -0
  416. package/lib/typescript/module/components/Skeleton/SkeletonList.meta.d.ts +3 -0
  417. package/lib/typescript/module/components/Skeleton/SkeletonText.meta.d.ts +3 -0
  418. package/lib/typescript/module/components/SlideToConfirm/SlideToConfirm.meta.d.ts +3 -0
  419. package/lib/typescript/module/components/Slider/Slider.meta.d.ts +3 -0
  420. package/lib/typescript/module/components/SliderField/SliderField.meta.d.ts +3 -0
  421. package/lib/typescript/module/components/Sparkline/Sparkline.meta.d.ts +3 -0
  422. package/lib/typescript/module/components/Spinner/Spinner.meta.d.ts +3 -0
  423. package/lib/typescript/module/components/SquircleView/SquircleView.meta.d.ts +2 -0
  424. package/lib/typescript/module/components/StatTile/StatTile.meta.d.ts +3 -0
  425. package/lib/typescript/module/components/StatusBadge/StatusBadge.meta.d.ts +3 -0
  426. package/lib/typescript/module/components/Stepper/Stepper.meta.d.ts +3 -0
  427. package/lib/typescript/module/components/Swipeable/Swipeable.meta.d.ts +3 -0
  428. package/lib/typescript/module/components/Switch/Switch.meta.d.ts +3 -0
  429. package/lib/typescript/module/components/Tabs/Tabs.meta.d.ts +3 -0
  430. package/lib/typescript/module/components/TagInput/TagInput.meta.d.ts +3 -0
  431. package/lib/typescript/module/components/Text/Text.meta.d.ts +3 -0
  432. package/lib/typescript/module/components/TimePicker/TimePicker.meta.d.ts +3 -0
  433. package/lib/typescript/module/components/Timeline/Timeline.meta.d.ts +3 -0
  434. package/lib/typescript/module/components/Toast/Toast.meta.d.ts +3 -0
  435. package/lib/typescript/module/components/Tooltip/Tooltip.meta.d.ts +3 -0
  436. package/lib/typescript/module/components/Tour/Tour.meta.d.ts +3 -0
  437. package/lib/typescript/module/components/TypingIndicator/TypingIndicator.meta.d.ts +3 -0
  438. package/lib/typescript/module/components/WheelPicker/WheelPickerColumns.meta.d.ts +3 -0
  439. package/lib/typescript/module/components/WheelPicker/WheelPickerDuration.meta.d.ts +3 -0
  440. package/lib/typescript/module/components/WheelPicker/WheelPickerList.meta.d.ts +3 -0
  441. package/lib/typescript/module/components/ZoomableImage/ZoomableImage.meta.d.ts +3 -0
  442. 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:"StatTile",marker:null,platforms:["phone"],acceptsChildren:!1,props:{label:{type:"string",required:!0,description:"What the figure measures, drawn small above it."},value:{type:"node",required:!0,description:"The figure is always given: text or a number is drawn in the heading style, a node as is."},icon:{type:"icon",description:"The leading icon in a tinted circle."},iconVariant:{type:"enum",values:["linear","bold","broken","bulk","outline","twotone"],description:"The Iconsax style of an icon given as a name."},tone:{type:"enum",values:["primary","secondary","success","warning","danger","info","neutral"],default:"primary",description:"The tone of the icon circle."},caption:{type:"node",description:"A small line under the figure, such as a period or a delta."},trend:{type:"object",description:"How the figure changed, drawn under it as an arrow, a sign and the change.",fields:{value:{type:"stringOrNumber",required:!0,description:"The change; a number is a percentage drawn without its own sign, a string is drawn as given."},direction:{type:"enum",values:["up","down","flat"],required:!0,description:"Which way the figure moved; flat draws a dash and no sign."},goodWhen:{type:"enum",values:["up","down"],default:"up",description:"Which direction is good news, so the change reads green or red."},period:{type:"string",description:"What the change is measured against, written in full, such as vs last month."}}},sparkline:{type:"node",description:"A small chart under the text, usually a Sparkline."},loading:{type:"boolean",default:!1,description:"Draws a placeholder of the same footprint while the figure loads."},accessibilityLabel:{type:"string",description:"Read instead of the label and figure."}},omit:[],examples:[{id:"StatTile.default",title:"Figure with an icon and caption",props:{label:"Open assessments",value:24,icon:"shield-tick",tone:"success",caption:"Up 3 since last week"}},{id:"StatTile.trendUp",title:"Trend that is good news",props:{label:"Open assessments",value:24,icon:"shield-tick",trend:{value:12.4,direction:"up",period:"vs last month"}}},{id:"StatTile.trendDown",title:"Falling figure that is good news",props:{label:"Overdue accounts",value:42,trend:{value:3.1,direction:"down",goodWhen:"down",period:"vs last month"}}},{id:"StatTile.loading",title:"Loading",props:{label:"Open assessments",value:24,icon:"shield-tick",loading:!0}}],usage:{when:["Show one headline figure with its label, such as a dashboard KPI.","Make the figure a button that opens its detail by giving it a press handler."],whenNot:[{text:"Several figures that belong together in rows of label and value.",instead:"Descriptions"}],do:[{note:"Write the label as what is measured and put the period in the caption or trend.",example:[{component:"StatTile",props:{label:"Revenue",value:"24k",icon:"shield-tick",trend:{value:12,direction:"up",period:"vs last month"}}}]},{note:"Set goodWhen on a trend where a falling figure is good news.",example:[{component:"StatTile",props:{label:"Bounce rate",value:"42%",trend:{value:2.1,direction:"down",goodWhen:"down",period:"vs last month"}}}]}],dont:[{note:"Do not rely on the trend colour alone; the arrow and sign already carry the direction.",example:[{component:"StatTile",props:{label:"Revenue vs last month",value:"24k",icon:"shield-tick",tone:"success",caption:"12%"}}]},{note:"Do not put long text in the value; it is cut to one line.",example:[{component:"StatTile",props:{label:"Bounce rate",value:"42% (down is good)",trend:{value:2.1,direction:"down",period:"vs last month"}}}]}],a11y:["A text figure is read as the label, the value and the trend, such as up 12.4% vs last month.","A node figure needs an accessibility label of its own."]}});
@@ -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:"StatusBadge",marker:null,platforms:["phone"],acceptsChildren:!1,props:{label:{type:"string",required:!0,description:"The status as the reader should see it, such as Active or Pending review."},tone:{type:"enum",values:["success","warning","danger","info","primary","neutral"],default:"neutral",description:"The semantic colour."},variant:{type:"enum",values:["soft","outline","solid"],default:"soft",description:"Soft is a light tint with a tone border, outline drops the fill, solid fills with the tone."},size:{type:"enum",values:["sm","md"],default:"md",description:"A 22 or 24 point pill."},dot:{type:"boolean",default:!1,description:"A small disc before the label in the status colour."},color:{type:"string",description:"A status colour of the app's own as six-digit hex, for a status the backend names with a colour; it wins over the tone."},loading:{type:"boolean",default:!1,description:"Draws the skeleton placeholder at the pill's footprint."},accessibilityLabel:{type:"string",description:"Read instead of the label."}},omit:[],examples:[{id:"StatusBadge.default",title:"Active with a dot",props:{label:"Active",tone:"success",dot:!0}},{id:"StatusBadge.pending",title:"Pending review",props:{label:"Pending review",tone:"warning"}},{id:"StatusBadge.rejected",title:"Rejected outline",props:{label:"Rejected",tone:"danger",variant:"outline"}},{id:"StatusBadge.archived",title:"Archived solid",props:{label:"Archived",tone:"neutral",variant:"solid",size:"sm"}}],usage:{when:["Name a record's status in a semantic colour, such as Active, Pending or Rejected."],whenNot:[{text:"A status the person taps, selects or closes.",instead:"Chip"},{text:"A count anchored to an icon.",instead:"Badge"}],do:[{note:"Map the app's status to a label and a tone in one place, and send unknown statuses to neutral.",example:[{component:"StatusBadge",props:{label:"Active",tone:"success"}}]},{note:"Keep the label short and in the reader's words.",example:[{component:"StatusBadge",props:{label:"Done",tone:"success"}}]}],dont:[{note:"Do not map an unknown status to the danger tone.",example:[{component:"StatusBadge",props:{label:"Unknown",tone:"danger"}}]},{note:"Do not rely on the tone alone to say the status; the label always says it.",example:[{component:"StatusBadge",props:{label:"Success",tone:"success"}}]}],a11y:["It reads as plain text with the label as its name, so the label must carry the status without colour.","Use accessibilityLabel only when the spoken form needs more than the 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:"Stepper",marker:null,platforms:["phone"],acceptsChildren:!1,props:{steps:{type:"array",required:!0,itemFields:{key:{type:"string",required:!0,description:"A stable id for the step."},label:{type:"string",required:!0,description:"The step's name as the reader sees it."},description:{type:"string",description:"A line under the label, drawn in the vertical variant."},icon:{type:"node",description:"An icon drawn in the step's circle in place of its number."}},description:"The steps in the order the person goes through them."},activeStep:{type:"number",nullable:!0,description:"The zero-based index of the current step, with every earlier step done; null or a negative number means none is active."},defaultActiveStep:{type:"number",nullable:!0,default:0,description:"The starting active step when activeStep is left out."},pressMode:{type:"enum",values:["none","back","select"],default:"none",description:"What a tap on a step does: nothing, returning to a done step, or choosing any step."},variant:{type:"enum",values:["horizontal","vertical","segmented"],default:"horizontal",description:"The layout: circles in a row, circles in a column with descriptions, or one bar per step."},tone:{type:"enum",values:["primary","success"],default:"primary",description:"The colour of the steps that are reached."},showCaption:{type:"boolean",default:!0,description:"Draws the caption above the bars in the segmented variant."},loading:{type:"boolean",default:!1,description:"Draws the skeleton placeholder in place of the stepper while its steps load."},accessibilityLabel:{type:"string",description:"The progressbar's screen reader name, replacing the progress summary."}},omit:["haptic"],examples:[{id:"Stepper.horizontal",title:"Checkout progress",props:{steps:[{key:"cart",label:"Cart"},{key:"shipping",label:"Shipping"},{key:"payment",label:"Payment"}],activeStep:1,variant:"horizontal"}},{id:"Stepper.vertical",title:"Vertical with descriptions",props:{steps:[{key:"account",label:"Account",description:"Create your login"},{key:"profile",label:"Profile",description:"Add your name and photo"},{key:"review",label:"Review",description:"Check and confirm"}],activeStep:1,variant:"vertical",tone:"success"}},{id:"Stepper.segmented",title:"Segmented caption",props:{steps:[{key:"details",label:"Details"},{key:"address",label:"Address"},{key:"payment",label:"Payment"}],activeStep:2,variant:"segmented",showCaption:!0}}],usage:{when:["A multi-step flow, such as checkout, sign-up or onboarding, where the person needs to see how far they have got.","A fixed sequence where every step before the active one is done and no step is skipped."],whenNot:[{text:"The sections can be opened in any order, with no sequence between them.",instead:"Tabs"}],do:[{note:"Pass the steps in the order the person goes through them, and set activeStep to the current step.",example:[{component:"Stepper",props:{steps:[{key:"cart",label:"Cart"},{key:"shipping",label:"Shipping"},{key:"payment",label:"Payment"}],activeStep:1}}]},{note:"Set pressMode to back so a person can return to a finished step and no further.",example:[{component:"Stepper",props:{steps:[{key:"cart",label:"Cart"},{key:"shipping",label:"Shipping"},{key:"payment",label:"Payment"}],activeStep:2,pressMode:"back"}}]}],dont:[{note:"Leave activeStep out and the stepper keeps its own position, so the page cannot show where the person really is.",example:[{component:"Stepper",props:{steps:[{key:"cart",label:"Cart"},{key:"shipping",label:"Shipping"},{key:"payment",label:"Payment"}]}}]},{note:"Set pressMode to select on a checkout only when jumping ahead is allowed, since it lets a person skip to steps they have not reached.",example:[{component:"Stepper",props:{steps:[{key:"cart",label:"Cart"},{key:"shipping",label:"Shipping"},{key:"payment",label:"Payment"}],activeStep:2,pressMode:"select"}}]}],a11y:["The stepper is a progressbar whose value is the number of steps reached, and each step reads its position, label and status.","A step that a tap can change is a button that reports whether it is selected and whether it is disabled."]}});
@@ -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:"Swipeable",marker:null,platforms:["phone"],acceptsChildren:!0,props:{threshold:{type:"number",default:80,description:"The distance in points that fully reveals the row of actions."},fullSwipeThreshold:{type:"number",default:200,description:"The distance in points past which the first action fires and the row slides away."},disabled:{type:"boolean",default:!1,description:"Turns the swipe off, so the row cannot be dragged."},accessibilityLabel:{type:"string",description:"Names the row for a screen reader."}},omit:["leftActions","rightActions","haptic"],examples:[{id:"Swipeable.basic",title:"Basic",props:{},children:"Swipe this row to reveal its actions."},{id:"Swipeable.wideThreshold",title:"Wide threshold",props:{threshold:120,fullSwipeThreshold:260},children:"The actions need a longer swipe to open."},{id:"Swipeable.disabled",title:"Disabled",props:{disabled:!0},children:"This row cannot be swiped."}],usage:{when:["A list row or card should offer quick actions, such as archive or delete, on a swipe.","The same actions must also stay reachable without a swipe, which the component exposes to screen readers."],whenNot:[{text:"The row always shows its actions on screen, with no swipe needed.",instead:"ListItem"}],do:[{note:"Wrap one list row so the swipe reveals actions for that row only.",example:[{component:"Swipeable",props:{accessibilityLabel:"Inbox"},children:[{component:"ListItem",props:{title:"Inbox",subtitle:"3 unread messages"}}]}]},{note:"Give the row an accessibilityLabel so a screen reader announces its name.",example:[{component:"Swipeable",props:{accessibilityLabel:"Sent message"},children:[{component:"Text",props:{variant:"body"},children:["Lunch is at noon today."]}]}]}],dont:[{note:"Do not wrap a whole list in one Swipeable; a swipe then moves every row together.",example:[{component:"Swipeable",props:{accessibilityLabel:"Inbox"},children:[{component:"ListItem",props:{title:"Inbox",subtitle:"3 unread messages"}},{component:"ListItem",props:{title:"Sent",subtitle:"12 messages"}}]}]},{note:"Do not leave the row unnamed; a screen reader then reads only its text.",example:[{component:"Swipeable",props:{},children:[{component:"Text",props:{variant:"body"},children:["Lunch is at noon today."]}]}]}],a11y:["Each swipe action is also a screen reader action on the row, so a swipe is never the only way to act.","Set accessibilityLabel so the row is named when a screen reader focuses 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:"Switch",marker:null,platforms:["phone"],acceptsChildren:!1,props:{value:{type:"boolean",description:"The controlled on or off state."},defaultValue:{type:"boolean",default:!1,description:"The starting state when value is left out."},disabled:{type:"boolean",default:!1,description:"Blocks the press and dims the control."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The track and thumb size."},tone:{type:"enum",values:["primary","success","warning","danger"],default:"primary",description:"The track colour when on."},label:{type:"node",description:"A string or a node drawn beside the control."},description:{type:"node",description:"A secondary line under the label."},error:{type:"node",description:"An error line under the label that also outlines the off track."},labelLines:{type:"number",description:"The lines the label and description may take before an ellipsis; no limit when left out."},layout:{type:"enum",values:["inline","row"],default:"inline",description:"Inline puts the text beside the control; row puts the text on the left and the control on the right, with the whole row pressable."},accessibilityLabel:{type:"string",description:"The screen reader name of the switch."},bounce:{type:"boolean",default:!1,description:"The thumb briefly scales up when the value changes."}},omit:["haptic","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","cancelable","delayHoverIn","delayHoverOut","delayLongPress","pressRetentionOffset","android_disableSound","android_ripple","testOnly_pressed","unstable_pressDelay"],examples:[{id:"Switch.default",title:"On with a label",props:{value:!0,label:"Push notifications"}},{id:"Switch.success",title:"Success tone, off",props:{value:!1,tone:"success",label:"Email updates"}},{id:"Switch.row",title:"Row layout with a description",props:{value:!0,layout:"row",label:"Notifications",description:"Alerts for new messages"}},{id:"Switch.disabled",title:"Disabled",props:{value:!1,disabled:!0,label:"Sync over mobile data"}}],usage:{when:["Turn a setting on or off where the change takes effect at once."],whenNot:[{text:"A choice that needs an explicit submit, such as a form field.",instead:"Checkbox"},{text:"Choosing one of several values.",instead:"SegmentedControl"}],do:[{note:"Label it with what turns on, not with the word on.",example:[{component:"Switch",props:{value:!0,label:"Airplane mode"}}]},{note:"Use the row layout for a settings list so the whole row is the target.",example:[{component:"Switch",props:{value:!0,layout:"row",label:"Wi-Fi",description:"Connect to available networks"}}]}],dont:[{note:"Do not use it to submit or confirm something.",example:[{component:"Switch",props:{value:!1,label:"Confirm payment"}}]},{note:"Do not use the danger tone for a normal setting.",example:[{component:"Switch",props:{value:!0,tone:"danger",label:"Dark mode"}}]}],a11y:["A node label needs an accessibilityLabel, since a screen reader cannot read the node.","The control reads as a switch with its state, so the label must name what it controls."]}});
@@ -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:"Tabs",marker:null,platforms:["phone"],acceptsChildren:!1,props:{tabs:{type:"array",required:!0,description:"The tabs in order.",itemFields:{key:{type:"string",required:!0,description:"The tab's stable identifier."},label:{type:"string",required:!0,description:"The tab's text."},icon:{type:"icon",description:"A leading icon drawn in the label colour."},badge:{type:"stringOrNumber",description:"A count or text drawn after the label."},disabled:{type:"boolean",description:"Blocks the tab."}}},activeKey:{type:"string",required:!0,description:"The key of the selected tab."},variant:{type:"enum",values:["underline","pills","segmented"],default:"underline",description:"A sliding underline, a tinted pill, or a filled track with a thumb."},radius:{type:"enumOrNumber",values:["none","sm","md","lg","xl","pill"],description:"The corner radius of the track, pill or underline ends."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"Scales the text, tab padding and icon together."},scrollable:{type:"boolean",default:!1,description:"Scrolls a long tab list sideways instead of sharing the width equally."},align:{type:"enum",values:["left","center"],default:"left",description:"The tab alignment when the list is not scrollable."},accessibilityLabel:{type:"string",description:"The screen reader name of the tab list."}},omit:["haptic","progress"],examples:[{id:"Tabs.default",title:"Underline with icons",props:{tabs:[{key:"home",label:"Home",icon:"home"},{key:"feed",label:"Feed",icon:"activity"},{key:"team",label:"Team",icon:"people"},{key:"alerts",label:"Alerts",icon:"notification"}],activeKey:"home"}},{id:"Tabs.pills",title:"Pills",props:{variant:"pills",tabs:[{key:"home",label:"Home"},{key:"feed",label:"Feed"},{key:"team",label:"Team"},{key:"alerts",label:"Alerts"}],activeKey:"feed"}},{id:"Tabs.segmented",title:"Segmented with a large radius",props:{variant:"segmented",radius:"lg",tabs:[{key:"home",label:"Home"},{key:"feed",label:"Feed"},{key:"team",label:"Team"}],activeKey:"home"}},{id:"Tabs.badges",title:"Badges and a disabled tab",props:{tabs:[{key:"inbox",label:"Inbox",badge:3},{key:"sent",label:"Sent"},{key:"drafts",label:"Drafts",badge:12},{key:"archived",label:"Archived",disabled:!0}],activeKey:"inbox"}}],usage:{when:["Switch between sections of one screen, such as Overview, Activity and Team.","Show a long list of sections that scrolls sideways."],whenNot:[{text:"Choosing a value, such as a filter or a unit.",instead:"SegmentedControl"},{text:"An ordered flow where completion state matters.",instead:"Stepper"}],do:[{note:"Keep labels to one or two words so every tab fits.",example:[{component:"Tabs",props:{tabs:[{key:"home",label:"Home"},{key:"feed",label:"Feed"},{key:"team",label:"Team"}],activeKey:"home"}}]},{note:"Use scrollable when the labels no longer fit the width.",example:[{component:"Tabs",props:{scrollable:!0,tabs:[{key:"overview",label:"Overview"},{key:"activity",label:"Activity"},{key:"team",label:"Team"},{key:"settings",label:"Settings"},{key:"profile",label:"Profile"}],activeKey:"overview"}}]}],dont:[{note:"Do not nest tab bars.",example:[{component:"Tabs",props:{tabs:[{key:"main",label:"Main"},{key:"sub",label:"Sub"}],activeKey:"main"}}]},{note:"Do not use more than five tabs without scrolling.",example:[{component:"Tabs",props:{tabs:[{key:"home",label:"Home"},{key:"feed",label:"Feed"},{key:"team",label:"Team"},{key:"settings",label:"Settings"},{key:"profile",label:"Profile"},{key:"help",label:"Help"}],activeKey:"home"}}]}],a11y:["The bar reads as a tab list and each tab as a tab with its selected state, so keep labels meaningful.","A disabled tab is announced as unavailable; do not hide a section behind one without saying why."]}});
@@ -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:"TagInput",marker:null,platforms:["phone"],acceptsChildren:!1,props:{value:{type:"array",description:"The controlled list of tags."},defaultValue:{type:"array",default:[],description:"The starting tags when value is left out."},placeholder:{type:"string",description:"The hint shown while the field is empty."},label:{type:"string",description:"The label above the field."},helperText:{type:"string",description:"A message below the field."},error:{type:"node",description:"A string or node that puts the field in the error state and replaces the helper text."},required:{type:"boolean",description:"Adds the required marker to the label."},disabled:{type:"boolean",default:!1,description:"Keeps the tags visible but blocks adding and removing."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The field size."},variant:{type:"enum",values:["outlined","filled","underline"],default:"outlined",description:"The resting fill and border treatment."},maxTags:{type:"number",description:"Rejects a tag past this count; unlimited when left out."},unique:{type:"boolean",default:!0,description:"Rejects a tag that already exists, ignoring case."},separators:{type:"array",default:[","],description:"The characters that commit the draft as a tag."}},omit:["haptic"],examples:[{id:"TagInput.default",title:"Skills",props:{label:"Skills",placeholder:"Add a skill",value:["React Native","TypeScript"]}},{id:"TagInput.limited",title:"Limited to three tags",props:{label:"Skills",value:["React Native","TypeScript"],maxTags:3,helperText:"Add up to three skills."}},{id:"TagInput.error",title:"Error state",props:{label:"Recipients",value:["asha@example.com"],error:"Enter a valid email address."}},{id:"TagInput.filled",title:"Filled and small",props:{label:"Skills",placeholder:"Add a skill",variant:"filled",size:"sm",value:[]}}],usage:{when:["Collect a small set of discrete values, such as skills, recipients or filters."],whenNot:[{text:"One free-text value.",instead:"Input"},{text:"A closed, known list of choices.",instead:"Select"}],do:[{note:"Say how a tag is committed in the helper text, such as Press comma to add.",example:[{component:"TagInput",props:{label:"Skills",value:["React Native","TypeScript"],helperText:"Press comma to add."}}]},{note:"Set maxTags when the list has a natural limit.",example:[{component:"TagInput",props:{label:"Skills",value:["React Native"],maxTags:3,helperText:"Add up to three skills."}}]}],dont:[{note:"Do not use it for a long list; the tags wrap and push the form down.",example:[{component:"TagInput",props:{label:"Tags",placeholder:"Add tags",value:[]}}]},{note:"Do not rely on the error colour alone; write the error text.",example:[{component:"TagInput",props:{label:"Skills",value:["React Native"],error:""}}]}],a11y:["The label names the field, so always give one.","Backspace on an empty draft removes the last tag, and a pending draft commits when the field loses focus."]}});
@@ -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:"Text",marker:null,platforms:["phone"],acceptsChildren:!0,props:{variant:{type:"enum",values:["display","h1","h2","h3","title","body","bodySmall","caption","label","overline"],default:"body",description:"The built-in typography variant; unknown names fall back to body."},color:{type:"string",description:"Text colour: a theme role such as primary or danger, or a raw colour string."},weight:{type:"enum",values:["normal","medium","semibold","bold"],description:"The font weight override."},size:{type:"stringOrNumber",description:"The text size: a theme step name or a pixel number."},align:{type:"enum",values:["left","center","right","justify","auto"],description:"The text alignment."},italic:{type:"boolean",default:!1,description:"Draws the text in italics."},underline:{type:"boolean",default:!1,description:"Draws a line under the text."},numberOfLines:{type:"number",description:"Cuts the text to this many lines, ending with an ellipsis."}},omit:["accessibilityActions","accessibilityElementsHidden","accessibilityHint","accessibilityIgnoresInvertColors","accessibilityLabel","accessibilityLabelledBy","accessibilityLanguage","accessibilityLargeContentTitle","accessibilityLiveRegion","accessibilityRespondsToUserInteraction","accessibilityRole","accessibilityShowsLargeContentViewer","accessibilityState","accessibilityValue","accessibilityViewIsModal","accessible","adjustsFontSizeToFit","allowFontScaling","android_hyphenationFrequency","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","dataDetectorType","disabled","dynamicTypeRamp","ellipsizeMode","id","importantForAccessibility","lineBreakMode","lineBreakStrategyIOS","maxFontSizeMultiplier","minimumFontScale","nativeID","pointerEvents","pressRetentionOffset","role","screenReaderFocusable","selectable","selectionColor","suppressHighlighting","textBreakStrategy"],examples:[{id:"Text.body",title:"Body text",props:{variant:"body"},children:"A plain paragraph in the body style."},{id:"Text.heading",title:"Heading",props:{variant:"h2",color:"primary"},children:"A large heading."},{id:"Text.styled",title:"Styled",props:{variant:"label",underline:!0,italic:!0},children:"Underlined and italic label."}],usage:{when:["Any readable text: headings, paragraphs, labels, captions or links rendered as text."],whenNot:[{text:"A button or interactive action.",instead:"Button"},{text:"A multi-line selectable input.",instead:"Input"}],do:[{note:"Pick the variant that matches the text's role in the design.",example:[{component:"Text",props:{variant:"body"},children:["A plain paragraph."]}]},{note:"Use italic and underline only for emphasis, not for layout.",example:[{component:"Text",props:{variant:"body",italic:!0},children:["Note: this is optional."]}]}],dont:[{note:"Do not use a heading variant for body copy.",example:[{component:"Text",props:{variant:"h1"},children:["A plain paragraph."]}]},{note:"Do not underline text to fake a link or action.",example:[{component:"Text",props:{variant:"body",underline:!0},children:["Click here."]}]}],a11y:["Set accessibilityLabel when the visible text does not describe the purpose.","Colour should reinforce, not replace, the meaning carried by the 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:"TimePicker",marker:null,platforms:["phone"],acceptsChildren:!1,props:{visible:{type:"boolean",description:"Controlled-modal visibility; leave out and the component shows a field and opens its own sheet."},value:{type:"object",description:"The selected time.",fields:{hour:{type:"number",required:!0,description:"The hour 0 to 23 in 24 hour form."},minute:{type:"number",required:!0,description:"The minute 0 to 59."}}},format:{type:"enum",values:["12h","24h"],default:"12h",description:"Wheel labelling and whether an AM or PM wheel shows."},minuteStep:{type:"enum",values:[1,5,15,30],default:1,description:"Minute wheel step."},title:{type:"string",default:"Select Time",description:"Sheet header text."},confirmLabel:{type:"string",default:"Confirm",description:"Confirm button label."},cancelLabel:{type:"string",default:"Cancel",description:"Cancel button label."},label:{type:"string",description:"Field label (field mode)."},placeholder:{type:"string",description:"Text shown while no time is chosen."},helperText:{type:"string",description:"Text under the field."},error:{type:"node",description:"Error text under the field."},required:{type:"boolean",description:"Marks the field as required."},disabled:{type:"boolean",description:"Blocks opening the sheet."},size:{type:"enum",values:["sm","md","lg"],description:"Field size."},variant:{type:"enum",values:["outlined","filled","underline"],description:"Field look; the theme setting decides when it is left out."},clearable:{type:"boolean",description:"Shows a clear control once a time is set."}},omit:["haptic"],examples:[{id:"TimePicker.default",title:"Default",props:{label:"Start time",placeholder:"Pick a time",value:{hour:9,minute:30}}},{id:"TimePicker.format24h",title:"24 hour with quarter steps",props:{label:"Meeting at",format:"24h",minuteStep:15,value:{hour:14,minute:45}}},{id:"TimePicker.empty",title:"Empty with helper",props:{label:"Reminder time",placeholder:"Pick a time",helperText:"We remind you at this time every day.",clearable:!0}},{id:"TimePicker.error",title:"Error",props:{label:"Start time",variant:"filled",error:"Choose a start time",required:!0}}],usage:{when:["Ask for a time of day, such as a start time or a reminder.","The value is an hour and a minute, not a duration."],whenNot:[{text:"A length of time in hours and minutes.",instead:"WheelPickerDuration"},{text:"A date, or a date with a time.",instead:"DatePicker"}],do:[{note:"Add a visible label that says which time is wanted.",example:[{component:"TimePicker",props:{label:"Start time",placeholder:"Pick a time"}}]},{note:"Set minuteStep to 15 for scheduling flows.",example:[{component:"TimePicker",props:{label:"Meeting time",minuteStep:15}}]}],dont:[{note:"Do not leave the field without a label.",example:[{component:"TimePicker",props:{placeholder:"Pick a time"}}]},{note:"Do not use it for a duration such as 90 minutes.",example:[{component:"TimePicker",props:{label:"Meeting duration",minuteStep:15}}]}],a11y:["Each wheel can be adjusted with a screen reader swipe; keep the title short and clear.","Keep error text short and say how to fix the time."]}});
@@ -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:"Timeline",marker:null,platforms:["phone"],acceptsChildren:!1,props:{items:{type:"array",required:!0,description:"The entries in order, first step or oldest first.",itemFields:{title:{type:"string",required:!0,description:"The entry headline."},description:{type:"string",description:"Supporting sentence under the meta line."},meta:{type:"string",description:"A timestamp, an actor or another metadata line under the title."},status:{type:"enum",values:["upcoming","current","done","onHold","rejected","cancelled","skipped"],description:"Drives the dot colour on the progress variant; a feed shows every entry as done when it is left out."},color:{type:"string",description:"Overrides the dot colour for a stage no status produces; the halo follows it."},icon:{type:"node",description:"Replaces the dot and its halo."},children:{type:"node",description:"Content below the text block."}}},variant:{type:"enum",values:["feed","progress"],default:"feed",description:"Feed is an audit trail, progress is a status tracker."},orientation:{type:"enum",values:["vertical","horizontal"],default:"vertical",description:"Vertical stacks entries beside a rail, horizontal gives each entry an equal column."}},omit:[],examples:[{id:"Timeline.default",title:"Feed",props:{variant:"feed",items:[{title:"Raised",meta:"12 Aug, 9:04 am"},{title:"Reviewed",meta:"12 Aug, 10:12 am"},{title:"Approved",meta:"12 Aug, 11:20 am"}]}},{id:"Timeline.progress",title:"Progress tracker",props:{variant:"progress",items:[{title:"Requirement raised",status:"done"},{title:"Estimation",status:"done"},{title:"Client sign-off",status:"current"},{title:"Development",status:"upcoming"}]}},{id:"Timeline.horizontal",title:"Horizontal progress",props:{variant:"progress",orientation:"horizontal",items:[{title:"Raised",status:"done"},{title:"Estimate",status:"done"},{title:"Sign-off",status:"onHold"},{title:"Build",status:"upcoming"}]}},{id:"Timeline.terminal",title:"Rejected ending",props:{variant:"progress",items:[{title:"Submitted",status:"done"},{title:"Reviewed",status:"done"},{title:"Declined",status:"rejected",description:"The amount is above the approved limit."}]}}],usage:{when:["Show what has happened to a record, such as a sign-off or order history.","Track a record through stages where an entry can end in a terminal status."],whenNot:[{text:"A linear flow where the only question is which step the person is on.",instead:"Stepper"}],do:[{note:"Give every entry a short title and put the time or actor in meta.",example:[{component:"Timeline",props:{variant:"feed",items:[{title:"Raised",meta:"12 Aug, 9:04 am"},{title:"Approved",meta:"12 Aug, 11:20 am"}]}}]},{note:"Use status on the progress variant so each stage reads at a glance.",example:[{component:"Timeline",props:{variant:"progress",items:[{title:"Requirement raised",status:"done"},{title:"Client sign-off",status:"current"},{title:"Development",status:"upcoming"}]}}]}],dont:[{note:"Do not put long paragraphs in a title; use description for the detail.",example:[{component:"Timeline",props:{variant:"feed",items:[{title:"The requirement was raised by the client and requires review before it can move to the next stage",description:"Requires review."}]}}]},{note:"Do not rely on dot colour alone to carry the meaning; keep the title clear.",example:[{component:"Timeline",props:{variant:"progress",items:[{title:"Step one",color:"green"},{title:"Step two",color:"red"}]}}]}],a11y:["Each entry reads as its title, meta and description in order, so keep that text complete without the dot colour.","A custom icon replaces the status dot, so say the status in the title or description."]}});
@@ -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:"Toast",marker:null,platforms:["phone"],acceptsChildren:!1,props:{toast:{type:"object",required:!0,description:"The message the toast shows.",fields:{id:{type:"string",required:!0,description:"Names the toast; the host uses it to dismiss and replace."},message:{type:"string",required:!0,description:"The toast headline."},description:{type:"string",description:"Supporting line under the message."},variant:{type:"enum",values:["default","success","danger","warning","info"],default:"default",description:"Icon and tint of the toast."},position:{type:"enum",values:["top","bottom"],default:"bottom",description:"Edge the toast sits at."},duration:{type:"number",default:3e3,description:"Milliseconds before it dismisses itself; 0 keeps it until dismissed."},action:{type:"object",description:"Trailing action on the toast.",fields:{label:{type:"string",required:!0,description:"The trailing action text."}}},icon:{type:"node",description:"Replaces the leading variant icon."},countdown:{type:"boolean",description:"Draws a bar along the bottom edge that empties over the duration."}}}},omit:["index","shownAt","runtime"],examples:[{id:"Toast.default",title:"Success",props:{toast:{id:"toast-1",message:"Profile saved",description:"Your changes are live.",variant:"success",position:"bottom"}}},{id:"Toast.danger",title:"Danger",props:{toast:{id:"toast-2",message:"Could not save",description:"Check your connection and try again.",variant:"danger"}}},{id:"Toast.top",title:"Info at the top",props:{toast:{id:"toast-3",message:"New message from Asha",variant:"info",position:"top"}}},{id:"Toast.countdown",title:"Warning with countdown",props:{toast:{id:"toast-4",message:"Session ends soon",variant:"warning",duration:6e3,countdown:!0}}}],usage:{when:["Confirm a quick result without stopping the person, such as a save or a copy.","Report a background failure the person does not need to answer right now."],whenNot:[{text:"A message the person must read before going on.",instead:"Dialog"},{text:"A message that belongs to one part of the screen and stays there.",instead:"Banner"}],do:[{note:"Keep the message to a short phrase and use description for the detail.",example:[{component:"Toast",props:{toast:{id:"do-1",message:"Profile saved",description:"Your changes are now live for everyone to see."}}}]},{note:"Pick the variant that matches the outcome: success, danger, warning or info.",example:[{component:"Toast",props:{toast:{id:"do-2",message:"Connection lost",variant:"danger"}}}]}],dont:[{note:"Do not put the only way to finish a task in a toast action; it disappears.",example:[{component:"Toast",props:{toast:{id:"dont-1",message:"Draft saved",action:{label:"Publish"}}}}]},{note:"Do not stack many toasts at once; the host keeps three.",example:[{component:"Toast",props:{toast:{id:"dont-2a",message:"File uploaded"}}},{component:"Toast",props:{toast:{id:"dont-2b",message:"Profile saved"}}},{component:"Toast",props:{toast:{id:"dont-2c",message:"Message sent"}}}]}],a11y:["A toast with an action stays longer when a screen reader is on; keep its text complete without the icon.","Do not rely on the tint alone; the message must say what happened."]}});
@@ -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:"Tooltip",marker:null,platforms:["phone"],acceptsChildren:!0,props:{content:{type:"node",required:!0,description:"The tooltip body; a string uses the default text styling."},variant:{type:"enum",values:["plain","rich"],default:"plain",description:"Plain is a short dark hint; rich is a light card with a title, the content and one action."},title:{type:"string",description:"Rich only: one line over the content."},action:{type:"object",fields:{label:{type:"string",required:!0,description:"The button text."},accessibilityLabel:{type:"string",description:"Replaces the button text for a screen reader."}},description:"Rich only: one text button."},placement:{type:"enum",values:["top","bottom","left","right","auto"],default:"auto",description:"Where the bubble sits; auto picks the side with the most room, and left and right read as auto on a rich tooltip."},trigger:{type:"enum",values:["longPress","press","manual"],description:"What opens the tooltip; manual follows `visible`."},visible:{type:"boolean",description:"Controls the tooltip when the trigger is manual."},hideOnContentPress:{type:"boolean",default:!0,description:"Tapping the bubble dismisses it."},maxWidth:{type:"number",description:"Widest the bubble grows, in points; 240 plain, 280 rich when left out."},showArrow:{type:"boolean",default:!0,description:"Draws the caret toward the trigger."},accessibilityLabel:{type:"string",description:"Screen reader name of the tooltip."},closeLabel:{type:"string",default:"Close tooltip",description:"Screen reader name of the tap-outside area."}},omit:[],examples:[{id:"Tooltip.default",title:"Plain hint",props:{content:"Long-press to see the full name."},children:"Long-press me"},{id:"Tooltip.rich",title:"Rich with title",props:{variant:"rich",title:"Earned leave",content:"Leave you build up each month and can carry forward."},children:"Earned leave"},{id:"Tooltip.placementBottom",title:"Below the trigger",props:{content:"Opens below the button.",placement:"bottom",trigger:"press"},children:"Press me"},{id:"Tooltip.manual",title:"Open by visible",props:{content:"Shown because visible is true.",trigger:"manual",visible:!0,showArrow:!1},children:"Info"}],usage:{when:["Explain an icon-only button or a shortened label on demand.","Give a short secondary explanation that should not take space until asked for."],whenNot:[{text:"Content with inputs, a list or more than one action.",instead:"BottomSheet"},{text:"A hint every person needs to read.",instead:"Banner"}],do:[{note:"Keep plain tooltips to one short line.",example:[{component:"Tooltip",props:{content:"Long-press to see more",variant:"plain",placement:"auto",trigger:"press"},children:"Show details"}]},{note:"Use the rich variant when the hint needs a title or one action.",example:[{component:"Tooltip",props:{content:"An action that deletes this item",variant:"rich",title:"Delete item",action:{label:"Delete"},placement:"bottom",trigger:"press"},children:"Delete"}]}],dont:[{note:"Do not put the only copy of important information in a tooltip.",example:[{component:"Tooltip",props:{content:"Your payment has failed. Please contact support at support@example.com to resolve this.",variant:"plain",placement:"auto",trigger:"press"},children:"View payment status"}]},{note:"Do not wrap a trigger that already has its own context menu in a long-press tooltip.",example:[{component:"Tooltip",props:{content:"Edit this record",placement:"auto",trigger:"longPress"},children:"Menu button"}]}],a11y:["A rich tooltip moves screen reader focus into itself and back on close; keep its title and content short.","Set accessibilityLabel when the content is a node with no readable 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:"Tour",marker:null,platforms:["phone"],acceptsChildren:!1,props:{tourId:{type:"string",required:!0,description:"Names the tour in the seen store."},visible:{type:"boolean",required:!0,description:"Runs the tour while true."},labels:{type:"object",description:"Button texts of the step card.",fields:{back:{type:"string",description:"Back button text.",default:"Back"},next:{type:"string",description:"Next button text.",default:"Next"},skip:{type:"string",description:"Skip button text.",default:"Skip"},done:{type:"string",description:"Done button text.",default:"Done"}}}},omit:["steps","seenStore","haptic"],examples:[{id:"Tour.default",title:"Walkthrough open",props:{tourId:"showcase-tour",visible:!0}},{id:"Tour.labels",title:"Custom button texts",props:{tourId:"orders-tour",visible:!0,labels:{back:"Previous",next:"Continue",skip:"Not now",done:"Finish"}}}],usage:{when:["Introduce a screen to a first time visitor, one highlighted view at a time.","Point at views the person might miss after a release adds a feature."],whenNot:[{text:"Help that must stay on screen while the person works.",instead:"Banner"},{text:"A hint for one control, shown on demand.",instead:"Tooltip"}],do:[{note:"Keep each step to one view and one or two sentences.",example:[{component:"Tour",props:{tourId:"feature-tour",visible:!0}}]},{note:"Give the tour a stable tourId so it shows once per person.",example:[{component:"Tour",props:{tourId:"onboarding-tour",visible:!0}}]}],dont:[{note:"Do not start a tour on every launch.",example:[{component:"Tour",props:{tourId:"launch-tour",visible:!0}}]},{note:"Do not point a step at a view that may be off screen; it is skipped.",example:[{component:"Tour",props:{tourId:"offscreen-tour",visible:!0}}]}],a11y:["The step card is read like a dialog; keep titles and descriptions complete on their own.","Skip stays available on every step and by the Android back 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:"TypingIndicator",marker:null,platforms:["phone"],acceptsChildren:!1,props:{label:{description:'Line shown beside the dots and read by screen readers, such as "Asha is typing".',type:"string"},accessibilityLabel:{description:"Screen reader name when there is no visible label.",type:"string",default:"Typing"},bubble:{description:"Draws the dots inside a received message bubble.",type:"boolean",default:!0}},omit:[],examples:[{id:"TypingIndicator.default",title:"With a label",props:{label:"Asha is typing"}},{id:"TypingIndicator.dotsOnly",title:"Dots only",props:{accessibilityLabel:"Asha is typing"}},{id:"TypingIndicator.noBubble",title:"Without a bubble",props:{label:"Asha is typing",bubble:!1}}],usage:{when:["Show that the other person is writing a reply at the foot of a conversation."],whenNot:[{text:"Waiting for a request or a screen to load.",instead:"Spinner"}],do:[{note:"Put it in the typing slot of the message list so it sits under the newest message.",example:[{component:"MessageBubble",props:{side:"mine",text:"Are you free to talk?"}},{component:"TypingIndicator",props:{label:"Asha is typing"}}]},{note:"Name who is typing in the label when more than one person can write.",example:[{component:"TypingIndicator",props:{label:"Asha is typing"}}]}],dont:[{note:"Do not leave it on screen after the reply arrives.",example:[{component:"MessageBubble",props:{side:"mine",text:"Are you free to talk?"}},{component:"MessageBubble",props:{side:"theirs",text:"Yes I am free to talk."}},{component:"TypingIndicator",props:{label:"Asha is typing"}}]},{note:"Do not use it as a general loading signal.",example:[{component:"TypingIndicator",props:{label:"Loading data"}}]}],a11y:["It is not announced when it appears; a person hears the reply when it arrives.","Set accessibilityLabel when there is no visible label so the dots still have a 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:"WheelPickerColumns",component:"WheelPicker",fixedProps:{mode:"columns"},platforms:["phone"],acceptsChildren:!1,marker:null,props:{columns:{type:"array",required:!0,description:"Several wheels side by side.",itemFields:{key:{type:"string",required:!0,description:"Names the column."},label:{type:"string",required:!0,description:"The column name for a screen reader."},items:{type:"array",required:!0,description:"The rows.",itemFields:{value:{type:"stringOrNumber",required:!0,description:"The value returned when this row is selected."},label:{type:"string",required:!0,description:"The text displayed for this row."},accessibilityLabel:{type:"string",description:"The spoken text for a screen reader."}}},value:{type:"stringOrNumber",required:!0,description:"The selected item's value."},width:{type:"number",description:"Fixed width in points, 64 when left out."},separator:{type:"string",description:'Text drawn after the column such as ":".'},unit:{type:"string",description:"Small label beside the selected row."},gapAfter:{type:"number",description:"Empty space after the column in points."}}},disabled:{type:"boolean",default:!1,description:"Locks scrolling and dims the wheels."}},omit:["haptic"],examples:[{id:"WheelPickerColumns.default",title:"Colour and size",props:{columns:[{key:"colour",label:"Colour",value:"Blue",width:112,items:[{value:"Red",label:"Red"},{value:"Green",label:"Green"},{value:"Blue",label:"Blue"},{value:"Black",label:"Black"}]},{key:"size",label:"Size",value:"M",items:[{value:"S",label:"S"},{value:"M",label:"M"},{value:"L",label:"L"},{value:"XL",label:"XL"}]}]}},{id:"WheelPickerColumns.disabled",title:"Locked",props:{columns:[{key:"size",label:"Size",value:"L",items:[{value:"S",label:"S"},{value:"M",label:"M"},{value:"L",label:"L"}]}],disabled:!0}}],usage:{when:["Choose from a short ordered set on each of several wheels, such as colour and size."],whenNot:[{text:"One value from a long or searchable list.",instead:"Select"},{text:"A time of day.",instead:"TimePicker"}],do:[{note:"Give every column a label so a screen reader names it.",example:[{component:"WheelPickerColumns",props:{columns:[{key:"colour",label:"Colour",value:"Blue",items:[{value:"Red",label:"Red"},{value:"Blue",label:"Blue"}]}]}}]}],dont:[{note:"Do not put more than a handful of rows on a wheel; people cannot scan a long one.",example:[{component:"WheelPickerColumns",props:{columns:[{key:"month",label:"Month",value:"January",items:[{value:"Jan",label:"January"},{value:"Feb",label:"February"},{value:"Mar",label:"March"},{value:"Apr",label:"April"},{value:"May",label:"May"},{value:"Jun",label:"June"},{value:"Jul",label:"July"},{value:"Aug",label:"August"},{value:"Sep",label:"September"},{value:"Oct",label:"October"},{value:"Nov",label:"November"},{value:"Dec",label:"December"}]}]}}]}],a11y:["Each wheel is an adjustable control: swipe up or down to move one row; keep row text short and complete."]}});
@@ -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:"WheelPickerDuration",component:"WheelPicker",fixedProps:{mode:"duration"},platforms:["phone"],acceptsChildren:!1,marker:null,props:{value:{type:"number",required:!0,description:"The duration as whole minutes."},minuteStep:{type:"enum",values:[1,5,15,30],default:1,description:"Minute wheel step."},maxMinutes:{type:"number",default:1439,description:"Longest duration in minutes."},presets:{type:"array",description:"Durations in minutes shown as chips under the wheel; each must be a whole number of minutes from 0 to maxMinutes in steps of minuteStep."},labels:{type:"object",description:"Custom labels for the hour and minute wheels and units.",fields:{hours:{type:"string",default:"Hours",description:"Label for the hours column."},minutes:{type:"string",default:"Minutes",description:"Label for the minutes column."},hourUnit:{type:"string",default:"hr",description:"Unit shown next to the selected hour."},minuteUnit:{type:"string",default:"min",description:"Unit shown next to the selected minute."}}},disabled:{type:"boolean",default:!1,description:"Locks scrolling and dims the wheels."}},omit:["haptic"],examples:[{id:"WheelPickerDuration.default",title:"Ninety minutes",props:{value:90,minuteStep:5,maxMinutes:1439}},{id:"WheelPickerDuration.presets",title:"With presets",props:{value:30,minuteStep:15,presets:[15,30,45,60,90]}},{id:"WheelPickerDuration.capped",title:"Capped at eight hours",props:{value:120,minuteStep:30,maxMinutes:480}}],usage:{when:["Ask for a length of time in hours and minutes, up to 23 h 59 min."],whenNot:[{text:"A time of day.",instead:"TimePicker"}],do:[{note:"Offer presets for the durations people pick most.",example:[{component:"WheelPickerDuration",props:{value:30,minuteStep:15,presets:[15,30,45,60]}}]},{note:"Choose minuteStep to match how the duration is used, such as 15 for bookings.",example:[{component:"WheelPickerDuration",props:{value:60,minuteStep:15}}]}],dont:[{note:"Do not set a preset that is off the minute step or above maxMinutes; the picker throws.",example:[{component:"WheelPickerDuration",props:{value:30,minuteStep:15,presets:[15,20,45,60]}}]},{note:"Do not use a 1 minute step for bookings that only need 15 minute blocks.",example:[{component:"WheelPickerDuration",props:{value:60,minuteStep:1}}]}],a11y:["The value is spoken in words, such as 2 hours; keep labels in the person's language."]}});
@@ -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:"WheelPickerList",component:"WheelPicker",fixedProps:{mode:"list"},platforms:["phone"],acceptsChildren:!1,marker:null,props:{items:{type:"array",required:!0,description:"The choices on one wheel. Plain strings and numbers are also accepted by the component and are not shown in the kit.",itemFields:{value:{type:"stringOrNumber",required:!0,description:"The value returned when this row is selected."},label:{type:"string",required:!0,description:"The text displayed for this row."},accessibilityLabel:{type:"string",description:"The spoken text for a screen reader."}}},value:{type:"stringOrNumber",description:"The selected item's value."},label:{type:"string",default:"Value",description:"Names the wheel for a screen reader."},width:{type:"number",description:"Fixed width in points; the wheel fills the row when left out."},disabled:{type:"boolean",default:!1,description:"Locks scrolling and dims the wheels."}},omit:["haptic"],examples:[{id:"WheelPickerList.default",title:"Repeat",props:{label:"Repeat",value:"Weekly",items:[{value:"Daily",label:"Daily"},{value:"Weekly",label:"Weekly"},{value:"Monthly",label:"Monthly"},{value:"Yearly",label:"Yearly"}]}},{id:"WheelPickerList.numbers",title:"Numbers",props:{label:"Quantity",value:2,width:120,items:[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"}]}}],usage:{when:["Choose one value from a short ordered list, such as a repeat interval."],whenNot:[{text:"A list of more than about a dozen choices, or one that needs search.",instead:"Select"}],do:[{note:"Set label so a screen reader says what the wheel chooses.",example:[{component:"WheelPickerList",props:{label:"Repeat",value:"Weekly",items:[{value:"Daily",label:"Daily"},{value:"Weekly",label:"Weekly"},{value:"Monthly",label:"Monthly"},{value:"Yearly",label:"Yearly"}]}}]}],dont:[{note:"Do not use a wheel for choices that have no natural order.",example:[{component:"WheelPickerList",props:{label:"Colors",value:"Blue",items:[{value:"Red",label:"Red"},{value:"Blue",label:"Blue"},{value:"Green",label:"Green"},{value:"Yellow",label:"Yellow"}]}}]}],a11y:["The wheel is adjustable by swipe; the chosen row is spoken with its accessibilityLabel when it has one."]}});
@@ -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:"ZoomableImage",marker:null,platforms:["phone"],acceptsChildren:!0,props:{maxScale:{type:"number",default:4,description:"Upper limit of pinch and double tap zoom."},minScale:{type:"number",default:1,description:"Lower limit of pinch zoom; the resting scale a pinch springs back to."},doubleTapScale:{type:"number",default:2,description:"Scale a double tap zooms to; a second double tap returns to normal."},disabled:{type:"boolean",default:!1,description:"Blocks pinch, pan and double tap and resets any zoom."},accessibilityLabel:{type:"string",description:"Screen reader name of the zoomable area."}},omit:["haptic"],examples:[{id:"ZoomableImage.default",title:"Default zoom",props:{maxScale:4,minScale:1,doubleTapScale:2,accessibilityLabel:"Sample photo"},children:"Photo"},{id:"ZoomableImage.strongZoom",title:"Stronger zoom",props:{maxScale:8,doubleTapScale:3},children:"Photo"},{id:"ZoomableImage.disabled",title:"Zoom blocked",props:{disabled:!0},children:"Photo"}],usage:{when:["Let a person pinch, pan and double tap to look closely at one image or one piece of content."],whenNot:[{text:"A set of images to swipe between, each zoomable.",instead:"ImageGallery"}],do:[{note:"Wrap one image and give the wrapper an accessibilityLabel that names it.",example:[{component:"ZoomableImage",props:{accessibilityLabel:"Product photo"},children:["Product photo"]}]},{note:"Keep maxScale high enough to read fine detail, such as 4 for photos.",example:[{component:"ZoomableImage",props:{maxScale:4},children:["Detailed map"]}]}],dont:[{note:"Do not wrap content that scrolls on its own; the two gestures compete.",example:[{component:"ZoomableImage",props:{accessibilityLabel:"Product photos"},children:[{component:"Carousel",props:{data:["Photo one","Photo two"]}}]}]},{note:"Do not rely on pinch alone; double tap is the one handed way to zoom.",example:[{component:"ZoomableImage",props:{maxScale:4,doubleTapScale:1},children:["Detailed map"]}]}],a11y:["Name the wrapped content with accessibilityLabel; the gestures themselves have no screen reader form.","Offer another way to view the detail, such as a download, when zoom matters for the task."]}});
@@ -0,0 +1,17 @@
1
+ {
2
+ "Box": "Layout primitive. Canvas lays out a screen with its own frame nodes, so the kit draws the components placed inside them.",
3
+ "ErrorBoundary": "Catches render errors around a subtree and draws nothing of its own.",
4
+ "Form": "Provides a form instance to the fields below it and draws nothing of its own.",
5
+ "HookFormField": "Binds a library field to react-hook-form; the field it wraps is drawn through its own description.",
6
+ "KeyboardAwareScrollView": "A scroll container that keeps the focused field above the keyboard; it draws nothing of its own.",
7
+ "NetworkStatusBanner": "Shows only while the device is offline, so a demo draws nothing; draw the offline state with Banner, which has the same look.",
8
+ "RadioDot": "The bare radio indicator used inside custom option templates; Radio and RadioGroup draw it.",
9
+ "Row": "Layout primitive. Canvas lays out a screen with its own frame nodes, so the kit draws the components placed inside them.",
10
+ "SkeletonClockProvider": "Shares one shimmer clock across skeletons and draws nothing of its own.",
11
+ "SkeletonProvider": "Shares skeleton settings with the skeletons below it and draws nothing of its own.",
12
+ "SkeletonSkip": "Marks a subtree the skeleton walker leaves alone and draws its children unchanged.",
13
+ "Stack": "Layout primitive. Canvas lays out a screen with its own frame nodes, so the kit draws the components placed inside them.",
14
+ "ThemeProvider": "Supplies the theme to the app and draws nothing of its own.",
15
+ "ToastHost": "Shows the queued toasts at the app root; the Toast description draws how a toast looks.",
16
+ "ToastProvider": "Holds the toast queue and draws nothing of its own."
17
+ }
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Accordion",marker:null,platforms:["phone"],acceptsChildren:!0,props:{title:{type:"string",required:!0,description:"The header text shown beside the chevron."},id:{type:"string",description:"Names the accordion inside an AccordionGroup, where it is required."},expanded:{type:"boolean",description:"The open state when the parent controls it; leave out to let the accordion manage its own state."},defaultExpanded:{type:"boolean",default:!1,description:"The open state at first, when the accordion manages its own state."},icon:{type:"icon",description:"An optional icon drawn before the title."},disabled:{type:"boolean",default:!1,description:"Blocks toggling and dims the title and chevron."},variant:{type:"enum",values:["plain","card"],default:"plain",description:"A plain header row or an elevated card."},accessibilityLabel:{type:"string",description:"Overrides the spoken label of the header; it defaults to the title."},loading:{type:"boolean",default:!1,description:"Shows the skeleton placeholder in place of the accordion."}},omit:["haptic"],examples:[{id:"Accordion.card",title:"Card with an icon",props:{title:"Is it themeable?",variant:"card",defaultExpanded:!0},children:"Yes. Wrap your app in the theme provider and override any token."},{id:"Accordion.plain",title:"Plain header row",props:{title:"Returns policy",variant:"plain",defaultExpanded:!0},children:"Items can be returned within 30 days."},{id:"Accordion.disabled",title:"Disabled",props:{title:"Warranty",variant:"card",disabled:!0},children:"One year manufacturer warranty is included."},{id:"Accordion.loading",title:"Loading skeleton",props:{title:"Shipping policy",variant:"card",loading:!0}}],usage:{when:["Hide secondary content behind a tappable header so a long screen stays short.","Show one open section at a time or several, by placing accordions inside an AccordionGroup."],whenNot:[{text:"The content is needed to make the next decision.",instead:"Show it inline in a Card."},{text:"Switching between peer views of the same data.",instead:"Use Tabs."}],do:[{note:"Give every accordion a short, specific title that says what is inside.",example:[{component:"Accordion",props:{title:"Shipping options"},children:"Standard and express delivery are available."}]},{note:"Give each accordion in a group its own id.",example:[{component:"AccordionGroup",props:{},children:[{component:"Accordion",props:{id:"shipping",title:"Shipping options"},children:"Standard and express delivery."},{component:"Accordion",props:{id:"returns",title:"Returns policy"},children:"Thirty days return policy."}]}]}],dont:[{note:"Do not use a vague title such as More or Details.",example:[{component:"Accordion",props:{title:"More"},children:"Standard and express delivery are available."}]},{note:"Do not nest an accordion inside another accordion.",example:[{component:"Accordion",props:{title:"Shipping options"},children:[{component:"Accordion",props:{title:"Returns policy"},children:"Thirty days return policy."}]}]}],a11y:["The header is announced as a button with its expanded or collapsed state.","Set accessibilityLabel only when the title alone does not describe the action."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AccordionGroup",marker:null,platforms:["phone"],acceptsChildren:!0,props:{allowMultiple:{type:"boolean",default:!1,description:"When false, opening one accordion closes the others; when true, several stay open."},defaultExpandedKeys:{type:"array",description:"The ids of the accordions open at first, when the group manages its own state."},expandedKeys:{type:"array",description:"The ids of the open accordions when the parent controls them."}},omit:[],examples:[{id:"AccordionGroup.single",title:"One open at a time",props:{allowMultiple:!1,defaultExpandedKeys:["a"]},children:[{component:"Accordion",props:{id:"a",title:"Section A",variant:"card"},children:"Only one section is open at a time."},{component:"Accordion",props:{id:"b",title:"Section B",variant:"card"},children:"Opening this closes section A."}]},{id:"AccordionGroup.multiple",title:"Several open",props:{allowMultiple:!0,defaultExpandedKeys:["shipping","returns"]},children:[{component:"Accordion",props:{id:"shipping",title:"Shipping policy",variant:"card"},children:"Several sections can stay open together."},{component:"Accordion",props:{id:"returns",title:"Returns policy",variant:"card"},children:"Open ids are tracked by the group."},{component:"Accordion",props:{id:"warranty",title:"Warranty",variant:"card"},children:"One year manufacturer warranty is included."}]}],usage:{when:["Coordinate several accordions so opening one can close the others.","Keep the set of open sections in one place."],whenNot:[{text:"There is a single accordion.",instead:"Use Accordion on its own."}],do:[{note:"Give every accordion inside the group a unique id.",example:[{component:"AccordionGroup",props:{defaultExpandedKeys:["first"]},children:[{component:"Accordion",props:{id:"first",title:"First section"},children:"First section content."},{component:"Accordion",props:{id:"second",title:"Second section"},children:"Second section content."}]}]}],dont:[{note:"Do not also set expanded on an accordion inside a group.",example:[{component:"AccordionGroup",props:{defaultExpandedKeys:["first"]},children:[{component:"Accordion",props:{id:"first",title:"First section",expanded:!0},children:"First section content."},{component:"Accordion",props:{id:"second",title:"Second section"},children:"Second section content."}]}]}],a11y:["Each accordion keeps its own button semantics; the group adds none."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AmountSlider",marker:null,platforms:["phone"],acceptsChildren:!1,props:{value:{type:"number",description:"The amount when the parent controls it."},defaultValue:{type:"number",description:"The amount at first, when the slider manages its own state."},min:{type:"number",default:0,description:"The smallest amount."},max:{type:"number",default:100,description:"The largest amount."},step:{type:"number",default:1,description:"The distance between selectable amounts."},disabled:{type:"boolean",default:!1,description:"Blocks the slider and the input box."},tone:{type:"enum",values:["primary","success","warning","danger"],description:"The colour of the filled track."},size:{type:"enum",values:["sm","md","lg"],description:"The size of the track and thumb."},variant:{type:"enum",values:["default","inset","minimal","bar"],default:"inset",description:"The look of the slider."},prefix:{type:"string",default:"₹",description:"Text drawn before the large amount; use an empty string for a plain number."},units:{type:"enum",values:["indian","none"],default:"indian",description:"Whether the large amount reads in Thousand, Lakh and Crore or as a grouped whole number."},animationDuration:{type:"number",description:"The length in milliseconds of one digit roll; it defaults to the theme's normal duration."},accessibilityLabel:{type:"string",description:"The spoken label of the slider."},inputAccessibilityLabel:{type:"string",default:"Amount",description:"The spoken label of the input box."}},omit:["haptic"],examples:[{id:"AmountSlider.default",title:"Loan amount",props:{value:5e5,min:1e5,max:5e6,step:5e4,accessibilityLabel:"Loan amount"}},{id:"AmountSlider.plain",title:"Whole number, minimal look",props:{value:25e3,min:0,max:1e5,step:1e3,variant:"minimal",units:"none",accessibilityLabel:"Budget"}},{id:"AmountSlider.bar",title:"Bar look, success tone",props:{value:2e6,min:1e5,max:5e6,step:5e4,variant:"bar",tone:"success",size:"lg",accessibilityLabel:"Savings goal"}},{id:"AmountSlider.disabled",title:"Disabled",props:{value:5e5,min:1e5,max:5e6,step:5e4,disabled:!0,accessibilityLabel:"Loan amount"}}],usage:{when:["Pick a money amount where both a rough drag and an exact entry make sense, such as a loan, budget or price.","Show the amount in Indian units next to an exact editable figure."],whenNot:[{text:"The value is not money or has only a few choices.",instead:"Use Slider or SegmentedControl."},{text:"The person must type a precise figure and never drag.",instead:"Use Input or DecimalInput."}],do:[{note:"Set min, max and step so every stop is a sensible amount.",example:[{component:"AmountSlider",props:{value:5e5,min:1e5,max:5e6,step:5e4,accessibilityLabel:"Loan amount"}}]}],dont:[{note:"Do not use a step so small that the thumb cannot land on a round figure.",example:[{component:"AmountSlider",props:{value:1234,min:0,max:1e4,step:1,accessibilityLabel:"Tiny step"}}]}],a11y:["Set accessibilityLabel to say what the amount is for.","The input box carries its own label through inputAccessibilityLabel."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AnimatePresence",marker:null,platforms:["phone"],acceptsChildren:!0,props:{preset:{type:"enum",values:["fade","scale","slide-up","slide-down"],default:"fade",description:"The shape of the enter and exit animation."},duration:{type:"number",description:"The animation length in milliseconds; it defaults to the theme's normal duration."}},omit:[],examples:[{id:"AnimatePresence.fade",title:"Fade",props:{preset:"fade"},children:"fade content"},{id:"AnimatePresence.scale",title:"Scale",props:{preset:"scale",duration:300},children:"scale content"},{id:"AnimatePresence.slideUp",title:"Slide up",props:{preset:"slide-up",duration:300},children:"slide-up content"},{id:"AnimatePresence.slideDown",title:"Slide down",props:{preset:"slide-down",duration:300},children:"slide-down content"}],usage:{when:["Animate a single conditional child in on mount and out on unmount.","Let a panel, banner or message finish its exit animation before it disappears."],whenNot:[{text:"Animating rows inside a list.",instead:"Use the list's own item layout animation."}],do:[{note:"Pass the child only while it should be visible, such as a condition that is either the element or null.",example:[{component:"AnimatePresence",props:{preset:"fade"},children:"Visible content"}]}],dont:[{note:"Do not wrap several siblings; wrap one element.",example:[{component:"AnimatePresence",props:{preset:"fade"},children:[{component:"AnimatePresence",props:{preset:"slide-up"},children:"Nested content"}]}]}],a11y:["With the system Reduce Motion setting on, every preset fades instead of moving."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AppBar",marker:"AppBar",platforms:["phone"],acceptsChildren:!1,props:{title:{type:"string",description:"The bar title."},subtitle:{type:"string",description:"A second line under the title."},titleAlignment:{type:"enum",values:["left","center"],default:"left",description:"Aligns the title and subtitle to the left or the centre."},leftAction:{type:"object",description:"The button at the left edge, drawn from an icon or a text label.",fields:{icon:{type:"icon",description:"The glyph of the button."},text:{type:"string",description:"A text label used instead of the glyph."},dot:{type:"boolean",description:"Draws a small unread dot on the button."},accessibilityLabel:{type:"string",description:"The spoken label of the button."}}},rightActions:{type:"array",description:"The buttons at the right edge, in order.",itemFields:{icon:{type:"icon",description:"The glyph of the button."},text:{type:"string",description:"A text label used instead of the glyph."},dot:{type:"boolean",description:"Draws a small unread dot on the button."},badge:{type:"stringOrNumber",description:"A count or short text drawn on the button; zero draws nothing."},accessibilityLabel:{type:"string",description:"The spoken label of the button."}}},leading:{type:"node",description:"Any element in the left slot, after the left action."},trailing:{type:"node",description:"Any element in the right slot, after the right actions."},gutter:{type:"number",description:"The distance in points from the screen edge to the visible edge of the outermost glyph."},titleVariant:{type:"string",description:"The text style of the title, a Text variant name or a variant the theme registers."},titleOffset:{type:"number",description:"The exact space in points between the left slot and the title."},height:{type:"number",description:"The bar height in points, without the top safe area; it overrides the variant height."},divider:{type:"boolean",description:"Draws a hairline under the bar; it shows unless the bar is transparent."},variant:{type:"enum",values:["default","large","compact"],default:"default",description:"The bar height and title weight."},transparent:{type:"boolean",default:!1,description:"Removes the background and the bottom line, for hero or tinted layouts."}},omit:["scrollY","haptic"],examples:[{id:"AppBar.default",title:"Title and subtitle",props:{title:"Inbox",subtitle:"3 unread",variant:"default"}},{id:"AppBar.compact",title:"Compact, centred title",props:{title:"Inbox",variant:"compact",titleAlignment:"center"}},{id:"AppBar.large",title:"Large title",props:{title:"Library",subtitle:"Scroll the list below",variant:"large"}},{id:"AppBar.transparent",title:"Transparent",props:{title:"Inbox",variant:"default",transparent:!0}}],usage:{when:["Put a title, a back button and a few actions at the top of a screen.","Use the large variant for a top-level screen whose title collapses as the list scrolls."],whenNot:[{text:"A search field is the main control of the screen.",instead:"Use SearchBar."},{text:"The page needs a custom header layout.",instead:"Compose it with the leading and trailing slots before building a new header."}],do:[{note:"Keep at most three actions on the right and give each an accessibility label.",example:[{component:"AppBar",props:{title:"Inbox",rightActions:[{icon:"search",accessibilityLabel:"Search messages"},{icon:"filter",accessibilityLabel:"Filter messages"},{icon:"more",accessibilityLabel:"More options"}]}}]},{note:"Use the compact variant on screens below the first level.",example:[{component:"AppBar",props:{title:"Settings",variant:"compact",rightActions:[{icon:"share",accessibilityLabel:"Share profile"}]}}]}],dont:[{note:"Do not put long text in the title; it truncates.",example:[{component:"AppBar",props:{title:"Inbox messages from all your accounts and folders",rightActions:[{icon:"search",accessibilityLabel:"Search messages"},{icon:"filter",accessibilityLabel:"Filter messages"},{icon:"more",accessibilityLabel:"More options"}]}}]},{note:"Do not give an action neither an icon nor a text label.",example:[{component:"AppBar",props:{title:"Settings",variant:"compact",rightActions:[{accessibilityLabel:"Share profile"}]}}]}],a11y:["Every action is at least 44 by 44 points and needs an accessibility label unless it has text.","The back arrow is announced as Back."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AppIcon",marker:"AppIcon",platforms:["phone"],acceptsChildren:!1,props:{name:{type:"icon",required:!0,description:"The icon to draw, by name; add -iconsax to a curated name to draw the Iconsax glyph it shadows."},size:{type:"enumOrNumber",values:["xs","sm","md","lg","xl"],default:"md",description:"A size name (14, 18, 22, 28 or 36 pixels) or an exact size in pixels."},color:{type:"string",description:"Any colour value; it defaults to the primary text colour."},variant:{type:"enum",values:["linear","bold","broken","bulk","outline","twotone"],default:"linear",description:"The icon style; a name missing in a style falls back to linear."},accessibilityLabel:{type:"string",description:"Set when the icon carries meaning on its own; decorative icons stay silent for screen readers."}},omit:[],examples:[{id:"AppIcon.default",title:"Default icon",props:{name:"send"}},{id:"AppIcon.bold",title:"Bold style, large",props:{name:"send",variant:"bold",size:"xl",accessibilityLabel:"Send message"}},{id:"AppIcon.pixels",title:"Exact size",props:{name:"user",size:64}},{id:"AppIcon.twotone",title:"Two-tone style",props:{name:"calendar",variant:"twotone",size:"lg"}}],usage:{when:["Draw an icon from the design system's set by name, the same name as on the web.","Pick a style (linear, bold, broken, bulk, outline, twotone) to match the weight of the surrounding text."],whenNot:[{text:"Showing a photo or a brand logo.",instead:"Use Image or AuthedImage."},{text:"The icon is the only content of a button.",instead:"Use IconButton, which sets the touch size."}],do:[{note:"Use one style across a screen.",example:[{component:"AppIcon",props:{name:"home",variant:"linear"}},{component:"AppIcon",props:{name:"search",variant:"linear"}}]},{note:"Give an icon that stands alone an accessibility label.",example:[{component:"AppIcon",props:{name:"search",accessibilityLabel:"Search"}}]}],dont:[{note:"Do not use an icon without text for an action nobody would recognise.",example:[{component:"AppIcon",props:{name:"radar"}}]},{note:"Do not mix icon styles in one toolbar.",example:[{component:"AppIcon",props:{name:"home",variant:"linear"}},{component:"AppIcon",props:{name:"search",variant:"bold"}}]}],a11y:["A decorative icon is hidden from screen readers; set accessibilityLabel when it carries meaning.","Colour is never the only signal; pair a coloured icon with text."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AsyncBlock",marker:null,platforms:["phone"],acceptsChildren:!0,props:{loading:{type:"boolean",default:!1,description:"Shows the placeholder instead of the content."},error:{type:"any",description:"An error to show in place of the content; a string is the description, and any other value is read for its message."},errorVariant:{type:"enum",values:["default","offline"],description:"Draws the error as a lost connection when offline; left out, an offline error picks it by itself."},empty:{type:"boolean",default:!1,description:"The fetch succeeded with nothing to show."},skeleton:{type:"node",description:"A placeholder shaped like the content; it falls back to a centred spinner."},emptyTitle:{type:"string",default:"Nothing here yet",description:"The title of the empty state."},emptyDescription:{type:"string",description:"The text under the empty title."},emptyIcon:{type:"icon",description:"The icon of the empty state."},errorTitle:{type:"string",default:"That didn't load",description:"The title of the error state."},offlineTitle:{type:"string",default:"You're offline",description:"The title of the offline error state."},retryLabel:{type:"string",default:"Try again",description:"The label of the retry button."}},omit:[],examples:[{id:"AsyncBlock.loading",title:"Loading",props:{loading:!0}},{id:"AsyncBlock.error",title:"Error",props:{error:"Network unreachable",errorTitle:"That didn't load",retryLabel:"Try again"}},{id:"AsyncBlock.offline",title:"Offline",props:{error:"No connection",errorVariant:"offline"}},{id:"AsyncBlock.empty",title:"Empty",props:{empty:!0,emptyTitle:"No invoices yet",emptyDescription:"Invoices appear here once you raise one."}},{id:"AsyncBlock.content",title:"Content",props:{},children:"The loaded content appears here."}],usage:{when:["Wrap any screen section that fetches data so loading, error, empty and content each have one place.","Show a shaped skeleton while data loads so the layout does not jump."],whenNot:[{text:"The data is already in memory and cannot fail.",instead:"Render the content directly."},{text:"A single button is busy.",instead:"Use the loading state of that Button."}],do:[{note:"Give the empty state a title that says what will appear and when.",example:[{component:"Card",props:{title:"No invoices yet"},children:"Invoices appear here once you raise one."}]},{note:"Pass a retry handler so a failure can be recovered.",example:[{component:"Button",props:{title:"Try again"}}]}],dont:[{note:"Do not show a raw error message from the server; pass a text written for the person.",example:[{component:"AsyncBlock",props:{errorTitle:"That didn't load",error:"Network unreachable",retryLabel:"Try again"}}]},{note:"Do not leave loading on while showing content.",example:[{component:"Card",props:{loading:!0}}]}],a11y:["The error and empty states are plain text, so screen readers read their title and description.","Loading wins over error, error over empty, and empty over content."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AuthedImage",marker:null,platforms:["phone"],acceptsChildren:!1,props:{uri:{type:"url",required:!0,description:"The address of the image."},resizeMode:{type:"enum",values:["cover","contain","stretch","repeat","center"],description:"How the image fits its box, in React Native's names; contentFit wins when both are set."},contentFit:{type:"enum",values:["cover","contain","fill","none","scale-down"],description:"How the image fits its box, in expo-image's names."},fadeDuration:{type:"number",description:"The cross-fade in milliseconds when the image appears."},headers:{type:"object",description:"Extra request headers sent with the fetch."},authenticated:{type:"boolean",default:!0,description:"Attaches the stored sign-in token to the request when no client is given."},ttlMs:{type:"number",default:6048e5,description:"How long a cached image counts as fresh, in milliseconds."},placeholder:{type:"node",description:"Shown while the image loads."},fallback:{type:"node",description:"Shown when no usable image exists."},cacheKey:{type:"string",description:"Overrides the cache key derived from the address."},blurRadius:{type:"number",description:"Blurs the image by this radius in points."},tintColor:{type:"string",description:"Paints the image in one colour, for a mask-like icon."}},omit:[],examples:[{id:"AuthedImage.cover",title:"Cover fit",props:{uri:"https://picsum.photos/seed/webority-authed-image/400/300",authenticated:!1,contentFit:"cover"}},{id:"AuthedImage.contain",title:"Contain fit",props:{uri:"https://picsum.photos/seed/webority-authed-image/400/300",authenticated:!1,contentFit:"contain"}},{id:"AuthedImage.blurred",title:"Blurred",props:{uri:"https://picsum.photos/seed/webority-authed-image/400/300",authenticated:!1,contentFit:"cover",blurRadius:12}},{id:"AuthedImage.missing",title:"Image not found",props:{uri:"https://picsum.photos/id/999999/400/300",authenticated:!1,contentFit:"cover"}}],usage:{when:["Show an image that sits behind a sign-in, which the plain Image cannot fetch.","Cache the image on the device so it opens at once the next time."],whenNot:[{text:"The image is public and needs no token.",instead:"Use Image with a plain address."},{text:"The image is a person's picture.",instead:"Use Avatar."}],do:[{note:"Give the image a fixed height or aspect ratio so the layout does not jump.",example:[{component:"AuthedImage",props:{uri:"https://picsum.photos/seed/webority/400/300"}}]},{note:"Pass a fallback for the case where the image cannot load.",example:[{component:"AuthedImage",props:{uri:"https://picsum.photos/seed/webority/400/300",fallback:{component:"AppIcon",props:{name:"user"}}}}]}],dont:[{note:"Do not set one cache key for different pictures.",example:[{component:"AuthedImage",props:{uri:"https://picsum.photos/id/10/400/300",cacheKey:"shared-key"}},{component:"AuthedImage",props:{uri:"https://picsum.photos/id/11/400/300",cacheKey:"shared-key"}}]},{note:"Do not send the token to a public address; turn authenticated off.",example:[{component:"AuthedImage",props:{uri:"https://picsum.photos/seed/public/400/300",authenticated:!0}}]}],a11y:["Pass an accessibility label that describes the picture when it carries meaning.","A decorative image needs no label."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Autocomplete",marker:null,platforms:["phone"],acceptsChildren:!1,props:{options:{type:"array",required:!0,description:"The candidate options to filter."},value:{type:"string",description:"The input text when the parent controls it."},defaultValue:{type:"string",description:"The input text at first, when the field manages its own text."},minChars:{type:"number",default:1,description:"The number of characters typed before suggestions appear."},maxResults:{type:"number",default:8,description:"The most suggestions shown."},emptyText:{type:"string",default:"No matches",description:"The text shown when nothing matches."},loading:{type:"boolean",default:!1,description:"Shows a spinner row in the dropdown, for results being fetched."},filterMode:{type:"enum",values:["client","none"],default:"client",description:"Client filters the options here; none shows them as given, for search done on a server."},loadingText:{type:"string",default:"Searching…",description:"The text beside the loading spinner."},placeholder:{type:"string",description:"The hint shown while the field is empty."},label:{type:"string",description:"The field label."},error:{type:"node",description:"An error message shown under the field."},helperText:{type:"string",description:"A hint shown under the field."},disabled:{type:"boolean",default:!1,description:"Blocks typing and selecting."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The size of the field."},variant:{type:"enum",values:["outlined","filled","underline"],description:"The look of the field."}},omit:["haptic"],examples:[{id:"Autocomplete.countries",title:"Country search",props:{options:["India","Indonesia","Ireland","Israel","Italy","United States"],label:"Country",placeholder:"Start typing…"}},{id:"Autocomplete.filled",title:"Filled, large",props:{options:["India","Indonesia","Ireland"],label:"Country",variant:"filled",size:"lg"}},{id:"Autocomplete.loading",title:"Loading remote results",props:{options:[],label:"City",filterMode:"none",loading:!0,loadingText:"Searching…"}},{id:"Autocomplete.disabled",title:"Disabled",props:{options:["India","Indonesia"],label:"Country",disabled:!0}}],usage:{when:["Let a person pick one item from a long list by typing, such as a country, a city or an assignee.","Search on a server by showing a loading row and the fetched options as they are."],whenNot:[{text:"The list has only a few fixed choices.",instead:"Use Select or SegmentedControl."},{text:"The person may enter any text.",instead:"Use Input."}],do:[{note:"Set a label that names what is being chosen.",example:[{component:"Autocomplete",props:{label:"Country",options:["India","Indonesia","Ireland"],maxResults:8}}]},{note:"Use filterMode none and the loading state when results come from a server.",example:[{component:"Autocomplete",props:{label:"City",options:[],filterMode:"none",loading:!0,loadingText:"Searching..."}}]}],dont:[{note:"Do not show hundreds of suggestions; keep maxResults small.",example:[{component:"Autocomplete",props:{label:"Country",options:["India","Indonesia","Ireland"],maxResults:100}}]},{note:"Do not use it for a list a person would rather scroll.",example:[{component:"Autocomplete",props:{label:"Size",options:["Small","Medium","Large"]}}]}],a11y:["The field keeps the Input semantics, so the label and error are read.","Selecting a suggestion closes the keyboard."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Avatar",marker:null,platforms:["phone"],acceptsChildren:!1,props:{source:{type:"url",description:"The picture to draw; it falls back to initials when it fails to load or is left out."},name:{type:"string",description:"The person's name, used for the initials and the fallback colour."},size:{type:"enumOrNumber",values:["xs","sm","md","lg","xl"],default:"md",description:"A size name (24, 32, 48, 64 or 80 points) or an exact size in points."},shape:{type:"enum",values:["circle","square","rounded"],default:"circle",description:"The outline of the avatar."},status:{type:"enum",values:["online","offline","busy","away","verified","pending"],description:"A presence dot, or a verified or pending ring; leave out to show nothing."},statusPosition:{type:"enum",values:["topRight","bottomRight"],default:"bottomRight",description:"The corner where the presence dot sits."},tone:{type:"enum",values:["neutral","primary","secondary","success","warning","danger","info"],description:"A theme colour for the initials disc; left out, the colour comes from the name."},backgroundColor:{type:"string",description:"A colour for the initials disc that wins over tone."},color:{type:"string",description:"A colour for the initials that wins over tone."},fontSize:{type:"number",description:"The initials font size in pixels; it wins over the size-based default."},loading:{type:"boolean",default:!1,description:"Shows the skeleton placeholder in place of the avatar."},accessibilityLabel:{type:"string",description:"The spoken name; it defaults to the person's name followed by avatar."}},omit:["ImageComponent","haptic","hitSlop"],examples:[{id:"Avatar.initials",title:"Initials",props:{name:"Ada Lovelace",size:"lg"}},{id:"Avatar.online",title:"Online dot",props:{name:"Ada Lovelace",size:"lg",status:"online"}},{id:"Avatar.verified",title:"Verified ring",props:{name:"Verified user",size:"lg",status:"verified"}},{id:"Avatar.tone",title:"Rounded, primary tone",props:{name:"Alan Turing",size:"lg",shape:"rounded",tone:"primary"}}],usage:{when:["Represent a person or an organisation with a picture, or with initials when there is none.","Show presence or an identity state with a dot or a ring."],whenNot:[{text:"Showing any other picture.",instead:"Use AuthedImage or Image."},{text:"Showing several people together.",instead:"Use AvatarGroup."}],do:[{note:"Always pass name so the initials fallback and the spoken label work.",example:[{component:"Avatar",props:{name:"Ada Lovelace",size:"md"}}]},{note:"Keep one size within a list.",example:[{component:"Avatar",props:{name:"Ada Lovelace",size:"sm"}},{component:"Avatar",props:{name:"Alan Turing",size:"sm"}}]}],dont:[{note:"Do not rely on the dot colour alone to tell presence.",example:[{component:"Avatar",props:{size:"md",status:"online"}}]},{note:"Do not set both tone and backgroundColor.",example:[{component:"Avatar",props:{name:"Ada Lovelace",size:"md",tone:"primary",backgroundColor:"#3b82f4"}}]}],a11y:["The spoken label is the name followed by avatar, with verified or pending added for the ring states.","A pressable avatar is announced as a button and keeps a touch area of at least 44 points."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"AvatarGroup",marker:null,platforms:["phone"],acceptsChildren:!0,props:{max:{type:"number",default:4,description:"The most avatars shown before the rest collapse into an overflow circle."},size:{type:"enumOrNumber",values:["xs","sm","md","lg","xl"],default:"md",description:"A size name or an exact size in points, applied to every avatar."},spacing:{type:"enum",values:["tight","normal","loose"],default:"normal",description:"How much the avatars overlap."},overflowVariant:{type:"enum",values:["count","plus"],default:"count",description:"Shows the overflow as a count such as +3 or as a plain plus."},accessibilityLabel:{type:"string",description:"The spoken label of the whole group."}},omit:[],examples:[{id:"AvatarGroup.default",title:"Four of six",props:{max:4,size:"md"},children:[{component:"Avatar",props:{name:"Ada Lovelace"}},{component:"Avatar",props:{name:"Alan Turing"}},{component:"Avatar",props:{name:"Grace Hopper"}},{component:"Avatar",props:{name:"Linus Torvalds"}},{component:"Avatar",props:{name:"Margaret Hamilton"}},{component:"Avatar",props:{name:"Dennis Ritchie"}}]},{id:"AvatarGroup.plus",title:"Plus overflow",props:{max:3,size:"md",overflowVariant:"plus"},children:[{component:"Avatar",props:{name:"Ada Lovelace"}},{component:"Avatar",props:{name:"Alan Turing"}},{component:"Avatar",props:{name:"Grace Hopper"}},{component:"Avatar",props:{name:"Linus Torvalds"}}]},{id:"AvatarGroup.tight",title:"Tight spacing",props:{max:4,size:"lg",spacing:"tight"},children:[{component:"Avatar",props:{name:"Ada Lovelace"}},{component:"Avatar",props:{name:"Alan Turing"}},{component:"Avatar",props:{name:"Grace Hopper"}}]}],usage:{when:["Show the people on a task, chat or team as one overlapping stack.","Collapse the extra people into a count."],whenNot:[{text:"Showing one person.",instead:"Use Avatar."},{text:"The person must be able to read every name.",instead:"Use a list of ListItem rows."}],do:[{note:"Set max so the stack fits the space it sits in.",example:[{component:"AvatarGroup",props:{max:2},children:[{component:"Avatar",props:{name:"Alice"}},{component:"Avatar",props:{name:"Bob"}}]}]}],dont:[{note:"Do not put anything but Avatar elements inside the group.",example:[{component:"AvatarGroup",props:{max:2},children:[{component:"Avatar",props:{name:"Alice"}},"and others"]}]}],a11y:["Set accessibilityLabel to say how many people the group holds.","The overflow circle is announced with its count."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Badge",marker:null,platforms:["phone"],acceptsChildren:!0,props:{value:{type:"stringOrNumber",description:"The count or short text; a number of zero or less draws nothing in the standard variant."},max:{type:"number",default:99,description:"The largest number shown before it reads as the maximum with a plus."},variant:{type:"enum",values:["standard","dot"],default:"standard",description:"A pill with the value or a plain dot."},tone:{type:"enum",values:["primary","success","warning","danger","neutral","info"],default:"danger",description:"The colour of the badge."},size:{type:"enum",values:["sm","md"],default:"sm",description:"The size of the badge."},invisible:{type:"boolean",default:!1,description:"Hides the badge without removing it from the layout."},loading:{type:"boolean",default:!1,description:"Shows the skeleton placeholder in place of the badge."},anchor:{type:"enum",values:["topRight","topLeft","bottomRight","bottomLeft"],default:"topRight",description:"The corner of the child where the badge sits."},pulse:{type:"boolean",default:!1,description:"Pulses the badge to draw attention to something unread."},accessibilityLabel:{type:"string",description:"The spoken label of the badge."}},omit:[],examples:[{id:"Badge.count",title:"Count",props:{value:4,tone:"danger"}},{id:"Badge.dot",title:"Dot",props:{variant:"dot",tone:"success"}},{id:"Badge.overflow",title:"Over the maximum",props:{value:120,max:99,tone:"primary",size:"md"}},{id:"Badge.anchored",title:"On a button",props:{value:4,tone:"danger",anchor:"topRight"},children:[{component:"Button",props:{title:"Inbox",variant:"outline"}}]}],usage:{when:["Show a count or a status on its own, or on the corner of an icon, avatar or button.","Mark something unread with a dot or a pulsing badge."],whenNot:[{text:"Showing a status with a word.",instead:"Use StatusBadge."},{text:"Showing a removable label.",instead:"Use Chip."}],do:[{note:"Use the danger tone only for things that need action, such as unread alerts.",example:[{component:"Badge",props:{value:3,tone:"danger"},children:[{component:"Button",props:{title:"Alerts"}}]}]},{note:"Set max so a large count reads 99+ and stays small.",example:[{component:"Badge",props:{value:120,max:99},children:[{component:"Button",props:{title:"Inbox"}}]}]}],dont:[{note:"Do not rely on the colour alone to carry the meaning.",example:[{component:"Badge",props:{variant:"dot",tone:"danger"},children:[{component:"Button",props:{title:"Alerts"}}]}]},{note:"Do not stack several badges on one element.",example:[{component:"Badge",props:{value:4,anchor:"topRight"},children:[{component:"Badge",props:{variant:"dot",tone:"success",anchor:"bottomRight"},children:[{component:"Button",props:{title:"Inbox"}}]}]}]}],a11y:["Set accessibilityLabel to say what the count means, such as 4 unread messages.","Colour is never the only signal; the value or the label carries the meaning."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Banner",marker:null,platforms:["phone"],acceptsChildren:!1,props:{title:{type:"string",description:"A short heading above the message."},message:{type:"node",required:!0,description:"The text of the banner. Plain text gets the built-in styling; a node is drawn as it is."},variant:{type:"enum",values:["info","success","warning","danger","neutral"],default:"info",description:"The kind of message, which sets its colour and icon."},icon:{type:"icon",description:"Replaces the built-in icon. Pass false to draw no icon."},actions:{type:"array",itemFields:{label:{type:"string",required:!0,description:"The button text."},tone:{type:"enum",values:["primary","neutral","danger"],description:"The button colour. Primary takes the banner colour, neutral the secondary text colour and danger the error colour."},variant:{type:"enum",values:["solid","outline","ghost"],description:"The button style: filled, bordered or text only."},size:{type:"enum",values:["sm","md"],description:"The button size. Medium is taller, with a 44 point touch target."}},description:"Buttons drawn under the message."},dismissible:{type:"boolean",default:!1,description:"Shows a close button."},visible:{type:"boolean",default:!0,description:"Shows or hides the banner. Hiding plays the exit animation first."},animateMount:{type:"boolean",default:!0,description:"Slides and fades the banner in when it first appears."},loading:{type:"boolean",default:!1,description:"Draws the placeholder shape instead of the content while data loads."},accessibilityRole:{type:"enum",values:["alert","summary","none"],default:"alert",description:"How a screen reader treats the banner. Alert announces it as it appears; summary and none are read in order."},accessibilityLabel:{type:"string",description:"Replaces what the banner is announced as. Leave it unset so the title, message and each button are read in turn."}},omit:["haptic"],examples:[{id:"Banner.info",title:"Info",props:{variant:"info",title:"Update available",message:"Version 2.4 includes performance improvements."}},{id:"Banner.success",title:"Success",props:{variant:"success",message:"Your changes were saved.",dismissible:!0}},{id:"Banner.danger",title:"Danger",props:{variant:"danger",title:"Payment failed",message:"Check your card details and try again.",dismissible:!0}}],usage:{when:["A message belongs to the whole screen or a section, such as an update, a warning or a saved state.","The message needs a visible place on the page and may offer one or two actions.","The person can dismiss it or leave it until it no longer applies."],whenNot:[{text:"The message is a brief confirmation that should disappear on its own.",instead:"Toast"},{text:"The person must answer before they can continue.",instead:"Dialog"}],do:[{note:"Keep the message to one or two sentences and give the action a clear verb.",example:[{component:"Banner",props:{variant:"info",message:"Version 2.4 is ready.",actions:[{label:"Update"}]}}]}],dont:[{note:"Do not stack several banners on one screen. They compete and the important one gets lost.",example:[{component:"Banner",props:{variant:"warning",message:"Several banners shown at once hide the one that matters."}}]}],a11y:["The alert role announces the banner as it appears, so use it only for something the person must hear now.","Without an accessibility label, a screen reader reads the title, the message and each button in turn."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"BarChart",marker:null,platforms:["phone"],acceptsChildren:!1,props:{data:{type:"array",required:!0,itemFields:{label:{type:"string",required:!0,description:"The full name of the bar, read aloud and written in the callout."},value:{type:"number",required:!0,description:"The bar value. A value below zero draws under the zero line."},axisLabel:{type:"string",description:"A shorter label drawn under the bar. It defaults to the label."},accessibilityLabel:{type:"string",description:"Replaces the spoken text of the bar."}},description:"The bars, left to right."},tone:{type:"enum",values:["primary","success","warning","danger","info","neutral"],default:"primary",description:"The colour of the bars."},color:{type:"string",description:"A single colour for every bar. It wins over the tone."},height:{type:"number",default:160,description:"Height of the plot in points."},label:{type:"string",description:"What the chart shows, read first by a screen reader."},summary:{type:"string",description:"The main message in a sentence, shown while no bar is picked. It defaults to the highest bar."},showValues:{type:"boolean",description:"Draws each bar's value on the bar. It is on by default when there are 7 bars or fewer."},selection:{type:"number",description:"The picked bar, counted from 0, when the screen controls the selection."},defaultSelection:{type:"number",description:"The bar picked at the start when the chart keeps its own selection."}},omit:["haptic"],examples:[{id:"BarChart.default",title:"Default",props:{label:"Approvals per day",summary:"Approvals peaked on Thursday",data:[{label:"Mon 06-Oct-2026",axisLabel:"Mon",value:14},{label:"Tue 07-Oct-2026",axisLabel:"Tue",value:22},{label:"Wed 08-Oct-2026",axisLabel:"Wed",value:9},{label:"Thu 09-Oct-2026",axisLabel:"Thu",value:31}]}},{id:"BarChart.success",title:"Success tone",props:{tone:"success",label:"Approvals per day",data:[{label:"Mon 06-Oct-2026",axisLabel:"Mon",value:14},{label:"Tue 07-Oct-2026",axisLabel:"Tue",value:22},{label:"Wed 08-Oct-2026",axisLabel:"Wed",value:9}]}},{id:"BarChart.negative",title:"Negative values",props:{label:"Change per day",data:[{label:"Mon 06-Oct-2026",axisLabel:"Mon",value:6},{label:"Tue 07-Oct-2026",axisLabel:"Tue",value:-4},{label:"Wed 08-Oct-2026",axisLabel:"Wed",value:9},{label:"Thu 09-Oct-2026",axisLabel:"Thu",value:-7}]}}],usage:{when:["A dashboard shows a handful of values side by side, such as a count per day.","The main message can be written as one sentence under the chart.","Values may be negative and the zero line should stay visible."],whenNot:[{text:"The values are a trend over many points.",instead:"Sparkline"},{text:"The chart must show exact numbers for every point.",instead:"a table of values"}],do:[{note:"Write a summary sentence that names the main message, so the chart reads without touching it.",example:[{component:"BarChart",props:{summary:"Approvals peaked on Thursday",data:[{label:"Mon",value:14},{label:"Thu",value:31}]}}]}],dont:[{note:"Do not leave out the label and summary. A reader then has to guess what the bars mean.",example:[{component:"BarChart",props:{data:[{label:"Mon",value:14},{label:"Thu",value:31}]}}]}],a11y:["A screen reader gets one adjustable element: swipe up or down to move from bar to bar, each read as its label and value.","The label names the chart and is read first."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"BottomNavigation",marker:null,platforms:["phone"],acceptsChildren:!1,props:{tabs:{type:"array",required:!0,itemFields:{key:{type:"string",required:!0,description:"A stable id for the tab."},label:{type:"string",required:!0,description:"The text under the icon and the accessible name of the tab."},showLabel:{type:"boolean",description:"Draws this tab's label. False hides the text and keeps it as the accessible name."},icon:{type:"icon",required:!0,description:"The tab icon, an icon name or any node."},activeIcon:{type:"icon",description:"The icon drawn while the tab is active."},badge:{type:"stringOrNumber",description:"A number or text drawn on the tab. True draws a dot."}},description:"The tabs, left to right."},centerAction:{type:"object",fields:{label:{type:"string",required:!0,description:"The accessible name of the button. It is never drawn."},icon:{type:"icon",description:"The icon drawn in the filled circle. It defaults to add."},content:{type:"node",description:"Replaces the filled circle entirely with any node."},size:{type:"number",description:"Diameter of the filled circle in pixels."},color:{type:"string",description:"Fill of the circle."},iconColor:{type:"string",description:"Colour of the icon in the circle."},iconSize:{type:"number",description:"Size of the icon in the circle in pixels."},lift:{type:"number",description:"How far the button rises above the centre of the row, in pixels."},gap:{type:"number",description:"Space between the button and the neighbouring tabs, in pixels."}},description:"A button in the middle of the bar that is not a tab."},activeTab:{type:"string",required:!0,description:"The key of the active tab."},showLabels:{type:"boolean",default:!0,description:"Shows the text label under each icon. Expand only labels the active tab."},variant:{type:"enum",values:["pill","underline","floating","bubble","expand","solid","tile"],default:"pill",description:"The look of the bar."},indicatorPosition:{type:"enum",values:["top","bottom"],default:"bottom",description:"Where the active line sits, for the variants that draw a line."},radius:{type:"stringOrNumber",description:"Corner radius of the bar in pixels, or the text pill for fully round ends."},indicatorRadius:{type:"stringOrNumber",description:"Corner radius of the active tab background in pixels, or the text auto to follow the bar.",default:"auto"},elevation:{type:"enum",values:["none","card","elevated","popover","modal","drawer"],description:"The shadow under the bar, as a shadow name or none."},iconSize:{type:"number",description:"Size of every tab icon in pixels."},marginHorizontal:{type:"number",description:"Space between the bar and the left and right screen edges, in pixels."},marginVertical:{type:"number",description:"Space above and below the bar, in pixels."},paddingHorizontal:{type:"number",description:"Space inside the bar between its edges and the tab row, in pixels."},paddingVertical:{type:"number",description:"Space inside the bar above and below the tab row, in pixels."},border:{type:"boolean",description:"Draws a hairline border around the bar."},minimizeOnScroll:{type:"boolean",default:!1,description:"Shrinks the bar to its icons while the person scrolls down and restores it on scroll up."},scrollDirection:{type:"enum",values:["up","down","idle"],default:"idle",description:"The scroll direction of the screen, read only when minimizeOnScroll is on."},accessory:{type:"node",description:"A compact strip tied to the bar, such as a status line."},labelMaxFontScale:{type:"number",description:"The largest text scale the tab label follows."}},omit:["haptic"],examples:[{id:"BottomNavigation.pill",title:"Pill",props:{variant:"pill",activeTab:"home",tabs:[{key:"home",label:"Home",icon:"home"},{key:"search",label:"Search",icon:"search-normal"},{key:"inbox",label:"Inbox",icon:"sms",badge:3},{key:"profile",label:"Profile",icon:"user"}]}},{id:"BottomNavigation.floating",title:"Floating",props:{variant:"floating",elevation:"card",activeTab:"search",tabs:[{key:"home",label:"Home",icon:"home"},{key:"search",label:"Search",icon:"search-normal"},{key:"profile",label:"Profile",icon:"user"}]}},{id:"BottomNavigation.underline",title:"Underline on top",props:{variant:"underline",indicatorPosition:"top",activeTab:"home",tabs:[{key:"home",label:"Home",icon:"home"},{key:"inbox",label:"Inbox",icon:"sms"},{key:"settings",label:"Settings",icon:"setting-2"}]}}],usage:{when:["The app has three to five top-level places the person moves between often.","The bar should stay on screen so the person always knows where they are.","A badge should show unread or pending work on a tab."],whenNot:[{text:"There are more than five destinations.",instead:"Drawer"},{text:"The choices switch views inside one screen.",instead:"Tabs"}],do:[{note:"Give every tab a short label, even when it also has an icon.",example:[{component:"BottomNavigation",props:{activeTab:"home",tabs:[{key:"home",label:"Home",icon:"home"},{key:"inbox",label:"Inbox",icon:"sms"}]}}]}],dont:[{note:"Do not hide every label with no accessible name left on the tab.",example:[{component:"BottomNavigation",props:{showLabels:!1,activeTab:"home",tabs:[{key:"home",label:"",icon:"home"},{key:"inbox",label:"",icon:"sms"}]}}]}],a11y:["A tab's label is its accessible name, also when showLabel is false.","The bar stays expanded while a screen reader is on.","The centre action's label is its accessible name and is never drawn."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"BottomSheet",marker:null,platforms:["phone"],acceptsChildren:!0,props:{snapPoints:{type:"array",required:!0,description:"The heights the sheet rests at: a number of points, a percentage such as 50%, or content to hug the content."},index:{type:"number",description:"The snap point the sheet shows, counted from 0. Minus one closes it."},enablePanDownToClose:{type:"boolean",default:!0,description:"Lets a drag on the handle past the threshold close the sheet."},enableBackdropPress:{type:"boolean",default:!0,description:"Lets a tap on the scrim close the sheet. Back and Escape follow it."},scrollable:{type:"boolean",default:!1,description:"Wraps the content in a vertical scroll view between the header and the footer."},scrollEventThrottle:{type:"number",description:"How often the inner scroll view reports scrolling, in milliseconds. Used only with scrollable."},backdropOpacity:{type:"number",description:"The opacity of the scrim."},keyboardBehavior:{type:"enum",values:["none","shift"],default:"shift",description:"How the sheet reacts to the keyboard. Shift rides up with it; none stays put."},mode:{type:"enum",values:["modal","inline"],default:"modal",description:"Modal covers the whole screen in a native modal; inline overlays the parent view."},presentation:{type:"enum",values:["sheet","dialog","auto"],default:"sheet",description:"Sheet is full width at the bottom; dialog is centred; auto picks a dialog on a tablet."},header:{type:"node",description:"A fixed region between the handle and the content. It does not scroll."},footer:{type:"node",description:"A fixed region at the bottom of the sheet, such as a row of buttons."},accessibilityLabel:{type:"string",description:"Names the sheet for a screen reader."},accessibilityViewIsModal:{type:"boolean",description:"Tells a screen reader to ignore what is behind the sheet."}},omit:["scrollRef"],examples:[{id:"BottomSheet.content",title:"Hugs its content",props:{snapPoints:["content"],mode:"inline",index:0},children:"Sheet content."},{id:"BottomSheet.headerFooter",title:"Header and footer",props:{snapPoints:["50%"],mode:"inline",index:0,header:"Filters",footer:"Apply"},children:"Choose how to filter the list."},{id:"BottomSheet.dialog",title:"Dialog presentation",props:{snapPoints:["50%"],presentation:"dialog",mode:"inline",index:0},children:"Centred on a tablet."}],usage:{when:["A short task or a list of choices belongs on top of the current screen.","The person should be able to drag the sheet between a small and a tall height.","The content needs a fixed header or a fixed row of buttons."],whenNot:[{text:"The person must answer one question before going on.",instead:"Dialog"},{text:"The content is a full screen of its own.",instead:"a new screen"}],do:[{note:"Use the content snap point so the sheet is as tall as what it holds.",example:[{component:"BottomSheet",props:{snapPoints:["content"],mode:"inline",index:0}}]}],dont:[{note:"Do not set a snap point taller than the content needs. It leaves a large empty area.",example:[{component:"BottomSheet",props:{snapPoints:["90%"],mode:"inline",index:0}}]}],a11y:["Turning off backdrop press also turns off Back and Escape, so a sheet that must be answered stays open.","Set accessibilityLabel so a screen reader names the sheet when it opens."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Spacer",marker:null,platforms:["phone"],acceptsChildren:!1,props:{size:{type:"enum",values:["none","xxs","xs","sm","md","lg","xl","2xl","3xl","4xl"],description:"A fixed gap of this space step. Leave it out for a flexible spacer that pushes its neighbours apart."}},omit:[],examples:[{id:"Spacer.fixed",title:"Fixed gap",props:{size:"lg"}},{id:"Spacer.flexible",title:"Flexible push",props:{}}],usage:{when:["Two siblings need a fixed gap that does not belong to either of them.","A flexible space should push one sibling to the far end of a row or column."],whenNot:[{text:"Every child in a row or column needs the same gap.",instead:"the gap of Row or Stack"}],do:[{note:"Pick a space step by name so the gap follows the shared scale.",example:[{component:"Spacer",props:{size:"md"}}]}],dont:[{note:"Do not stack several spacers to make a larger gap. Use the next step up.",example:[{component:"Spacer",props:{size:"xs"}},{component:"Spacer",props:{size:"xs"}}]}],a11y:["A spacer draws nothing and is skipped by a screen reader."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Button",marker:null,platforms:["phone"],acceptsChildren:!0,props:{title:{type:"string",description:"The label, and the accessible name of the button unless an accessibility label is set."},variant:{type:"enum",values:["solid","soft","outline","ghost","link","glass"],default:"solid",description:"The visual weight, heaviest first. Glass suits a button on a gradient or a photo."},tone:{type:"enum",values:["primary","secondary","success","warning","danger","neutral"],default:"primary",description:"The colour family of the button."},size:{type:"enum",values:["xs","sm","md","lg","xl"],default:"md",description:"The size of the button."},loading:{type:"boolean",default:!1,description:"Disables the button and draws a spinner before the title."},disabled:{type:"boolean",default:!1,description:"Blocks presses and dims the button."},fullWidth:{type:"boolean",default:!1,description:"Stretches the button to the full width of its parent."},leftIcon:{type:"icon",description:"An icon before the title."},rightIcon:{type:"icon",description:"An icon after the title."},iconVariant:{type:"enum",values:["linear","bold","broken","bulk","outline","twotone"],description:"The icon style for an icon given by name."},leftIconBadge:{type:"boolean",default:!1,description:"Draws the left icon inside its own disc at the left edge. Ignored on a link."},rounded:{type:"boolean",default:!1,description:"Gives the button fully round ends."},accessibilityHint:{type:"string",description:"What happens when the control is used, read after its name by a screen reader."},accessibilityLabel:{type:"string",description:"Replaces the title as the accessible name of the button."}},omit:["haptic","gradient","pressAnimation","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","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","cancelable","delayHoverIn","delayHoverOut","delayLongPress","pressRetentionOffset","android_disableSound","android_ripple","testOnly_pressed","unstable_pressDelay"],examples:[{id:"Button.solid",title:"Solid",props:{title:"Save",variant:"solid",tone:"primary"}},{id:"Button.outline",title:"Outline",props:{title:"Cancel",variant:"outline",tone:"neutral"}},{id:"Button.danger",title:"Danger",props:{title:"Delete",tone:"danger"}},{id:"Button.icon",title:"With an icon",props:{title:"Add item",leftIcon:"add",size:"lg"}}],usage:{when:["The person starts an action, such as saving, sending or adding.","One action on a screen is the main one and should stand out.","An action is in progress and the button should show it with a spinner."],whenNot:[{text:"The control moves to another screen as part of the text.",instead:"a link variant button"},{text:"The control toggles a setting on or off.",instead:"Switch"}],do:[{note:"Label the button with a verb that says what happens.",example:[{component:"Button",props:{title:"Save changes"}}]}],dont:[{note:"Do not use several solid primary buttons side by side. Only one action is the main one.",example:[{component:"Button",props:{title:"Save"}},{component:"Button",props:{title:"Send"}}]}],a11y:["The title is the accessible name; set an accessibility label only when it should differ.","Pass the label as the title, not as text children, which draw a blank button.","While loading, the button reports itself as disabled and busy."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Calendar",marker:null,platforms:["phone"],acceptsChildren:!1,props:{mode:{type:"enum",values:["single","range"],default:"single",description:"Single picks one day; range picks a start and then an end."},value:{type:"object",required:!0,fields:{start:{type:"string",required:!0,description:"The first day, as an ISO date."},end:{type:"string",description:"The last day of a range, as an ISO date. It is absent while a range is in progress."}},description:"The selection, or null when nothing is picked. Dates are written as ISO strings."},month:{type:"string",description:"A day in the month shown, as an ISO date. Leave it out to let the calendar keep the month."},minDate:{type:"string",description:"The earliest day that can be picked, as an ISO date."},maxDate:{type:"string",description:"The latest day that can be picked, as an ISO date."},disabledDates:{type:"array",description:"Days that cannot be picked, as ISO dates."},weekStartsOn:{type:"enum",values:[0,1,6],default:0,description:"The first weekday of the grid: 0 is Sunday, 1 is Monday and 6 is Saturday."},locale:{type:"string",default:"en-IN",description:"The locale for month, weekday and day names."},markedDates:{type:"array",itemFields:{date:{type:"string",required:!0,description:"The marked day, as an ISO date."},kind:{type:"enum",values:["holiday","event","pending"],required:!0,description:"What the mark means."},label:{type:"string",description:"What the day is, read aloud before its kind."},tone:{type:"enum",values:["success","warning","danger","info","primary","neutral"],description:"The dot colour. It defaults by kind."}},description:"Days drawn with a dot and read aloud with each day."},strikeMarkedInRange:{type:"boolean",default:!1,description:"In range mode, strikes holidays inside a complete range and reads them as not counted."},cellSize:{type:"number",description:"Fixed width and height of each day, at least 44. Unset, days share the width equally."},accessibilityLabel:{type:"string",description:"Names the calendar. It is read with the month heading."}},omit:["haptic"],examples:[{id:"Calendar.single",title:"Single day",props:{value:{start:"2026-10-12"},mode:"single"}},{id:"Calendar.range",title:"Range",props:{value:{start:"2026-10-12",end:"2026-10-16"},mode:"range",strikeMarkedInRange:!0}},{id:"Calendar.mondayStart",title:"Week starts on Monday",props:{value:{start:"2026-10-12"},mode:"single",weekStartsOn:1}}],usage:{when:["The person picks one day or a range from a visible month, such as leave dates.","Holidays or events should show as marks on the days.","The grid should sit inside the page rather than in a sheet."],whenNot:[{text:"The person picks a date from a form field.",instead:"DatePicker"},{text:"The person picks a range from a form field.",instead:"DateRangePicker"}],do:[{note:"Mark holidays so the person sees them before picking a range.",example:[{component:"Calendar",props:{mode:"range",strikeMarkedInRange:!0}}]}],dont:[{note:"Do not set a cell size below 44. The days become hard to tap.",example:[{component:"Calendar",props:{mode:"single",cellSize:30}}]}],a11y:["Each marked day is read aloud with its label and kind.","Days keep a touch target of at least 44 points.","Set accessibilityLabel so the calendar is named with its month heading."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Card",marker:null,platforms:["phone"],acceptsChildren:!0,props:{variant:{type:"enum",values:["elevated","outlined","filled","flat"],default:"elevated",description:"The surface style of the card."},elevation:{type:"enum",values:["none","card","elevated","popover","modal","drawer"],default:"card",description:"The shadow under the card, as a shadow name or none."},radius:{type:"enum",values:["sm","md","lg","xl"],default:"lg",description:"The corner radius."},padding:{type:"enum",values:["none","sm","md","lg","xl"],default:"md",description:"The space inside the card."},interactive:{type:"boolean",default:!1,description:"Makes the whole card pressable."},bg:{type:"string",description:"The background: a background colour name or any colour value. It replaces the variant surface."},header:{type:"node",description:"A free header slot. When set it replaces the built-in header."},title:{type:"node",description:"The built-in header title. A string is drawn as a heading; a node is drawn as it is."},titleFont:{type:"enum",values:["sans","serif"],default:"sans",description:"The face of a string title: the sans text face, or the serif display face. A node title ignores it."},lead:{type:"node",description:"A subtitle line under the title."},action:{type:"node",description:"A header action: a node is drawn as it is, or a label with a press handler draws a text action."},headerActions:{type:"node",description:"Extra nodes drawn in the header row after the action."},collapsible:{type:"boolean",default:!1,description:"Draws a chevron in the header that folds the body and footer away."},collapsed:{type:"boolean",description:"The folded state, when the screen controls it."},defaultCollapsed:{type:"boolean",default:!1,description:"The folded state at the start, when the card keeps its own."},collapsedSummary:{type:"node",description:"Shown under the title while the card is folded."},removeLabel:{type:"string",default:"Remove",description:"The accessible name of the remove button."},separatorHeight:{type:"number",description:"Height of the bottom band of the flat variant. It defaults to a hairline."},footer:{type:"node",description:"A footer slot below the body."},imageHeight:{type:"number",default:160,description:"Height of the card image in points."},imageAspectRatio:{type:"number",description:"The width to height ratio of the card image."},imageOverlay:{type:"node",description:"A node drawn over the card image."},loading:{type:"boolean",default:!1,description:"Draws the placeholder shape instead of the content while data loads."},contextMenu:{type:"object",fields:{items:{type:"any",required:!0,description:"The menu entries: a list of items, or a list of groups of items."},title:{type:"string",description:"A short heading over the items. It is also the accessible name of the menu."},topActions:{type:"array",itemFields:{key:{type:"string",required:!0,description:"A stable id for the item."},label:{type:"string",required:!0,description:"The item text."},icon:{type:"icon",description:"A leading icon."},description:{type:"string",description:"A line under the label. Any description presents the menu as a sheet on a phone."},detail:{type:"string",description:"Short trailing text, such as a count."},checked:{type:"boolean",description:"Draws a check mark and reports the checked state."},destructive:{type:"boolean",description:"Draws the item in the error colour."},disabled:{type:"boolean",description:"Marks the item as unavailable now."},hidden:{type:"boolean",description:"Never shows the item."},submenu:{type:"array",description:"One level of items that replaces the list when this item is chosen."},accessibilityLabel:{type:"string",description:"Replaces the item text for a screen reader."}},description:"Up to three icon actions in a row above the list."},preview:{type:"node",description:"What lifts over the dimmed screen while the menu is open."},unavailable:{type:"enum",values:["hide","disable"],description:"Hide drops an unavailable item; disable shows it dimmed."},presentation:{type:"enum",values:["auto","popover","sheet"],description:"How the menu is drawn. Auto picks a sheet on a phone past seven items or with a description."},placement:{type:"enum",values:["top","bottom","auto"],description:"The preferred side of the pressed card."},accessibilityLabel:{type:"string",description:"Names the menu for a screen reader."},closeLabel:{type:"string",description:"The accessible name of the tap outside area."},backLabel:{type:"string",description:"The accessible name of a submenu's Back row."}},description:"A long press menu. Every item is also a screen reader action on the card."},borderRadius:{type:"number",description:"A corner radius in points for this card. It wins over the radius name."},accessibilityHint:{type:"string",description:"What happens when the control is used, read after its name by a screen reader."},disabled:{type:"boolean",description:"Blocks presses on an interactive card."},accessibilityLabel:{type:"string",description:"Names the card for a screen reader."}},omit:["imageSource","gradient","haptic","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","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","cancelable","delayHoverIn","delayHoverOut","delayLongPress","pressRetentionOffset","android_disableSound","android_ripple","testOnly_pressed","unstable_pressDelay"],examples:[{id:"Card.elevated",title:"Elevated",props:{variant:"elevated",title:"Account summary",lead:"Updated today"},children:"Balance and recent activity appear here."},{id:"Card.outlined",title:"Outlined",props:{variant:"outlined",title:"Notes",padding:"lg"},children:"A short note about this account."},{id:"Card.collapsible",title:"Collapsible",props:{title:"Details",collapsible:!0,defaultCollapsed:!1,collapsedSummary:"3 items"},children:"Three items are listed in this section."}],usage:{when:["Related content should read as one group, such as a summary, a record or a list item.","The group may need a header, a footer, an image or a menu.","The whole group should be pressable and lead somewhere."],whenNot:[{text:"The content is a plain row in a list.",instead:"ListItem"},{text:"The content only needs spacing.",instead:"Box"}],do:[{note:"Give the card a title so the group has a name.",example:[{component:"Card",props:{title:"Account summary"}}]}],dont:[{note:"Do not nest cards inside cards. The surfaces and shadows pile up.",example:[{component:"Card",props:{title:"Outer"},children:[{component:"Card",props:{title:"Inner"}}]}]}],a11y:["Context menu items are also screen reader actions on the card.","Set accessibilityLabel on an interactive card so its purpose is announced."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Carousel",marker:null,platforms:["phone"],acceptsChildren:!1,props:{data:{type:"array",required:!0,description:"The slides. Each entry is handed to the slide renderer."},index:{type:"number",description:"The slide shown, counted from 0, when the screen controls it."},defaultIndex:{type:"number",default:0,description:"The slide shown at the start when the carousel keeps its own position."},autoPlay:{type:"boolean",default:!1,description:"Advances the slides on a timer. It implies loop."},autoPlayInterval:{type:"number",default:4e3,description:"The time between slides when autoPlay is on, in milliseconds."},loop:{type:"boolean",default:!1,description:"Jumps back to the first slide after the last."},showPagination:{type:"boolean",default:!0,description:"Draws the pagination marks under the slides."},paginationStyle:{type:"enum",values:["dots","bars","numbers"],default:"dots",description:"The look of the pagination marks."},itemWidth:{type:"stringOrNumber",description:"Width of each slide in points, or the text screen for the width of the parent.",default:"screen"},spacing:{type:"number",default:0,description:"Horizontal space between slides, in points."},accessibilityLabel:{type:"string",description:"Names the carousel for a screen reader."},showThumbnails:{type:"boolean",default:!1,description:"Draws a strip of small thumbnails under the carousel."},loading:{type:"boolean",default:!1,description:"Draws the placeholder shape instead of the slides while data loads."}},omit:["haptic"],examples:[{id:"Carousel.dots",title:"Dots",props:{data:["Sunset","Mountain","Coast"],showPagination:!0,paginationStyle:"dots"}},{id:"Carousel.bars",title:"Bars with spacing",props:{data:["Sunset","Mountain","Coast"],paginationStyle:"bars",itemWidth:280,spacing:12}},{id:"Carousel.numbers",title:"Numbers",props:{data:["Sunset","Mountain","Coast"],paginationStyle:"numbers",loop:!0}}],usage:{when:["A few slides of the same kind share one place, such as promotions or photos.","The person swipes sideways and sees where they are in the set.","A slide strip should advance on its own, such as a banner rotation."],whenNot:[{text:"The slides are steps of a first run flow.",instead:"OnboardingPager"},{text:"The items are a long scrolling list.",instead:"a list"}],do:[{note:"Keep the set short and show the pagination so the person knows more slides follow.",example:[{component:"Carousel",props:{data:["One","Two","Three"],showPagination:!0}}]}],dont:[{note:"Do not auto play a carousel that holds text the person must read. The slide changes before they finish.",example:[{component:"Carousel",props:{data:["One","Two","Three"],autoPlay:!0,autoPlayInterval:1e3}}]}],a11y:["Set accessibilityLabel so a screen reader names the carousel.","Auto play pauses while the person drags and resumes after a short idle time."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Checkbox",marker:null,platforms:["phone"],acceptsChildren:!1,props:{checked:{type:"boolean",description:"Whether the box is checked, when the screen controls it."},defaultChecked:{type:"boolean",description:"Whether the box starts checked, when the checkbox keeps its own state."},indeterminate:{type:"boolean",default:!1,description:"Draws the mixed state, such as a select all box with some rows chosen."},disabled:{type:"boolean",default:!1,description:"Blocks presses and dims the checkbox."},label:{type:"node",description:"The text beside the box. A node label needs an accessibility label."},description:{type:"node",description:"A secondary line under the label."},error:{type:"node",description:"An error line under the label. It also draws the box in the error colour; true shows the error state without a message."},help:{type:"node",description:"A node beside the label, such as an info button. It is not part of the checkbox and does not toggle it."},labelLines:{type:"number",description:"The lines the label may take before it truncates. Zero or unset means no limit."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"The size of the box."},tone:{type:"enum",values:["primary","success","warning","danger"],default:"primary",description:"The colour of the checked box."},accessibilityHint:{type:"string",description:"What happens when the control is used, read after its name by a screen reader."},accessibilityLabel:{type:"string",description:"The accessible name of the checkbox. Needed when the label is a node."}},omit:["haptic","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","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","cancelable","delayHoverIn","delayHoverOut","delayLongPress","pressRetentionOffset","android_disableSound","android_ripple","testOnly_pressed","unstable_pressDelay"],examples:[{id:"Checkbox.checked",title:"Checked",props:{checked:!0,label:"Email me a receipt"}},{id:"Checkbox.description",title:"With a description",props:{checked:!1,label:"Subscribe to updates",description:"A monthly summary, no more."}},{id:"Checkbox.error",title:"Error",props:{checked:!1,label:"I accept the terms",error:"You must accept the terms to continue."}},{id:"Checkbox.indeterminate",title:"Mixed state",props:{indeterminate:!0,label:"Select all",size:"lg"}}],usage:{when:["The person picks any number of options from a list.","A single yes or no needs to be saved with a form, such as accepting terms.","A parent box should show that only some of its rows are chosen."],whenNot:[{text:"The person picks exactly one option.",instead:"Radio"},{text:"The setting takes effect at once when changed.",instead:"Switch"}],do:[{note:"Write the label so a checked box reads as a true statement.",example:[{component:"Checkbox",props:{checked:!0,label:"Email me a receipt"}}]}],dont:[{note:"Do not leave a checkbox with no label. The person cannot tell what it controls.",example:[{component:"Checkbox",props:{checked:!1}}]}],a11y:["A node label needs an accessibility label, which becomes the screen reader name.","Pressing the help node beside the label does not toggle the checkbox."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Chip",marker:null,platforms:["phone"],acceptsChildren:!1,props:{label:{type:"string",required:!0,description:"Chip text."},count:{type:"stringOrNumber",description:'A figure after the label, drawn quieter than it (regular weight, caption size, tabular digits): "Open" with `count={4}`.'},selected:{type:"boolean",default:!1,description:"Selected visual state."},selectionMode:{type:"enum",values:["single","multiple","radio"],default:"single",description:"How a pressable chip announces itself."},leftIcon:{type:"icon",description:"Icon before the label."},iconVariant:{type:"enum",values:["linear","bold","broken","bulk","outline","twotone"],description:"Iconsax style for a leftIcon given as a name. Default linear."},variant:{type:"enum",values:["filled","outlined","soft"],default:"filled",description:"Visual style."},tone:{type:"enum",values:["primary","neutral","success","warning","danger","info"],default:"neutral",description:"Semantic color."},size:{type:"enum",values:["sm","md"],default:"md",description:"Size scale."},disabled:{type:"boolean",default:!1,description:"Disabled state."},loading:{type:"boolean",default:!1,description:"When true, renders the component as its authored skeleton placeholder shape."},accessibilityLabel:{type:"string",description:"Overrides the default accessibility label."}},omit:["haptic"],examples:[{id:"Chip.default",title:"Default",props:{label:"Engineering"}},{id:"Chip.selected",title:"Selected multiple",props:{label:"Design",selected:!0,selectionMode:"multiple",tone:"primary"}},{id:"Chip.count",title:"With count",props:{label:"Open",count:4,variant:"outlined"}},{id:"Chip.withIcon",title:"With icon",props:{label:"Starred",leftIcon:"star",variant:"soft",tone:"primary"}}],usage:{when:["A compact tag, optionally selectable or closable.","A compact pill for filters, tags, and selections."],whenNot:[{text:"When the affordance is an action.",instead:"Button"},{text:"For 2 to 4 short values in a single exclusive switch.",instead:"SegmentedControl"},{text:"When options can wrap freely or be multi-select and the library should manage the selection state.",instead:"ChoiceGroup"}],do:[{note:"Pass a string or number to count to render a figure after the label.",example:[{component:"Chip",props:{label:"Open",count:4}}]}],dont:[{note:"Do not pass 0 to count if you want it hidden while loading.",example:[{component:"Chip",props:{label:"Open",count:0}}]}],a11y:["Announces as a radio, a checkbox, or a button depending on the selection mode.","Exposes a checked state for radio and multiple selection modes, and a selected state otherwise.","A radio chip adds vertical hit slop to reach a 44 point touch target."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"ChoiceGroup",marker:null,platforms:["phone"],acceptsChildren:!1,props:{value:{type:"any",description:"The selected value when the parent controls it: one option's value, or a list of them when several can be chosen."},options:{type:"array",required:!0,description:"The choices, in the ChoiceOption shape by default.",itemFields:{label:{type:"string",required:!0,description:"The text shown for the option and read aloud."},value:{type:"stringOrNumber",required:!0,description:"The value the group stores when this option is chosen."},color:{type:"string",description:"Tints the default card's label, border, dot and selected fill; defaults to the primary colour."},description:{type:"string",description:"A second line shown on the card only; the chip is label and icon alone."},icon:{type:"icon",description:"Icon before the label: an AppIcon name drawn in the option's current ink and bold while selected, or a name and variant object, a render function or any node."},disabled:{type:"boolean",description:"Disables this option only."}}},selectionMode:{type:"enum",values:["single","multiple"],description:"Single picks one option (radio); multiple toggles any number (checkbox). Defaults to single."},variant:{type:"enum",values:["card","chip"],default:"card",description:"Look of the built-in template: the bordered card or the icon-and-label chip."},indicatorPosition:{type:"enum",values:["leading","trailing"],default:"trailing",description:"Side of the card the radio dot sits on; the chip has no dot."},direction:{type:"enum",values:["row","column"],default:"row",description:"Main axis of the option list."},size:{type:"enum",values:["sm","md","lg"],default:"md",description:"Density of the built-in templates: padding, font size, icon and dot."},gap:{type:"number",description:"Gap between options. Default theme.space.sm."},wrap:{type:"boolean",default:!1,description:"Allow options to wrap onto multiple lines (swatch grids)."},fullWidth:{type:"boolean",description:"Stretch options equally along the main axis. Default true for an unwrapped row of cards, false otherwise; a chip hugs its content."},disabled:{type:"boolean",default:!1,description:"Disables the whole group; per-option disabled still applies on top."},labelLines:{type:"number",default:1,description:"Lines an option label may take in the built-in templates before it ends in an ellipsis."},descriptionLines:{type:"number",default:2,description:"Lines an option description may take in the card before it ends in an ellipsis."},accessibilityLabel:{type:"string",description:"Accessible label for the group."},min:{type:"number",description:"Multiple mode only: fewest options that stay selected. Pressing a selected option at this count does nothing."},max:{type:"number",description:"Multiple mode only: most options that can be selected. At this count the unselected options are disabled."}},omit:["defaultValue","haptic"],examples:[{id:"ChoiceGroup.status",title:"Status cards",props:{options:[{label:"Hot",value:"Hot",icon:"flash"},{label:"Warm",value:"Warm",icon:"sun-1"},{label:"Cold",value:"Cold",icon:"cloud"}],value:"Hot"}},{id:"ChoiceGroup.chip",title:"Role chips",props:{variant:"chip",options:[{label:"Admin",value:"admin",icon:"shield-tick"},{label:"Finance",value:"finance",icon:"wallet-2"},{label:"Viewer",value:"viewer",icon:"eye"}],value:"finance"}},{id:"ChoiceGroup.column",title:"Plans in a column",props:{direction:"column",indicatorPosition:"leading",options:[{label:"Free",value:"free",description:"Hobby projects"},{label:"Pro",value:"pro",description:"Solo professionals"},{label:"Team",value:"team",description:"Up to 10 seats"}],value:"pro"}}],usage:{when:["Choosing one option from a short, fully visible set, such as a status or a plan.","Picking a role or filter where each choice has its own icon (the chip variant)."],whenNot:[{text:"The list is long and needs scrolling or search",instead:"Select"},{text:"The options must join into one bar of segments that slides",instead:"SegmentedControl"},{text:"The question is a single yes or no",instead:"Checkbox"}],do:[{note:"Give each option a label and a value, and pass a default so one option starts selected.",example:[{component:"ChoiceGroup",props:{options:[{label:"Hot",value:"Hot"},{label:"Warm",value:"Warm"},{label:"Cold",value:"Cold"}],value:"Hot"}}]}],dont:[{note:"Pass a single value in multiple mode; multiple mode takes an array of values.",example:[{component:"ChoiceGroup",props:{selectionMode:"multiple",options:[{label:"Hot",value:"Hot"},{label:"Warm",value:"Warm"}],value:"Hot"}}]}],a11y:["Single mode exposes a radiogroup of radio options; multiple mode exposes checkboxes with checked state and no radiogroup role.","Each option is read with its label, and a card reads its full description even when the text is cut short on screen.","A disabled group or option is announced as disabled and cannot be pressed."]}});
@@ -0,0 +1 @@
1
+ "use strict";import{definePhoneMeta}from"../../canvasKit/meta.js";export const meta=definePhoneMeta()({name:"Composer",marker:null,platforms:["phone"],acceptsChildren:!1,props:{placeholder:{type:"string",default:"Message",description:"The placeholder text shown while the box is empty."},value:{type:"string",description:"Controlled draft text; leave unset and the composer keeps its own."},accessibilityLabel:{type:"string",description:"The text box's screen reader name, defaulting to the placeholder."},sendLabel:{type:"string",default:"Send",description:"The send button's screen reader name."},busy:{type:"boolean",default:!1,description:"A reply is arriving: the person can type but not send, and send shows a spinner."},disabled:{type:"boolean",default:!1,description:"Nothing can be typed or sent."},maxLength:{type:"number",description:"The maximum number of characters the box accepts."},maxLines:{type:"number",default:5,description:"The box grows to this many lines, then scrolls."},leading:{type:"node",description:"Before the box, e.g. an attach button."},trailing:{type:"node",description:"Between the box and send, e.g. a microphone button."},above:{type:"node",description:"Inside the bar, above the row: a banner or note that rides the keyboard too."},below:{type:"node",description:"Inside the bar, below the row: a disclaimer."},keyboardAware:{type:"boolean",default:!0,description:"Rides the keyboard so the composer stays visible above it."},keyboardOffset:{type:"number",description:"How far below the bar the keyboard top starts: the bottom safe area inset plus anything under it."},safeArea:{type:"boolean",default:!0,description:"Pad the bar for the bottom safe area, or turn off above a tab bar."},autoFocus:{type:"boolean",description:"Focuses the text input when the component mounts."}},omit:["haptic"],examples:[{id:"Composer.default",title:"Default",props:{placeholder:"Message Asha",keyboardAware:!1,safeArea:!1}},{id:"Composer.busy",title:"Reply arriving",props:{placeholder:"Message Asha",busy:!0,keyboardAware:!1,safeArea:!1}},{id:"Composer.disabled",title:"Closed conversation",props:{placeholder:"Messaging is closed",disabled:!0,keyboardAware:!1,safeArea:!1}}],usage:{when:["Provide the message input bar at the bottom of a chat screen.","Allow typing messages with an integrated send button and action slots.","Pair with MessageList to ride the keyboard automatically in a chat view."],whenNot:[{text:"A single labelled field.",instead:"Input"},{text:"A long form answer.",instead:"Input with type textarea"}],do:[{note:"Turn off keyboardAware when placing the composer inside a sheet that already moves with the keyboard.",example:[{component:"Composer",props:{placeholder:"Message Asha",keyboardAware:!1}}]}],dont:[{note:"Do not leave keyboardAware enabled inside a sheet that already moves with the keyboard.",example:[{component:"Composer",props:{placeholder:"Message Asha",keyboardAware:!0}}]}],a11y:["The text input accessibility label defaults to the placeholder text when accessibilityLabel is unset.","The send button accessibility label uses sendLabel, which defaults to Send.","The send button reports its disabled or busy loading state to assistive technologies."]}});