pixelize-native-library 1.0.6 → 1.2.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 (1052) hide show
  1. package/lib/module/core/MODULE.md +129 -36
  2. package/lib/module/core/a11y/MODULE.md +127 -4
  3. package/lib/module/core/a11y/announce.js +30 -0
  4. package/lib/module/core/a11y/announce.web.js +134 -0
  5. package/lib/module/core/a11y/index.js +81 -15
  6. package/lib/module/core/a11y/keyboard.js +42 -0
  7. package/lib/module/core/a11y/keyboard.web.js +229 -0
  8. package/lib/module/core/a11y/labels.js +24 -0
  9. package/lib/module/core/device/MODULE.md +47 -0
  10. package/lib/module/core/device/index.js +91 -0
  11. package/lib/module/core/heading/MODULE.md +38 -0
  12. package/lib/module/core/heading/index.js +45 -0
  13. package/lib/module/core/icon/Icon.js +37 -0
  14. package/lib/module/core/icon/MODULE.md +42 -8
  15. package/lib/module/core/icon/icons/arrow-down.js +10 -0
  16. package/lib/module/core/icon/icons/arrow-left.js +10 -0
  17. package/lib/module/core/icon/icons/arrow-right.js +10 -0
  18. package/lib/module/core/icon/icons/arrow-up.js +10 -0
  19. package/lib/module/core/icon/icons/at-sign.js +10 -0
  20. package/lib/module/core/icon/icons/bell.js +10 -0
  21. package/lib/module/core/icon/icons/bold.js +10 -0
  22. package/lib/module/core/icon/icons/building-2.js +10 -0
  23. package/lib/module/core/icon/icons/calendar.js +10 -0
  24. package/lib/module/core/icon/icons/chart-column.js +10 -0
  25. package/lib/module/core/icon/icons/check.js +10 -0
  26. package/lib/module/core/icon/icons/chevron-down.js +10 -0
  27. package/lib/module/core/icon/icons/chevron-left.js +10 -0
  28. package/lib/module/core/icon/icons/chevron-right.js +10 -0
  29. package/lib/module/core/icon/icons/chevron-up.js +10 -0
  30. package/lib/module/core/icon/icons/chevrons-left.js +10 -0
  31. package/lib/module/core/icon/icons/chevrons-right.js +10 -0
  32. package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
  33. package/lib/module/core/icon/icons/circle-alert.js +10 -0
  34. package/lib/module/core/icon/icons/circle-check.js +10 -0
  35. package/lib/module/core/icon/icons/clock.js +10 -0
  36. package/lib/module/core/icon/icons/code.js +10 -0
  37. package/lib/module/core/icon/icons/download.js +10 -0
  38. package/lib/module/core/icon/icons/external-link.js +10 -0
  39. package/lib/module/core/icon/icons/eye.js +10 -0
  40. package/lib/module/core/icon/icons/file-text.js +10 -0
  41. package/lib/module/core/icon/icons/filter.js +10 -0
  42. package/lib/module/core/icon/icons/flag.js +10 -0
  43. package/lib/module/core/icon/icons/folder.js +10 -0
  44. package/lib/module/core/icon/icons/heading-1.js +10 -0
  45. package/lib/module/core/icon/icons/heading-2.js +10 -0
  46. package/lib/module/core/icon/icons/heading-3.js +10 -0
  47. package/lib/module/core/icon/icons/image.js +10 -0
  48. package/lib/module/core/icon/icons/inbox.js +10 -0
  49. package/lib/module/core/icon/icons/info.js +10 -0
  50. package/lib/module/core/icon/icons/italic.js +10 -0
  51. package/lib/module/core/icon/icons/kanban.js +10 -0
  52. package/lib/module/core/icon/icons/layers.js +10 -0
  53. package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
  54. package/lib/module/core/icon/icons/layout-template.js +10 -0
  55. package/lib/module/core/icon/icons/life-buoy.js +10 -0
  56. package/lib/module/core/icon/icons/link.js +10 -0
  57. package/lib/module/core/icon/icons/list-checks.js +10 -0
  58. package/lib/module/core/icon/icons/list-ordered.js +10 -0
  59. package/lib/module/core/icon/icons/list-todo.js +10 -0
  60. package/lib/module/core/icon/icons/list.js +10 -0
  61. package/lib/module/core/icon/icons/log-out.js +10 -0
  62. package/lib/module/core/icon/icons/map.js +10 -0
  63. package/lib/module/core/icon/icons/message-square.js +10 -0
  64. package/lib/module/core/icon/icons/milestone.js +10 -0
  65. package/lib/module/core/icon/icons/minus.js +10 -0
  66. package/lib/module/core/icon/icons/more-horizontal.js +10 -0
  67. package/lib/module/core/icon/icons/paperclip.js +10 -0
  68. package/lib/module/core/icon/icons/pencil.js +10 -0
  69. package/lib/module/core/icon/icons/plus.js +10 -0
  70. package/lib/module/core/icon/icons/quote.js +10 -0
  71. package/lib/module/core/icon/icons/refresh-cw.js +10 -0
  72. package/lib/module/core/icon/icons/save.js +10 -0
  73. package/lib/module/core/icon/icons/search.js +10 -0
  74. package/lib/module/core/icon/icons/send.js +10 -0
  75. package/lib/module/core/icon/icons/settings.js +10 -0
  76. package/lib/module/core/icon/icons/share.js +10 -0
  77. package/lib/module/core/icon/icons/square-code.js +10 -0
  78. package/lib/module/core/icon/icons/star.js +10 -0
  79. package/lib/module/core/icon/icons/strikethrough.js +10 -0
  80. package/lib/module/core/icon/icons/tag.js +10 -0
  81. package/lib/module/core/icon/icons/trash.js +10 -0
  82. package/lib/module/core/icon/icons/triangle-alert.js +10 -0
  83. package/lib/module/core/icon/icons/underline.js +10 -0
  84. package/lib/module/core/icon/icons/upload.js +10 -0
  85. package/lib/module/core/icon/icons/user.js +10 -0
  86. package/lib/module/core/icon/icons/users.js +10 -0
  87. package/lib/module/core/icon/icons/x.js +10 -0
  88. package/lib/module/core/icon/index.js +4 -86
  89. package/lib/module/core/icon/names.js +2 -0
  90. package/lib/module/core/icon/resolve.js +158 -0
  91. package/lib/module/core/icon/types.js +4 -0
  92. package/lib/module/core/list/VirtualList.js +226 -0
  93. package/lib/module/core/list/index.js +4 -0
  94. package/lib/module/core/media/MediaImage.js +51 -0
  95. package/lib/module/core/media/expoImage.js +20 -0
  96. package/lib/module/core/media/index.js +6 -0
  97. package/lib/module/core/media/pickers.js +23 -0
  98. package/lib/module/core/motion/MODULE.md +101 -0
  99. package/lib/module/core/motion/config.js +112 -0
  100. package/lib/module/core/motion/index.js +7 -0
  101. package/lib/module/core/motion/presets.js +192 -0
  102. package/lib/module/core/motion/useAnimatedValue.js +19 -0
  103. package/lib/module/core/motion/useMotion.js +46 -0
  104. package/lib/module/core/style/index.js +2 -0
  105. package/lib/module/core/style/sx.js +76 -0
  106. package/lib/module/core/style/useThemedStyles.js +8 -0
  107. package/lib/module/index.js +70 -2
  108. package/lib/module/modules/accordion/Accordion.js +256 -87
  109. package/lib/module/modules/accordion/Accordion.variants.js +2 -4
  110. package/lib/module/modules/accordion/MODULE.md +35 -11
  111. package/lib/module/modules/alert-dialog/AlertDialog.js +1 -1
  112. package/lib/module/modules/alert-dialog/MODULE.md +11 -2
  113. package/lib/module/modules/app-bar/AppBar.js +179 -0
  114. package/lib/module/modules/app-bar/AppBar.variants.js +72 -0
  115. package/lib/module/modules/app-bar/MODULE.md +68 -0
  116. package/lib/module/modules/app-bar/index.js +10 -0
  117. package/lib/module/modules/avatar/Avatar.js +38 -18
  118. package/lib/module/modules/avatar/Avatar.variants.js +44 -3
  119. package/lib/module/modules/avatar/MODULE.md +37 -15
  120. package/lib/module/modules/avatar-group/AvatarGroup.js +77 -0
  121. package/lib/module/modules/avatar-group/AvatarGroup.variants.js +109 -0
  122. package/lib/module/modules/avatar-group/MODULE.md +28 -0
  123. package/lib/module/modules/avatar-group/index.js +10 -0
  124. package/lib/module/modules/badge/Badge.js +3 -2
  125. package/lib/module/modules/badge/Badge.variants.js +12 -2
  126. package/lib/module/modules/badge/MODULE.md +6 -0
  127. package/lib/module/modules/banner/Banner.js +135 -0
  128. package/lib/module/modules/banner/Banner.variants.js +118 -0
  129. package/lib/module/modules/banner/MODULE.md +113 -0
  130. package/lib/module/modules/banner/index.js +4 -0
  131. package/lib/module/modules/bottom-nav/BottomNav.js +38 -117
  132. package/lib/module/modules/bottom-nav/BottomNav.variants.js +93 -9
  133. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +123 -0
  134. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +146 -120
  135. package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
  136. package/lib/module/modules/bottom-nav/MODULE.md +45 -15
  137. package/lib/module/modules/bottom-sheet/BottomSheet.js +189 -0
  138. package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +49 -0
  139. package/lib/module/modules/bottom-sheet/MODULE.md +53 -0
  140. package/lib/module/modules/bottom-sheet/index.js +4 -0
  141. package/lib/module/modules/button/Button.js +98 -47
  142. package/lib/module/modules/button/Button.variants.js +12 -7
  143. package/lib/module/modules/button/MODULE.md +25 -3
  144. package/lib/module/modules/button-group/ButtonGroup.js +163 -55
  145. package/lib/module/modules/button-group/ButtonGroup.variants.js +30 -4
  146. package/lib/module/modules/button-group/MODULE.md +33 -7
  147. package/lib/module/modules/card/Card.js +10 -7
  148. package/lib/module/modules/card/MODULE.md +6 -0
  149. package/lib/module/modules/charts/BarChart.js +242 -0
  150. package/lib/module/modules/charts/BarList.js +129 -0
  151. package/lib/module/modules/charts/ChartLegend.js +154 -0
  152. package/lib/module/modules/charts/Charts.variants.js +582 -0
  153. package/lib/module/modules/charts/DonutChart.js +133 -0
  154. package/lib/module/modules/charts/LineChart.js +179 -0
  155. package/lib/module/modules/charts/MODULE.md +178 -0
  156. package/lib/module/modules/charts/PieChart.js +140 -0
  157. package/lib/module/modules/charts/Sparkline.js +80 -0
  158. package/lib/module/modules/charts/index.js +15 -0
  159. package/lib/module/modules/checkbox/Checkbox.js +114 -44
  160. package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
  161. package/lib/module/modules/checkbox/MODULE.md +35 -8
  162. package/lib/module/modules/chip/Chip.js +155 -0
  163. package/lib/module/modules/chip/Chip.variants.js +278 -0
  164. package/lib/module/modules/chip/ChipGroup.js +48 -0
  165. package/lib/module/modules/chip/MODULE.md +156 -0
  166. package/lib/module/modules/chip/index.js +13 -0
  167. package/lib/module/modules/combobox/Combobox.js +587 -0
  168. package/lib/module/modules/combobox/Combobox.variants.js +280 -0
  169. package/lib/module/modules/combobox/MODULE.md +183 -0
  170. package/lib/module/modules/combobox/comboboxKeys.js +19 -0
  171. package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
  172. package/lib/module/modules/combobox/index.js +13 -0
  173. package/lib/module/modules/composer/Composer.js +156 -0
  174. package/lib/module/modules/composer/Composer.variants.js +42 -0
  175. package/lib/module/modules/composer/MODULE.md +70 -0
  176. package/lib/module/modules/composer/index.js +4 -0
  177. package/lib/module/modules/copy-button/CopyButton.js +156 -0
  178. package/lib/module/modules/copy-button/CopyButton.variants.js +86 -0
  179. package/lib/module/modules/copy-button/MODULE.md +73 -0
  180. package/lib/module/modules/copy-button/index.js +4 -0
  181. package/lib/module/modules/data-table/DataTable.js +513 -0
  182. package/lib/module/modules/data-table/DataTable.variants.js +188 -0
  183. package/lib/module/modules/data-table/MODULE.md +145 -0
  184. package/lib/module/modules/data-table/index.js +10 -0
  185. package/lib/module/modules/date-picker/Calendar.js +368 -0
  186. package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
  187. package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
  188. package/lib/module/modules/date-picker/DatePicker.js +162 -0
  189. package/lib/module/modules/date-picker/DatePicker.variants.js +686 -0
  190. package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
  191. package/lib/module/modules/date-picker/MODULE.md +169 -0
  192. package/lib/module/modules/date-picker/PickerField.js +142 -0
  193. package/lib/module/modules/date-picker/PickerShell.js +132 -0
  194. package/lib/module/modules/date-picker/TimePicker.js +184 -0
  195. package/lib/module/modules/date-picker/index.js +14 -0
  196. package/lib/module/modules/divider/Divider.js +8 -7
  197. package/lib/module/modules/divider/MODULE.md +6 -0
  198. package/lib/module/modules/drawer/Drawer.js +140 -58
  199. package/lib/module/modules/drawer/Drawer.variants.js +3 -16
  200. package/lib/module/modules/drawer/MODULE.md +90 -118
  201. package/lib/module/modules/empty-state/EmptyState.js +32 -18
  202. package/lib/module/modules/empty-state/EmptyState.variants.js +9 -0
  203. package/lib/module/modules/empty-state/MODULE.md +25 -7
  204. package/lib/module/modules/fab/Fab.js +212 -0
  205. package/lib/module/modules/fab/Fab.variants.js +346 -0
  206. package/lib/module/modules/fab/FabGroup.js +334 -0
  207. package/lib/module/modules/fab/MODULE.md +181 -0
  208. package/lib/module/modules/fab/index.js +13 -0
  209. package/lib/module/modules/file-grid/FileGrid.js +149 -0
  210. package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
  211. package/lib/module/modules/file-grid/MODULE.md +12 -0
  212. package/lib/module/modules/file-grid/index.js +4 -0
  213. package/lib/module/modules/file-upload/FileUpload.js +124 -34
  214. package/lib/module/modules/file-upload/FileUpload.variants.js +50 -7
  215. package/lib/module/modules/file-upload/MODULE.md +22 -4
  216. package/lib/module/modules/filter-sheet/FilterChip.js +25 -19
  217. package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
  218. package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
  219. package/lib/module/modules/filter-sheet/FilterSheetBody.js +168 -82
  220. package/lib/module/modules/filter-sheet/MODULE.md +22 -1
  221. package/lib/module/modules/folder-row/FolderRow.js +132 -0
  222. package/lib/module/modules/folder-row/FolderRow.variants.js +49 -0
  223. package/lib/module/modules/folder-row/MODULE.md +71 -0
  224. package/lib/module/modules/folder-row/index.js +4 -0
  225. package/lib/module/modules/form-field/FormField.js +104 -0
  226. package/lib/module/modules/form-field/FormField.variants.js +88 -0
  227. package/lib/module/modules/form-field/MODULE.md +103 -0
  228. package/lib/module/modules/form-field/index.js +4 -0
  229. package/lib/module/modules/gantt/Gantt.js +218 -0
  230. package/lib/module/modules/gantt/Gantt.variants.js +141 -0
  231. package/lib/module/modules/gantt/MODULE.md +71 -0
  232. package/lib/module/modules/gantt/index.js +5 -0
  233. package/lib/module/modules/image-viewer/ImageViewer.js +235 -0
  234. package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
  235. package/lib/module/modules/image-viewer/MODULE.md +57 -0
  236. package/lib/module/modules/image-viewer/index.js +4 -0
  237. package/lib/module/modules/input/Input.js +106 -48
  238. package/lib/module/modules/input/Input.variants.js +18 -4
  239. package/lib/module/modules/input/MODULE.md +36 -6
  240. package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
  241. package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
  242. package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
  243. package/lib/module/modules/limit-reached-modal/index.js +11 -0
  244. package/lib/module/modules/list-item/ListItem.js +92 -0
  245. package/lib/module/modules/list-item/ListItem.variants.js +53 -0
  246. package/lib/module/modules/list-item/MODULE.md +53 -0
  247. package/lib/module/modules/list-item/index.js +10 -0
  248. package/lib/module/modules/markdown/MODULE.md +71 -0
  249. package/lib/module/modules/markdown/Markdown.js +183 -0
  250. package/lib/module/modules/markdown/Markdown.variants.js +73 -0
  251. package/lib/module/modules/markdown/index.js +11 -0
  252. package/lib/module/modules/markdown/parseMarkdown.js +153 -0
  253. package/lib/module/modules/menu/MODULE.md +45 -14
  254. package/lib/module/modules/menu/Menu.js +174 -65
  255. package/lib/module/modules/menu/Menu.variants.js +10 -0
  256. package/lib/module/modules/message-bubble/MODULE.md +38 -0
  257. package/lib/module/modules/message-bubble/MessageBubble.js +55 -0
  258. package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
  259. package/lib/module/modules/message-bubble/index.js +4 -0
  260. package/lib/module/modules/modal/MODULE.md +29 -3
  261. package/lib/module/modules/modal/Modal.js +72 -22
  262. package/lib/module/modules/more-items/MODULE.md +72 -0
  263. package/lib/module/modules/more-items/MoreItems.js +162 -0
  264. package/lib/module/modules/more-items/MoreItems.variants.js +80 -0
  265. package/lib/module/modules/more-items/index.js +4 -0
  266. package/lib/module/modules/multi-select/MODULE.md +85 -19
  267. package/lib/module/modules/multi-select/MultiSelect.js +217 -105
  268. package/lib/module/modules/multi-select/MultiSelect.variants.js +28 -5
  269. package/lib/module/modules/number-input/MODULE.md +39 -5
  270. package/lib/module/modules/number-input/NumberInput.js +41 -11
  271. package/lib/module/modules/number-input/NumberInput.variants.js +39 -5
  272. package/lib/module/modules/org-switcher/MODULE.md +121 -0
  273. package/lib/module/modules/org-switcher/OrgSwitcher.js +284 -0
  274. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +186 -0
  275. package/lib/module/modules/org-switcher/index.js +9 -0
  276. package/lib/module/modules/pagination/MODULE.md +163 -0
  277. package/lib/module/modules/pagination/Pagination.js +197 -0
  278. package/lib/module/modules/pagination/Pagination.variants.js +307 -0
  279. package/lib/module/modules/pagination/PaginationControls.js +193 -0
  280. package/lib/module/modules/pagination/index.js +15 -0
  281. package/lib/module/modules/pin-input/MODULE.md +29 -14
  282. package/lib/module/modules/pin-input/PinInput.js +111 -80
  283. package/lib/module/modules/pin-input/PinInput.variants.js +13 -5
  284. package/lib/module/modules/progress-bar/MODULE.md +17 -7
  285. package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
  286. package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
  287. package/lib/module/modules/radio-group/MODULE.md +40 -14
  288. package/lib/module/modules/radio-group/RadioGroup.js +71 -7
  289. package/lib/module/modules/radio-group/RadioGroup.variants.js +46 -10
  290. package/lib/module/modules/reorder/MODULE.md +104 -97
  291. package/lib/module/modules/reorder/Reorder.js +233 -197
  292. package/lib/module/modules/reorder/Reorder.variants.js +35 -13
  293. package/lib/module/modules/rich-text/MODULE.md +52 -0
  294. package/lib/module/modules/rich-text/RichText.js +362 -0
  295. package/lib/module/modules/rich-text/RichText.variants.js +17 -0
  296. package/lib/module/modules/rich-text/index.js +5 -0
  297. package/lib/module/modules/rich-text/parseRichText.js +133 -0
  298. package/lib/module/modules/rich-text-editor/MODULE.md +225 -0
  299. package/lib/module/modules/rich-text-editor/RichTextEditor.js +413 -0
  300. package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +316 -0
  301. package/lib/module/modules/rich-text-editor/index.js +10 -0
  302. package/lib/module/modules/screen/MODULE.md +57 -0
  303. package/lib/module/modules/screen/Screen.js +106 -0
  304. package/lib/module/modules/screen/Screen.variants.js +43 -0
  305. package/lib/module/modules/screen/index.js +10 -0
  306. package/lib/module/modules/search-bar/MODULE.md +114 -0
  307. package/lib/module/modules/search-bar/SearchBar.js +256 -0
  308. package/lib/module/modules/search-bar/SearchBar.variants.js +205 -0
  309. package/lib/module/modules/search-bar/index.js +12 -0
  310. package/lib/module/modules/section/MODULE.md +39 -0
  311. package/lib/module/modules/section/Section.js +42 -0
  312. package/lib/module/modules/section/Section.variants.js +29 -0
  313. package/lib/module/modules/section/index.js +10 -0
  314. package/lib/module/modules/section-list/MODULE.md +18 -0
  315. package/lib/module/modules/section-list/SectionList.js +64 -0
  316. package/lib/module/modules/section-list/SectionList.variants.js +11 -0
  317. package/lib/module/modules/section-list/index.js +4 -0
  318. package/lib/module/modules/segmented-control/MODULE.md +124 -0
  319. package/lib/module/modules/segmented-control/SegmentedControl.js +158 -0
  320. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +167 -0
  321. package/lib/module/modules/segmented-control/index.js +13 -0
  322. package/lib/module/modules/select/MODULE.md +82 -15
  323. package/lib/module/modules/select/Select.js +201 -96
  324. package/lib/module/modules/select/Select.variants.js +39 -5
  325. package/lib/module/modules/skeleton/MODULE.md +27 -7
  326. package/lib/module/modules/skeleton/Skeleton.js +52 -38
  327. package/lib/module/modules/skeleton/Skeleton.variants.js +9 -8
  328. package/lib/module/modules/slider/MODULE.md +31 -5
  329. package/lib/module/modules/slider/Slider.js +67 -10
  330. package/lib/module/modules/slider/Slider.variants.js +60 -13
  331. package/lib/module/modules/spinner/MODULE.md +16 -6
  332. package/lib/module/modules/spinner/Spinner.js +20 -16
  333. package/lib/module/modules/spinner/Spinner.variants.js +5 -3
  334. package/lib/module/modules/stage-progress/MODULE.md +64 -0
  335. package/lib/module/modules/stage-progress/StageProgress.js +174 -0
  336. package/lib/module/modules/stage-progress/StageProgress.variants.js +164 -0
  337. package/lib/module/modules/stage-progress/index.js +4 -0
  338. package/lib/module/modules/stat-tile/MODULE.md +51 -0
  339. package/lib/module/modules/stat-tile/StatTile.js +124 -0
  340. package/lib/module/modules/stat-tile/StatTile.variants.js +57 -0
  341. package/lib/module/modules/stat-tile/index.js +10 -0
  342. package/lib/module/modules/state-block/MODULE.md +52 -0
  343. package/lib/module/modules/state-block/StateBlock.js +131 -0
  344. package/lib/module/modules/state-block/StateBlock.variants.js +55 -0
  345. package/lib/module/modules/state-block/index.js +10 -0
  346. package/lib/module/modules/stepper/MODULE.md +33 -6
  347. package/lib/module/modules/stepper/Stepper.js +108 -39
  348. package/lib/module/modules/stepper/Stepper.variants.js +6 -6
  349. package/lib/module/modules/swipeable-row/MODULE.md +120 -0
  350. package/lib/module/modules/swipeable-row/SwipeableRow.js +244 -0
  351. package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
  352. package/lib/module/modules/swipeable-row/index.js +4 -0
  353. package/lib/module/modules/switch/MODULE.md +14 -0
  354. package/lib/module/modules/switch/Switch.js +1 -1
  355. package/lib/module/modules/switch/Switch.variants.js +8 -0
  356. package/lib/module/modules/tabs/MODULE.md +47 -13
  357. package/lib/module/modules/tabs/Tabs.js +121 -72
  358. package/lib/module/modules/tabs/Tabs.variants.js +30 -8
  359. package/lib/module/modules/text/MODULE.md +51 -0
  360. package/lib/module/modules/text/Text.js +47 -0
  361. package/lib/module/modules/text/Text.variants.js +98 -0
  362. package/lib/module/modules/text/index.js +4 -0
  363. package/lib/module/modules/textarea/MODULE.md +29 -13
  364. package/lib/module/modules/textarea/Textarea.js +90 -45
  365. package/lib/module/modules/textarea/Textarea.variants.js +14 -9
  366. package/lib/module/modules/timeline/MODULE.md +49 -8
  367. package/lib/module/modules/timeline/Timeline.js +151 -74
  368. package/lib/module/modules/timeline/Timeline.variants.js +13 -0
  369. package/lib/module/modules/toast/MODULE.md +66 -7
  370. package/lib/module/modules/toast/Toast.js +93 -27
  371. package/lib/module/modules/toast/Toast.variants.js +37 -1
  372. package/lib/module/modules/toast/toastScreenReader.js +69 -0
  373. package/lib/module/modules/tooltip/MODULE.md +78 -28
  374. package/lib/module/modules/tooltip/Tooltip.js +93 -43
  375. package/lib/module/modules/tooltip/Tooltip.variants.js +3 -4
  376. package/lib/module/modules/typing-indicator/MODULE.md +48 -0
  377. package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
  378. package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
  379. package/lib/module/modules/typing-indicator/index.js +4 -0
  380. package/lib/module/modules/unread-badge/MODULE.md +20 -0
  381. package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
  382. package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
  383. package/lib/module/modules/unread-badge/index.js +4 -0
  384. package/lib/module/test/mocks/flashList.js +5 -0
  385. package/lib/module/test/perfHelpers.js +18 -0
  386. package/lib/module/theme/MODULE.md +6 -0
  387. package/lib/module/theme/hooks.js +11 -0
  388. package/lib/module/theme/index.js +3 -6
  389. package/lib/module/theme/platform/MODULE.md +6 -0
  390. package/lib/module/theme/platform/motion.native.js +15 -0
  391. package/lib/module/theme/provider/PixelizeProvider.js +9 -47
  392. package/lib/module/theme/provider/ThemeContext.js +6 -0
  393. package/lib/module/theme/provider/colorModeStorage.js +2 -2
  394. package/lib/module/theme/provider/index.js +1 -0
  395. package/lib/module/theme/provider/loadPalette.js +75 -0
  396. package/lib/module/theme/provider/types.js +4 -0
  397. package/lib/module/theme/provider/useTheme.js +1 -2
  398. package/lib/module/theme/provider/useThemeMode.js +1 -1
  399. package/lib/module/theme/tokens/builders/accentText.js +9 -0
  400. package/lib/module/theme/tokens/roles/index.js +9 -3
  401. package/lib/typescript/core/a11y/announce.d.ts +20 -0
  402. package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
  403. package/lib/typescript/core/a11y/index.d.ts +21 -2
  404. package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
  405. package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
  406. package/lib/typescript/core/a11y/labels.d.ts +19 -0
  407. package/lib/typescript/core/device/index.d.ts +16 -0
  408. package/lib/typescript/core/heading/index.d.ts +45 -0
  409. package/lib/typescript/core/icon/Icon.d.ts +18 -0
  410. package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
  411. package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
  412. package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
  413. package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
  414. package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
  415. package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
  416. package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
  417. package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
  418. package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
  419. package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
  420. package/lib/typescript/core/icon/icons/check.d.ts +3 -0
  421. package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
  422. package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
  423. package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
  424. package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
  425. package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
  426. package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
  427. package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
  428. package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
  429. package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
  430. package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
  431. package/lib/typescript/core/icon/icons/code.d.ts +3 -0
  432. package/lib/typescript/core/icon/icons/download.d.ts +3 -0
  433. package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
  434. package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
  435. package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
  436. package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
  437. package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
  438. package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
  439. package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
  440. package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
  441. package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
  442. package/lib/typescript/core/icon/icons/image.d.ts +3 -0
  443. package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
  444. package/lib/typescript/core/icon/icons/info.d.ts +3 -0
  445. package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
  446. package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
  447. package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
  448. package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
  449. package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
  450. package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
  451. package/lib/typescript/core/icon/icons/link.d.ts +3 -0
  452. package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
  453. package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
  454. package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
  455. package/lib/typescript/core/icon/icons/list.d.ts +3 -0
  456. package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
  457. package/lib/typescript/core/icon/icons/map.d.ts +3 -0
  458. package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
  459. package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
  460. package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
  461. package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
  462. package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
  463. package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
  464. package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
  465. package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
  466. package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
  467. package/lib/typescript/core/icon/icons/save.d.ts +3 -0
  468. package/lib/typescript/core/icon/icons/search.d.ts +3 -0
  469. package/lib/typescript/core/icon/icons/send.d.ts +3 -0
  470. package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
  471. package/lib/typescript/core/icon/icons/share.d.ts +3 -0
  472. package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
  473. package/lib/typescript/core/icon/icons/star.d.ts +3 -0
  474. package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
  475. package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
  476. package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
  477. package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
  478. package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
  479. package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
  480. package/lib/typescript/core/icon/icons/user.d.ts +3 -0
  481. package/lib/typescript/core/icon/icons/users.d.ts +3 -0
  482. package/lib/typescript/core/icon/icons/x.d.ts +3 -0
  483. package/lib/typescript/core/icon/index.d.ts +6 -57
  484. package/lib/typescript/core/icon/names.d.ts +2 -0
  485. package/lib/typescript/core/icon/resolve.d.ts +4 -0
  486. package/lib/typescript/core/icon/types.d.ts +13 -0
  487. package/lib/typescript/core/list/VirtualList.d.ts +55 -0
  488. package/lib/typescript/core/list/index.d.ts +3 -0
  489. package/lib/typescript/core/media/MediaImage.d.ts +28 -0
  490. package/lib/typescript/core/media/expoImage.d.ts +14 -0
  491. package/lib/typescript/core/media/index.d.ts +7 -0
  492. package/lib/typescript/core/media/pickers.d.ts +27 -0
  493. package/lib/typescript/core/motion/config.d.ts +56 -0
  494. package/lib/typescript/core/motion/index.d.ts +8 -0
  495. package/lib/typescript/core/motion/presets.d.ts +49 -0
  496. package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
  497. package/lib/typescript/core/motion/useMotion.d.ts +34 -0
  498. package/lib/typescript/core/style/index.d.ts +3 -0
  499. package/lib/typescript/core/style/sx.d.ts +86 -0
  500. package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
  501. package/lib/typescript/index.d.ts +134 -2
  502. package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
  503. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +5 -5
  504. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -1
  505. package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
  506. package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
  507. package/lib/typescript/modules/app-bar/index.d.ts +9 -0
  508. package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
  509. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
  510. package/lib/typescript/modules/avatar/index.d.ts +1 -1
  511. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +28 -0
  512. package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +75 -0
  513. package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
  514. package/lib/typescript/modules/badge/Badge.d.ts +3 -1
  515. package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
  516. package/lib/typescript/modules/banner/Banner.d.ts +35 -0
  517. package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
  518. package/lib/typescript/modules/banner/index.d.ts +5 -0
  519. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +14 -9
  520. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +72 -9
  521. package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts +25 -0
  522. package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
  523. package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
  524. package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +13 -0
  525. package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
  526. package/lib/typescript/modules/button/Button.d.ts +21 -0
  527. package/lib/typescript/modules/button/Button.variants.d.ts +22 -9
  528. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +4 -2
  529. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +18 -5
  530. package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
  531. package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
  532. package/lib/typescript/modules/charts/BarList.d.ts +18 -0
  533. package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
  534. package/lib/typescript/modules/charts/Charts.variants.d.ts +225 -0
  535. package/lib/typescript/modules/charts/DonutChart.d.ts +21 -0
  536. package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
  537. package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
  538. package/lib/typescript/modules/charts/Sparkline.d.ts +13 -0
  539. package/lib/typescript/modules/charts/index.d.ts +19 -0
  540. package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
  541. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
  542. package/lib/typescript/modules/chip/Chip.d.ts +38 -0
  543. package/lib/typescript/modules/chip/Chip.variants.d.ts +198 -0
  544. package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
  545. package/lib/typescript/modules/chip/index.d.ts +12 -0
  546. package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
  547. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +212 -0
  548. package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
  549. package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
  550. package/lib/typescript/modules/combobox/index.d.ts +11 -0
  551. package/lib/typescript/modules/composer/Composer.d.ts +28 -0
  552. package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
  553. package/lib/typescript/modules/composer/index.d.ts +3 -0
  554. package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
  555. package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
  556. package/lib/typescript/modules/copy-button/index.d.ts +4 -0
  557. package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
  558. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
  559. package/lib/typescript/modules/data-table/index.d.ts +9 -0
  560. package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
  561. package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
  562. package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
  563. package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
  564. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +322 -0
  565. package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
  566. package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
  567. package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
  568. package/lib/typescript/modules/date-picker/TimePicker.d.ts +20 -0
  569. package/lib/typescript/modules/date-picker/index.d.ts +16 -0
  570. package/lib/typescript/modules/divider/Divider.variants.d.ts +2 -2
  571. package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
  572. package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
  573. package/lib/typescript/modules/empty-state/EmptyState.d.ts +7 -4
  574. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +7 -1
  575. package/lib/typescript/modules/fab/Fab.d.ts +74 -0
  576. package/lib/typescript/modules/fab/Fab.variants.d.ts +229 -0
  577. package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
  578. package/lib/typescript/modules/fab/index.d.ts +12 -0
  579. package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
  580. package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
  581. package/lib/typescript/modules/file-grid/index.d.ts +4 -0
  582. package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
  583. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
  584. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
  585. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
  586. package/lib/typescript/modules/folder-row/FolderRow.d.ts +24 -0
  587. package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
  588. package/lib/typescript/modules/folder-row/index.d.ts +3 -0
  589. package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
  590. package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
  591. package/lib/typescript/modules/form-field/index.d.ts +4 -0
  592. package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
  593. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +82 -0
  594. package/lib/typescript/modules/gantt/index.d.ts +5 -0
  595. package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
  596. package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
  597. package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
  598. package/lib/typescript/modules/input/Input.d.ts +9 -1
  599. package/lib/typescript/modules/input/Input.variants.d.ts +26 -6
  600. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
  601. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
  602. package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
  603. package/lib/typescript/modules/list-item/ListItem.d.ts +21 -0
  604. package/lib/typescript/modules/list-item/ListItem.variants.d.ts +29 -0
  605. package/lib/typescript/modules/list-item/index.d.ts +8 -0
  606. package/lib/typescript/modules/markdown/Markdown.d.ts +16 -0
  607. package/lib/typescript/modules/markdown/Markdown.variants.d.ts +33 -0
  608. package/lib/typescript/modules/markdown/index.d.ts +10 -0
  609. package/lib/typescript/modules/markdown/parseMarkdown.d.ts +44 -0
  610. package/lib/typescript/modules/menu/Menu.d.ts +8 -18
  611. package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
  612. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
  613. package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +31 -0
  614. package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
  615. package/lib/typescript/modules/modal/Modal.d.ts +12 -0
  616. package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
  617. package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
  618. package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
  619. package/lib/typescript/modules/more-items/index.d.ts +4 -0
  620. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +3 -12
  621. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
  622. package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
  623. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +57 -7
  624. package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
  625. package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
  626. package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
  627. package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
  628. package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
  629. package/lib/typescript/modules/pagination/PaginationControls.d.ts +50 -0
  630. package/lib/typescript/modules/pagination/index.d.ts +14 -0
  631. package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
  632. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
  633. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
  634. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
  635. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
  636. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
  637. package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
  638. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
  639. package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
  640. package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
  641. package/lib/typescript/modules/rich-text/index.d.ts +5 -0
  642. package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
  643. package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
  644. package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
  645. package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
  646. package/lib/typescript/modules/screen/Screen.d.ts +36 -0
  647. package/lib/typescript/modules/screen/Screen.variants.d.ts +21 -0
  648. package/lib/typescript/modules/screen/index.d.ts +9 -0
  649. package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
  650. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
  651. package/lib/typescript/modules/search-bar/index.d.ts +11 -0
  652. package/lib/typescript/modules/section/Section.d.ts +17 -0
  653. package/lib/typescript/modules/section/Section.variants.d.ts +12 -0
  654. package/lib/typescript/modules/section/index.d.ts +8 -0
  655. package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
  656. package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
  657. package/lib/typescript/modules/section-list/index.d.ts +3 -0
  658. package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
  659. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
  660. package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
  661. package/lib/typescript/modules/select/Select.d.ts +3 -10
  662. package/lib/typescript/modules/select/Select.variants.d.ts +27 -5
  663. package/lib/typescript/modules/skeleton/Skeleton.d.ts +5 -0
  664. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +10 -9
  665. package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
  666. package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
  667. package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
  668. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +98 -0
  669. package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
  670. package/lib/typescript/modules/stat-tile/StatTile.d.ts +20 -0
  671. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +36 -0
  672. package/lib/typescript/modules/stat-tile/index.d.ts +9 -0
  673. package/lib/typescript/modules/state-block/StateBlock.d.ts +51 -0
  674. package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +30 -0
  675. package/lib/typescript/modules/state-block/index.d.ts +10 -0
  676. package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
  677. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
  678. package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
  679. package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
  680. package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
  681. package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
  682. package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
  683. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
  684. package/lib/typescript/modules/text/Text.d.ts +23 -0
  685. package/lib/typescript/modules/text/Text.variants.d.ts +18 -0
  686. package/lib/typescript/modules/text/index.d.ts +4 -0
  687. package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
  688. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
  689. package/lib/typescript/modules/timeline/Timeline.d.ts +11 -11
  690. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
  691. package/lib/typescript/modules/toast/Toast.d.ts +13 -3
  692. package/lib/typescript/modules/toast/Toast.variants.d.ts +31 -3
  693. package/lib/typescript/modules/toast/index.d.ts +1 -1
  694. package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
  695. package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
  696. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +4 -5
  697. package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
  698. package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
  699. package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
  700. package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
  701. package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
  702. package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
  703. package/lib/typescript/test/mocks/flashList.d.ts +3 -0
  704. package/lib/typescript/test/perfHelpers.d.ts +9 -0
  705. package/lib/typescript/theme/hooks.d.ts +11 -0
  706. package/lib/typescript/theme/index.d.ts +3 -2
  707. package/lib/typescript/theme/platform/motion.native.d.ts +15 -0
  708. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
  709. package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
  710. package/lib/typescript/theme/provider/index.d.ts +2 -1
  711. package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
  712. package/lib/typescript/theme/provider/types.d.ts +41 -0
  713. package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
  714. package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
  715. package/lib/typescript/theme/tokens/builders/accentText.d.ts +6 -0
  716. package/lib/typescript/theme/tokens/roles/index.d.ts +7 -0
  717. package/package.json +209 -14
  718. package/registry.json +191 -1
  719. package/lib/module/core/a11y/index.js.map +0 -1
  720. package/lib/module/core/icon/index.js.map +0 -1
  721. package/lib/module/core/style/index.js.map +0 -1
  722. package/lib/module/core/style/layoutStyle.js.map +0 -1
  723. package/lib/module/core/style/variants.js.map +0 -1
  724. package/lib/module/index.js.map +0 -1
  725. package/lib/module/modules/accordion/Accordion.js.map +0 -1
  726. package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
  727. package/lib/module/modules/accordion/index.js.map +0 -1
  728. package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
  729. package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
  730. package/lib/module/modules/alert-dialog/index.js.map +0 -1
  731. package/lib/module/modules/avatar/Avatar.js.map +0 -1
  732. package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
  733. package/lib/module/modules/avatar/index.js.map +0 -1
  734. package/lib/module/modules/badge/Badge.js.map +0 -1
  735. package/lib/module/modules/badge/Badge.variants.js.map +0 -1
  736. package/lib/module/modules/badge/index.js.map +0 -1
  737. package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
  738. package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
  739. package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
  740. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
  741. package/lib/module/modules/bottom-nav/index.js.map +0 -1
  742. package/lib/module/modules/button/Button.js.map +0 -1
  743. package/lib/module/modules/button/Button.variants.js.map +0 -1
  744. package/lib/module/modules/button/index.js.map +0 -1
  745. package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
  746. package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
  747. package/lib/module/modules/button-group/index.js.map +0 -1
  748. package/lib/module/modules/card/Card.js.map +0 -1
  749. package/lib/module/modules/card/Card.variants.js.map +0 -1
  750. package/lib/module/modules/card/index.js.map +0 -1
  751. package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
  752. package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
  753. package/lib/module/modules/checkbox/index.js.map +0 -1
  754. package/lib/module/modules/divider/Divider.js.map +0 -1
  755. package/lib/module/modules/divider/Divider.variants.js.map +0 -1
  756. package/lib/module/modules/divider/index.js.map +0 -1
  757. package/lib/module/modules/drawer/Drawer.js.map +0 -1
  758. package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
  759. package/lib/module/modules/drawer/index.js.map +0 -1
  760. package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
  761. package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
  762. package/lib/module/modules/empty-state/index.js.map +0 -1
  763. package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
  764. package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
  765. package/lib/module/modules/file-upload/index.js.map +0 -1
  766. package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
  767. package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
  768. package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
  769. package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
  770. package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
  771. package/lib/module/modules/filter-sheet/index.js.map +0 -1
  772. package/lib/module/modules/input/Input.js.map +0 -1
  773. package/lib/module/modules/input/Input.variants.js.map +0 -1
  774. package/lib/module/modules/input/index.js.map +0 -1
  775. package/lib/module/modules/menu/Menu.js.map +0 -1
  776. package/lib/module/modules/menu/Menu.variants.js.map +0 -1
  777. package/lib/module/modules/menu/index.js.map +0 -1
  778. package/lib/module/modules/modal/Modal.js.map +0 -1
  779. package/lib/module/modules/modal/Modal.variants.js.map +0 -1
  780. package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
  781. package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
  782. package/lib/module/modules/modal/index.js.map +0 -1
  783. package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
  784. package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
  785. package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
  786. package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
  787. package/lib/module/modules/multi-select/index.js.map +0 -1
  788. package/lib/module/modules/number-input/NumberInput.js.map +0 -1
  789. package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
  790. package/lib/module/modules/number-input/index.js.map +0 -1
  791. package/lib/module/modules/pin-input/PinInput.js.map +0 -1
  792. package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
  793. package/lib/module/modules/pin-input/index.js.map +0 -1
  794. package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
  795. package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
  796. package/lib/module/modules/progress-bar/index.js.map +0 -1
  797. package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
  798. package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
  799. package/lib/module/modules/radio-group/index.js.map +0 -1
  800. package/lib/module/modules/reorder/Reorder.js.map +0 -1
  801. package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
  802. package/lib/module/modules/reorder/index.js.map +0 -1
  803. package/lib/module/modules/select/Select.js.map +0 -1
  804. package/lib/module/modules/select/Select.variants.js.map +0 -1
  805. package/lib/module/modules/select/index.js.map +0 -1
  806. package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
  807. package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
  808. package/lib/module/modules/skeleton/index.js.map +0 -1
  809. package/lib/module/modules/slider/Slider.js.map +0 -1
  810. package/lib/module/modules/slider/Slider.variants.js.map +0 -1
  811. package/lib/module/modules/slider/index.js.map +0 -1
  812. package/lib/module/modules/spinner/Spinner.js.map +0 -1
  813. package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
  814. package/lib/module/modules/spinner/index.js.map +0 -1
  815. package/lib/module/modules/stepper/Stepper.js.map +0 -1
  816. package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
  817. package/lib/module/modules/stepper/index.js.map +0 -1
  818. package/lib/module/modules/switch/Switch.js.map +0 -1
  819. package/lib/module/modules/switch/Switch.variants.js.map +0 -1
  820. package/lib/module/modules/switch/index.js.map +0 -1
  821. package/lib/module/modules/tabs/Tabs.js.map +0 -1
  822. package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
  823. package/lib/module/modules/tabs/index.js.map +0 -1
  824. package/lib/module/modules/textarea/Textarea.js.map +0 -1
  825. package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
  826. package/lib/module/modules/textarea/index.js.map +0 -1
  827. package/lib/module/modules/timeline/Timeline.js.map +0 -1
  828. package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
  829. package/lib/module/modules/timeline/index.js.map +0 -1
  830. package/lib/module/modules/toast/Toast.js.map +0 -1
  831. package/lib/module/modules/toast/Toast.variants.js.map +0 -1
  832. package/lib/module/modules/toast/index.js.map +0 -1
  833. package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
  834. package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
  835. package/lib/module/modules/tooltip/index.js.map +0 -1
  836. package/lib/module/theme/index.js.map +0 -1
  837. package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
  838. package/lib/module/theme/platform/elevation.native.js.map +0 -1
  839. package/lib/module/theme/platform/fonts.native.js.map +0 -1
  840. package/lib/module/theme/platform/index.js.map +0 -1
  841. package/lib/module/theme/platform/units.native.js.map +0 -1
  842. package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
  843. package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
  844. package/lib/module/theme/provider/index.js.map +0 -1
  845. package/lib/module/theme/provider/useTheme.js.map +0 -1
  846. package/lib/module/theme/provider/useThemeColors.js.map +0 -1
  847. package/lib/module/theme/provider/useThemeMode.js.map +0 -1
  848. package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
  849. package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
  850. package/lib/module/theme/tokens/brands/index.js.map +0 -1
  851. package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
  852. package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
  853. package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
  854. package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
  855. package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
  856. package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
  857. package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
  858. package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
  859. package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
  860. package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
  861. package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
  862. package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
  863. package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
  864. package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
  865. package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
  866. package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
  867. package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
  868. package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
  869. package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
  870. package/lib/module/theme/tokens/builders/color.js.map +0 -1
  871. package/lib/module/theme/tokens/index.js.map +0 -1
  872. package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
  873. package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
  874. package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
  875. package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
  876. package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
  877. package/lib/module/theme/tokens/primitives/index.js.map +0 -1
  878. package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
  879. package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
  880. package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
  881. package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
  882. package/lib/module/theme/tokens/primitives/space.js.map +0 -1
  883. package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
  884. package/lib/module/theme/tokens/roles/index.js.map +0 -1
  885. package/lib/module/theme/tokens/types.js.map +0 -1
  886. package/lib/typescript/core/a11y/index.d.ts.map +0 -1
  887. package/lib/typescript/core/icon/index.d.ts.map +0 -1
  888. package/lib/typescript/core/style/index.d.ts.map +0 -1
  889. package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
  890. package/lib/typescript/core/style/variants.d.ts.map +0 -1
  891. package/lib/typescript/index.d.ts.map +0 -1
  892. package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
  893. package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
  894. package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
  895. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
  896. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
  897. package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
  898. package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
  899. package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
  900. package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
  901. package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
  902. package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
  903. package/lib/typescript/modules/badge/index.d.ts.map +0 -1
  904. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
  905. package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
  906. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
  907. package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
  908. package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
  909. package/lib/typescript/modules/button/Button.d.ts.map +0 -1
  910. package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
  911. package/lib/typescript/modules/button/index.d.ts.map +0 -1
  912. package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
  913. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
  914. package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
  915. package/lib/typescript/modules/card/Card.d.ts.map +0 -1
  916. package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
  917. package/lib/typescript/modules/card/index.d.ts.map +0 -1
  918. package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
  919. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
  920. package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
  921. package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
  922. package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
  923. package/lib/typescript/modules/divider/index.d.ts.map +0 -1
  924. package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
  925. package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
  926. package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
  927. package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
  928. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
  929. package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
  930. package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
  931. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
  932. package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
  933. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
  934. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
  935. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
  936. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
  937. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
  938. package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
  939. package/lib/typescript/modules/input/Input.d.ts.map +0 -1
  940. package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
  941. package/lib/typescript/modules/input/index.d.ts.map +0 -1
  942. package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
  943. package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
  944. package/lib/typescript/modules/menu/index.d.ts.map +0 -1
  945. package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
  946. package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
  947. package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
  948. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
  949. package/lib/typescript/modules/modal/index.d.ts.map +0 -1
  950. package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
  951. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
  952. package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
  953. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
  954. package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
  955. package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
  956. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
  957. package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
  958. package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
  959. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
  960. package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
  961. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
  962. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
  963. package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
  964. package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
  965. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
  966. package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
  967. package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
  968. package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
  969. package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
  970. package/lib/typescript/modules/select/Select.d.ts.map +0 -1
  971. package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
  972. package/lib/typescript/modules/select/index.d.ts.map +0 -1
  973. package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
  974. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
  975. package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
  976. package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
  977. package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
  978. package/lib/typescript/modules/slider/index.d.ts.map +0 -1
  979. package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
  980. package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
  981. package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
  982. package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
  983. package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
  984. package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
  985. package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
  986. package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
  987. package/lib/typescript/modules/switch/index.d.ts.map +0 -1
  988. package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
  989. package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
  990. package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
  991. package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
  992. package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
  993. package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
  994. package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
  995. package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
  996. package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
  997. package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
  998. package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
  999. package/lib/typescript/modules/toast/index.d.ts.map +0 -1
  1000. package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
  1001. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
  1002. package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
  1003. package/lib/typescript/theme/index.d.ts.map +0 -1
  1004. package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
  1005. package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
  1006. package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
  1007. package/lib/typescript/theme/platform/index.d.ts.map +0 -1
  1008. package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
  1009. package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
  1010. package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
  1011. package/lib/typescript/theme/provider/index.d.ts.map +0 -1
  1012. package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
  1013. package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
  1014. package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
  1015. package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
  1016. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
  1017. package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
  1018. package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
  1019. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
  1020. package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
  1021. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
  1022. package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
  1023. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
  1024. package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
  1025. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
  1026. package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
  1027. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
  1028. package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
  1029. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
  1030. package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
  1031. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
  1032. package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
  1033. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
  1034. package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
  1035. package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
  1036. package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
  1037. package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
  1038. package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
  1039. package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
  1040. package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
  1041. package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
  1042. package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
  1043. package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
  1044. package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
  1045. package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
  1046. package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
  1047. package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
  1048. package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
  1049. package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
  1050. package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
  1051. package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
  1052. package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
@@ -4,9 +4,13 @@ Cross-cutting mechanism every module imports. No feature logic, no components.
4
4
 
5
5
  | Folder | Purpose | Docs |
6
6
  |--------|---------|------|
7
- | `style/` | `LayoutStyle` + the variant resolver (below) | this file |
8
- | `icon/` | shared lucide icon registry (`IconName`, `Icon`) — hoisted out of `modules/button/` so every future module reuses one registry instead of re-declaring its own. Grows one glyph at a time as new modules need them (latest: `filter`, added for `filter-sheet`) — see `icon/MODULE.md`. | `icon/MODULE.md` |
7
+ | `style/` | `LayoutStyle` + the variant resolver (below) + `sx()` (spacing/flex shorthand, below) — published as `pixelize-native-library/style` | this file |
8
+ | `icon/` | shared lucide icon registry (`IconName`, `Icon`; 56 glyphs) — hoisted out of `modules/button/` so every one of the 39 shipped modules reuses one registry instead of re-declaring its own | `icon/MODULE.md` |
9
9
  | `a11y/` | shared accessibility hooks (`useReducedMotion`) — hoisted out of `modules/button/` for the same reason | `a11y/MODULE.md` |
10
+ | `device/` | the `low \| mid \| high` device tier every motion and list-window decision reads | `device/MODULE.md` |
11
+ | `motion/` | the single global animation gate (`useMotion`, `config.ts`, the preset hooks) | `motion/MODULE.md` |
12
+ | `list/` | `VirtualList` / `VirtualSectionList` — the one windowed list every list-bearing module renders through (FlashList when the peer is installed, FlatList otherwise) | this file |
13
+ | `heading/` | `HeadingText`/`HeadingView` (typed `aria-level`) + `HEADING_LEVEL` — the fixed level every `accessibilityRole="header"` site needs so `react-native-web` doesn't render it as `<h1>` | `heading/MODULE.md` |
10
14
 
11
15
  ## Escape-hatch doctrine
12
16
 
@@ -15,12 +19,11 @@ size** a component without being able to **restyle** it — a component whose ap
15
19
  override is a component we can never change.
16
20
 
17
21
  The narrowness is measured, not assumed. Across 906 real library usages in 4 web apps: `style=` **0**,
18
- `className=` **1** (and it was dead code), `sx=` **16** — a 1.9% escape hatch. Width/height was
19
- **13.9%**, and every one of those was a *declared prop*. Consumers need sizing, not restyling.
22
+ `className=` **1** (dead code), `sx=` **16** — a 1.9% escape hatch. Width/height was **13.9%**, and
23
+ every one of those was a *declared prop*. Consumers need sizing, not restyling.
20
24
 
21
25
  So `style` is typed `LayoutStyle`: margin, width/height, flex, alignSelf. `Pick`, never `Omit` — an
22
- `Omit` would silently admit each key React Native adds to `ViewStyle` on a version bump, decaying the
23
- guarantee with no change to our code.
26
+ `Omit` would silently admit each key React Native adds to `ViewStyle` on a version bump.
24
27
 
25
28
  The escape hatch that actually matters on RN is **`useThemeColors()` returning resolved values** —
26
29
  `placeholderTextColor`, `android_ripple`, SVG `fill`, and React Navigation chrome accept no token
@@ -28,20 +31,18 @@ object. Reach for that, never for a style prop.
28
31
 
29
32
  ## Containment invariants
30
33
 
31
- 1. **`style` appears exactly once** — on the outermost node, **last** in the array, so layout wins.
34
+ 1. **`style` appears exactly once** — outermost node, **last** in the array, so layout wins.
32
35
  2. **No `{...rest}`. Ever.** A rest spread re-opens every prop the allowlist just closed.
33
36
  3. **Internals never receive consumer style** — no `labelStyle`, no `iconStyle`, no `slotProps`.
34
37
  4. **Icons take a name, not a node** — `icon?: IconName`, so an app cannot inject arbitrary UI.
35
- 5. **Colour is never a prop; tone is** — `tone="danger"`, never `color="#a00"`. Appearance is a
36
- closed union (`variant` / `size` / `tone`).
38
+ 5. **Colour is never a prop; tone is** — `tone="danger"`, never `color="#a00"`.
37
39
 
38
40
  **The one exception:** a component wrapping a native primitive (`TextInput`) may expose
39
- `containerStyle?: LayoutStyle` for the outer box only the primitive needs its own layout box.
40
- Never `inputStyle`.
41
+ `containerStyle?: LayoutStyle` for the outer box only. Never `inputStyle`.
41
42
 
42
43
  ## Variant resolver
43
44
 
44
- In-house, zero dependency — this file is why NativeWind / Unistyles / Tamagui were rejected.
45
+ In-house, zero dependency — this is why NativeWind / Unistyles / Tamagui were rejected.
45
46
 
46
47
  ```ts
47
48
  const buttonVariants = createThemedVariants((theme: Theme) => ({
@@ -51,21 +52,15 @@ const buttonVariants = createThemedVariants((theme: Theme) => ({
51
52
  size: { sm: { height: 32 }, md: { height: 40 } },
52
53
  },
53
54
  defaultVariants: { variant: "solid", size: "md" },
54
- compoundVariants: [{ when: { variant: "outline", size: "sm" }, style: { borderWidth: 2 } }],
55
55
  }));
56
56
 
57
57
  // The prop type is DERIVED — adding a variant above widens it with no second declaration.
58
58
  type ButtonProps = VariantProps<typeof buttonVariants> & { style?: LayoutStyle };
59
-
60
- const Button = ({ variant, size, style }: ButtonProps) => {
61
- const theme = useTheme();
62
- return <Pressable style={[buttonVariants(theme, { variant, size }), style]} />;
63
- };
64
59
  ```
65
60
 
66
- Resolution order is `base` → variant groups **in config order** → matching compounds, so a later
67
- group overrides an earlier one and a compound overrides both. Consumer `style` is appended by the
68
- component (invariant 1) — the resolver never takes it, so it can never leak to an internal node.
61
+ Resolution order is `base` → variant groups **in config order** → matching compounds. Consumer
62
+ `style` is appended by the component (invariant 1) the resolver never takes it, so it can never
63
+ leak to an internal node.
69
64
 
70
65
  | Export | Output |
71
66
  |--------|--------|
@@ -73,22 +68,120 @@ component (invariant 1) — the resolver never takes it, so it can never leak to
73
68
  | `createTextVariants` / `createThemedTextVariants` | `StyleProp<TextStyle>` |
74
69
  | `variantFactory<S>()` / `themedVariantFactory<S>()` | bind another style kind (e.g. `ImageStyle`) |
75
70
 
76
- The factories are curried because TypeScript has no partial type-argument inference: a single
77
- `createVariants<S, V>` would force callers to spell out `V` just to pick a style kind. Currying fixes
78
- `S` and leaves `V` inferred from the config literal which is also what keeps style literals like
79
- `flexDirection: "row"` from widening to `string`.
71
+ The factories are curried (TS has no partial type-argument inference) fixes `S`, leaves `V` inferred.
72
+
73
+ **Caching:** static configs (`createVariants`) flatten to one named sheet, registered in
74
+ `StyleSheet.create` **eagerly at module load**. Themed configs (`createThemedVariants`) can't do
75
+ that — theme-dependent values change with brand/mode — so the sheet compiles on **first use per
76
+ theme** and is cached in a `WeakMap` keyed by theme **identity**. This requires the provider to hand
77
+ out a stable theme object per (brand, mode); a theme rebuilt every render would recompile every sheet
78
+ every render.
80
79
 
81
- ### Caching strategy
80
+ ## `sx()` — spacing/flex shorthand for app screens
82
81
 
83
- Styles must be registered once, not rebuilt per render.
82
+ Orthogonal to the escape-hatch doctrine above (which governs what a **consumer app can pass into a
83
+ library component**). `sx()` is the opposite direction: a plain function an app (or internal
84
+ component) calls to **build its own `ViewStyle`** without hand-writing padding/margin/gap numbers.
84
85
 
85
- - **Static** (`createVariants`): the config is flattened to one named sheet and passed to
86
- `StyleSheet.create` **eagerly at module load**. Resolution then only picks entries out of it.
87
- - **Themed** (`createThemedVariants`): theme-dependent values *cannot* live in a module-level
88
- `StyleSheet.create` they change with brand and mode. The sheet is compiled on **first use per
89
- theme** and cached in a `WeakMap` keyed by theme **identity**: registered once per theme, never per
90
- render, and a retired theme's sheet is garbage-collectable.
91
- - **This requires the provider to hand out a stable theme object per (brand, mode).** A theme rebuilt
92
- every render would recompile every sheet every render — correct output, silently terrible perf.
86
+ ```ts
87
+ import { sx } from "pixelize-native-library/style";
88
+
89
+ <View style={sx({ row: true, gap: 2, px: 4, align: "center" })}>
90
+ ```
93
91
 
94
- Each call returns a fresh array of cached style objects; RN diffs the array cheaply.
92
+ Deliberately narrow spacing (`p`/`m`/`gap` families) and flex (`row`, `wrap`, `align`, `justify`,
93
+ `center`, `flex`/`grow`/`shrink`/`self`) only. No color, no typography, no borders — those stay on
94
+ `useThemeColors()` and the variant resolver above.
95
+
96
+ `p`/`m`/`gap` (and directional variants) take an `SxSpaceToken`, an 8-step subset (0–32dp) of the
97
+ full 17-step `SpaceToken` scale, curated to real spacing use — sizing (avatar/icon dimensions) is a
98
+ different scale on purpose. Call it inline for a one-off, or hoist into `StyleSheet.create`/`useMemo`
99
+ for anything reused or passed to a `React.memo`'d child — a fresh `sx()` result every render defeats
100
+ that child's memoization.
101
+
102
+ **Frozen in dev** (`__DEV__` only, zero cost in prod): a hoisted `sx()` result is a *shared* object,
103
+ so `styles.header.gap = 4` would silently corrupt it for every caller — freezing catches that early.
104
+ Spreading (`{ ...sx({...}), extra: 1 }`) is unaffected — spread always produces a fresh object.
105
+
106
+ ## `list/` — VirtualList
107
+
108
+ One windowed list for all 15 list-bearing modules. Device-tier window sizing (`core/device`),
109
+ FlashList when the optional peer resolves, FlatList otherwise. `resolveFlashList()` returns `null`
110
+ under Jest by design, so **only the FlatList branch is test-coverable** — the FlashList branch is
111
+ asserted by nothing except its tier→`drawDistance` mapping
112
+ (`__tests__/VirtualList.tuning.test.ts`).
113
+
114
+ **The two branches do not take the same props.** Verified against `@shopify/flash-list@2.3.2`:
115
+ `getItemLayout`, `initialNumToRender`, `maxToRenderPerBatch` and `updateCellsBatchingPeriod` have
116
+ **zero** occurrences in its dist — forwarding them (as this file did, behind a
117
+ `ComponentType<FlatListProps<T>>` cast) made every module's tier tuning and every hand-computed
118
+ `getItemLayout` inert for consumers who install the peer. v2's one windowing knob is
119
+ `drawDistance` (dp beyond the viewport; its own default is 250), so the tier maps to that instead,
120
+ and `getItemLayout` is not passed at all — it has no meaning there. The FlatList branch keeps the
121
+ five-prop tuning unchanged. FlashList also never passes `separators`, so `renderItem` goes through a
122
+ memoized adapter rather than a cast.
123
+
124
+ `resolveFlashList()` runs **once at module scope**. It used to `require()` inside a try/catch on
125
+ every render, constructing and catching a module-resolution error per render per mounted list
126
+ whenever the optional peer was absent.
127
+
128
+ **The prop surface is a curated allowlist, never `{...rest}`.** `core/list` is internal, so it is a
129
+ wider surface than a public module's — but the width is deliberate, and each entry is a prop a
130
+ module legitimately needs: `ListHeaderComponent` / `ListFooterComponent` / `ListEmptyComponent`,
131
+ `stickyHeaderIndices`, `contentContainerStyle`, `numColumns`, `keyboardShouldPersistTaps`,
132
+ `itemHeight` / `getItemLayout`, and `accessibilityRole` / `accessibilityLabel` / `accessibilityHint`.
133
+
134
+ A prop missing from this interface does not make a module do without it — it makes the module
135
+ re-express it locally, usually wrongly. `data-table` had no `ListHeaderComponent`, so "sticky" was
136
+ re-expressed as *position*: with `stickyHeader={false}` the column header rendered **after** every
137
+ row, and a screen reader read N rows before the labels naming them (WCAG 1.3.2). Widen this
138
+ interface rather than working around it in a module.
139
+
140
+ - **`accessibilityRole` defaults to `"list"`** so every consumer inherits it instead of each adding
141
+ its own — the role was previously absent library-wide. Consumers that are not lists override it
142
+ (a menu surface passes `"menu"`).
143
+ - **`keyboardShouldPersistTaps`** is required by any list under a focused text field, or the first
144
+ row tap is swallowed as a keyboard dismiss (WCAG 2.1.1). `"handled"` is right when dismissing on
145
+ a background tap is *wanted* (`combobox`, in a sheet); `"always"` when the list's own lifetime is
146
+ bound to the keyboard (`rich-text-editor`'s mention dropdown) — see each module's MODULE.md.
147
+ - **`itemHeight` is for uniform rows only.** It derives a `getItemLayout` whose offsets are exact
148
+ only if every row is that tall; variable rows must omit it (wrong offsets scroll to the wrong
149
+ place, and OS font scaling makes any guess worse — `timeline`, `markdown`, `more-items`). Pass
150
+ `getItemLayout` directly when the offsets are exact but not uniform — `data-table` does, to
151
+ account for the header cell sitting above row 0.
152
+ - **Prop memoization is mandatory**, not a style preference: FlashList memoizes on prop identity, so
153
+ the derived `getItemLayout` is `useMemo`'d here and every array/object/callback a module passes in
154
+ must be too, or the child's `React.memo` is silently defeated.
155
+ - **FlashList v2 removed `estimatedItemSize` / `estimatedListSize` / `estimatedFirstItemOffset` /
156
+ `onBlankArea` / `disableAutoLayout`** — it auto-sizes. Do not reintroduce them.
157
+
158
+ | Test | Covers |
159
+ |------|--------|
160
+ | `__tests__/VirtualList.props.test.tsx` | Header/footer/empty slots render in the right order; sticky/content-style/columns forwarding; the default `"list"` role and its override; `itemHeight` → `getItemLayout`, explicit `getItemLayout` winning, and its referential stability. |
161
+ | `__tests__/VirtualList.keyboard.test.tsx` | `keyboardShouldPersistTaps` forwarded verbatim, RN's own default when omitted. |
162
+ | `__tests__/VirtualList.tuning.test.ts` | The tier → `drawDistance` mapping — the only assertable part of the FlashList branch. |
163
+ | `__tests__/VirtualSectionList.sections.test.tsx` | The three flattening contracts below. |
164
+ | `__tests__/VirtualSectionList.perf.test.tsx` | Mounted rows stay bounded for a 10k dataset. |
165
+
166
+ ### VirtualSectionList
167
+
168
+ Flattens `sections` into one windowed list. Three contracts, each of which was a bug found in audit
169
+ and is now covered by `__tests__/VirtualSectionList.sections.test.tsx`:
170
+
171
+ 1. **An empty section keeps its header.** `sections.flatMap(s => s.data.map(…))` emitted nothing for
172
+ a section with no rows, so a titled section silently vanished. Empty sections now flatten to a
173
+ header-only row (`item === undefined`).
174
+ 2. **One header per section, keyed on position, not identity.** The header used to also fire when an
175
+ item was *reference-equal* to its section's first item, so `[a, b, a]` emitted two headers. It is
176
+ `index === 0` and nothing else.
177
+ 3. **Header-bearing rows are taller.** A single `itemHeight` described both kinds of row. Exact
178
+ offsets need `sectionHeaderHeight` too; given both, `getItemLayout` is a prefix sum over the
179
+ flattened rows. Given only `itemHeight`, **no** `getItemLayout` is passed — measuring is correct,
180
+ guessing is not. `modules/section-list` currently passes only `itemHeight` and so measures; it
181
+ can opt back into exact offsets by passing its header height.
182
+
183
+ ## Modernization (v1.0.7)
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.
@@ -8,15 +8,138 @@ once instead of each re-implementing the same hook.
8
8
 
9
9
  | File | Role |
10
10
  |------|------|
11
- | `index.ts` | `useReducedMotion()` — WCAG 2.3.3. |
11
+ | `index.ts` | `useReducedMotion()` — WCAG 2.3.3. `useAnnounce()` — WCAG 4.1.3. |
12
+ | `announce.ts` / `announce.web.ts` | `useAnnouncer()` — the platform's "say this now" primitive behind `useAnnounce`. |
13
+ | `keyboard.ts` / `keyboard.web.ts` | Physical-keyboard interaction — WCAG 2.1.1 / 2.4.3. Native file is all no-ops. |
14
+ | `labels.ts` | Accessibility-label phrasings that must read identically everywhere the same action appears (WCAG 3.2.4) — currently `removeAccessibilityLabel()`. |
12
15
 
13
- ## Pattern
16
+ **Internal only.** Nothing here is a package subpath export (`package.json` `exports` is generated
17
+ from `src/modules/` alone) — these are helpers modules import, never part of the public surface.
18
+
19
+ ## Platform pairs (`announce`, `keyboard`)
20
+
21
+ **Why `.ts` / `.web.ts`, not `Platform.OS`.** Metro resolves the `.web.ts` file only for a web
22
+ bundle, so the DOM code never enters the native graph; a `Platform.OS` branch would ship it. Jest's
23
+ `react-native` preset has no `web` platform, so a bare `../keyboard` import always resolves the
24
+ native file — the web half is tested either by importing `../keyboard.web` explicitly
25
+ (`keyboard.web.test.ts`) or by the jsdom project, whose `moduleFileExtensions` put `web.ts` first
26
+ (`*.dom.test.tsx` under `jest.web.config.js`).
27
+
28
+ **DOM types are module-local.** `tsconfig` sets `"lib": ["ESNext"]`, so `document`/`HTMLElement`/
29
+ `KeyboardEvent` don't exist as types. Each `.web.ts` declares a small structural surface plus
30
+ `declare const document` — both erase at emit. **Never augment `react-native`'s types instead**: that
31
+ ships through `lib/typescript/**` and makes `onKeyDown` look valid on native for every consumer.
32
+
33
+ ## Patterns
14
34
 
15
35
  `useReducedMotion()` returns the live OS reduce-motion setting (initial async read +
16
36
  `reduceMotionChanged` subscription). A module uses it to zero out an animation's duration, never to
17
37
  skip the animation's *effect* (state must still change, just without the transition).
18
38
 
39
+ **One module-level store, read through `useSyncExternalStore`.** The probe and the native
40
+ `reduceMotionChanged` listener are opened by the *first* subscriber and closed when the last one
41
+ leaves — hook instances are store reads, not subscriptions of their own. It used to open both per
42
+ mount, so ten `<Button>`s cost 20 listeners and 20 async bridge round-trips. `useMotion()` therefore
43
+ costs one read: it resolves the tier through `resolveDeviceTier(reduced)` rather than calling
44
+ `useDeviceTier()`, which would read the same store a second time.
45
+
46
+ **It seeds `true`, not `false`.** `AccessibilityInfo.isReduceMotionEnabled()` resolves after the
47
+ first commit *and* after the first effect pass, so a `false` seed reports "motion is fine" for that
48
+ window and every correctly-written gate in the library runs anyway (WCAG 2.3.3). The last OS answer
49
+ is cached per process, so only the very first mount in an app run pays the pessimistic seed —
50
+ without that cache, every later mount would lose its enter animation for a user who never asked for
51
+ less motion. `resetReducedMotionCache()` is test-only; it also invalidates a probe still in flight,
52
+ so a promise from a previous suite cannot land in the next one.
53
+
54
+ `useAnnounce(message)` announces when `message` becomes present or changes — never on every render,
55
+ and never twice for the same string. `undefined` means "nothing to announce".
56
+
57
+ **Why it exists:** `accessibilityLiveRegion` is an **Android-only** RN prop, so a status message
58
+ relying on it alone is announced by nothing on iOS. The imperative call reaches VoiceOver and
59
+ TalkBack alike — the mechanism `Toast.show()` established.
60
+
61
+ **The rule that comes with it:** a caller must NOT also put `accessibilityLiveRegion` on the message
62
+ it renders, or Android announces twice. Either use this hook and drop the live region (`input`,
63
+ `form-field`, `file-upload`, `toast`), or keep the live region gated to
64
+ `Platform.OS === "android"` and don't call this hook (`combobox`'s empty state).
65
+
66
+ ## Announcing (`announce.ts` / `announce.web.ts`)
67
+
68
+ The transition rule ("changed, and not `undefined`") stays in `useAnnounce` for **both** platforms;
69
+ `useAnnouncer()` supplies only the primitive that speaks, so the two cannot drift.
70
+
71
+ **`react-native-web@0.21.2` ships `announceForAccessibility` as an empty function body**
72
+ (`dist/exports/AccessibilityInfo/index.js`), so every WCAG 4.1.3 status message in the library was
73
+ silent on web. The web primitive is one shared ARIA live region; four details make it *speak*:
74
+
75
+ - **`aria-live="polite"`** (+ `role="status"`), never `assertive` — nothing here earns interrupting
76
+ the user mid-sentence.
77
+ - **In the document, empty, before the text lands** — the fill is deferred one task. A node inserted
78
+ with its text already in it gives the reader nothing to diff and is routinely never announced.
79
+ - **Two regions alternate.** Re-writing the identical string to one node is not a DOM mutation, so a
80
+ repeat would be silent — and `useAnnounce` re-announces a message that cleared and came back.
81
+ - **Visually hidden = the clip technique.** `display:none`/`visibility:hidden` drop the node out of
82
+ the accessibility tree, which is the whole point of the node.
83
+
84
+ One region per document, retained by the first `useAnnouncer()` and released by the last (the
85
+ `useReducedMotion` store's shape). **Teardown is deferred a task on purpose:** StrictMode runs
86
+ mount → unmount → mount, and removing the region on that middle cleanup would discard the fill the
87
+ first mount just queued, while the second mount (correctly) does not re-announce.
88
+
89
+ Tested in jsdom against real `react-native-web` (`__tests__/announce.dom.test.tsx`), which proves
90
+ the DOM is shaped right. **Only a real VoiceOver/NVDA/TalkBack pass proves it is spoken.**
91
+
92
+ ## Keyboard (`keyboard.ts` / `keyboard.web.ts`)
93
+
94
+ Imported directly (`core/a11y/keyboard`), not through `index.ts`. Five exports:
95
+
96
+ | Export | What it does |
97
+ |--------|--------------|
98
+ | `useDismissOnEscape(active, onDismiss)` | Capture-phase `keydown` on `document`; Escape → `stopPropagation()` + dismiss. |
99
+ | `useFocusTrap(ref, active)` | Focuses the first tabbable, cycles Tab/Shift+Tab, **restores focus on deactivate**. |
100
+ | `useRovingKeys(ref, active, options)` | Capture-phase `keydown` on the container: arrows per `orientation`, Home/End, Enter/Space, optional typeahead. |
101
+ | `useSpaceActivation(ref, onActivate, active?)` | Makes **Space** activate a non-`button` role. |
102
+ | `focusItemProps(index, activeIndex)` | `{ tabIndex: 0 \| -1 }` — pure, real on both platforms. |
103
+
104
+ **Why `useSpaceActivation` is a ref hook, not a props object.** `onKeyDown` is in no RN type and
105
+ `{...rest}` is lint-banned, so a returned props bag cannot reach a `Pressable` at all. RNW's
106
+ `PressResponder.isValidKeyPress` is `Enter || (Space && isButtonish)`, and `isButtonish` needs a
107
+ `button` tag or `role="button"` — so `role="checkbox" | "radio" | "tab" | "menuitem"` render as a
108
+ `div` where Space scrolls the page instead of activating. **Do not "fix" that by changing the role.**
109
+ First consumer: `checkbox` (`Checkbox.tsx`, where Space is the primary key).
110
+
111
+ ## Accessibility state props — flat, never object-shaped
112
+
113
+ See `docs/PLATFORM-A11Y-PROPS.md` for the full rationale. Summary: `accessibilityState={{…}}`,
114
+ `accessibilityValue={{…}}` and `accessibilityHint` are silently discarded by
115
+ `react-native-web@0.21.2`'s `createDOMProps` allowlist, which is flat (`aria-selected`,
116
+ `aria-expanded`, `aria-checked`, `aria-busy`, `aria-disabled`, …). React Native itself accepts the
117
+ flat form natively and merges it into `accessibilityState`, so every module's `resolve*Accessibility()`
118
+ in `*.variants.ts` returns flat `aria-*` keys, spread 1:1 onto the JSX. The two exceptions with no
119
+ native equivalent (`aria-current`, `aria-pressed`) emit BOTH the flat web prop and the nearest
120
+ native `accessibilityState` key.
121
+
19
122
  ## Known gaps
20
123
 
21
- - None yet grows as more shared a11y concerns surface (e.g. a `useAccessibilityAnnounce` if a
22
- later component needs live-region announcements).
124
+ - **Still silent on web:** `toast/Toast.tsx` (`show()`) and `copy-button/CopyButton.tsx` call
125
+ `AccessibilityInfo.announceForAccessibility` directly. Both sit inside a component, so the fix is
126
+ `const announce = useAnnouncer()` + `announce(…)` — no new API, native unchanged.
127
+ - **Still silent on iOS:** the remaining `accessibilityLiveRegion` call sites (`date-picker/PickerField`).
128
+ RNW 0.21.2 forwards the prop to `aria-live` with its deprecation warning commented out, so web and
129
+ Android are fine. Converge on `useAnnounce` + dropping the prop; a props-bag helper can't work
130
+ (JSX spread is lint-banned). `pagination` and `combobox`'s error text converged in the
131
+ accessibility-props migration (2026-08); `combobox`'s empty state deliberately keeps its
132
+ `Platform.OS === "android"`-gated live region instead — iOS/VoiceOver announces a text-content
133
+ change in an already-visible node without it, so `useAnnounce` there would double-speak.
134
+ - No `useAccessibilityFocus` (programmatically moving reader focus) — nothing has needed it yet.
135
+ - Six modules besides `checkbox` need `useSpaceActivation` (radio, tab, menu item, …) — only
136
+ `checkbox` is wired so far.
137
+ - `useFocusTrap` does not pull focus back when it escapes the subtree by means other than Tab
138
+ (a click outside, or a programmatic `focus()`); it only cycles Tab at the ends.
139
+ - **A consumer that freezes the value at mount still reads the pre-probe seed.**
140
+ `message-bubble/MessageBubble.tsx:41` does `useRef(motion.decorative)`, so the very first bubble
141
+ mounted in a process keeps whatever the seed said. The cache makes that one mount, not every
142
+ mount; the real fix belongs in the module.
143
+ - A probe that settles after the last reader unmounts still writes the cache on purpose (the next
144
+ mount wants that answer). There is no per-instance `mounted` guard any more — the store simply has
145
+ no listeners to notify.
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Native/default counterpart of `announce.web.ts`: the one imperative "say this now" primitive
5
+ * behind `useAnnounce`. On iOS/Android the OS owns the announcement queue, so this is a direct
6
+ * `AccessibilityInfo.announceForAccessibility` call and nothing else.
7
+ *
8
+ * The `.ts` / `.web.ts` pair (the `keyboard.ts` precedent) is what keeps the DOM code out of the
9
+ * native dependency graph entirely: Metro resolves `announce.web.ts` only for a web bundle, and
10
+ * Jest (whose `react-native` preset has no `web` platform) always resolves THIS file. A
11
+ * `Platform.OS` branch would instead ship the DOM code to native.
12
+ *
13
+ * The de-duplication that stops an unchanged message repeating lives one layer up in `useAnnounce`,
14
+ * deliberately: both platforms then share one set of semantics, and this primitive speaks every
15
+ * time it is called — exactly what `announceForAccessibility` does.
16
+ */
17
+
18
+ import { AccessibilityInfo } from "react-native";
19
+ function announce(message) {
20
+ AccessibilityInfo.announceForAccessibility(message);
21
+ }
22
+
23
+ /**
24
+ * Returns the process-wide announce function. A hook rather than a bare export so the web half can
25
+ * own a live region's lifetime without changing this signature; here there is nothing to set up.
26
+ */
27
+ export function useAnnouncer() {
28
+ return announce;
29
+ }
30
+ //# sourceMappingURL=announce.js.map
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Web implementation of the library's screen-reader announcement primitive. Metro only resolves
5
+ * this file for a web bundle (see `announce.ts`), so it is the one place that may assume a DOM.
6
+ *
7
+ * **Why it exists at all.** `react-native-web@0.21.2` ships
8
+ * `AccessibilityInfo.announceForAccessibility` as an empty function body
9
+ * (`dist/exports/AccessibilityInfo/index.js`) — every WCAG 4.1.3 status message in the library is
10
+ * silent on web without this. The web equivalent is an ARIA live region, which the platform reads
11
+ * out when its text *changes*, so the whole job here is producing a change a screen reader can see.
12
+ *
13
+ * **Why the DOM types are hand-written.** `tsconfig.json` sets `"lib": ["ESNext"]` — `document` and
14
+ * `HTMLElement` do not exist as types in `src/`, `any` is lint-banned, and augmenting
15
+ * `react-native`'s types would ship DOM-only APIs to every consumer's native build through
16
+ * `lib/typescript/**`. A module-local structural surface plus `declare const document` erases
17
+ * completely at emit, the same contract `keyboard.web.ts` established at this boundary.
18
+ */
19
+
20
+ import { useEffect } from "react";
21
+ /** `typeof` rather than a null check: a bare `document` reference throws outside a browser. */
22
+ function getDocument() {
23
+ return typeof document === "undefined" ? undefined : document;
24
+ }
25
+
26
+ /** How the DOM tests find the region; changing it is a contract change, not a rename. */
27
+ const CONTAINER_ATTRIBUTE = "data-pixelize-announcer";
28
+
29
+ /**
30
+ * The clip technique, and only the clip technique. `display:none` and `visibility:hidden` both drop
31
+ * the node out of the accessibility tree, which is the entire point of the node.
32
+ */
33
+ const VISUALLY_HIDDEN = "position:absolute;width:1px;height:1px;margin:-1px;padding:0;" + "overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;";
34
+ let container = null;
35
+ let regions = null;
36
+ /** Which of the pair receives the next message. */
37
+ let useSecond = false;
38
+ let mountCount = 0;
39
+ let teardownTimer = null;
40
+ /** Bumped on teardown so a fill still queued against a removed region cannot land. */
41
+ let generation = 0;
42
+ function createRegion(doc) {
43
+ const region = doc.createElement("div");
44
+ // `polite` waits for a pause; `assertive` cuts the user off mid-sentence, which no status message
45
+ // in this library warrants. `role="status"` carries the same politeness for readers that map it.
46
+ region.setAttribute("role", "status");
47
+ region.setAttribute("aria-live", "polite");
48
+ region.setAttribute("aria-atomic", "true");
49
+ return region;
50
+ }
51
+
52
+ /** Idempotent: one container with one region pair for the whole document, however many hooks mount. */
53
+ function mountRegions() {
54
+ if (container !== null) return;
55
+ const doc = getDocument();
56
+ const body = doc?.body;
57
+ if (doc === undefined || body == null) return;
58
+ const node = doc.createElement("div");
59
+ node.setAttribute(CONTAINER_ATTRIBUTE, "");
60
+ node.setAttribute("style", VISUALLY_HIDDEN);
61
+ const first = createRegion(doc);
62
+ const second = createRegion(doc);
63
+ node.appendChild(first);
64
+ node.appendChild(second);
65
+ body.appendChild(node);
66
+ container = node;
67
+ regions = [first, second];
68
+ useSecond = false;
69
+ }
70
+ function unmountRegions() {
71
+ generation += 1;
72
+ container?.remove();
73
+ container = null;
74
+ regions = null;
75
+ }
76
+
77
+ /**
78
+ * Puts `message` in front of the screen reader. Two things make this actually speak rather than
79
+ * merely look right in the DOM:
80
+ *
81
+ * 1. **The fill is deferred a task.** A live region that is inserted with its text already in it
82
+ * gives the reader nothing to diff and is routinely announced by nothing at all. The region is
83
+ * always in the document and empty first, and gains its text in a later task.
84
+ * 2. **The pair alternates.** Writing the identical string to the same node is not a DOM mutation,
85
+ * so a repeat would be silent — and `useAnnounce` re-announces a message that cleared and came
86
+ * back, matching `announceForAccessibility`, which speaks on every call. Alternating means every
87
+ * announcement is an empty-to-text change on a node, whatever the previous message was.
88
+ */
89
+ function announce(message) {
90
+ const pair = regions;
91
+ if (pair === null) return;
92
+ const [first, second] = pair;
93
+ const target = useSecond ? second : first;
94
+ const previous = useSecond ? first : second;
95
+ useSecond = !useSecond;
96
+
97
+ // Drop the message the reader was last given so the two regions never both hold status text.
98
+ previous.textContent = "";
99
+ target.textContent = "";
100
+ const opened = generation;
101
+ setTimeout(() => {
102
+ if (opened === generation) target.textContent = message;
103
+ }, 0);
104
+ }
105
+
106
+ /**
107
+ * Retains the shared live region for the lifetime of the calling component, and returns the
108
+ * announce function. Same shape as `useReducedMotion`'s store: process-wide setup opened by the
109
+ * first consumer and closed by the last, never one per hook instance.
110
+ *
111
+ * Teardown is deferred a task because StrictMode (and any remount) runs mount → unmount → mount
112
+ * back to back: removing the region synchronously on that middle cleanup would invalidate the fill
113
+ * the first mount just queued, and the second mount does not re-announce.
114
+ */
115
+ export function useAnnouncer() {
116
+ useEffect(() => {
117
+ mountCount += 1;
118
+ if (teardownTimer !== null) {
119
+ clearTimeout(teardownTimer);
120
+ teardownTimer = null;
121
+ }
122
+ mountRegions();
123
+ return () => {
124
+ mountCount -= 1;
125
+ if (mountCount > 0) return;
126
+ teardownTimer = setTimeout(() => {
127
+ teardownTimer = null;
128
+ if (mountCount === 0) unmountRegions();
129
+ }, 0);
130
+ };
131
+ }, []);
132
+ return announce;
133
+ }
134
+ //# sourceMappingURL=announce.web.js.map
@@ -1,26 +1,92 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useState } from "react";
3
+ import { useEffect, useRef, useSyncExternalStore } from "react";
4
4
  import { AccessibilityInfo } from "react-native";
5
+ import { useAnnouncer } from "./announce";
6
+
7
+ /**
8
+ * Last OS answer seen in this process. `isReduceMotionEnabled()` only resolves after the first
9
+ * commit, so without this every later mount would re-pay the pessimistic seed below and lose its
10
+ * enter animation for a user who never asked for less motion.
11
+ */
12
+ let lastKnownReduceMotion = null;
13
+ let nativeSubscription = null;
14
+ /** Bumped by the test reset so a probe still in flight from a previous suite cannot land late. */
15
+ let generation = 0;
16
+ const listeners = new Set();
17
+ function publish(value) {
18
+ if (lastKnownReduceMotion === value) return;
19
+ lastKnownReduceMotion = value;
20
+ for (const listener of listeners) listener();
21
+ }
22
+
23
+ /** One probe and one native listener for the whole process, opened by the first subscriber. */
24
+ function openNativeSubscription() {
25
+ const opened = generation;
26
+ const apply = value => {
27
+ if (opened === generation) publish(value);
28
+ };
29
+ void AccessibilityInfo.isReduceMotionEnabled().then(apply);
30
+ nativeSubscription = AccessibilityInfo.addEventListener("reduceMotionChanged", apply);
31
+ }
32
+ function subscribe(onStoreChange) {
33
+ listeners.add(onStoreChange);
34
+ if (listeners.size === 1) openNativeSubscription();
35
+ return () => {
36
+ listeners.delete(onStoreChange);
37
+ if (listeners.size === 0) {
38
+ nativeSubscription?.remove();
39
+ nativeSubscription = null;
40
+ }
41
+ };
42
+ }
43
+ function getSnapshot() {
44
+ return lastKnownReduceMotion ?? true;
45
+ }
46
+
47
+ /** Test-only: drops the process cache so a suite can assert the pre-probe seed. */
48
+ export function resetReducedMotionCache() {
49
+ generation += 1;
50
+ lastKnownReduceMotion = null;
51
+ nativeSubscription?.remove();
52
+ nativeSubscription = null;
53
+ if (listeners.size > 0) openNativeSubscription();
54
+ }
5
55
 
6
56
  /**
7
57
  * Tracks the OS reduce-motion setting (WCAG 2.3.3) so a press/transition animation can be
8
- * suppressed for a user who has it on. Shared across every animated module press fades,
9
- * expand/collapse, toasts so the setting is read once per mount, not re-implemented per module.
58
+ * suppressed for a user who has it on. Every animated module reads this one store: ten `<Button>`s
59
+ * cost one native listener and one bridge round-trip, not ten of each.
60
+ *
61
+ * Seeds `true` until the async probe answers: a `false` seed makes `motion.enabled` (and on a
62
+ * high-tier device `motion.decorative`) true for the first commit AND the first effect pass, which
63
+ * defeats every correctly-written reduce-motion gate in the library at once.
10
64
  */
11
65
  export function useReducedMotion() {
12
- const [reduced, setReduced] = useState(false);
66
+ return useSyncExternalStore(subscribe, getSnapshot);
67
+ }
68
+
69
+ /**
70
+ * Announces a status message to the screen reader when it becomes present, or changes (WCAG 4.1.3).
71
+ * `accessibilityLiveRegion` is Android-only, so it alone leaves iOS VoiceOver silent; this reaches
72
+ * VoiceOver, TalkBack and the browser alike.
73
+ *
74
+ * A caller must NOT also put `accessibilityLiveRegion` on the message it renders: on Android that
75
+ * announces twice. Pass `undefined` for "no message"; a message that stays the same is not repeated.
76
+ *
77
+ * The transition rule lives here, on both platforms: `useAnnouncer()` supplies only the platform's
78
+ * "say this now" primitive (`announceForAccessibility` on native, a shared ARIA live region on web,
79
+ * where that call is an empty function — see `announce.web.ts`).
80
+ */
81
+ export function useAnnounce(message) {
82
+ const announce = useAnnouncer();
83
+ // Compared against, never rendered from: the effect must fire on a transition, not every render.
84
+ const announced = useRef(undefined);
13
85
  useEffect(() => {
14
- let mounted = true;
15
- void AccessibilityInfo.isReduceMotionEnabled().then(value => {
16
- if (mounted) setReduced(value);
17
- });
18
- const sub = AccessibilityInfo.addEventListener("reduceMotionChanged", setReduced);
19
- return () => {
20
- mounted = false;
21
- sub.remove();
22
- };
23
- }, []);
24
- return reduced;
86
+ if (message !== undefined && message !== announced.current) {
87
+ announce(message);
88
+ }
89
+ announced.current = message;
90
+ }, [announce, message]);
25
91
  }
26
92
  //# sourceMappingURL=index.js.map