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
@@ -14,6 +14,7 @@ persistent title/children dialog, centered) and imports nothing from it.
14
14
  | `index.ts` | Public surface: `Drawer`, `DrawerProps`. |
15
15
  | `__tests__/Drawer.test.ts` | Pure: reduced-motion contract, bottom-inset fallback, panel/grabber colour resolution (all brands × modes). |
16
16
  | `__tests__/Drawer.render.test.tsx` | Render: visibility, mount-through-exit-animation, dismissal paths, modal semantics, grabber a11y, reduced motion, and the web-portal opt-in branch (mocking `renderWebPortal`). |
17
+ | `__tests__/Drawer.dom.test.tsx` | Real DOM: modal semantics and the portal branch on react-native-web. |
17
18
  | `__tests__/Drawer.keyboard.test.tsx` | Keyboard avoidance: no listener while closed, subscribe/unsubscribe with `mounted`, the tween's duration source, and the reduce-motion snap. |
18
19
 
19
20
  ## Props
@@ -30,8 +31,8 @@ transient overlay whose position is fixed by the component, not something an app
30
31
 
31
32
  ## Animation
32
33
 
33
- One `Animated.Value` (`progress`, 0 → 1) drives both the panel's `translateY` (window height → `0`)
34
- and the backdrop's `opacity` in lockstep — why RN `<Modal>` is always given `animationType="none"`:
34
+ One animated value (`progress`, 0 → 1, from `core/motion`'s `useAnimatedValue`) drives both the
35
+ panel's `translateY` (window height → `0`) and the backdrop's `opacity` in lockstep — why RN `<Modal>` is always given `animationType="none"`:
35
36
  RN's native transition is one discrete enum for the whole surface and can't also fade a
36
37
  separately-Animated backdrop in step with a custom slide.
37
38
 
@@ -40,8 +41,8 @@ an instant snap, never a frozen half-slid frame.
40
41
 
41
42
  **Exit-animation lifecycle.** RN's `<Modal>` only hides children once native dismissal completes or
42
43
  the component unmounts, so Drawer keeps its own `mounted` state distinct from `visible`: on close the
43
- exit animation starts immediately and a `setTimeout` (matching `duration`, not the `Animated.timing`
44
- callback, which rides `requestAnimationFrame` and won't resolve deterministically under fake timers)
44
+ exit animation starts immediately and a `setTimeout` (matching `duration`, not the animation's own
45
+ completion callback, which won't resolve deterministically under fake timers)
45
46
  unmounts the `<Modal>` once finished — same idiom as `Toast.tsx`'s `hide()`.
46
47
 
47
48
  ## Keyboard avoidance
@@ -60,18 +61,13 @@ closed, the effect seeds the height from `Keyboard.metrics()` when it re-subscri
60
61
  web, since react-native-web's `Keyboard` stub doesn't implement `metrics()` (unlike the other
61
62
  `Keyboard` calls here, which it stubs as no-ops).
62
63
 
63
- **Reduce motion (WCAG 2.3.3) applies here too.** This is the library's one raw `Animated.timing`
64
- (`paddingBottom` can't run on the native driver, so it can't go through `useMotion().timing`), which
65
- means the gate has to be applied by hand: `!motion.enabled` snaps with `setValue`, and the fallback
66
- duration is `motion.duration("normal")` never a hardcoded literal. The file's eslint override
67
- drops the `Animated.timing` restriction wholesale, so nothing else catches a regression here;
68
- `__tests__/Drawer.keyboard.test.tsx` does.
64
+ **Reduce motion (WCAG 2.3.3) applies here too.** Keyboard padding uses **`runTiming`** on a
65
+ `useAnimatedValue` (layout-driven, not `useMotion().timing`), with `!motion.enabled`
66
+ snapping via `.value` and event duration falling back to `motion.duration("normal")` never a
67
+ hardcoded literal. `__tests__/Drawer.keyboard.test.tsx` pins both halves.
69
68
 
70
- **Invariant:** that padding lives on its own inner `Animated.View`, never the panel's transform
71
- node RN's native driver claims a node the instant any animated prop on it starts with
72
- `useNativeDriver: true` (the panel's `translateY`); a JS-driven prop (`paddingBottom`) on that same
73
- node then throws "Attempting to run JS driven animation on animated node that has been moved to
74
- 'native'" on the next keyboard toggle.
69
+ **Invariant:** that padding lives on its own inner animated `View`, never the panel's transform
70
+ node, so the layout-driven padding and the panel's slide never contend for the same node.
75
71
 
76
72
  ## Web portal mechanism (opt-in)
77
73
 
@@ -124,13 +120,7 @@ still correct.
124
120
 
125
121
  ## Performance
126
122
 
127
- Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Only renders host primitives (`Pressable`/`View`/`Animated.View`/RN's own `Modal`) — no library child component receives a derived callback/array, so no `useCallback`/`useMemo` was needed.
123
+ Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Only renders host primitives (`Pressable`/`View`/`Reanimated.View`/RN's own `Modal`) — no library child component receives a derived callback/array, so no `useCallback`/`useMemo` was needed.
128
124
 
129
- ## Modernization (v1.0.7)
130
-
131
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
132
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
133
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
134
-
135
- - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
136
- - **Round 5 motion** — dropped the ad hoc reanimated `FadeInDown` wrapper around the handle/children (entrance-only, no exit — purely redundant with `progress`, which already drives panel+backdrop together). `DRAWER_BACKDROP`'s opacity now comes from the shared `MOTION_TRANSFORM.scrimOpacity`.
125
+ `DRAWER_BACKDROP`'s opacity comes from the shared `MOTION_TRANSFORM.scrimOpacity`; the handle and
126
+ children carry no entrance animation of their own — `progress` already drives panel and backdrop together.
@@ -18,7 +18,7 @@
18
18
 
19
19
  import { memo, useMemo } from "react";
20
20
  import { View } from "react-native";
21
- import Reanimated, { FadeInDown, FadeOut, ReduceMotion } from "react-native-reanimated";
21
+ import Reanimated, { FadeInDown, FadeOut, LinearTransition, ReduceMotion } from "react-native-reanimated";
22
22
  import { useAnnounce } from "../../core/a11y/index.js";
23
23
  import { Icon } from "../../core/icon/index.js";
24
24
  import { useTheme } from "../../theme/hooks.js";
@@ -53,6 +53,7 @@ export const EmptyState = /*#__PURE__*/memo(function EmptyState({
53
53
  testID: testID,
54
54
  entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
55
55
  exiting: FadeOut.reduceMotion(ReduceMotion.System),
56
+ layout: LinearTransition.reduceMotion(ReduceMotion.System),
56
57
  style: rootStyle,
57
58
  children: [icon !== undefined && /*#__PURE__*/_jsx(View, {
58
59
  testID: testID === undefined ? undefined : `${testID}-icon`,
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=EmptyStateProps.js.map
@@ -19,7 +19,7 @@ identity, same reasoning `Divider`/`Avatar` give for theirs.
19
19
 
20
20
  | Prop | Type | Default | Notes |
21
21
  |------|------|---------|-------|
22
- | `icon` | `IconName` | — | A NAME from the closed 22-name catalogue, never a `ReactNode`. Decorative — hidden from assistive tech. |
22
+ | `icon` | `IconName` | — | A NAME from the closed `core/icon` catalogue, never a `ReactNode`. Decorative — hidden from assistive tech. |
23
23
  | `title` | `string` | — | Required. Rendered bold, `fg.default`, centred. |
24
24
  | `description` | `string` | — | Optional. Rendered `fg.muted`, centred, below the title. |
25
25
  | `action` | `{ label: string; onPress: () => void }` | — | Optional. Rendered via this library's own `Button` (`tone="accent" variant="solid"`) — a justified composition, same reasoning `AlertDialog` documents for its own footer buttons. |
@@ -66,8 +66,9 @@ composition and `Select`'s reuse of stable siblings.
66
66
  (same reasoning `Divider.test.ts` documents for its own decorative colour). Its ≥ 3:1 floor
67
67
  against `bg.canvas` is still measured anyway, so a future edit can't silently regress it to
68
68
  something illegible for sighted users.
69
- - **2.3.3 (reduced motion)** — N/A. `EmptyState` has no animation of its own; the composed
70
- `Button` handles its own press-fade suppression.
69
+ - **2.3.3 (reduced motion)** — the root is a `Reanimated.View` with `FadeInDown` entering, `FadeOut`
70
+ exiting and a `LinearTransition` layout, each `.reduceMotion(ReduceMotion.System)`, so the OS
71
+ setting collapses them. The composed `Button` handles its own press-fade suppression.
71
72
  - **Touch target (2.5.x)** — N/A for `EmptyState` itself (not interactive); the composed `Button`
72
73
  meets its own 44dp floor.
73
74
 
@@ -89,9 +90,3 @@ None — no new icon, no new theme token, no new core helper needed for this com
89
90
  ## Performance
90
91
 
91
92
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Its one library child, `Button`, receives `action.label`/`action.onPress` straight from the consumer's own `action` object, not a freshly-derived closure — nothing to memoize.
92
-
93
- ## Modernization (v1.0.7)
94
-
95
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
96
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
97
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
@@ -31,11 +31,6 @@ import { elevation as elevationTokens } from "../../theme/tokens/primitives/inde
31
31
  import { rippleColor } from "../../theme/platform/stateLayer.native.js";
32
32
  import { useTheme } from "../../theme/hooks.js";
33
33
  import { fabCircleStructure, fabExtendedStructure, fabOverlayColor, FAB_SIZES, resolveFabAccessibility, resolveFabAnchorStyle, resolveFabBottomInset, resolveFabFocusRingStyle, resolveFabHorizontalInset, resolveFabTone } from "./Fab.variants.js";
34
-
35
- /** A Fab with a visible text label — the EXTENDED variant (a pill, icon + text). */
36
-
37
- /** An icon-only Fab. No visible text, so `accessibilityLabel` is REQUIRED at the type level — the
38
- * same trap `Button`'s icon-only shape closes. `label?: never` keeps the two shapes exclusive. */
39
34
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
40
35
  const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
41
36
  const ICON_STROKE = 2;
@@ -125,8 +120,9 @@ function FabImpl(props) {
125
120
  strokeWidth: ICON_STROKE
126
121
  });
127
122
  return /*#__PURE__*/_jsx(View, {
128
- style: [anchor, style],
129
- pointerEvents: "box-none",
123
+ style: [anchor, style, {
124
+ pointerEvents: "box-none"
125
+ }],
130
126
  children: /*#__PURE__*/_jsxs(AnimatedPressable, {
131
127
  testID: testID,
132
128
  accessibilityRole: a11y.accessibilityRole,
@@ -157,16 +153,18 @@ function FabImpl(props) {
157
153
  children: [/*#__PURE__*/_jsx(AccentGradientFill, {
158
154
  color: toneColors.fill
159
155
  }), /*#__PURE__*/_jsx(Animated.View, {
160
- pointerEvents: "none",
161
156
  style: [StyleSheet.absoluteFill, {
162
157
  backgroundColor: overlayColor,
163
158
  borderRadius: theme.radii.full,
164
159
  borderCurve: "continuous"
165
- }, press.overlayStyle]
160
+ }, press.overlayStyle, {
161
+ pointerEvents: "none"
162
+ }]
166
163
  }), focused && /*#__PURE__*/_jsx(View, {
167
- pointerEvents: "none",
168
164
  testID: testID ? `${testID}-focus-ring` : undefined,
169
- style: focusRingStyle
165
+ style: [focusRingStyle, {
166
+ pointerEvents: "none"
167
+ }]
170
168
  }), content, extended && /*#__PURE__*/_jsx(Text, {
171
169
  numberOfLines: 1,
172
170
  style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
@@ -22,10 +22,16 @@
22
22
  * directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
23
23
  */
24
24
 
25
+ import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
26
+ import { withAlpha } from "../../core/gradient/index.js";
27
+ import { MOTION_TRANSFORM } from "../../core/motion/index.js";
25
28
  import { createThemedVariants } from "../../core/style/index.js";
29
+ import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
30
+ export { MIN_TOUCH_TARGET };
31
+
26
32
  /** Both sizes already clear this floor directly (48dp / 56dp) — no `hitSlop` needed, unlike Button's
27
33
  * shorter sizes (WCAG 2.5.5 AAA / Apple HIG minimum). */
28
- export const MIN_TOUCH_TARGET = 44;
34
+
29
35
  export const FAB_SIZES = {
30
36
  md: {
31
37
  diameter: 48,
@@ -227,8 +233,8 @@ export function resolveFabGroupActionWindow(index, count, staggered) {
227
233
 
228
234
  /** The focus ring sits a small gap OUTSIDE the control, on the canvas, because `border.focus` is the
229
235
  * role token proven ≥ 3:1 against the canvas (WCAG 2.4.11) — drawn over a solid fill it could fail. */
230
- export const FAB_FOCUS_RING_WIDTH = 2;
231
- export const FAB_FOCUS_RING_GAP = 2;
236
+ export const FAB_FOCUS_RING_WIDTH = FOCUS_RING_WIDTH;
237
+ export const FAB_FOCUS_RING_GAP = FOCUS_RING_GAP;
232
238
  /** The offset ring `Fab` and `FabGroup`'s trigger both draw on focus — one definition, since the two
233
239
  * are the same circular silhouette. Kept a pure function of the two role/scale values it needs, so
234
240
  * the ring geometry is unit-testable without rendering React Native. */
@@ -248,7 +254,7 @@ export function resolveFabFocusRingStyle(borderColor, borderRadius) {
248
254
 
249
255
  /** The dismiss scrim behind an expanded FabGroup — a design constant, not a role token: decorative,
250
256
  * same status `BACKDROP_SCRIM` (Menu/Select) and `DRAWER_BACKDROP` already have. */
251
- export const FAB_GROUP_SCRIM = "#00000080";
257
+ export const FAB_GROUP_SCRIM = withAlpha("#000000", MOTION_TRANSFORM.scrimOpacity);
252
258
 
253
259
  /** Structural circle — the icon-only shape. Colour (fill) is tone-driven, applied inline over this. */
254
260
  export const fabCircleStructure = createThemedVariants(theme => ({
@@ -30,11 +30,13 @@
30
30
  */
31
31
 
32
32
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
33
- import { Animated, Platform, Pressable, StyleSheet, Text, View } from "react-native";
34
- import Reanimated from "react-native-reanimated";
33
+ import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
34
+ import Reanimated, { interpolate, useAnimatedStyle } from "react-native-reanimated";
35
+ import { useReducedMotion } from "../../core/a11y/index.js";
35
36
  import { useDismissOnEscape, useFocusTrap } from "../../core/a11y/keyboard";
37
+ import { useHaptics } from "../../core/haptics/index.js";
36
38
  import { Icon } from "../../core/icon/index.js";
37
- import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
39
+ import { useMotion, useAnimatedValue } from "../../core/motion/index.js";
38
40
  import { usePressState } from "../../core/motion/usePressState.js";
39
41
  import { rippleColor } from "../../theme/platform/stateLayer.native.js";
40
42
  import { useTheme } from "../../theme/hooks.js";
@@ -73,22 +75,13 @@ function FabGroupActionRowImpl({
73
75
  const colors = resolveFabTone(theme.colors, action.tone ?? fallbackTone);
74
76
  const handlePress = useCallback(() => onSelect(action), [onSelect, action]);
75
77
  const [start, end] = window;
76
- const revealOpacity = useMemo(() => progress.interpolate({
77
- inputRange: [start, end],
78
- outputRange: [0, 1],
79
- extrapolate: "clamp"
80
- }), [progress, start, end]);
81
- const translateY = useMemo(() => progress.interpolate({
82
- inputRange: [start, end],
83
- outputRange: [motion.transform.offsetY, 0],
84
- extrapolate: "clamp"
85
- }), [progress, start, end, motion.transform.offsetY]);
86
- const revealStyle = useMemo(() => ({
87
- opacity: revealOpacity,
78
+ const offsetY = motion.transform.offsetY;
79
+ const revealStyle = useAnimatedStyle(() => ({
80
+ opacity: interpolate(progress.value, [start, end], [0, 1], "clamp"),
88
81
  transform: [{
89
- translateY
82
+ translateY: interpolate(progress.value, [start, end], [offsetY, 0], "clamp")
90
83
  }]
91
- }), [revealOpacity, translateY]);
84
+ }));
92
85
  const androidRipple = useMemo(() => {
93
86
  if (Platform.OS !== "android") return undefined;
94
87
  return {
@@ -96,9 +89,7 @@ function FabGroupActionRowImpl({
96
89
  borderless: false
97
90
  };
98
91
  }, [theme.mode]);
99
-
100
- // Reveal (classic Animated) nests press feedback (Reanimated `usePressState`) — fades compose.
101
- return /*#__PURE__*/_jsx(Animated.View, {
92
+ return /*#__PURE__*/_jsx(Reanimated.View, {
102
93
  style: revealStyle,
103
94
  children: /*#__PURE__*/_jsxs(AnimatedPressable, {
104
95
  testID: testID,
@@ -155,6 +146,8 @@ function FabGroupImpl({
155
146
  }) {
156
147
  const theme = useTheme();
157
148
  const motion = useMotion();
149
+ const haptics = useHaptics();
150
+ const reducedMotion = useReducedMotion();
158
151
  const [internalOpen, setInternalOpen] = useState(false);
159
152
  const isControlled = open !== undefined;
160
153
  const expanded = isControlled ? open : internalOpen;
@@ -180,7 +173,7 @@ function FabGroupImpl({
180
173
  if (expanded) {
181
174
  setMounted(true);
182
175
  if (!motion.enabled || duration === 0) {
183
- progress.setValue(1);
176
+ progress.value = 1;
184
177
  return;
185
178
  }
186
179
  running.current = motion.timing(progress, 1, {
@@ -191,7 +184,7 @@ function FabGroupImpl({
191
184
  }
192
185
  if (!mountedRef.current) return;
193
186
  if (!motion.enabled || duration === 0) {
194
- progress.setValue(0);
187
+ progress.value = 0;
195
188
  setMounted(false);
196
189
  return;
197
190
  }
@@ -210,9 +203,10 @@ function FabGroupImpl({
210
203
  if (unmountTimer.current !== null) clearTimeout(unmountTimer.current);
211
204
  }, []);
212
205
  const requestExpandedChange = useCallback(next => {
206
+ if (next && !expanded && !reducedMotion) haptics.impact("light");
213
207
  if (!isControlled) setInternalOpen(next);
214
208
  onOpenChange?.(next);
215
- }, [isControlled, onOpenChange]);
209
+ }, [isControlled, onOpenChange, expanded, reducedMotion, haptics]);
216
210
  const toggle = useCallback(() => {
217
211
  if (disabled) return;
218
212
  requestExpandedChange(!expanded);
@@ -246,10 +240,14 @@ function FabGroupImpl({
246
240
  });
247
241
  const actionDirection = resolveFabGroupActionDirection(position);
248
242
  const stackAlign = resolveFabGroupStackAlign(position);
249
- const rotate = useMemo(() => progress.interpolate({
250
- inputRange: [0, 1],
251
- outputRange: ["0deg", "45deg"]
252
- }), [progress]);
243
+ const rotateStyle = useAnimatedStyle(() => ({
244
+ transform: [{
245
+ rotate: `${interpolate(progress.value, [0, 1], [0, 45])}deg`
246
+ }]
247
+ }));
248
+ const scrimStyle = useAnimatedStyle(() => ({
249
+ opacity: progress.value
250
+ }));
253
251
  const triggerPress = usePressState(disabled);
254
252
  const triggerOverlayColor = fabOverlayColor(triggerColors.onFill);
255
253
  const triggerRipple = useMemo(() => {
@@ -277,17 +275,19 @@ function FabGroupImpl({
277
275
  tabIndex: -1,
278
276
  style: StyleSheet.absoluteFill,
279
277
  onPress: closeGroup,
280
- children: /*#__PURE__*/_jsx(Animated.View, {
281
- pointerEvents: "none",
278
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
282
279
  style: [StyleSheet.absoluteFill, {
283
- backgroundColor: FAB_GROUP_SCRIM,
284
- opacity: progress
280
+ backgroundColor: FAB_GROUP_SCRIM
281
+ }, scrimStyle, {
282
+ pointerEvents: 'none'
285
283
  }]
286
284
  })
287
285
  }), /*#__PURE__*/_jsxs(View, {
288
286
  ref: anchorRef,
289
287
  testID: testID ? `${testID}-anchor` : undefined,
290
- style: [anchor, styles.anchorFlow, style]
288
+ style: [anchor, styles.anchorFlow, style, {
289
+ pointerEvents: "box-none"
290
+ }]
291
291
  // Modal exactly while the scrim is mounted, and on the anchor rather than the action stack
292
292
  // so the trigger — the close affordance — stays inside the modal view with the actions.
293
293
  // Both spellings: RN's View has no `aria-modal`, react-native-web has no
@@ -296,7 +296,6 @@ function FabGroupImpl({
296
296
  accessibilityViewIsModal: mounted,
297
297
  "aria-modal": mounted,
298
298
  onAccessibilityEscape: mounted ? closeGroup : undefined,
299
- pointerEvents: "box-none",
300
299
  children: [/*#__PURE__*/_jsxs(AnimatedPressable, {
301
300
  testID: testID ? `${testID}-trigger` : undefined,
302
301
  accessibilityRole: a11y.accessibilityRole,
@@ -317,22 +316,20 @@ function FabGroupImpl({
317
316
  backgroundColor: triggerColors.fill
318
317
  }, triggerPress.animatedStyle, disabled && styles.dimmed, theme.elevation.lg],
319
318
  children: [/*#__PURE__*/_jsx(Reanimated.View, {
320
- pointerEvents: "none",
321
319
  style: [StyleSheet.absoluteFill, {
322
320
  backgroundColor: triggerOverlayColor,
323
321
  borderRadius: theme.radii.full,
324
322
  borderCurve: "continuous"
325
- }, triggerPress.overlayStyle]
323
+ }, triggerPress.overlayStyle, {
324
+ pointerEvents: "none"
325
+ }]
326
326
  }), focused && /*#__PURE__*/_jsx(View, {
327
- pointerEvents: "none",
328
327
  testID: testID ? `${testID}-trigger-focus-ring` : undefined,
329
- style: focusRingStyle
330
- }), /*#__PURE__*/_jsx(Animated.View, {
331
- style: {
332
- transform: [{
333
- rotate
334
- }]
335
- },
328
+ style: [focusRingStyle, {
329
+ pointerEvents: 'none'
330
+ }]
331
+ }), /*#__PURE__*/_jsx(Reanimated.View, {
332
+ style: rotateStyle,
336
333
  children: /*#__PURE__*/_jsx(Icon, {
337
334
  name: icon,
338
335
  size: spec.iconSize,
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FabGroupProps.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FabProps.js.map
@@ -126,8 +126,7 @@ its trigger is not a tooltip target.
126
126
  ## Known gaps
127
127
 
128
128
  - **Fab's own focus ring can be clipped by its `overflow: "hidden"`** — the ring is drawn with
129
- negative offsets outside the control's own bounds, and the Pressable clips to its own rect. Found
130
- in the Round 5 Android-parity pass, not fixed here (unrelated to that pass's scope). FabGroup's
129
+ negative offsets outside the control's own bounds, and the Pressable clips to its own rect. FabGroup's
131
130
  trigger avoids this: it carries no `overflow: "hidden"`, since its overlay self-clips via its own
132
131
  `borderRadius`.
133
132
  - **No safe-area inset awareness** beyond the static iOS home-indicator approximation (see pattern
@@ -154,22 +153,22 @@ its trigger is not a tooltip target.
154
153
 
155
154
  ## Motion
156
155
 
157
- Nothing in this module owns a duration, easing or `Animated.timing` config — all of it comes from
156
+ Nothing in this module owns a duration, easing or timing config — all of it comes from
158
157
  `useMotion()` / `usePressMotion()` in `core/motion`, so retuning `core/motion/config.ts` retunes the
159
158
  Fab too. Everything animates `opacity`/`transform` only, always on the native driver.
160
159
 
161
160
  - **Press feedback** — Fab, the FabGroup trigger, and each action row all use `usePressState`
162
161
  (`core/motion/usePressState`), the same width-aware scale + state-layer overlay + spring settle
163
- every other pressable in this library uses (Round 5 press-feedback unification).
162
+ every other pressable in this library uses.
164
163
  - **FabGroup expand/collapse** — one classic `progress` value; the trigger glyph rotates 0→45°, the
165
164
  scrim fades, and each action row reveals over its own slice of that same value.
166
165
  - **The action stagger is decorative** (`motion.decorative`, high tier only). It is expressed as a
167
166
  per-row interpolation *window* (`resolveFabGroupActionWindow`), not per-row animations: no extra
168
167
  timers or `Animated.Value`s, and it reverses correctly on close. On low/mid tier every row shares
169
168
  the full `[0, 1]` window and the rows reveal together.
170
- - **Action rows nest two animation systems**: an outer classic-`Animated.View` reveal (opacity +
171
- translateY, tied to `progress`) wraps the inner `usePressState`-driven `AnimatedPressable` — the
172
- two fades compose by nesting instead of `Animated.multiply`.
169
+ - **Action rows nest two animations**: an outer `Reanimated.View` reveal (opacity + translateY, tied
170
+ to `progress`) wraps the inner `usePressState`-driven `AnimatedPressable` — the two fades compose
171
+ by nesting rather than being multiplied into one value.
173
172
  - In-flight animations are stopped on effect cleanup and on unmount.
174
173
 
175
174
  ## Performance
@@ -181,14 +180,8 @@ every parent render. The reversed row list is `useMemo`'d. The action stack and
181
180
  while `mounted` (never while the trigger alone is on screen), matching Menu/Select/Drawer's
182
181
  identical "sheet content built only while open" convention.
183
182
 
184
- ## Modernization (v1.0.7)
183
+ ## Android
185
184
 
186
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
187
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
188
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
189
-
190
- - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
191
- - **Round 5 (Android parity + press unification)** — Fab, the trigger, and action rows switched from
192
- hand-rolled classic-`Animated` press timing to the shared `usePressState`; `android_ripple` added
193
- everywhere it was missing (`borderless: true` on the two circular icon-only targets, `false`
194
- elsewhere); the trigger gained a press-state overlay matching Fab's own.
185
+ `android_ripple` on every pressable target: `borderless: true` on the two circular icon-only
186
+ controls (Fab, the trigger), `false` elsewhere. FabGroup's dismiss scrim uses
187
+ `MOTION_TRANSFORM.scrimOpacity`.
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback } from "react";
4
+ import { View } from "react-native";
5
+ import { Checkbox } from "../checkbox/index.js";
6
+ import { ListItem } from "../list-item/index.js";
7
+ import { Modal } from "../modal/index.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const FieldSelectModal = /*#__PURE__*/memo(function FieldSelectModal({
10
+ visible,
11
+ onRequestClose,
12
+ title,
13
+ options,
14
+ selectedIds,
15
+ onChange,
16
+ multiple = true,
17
+ style,
18
+ testID
19
+ }) {
20
+ const toggle = useCallback(id => {
21
+ if (!multiple) {
22
+ onChange([id]);
23
+ onRequestClose();
24
+ return;
25
+ }
26
+ const set = new Set(selectedIds);
27
+ if (set.has(id)) set.delete(id);else set.add(id);
28
+ onChange([...set]);
29
+ }, [multiple, onChange, onRequestClose, selectedIds]);
30
+ return /*#__PURE__*/_jsx(Modal, {
31
+ visible: visible,
32
+ onRequestClose: onRequestClose,
33
+ title: title,
34
+ testID: testID,
35
+ children: /*#__PURE__*/_jsx(View, {
36
+ style: style,
37
+ children: options.map(option => {
38
+ const checked = selectedIds.includes(option.id);
39
+ return /*#__PURE__*/_jsx(ListItem, {
40
+ title: option.label,
41
+ onPress: () => toggle(option.id),
42
+ leading: multiple ? /*#__PURE__*/_jsx(Checkbox, {
43
+ checked: checked,
44
+ onCheckedChange: () => toggle(option.id),
45
+ accessibilityLabel: option.label
46
+ }) : undefined
47
+ }, option.id);
48
+ })
49
+ })
50
+ });
51
+ });
52
+ //# sourceMappingURL=FieldSelectModal.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FieldSelectModalProps.js.map
@@ -0,0 +1,13 @@
1
+ # field-select-modal/ — a column and field visibility picker in a Modal
2
+
3
+ A list of `ListItem` rows inside this library's own `Modal`. `multiple` (default `true`) gives each
4
+ row a leading `Checkbox` and toggles ids in place; `multiple={false}` drops the checkbox, replaces
5
+ the selection with the tapped id and closes the modal.
6
+
7
+ ## Props
8
+
9
+ `visible`, `onRequestClose`, `title`, `options: readonly FieldSelectOption[]` (`{ id, label }`),
10
+ `selectedIds: readonly string[]`, `onChange(selectedIds)` — all required — plus `multiple?` (`true`),
11
+ `style?: LayoutStyle` (on the rows' wrapper `View`, not the modal) and `testID?`.
12
+
13
+ Exported from the package root as `FieldSelectModal` / `FieldSelectModalProps` / `FieldSelectOption`.
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldSelectModal } from "./FieldSelectModal.js";
4
+ //# sourceMappingURL=index.js.map
@@ -134,8 +134,9 @@ const FileGridCell = /*#__PURE__*/memo(function FileGridCell({
134
134
  } : undefined,
135
135
  style: pressableStyle,
136
136
  children: [/*#__PURE__*/_jsx(Animated.View, {
137
- pointerEvents: "none",
138
- style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
137
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
138
+ pointerEvents: 'none'
139
+ }]
139
140
  }), content]
140
141
  });
141
142
  });
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FileGridProps.js.map
@@ -1,14 +1,37 @@
1
- # file-grid/
1
+ # file-grid/ — a 2/3/4-column grid of file and folder cells
2
2
 
3
3
  Grid of file/folder cells with icon + label. `columns`: 2 | 3 | 4. Cells are a tonal `bg.raised`
4
4
  fill, no hairline border — the same borderless-tile treatment `Card`'s `elevated` variant uses.
5
5
 
6
+ ## Files
7
+
8
+ | File | Role |
9
+ |------|------|
10
+ | `FileGrid.tsx` | The component. |
11
+ | `FileGrid.variants.ts` | `FileGridColumns` + the pure resolvers (`resolveFileGridItemLabel`, cell structure). |
12
+ | `index.ts` | Public surface: `FileGrid`, `FileGridProps`, `FileGridItem`, `FileGridColumns`. |
13
+ | `__tests__/FileGrid.test.ts` | Pure: a placeholder suite — the resolvers are not actually asserted yet. |
14
+ | `__tests__/FileGrid.render.test.tsx` | Render: cells, press wiring, the read-only cell's name. |
15
+
16
+ ## Props
17
+
18
+ | Prop | Type | Default | Notes |
19
+ |------|------|---------|-------|
20
+ | `items` | `readonly FileGridItem[]` | — | Required. `{ id, label, icon?: IconName, typeLabel? }`. |
21
+ | `columns` | `2 \| 3 \| 4` | `3` | |
22
+ | `onItemPress` | `(id: string) => void` | — | Absent = read-only cells, not `Pressable`. |
23
+ | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
24
+ | `testID` | `string` | — | |
25
+
6
26
  ## Accessibility contract (WCAG)
7
27
 
8
28
  - **1.3.1** — file **type** (folder vs. image vs. document) is conveyed only by the icon glyph, and a
9
29
  glyph has no text equivalent. `FileGridItem.typeLabel` (optional) supplies it; a cell's accessible
10
30
  name is `resolveFileGridItemLabel(label, typeLabel)` → `"<label>, <typeLabel>"`, falling back to
11
31
  `label` alone when the consumer names no type. Applies to both a pressable cell
12
- (`accessibilityLabel`) and a read-only one (wrapped `accessible` + `accessibilityLabel`, which it
13
- did not carry at all before).
14
- - **Press feedback** — cells with `onPress` use `usePressState` (scale + state-layer overlay).
32
+ (`accessibilityLabel`) and a read-only one (a `View` with `accessible` + `accessibilityLabel`).
33
+ - **Press feedback** cells take `usePressState` (scale + state-layer overlay), inert while
34
+ `onItemPress` is absent.
35
+
36
+ Rows are chunked to a fixed height and rendered through `core/list`'s `VirtualList`, so a long
37
+ folder listing windows instead of mounting every cell.