pixelize-native-library 1.2.1 → 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 (808) 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 +22 -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 +9 -6
  11. package/lib/module/core/gradient/ShimmerGradientFill.js +79 -0
  12. package/lib/module/core/gradient/index.js +1 -0
  13. package/lib/module/core/haptics/MODULE.md +7 -3
  14. package/lib/module/core/heading/MODULE.md +1 -1
  15. package/lib/module/core/icon/MODULE.md +14 -22
  16. package/lib/module/core/icon/icons/building-2.js +1 -1
  17. package/lib/module/core/icon/icons/trash.js +1 -1
  18. package/lib/module/core/list/VirtualList.js +16 -3
  19. package/lib/module/core/motion/MODULE.md +18 -9
  20. package/lib/module/core/motion/animatedComponents.js +8 -0
  21. package/lib/module/core/motion/index.js +2 -0
  22. package/lib/module/core/motion/motionAnimation.js +87 -0
  23. package/lib/module/core/motion/presets.js +81 -81
  24. package/lib/module/core/motion/reanimatedEasing.js +19 -0
  25. package/lib/module/core/motion/useAnimatedValue.js +2 -14
  26. package/lib/module/core/motion/useMotion.js +19 -20
  27. package/lib/module/core/motion/usePressState.js +0 -5
  28. package/lib/module/core/overlay/MODULE.md +17 -0
  29. package/lib/module/core/overlay/ModalPortalContext.js +8 -0
  30. package/lib/module/core/overlay/index.js +5 -0
  31. package/lib/module/core/overlay/renderWebPortal.js +6 -0
  32. package/lib/module/core/overlay/renderWebPortal.web.js +8 -0
  33. package/lib/module/core/screen-scroll/ScreenScrollContext.js +9 -0
  34. package/lib/module/core/screen-scroll/index.js +4 -0
  35. package/lib/module/core/slot/MODULE.md +9 -0
  36. package/lib/module/core/slot/index.js +4 -0
  37. package/lib/module/core/slot/nodeSlot.js +21 -0
  38. package/lib/module/core/style/focusRing.js +37 -0
  39. package/lib/module/core/style/index.js +1 -1
  40. package/lib/module/index.js +23 -4
  41. package/lib/module/modules/accordion/Accordion.js +50 -108
  42. package/lib/module/modules/accordion/Accordion.variants.js +2 -4
  43. package/lib/module/modules/accordion/AccordionProps.js +4 -0
  44. package/lib/module/modules/accordion/MODULE.md +15 -24
  45. package/lib/module/modules/alert-dialog/AlertDialog.js +19 -2
  46. package/lib/module/modules/alert-dialog/AlertDialogProps.js +4 -0
  47. package/lib/module/modules/alert-dialog/MODULE.md +2 -1
  48. package/lib/module/modules/app-bar/AppBar.js +21 -18
  49. package/lib/module/modules/app-bar/AppBar.variants.js +5 -0
  50. package/lib/module/modules/app-bar/AppBarProps.js +4 -0
  51. package/lib/module/modules/app-bar/MODULE.md +1 -1
  52. package/lib/module/modules/app-switcher/AppSwitcher.js +30 -0
  53. package/lib/module/modules/app-switcher/AppSwitcherProps.js +4 -0
  54. package/lib/module/modules/app-switcher/MODULE.md +14 -0
  55. package/lib/module/modules/app-switcher/index.js +4 -0
  56. package/lib/module/modules/appearance-settings/AppearanceSettings.js +58 -0
  57. package/lib/module/modules/appearance-settings/AppearanceSettingsProps.js +4 -0
  58. package/lib/module/modules/appearance-settings/MODULE.md +9 -0
  59. package/lib/module/modules/appearance-settings/index.js +4 -0
  60. package/lib/module/modules/avatar/Avatar.variants.js +2 -0
  61. package/lib/module/modules/avatar/AvatarProps.js +4 -0
  62. package/lib/module/modules/avatar/MODULE.md +3 -3
  63. package/lib/module/modules/avatar-group/AvatarGroupProps.js +4 -0
  64. package/lib/module/modules/avatar-group/MODULE.md +2 -1
  65. package/lib/module/modules/backdrop/Backdrop.js +38 -0
  66. package/lib/module/modules/backdrop/BackdropProps.js +4 -0
  67. package/lib/module/modules/backdrop/MODULE.md +11 -0
  68. package/lib/module/modules/backdrop/index.js +4 -0
  69. package/lib/module/modules/badge/BadgeProps.js +4 -0
  70. package/lib/module/modules/badge/MODULE.md +6 -4
  71. package/lib/module/modules/banner/Banner.js +2 -2
  72. package/lib/module/modules/banner/Banner.variants.js +3 -1
  73. package/lib/module/modules/banner/BannerProps.js +4 -0
  74. package/lib/module/modules/banner/MODULE.md +20 -31
  75. package/lib/module/modules/bottom-nav/BottomNav.variants.js +2 -2
  76. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +18 -19
  77. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +8 -7
  78. package/lib/module/modules/bottom-nav/BottomNavProps.js +4 -0
  79. package/lib/module/modules/bottom-nav/BottomNavTab.js +15 -16
  80. package/lib/module/modules/bottom-nav/MODULE.md +13 -13
  81. package/lib/module/modules/bottom-sheet/BottomSheet.js +30 -7
  82. package/lib/module/modules/bottom-sheet/BottomSheetProps.js +4 -0
  83. package/lib/module/modules/bottom-sheet/MODULE.md +11 -1
  84. package/lib/module/modules/breadcrumbs/Breadcrumbs.js +54 -0
  85. package/lib/module/modules/breadcrumbs/Breadcrumbs.variants.js +28 -0
  86. package/lib/module/modules/breadcrumbs/BreadcrumbsProps.js +4 -0
  87. package/lib/module/modules/breadcrumbs/MODULE.md +13 -0
  88. package/lib/module/modules/breadcrumbs/index.js +4 -0
  89. package/lib/module/modules/button/Button.js +6 -4
  90. package/lib/module/modules/button/Button.variants.js +12 -16
  91. package/lib/module/modules/button/ButtonProps.js +4 -0
  92. package/lib/module/modules/button/MODULE.md +6 -11
  93. package/lib/module/modules/button-group/ButtonGroup.js +4 -3
  94. package/lib/module/modules/button-group/ButtonGroup.variants.js +2 -4
  95. package/lib/module/modules/button-group/ButtonGroupProps.js +4 -0
  96. package/lib/module/modules/button-group/MODULE.md +2 -2
  97. package/lib/module/modules/card/Card.js +30 -7
  98. package/lib/module/modules/card/CardProps.js +4 -0
  99. package/lib/module/modules/card/MODULE.md +4 -2
  100. package/lib/module/modules/charts/BarChart.js +6 -4
  101. package/lib/module/modules/charts/BarChartProps.js +4 -0
  102. package/lib/module/modules/charts/BarList.js +2 -1
  103. package/lib/module/modules/charts/BarListProps.js +4 -0
  104. package/lib/module/modules/charts/ChartLegendProps.js +4 -0
  105. package/lib/module/modules/charts/Charts.variants.js +3 -1
  106. package/lib/module/modules/charts/DonutChart.js +3 -2
  107. package/lib/module/modules/charts/DonutChartProps.js +4 -0
  108. package/lib/module/modules/charts/LineChart.js +3 -2
  109. package/lib/module/modules/charts/LineChartProps.js +4 -0
  110. package/lib/module/modules/charts/MODULE.md +14 -14
  111. package/lib/module/modules/charts/PieChart.js +6 -4
  112. package/lib/module/modules/charts/PieChartProps.js +4 -0
  113. package/lib/module/modules/charts/SparklineProps.js +4 -0
  114. package/lib/module/modules/checkbox/Checkbox.js +21 -27
  115. package/lib/module/modules/checkbox/Checkbox.variants.js +4 -2
  116. package/lib/module/modules/checkbox/CheckboxProps.js +4 -0
  117. package/lib/module/modules/checkbox/MODULE.md +12 -6
  118. package/lib/module/modules/chip/Chip.js +49 -32
  119. package/lib/module/modules/chip/Chip.variants.js +3 -2
  120. package/lib/module/modules/chip/ChipGroup.js +16 -5
  121. package/lib/module/modules/chip/ChipGroupProps.js +4 -0
  122. package/lib/module/modules/chip/ChipProps.js +4 -0
  123. package/lib/module/modules/chip/MODULE.md +5 -7
  124. package/lib/module/modules/combobox/Combobox.js +22 -25
  125. package/lib/module/modules/combobox/Combobox.variants.js +2 -3
  126. package/lib/module/modules/combobox/ComboboxProps.js +4 -0
  127. package/lib/module/modules/combobox/MODULE.md +6 -12
  128. package/lib/module/modules/composer/Composer.js +11 -9
  129. package/lib/module/modules/composer/ComposerProps.js +4 -0
  130. package/lib/module/modules/composer/MODULE.md +6 -6
  131. package/lib/module/modules/copy-button/CopyButton.js +14 -6
  132. package/lib/module/modules/copy-button/CopyButton.variants.js +3 -2
  133. package/lib/module/modules/copy-button/CopyButtonProps.js +4 -0
  134. package/lib/module/modules/copy-button/MODULE.md +10 -12
  135. package/lib/module/modules/data-table/DataTable.js +11 -7
  136. package/lib/module/modules/data-table/DataTable.variants.js +2 -2
  137. package/lib/module/modules/data-table/DataTableProps.js +4 -0
  138. package/lib/module/modules/data-table/MODULE.md +5 -10
  139. package/lib/module/modules/date-picker/Calendar.js +11 -8
  140. package/lib/module/modules/date-picker/CalendarProps.js +4 -0
  141. package/lib/module/modules/date-picker/DatePicker.variants.js +2 -1
  142. package/lib/module/modules/date-picker/DatePickerProps.js +4 -0
  143. package/lib/module/modules/date-picker/DateRangePickerProps.js +4 -0
  144. package/lib/module/modules/date-picker/MODULE.md +6 -9
  145. package/lib/module/modules/date-picker/PickerFieldProps.js +4 -0
  146. package/lib/module/modules/date-picker/PickerShell.js +21 -12
  147. package/lib/module/modules/date-picker/PickerShellProps.js +4 -0
  148. package/lib/module/modules/date-picker/TimePicker.js +3 -2
  149. package/lib/module/modules/date-picker/TimePickerProps.js +4 -0
  150. package/lib/module/modules/description-list/DescriptionList.js +90 -0
  151. package/lib/module/modules/description-list/DescriptionList.variants.js +63 -0
  152. package/lib/module/modules/description-list/DescriptionListProps.js +4 -0
  153. package/lib/module/modules/description-list/MODULE.md +15 -0
  154. package/lib/module/modules/description-list/index.js +4 -0
  155. package/lib/module/modules/divider/DividerProps.js +4 -0
  156. package/lib/module/modules/divider/MODULE.md +1 -8
  157. package/lib/module/modules/document-viewer/DocumentViewer.js +35 -0
  158. package/lib/module/modules/document-viewer/DocumentViewerProps.js +4 -0
  159. package/lib/module/modules/document-viewer/MODULE.md +12 -0
  160. package/lib/module/modules/document-viewer/index.js +4 -0
  161. package/lib/module/modules/drawer/Drawer.js +45 -40
  162. package/lib/module/modules/drawer/DrawerProps.js +4 -0
  163. package/lib/module/modules/drawer/MODULE.md +14 -24
  164. package/lib/module/modules/empty-state/EmptyState.js +2 -1
  165. package/lib/module/modules/empty-state/EmptyStateProps.js +4 -0
  166. package/lib/module/modules/empty-state/MODULE.md +4 -9
  167. package/lib/module/modules/fab/Fab.js +9 -11
  168. package/lib/module/modules/fab/Fab.variants.js +10 -4
  169. package/lib/module/modules/fab/FabGroup.js +40 -43
  170. package/lib/module/modules/fab/FabGroupProps.js +4 -0
  171. package/lib/module/modules/fab/FabProps.js +4 -0
  172. package/lib/module/modules/fab/MODULE.md +10 -17
  173. package/lib/module/modules/field-select-modal/FieldSelectModal.js +52 -0
  174. package/lib/module/modules/field-select-modal/FieldSelectModalProps.js +4 -0
  175. package/lib/module/modules/field-select-modal/MODULE.md +13 -0
  176. package/lib/module/modules/field-select-modal/index.js +4 -0
  177. package/lib/module/modules/file-grid/FileGrid.js +3 -2
  178. package/lib/module/modules/file-grid/FileGridProps.js +4 -0
  179. package/lib/module/modules/file-grid/MODULE.md +27 -4
  180. package/lib/module/modules/file-upload/FileUpload.js +56 -15
  181. package/lib/module/modules/file-upload/FileUploadProps.js +4 -0
  182. package/lib/module/modules/file-upload/MODULE.md +10 -14
  183. package/lib/module/modules/filter-bar/FilterBar.js +68 -0
  184. package/lib/module/modules/filter-bar/FilterBarProps.js +4 -0
  185. package/lib/module/modules/filter-bar/MODULE.md +16 -0
  186. package/lib/module/modules/filter-bar/index.js +4 -0
  187. package/lib/module/modules/filter-sheet/FilterChip.js +3 -2
  188. package/lib/module/modules/filter-sheet/FilterChipProps.js +4 -0
  189. package/lib/module/modules/filter-sheet/FilterSheet.js +19 -14
  190. package/lib/module/modules/filter-sheet/FilterSheet.variants.js +2 -3
  191. package/lib/module/modules/filter-sheet/FilterSheetBody.js +26 -16
  192. package/lib/module/modules/filter-sheet/FilterSheetProps.js +2 -0
  193. package/lib/module/modules/filter-sheet/MODULE.md +5 -14
  194. package/lib/module/modules/folder-row/FolderRow.js +6 -4
  195. package/lib/module/modules/folder-row/FolderRowProps.js +4 -0
  196. package/lib/module/modules/folder-row/MODULE.md +6 -5
  197. package/lib/module/modules/form-field/FormField.js +9 -4
  198. package/lib/module/modules/form-field/FormFieldProps.js +4 -0
  199. package/lib/module/modules/form-field/MODULE.md +2 -7
  200. package/lib/module/modules/gantt/Gantt.js +23 -6
  201. package/lib/module/modules/gantt/Gantt.variants.js +12 -4
  202. package/lib/module/modules/gantt/GanttProps.js +4 -0
  203. package/lib/module/modules/gantt/MODULE.md +3 -3
  204. package/lib/module/modules/image-viewer/ImageViewer.js +3 -2
  205. package/lib/module/modules/image-viewer/ImageViewerProps.js +4 -0
  206. package/lib/module/modules/image-viewer/MODULE.md +1 -1
  207. package/lib/module/modules/input/Input.js +55 -20
  208. package/lib/module/modules/input/Input.variants.js +2 -3
  209. package/lib/module/modules/input/InputProps.js +4 -0
  210. package/lib/module/modules/input/MODULE.md +9 -16
  211. package/lib/module/modules/key-value/KeyValue.js +36 -0
  212. package/lib/module/modules/key-value/KeyValueProps.js +4 -0
  213. package/lib/module/modules/key-value/MODULE.md +16 -0
  214. package/lib/module/modules/key-value/index.js +4 -0
  215. package/lib/module/modules/limit-reached-modal/LimitReachedModalProps.js +4 -0
  216. package/lib/module/modules/limit-reached-modal/MODULE.md +1 -6
  217. package/lib/module/modules/list-item/ListItem.js +17 -6
  218. package/lib/module/modules/list-item/ListItemProps.js +4 -0
  219. package/lib/module/modules/list-item/MODULE.md +14 -9
  220. package/lib/module/modules/list-screen/ListScreen.js +63 -0
  221. package/lib/module/modules/list-screen/ListScreenProps.js +4 -0
  222. package/lib/module/modules/list-screen/MODULE.md +12 -0
  223. package/lib/module/modules/list-screen/index.js +4 -0
  224. package/lib/module/modules/markdown/MODULE.md +0 -6
  225. package/lib/module/modules/markdown/MarkdownProps.js +4 -0
  226. package/lib/module/modules/menu/MODULE.md +10 -17
  227. package/lib/module/modules/menu/Menu.js +66 -52
  228. package/lib/module/modules/menu/Menu.variants.js +2 -2
  229. package/lib/module/modules/menu/MenuProps.js +4 -0
  230. package/lib/module/modules/message-bubble/MODULE.md +5 -4
  231. package/lib/module/modules/message-bubble/MessageBubbleProps.js +4 -0
  232. package/lib/module/modules/modal/MODULE.md +56 -93
  233. package/lib/module/modules/modal/Modal.js +99 -30
  234. package/lib/module/modules/modal/ModalPortalContext.js +1 -22
  235. package/lib/module/modules/modal/ModalPortalProvider.js +1 -1
  236. package/lib/module/modules/modal/ModalPortalProviderProps.js +4 -0
  237. package/lib/module/modules/modal/ModalProps.js +4 -0
  238. package/lib/module/modules/modal/renderWebPortal.js +1 -15
  239. package/lib/module/modules/modal/renderWebPortal.web.js +1 -21
  240. package/lib/module/modules/more-items/MODULE.md +0 -2
  241. package/lib/module/modules/more-items/MoreItems.js +10 -7
  242. package/lib/module/modules/more-items/MoreItems.variants.js +2 -1
  243. package/lib/module/modules/more-items/MoreItemsProps.js +4 -0
  244. package/lib/module/modules/multi-select/MODULE.md +5 -11
  245. package/lib/module/modules/multi-select/MultiSelect.js +38 -23
  246. package/lib/module/modules/multi-select/MultiSelect.variants.js +4 -2
  247. package/lib/module/modules/multi-select/MultiSelectProps.js +4 -0
  248. package/lib/module/modules/notification-bell/MODULE.md +8 -0
  249. package/lib/module/modules/notification-bell/NotificationBell.js +43 -0
  250. package/lib/module/modules/notification-bell/NotificationBellProps.js +4 -0
  251. package/lib/module/modules/notification-bell/index.js +4 -0
  252. package/lib/module/modules/number-input/MODULE.md +8 -13
  253. package/lib/module/modules/number-input/NumberInput.js +8 -6
  254. package/lib/module/modules/number-input/NumberInput.variants.js +2 -4
  255. package/lib/module/modules/number-input/NumberInputProps.js +4 -0
  256. package/lib/module/modules/org-switcher/MODULE.md +5 -12
  257. package/lib/module/modules/org-switcher/OrgSwitcher.js +21 -19
  258. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +4 -2
  259. package/lib/module/modules/org-switcher/OrgSwitcherProps.js +4 -0
  260. package/lib/module/modules/pagination/MODULE.md +2 -5
  261. package/lib/module/modules/pagination/Pagination.js +25 -15
  262. package/lib/module/modules/pagination/Pagination.variants.js +2 -2
  263. package/lib/module/modules/pagination/PaginationControls.js +7 -5
  264. package/lib/module/modules/pagination/PaginationProps.js +4 -0
  265. package/lib/module/modules/person-chip/MODULE.md +11 -0
  266. package/lib/module/modules/person-chip/PersonChip.js +65 -0
  267. package/lib/module/modules/person-chip/PersonChipProps.js +4 -0
  268. package/lib/module/modules/person-chip/index.js +4 -0
  269. package/lib/module/modules/pin-input/MODULE.md +9 -20
  270. package/lib/module/modules/pin-input/PinInput.js +2 -2
  271. package/lib/module/modules/pin-input/PinInput.variants.js +2 -3
  272. package/lib/module/modules/pin-input/PinInputProps.js +4 -0
  273. package/lib/module/modules/plan-badge/MODULE.md +4 -0
  274. package/lib/module/modules/plan-badge/PlanBadge.js +25 -0
  275. package/lib/module/modules/plan-badge/PlanBadgeProps.js +4 -0
  276. package/lib/module/modules/plan-badge/index.js +4 -0
  277. package/lib/module/modules/plan-pill/MODULE.md +4 -0
  278. package/lib/module/modules/plan-pill/PlanPill.js +24 -0
  279. package/lib/module/modules/plan-pill/PlanPillProps.js +4 -0
  280. package/lib/module/modules/plan-pill/index.js +4 -0
  281. package/lib/module/modules/progress-bar/MODULE.md +12 -14
  282. package/lib/module/modules/progress-bar/ProgressBar.js +28 -36
  283. package/lib/module/modules/progress-bar/ProgressBarProps.js +4 -0
  284. package/lib/module/modules/radio-group/MODULE.md +6 -12
  285. package/lib/module/modules/radio-group/RadioGroup.js +7 -6
  286. package/lib/module/modules/radio-group/RadioGroup.variants.js +2 -3
  287. package/lib/module/modules/radio-group/RadioGroupProps.js +4 -0
  288. package/lib/module/modules/reorder/MODULE.md +7 -11
  289. package/lib/module/modules/reorder/Reorder.js +8 -3
  290. package/lib/module/modules/reorder/Reorder.variants.js +3 -4
  291. package/lib/module/modules/reorder/ReorderProps.js +4 -0
  292. package/lib/module/modules/rich-text/MODULE.md +4 -4
  293. package/lib/module/modules/rich-text/RichTextProps.js +4 -0
  294. package/lib/module/modules/rich-text-editor/MODULE.md +6 -16
  295. package/lib/module/modules/rich-text-editor/RichTextEditor.js +5 -4
  296. package/lib/module/modules/rich-text-editor/RichTextEditorProps.js +4 -0
  297. package/lib/module/modules/save-bar/MODULE.md +3 -0
  298. package/lib/module/modules/save-bar/SaveBar.js +49 -0
  299. package/lib/module/modules/save-bar/SaveBarProps.js +4 -0
  300. package/lib/module/modules/save-bar/index.js +4 -0
  301. package/lib/module/modules/screen/MODULE.md +7 -5
  302. package/lib/module/modules/screen/Screen.js +65 -22
  303. package/lib/module/modules/screen/ScreenProps.js +4 -0
  304. package/lib/module/modules/search-bar/MODULE.md +8 -8
  305. package/lib/module/modules/search-bar/SearchBar.js +8 -6
  306. package/lib/module/modules/search-bar/SearchBar.variants.js +2 -4
  307. package/lib/module/modules/search-bar/SearchBarProps.js +4 -0
  308. package/lib/module/modules/section/MODULE.md +1 -1
  309. package/lib/module/modules/section/Section.js +6 -1
  310. package/lib/module/modules/section/SectionProps.js +4 -0
  311. package/lib/module/modules/section-list/MODULE.md +21 -1
  312. package/lib/module/modules/section-list/SectionListProps.js +4 -0
  313. package/lib/module/modules/segmented-control/MODULE.md +30 -28
  314. package/lib/module/modules/segmented-control/SegmentedControl.js +20 -30
  315. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +9 -42
  316. package/lib/module/modules/segmented-control/SegmentedControlProps.js +4 -0
  317. package/lib/module/modules/select/MODULE.md +8 -5
  318. package/lib/module/modules/select/Select.js +38 -25
  319. package/lib/module/modules/select/Select.variants.js +4 -5
  320. package/lib/module/modules/select/SelectProps.js +4 -0
  321. package/lib/module/modules/setting-row/MODULE.md +8 -0
  322. package/lib/module/modules/setting-row/SettingRow.js +50 -0
  323. package/lib/module/modules/setting-row/SettingRowProps.js +4 -0
  324. package/lib/module/modules/setting-row/index.js +4 -0
  325. package/lib/module/modules/settings-section/MODULE.md +7 -0
  326. package/lib/module/modules/settings-section/SettingsSection.js +37 -0
  327. package/lib/module/modules/settings-section/SettingsSectionProps.js +4 -0
  328. package/lib/module/modules/settings-section/index.js +4 -0
  329. package/lib/module/modules/skeleton/MODULE.md +2 -1
  330. package/lib/module/modules/skeleton/Skeleton.js +14 -8
  331. package/lib/module/modules/skeleton/Skeleton.variants.js +4 -9
  332. package/lib/module/modules/skeleton/SkeletonProps.js +4 -0
  333. package/lib/module/modules/slider/MODULE.md +2 -1
  334. package/lib/module/modules/slider/Slider.js +6 -6
  335. package/lib/module/modules/slider/Slider.variants.js +4 -2
  336. package/lib/module/modules/slider/SliderProps.js +4 -0
  337. package/lib/module/modules/spinner/MODULE.md +3 -2
  338. package/lib/module/modules/spinner/SpinnerProps.js +4 -0
  339. package/lib/module/modules/stage-progress/MODULE.md +20 -6
  340. package/lib/module/modules/stage-progress/StageProgress.js +45 -15
  341. package/lib/module/modules/stage-progress/StageProgress.variants.js +40 -8
  342. package/lib/module/modules/stage-progress/StageProgressProps.js +4 -0
  343. package/lib/module/modules/stat-grid/MODULE.md +11 -0
  344. package/lib/module/modules/stat-grid/StatGrid.js +34 -0
  345. package/lib/module/modules/stat-grid/StatGridProps.js +4 -0
  346. package/lib/module/modules/stat-grid/index.js +4 -0
  347. package/lib/module/modules/stat-tile/MODULE.md +12 -1
  348. package/lib/module/modules/stat-tile/StatTile.js +40 -15
  349. package/lib/module/modules/stat-tile/StatTile.variants.js +5 -0
  350. package/lib/module/modules/stat-tile/StatTileProps.js +4 -0
  351. package/lib/module/modules/state-block/MODULE.md +9 -3
  352. package/lib/module/modules/state-block/StateBlock.js +46 -38
  353. package/lib/module/modules/state-block/StateBlockProps.js +4 -0
  354. package/lib/module/modules/stepper/MODULE.md +2 -0
  355. package/lib/module/modules/stepper/Stepper.js +22 -21
  356. package/lib/module/modules/stepper/Stepper.variants.js +2 -0
  357. package/lib/module/modules/stepper/StepperProps.js +4 -0
  358. package/lib/module/modules/surface/MODULE.md +6 -8
  359. package/lib/module/modules/surface/Surface.js +6 -1
  360. package/lib/module/modules/surface/SurfaceProps.js +4 -0
  361. package/lib/module/modules/swipeable-row/MODULE.md +3 -2
  362. package/lib/module/modules/swipeable-row/SwipeableRow.js +31 -8
  363. package/lib/module/modules/swipeable-row/SwipeableRowProps.js +4 -0
  364. package/lib/module/modules/switch/MODULE.md +6 -3
  365. package/lib/module/modules/switch/Switch.js +42 -8
  366. package/lib/module/modules/switch/Switch.variants.js +2 -3
  367. package/lib/module/modules/switch/SwitchProps.js +4 -0
  368. package/lib/module/modules/tabs/MODULE.md +10 -14
  369. package/lib/module/modules/tabs/Tabs.js +84 -39
  370. package/lib/module/modules/tabs/Tabs.variants.js +2 -4
  371. package/lib/module/modules/tabs/TabsProps.js +4 -0
  372. package/lib/module/modules/text/MODULE.md +25 -17
  373. package/lib/module/modules/text/Text.variants.js +9 -1
  374. package/lib/module/modules/text/TextProps.js +4 -0
  375. package/lib/module/modules/textarea/MODULE.md +12 -18
  376. package/lib/module/modules/textarea/Textarea.js +12 -10
  377. package/lib/module/modules/textarea/Textarea.variants.js +4 -1
  378. package/lib/module/modules/textarea/TextareaProps.js +4 -0
  379. package/lib/module/modules/timeline/MODULE.md +8 -17
  380. package/lib/module/modules/timeline/Timeline.js +79 -22
  381. package/lib/module/modules/timeline/Timeline.variants.js +2 -0
  382. package/lib/module/modules/timeline/TimelineProps.js +4 -0
  383. package/lib/module/modules/toast/MODULE.md +13 -20
  384. package/lib/module/modules/toast/Toast.js +53 -51
  385. package/lib/module/modules/toast/Toast.variants.js +2 -5
  386. package/lib/module/modules/tooltip/MODULE.md +9 -13
  387. package/lib/module/modules/tooltip/Tooltip.js +36 -7
  388. package/lib/module/modules/tooltip/TooltipProps.js +4 -0
  389. package/lib/module/modules/typing-indicator/MODULE.md +1 -1
  390. package/lib/module/modules/typing-indicator/TypingIndicator.js +78 -51
  391. package/lib/module/modules/typing-indicator/TypingIndicatorProps.js +4 -0
  392. package/lib/module/modules/upgrade-button/MODULE.md +3 -0
  393. package/lib/module/modules/upgrade-button/UpgradeButton.js +23 -0
  394. package/lib/module/modules/upgrade-button/UpgradeButtonProps.js +4 -0
  395. package/lib/module/modules/upgrade-button/index.js +4 -0
  396. package/lib/module/theme/MODULE.md +2 -0
  397. package/lib/module/theme/platform/MODULE.md +2 -6
  398. package/lib/module/theme/platform/elevation.native.js +1 -7
  399. package/lib/module/theme/provider/PixelizeProvider.js +6 -0
  400. package/lib/module/theme/tokens/MODULE.md +4 -0
  401. package/lib/module/theme/tokens/THEME-CONTRACT.md +53 -3
  402. package/lib/module/theme/tokens/brands/emerald/palette.light.js +5 -3
  403. package/lib/module/theme/tokens/brands/lavender/palette.light.js +4 -4
  404. package/lib/module/theme/tokens/brands/meadow/palette.light.js +2 -2
  405. package/lib/module/theme/tokens/brands/radiant/palette.light.js +3 -3
  406. package/lib/module/theme/tokens/brands/rosewood/palette.light.js +3 -3
  407. package/lib/module/theme/tokens/brands/skyline/palette.light.js +2 -2
  408. package/lib/module/theme/tokens/brands/slate/palette.light.js +3 -3
  409. package/lib/module/theme/tokens/builders/accentText.js +10 -1
  410. package/lib/module/theme/tokens/builders/buildBrandScale.js +42 -0
  411. package/lib/module/theme/tokens/builders/gradientInk.js +23 -0
  412. package/lib/module/theme/tokens/builders/paletteFromAccent.js +30 -0
  413. package/lib/module/theme/tokens/builders/skeletonShimmer.js +22 -0
  414. package/lib/module/theme/tokens/index.js +3 -0
  415. package/lib/module/theme/tokens/primitives/controlSizes.js +16 -0
  416. package/lib/module/theme/tokens/primitives/index.js +1 -0
  417. package/lib/module/theme/tokens/roles/index.js +2 -0
  418. package/lib/typescript/core/a11y/touchTarget.d.ts +4 -0
  419. package/lib/typescript/core/blur/blur.d.ts +14 -0
  420. package/lib/typescript/core/blur/index.d.ts +3 -0
  421. package/lib/typescript/core/gradient/ShimmerGradientFill.d.ts +8 -0
  422. package/lib/typescript/core/gradient/index.d.ts +1 -0
  423. package/lib/typescript/core/list/VirtualList.d.ts +6 -1
  424. package/lib/typescript/core/motion/animatedComponents.d.ts +4 -0
  425. package/lib/typescript/core/motion/index.d.ts +2 -0
  426. package/lib/typescript/core/motion/motionAnimation.d.ts +12 -0
  427. package/lib/typescript/core/motion/presets.d.ts +5 -36
  428. package/lib/typescript/core/motion/reanimatedEasing.d.ts +4 -0
  429. package/lib/typescript/core/motion/useAnimatedValue.d.ts +2 -10
  430. package/lib/typescript/core/motion/useMotion.d.ts +4 -13
  431. package/lib/typescript/core/motion/usePressState.d.ts +0 -1
  432. package/lib/typescript/core/overlay/ModalPortalContext.d.ts +2 -0
  433. package/lib/typescript/core/overlay/index.d.ts +3 -0
  434. package/lib/typescript/core/overlay/renderWebPortal.d.ts +3 -0
  435. package/lib/typescript/core/overlay/renderWebPortal.web.d.ts +3 -0
  436. package/lib/typescript/core/screen-scroll/ScreenScrollContext.d.ts +8 -0
  437. package/lib/typescript/core/screen-scroll/index.d.ts +3 -0
  438. package/lib/typescript/core/slot/index.d.ts +2 -0
  439. package/lib/typescript/core/slot/nodeSlot.d.ts +5 -0
  440. package/lib/typescript/core/style/focusRing.d.ts +10 -0
  441. package/lib/typescript/core/style/index.d.ts +1 -1
  442. package/lib/typescript/index.d.ts +49 -11
  443. package/lib/typescript/modules/accordion/Accordion.d.ts +2 -37
  444. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +2 -3
  445. package/lib/typescript/modules/accordion/AccordionProps.d.ts +49 -0
  446. package/lib/typescript/modules/accordion/index.d.ts +1 -1
  447. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts +2 -15
  448. package/lib/typescript/modules/alert-dialog/AlertDialogProps.d.ts +20 -0
  449. package/lib/typescript/modules/alert-dialog/index.d.ts +1 -1
  450. package/lib/typescript/modules/app-bar/AppBar.d.ts +1 -20
  451. package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +4 -0
  452. package/lib/typescript/modules/app-bar/AppBarProps.d.ts +25 -0
  453. package/lib/typescript/modules/app-bar/index.d.ts +1 -1
  454. package/lib/typescript/modules/app-switcher/AppSwitcher.d.ts +3 -0
  455. package/lib/typescript/modules/app-switcher/AppSwitcherProps.d.ts +17 -0
  456. package/lib/typescript/modules/app-switcher/index.d.ts +3 -0
  457. package/lib/typescript/modules/appearance-settings/AppearanceSettings.d.ts +3 -0
  458. package/lib/typescript/modules/appearance-settings/AppearanceSettingsProps.d.ts +15 -0
  459. package/lib/typescript/modules/appearance-settings/index.d.ts +3 -0
  460. package/lib/typescript/modules/avatar/Avatar.d.ts +2 -33
  461. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +2 -0
  462. package/lib/typescript/modules/avatar/AvatarProps.d.ts +23 -0
  463. package/lib/typescript/modules/avatar/index.d.ts +1 -1
  464. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +1 -18
  465. package/lib/typescript/modules/avatar-group/AvatarGroupProps.d.ts +27 -0
  466. package/lib/typescript/modules/avatar-group/index.d.ts +1 -1
  467. package/lib/typescript/modules/backdrop/Backdrop.d.ts +3 -0
  468. package/lib/typescript/modules/backdrop/BackdropProps.d.ts +11 -0
  469. package/lib/typescript/modules/backdrop/index.d.ts +3 -0
  470. package/lib/typescript/modules/badge/Badge.d.ts +2 -14
  471. package/lib/typescript/modules/badge/BadgeProps.d.ts +17 -0
  472. package/lib/typescript/modules/badge/index.d.ts +1 -1
  473. package/lib/typescript/modules/banner/Banner.d.ts +1 -22
  474. package/lib/typescript/modules/banner/Banner.variants.d.ts +2 -0
  475. package/lib/typescript/modules/banner/BannerProps.d.ts +29 -0
  476. package/lib/typescript/modules/banner/index.d.ts +2 -1
  477. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +1 -34
  478. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +2 -1
  479. package/lib/typescript/modules/bottom-nav/BottomNavProps.d.ts +29 -0
  480. package/lib/typescript/modules/bottom-nav/index.d.ts +2 -1
  481. package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +1 -13
  482. package/lib/typescript/modules/bottom-sheet/BottomSheetProps.d.ts +17 -0
  483. package/lib/typescript/modules/bottom-sheet/index.d.ts +1 -1
  484. package/lib/typescript/modules/breadcrumbs/Breadcrumbs.d.ts +3 -0
  485. package/lib/typescript/modules/breadcrumbs/Breadcrumbs.variants.d.ts +6 -0
  486. package/lib/typescript/modules/breadcrumbs/BreadcrumbsProps.d.ts +18 -0
  487. package/lib/typescript/modules/breadcrumbs/index.d.ts +3 -0
  488. package/lib/typescript/modules/button/Button.d.ts +1 -35
  489. package/lib/typescript/modules/button/Button.variants.d.ts +11 -15
  490. package/lib/typescript/modules/button/ButtonProps.d.ts +47 -0
  491. package/lib/typescript/modules/button/index.d.ts +1 -1
  492. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +2 -17
  493. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +2 -3
  494. package/lib/typescript/modules/button-group/ButtonGroupProps.d.ts +21 -0
  495. package/lib/typescript/modules/button-group/index.d.ts +1 -1
  496. package/lib/typescript/modules/card/Card.d.ts +2 -15
  497. package/lib/typescript/modules/card/CardProps.d.ts +27 -0
  498. package/lib/typescript/modules/card/index.d.ts +1 -1
  499. package/lib/typescript/modules/charts/BarChart.d.ts +1 -24
  500. package/lib/typescript/modules/charts/BarChartProps.d.ts +36 -0
  501. package/lib/typescript/modules/charts/BarList.d.ts +1 -16
  502. package/lib/typescript/modules/charts/BarListProps.d.ts +22 -0
  503. package/lib/typescript/modules/charts/ChartLegend.d.ts +2 -14
  504. package/lib/typescript/modules/charts/ChartLegendProps.d.ts +19 -0
  505. package/lib/typescript/modules/charts/Charts.variants.d.ts +2 -0
  506. package/lib/typescript/modules/charts/DonutChart.d.ts +1 -19
  507. package/lib/typescript/modules/charts/DonutChartProps.d.ts +27 -0
  508. package/lib/typescript/modules/charts/LineChart.d.ts +1 -28
  509. package/lib/typescript/modules/charts/LineChartProps.d.ts +40 -0
  510. package/lib/typescript/modules/charts/PieChart.d.ts +1 -16
  511. package/lib/typescript/modules/charts/PieChartProps.d.ts +24 -0
  512. package/lib/typescript/modules/charts/Sparkline.d.ts +1 -11
  513. package/lib/typescript/modules/charts/SparklineProps.d.ts +17 -0
  514. package/lib/typescript/modules/charts/index.d.ts +6 -6
  515. package/lib/typescript/modules/checkbox/Checkbox.d.ts +1 -33
  516. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +2 -1
  517. package/lib/typescript/modules/checkbox/CheckboxProps.d.ts +27 -0
  518. package/lib/typescript/modules/checkbox/index.d.ts +1 -1
  519. package/lib/typescript/modules/chip/Chip.d.ts +1 -30
  520. package/lib/typescript/modules/chip/Chip.variants.d.ts +2 -1
  521. package/lib/typescript/modules/chip/ChipGroup.d.ts +1 -14
  522. package/lib/typescript/modules/chip/ChipGroupProps.d.ts +16 -0
  523. package/lib/typescript/modules/chip/ChipProps.d.ts +27 -0
  524. package/lib/typescript/modules/chip/index.d.ts +2 -2
  525. package/lib/typescript/modules/combobox/Combobox.d.ts +2 -45
  526. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +3 -1
  527. package/lib/typescript/modules/combobox/ComboboxProps.d.ts +40 -0
  528. package/lib/typescript/modules/combobox/index.d.ts +1 -1
  529. package/lib/typescript/modules/composer/Composer.d.ts +1 -18
  530. package/lib/typescript/modules/composer/ComposerProps.d.ts +20 -0
  531. package/lib/typescript/modules/composer/index.d.ts +1 -1
  532. package/lib/typescript/modules/copy-button/CopyButton.d.ts +1 -15
  533. package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +2 -1
  534. package/lib/typescript/modules/copy-button/CopyButtonProps.d.ts +18 -0
  535. package/lib/typescript/modules/copy-button/index.d.ts +1 -1
  536. package/lib/typescript/modules/data-table/DataTable.d.ts +2 -31
  537. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +2 -1
  538. package/lib/typescript/modules/data-table/DataTableProps.d.ts +43 -0
  539. package/lib/typescript/modules/data-table/index.d.ts +1 -1
  540. package/lib/typescript/modules/date-picker/Calendar.d.ts +1 -23
  541. package/lib/typescript/modules/date-picker/CalendarProps.d.ts +31 -0
  542. package/lib/typescript/modules/date-picker/DatePicker.d.ts +1 -27
  543. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +2 -1
  544. package/lib/typescript/modules/date-picker/DatePickerProps.d.ts +33 -0
  545. package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +1 -23
  546. package/lib/typescript/modules/date-picker/DateRangePickerProps.d.ts +27 -0
  547. package/lib/typescript/modules/date-picker/PickerField.d.ts +1 -17
  548. package/lib/typescript/modules/date-picker/PickerFieldProps.d.ts +19 -0
  549. package/lib/typescript/modules/date-picker/PickerShell.d.ts +1 -12
  550. package/lib/typescript/modules/date-picker/PickerShellProps.d.ts +16 -0
  551. package/lib/typescript/modules/date-picker/TimePicker.d.ts +1 -9
  552. package/lib/typescript/modules/date-picker/TimePickerProps.d.ts +14 -0
  553. package/lib/typescript/modules/date-picker/index.d.ts +4 -4
  554. package/lib/typescript/modules/description-list/DescriptionList.d.ts +8 -0
  555. package/lib/typescript/modules/description-list/DescriptionList.variants.d.ts +29 -0
  556. package/lib/typescript/modules/description-list/DescriptionListProps.d.ts +23 -0
  557. package/lib/typescript/modules/description-list/index.d.ts +4 -0
  558. package/lib/typescript/modules/divider/Divider.d.ts +1 -8
  559. package/lib/typescript/modules/divider/DividerProps.d.ts +11 -0
  560. package/lib/typescript/modules/divider/index.d.ts +1 -1
  561. package/lib/typescript/modules/document-viewer/DocumentViewer.d.ts +3 -0
  562. package/lib/typescript/modules/document-viewer/DocumentViewerProps.d.ts +13 -0
  563. package/lib/typescript/modules/document-viewer/index.d.ts +3 -0
  564. package/lib/typescript/modules/drawer/Drawer.d.ts +2 -7
  565. package/lib/typescript/modules/drawer/DrawerProps.d.ts +9 -0
  566. package/lib/typescript/modules/drawer/index.d.ts +1 -1
  567. package/lib/typescript/modules/empty-state/EmptyState.d.ts +1 -17
  568. package/lib/typescript/modules/empty-state/EmptyStateProps.d.ts +24 -0
  569. package/lib/typescript/modules/empty-state/index.d.ts +1 -1
  570. package/lib/typescript/modules/fab/Fab.d.ts +1 -51
  571. package/lib/typescript/modules/fab/Fab.variants.d.ts +3 -2
  572. package/lib/typescript/modules/fab/FabGroup.d.ts +1 -34
  573. package/lib/typescript/modules/fab/FabGroupProps.d.ts +34 -0
  574. package/lib/typescript/modules/fab/FabProps.d.ts +50 -0
  575. package/lib/typescript/modules/fab/index.d.ts +2 -2
  576. package/lib/typescript/modules/field-select-modal/FieldSelectModal.d.ts +3 -0
  577. package/lib/typescript/modules/field-select-modal/FieldSelectModalProps.d.ts +20 -0
  578. package/lib/typescript/modules/field-select-modal/index.d.ts +3 -0
  579. package/lib/typescript/modules/file-grid/FileGrid.d.ts +1 -18
  580. package/lib/typescript/modules/file-grid/FileGridProps.d.ts +23 -0
  581. package/lib/typescript/modules/file-grid/index.d.ts +1 -1
  582. package/lib/typescript/modules/file-upload/FileUpload.d.ts +1 -27
  583. package/lib/typescript/modules/file-upload/FileUploadProps.d.ts +27 -0
  584. package/lib/typescript/modules/file-upload/index.d.ts +1 -1
  585. package/lib/typescript/modules/filter-bar/FilterBar.d.ts +3 -0
  586. package/lib/typescript/modules/filter-bar/FilterBarProps.d.ts +17 -0
  587. package/lib/typescript/modules/filter-bar/index.d.ts +3 -0
  588. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts +1 -9
  589. package/lib/typescript/modules/filter-sheet/FilterChipProps.d.ts +11 -0
  590. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts +1 -32
  591. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +2 -1
  592. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +1 -1
  593. package/lib/typescript/modules/filter-sheet/FilterSheetProps.d.ts +36 -0
  594. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts +1 -1
  595. package/lib/typescript/modules/filter-sheet/index.d.ts +2 -2
  596. package/lib/typescript/modules/folder-row/FolderRow.d.ts +1 -11
  597. package/lib/typescript/modules/folder-row/FolderRowProps.d.ts +17 -0
  598. package/lib/typescript/modules/folder-row/index.d.ts +1 -1
  599. package/lib/typescript/modules/form-field/FormField.d.ts +2 -17
  600. package/lib/typescript/modules/form-field/FormFieldProps.d.ts +23 -0
  601. package/lib/typescript/modules/form-field/index.d.ts +1 -1
  602. package/lib/typescript/modules/gantt/Gantt.d.ts +2 -9
  603. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +8 -2
  604. package/lib/typescript/modules/gantt/GanttProps.d.ts +13 -0
  605. package/lib/typescript/modules/gantt/index.d.ts +1 -1
  606. package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +2 -15
  607. package/lib/typescript/modules/image-viewer/ImageViewerProps.d.ts +16 -0
  608. package/lib/typescript/modules/image-viewer/index.d.ts +2 -1
  609. package/lib/typescript/modules/input/Input.d.ts +2 -30
  610. package/lib/typescript/modules/input/Input.variants.d.ts +2 -2
  611. package/lib/typescript/modules/input/InputProps.d.ts +43 -0
  612. package/lib/typescript/modules/input/index.d.ts +1 -1
  613. package/lib/typescript/modules/key-value/KeyValue.d.ts +3 -0
  614. package/lib/typescript/modules/key-value/KeyValueProps.d.ts +11 -0
  615. package/lib/typescript/modules/key-value/index.d.ts +3 -0
  616. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +1 -17
  617. package/lib/typescript/modules/limit-reached-modal/LimitReachedModalProps.d.ts +24 -0
  618. package/lib/typescript/modules/limit-reached-modal/index.d.ts +1 -1
  619. package/lib/typescript/modules/list-item/ListItem.d.ts +2 -12
  620. package/lib/typescript/modules/list-item/ListItemProps.d.ts +22 -0
  621. package/lib/typescript/modules/list-item/index.d.ts +1 -1
  622. package/lib/typescript/modules/list-screen/ListScreen.d.ts +5 -0
  623. package/lib/typescript/modules/list-screen/ListScreenProps.d.ts +17 -0
  624. package/lib/typescript/modules/list-screen/index.d.ts +3 -0
  625. package/lib/typescript/modules/markdown/Markdown.d.ts +1 -8
  626. package/lib/typescript/modules/markdown/MarkdownProps.d.ts +12 -0
  627. package/lib/typescript/modules/markdown/index.d.ts +1 -1
  628. package/lib/typescript/modules/menu/Menu.d.ts +2 -19
  629. package/lib/typescript/modules/menu/Menu.variants.d.ts +2 -1
  630. package/lib/typescript/modules/menu/MenuProps.d.ts +26 -0
  631. package/lib/typescript/modules/menu/index.d.ts +1 -1
  632. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +1 -9
  633. package/lib/typescript/modules/message-bubble/MessageBubbleProps.d.ts +12 -0
  634. package/lib/typescript/modules/message-bubble/index.d.ts +1 -1
  635. package/lib/typescript/modules/modal/Modal.d.ts +2 -10
  636. package/lib/typescript/modules/modal/ModalPortalContext.d.ts +1 -1
  637. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts +2 -12
  638. package/lib/typescript/modules/modal/ModalPortalProviderProps.d.ts +8 -0
  639. package/lib/typescript/modules/modal/ModalProps.d.ts +22 -0
  640. package/lib/typescript/modules/modal/index.d.ts +2 -2
  641. package/lib/typescript/modules/modal/renderWebPortal.d.ts +1 -14
  642. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts +1 -18
  643. package/lib/typescript/modules/more-items/MoreItems.d.ts +2 -10
  644. package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +3 -1
  645. package/lib/typescript/modules/more-items/MoreItemsProps.d.ts +14 -0
  646. package/lib/typescript/modules/more-items/index.d.ts +1 -1
  647. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -19
  648. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +2 -1
  649. package/lib/typescript/modules/multi-select/MultiSelectProps.d.ts +29 -0
  650. package/lib/typescript/modules/multi-select/index.d.ts +1 -1
  651. package/lib/typescript/modules/notification-bell/NotificationBell.d.ts +3 -0
  652. package/lib/typescript/modules/notification-bell/NotificationBellProps.d.ts +10 -0
  653. package/lib/typescript/modules/notification-bell/index.d.ts +3 -0
  654. package/lib/typescript/modules/number-input/NumberInput.d.ts +1 -26
  655. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +2 -3
  656. package/lib/typescript/modules/number-input/NumberInputProps.d.ts +23 -0
  657. package/lib/typescript/modules/number-input/index.d.ts +1 -1
  658. package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +1 -24
  659. package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +2 -1
  660. package/lib/typescript/modules/org-switcher/OrgSwitcherProps.d.ts +29 -0
  661. package/lib/typescript/modules/org-switcher/index.d.ts +1 -1
  662. package/lib/typescript/modules/pagination/Pagination.d.ts +1 -26
  663. package/lib/typescript/modules/pagination/Pagination.variants.d.ts +2 -1
  664. package/lib/typescript/modules/pagination/PaginationProps.d.ts +28 -0
  665. package/lib/typescript/modules/pagination/index.d.ts +1 -1
  666. package/lib/typescript/modules/person-chip/PersonChip.d.ts +3 -0
  667. package/lib/typescript/modules/person-chip/PersonChipProps.d.ts +17 -0
  668. package/lib/typescript/modules/person-chip/index.d.ts +3 -0
  669. package/lib/typescript/modules/pin-input/PinInput.d.ts +1 -32
  670. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +2 -2
  671. package/lib/typescript/modules/pin-input/PinInputProps.d.ts +26 -0
  672. package/lib/typescript/modules/pin-input/index.d.ts +1 -1
  673. package/lib/typescript/modules/plan-badge/PlanBadge.d.ts +3 -0
  674. package/lib/typescript/modules/plan-badge/PlanBadgeProps.d.ts +10 -0
  675. package/lib/typescript/modules/plan-badge/index.d.ts +3 -0
  676. package/lib/typescript/modules/plan-pill/PlanPill.d.ts +3 -0
  677. package/lib/typescript/modules/plan-pill/PlanPillProps.d.ts +10 -0
  678. package/lib/typescript/modules/plan-pill/index.d.ts +3 -0
  679. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +1 -13
  680. package/lib/typescript/modules/progress-bar/ProgressBarProps.d.ts +16 -0
  681. package/lib/typescript/modules/progress-bar/index.d.ts +1 -1
  682. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +2 -22
  683. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +2 -2
  684. package/lib/typescript/modules/radio-group/RadioGroupProps.d.ts +21 -0
  685. package/lib/typescript/modules/radio-group/index.d.ts +1 -1
  686. package/lib/typescript/modules/reorder/Reorder.d.ts +1 -13
  687. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +2 -2
  688. package/lib/typescript/modules/reorder/ReorderProps.d.ts +19 -0
  689. package/lib/typescript/modules/reorder/index.d.ts +1 -1
  690. package/lib/typescript/modules/rich-text/RichText.d.ts +2 -10
  691. package/lib/typescript/modules/rich-text/RichTextProps.d.ts +15 -0
  692. package/lib/typescript/modules/rich-text/index.d.ts +1 -1
  693. package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +1 -45
  694. package/lib/typescript/modules/rich-text-editor/RichTextEditorProps.d.ts +40 -0
  695. package/lib/typescript/modules/rich-text-editor/index.d.ts +1 -1
  696. package/lib/typescript/modules/save-bar/SaveBar.d.ts +3 -0
  697. package/lib/typescript/modules/save-bar/SaveBarProps.d.ts +18 -0
  698. package/lib/typescript/modules/save-bar/index.d.ts +3 -0
  699. package/lib/typescript/modules/screen/Screen.d.ts +1 -24
  700. package/lib/typescript/modules/screen/ScreenProps.d.ts +35 -0
  701. package/lib/typescript/modules/screen/index.d.ts +1 -1
  702. package/lib/typescript/modules/search-bar/SearchBar.d.ts +2 -28
  703. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +2 -3
  704. package/lib/typescript/modules/search-bar/SearchBarProps.d.ts +30 -0
  705. package/lib/typescript/modules/search-bar/index.d.ts +1 -1
  706. package/lib/typescript/modules/section/Section.d.ts +1 -8
  707. package/lib/typescript/modules/section/SectionProps.d.ts +11 -0
  708. package/lib/typescript/modules/section/index.d.ts +1 -1
  709. package/lib/typescript/modules/section-list/SectionList.d.ts +1 -19
  710. package/lib/typescript/modules/section-list/SectionListProps.d.ts +24 -0
  711. package/lib/typescript/modules/section-list/index.d.ts +1 -1
  712. package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +2 -41
  713. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +5 -44
  714. package/lib/typescript/modules/segmented-control/SegmentedControlProps.d.ts +29 -0
  715. package/lib/typescript/modules/segmented-control/index.d.ts +1 -1
  716. package/lib/typescript/modules/select/Select.d.ts +2 -13
  717. package/lib/typescript/modules/select/Select.variants.d.ts +2 -2
  718. package/lib/typescript/modules/select/SelectProps.d.ts +25 -0
  719. package/lib/typescript/modules/select/index.d.ts +2 -1
  720. package/lib/typescript/modules/setting-row/SettingRow.d.ts +3 -0
  721. package/lib/typescript/modules/setting-row/SettingRowProps.d.ts +14 -0
  722. package/lib/typescript/modules/setting-row/index.d.ts +3 -0
  723. package/lib/typescript/modules/settings-section/SettingsSection.d.ts +3 -0
  724. package/lib/typescript/modules/settings-section/SettingsSectionProps.d.ts +11 -0
  725. package/lib/typescript/modules/settings-section/index.d.ts +3 -0
  726. package/lib/typescript/modules/skeleton/Skeleton.d.ts +2 -12
  727. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +3 -5
  728. package/lib/typescript/modules/skeleton/SkeletonProps.d.ts +18 -0
  729. package/lib/typescript/modules/skeleton/index.d.ts +1 -1
  730. package/lib/typescript/modules/slider/Slider.d.ts +1 -24
  731. package/lib/typescript/modules/slider/Slider.variants.d.ts +2 -1
  732. package/lib/typescript/modules/slider/SliderProps.d.ts +27 -0
  733. package/lib/typescript/modules/slider/index.d.ts +1 -1
  734. package/lib/typescript/modules/spinner/Spinner.d.ts +1 -11
  735. package/lib/typescript/modules/spinner/SpinnerProps.d.ts +15 -0
  736. package/lib/typescript/modules/spinner/index.d.ts +1 -1
  737. package/lib/typescript/modules/stage-progress/StageProgress.d.ts +1 -12
  738. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +16 -4
  739. package/lib/typescript/modules/stage-progress/StageProgressProps.d.ts +22 -0
  740. package/lib/typescript/modules/stage-progress/index.d.ts +1 -1
  741. package/lib/typescript/modules/stat-grid/StatGrid.d.ts +3 -0
  742. package/lib/typescript/modules/stat-grid/StatGridProps.d.ts +15 -0
  743. package/lib/typescript/modules/stat-grid/index.d.ts +3 -0
  744. package/lib/typescript/modules/stat-tile/StatTile.d.ts +1 -14
  745. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +3 -0
  746. package/lib/typescript/modules/stat-tile/StatTileProps.d.ts +25 -0
  747. package/lib/typescript/modules/stat-tile/index.d.ts +1 -1
  748. package/lib/typescript/modules/state-block/StateBlock.d.ts +1 -32
  749. package/lib/typescript/modules/state-block/StateBlockProps.d.ts +36 -0
  750. package/lib/typescript/modules/state-block/index.d.ts +1 -1
  751. package/lib/typescript/modules/stepper/Stepper.d.ts +3 -11
  752. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +2 -0
  753. package/lib/typescript/modules/stepper/StepperProps.d.ts +12 -0
  754. package/lib/typescript/modules/stepper/index.d.ts +2 -1
  755. package/lib/typescript/modules/surface/Surface.d.ts +1 -14
  756. package/lib/typescript/modules/surface/SurfaceProps.d.ts +17 -0
  757. package/lib/typescript/modules/surface/index.d.ts +1 -1
  758. package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +1 -19
  759. package/lib/typescript/modules/swipeable-row/SwipeableRowProps.d.ts +22 -0
  760. package/lib/typescript/modules/swipeable-row/index.d.ts +1 -1
  761. package/lib/typescript/modules/switch/Switch.d.ts +1 -14
  762. package/lib/typescript/modules/switch/Switch.variants.d.ts +2 -2
  763. package/lib/typescript/modules/switch/SwitchProps.d.ts +20 -0
  764. package/lib/typescript/modules/switch/index.d.ts +1 -1
  765. package/lib/typescript/modules/tabs/Tabs.d.ts +1 -17
  766. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +2 -3
  767. package/lib/typescript/modules/tabs/TabsProps.d.ts +29 -0
  768. package/lib/typescript/modules/tabs/index.d.ts +1 -1
  769. package/lib/typescript/modules/text/Text.d.ts +1 -24
  770. package/lib/typescript/modules/text/TextProps.d.ts +35 -0
  771. package/lib/typescript/modules/text/index.d.ts +1 -1
  772. package/lib/typescript/modules/textarea/Textarea.d.ts +1 -19
  773. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +2 -1
  774. package/lib/typescript/modules/textarea/TextareaProps.d.ts +23 -0
  775. package/lib/typescript/modules/textarea/index.d.ts +1 -1
  776. package/lib/typescript/modules/timeline/Timeline.d.ts +1 -16
  777. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +2 -0
  778. package/lib/typescript/modules/timeline/TimelineProps.d.ts +37 -0
  779. package/lib/typescript/modules/timeline/index.d.ts +1 -1
  780. package/lib/typescript/modules/toast/Toast.variants.d.ts +2 -3
  781. package/lib/typescript/modules/tooltip/Tooltip.d.ts +1 -25
  782. package/lib/typescript/modules/tooltip/TooltipProps.d.ts +27 -0
  783. package/lib/typescript/modules/tooltip/index.d.ts +1 -1
  784. package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +5 -14
  785. package/lib/typescript/modules/typing-indicator/TypingIndicatorProps.d.ts +11 -0
  786. package/lib/typescript/modules/typing-indicator/index.d.ts +1 -1
  787. package/lib/typescript/modules/upgrade-button/UpgradeButton.d.ts +3 -0
  788. package/lib/typescript/modules/upgrade-button/UpgradeButtonProps.d.ts +11 -0
  789. package/lib/typescript/modules/upgrade-button/index.d.ts +3 -0
  790. package/lib/typescript/test/motionJest.d.ts +12 -0
  791. package/lib/typescript/theme/platform/elevation.native.d.ts +1 -1
  792. package/lib/typescript/theme/tokens/builders/accentText.d.ts +3 -0
  793. package/lib/typescript/theme/tokens/builders/buildBrandScale.d.ts +4 -0
  794. package/lib/typescript/theme/tokens/builders/gradientInk.d.ts +9 -0
  795. package/lib/typescript/theme/tokens/builders/paletteFromAccent.d.ts +3 -0
  796. package/lib/typescript/theme/tokens/builders/skeletonShimmer.d.ts +9 -0
  797. package/lib/typescript/theme/tokens/index.d.ts +3 -0
  798. package/lib/typescript/theme/tokens/primitives/controlSizes.d.ts +6 -0
  799. package/lib/typescript/theme/tokens/primitives/index.d.ts +2 -0
  800. package/lib/typescript/theme/tokens/roles/index.d.ts +2 -0
  801. package/lib/typescript/theme/tokens/types.d.ts +2 -2
  802. package/package.json +106 -5
  803. package/registry.json +109 -14
  804. package/lib/module/core/style/useThemedStyles.js +0 -8
  805. package/lib/module/test/mocks/flashList.js +0 -5
  806. package/lib/module/test/perfHelpers.js +0 -18
  807. package/lib/typescript/core/style/useThemedStyles.d.ts +0 -5
  808. package/lib/typescript/test/mocks/flashList.d.ts +0 -3
@@ -9,8 +9,8 @@ touch target, optional debounced reporting, and an optional "Cancel" text button
9
9
 
10
10
  | File | Role |
11
11
  |------|------|
12
- | `SearchBar.tsx` | The component. Field composition, debounce timer, clear/cancel wiring, a11y wiring, focus ring. |
13
- | `SearchBar.variants.ts` | Pure resolvers (`resolveSearchBarColors`, `resolveSearchBarBorderColor`, `resolveSearchBarAccessibility`, `shouldShowClear`, `resolveSearchBarFieldHitSlop`, `resolveSearchBarTrailingHitSlop`) + the themed structural resolvers (`searchBarRowStructure`, `searchBarFieldStructure`, `searchBarClearStructure`, `searchBarCancelStructure`). No React, no lucide. |
12
+ | `SearchBar.tsx` | The component. Field composition, debounce timer, clear/cancel wiring, a11y wiring, focus ring (`FOCUS_RING_*` from `core/style/focusRing`). |
13
+ | `SearchBar.variants.ts` | Pure resolvers (`resolveSearchBarColors`, `resolveSearchBarBorderColor`, `resolveSearchBarAccessibility`, `shouldShowClear`, `resolveSearchBarFieldHitSlop`, `resolveSearchBarTrailingHitSlop`) + the themed structural resolvers (`searchBarRowStructure`, `searchBarFieldStructure`, `searchBarClearStructure`, `searchBarCancelStructure`). `MIN_TOUCH_TARGET` / `slopFor` from `core/a11y/touchTarget`; `CLEAR_BUTTON_WIDTH` = that floor. No React, no lucide. |
14
14
  | `index.ts` | Public surface: `SearchBar`, `SearchBarProps`, `SearchBarSize`. |
15
15
  | `__tests__/SearchBar.test.ts` | Pure: WCAG contrast (all brands × modes) + per-edge touch target + visibility/a11y contracts. |
16
16
  | `__tests__/SearchBar.render.test.tsx` | Render: value/placeholder, the field's `search` role, immediate vs debounced typing, clear isolation, `showCancel` lifecycle, submit flushing a pending debounce, focus ring, the rendered per-edge `hitSlop`. |
@@ -22,7 +22,7 @@ touch target, optional debounced reporting, and an optional "Cancel" text button
22
22
  | `value` | `string` | — | Required — controlled. |
23
23
  | `onChangeText` | `(text: string) => void` | — | Required. Debounced per `debounceMs`; the rendered text never lags. |
24
24
  | `placeholder` | `string` | `"Search"` | Falls back into the field's `accessibilityLabel` — SearchBar renders no visible label. |
25
- | `accessibilityLabel` | `string` | `placeholder` | Overrides the placeholder fallback — a placeholder that reads as a prompt ("Search…") rather than a name tells a screen-reader user nothing about WHAT is being searched. Previously absent: the placeholder was the only name, with no override. |
25
+ | `accessibilityLabel` | `string` | `placeholder` | Overrides the placeholder fallback — a placeholder that reads as a prompt ("Search…") rather than a name tells a screen-reader user nothing about WHAT is being searched. |
26
26
  | `onSubmit` | `() => void` | — | Fires on the keyboard's search key. Flushes a pending debounce first. |
27
27
  | `onClear` | `() => void` | — | Fires after the clear button or "Cancel" empties the query. |
28
28
  | `debounceMs` | `number` | `0` | `0` = report every keystroke. Above `0`, `onChangeText` is debounced while local state keeps the visible text instant. |
@@ -59,15 +59,15 @@ above-field caption; the placeholder carries the only name it has.
59
59
  size — the resolver arithmetic in `SearchBar.test.ts` only reaches the user if the object lands on
60
60
  the node.
61
61
  - **1.4.3** — query text, placeholder, and the "Cancel" label are each measured ≥ 4.5:1 against
62
- `bg.canvas` (the field renders no fill, like `Input`'s box) for all 8 brands × both modes. The
62
+ `bg.canvas` (the field renders no fill, like `Input`'s box) for all 9 brands × both modes. The
63
63
  pressed clear/cancel foreground is measured ≥ 4.5:1 against its own `pressedFill` too — not just
64
64
  assumed from the resting canvas pairing.
65
65
  - **1.4.11** — the field's resting and focused border, and the leading/clear glyphs, are measured
66
66
  ≥ 3:1 against the canvas.
67
- - **2.4.7** — a `border.focus` ring appears offset outside the field on focus, identical
68
- geometry/token to `Input`'s.
69
- - **2.3.3** — n/a: nothing here animates (the cancel button is a conditional render, not a
70
- transition). The one moving part, `loading`'s `Spinner`, already honours reduced motion itself.
67
+ - **2.4.7** — a `border.focus` ring appears offset outside the field on focus, same
68
+ `core/style/focusRing` geometry/token as `Input`.
69
+ - **2.3.3** — the only motion is the clear/cancel press scale from `usePressState` and `loading`'s
70
+ `Spinner`; both honour reduced motion. The cancel button is a conditional render, not a transition.
71
71
 
72
72
  ## Patterns copied from Input / ButtonGroup / Menu
73
73
 
@@ -149,7 +149,6 @@ export const SearchBar = /*#__PURE__*/memo(function SearchBar({
149
149
  borderColor: resolveSearchBarBorderColor(colors, focused)
150
150
  }, disabled && styles.dimmed],
151
151
  children: [focused && !disabled && /*#__PURE__*/_jsx(View, {
152
- pointerEvents: "none",
153
152
  testID: "search-bar-focus-ring",
154
153
  style: {
155
154
  position: "absolute",
@@ -160,7 +159,8 @@ export const SearchBar = /*#__PURE__*/memo(function SearchBar({
160
159
  borderWidth: FOCUS_RING_WIDTH,
161
160
  borderColor: colors.focusBorder,
162
161
  borderRadius: theme.radii.md + FOCUS_RING_GAP + FOCUS_RING_WIDTH,
163
- borderCurve: "continuous"
162
+ borderCurve: "continuous",
163
+ pointerEvents: "none"
164
164
  }
165
165
  }), loading ? /*#__PURE__*/_jsx(Spinner, {
166
166
  size: "sm",
@@ -220,8 +220,9 @@ export const SearchBar = /*#__PURE__*/memo(function SearchBar({
220
220
  overflow: "hidden"
221
221
  }, clearPress.animatedStyle],
222
222
  children: [/*#__PURE__*/_jsx(Animated.View, {
223
- pointerEvents: "none",
224
- style: [StyleSheet.absoluteFill, overlayStaticStyle, clearPress.overlayStyle]
223
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, clearPress.overlayStyle, {
224
+ pointerEvents: "none"
225
+ }]
225
226
  }), /*#__PURE__*/_jsx(Icon, {
226
227
  name: "x",
227
228
  size: spec.iconSize,
@@ -246,8 +247,9 @@ export const SearchBar = /*#__PURE__*/memo(function SearchBar({
246
247
  overflow: "hidden"
247
248
  }, cancelPress.animatedStyle],
248
249
  children: [/*#__PURE__*/_jsx(Animated.View, {
249
- pointerEvents: "none",
250
- style: [StyleSheet.absoluteFill, overlayStaticStyle, cancelPress.overlayStyle]
250
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, cancelPress.overlayStyle, {
251
+ pointerEvents: "none"
252
+ }]
251
253
  }), /*#__PURE__*/_jsx(Text, {
252
254
  numberOfLines: 1,
253
255
  style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
@@ -14,11 +14,9 @@
14
14
  * `react-native`'s `StyleSheet`, as `core/style` does).
15
15
  */
16
16
 
17
+ import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
17
18
  import { createThemedVariants } from "../../core/style/index.js";
18
- /** Same floor as Button/Input/ButtonGroup — 44dp (WCAG 2.5.5 / HIG). Duplicated, not imported:
19
- * modules stay isolated. */
20
- export const MIN_TOUCH_TARGET = 44;
21
- const slopFor = height => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - height) / 2));
19
+ export { MIN_TOUCH_TARGET };
22
20
  /**
23
21
  * Deliberately the same height/fontSize/iconSize numbers as `INPUT_SIZES` `sm`/`md`, so a SearchBar
24
22
  * and an Input placed in the same form line up exactly.
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=SearchBarProps.js.map
@@ -7,7 +7,7 @@ the settings-section pattern re-declared across consumer apps.
7
7
 
8
8
  | File | Role |
9
9
  |------|------|
10
- | `Section.tsx` | The component. Hairline + label + children; `style` last. |
10
+ | `Section.tsx` | Hairline + label + children (`renderNodeSlot` wraps string/number children); `style` last. |
11
11
  | `Section.variants.ts` | Pure resolver (`resolveSectionColors`) + themed structural resolver. |
12
12
  | `index.ts` | Public surface: `Section`, `SectionProps`. |
13
13
  | `__tests__/Section.test.ts` | Pure: WCAG 1.4.3 on the label, colour mapping. |
@@ -10,6 +10,7 @@
10
10
 
11
11
  import { memo, useMemo } from "react";
12
12
  import Reanimated, { FadeInDown, ReduceMotion } from "react-native-reanimated";
13
+ import { renderNodeSlot } from "../../core/slot/index.js";
13
14
  import { useTheme } from "../../theme/hooks.js";
14
15
  import { Text } from "../text/index.js";
15
16
  import { sectionContainerStructure } from "./Section.variants.js";
@@ -22,6 +23,10 @@ export const Section = /*#__PURE__*/memo(function Section({
22
23
  }) {
23
24
  const theme = useTheme();
24
25
  const rootStyle = useMemo(() => [sectionContainerStructure(theme), style], [theme, style]);
26
+ const childrenSlotStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
27
+ color: theme.colors.fg.default,
28
+ fontSize: theme.fontSizes.md
29
+ }], [theme]);
25
30
  return /*#__PURE__*/_jsxs(Reanimated.View, {
26
31
  entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
27
32
  testID: testID,
@@ -29,7 +34,7 @@ export const Section = /*#__PURE__*/memo(function Section({
29
34
  children: [/*#__PURE__*/_jsx(Text, {
30
35
  variant: "overline",
31
36
  children: label
32
- }), children]
37
+ }), renderNodeSlot(children, childrenSlotStyle)]
33
38
  });
34
39
  });
35
40
  //# sourceMappingURL=Section.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=SectionProps.js.map
@@ -1,7 +1,26 @@
1
- # section-list/
1
+ # section-list/ — a virtualized sectioned list
2
2
 
3
3
  Virtualized sectioned list via `core/list/VirtualSectionList`.
4
4
 
5
+ ## Files
6
+
7
+ | File | Role |
8
+ |------|------|
9
+ | `SectionList.tsx` | The component + `SectionListProps` / `SectionListSection`. Wraps `VirtualSectionList`; the header is a memoized `HeadingText`. |
10
+ | `SectionList.variants.ts` | Themed structural resolver (`sectionListHeaderStructure`). |
11
+ | `index.ts` | Public surface: `SectionList`, `SectionListProps`, `SectionListSection`. |
12
+
13
+ ## Props
14
+
15
+ | Prop | Type | Default | Notes |
16
+ |------|------|---------|-------|
17
+ | `sections` | `readonly SectionListSection<T>[]` | — | Required. `{ title, data }` per section. |
18
+ | `renderItem` | `(info: { item: T; sectionIndex: number; index: number }) => ReactElement \| null` | — | Required. |
19
+ | `keyExtractor` | `(item: T, index: number) => string` | — | Required. |
20
+ | `itemHeight` | `number` | — | Forwarded to `VirtualSectionList` for fixed-height windowing. |
21
+ | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
22
+ | `testID` | `string` | — | Forwarded to the outermost `View`. |
23
+
5
24
  ## Accessibility
6
25
 
7
26
  - **1.3.1 / 2.4.6** — a section header carries `accessibilityRole="header"` and `aria-level={2}`
@@ -14,5 +33,6 @@ Virtualized sectioned list via `core/list/VirtualSectionList`.
14
33
 
15
34
  | Test | Covers |
16
35
  |------|--------|
36
+ | `__tests__/SectionList.test.ts` | Pure: the header structural resolver. |
17
37
  | `__tests__/SectionList.render.test.tsx` | Render: section header + item, heading role + level. |
18
38
  | `__tests__/SectionList.dom.test.tsx` | Real DOM (`jest.web.config.js`): the header renders a real `<h2>`. |
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=SectionListProps.js.map
@@ -2,8 +2,7 @@
2
2
 
3
3
  `SegmentedControl` switches between 2–5 mutually exclusive options (filters, view modes, date
4
4
  ranges) inside one rounded track. The active segment is marked by a pill that slides to its
5
- measured position — the same `onLayout` + `Animated.Value` mechanism `Tabs`' sliding indicator
6
- uses — but unlike `Tabs`/`ButtonGroup`, the pill is a **neutral raised surface**, not an
5
+ measured position — the same `onLayout` + shared-value mechanism `Tabs`' sliding indicator uses — but unlike `Tabs`/`ButtonGroup`, the pill is a **neutral raised surface**, not an
7
6
  accent-coloured fill: elevation, not colour, is the selection cue here.
8
7
 
9
8
  ## Files
@@ -14,7 +13,7 @@ accent-coloured fill: elevation, not colour, is the selection cue here.
14
13
  | `SegmentedControl.variants.ts` | Pure resolvers (`resolveSegmentedControlColors`, `resolveSegmentedControlSegmentAccessibility`, `resolveSegmentedControlSegmentHitSlop`) + the themed structural resolvers (`segmentedControlTrackStructure`, `segmentedControlPillStructure`, `segmentedControlSegmentStructure`). No React, no lucide. |
15
14
  | `index.ts` | Public surface: `SegmentedControl`, `SegmentedControlProps`, `SegmentedControlOption`, `SegmentedControlSize`, `IconName` (re-exported from `core/icon`). |
16
15
  | `__tests__/SegmentedControl.test.ts` | Pure: WCAG contrast (all brands × modes) + touch target + a11y contract. |
17
- | `__tests__/SegmentedControl.render.test.tsx` | Render: strip/segment roles, selection state, per-option and whole-group `disabled`, pill animation respects reduced motion. |
16
+ | `__tests__/SegmentedControl.render.test.tsx` | Render: track/segment roles, selection state, per-option and whole-group `disabled`, pill animation respects reduced motion. |
18
17
  | `__tests__/SegmentedControl.motion.test.tsx` | Motion: reduce-motion snap, the real slide, and the device tier's `durationScale` reaching the pill. |
19
18
 
20
19
  ## Props
@@ -30,9 +29,10 @@ accent-coloured fill: elevation, not colour, is the selection cue here.
30
29
  | `style` | `LayoutStyle` | — | Layout-only, outermost (the track `View`), applied exactly once, last. |
31
30
  | `testID` | `string` | — | Seeds `${testID}-pill`, `${testID}-${option.value}` and, while focused, `${testID}-${option.value}-focus-ring`. |
32
31
 
33
- No `tone`/`variant` union — the selected fill is always the neutral raised pill and the track is
34
- always `bg.sunken`; there is nothing for a closed union to resolve, the same reasoning `Tabs`/
35
- `RadioGroup` document for their own single-purpose shape.
32
+ No `tone`/`variant` union — the selected fill is always the neutral raised pill; there is nothing
33
+ for a closed union to resolve, the same reasoning `Tabs`/`RadioGroup` document for their own
34
+ single-purpose shape. Track and pill backgrounds are resolved live from `floatingBackground`, not
35
+ from `resolveSegmentedControlColors` (which only maps the two label colours) — see 1.4.11 below.
36
36
 
37
37
  ## Accessibility contract (WCAG)
38
38
 
@@ -49,32 +49,33 @@ always `bg.sunken`; there is nothing for a closed union to resolve, the same rea
49
49
  tap. Rather than tune a per-edge exception, every segment's own rendered `minWidth: 44` carries
50
50
  the width floor instead (the only axis this spec requires — `fullWidth` segments are already well
51
51
  over 44dp in practice).
52
- - **1.4.3** — the active label (`fg.default`, read on the pill's `bg.surface`) and the inactive
53
- label (`fg.muted`, read on the track's `bg.sunken`) are each measured ≥ 4.5:1 for all 8 brands ×
54
- both modes, including the inactive label against its own pressed background (`bg.raised`) — not
55
- just the resting track.
56
- - **1.4.11** — deliberately **not** satisfied by colour: `bg.surface` (the pill) against
57
- `bg.sunken` (the track) measures as low as 1.08:1, nowhere near 3:1, so this pairing could never
58
- clear it on its own. The boundary is instead carried by elevation (`theme.elevation.md`, the
59
- identical treatment `Card`'s `elevated` variant uses to differentiate itself with no border
60
- either) a decorative, not textual, distinction and selection reaches assistive tech
61
- independently via `aria-selected`, never by colour alone.
52
+ - **1.4.3** — the active label (`fg.default`, read on the pill `floatingBackground(theme, 'md')`)
53
+ and the inactive label (`fg.muted`, read on the track `floatingBackground(theme, 'sm')`) are
54
+ each measured ≥ 4.5:1 for all 9 brands × both modes, including the inactive label against its own
55
+ pressed overlay (`stateLayerScrim` at `STATE_LAYER_OPACITY.pressed`, composited onto the track).
56
+ - **1.4.11** — deliberately **not** satisfied by colour: the pill/track pairing measures ~1.1:1,
57
+ nowhere near 3:1, in dark mode. The pill is one `floatingBackground` level above the track
58
+ (`'md'` vs `'sm'`, the same step `Card`'s `elevated` variant uses), which guarantees it is
59
+ **lighter**, never darker a real regression once shipped raw `bg.surface` under `theme.elevation.md`,
60
+ which measured pill *darker* than track (1.04–1.12:1 inverted) since that shadow token is
61
+ mode-unaware. Selection reaches assistive tech independently via `aria-selected`, never by colour.
62
62
  - **2.4.7** — the focused segment draws a `border.focus` ring
63
63
  (`${testID}-${option.value}-focus-ring`), the same treatment `BottomNavTab` uses. The pill is
64
64
  **not** it: it marks selection and moves only on change. Drawn *inside* the segment's bounds —
65
65
  segments render flush, so a gap-outside ring would spill over its neighbour.
66
- - **2.3.3** — the pill's movement is two `Animated.Value`s (`x`, `width`) driven off each segment's
67
- own `onLayout` measurement, exactly `Tabs`' mechanism. Under reduced motion they're set with
68
- `setValue` (an instant snap) instead of a tweenverified in the render tests by spying on
69
- `Animated.timing` and asserting it isn't called when reduced motion is on.
66
+ - **2.3.3** — only the pill's `translateX` animates: one Reanimated shared value driven off each
67
+ segment's own `onLayout` measurement (the pill's `width` is set straight from that measurement, not
68
+ tweened). Under reduced motion the value is assigned directly an instant snap instead of a tween,
69
+ verified in the render and motion tests by asserting `withTiming` is not called.
70
70
 
71
71
  ## Motion
72
72
 
73
- The slide goes through **`useMotion()`**, not a direct `MOTION_DURATION` import: passing the
74
- configured constant straight to `Animated.timing` read the CONFIGURED duration, never the one
75
- resolved against the device tier, so `MOTION_TIER[tier].durationScale` never reached the pill.
76
- Reduce-motion is `motion.enabled` no second `useReducedMotion()` call (`core/motion/MODULE.md`
77
- rule 6). Segment presses use `usePressState` (scale + state-layer overlay). The in-flight slide is stopped on effect cleanup and on unmount.
73
+ The slide goes through **`useMotion()`**, never a direct `MOTION_DURATION` import only
74
+ `motion.timing` applies `MOTION_TIER[tier].durationScale`, so a raw constant would ignore the device
75
+ tier. Reduce-motion is `motion.enabled` no second `useReducedMotion()` call (`core/motion/MODULE.md`
76
+ rule 6). Segment presses use `usePressState` (scale + state-layer overlay), a bounded
77
+ `android_ripple` (gated off while the segment is disabled), and fire `haptics.selection()` on change.
78
+ The in-flight slide is stopped on effect cleanup and on unmount.
78
79
 
79
80
  ## Patterns copied from Tabs / ButtonGroup / Card
80
81
 
@@ -90,10 +91,13 @@ rule 6). Segment presses use `usePressState` (scale + state-layer overlay). The
90
91
 
91
92
  ## Design decisions specific to this module
92
93
 
93
- - **The pill is neutral (`bg.surface`), not accent-coloured.** This is what the spec this module
94
+ - **The pill is a neutral raised surface, not accent-coloured.** This is what the spec this module
94
95
  was built against calls for, and it is also the only choice that keeps every segment's label the
95
96
  same colour whether or not it happens to be selected in a given render — no per-brand accent
96
97
  contrast to chase the way `ButtonGroup`'s `accent.solid` fill required a whole edge-colour fix.
98
+ - **Nested radii stay concentric.** Pill, focus ring and segment all use `radii.base` (8) —
99
+ `radii.md` (12) minus the track's `space[1]` inset (4) — never `radii.sm`, which under-rounds
100
+ them by 4dp against the track's own corner.
97
101
  - **Horizontal `hitSlop` is zero, full stop** — no per-edge "outer edge gets slop" exception like
98
102
  `ButtonGroup`'s. Only the vertical target is spec-mandated here; adding the outer-edge case would
99
103
  be unrequested surface area for a control whose segments (especially `fullWidth`) are already
@@ -122,5 +126,3 @@ Wrapped in `React.memo`. `handleSegmentLayout` is `useCallback`'d (mirroring `Ta
122
126
  - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
123
127
  - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
124
128
  - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
125
- - **Round 5 (Android parity)** — segments were missing `android_ripple` entirely; added, bounded
126
- (`borderless: false`), gated off while a segment is disabled.
@@ -1,25 +1,10 @@
1
1
  "use strict";
2
2
 
3
- /**
4
- * SegmentedControl — an inline, iOS-style single-choice control for switching between 2–5 mutually
5
- * exclusive options (filters, view modes, date ranges). A rounded track (`bg.sunken`) holds every
6
- * segment; the active one is marked by a raised pill (`bg.surface` + `Card`'s own elevation
7
- * treatment) that slides to the selected segment's measured position — the identical
8
- * measure-via-`onLayout` + `Animated.Value` mechanism `Tabs`' sliding indicator uses, keyed by
9
- * `value` so reordering `options` can never apply a stale measurement to the wrong segment.
10
- *
11
- * Unlike `ButtonGroup`/`Tabs`, the active state is NOT accent-coloured: the pill is a neutral raised
12
- * surface, and elevation — not colour — is what marks it, because `bg.surface` vs `bg.sunken` alone
13
- * measures nowhere near WCAG 1.4.11's 3:1 (see `SegmentedControl.variants.ts`). Selection reaches
14
- * assistive tech independently via `accessibilityState.selected`.
15
- *
16
- * The pill is a SELECTION marker, never a focus one — keyboard/AT focus draws its own inset ring on
17
- * the focused segment (WCAG 2.4.7), the same treatment `BottomNavTab` uses.
18
- */
3
+ /** Inline single-choice control; see `MODULE.md` for the elevation/a11y contract. */
19
4
 
20
5
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
21
- import { Animated, Platform, Pressable, StyleSheet, Text, View } from "react-native";
22
- import Reanimated from "react-native-reanimated";
6
+ import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
7
+ import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
23
8
  import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
24
9
  import { useHaptics } from "../../core/haptics/index.js";
25
10
  import { usePressState } from "../../core/motion/usePressState.js";
@@ -90,13 +75,14 @@ const SegmentButton = /*#__PURE__*/memo(function SegmentButton({
90
75
  overflow: "hidden"
91
76
  }, press.animatedStyle, option.disabled === true && !segmentDisabled && styles.dimmed],
92
77
  children: [/*#__PURE__*/_jsx(Reanimated.View, {
93
- pointerEvents: "none",
94
- style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
78
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
79
+ pointerEvents: "none"
80
+ }]
95
81
  }), focused && /*#__PURE__*/_jsx(View, {
96
- pointerEvents: "none",
97
82
  testID: testID ? `${testID}-focus-ring` : undefined,
98
83
  style: [segmentedControlFocusRingStructure(theme), {
99
- borderColor: theme.colors.border.focus
84
+ borderColor: theme.colors.border.focus,
85
+ pointerEvents: "none"
100
86
  }]
101
87
  }), option.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
102
88
  name: option.icon,
@@ -134,6 +120,11 @@ function SegmentedControlImpl({
134
120
  const [focusedValue, setFocusedValue] = useState(null);
135
121
  const pillX = useAnimatedValue(0);
136
122
  const running = useRef(null);
123
+ const pillMotionStyle = useAnimatedStyle(() => ({
124
+ transform: [{
125
+ translateX: pillX.value
126
+ }]
127
+ }));
137
128
  const activeLayout = layouts[value];
138
129
  const handleSegmentLayout = useCallback((optionValue, event) => {
139
130
  const {
@@ -156,7 +147,7 @@ function SegmentedControlImpl({
156
147
  if (activeLayout === undefined) return undefined;
157
148
  running.current?.stop();
158
149
  if (!motion.enabled) {
159
- pillX.setValue(activeLayout.x);
150
+ pillX.value = activeLayout.x;
160
151
  return undefined;
161
152
  }
162
153
  running.current = motion.timing(pillX, activeLayout.x, {
@@ -177,15 +168,14 @@ function SegmentedControlImpl({
177
168
  backgroundColor: floatingBackground(theme, "sm"),
178
169
  ...floatingSurfaceStyle(theme, "sm")
179
170
  }, disabled && styles.dimmed, style],
180
- children: [/*#__PURE__*/_jsx(Animated.View, {
181
- pointerEvents: "none",
171
+ children: [/*#__PURE__*/_jsx(Reanimated.View, {
182
172
  testID: testID ? `${testID}-pill` : undefined,
183
- style: [segmentedControlPillStructure(theme), theme.elevation.md, {
184
- backgroundColor: colors.pill,
173
+ style: [segmentedControlPillStructure(theme), {
174
+ backgroundColor: floatingBackground(theme, "md"),
185
175
  width: activeLayout?.width ?? 0,
186
- transform: [{
187
- translateX: pillX
188
- }]
176
+ ...floatingSurfaceStyle(theme, "md")
177
+ }, pillMotionStyle, {
178
+ pointerEvents: "none"
189
179
  }]
190
180
  }), options.map(option => {
191
181
  const selected = option.value === value;
@@ -1,23 +1,10 @@
1
1
  "use strict";
2
2
 
3
- /**
4
- * SegmentedControl's style + behaviour resolution — pure, React/lucide-free, same split as Tabs:
5
- * - STRUCTURE (track padding/radius, segment height/padding, pill radius) lives in the
6
- * `createThemedVariants` resolvers below, registered once per (theme, size) — never rebuilt per
7
- * render.
8
- * - COLOUR is resolved from the theme's ROLE colours (`resolveSegmentedControlColors`), never a raw
9
- * hex: the track is always `bg.sunken`, the pill is always `bg.surface` (a neutral raised
10
- * surface, NOT the accent role — unlike `ButtonGroup`/`Tabs`, selection here is conveyed by
11
- * elevation + position, not by brand colour).
12
- * - `resolveSegmentedControlSegmentAccessibility` derives the per-segment a11y surface purely, so
13
- * the "selected"/"disabled" contract is unit-testable without rendering React Native.
14
- */
3
+ /** Pure style + a11y resolvers for SegmentedControl — no React, no lucide. */
15
4
 
5
+ import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
16
6
  import { createThemedVariants } from "../../core/style/index.js";
17
- /** Same floor as Button/Input/Tabs/ButtonGroup — 44dp (WCAG 2.5.5 / HIG). Duplicated, not imported:
18
- * modules stay isolated. */
19
- export const MIN_TOUCH_TARGET = 44;
20
- const slopFor = height => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - height) / 2));
7
+ export { MIN_TOUCH_TARGET };
21
8
  export const SEGMENTED_CONTROL_SIZES = {
22
9
  sm: {
23
10
  height: 32,
@@ -32,24 +19,11 @@ export const SEGMENTED_CONTROL_SIZES = {
32
19
  hitSlop: slopFor(40)
33
20
  }
34
21
  };
35
- /**
36
- * Maps the control's fixed visual roles onto ROLE colours — never a hardcoded hex. There is no
37
- * per-segment `tone`: like `RadioGroup`/`Tabs`, this is pure indirection, not a union to resolve.
38
- *
39
- * The pill deliberately reads `bg.surface`, NOT an accent fill: `bg.surface` vs `bg.sunken` alone
40
- * measures as low as 1.08:1 (nowhere near WCAG 1.4.11's 3:1 — see `SegmentedControl.test.ts`), so
41
- * the boundary between the pill and the track is carried by elevation (`theme.elevation.md`, the
42
- * same treatment `Card`'s `elevated` variant uses to differentiate itself with no border either),
43
- * not by a colour contrast this pairing could never clear on its own. Selection is additionally
44
- * conveyed to assistive tech via `accessibilityState.selected`, never by colour alone.
45
- */
22
+ /** Label colours only — track/pill/pressed backgrounds are resolved live in `SegmentedControl.tsx`. */
46
23
  export function resolveSegmentedControlColors(colors) {
47
24
  return {
48
- track: colors.bg.sunken,
49
- pill: colors.bg.surface,
50
25
  activeLabel: colors.fg.default,
51
- inactiveLabel: colors.fg.muted,
52
- pressedSegment: colors.bg.raised
26
+ inactiveLabel: colors.fg.muted
53
27
  };
54
28
  }
55
29
  export function resolveSegmentedControlSegmentAccessibility(input) {
@@ -92,20 +66,13 @@ export const segmentedControlTrackStructure = createThemedVariants(theme => ({
92
66
  }
93
67
  }));
94
68
 
95
- /**
96
- * The pill. `theme.radii.sm` — one step down from the track's `theme.radii.md` — nests cleanly
97
- * inside the track's own `space[1]` inset, the same "inner radius ≈ outer radius − inset" geometry
98
- * a nested rounded rect needs to read as concentric rather than mismatched. `top`/`bottom` pin it to
99
- * the row's own height (set by the segments, its flow siblings); `left`/`width` are driven by
100
- * `Animated.Value`s in `SegmentedControl.tsx`, keyed off each segment's own `onLayout` measurement —
101
- * same mechanism as `Tabs`' sliding indicator.
102
- */
69
+ /** `radii.base` (12 − the track's `space[1]` inset of 4) nests concentric inside `radii.md`. */
103
70
  export const segmentedControlPillStructure = createThemedVariants(theme => ({
104
71
  base: {
105
72
  position: "absolute",
106
73
  top: 0,
107
74
  bottom: 0,
108
- borderRadius: theme.radii.sm
75
+ borderRadius: theme.radii.base
109
76
  }
110
77
  }));
111
78
 
@@ -123,7 +90,7 @@ export const segmentedControlFocusRingStructure = createThemedVariants(theme =>
123
90
  right: 0,
124
91
  bottom: 0,
125
92
  borderWidth: theme.borderWidths.thick,
126
- borderRadius: theme.radii.sm
93
+ borderRadius: theme.radii.base
127
94
  }
128
95
  }));
129
96
 
@@ -139,7 +106,7 @@ export const segmentedControlSegmentStructure = createThemedVariants(theme => ({
139
106
  alignItems: "center",
140
107
  justifyContent: "center",
141
108
  minWidth: MIN_TOUCH_TARGET,
142
- borderRadius: theme.radii.sm,
109
+ borderRadius: theme.radii.base,
143
110
  columnGap: theme.space[1]
144
111
  },
145
112
  variants: {
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=SegmentedControlProps.js.map
@@ -17,11 +17,12 @@ context + a stateless helper with no React-tree footprint of its own, not a depe
17
17
  |------|------|
18
18
  | `Select.tsx` | The component. Trigger + `Modal` composition, open/close state, focus handling. Option list is `core/list`'s `VirtualList` (device-tier windowing over FlashList-or-FlatList), built only while `open`. |
19
19
  | `Select.variants.ts` | Pure resolvers (`SELECT_SIZES`, `resolveSelectTriggerColors`, `resolveSelectRowColors`, `resolveSelectAccessibility`) + the themed structural resolvers (`selectTriggerStructure`, `selectOverlayStructure`, `selectSheetStructure`, `selectRowStructure`). No React, no lucide. |
20
- | `index.ts` | Public surface: `Select`, `SelectProps`, `SelectOption`, `SelectSize`. |
20
+ | `index.ts` | Public surface: `Select`, `SelectProps`, `SelectOption`, `SelectOptionTone`, `SelectOptionCustomColors`, `SelectSize`. |
21
21
  | `__tests__/Select.test.ts` | Pure: WCAG contrast (all brands × modes) + touch target + a11y contract. |
22
22
  | `__tests__/Select.render.test.tsx` | Render: display, open/close, disabled gating, selection, backdrop dismiss, the row's resolved 44dp `minHeight`, and the web-portal opt-in branch (mocking `renderWebPortal`). |
23
23
  | `__tests__/Select.keyboard.test.tsx` | Web keyboard: tab stop opens on the selected option, arrows/Home/End/typeahead, Space selection, Escape. |
24
- | `__tests__/Select.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. |
24
+ | `__tests__/Select.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): check-glyph and press feedback snap to their final values, and no Reanimated timing runs. |
25
+ | `__tests__/Select.dom.test.tsx` | Real DOM (`jest.web.config.js`): the trigger and sheet under `react-dom`. |
25
26
 
26
27
  ## Props
27
28
 
@@ -32,6 +33,8 @@ context + a stateless helper with no React-tree footprint of its own, not a depe
32
33
  | `onValueChange` | `(value: string) => void` | — | Required. Fired on row press; the menu closes right after. |
33
34
  | `placeholder` | `string` | — | Shown when `value` matches no option. |
34
35
  | `label` | `string` | — | Field label above the trigger; also folded into its accessible name. |
36
+ | `status` | `InputStatus` | `"default"` | `"error"` paints the danger border and sets `aria-invalid`, same union as `Input`. |
37
+ | `errorText` | `string` | — | Rendered below the trigger, but only while `status="error"`. |
35
38
  | `disabled` | `boolean` | `false` | Blocks opening the menu; dimmed like Button's disabled state. |
36
39
  | `size` | `sm \| md \| lg` | `md` | 32 / 40 / 48 dp; short sizes reach 44 via `hitSlop`. |
37
40
  | `containerStyle` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
@@ -120,9 +123,7 @@ widening is one audited cast in `Select.variants.ts` rather than a cast at the c
120
123
  was built against. A future `Combobox`/`MultiSelect` would be a separate module, not a prop
121
124
  added here (closed-prop-contract).
122
125
  - The trigger's focus ring is a border-colour swap (`border.focus`), not Button's offset ring —
123
- intentional: Select mimics Input-style focus conventions, which this library has not built an
124
- `Input` module to confirm against yet (parallel build). Revisit if `Input` lands a different
125
- convention and the two should be reconciled.
126
+ intentional: Select follows `input/`'s focus convention rather than Button's.
126
127
  - No measured anchor position — the overlay always centers within its container, regardless of
127
128
  where the trigger sits on screen, same as Menu's identical `justifyContent: "center"` overlay
128
129
  (see `menu/MODULE.md`'s Known gaps). A real anchor would need `Button` to forward refs (it
@@ -177,3 +178,5 @@ Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-moti
177
178
 
178
179
  - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
179
180
  - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
181
+
182
+ Backdrop scrim uses MOTION_TRANSFORM.scrimOpacity (aligned with Modal).