pixelize-native-library 1.2.0 → 1.3.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 (921) hide show
  1. package/COMPONENT-GOTCHAS.md +309 -0
  2. package/DESIGN-GUIDE.md +215 -0
  3. package/README.md +44 -0
  4. package/lib/module/core/MODULE.md +23 -16
  5. package/lib/module/core/a11y/MODULE.md +7 -7
  6. package/lib/module/core/a11y/touchTarget.js +6 -0
  7. package/lib/module/core/blur/blur.js +17 -0
  8. package/lib/module/core/blur/index.js +4 -0
  9. package/lib/module/core/device/MODULE.md +5 -8
  10. package/lib/module/core/gradient/AccentGradientFill.js +83 -0
  11. package/lib/module/core/gradient/ShimmerGradientFill.js +79 -0
  12. package/lib/module/core/gradient/darkenHex.js +13 -0
  13. package/lib/module/core/gradient/gradientStops.js +27 -0
  14. package/lib/module/core/gradient/index.js +8 -0
  15. package/lib/module/core/gradient/withAlpha.js +19 -0
  16. package/lib/module/core/haptics/MODULE.md +8 -0
  17. package/lib/module/core/haptics/context.js +7 -0
  18. package/lib/module/core/haptics/haptics.js +17 -0
  19. package/lib/module/core/haptics/index.js +6 -0
  20. package/lib/module/core/haptics/useHaptics.js +73 -0
  21. package/lib/module/core/heading/MODULE.md +1 -1
  22. package/lib/module/core/icon/MODULE.md +22 -23
  23. package/lib/module/core/icon/icons/building-2.js +1 -1
  24. package/lib/module/core/icon/icons/trash.js +1 -1
  25. package/lib/module/core/icon/icons/trending-up.js +10 -0
  26. package/lib/module/core/icon/resolve.js +2 -0
  27. package/lib/module/core/list/VirtualList.js +16 -3
  28. package/lib/module/core/media/expoImage.js +6 -0
  29. package/lib/module/core/motion/MODULE.md +25 -16
  30. package/lib/module/core/motion/animatedComponents.js +8 -0
  31. package/lib/module/core/motion/config.js +4 -1
  32. package/lib/module/core/motion/index.js +4 -1
  33. package/lib/module/core/motion/motionAnimation.js +87 -0
  34. package/lib/module/core/motion/presets.js +81 -81
  35. package/lib/module/core/motion/reanimatedEasing.js +19 -0
  36. package/lib/module/core/motion/useAnimatedValue.js +2 -14
  37. package/lib/module/core/motion/useMotion.js +19 -20
  38. package/lib/module/core/motion/usePressState.js +140 -0
  39. package/lib/module/core/overlay/MODULE.md +17 -0
  40. package/lib/module/core/overlay/ModalPortalContext.js +8 -0
  41. package/lib/module/core/overlay/index.js +5 -0
  42. package/lib/module/core/overlay/renderWebPortal.js +6 -0
  43. package/lib/module/core/overlay/renderWebPortal.web.js +8 -0
  44. package/lib/module/core/screen-scroll/ScreenScrollContext.js +9 -0
  45. package/lib/module/core/screen-scroll/index.js +4 -0
  46. package/lib/module/core/slot/MODULE.md +9 -0
  47. package/lib/module/core/slot/index.js +4 -0
  48. package/lib/module/core/slot/nodeSlot.js +21 -0
  49. package/lib/module/core/style/focusRing.js +37 -0
  50. package/lib/module/core/style/index.js +2 -1
  51. package/lib/module/core/style/radius.js +4 -0
  52. package/lib/module/index.js +24 -4
  53. package/lib/module/modules/accordion/Accordion.js +115 -153
  54. package/lib/module/modules/accordion/Accordion.variants.js +6 -7
  55. package/lib/module/modules/accordion/AccordionProps.js +4 -0
  56. package/lib/module/modules/accordion/MODULE.md +15 -23
  57. package/lib/module/modules/alert-dialog/AlertDialog.js +25 -7
  58. package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
  59. package/lib/module/modules/alert-dialog/AlertDialogProps.js +4 -0
  60. package/lib/module/modules/alert-dialog/MODULE.md +2 -1
  61. package/lib/module/modules/app-bar/AppBar.js +27 -22
  62. package/lib/module/modules/app-bar/AppBar.variants.js +6 -2
  63. package/lib/module/modules/app-bar/AppBarProps.js +4 -0
  64. package/lib/module/modules/app-bar/MODULE.md +1 -1
  65. package/lib/module/modules/app-switcher/AppSwitcher.js +30 -0
  66. package/lib/module/modules/app-switcher/AppSwitcherProps.js +4 -0
  67. package/lib/module/modules/app-switcher/MODULE.md +14 -0
  68. package/lib/module/modules/app-switcher/index.js +4 -0
  69. package/lib/module/modules/appearance-settings/AppearanceSettings.js +58 -0
  70. package/lib/module/modules/appearance-settings/AppearanceSettingsProps.js +4 -0
  71. package/lib/module/modules/appearance-settings/MODULE.md +9 -0
  72. package/lib/module/modules/appearance-settings/index.js +4 -0
  73. package/lib/module/modules/avatar/Avatar.js +7 -1
  74. package/lib/module/modules/avatar/Avatar.variants.js +3 -1
  75. package/lib/module/modules/avatar/AvatarProps.js +4 -0
  76. package/lib/module/modules/avatar/MODULE.md +3 -3
  77. package/lib/module/modules/avatar-group/AvatarGroup.js +10 -6
  78. package/lib/module/modules/avatar-group/AvatarGroup.variants.js +23 -0
  79. package/lib/module/modules/avatar-group/AvatarGroupProps.js +4 -0
  80. package/lib/module/modules/avatar-group/MODULE.md +17 -0
  81. package/lib/module/modules/backdrop/Backdrop.js +38 -0
  82. package/lib/module/modules/backdrop/BackdropProps.js +4 -0
  83. package/lib/module/modules/backdrop/MODULE.md +11 -0
  84. package/lib/module/modules/backdrop/index.js +4 -0
  85. package/lib/module/modules/badge/Badge.js +11 -5
  86. package/lib/module/modules/badge/Badge.variants.js +2 -1
  87. package/lib/module/modules/badge/BadgeProps.js +4 -0
  88. package/lib/module/modules/badge/MODULE.md +11 -9
  89. package/lib/module/modules/banner/Banner.js +106 -60
  90. package/lib/module/modules/banner/Banner.variants.js +5 -3
  91. package/lib/module/modules/banner/BannerProps.js +4 -0
  92. package/lib/module/modules/banner/MODULE.md +27 -33
  93. package/lib/module/modules/bottom-nav/BottomNav.js +6 -3
  94. package/lib/module/modules/bottom-nav/BottomNav.variants.js +11 -12
  95. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +18 -19
  96. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +35 -10
  97. package/lib/module/modules/bottom-nav/BottomNavProps.js +4 -0
  98. package/lib/module/modules/bottom-nav/BottomNavTab.js +38 -15
  99. package/lib/module/modules/bottom-nav/MODULE.md +14 -5
  100. package/lib/module/modules/bottom-sheet/BottomSheet.js +49 -13
  101. package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +15 -5
  102. package/lib/module/modules/bottom-sheet/BottomSheetProps.js +4 -0
  103. package/lib/module/modules/bottom-sheet/MODULE.md +24 -3
  104. package/lib/module/modules/breadcrumbs/Breadcrumbs.js +54 -0
  105. package/lib/module/modules/breadcrumbs/Breadcrumbs.variants.js +28 -0
  106. package/lib/module/modules/breadcrumbs/BreadcrumbsProps.js +4 -0
  107. package/lib/module/modules/breadcrumbs/MODULE.md +13 -0
  108. package/lib/module/modules/breadcrumbs/index.js +4 -0
  109. package/lib/module/modules/button/Button.js +89 -101
  110. package/lib/module/modules/button/Button.variants.js +14 -17
  111. package/lib/module/modules/button/ButtonProps.js +4 -0
  112. package/lib/module/modules/button/MODULE.md +11 -10
  113. package/lib/module/modules/button-group/ButtonGroup.js +38 -38
  114. package/lib/module/modules/button-group/ButtonGroup.variants.js +23 -50
  115. package/lib/module/modules/button-group/ButtonGroupProps.js +4 -0
  116. package/lib/module/modules/button-group/MODULE.md +27 -32
  117. package/lib/module/modules/card/Card.js +140 -19
  118. package/lib/module/modules/card/Card.variants.js +1 -0
  119. package/lib/module/modules/card/CardProps.js +4 -0
  120. package/lib/module/modules/card/MODULE.md +17 -12
  121. package/lib/module/modules/charts/BarChart.js +35 -18
  122. package/lib/module/modules/charts/BarChartProps.js +4 -0
  123. package/lib/module/modules/charts/BarList.js +33 -19
  124. package/lib/module/modules/charts/BarListProps.js +4 -0
  125. package/lib/module/modules/charts/ChartLegendProps.js +4 -0
  126. package/lib/module/modules/charts/Charts.variants.js +69 -3
  127. package/lib/module/modules/charts/DonutChart.js +12 -6
  128. package/lib/module/modules/charts/DonutChartProps.js +4 -0
  129. package/lib/module/modules/charts/LineChart.js +8 -5
  130. package/lib/module/modules/charts/LineChartProps.js +4 -0
  131. package/lib/module/modules/charts/MODULE.md +33 -20
  132. package/lib/module/modules/charts/PieChart.js +19 -8
  133. package/lib/module/modules/charts/PieChartProps.js +4 -0
  134. package/lib/module/modules/charts/Sparkline.js +4 -2
  135. package/lib/module/modules/charts/SparklineProps.js +4 -0
  136. package/lib/module/modules/checkbox/Checkbox.js +30 -28
  137. package/lib/module/modules/checkbox/Checkbox.variants.js +4 -2
  138. package/lib/module/modules/checkbox/CheckboxProps.js +4 -0
  139. package/lib/module/modules/checkbox/MODULE.md +17 -6
  140. package/lib/module/modules/chip/Chip.js +116 -54
  141. package/lib/module/modules/chip/Chip.variants.js +18 -5
  142. package/lib/module/modules/chip/ChipGroup.js +16 -5
  143. package/lib/module/modules/chip/ChipGroupProps.js +4 -0
  144. package/lib/module/modules/chip/ChipProps.js +4 -0
  145. package/lib/module/modules/chip/MODULE.md +8 -8
  146. package/lib/module/modules/combobox/Combobox.js +111 -78
  147. package/lib/module/modules/combobox/Combobox.variants.js +24 -10
  148. package/lib/module/modules/combobox/ComboboxProps.js +4 -0
  149. package/lib/module/modules/combobox/MODULE.md +14 -10
  150. package/lib/module/modules/composer/Composer.js +20 -11
  151. package/lib/module/modules/composer/Composer.variants.js +2 -0
  152. package/lib/module/modules/composer/ComposerProps.js +4 -0
  153. package/lib/module/modules/composer/MODULE.md +7 -2
  154. package/lib/module/modules/copy-button/CopyButton.js +35 -9
  155. package/lib/module/modules/copy-button/CopyButton.variants.js +7 -4
  156. package/lib/module/modules/copy-button/CopyButtonProps.js +4 -0
  157. package/lib/module/modules/copy-button/MODULE.md +11 -8
  158. package/lib/module/modules/data-table/DataTable.js +37 -14
  159. package/lib/module/modules/data-table/DataTable.variants.js +5 -4
  160. package/lib/module/modules/data-table/DataTableProps.js +4 -0
  161. package/lib/module/modules/data-table/MODULE.md +6 -10
  162. package/lib/module/modules/date-picker/Calendar.js +78 -29
  163. package/lib/module/modules/date-picker/CalendarProps.js +4 -0
  164. package/lib/module/modules/date-picker/DatePicker.variants.js +26 -10
  165. package/lib/module/modules/date-picker/DatePickerProps.js +4 -0
  166. package/lib/module/modules/date-picker/DateRangePickerProps.js +4 -0
  167. package/lib/module/modules/date-picker/MODULE.md +29 -11
  168. package/lib/module/modules/date-picker/PickerField.js +13 -4
  169. package/lib/module/modules/date-picker/PickerFieldProps.js +4 -0
  170. package/lib/module/modules/date-picker/PickerShell.js +23 -12
  171. package/lib/module/modules/date-picker/PickerShellProps.js +4 -0
  172. package/lib/module/modules/date-picker/TimePicker.js +15 -19
  173. package/lib/module/modules/date-picker/TimePickerProps.js +4 -0
  174. package/lib/module/modules/description-list/DescriptionList.js +90 -0
  175. package/lib/module/modules/description-list/DescriptionList.variants.js +63 -0
  176. package/lib/module/modules/description-list/DescriptionListProps.js +4 -0
  177. package/lib/module/modules/description-list/MODULE.md +15 -0
  178. package/lib/module/modules/description-list/index.js +4 -0
  179. package/lib/module/modules/divider/Divider.variants.js +6 -5
  180. package/lib/module/modules/divider/DividerProps.js +4 -0
  181. package/lib/module/modules/divider/MODULE.md +1 -6
  182. package/lib/module/modules/document-viewer/DocumentViewer.js +35 -0
  183. package/lib/module/modules/document-viewer/DocumentViewerProps.js +4 -0
  184. package/lib/module/modules/document-viewer/MODULE.md +12 -0
  185. package/lib/module/modules/document-viewer/index.js +4 -0
  186. package/lib/module/modules/drawer/Drawer.js +62 -45
  187. package/lib/module/modules/drawer/Drawer.variants.js +4 -4
  188. package/lib/module/modules/drawer/DrawerProps.js +4 -0
  189. package/lib/module/modules/drawer/MODULE.md +14 -21
  190. package/lib/module/modules/empty-state/EmptyState.js +19 -29
  191. package/lib/module/modules/empty-state/EmptyState.variants.js +7 -0
  192. package/lib/module/modules/empty-state/EmptyStateProps.js +4 -0
  193. package/lib/module/modules/empty-state/MODULE.md +5 -9
  194. package/lib/module/modules/fab/Fab.js +47 -69
  195. package/lib/module/modules/fab/Fab.variants.js +25 -5
  196. package/lib/module/modules/fab/FabGroup.js +113 -89
  197. package/lib/module/modules/fab/FabGroupProps.js +4 -0
  198. package/lib/module/modules/fab/FabProps.js +4 -0
  199. package/lib/module/modules/fab/MODULE.md +17 -11
  200. package/lib/module/modules/field-select-modal/FieldSelectModal.js +52 -0
  201. package/lib/module/modules/field-select-modal/FieldSelectModalProps.js +4 -0
  202. package/lib/module/modules/field-select-modal/MODULE.md +13 -0
  203. package/lib/module/modules/field-select-modal/index.js +4 -0
  204. package/lib/module/modules/file-grid/FileGrid.js +31 -16
  205. package/lib/module/modules/file-grid/FileGrid.variants.js +2 -2
  206. package/lib/module/modules/file-grid/FileGridProps.js +4 -0
  207. package/lib/module/modules/file-grid/MODULE.md +29 -4
  208. package/lib/module/modules/file-upload/FileUpload.js +56 -15
  209. package/lib/module/modules/file-upload/FileUpload.variants.js +3 -1
  210. package/lib/module/modules/file-upload/FileUploadProps.js +4 -0
  211. package/lib/module/modules/file-upload/MODULE.md +10 -12
  212. package/lib/module/modules/filter-bar/FilterBar.js +68 -0
  213. package/lib/module/modules/filter-bar/FilterBarProps.js +4 -0
  214. package/lib/module/modules/filter-bar/MODULE.md +16 -0
  215. package/lib/module/modules/filter-bar/index.js +4 -0
  216. package/lib/module/modules/filter-sheet/FilterChip.js +13 -4
  217. package/lib/module/modules/filter-sheet/FilterChipProps.js +4 -0
  218. package/lib/module/modules/filter-sheet/FilterSheet.js +19 -14
  219. package/lib/module/modules/filter-sheet/FilterSheet.variants.js +2 -3
  220. package/lib/module/modules/filter-sheet/FilterSheetBody.js +39 -17
  221. package/lib/module/modules/filter-sheet/FilterSheetProps.js +2 -0
  222. package/lib/module/modules/filter-sheet/MODULE.md +4 -4
  223. package/lib/module/modules/folder-row/FolderRow.js +33 -19
  224. package/lib/module/modules/folder-row/FolderRow.variants.js +4 -2
  225. package/lib/module/modules/folder-row/FolderRowProps.js +4 -0
  226. package/lib/module/modules/folder-row/MODULE.md +6 -4
  227. package/lib/module/modules/form-field/FormField.js +9 -4
  228. package/lib/module/modules/form-field/FormFieldProps.js +4 -0
  229. package/lib/module/modules/form-field/MODULE.md +2 -7
  230. package/lib/module/modules/gantt/Gantt.js +52 -14
  231. package/lib/module/modules/gantt/Gantt.variants.js +47 -3
  232. package/lib/module/modules/gantt/GanttProps.js +4 -0
  233. package/lib/module/modules/gantt/MODULE.md +14 -4
  234. package/lib/module/modules/image-viewer/ImageViewer.js +37 -6
  235. package/lib/module/modules/image-viewer/ImageViewerProps.js +4 -0
  236. package/lib/module/modules/image-viewer/MODULE.md +7 -1
  237. package/lib/module/modules/input/Input.js +75 -27
  238. package/lib/module/modules/input/Input.variants.js +10 -10
  239. package/lib/module/modules/input/InputProps.js +4 -0
  240. package/lib/module/modules/input/MODULE.md +9 -14
  241. package/lib/module/modules/key-value/KeyValue.js +36 -0
  242. package/lib/module/modules/key-value/KeyValueProps.js +4 -0
  243. package/lib/module/modules/key-value/MODULE.md +16 -0
  244. package/lib/module/modules/key-value/index.js +4 -0
  245. package/lib/module/modules/limit-reached-modal/LimitReachedModalProps.js +4 -0
  246. package/lib/module/modules/limit-reached-modal/MODULE.md +1 -6
  247. package/lib/module/modules/list-item/ListItem.js +60 -27
  248. package/lib/module/modules/list-item/ListItem.variants.js +11 -2
  249. package/lib/module/modules/list-item/ListItemProps.js +4 -0
  250. package/lib/module/modules/list-item/MODULE.md +14 -10
  251. package/lib/module/modules/list-screen/ListScreen.js +63 -0
  252. package/lib/module/modules/list-screen/ListScreenProps.js +4 -0
  253. package/lib/module/modules/list-screen/MODULE.md +12 -0
  254. package/lib/module/modules/list-screen/index.js +4 -0
  255. package/lib/module/modules/markdown/MODULE.md +6 -5
  256. package/lib/module/modules/markdown/Markdown.js +57 -22
  257. package/lib/module/modules/markdown/Markdown.variants.js +2 -1
  258. package/lib/module/modules/markdown/MarkdownProps.js +4 -0
  259. package/lib/module/modules/menu/MODULE.md +11 -7
  260. package/lib/module/modules/menu/Menu.js +149 -76
  261. package/lib/module/modules/menu/Menu.variants.js +5 -5
  262. package/lib/module/modules/menu/MenuProps.js +4 -0
  263. package/lib/module/modules/message-bubble/MODULE.md +7 -3
  264. package/lib/module/modules/message-bubble/MessageBubble.js +4 -5
  265. package/lib/module/modules/message-bubble/MessageBubble.variants.js +5 -5
  266. package/lib/module/modules/message-bubble/MessageBubbleProps.js +4 -0
  267. package/lib/module/modules/modal/MODULE.md +63 -89
  268. package/lib/module/modules/modal/Modal.js +168 -47
  269. package/lib/module/modules/modal/Modal.variants.js +2 -2
  270. package/lib/module/modules/modal/ModalPortalContext.js +1 -22
  271. package/lib/module/modules/modal/ModalPortalProvider.js +1 -1
  272. package/lib/module/modules/modal/ModalPortalProviderProps.js +4 -0
  273. package/lib/module/modules/modal/ModalProps.js +4 -0
  274. package/lib/module/modules/modal/renderWebPortal.js +1 -15
  275. package/lib/module/modules/modal/renderWebPortal.web.js +1 -21
  276. package/lib/module/modules/more-items/MODULE.md +3 -0
  277. package/lib/module/modules/more-items/MoreItems.js +16 -7
  278. package/lib/module/modules/more-items/MoreItems.variants.js +6 -2
  279. package/lib/module/modules/more-items/MoreItemsProps.js +4 -0
  280. package/lib/module/modules/multi-select/MODULE.md +5 -6
  281. package/lib/module/modules/multi-select/MultiSelect.js +61 -24
  282. package/lib/module/modules/multi-select/MultiSelect.variants.js +8 -4
  283. package/lib/module/modules/multi-select/MultiSelectProps.js +4 -0
  284. package/lib/module/modules/notification-bell/MODULE.md +8 -0
  285. package/lib/module/modules/notification-bell/NotificationBell.js +43 -0
  286. package/lib/module/modules/notification-bell/NotificationBellProps.js +4 -0
  287. package/lib/module/modules/notification-bell/index.js +4 -0
  288. package/lib/module/modules/number-input/MODULE.md +10 -14
  289. package/lib/module/modules/number-input/NumberInput.js +100 -85
  290. package/lib/module/modules/number-input/NumberInput.variants.js +11 -10
  291. package/lib/module/modules/number-input/NumberInputProps.js +4 -0
  292. package/lib/module/modules/org-switcher/MODULE.md +13 -8
  293. package/lib/module/modules/org-switcher/OrgSwitcher.js +34 -21
  294. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +8 -4
  295. package/lib/module/modules/org-switcher/OrgSwitcherProps.js +4 -0
  296. package/lib/module/modules/pagination/MODULE.md +4 -7
  297. package/lib/module/modules/pagination/Pagination.js +97 -48
  298. package/lib/module/modules/pagination/Pagination.variants.js +6 -4
  299. package/lib/module/modules/pagination/PaginationControls.js +58 -36
  300. package/lib/module/modules/pagination/PaginationProps.js +4 -0
  301. package/lib/module/modules/person-chip/MODULE.md +11 -0
  302. package/lib/module/modules/person-chip/PersonChip.js +65 -0
  303. package/lib/module/modules/person-chip/PersonChipProps.js +4 -0
  304. package/lib/module/modules/person-chip/index.js +4 -0
  305. package/lib/module/modules/pin-input/MODULE.md +12 -19
  306. package/lib/module/modules/pin-input/PinInput.js +10 -3
  307. package/lib/module/modules/pin-input/PinInput.variants.js +4 -4
  308. package/lib/module/modules/pin-input/PinInputProps.js +4 -0
  309. package/lib/module/modules/plan-badge/MODULE.md +4 -0
  310. package/lib/module/modules/plan-badge/PlanBadge.js +25 -0
  311. package/lib/module/modules/plan-badge/PlanBadgeProps.js +4 -0
  312. package/lib/module/modules/plan-badge/index.js +4 -0
  313. package/lib/module/modules/plan-pill/MODULE.md +4 -0
  314. package/lib/module/modules/plan-pill/PlanPill.js +24 -0
  315. package/lib/module/modules/plan-pill/PlanPillProps.js +4 -0
  316. package/lib/module/modules/plan-pill/index.js +4 -0
  317. package/lib/module/modules/progress-bar/MODULE.md +12 -14
  318. package/lib/module/modules/progress-bar/ProgressBar.js +28 -36
  319. package/lib/module/modules/progress-bar/ProgressBarProps.js +4 -0
  320. package/lib/module/modules/radio-group/MODULE.md +7 -13
  321. package/lib/module/modules/radio-group/RadioGroup.js +125 -65
  322. package/lib/module/modules/radio-group/RadioGroup.variants.js +4 -4
  323. package/lib/module/modules/radio-group/RadioGroupProps.js +4 -0
  324. package/lib/module/modules/reorder/MODULE.md +7 -9
  325. package/lib/module/modules/reorder/Reorder.js +12 -6
  326. package/lib/module/modules/reorder/Reorder.variants.js +7 -6
  327. package/lib/module/modules/reorder/ReorderProps.js +4 -0
  328. package/lib/module/modules/rich-text/MODULE.md +5 -3
  329. package/lib/module/modules/rich-text/RichText.js +42 -22
  330. package/lib/module/modules/rich-text/RichTextProps.js +4 -0
  331. package/lib/module/modules/rich-text-editor/MODULE.md +8 -15
  332. package/lib/module/modules/rich-text-editor/RichTextEditor.js +13 -5
  333. package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +9 -6
  334. package/lib/module/modules/rich-text-editor/RichTextEditorProps.js +4 -0
  335. package/lib/module/modules/save-bar/MODULE.md +3 -0
  336. package/lib/module/modules/save-bar/SaveBar.js +49 -0
  337. package/lib/module/modules/save-bar/SaveBarProps.js +4 -0
  338. package/lib/module/modules/save-bar/index.js +4 -0
  339. package/lib/module/modules/screen/MODULE.md +14 -5
  340. package/lib/module/modules/screen/Screen.js +109 -33
  341. package/lib/module/modules/screen/Screen.variants.js +18 -0
  342. package/lib/module/modules/screen/ScreenProps.js +4 -0
  343. package/lib/module/modules/search-bar/MODULE.md +9 -8
  344. package/lib/module/modules/search-bar/SearchBar.js +49 -27
  345. package/lib/module/modules/search-bar/SearchBar.variants.js +13 -12
  346. package/lib/module/modules/search-bar/SearchBarProps.js +4 -0
  347. package/lib/module/modules/section/MODULE.md +3 -1
  348. package/lib/module/modules/section/Section.js +14 -16
  349. package/lib/module/modules/section/Section.variants.js +1 -6
  350. package/lib/module/modules/section/SectionProps.js +4 -0
  351. package/lib/module/modules/section-list/MODULE.md +21 -1
  352. package/lib/module/modules/section-list/SectionListProps.js +4 -0
  353. package/lib/module/modules/segmented-control/MODULE.md +30 -26
  354. package/lib/module/modules/segmented-control/SegmentedControl.js +124 -70
  355. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +11 -43
  356. package/lib/module/modules/segmented-control/SegmentedControlProps.js +4 -0
  357. package/lib/module/modules/select/MODULE.md +34 -10
  358. package/lib/module/modules/select/Select.js +74 -34
  359. package/lib/module/modules/select/Select.variants.js +39 -16
  360. package/lib/module/modules/select/SelectProps.js +4 -0
  361. package/lib/module/modules/setting-row/MODULE.md +8 -0
  362. package/lib/module/modules/setting-row/SettingRow.js +50 -0
  363. package/lib/module/modules/setting-row/SettingRowProps.js +4 -0
  364. package/lib/module/modules/setting-row/index.js +4 -0
  365. package/lib/module/modules/settings-section/MODULE.md +7 -0
  366. package/lib/module/modules/settings-section/SettingsSection.js +37 -0
  367. package/lib/module/modules/settings-section/SettingsSectionProps.js +4 -0
  368. package/lib/module/modules/settings-section/index.js +4 -0
  369. package/lib/module/modules/skeleton/MODULE.md +25 -28
  370. package/lib/module/modules/skeleton/Skeleton.js +54 -53
  371. package/lib/module/modules/skeleton/Skeleton.variants.js +11 -74
  372. package/lib/module/modules/skeleton/SkeletonProps.js +4 -0
  373. package/lib/module/modules/slider/MODULE.md +4 -1
  374. package/lib/module/modules/slider/Slider.js +7 -6
  375. package/lib/module/modules/slider/Slider.variants.js +4 -2
  376. package/lib/module/modules/slider/SliderProps.js +4 -0
  377. package/lib/module/modules/spinner/MODULE.md +3 -2
  378. package/lib/module/modules/spinner/SpinnerProps.js +4 -0
  379. package/lib/module/modules/stage-progress/MODULE.md +32 -14
  380. package/lib/module/modules/stage-progress/StageProgress.js +136 -59
  381. package/lib/module/modules/stage-progress/StageProgress.variants.js +57 -20
  382. package/lib/module/modules/stage-progress/StageProgressProps.js +4 -0
  383. package/lib/module/modules/stat-grid/MODULE.md +11 -0
  384. package/lib/module/modules/stat-grid/StatGrid.js +34 -0
  385. package/lib/module/modules/stat-grid/StatGridProps.js +4 -0
  386. package/lib/module/modules/stat-grid/index.js +4 -0
  387. package/lib/module/modules/stat-tile/MODULE.md +14 -1
  388. package/lib/module/modules/stat-tile/StatTile.js +51 -21
  389. package/lib/module/modules/stat-tile/StatTile.variants.js +7 -0
  390. package/lib/module/modules/stat-tile/StatTileProps.js +4 -0
  391. package/lib/module/modules/state-block/MODULE.md +12 -3
  392. package/lib/module/modules/state-block/StateBlock.js +54 -41
  393. package/lib/module/modules/state-block/StateBlock.variants.js +7 -0
  394. package/lib/module/modules/state-block/StateBlockProps.js +4 -0
  395. package/lib/module/modules/stepper/MODULE.md +2 -0
  396. package/lib/module/modules/stepper/Stepper.js +22 -21
  397. package/lib/module/modules/stepper/Stepper.variants.js +2 -0
  398. package/lib/module/modules/stepper/StepperProps.js +4 -0
  399. package/lib/module/modules/surface/MODULE.md +57 -0
  400. package/lib/module/modules/surface/Surface.js +47 -0
  401. package/lib/module/modules/surface/Surface.variants.js +33 -0
  402. package/lib/module/modules/surface/SurfaceProps.js +4 -0
  403. package/lib/module/modules/surface/index.js +4 -0
  404. package/lib/module/modules/swipeable-row/MODULE.md +12 -2
  405. package/lib/module/modules/swipeable-row/SwipeableRow.js +57 -13
  406. package/lib/module/modules/swipeable-row/SwipeableRowProps.js +4 -0
  407. package/lib/module/modules/switch/MODULE.md +7 -2
  408. package/lib/module/modules/switch/Switch.js +49 -9
  409. package/lib/module/modules/switch/Switch.variants.js +2 -3
  410. package/lib/module/modules/switch/SwitchProps.js +4 -0
  411. package/lib/module/modules/tabs/MODULE.md +11 -14
  412. package/lib/module/modules/tabs/Tabs.js +115 -51
  413. package/lib/module/modules/tabs/Tabs.variants.js +6 -6
  414. package/lib/module/modules/tabs/TabsProps.js +4 -0
  415. package/lib/module/modules/text/MODULE.md +25 -14
  416. package/lib/module/modules/text/Text.js +18 -6
  417. package/lib/module/modules/text/Text.variants.js +116 -44
  418. package/lib/module/modules/text/TextProps.js +4 -0
  419. package/lib/module/modules/textarea/MODULE.md +12 -16
  420. package/lib/module/modules/textarea/Textarea.js +15 -12
  421. package/lib/module/modules/textarea/Textarea.variants.js +6 -2
  422. package/lib/module/modules/textarea/TextareaProps.js +4 -0
  423. package/lib/module/modules/timeline/MODULE.md +8 -17
  424. package/lib/module/modules/timeline/Timeline.js +79 -22
  425. package/lib/module/modules/timeline/Timeline.variants.js +2 -0
  426. package/lib/module/modules/timeline/TimelineProps.js +4 -0
  427. package/lib/module/modules/toast/MODULE.md +15 -18
  428. package/lib/module/modules/toast/Toast.js +75 -55
  429. package/lib/module/modules/toast/Toast.variants.js +7 -5
  430. package/lib/module/modules/tooltip/MODULE.md +22 -22
  431. package/lib/module/modules/tooltip/Tooltip.js +77 -16
  432. package/lib/module/modules/tooltip/Tooltip.variants.js +8 -1
  433. package/lib/module/modules/tooltip/TooltipProps.js +4 -0
  434. package/lib/module/modules/typing-indicator/MODULE.md +1 -1
  435. package/lib/module/modules/typing-indicator/TypingIndicator.js +78 -51
  436. package/lib/module/modules/typing-indicator/TypingIndicatorProps.js +4 -0
  437. package/lib/module/modules/upgrade-button/MODULE.md +3 -0
  438. package/lib/module/modules/upgrade-button/UpgradeButton.js +23 -0
  439. package/lib/module/modules/upgrade-button/UpgradeButtonProps.js +4 -0
  440. package/lib/module/modules/upgrade-button/index.js +4 -0
  441. package/lib/module/theme/MODULE.md +5 -1
  442. package/lib/module/theme/platform/MODULE.md +16 -8
  443. package/lib/module/theme/platform/elevation.native.js +1 -51
  444. package/lib/module/theme/platform/floatingSurface.native.js +75 -0
  445. package/lib/module/theme/platform/highlight.native.js +59 -0
  446. package/lib/module/theme/platform/index.js +5 -0
  447. package/lib/module/theme/platform/motion.native.js +31 -11
  448. package/lib/module/theme/platform/stateLayer.native.js +14 -0
  449. package/lib/module/theme/platform/surfaces.native.js +11 -0
  450. package/lib/module/theme/provider/PixelizeProvider.js +18 -5
  451. package/lib/module/theme/tokens/MODULE.md +36 -28
  452. package/lib/module/theme/tokens/THEME-CONTRACT.md +187 -0
  453. package/lib/module/theme/tokens/assertPalette.js +29 -0
  454. package/lib/module/theme/tokens/brands/emerald/palette.light.js +12 -9
  455. package/lib/module/theme/tokens/brands/lavender/palette.light.js +7 -6
  456. package/lib/module/theme/tokens/brands/meadow/palette.light.js +9 -8
  457. package/lib/module/theme/tokens/brands/radiant/palette.light.js +10 -9
  458. package/lib/module/theme/tokens/brands/rosewood/palette.light.js +10 -9
  459. package/lib/module/theme/tokens/brands/skyline/palette.light.js +9 -8
  460. package/lib/module/theme/tokens/brands/slate/palette.light.js +11 -13
  461. package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
  462. package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
  463. package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
  464. package/lib/module/theme/tokens/builders/accentText.js +10 -1
  465. package/lib/module/theme/tokens/builders/buildBrandScale.js +42 -0
  466. package/lib/module/theme/tokens/builders/buildDarkPalette.js +3 -2
  467. package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
  468. package/lib/module/theme/tokens/builders/gradientInk.js +23 -0
  469. package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
  470. package/lib/module/theme/tokens/builders/paletteFromAccent.js +30 -0
  471. package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
  472. package/lib/module/theme/tokens/builders/semanticText.js +14 -0
  473. package/lib/module/theme/tokens/builders/skeletonShimmer.js +22 -0
  474. package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
  475. package/lib/module/theme/tokens/index.js +8 -0
  476. package/lib/module/theme/tokens/primitives/controlSizes.js +16 -0
  477. package/lib/module/theme/tokens/primitives/index.js +1 -0
  478. package/lib/module/theme/tokens/roles/index.js +7 -0
  479. package/lib/typescript/core/a11y/touchTarget.d.ts +4 -0
  480. package/lib/typescript/core/blur/blur.d.ts +14 -0
  481. package/lib/typescript/core/blur/index.d.ts +3 -0
  482. package/lib/typescript/core/gradient/AccentGradientFill.d.ts +7 -0
  483. package/lib/typescript/core/gradient/ShimmerGradientFill.d.ts +8 -0
  484. package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
  485. package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
  486. package/lib/typescript/core/gradient/index.d.ts +6 -0
  487. package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
  488. package/lib/typescript/core/haptics/context.d.ts +3 -0
  489. package/lib/typescript/core/haptics/haptics.d.ts +33 -0
  490. package/lib/typescript/core/haptics/index.d.ts +6 -0
  491. package/lib/typescript/core/haptics/useHaptics.d.ts +12 -0
  492. package/lib/typescript/core/icon/icons/trending-up.d.ts +3 -0
  493. package/lib/typescript/core/icon/names.d.ts +1 -1
  494. package/lib/typescript/core/list/VirtualList.d.ts +6 -1
  495. package/lib/typescript/core/media/expoImage.d.ts +15 -6
  496. package/lib/typescript/core/media/pickers.d.ts +5 -5
  497. package/lib/typescript/core/motion/animatedComponents.d.ts +4 -0
  498. package/lib/typescript/core/motion/config.d.ts +2 -1
  499. package/lib/typescript/core/motion/index.d.ts +5 -1
  500. package/lib/typescript/core/motion/motionAnimation.d.ts +12 -0
  501. package/lib/typescript/core/motion/presets.d.ts +5 -36
  502. package/lib/typescript/core/motion/reanimatedEasing.d.ts +4 -0
  503. package/lib/typescript/core/motion/useAnimatedValue.d.ts +2 -10
  504. package/lib/typescript/core/motion/useMotion.d.ts +4 -13
  505. package/lib/typescript/core/motion/usePressState.d.ts +20 -0
  506. package/lib/typescript/core/overlay/ModalPortalContext.d.ts +2 -0
  507. package/lib/typescript/core/overlay/index.d.ts +3 -0
  508. package/lib/typescript/core/overlay/renderWebPortal.d.ts +3 -0
  509. package/lib/typescript/core/overlay/renderWebPortal.web.d.ts +3 -0
  510. package/lib/typescript/core/screen-scroll/ScreenScrollContext.d.ts +8 -0
  511. package/lib/typescript/core/screen-scroll/index.d.ts +3 -0
  512. package/lib/typescript/core/slot/index.d.ts +2 -0
  513. package/lib/typescript/core/slot/nodeSlot.d.ts +5 -0
  514. package/lib/typescript/core/style/focusRing.d.ts +10 -0
  515. package/lib/typescript/core/style/index.d.ts +2 -1
  516. package/lib/typescript/core/style/radius.d.ts +2 -0
  517. package/lib/typescript/index.d.ts +52 -12
  518. package/lib/typescript/modules/accordion/Accordion.d.ts +2 -37
  519. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +4 -5
  520. package/lib/typescript/modules/accordion/AccordionProps.d.ts +49 -0
  521. package/lib/typescript/modules/accordion/index.d.ts +1 -1
  522. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts +2 -15
  523. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -0
  524. package/lib/typescript/modules/alert-dialog/AlertDialogProps.d.ts +20 -0
  525. package/lib/typescript/modules/alert-dialog/index.d.ts +1 -1
  526. package/lib/typescript/modules/app-bar/AppBar.d.ts +1 -20
  527. package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +4 -0
  528. package/lib/typescript/modules/app-bar/AppBarProps.d.ts +25 -0
  529. package/lib/typescript/modules/app-bar/index.d.ts +1 -1
  530. package/lib/typescript/modules/app-switcher/AppSwitcher.d.ts +3 -0
  531. package/lib/typescript/modules/app-switcher/AppSwitcherProps.d.ts +17 -0
  532. package/lib/typescript/modules/app-switcher/index.d.ts +3 -0
  533. package/lib/typescript/modules/appearance-settings/AppearanceSettings.d.ts +3 -0
  534. package/lib/typescript/modules/appearance-settings/AppearanceSettingsProps.d.ts +15 -0
  535. package/lib/typescript/modules/appearance-settings/index.d.ts +3 -0
  536. package/lib/typescript/modules/avatar/Avatar.d.ts +2 -33
  537. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +3 -1
  538. package/lib/typescript/modules/avatar/AvatarProps.d.ts +23 -0
  539. package/lib/typescript/modules/avatar/index.d.ts +1 -1
  540. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +5 -20
  541. package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +19 -0
  542. package/lib/typescript/modules/avatar-group/AvatarGroupProps.d.ts +27 -0
  543. package/lib/typescript/modules/avatar-group/index.d.ts +1 -1
  544. package/lib/typescript/modules/backdrop/Backdrop.d.ts +3 -0
  545. package/lib/typescript/modules/backdrop/BackdropProps.d.ts +11 -0
  546. package/lib/typescript/modules/backdrop/index.d.ts +3 -0
  547. package/lib/typescript/modules/badge/Badge.d.ts +2 -14
  548. package/lib/typescript/modules/badge/BadgeProps.d.ts +17 -0
  549. package/lib/typescript/modules/badge/index.d.ts +1 -1
  550. package/lib/typescript/modules/banner/Banner.d.ts +1 -20
  551. package/lib/typescript/modules/banner/Banner.variants.d.ts +2 -0
  552. package/lib/typescript/modules/banner/BannerProps.d.ts +29 -0
  553. package/lib/typescript/modules/banner/index.d.ts +2 -1
  554. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +1 -34
  555. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +3 -4
  556. package/lib/typescript/modules/bottom-nav/BottomNavProps.d.ts +29 -0
  557. package/lib/typescript/modules/bottom-nav/index.d.ts +2 -1
  558. package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +1 -13
  559. package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +3 -1
  560. package/lib/typescript/modules/bottom-sheet/BottomSheetProps.d.ts +17 -0
  561. package/lib/typescript/modules/bottom-sheet/index.d.ts +1 -1
  562. package/lib/typescript/modules/breadcrumbs/Breadcrumbs.d.ts +3 -0
  563. package/lib/typescript/modules/breadcrumbs/Breadcrumbs.variants.d.ts +6 -0
  564. package/lib/typescript/modules/breadcrumbs/BreadcrumbsProps.d.ts +18 -0
  565. package/lib/typescript/modules/breadcrumbs/index.d.ts +3 -0
  566. package/lib/typescript/modules/button/Button.d.ts +1 -60
  567. package/lib/typescript/modules/button/Button.variants.d.ts +11 -15
  568. package/lib/typescript/modules/button/ButtonProps.d.ts +47 -0
  569. package/lib/typescript/modules/button/index.d.ts +1 -1
  570. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +2 -36
  571. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +24 -59
  572. package/lib/typescript/modules/button-group/ButtonGroupProps.d.ts +21 -0
  573. package/lib/typescript/modules/button-group/index.d.ts +1 -1
  574. package/lib/typescript/modules/card/Card.d.ts +4 -15
  575. package/lib/typescript/modules/card/CardProps.d.ts +27 -0
  576. package/lib/typescript/modules/card/index.d.ts +1 -1
  577. package/lib/typescript/modules/charts/BarChart.d.ts +1 -24
  578. package/lib/typescript/modules/charts/BarChartProps.d.ts +36 -0
  579. package/lib/typescript/modules/charts/BarList.d.ts +1 -16
  580. package/lib/typescript/modules/charts/BarListProps.d.ts +22 -0
  581. package/lib/typescript/modules/charts/ChartLegend.d.ts +2 -14
  582. package/lib/typescript/modules/charts/ChartLegendProps.d.ts +19 -0
  583. package/lib/typescript/modules/charts/Charts.variants.d.ts +31 -1
  584. package/lib/typescript/modules/charts/DonutChart.d.ts +1 -19
  585. package/lib/typescript/modules/charts/DonutChartProps.d.ts +27 -0
  586. package/lib/typescript/modules/charts/LineChart.d.ts +1 -28
  587. package/lib/typescript/modules/charts/LineChartProps.d.ts +40 -0
  588. package/lib/typescript/modules/charts/PieChart.d.ts +1 -16
  589. package/lib/typescript/modules/charts/PieChartProps.d.ts +24 -0
  590. package/lib/typescript/modules/charts/Sparkline.d.ts +1 -11
  591. package/lib/typescript/modules/charts/SparklineProps.d.ts +17 -0
  592. package/lib/typescript/modules/charts/index.d.ts +6 -6
  593. package/lib/typescript/modules/checkbox/Checkbox.d.ts +1 -33
  594. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +2 -1
  595. package/lib/typescript/modules/checkbox/CheckboxProps.d.ts +27 -0
  596. package/lib/typescript/modules/checkbox/index.d.ts +1 -1
  597. package/lib/typescript/modules/chip/Chip.d.ts +1 -28
  598. package/lib/typescript/modules/chip/Chip.variants.d.ts +8 -3
  599. package/lib/typescript/modules/chip/ChipGroup.d.ts +1 -14
  600. package/lib/typescript/modules/chip/ChipGroupProps.d.ts +16 -0
  601. package/lib/typescript/modules/chip/ChipProps.d.ts +27 -0
  602. package/lib/typescript/modules/chip/index.d.ts +3 -3
  603. package/lib/typescript/modules/combobox/Combobox.d.ts +2 -45
  604. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +20 -5
  605. package/lib/typescript/modules/combobox/ComboboxProps.d.ts +40 -0
  606. package/lib/typescript/modules/combobox/index.d.ts +1 -1
  607. package/lib/typescript/modules/composer/Composer.d.ts +1 -18
  608. package/lib/typescript/modules/composer/ComposerProps.d.ts +20 -0
  609. package/lib/typescript/modules/composer/index.d.ts +1 -1
  610. package/lib/typescript/modules/copy-button/CopyButton.d.ts +1 -15
  611. package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +2 -1
  612. package/lib/typescript/modules/copy-button/CopyButtonProps.d.ts +18 -0
  613. package/lib/typescript/modules/copy-button/index.d.ts +1 -1
  614. package/lib/typescript/modules/data-table/DataTable.d.ts +2 -31
  615. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +3 -2
  616. package/lib/typescript/modules/data-table/DataTableProps.d.ts +43 -0
  617. package/lib/typescript/modules/data-table/index.d.ts +1 -1
  618. package/lib/typescript/modules/date-picker/Calendar.d.ts +1 -23
  619. package/lib/typescript/modules/date-picker/CalendarProps.d.ts +31 -0
  620. package/lib/typescript/modules/date-picker/DatePicker.d.ts +1 -27
  621. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +17 -4
  622. package/lib/typescript/modules/date-picker/DatePickerProps.d.ts +33 -0
  623. package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +1 -23
  624. package/lib/typescript/modules/date-picker/DateRangePickerProps.d.ts +27 -0
  625. package/lib/typescript/modules/date-picker/PickerField.d.ts +1 -17
  626. package/lib/typescript/modules/date-picker/PickerFieldProps.d.ts +19 -0
  627. package/lib/typescript/modules/date-picker/PickerShell.d.ts +1 -12
  628. package/lib/typescript/modules/date-picker/PickerShellProps.d.ts +16 -0
  629. package/lib/typescript/modules/date-picker/TimePicker.d.ts +2 -16
  630. package/lib/typescript/modules/date-picker/TimePickerProps.d.ts +14 -0
  631. package/lib/typescript/modules/date-picker/index.d.ts +4 -4
  632. package/lib/typescript/modules/description-list/DescriptionList.d.ts +8 -0
  633. package/lib/typescript/modules/description-list/DescriptionList.variants.d.ts +29 -0
  634. package/lib/typescript/modules/description-list/DescriptionListProps.d.ts +23 -0
  635. package/lib/typescript/modules/description-list/index.d.ts +4 -0
  636. package/lib/typescript/modules/divider/Divider.d.ts +1 -8
  637. package/lib/typescript/modules/divider/Divider.variants.d.ts +4 -4
  638. package/lib/typescript/modules/divider/DividerProps.d.ts +11 -0
  639. package/lib/typescript/modules/divider/index.d.ts +1 -1
  640. package/lib/typescript/modules/document-viewer/DocumentViewer.d.ts +3 -0
  641. package/lib/typescript/modules/document-viewer/DocumentViewerProps.d.ts +13 -0
  642. package/lib/typescript/modules/document-viewer/index.d.ts +3 -0
  643. package/lib/typescript/modules/drawer/Drawer.d.ts +2 -7
  644. package/lib/typescript/modules/drawer/DrawerProps.d.ts +9 -0
  645. package/lib/typescript/modules/drawer/index.d.ts +1 -1
  646. package/lib/typescript/modules/empty-state/EmptyState.d.ts +1 -15
  647. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +1 -0
  648. package/lib/typescript/modules/empty-state/EmptyStateProps.d.ts +24 -0
  649. package/lib/typescript/modules/empty-state/index.d.ts +1 -1
  650. package/lib/typescript/modules/fab/Fab.d.ts +1 -51
  651. package/lib/typescript/modules/fab/Fab.variants.d.ts +5 -2
  652. package/lib/typescript/modules/fab/FabGroup.d.ts +1 -34
  653. package/lib/typescript/modules/fab/FabGroupProps.d.ts +34 -0
  654. package/lib/typescript/modules/fab/FabProps.d.ts +50 -0
  655. package/lib/typescript/modules/fab/index.d.ts +2 -2
  656. package/lib/typescript/modules/field-select-modal/FieldSelectModal.d.ts +3 -0
  657. package/lib/typescript/modules/field-select-modal/FieldSelectModalProps.d.ts +20 -0
  658. package/lib/typescript/modules/field-select-modal/index.d.ts +3 -0
  659. package/lib/typescript/modules/file-grid/FileGrid.d.ts +1 -18
  660. package/lib/typescript/modules/file-grid/FileGridProps.d.ts +23 -0
  661. package/lib/typescript/modules/file-grid/index.d.ts +1 -1
  662. package/lib/typescript/modules/file-upload/FileUpload.d.ts +1 -27
  663. package/lib/typescript/modules/file-upload/FileUploadProps.d.ts +27 -0
  664. package/lib/typescript/modules/file-upload/index.d.ts +1 -1
  665. package/lib/typescript/modules/filter-bar/FilterBar.d.ts +3 -0
  666. package/lib/typescript/modules/filter-bar/FilterBarProps.d.ts +17 -0
  667. package/lib/typescript/modules/filter-bar/index.d.ts +3 -0
  668. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts +1 -9
  669. package/lib/typescript/modules/filter-sheet/FilterChipProps.d.ts +11 -0
  670. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts +1 -32
  671. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +2 -1
  672. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +1 -1
  673. package/lib/typescript/modules/filter-sheet/FilterSheetProps.d.ts +36 -0
  674. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts +1 -1
  675. package/lib/typescript/modules/filter-sheet/index.d.ts +2 -2
  676. package/lib/typescript/modules/folder-row/FolderRow.d.ts +1 -19
  677. package/lib/typescript/modules/folder-row/FolderRowProps.d.ts +17 -0
  678. package/lib/typescript/modules/folder-row/index.d.ts +1 -1
  679. package/lib/typescript/modules/form-field/FormField.d.ts +2 -17
  680. package/lib/typescript/modules/form-field/FormFieldProps.d.ts +23 -0
  681. package/lib/typescript/modules/form-field/index.d.ts +1 -1
  682. package/lib/typescript/modules/gantt/Gantt.d.ts +2 -9
  683. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +29 -2
  684. package/lib/typescript/modules/gantt/GanttProps.d.ts +13 -0
  685. package/lib/typescript/modules/gantt/index.d.ts +1 -1
  686. package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +2 -15
  687. package/lib/typescript/modules/image-viewer/ImageViewerProps.d.ts +16 -0
  688. package/lib/typescript/modules/image-viewer/index.d.ts +2 -1
  689. package/lib/typescript/modules/input/Input.d.ts +2 -30
  690. package/lib/typescript/modules/input/Input.variants.d.ts +8 -8
  691. package/lib/typescript/modules/input/InputProps.d.ts +43 -0
  692. package/lib/typescript/modules/input/index.d.ts +1 -1
  693. package/lib/typescript/modules/key-value/KeyValue.d.ts +3 -0
  694. package/lib/typescript/modules/key-value/KeyValueProps.d.ts +11 -0
  695. package/lib/typescript/modules/key-value/index.d.ts +3 -0
  696. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +1 -17
  697. package/lib/typescript/modules/limit-reached-modal/LimitReachedModalProps.d.ts +24 -0
  698. package/lib/typescript/modules/limit-reached-modal/index.d.ts +1 -1
  699. package/lib/typescript/modules/list-item/ListItem.d.ts +3 -17
  700. package/lib/typescript/modules/list-item/ListItem.variants.d.ts +137 -1
  701. package/lib/typescript/modules/list-item/ListItemProps.d.ts +22 -0
  702. package/lib/typescript/modules/list-item/index.d.ts +1 -1
  703. package/lib/typescript/modules/list-screen/ListScreen.d.ts +5 -0
  704. package/lib/typescript/modules/list-screen/ListScreenProps.d.ts +17 -0
  705. package/lib/typescript/modules/list-screen/index.d.ts +3 -0
  706. package/lib/typescript/modules/markdown/Markdown.d.ts +8 -8
  707. package/lib/typescript/modules/markdown/MarkdownProps.d.ts +12 -0
  708. package/lib/typescript/modules/markdown/index.d.ts +1 -1
  709. package/lib/typescript/modules/menu/Menu.d.ts +2 -19
  710. package/lib/typescript/modules/menu/Menu.variants.d.ts +2 -1
  711. package/lib/typescript/modules/menu/MenuProps.d.ts +26 -0
  712. package/lib/typescript/modules/menu/index.d.ts +1 -1
  713. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +3 -11
  714. package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +1 -2
  715. package/lib/typescript/modules/message-bubble/MessageBubbleProps.d.ts +12 -0
  716. package/lib/typescript/modules/message-bubble/index.d.ts +1 -1
  717. package/lib/typescript/modules/modal/Modal.d.ts +2 -10
  718. package/lib/typescript/modules/modal/ModalPortalContext.d.ts +1 -1
  719. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts +2 -12
  720. package/lib/typescript/modules/modal/ModalPortalProviderProps.d.ts +8 -0
  721. package/lib/typescript/modules/modal/ModalProps.d.ts +22 -0
  722. package/lib/typescript/modules/modal/index.d.ts +2 -2
  723. package/lib/typescript/modules/modal/renderWebPortal.d.ts +1 -14
  724. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts +1 -18
  725. package/lib/typescript/modules/more-items/MoreItems.d.ts +2 -10
  726. package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +3 -1
  727. package/lib/typescript/modules/more-items/MoreItemsProps.d.ts +14 -0
  728. package/lib/typescript/modules/more-items/index.d.ts +1 -1
  729. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -19
  730. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +2 -1
  731. package/lib/typescript/modules/multi-select/MultiSelectProps.d.ts +29 -0
  732. package/lib/typescript/modules/multi-select/index.d.ts +1 -1
  733. package/lib/typescript/modules/notification-bell/NotificationBell.d.ts +3 -0
  734. package/lib/typescript/modules/notification-bell/NotificationBellProps.d.ts +10 -0
  735. package/lib/typescript/modules/notification-bell/index.d.ts +3 -0
  736. package/lib/typescript/modules/number-input/NumberInput.d.ts +1 -26
  737. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +9 -8
  738. package/lib/typescript/modules/number-input/NumberInputProps.d.ts +23 -0
  739. package/lib/typescript/modules/number-input/index.d.ts +1 -1
  740. package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +1 -24
  741. package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +2 -1
  742. package/lib/typescript/modules/org-switcher/OrgSwitcherProps.d.ts +29 -0
  743. package/lib/typescript/modules/org-switcher/index.d.ts +1 -1
  744. package/lib/typescript/modules/pagination/Pagination.d.ts +1 -26
  745. package/lib/typescript/modules/pagination/Pagination.variants.d.ts +2 -1
  746. package/lib/typescript/modules/pagination/PaginationControls.d.ts +1 -4
  747. package/lib/typescript/modules/pagination/PaginationProps.d.ts +28 -0
  748. package/lib/typescript/modules/pagination/index.d.ts +1 -1
  749. package/lib/typescript/modules/person-chip/PersonChip.d.ts +3 -0
  750. package/lib/typescript/modules/person-chip/PersonChipProps.d.ts +17 -0
  751. package/lib/typescript/modules/person-chip/index.d.ts +3 -0
  752. package/lib/typescript/modules/pin-input/PinInput.d.ts +1 -32
  753. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +2 -2
  754. package/lib/typescript/modules/pin-input/PinInputProps.d.ts +26 -0
  755. package/lib/typescript/modules/pin-input/index.d.ts +1 -1
  756. package/lib/typescript/modules/plan-badge/PlanBadge.d.ts +3 -0
  757. package/lib/typescript/modules/plan-badge/PlanBadgeProps.d.ts +10 -0
  758. package/lib/typescript/modules/plan-badge/index.d.ts +3 -0
  759. package/lib/typescript/modules/plan-pill/PlanPill.d.ts +3 -0
  760. package/lib/typescript/modules/plan-pill/PlanPillProps.d.ts +10 -0
  761. package/lib/typescript/modules/plan-pill/index.d.ts +3 -0
  762. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +1 -13
  763. package/lib/typescript/modules/progress-bar/ProgressBarProps.d.ts +16 -0
  764. package/lib/typescript/modules/progress-bar/index.d.ts +1 -1
  765. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +2 -22
  766. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +2 -2
  767. package/lib/typescript/modules/radio-group/RadioGroupProps.d.ts +21 -0
  768. package/lib/typescript/modules/radio-group/index.d.ts +1 -1
  769. package/lib/typescript/modules/reorder/Reorder.d.ts +2 -14
  770. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +2 -2
  771. package/lib/typescript/modules/reorder/ReorderProps.d.ts +19 -0
  772. package/lib/typescript/modules/reorder/index.d.ts +1 -1
  773. package/lib/typescript/modules/rich-text/RichText.d.ts +2 -10
  774. package/lib/typescript/modules/rich-text/RichTextProps.d.ts +15 -0
  775. package/lib/typescript/modules/rich-text/index.d.ts +1 -1
  776. package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +1 -45
  777. package/lib/typescript/modules/rich-text-editor/RichTextEditorProps.d.ts +40 -0
  778. package/lib/typescript/modules/rich-text-editor/index.d.ts +1 -1
  779. package/lib/typescript/modules/save-bar/SaveBar.d.ts +3 -0
  780. package/lib/typescript/modules/save-bar/SaveBarProps.d.ts +18 -0
  781. package/lib/typescript/modules/save-bar/index.d.ts +3 -0
  782. package/lib/typescript/modules/screen/Screen.d.ts +2 -31
  783. package/lib/typescript/modules/screen/Screen.variants.d.ts +4 -0
  784. package/lib/typescript/modules/screen/ScreenProps.d.ts +35 -0
  785. package/lib/typescript/modules/screen/index.d.ts +1 -1
  786. package/lib/typescript/modules/search-bar/SearchBar.d.ts +2 -28
  787. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +8 -9
  788. package/lib/typescript/modules/search-bar/SearchBarProps.d.ts +30 -0
  789. package/lib/typescript/modules/search-bar/index.d.ts +1 -1
  790. package/lib/typescript/modules/section/Section.d.ts +1 -8
  791. package/lib/typescript/modules/section/Section.variants.d.ts +0 -3
  792. package/lib/typescript/modules/section/SectionProps.d.ts +11 -0
  793. package/lib/typescript/modules/section/index.d.ts +1 -1
  794. package/lib/typescript/modules/section-list/SectionList.d.ts +1 -19
  795. package/lib/typescript/modules/section-list/SectionListProps.d.ts +24 -0
  796. package/lib/typescript/modules/section-list/index.d.ts +1 -1
  797. package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +2 -41
  798. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +5 -44
  799. package/lib/typescript/modules/segmented-control/SegmentedControlProps.d.ts +29 -0
  800. package/lib/typescript/modules/segmented-control/index.d.ts +1 -1
  801. package/lib/typescript/modules/select/Select.d.ts +5 -13
  802. package/lib/typescript/modules/select/Select.variants.d.ts +24 -10
  803. package/lib/typescript/modules/select/SelectProps.d.ts +25 -0
  804. package/lib/typescript/modules/select/index.d.ts +3 -2
  805. package/lib/typescript/modules/setting-row/SettingRow.d.ts +3 -0
  806. package/lib/typescript/modules/setting-row/SettingRowProps.d.ts +14 -0
  807. package/lib/typescript/modules/setting-row/index.d.ts +3 -0
  808. package/lib/typescript/modules/settings-section/SettingsSection.d.ts +3 -0
  809. package/lib/typescript/modules/settings-section/SettingsSectionProps.d.ts +11 -0
  810. package/lib/typescript/modules/settings-section/index.d.ts +3 -0
  811. package/lib/typescript/modules/skeleton/Skeleton.d.ts +3 -28
  812. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +8 -66
  813. package/lib/typescript/modules/skeleton/SkeletonProps.d.ts +18 -0
  814. package/lib/typescript/modules/skeleton/index.d.ts +1 -1
  815. package/lib/typescript/modules/slider/Slider.d.ts +1 -24
  816. package/lib/typescript/modules/slider/Slider.variants.d.ts +2 -1
  817. package/lib/typescript/modules/slider/SliderProps.d.ts +27 -0
  818. package/lib/typescript/modules/slider/index.d.ts +1 -1
  819. package/lib/typescript/modules/spinner/Spinner.d.ts +1 -11
  820. package/lib/typescript/modules/spinner/SpinnerProps.d.ts +15 -0
  821. package/lib/typescript/modules/spinner/index.d.ts +1 -1
  822. package/lib/typescript/modules/stage-progress/StageProgress.d.ts +1 -12
  823. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +31 -10
  824. package/lib/typescript/modules/stage-progress/StageProgressProps.d.ts +22 -0
  825. package/lib/typescript/modules/stage-progress/index.d.ts +1 -1
  826. package/lib/typescript/modules/stat-grid/StatGrid.d.ts +3 -0
  827. package/lib/typescript/modules/stat-grid/StatGridProps.d.ts +15 -0
  828. package/lib/typescript/modules/stat-grid/index.d.ts +3 -0
  829. package/lib/typescript/modules/stat-tile/StatTile.d.ts +1 -14
  830. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +3 -0
  831. package/lib/typescript/modules/stat-tile/StatTileProps.d.ts +25 -0
  832. package/lib/typescript/modules/stat-tile/index.d.ts +1 -1
  833. package/lib/typescript/modules/state-block/StateBlock.d.ts +1 -28
  834. package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +1 -0
  835. package/lib/typescript/modules/state-block/StateBlockProps.d.ts +36 -0
  836. package/lib/typescript/modules/state-block/index.d.ts +1 -1
  837. package/lib/typescript/modules/stepper/Stepper.d.ts +3 -11
  838. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +2 -0
  839. package/lib/typescript/modules/stepper/StepperProps.d.ts +12 -0
  840. package/lib/typescript/modules/stepper/index.d.ts +2 -1
  841. package/lib/typescript/modules/surface/Surface.d.ts +6 -0
  842. package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
  843. package/lib/typescript/modules/surface/SurfaceProps.d.ts +17 -0
  844. package/lib/typescript/modules/surface/index.d.ts +4 -0
  845. package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +1 -19
  846. package/lib/typescript/modules/swipeable-row/SwipeableRowProps.d.ts +22 -0
  847. package/lib/typescript/modules/swipeable-row/index.d.ts +1 -1
  848. package/lib/typescript/modules/switch/Switch.d.ts +1 -14
  849. package/lib/typescript/modules/switch/Switch.variants.d.ts +2 -2
  850. package/lib/typescript/modules/switch/SwitchProps.d.ts +20 -0
  851. package/lib/typescript/modules/switch/index.d.ts +1 -1
  852. package/lib/typescript/modules/tabs/Tabs.d.ts +1 -17
  853. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +2 -3
  854. package/lib/typescript/modules/tabs/TabsProps.d.ts +29 -0
  855. package/lib/typescript/modules/tabs/index.d.ts +1 -1
  856. package/lib/typescript/modules/text/Text.d.ts +1 -20
  857. package/lib/typescript/modules/text/Text.variants.d.ts +14 -11
  858. package/lib/typescript/modules/text/TextProps.d.ts +35 -0
  859. package/lib/typescript/modules/text/index.d.ts +1 -1
  860. package/lib/typescript/modules/textarea/Textarea.d.ts +1 -19
  861. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +2 -1
  862. package/lib/typescript/modules/textarea/TextareaProps.d.ts +23 -0
  863. package/lib/typescript/modules/textarea/index.d.ts +1 -1
  864. package/lib/typescript/modules/timeline/Timeline.d.ts +1 -16
  865. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +2 -0
  866. package/lib/typescript/modules/timeline/TimelineProps.d.ts +37 -0
  867. package/lib/typescript/modules/timeline/index.d.ts +1 -1
  868. package/lib/typescript/modules/toast/Toast.variants.d.ts +4 -3
  869. package/lib/typescript/modules/tooltip/Tooltip.d.ts +1 -25
  870. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +7 -0
  871. package/lib/typescript/modules/tooltip/TooltipProps.d.ts +27 -0
  872. package/lib/typescript/modules/tooltip/index.d.ts +1 -1
  873. package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +5 -14
  874. package/lib/typescript/modules/typing-indicator/TypingIndicatorProps.d.ts +11 -0
  875. package/lib/typescript/modules/typing-indicator/index.d.ts +1 -1
  876. package/lib/typescript/modules/upgrade-button/UpgradeButton.d.ts +3 -0
  877. package/lib/typescript/modules/upgrade-button/UpgradeButtonProps.d.ts +11 -0
  878. package/lib/typescript/modules/upgrade-button/index.d.ts +3 -0
  879. package/lib/typescript/test/motionJest.d.ts +12 -0
  880. package/lib/typescript/theme/index.d.ts +1 -1
  881. package/lib/typescript/theme/platform/elevation.native.d.ts +1 -31
  882. package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
  883. package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
  884. package/lib/typescript/theme/platform/index.d.ts +9 -0
  885. package/lib/typescript/theme/platform/motion.native.d.ts +33 -13
  886. package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
  887. package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -0
  888. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +1 -1
  889. package/lib/typescript/theme/provider/types.d.ts +8 -0
  890. package/lib/typescript/theme/tokens/assertPalette.d.ts +10 -0
  891. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
  892. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
  893. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
  894. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
  895. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
  896. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
  897. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
  898. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
  899. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
  900. package/lib/typescript/theme/tokens/builders/accentText.d.ts +3 -0
  901. package/lib/typescript/theme/tokens/builders/buildBrandScale.d.ts +4 -0
  902. package/lib/typescript/theme/tokens/builders/finalizePalette.d.ts +4 -0
  903. package/lib/typescript/theme/tokens/builders/gradientInk.d.ts +9 -0
  904. package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
  905. package/lib/typescript/theme/tokens/builders/paletteFromAccent.d.ts +3 -0
  906. package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
  907. package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
  908. package/lib/typescript/theme/tokens/builders/skeletonShimmer.d.ts +9 -0
  909. package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
  910. package/lib/typescript/theme/tokens/index.d.ts +8 -0
  911. package/lib/typescript/theme/tokens/primitives/controlSizes.d.ts +6 -0
  912. package/lib/typescript/theme/tokens/primitives/index.d.ts +2 -0
  913. package/lib/typescript/theme/tokens/roles/index.d.ts +3 -0
  914. package/lib/typescript/theme/tokens/types.d.ts +10 -9
  915. package/package.json +114 -5
  916. package/registry.json +114 -14
  917. package/lib/module/core/style/useThemedStyles.js +0 -8
  918. package/lib/module/test/mocks/flashList.js +0 -5
  919. package/lib/module/test/perfHelpers.js +0 -18
  920. package/lib/typescript/core/style/useThemedStyles.d.ts +0 -5
  921. package/lib/typescript/test/mocks/flashList.d.ts +0 -3
@@ -34,24 +34,21 @@
34
34
  */
35
35
 
36
36
  import { memo, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
37
- import { Animated, Modal, Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
37
+ import { Modal, Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
38
+ import Reanimated, { FadeInDown, ReduceMotion, useAnimatedStyle } from "react-native-reanimated";
38
39
  import { useAnnounce } from "../../core/a11y/index.js";
39
40
  import { useDismissOnEscape, useFocusTrap, useSpaceActivation } from "../../core/a11y/keyboard";
40
41
  import { Icon } from "../../core/icon/index.js";
41
42
  import { VirtualList } from "../../core/list/index.js";
42
- import { useMotion, usePressMotion, useReveal } from "../../core/motion/index.js";
43
+ import { useAnimatedValue, useMotion, usePressMotion, useReveal } from "../../core/motion/index.js";
44
+ import { elevation, floatingBackground, floatingSurfaceStyle, highlight, rippleColor } from "../../theme/platform/index.js";
45
+ import { elevation as elevationTokens } from "../../theme/tokens/primitives/index.js";
43
46
  import { useTheme } from "../../theme/hooks.js";
44
47
  import { ModalPortalContext } from "../modal/ModalPortalContext.js";
45
48
  import { renderWebPortal } from "../modal/renderWebPortal";
46
49
  import { Spinner } from "../spinner/index.js";
47
50
  import { useComboboxKeys } from "./comboboxKeys";
48
51
  import { COMBOBOX_CLEAR_BUTTON_HIT_SLOP, COMBOBOX_FIELD_FONT_SIZE, COMBOBOX_FIELD_HIT_SLOP, COMBOBOX_FIELD_ICON_SIZE, COMBOBOX_LISTBOX_ROLE, COMBOBOX_ROW_ICON_SIZE, comboboxOptionNativeId, DEFAULT_EMPTY_MESSAGE, DEFAULT_MAX_HEIGHT, DEFAULT_PLACEHOLDER, DEFAULT_SEARCH_PLACEHOLDER, FILTER_DEBOUNCE_MS, SEARCH_DEBOUNCE_MS, comboboxClearButtonStructure, comboboxFieldStructure, comboboxFieldValueStructure, comboboxListStateStructure, comboboxOverlayStructure, comboboxRowStructure, comboboxRowTextStructure, comboboxSearchRowStructure, comboboxSheetStructure, COMBOBOX_ROW_MIN_HEIGHT, normalizeForSearch, resolveComboboxAccessibility, resolveComboboxErrorTextColor, resolveComboboxRowAccessibility, resolveComboboxRowColors, resolveComboboxSummary, resolveComboboxTriggerColors } from "./Combobox.variants.js";
49
-
50
- /**
51
- * A discriminated union, not one flat interface with every field optional: `multiple: true` requires
52
- * `values`/`onValuesChange`, the default (`multiple` absent/`false`) requires `value`/`onChange` — a
53
- * caller can never wire the wrong pair for the active mode and have it silently do nothing.
54
- */
55
52
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
56
53
  const ICON_STROKE = 2;
57
54
  const FOCUS_RING_WIDTH = 2;
@@ -72,7 +69,7 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
72
69
  const rowDisabled = option.disabled === true;
73
70
  const motion = useMotion();
74
71
  const press = usePressMotion(rowDisabled);
75
- const checkOpacity = useRef(new Animated.Value(selected ? 1 : 0)).current;
72
+ const checkOpacity = useAnimatedValue(selected ? 1 : 0);
76
73
  const skipFirst = useRef(true);
77
74
  const running = useRef(null);
78
75
 
@@ -81,11 +78,11 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
81
78
  running.current?.stop();
82
79
  if (skipFirst.current) {
83
80
  skipFirst.current = false;
84
- checkOpacity.setValue(selected ? 1 : 0);
81
+ checkOpacity.value = selected ? 1 : 0;
85
82
  return;
86
83
  }
87
84
  if (!motion.enabled) {
88
- checkOpacity.setValue(selected ? 1 : 0);
85
+ checkOpacity.value = selected ? 1 : 0;
89
86
  return;
90
87
  }
91
88
  running.current = motion.timing(checkOpacity, selected ? 1 : 0, {
@@ -95,6 +92,9 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
95
92
  return () => running.current?.stop();
96
93
  }, [selected, motion, checkOpacity]);
97
94
  useEffect(() => () => running.current?.stop(), []);
95
+ const checkStyle = useAnimatedStyle(() => ({
96
+ opacity: checkOpacity.value
97
+ }));
98
98
  const rowA11y = useMemo(() => resolveComboboxRowAccessibility({
99
99
  selected,
100
100
  disabled: rowDisabled
@@ -109,6 +109,10 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
109
109
  backgroundColor: pressed || active ? rowColors.pressedRow : rowColors.background
110
110
  }, rowDisabled && styles.dimmed], [rowColors.pressedRow, rowColors.background, rowDisabled, active]);
111
111
  const contentStyle = useMemo(() => [comboboxRowStructure(theme), press.style], [theme, press.style]);
112
+ const androidRipple = useMemo(() => Platform.OS === "android" && !rowDisabled ? {
113
+ color: rippleColor(theme.mode),
114
+ borderless: false
115
+ } : undefined, [rowDisabled, theme.mode]);
112
116
  const textWrapStyle = useMemo(() => comboboxRowTextStructure(theme), [theme]);
113
117
  const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
114
118
  fontSize: theme.fontSizes.md,
@@ -118,9 +122,6 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
118
122
  fontSize: theme.fontSizes.xs,
119
123
  color: rowColors.muted
120
124
  }], [theme, rowColors.muted]);
121
- const checkStyle = useMemo(() => ({
122
- opacity: checkOpacity
123
- }), [checkOpacity]);
124
125
  return /*#__PURE__*/_jsx(Pressable, {
125
126
  testID: testID ? `${testID}-option-${option.value}` : undefined,
126
127
  nativeID: nativeID,
@@ -134,8 +135,9 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
134
135
  onPress: handlePress,
135
136
  onPressIn: press.onPressIn,
136
137
  onPressOut: press.onPressOut,
138
+ android_ripple: androidRipple,
137
139
  style: pressableStyle,
138
- children: /*#__PURE__*/_jsxs(Animated.View, {
140
+ children: /*#__PURE__*/_jsxs(Reanimated.View, {
139
141
  testID: testID ? `${testID}-option-${option.value}-content` : undefined,
140
142
  style: contentStyle,
141
143
  children: [option.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
@@ -154,7 +156,7 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
154
156
  style: descriptionStyle,
155
157
  children: option.description
156
158
  })]
157
- }), selected && /*#__PURE__*/_jsx(Animated.View, {
159
+ }), selected && /*#__PURE__*/_jsx(Reanimated.View, {
158
160
  testID: testID ? `${testID}-option-${option.value}-check` : undefined,
159
161
  style: checkStyle,
160
162
  children: /*#__PURE__*/_jsx(Icon, {
@@ -373,7 +375,17 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
373
375
  const fieldStyle = useMemo(() => [comboboxFieldStructure(theme), {
374
376
  backgroundColor: triggerColors.background,
375
377
  borderColor: triggerColors.border
378
+ }, {
379
+ overflow: "hidden"
376
380
  }, disabled && styles.dimmed], [theme, triggerColors.background, triggerColors.border, disabled]);
381
+ const triggerRipple = useMemo(() => Platform.OS === "android" && !disabled ? {
382
+ color: rippleColor(theme.mode),
383
+ borderless: false
384
+ } : undefined, [disabled, theme.mode]);
385
+ const clearButtonRipple = useMemo(() => Platform.OS === "android" ? {
386
+ color: rippleColor(theme.mode),
387
+ borderless: false
388
+ } : undefined, [theme.mode]);
377
389
  const focusRingStyle = useMemo(() => ({
378
390
  position: "absolute",
379
391
  top: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
@@ -382,7 +394,8 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
382
394
  bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
383
395
  borderWidth: FOCUS_RING_WIDTH,
384
396
  borderColor: theme.colors.border.focus,
385
- borderRadius: theme.radii.base + FOCUS_RING_GAP + FOCUS_RING_WIDTH
397
+ borderRadius: theme.radii.md + FOCUS_RING_GAP + FOCUS_RING_WIDTH,
398
+ borderCurve: "continuous"
386
399
  }), [theme]);
387
400
  const fieldValueStyle = useMemo(() => comboboxFieldValueStructure(theme), [theme]);
388
401
  const summaryStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
@@ -390,7 +403,9 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
390
403
  fontSize: COMBOBOX_FIELD_FONT_SIZE,
391
404
  color: isPlaceholder ? triggerColors.placeholder : triggerColors.text
392
405
  }], [theme, isPlaceholder, triggerColors.placeholder, triggerColors.text]);
393
- const clearButtonStyle = useMemo(() => comboboxClearButtonStructure(theme), [theme]);
406
+ const clearButtonStyle = useMemo(() => [comboboxClearButtonStructure(theme), {
407
+ overflow: "hidden"
408
+ }], [theme]);
394
409
  const errorTextStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
395
410
  fontSize: theme.fontSizes.xs,
396
411
  color: resolveComboboxErrorTextColor(theme.colors),
@@ -400,10 +415,18 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
400
415
  backgroundColor: BACKDROP_SCRIM
401
416
  }], []);
402
417
  const overlayStyle = useMemo(() => comboboxOverlayStructure(theme), [theme]);
403
- const sheetSurfaceStyle = useMemo(() => [comboboxSheetStructure(theme), {
404
- backgroundColor: theme.colors.bg.surface,
418
+ const sheetFloating = useMemo(() => {
419
+ highlight("subtle", theme.mode);
420
+ elevation(elevationTokens.md);
421
+ void theme.elevatedSurfaces;
422
+ return {
423
+ backgroundColor: floatingBackground(theme, "md"),
424
+ ...floatingSurfaceStyle(theme, "md")
425
+ };
426
+ }, [theme]);
427
+ const sheetSurfaceStyle = useMemo(() => [comboboxSheetStructure(theme), sheetFloating, {
405
428
  maxHeight
406
- }], [theme, maxHeight]);
429
+ }], [theme, sheetFloating, maxHeight]);
407
430
  const sheetStyle = useMemo(() => [sheetSurfaceStyle, reveal.style], [sheetSurfaceStyle, reveal.style]);
408
431
  const searchRowStyle = useMemo(() => [comboboxSearchRowStructure(theme), {
409
432
  borderBottomColor: theme.colors.border.default
@@ -430,62 +453,66 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
430
453
  style: backdropStyle,
431
454
  onPress: closeSheet
432
455
  }), /*#__PURE__*/_jsx(View, {
433
- style: overlayStyle,
434
- pointerEvents: "box-none",
435
- children: /*#__PURE__*/_jsxs(Animated.View, {
456
+ style: [overlayStyle, {
457
+ pointerEvents: "box-none"
458
+ }],
459
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
436
460
  ref: sheetRef,
437
- style: sheetStyle,
438
- children: [/*#__PURE__*/_jsxs(View, {
439
- style: searchRowStyle,
440
- children: [/*#__PURE__*/_jsx(Icon, {
441
- name: "search",
442
- size: COMBOBOX_FIELD_ICON_SIZE,
443
- color: rowColors.icon,
444
- strokeWidth: ICON_STROKE
445
- }), /*#__PURE__*/_jsx(TextInput, {
446
- ref: searchInputRef,
447
- testID: testID ? `${testID}-search` : undefined,
448
- value: query,
449
- onChangeText: handleQueryChange,
450
- placeholder: searchPlaceholder,
451
- placeholderTextColor: rowColors.muted,
452
- accessibilityLabel: searchPlaceholder
453
- // Hyphenated JSX attributes are not type-checked at all, which is exactly why the id
454
- // comes from `comboboxOptionNativeId` and is never interpolated here.
461
+ entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
462
+ children: /*#__PURE__*/_jsxs(Reanimated.View, {
463
+ style: sheetStyle,
464
+ children: [/*#__PURE__*/_jsxs(View, {
465
+ style: searchRowStyle,
466
+ children: [/*#__PURE__*/_jsx(Icon, {
467
+ name: "search",
468
+ size: COMBOBOX_FIELD_ICON_SIZE,
469
+ color: rowColors.icon,
470
+ strokeWidth: ICON_STROKE
471
+ }), /*#__PURE__*/_jsx(TextInput, {
472
+ ref: searchInputRef,
473
+ testID: testID ? `${testID}-search` : undefined,
474
+ value: query,
475
+ onChangeText: handleQueryChange,
476
+ placeholder: searchPlaceholder,
477
+ placeholderTextColor: rowColors.placeholder,
478
+ accessibilityLabel: searchPlaceholder
479
+ // Hyphenated JSX attributes are not type-checked at all, which is exactly why the id
480
+ // comes from `comboboxOptionNativeId` and is never interpolated here.
481
+ ,
482
+ "aria-activedescendant": activeOptionId,
483
+ autoFocus: true,
484
+ autoCapitalize: "none",
485
+ autoCorrect: false,
486
+ autoComplete: "off",
487
+ importantForAutofill: "no",
488
+ style: searchInputStyle
489
+ })]
490
+ }), loading ? /*#__PURE__*/_jsx(View, {
491
+ style: listStateStyle,
492
+ children: /*#__PURE__*/_jsx(Spinner, {
493
+ size: "md",
494
+ tone: "neutral",
495
+ testID: testID ? `${testID}-spinner` : undefined
496
+ })
497
+ }) : filteredOptions.length === 0 ? /*#__PURE__*/_jsx(View, {
498
+ style: listStateStyle,
499
+ children: /*#__PURE__*/_jsx(Text, {
500
+ accessibilityLiveRegion: Platform.OS === "android" ? "polite" : undefined,
501
+ style: emptyTextStyle,
502
+ children: emptyMessage
503
+ })
504
+ }) : /*#__PURE__*/_jsx(VirtualList, {
505
+ data: filteredOptions,
506
+ keyExtractor: keyExtractor,
507
+ renderItem: renderRow,
508
+ itemHeight: uniformRowHeight ? COMBOBOX_ROW_MIN_HEIGHT : undefined,
509
+ accessibilityRole: COMBOBOX_LISTBOX_ROLE
510
+ // The search field holds focus while the sheet is open, so the default `"never"`
511
+ // spends the first tap on any row dismissing the keyboard instead of selecting.
455
512
  ,
456
- "aria-activedescendant": activeOptionId,
457
- autoFocus: true,
458
- autoCapitalize: "none",
459
- autoCorrect: false,
460
- autoComplete: "off",
461
- importantForAutofill: "no",
462
- style: searchInputStyle
513
+ keyboardShouldPersistTaps: "handled"
463
514
  })]
464
- }), loading ? /*#__PURE__*/_jsx(View, {
465
- style: listStateStyle,
466
- children: /*#__PURE__*/_jsx(Spinner, {
467
- size: "md",
468
- tone: "neutral",
469
- testID: testID ? `${testID}-spinner` : undefined
470
- })
471
- }) : filteredOptions.length === 0 ? /*#__PURE__*/_jsx(View, {
472
- style: listStateStyle,
473
- children: /*#__PURE__*/_jsx(Text, {
474
- accessibilityLiveRegion: Platform.OS === "android" ? "polite" : undefined,
475
- style: emptyTextStyle,
476
- children: emptyMessage
477
- })
478
- }) : /*#__PURE__*/_jsx(VirtualList, {
479
- data: filteredOptions,
480
- keyExtractor: keyExtractor,
481
- renderItem: renderRow,
482
- itemHeight: uniformRowHeight ? COMBOBOX_ROW_MIN_HEIGHT : undefined,
483
- accessibilityRole: COMBOBOX_LISTBOX_ROLE
484
- // The search field holds focus while the sheet is open, so the default `"never"`
485
- // spends the first tap on any row dismissing the keyboard instead of selecting.
486
- ,
487
- keyboardShouldPersistTaps: "handled"
488
- })]
515
+ })
489
516
  })
490
517
  })]
491
518
  }) : null;
@@ -493,12 +520,15 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
493
520
  // Web portal opt-in — see Modal.tsx's/Select.tsx's identical branch + ModalPortalContext.ts. Every
494
521
  // other case (native, or web with no ModalPortalProvider) renders through RN's own <Modal> below.
495
522
  const menu = Platform.OS === "web" && portalContainer != null ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
496
- style: StyleSheet.absoluteFill,
497
- pointerEvents: "box-none",
523
+ style: [StyleSheet.absoluteFill, {
524
+ pointerEvents: "box-none"
525
+ }],
498
526
  children: sheet
499
527
  }), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
500
528
  visible: open,
501
529
  transparent: true,
530
+ statusBarTranslucent: true,
531
+ navigationBarTranslucent: true,
502
532
  animationType: "none",
503
533
  onRequestClose: closeSheet
504
534
  // `autoFocus` on the search TextInput alone is timing-flaky inside a native Modal on iOS
@@ -525,11 +555,13 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
525
555
  onFocus: handleFocus,
526
556
  onBlur: handleBlur,
527
557
  hitSlop: COMBOBOX_FIELD_HIT_SLOP,
558
+ android_ripple: triggerRipple,
528
559
  style: fieldStyle,
529
560
  children: [showFocusRing && /*#__PURE__*/_jsx(View, {
530
- pointerEvents: "none",
531
561
  testID: testID ? `${testID}-focus-ring` : undefined,
532
- style: focusRingStyle
562
+ style: [focusRingStyle, {
563
+ pointerEvents: "none"
564
+ }]
533
565
  }), /*#__PURE__*/_jsxs(View, {
534
566
  style: fieldValueStyle,
535
567
  children: [singleSelectedOption?.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
@@ -548,6 +580,7 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
548
580
  accessibilityLabel: "Clear",
549
581
  onPress: handleClear,
550
582
  hitSlop: COMBOBOX_CLEAR_BUTTON_HIT_SLOP,
583
+ android_ripple: clearButtonRipple,
551
584
  style: clearButtonStyle,
552
585
  children: /*#__PURE__*/_jsx(Icon, {
553
586
  name: "x",
@@ -25,11 +25,9 @@
25
25
  * this directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
26
26
  */
27
27
 
28
+ import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
28
29
  import { createThemedVariants } from "../../core/style/index.js";
29
30
  /** Same touch-target floor as Button/Select/Input (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
30
- export const MIN_TOUCH_TARGET = 44;
31
- const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
32
-
33
31
  /** No `size` prop (unlike Select/MultiSelect) — not part of this module's spec, and a search sheet's
34
32
  * proportions don't benefit from the sm/lg range those triggers offer. One fixed box, sized exactly
35
33
  * like Input's/Select's `md`, so a Combobox lines up with either in the same form. */
@@ -65,6 +63,7 @@ export const FILTER_DEBOUNCE_MS = 140;
65
63
  * Strips combining diacritical marks after Unicode NFD decomposition, so "José" and "jose" match the
66
64
  * same query. Lowercased last so the comparison is also case-insensitive.
67
65
  */
66
+ export { MIN_TOUCH_TARGET };
68
67
  export function normalizeForSearch(value) {
69
68
  return value.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
70
69
  }
@@ -78,6 +77,16 @@ export function normalizeForSearch(value) {
78
77
  */
79
78
  export const COMBOBOX_LISTBOX_ROLE = "listbox";
80
79
 
80
+ /**
81
+ * Each option row's role. `aria-selected` is only valid ARIA on `option`/`row`/`tab`/`gridcell`/
82
+ * `treeitem` — the row sits inside a `COMBOBOX_LISTBOX_ROLE` container, so `option` is the
83
+ * textbook-correct pairing (2026-08 sweep fixed the row from the invalid `menuitem`+`aria-selected`
84
+ * combination — a followup to `select/Select.tsx`'s identical fix, both listbox/option/aria-selected
85
+ * per the ARIA 1.2 combobox-with-listbox-popup pattern). Same type gap as `COMBOBOX_LISTBOX_ROLE`:
86
+ * RN 0.86's `AccessibilityRole` union has no `option` either.
87
+ */
88
+ export const COMBOBOX_OPTION_ROLE = "option";
89
+
81
90
  /**
82
91
  * The DOM id of one option row. `aria-activedescendant` and `nativeID` must agree exactly, and
83
92
  * every `aria-*` prop is UNCHECKED by TypeScript on an RN component (hyphenated JSX attributes are
@@ -133,7 +142,7 @@ export function resolveComboboxTriggerColors(colors, state) {
133
142
  background: colors.bg.surface,
134
143
  border: state.error ? colors.status.danger.solid : colors.border.interactive,
135
144
  text: colors.fg.default,
136
- placeholder: colors.fg.muted,
145
+ placeholder: colors.fg.placeholder,
137
146
  icon: colors.fg.muted
138
147
  };
139
148
  }
@@ -148,6 +157,7 @@ export function resolveComboboxRowColors(colors) {
148
157
  background: colors.bg.surface,
149
158
  text: colors.fg.default,
150
159
  muted: colors.fg.muted,
160
+ placeholder: colors.fg.placeholder,
151
161
  icon: colors.fg.muted,
152
162
  checkIcon: colors.fg.default,
153
163
  pressedRow: colors.bg.sunken
@@ -167,13 +177,15 @@ export function resolveComboboxAccessibility(input) {
167
177
  };
168
178
  }
169
179
  /**
170
- * Every row is `menuitem` (matching this library's `Menu`), in BOTH single and multiple mode — the
171
- * spec this module was built against fixes this role regardless of mode, unlike `MultiSelect`'s own
172
- * `checkbox` rows. Selection state rides `aria-selected`, never `aria-checked`.
180
+ * Every row is `option` (2026-08 sweep was `menuitem`, which made `aria-selected` invalid ARIA;
181
+ * the row sits inside `COMBOBOX_LISTBOX_ROLE`, so `option` is the textbook-correct pairing), in BOTH
182
+ * single and multiple mode: this module's `aria-activedescendant` pattern is one listbox regardless
183
+ * of mode, unlike `MultiSelect`'s own separate `checkbox` rows. Selection state rides `aria-selected`,
184
+ * never `aria-checked`.
173
185
  */
174
186
  export function resolveComboboxRowAccessibility(input) {
175
187
  return {
176
- accessibilityRole: "menuitem",
188
+ accessibilityRole: COMBOBOX_OPTION_ROLE,
177
189
  "aria-selected": input.selected,
178
190
  "aria-disabled": input.disabled,
179
191
  disabled: input.disabled
@@ -191,7 +203,8 @@ export const comboboxFieldStructure = createThemedVariants(theme => ({
191
203
  columnGap: theme.space[2],
192
204
  height: COMBOBOX_FIELD_HEIGHT,
193
205
  paddingHorizontal: theme.space[4],
194
- borderRadius: theme.radii.base,
206
+ borderRadius: theme.radii.md,
207
+ borderCurve: "continuous",
195
208
  borderWidth: theme.borderWidths.thin
196
209
  }
197
210
  }));
@@ -230,7 +243,8 @@ export const comboboxOverlayStructure = createThemedVariants(theme => ({
230
243
  * default `DEFAULT_MAX_HEIGHT`) and is applied inline over this at the component boundary. */
231
244
  export const comboboxSheetStructure = createThemedVariants(theme => ({
232
245
  base: {
233
- borderRadius: theme.radii.base,
246
+ borderRadius: theme.radii.md,
247
+ borderCurve: "continuous",
234
248
  ...theme.elevation.lg
235
249
  }
236
250
  }));
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=ComboboxProps.js.map
@@ -25,7 +25,7 @@ reuses directly, e.g. from `SearchBar`).
25
25
  | `__tests__/Combobox.keyboard.test.tsx` | Web keyboard: `aria-activedescendant` tracks the arrows, Enter selects, Space stays with the search field, Escape closes, trigger opens on Space. |
26
26
  | `__tests__/Combobox.filter.test.tsx` | The memoized filter matches `defaultComboboxFilter` exactly across diacritics/mixed case; a `filterFn` still runs per option. |
27
27
  | `__tests__/Combobox.layout.test.tsx` | `getItemLayout` is derived for uniform rows and absent as soon as one option has a `description`. |
28
- | `__tests__/Combobox.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): check-glyph and press feedback snap to their final values, and `Animated.timing` is never called. |
28
+ | `__tests__/Combobox.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): check-glyph and press feedback snap to their final values, with no tween scheduled. |
29
29
 
30
30
  ## Props
31
31
 
@@ -61,10 +61,14 @@ through the same collapsing rule): 0 → placeholder, 1 → that option's label,
61
61
  ## Accessibility contract (WCAG)
62
62
 
63
63
  - **4.1.2** — the field is `accessibilityRole="combobox"` with flat `aria-expanded` tracking the
64
- sheet. Rows are `accessibilityRole="menuitem"` (matching `Menu`, in BOTH single and multiple
65
- mode — this module's own spec, unlike `MultiSelect`'s `checkbox` rows) with flat `aria-selected` /
66
- `aria-disabled`. Flat, never `accessibilityState={{…}}`: react-native-web discards the object form
67
- — see `docs/PLATFORM-A11Y-PROPS.md`.
64
+ sheet. Rows are `accessibilityRole="option"` (in BOTH single and multiple mode — this module's own
65
+ spec, unlike `MultiSelect`'s `checkbox` rows) with flat `aria-selected` / `aria-disabled`. Flat,
66
+ never `accessibilityState={{…}}`: react-native-web discards the object form — see
67
+ `docs/PLATFORM-A11Y-PROPS.md`. **2026-08 sweep:** rows were `accessibilityRole="menuitem"`, which
68
+ made `aria-selected` invalid ARIA (only valid on `option`/`row`/`tab`/`gridcell`/`treeitem`); rows
69
+ sit inside `COMBOBOX_LISTBOX_ROLE` (`"listbox"`), so `option` + `aria-selected` is the
70
+ textbook-correct ARIA listbox pattern — the same fix `select/Select.tsx`'s identical bug got, only
71
+ the row's `accessibilityRole` changed.
68
72
  - **2.5.x target size** — the field reaches ≥ 44dp via `hitSlop`; the clear button — nested inside
69
73
  the field `Pressable`, same structure as `DatePicker`'s — reaches 44×44 the same way; option rows
70
74
  have a 44dp `minHeight` directly.
@@ -167,7 +171,7 @@ handler.
167
171
 
168
172
  Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-motion aware.
169
173
 
170
- - **Row press** — `usePressMotion(rowDisabled)`; the row's content `Animated.View` (which carries
174
+ - **Row press** — `usePressMotion(rowDisabled)`; the row's content `Reanimated.View` (which carries
171
175
  `comboboxRowStructure`, including the 44dp `minHeight`) scales/dips, while the `Pressable` keeps
172
176
  the `pressedRow` background. `scale` is a transform, so the row's hit area is unaffected.
173
177
  - **Check glyph** — fades in/out on selection change, but a row that mounts already-selected
@@ -176,8 +180,8 @@ Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-moti
176
180
  (the same flag `<Modal visible>` uses), so there is no second source of truth and no extra render
177
181
  per open/close. See `Select`/`MultiSelect` — all three pickers use this one gate.
178
182
 
179
- ## Modernization (v1.0.7)
183
+ ## Android
180
184
 
181
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
182
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
183
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
185
+ `android_ripple` (`borderless: false`) on the trigger field (gated `!disabled`), the clear button and
186
+ each option row (gated `!rowDisabled`); the field and clear button set `overflow: "hidden"` so the
187
+ ripple clips to their shape. The backdrop scrim uses `MOTION_TRANSFORM.scrimOpacity`, aligned with `Modal`.
@@ -10,16 +10,17 @@
10
10
  */
11
11
 
12
12
  import { memo, useCallback, useEffect, useMemo, useRef } from "react";
13
- import { ActivityIndicator, Animated, Platform, Pressable, StyleSheet, TextInput, View } from "react-native";
13
+ import { ActivityIndicator, Platform, Pressable, StyleSheet, TextInput, View } from "react-native";
14
+ import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
14
15
  import { Icon } from "../../core/icon/index.js";
15
- import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
16
+ import { useMotion, useAnimatedValue } from "../../core/motion/index.js";
17
+ import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
18
+ import { rippleColor } from "../../theme/platform/stateLayer.native.js";
16
19
  import { useTheme } from "../../theme/hooks.js";
17
20
  import { composerFieldStructure, composerInputStructure, composerSendStructure, composerStructure } from "./Composer.variants.js";
18
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
22
  const ICON_STROKE = 2;
20
23
  const ICON_SIZE = 18;
21
- const FOCUS_RING_WIDTH = 2;
22
- const FOCUS_RING_GAP = 2;
23
24
  const FIELD_STYLE = composerFieldStructure();
24
25
  /** Split out so the icon/spinner subtree survives the parent's per-keystroke `value` re-render. */
25
26
  const ComposerSend = /*#__PURE__*/memo(function ComposerSend({
@@ -32,6 +33,10 @@ const ComposerSend = /*#__PURE__*/memo(function ComposerSend({
32
33
  const sendStyle = useMemo(() => [composerSendStructure(theme), {
33
34
  backgroundColor: canSend ? theme.colors.accent.solid : theme.colors.bg.sunken
34
35
  }], [theme, canSend]);
36
+ const androidRipple = useMemo(() => Platform.OS === "android" && canSend ? {
37
+ color: rippleColor(theme.mode),
38
+ borderless: true
39
+ } : undefined, [canSend, theme.mode]);
35
40
  return /*#__PURE__*/_jsx(Pressable, {
36
41
  testID: testID,
37
42
  accessibilityRole: "button",
@@ -39,6 +44,7 @@ const ComposerSend = /*#__PURE__*/memo(function ComposerSend({
39
44
  "aria-disabled": !canSend,
40
45
  disabled: !canSend,
41
46
  onPress: onPress,
47
+ android_ripple: androidRipple,
42
48
  style: sendStyle,
43
49
  children: sending ? /*#__PURE__*/_jsx(ActivityIndicator, {
44
50
  color: theme.colors.accent.onSolid
@@ -71,11 +77,14 @@ export const Composer = /*#__PURE__*/memo(function Composer({
71
77
  }, [canSend, onSend]);
72
78
  const ringOpacity = useAnimatedValue(0);
73
79
  const ringAnimation = useRef(null);
80
+ const ringAnimatedStyle = useAnimatedStyle(() => ({
81
+ opacity: ringOpacity.value
82
+ }));
74
83
  const setRingVisible = useCallback(visible => {
75
84
  ringAnimation.current?.stop();
76
85
  const to = visible ? 1 : 0;
77
86
  if (!motion.enabled) {
78
- ringOpacity.setValue(to);
87
+ ringOpacity.value = to;
79
88
  return;
80
89
  }
81
90
  ringAnimation.current = motion.timing(ringOpacity, to, {
@@ -110,25 +119,25 @@ export const Composer = /*#__PURE__*/memo(function Composer({
110
119
  bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
111
120
  borderWidth: FOCUS_RING_WIDTH,
112
121
  borderColor: theme.colors.border.focus,
113
- borderRadius: theme.radii.lg + FOCUS_RING_GAP + FOCUS_RING_WIDTH
122
+ borderRadius: theme.radii.lg + FOCUS_RING_GAP + FOCUS_RING_WIDTH,
123
+ borderCurve: "continuous"
114
124
  }), [theme]);
115
125
  return /*#__PURE__*/_jsxs(View, {
116
126
  testID: testID,
117
127
  style: rootStyle,
118
128
  children: [/*#__PURE__*/_jsxs(View, {
119
129
  style: FIELD_STYLE,
120
- children: [/*#__PURE__*/_jsx(Animated.View, {
121
- pointerEvents: "none",
130
+ children: [/*#__PURE__*/_jsx(Reanimated.View, {
122
131
  testID: "composer-focus-ring",
123
- style: [focusRingStyle, {
124
- opacity: ringOpacity
132
+ style: [focusRingStyle, ringAnimatedStyle, {
133
+ pointerEvents: 'none'
125
134
  }]
126
135
  }), /*#__PURE__*/_jsx(TextInput, {
127
136
  testID: testID ? `${testID}-input` : undefined,
128
137
  value: value,
129
138
  onChangeText: onChangeText,
130
139
  placeholder: placeholder,
131
- placeholderTextColor: theme.colors.fg.muted,
140
+ placeholderTextColor: theme.colors.fg.placeholder,
132
141
  editable: editable,
133
142
  accessibilityLabel: accessibilityLabel ?? placeholder,
134
143
  "aria-disabled": !editable,
@@ -26,6 +26,7 @@ export const composerInputStructure = createThemedVariants(theme => ({
26
26
  paddingHorizontal: theme.space[3],
27
27
  paddingVertical: theme.space[2],
28
28
  borderRadius: theme.radii.lg,
29
+ borderCurve: "continuous",
29
30
  borderWidth: theme.borderWidths.thin,
30
31
  fontSize: theme.fontSizes.md
31
32
  }
@@ -35,6 +36,7 @@ export const composerSendStructure = createThemedVariants(theme => ({
35
36
  width: 40,
36
37
  height: 40,
37
38
  borderRadius: theme.radii.full,
39
+ borderCurve: "continuous",
38
40
  alignItems: "center",
39
41
  justifyContent: "center"
40
42
  }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=ComposerProps.js.map
@@ -11,6 +11,7 @@ whitespace-only.
11
11
  | `Composer.tsx` | The component, plus the internal memo'd `ComposerSend` child. |
12
12
  | `Composer.variants.ts` | Structural resolvers (root row, field wrapper, input, send circle). No colour resolver — every colour here is a single non-branching role lookup, read at the component. |
13
13
  | `index.ts` | Public surface: `Composer`, `ComposerProps`. |
14
+ | `__tests__/Composer.test.ts` | Pure: the structural resolvers and the send-enabled predicate. |
14
15
  | `__tests__/Composer.render.test.tsx` | Send fires with text present, stays inert when empty; focus-ring opacity on focus/blur/disabled/sending; web outline reset. |
15
16
 
16
17
  ## Props
@@ -21,7 +22,7 @@ whitespace-only.
21
22
  | `onChangeText` | `(text: string) => void` | — | Required. |
22
23
  | `onSend` | `() => void` | — | Required. Never fires while send is disabled. |
23
24
  | `placeholder` | `string` | `"Message"` | Falls back into the field's `accessibilityLabel`. |
24
- | `accessibilityLabel` | `string` | `placeholder` | Names the field. Previously absent `ComposerProps` exposed no label prop at all, so a consumer with more than one composer on screen (or a placeholder unsuited as a name) could not give it an accessible name. |
25
+ | `accessibilityLabel` | `string` | `placeholder` | Names the field. A placeholder disappears once there is a value, so a screen with more than one composer needs this to tell them apart. |
25
26
  | `disabled` | `boolean` | `false` | Blocks typing and sending. |
26
27
  | `sending` | `boolean` | `false` | Blocks typing and sending; shows the spinner. |
27
28
  | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
@@ -31,7 +32,7 @@ whitespace-only.
31
32
 
32
33
  - **Focus ring (WCAG 2.4.7 / 2.4.11).** Same offset-ring pattern as Input: a `border.focus` ring
33
34
  2px wide, 2px outside the field, crossfaded on the field's `onFocus`/`onBlur` through
34
- `useMotion()`. It is always mounted at opacity 0 (`testID="composer-focus-ring"`,
35
+ `useMotion()` on a Reanimated node. It is always mounted at opacity 0 (`testID="composer-focus-ring"`,
35
36
  `pointerEvents="none"`) and never raised while `disabled` or `sending`. The ring is an absolutely
36
37
  positioned sibling of the `TextInput` inside a `composerFieldStructure` wrapper — that wrapper
37
38
  carries the row's `flex: 1`.
@@ -68,3 +69,7 @@ controlled), so:
68
69
  fresh literal per keystroke would defeat the memo above. `aria-disabled={!canSend}` is a primitive,
69
70
  not an object, so it needs no memo of its own.
70
71
  - `ComposerSend` reads `useTheme()` itself rather than taking a `theme` prop.
72
+
73
+ - The round send button takes `android_ripple` (`borderless: true`, matching its circular shape),
74
+ gated on `Platform.OS === "android" && canSend`, so a disabled send button shows no ripple.
75
+