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
@@ -9,7 +9,7 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
9
9
  | File | Role |
10
10
  |------|------|
11
11
  | `Slider.tsx` | The component. `PanResponder` wiring, layout measurement, accessibility actions. |
12
- | `Slider.variants.ts` | Pure drag math (`resolveSliderPositionValue`, `snapSliderValue`, `stepSliderValue`, …), colour resolvers, accessibility resolver, and the `createThemedVariants` structural resolvers. No React, no PanResponder. |
12
+ | `Slider.variants.ts` | Pure drag math (`resolveSliderPositionValue`, `snapSliderValue`, `stepSliderValue`, …), the keyboard map (`resolveSliderKeyValue`, `sliderPageStep`), colour resolvers, accessibility resolver, and the `createThemedVariants` structural resolvers. No React, no PanResponder. |
13
13
  | `index.ts` | Public surface: `Slider`, `SliderProps`, `SliderSize`. |
14
14
  | `__tests__/Slider.test.ts` | Pure: WCAG contrast (all brands × modes) + drag-math/step/accessibility contracts. |
15
15
  | `__tests__/Slider.render.test.tsx` | Render: layout-driven positioning, the REAL `PanResponder` gesture fired end-to-end, increment/decrement actions, disabled. |
@@ -27,7 +27,7 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
27
27
  | `size` | `sm \| md` | `md` | Closed union — track height + thumb diameter. |
28
28
  | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once. No `width`/`fullWidth` prop — the row stretches to its container by RN's default `alignItems: stretch`, same as `ProgressBar`. |
29
29
  | `accessibilityLabel` | `string` | — | **Required** — the control structurally never renders visible text, so this is the only accessible name a screen reader has (mirrors `Switch`'s and `Button`'s icon-only contract). |
30
- | `testID` | `string` | — | Also stamps `${testID}-fill` and `${testID}-thumb`. |
30
+ | `testID` | `string` | — | Also stamps `${testID}-fill`, `${testID}-thumb`, and `${testID}-focus-ring` (present only while focused). |
31
31
 
32
32
  ## Two design choices (spec left these open — documented here)
33
33
 
@@ -45,6 +45,20 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
45
45
 
46
46
  ## Accessibility contract (WCAG)
47
47
 
48
+ - **2.1.1 (keyboard)** — the root sets `tabIndex={disabled ? -1 : 0}` (plus `focusable` for
49
+ native/TV) and handles `onKeyDown`. Both are load-bearing: RNW emits a `tabIndex` only for an
50
+ explicit `tabIndex`/`focusable`, a natively-focusable tag, or a role in
51
+ `button|checkbox|link|radio|textbox|switch`. `accessibilityRole="adjustable"` maps to
52
+ `role="slider"`, which is in none of them — and RNW does not forward RN's `accessible` prop at all
53
+ — so before this the control could not be reached by Tab, and `accessibilityActions` (a
54
+ screen-reader gesture) was the only non-pointer path. Keys, via `resolveSliderKeyValue`:
55
+ Left/Down decrement and Right/Up increment by `step`, Home/End jump to `min`/`max`, PageDown/PageUp
56
+ move by `sliderPageStep` (the whole number of steps nearest a tenth of the range, never fewer than
57
+ one). Every one of them fires `onSlidingComplete`, and calls `preventDefault` so the page does not
58
+ scroll instead. RN's TypeScript `ViewPropTypes.d.ts` omits `onKeyDown` (its Flow types declare it),
59
+ so the root `View` is re-typed once, locally, in `Slider.tsx`.
60
+ - **2.4.7 (focus visible)** — Button's `border.focus` ring, drawn a 2dp gap OUTSIDE the row (nothing
61
+ clips the slider), rendered only while focused and never while disabled.
48
62
  - **2.5.7 (dragging movements)** — `accessibilityRole="adjustable"` with `accessibilityActions`
49
63
  declaring `increment`/`decrement` and `onAccessibilityAction` adjusting `value` by `step`, clamped.
50
64
  iOS's `adjustable` trait already offers these via the two-finger swipe gesture without the actions
@@ -65,8 +79,12 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
65
79
  actually carries the boundary, not the 2dp ring.
66
80
  - **2.3.3 (reduced motion)** — N/A. No animation: the thumb's position is a direct function of
67
81
  `value`, never an eased/animated transition.
68
- - `accessibilityValue={{ min, max, now }}` — `now` is clamped onto `[min, max]` even if a caller
69
- passes an out-of-range `value`, so a screen reader never announces something the track can't render.
82
+ - Flat `aria-valuemin`/`aria-valuemax`/`aria-valuenow`, not `accessibilityValue={{}}` —
83
+ react-native-web 0.21 drops the object form, so this used to announce `role="slider"` with no
84
+ position on web. The host here is a `View`, which merges the flat props into `accessibilityValue`
85
+ natively, so one form is correct on both platforms. `aria-valuenow` is clamped onto `[min, max]`
86
+ even if a caller passes an out-of-range `value`, so a screen reader never announces something the
87
+ track can't render. Proven on the real DOM by `__tests__/Slider.dom.test.tsx`.
70
88
 
71
89
  ## Patterns
72
90
 
@@ -88,8 +106,16 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
88
106
 
89
107
  ## Known gaps
90
108
 
91
- None.
109
+ - The thumb does not move under an active drag on a keyboard-only device — that is by design (there
110
+ is no drag), but it also means `onSlidingComplete` fires per keystroke rather than once per
111
+ "gesture", so a consumer that persists on every completion will write once per arrow press.
92
112
 
93
113
  ## Performance
94
114
 
95
115
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). `applyTouch`/`handleLayout`/`handleAccessibilityAction` are only wired to the root `View`'s host props, never handed to a library child component — nothing to memoize.
116
+
117
+ ## Modernization (v1.0.7)
118
+
119
+ - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
120
+ - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
121
+ - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
@@ -21,9 +21,19 @@
21
21
 
22
22
  import { memo, useRef, useState } from "react";
23
23
  import { PanResponder, StyleSheet, View } from "react-native";
24
- import { useTheme } from "../../theme/index.js";
25
- import { resolveSliderAccessibility, resolveSliderPositionValue, resolveSliderThumbColors, resolveSliderTrackColors, sliderFillStructure, sliderRowStructure, SLIDER_HIT_SLOP, SLIDER_SIZES, sliderThumbStructure, sliderTrackStructure, sliderValueToFraction, stepSliderValue } from "./Slider.variants.js";
24
+ import { useTheme } from "../../theme/hooks.js";
25
+ import { resolveSliderAccessibility, resolveSliderKeyValue, resolveSliderPositionValue, resolveSliderThumbColors, resolveSliderTrackColors, sliderFillStructure, sliderRowStructure, SLIDER_HIT_SLOP, SLIDER_SIZES, sliderThumbStructure, sliderTrackStructure, sliderValueToFraction, stepSliderValue } from "./Slider.variants.js";
26
26
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
+ /**
28
+ * RN's Flow `ViewProps` declares `onKeyDown` and react-native-web forwards it straight to the DOM
29
+ * node, but RN's TypeScript `ViewPropTypes.d.ts` omits it — this re-type is the only cast here.
30
+ */
31
+ const KeyboardView = View;
32
+
33
+ // Same offset ring as Button: `border.focus` a small gap OUTSIDE the control, on the canvas, which
34
+ // is the surface that role token is proven ≥ 3:1 against (WCAG 2.4.11).
35
+ const FOCUS_RING_WIDTH = 2;
36
+ const FOCUS_RING_GAP = 2;
27
37
  export const Slider = /*#__PURE__*/memo(function Slider(props) {
28
38
  const {
29
39
  value,
@@ -40,6 +50,8 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
40
50
  } = props;
41
51
  const theme = useTheme();
42
52
  const [trackWidth, setTrackWidth] = useState(0);
53
+ // Keyboard / external-keyboard / TV-remote focus (no-op on pure touch, correct everywhere else).
54
+ const [focused, setFocused] = useState(false);
43
55
 
44
56
  // The PanResponder callbacks below are created ONCE (see `useState` lazy init further down) and
45
57
  // must never close over a stale render's props. Reassigning a ref's `.current` in the render body
@@ -110,6 +122,13 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
110
122
  setTrackWidth(event.nativeEvent.layout.width);
111
123
  };
112
124
 
125
+ /** One non-drag adjustment: report it, then mirror a drag's release. */
126
+ const commitValue = next => {
127
+ const state = live.current;
128
+ state.onValueChange(next);
129
+ state.onSlidingComplete?.(next);
130
+ };
131
+
113
132
  // WCAG 2.5.7 — the non-drag alternative. iOS's `adjustable` trait already offers increment/decrement
114
133
  // via the two-finger swipe gesture; Android TalkBack needs them declared as `accessibilityActions`
115
134
  // (below) to surface them at all.
@@ -120,19 +139,42 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
120
139
  actionName
121
140
  } = event.nativeEvent;
122
141
  if (actionName !== "increment" && actionName !== "decrement") return;
123
- const next = stepSliderValue(state.value, actionName === "increment" ? 1 : -1, state.min, state.max, state.step);
124
- state.onValueChange(next);
125
- state.onSlidingComplete?.(next);
142
+ commitValue(stepSliderValue(state.value, actionName === "increment" ? 1 : -1, state.min, state.max, state.step));
143
+ };
144
+
145
+ // WCAG 2.1.1 — the sighted keyboard user's only path in. `accessibilityActions` above is a
146
+ // screen-reader gesture, so without this the control is operable by pointer alone.
147
+ const handleKeyDown = event => {
148
+ const state = live.current;
149
+ if (state.disabled) return;
150
+ const next = resolveSliderKeyValue(event.nativeEvent.key, state);
151
+ if (next === undefined) return;
152
+ // Arrow/Page/Home/End would otherwise scroll the page out from under the control.
153
+ event.preventDefault?.();
154
+ commitValue(next);
126
155
  };
127
- return /*#__PURE__*/_jsxs(View, {
156
+ const handleFocus = () => setFocused(true);
157
+ const handleBlur = () => setFocused(false);
158
+ return /*#__PURE__*/_jsxs(KeyboardView, {
128
159
  testID: testID,
129
160
  accessible: true,
130
161
  accessibilityRole: a11y.accessibilityRole,
131
162
  accessibilityLabel: accessibilityLabel,
132
- accessibilityValue: a11y.accessibilityValue,
133
- accessibilityState: a11y.accessibilityState,
163
+ "aria-valuemin": a11y["aria-valuemin"],
164
+ "aria-valuemax": a11y["aria-valuemax"],
165
+ "aria-valuenow": a11y["aria-valuenow"],
166
+ "aria-disabled": a11y["aria-disabled"],
134
167
  accessibilityActions: a11y.accessibilityActions,
135
- onAccessibilityAction: handleAccessibilityAction,
168
+ onAccessibilityAction: handleAccessibilityAction
169
+ // RNW emits `tabIndex` only for an explicit one, an explicit `focusable`, a natively-focusable
170
+ // tag, or roles in button|checkbox|link|radio|textbox|switch — `adjustable` maps to
171
+ // `role="slider"`, which is in none of them, so without this Tab skips the control entirely.
172
+ ,
173
+ tabIndex: disabled ? -1 : 0,
174
+ focusable: !disabled,
175
+ onKeyDown: handleKeyDown,
176
+ onFocus: handleFocus,
177
+ onBlur: handleBlur,
136
178
  onLayout: handleLayout,
137
179
  onStartShouldSetResponder: panResponder.panHandlers.onStartShouldSetResponder,
138
180
  onMoveShouldSetResponder: panResponder.panHandlers.onMoveShouldSetResponder,
@@ -145,7 +187,14 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
145
187
  style: [sliderRowStructure(theme, {
146
188
  size
147
189
  }), disabled && styles.dimmed, style],
148
- children: [/*#__PURE__*/_jsx(View, {
190
+ children: [focused && !disabled && /*#__PURE__*/_jsx(View, {
191
+ pointerEvents: "none",
192
+ testID: testID === undefined ? undefined : `${testID}-focus-ring`,
193
+ style: [styles.focusRing, {
194
+ borderColor: theme.colors.border.focus,
195
+ borderRadius: theme.radii.base + FOCUS_RING_GAP + FOCUS_RING_WIDTH
196
+ }]
197
+ }), /*#__PURE__*/_jsx(View, {
149
198
  pointerEvents: "none",
150
199
  style: [sliderTrackStructure(theme, {
151
200
  size
@@ -178,6 +227,14 @@ const styles = StyleSheet.create({
178
227
  // — the same treatment `Button`/`Checkbox`/`NumberInput` use.
179
228
  dimmed: {
180
229
  opacity: 0.5
230
+ },
231
+ focusRing: {
232
+ position: "absolute",
233
+ top: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
234
+ left: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
235
+ right: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
236
+ bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
237
+ borderWidth: FOCUS_RING_WIDTH
181
238
  }
182
239
  });
183
240
  //# sourceMappingURL=Slider.js.map
@@ -109,6 +109,51 @@ export function resolveSliderPositionValue(input) {
109
109
  export function stepSliderValue(value, direction, min, max, step) {
110
110
  return clampSliderValue(value + direction * step, min, max);
111
111
  }
112
+
113
+ /** How much of the range PageUp/PageDown cover, before rounding onto a whole number of `step`s. */
114
+ export const SLIDER_PAGE_FRACTION = 0.1;
115
+
116
+ /**
117
+ * The coarse PageUp/PageDown amount — the whole number of `step`s nearest a tenth of the range,
118
+ * never fewer than one, so a 0–5 slider still pages by `step` instead of rounding down to zero.
119
+ */
120
+ export function sliderPageStep(min, max, step) {
121
+ const safeStep = step > 0 ? step : 1;
122
+ const range = max - min;
123
+ if (range <= 0) return safeStep;
124
+ return Math.max(1, Math.round(range * SLIDER_PAGE_FRACTION / safeStep)) * safeStep;
125
+ }
126
+ /**
127
+ * The WAI-ARIA slider keyboard contract, resolved purely: Left/Down decrement and Right/Up increment
128
+ * by `step`, Home/End jump to the bounds, PageDown/PageUp move by `sliderPageStep`. Returns
129
+ * `undefined` for any other key, which is also how the caller knows not to swallow that keystroke.
130
+ */
131
+ export function resolveSliderKeyValue(key, input) {
132
+ const {
133
+ value,
134
+ min,
135
+ max,
136
+ step
137
+ } = input;
138
+ switch (key) {
139
+ case "ArrowLeft":
140
+ case "ArrowDown":
141
+ return stepSliderValue(value, -1, min, max, step);
142
+ case "ArrowRight":
143
+ case "ArrowUp":
144
+ return stepSliderValue(value, 1, min, max, step);
145
+ case "Home":
146
+ return clampSliderValue(min, min, max);
147
+ case "End":
148
+ return clampSliderValue(max, min, max);
149
+ case "PageDown":
150
+ return stepSliderValue(value, -1, min, max, sliderPageStep(min, max, step));
151
+ case "PageUp":
152
+ return stepSliderValue(value, 1, min, max, sliderPageStep(min, max, step));
153
+ default:
154
+ return undefined;
155
+ }
156
+ }
112
157
  /**
113
158
  * Maps the track's two colours onto ROLE tokens — never a raw ramp or a hardcoded hex. `fill` is
114
159
  * `accent.text`, NOT the seemingly-obvious `accent.solid`: measured, `accent.solid` against
@@ -146,23 +191,25 @@ export function resolveSliderThumbColors(colors) {
146
191
  }
147
192
  /**
148
193
  * Derives the accessibility surface once, purely, so the contract is testable without a renderer.
149
- * `now` is clamped onto `[min, max]` — a screen reader must never announce a value the track itself
150
- * couldn't render. `accessibilityActions` declares BOTH `increment`/`decrement` explicitly: iOS's
151
- * `adjustable` trait already offers these via the two-finger swipe-up/down gesture without them
152
- * declared, but Android TalkBack has no native "adjustable" gesture and only surfaces custom actions
153
- * that are declared here (WCAG 2.5.7 — a drag-only slider has no non-pointer alternative otherwise).
194
+ * `aria-valuenow` is clamped onto `[min, max]` — a screen reader must never announce a value the
195
+ * track itself couldn't render. `accessibilityActions` declares BOTH `increment`/`decrement`
196
+ * explicitly: iOS's `adjustable` trait already offers these via the two-finger swipe-up/down gesture
197
+ * without them declared, but Android TalkBack has no native "adjustable" gesture and only surfaces
198
+ * custom actions that are declared here (WCAG 2.5.7 — a drag-only slider has no non-pointer
199
+ * alternative otherwise).
200
+ *
201
+ * FLAT `aria-*`, not `accessibilityValue={{…}}`/`accessibilityState={{…}}`: react-native-web 0.21
202
+ * drops both objects, so on web the slider announced its role and NO position at all. The host here
203
+ * is a `View`, which merges every flat prop into the object form natively (`View.js`), so one flat
204
+ * form is right on both platforms.
154
205
  */
155
206
  export function resolveSliderAccessibility(input) {
156
207
  return {
157
208
  accessibilityRole: "adjustable",
158
- accessibilityValue: {
159
- min: input.min,
160
- max: input.max,
161
- now: clampSliderValue(input.value, input.min, input.max)
162
- },
163
- accessibilityState: {
164
- disabled: input.disabled === true
165
- },
209
+ "aria-valuemin": input.min,
210
+ "aria-valuemax": input.max,
211
+ "aria-valuenow": clampSliderValue(input.value, input.min, input.max),
212
+ "aria-disabled": input.disabled === true,
166
213
  accessibilityActions: [{
167
214
  name: "increment"
168
215
  }, {
@@ -41,12 +41,16 @@ the scale lives on the child, never the box.
41
41
  ## Accessibility contract (WCAG)
42
42
 
43
43
  - **The OUTER box, not the glyph, carries the whole contract** — `accessibilityRole="progressbar"`,
44
- the accessible name (`accessibilityLabel ?? "Loading"`), and `accessibilityState={{ busy: true }}`
45
- (1.4.1 — the loading state is announced, not left to be inferred from a shape appearing on
46
- screen). The inner `ActivityIndicator` is `accessibilityElementsHidden` +
47
- `importantForAccessibility="no-hide-descendants"` — decorative chrome, exactly how `Button` treats
48
- its own embedded loading spinner, so a screen reader announces ONE "Loading" node, never a nested
49
- second element.
44
+ the accessible name (`accessibilityLabel ?? "Loading"`), and `aria-busy={true}` (1.4.1 the
45
+ loading state is announced, not left to be inferred from a shape appearing on screen). The inner
46
+ `ActivityIndicator` is `aria-hidden` — decorative chrome, exactly how `Button` treats its own
47
+ embedded loading spinner, so a screen reader announces ONE "Loading" node, never a nested second
48
+ element.
49
+ - **Flat `aria-*`, not `accessibilityState`/`accessibilityElementsHidden`+`importantForAccessibility`**
50
+ — react-native-web 0.21.2 forwards only the flat vocabulary to the DOM; the object form and the two
51
+ native-only hiding props reach nothing on web (`accessibilityHint` has zero occurrences in RNW's
52
+ dist). `aria-hidden={true}` alone covers both platforms: RN's `View` maps it onto
53
+ `accessibilityElementsHidden` + `importantForAccessibility="no-hide-descendants"` for native.
50
54
  - **1.4.11 (Graphical Objects)** — a spinner is a graphical object required to understand that work
51
55
  is ongoing, so both tones are measured ≥ 3:1 against `bg.canvas`, `bg.surface`, AND `bg.raised` on
52
56
  all 8 brands × both modes (`Spinner.test.ts`) — never eyeballed.
@@ -95,3 +99,9 @@ None — no icon, no new theme token, no new core helper needed for this compone
95
99
  ## Performance
96
100
 
97
101
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Only child is `ActivityIndicator` (RN host primitive) receiving primitives/plain style values — nothing to memoize.
102
+
103
+ ## Modernization (v1.0.7)
104
+
105
+ - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
106
+ - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
107
+ - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
@@ -7,10 +7,10 @@
7
7
  * screen reader announces one "Loading" node — never the indicator as a second, redundant element.
8
8
  */
9
9
 
10
- import { memo } from "react";
10
+ import { memo, useMemo } from "react";
11
11
  import { ActivityIndicator, View } from "react-native";
12
- import { useReducedMotion } from "../../core/a11y/index.js";
13
- import { useThemeColors } from "../../theme/index.js";
12
+ import { useMotion } from "../../core/motion/index.js";
13
+ import { useThemeColors } from "../../theme/hooks.js";
14
14
  import { resolveSpinnerAccessibility, resolveSpinnerTone, spinnerBox, spinnerGlyphScale } from "./Spinner.variants.js";
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
16
  export const Spinner = /*#__PURE__*/memo(function Spinner({
@@ -21,37 +21,41 @@ export const Spinner = /*#__PURE__*/memo(function Spinner({
21
21
  accessibilityLabel
22
22
  }) {
23
23
  const colors = useThemeColors();
24
- const reducedMotion = useReducedMotion();
24
+ const motion = useMotion();
25
25
  const color = resolveSpinnerTone(colors, tone);
26
26
  const a11y = resolveSpinnerAccessibility({
27
27
  accessibilityLabel
28
28
  });
29
+ const rootStyle = useMemo(() => [spinnerBox({
30
+ size
31
+ }), style], [size, style]);
32
+ const glyphStyle = useMemo(() => spinnerGlyphScale({
33
+ size
34
+ }), [size]);
29
35
  return /*#__PURE__*/_jsx(View, {
30
36
  testID: testID,
31
37
  accessible: true,
32
38
  accessibilityRole: a11y.accessibilityRole,
33
39
  accessibilityLabel: a11y.accessibilityLabel,
34
- accessibilityState: a11y.accessibilityState,
35
- style: [spinnerBox({
36
- size
37
- }), style],
40
+ "aria-busy": a11y["aria-busy"],
41
+ style: rootStyle,
38
42
  children: /*#__PURE__*/_jsx(ActivityIndicator, {
39
43
  testID: testID === undefined ? undefined : `${testID}-glyph`,
40
44
  size: "small",
41
45
  color: color
42
46
  // A frozen (non-spinning) glyph for a reduced-motion user (WCAG 2.3.3) — the box's own
43
47
  // `busy` state + label above is the real signal, exactly how `Button` treats ITS embedded
44
- // spinner as decoration on top of `accessibilityState.busy`. `hidesWhenStopped={false}`
48
+ // spinner as decoration on top of `aria-busy`. `hidesWhenStopped={false}`
45
49
  // (iOS defaults this to `true`) keeps a still-visible ring rather than the glyph vanishing:
46
50
  // freezing the motion shouldn't also remove the only visual cue a sighted, non-AT user has.
47
51
  ,
48
- animating: !reducedMotion,
49
- hidesWhenStopped: false,
50
- accessibilityElementsHidden: true,
51
- importantForAccessibility: "no-hide-descendants",
52
- style: spinnerGlyphScale({
53
- size
54
- })
52
+ animating: motion.enabled,
53
+ hidesWhenStopped: false
54
+ // Covers both platforms: RN maps this onto accessibilityElementsHidden +
55
+ // importantForAccessibility, which react-native-web discards entirely.
56
+ ,
57
+ "aria-hidden": true,
58
+ style: glyphStyle
55
59
  })
56
60
  });
57
61
  });
@@ -55,14 +55,16 @@ export const DEFAULT_SPINNER_LABEL = "Loading";
55
55
  * renderer. There is no interaction to gate (a Spinner is never pressable) — unlike
56
56
  * `resolveButtonAccessibility`, the only decision here is the label fallback; `busy` is always true
57
57
  * because a mounted Spinner, by definition, means work is in progress.
58
+ *
59
+ * Flat `aria-busy` rather than `accessibilityState={{ busy }}`: RN's `View` folds the flat prop back
60
+ * into `accessibilityState`, while react-native-web forwards only the flat form — the object reaches
61
+ * nothing at all on web, leaving the spinner announcing a role with no state.
58
62
  */
59
63
  export function resolveSpinnerAccessibility(input) {
60
64
  return {
61
65
  accessibilityRole: "progressbar",
62
66
  accessibilityLabel: input.accessibilityLabel ?? DEFAULT_SPINNER_LABEL,
63
- accessibilityState: {
64
- busy: true
65
- }
67
+ "aria-busy": true
66
68
  };
67
69
  }
68
70
 
@@ -0,0 +1,64 @@
1
+ # stage-progress/
2
+
3
+ Horizontal pipeline — `variant`: `pills` | `bar` | `stepper`. `value` is active stage id.
4
+
5
+ ## Files
6
+
7
+ | File | Role |
8
+ |------|------|
9
+ | `StageProgress.variants.ts` | `resolveStageState` / `resolveActiveStageIndex`, the accessibility resolvers, `resolveStageProgressColors(RoleColors)`, and the structure resolvers. Plain, hook-free. |
10
+ | `StageProgress.tsx` | Renders the row; picks the fill/text pair per stage state and wraps a pressable stage in `Pressable` only when it is interactive. |
11
+
12
+ ## Props
13
+
14
+ `stages` (`StageProgressStage[]`: id, label, disabled) · `value` · `variant` · `readOnly` (default
15
+ `true`) · `onStagePress(id)` · `style` (layout-only, outermost, once, last) · `testID`.
16
+
17
+ ## Accessibility
18
+
19
+ - **`bar`** renders no text at all — only coloured rectangles — so the container carries one
20
+ `progressbar` summary from `resolveStageProgressAccessibility`: label `"Stage 2 of 3: Review"` and
21
+ the 0-indexed `{ min, max, now }` triple. Segments themselves are unlabelled; per-segment labels
22
+ would read the same track three times. No matching stage (`activeIndex` -1) clamps to ordinal 0,
23
+ `now` 0, and no `": label"` suffix.
24
+ - **`pills` / `stepper`** label each stage instead: `resolveStageAccessibilityLabel` appends the
25
+ state — `", completed"` / `", current stage"` / `", not started"`. That suffix is the WCAG 1.4.1
26
+ fix; fill colour is otherwise the only thing separating a completed stage from an upcoming one, and
27
+ there is no "completed" state to announce directly. `resolveStageAccessibilityState` supplies flat
28
+ `aria-selected` (active only) / `aria-disabled` — not `accessibilityState={{…}}`, which
29
+ react-native-web 0.21.2 drops entirely on web.
30
+ - **WCAG 2.4.7** — an interactive stage (`readOnly={false}`, not `disabled`) draws a `border.focus`
31
+ ring (`${testID}-focus-ring-${stage.id}`) while focused. It is drawn **inside** the stage's
32
+ bounds: `stageProgressRowStructure` clips to `overflow: "hidden"` and spaces stages one space step
33
+ apart, so a gap-outside ring would be cut off at the ends and overlap its neighbour elsewhere.
34
+ Over `activeFill` (`accent.solid`) the grey ring's contrast is unmeasured — see Known gaps.
35
+
36
+ ## Touch targets
37
+
38
+ `MIN_TOUCH_TARGET` 44. `STAGE_PILL_MIN_HEIGHT` 32 and `STAGE_STEPPER_CIRCLE` 28 are padded to it by
39
+ vertical-only `hitSlop` (`STAGE_PILL_HIT_SLOP`, `STAGE_STEPPER_HIT_SLOP`) — both shapes already
40
+ exceed 44 horizontally (`minWidth` 72 / 64), so horizontal slop would only overlap neighbours. Slop
41
+ is applied only where a stage is pressable; `readOnly` (and `disabled`) stages render a plain `View`,
42
+ no `Pressable`, and need no target.
43
+
44
+ ## Contrast (measured, 9 brands × both modes)
45
+
46
+ | Pair | Min |
47
+ |------|-----|
48
+ | `activeText` on `activeFill` (`accent.onSolid` / `accent.solid`) | 4.63 |
49
+ | `completedText` on `completedFill` (`status.success.text` / `.subtle`) | 5.66 |
50
+ | `upcomingText` on `upcomingFill` (`fg.muted` / `bg.sunken`) | 6.45 |
51
+ | `upcomingText` on `bg.canvas` (the `stepper` label under the circle) | 6.52 |
52
+
53
+ `track` is `border.default` — a decorative pill/circle outline at 1.08–1.43 on the canvas, never
54
+ escalated to `border.interactive` / `border.focus`. Bar-segment fills are deliberately quiet
55
+ (`bg.sunken` at ~1.01–1.12 on the canvas); the state they encode is carried by the progressbar
56
+ label, not by contrast.
57
+
58
+ ## Known gaps
59
+
60
+ - The focus ring's `border.focus` is the grey proven ≥ 3:1 against the **canvas**; over a stage's
61
+ own fill (notably `activeFill` = `accent.solid`) that ratio is unmeasured (WCAG 2.4.11). The ring
62
+ cannot move outside the stage — the row clips — so a fix would be a token-level decision, not a
63
+ change here.
64
+ - There is no arrow-key path between stages: each interactive stage is its own tab stop.
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * StageProgress — horizontal pipeline stages (pills, bar, or stepper). Read-only by default;
5
+ * optional `onStagePress` when not `readOnly`.
6
+ */
7
+
8
+ import { memo, useCallback, useMemo, useState } from "react";
9
+ import { Pressable, Text, View } from "react-native";
10
+ import { useTheme } from "../../theme/hooks.js";
11
+ import { resolveActiveStageIndex, resolveStageAccessibilityLabel, resolveStageAccessibilityState, resolveStageProgressAccessibility, resolveStageProgressColors, resolveStageState, stageBarStructure, stageFocusRingStructure, stagePillStructure, stageProgressRowStructure, stageStepperCircleStructure, STAGE_PILL_HIT_SLOP, STAGE_STEPPER_HIT_SLOP } from "./StageProgress.variants.js";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ export const StageProgress = /*#__PURE__*/memo(function StageProgress({
14
+ stages,
15
+ value,
16
+ variant = "pills",
17
+ readOnly = true,
18
+ onStagePress,
19
+ style,
20
+ testID
21
+ }) {
22
+ const theme = useTheme();
23
+ const palette = resolveStageProgressColors(theme.colors);
24
+ const activeIndex = resolveActiveStageIndex(stages, value);
25
+ // Which interactive stage holds keyboard/AT focus. One value rather than per-stage state: only one
26
+ // stage can be focused, and the stages are rendered inline (a hook per stage is not an option).
27
+ const [focusedStageId, setFocusedStageId] = useState(null);
28
+ const handlePress = useCallback((stageId, disabled) => {
29
+ if (readOnly || disabled || onStagePress === undefined) return;
30
+ onStagePress(stageId);
31
+ }, [readOnly, onStagePress]);
32
+ const content = useMemo(() => {
33
+ if (variant === "bar") {
34
+ return stages.map((stage, index) => {
35
+ const state = resolveStageState(index, activeIndex, true);
36
+ const fill = state === "active" ? palette.activeFill : state === "completed" ? palette.completedFill : palette.upcomingFill;
37
+ // No label per segment: the container announces the whole track as one progressbar
38
+ // (`resolveStageProgressAccessibility`), so a per-segment label would read four times over.
39
+ return /*#__PURE__*/_jsx(View, {
40
+ testID: testID ? `${testID}-bar-${stage.id}` : undefined,
41
+ style: [stageBarStructure(theme), {
42
+ backgroundColor: fill
43
+ }]
44
+ }, stage.id);
45
+ });
46
+ }
47
+ if (variant === "stepper") {
48
+ return stages.map((stage, index) => {
49
+ const state = resolveStageState(index, activeIndex, true);
50
+ const fill = state === "active" ? palette.activeFill : state === "completed" ? palette.completedFill : palette.upcomingFill;
51
+ const text = state === "active" ? palette.activeText : state === "completed" ? palette.completedText : palette.upcomingText;
52
+ const node = /*#__PURE__*/_jsxs(View, {
53
+ style: {
54
+ alignItems: "center",
55
+ minWidth: 64
56
+ },
57
+ children: [/*#__PURE__*/_jsx(View, {
58
+ style: [stageStepperCircleStructure(theme), {
59
+ backgroundColor: fill,
60
+ borderColor: palette.track
61
+ }],
62
+ children: /*#__PURE__*/_jsx(Text, {
63
+ style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
64
+ fontSize: theme.fontSizes.sm,
65
+ color: text
66
+ }],
67
+ children: index + 1
68
+ })
69
+ }), /*#__PURE__*/_jsx(Text, {
70
+ numberOfLines: 1,
71
+ style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
72
+ fontSize: theme.fontSizes.xs,
73
+ color: palette.upcomingText,
74
+ marginTop: theme.space[1]
75
+ }],
76
+ children: stage.label
77
+ })]
78
+ });
79
+ const a11yLabel = resolveStageAccessibilityLabel(stage.label, state);
80
+ const a11yState = resolveStageAccessibilityState(state, stage.disabled);
81
+ if (readOnly || stage.disabled) return /*#__PURE__*/_jsx(View, {
82
+ accessible: true,
83
+ accessibilityLabel: a11yLabel,
84
+ "aria-selected": a11yState["aria-selected"],
85
+ "aria-disabled": a11yState["aria-disabled"],
86
+ children: node
87
+ }, stage.id);
88
+ return /*#__PURE__*/_jsxs(Pressable, {
89
+ accessibilityRole: "button",
90
+ accessibilityLabel: a11yLabel,
91
+ "aria-selected": a11yState["aria-selected"],
92
+ "aria-disabled": a11yState["aria-disabled"],
93
+ hitSlop: STAGE_STEPPER_HIT_SLOP,
94
+ onPress: () => handlePress(stage.id, stage.disabled),
95
+ onFocus: () => setFocusedStageId(stage.id),
96
+ onBlur: () => setFocusedStageId(current => current === stage.id ? null : current),
97
+ children: [focusedStageId === stage.id && /*#__PURE__*/_jsx(View, {
98
+ pointerEvents: "none",
99
+ testID: testID ? `${testID}-focus-ring-${stage.id}` : undefined,
100
+ style: [stageFocusRingStructure(theme, {
101
+ variant: "stepper"
102
+ }), {
103
+ borderColor: theme.colors.border.focus
104
+ }]
105
+ }), node]
106
+ }, stage.id);
107
+ });
108
+ }
109
+ return stages.map((stage, index) => {
110
+ const state = resolveStageState(index, activeIndex, true);
111
+ const fill = state === "active" ? palette.activeFill : state === "completed" ? palette.completedFill : palette.upcomingFill;
112
+ const text = state === "active" ? palette.activeText : state === "completed" ? palette.completedText : palette.upcomingText;
113
+ const pill = /*#__PURE__*/_jsx(View, {
114
+ testID: testID ? `${testID}-pill-${stage.id}` : undefined,
115
+ style: [stagePillStructure(theme), {
116
+ backgroundColor: fill,
117
+ borderColor: palette.track
118
+ }],
119
+ children: /*#__PURE__*/_jsx(Text, {
120
+ numberOfLines: 1,
121
+ style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
122
+ fontSize: theme.fontSizes.sm,
123
+ color: text
124
+ }],
125
+ children: stage.label
126
+ })
127
+ });
128
+ const a11yLabel = resolveStageAccessibilityLabel(stage.label, state);
129
+ const a11yState = resolveStageAccessibilityState(state, stage.disabled);
130
+ if (readOnly || stage.disabled) return /*#__PURE__*/_jsx(View, {
131
+ accessible: true,
132
+ accessibilityLabel: a11yLabel,
133
+ "aria-selected": a11yState["aria-selected"],
134
+ "aria-disabled": a11yState["aria-disabled"],
135
+ children: pill
136
+ }, stage.id);
137
+ return /*#__PURE__*/_jsxs(Pressable, {
138
+ accessibilityRole: "button",
139
+ accessibilityLabel: a11yLabel,
140
+ "aria-selected": a11yState["aria-selected"],
141
+ "aria-disabled": a11yState["aria-disabled"],
142
+ hitSlop: STAGE_PILL_HIT_SLOP,
143
+ onPress: () => handlePress(stage.id, stage.disabled),
144
+ onFocus: () => setFocusedStageId(stage.id),
145
+ onBlur: () => setFocusedStageId(current => current === stage.id ? null : current),
146
+ children: [focusedStageId === stage.id && /*#__PURE__*/_jsx(View, {
147
+ pointerEvents: "none",
148
+ testID: testID ? `${testID}-focus-ring-${stage.id}` : undefined,
149
+ style: [stageFocusRingStructure(theme, {
150
+ variant: "pill"
151
+ }), {
152
+ borderColor: theme.colors.border.focus
153
+ }]
154
+ }), pill]
155
+ }, stage.id);
156
+ });
157
+ }, [stages, variant, activeIndex, palette, theme, testID, readOnly, handlePress, focusedStageId]);
158
+
159
+ // Only the `bar` variant collapses into one announcement — `pills`/`stepper` render real text per
160
+ // stage, and swallowing it behind a container summary would lose the per-stage labels.
161
+ const barA11y = variant === "bar" ? resolveStageProgressAccessibility(stages, activeIndex) : null;
162
+ return /*#__PURE__*/_jsx(View, {
163
+ testID: testID,
164
+ accessible: barA11y !== null,
165
+ accessibilityRole: barA11y?.accessibilityRole,
166
+ "aria-valuemin": barA11y?.["aria-valuemin"],
167
+ "aria-valuemax": barA11y?.["aria-valuemax"],
168
+ "aria-valuenow": barA11y?.["aria-valuenow"],
169
+ accessibilityLabel: barA11y?.accessibilityLabel,
170
+ style: [stageProgressRowStructure(theme), style],
171
+ children: content
172
+ });
173
+ });
174
+ //# sourceMappingURL=StageProgress.js.map