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
@@ -20,9 +20,10 @@
20
20
  */
21
21
 
22
22
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
23
- import { Animated, StyleSheet, Text, View } from "react-native";
23
+ import { StyleSheet, Text, View } from "react-native";
24
+ import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
24
25
  import { useAnnounce } from "../../core/a11y/index.js";
25
- import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
26
+ import { useMotion, useAnimatedValue } from "../../core/motion/index.js";
26
27
  import { useTheme } from "../../theme/index.js";
27
28
  import { Button } from "../button/index.js";
28
29
  import { FILE_UPLOAD_PICK_ERROR_MESSAGE, FILE_UPLOAD_PROGRESS_LABEL, fileUploadContainerStructure, fileUploadProgressFillStructure, fileUploadProgressTrackStructure, fileUploadRowStructure, pickDocumentFile, pickImageFile, resolveFileUploadProgressFraction, resolveFileUploadProgressPercent, resolveFileUploadRemoveLabel, resolveFileUploadTriggerLabel } from "./FileUpload.variants.js";
@@ -81,7 +82,7 @@ const FileUploadProgress = /*#__PURE__*/memo(function FileUploadProgress({
81
82
  useEffect(() => {
82
83
  running.current?.stop();
83
84
  if (!motion.enabled) {
84
- scaleX.setValue(fraction);
85
+ scaleX.value = fraction;
85
86
  return undefined;
86
87
  }
87
88
  running.current = motion.timing(scaleX, fraction, {
@@ -94,12 +95,15 @@ const FileUploadProgress = /*#__PURE__*/memo(function FileUploadProgress({
94
95
  const trackStyle = useMemo(() => [fileUploadProgressTrackStructure(theme), {
95
96
  backgroundColor: theme.colors.bg.sunken
96
97
  }], [theme]);
97
- const fillStyle = useMemo(() => [fileUploadProgressFillStructure(), {
98
+ const fillStatic = useMemo(() => [fileUploadProgressFillStructure(), {
98
99
  backgroundColor: theme.colors.accent.solid,
100
+ transformOrigin: "left center"
101
+ }], [theme]);
102
+ const fillAnimatedStyle = useAnimatedStyle(() => ({
99
103
  transform: [{
100
- scaleX
104
+ scaleX: scaleX.value
101
105
  }]
102
- }], [theme, scaleX]);
106
+ }));
103
107
  return (
104
108
  /*#__PURE__*/
105
109
  // Flat `aria-value*`, not `accessibilityValue={{…}}`: react-native-web 0.21 drops the object, so
@@ -114,20 +118,28 @@ const FileUploadProgress = /*#__PURE__*/memo(function FileUploadProgress({
114
118
  "aria-valuemax": 100,
115
119
  "aria-valuenow": percent,
116
120
  style: trackStyle,
117
- children: /*#__PURE__*/_jsx(Animated.View, {
118
- pointerEvents: "none",
121
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
119
122
  testID: testID ? `${testID}-fill` : undefined,
120
- style: fillStyle
123
+ style: [fillStatic, fillAnimatedStyle, {
124
+ pointerEvents: 'none'
125
+ }]
121
126
  })
122
127
  })
123
128
  );
124
129
  });
130
+ function bytesToKB(bytes) {
131
+ return bytes / 1024;
132
+ }
125
133
  export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
126
134
  const {
127
135
  source,
128
136
  label,
129
137
  value = null,
130
138
  onChange,
139
+ values,
140
+ onValuesChange,
141
+ maxFiles,
142
+ maxSizeKB,
131
143
  size = "md",
132
144
  disabled = false,
133
145
  allowedMimeTypes,
@@ -136,11 +148,19 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
136
148
  style,
137
149
  testID
138
150
  } = props;
151
+ const multiMode = values !== undefined && onValuesChange !== undefined;
139
152
  const theme = useTheme();
140
153
  // Distinct from `value`: a pick attempt can fail (denied permission, or any other native error)
141
154
  // independently of whether a file was already selected — see `openPicker`'s catch block.
142
155
  const [pickError, setPickError] = useState(false);
143
156
  useAnnounce(pickError ? FILE_UPLOAD_PICK_ERROR_MESSAGE : undefined);
157
+ const acceptPick = useCallback(picked => {
158
+ if (maxSizeKB !== undefined && picked.size !== undefined && bytesToKB(picked.size) > maxSizeKB) {
159
+ setPickError(true);
160
+ return false;
161
+ }
162
+ return true;
163
+ }, [maxSizeKB]);
144
164
  const openPicker = useCallback(async () => {
145
165
  if (disabled) return;
146
166
  setPickError(false);
@@ -148,7 +168,15 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
148
168
  const picked = source === "image" ? await pickImageFile(allowsEditing) : await pickDocumentFile(allowedMimeTypes);
149
169
  // `picked` is `null` for a user cancel too — `onChange` must not fire then, or a voluntary
150
170
  // "never mind" would wipe out whatever was already selected.
151
- if (picked) onChange(picked);
171
+ if (!picked) return;
172
+ if (!acceptPick(picked)) return;
173
+ if (multiMode) {
174
+ const current = values ?? [];
175
+ if (maxFiles !== undefined && current.length >= maxFiles) return;
176
+ onValuesChange([...current, picked]);
177
+ return;
178
+ }
179
+ onChange(picked);
152
180
  } catch (error) {
153
181
  // A rejection (denied/undetermined permission, or any other native failure) is the one case
154
182
  // that DOES clear the value — the pick attempt genuinely failed, so the field can't claim to
@@ -156,14 +184,14 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
156
184
  // row below announces it, and — mirroring `PixelizeProvider`'s own dev-warning convention,
157
185
  // the only console usage in this codebase — a console warning names the likely cause for the
158
186
  // developer. Gated the identical way: skipped only when `__DEV__` is DEFINITELY false.
159
- onChange(null);
187
+ if (multiMode) onValuesChange([]);else onChange(null);
160
188
  setPickError(true);
161
189
  const isDefinitelyProd = typeof __DEV__ !== "undefined" && !__DEV__;
162
190
  if (!isDefinitelyProd) {
163
191
  console.warn("[pixelize-native-library] <FileUpload> couldn't open the picker — likely a denied " + "permission or missing platform config (Info.plist / AndroidManifest usage strings).", error);
164
192
  }
165
193
  }
166
- }, [disabled, source, allowsEditing, allowedMimeTypes, onChange]);
194
+ }, [disabled, source, allowsEditing, allowedMimeTypes, onChange, multiMode, values, onValuesChange, maxFiles, acceptPick]);
167
195
 
168
196
  // Stable wrapper so `Button`'s `onPress` reference doesn't churn every render — `openPicker`
169
197
  // itself is async and can't be passed directly (the promise must be discarded).
@@ -174,12 +202,19 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
174
202
  setPickError(false);
175
203
  onChange(null);
176
204
  }, [onChange]);
205
+ const handleRemoveAt = useCallback(index => {
206
+ if (!multiMode) return;
207
+ setPickError(false);
208
+ const next = [...(values ?? [])];
209
+ next.splice(index, 1);
210
+ onValuesChange(next);
211
+ }, [multiMode, onValuesChange, values]);
177
212
  const rootStyle = useMemo(() => [fileUploadContainerStructure(theme), style], [theme, style]);
178
213
  const errorStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
179
214
  fontSize: theme.fontSizes.xs,
180
215
  color: theme.colors.status.danger.text
181
216
  }], [theme]);
182
- const triggerLabel = useMemo(() => resolveFileUploadTriggerLabel(label, value), [label, value]);
217
+ const triggerLabel = useMemo(() => resolveFileUploadTriggerLabel(label, multiMode ? null : value), [label, value, multiMode]);
183
218
  return /*#__PURE__*/_jsxs(View, {
184
219
  testID: testID,
185
220
  style: rootStyle,
@@ -191,13 +226,19 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
191
226
  size: size,
192
227
  accessibilityLabel: triggerLabel,
193
228
  testID: testID ? `${testID}-trigger` : undefined
194
- }), value && /*#__PURE__*/_jsx(FileUploadRow, {
229
+ }), !multiMode && value ? /*#__PURE__*/_jsx(FileUploadRow, {
195
230
  name: value.name,
196
231
  disabled: disabled,
197
232
  onRemove: handleRemove,
198
233
  testID: testID ? `${testID}-row` : undefined,
199
234
  removeTestID: testID ? `${testID}-remove` : undefined
200
- }), progress !== undefined && /*#__PURE__*/_jsx(FileUploadProgress, {
235
+ }) : null, multiMode ? (values ?? []).map((file, index) => /*#__PURE__*/_jsx(FileUploadRow, {
236
+ name: file.name,
237
+ disabled: disabled,
238
+ onRemove: () => handleRemoveAt(index),
239
+ testID: testID ? `${testID}-row-${index}` : undefined,
240
+ removeTestID: testID ? `${testID}-remove-${index}` : undefined
241
+ }, `${file.uri}-${index}`)) : null, progress !== undefined && /*#__PURE__*/_jsx(FileUploadProgress, {
201
242
  progress: progress,
202
243
  testID: testID ? `${testID}-progress` : undefined
203
244
  }), pickError &&
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FileUploadProps.js.map
@@ -23,8 +23,13 @@ and the first that composes a sibling module (`Button`) instead of hand-rolling
23
23
  |------|------|---------|-------|
24
24
  | `source` | `"image" \| "document"` | — | Required, closed union — which native picker this instance uses. |
25
25
  | `label` | `string` | — | Required. Trigger's visible label (e.g. `"Upload photo"`). Constant regardless of selection — pressing it again re-opens the picker and replaces the file; the "selected file" row communicates state, not the label. |
26
- | `value` | `FileUploadResult \| null` | — | Controlled the currently selected file, or none. |
27
- | `onChange` | `(result: FileUploadResult \| null) => void` | — | Required. See "Three `onChange` outcomes" below. |
26
+ | `value` | `FileUploadResult \| null` | — | Controlled single-file selection (ignored when `values` is set). |
27
+ | `values` | `readonly FileUploadResult[]` | — | Multi-file controlled list; when set, `value` is ignored. |
28
+ | `onValuesChange` | `(files: readonly FileUploadResult[]) => void` | — | Required with `values` — fires on pick, remove, or failed pick (clears invalid entries per row). |
29
+ | `onChange` | `(result: FileUploadResult \| null) => void` | — | Required for single-file mode. See "Three `onChange` outcomes" below. |
30
+ | `maxFiles` | `number` | — | Caps how many files `values` may hold; trigger disabled at cap. |
31
+ | `maxSizeKB` | `number` | — | Rejects picks larger than this size (kilobytes). |
32
+ | `progress` | `number` | — | `0`–`100` upload progress display (consumer-driven; no upload logic here). |
28
33
  | `size` | `sm \| md \| lg` | `md` | Forwarded straight to the trigger `Button`'s own `size`. |
29
34
  | `disabled` | `boolean` | `false` | Forwarded to both `Button`s (trigger and remove). |
30
35
  | `allowedMimeTypes` | `string[]` | — | Document-only — forwarded as `DocumentPicker.getDocumentAsync`'s `type`. Ignored when `source` is `"image"`. |
@@ -108,7 +113,7 @@ indistinguishable from a voluntary cancel) can't be observed without a device-le
108
113
  accessible name.
109
114
  - **1.3.1** — the filename `Text` is purely visual; the composed name above is the only place a
110
115
  screen reader hears it, avoiding a double announcement.
111
- - **1.4.3** — filename text and the error message measured ≥ 4.5:1 against `bg.canvas`, all 8
116
+ - **1.4.3** — filename text and the error message measured ≥ 4.5:1 against `bg.canvas`, all 9
112
117
  brands × both modes.
113
118
  - **1.4.11** — the row's border (`border.interactive`) measured ≥ 3:1 against `bg.canvas`.
114
119
  - **2.5.5 / 2.5.8** — both interactive elements are `Button` instances, inheriting its ≥44dp
@@ -130,21 +135,12 @@ indistinguishable from a voluntary cancel) can't be observed without a device-le
130
135
 
131
136
  ## Known gaps
132
137
 
133
- - Single-file only — `allowsMultipleSelection`/`multiple` aren't exposed; a future
134
- `multiple?: boolean` would need `FileUploadResult[]`, a real API change, not a quiet bolt-on.
135
138
  - The `allowsEditing: true` legacy-picker permission-prompt ambiguity — see "Permissions" above.
136
- - No upload progress/stateout of scope by design; the consumer composes that around the `uri`.
139
+ - No upload/transfer logic `progress` only DISPLAYS a number the consumer drives from its own
140
+ transfer around the returned `uri`.
137
141
  - No thumbnail/preview of a selected image — the row shows only the file name, matching how
138
142
  `Input`/`Select` show text, not media. A future `previewImage?: boolean` is a reasonable v2.
139
143
 
140
144
  ## Performance
141
145
 
142
146
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). `openPicker` is `useCallback`'d; a new `handlePick` wrapper replaces the old inline `onPress={() => void openPicker()}` so the trigger `Button`'s `onPress` reference stays stable, and `handleRemove` is `useCallback`'d for the "remove" `Button` — both are this library's own `Button` instances, so stabilizing these closures is what keeps `Button`'s memo from being defeated.
143
-
144
- ## Modernization (v1.0.7)
145
-
146
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
147
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
148
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
149
-
150
- - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ import { memo, useMemo } from "react";
4
+ import { View } from "react-native";
5
+ import { renderNodeSlot } from "../../core/slot/index.js";
6
+ import { useTheme } from "../../theme/hooks.js";
7
+ import { Badge } from "../badge/index.js";
8
+ import { Button } from "../button/index.js";
9
+ import { SearchBar } from "../search-bar/index.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export const FilterBar = /*#__PURE__*/memo(function FilterBar({
12
+ searchValue,
13
+ onSearchChange,
14
+ searchPlaceholder = "Search",
15
+ onOpenFilters,
16
+ activeFilterCount = 0,
17
+ trailing,
18
+ style,
19
+ testID
20
+ }) {
21
+ const theme = useTheme();
22
+ const rowStyle = useMemo(() => ({
23
+ flexDirection: "row",
24
+ alignItems: "center",
25
+ gap: theme.space[2]
26
+ }), [theme]);
27
+ const trailingSlotStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
28
+ fontSize: theme.fontSizes.sm,
29
+ color: theme.colors.fg.muted
30
+ }], [theme]);
31
+ return /*#__PURE__*/_jsxs(View, {
32
+ testID: testID,
33
+ style: [rowStyle, style],
34
+ children: [/*#__PURE__*/_jsx(View, {
35
+ style: {
36
+ flex: 1
37
+ },
38
+ children: /*#__PURE__*/_jsx(SearchBar, {
39
+ value: searchValue,
40
+ onChangeText: onSearchChange,
41
+ placeholder: searchPlaceholder
42
+ })
43
+ }), onOpenFilters ? /*#__PURE__*/_jsxs(View, {
44
+ style: {
45
+ position: "relative"
46
+ },
47
+ children: [/*#__PURE__*/_jsx(Button, {
48
+ label: "Filters",
49
+ variant: "outline",
50
+ size: "sm",
51
+ onPress: onOpenFilters,
52
+ testID: testID ? `${testID}-filters` : undefined
53
+ }), activeFilterCount > 0 ? /*#__PURE__*/_jsx(View, {
54
+ style: {
55
+ position: "absolute",
56
+ top: -4,
57
+ right: -4,
58
+ pointerEvents: 'none'
59
+ },
60
+ children: /*#__PURE__*/_jsx(Badge, {
61
+ label: String(activeFilterCount),
62
+ size: "sm"
63
+ })
64
+ }) : null]
65
+ }) : null, renderNodeSlot(trailing, trailingSlotStyle)]
66
+ });
67
+ });
68
+ //# sourceMappingURL=FilterBar.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FilterBarProps.js.map
@@ -0,0 +1,16 @@
1
+ # filter-bar/ — a toolbar row pairing a search field with a filters trigger
2
+
3
+ Toolbar row: a flexed `SearchBar`, an optional "Filters" `Button` carrying a count `Badge`, then a
4
+ trailing slot. Pairs with `filter-sheet`, which owns the panel the trigger opens.
5
+
6
+ ## Props
7
+
8
+ | Prop | Type | Default | Notes |
9
+ |------|------|---------|-------|
10
+ | `searchValue` / `onSearchChange` | `string` / `(value: string) => void` | — | Required. Controlled. |
11
+ | `searchPlaceholder` | `string` | `"Search"` | |
12
+ | `onOpenFilters` | `() => void` | — | Omit → no filters trigger renders at all. |
13
+ | `activeFilterCount` | `number` | `0` | `> 0` pins a `sm` `Badge` to the trigger's corner. |
14
+ | `trailing` | `ReactNode` | — | Rendered through `renderNodeSlot`. |
15
+ | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
16
+ | `testID` | `string` | — | Seeds `${testID}-filters` on the trigger. |
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FilterBar } from "./FilterBar.js";
4
+ //# sourceMappingURL=index.js.map
@@ -16,7 +16,8 @@
16
16
  */
17
17
 
18
18
  import { memo, useMemo } from "react";
19
- import { Animated, Platform, Pressable, Text, View } from "react-native";
19
+ import { Platform, Pressable, Text, View } from "react-native";
20
+ import Reanimated from "react-native-reanimated";
20
21
  import { Icon } from "../../core/icon/index.js";
21
22
  import { usePressMotion } from "../../core/motion/index.js";
22
23
  import { rippleColor } from "../../theme/platform/stateLayer.native.js";
@@ -84,7 +85,7 @@ export const FilterChip = /*#__PURE__*/memo(function FilterChip({
84
85
  style: [chipStyle, {
85
86
  overflow: "hidden"
86
87
  }, style],
87
- children: /*#__PURE__*/_jsx(Animated.View, {
88
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
88
89
  style: press.style,
89
90
  children: content
90
91
  })
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FilterChipProps.js.map
@@ -22,7 +22,7 @@
22
22
  */
23
23
 
24
24
  import { memo, useCallback, useEffect, useRef, useState } from "react";
25
- import { Animated } from "react-native";
25
+ import Reanimated, { FadeInDown, FadeOut, LinearTransition, ReduceMotion } from "react-native-reanimated";
26
26
  import { useEnterExit } from "../../core/motion/index.js";
27
27
  import { Drawer } from "../drawer/index.js";
28
28
  import { FilterSheetBody } from "./FilterSheetBody.js";
@@ -84,19 +84,24 @@ export const FilterSheet = /*#__PURE__*/memo(function FilterSheet({
84
84
  visible: visible,
85
85
  onRequestClose: handleDismiss,
86
86
  testID: testID,
87
- children: /*#__PURE__*/_jsx(Animated.View, {
88
- style: reveal.style,
89
- children: /*#__PURE__*/_jsx(FilterSheetBody, {
90
- dimensions: dimensions,
91
- staged: staged,
92
- onQuickToggle: handleQuickToggle,
93
- onDimensionChange: handleDimensionChange,
94
- onApply: handleApply,
95
- onReset: onReset !== undefined ? handleReset : undefined,
96
- title: title,
97
- applyLabel: applyLabel,
98
- resetLabel: resetLabel,
99
- testID: testID
87
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
88
+ entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
89
+ exiting: FadeOut.reduceMotion(ReduceMotion.System),
90
+ layout: LinearTransition.reduceMotion(ReduceMotion.System),
91
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
92
+ style: reveal.style,
93
+ children: /*#__PURE__*/_jsx(FilterSheetBody, {
94
+ dimensions: dimensions,
95
+ staged: staged,
96
+ onQuickToggle: handleQuickToggle,
97
+ onDimensionChange: handleDimensionChange,
98
+ onApply: handleApply,
99
+ onReset: onReset !== undefined ? handleReset : undefined,
100
+ title: title,
101
+ applyLabel: applyLabel,
102
+ resetLabel: resetLabel,
103
+ testID: testID
104
+ })
100
105
  })
101
106
  })
102
107
  });
@@ -17,20 +17,19 @@
17
17
  * only `react-native`'s `StyleSheet`, as `core/style` does).
18
18
  */
19
19
 
20
+ import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
20
21
  import { removeAccessibilityLabel } from "../../core/a11y/labels.js";
21
22
  import { createThemedVariants } from "../../core/style/index.js";
22
23
 
23
24
  /** Same touch-target floor as every interactive control in this library (44dp — Apple HIG minimum,
24
25
  * WCAG 2.5.5 AAA). */
25
- export const MIN_TOUCH_TARGET = 44;
26
- const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
27
-
28
26
  /** The sheet's scrollable dimension-list cap — a fraction of the window, capped at an absolute
29
27
  * maximum, the same approximation `resolveOverflowSheetHeight` uses for BottomNav's own sheet. The
30
28
  * title header and the Apply/Reset footer render OUTSIDE this cap so they stay visible regardless
31
29
  * of how many dimensions a consumer supplies. */
32
30
  export const FILTER_SHEET_BODY_HEIGHT_RATIO = 0.5;
33
31
  export const FILTER_SHEET_BODY_MAX_HEIGHT = 420;
32
+ export { MIN_TOUCH_TARGET };
34
33
  export function resolveFilterSheetBodyHeight(windowHeight) {
35
34
  return Math.min(windowHeight * FILTER_SHEET_BODY_HEIGHT_RATIO, FILTER_SHEET_BODY_MAX_HEIGHT);
36
35
  }
@@ -19,8 +19,8 @@
19
19
  */
20
20
 
21
21
  import { memo, useCallback, useMemo, useState } from "react";
22
- import { Animated, Platform, Pressable, StyleSheet, Text, useWindowDimensions, View } from "react-native";
23
- import Reanimated, { LinearTransition, ReduceMotion } from "react-native-reanimated";
22
+ import { Platform, Pressable, StyleSheet, Text, useWindowDimensions, View } from "react-native";
23
+ import Reanimated, { FadeInDown, FadeOut, LinearTransition, ReduceMotion } from "react-native-reanimated";
24
24
  import { useTheme } from "../../theme/hooks.js";
25
25
  import { rippleColor } from "../../theme/platform/stateLayer.native.js";
26
26
  import { VirtualList } from "../../core/list/index.js";
@@ -140,12 +140,17 @@ const DimensionSection = /*#__PURE__*/memo(function DimensionSection({
140
140
  testID: controlTestID
141
141
  })
142
142
  }], [dimension, value, handleChange, controlTestID]);
143
- return /*#__PURE__*/_jsx(Accordion, {
144
- type: "single",
145
- items: items,
146
- value: expanded ? dimension.key : "",
147
- onValueChange: onOpenChange,
148
- testID: testID ? `${testID}-accordion` : undefined
143
+ return /*#__PURE__*/_jsx(Reanimated.View, {
144
+ layout: LinearTransition.reduceMotion(ReduceMotion.System),
145
+ entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
146
+ exiting: FadeOut.reduceMotion(ReduceMotion.System),
147
+ children: /*#__PURE__*/_jsx(Accordion, {
148
+ type: "single",
149
+ items: items,
150
+ value: expanded ? dimension.key : "",
151
+ onValueChange: onOpenChange,
152
+ testID: testID ? `${testID}-accordion` : undefined
153
+ })
149
154
  });
150
155
  });
151
156
  /**
@@ -253,14 +258,19 @@ const QuickChip = /*#__PURE__*/memo(function QuickChip({
253
258
  onPressOut: press.onPressOut,
254
259
  android_ripple: androidRipple,
255
260
  style: chipStyle,
256
- children: /*#__PURE__*/_jsx(Animated.View, {
257
- style: [structure, {
258
- backgroundColor: colors.background,
259
- borderColor: colors.border
260
- }, press.style],
261
- children: /*#__PURE__*/_jsx(Text, {
262
- style: labelStyle,
263
- children: label
261
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
262
+ entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
263
+ exiting: FadeOut.reduceMotion(ReduceMotion.System),
264
+ layout: LinearTransition.reduceMotion(ReduceMotion.System),
265
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
266
+ style: [structure, {
267
+ backgroundColor: colors.background,
268
+ borderColor: colors.border
269
+ }, press.style],
270
+ children: /*#__PURE__*/_jsx(Text, {
271
+ style: labelStyle,
272
+ children: label
273
+ })
264
274
  })
265
275
  })
266
276
  });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=FilterSheetProps.js.map
@@ -129,17 +129,8 @@ never a migration.
129
129
  already showing — this is the library's existing, tested `MultiSelect` composed as-is (per
130
130
  CLAUDE.md's component decision order), not a new modal-stacking mechanism built for this module.
131
131
 
132
- ## Modernization (v1.0.7)
133
-
134
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
135
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
136
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
137
-
138
- - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
139
- - **Round 5 (Android parity)** — `FilterChip` and the quick-chip (`QuickChip`) both gained
140
- `android_ripple` (`borderless: false`). `FilterChip` was restructured so its border/radius style
141
- lives on the `Pressable` itself (matching `Chip`'s precedent) rather than an inner `Animated.View`,
142
- with `overflow: "hidden"` added so the ripple clips to the chip shape. `QuickChip`'s `Pressable`
143
- gained its own matching `borderRadius: theme.radii.full` + `overflow: "hidden"` for the same
144
- reason — the pill radius otherwise lives only on its inner `Animated.View`, which the ripple (drawn
145
- on the `Pressable`) doesn't clip against.
132
+ ## Android ripple
133
+
134
+ Both `FilterChip` and the private `QuickChip` carry `android_ripple` (`borderless: false`) on the
135
+ `Pressable` itself, which is also where their border/radius and `overflow: "hidden"` live a radius
136
+ that sits only on an inner `Animated.View` does not clip a ripple drawn on the `Pressable`.
@@ -92,13 +92,15 @@ export const FolderRow = /*#__PURE__*/memo(function FolderRow({
92
92
  } : undefined,
93
93
  style: pressableStyle,
94
94
  children: [/*#__PURE__*/_jsx(Animated.View, {
95
- pointerEvents: "none",
96
95
  testID: testID === undefined ? undefined : `${testID}-press-overlay`,
97
- style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
96
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
97
+ pointerEvents: 'none'
98
+ }]
98
99
  }), focused && /*#__PURE__*/_jsx(View, {
99
- pointerEvents: "none",
100
100
  testID: testID === undefined ? undefined : `${testID}-focus-ring`,
101
- style: focusRingStyle
101
+ style: [focusRingStyle, {
102
+ pointerEvents: 'none'
103
+ }]
102
104
  }), body]
103
105
  });
104
106
  });
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FolderRowProps.js.map
@@ -1,11 +1,12 @@
1
- # folder-row/
1
+ # folder-row/ — a single file-browser row for a consumer-owned list
2
2
 
3
3
  A file-browser row. `FolderRow` renders ONE leaf row: leading icon, title, optional subtitle, optional trailing meta
4
4
  text. There is no internal list — consumers render hundreds of these inside their own
5
5
  `FlatList`/`VirtualList`, so every cost in this file is multiplied by the row count.
6
6
 
7
- With `onPress` the root is a `Pressable` (pressed state swaps the background to `bg.sunken`);
8
- without it the root is a plain `View`. That is the only branch in the component.
7
+ With `onPress` the root is a `Pressable` (press feedback is `usePressState` scale plus a
8
+ `stateLayerScrim` overlay over an unchanged `bg.surface` fill) and a focus ring is drawn while
9
+ focused; without `onPress` the root is a plain, unfocusable `View`.
9
10
 
10
11
  ## Files
11
12
 
@@ -63,8 +64,8 @@ This row's per-render allocations are multiplied by the caller's row count, so:
63
64
  `StyleSheet.create`. No style object is rebuilt per render.
64
65
  - **No internal list** — nothing here to virtualize. Windowing is the caller's `FlatList`.
65
66
  - **No mount animation, ever.** A per-row enter animation would run during the caller's scroll.
66
- Press feedback uses `usePressState` (scale + state-layer overlay) plus the existing `bg.sunken`
67
- background swap.
67
+ Press feedback is `usePressState` alone (scale + state-layer overlay); the row's own fill never
68
+ changes.
68
69
 
69
70
  ## Known gaps
70
71
 
@@ -12,9 +12,10 @@
12
12
  */
13
13
 
14
14
  import { memo, useId, useMemo, useRef } from "react";
15
- import { Animated, Text, View } from "react-native";
15
+ import { Text, View } from "react-native";
16
16
  import { useAnnounce } from "../../core/a11y/index.js";
17
- import { useEnterExit } from "../../core/motion/index.js";
17
+ import { AnimatedText, useEnterExit } from "../../core/motion/index.js";
18
+ import { renderNodeSlot } from "../../core/slot/index.js";
18
19
  import { useTheme } from "../../theme/hooks.js";
19
20
  import { formFieldDescriptionId, formFieldMessageId, formFieldStructure, resolveFormFieldAccessibility, resolveFormFieldMessage, resolveFormFieldStatus } from "./FormField.variants.js";
20
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -67,6 +68,10 @@ export const FormField = /*#__PURE__*/memo(function FormField({
67
68
  fontSize: theme.fontSizes.xs,
68
69
  color: colors.description
69
70
  }], [theme, colors.description]);
71
+ const controlSlotStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
72
+ fontSize: theme.fontSizes.md,
73
+ color: theme.colors.fg.default
74
+ }], [theme]);
70
75
  const messageStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
71
76
  fontSize: theme.fontSizes.xs,
72
77
  color: colors.message
@@ -86,13 +91,13 @@ export const FormField = /*#__PURE__*/memo(function FormField({
86
91
  nativeID: formFieldDescriptionId(idPrefix),
87
92
  style: descriptionStyle,
88
93
  children: description
89
- }), children(control), messageMotion.mounted && lastMessage.current !== undefined &&
94
+ }), renderNodeSlot(children(control), controlSlotStyle), messageMotion.mounted && lastMessage.current !== undefined &&
90
95
  /*#__PURE__*/
91
96
  // No `accessibilityLiveRegion` (deliberate): it's Android-only, and `useAnnounce` above
92
97
  // already announces on both platforms — keeping both would double-announce on Android.
93
98
  // Hidden only once the message is gone: `lastMessage` outlives it for the exit tween, and a
94
99
  // stale error must not sit in the a11y tree while it fades.
95
- _jsx(Animated.Text, {
100
+ _jsx(AnimatedText, {
96
101
  nativeID: formFieldMessageId(idPrefix),
97
102
  accessibilityElementsHidden: message === undefined,
98
103
  importantForAccessibility: message === undefined ? "no-hide-descendants" : undefined,
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=FormFieldProps.js.map
@@ -94,10 +94,5 @@ accessibilityLabel={control.accessibilityLabel} />`.
94
94
  ## Performance
95
95
 
96
96
  Wrapped in `React.memo`. `formFieldStructure` is a themed resolver, so it compiles once per theme
97
- identity, not per render.
98
-
99
- ## Modernization (v1.0.7)
100
-
101
- - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
102
- - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
103
- - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
97
+ identity, not per render. The message line renders through `core/motion`'s `AnimatedText`, driven by
98
+ `useEnterExit`; a ref holds the last message on screen while the exit tween runs.