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
@@ -34,13 +34,13 @@
34
34
  */
35
35
 
36
36
  import { memo, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
37
- import { Animated, Modal, Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
38
- import Reanimated, { FadeInDown, ReduceMotion } from "react-native-reanimated";
37
+ import { Modal, Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
38
+ import Reanimated, { FadeInDown, ReduceMotion, useAnimatedStyle } from "react-native-reanimated";
39
39
  import { useAnnounce } from "../../core/a11y/index.js";
40
40
  import { useDismissOnEscape, useFocusTrap, useSpaceActivation } from "../../core/a11y/keyboard";
41
41
  import { Icon } from "../../core/icon/index.js";
42
42
  import { VirtualList } from "../../core/list/index.js";
43
- import { useMotion, usePressMotion, useReveal } from "../../core/motion/index.js";
43
+ import { useAnimatedValue, useMotion, usePressMotion, useReveal } from "../../core/motion/index.js";
44
44
  import { elevation, floatingBackground, floatingSurfaceStyle, highlight, rippleColor } from "../../theme/platform/index.js";
45
45
  import { elevation as elevationTokens } from "../../theme/tokens/primitives/index.js";
46
46
  import { useTheme } from "../../theme/hooks.js";
@@ -49,12 +49,6 @@ import { renderWebPortal } from "../modal/renderWebPortal";
49
49
  import { Spinner } from "../spinner/index.js";
50
50
  import { useComboboxKeys } from "./comboboxKeys";
51
51
  import { COMBOBOX_CLEAR_BUTTON_HIT_SLOP, COMBOBOX_FIELD_FONT_SIZE, COMBOBOX_FIELD_HIT_SLOP, COMBOBOX_FIELD_ICON_SIZE, COMBOBOX_LISTBOX_ROLE, COMBOBOX_ROW_ICON_SIZE, comboboxOptionNativeId, DEFAULT_EMPTY_MESSAGE, DEFAULT_MAX_HEIGHT, DEFAULT_PLACEHOLDER, DEFAULT_SEARCH_PLACEHOLDER, FILTER_DEBOUNCE_MS, SEARCH_DEBOUNCE_MS, comboboxClearButtonStructure, comboboxFieldStructure, comboboxFieldValueStructure, comboboxListStateStructure, comboboxOverlayStructure, comboboxRowStructure, comboboxRowTextStructure, comboboxSearchRowStructure, comboboxSheetStructure, COMBOBOX_ROW_MIN_HEIGHT, normalizeForSearch, resolveComboboxAccessibility, resolveComboboxErrorTextColor, resolveComboboxRowAccessibility, resolveComboboxRowColors, resolveComboboxSummary, resolveComboboxTriggerColors } from "./Combobox.variants.js";
52
-
53
- /**
54
- * A discriminated union, not one flat interface with every field optional: `multiple: true` requires
55
- * `values`/`onValuesChange`, the default (`multiple` absent/`false`) requires `value`/`onChange` — a
56
- * caller can never wire the wrong pair for the active mode and have it silently do nothing.
57
- */
58
52
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
59
53
  const ICON_STROKE = 2;
60
54
  const FOCUS_RING_WIDTH = 2;
@@ -75,7 +69,7 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
75
69
  const rowDisabled = option.disabled === true;
76
70
  const motion = useMotion();
77
71
  const press = usePressMotion(rowDisabled);
78
- const checkOpacity = useRef(new Animated.Value(selected ? 1 : 0)).current;
72
+ const checkOpacity = useAnimatedValue(selected ? 1 : 0);
79
73
  const skipFirst = useRef(true);
80
74
  const running = useRef(null);
81
75
 
@@ -84,11 +78,11 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
84
78
  running.current?.stop();
85
79
  if (skipFirst.current) {
86
80
  skipFirst.current = false;
87
- checkOpacity.setValue(selected ? 1 : 0);
81
+ checkOpacity.value = selected ? 1 : 0;
88
82
  return;
89
83
  }
90
84
  if (!motion.enabled) {
91
- checkOpacity.setValue(selected ? 1 : 0);
85
+ checkOpacity.value = selected ? 1 : 0;
92
86
  return;
93
87
  }
94
88
  running.current = motion.timing(checkOpacity, selected ? 1 : 0, {
@@ -98,6 +92,9 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
98
92
  return () => running.current?.stop();
99
93
  }, [selected, motion, checkOpacity]);
100
94
  useEffect(() => () => running.current?.stop(), []);
95
+ const checkStyle = useAnimatedStyle(() => ({
96
+ opacity: checkOpacity.value
97
+ }));
101
98
  const rowA11y = useMemo(() => resolveComboboxRowAccessibility({
102
99
  selected,
103
100
  disabled: rowDisabled
@@ -125,9 +122,6 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
125
122
  fontSize: theme.fontSizes.xs,
126
123
  color: rowColors.muted
127
124
  }], [theme, rowColors.muted]);
128
- const checkStyle = useMemo(() => ({
129
- opacity: checkOpacity
130
- }), [checkOpacity]);
131
125
  return /*#__PURE__*/_jsx(Pressable, {
132
126
  testID: testID ? `${testID}-option-${option.value}` : undefined,
133
127
  nativeID: nativeID,
@@ -143,7 +137,7 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
143
137
  onPressOut: press.onPressOut,
144
138
  android_ripple: androidRipple,
145
139
  style: pressableStyle,
146
- children: /*#__PURE__*/_jsxs(Animated.View, {
140
+ children: /*#__PURE__*/_jsxs(Reanimated.View, {
147
141
  testID: testID ? `${testID}-option-${option.value}-content` : undefined,
148
142
  style: contentStyle,
149
143
  children: [option.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
@@ -162,7 +156,7 @@ const ComboboxOptionRow = /*#__PURE__*/memo(function ComboboxOptionRow({
162
156
  style: descriptionStyle,
163
157
  children: option.description
164
158
  })]
165
- }), selected && /*#__PURE__*/_jsx(Animated.View, {
159
+ }), selected && /*#__PURE__*/_jsx(Reanimated.View, {
166
160
  testID: testID ? `${testID}-option-${option.value}-check` : undefined,
167
161
  style: checkStyle,
168
162
  children: /*#__PURE__*/_jsx(Icon, {
@@ -459,12 +453,13 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
459
453
  style: backdropStyle,
460
454
  onPress: closeSheet
461
455
  }), /*#__PURE__*/_jsx(View, {
462
- style: overlayStyle,
463
- pointerEvents: "box-none",
456
+ style: [overlayStyle, {
457
+ pointerEvents: "box-none"
458
+ }],
464
459
  children: /*#__PURE__*/_jsx(Reanimated.View, {
460
+ ref: sheetRef,
465
461
  entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
466
- children: /*#__PURE__*/_jsxs(Animated.View, {
467
- ref: sheetRef,
462
+ children: /*#__PURE__*/_jsxs(Reanimated.View, {
468
463
  style: sheetStyle,
469
464
  children: [/*#__PURE__*/_jsxs(View, {
470
465
  style: searchRowStyle,
@@ -525,8 +520,9 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
525
520
  // Web portal opt-in — see Modal.tsx's/Select.tsx's identical branch + ModalPortalContext.ts. Every
526
521
  // other case (native, or web with no ModalPortalProvider) renders through RN's own <Modal> below.
527
522
  const menu = Platform.OS === "web" && portalContainer != null ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
528
- style: StyleSheet.absoluteFill,
529
- pointerEvents: "box-none",
523
+ style: [StyleSheet.absoluteFill, {
524
+ pointerEvents: "box-none"
525
+ }],
530
526
  children: sheet
531
527
  }), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
532
528
  visible: open,
@@ -562,9 +558,10 @@ export const Combobox = /*#__PURE__*/memo(function Combobox(props) {
562
558
  android_ripple: triggerRipple,
563
559
  style: fieldStyle,
564
560
  children: [showFocusRing && /*#__PURE__*/_jsx(View, {
565
- pointerEvents: "none",
566
561
  testID: testID ? `${testID}-focus-ring` : undefined,
567
- style: focusRingStyle
562
+ style: [focusRingStyle, {
563
+ pointerEvents: "none"
564
+ }]
568
565
  }), /*#__PURE__*/_jsxs(View, {
569
566
  style: fieldValueStyle,
570
567
  children: [singleSelectedOption?.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
@@ -25,11 +25,9 @@
25
25
  * this directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
26
26
  */
27
27
 
28
+ import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
28
29
  import { createThemedVariants } from "../../core/style/index.js";
29
30
  /** Same touch-target floor as Button/Select/Input (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
30
- export const MIN_TOUCH_TARGET = 44;
31
- const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
32
-
33
31
  /** No `size` prop (unlike Select/MultiSelect) — not part of this module's spec, and a search sheet's
34
32
  * proportions don't benefit from the sm/lg range those triggers offer. One fixed box, sized exactly
35
33
  * like Input's/Select's `md`, so a Combobox lines up with either in the same form. */
@@ -65,6 +63,7 @@ export const FILTER_DEBOUNCE_MS = 140;
65
63
  * Strips combining diacritical marks after Unicode NFD decomposition, so "José" and "jose" match the
66
64
  * same query. Lowercased last so the comparison is also case-insensitive.
67
65
  */
66
+ export { MIN_TOUCH_TARGET };
68
67
  export function normalizeForSearch(value) {
69
68
  return value.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
70
69
  }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=ComboboxProps.js.map
@@ -25,7 +25,7 @@ reuses directly, e.g. from `SearchBar`).
25
25
  | `__tests__/Combobox.keyboard.test.tsx` | Web keyboard: `aria-activedescendant` tracks the arrows, Enter selects, Space stays with the search field, Escape closes, trigger opens on Space. |
26
26
  | `__tests__/Combobox.filter.test.tsx` | The memoized filter matches `defaultComboboxFilter` exactly across diacritics/mixed case; a `filterFn` still runs per option. |
27
27
  | `__tests__/Combobox.layout.test.tsx` | `getItemLayout` is derived for uniform rows and absent as soon as one option has a `description`. |
28
- | `__tests__/Combobox.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): check-glyph and press feedback snap to their final values, and `Animated.timing` is never called. |
28
+ | `__tests__/Combobox.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): check-glyph and press feedback snap to their final values, with no tween scheduled. |
29
29
 
30
30
  ## Props
31
31
 
@@ -171,7 +171,7 @@ handler.
171
171
 
172
172
  Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-motion aware.
173
173
 
174
- - **Row press** — `usePressMotion(rowDisabled)`; the row's content `Animated.View` (which carries
174
+ - **Row press** — `usePressMotion(rowDisabled)`; the row's content `Reanimated.View` (which carries
175
175
  `comboboxRowStructure`, including the 44dp `minHeight`) scales/dips, while the `Pressable` keeps
176
176
  the `pressedRow` background. `scale` is a transform, so the row's hit area is unaffected.
177
177
  - **Check glyph** — fades in/out on selection change, but a row that mounts already-selected
@@ -180,14 +180,8 @@ Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-moti
180
180
  (the same flag `<Modal visible>` uses), so there is no second source of truth and no extra render
181
181
  per open/close. See `Select`/`MultiSelect` — all three pickers use this one gate.
182
182
 
183
- ## Modernization (v1.0.7)
183
+ ## Android
184
184
 
185
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
186
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
187
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
188
-
189
- - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
190
- - **Round 5 (Android parity)** — `android_ripple` (`borderless: false`) added to the trigger field
191
- (gated `!disabled`), the clear button, and each option row (gated `!rowDisabled`). The trigger
192
- field and clear button also gained `overflow: "hidden"` so their ripple clips to the field/button
193
- shape instead of escaping it.
185
+ `android_ripple` (`borderless: false`) on the trigger field (gated `!disabled`), the clear button and
186
+ each option row (gated `!rowDisabled`); the field and clear button set `overflow: "hidden"` so the
187
+ ripple clips to their shape. The backdrop scrim uses `MOTION_TRANSFORM.scrimOpacity`, aligned with `Modal`.
@@ -10,17 +10,17 @@
10
10
  */
11
11
 
12
12
  import { memo, useCallback, useEffect, useMemo, useRef } from "react";
13
- import { ActivityIndicator, Animated, Platform, Pressable, StyleSheet, TextInput, View } from "react-native";
13
+ import { ActivityIndicator, Platform, Pressable, StyleSheet, TextInput, View } from "react-native";
14
+ import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
14
15
  import { Icon } from "../../core/icon/index.js";
15
- import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
16
+ import { useMotion, useAnimatedValue } from "../../core/motion/index.js";
17
+ import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
16
18
  import { rippleColor } from "../../theme/platform/stateLayer.native.js";
17
19
  import { useTheme } from "../../theme/hooks.js";
18
20
  import { composerFieldStructure, composerInputStructure, composerSendStructure, composerStructure } from "./Composer.variants.js";
19
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
22
  const ICON_STROKE = 2;
21
23
  const ICON_SIZE = 18;
22
- const FOCUS_RING_WIDTH = 2;
23
- const FOCUS_RING_GAP = 2;
24
24
  const FIELD_STYLE = composerFieldStructure();
25
25
  /** Split out so the icon/spinner subtree survives the parent's per-keystroke `value` re-render. */
26
26
  const ComposerSend = /*#__PURE__*/memo(function ComposerSend({
@@ -77,11 +77,14 @@ export const Composer = /*#__PURE__*/memo(function Composer({
77
77
  }, [canSend, onSend]);
78
78
  const ringOpacity = useAnimatedValue(0);
79
79
  const ringAnimation = useRef(null);
80
+ const ringAnimatedStyle = useAnimatedStyle(() => ({
81
+ opacity: ringOpacity.value
82
+ }));
80
83
  const setRingVisible = useCallback(visible => {
81
84
  ringAnimation.current?.stop();
82
85
  const to = visible ? 1 : 0;
83
86
  if (!motion.enabled) {
84
- ringOpacity.setValue(to);
87
+ ringOpacity.value = to;
85
88
  return;
86
89
  }
87
90
  ringAnimation.current = motion.timing(ringOpacity, to, {
@@ -124,11 +127,10 @@ export const Composer = /*#__PURE__*/memo(function Composer({
124
127
  style: rootStyle,
125
128
  children: [/*#__PURE__*/_jsxs(View, {
126
129
  style: FIELD_STYLE,
127
- children: [/*#__PURE__*/_jsx(Animated.View, {
128
- pointerEvents: "none",
130
+ children: [/*#__PURE__*/_jsx(Reanimated.View, {
129
131
  testID: "composer-focus-ring",
130
- style: [focusRingStyle, {
131
- opacity: ringOpacity
132
+ style: [focusRingStyle, ringAnimatedStyle, {
133
+ pointerEvents: 'none'
132
134
  }]
133
135
  }), /*#__PURE__*/_jsx(TextInput, {
134
136
  testID: testID ? `${testID}-input` : undefined,
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=ComposerProps.js.map
@@ -11,6 +11,7 @@ whitespace-only.
11
11
  | `Composer.tsx` | The component, plus the internal memo'd `ComposerSend` child. |
12
12
  | `Composer.variants.ts` | Structural resolvers (root row, field wrapper, input, send circle). No colour resolver — every colour here is a single non-branching role lookup, read at the component. |
13
13
  | `index.ts` | Public surface: `Composer`, `ComposerProps`. |
14
+ | `__tests__/Composer.test.ts` | Pure: the structural resolvers and the send-enabled predicate. |
14
15
  | `__tests__/Composer.render.test.tsx` | Send fires with text present, stays inert when empty; focus-ring opacity on focus/blur/disabled/sending; web outline reset. |
15
16
 
16
17
  ## Props
@@ -21,7 +22,7 @@ whitespace-only.
21
22
  | `onChangeText` | `(text: string) => void` | — | Required. |
22
23
  | `onSend` | `() => void` | — | Required. Never fires while send is disabled. |
23
24
  | `placeholder` | `string` | `"Message"` | Falls back into the field's `accessibilityLabel`. |
24
- | `accessibilityLabel` | `string` | `placeholder` | Names the field. Previously absent `ComposerProps` exposed no label prop at all, so a consumer with more than one composer on screen (or a placeholder unsuited as a name) could not give it an accessible name. |
25
+ | `accessibilityLabel` | `string` | `placeholder` | Names the field. A placeholder disappears once there is a value, so a screen with more than one composer needs this to tell them apart. |
25
26
  | `disabled` | `boolean` | `false` | Blocks typing and sending. |
26
27
  | `sending` | `boolean` | `false` | Blocks typing and sending; shows the spinner. |
27
28
  | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
@@ -31,7 +32,7 @@ whitespace-only.
31
32
 
32
33
  - **Focus ring (WCAG 2.4.7 / 2.4.11).** Same offset-ring pattern as Input: a `border.focus` ring
33
34
  2px wide, 2px outside the field, crossfaded on the field's `onFocus`/`onBlur` through
34
- `useMotion()`. It is always mounted at opacity 0 (`testID="composer-focus-ring"`,
35
+ `useMotion()` on a Reanimated node. It is always mounted at opacity 0 (`testID="composer-focus-ring"`,
35
36
  `pointerEvents="none"`) and never raised while `disabled` or `sending`. The ring is an absolutely
36
37
  positioned sibling of the `TextInput` inside a `composerFieldStructure` wrapper — that wrapper
37
38
  carries the row's `flex: 1`.
@@ -69,7 +70,6 @@ controlled), so:
69
70
  not an object, so it needs no memo of its own.
70
71
  - `ComposerSend` reads `useTheme()` itself rather than taking a `theme` prop.
71
72
 
72
- - **Round 2 visual** radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
73
- - **Round 5 (Android parity)** the round send button now gets `android_ripple` (`borderless: true`,
74
- matching its circular shape), gated on `Platform.OS === "android" && canSend` so a disabled send
75
- button shows no ripple.
73
+ - The round send button takes `android_ripple` (`borderless: true`, matching its circular shape),
74
+ gated on `Platform.OS === "android" && canSend`, so a disabled send button shows no ripple.
75
+
@@ -6,9 +6,13 @@
6
6
  */
7
7
 
8
8
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
9
- import { AccessibilityInfo, Animated, Platform, Pressable, Text, View } from "react-native";
9
+ import { AccessibilityInfo, Platform, Pressable, Text, View } from "react-native";
10
+ import Reanimated from "react-native-reanimated";
11
+ import { useReducedMotion } from "../../core/a11y/index.js";
12
+ import { useHaptics } from "../../core/haptics/index.js";
10
13
  import { Icon } from "../../core/icon/index.js";
11
14
  import { usePressMotion } from "../../core/motion/index.js";
15
+ import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
12
16
  import { rippleColor } from "../../theme/platform/stateLayer.native.js";
13
17
  import { useTheme } from "../../theme/hooks.js";
14
18
  import { COPY_BUTTON_SIZES, copyButtonMenuRowStructure, copyButtonOutlineStructure, COPY_FEEDBACK_MS, resolveCopyButtonColors, writeClipboard } from "./CopyButton.variants.js";
@@ -16,8 +20,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
20
  const ICON_STROKE = 2;
17
21
  // The focus ring sits a small gap OUTSIDE the control, on the canvas, because `border.focus` is the
18
22
  // role token proven ≥ 3:1 against the canvas (WCAG 2.4.11) — drawn over a fill it could fail.
19
- const FOCUS_RING_WIDTH = 2;
20
- const FOCUS_RING_GAP = 2;
23
+
21
24
  export const CopyButton = /*#__PURE__*/memo(function CopyButton({
22
25
  value,
23
26
  variant = "icon",
@@ -31,6 +34,8 @@ export const CopyButton = /*#__PURE__*/memo(function CopyButton({
31
34
  }) {
32
35
  const theme = useTheme();
33
36
  const press = usePressMotion();
37
+ const haptics = useHaptics();
38
+ const reducedMotion = useReducedMotion();
34
39
  const colors = resolveCopyButtonColors(theme.colors);
35
40
  const [status, setStatus] = useState("idle");
36
41
  // Keyboard / external-keyboard / assistive-tech focus (no-op on pure touch, correct everywhere else).
@@ -47,14 +52,17 @@ export const CopyButton = /*#__PURE__*/memo(function CopyButton({
47
52
  // The label swap lands on a control nothing is focused on, so no reader would ever read it —
48
53
  // this imperative call reaches VoiceOver and TalkBack (same reason as `Toast`'s `show()`).
49
54
  AccessibilityInfo.announceForAccessibility(ok ? copiedLabel : failedLabel);
50
- if (ok) onCopy?.(value);
55
+ if (ok) {
56
+ if (!reducedMotion) haptics.notification("success");
57
+ onCopy?.(value);
58
+ }
51
59
  if (timer.current !== null) clearTimeout(timer.current);
52
60
  timer.current = null;
53
61
  // WCAG 2.2.1: only the SUCCESS state self-clears. A failure is an error the user has to act on,
54
62
  // and reverting the label 1.5s later took the only notice of it off the screen — so the failed
55
63
  // state now stays until the next press (which re-runs this and re-decides).
56
64
  if (ok) timer.current = setTimeout(() => setStatus("idle"), COPY_FEEDBACK_MS);
57
- }, [value, onCopy, copiedLabel, failedLabel]);
65
+ }, [value, onCopy, copiedLabel, failedLabel, reducedMotion, haptics]);
58
66
  const onFocus = useCallback(() => setFocused(true), []);
59
67
  const onBlur = useCallback(() => setFocused(false), []);
60
68
  const focusRingStyle = useMemo(() => ({
@@ -159,7 +167,7 @@ export const CopyButton = /*#__PURE__*/memo(function CopyButton({
159
167
  borderless: true
160
168
  } : undefined,
161
169
  style: style,
162
- children: [focusRing, /*#__PURE__*/_jsx(Animated.View, {
170
+ children: [focusRing, /*#__PURE__*/_jsx(Reanimated.View, {
163
171
  testID: "copy-button-glyph",
164
172
  style: press.style,
165
173
  children: /*#__PURE__*/_jsx(Icon, {
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
3
4
  import { createThemedVariants } from "../../core/style/index.js";
5
+ export { MIN_TOUCH_TARGET };
4
6
  export const COPY_FEEDBACK_MS = 1500;
5
7
 
6
8
  /**
7
9
  * Same touch-target floor as `Button`/`Checkbox` (44dp — Apple HIG minimum, WCAG 2.5.5 AAA).
8
10
  * Duplicated rather than imported — modules never import across `src/modules/*`.
9
11
  */
10
- export const MIN_TOUCH_TARGET = 44;
11
- const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
12
+
12
13
  /**
13
14
  * CopyButton-specific dimensions. Kept a plain constant — no theme dependency — so the hit-target
14
15
  * test can assert `iconSize + 2·hitSlop ≥ 44` without a provider, same as `BUTTON_SIZES`.
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=CopyButtonProps.js.map
@@ -1,4 +1,4 @@
1
- # copy-button/
1
+ # copy-button/ — a copy-to-clipboard control in icon, button or menu-item form
2
2
 
3
3
  Copies `value` to the clipboard. Variants: `icon`, `button`, `menu-item`. Brief copied state with check icon.
4
4
 
@@ -23,7 +23,9 @@ Copies `value` to the clipboard. Variants: `icon`, `button`, `menu-item`. Brief
23
23
  | `copiedLabel` | `string` | `Copied!` |
24
24
  | `failedLabel` | `string` | `Copy failed` |
25
25
  | `size` | `sm \| md` | `sm` |
26
- | `onCopy` | `(value) => void` | — |
26
+ | `onCopy` | `(value: string) => void` | — |
27
+ | `style` | `LayoutStyle` | — |
28
+ | `testID` | `string` | — |
27
29
 
28
30
  Native clipboard uses optional `@react-native-clipboard/clipboard`; web uses `navigator.clipboard`.
29
31
  A failed write is **not** silent: the control switches to `failedLabel` with the `triangle-alert`
@@ -31,17 +33,14 @@ glyph in `status.danger.text` and announces it. `onCopy` fires only on success.
31
33
 
32
34
  **WCAG 2.2.1 — only a successful copy self-clears.** `COPY_FEEDBACK_MS` (1500ms) times out the
33
35
  `copied` state back to idle; a `failed` state does not arm that timer at all and stays up until the
34
- next press re-decides it. Previously both states shared the same timer, so "Copy failed" the
35
- message a user most needs to actually read — vanished the fastest of anything in this catalogue.
36
- **Consumer-visible change:** a failed copy no longer reverts to the idle label on its own; the
37
- control now visibly stays in the failed state (icon + label + `border.danger` on the `button`
38
- variant) until the user retries.
36
+ next press re-decides it: a failed copy never reverts to the idle label on its own, it stays in the
37
+ failed state (icon + label + `border.danger` on the `button` variant) until the user retries.
39
38
 
40
39
  ## Accessibility contract (WCAG)
41
40
 
42
41
  - `accessibilityRole="button"`; the accessible name is the current label (`label` → `copiedLabel` /
43
42
  `failedLabel` while the feedback state is showing).
44
- - **2.2.1 (timing adjustable)** — see "Props" above: a failed copy no longer times out.
43
+ - **2.2.1 (timing adjustable)** — see "Props" above: a failed copy never times out.
45
44
  - **4.1.3 (status messages)** — the copy result is announced with
46
45
  `AccessibilityInfo.announceForAccessibility`, the cross-platform imperative API (VoiceOver +
47
46
  TalkBack), same call site pattern as `Toast`'s `show()`. The label swap alone announces nothing:
@@ -72,7 +71,6 @@ variant) until the user retries.
72
71
 
73
72
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`).
74
73
 
75
- - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
76
- - **Round 5 (Android parity)** all three variants get `android_ripple`: `icon` (round, icon-only)
77
- is `borderless: true`; `button` and `menu-item` are `borderless: false` and also gained
78
- `overflow: "hidden"` so the ripple clips to the row/outline shape.
74
+ All three variants take `android_ripple`: `icon` (round, icon-only) is `borderless: true`; `button`
75
+ and `menu-item` are `borderless: false` with `overflow: "hidden"` so the ripple clips to their shape.
76
+ A successful copy fires `haptics.notification("success")`, skipped while reduce-motion is on.
@@ -18,6 +18,7 @@ import { HEADING_LEVEL, HeadingView } from "../../core/heading/index.js";
18
18
  import { Icon } from "../../core/icon/index.js";
19
19
  import { usePressState } from "../../core/motion/usePressState.js";
20
20
  import { VirtualList } from "../../core/list/index.js";
21
+ import { renderNodeSlot } from "../../core/slot/index.js";
21
22
  import { rippleColor, stateLayerScrim } from "../../theme/platform/stateLayer.native.js";
22
23
  import { useTheme } from "../../theme/hooks.js";
23
24
  import { Checkbox } from "../checkbox/index.js";
@@ -313,9 +314,10 @@ const DataTableHeaderCell = /*#__PURE__*/memo(function DataTableHeaderCell({
313
314
  onBlur: handleBlur,
314
315
  style: spec.cellStyle,
315
316
  children: [focused && /*#__PURE__*/_jsx(View, {
316
- pointerEvents: "none",
317
317
  testID: spec.testID === undefined ? undefined : `${spec.testID}-focus-ring`,
318
- style: focusRingStyle
318
+ style: [focusRingStyle, {
319
+ pointerEvents: "none"
320
+ }]
319
321
  }), label, /*#__PURE__*/_jsx(Icon, {
320
322
  name: resolveSortIcon(spec.key, sortBy, sortDirection),
321
323
  size: DATA_TABLE_SORT_ICON_SIZE,
@@ -373,7 +375,7 @@ function DataTableCellInner({
373
375
  if (spec.render) {
374
376
  return /*#__PURE__*/_jsx(View, {
375
377
  style: spec.cellStyle,
376
- children: spec.render(row, index)
378
+ children: renderNodeSlot(spec.render(row, index), textStyle)
377
379
  });
378
380
  }
379
381
 
@@ -469,12 +471,14 @@ function DataTableRowInner({
469
471
  } : undefined,
470
472
  style: pressableStyle,
471
473
  children: [/*#__PURE__*/_jsx(Animated.View, {
472
- pointerEvents: "none",
473
- style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
474
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
475
+ pointerEvents: "none"
476
+ }]
474
477
  }), focused && /*#__PURE__*/_jsx(View, {
475
- pointerEvents: "none",
476
478
  testID: testID === undefined ? undefined : `${testID}-focus-ring`,
477
- style: focusRingStyle
479
+ style: [focusRingStyle, {
480
+ pointerEvents: "none"
481
+ }]
478
482
  }), cells]
479
483
  });
480
484
  }
@@ -16,15 +16,15 @@ import { StyleSheet } from "react-native";
16
16
  * directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
17
17
  */
18
18
 
19
+ import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
19
20
  import { createThemedVariants, createVariants } from "../../core/style/index.js";
21
+ export { MIN_TOUCH_TARGET };
20
22
 
21
23
  /** The three glyphs a header can show. A literal union rather than an `IconName` import, so this
22
24
  * file stays free of the icon registry (which pulls `lucide` at runtime); `Icon`'s own `name` prop
23
25
  * still type-checks these against the closed `IconName` set at the call site. */
24
26
 
25
27
  /** Same touch-target floor as Button/Select (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
26
- export const MIN_TOUCH_TARGET = 44;
27
-
28
28
  /** Header cells are sortable buttons, so the header is a direct 44dp target — never slop-expanded. */
29
29
  export const DATA_TABLE_HEADER_HEIGHT = MIN_TOUCH_TARGET;
30
30
  export const DATA_TABLE_DEFAULT_ROW_HEIGHT = 48;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=DataTableProps.js.map
@@ -1,7 +1,7 @@
1
1
  # data-table/ — a horizontally-scrollable, column-configured table
2
2
 
3
3
  `DataTable` renders column headers + rows for tabular data on a phone screen. Header and body live
4
- in ONE vertical `FlatList` (header as `ListHeaderComponent`, `stickyHeaderIndices={[0]}` for the
4
+ in ONE vertical `VirtualList` (header as `ListHeaderComponent`, `stickyHeaderIndices={[0]}` for the
5
5
  pin) nested inside a single horizontal `ScrollView` — header and rows are always the same width and
6
6
  scroll sideways together with no hand-rolled scroll-offset syncing between two separate lists.
7
7
 
@@ -13,7 +13,7 @@ never sorts `data` itself and never owns `selectedKeys` — it reports the next
13
13
 
14
14
  | File | Role |
15
15
  |------|------|
16
- | `DataTable.tsx` | The component. Header/row/skeleton/empty JSX built inline per render (Select's precedent), one `FlatList` wired with `stickyHeaderIndices`. |
16
+ | `DataTable.tsx` | The component. Header/row/skeleton/empty JSX built inline per render (Select's precedent), one `core/list` `VirtualList` wired with `stickyHeaderIndices`. |
17
17
  | `DataTable.variants.ts` | Pure resolvers (`resolveDataTableColors`, `nextSortDirection`, `resolveSortIcon`, `resolveSortAccessibilityLabel`, `toggleSelectionKey`, `resolveSelectAllState`, `resolveSelectAllSelection`, `resolveDefaultCellText`, `resolveRowBackground`, `resolveTotalWidth`) + themed structural resolvers. No React, no lucide. |
18
18
  | `index.ts` | Public surface: `DataTable`, `DataTableProps`, `DataTableColumn`, `DataTableAlign`, `DataTableSortDirection`. |
19
19
  | `__tests__/DataTable.test.ts` | Pure: WCAG contrast (all brands × modes) + sort/selection/formatting contracts. |
@@ -93,7 +93,7 @@ never sorts `data` itself and never owns `selectedKeys` — it reports the next
93
93
 
94
94
  ## Design decisions specific to this module
95
95
 
96
- - **One `FlatList`, not two scroll views kept in sync.** The header is that FlatList's own
96
+ - **One list, not two scroll views kept in sync.** The header is that `VirtualList`'s own
97
97
  `ListHeaderComponent`, pinned via `stickyHeaderIndices={[0]}` — RN's built-in mechanism for
98
98
  exactly this, so there is no manual `onScroll`/`scrollTo` offset-mirroring between a header list
99
99
  and a body list.
@@ -137,10 +137,5 @@ never sorts `data` itself and never owns `selectedKeys` — it reports the next
137
137
  Wrapped in `React.memo`; since the component itself is generic (`<T>`), `memo`'s erased type is
138
138
  restored with a documented `as typeof DataTableInner` cast. Header/row/skeleton/empty JSX are built
139
139
  inline per render, matching `Select`'s own precedent (its `renderItem` isn't extracted or memoized
140
- either) — real windowing for large datasets still comes from `FlatList` itself.
141
-
142
- ## Modernization (v1.0.7)
143
-
144
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
145
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
146
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
140
+ either) — real windowing for large datasets comes from `core/list`'s `VirtualList` (FlashList when
141
+ the app injected it, `FlatList` otherwise) with device-tier window sizing.
@@ -84,7 +84,7 @@ const CalendarDayCell = /*#__PURE__*/memo(function CalendarDayCell({
84
84
  backgroundColor: stateLayerScrim(theme.mode),
85
85
  borderRadius: concentric(theme.radii.md, theme.space[1]),
86
86
  borderCurve: "continuous"
87
- }), [theme.mode, theme.radii.md]);
87
+ }), [theme.mode, theme.radii.md, theme.space]);
88
88
  const cellStyle = useMemo(() => [cellStructure, {
89
89
  backgroundColor: resting.background,
90
90
  borderColor: resting.ring,
@@ -107,8 +107,9 @@ const CalendarDayCell = /*#__PURE__*/memo(function CalendarDayCell({
107
107
  onLayout: press.onLayout,
108
108
  style: cellStyle,
109
109
  children: [/*#__PURE__*/_jsx(Animated.View, {
110
- pointerEvents: "none",
111
- style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
110
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
111
+ pointerEvents: 'none'
112
+ }]
112
113
  }), /*#__PURE__*/_jsx(Text, {
113
114
  style: labelStyle,
114
115
  children: dayOfMonth
@@ -154,7 +155,7 @@ const QuickJumpCell = /*#__PURE__*/memo(function QuickJumpCell({
154
155
  backgroundColor: stateLayerScrim(theme.mode),
155
156
  borderRadius: concentric(theme.radii.md, theme.space[1]),
156
157
  borderCurve: "continuous"
157
- }), [theme.mode, theme.radii.md]);
158
+ }), [theme.mode, theme.radii.md, theme.space]);
158
159
  const cellStyle = useMemo(() => [cellStructure, {
159
160
  backgroundColor: resting.background,
160
161
  overflow: "hidden"
@@ -175,8 +176,9 @@ const QuickJumpCell = /*#__PURE__*/memo(function QuickJumpCell({
175
176
  onLayout: press.onLayout,
176
177
  style: cellStyle,
177
178
  children: [/*#__PURE__*/_jsx(Animated.View, {
178
- pointerEvents: "none",
179
- style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
179
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
180
+ pointerEvents: 'none'
181
+ }]
180
182
  }), /*#__PURE__*/_jsx(Text, {
181
183
  style: labelStyle,
182
184
  children: name
@@ -341,8 +343,9 @@ export const Calendar = /*#__PURE__*/memo(function Calendar({
341
343
  backgroundColor: chrome.headerPressed
342
344
  }],
343
345
  children: [/*#__PURE__*/_jsx(Animated.View, {
344
- pointerEvents: "none",
345
- style: [StyleSheet.absoluteFill, headerOverlayStyle, headerPress.overlayStyle]
346
+ style: [StyleSheet.absoluteFill, headerOverlayStyle, headerPress.overlayStyle, {
347
+ pointerEvents: 'none'
348
+ }]
346
349
  }), /*#__PURE__*/_jsx(Text, {
347
350
  numberOfLines: 1,
348
351
  style: headerLabelStyle,
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=CalendarProps.js.map
@@ -18,14 +18,15 @@
18
18
  * Asia/Beirut) — the single most common calendar bug class there is.
19
19
  */
20
20
 
21
+ import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
21
22
  import { createThemedVariants } from "../../core/style/index.js";
23
+ export { MIN_TOUCH_TARGET };
22
24
 
23
25
  /** `1` = Monday (the library default — the team and its consumer apps are India-based, where the
24
26
  * week starts on Monday), `0` = Sunday. */
25
27
 
26
28
  /** Same floor as Button/Select — 44dp (WCAG 2.5.5 / HIG). Duplicated, not imported: modules stay
27
29
  * isolated. */
28
- export const MIN_TOUCH_TARGET = 44;
29
30
  export const DAY_CELL_MIN_HEIGHT = MIN_TOUCH_TARGET;
30
31
  export const QUICK_JUMP_CELL_MIN_HEIGHT = MIN_TOUCH_TARGET;
31
32
  export const TIME_OPTION_HEIGHT = MIN_TOUCH_TARGET;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=DatePickerProps.js.map