pixelize-native-library 1.0.7 → 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 (1072) 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 -153
  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 +37 -126
  132. package/lib/module/modules/bottom-nav/BottomNav.variants.js +28 -9
  133. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
  134. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +133 -114
  135. package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
  136. package/lib/module/modules/bottom-nav/MODULE.md +21 -6
  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 +98 -48
  151. package/lib/module/modules/charts/ChartLegend.js +154 -0
  152. package/lib/module/modules/charts/Charts.variants.js +524 -1
  153. package/lib/module/modules/charts/DonutChart.js +100 -65
  154. package/lib/module/modules/charts/LineChart.js +179 -0
  155. package/lib/module/modules/charts/MODULE.md +148 -22
  156. package/lib/module/modules/charts/PieChart.js +140 -0
  157. package/lib/module/modules/charts/Sparkline.js +5 -4
  158. package/lib/module/modules/charts/index.js +3 -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 +45 -28
  245. package/lib/module/modules/list-item/MODULE.md +6 -0
  246. package/lib/module/modules/markdown/MODULE.md +32 -5
  247. package/lib/module/modules/markdown/Markdown.js +54 -20
  248. package/lib/module/modules/markdown/Markdown.variants.js +6 -1
  249. package/lib/module/modules/markdown/parseMarkdown.js +3 -3
  250. package/lib/module/modules/menu/MODULE.md +45 -14
  251. package/lib/module/modules/menu/Menu.js +174 -65
  252. package/lib/module/modules/menu/Menu.variants.js +10 -0
  253. package/lib/module/modules/message-bubble/MODULE.md +38 -0
  254. package/lib/module/modules/message-bubble/MessageBubble.js +55 -0
  255. package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
  256. package/lib/module/modules/message-bubble/index.js +4 -0
  257. package/lib/module/modules/modal/MODULE.md +29 -3
  258. package/lib/module/modules/modal/Modal.js +72 -22
  259. package/lib/module/modules/more-items/MODULE.md +72 -0
  260. package/lib/module/modules/more-items/MoreItems.js +162 -0
  261. package/lib/module/modules/more-items/MoreItems.variants.js +80 -0
  262. package/lib/module/modules/more-items/index.js +4 -0
  263. package/lib/module/modules/multi-select/MODULE.md +84 -18
  264. package/lib/module/modules/multi-select/MultiSelect.js +217 -105
  265. package/lib/module/modules/multi-select/MultiSelect.variants.js +28 -5
  266. package/lib/module/modules/number-input/MODULE.md +39 -5
  267. package/lib/module/modules/number-input/NumberInput.js +41 -11
  268. package/lib/module/modules/number-input/NumberInput.variants.js +39 -5
  269. package/lib/module/modules/org-switcher/MODULE.md +121 -0
  270. package/lib/module/modules/org-switcher/OrgSwitcher.js +284 -0
  271. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +186 -0
  272. package/lib/module/modules/org-switcher/index.js +9 -0
  273. package/lib/module/modules/pagination/MODULE.md +163 -0
  274. package/lib/module/modules/pagination/Pagination.js +197 -0
  275. package/lib/module/modules/pagination/Pagination.variants.js +307 -0
  276. package/lib/module/modules/pagination/PaginationControls.js +193 -0
  277. package/lib/module/modules/pagination/index.js +15 -0
  278. package/lib/module/modules/pin-input/MODULE.md +29 -14
  279. package/lib/module/modules/pin-input/PinInput.js +111 -80
  280. package/lib/module/modules/pin-input/PinInput.variants.js +13 -5
  281. package/lib/module/modules/progress-bar/MODULE.md +17 -7
  282. package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
  283. package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
  284. package/lib/module/modules/radio-group/MODULE.md +40 -14
  285. package/lib/module/modules/radio-group/RadioGroup.js +71 -7
  286. package/lib/module/modules/radio-group/RadioGroup.variants.js +46 -10
  287. package/lib/module/modules/reorder/MODULE.md +104 -97
  288. package/lib/module/modules/reorder/Reorder.js +233 -197
  289. package/lib/module/modules/reorder/Reorder.variants.js +35 -13
  290. package/lib/module/modules/rich-text/MODULE.md +52 -0
  291. package/lib/module/modules/rich-text/RichText.js +362 -0
  292. package/lib/module/modules/rich-text/RichText.variants.js +17 -0
  293. package/lib/module/modules/rich-text/index.js +5 -0
  294. package/lib/module/modules/rich-text/parseRichText.js +133 -0
  295. package/lib/module/modules/rich-text-editor/MODULE.md +225 -0
  296. package/lib/module/modules/rich-text-editor/RichTextEditor.js +413 -0
  297. package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +316 -0
  298. package/lib/module/modules/rich-text-editor/index.js +10 -0
  299. package/lib/module/modules/screen/MODULE.md +57 -0
  300. package/lib/module/modules/screen/Screen.js +106 -0
  301. package/lib/module/modules/screen/Screen.variants.js +43 -0
  302. package/lib/module/modules/screen/index.js +10 -0
  303. package/lib/module/modules/search-bar/MODULE.md +114 -0
  304. package/lib/module/modules/search-bar/SearchBar.js +256 -0
  305. package/lib/module/modules/search-bar/SearchBar.variants.js +205 -0
  306. package/lib/module/modules/search-bar/index.js +12 -0
  307. package/lib/module/modules/section/MODULE.md +39 -0
  308. package/lib/module/modules/section/Section.js +42 -0
  309. package/lib/module/modules/section/Section.variants.js +29 -0
  310. package/lib/module/modules/section/index.js +10 -0
  311. package/lib/module/modules/section-list/MODULE.md +18 -0
  312. package/lib/module/modules/section-list/SectionList.js +64 -0
  313. package/lib/module/modules/section-list/SectionList.variants.js +11 -0
  314. package/lib/module/modules/section-list/index.js +4 -0
  315. package/lib/module/modules/segmented-control/MODULE.md +124 -0
  316. package/lib/module/modules/segmented-control/SegmentedControl.js +158 -0
  317. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +167 -0
  318. package/lib/module/modules/segmented-control/index.js +13 -0
  319. package/lib/module/modules/select/MODULE.md +81 -14
  320. package/lib/module/modules/select/Select.js +196 -94
  321. package/lib/module/modules/select/Select.variants.js +28 -5
  322. package/lib/module/modules/skeleton/MODULE.md +27 -7
  323. package/lib/module/modules/skeleton/Skeleton.js +52 -38
  324. package/lib/module/modules/skeleton/Skeleton.variants.js +9 -8
  325. package/lib/module/modules/slider/MODULE.md +31 -5
  326. package/lib/module/modules/slider/Slider.js +67 -10
  327. package/lib/module/modules/slider/Slider.variants.js +60 -13
  328. package/lib/module/modules/spinner/MODULE.md +16 -6
  329. package/lib/module/modules/spinner/Spinner.js +20 -16
  330. package/lib/module/modules/spinner/Spinner.variants.js +5 -3
  331. package/lib/module/modules/stage-progress/MODULE.md +64 -0
  332. package/lib/module/modules/stage-progress/StageProgress.js +174 -0
  333. package/lib/module/modules/stage-progress/StageProgress.variants.js +164 -0
  334. package/lib/module/modules/stage-progress/index.js +4 -0
  335. package/lib/module/modules/stat-tile/MODULE.md +9 -2
  336. package/lib/module/modules/stat-tile/StatTile.js +70 -33
  337. package/lib/module/modules/stat-tile/StatTile.variants.js +6 -4
  338. package/lib/module/modules/state-block/MODULE.md +52 -0
  339. package/lib/module/modules/state-block/StateBlock.js +131 -0
  340. package/lib/module/modules/state-block/StateBlock.variants.js +55 -0
  341. package/lib/module/modules/state-block/index.js +10 -0
  342. package/lib/module/modules/stepper/MODULE.md +33 -6
  343. package/lib/module/modules/stepper/Stepper.js +108 -39
  344. package/lib/module/modules/stepper/Stepper.variants.js +6 -6
  345. package/lib/module/modules/swipeable-row/MODULE.md +120 -0
  346. package/lib/module/modules/swipeable-row/SwipeableRow.js +244 -0
  347. package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
  348. package/lib/module/modules/swipeable-row/index.js +4 -0
  349. package/lib/module/modules/switch/MODULE.md +14 -0
  350. package/lib/module/modules/switch/Switch.js +1 -1
  351. package/lib/module/modules/switch/Switch.variants.js +8 -0
  352. package/lib/module/modules/tabs/MODULE.md +47 -13
  353. package/lib/module/modules/tabs/Tabs.js +121 -72
  354. package/lib/module/modules/tabs/Tabs.variants.js +30 -8
  355. package/lib/module/modules/text/MODULE.md +51 -0
  356. package/lib/module/modules/text/Text.js +47 -0
  357. package/lib/module/modules/text/Text.variants.js +98 -0
  358. package/lib/module/modules/text/index.js +4 -0
  359. package/lib/module/modules/textarea/MODULE.md +29 -13
  360. package/lib/module/modules/textarea/Textarea.js +90 -45
  361. package/lib/module/modules/textarea/Textarea.variants.js +14 -9
  362. package/lib/module/modules/timeline/MODULE.md +39 -7
  363. package/lib/module/modules/timeline/Timeline.js +151 -77
  364. package/lib/module/modules/timeline/Timeline.variants.js +13 -0
  365. package/lib/module/modules/toast/MODULE.md +66 -7
  366. package/lib/module/modules/toast/Toast.js +93 -27
  367. package/lib/module/modules/toast/Toast.variants.js +37 -1
  368. package/lib/module/modules/toast/toastScreenReader.js +69 -0
  369. package/lib/module/modules/tooltip/MODULE.md +78 -28
  370. package/lib/module/modules/tooltip/Tooltip.js +93 -43
  371. package/lib/module/modules/tooltip/Tooltip.variants.js +3 -4
  372. package/lib/module/modules/typing-indicator/MODULE.md +48 -0
  373. package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
  374. package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
  375. package/lib/module/modules/typing-indicator/index.js +4 -0
  376. package/lib/module/modules/unread-badge/MODULE.md +20 -0
  377. package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
  378. package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
  379. package/lib/module/modules/unread-badge/index.js +4 -0
  380. package/lib/module/test/mocks/flashList.js +5 -0
  381. package/lib/module/test/perfHelpers.js +18 -0
  382. package/lib/module/theme/MODULE.md +6 -0
  383. package/lib/module/theme/hooks.js +11 -0
  384. package/lib/module/theme/index.js +3 -6
  385. package/lib/module/theme/platform/MODULE.md +6 -0
  386. package/lib/module/theme/platform/motion.native.js +15 -0
  387. package/lib/module/theme/provider/PixelizeProvider.js +9 -47
  388. package/lib/module/theme/provider/ThemeContext.js +6 -0
  389. package/lib/module/theme/provider/colorModeStorage.js +2 -2
  390. package/lib/module/theme/provider/index.js +1 -0
  391. package/lib/module/theme/provider/loadPalette.js +75 -0
  392. package/lib/module/theme/provider/types.js +4 -0
  393. package/lib/module/theme/provider/useTheme.js +1 -2
  394. package/lib/module/theme/provider/useThemeMode.js +1 -1
  395. package/lib/module/theme/tokens/roles/index.js +9 -3
  396. package/lib/typescript/core/a11y/announce.d.ts +20 -0
  397. package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
  398. package/lib/typescript/core/a11y/index.d.ts +21 -2
  399. package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
  400. package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
  401. package/lib/typescript/core/a11y/labels.d.ts +19 -0
  402. package/lib/typescript/core/device/index.d.ts +16 -0
  403. package/lib/typescript/core/heading/index.d.ts +45 -0
  404. package/lib/typescript/core/icon/Icon.d.ts +18 -0
  405. package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
  406. package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
  407. package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
  408. package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
  409. package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
  410. package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
  411. package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
  412. package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
  413. package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
  414. package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
  415. package/lib/typescript/core/icon/icons/check.d.ts +3 -0
  416. package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
  417. package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
  418. package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
  419. package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
  420. package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
  421. package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
  422. package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
  423. package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
  424. package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
  425. package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
  426. package/lib/typescript/core/icon/icons/code.d.ts +3 -0
  427. package/lib/typescript/core/icon/icons/download.d.ts +3 -0
  428. package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
  429. package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
  430. package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
  431. package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
  432. package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
  433. package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
  434. package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
  435. package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
  436. package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
  437. package/lib/typescript/core/icon/icons/image.d.ts +3 -0
  438. package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
  439. package/lib/typescript/core/icon/icons/info.d.ts +3 -0
  440. package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
  441. package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
  442. package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
  443. package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
  444. package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
  445. package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
  446. package/lib/typescript/core/icon/icons/link.d.ts +3 -0
  447. package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
  448. package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
  449. package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
  450. package/lib/typescript/core/icon/icons/list.d.ts +3 -0
  451. package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
  452. package/lib/typescript/core/icon/icons/map.d.ts +3 -0
  453. package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
  454. package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
  455. package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
  456. package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
  457. package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
  458. package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
  459. package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
  460. package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
  461. package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
  462. package/lib/typescript/core/icon/icons/save.d.ts +3 -0
  463. package/lib/typescript/core/icon/icons/search.d.ts +3 -0
  464. package/lib/typescript/core/icon/icons/send.d.ts +3 -0
  465. package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
  466. package/lib/typescript/core/icon/icons/share.d.ts +3 -0
  467. package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
  468. package/lib/typescript/core/icon/icons/star.d.ts +3 -0
  469. package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
  470. package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
  471. package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
  472. package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
  473. package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
  474. package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
  475. package/lib/typescript/core/icon/icons/user.d.ts +3 -0
  476. package/lib/typescript/core/icon/icons/users.d.ts +3 -0
  477. package/lib/typescript/core/icon/icons/x.d.ts +3 -0
  478. package/lib/typescript/core/icon/index.d.ts +6 -94
  479. package/lib/typescript/core/icon/names.d.ts +2 -0
  480. package/lib/typescript/core/icon/resolve.d.ts +4 -0
  481. package/lib/typescript/core/icon/types.d.ts +13 -0
  482. package/lib/typescript/core/list/VirtualList.d.ts +55 -0
  483. package/lib/typescript/core/list/index.d.ts +3 -0
  484. package/lib/typescript/core/media/MediaImage.d.ts +28 -0
  485. package/lib/typescript/core/media/expoImage.d.ts +14 -0
  486. package/lib/typescript/core/media/index.d.ts +7 -0
  487. package/lib/typescript/core/media/pickers.d.ts +27 -0
  488. package/lib/typescript/core/motion/config.d.ts +56 -0
  489. package/lib/typescript/core/motion/index.d.ts +8 -0
  490. package/lib/typescript/core/motion/presets.d.ts +49 -0
  491. package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
  492. package/lib/typescript/core/motion/useMotion.d.ts +34 -0
  493. package/lib/typescript/core/style/index.d.ts +3 -0
  494. package/lib/typescript/core/style/sx.d.ts +86 -0
  495. package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
  496. package/lib/typescript/index.d.ts +134 -2
  497. package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
  498. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +5 -5
  499. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -1
  500. package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
  501. package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
  502. package/lib/typescript/modules/app-bar/index.d.ts +9 -0
  503. package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
  504. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
  505. package/lib/typescript/modules/avatar/index.d.ts +1 -1
  506. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +28 -0
  507. package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +75 -0
  508. package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
  509. package/lib/typescript/modules/badge/Badge.d.ts +3 -1
  510. package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
  511. package/lib/typescript/modules/banner/Banner.d.ts +35 -0
  512. package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
  513. package/lib/typescript/modules/banner/index.d.ts +5 -0
  514. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +9 -8
  515. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +22 -9
  516. package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
  517. package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
  518. package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +13 -0
  519. package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
  520. package/lib/typescript/modules/button/Button.d.ts +21 -0
  521. package/lib/typescript/modules/button/Button.variants.d.ts +22 -9
  522. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +4 -2
  523. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +18 -5
  524. package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
  525. package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
  526. package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
  527. package/lib/typescript/modules/charts/Charts.variants.d.ts +201 -2
  528. package/lib/typescript/modules/charts/DonutChart.d.ts +3 -0
  529. package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
  530. package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
  531. package/lib/typescript/modules/charts/index.d.ts +6 -0
  532. package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
  533. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
  534. package/lib/typescript/modules/chip/Chip.d.ts +38 -0
  535. package/lib/typescript/modules/chip/Chip.variants.d.ts +198 -0
  536. package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
  537. package/lib/typescript/modules/chip/index.d.ts +12 -0
  538. package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
  539. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +212 -0
  540. package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
  541. package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
  542. package/lib/typescript/modules/combobox/index.d.ts +11 -0
  543. package/lib/typescript/modules/composer/Composer.d.ts +28 -0
  544. package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
  545. package/lib/typescript/modules/composer/index.d.ts +3 -0
  546. package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
  547. package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
  548. package/lib/typescript/modules/copy-button/index.d.ts +4 -0
  549. package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
  550. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
  551. package/lib/typescript/modules/data-table/index.d.ts +9 -0
  552. package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
  553. package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
  554. package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
  555. package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
  556. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +322 -0
  557. package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
  558. package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
  559. package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
  560. package/lib/typescript/modules/date-picker/TimePicker.d.ts +20 -0
  561. package/lib/typescript/modules/date-picker/index.d.ts +16 -0
  562. package/lib/typescript/modules/divider/Divider.variants.d.ts +2 -2
  563. package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
  564. package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
  565. package/lib/typescript/modules/empty-state/EmptyState.d.ts +7 -4
  566. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +7 -1
  567. package/lib/typescript/modules/fab/Fab.d.ts +74 -0
  568. package/lib/typescript/modules/fab/Fab.variants.d.ts +229 -0
  569. package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
  570. package/lib/typescript/modules/fab/index.d.ts +12 -0
  571. package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
  572. package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
  573. package/lib/typescript/modules/file-grid/index.d.ts +4 -0
  574. package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
  575. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
  576. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
  577. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
  578. package/lib/typescript/modules/folder-row/FolderRow.d.ts +24 -0
  579. package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
  580. package/lib/typescript/modules/folder-row/index.d.ts +3 -0
  581. package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
  582. package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
  583. package/lib/typescript/modules/form-field/index.d.ts +4 -0
  584. package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
  585. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +82 -0
  586. package/lib/typescript/modules/gantt/index.d.ts +5 -0
  587. package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
  588. package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
  589. package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
  590. package/lib/typescript/modules/input/Input.d.ts +9 -1
  591. package/lib/typescript/modules/input/Input.variants.d.ts +26 -6
  592. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
  593. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
  594. package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
  595. package/lib/typescript/modules/list-item/ListItem.d.ts +6 -0
  596. package/lib/typescript/modules/list-item/ListItem.variants.d.ts +1 -1
  597. package/lib/typescript/modules/markdown/Markdown.d.ts +6 -0
  598. package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
  599. package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
  600. package/lib/typescript/modules/menu/Menu.d.ts +8 -18
  601. package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
  602. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
  603. package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +31 -0
  604. package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
  605. package/lib/typescript/modules/modal/Modal.d.ts +12 -0
  606. package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
  607. package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
  608. package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
  609. package/lib/typescript/modules/more-items/index.d.ts +4 -0
  610. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -16
  611. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
  612. package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
  613. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +57 -7
  614. package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
  615. package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
  616. package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
  617. package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
  618. package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
  619. package/lib/typescript/modules/pagination/PaginationControls.d.ts +50 -0
  620. package/lib/typescript/modules/pagination/index.d.ts +14 -0
  621. package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
  622. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
  623. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
  624. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
  625. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
  626. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
  627. package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
  628. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
  629. package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
  630. package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
  631. package/lib/typescript/modules/rich-text/index.d.ts +5 -0
  632. package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
  633. package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
  634. package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
  635. package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
  636. package/lib/typescript/modules/screen/Screen.d.ts +36 -0
  637. package/lib/typescript/modules/screen/Screen.variants.d.ts +21 -0
  638. package/lib/typescript/modules/screen/index.d.ts +9 -0
  639. package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
  640. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
  641. package/lib/typescript/modules/search-bar/index.d.ts +11 -0
  642. package/lib/typescript/modules/section/Section.d.ts +17 -0
  643. package/lib/typescript/modules/section/Section.variants.d.ts +12 -0
  644. package/lib/typescript/modules/section/index.d.ts +8 -0
  645. package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
  646. package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
  647. package/lib/typescript/modules/section-list/index.d.ts +3 -0
  648. package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
  649. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
  650. package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
  651. package/lib/typescript/modules/select/Select.d.ts +1 -14
  652. package/lib/typescript/modules/select/Select.variants.d.ts +24 -5
  653. package/lib/typescript/modules/skeleton/Skeleton.d.ts +5 -0
  654. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +10 -9
  655. package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
  656. package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
  657. package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
  658. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +98 -0
  659. package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
  660. package/lib/typescript/modules/stat-tile/StatTile.d.ts +4 -0
  661. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
  662. package/lib/typescript/modules/state-block/StateBlock.d.ts +51 -0
  663. package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +30 -0
  664. package/lib/typescript/modules/state-block/index.d.ts +10 -0
  665. package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
  666. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
  667. package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
  668. package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
  669. package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
  670. package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
  671. package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
  672. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
  673. package/lib/typescript/modules/text/Text.d.ts +23 -0
  674. package/lib/typescript/modules/text/Text.variants.d.ts +18 -0
  675. package/lib/typescript/modules/text/index.d.ts +4 -0
  676. package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
  677. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
  678. package/lib/typescript/modules/timeline/Timeline.d.ts +9 -13
  679. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
  680. package/lib/typescript/modules/toast/Toast.d.ts +13 -3
  681. package/lib/typescript/modules/toast/Toast.variants.d.ts +31 -3
  682. package/lib/typescript/modules/toast/index.d.ts +1 -1
  683. package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
  684. package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
  685. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +4 -5
  686. package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
  687. package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
  688. package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
  689. package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
  690. package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
  691. package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
  692. package/lib/typescript/test/mocks/flashList.d.ts +3 -0
  693. package/lib/typescript/test/perfHelpers.d.ts +9 -0
  694. package/lib/typescript/theme/hooks.d.ts +11 -0
  695. package/lib/typescript/theme/index.d.ts +3 -2
  696. package/lib/typescript/theme/platform/motion.native.d.ts +15 -0
  697. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
  698. package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
  699. package/lib/typescript/theme/provider/index.d.ts +2 -1
  700. package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
  701. package/lib/typescript/theme/provider/types.d.ts +41 -0
  702. package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
  703. package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
  704. package/lib/typescript/theme/tokens/roles/index.d.ts +7 -0
  705. package/package.json +193 -19
  706. package/registry.json +172 -2
  707. package/lib/module/core/a11y/index.js.map +0 -1
  708. package/lib/module/core/icon/index.js.map +0 -1
  709. package/lib/module/core/style/index.js.map +0 -1
  710. package/lib/module/core/style/layoutStyle.js.map +0 -1
  711. package/lib/module/core/style/variants.js.map +0 -1
  712. package/lib/module/index.js.map +0 -1
  713. package/lib/module/modules/accordion/Accordion.js.map +0 -1
  714. package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
  715. package/lib/module/modules/accordion/index.js.map +0 -1
  716. package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
  717. package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
  718. package/lib/module/modules/alert-dialog/index.js.map +0 -1
  719. package/lib/module/modules/avatar/Avatar.js.map +0 -1
  720. package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
  721. package/lib/module/modules/avatar/index.js.map +0 -1
  722. package/lib/module/modules/badge/Badge.js.map +0 -1
  723. package/lib/module/modules/badge/Badge.variants.js.map +0 -1
  724. package/lib/module/modules/badge/index.js.map +0 -1
  725. package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
  726. package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
  727. package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
  728. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
  729. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
  730. package/lib/module/modules/bottom-nav/index.js.map +0 -1
  731. package/lib/module/modules/button/Button.js.map +0 -1
  732. package/lib/module/modules/button/Button.variants.js.map +0 -1
  733. package/lib/module/modules/button/index.js.map +0 -1
  734. package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
  735. package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
  736. package/lib/module/modules/button-group/index.js.map +0 -1
  737. package/lib/module/modules/card/Card.js.map +0 -1
  738. package/lib/module/modules/card/Card.variants.js.map +0 -1
  739. package/lib/module/modules/card/index.js.map +0 -1
  740. package/lib/module/modules/charts/BarList.js.map +0 -1
  741. package/lib/module/modules/charts/Charts.variants.js.map +0 -1
  742. package/lib/module/modules/charts/DonutChart.js.map +0 -1
  743. package/lib/module/modules/charts/Sparkline.js.map +0 -1
  744. package/lib/module/modules/charts/index.js.map +0 -1
  745. package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
  746. package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
  747. package/lib/module/modules/checkbox/index.js.map +0 -1
  748. package/lib/module/modules/divider/Divider.js.map +0 -1
  749. package/lib/module/modules/divider/Divider.variants.js.map +0 -1
  750. package/lib/module/modules/divider/index.js.map +0 -1
  751. package/lib/module/modules/drawer/Drawer.js.map +0 -1
  752. package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
  753. package/lib/module/modules/drawer/index.js.map +0 -1
  754. package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
  755. package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
  756. package/lib/module/modules/empty-state/index.js.map +0 -1
  757. package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
  758. package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
  759. package/lib/module/modules/file-upload/index.js.map +0 -1
  760. package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
  761. package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
  762. package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
  763. package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
  764. package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
  765. package/lib/module/modules/filter-sheet/index.js.map +0 -1
  766. package/lib/module/modules/input/Input.js.map +0 -1
  767. package/lib/module/modules/input/Input.variants.js.map +0 -1
  768. package/lib/module/modules/input/index.js.map +0 -1
  769. package/lib/module/modules/list-item/ListItem.js.map +0 -1
  770. package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
  771. package/lib/module/modules/list-item/index.js.map +0 -1
  772. package/lib/module/modules/markdown/Markdown.js.map +0 -1
  773. package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
  774. package/lib/module/modules/markdown/index.js.map +0 -1
  775. package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
  776. package/lib/module/modules/menu/Menu.js.map +0 -1
  777. package/lib/module/modules/menu/Menu.variants.js.map +0 -1
  778. package/lib/module/modules/menu/index.js.map +0 -1
  779. package/lib/module/modules/modal/Modal.js.map +0 -1
  780. package/lib/module/modules/modal/Modal.variants.js.map +0 -1
  781. package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
  782. package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
  783. package/lib/module/modules/modal/index.js.map +0 -1
  784. package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
  785. package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
  786. package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
  787. package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
  788. package/lib/module/modules/multi-select/index.js.map +0 -1
  789. package/lib/module/modules/number-input/NumberInput.js.map +0 -1
  790. package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
  791. package/lib/module/modules/number-input/index.js.map +0 -1
  792. package/lib/module/modules/pin-input/PinInput.js.map +0 -1
  793. package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
  794. package/lib/module/modules/pin-input/index.js.map +0 -1
  795. package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
  796. package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
  797. package/lib/module/modules/progress-bar/index.js.map +0 -1
  798. package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
  799. package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
  800. package/lib/module/modules/radio-group/index.js.map +0 -1
  801. package/lib/module/modules/reorder/Reorder.js.map +0 -1
  802. package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
  803. package/lib/module/modules/reorder/index.js.map +0 -1
  804. package/lib/module/modules/select/Select.js.map +0 -1
  805. package/lib/module/modules/select/Select.variants.js.map +0 -1
  806. package/lib/module/modules/select/index.js.map +0 -1
  807. package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
  808. package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
  809. package/lib/module/modules/skeleton/index.js.map +0 -1
  810. package/lib/module/modules/slider/Slider.js.map +0 -1
  811. package/lib/module/modules/slider/Slider.variants.js.map +0 -1
  812. package/lib/module/modules/slider/index.js.map +0 -1
  813. package/lib/module/modules/spinner/Spinner.js.map +0 -1
  814. package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
  815. package/lib/module/modules/spinner/index.js.map +0 -1
  816. package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
  817. package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
  818. package/lib/module/modules/stat-tile/index.js.map +0 -1
  819. package/lib/module/modules/stepper/Stepper.js.map +0 -1
  820. package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
  821. package/lib/module/modules/stepper/index.js.map +0 -1
  822. package/lib/module/modules/switch/Switch.js.map +0 -1
  823. package/lib/module/modules/switch/Switch.variants.js.map +0 -1
  824. package/lib/module/modules/switch/index.js.map +0 -1
  825. package/lib/module/modules/tabs/Tabs.js.map +0 -1
  826. package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
  827. package/lib/module/modules/tabs/index.js.map +0 -1
  828. package/lib/module/modules/textarea/Textarea.js.map +0 -1
  829. package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
  830. package/lib/module/modules/textarea/index.js.map +0 -1
  831. package/lib/module/modules/timeline/Timeline.js.map +0 -1
  832. package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
  833. package/lib/module/modules/timeline/index.js.map +0 -1
  834. package/lib/module/modules/toast/Toast.js.map +0 -1
  835. package/lib/module/modules/toast/Toast.variants.js.map +0 -1
  836. package/lib/module/modules/toast/index.js.map +0 -1
  837. package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
  838. package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
  839. package/lib/module/modules/tooltip/index.js.map +0 -1
  840. package/lib/module/theme/index.js.map +0 -1
  841. package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
  842. package/lib/module/theme/platform/elevation.native.js.map +0 -1
  843. package/lib/module/theme/platform/fonts.native.js.map +0 -1
  844. package/lib/module/theme/platform/index.js.map +0 -1
  845. package/lib/module/theme/platform/units.native.js.map +0 -1
  846. package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
  847. package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
  848. package/lib/module/theme/provider/index.js.map +0 -1
  849. package/lib/module/theme/provider/useTheme.js.map +0 -1
  850. package/lib/module/theme/provider/useThemeColors.js.map +0 -1
  851. package/lib/module/theme/provider/useThemeMode.js.map +0 -1
  852. package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
  853. package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
  854. package/lib/module/theme/tokens/brands/index.js.map +0 -1
  855. package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
  856. package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
  857. package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
  858. package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
  859. package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
  860. package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
  861. package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
  862. package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
  863. package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
  864. package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
  865. package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
  866. package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
  867. package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
  868. package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
  869. package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
  870. package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
  871. package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
  872. package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
  873. package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
  874. package/lib/module/theme/tokens/builders/color.js.map +0 -1
  875. package/lib/module/theme/tokens/index.js.map +0 -1
  876. package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
  877. package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
  878. package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
  879. package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
  880. package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
  881. package/lib/module/theme/tokens/primitives/index.js.map +0 -1
  882. package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
  883. package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
  884. package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
  885. package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
  886. package/lib/module/theme/tokens/primitives/space.js.map +0 -1
  887. package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
  888. package/lib/module/theme/tokens/roles/index.js.map +0 -1
  889. package/lib/module/theme/tokens/types.js.map +0 -1
  890. package/lib/typescript/core/a11y/index.d.ts.map +0 -1
  891. package/lib/typescript/core/icon/index.d.ts.map +0 -1
  892. package/lib/typescript/core/style/index.d.ts.map +0 -1
  893. package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
  894. package/lib/typescript/core/style/variants.d.ts.map +0 -1
  895. package/lib/typescript/index.d.ts.map +0 -1
  896. package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
  897. package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
  898. package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
  899. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
  900. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
  901. package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
  902. package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
  903. package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
  904. package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
  905. package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
  906. package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
  907. package/lib/typescript/modules/badge/index.d.ts.map +0 -1
  908. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
  909. package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
  910. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
  911. package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
  912. package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
  913. package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
  914. package/lib/typescript/modules/button/Button.d.ts.map +0 -1
  915. package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
  916. package/lib/typescript/modules/button/index.d.ts.map +0 -1
  917. package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
  918. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
  919. package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
  920. package/lib/typescript/modules/card/Card.d.ts.map +0 -1
  921. package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
  922. package/lib/typescript/modules/card/index.d.ts.map +0 -1
  923. package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
  924. package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
  925. package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
  926. package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
  927. package/lib/typescript/modules/charts/index.d.ts.map +0 -1
  928. package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
  929. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
  930. package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
  931. package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
  932. package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
  933. package/lib/typescript/modules/divider/index.d.ts.map +0 -1
  934. package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
  935. package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
  936. package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
  937. package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
  938. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
  939. package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
  940. package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
  941. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
  942. package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
  943. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
  944. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
  945. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
  946. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
  947. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
  948. package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
  949. package/lib/typescript/modules/input/Input.d.ts.map +0 -1
  950. package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
  951. package/lib/typescript/modules/input/index.d.ts.map +0 -1
  952. package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
  953. package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
  954. package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
  955. package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
  956. package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
  957. package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
  958. package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
  959. package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
  960. package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
  961. package/lib/typescript/modules/menu/index.d.ts.map +0 -1
  962. package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
  963. package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
  964. package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
  965. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
  966. package/lib/typescript/modules/modal/index.d.ts.map +0 -1
  967. package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
  968. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
  969. package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
  970. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
  971. package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
  972. package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
  973. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
  974. package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
  975. package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
  976. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
  977. package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
  978. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
  979. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
  980. package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
  981. package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
  982. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
  983. package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
  984. package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
  985. package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
  986. package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
  987. package/lib/typescript/modules/select/Select.d.ts.map +0 -1
  988. package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
  989. package/lib/typescript/modules/select/index.d.ts.map +0 -1
  990. package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
  991. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
  992. package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
  993. package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
  994. package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
  995. package/lib/typescript/modules/slider/index.d.ts.map +0 -1
  996. package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
  997. package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
  998. package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
  999. package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
  1000. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
  1001. package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
  1002. package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
  1003. package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
  1004. package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
  1005. package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
  1006. package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
  1007. package/lib/typescript/modules/switch/index.d.ts.map +0 -1
  1008. package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
  1009. package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
  1010. package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
  1011. package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
  1012. package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
  1013. package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
  1014. package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
  1015. package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
  1016. package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
  1017. package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
  1018. package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
  1019. package/lib/typescript/modules/toast/index.d.ts.map +0 -1
  1020. package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
  1021. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
  1022. package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
  1023. package/lib/typescript/theme/index.d.ts.map +0 -1
  1024. package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
  1025. package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
  1026. package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
  1027. package/lib/typescript/theme/platform/index.d.ts.map +0 -1
  1028. package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
  1029. package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
  1030. package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
  1031. package/lib/typescript/theme/provider/index.d.ts.map +0 -1
  1032. package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
  1033. package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
  1034. package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
  1035. package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
  1036. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
  1037. package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
  1038. package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
  1039. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
  1040. package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
  1041. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
  1042. package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
  1043. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
  1044. package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
  1045. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
  1046. package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
  1047. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
  1048. package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
  1049. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
  1050. package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
  1051. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
  1052. package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
  1053. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
  1054. package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
  1055. package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
  1056. package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
  1057. package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
  1058. package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
  1059. package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
  1060. package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
  1061. package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
  1062. package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
  1063. package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
  1064. package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
  1065. package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
  1066. package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
  1067. package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
  1068. package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
  1069. package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
  1070. package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
  1071. package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
  1072. package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
@@ -1,39 +1,84 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Menu — a small anchored action list opened from a caller-supplied trigger. Unlike Select (whose
5
- * open/closed state is a `value`/`onValueChange` pair the caller owns), Menu is self-contained: a
6
- * transient action list manages its own visibility, closing itself after every dismissal path.
4
+ * Menu — a small anchored action list opened from a caller-supplied trigger.
7
5
  *
8
- * The trigger is composed via `React.cloneElement` never `{...rest}` injecting only `onPress`,
9
- * chained after any handler the trigger already defined (the same "merge, never clobber" technique
10
- * Tooltip uses for its child). The dropdown itself is React Native's OWN `Modal`, imported directly
11
- * from `"react-native"` on purpose: this module must never depend on the library's own `Modal`
12
- * COMPONENT — this library's own `Modal` (built in parallel elsewhere) is for persistent app
13
- * dialogs with a title/children contract, not a quick transient overlay — the same distinction
14
- * Select already draws for its own option list.
6
+ * The sheet is the menu itself: it carries `accessibilityRole="menu"` over the `menuitem` rows, and
7
+ * the `accessibilityViewIsModal` / `onAccessibilityEscape` pair `Modal.tsx` establishes set on the
8
+ * sheet node itself so the web-portal path (which has no RN `<Modal>`) is modal to assistive tech too.
15
9
  *
16
- * The one deliberate exception is the web portal mechanism: `ModalPortalContext`/`renderWebPortal`
17
- * are a plain context + a stateless helper with no React-tree footprint of their own (not the
18
- * `Modal` component), so Menu reads the same ones `Modal.tsx` and `Select.tsx` read to stay
19
- * consistent once a consumer opts in via `ModalPortalProvider` see `../modal/ModalPortalContext.ts`.
10
+ * Motion split, same as this library's own `Modal`: RN `<Modal>`'s native `animationType` owns the
11
+ * scrim fade (in AND out, with no JS timer, so a selection closes the menu on the same tick it
12
+ * always did), and the global motion system (`core/motion`) owns the sheet's own scale + lift on
13
+ * enter. The sheet is centered rather than anchored (see MODULE.md), so it scales from its centre.
20
14
  */
21
15
 
22
- import { cloneElement, memo, useCallback, useContext, useState } from "react";
23
- import { Modal, Platform, Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
24
- import { useReducedMotion } from "../../core/a11y/index.js";
16
+ import { cloneElement, memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
17
+ import { Animated, Modal, Platform, Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
18
+ import { focusItemProps, useDismissOnEscape, useFocusTrap, useRovingKeys, useSpaceActivation } from "../../core/a11y/keyboard";
19
+ import { useMotion } from "../../core/motion/index.js";
25
20
  import { Icon } from "../../core/icon/index.js";
26
- import { useTheme } from "../../theme/index.js";
21
+ import { VirtualList } from "../../core/list/index.js";
22
+ import { useTheme } from "../../theme/hooks.js";
27
23
  import { ModalPortalContext } from "../modal/ModalPortalContext.js";
28
24
  import { renderWebPortal } from "../modal/renderWebPortal";
29
- import { MENU_ROW_ICON_SIZE, menuOverlayStructure, menuRowStructure, menuSheetStructure, resolveMenuItemColor } from "./Menu.variants.js";
30
-
31
- /** The subset of props Menu reads from / injects into its trigger child. */
25
+ import { MENU_ROW_ICON_SIZE, MENU_ROW_MIN_HEIGHT, menuOverlayStructure, menuRowStructure, menuSheetStructure, resolveMenuItemColor, resolveMenuRowPressedBackground } from "./Menu.variants.js";
32
26
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
27
+ const VIRTUALIZE_THRESHOLD = 15;
33
28
  const ICON_STROKE = 2;
34
- // Decorative dismiss scrim behind the sheet — a design constant, not a role token: it is neither
35
- // text nor an interactive boundary, so WCAG's contrast minimums don't apply to it.
36
29
  const BACKDROP_SCRIM = "#00000099";
30
+ const MenuRow = /*#__PURE__*/memo(function MenuRow({
31
+ item,
32
+ index,
33
+ tabIndex,
34
+ theme,
35
+ pressedRowBg,
36
+ onSelect,
37
+ testID
38
+ }) {
39
+ const color = resolveMenuItemColor(theme.colors, item.tone ?? "default");
40
+ const handlePress = useCallback(() => onSelect(item), [onSelect, item]);
41
+ const rowRef = useRef(null);
42
+ const active = tabIndex === 0;
43
+
44
+ // The tabindex alone only names the tab stop — focus has to follow the arrows too, or the focus
45
+ // trap's Tab handler sees a focused row that is no longer tabbable and lets Tab leave the menu.
46
+ useEffect(() => {
47
+ if (!active || Platform.OS !== "web") return;
48
+ rowRef.current?.focus();
49
+ }, [active]);
50
+
51
+ // `menuitem` is not `button`, so RNW never presses on Space — see `core/a11y/keyboard.web.ts`.
52
+ useSpaceActivation(rowRef, handlePress);
53
+ const rowStyle = useCallback(({
54
+ pressed
55
+ }) => [menuRowStructure(theme), pressed && {
56
+ backgroundColor: pressedRowBg
57
+ }], [theme, pressedRowBg]);
58
+ const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
59
+ flex: 1,
60
+ fontSize: theme.fontSizes.md,
61
+ color
62
+ }], [theme, color]);
63
+ return /*#__PURE__*/_jsxs(Pressable, {
64
+ ref: rowRef,
65
+ testID: testID ? `${testID}-item-${index}` : undefined,
66
+ accessibilityRole: "menuitem",
67
+ tabIndex: tabIndex,
68
+ onPress: handlePress,
69
+ style: rowStyle,
70
+ children: [item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
71
+ name: item.icon,
72
+ size: MENU_ROW_ICON_SIZE,
73
+ color: color,
74
+ strokeWidth: ICON_STROKE
75
+ }), /*#__PURE__*/_jsx(Text, {
76
+ numberOfLines: 1,
77
+ style: labelStyle,
78
+ children: item.label
79
+ })]
80
+ });
81
+ });
37
82
  export const Menu = /*#__PURE__*/memo(function Menu({
38
83
  trigger,
39
84
  items,
@@ -41,21 +86,54 @@ export const Menu = /*#__PURE__*/memo(function Menu({
41
86
  testID
42
87
  }) {
43
88
  const theme = useTheme();
44
- const reducedMotion = useReducedMotion();
89
+ const motion = useMotion();
45
90
  const portalContainer = useContext(ModalPortalContext);
46
91
  const [open, setOpen] = useState(false);
92
+ const [activeIndex, setActiveIndex] = useState(0);
93
+ const sheetRef = useRef(null);
94
+ const enter = useRef(new Animated.Value(0)).current;
95
+ const entering = useRef(null);
96
+ useEffect(() => {
97
+ entering.current?.stop();
98
+ if (!open) {
99
+ enter.setValue(0);
100
+ return;
101
+ }
102
+ if (!motion.enabled) {
103
+ enter.setValue(1);
104
+ return;
105
+ }
106
+ enter.setValue(0);
107
+ entering.current = motion.timing(enter, 1, {
108
+ duration: "fast",
109
+ easing: "decelerate"
110
+ });
111
+ entering.current.start();
112
+ }, [open, motion, enter]);
113
+ useEffect(() => () => entering.current?.stop(), []);
47
114
  const openMenu = useCallback(() => {
48
115
  if (disabled) return;
116
+ setActiveIndex(0);
49
117
  setOpen(true);
50
118
  }, [disabled]);
51
119
  const closeMenu = useCallback(() => setOpen(false), []);
52
- const selectItem = item => {
120
+ const selectItem = useCallback(item => {
53
121
  closeMenu();
54
122
  item.onPress();
55
- };
123
+ }, [closeMenu]);
124
+ const typeaheadLabels = useMemo(() => items.map(item => item.label), [items]);
56
125
 
57
- // Passed to `trigger` — a consumer-supplied CHILD component (typically this library's own
58
- // Button) via cloneElement, so it is memoized like any other child-bound callback.
126
+ // Keyboard (web onlyevery hook below is a no-op on native, see `core/a11y/keyboard.ts`).
127
+ // No `onActivate`: RNW already presses a `menuitem` on Enter, and each row's own
128
+ // `useSpaceActivation` owns Space — passing it here would activate the item twice.
129
+ useDismissOnEscape(open, closeMenu);
130
+ useFocusTrap(sheetRef, open);
131
+ useRovingKeys(sheetRef, open, {
132
+ count: items.length,
133
+ activeIndex,
134
+ onActiveIndexChange: setActiveIndex,
135
+ typeaheadLabels
136
+ });
59
137
  const handleTriggerPress = useCallback(event => {
60
138
  trigger.props.onPress?.(event);
61
139
  openMenu();
@@ -63,53 +141,78 @@ export const Menu = /*#__PURE__*/memo(function Menu({
63
141
  const clonedTrigger = /*#__PURE__*/cloneElement(trigger, {
64
142
  onPress: handleTriggerPress
65
143
  });
66
- const sheet = /*#__PURE__*/_jsxs(_Fragment, {
144
+ const pressedRowBg = useMemo(() => resolveMenuRowPressedBackground(theme.colors), [theme.colors]);
145
+ const keyExtractor = useCallback((item, index) => `${item.label}-${index}`, []);
146
+ const renderItem = useCallback(({
147
+ item,
148
+ index
149
+ }) => /*#__PURE__*/_jsx(MenuRow, {
150
+ item: item,
151
+ index: index,
152
+ tabIndex: focusItemProps(index, activeIndex).tabIndex,
153
+ theme: theme,
154
+ pressedRowBg: pressedRowBg,
155
+ onSelect: selectItem,
156
+ testID: testID
157
+ }), [activeIndex, theme, pressedRowBg, selectItem, testID]);
158
+ const sheetStyle = useMemo(() => [menuSheetStructure(theme), {
159
+ backgroundColor: theme.colors.bg.surface,
160
+ transform: [{
161
+ scale: enter.interpolate({
162
+ inputRange: [0, 1],
163
+ outputRange: [motion.transform.pressScale, 1]
164
+ })
165
+ }, {
166
+ translateY: enter.interpolate({
167
+ inputRange: [0, 1],
168
+ outputRange: [motion.transform.offsetY, 0]
169
+ })
170
+ }]
171
+ }], [theme, enter, motion.transform.pressScale, motion.transform.offsetY]);
172
+
173
+ // Built only while open: a closed Menu must not materialize one element per item on every render
174
+ // of the screen that hosts it.
175
+ const sheet = open ? /*#__PURE__*/_jsxs(_Fragment, {
67
176
  children: [/*#__PURE__*/_jsx(Pressable, {
68
177
  testID: testID ? `${testID}-backdrop` : undefined,
69
178
  accessible: false,
70
- style: [StyleSheet.absoluteFill, {
71
- backgroundColor: BACKDROP_SCRIM
72
- }],
179
+ tabIndex: -1,
180
+ style: styles.backdrop,
73
181
  onPress: closeMenu
74
182
  }), /*#__PURE__*/_jsx(View, {
75
183
  style: menuOverlayStructure(theme),
76
184
  pointerEvents: "box-none",
77
- children: /*#__PURE__*/_jsx(View, {
78
- style: [menuSheetStructure(theme), {
79
- backgroundColor: theme.colors.bg.surface
80
- }],
81
- children: /*#__PURE__*/_jsx(ScrollView, {
185
+ children: /*#__PURE__*/_jsx(Animated.View, {
186
+ ref: sheetRef,
187
+ testID: testID ? `${testID}-sheet` : undefined
188
+ // The container role the `menuitem` rows below need, plus the modal semantics every other
189
+ // overlay in this library gives its panel. Declared HERE, before the portal branch, so the
190
+ // web-portal path — which renders no RN `<Modal>` at all — inherits them too.
191
+ ,
192
+ accessibilityRole: "menu",
193
+ accessibilityViewIsModal: true,
194
+ onAccessibilityEscape: closeMenu,
195
+ style: sheetStyle,
196
+ children: items.length >= VIRTUALIZE_THRESHOLD ? /*#__PURE__*/_jsx(VirtualList, {
197
+ data: items,
198
+ keyExtractor: keyExtractor,
199
+ renderItem: renderItem,
200
+ itemHeight: MENU_ROW_MIN_HEIGHT
201
+ }) : /*#__PURE__*/_jsx(ScrollView, {
82
202
  bounces: false,
83
- children: items.map((item, index) => {
84
- const color = resolveMenuItemColor(theme.colors, item.tone ?? "default");
85
- return /*#__PURE__*/_jsxs(Pressable, {
86
- testID: testID ? `${testID}-item-${index}` : undefined,
87
- accessibilityRole: "menuitem",
88
- onPress: () => selectItem(item),
89
- style: menuRowStructure(theme),
90
- children: [item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
91
- name: item.icon,
92
- size: MENU_ROW_ICON_SIZE,
93
- color: color,
94
- strokeWidth: ICON_STROKE
95
- }), /*#__PURE__*/_jsx(Text, {
96
- numberOfLines: 1,
97
- style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
98
- flex: 1,
99
- fontSize: theme.fontSizes.md,
100
- color
101
- }],
102
- children: item.label
103
- })]
104
- }, `${item.label}-${index}`);
105
- })
203
+ children: items.map((item, index) => /*#__PURE__*/_jsx(MenuRow, {
204
+ item: item,
205
+ index: index,
206
+ tabIndex: focusItemProps(index, activeIndex).tabIndex,
207
+ theme: theme,
208
+ pressedRowBg: pressedRowBg,
209
+ onSelect: selectItem,
210
+ testID: testID
211
+ }, `${item.label}-${index}`))
106
212
  })
107
213
  })
108
214
  })]
109
- });
110
-
111
- // Web portal opt-in — see Modal.tsx's identical branch + ModalPortalContext.ts. Every other case
112
- // (native, or web with no ModalPortalProvider) renders through RN's own <Modal> below, unchanged.
215
+ }) : null;
113
216
  const menu = Platform.OS === "web" && portalContainer != null ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
114
217
  style: StyleSheet.absoluteFill,
115
218
  pointerEvents: "box-none",
@@ -117,7 +220,7 @@ export const Menu = /*#__PURE__*/memo(function Menu({
117
220
  }), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
118
221
  visible: open,
119
222
  transparent: true,
120
- animationType: reducedMotion ? "none" : "fade",
223
+ animationType: motion.enabled ? "fade" : "none",
121
224
  onRequestClose: closeMenu,
122
225
  children: sheet
123
226
  });
@@ -125,4 +228,10 @@ export const Menu = /*#__PURE__*/memo(function Menu({
125
228
  children: [clonedTrigger, menu]
126
229
  });
127
230
  });
231
+ const styles = StyleSheet.create({
232
+ backdrop: {
233
+ ...StyleSheet.absoluteFill,
234
+ backgroundColor: BACKDROP_SCRIM
235
+ }
236
+ });
128
237
  //# sourceMappingURL=Menu.js.map
@@ -39,6 +39,16 @@ export function resolveMenuItemColor(colors, tone) {
39
39
  }
40
40
  }
41
41
 
42
+ /**
43
+ * A row's background while pressed — `bg.sunken`, not `bg.hover`: same class of fix `Button`'s
44
+ * "neutral" tone and `RadioGroup`/`Accordion` document (the saturated `hover` mid-tone risks
45
+ * dropping a tinted label below 4.5:1; the pale `sunken` tint doesn't). One background for every
46
+ * tone: `default` and `danger` labels are both measured against it in `Menu.test.ts`.
47
+ */
48
+ export function resolveMenuRowPressedBackground(colors) {
49
+ return colors.bg.sunken;
50
+ }
51
+
42
52
  /**
43
53
  * Structural styles only — layout, padding, radius, border WIDTH. No colours (those are resolved
44
54
  * from `RoleColors` and applied inline), so this compiles once per theme identity via the themed
@@ -0,0 +1,38 @@
1
+ # message-bubble/
2
+
3
+ Single chat bubble — `user` (accent) or `assistant` (surface + border). Plain `content` string.
4
+
5
+ ## Motion contract
6
+
7
+ **No motion at all — this component animates nothing, on any tier.** It is a list cell (`core/motion/
8
+ MODULE.md` rule 5: no per-row motion that runs during scroll), so it renders its final state on its
9
+ first frame, exactly like `ListItem`.
10
+
11
+ It used to play a decorative-gated `opacity` + `translateY` enter, guarded by an `entered` ref so it
12
+ ran "at most once per mount". That property was true and beside the point: `FlatList` unmounts and
13
+ remounts cells as they leave and re-enter its window, so the ref reset and **every bubble scrolled
14
+ back into view faded in again** — per-row motion, mid-scroll, on the thread a chat screen can least
15
+ afford it. `__tests__/MessageBubble.motion.test.tsx` now pins the absence of that animation.
16
+
17
+ ## Known gap
18
+
19
+ There is no longer a "new message arrived" reveal. Mounting cannot express it (see above); scoping
20
+ it to genuinely new messages needs an id or timestamp high-water mark the consumer owns, which would
21
+ mean a new prop — not added speculatively.
22
+
23
+ ## Accessibility contract (WCAG)
24
+
25
+ - **1.3.1** — who sent a turn is otherwise carried only by `alignSelf` and the fill colour
26
+ (`MessageBubble.variants.ts` `variant` styles), neither of which reaches assistive tech. The
27
+ accessible label is `"<sender>: <content>"` ("You" / "Assistant"), resolved by
28
+ `resolveMessageBubbleAccessibility` from the existing `variant` prop — no new prop needed. The
29
+ visible bubble still renders `content` alone; only the announced name carries the sender.
30
+
31
+ ## Props
32
+
33
+ | Prop | Type | Default |
34
+ |------|------|---------|
35
+ | `variant` | `user \| assistant` | `assistant` |
36
+ | `content` | `string` | — |
37
+ | `style` | `LayoutStyle` | — |
38
+ | `testID` | `string` | — |
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * MessageBubble — a single chat turn bubble. User variant uses accent fill; assistant uses surface
5
+ * card with border. Plain-text `content` only (rich assistant replies compose Markdown/RichText
6
+ * upstream).
7
+ *
8
+ * The accessible label names the sender ("You" / "Assistant") ahead of the content: alignment and
9
+ * fill colour are the only things that say who spoke, and neither reaches a screen reader.
10
+ *
11
+ * No mount animation, by rule 5 of `core/motion/MODULE.md`: bubbles are list cells, and `FlatList`
12
+ * unmounts and remounts them as they leave and re-enter its window — a "plays once per mount" enter
13
+ * therefore replays for every bubble scrolled back into view, which is exactly the per-row motion
14
+ * during scroll that rule forbids. A "new message arrived" reveal would have to be keyed off the
15
+ * message's own identity (an id/timestamp high-water mark the consumer owns), never off mounting.
16
+ */
17
+
18
+ import { memo, useMemo } from "react";
19
+ import { Text, View } from "react-native";
20
+ import { useTheme } from "../../theme/hooks.js";
21
+ import { messageBubbleStructure, resolveMessageBubbleAccessibility, resolveMessageBubbleColors } from "./MessageBubble.variants.js";
22
+ import { jsx as _jsx } from "react/jsx-runtime";
23
+ export const MessageBubble = /*#__PURE__*/memo(function MessageBubble({
24
+ variant = "assistant",
25
+ content,
26
+ style,
27
+ testID
28
+ }) {
29
+ const theme = useTheme();
30
+ const colors = resolveMessageBubbleColors(theme.colors, variant);
31
+ const a11y = resolveMessageBubbleAccessibility(content, variant);
32
+ const bubbleStyle = useMemo(() => [messageBubbleStructure(theme, {
33
+ variant
34
+ }), {
35
+ backgroundColor: colors.background,
36
+ borderColor: colors.border
37
+ }, style], [theme, variant, colors.background, colors.border, style]);
38
+ const textStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
39
+ fontSize: theme.fontSizes.md,
40
+ lineHeight: theme.fontSizes.md * 1.45,
41
+ color: colors.text
42
+ }], [theme, colors.text]);
43
+ return /*#__PURE__*/_jsx(View, {
44
+ testID: testID,
45
+ accessible: a11y.accessible,
46
+ accessibilityRole: a11y.accessibilityRole,
47
+ accessibilityLabel: a11y.accessibilityLabel,
48
+ style: bubbleStyle,
49
+ children: /*#__PURE__*/_jsx(Text, {
50
+ style: textStyle,
51
+ children: content
52
+ })
53
+ });
54
+ });
55
+ //# sourceMappingURL=MessageBubble.js.map
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import { createThemedVariants } from "../../core/style/index.js";
4
+ export function resolveMessageBubbleColors(colors, variant) {
5
+ if (variant === "user") {
6
+ return {
7
+ background: colors.accent.solid,
8
+ text: colors.accent.onSolid
9
+ };
10
+ }
11
+ return {
12
+ background: colors.bg.surface,
13
+ text: colors.fg.default,
14
+ border: colors.border.default
15
+ };
16
+ }
17
+ export const messageBubbleStructure = createThemedVariants(theme => ({
18
+ base: {
19
+ maxWidth: "85%",
20
+ paddingHorizontal: theme.space[3],
21
+ paddingVertical: theme.space[2],
22
+ borderRadius: theme.radii.lg
23
+ },
24
+ variants: {
25
+ variant: {
26
+ user: {
27
+ alignSelf: "flex-end",
28
+ borderBottomRightRadius: theme.radii.sm
29
+ },
30
+ assistant: {
31
+ alignSelf: "flex-start",
32
+ borderBottomLeftRadius: theme.radii.sm,
33
+ borderWidth: theme.borderWidths.thin
34
+ }
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ variant: "assistant"
39
+ }
40
+ }));
41
+ const SENDER = {
42
+ user: "You",
43
+ assistant: "Assistant"
44
+ };
45
+
46
+ /**
47
+ * Who sent a turn is carried only by `alignSelf` and the bubble fill on screen, so the label has to
48
+ * name the sender for it to reach assistive tech at all (WCAG 1.3.1).
49
+ */
50
+ export function resolveMessageBubbleAccessibility(content, variant) {
51
+ return {
52
+ accessible: true,
53
+ accessibilityRole: "text",
54
+ accessibilityLabel: `${SENDER[variant]}: ${content}`
55
+ };
56
+ }
57
+ //# sourceMappingURL=MessageBubble.variants.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { MessageBubble } from "./MessageBubble.js";
4
+ //# sourceMappingURL=index.js.map
@@ -20,6 +20,7 @@ VoiceOver's escape gesture via `onAccessibilityEscape`).
20
20
  | `__tests__/Modal.render.test.tsx` | Render: visibility, title semantics, backdrop dismissal, and the web-portal opt-in branch (mocking `renderWebPortal`). |
21
21
  | `__tests__/ModalPortalProvider.test.tsx` | The provider forwards `container` onto `ModalPortalContext`; an unwrapped tree reads the `null` default. |
22
22
  | `__tests__/renderWebPortal.test.ts` / `renderWebPortal.web.test.ts` | Each platform file in isolation — the native file is always a no-op; the web file calls `ReactDOM.createPortal` with the exact children/container (mocked — no real DOM under Jest). |
23
+ | `__tests__/Modal.keyboard.web.test.tsx` | Escape / Tab trap / focus restore on the portal branch, and their deliberate ABSENCE on the RNModal branch. |
23
24
 
24
25
  ## Props
25
26
 
@@ -107,6 +108,21 @@ mechanism below.
107
108
  - `react-dom` is an **optional peer dependency** (`peerDependenciesMeta.react-dom.optional`) —
108
109
  only needed by an app that actually renders for web; native-only consumers never install it.
109
110
 
111
+ ### Keyboard — the portal branch has to supply its own
112
+
113
+ Every keyboard behaviour a web `<Modal>` has comes from `react-native-web`'s own `ModalContent`
114
+ (Escape) and `ModalFocusTrap` (Tab cycling + focus restore). The portal branch renders no
115
+ `<RNModal>`, so mounting a `ModalPortalProvider` silently lost all three at once: Escape did
116
+ nothing, Tab walked into the page behind the scrim, and closing dropped focus on `<body>`.
117
+
118
+ `Modal.tsx` therefore calls `useDismissOnEscape` + `useFocusTrap` (`core/a11y/keyboard`, imported
119
+ directly — not through the `core/a11y` barrel) gated on `portalled && visible`. **The RNModal path
120
+ must stay unwired**: two Escape listeners and two competing traps on one dialog is a worse bug than
121
+ the one being fixed. Both hooks are no-ops on native by file resolution, so nothing changes there.
122
+
123
+ `AlertDialog`, `LimitReachedModal` and `ImageViewer` compose this component and inherit all of it —
124
+ none of them contains keyboard code, and each has a test asserting the inheritance.
125
+
110
126
  ## Patterns copied from Button / Select (the reference modules)
111
127
 
112
128
  1. **Structure vs colour split** — sizing/spacing/radius via `createThemedVariants`; colour
@@ -121,11 +137,15 @@ mechanism below.
121
137
 
122
138
  ## Known gaps
123
139
 
124
- - **No full focus trap.** iOS gets `accessibilityViewIsModal` (constrains VoiceOver to the panel).
125
- Android has no JS-level equivalent for marking background siblings
140
+ - **No full SCREEN-READER trap.** iOS gets `accessibilityViewIsModal` (constrains VoiceOver to the
141
+ panel). Android has no JS-level equivalent for marking background siblings
126
142
  `importantForAccessibility="no-hide-descendants"` from inside this component (that prop applies
127
143
  to the element it's set on, not to arbitrary siblings elsewhere in the tree) — a full Android
128
- focus trap needs the app root to cooperate. Out of scope for v1.
144
+ reader trap needs the app root to cooperate. Out of scope for v1. (The web *keyboard* trap above
145
+ is a separate mechanism and is wired.)
146
+ - **The web keyboard trap only cycles Tab.** It does not pull focus back if focus leaves the panel
147
+ by a click outside or a programmatic `focus()` — that needs sentinel nodes at the panel's edges,
148
+ a component-level change nobody has needed yet. Inherited from `core/a11y/keyboard`.
129
149
  - **No built-in scrolling.** The panel caps at `maxHeight: "92%"` but does not wrap `children` in a
130
150
  `ScrollView` — forcing one risks nested-`VirtualizedList` warnings if a consumer's content is
131
151
  already scrollable. Tall content is the consumer's own `ScrollView`/`FlatList` to add.
@@ -136,3 +156,9 @@ mechanism below.
136
156
  ## Performance
137
157
 
138
158
  Both `Modal` and `ModalPortalProvider` are wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). `Modal.tsx` has no `.map()` lists and no library child components (only RN host elements); `ModalPortalProvider` just passes `container`/`children` into a `Context.Provider` — nothing to memoize in either.
159
+
160
+ ## Modernization (v1.0.7)
161
+
162
+ - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
163
+ - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
164
+ - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.