pixelize-native-library 1.0.7 → 1.2.1

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 (1160) hide show
  1. package/lib/module/core/MODULE.md +130 -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/gradient/AccentGradientFill.js +80 -0
  12. package/lib/module/core/gradient/darkenHex.js +13 -0
  13. package/lib/module/core/gradient/gradientStops.js +27 -0
  14. package/lib/module/core/gradient/index.js +7 -0
  15. package/lib/module/core/gradient/withAlpha.js +19 -0
  16. package/lib/module/core/haptics/MODULE.md +4 -0
  17. package/lib/module/core/haptics/context.js +7 -0
  18. package/lib/module/core/haptics/haptics.js +17 -0
  19. package/lib/module/core/haptics/index.js +6 -0
  20. package/lib/module/core/haptics/useHaptics.js +73 -0
  21. package/lib/module/core/heading/MODULE.md +38 -0
  22. package/lib/module/core/heading/index.js +45 -0
  23. package/lib/module/core/icon/Icon.js +37 -0
  24. package/lib/module/core/icon/MODULE.md +53 -12
  25. package/lib/module/core/icon/icons/arrow-down.js +10 -0
  26. package/lib/module/core/icon/icons/arrow-left.js +10 -0
  27. package/lib/module/core/icon/icons/arrow-right.js +10 -0
  28. package/lib/module/core/icon/icons/arrow-up.js +10 -0
  29. package/lib/module/core/icon/icons/at-sign.js +10 -0
  30. package/lib/module/core/icon/icons/bell.js +10 -0
  31. package/lib/module/core/icon/icons/bold.js +10 -0
  32. package/lib/module/core/icon/icons/building-2.js +10 -0
  33. package/lib/module/core/icon/icons/calendar.js +10 -0
  34. package/lib/module/core/icon/icons/chart-column.js +10 -0
  35. package/lib/module/core/icon/icons/check.js +10 -0
  36. package/lib/module/core/icon/icons/chevron-down.js +10 -0
  37. package/lib/module/core/icon/icons/chevron-left.js +10 -0
  38. package/lib/module/core/icon/icons/chevron-right.js +10 -0
  39. package/lib/module/core/icon/icons/chevron-up.js +10 -0
  40. package/lib/module/core/icon/icons/chevrons-left.js +10 -0
  41. package/lib/module/core/icon/icons/chevrons-right.js +10 -0
  42. package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
  43. package/lib/module/core/icon/icons/circle-alert.js +10 -0
  44. package/lib/module/core/icon/icons/circle-check.js +10 -0
  45. package/lib/module/core/icon/icons/clock.js +10 -0
  46. package/lib/module/core/icon/icons/code.js +10 -0
  47. package/lib/module/core/icon/icons/download.js +10 -0
  48. package/lib/module/core/icon/icons/external-link.js +10 -0
  49. package/lib/module/core/icon/icons/eye.js +10 -0
  50. package/lib/module/core/icon/icons/file-text.js +10 -0
  51. package/lib/module/core/icon/icons/filter.js +10 -0
  52. package/lib/module/core/icon/icons/flag.js +10 -0
  53. package/lib/module/core/icon/icons/folder.js +10 -0
  54. package/lib/module/core/icon/icons/heading-1.js +10 -0
  55. package/lib/module/core/icon/icons/heading-2.js +10 -0
  56. package/lib/module/core/icon/icons/heading-3.js +10 -0
  57. package/lib/module/core/icon/icons/image.js +10 -0
  58. package/lib/module/core/icon/icons/inbox.js +10 -0
  59. package/lib/module/core/icon/icons/info.js +10 -0
  60. package/lib/module/core/icon/icons/italic.js +10 -0
  61. package/lib/module/core/icon/icons/kanban.js +10 -0
  62. package/lib/module/core/icon/icons/layers.js +10 -0
  63. package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
  64. package/lib/module/core/icon/icons/layout-template.js +10 -0
  65. package/lib/module/core/icon/icons/life-buoy.js +10 -0
  66. package/lib/module/core/icon/icons/link.js +10 -0
  67. package/lib/module/core/icon/icons/list-checks.js +10 -0
  68. package/lib/module/core/icon/icons/list-ordered.js +10 -0
  69. package/lib/module/core/icon/icons/list-todo.js +10 -0
  70. package/lib/module/core/icon/icons/list.js +10 -0
  71. package/lib/module/core/icon/icons/log-out.js +10 -0
  72. package/lib/module/core/icon/icons/map.js +10 -0
  73. package/lib/module/core/icon/icons/message-square.js +10 -0
  74. package/lib/module/core/icon/icons/milestone.js +10 -0
  75. package/lib/module/core/icon/icons/minus.js +10 -0
  76. package/lib/module/core/icon/icons/more-horizontal.js +10 -0
  77. package/lib/module/core/icon/icons/paperclip.js +10 -0
  78. package/lib/module/core/icon/icons/pencil.js +10 -0
  79. package/lib/module/core/icon/icons/plus.js +10 -0
  80. package/lib/module/core/icon/icons/quote.js +10 -0
  81. package/lib/module/core/icon/icons/refresh-cw.js +10 -0
  82. package/lib/module/core/icon/icons/save.js +10 -0
  83. package/lib/module/core/icon/icons/search.js +10 -0
  84. package/lib/module/core/icon/icons/send.js +10 -0
  85. package/lib/module/core/icon/icons/settings.js +10 -0
  86. package/lib/module/core/icon/icons/share.js +10 -0
  87. package/lib/module/core/icon/icons/square-code.js +10 -0
  88. package/lib/module/core/icon/icons/star.js +10 -0
  89. package/lib/module/core/icon/icons/strikethrough.js +10 -0
  90. package/lib/module/core/icon/icons/tag.js +10 -0
  91. package/lib/module/core/icon/icons/trash.js +10 -0
  92. package/lib/module/core/icon/icons/trending-up.js +10 -0
  93. package/lib/module/core/icon/icons/triangle-alert.js +10 -0
  94. package/lib/module/core/icon/icons/underline.js +10 -0
  95. package/lib/module/core/icon/icons/upload.js +10 -0
  96. package/lib/module/core/icon/icons/user.js +10 -0
  97. package/lib/module/core/icon/icons/users.js +10 -0
  98. package/lib/module/core/icon/icons/x.js +10 -0
  99. package/lib/module/core/icon/index.js +4 -153
  100. package/lib/module/core/icon/names.js +2 -0
  101. package/lib/module/core/icon/resolve.js +160 -0
  102. package/lib/module/core/icon/types.js +4 -0
  103. package/lib/module/core/list/VirtualList.js +226 -0
  104. package/lib/module/core/list/index.js +4 -0
  105. package/lib/module/core/media/MediaImage.js +51 -0
  106. package/lib/module/core/media/expoImage.js +26 -0
  107. package/lib/module/core/media/index.js +6 -0
  108. package/lib/module/core/media/pickers.js +23 -0
  109. package/lib/module/core/motion/MODULE.md +101 -0
  110. package/lib/module/core/motion/config.js +115 -0
  111. package/lib/module/core/motion/index.js +8 -0
  112. package/lib/module/core/motion/presets.js +192 -0
  113. package/lib/module/core/motion/useAnimatedValue.js +19 -0
  114. package/lib/module/core/motion/useMotion.js +46 -0
  115. package/lib/module/core/motion/usePressState.js +145 -0
  116. package/lib/module/core/style/index.js +3 -0
  117. package/lib/module/core/style/radius.js +4 -0
  118. package/lib/module/core/style/sx.js +76 -0
  119. package/lib/module/core/style/useThemedStyles.js +8 -0
  120. package/lib/module/index.js +71 -2
  121. package/lib/module/modules/accordion/Accordion.js +286 -97
  122. package/lib/module/modules/accordion/Accordion.variants.js +6 -7
  123. package/lib/module/modules/accordion/MODULE.md +36 -11
  124. package/lib/module/modules/alert-dialog/AlertDialog.js +7 -6
  125. package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
  126. package/lib/module/modules/alert-dialog/MODULE.md +11 -2
  127. package/lib/module/modules/app-bar/AppBar.js +181 -0
  128. package/lib/module/modules/app-bar/AppBar.variants.js +71 -0
  129. package/lib/module/modules/app-bar/MODULE.md +68 -0
  130. package/lib/module/modules/app-bar/index.js +10 -0
  131. package/lib/module/modules/avatar/Avatar.js +45 -19
  132. package/lib/module/modules/avatar/Avatar.variants.js +44 -3
  133. package/lib/module/modules/avatar/MODULE.md +37 -15
  134. package/lib/module/modules/avatar-group/AvatarGroup.js +81 -0
  135. package/lib/module/modules/avatar-group/AvatarGroup.variants.js +132 -0
  136. package/lib/module/modules/avatar-group/MODULE.md +44 -0
  137. package/lib/module/modules/avatar-group/index.js +10 -0
  138. package/lib/module/modules/badge/Badge.js +14 -7
  139. package/lib/module/modules/badge/Badge.variants.js +14 -3
  140. package/lib/module/modules/badge/MODULE.md +11 -5
  141. package/lib/module/modules/banner/Banner.js +181 -0
  142. package/lib/module/modules/banner/Banner.variants.js +118 -0
  143. package/lib/module/modules/banner/MODULE.md +118 -0
  144. package/lib/module/modules/banner/index.js +4 -0
  145. package/lib/module/modules/bottom-nav/BottomNav.js +43 -129
  146. package/lib/module/modules/bottom-nav/BottomNav.variants.js +36 -18
  147. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
  148. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +160 -117
  149. package/lib/module/modules/bottom-nav/BottomNavTab.js +162 -0
  150. package/lib/module/modules/bottom-nav/MODULE.md +30 -6
  151. package/lib/module/modules/bottom-sheet/BottomSheet.js +202 -0
  152. package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +59 -0
  153. package/lib/module/modules/bottom-sheet/MODULE.md +64 -0
  154. package/lib/module/modules/bottom-sheet/index.js +4 -0
  155. package/lib/module/modules/button/Button.js +128 -91
  156. package/lib/module/modules/button/Button.variants.js +20 -14
  157. package/lib/module/modules/button/MODULE.md +31 -3
  158. package/lib/module/modules/button-group/ButtonGroup.js +176 -69
  159. package/lib/module/modules/button-group/ButtonGroup.variants.js +51 -50
  160. package/lib/module/modules/button-group/MODULE.md +58 -37
  161. package/lib/module/modules/card/Card.js +122 -21
  162. package/lib/module/modules/card/Card.variants.js +1 -0
  163. package/lib/module/modules/card/MODULE.md +19 -10
  164. package/lib/module/modules/charts/BarChart.js +257 -0
  165. package/lib/module/modules/charts/BarList.js +112 -49
  166. package/lib/module/modules/charts/ChartLegend.js +154 -0
  167. package/lib/module/modules/charts/Charts.variants.js +589 -2
  168. package/lib/module/modules/charts/DonutChart.js +105 -65
  169. package/lib/module/modules/charts/LineChart.js +181 -0
  170. package/lib/module/modules/charts/MODULE.md +161 -22
  171. package/lib/module/modules/charts/PieChart.js +149 -0
  172. package/lib/module/modules/charts/Sparkline.js +7 -4
  173. package/lib/module/modules/charts/index.js +3 -0
  174. package/lib/module/modules/checkbox/Checkbox.js +122 -44
  175. package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
  176. package/lib/module/modules/checkbox/MODULE.md +40 -8
  177. package/lib/module/modules/chip/Chip.js +200 -0
  178. package/lib/module/modules/chip/Chip.variants.js +290 -0
  179. package/lib/module/modules/chip/ChipGroup.js +48 -0
  180. package/lib/module/modules/chip/MODULE.md +158 -0
  181. package/lib/module/modules/chip/index.js +13 -0
  182. package/lib/module/modules/combobox/Combobox.js +623 -0
  183. package/lib/module/modules/combobox/Combobox.variants.js +295 -0
  184. package/lib/module/modules/combobox/MODULE.md +193 -0
  185. package/lib/module/modules/combobox/comboboxKeys.js +19 -0
  186. package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
  187. package/lib/module/modules/combobox/index.js +13 -0
  188. package/lib/module/modules/composer/Composer.js +163 -0
  189. package/lib/module/modules/composer/Composer.variants.js +44 -0
  190. package/lib/module/modules/composer/MODULE.md +75 -0
  191. package/lib/module/modules/composer/index.js +4 -0
  192. package/lib/module/modules/copy-button/CopyButton.js +174 -0
  193. package/lib/module/modules/copy-button/CopyButton.variants.js +88 -0
  194. package/lib/module/modules/copy-button/MODULE.md +78 -0
  195. package/lib/module/modules/copy-button/index.js +4 -0
  196. package/lib/module/modules/data-table/DataTable.js +532 -0
  197. package/lib/module/modules/data-table/DataTable.variants.js +189 -0
  198. package/lib/module/modules/data-table/MODULE.md +146 -0
  199. package/lib/module/modules/data-table/index.js +10 -0
  200. package/lib/module/modules/date-picker/Calendar.js +414 -0
  201. package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
  202. package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
  203. package/lib/module/modules/date-picker/DatePicker.js +162 -0
  204. package/lib/module/modules/date-picker/DatePicker.variants.js +701 -0
  205. package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
  206. package/lib/module/modules/date-picker/MODULE.md +190 -0
  207. package/lib/module/modules/date-picker/PickerField.js +151 -0
  208. package/lib/module/modules/date-picker/PickerShell.js +134 -0
  209. package/lib/module/modules/date-picker/TimePicker.js +179 -0
  210. package/lib/module/modules/date-picker/index.js +14 -0
  211. package/lib/module/modules/divider/Divider.js +8 -7
  212. package/lib/module/modules/divider/Divider.variants.js +6 -5
  213. package/lib/module/modules/divider/MODULE.md +8 -0
  214. package/lib/module/modules/drawer/Drawer.js +156 -62
  215. package/lib/module/modules/drawer/Drawer.variants.js +7 -20
  216. package/lib/module/modules/drawer/MODULE.md +93 -118
  217. package/lib/module/modules/empty-state/EmptyState.js +34 -31
  218. package/lib/module/modules/empty-state/EmptyState.variants.js +16 -0
  219. package/lib/module/modules/empty-state/MODULE.md +26 -7
  220. package/lib/module/modules/fab/Fab.js +192 -0
  221. package/lib/module/modules/fab/Fab.variants.js +360 -0
  222. package/lib/module/modules/fab/FabGroup.js +361 -0
  223. package/lib/module/modules/fab/MODULE.md +194 -0
  224. package/lib/module/modules/fab/index.js +13 -0
  225. package/lib/module/modules/file-grid/FileGrid.js +163 -0
  226. package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
  227. package/lib/module/modules/file-grid/MODULE.md +14 -0
  228. package/lib/module/modules/file-grid/index.js +4 -0
  229. package/lib/module/modules/file-upload/FileUpload.js +124 -34
  230. package/lib/module/modules/file-upload/FileUpload.variants.js +53 -8
  231. package/lib/module/modules/file-upload/MODULE.md +24 -4
  232. package/lib/module/modules/filter-sheet/FilterChip.js +32 -18
  233. package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
  234. package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
  235. package/lib/module/modules/filter-sheet/FilterSheetBody.js +180 -82
  236. package/lib/module/modules/filter-sheet/MODULE.md +31 -1
  237. package/lib/module/modules/folder-row/FolderRow.js +144 -0
  238. package/lib/module/modules/folder-row/FolderRow.variants.js +51 -0
  239. package/lib/module/modules/folder-row/MODULE.md +72 -0
  240. package/lib/module/modules/folder-row/index.js +4 -0
  241. package/lib/module/modules/form-field/FormField.js +104 -0
  242. package/lib/module/modules/form-field/FormField.variants.js +88 -0
  243. package/lib/module/modules/form-field/MODULE.md +103 -0
  244. package/lib/module/modules/form-field/index.js +4 -0
  245. package/lib/module/modules/gantt/Gantt.js +239 -0
  246. package/lib/module/modules/gantt/Gantt.variants.js +177 -0
  247. package/lib/module/modules/gantt/MODULE.md +81 -0
  248. package/lib/module/modules/gantt/index.js +5 -0
  249. package/lib/module/modules/image-viewer/ImageViewer.js +265 -0
  250. package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
  251. package/lib/module/modules/image-viewer/MODULE.md +63 -0
  252. package/lib/module/modules/image-viewer/index.js +4 -0
  253. package/lib/module/modules/input/Input.js +119 -48
  254. package/lib/module/modules/input/Input.variants.js +26 -11
  255. package/lib/module/modules/input/MODULE.md +38 -6
  256. package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
  257. package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
  258. package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
  259. package/lib/module/modules/limit-reached-modal/index.js +11 -0
  260. package/lib/module/modules/list-item/ListItem.js +70 -31
  261. package/lib/module/modules/list-item/ListItem.variants.js +11 -2
  262. package/lib/module/modules/list-item/MODULE.md +8 -3
  263. package/lib/module/modules/markdown/MODULE.md +39 -5
  264. package/lib/module/modules/markdown/Markdown.js +107 -38
  265. package/lib/module/modules/markdown/Markdown.variants.js +8 -2
  266. package/lib/module/modules/markdown/parseMarkdown.js +3 -3
  267. package/lib/module/modules/menu/MODULE.md +56 -14
  268. package/lib/module/modules/menu/Menu.js +236 -68
  269. package/lib/module/modules/menu/Menu.variants.js +13 -3
  270. package/lib/module/modules/message-bubble/MODULE.md +41 -0
  271. package/lib/module/modules/message-bubble/MessageBubble.js +54 -0
  272. package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
  273. package/lib/module/modules/message-bubble/index.js +4 -0
  274. package/lib/module/modules/modal/MODULE.md +40 -3
  275. package/lib/module/modules/modal/Modal.js +135 -33
  276. package/lib/module/modules/modal/Modal.variants.js +2 -2
  277. package/lib/module/modules/more-items/MODULE.md +77 -0
  278. package/lib/module/modules/more-items/MoreItems.js +168 -0
  279. package/lib/module/modules/more-items/MoreItems.variants.js +83 -0
  280. package/lib/module/modules/more-items/index.js +4 -0
  281. package/lib/module/modules/multi-select/MODULE.md +89 -18
  282. package/lib/module/modules/multi-select/MultiSelect.js +239 -105
  283. package/lib/module/modules/multi-select/MultiSelect.variants.js +32 -7
  284. package/lib/module/modules/number-input/MODULE.md +41 -6
  285. package/lib/module/modules/number-input/NumberInput.js +124 -81
  286. package/lib/module/modules/number-input/NumberInput.variants.js +48 -11
  287. package/lib/module/modules/org-switcher/MODULE.md +133 -0
  288. package/lib/module/modules/org-switcher/OrgSwitcher.js +295 -0
  289. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +188 -0
  290. package/lib/module/modules/org-switcher/index.js +9 -0
  291. package/lib/module/modules/pagination/MODULE.md +163 -0
  292. package/lib/module/modules/pagination/Pagination.js +236 -0
  293. package/lib/module/modules/pagination/Pagination.variants.js +309 -0
  294. package/lib/module/modules/pagination/PaginationControls.js +213 -0
  295. package/lib/module/modules/pagination/index.js +15 -0
  296. package/lib/module/modules/pin-input/MODULE.md +34 -15
  297. package/lib/module/modules/pin-input/PinInput.js +119 -81
  298. package/lib/module/modules/pin-input/PinInput.variants.js +15 -6
  299. package/lib/module/modules/progress-bar/MODULE.md +17 -7
  300. package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
  301. package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
  302. package/lib/module/modules/radio-group/MODULE.md +42 -16
  303. package/lib/module/modules/radio-group/RadioGroup.js +172 -49
  304. package/lib/module/modules/radio-group/RadioGroup.variants.js +48 -11
  305. package/lib/module/modules/reorder/MODULE.md +106 -97
  306. package/lib/module/modules/reorder/Reorder.js +234 -197
  307. package/lib/module/modules/reorder/Reorder.variants.js +39 -15
  308. package/lib/module/modules/rich-text/MODULE.md +54 -0
  309. package/lib/module/modules/rich-text/RichText.js +382 -0
  310. package/lib/module/modules/rich-text/RichText.variants.js +17 -0
  311. package/lib/module/modules/rich-text/index.js +5 -0
  312. package/lib/module/modules/rich-text/parseRichText.js +133 -0
  313. package/lib/module/modules/rich-text-editor/MODULE.md +228 -0
  314. package/lib/module/modules/rich-text-editor/RichTextEditor.js +420 -0
  315. package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +319 -0
  316. package/lib/module/modules/rich-text-editor/index.js +10 -0
  317. package/lib/module/modules/screen/MODULE.md +64 -0
  318. package/lib/module/modules/screen/Screen.js +139 -0
  319. package/lib/module/modules/screen/Screen.variants.js +61 -0
  320. package/lib/module/modules/screen/index.js +10 -0
  321. package/lib/module/modules/search-bar/MODULE.md +115 -0
  322. package/lib/module/modules/search-bar/SearchBar.js +276 -0
  323. package/lib/module/modules/search-bar/SearchBar.variants.js +208 -0
  324. package/lib/module/modules/search-bar/index.js +12 -0
  325. package/lib/module/modules/section/MODULE.md +41 -0
  326. package/lib/module/modules/section/Section.js +35 -0
  327. package/lib/module/modules/section/Section.variants.js +24 -0
  328. package/lib/module/modules/section/index.js +10 -0
  329. package/lib/module/modules/section-list/MODULE.md +18 -0
  330. package/lib/module/modules/section-list/SectionList.js +64 -0
  331. package/lib/module/modules/section-list/SectionList.variants.js +11 -0
  332. package/lib/module/modules/section-list/index.js +4 -0
  333. package/lib/module/modules/segmented-control/MODULE.md +126 -0
  334. package/lib/module/modules/segmented-control/SegmentedControl.js +222 -0
  335. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +168 -0
  336. package/lib/module/modules/segmented-control/index.js +13 -0
  337. package/lib/module/modules/select/MODULE.md +103 -15
  338. package/lib/module/modules/select/Select.js +223 -94
  339. package/lib/module/modules/select/Select.variants.js +64 -17
  340. package/lib/module/modules/skeleton/MODULE.md +37 -21
  341. package/lib/module/modules/skeleton/Skeleton.js +55 -46
  342. package/lib/module/modules/skeleton/Skeleton.variants.js +19 -76
  343. package/lib/module/modules/slider/MODULE.md +33 -5
  344. package/lib/module/modules/slider/Slider.js +68 -10
  345. package/lib/module/modules/slider/Slider.variants.js +60 -13
  346. package/lib/module/modules/spinner/MODULE.md +16 -6
  347. package/lib/module/modules/spinner/Spinner.js +20 -16
  348. package/lib/module/modules/spinner/Spinner.variants.js +5 -3
  349. package/lib/module/modules/stage-progress/MODULE.md +68 -0
  350. package/lib/module/modules/stage-progress/StageProgress.js +221 -0
  351. package/lib/module/modules/stage-progress/StageProgress.variants.js +169 -0
  352. package/lib/module/modules/stage-progress/index.js +4 -0
  353. package/lib/module/modules/stat-tile/MODULE.md +11 -2
  354. package/lib/module/modules/stat-tile/StatTile.js +76 -34
  355. package/lib/module/modules/stat-tile/StatTile.variants.js +8 -4
  356. package/lib/module/modules/state-block/MODULE.md +55 -0
  357. package/lib/module/modules/state-block/StateBlock.js +136 -0
  358. package/lib/module/modules/state-block/StateBlock.variants.js +62 -0
  359. package/lib/module/modules/state-block/index.js +10 -0
  360. package/lib/module/modules/stepper/MODULE.md +33 -6
  361. package/lib/module/modules/stepper/Stepper.js +108 -39
  362. package/lib/module/modules/stepper/Stepper.variants.js +6 -6
  363. package/lib/module/modules/surface/MODULE.md +59 -0
  364. package/lib/module/modules/surface/Surface.js +42 -0
  365. package/lib/module/modules/surface/Surface.variants.js +33 -0
  366. package/lib/module/modules/surface/index.js +4 -0
  367. package/lib/module/modules/swipeable-row/MODULE.md +129 -0
  368. package/lib/module/modules/swipeable-row/SwipeableRow.js +265 -0
  369. package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
  370. package/lib/module/modules/swipeable-row/index.js +4 -0
  371. package/lib/module/modules/switch/MODULE.md +16 -0
  372. package/lib/module/modules/switch/Switch.js +9 -3
  373. package/lib/module/modules/switch/Switch.variants.js +8 -0
  374. package/lib/module/modules/tabs/MODULE.md +48 -13
  375. package/lib/module/modules/tabs/Tabs.js +141 -73
  376. package/lib/module/modules/tabs/Tabs.variants.js +33 -9
  377. package/lib/module/modules/text/MODULE.md +54 -0
  378. package/lib/module/modules/text/Text.js +59 -0
  379. package/lib/module/modules/text/Text.variants.js +162 -0
  380. package/lib/module/modules/text/index.js +4 -0
  381. package/lib/module/modules/textarea/MODULE.md +31 -13
  382. package/lib/module/modules/textarea/Textarea.js +92 -46
  383. package/lib/module/modules/textarea/Textarea.variants.js +16 -10
  384. package/lib/module/modules/timeline/MODULE.md +39 -7
  385. package/lib/module/modules/timeline/Timeline.js +151 -77
  386. package/lib/module/modules/timeline/Timeline.variants.js +13 -0
  387. package/lib/module/modules/toast/MODULE.md +74 -11
  388. package/lib/module/modules/toast/Toast.js +118 -34
  389. package/lib/module/modules/toast/Toast.variants.js +42 -1
  390. package/lib/module/modules/toast/toastScreenReader.js +69 -0
  391. package/lib/module/modules/tooltip/MODULE.md +82 -28
  392. package/lib/module/modules/tooltip/Tooltip.js +126 -44
  393. package/lib/module/modules/tooltip/Tooltip.variants.js +11 -5
  394. package/lib/module/modules/typing-indicator/MODULE.md +48 -0
  395. package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
  396. package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
  397. package/lib/module/modules/typing-indicator/index.js +4 -0
  398. package/lib/module/modules/unread-badge/MODULE.md +20 -0
  399. package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
  400. package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
  401. package/lib/module/modules/unread-badge/index.js +4 -0
  402. package/lib/module/test/mocks/flashList.js +5 -0
  403. package/lib/module/test/perfHelpers.js +18 -0
  404. package/lib/module/theme/MODULE.md +9 -1
  405. package/lib/module/theme/hooks.js +11 -0
  406. package/lib/module/theme/index.js +3 -6
  407. package/lib/module/theme/platform/MODULE.md +20 -2
  408. package/lib/module/theme/platform/elevation.native.js +0 -44
  409. package/lib/module/theme/platform/floatingSurface.native.js +75 -0
  410. package/lib/module/theme/platform/highlight.native.js +59 -0
  411. package/lib/module/theme/platform/index.js +5 -0
  412. package/lib/module/theme/platform/motion.native.js +35 -0
  413. package/lib/module/theme/platform/stateLayer.native.js +14 -0
  414. package/lib/module/theme/platform/surfaces.native.js +11 -0
  415. package/lib/module/theme/provider/PixelizeProvider.js +18 -49
  416. package/lib/module/theme/provider/ThemeContext.js +6 -0
  417. package/lib/module/theme/provider/colorModeStorage.js +2 -2
  418. package/lib/module/theme/provider/index.js +1 -0
  419. package/lib/module/theme/provider/loadPalette.js +75 -0
  420. package/lib/module/theme/provider/types.js +4 -0
  421. package/lib/module/theme/provider/useTheme.js +1 -2
  422. package/lib/module/theme/provider/useThemeMode.js +1 -1
  423. package/lib/module/theme/tokens/MODULE.md +32 -28
  424. package/lib/module/theme/tokens/THEME-CONTRACT.md +137 -0
  425. package/lib/module/theme/tokens/assertPalette.js +29 -0
  426. package/lib/module/theme/tokens/brands/emerald/palette.light.js +7 -6
  427. package/lib/module/theme/tokens/brands/lavender/palette.light.js +3 -2
  428. package/lib/module/theme/tokens/brands/meadow/palette.light.js +7 -6
  429. package/lib/module/theme/tokens/brands/radiant/palette.light.js +7 -6
  430. package/lib/module/theme/tokens/brands/rosewood/palette.light.js +7 -6
  431. package/lib/module/theme/tokens/brands/skyline/palette.light.js +7 -6
  432. package/lib/module/theme/tokens/brands/slate/palette.light.js +8 -10
  433. package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
  434. package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
  435. package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
  436. package/lib/module/theme/tokens/builders/buildDarkPalette.js +3 -2
  437. package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
  438. package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
  439. package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
  440. package/lib/module/theme/tokens/builders/semanticText.js +14 -0
  441. package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
  442. package/lib/module/theme/tokens/index.js +5 -0
  443. package/lib/module/theme/tokens/roles/index.js +14 -3
  444. package/lib/typescript/core/a11y/announce.d.ts +20 -0
  445. package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
  446. package/lib/typescript/core/a11y/index.d.ts +21 -2
  447. package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
  448. package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
  449. package/lib/typescript/core/a11y/labels.d.ts +19 -0
  450. package/lib/typescript/core/device/index.d.ts +16 -0
  451. package/lib/typescript/core/gradient/AccentGradientFill.d.ts +7 -0
  452. package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
  453. package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
  454. package/lib/typescript/core/gradient/index.d.ts +5 -0
  455. package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
  456. package/lib/typescript/core/haptics/context.d.ts +3 -0
  457. package/lib/typescript/core/haptics/haptics.d.ts +33 -0
  458. package/lib/typescript/core/haptics/index.d.ts +6 -0
  459. package/lib/typescript/core/haptics/useHaptics.d.ts +12 -0
  460. package/lib/typescript/core/heading/index.d.ts +45 -0
  461. package/lib/typescript/core/icon/Icon.d.ts +18 -0
  462. package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
  463. package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
  464. package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
  465. package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
  466. package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
  467. package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
  468. package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
  469. package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
  470. package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
  471. package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
  472. package/lib/typescript/core/icon/icons/check.d.ts +3 -0
  473. package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
  474. package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
  475. package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
  476. package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
  477. package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
  478. package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
  479. package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
  480. package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
  481. package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
  482. package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
  483. package/lib/typescript/core/icon/icons/code.d.ts +3 -0
  484. package/lib/typescript/core/icon/icons/download.d.ts +3 -0
  485. package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
  486. package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
  487. package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
  488. package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
  489. package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
  490. package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
  491. package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
  492. package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
  493. package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
  494. package/lib/typescript/core/icon/icons/image.d.ts +3 -0
  495. package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
  496. package/lib/typescript/core/icon/icons/info.d.ts +3 -0
  497. package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
  498. package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
  499. package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
  500. package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
  501. package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
  502. package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
  503. package/lib/typescript/core/icon/icons/link.d.ts +3 -0
  504. package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
  505. package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
  506. package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
  507. package/lib/typescript/core/icon/icons/list.d.ts +3 -0
  508. package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
  509. package/lib/typescript/core/icon/icons/map.d.ts +3 -0
  510. package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
  511. package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
  512. package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
  513. package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
  514. package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
  515. package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
  516. package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
  517. package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
  518. package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
  519. package/lib/typescript/core/icon/icons/save.d.ts +3 -0
  520. package/lib/typescript/core/icon/icons/search.d.ts +3 -0
  521. package/lib/typescript/core/icon/icons/send.d.ts +3 -0
  522. package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
  523. package/lib/typescript/core/icon/icons/share.d.ts +3 -0
  524. package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
  525. package/lib/typescript/core/icon/icons/star.d.ts +3 -0
  526. package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
  527. package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
  528. package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
  529. package/lib/typescript/core/icon/icons/trending-up.d.ts +3 -0
  530. package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
  531. package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
  532. package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
  533. package/lib/typescript/core/icon/icons/user.d.ts +3 -0
  534. package/lib/typescript/core/icon/icons/users.d.ts +3 -0
  535. package/lib/typescript/core/icon/icons/x.d.ts +3 -0
  536. package/lib/typescript/core/icon/index.d.ts +6 -94
  537. package/lib/typescript/core/icon/names.d.ts +2 -0
  538. package/lib/typescript/core/icon/resolve.d.ts +4 -0
  539. package/lib/typescript/core/icon/types.d.ts +13 -0
  540. package/lib/typescript/core/list/VirtualList.d.ts +55 -0
  541. package/lib/typescript/core/list/index.d.ts +3 -0
  542. package/lib/typescript/core/media/MediaImage.d.ts +28 -0
  543. package/lib/typescript/core/media/expoImage.d.ts +23 -0
  544. package/lib/typescript/core/media/index.d.ts +7 -0
  545. package/lib/typescript/core/media/pickers.d.ts +27 -0
  546. package/lib/typescript/core/motion/config.d.ts +57 -0
  547. package/lib/typescript/core/motion/index.d.ts +10 -0
  548. package/lib/typescript/core/motion/presets.d.ts +49 -0
  549. package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
  550. package/lib/typescript/core/motion/useMotion.d.ts +34 -0
  551. package/lib/typescript/core/motion/usePressState.d.ts +21 -0
  552. package/lib/typescript/core/style/index.d.ts +4 -0
  553. package/lib/typescript/core/style/radius.d.ts +2 -0
  554. package/lib/typescript/core/style/sx.d.ts +86 -0
  555. package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
  556. package/lib/typescript/index.d.ts +136 -2
  557. package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
  558. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +7 -7
  559. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +2 -1
  560. package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
  561. package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
  562. package/lib/typescript/modules/app-bar/index.d.ts +9 -0
  563. package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
  564. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
  565. package/lib/typescript/modules/avatar/index.d.ts +1 -1
  566. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +30 -0
  567. package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +94 -0
  568. package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
  569. package/lib/typescript/modules/badge/Badge.d.ts +3 -1
  570. package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
  571. package/lib/typescript/modules/banner/Banner.d.ts +37 -0
  572. package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
  573. package/lib/typescript/modules/banner/index.d.ts +5 -0
  574. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +9 -8
  575. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +23 -12
  576. package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
  577. package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
  578. package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +15 -0
  579. package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
  580. package/lib/typescript/modules/button/Button.d.ts +9 -13
  581. package/lib/typescript/modules/button/Button.variants.d.ts +28 -15
  582. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +0 -17
  583. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +40 -61
  584. package/lib/typescript/modules/card/Card.d.ts +7 -5
  585. package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
  586. package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
  587. package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
  588. package/lib/typescript/modules/charts/Charts.variants.d.ts +229 -2
  589. package/lib/typescript/modules/charts/DonutChart.d.ts +3 -0
  590. package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
  591. package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
  592. package/lib/typescript/modules/charts/index.d.ts +6 -0
  593. package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
  594. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
  595. package/lib/typescript/modules/chip/Chip.d.ts +40 -0
  596. package/lib/typescript/modules/chip/Chip.variants.d.ts +202 -0
  597. package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
  598. package/lib/typescript/modules/chip/index.d.ts +12 -0
  599. package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
  600. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +225 -0
  601. package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
  602. package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
  603. package/lib/typescript/modules/combobox/index.d.ts +11 -0
  604. package/lib/typescript/modules/composer/Composer.d.ts +28 -0
  605. package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
  606. package/lib/typescript/modules/composer/index.d.ts +3 -0
  607. package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
  608. package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
  609. package/lib/typescript/modules/copy-button/index.d.ts +4 -0
  610. package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
  611. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
  612. package/lib/typescript/modules/data-table/index.d.ts +9 -0
  613. package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
  614. package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
  615. package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
  616. package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
  617. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +334 -0
  618. package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
  619. package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
  620. package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
  621. package/lib/typescript/modules/date-picker/TimePicker.d.ts +14 -0
  622. package/lib/typescript/modules/date-picker/index.d.ts +16 -0
  623. package/lib/typescript/modules/divider/Divider.variants.d.ts +6 -6
  624. package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
  625. package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
  626. package/lib/typescript/modules/empty-state/EmptyState.d.ts +9 -4
  627. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +8 -1
  628. package/lib/typescript/modules/fab/Fab.d.ts +74 -0
  629. package/lib/typescript/modules/fab/Fab.variants.d.ts +231 -0
  630. package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
  631. package/lib/typescript/modules/fab/index.d.ts +12 -0
  632. package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
  633. package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
  634. package/lib/typescript/modules/file-grid/index.d.ts +4 -0
  635. package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
  636. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
  637. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
  638. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
  639. package/lib/typescript/modules/folder-row/FolderRow.d.ts +16 -0
  640. package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
  641. package/lib/typescript/modules/folder-row/index.d.ts +3 -0
  642. package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
  643. package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
  644. package/lib/typescript/modules/form-field/index.d.ts +4 -0
  645. package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
  646. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +103 -0
  647. package/lib/typescript/modules/gantt/index.d.ts +5 -0
  648. package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
  649. package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
  650. package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
  651. package/lib/typescript/modules/input/Input.d.ts +9 -1
  652. package/lib/typescript/modules/input/Input.variants.d.ts +32 -12
  653. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
  654. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
  655. package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
  656. package/lib/typescript/modules/list-item/ListItem.d.ts +3 -1
  657. package/lib/typescript/modules/list-item/ListItem.variants.d.ts +138 -2
  658. package/lib/typescript/modules/markdown/Markdown.d.ts +13 -0
  659. package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
  660. package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
  661. package/lib/typescript/modules/menu/Menu.d.ts +8 -18
  662. package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
  663. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
  664. package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +30 -0
  665. package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
  666. package/lib/typescript/modules/modal/Modal.d.ts +12 -0
  667. package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
  668. package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
  669. package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
  670. package/lib/typescript/modules/more-items/index.d.ts +4 -0
  671. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -16
  672. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
  673. package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
  674. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +64 -12
  675. package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
  676. package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
  677. package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
  678. package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
  679. package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
  680. package/lib/typescript/modules/pagination/PaginationControls.d.ts +47 -0
  681. package/lib/typescript/modules/pagination/index.d.ts +14 -0
  682. package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
  683. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
  684. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
  685. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
  686. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
  687. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
  688. package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
  689. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
  690. package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
  691. package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
  692. package/lib/typescript/modules/rich-text/index.d.ts +5 -0
  693. package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
  694. package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
  695. package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
  696. package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
  697. package/lib/typescript/modules/screen/Screen.d.ts +30 -0
  698. package/lib/typescript/modules/screen/Screen.variants.d.ts +25 -0
  699. package/lib/typescript/modules/screen/index.d.ts +9 -0
  700. package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
  701. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
  702. package/lib/typescript/modules/search-bar/index.d.ts +11 -0
  703. package/lib/typescript/modules/section/Section.d.ts +17 -0
  704. package/lib/typescript/modules/section/Section.variants.d.ts +9 -0
  705. package/lib/typescript/modules/section/index.d.ts +8 -0
  706. package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
  707. package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
  708. package/lib/typescript/modules/section-list/index.d.ts +3 -0
  709. package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
  710. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
  711. package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
  712. package/lib/typescript/modules/select/Select.d.ts +5 -15
  713. package/lib/typescript/modules/select/Select.variants.d.ts +45 -12
  714. package/lib/typescript/modules/select/index.d.ts +1 -1
  715. package/lib/typescript/modules/skeleton/Skeleton.d.ts +3 -13
  716. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +14 -69
  717. package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
  718. package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
  719. package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
  720. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +107 -0
  721. package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
  722. package/lib/typescript/modules/stat-tile/StatTile.d.ts +4 -0
  723. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
  724. package/lib/typescript/modules/state-block/StateBlock.d.ts +55 -0
  725. package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +31 -0
  726. package/lib/typescript/modules/state-block/index.d.ts +10 -0
  727. package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
  728. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
  729. package/lib/typescript/modules/surface/Surface.d.ts +19 -0
  730. package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
  731. package/lib/typescript/modules/surface/index.d.ts +4 -0
  732. package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
  733. package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
  734. package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
  735. package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
  736. package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
  737. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
  738. package/lib/typescript/modules/text/Text.d.ts +27 -0
  739. package/lib/typescript/modules/text/Text.variants.d.ts +21 -0
  740. package/lib/typescript/modules/text/index.d.ts +4 -0
  741. package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
  742. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
  743. package/lib/typescript/modules/timeline/Timeline.d.ts +9 -13
  744. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
  745. package/lib/typescript/modules/toast/Toast.d.ts +13 -3
  746. package/lib/typescript/modules/toast/Toast.variants.d.ts +33 -3
  747. package/lib/typescript/modules/toast/index.d.ts +1 -1
  748. package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
  749. package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
  750. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +11 -5
  751. package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
  752. package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
  753. package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
  754. package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
  755. package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
  756. package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
  757. package/lib/typescript/test/mocks/flashList.d.ts +3 -0
  758. package/lib/typescript/test/perfHelpers.d.ts +9 -0
  759. package/lib/typescript/theme/hooks.d.ts +11 -0
  760. package/lib/typescript/theme/index.d.ts +4 -3
  761. package/lib/typescript/theme/platform/elevation.native.d.ts +0 -30
  762. package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
  763. package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
  764. package/lib/typescript/theme/platform/index.d.ts +9 -0
  765. package/lib/typescript/theme/platform/motion.native.d.ts +35 -0
  766. package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
  767. package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -0
  768. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
  769. package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
  770. package/lib/typescript/theme/provider/index.d.ts +2 -1
  771. package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
  772. package/lib/typescript/theme/provider/types.d.ts +49 -0
  773. package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
  774. package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
  775. package/lib/typescript/theme/tokens/assertPalette.d.ts +10 -0
  776. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
  777. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
  778. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
  779. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
  780. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
  781. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
  782. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
  783. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
  784. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
  785. package/lib/typescript/theme/tokens/builders/finalizePalette.d.ts +4 -0
  786. package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
  787. package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
  788. package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
  789. package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
  790. package/lib/typescript/theme/tokens/index.d.ts +5 -0
  791. package/lib/typescript/theme/tokens/roles/index.d.ts +8 -0
  792. package/lib/typescript/theme/tokens/types.d.ts +8 -7
  793. package/package.json +201 -19
  794. package/registry.json +177 -2
  795. package/lib/module/core/a11y/index.js.map +0 -1
  796. package/lib/module/core/icon/index.js.map +0 -1
  797. package/lib/module/core/style/index.js.map +0 -1
  798. package/lib/module/core/style/layoutStyle.js.map +0 -1
  799. package/lib/module/core/style/variants.js.map +0 -1
  800. package/lib/module/index.js.map +0 -1
  801. package/lib/module/modules/accordion/Accordion.js.map +0 -1
  802. package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
  803. package/lib/module/modules/accordion/index.js.map +0 -1
  804. package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
  805. package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
  806. package/lib/module/modules/alert-dialog/index.js.map +0 -1
  807. package/lib/module/modules/avatar/Avatar.js.map +0 -1
  808. package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
  809. package/lib/module/modules/avatar/index.js.map +0 -1
  810. package/lib/module/modules/badge/Badge.js.map +0 -1
  811. package/lib/module/modules/badge/Badge.variants.js.map +0 -1
  812. package/lib/module/modules/badge/index.js.map +0 -1
  813. package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
  814. package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
  815. package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
  816. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
  817. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
  818. package/lib/module/modules/bottom-nav/index.js.map +0 -1
  819. package/lib/module/modules/button/Button.js.map +0 -1
  820. package/lib/module/modules/button/Button.variants.js.map +0 -1
  821. package/lib/module/modules/button/index.js.map +0 -1
  822. package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
  823. package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
  824. package/lib/module/modules/button-group/index.js.map +0 -1
  825. package/lib/module/modules/card/Card.js.map +0 -1
  826. package/lib/module/modules/card/Card.variants.js.map +0 -1
  827. package/lib/module/modules/card/index.js.map +0 -1
  828. package/lib/module/modules/charts/BarList.js.map +0 -1
  829. package/lib/module/modules/charts/Charts.variants.js.map +0 -1
  830. package/lib/module/modules/charts/DonutChart.js.map +0 -1
  831. package/lib/module/modules/charts/Sparkline.js.map +0 -1
  832. package/lib/module/modules/charts/index.js.map +0 -1
  833. package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
  834. package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
  835. package/lib/module/modules/checkbox/index.js.map +0 -1
  836. package/lib/module/modules/divider/Divider.js.map +0 -1
  837. package/lib/module/modules/divider/Divider.variants.js.map +0 -1
  838. package/lib/module/modules/divider/index.js.map +0 -1
  839. package/lib/module/modules/drawer/Drawer.js.map +0 -1
  840. package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
  841. package/lib/module/modules/drawer/index.js.map +0 -1
  842. package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
  843. package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
  844. package/lib/module/modules/empty-state/index.js.map +0 -1
  845. package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
  846. package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
  847. package/lib/module/modules/file-upload/index.js.map +0 -1
  848. package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
  849. package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
  850. package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
  851. package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
  852. package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
  853. package/lib/module/modules/filter-sheet/index.js.map +0 -1
  854. package/lib/module/modules/input/Input.js.map +0 -1
  855. package/lib/module/modules/input/Input.variants.js.map +0 -1
  856. package/lib/module/modules/input/index.js.map +0 -1
  857. package/lib/module/modules/list-item/ListItem.js.map +0 -1
  858. package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
  859. package/lib/module/modules/list-item/index.js.map +0 -1
  860. package/lib/module/modules/markdown/Markdown.js.map +0 -1
  861. package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
  862. package/lib/module/modules/markdown/index.js.map +0 -1
  863. package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
  864. package/lib/module/modules/menu/Menu.js.map +0 -1
  865. package/lib/module/modules/menu/Menu.variants.js.map +0 -1
  866. package/lib/module/modules/menu/index.js.map +0 -1
  867. package/lib/module/modules/modal/Modal.js.map +0 -1
  868. package/lib/module/modules/modal/Modal.variants.js.map +0 -1
  869. package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
  870. package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
  871. package/lib/module/modules/modal/index.js.map +0 -1
  872. package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
  873. package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
  874. package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
  875. package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
  876. package/lib/module/modules/multi-select/index.js.map +0 -1
  877. package/lib/module/modules/number-input/NumberInput.js.map +0 -1
  878. package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
  879. package/lib/module/modules/number-input/index.js.map +0 -1
  880. package/lib/module/modules/pin-input/PinInput.js.map +0 -1
  881. package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
  882. package/lib/module/modules/pin-input/index.js.map +0 -1
  883. package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
  884. package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
  885. package/lib/module/modules/progress-bar/index.js.map +0 -1
  886. package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
  887. package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
  888. package/lib/module/modules/radio-group/index.js.map +0 -1
  889. package/lib/module/modules/reorder/Reorder.js.map +0 -1
  890. package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
  891. package/lib/module/modules/reorder/index.js.map +0 -1
  892. package/lib/module/modules/select/Select.js.map +0 -1
  893. package/lib/module/modules/select/Select.variants.js.map +0 -1
  894. package/lib/module/modules/select/index.js.map +0 -1
  895. package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
  896. package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
  897. package/lib/module/modules/skeleton/index.js.map +0 -1
  898. package/lib/module/modules/slider/Slider.js.map +0 -1
  899. package/lib/module/modules/slider/Slider.variants.js.map +0 -1
  900. package/lib/module/modules/slider/index.js.map +0 -1
  901. package/lib/module/modules/spinner/Spinner.js.map +0 -1
  902. package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
  903. package/lib/module/modules/spinner/index.js.map +0 -1
  904. package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
  905. package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
  906. package/lib/module/modules/stat-tile/index.js.map +0 -1
  907. package/lib/module/modules/stepper/Stepper.js.map +0 -1
  908. package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
  909. package/lib/module/modules/stepper/index.js.map +0 -1
  910. package/lib/module/modules/switch/Switch.js.map +0 -1
  911. package/lib/module/modules/switch/Switch.variants.js.map +0 -1
  912. package/lib/module/modules/switch/index.js.map +0 -1
  913. package/lib/module/modules/tabs/Tabs.js.map +0 -1
  914. package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
  915. package/lib/module/modules/tabs/index.js.map +0 -1
  916. package/lib/module/modules/textarea/Textarea.js.map +0 -1
  917. package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
  918. package/lib/module/modules/textarea/index.js.map +0 -1
  919. package/lib/module/modules/timeline/Timeline.js.map +0 -1
  920. package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
  921. package/lib/module/modules/timeline/index.js.map +0 -1
  922. package/lib/module/modules/toast/Toast.js.map +0 -1
  923. package/lib/module/modules/toast/Toast.variants.js.map +0 -1
  924. package/lib/module/modules/toast/index.js.map +0 -1
  925. package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
  926. package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
  927. package/lib/module/modules/tooltip/index.js.map +0 -1
  928. package/lib/module/theme/index.js.map +0 -1
  929. package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
  930. package/lib/module/theme/platform/elevation.native.js.map +0 -1
  931. package/lib/module/theme/platform/fonts.native.js.map +0 -1
  932. package/lib/module/theme/platform/index.js.map +0 -1
  933. package/lib/module/theme/platform/units.native.js.map +0 -1
  934. package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
  935. package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
  936. package/lib/module/theme/provider/index.js.map +0 -1
  937. package/lib/module/theme/provider/useTheme.js.map +0 -1
  938. package/lib/module/theme/provider/useThemeColors.js.map +0 -1
  939. package/lib/module/theme/provider/useThemeMode.js.map +0 -1
  940. package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
  941. package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
  942. package/lib/module/theme/tokens/brands/index.js.map +0 -1
  943. package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
  944. package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
  945. package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
  946. package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
  947. package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
  948. package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
  949. package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
  950. package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
  951. package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
  952. package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
  953. package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
  954. package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
  955. package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
  956. package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
  957. package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
  958. package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
  959. package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
  960. package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
  961. package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
  962. package/lib/module/theme/tokens/builders/color.js.map +0 -1
  963. package/lib/module/theme/tokens/index.js.map +0 -1
  964. package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
  965. package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
  966. package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
  967. package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
  968. package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
  969. package/lib/module/theme/tokens/primitives/index.js.map +0 -1
  970. package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
  971. package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
  972. package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
  973. package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
  974. package/lib/module/theme/tokens/primitives/space.js.map +0 -1
  975. package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
  976. package/lib/module/theme/tokens/roles/index.js.map +0 -1
  977. package/lib/module/theme/tokens/types.js.map +0 -1
  978. package/lib/typescript/core/a11y/index.d.ts.map +0 -1
  979. package/lib/typescript/core/icon/index.d.ts.map +0 -1
  980. package/lib/typescript/core/style/index.d.ts.map +0 -1
  981. package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
  982. package/lib/typescript/core/style/variants.d.ts.map +0 -1
  983. package/lib/typescript/index.d.ts.map +0 -1
  984. package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
  985. package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
  986. package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
  987. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
  988. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
  989. package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
  990. package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
  991. package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
  992. package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
  993. package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
  994. package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
  995. package/lib/typescript/modules/badge/index.d.ts.map +0 -1
  996. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
  997. package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
  998. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
  999. package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
  1000. package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
  1001. package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
  1002. package/lib/typescript/modules/button/Button.d.ts.map +0 -1
  1003. package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
  1004. package/lib/typescript/modules/button/index.d.ts.map +0 -1
  1005. package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
  1006. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
  1007. package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
  1008. package/lib/typescript/modules/card/Card.d.ts.map +0 -1
  1009. package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
  1010. package/lib/typescript/modules/card/index.d.ts.map +0 -1
  1011. package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
  1012. package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
  1013. package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
  1014. package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
  1015. package/lib/typescript/modules/charts/index.d.ts.map +0 -1
  1016. package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
  1017. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
  1018. package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
  1019. package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
  1020. package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
  1021. package/lib/typescript/modules/divider/index.d.ts.map +0 -1
  1022. package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
  1023. package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
  1024. package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
  1025. package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
  1026. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
  1027. package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
  1028. package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
  1029. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
  1030. package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
  1031. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
  1032. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
  1033. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
  1034. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
  1035. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
  1036. package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
  1037. package/lib/typescript/modules/input/Input.d.ts.map +0 -1
  1038. package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
  1039. package/lib/typescript/modules/input/index.d.ts.map +0 -1
  1040. package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
  1041. package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
  1042. package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
  1043. package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
  1044. package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
  1045. package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
  1046. package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
  1047. package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
  1048. package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
  1049. package/lib/typescript/modules/menu/index.d.ts.map +0 -1
  1050. package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
  1051. package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
  1052. package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
  1053. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
  1054. package/lib/typescript/modules/modal/index.d.ts.map +0 -1
  1055. package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
  1056. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
  1057. package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
  1058. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
  1059. package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
  1060. package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
  1061. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
  1062. package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
  1063. package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
  1064. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
  1065. package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
  1066. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
  1067. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
  1068. package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
  1069. package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
  1070. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
  1071. package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
  1072. package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
  1073. package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
  1074. package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
  1075. package/lib/typescript/modules/select/Select.d.ts.map +0 -1
  1076. package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
  1077. package/lib/typescript/modules/select/index.d.ts.map +0 -1
  1078. package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
  1079. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
  1080. package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
  1081. package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
  1082. package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
  1083. package/lib/typescript/modules/slider/index.d.ts.map +0 -1
  1084. package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
  1085. package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
  1086. package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
  1087. package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
  1088. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
  1089. package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
  1090. package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
  1091. package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
  1092. package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
  1093. package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
  1094. package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
  1095. package/lib/typescript/modules/switch/index.d.ts.map +0 -1
  1096. package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
  1097. package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
  1098. package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
  1099. package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
  1100. package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
  1101. package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
  1102. package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
  1103. package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
  1104. package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
  1105. package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
  1106. package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
  1107. package/lib/typescript/modules/toast/index.d.ts.map +0 -1
  1108. package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
  1109. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
  1110. package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
  1111. package/lib/typescript/theme/index.d.ts.map +0 -1
  1112. package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
  1113. package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
  1114. package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
  1115. package/lib/typescript/theme/platform/index.d.ts.map +0 -1
  1116. package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
  1117. package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
  1118. package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
  1119. package/lib/typescript/theme/provider/index.d.ts.map +0 -1
  1120. package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
  1121. package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
  1122. package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
  1123. package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
  1124. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
  1125. package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
  1126. package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
  1127. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
  1128. package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
  1129. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
  1130. package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
  1131. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
  1132. package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
  1133. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
  1134. package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
  1135. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
  1136. package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
  1137. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
  1138. package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
  1139. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
  1140. package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
  1141. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
  1142. package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
  1143. package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
  1144. package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
  1145. package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
  1146. package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
  1147. package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
  1148. package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
  1149. package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
  1150. package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
  1151. package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
  1152. package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
  1153. package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
  1154. package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
  1155. package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
  1156. package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
  1157. package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
  1158. package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
  1159. package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
  1160. package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
@@ -1,39 +1,101 @@
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 Reanimated from "react-native-reanimated";
19
+ import { focusItemProps, useDismissOnEscape, useFocusTrap, useRovingKeys, useSpaceActivation } from "../../core/a11y/keyboard";
20
+ import { MOTION_TRANSFORM, useAnimatedValue, useMotion } from "../../core/motion/index.js";
21
+ import { usePressState } from "../../core/motion/usePressState.js";
22
+ import { withAlpha } from "../../core/gradient/index.js";
25
23
  import { Icon } from "../../core/icon/index.js";
26
- import { useTheme } from "../../theme/index.js";
24
+ import { VirtualList } from "../../core/list/index.js";
25
+ import { concentric } from "../../core/style/index.js";
26
+ import { elevation, floatingBackground, floatingSurfaceStyle, highlight } from "../../theme/platform/index.js";
27
+ import { elevation as elevationTokens } from "../../theme/tokens/primitives/index.js";
28
+ import { useTheme } from "../../theme/hooks.js";
27
29
  import { ModalPortalContext } from "../modal/ModalPortalContext.js";
28
30
  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. */
31
+ import { MENU_ROW_ICON_SIZE, MENU_ROW_MIN_HEIGHT, menuOverlayStructure, menuRowStructure, menuSheetStructure, resolveMenuItemColor } from "./Menu.variants.js";
32
32
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
33
+ const VIRTUALIZE_THRESHOLD = 15;
33
34
  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
- const BACKDROP_SCRIM = "#00000099";
35
+ // Opacity is the shared `scrimOpacity` knob, not a locally-guessed hex matches Modal/Drawer/BottomSheet.
36
+ const BACKDROP_SCRIM = withAlpha("#000000", MOTION_TRANSFORM.scrimOpacity);
37
+ const AnimatedPressable = Reanimated.createAnimatedComponent(Pressable);
38
+ const MenuRow = /*#__PURE__*/memo(function MenuRow({
39
+ item,
40
+ index,
41
+ tabIndex,
42
+ theme,
43
+ onSelect,
44
+ testID
45
+ }) {
46
+ const color = resolveMenuItemColor(theme.colors, item.tone ?? "default");
47
+ const press = usePressState(false);
48
+ const handlePress = useCallback(() => onSelect(item), [onSelect, item]);
49
+ const rowRef = useRef(null);
50
+ const active = tabIndex === 0;
51
+
52
+ // The tabindex alone only names the tab stop — focus has to follow the arrows too, or the focus
53
+ // trap's Tab handler sees a focused row that is no longer tabbable and lets Tab leave the menu.
54
+ useEffect(() => {
55
+ if (!active || Platform.OS !== "web") return;
56
+ rowRef.current?.focus();
57
+ }, [active]);
58
+
59
+ // `menuitem` is not `button`, so RNW never presses on Space — see `core/a11y/keyboard.web.ts`.
60
+ useSpaceActivation(rowRef, handlePress);
61
+ const rowStyle = useMemo(() => [menuRowStructure(theme), {
62
+ overflow: "hidden"
63
+ }, press.animatedStyle], [theme, press.animatedStyle]);
64
+ const overlayStaticStyle = useMemo(() => ({
65
+ backgroundColor: theme.mode === "dark" ? "#ffffff" : "#000000",
66
+ borderRadius: concentric(theme.radii.lg, theme.space[4]),
67
+ borderCurve: "continuous"
68
+ }), [theme.mode, theme.radii.lg, theme.space]);
69
+ const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
70
+ flex: 1,
71
+ fontSize: theme.fontSizes.md,
72
+ color
73
+ }], [theme, color]);
74
+ return /*#__PURE__*/_jsxs(AnimatedPressable, {
75
+ ref: rowRef,
76
+ testID: testID ? `${testID}-item-${index}` : undefined,
77
+ accessibilityRole: "menuitem",
78
+ tabIndex: tabIndex,
79
+ onPress: handlePress,
80
+ onPressIn: press.handlers.onPressIn,
81
+ onPressOut: press.handlers.onPressOut,
82
+ onLayout: press.onLayout,
83
+ style: rowStyle,
84
+ children: [/*#__PURE__*/_jsx(Reanimated.View, {
85
+ pointerEvents: "none",
86
+ style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
87
+ }), item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
88
+ name: item.icon,
89
+ size: MENU_ROW_ICON_SIZE,
90
+ color: color,
91
+ strokeWidth: ICON_STROKE
92
+ }), /*#__PURE__*/_jsx(Text, {
93
+ numberOfLines: 1,
94
+ style: labelStyle,
95
+ children: item.label
96
+ })]
97
+ });
98
+ });
37
99
  export const Menu = /*#__PURE__*/memo(function Menu({
38
100
  trigger,
39
101
  items,
@@ -41,21 +103,85 @@ export const Menu = /*#__PURE__*/memo(function Menu({
41
103
  testID
42
104
  }) {
43
105
  const theme = useTheme();
44
- const reducedMotion = useReducedMotion();
106
+ const motion = useMotion();
45
107
  const portalContainer = useContext(ModalPortalContext);
46
108
  const [open, setOpen] = useState(false);
109
+ const [mounted, setMounted] = useState(false);
110
+ const mountedRef = useRef(mounted);
111
+ mountedRef.current = mounted;
112
+ const [activeIndex, setActiveIndex] = useState(0);
113
+ const sheetRef = useRef(null);
114
+ const enter = useAnimatedValue(0);
115
+ const running = useRef(null);
116
+ const unmountTimer = useRef(null);
117
+ useEffect(() => {
118
+ const clearUnmount = () => {
119
+ if (unmountTimer.current !== null) {
120
+ clearTimeout(unmountTimer.current);
121
+ unmountTimer.current = null;
122
+ }
123
+ };
124
+ running.current?.stop();
125
+ clearUnmount();
126
+ if (open) {
127
+ setMounted(true);
128
+ if (!motion.enabled) {
129
+ enter.setValue(1);
130
+ return;
131
+ }
132
+ enter.setValue(0);
133
+ running.current = motion.timing(enter, 1, {
134
+ duration: "fast",
135
+ easing: "decelerate"
136
+ });
137
+ running.current.start();
138
+ return;
139
+ }
140
+ if (!mountedRef.current) return;
141
+ const exitMs = motion.duration("fast");
142
+ if (!motion.enabled || exitMs === 0) {
143
+ enter.setValue(0);
144
+ setMounted(false);
145
+ return;
146
+ }
147
+ running.current = motion.timing(enter, 0, {
148
+ duration: "fast",
149
+ easing: "accelerate"
150
+ });
151
+ running.current.start();
152
+ unmountTimer.current = setTimeout(() => {
153
+ unmountTimer.current = null;
154
+ setMounted(false);
155
+ }, exitMs);
156
+ return clearUnmount;
157
+ }, [open, motion, enter]);
158
+ useEffect(() => () => {
159
+ running.current?.stop();
160
+ if (unmountTimer.current !== null) clearTimeout(unmountTimer.current);
161
+ }, []);
47
162
  const openMenu = useCallback(() => {
48
163
  if (disabled) return;
164
+ setActiveIndex(0);
49
165
  setOpen(true);
50
166
  }, [disabled]);
51
167
  const closeMenu = useCallback(() => setOpen(false), []);
52
- const selectItem = item => {
168
+ const selectItem = useCallback(item => {
53
169
  closeMenu();
54
170
  item.onPress();
55
- };
171
+ }, [closeMenu]);
172
+ const typeaheadLabels = useMemo(() => items.map(item => item.label), [items]);
56
173
 
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.
174
+ // Keyboard (web onlyevery hook below is a no-op on native, see `core/a11y/keyboard.ts`).
175
+ // No `onActivate`: RNW already presses a `menuitem` on Enter, and each row's own
176
+ // `useSpaceActivation` owns Space — passing it here would activate the item twice.
177
+ useDismissOnEscape(open, closeMenu);
178
+ useFocusTrap(sheetRef, open);
179
+ useRovingKeys(sheetRef, open, {
180
+ count: items.length,
181
+ activeIndex,
182
+ onActiveIndexChange: setActiveIndex,
183
+ typeaheadLabels
184
+ });
59
185
  const handleTriggerPress = useCallback(event => {
60
186
  trigger.props.onPress?.(event);
61
187
  openMenu();
@@ -63,61 +189,97 @@ export const Menu = /*#__PURE__*/memo(function Menu({
63
189
  const clonedTrigger = /*#__PURE__*/cloneElement(trigger, {
64
190
  onPress: handleTriggerPress
65
191
  });
66
- const sheet = /*#__PURE__*/_jsxs(_Fragment, {
192
+ const keyExtractor = useCallback((item, index) => `${item.label}-${index}`, []);
193
+ const renderItem = useCallback(({
194
+ item,
195
+ index
196
+ }) => /*#__PURE__*/_jsx(MenuRow, {
197
+ item: item,
198
+ index: index,
199
+ tabIndex: focusItemProps(index, activeIndex).tabIndex,
200
+ theme: theme,
201
+ onSelect: selectItem,
202
+ testID: testID
203
+ }), [activeIndex, theme, selectItem, testID]);
204
+ const floatingStyle = useMemo(() => {
205
+ highlight("subtle", theme.mode);
206
+ elevation(elevationTokens.md);
207
+ void theme.elevatedSurfaces;
208
+ return {
209
+ backgroundColor: floatingBackground(theme, "md"),
210
+ ...floatingSurfaceStyle(theme, "md")
211
+ };
212
+ }, [theme]);
213
+ const sheetStyle = useMemo(() => [menuSheetStructure(theme), floatingStyle, {
214
+ opacity: enter,
215
+ transform: [{
216
+ scale: enter.interpolate({
217
+ inputRange: [0, 1],
218
+ outputRange: [motion.transform.pressScale, 1]
219
+ })
220
+ }, {
221
+ translateY: enter.interpolate({
222
+ inputRange: [0, 1],
223
+ outputRange: [motion.transform.offsetY, 0]
224
+ })
225
+ }]
226
+ }], [theme, floatingStyle, enter, motion.transform.pressScale, motion.transform.offsetY]);
227
+ const backdropStyle = useMemo(() => [styles.backdrop, {
228
+ opacity: enter
229
+ }], [enter]);
230
+
231
+ // Built only while mounted: a closed, settled Menu must not materialize one element per item on
232
+ // every render of the screen that hosts it.
233
+ const sheet = mounted ? /*#__PURE__*/_jsxs(_Fragment, {
67
234
  children: [/*#__PURE__*/_jsx(Pressable, {
68
235
  testID: testID ? `${testID}-backdrop` : undefined,
69
236
  accessible: false,
70
- style: [StyleSheet.absoluteFill, {
71
- backgroundColor: BACKDROP_SCRIM
72
- }],
73
- onPress: closeMenu
237
+ tabIndex: -1,
238
+ style: StyleSheet.absoluteFill,
239
+ onPress: closeMenu,
240
+ children: /*#__PURE__*/_jsx(Animated.View, {
241
+ pointerEvents: "none",
242
+ style: backdropStyle
243
+ })
74
244
  }), /*#__PURE__*/_jsx(View, {
75
245
  style: menuOverlayStructure(theme),
76
246
  pointerEvents: "box-none",
77
- children: /*#__PURE__*/_jsx(View, {
78
- style: [menuSheetStructure(theme), {
79
- backgroundColor: theme.colors.bg.surface
80
- }],
81
- children: /*#__PURE__*/_jsx(ScrollView, {
247
+ children: /*#__PURE__*/_jsx(Animated.View, {
248
+ ref: sheetRef,
249
+ testID: testID ? `${testID}-sheet` : undefined,
250
+ accessibilityRole: "menu",
251
+ accessibilityViewIsModal: true,
252
+ onAccessibilityEscape: closeMenu,
253
+ style: sheetStyle,
254
+ children: items.length >= VIRTUALIZE_THRESHOLD ? /*#__PURE__*/_jsx(VirtualList, {
255
+ data: items,
256
+ keyExtractor: keyExtractor,
257
+ renderItem: renderItem,
258
+ itemHeight: MENU_ROW_MIN_HEIGHT
259
+ }) : /*#__PURE__*/_jsx(ScrollView, {
82
260
  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
- })
261
+ children: items.map((item, index) => /*#__PURE__*/_jsx(MenuRow, {
262
+ item: item,
263
+ index: index,
264
+ tabIndex: focusItemProps(index, activeIndex).tabIndex,
265
+ theme: theme,
266
+ onSelect: selectItem,
267
+ testID: testID
268
+ }, `${item.label}-${index}`))
106
269
  })
107
270
  })
108
271
  })]
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.
113
- const menu = Platform.OS === "web" && portalContainer != null ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
272
+ }) : null;
273
+ const menu = Platform.OS === "web" && portalContainer != null ? mounted ? renderWebPortal(/*#__PURE__*/_jsx(View, {
114
274
  style: StyleSheet.absoluteFill,
115
275
  pointerEvents: "box-none",
116
276
  children: sheet
117
277
  }), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
118
278
  visible: open,
119
279
  transparent: true,
120
- animationType: reducedMotion ? "none" : "fade",
280
+ statusBarTranslucent: true,
281
+ navigationBarTranslucent: true,
282
+ animationType: motion.enabled ? "fade" : "none",
121
283
  onRequestClose: closeMenu,
122
284
  children: sheet
123
285
  });
@@ -125,4 +287,10 @@ export const Menu = /*#__PURE__*/memo(function Menu({
125
287
  children: [clonedTrigger, menu]
126
288
  });
127
289
  });
290
+ const styles = StyleSheet.create({
291
+ backdrop: {
292
+ ...StyleSheet.absoluteFill,
293
+ backgroundColor: BACKDROP_SCRIM
294
+ }
295
+ });
128
296
  //# 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
@@ -57,10 +67,10 @@ export const menuOverlayStructure = createThemedVariants(theme => ({
57
67
  }));
58
68
  export const menuSheetStructure = createThemedVariants(theme => ({
59
69
  base: {
60
- borderRadius: theme.radii.base,
70
+ borderRadius: theme.radii.lg,
71
+ borderCurve: "continuous",
61
72
  paddingVertical: theme.space[2],
62
- maxHeight: 320,
63
- ...theme.elevation.lg
73
+ maxHeight: 320
64
74
  }
65
75
  }));
66
76
  export const menuRowStructure = createThemedVariants(theme => ({
@@ -0,0 +1,41 @@
1
+ # message-bubble/
2
+
3
+ Single chat bubble — `user` (accent) or `assistant` (tonal surface). 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` | — |
39
+
40
+ - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
41
+ - **Round 5 tonal** — assistant's `borderWidth.thin` hairline dropped; `bg.surface` alone now separates the bubble from its parent by tone, matching `Card`'s borderless-flat precedent.
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * MessageBubble — a single chat turn bubble. User variant uses accent fill; assistant uses a tonal
5
+ * surface fill, no 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
+ }, style], [theme, variant, colors.background, style]);
37
+ const textStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
38
+ fontSize: theme.fontSizes.md,
39
+ lineHeight: theme.fontSizes.md * 1.45,
40
+ color: colors.text
41
+ }], [theme, colors.text]);
42
+ return /*#__PURE__*/_jsx(View, {
43
+ testID: testID,
44
+ accessible: a11y.accessible,
45
+ accessibilityRole: a11y.accessibilityRole,
46
+ accessibilityLabel: a11y.accessibilityLabel,
47
+ style: bubbleStyle,
48
+ children: /*#__PURE__*/_jsx(Text, {
49
+ style: textStyle,
50
+ children: content
51
+ })
52
+ });
53
+ });
54
+ //# sourceMappingURL=MessageBubble.js.map
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import { createThemedVariants } from "../../core/style/index.js";
4
+ /** Assistant separates from the canvas by tone (`bg.surface`) alone now — no hairline border. */
5
+ export function resolveMessageBubbleColors(colors, variant) {
6
+ if (variant === "user") {
7
+ return {
8
+ background: colors.accent.solid,
9
+ text: colors.accent.onSolid
10
+ };
11
+ }
12
+ return {
13
+ background: colors.bg.surface,
14
+ text: colors.fg.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
+ borderCurve: "continuous"
24
+ },
25
+ variants: {
26
+ variant: {
27
+ user: {
28
+ alignSelf: "flex-end",
29
+ borderBottomRightRadius: theme.radii.sm
30
+ },
31
+ assistant: {
32
+ alignSelf: "flex-start",
33
+ borderBottomLeftRadius: theme.radii.sm
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
@@ -119,13 +135,25 @@ mechanism below.
119
135
  4. **Closed `size` union** reusing the shared `sizes` primitive (384/448/512dp) instead of
120
136
  Modal-local numbers — `theme/tokens/primitives/sizes.ts` is documented for exactly this case.
121
137
 
138
+ ## Android edge-to-edge
139
+
140
+ Every RN `<Modal transparent>` in this library (`Modal`, `Select`, `MultiSelect`, `Combobox`,
141
+ `Menu`, `OrgSwitcher`, `PickerShell`, `Drawer`) also sets `statusBarTranslucent` and
142
+ `navigationBarTranslucent`, both `true`. Without them, Android edge-to-edge (Expo default since
143
+ SDK 53) paints the modal's backing window opaque instead of transparent — the whole screen goes
144
+ solid white on open. Add both any time a new module renders its own RN `<Modal transparent>`.
145
+
122
146
  ## Known gaps
123
147
 
124
- - **No full focus trap.** iOS gets `accessibilityViewIsModal` (constrains VoiceOver to the panel).
125
- Android has no JS-level equivalent for marking background siblings
148
+ - **No full SCREEN-READER trap.** iOS gets `accessibilityViewIsModal` (constrains VoiceOver to the
149
+ panel). Android has no JS-level equivalent for marking background siblings
126
150
  `importantForAccessibility="no-hide-descendants"` from inside this component (that prop applies
127
151
  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.
152
+ reader trap needs the app root to cooperate. Out of scope for v1. (The web *keyboard* trap above
153
+ is a separate mechanism and is wired.)
154
+ - **The web keyboard trap only cycles Tab.** It does not pull focus back if focus leaves the panel
155
+ by a click outside or a programmatic `focus()` — that needs sentinel nodes at the panel's edges,
156
+ a component-level change nobody has needed yet. Inherited from `core/a11y/keyboard`.
129
157
  - **No built-in scrolling.** The panel caps at `maxHeight: "92%"` but does not wrap `children` in a
130
158
  `ScrollView` — forcing one risks nested-`VirtualizedList` warnings if a consumer's content is
131
159
  already scrollable. Tall content is the consumer's own `ScrollView`/`FlatList` to add.
@@ -136,3 +164,12 @@ mechanism below.
136
164
  ## Performance
137
165
 
138
166
  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.
167
+
168
+ ## Modernization (v1.0.7)
169
+
170
+ - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
171
+ - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
172
+ - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
173
+
174
+ - **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
175
+ - **Round 5 motion** — dropped the ad hoc reanimated `FadeInDown`/`FadeOut` layer; the panel's own `enter` value now drives backdrop opacity too, so scrim fade and panel slide+fade are one gesture on both the RNModal and web-portal paths. The portal branch now tracks `mounted` through a real timed exit instead of unmounting instantly. `MODAL_BACKDROP`'s opacity comes from `MOTION_TRANSFORM.scrimOpacity`.