pixelize-native-library 1.0.7 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1072) hide show
  1. package/lib/module/core/MODULE.md +129 -36
  2. package/lib/module/core/a11y/MODULE.md +127 -4
  3. package/lib/module/core/a11y/announce.js +30 -0
  4. package/lib/module/core/a11y/announce.web.js +134 -0
  5. package/lib/module/core/a11y/index.js +81 -15
  6. package/lib/module/core/a11y/keyboard.js +42 -0
  7. package/lib/module/core/a11y/keyboard.web.js +229 -0
  8. package/lib/module/core/a11y/labels.js +24 -0
  9. package/lib/module/core/device/MODULE.md +47 -0
  10. package/lib/module/core/device/index.js +91 -0
  11. package/lib/module/core/heading/MODULE.md +38 -0
  12. package/lib/module/core/heading/index.js +45 -0
  13. package/lib/module/core/icon/Icon.js +37 -0
  14. package/lib/module/core/icon/MODULE.md +42 -8
  15. package/lib/module/core/icon/icons/arrow-down.js +10 -0
  16. package/lib/module/core/icon/icons/arrow-left.js +10 -0
  17. package/lib/module/core/icon/icons/arrow-right.js +10 -0
  18. package/lib/module/core/icon/icons/arrow-up.js +10 -0
  19. package/lib/module/core/icon/icons/at-sign.js +10 -0
  20. package/lib/module/core/icon/icons/bell.js +10 -0
  21. package/lib/module/core/icon/icons/bold.js +10 -0
  22. package/lib/module/core/icon/icons/building-2.js +10 -0
  23. package/lib/module/core/icon/icons/calendar.js +10 -0
  24. package/lib/module/core/icon/icons/chart-column.js +10 -0
  25. package/lib/module/core/icon/icons/check.js +10 -0
  26. package/lib/module/core/icon/icons/chevron-down.js +10 -0
  27. package/lib/module/core/icon/icons/chevron-left.js +10 -0
  28. package/lib/module/core/icon/icons/chevron-right.js +10 -0
  29. package/lib/module/core/icon/icons/chevron-up.js +10 -0
  30. package/lib/module/core/icon/icons/chevrons-left.js +10 -0
  31. package/lib/module/core/icon/icons/chevrons-right.js +10 -0
  32. package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
  33. package/lib/module/core/icon/icons/circle-alert.js +10 -0
  34. package/lib/module/core/icon/icons/circle-check.js +10 -0
  35. package/lib/module/core/icon/icons/clock.js +10 -0
  36. package/lib/module/core/icon/icons/code.js +10 -0
  37. package/lib/module/core/icon/icons/download.js +10 -0
  38. package/lib/module/core/icon/icons/external-link.js +10 -0
  39. package/lib/module/core/icon/icons/eye.js +10 -0
  40. package/lib/module/core/icon/icons/file-text.js +10 -0
  41. package/lib/module/core/icon/icons/filter.js +10 -0
  42. package/lib/module/core/icon/icons/flag.js +10 -0
  43. package/lib/module/core/icon/icons/folder.js +10 -0
  44. package/lib/module/core/icon/icons/heading-1.js +10 -0
  45. package/lib/module/core/icon/icons/heading-2.js +10 -0
  46. package/lib/module/core/icon/icons/heading-3.js +10 -0
  47. package/lib/module/core/icon/icons/image.js +10 -0
  48. package/lib/module/core/icon/icons/inbox.js +10 -0
  49. package/lib/module/core/icon/icons/info.js +10 -0
  50. package/lib/module/core/icon/icons/italic.js +10 -0
  51. package/lib/module/core/icon/icons/kanban.js +10 -0
  52. package/lib/module/core/icon/icons/layers.js +10 -0
  53. package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
  54. package/lib/module/core/icon/icons/layout-template.js +10 -0
  55. package/lib/module/core/icon/icons/life-buoy.js +10 -0
  56. package/lib/module/core/icon/icons/link.js +10 -0
  57. package/lib/module/core/icon/icons/list-checks.js +10 -0
  58. package/lib/module/core/icon/icons/list-ordered.js +10 -0
  59. package/lib/module/core/icon/icons/list-todo.js +10 -0
  60. package/lib/module/core/icon/icons/list.js +10 -0
  61. package/lib/module/core/icon/icons/log-out.js +10 -0
  62. package/lib/module/core/icon/icons/map.js +10 -0
  63. package/lib/module/core/icon/icons/message-square.js +10 -0
  64. package/lib/module/core/icon/icons/milestone.js +10 -0
  65. package/lib/module/core/icon/icons/minus.js +10 -0
  66. package/lib/module/core/icon/icons/more-horizontal.js +10 -0
  67. package/lib/module/core/icon/icons/paperclip.js +10 -0
  68. package/lib/module/core/icon/icons/pencil.js +10 -0
  69. package/lib/module/core/icon/icons/plus.js +10 -0
  70. package/lib/module/core/icon/icons/quote.js +10 -0
  71. package/lib/module/core/icon/icons/refresh-cw.js +10 -0
  72. package/lib/module/core/icon/icons/save.js +10 -0
  73. package/lib/module/core/icon/icons/search.js +10 -0
  74. package/lib/module/core/icon/icons/send.js +10 -0
  75. package/lib/module/core/icon/icons/settings.js +10 -0
  76. package/lib/module/core/icon/icons/share.js +10 -0
  77. package/lib/module/core/icon/icons/square-code.js +10 -0
  78. package/lib/module/core/icon/icons/star.js +10 -0
  79. package/lib/module/core/icon/icons/strikethrough.js +10 -0
  80. package/lib/module/core/icon/icons/tag.js +10 -0
  81. package/lib/module/core/icon/icons/trash.js +10 -0
  82. package/lib/module/core/icon/icons/triangle-alert.js +10 -0
  83. package/lib/module/core/icon/icons/underline.js +10 -0
  84. package/lib/module/core/icon/icons/upload.js +10 -0
  85. package/lib/module/core/icon/icons/user.js +10 -0
  86. package/lib/module/core/icon/icons/users.js +10 -0
  87. package/lib/module/core/icon/icons/x.js +10 -0
  88. package/lib/module/core/icon/index.js +4 -153
  89. package/lib/module/core/icon/names.js +2 -0
  90. package/lib/module/core/icon/resolve.js +158 -0
  91. package/lib/module/core/icon/types.js +4 -0
  92. package/lib/module/core/list/VirtualList.js +226 -0
  93. package/lib/module/core/list/index.js +4 -0
  94. package/lib/module/core/media/MediaImage.js +51 -0
  95. package/lib/module/core/media/expoImage.js +20 -0
  96. package/lib/module/core/media/index.js +6 -0
  97. package/lib/module/core/media/pickers.js +23 -0
  98. package/lib/module/core/motion/MODULE.md +101 -0
  99. package/lib/module/core/motion/config.js +112 -0
  100. package/lib/module/core/motion/index.js +7 -0
  101. package/lib/module/core/motion/presets.js +192 -0
  102. package/lib/module/core/motion/useAnimatedValue.js +19 -0
  103. package/lib/module/core/motion/useMotion.js +46 -0
  104. package/lib/module/core/style/index.js +2 -0
  105. package/lib/module/core/style/sx.js +76 -0
  106. package/lib/module/core/style/useThemedStyles.js +8 -0
  107. package/lib/module/index.js +70 -2
  108. package/lib/module/modules/accordion/Accordion.js +256 -87
  109. package/lib/module/modules/accordion/Accordion.variants.js +2 -4
  110. package/lib/module/modules/accordion/MODULE.md +35 -11
  111. package/lib/module/modules/alert-dialog/AlertDialog.js +1 -1
  112. package/lib/module/modules/alert-dialog/MODULE.md +11 -2
  113. package/lib/module/modules/app-bar/AppBar.js +179 -0
  114. package/lib/module/modules/app-bar/AppBar.variants.js +72 -0
  115. package/lib/module/modules/app-bar/MODULE.md +68 -0
  116. package/lib/module/modules/app-bar/index.js +10 -0
  117. package/lib/module/modules/avatar/Avatar.js +38 -18
  118. package/lib/module/modules/avatar/Avatar.variants.js +44 -3
  119. package/lib/module/modules/avatar/MODULE.md +37 -15
  120. package/lib/module/modules/avatar-group/AvatarGroup.js +77 -0
  121. package/lib/module/modules/avatar-group/AvatarGroup.variants.js +109 -0
  122. package/lib/module/modules/avatar-group/MODULE.md +28 -0
  123. package/lib/module/modules/avatar-group/index.js +10 -0
  124. package/lib/module/modules/badge/Badge.js +3 -2
  125. package/lib/module/modules/badge/Badge.variants.js +12 -2
  126. package/lib/module/modules/badge/MODULE.md +6 -0
  127. package/lib/module/modules/banner/Banner.js +135 -0
  128. package/lib/module/modules/banner/Banner.variants.js +118 -0
  129. package/lib/module/modules/banner/MODULE.md +113 -0
  130. package/lib/module/modules/banner/index.js +4 -0
  131. package/lib/module/modules/bottom-nav/BottomNav.js +37 -126
  132. package/lib/module/modules/bottom-nav/BottomNav.variants.js +28 -9
  133. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
  134. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +133 -114
  135. package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
  136. package/lib/module/modules/bottom-nav/MODULE.md +21 -6
  137. package/lib/module/modules/bottom-sheet/BottomSheet.js +189 -0
  138. package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +49 -0
  139. package/lib/module/modules/bottom-sheet/MODULE.md +53 -0
  140. package/lib/module/modules/bottom-sheet/index.js +4 -0
  141. package/lib/module/modules/button/Button.js +98 -47
  142. package/lib/module/modules/button/Button.variants.js +12 -7
  143. package/lib/module/modules/button/MODULE.md +25 -3
  144. package/lib/module/modules/button-group/ButtonGroup.js +163 -55
  145. package/lib/module/modules/button-group/ButtonGroup.variants.js +30 -4
  146. package/lib/module/modules/button-group/MODULE.md +33 -7
  147. package/lib/module/modules/card/Card.js +10 -7
  148. package/lib/module/modules/card/MODULE.md +6 -0
  149. package/lib/module/modules/charts/BarChart.js +242 -0
  150. package/lib/module/modules/charts/BarList.js +98 -48
  151. package/lib/module/modules/charts/ChartLegend.js +154 -0
  152. package/lib/module/modules/charts/Charts.variants.js +524 -1
  153. package/lib/module/modules/charts/DonutChart.js +100 -65
  154. package/lib/module/modules/charts/LineChart.js +179 -0
  155. package/lib/module/modules/charts/MODULE.md +148 -22
  156. package/lib/module/modules/charts/PieChart.js +140 -0
  157. package/lib/module/modules/charts/Sparkline.js +5 -4
  158. package/lib/module/modules/charts/index.js +3 -0
  159. package/lib/module/modules/checkbox/Checkbox.js +114 -44
  160. package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
  161. package/lib/module/modules/checkbox/MODULE.md +35 -8
  162. package/lib/module/modules/chip/Chip.js +155 -0
  163. package/lib/module/modules/chip/Chip.variants.js +278 -0
  164. package/lib/module/modules/chip/ChipGroup.js +48 -0
  165. package/lib/module/modules/chip/MODULE.md +156 -0
  166. package/lib/module/modules/chip/index.js +13 -0
  167. package/lib/module/modules/combobox/Combobox.js +587 -0
  168. package/lib/module/modules/combobox/Combobox.variants.js +280 -0
  169. package/lib/module/modules/combobox/MODULE.md +183 -0
  170. package/lib/module/modules/combobox/comboboxKeys.js +19 -0
  171. package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
  172. package/lib/module/modules/combobox/index.js +13 -0
  173. package/lib/module/modules/composer/Composer.js +156 -0
  174. package/lib/module/modules/composer/Composer.variants.js +42 -0
  175. package/lib/module/modules/composer/MODULE.md +70 -0
  176. package/lib/module/modules/composer/index.js +4 -0
  177. package/lib/module/modules/copy-button/CopyButton.js +156 -0
  178. package/lib/module/modules/copy-button/CopyButton.variants.js +86 -0
  179. package/lib/module/modules/copy-button/MODULE.md +73 -0
  180. package/lib/module/modules/copy-button/index.js +4 -0
  181. package/lib/module/modules/data-table/DataTable.js +513 -0
  182. package/lib/module/modules/data-table/DataTable.variants.js +188 -0
  183. package/lib/module/modules/data-table/MODULE.md +145 -0
  184. package/lib/module/modules/data-table/index.js +10 -0
  185. package/lib/module/modules/date-picker/Calendar.js +368 -0
  186. package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
  187. package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
  188. package/lib/module/modules/date-picker/DatePicker.js +162 -0
  189. package/lib/module/modules/date-picker/DatePicker.variants.js +686 -0
  190. package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
  191. package/lib/module/modules/date-picker/MODULE.md +169 -0
  192. package/lib/module/modules/date-picker/PickerField.js +142 -0
  193. package/lib/module/modules/date-picker/PickerShell.js +132 -0
  194. package/lib/module/modules/date-picker/TimePicker.js +184 -0
  195. package/lib/module/modules/date-picker/index.js +14 -0
  196. package/lib/module/modules/divider/Divider.js +8 -7
  197. package/lib/module/modules/divider/MODULE.md +6 -0
  198. package/lib/module/modules/drawer/Drawer.js +140 -58
  199. package/lib/module/modules/drawer/Drawer.variants.js +3 -16
  200. package/lib/module/modules/drawer/MODULE.md +90 -118
  201. package/lib/module/modules/empty-state/EmptyState.js +32 -18
  202. package/lib/module/modules/empty-state/EmptyState.variants.js +9 -0
  203. package/lib/module/modules/empty-state/MODULE.md +25 -7
  204. package/lib/module/modules/fab/Fab.js +212 -0
  205. package/lib/module/modules/fab/Fab.variants.js +346 -0
  206. package/lib/module/modules/fab/FabGroup.js +334 -0
  207. package/lib/module/modules/fab/MODULE.md +181 -0
  208. package/lib/module/modules/fab/index.js +13 -0
  209. package/lib/module/modules/file-grid/FileGrid.js +149 -0
  210. package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
  211. package/lib/module/modules/file-grid/MODULE.md +12 -0
  212. package/lib/module/modules/file-grid/index.js +4 -0
  213. package/lib/module/modules/file-upload/FileUpload.js +124 -34
  214. package/lib/module/modules/file-upload/FileUpload.variants.js +50 -7
  215. package/lib/module/modules/file-upload/MODULE.md +22 -4
  216. package/lib/module/modules/filter-sheet/FilterChip.js +25 -19
  217. package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
  218. package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
  219. package/lib/module/modules/filter-sheet/FilterSheetBody.js +168 -82
  220. package/lib/module/modules/filter-sheet/MODULE.md +22 -1
  221. package/lib/module/modules/folder-row/FolderRow.js +132 -0
  222. package/lib/module/modules/folder-row/FolderRow.variants.js +49 -0
  223. package/lib/module/modules/folder-row/MODULE.md +71 -0
  224. package/lib/module/modules/folder-row/index.js +4 -0
  225. package/lib/module/modules/form-field/FormField.js +104 -0
  226. package/lib/module/modules/form-field/FormField.variants.js +88 -0
  227. package/lib/module/modules/form-field/MODULE.md +103 -0
  228. package/lib/module/modules/form-field/index.js +4 -0
  229. package/lib/module/modules/gantt/Gantt.js +218 -0
  230. package/lib/module/modules/gantt/Gantt.variants.js +141 -0
  231. package/lib/module/modules/gantt/MODULE.md +71 -0
  232. package/lib/module/modules/gantt/index.js +5 -0
  233. package/lib/module/modules/image-viewer/ImageViewer.js +235 -0
  234. package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
  235. package/lib/module/modules/image-viewer/MODULE.md +57 -0
  236. package/lib/module/modules/image-viewer/index.js +4 -0
  237. package/lib/module/modules/input/Input.js +106 -48
  238. package/lib/module/modules/input/Input.variants.js +18 -4
  239. package/lib/module/modules/input/MODULE.md +36 -6
  240. package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
  241. package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
  242. package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
  243. package/lib/module/modules/limit-reached-modal/index.js +11 -0
  244. package/lib/module/modules/list-item/ListItem.js +45 -28
  245. package/lib/module/modules/list-item/MODULE.md +6 -0
  246. package/lib/module/modules/markdown/MODULE.md +32 -5
  247. package/lib/module/modules/markdown/Markdown.js +54 -20
  248. package/lib/module/modules/markdown/Markdown.variants.js +6 -1
  249. package/lib/module/modules/markdown/parseMarkdown.js +3 -3
  250. package/lib/module/modules/menu/MODULE.md +45 -14
  251. package/lib/module/modules/menu/Menu.js +174 -65
  252. package/lib/module/modules/menu/Menu.variants.js +10 -0
  253. package/lib/module/modules/message-bubble/MODULE.md +38 -0
  254. package/lib/module/modules/message-bubble/MessageBubble.js +55 -0
  255. package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
  256. package/lib/module/modules/message-bubble/index.js +4 -0
  257. package/lib/module/modules/modal/MODULE.md +29 -3
  258. package/lib/module/modules/modal/Modal.js +72 -22
  259. package/lib/module/modules/more-items/MODULE.md +72 -0
  260. package/lib/module/modules/more-items/MoreItems.js +162 -0
  261. package/lib/module/modules/more-items/MoreItems.variants.js +80 -0
  262. package/lib/module/modules/more-items/index.js +4 -0
  263. package/lib/module/modules/multi-select/MODULE.md +84 -18
  264. package/lib/module/modules/multi-select/MultiSelect.js +217 -105
  265. package/lib/module/modules/multi-select/MultiSelect.variants.js +28 -5
  266. package/lib/module/modules/number-input/MODULE.md +39 -5
  267. package/lib/module/modules/number-input/NumberInput.js +41 -11
  268. package/lib/module/modules/number-input/NumberInput.variants.js +39 -5
  269. package/lib/module/modules/org-switcher/MODULE.md +121 -0
  270. package/lib/module/modules/org-switcher/OrgSwitcher.js +284 -0
  271. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +186 -0
  272. package/lib/module/modules/org-switcher/index.js +9 -0
  273. package/lib/module/modules/pagination/MODULE.md +163 -0
  274. package/lib/module/modules/pagination/Pagination.js +197 -0
  275. package/lib/module/modules/pagination/Pagination.variants.js +307 -0
  276. package/lib/module/modules/pagination/PaginationControls.js +193 -0
  277. package/lib/module/modules/pagination/index.js +15 -0
  278. package/lib/module/modules/pin-input/MODULE.md +29 -14
  279. package/lib/module/modules/pin-input/PinInput.js +111 -80
  280. package/lib/module/modules/pin-input/PinInput.variants.js +13 -5
  281. package/lib/module/modules/progress-bar/MODULE.md +17 -7
  282. package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
  283. package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
  284. package/lib/module/modules/radio-group/MODULE.md +40 -14
  285. package/lib/module/modules/radio-group/RadioGroup.js +71 -7
  286. package/lib/module/modules/radio-group/RadioGroup.variants.js +46 -10
  287. package/lib/module/modules/reorder/MODULE.md +104 -97
  288. package/lib/module/modules/reorder/Reorder.js +233 -197
  289. package/lib/module/modules/reorder/Reorder.variants.js +35 -13
  290. package/lib/module/modules/rich-text/MODULE.md +52 -0
  291. package/lib/module/modules/rich-text/RichText.js +362 -0
  292. package/lib/module/modules/rich-text/RichText.variants.js +17 -0
  293. package/lib/module/modules/rich-text/index.js +5 -0
  294. package/lib/module/modules/rich-text/parseRichText.js +133 -0
  295. package/lib/module/modules/rich-text-editor/MODULE.md +225 -0
  296. package/lib/module/modules/rich-text-editor/RichTextEditor.js +413 -0
  297. package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +316 -0
  298. package/lib/module/modules/rich-text-editor/index.js +10 -0
  299. package/lib/module/modules/screen/MODULE.md +57 -0
  300. package/lib/module/modules/screen/Screen.js +106 -0
  301. package/lib/module/modules/screen/Screen.variants.js +43 -0
  302. package/lib/module/modules/screen/index.js +10 -0
  303. package/lib/module/modules/search-bar/MODULE.md +114 -0
  304. package/lib/module/modules/search-bar/SearchBar.js +256 -0
  305. package/lib/module/modules/search-bar/SearchBar.variants.js +205 -0
  306. package/lib/module/modules/search-bar/index.js +12 -0
  307. package/lib/module/modules/section/MODULE.md +39 -0
  308. package/lib/module/modules/section/Section.js +42 -0
  309. package/lib/module/modules/section/Section.variants.js +29 -0
  310. package/lib/module/modules/section/index.js +10 -0
  311. package/lib/module/modules/section-list/MODULE.md +18 -0
  312. package/lib/module/modules/section-list/SectionList.js +64 -0
  313. package/lib/module/modules/section-list/SectionList.variants.js +11 -0
  314. package/lib/module/modules/section-list/index.js +4 -0
  315. package/lib/module/modules/segmented-control/MODULE.md +124 -0
  316. package/lib/module/modules/segmented-control/SegmentedControl.js +158 -0
  317. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +167 -0
  318. package/lib/module/modules/segmented-control/index.js +13 -0
  319. package/lib/module/modules/select/MODULE.md +81 -14
  320. package/lib/module/modules/select/Select.js +196 -94
  321. package/lib/module/modules/select/Select.variants.js +28 -5
  322. package/lib/module/modules/skeleton/MODULE.md +27 -7
  323. package/lib/module/modules/skeleton/Skeleton.js +52 -38
  324. package/lib/module/modules/skeleton/Skeleton.variants.js +9 -8
  325. package/lib/module/modules/slider/MODULE.md +31 -5
  326. package/lib/module/modules/slider/Slider.js +67 -10
  327. package/lib/module/modules/slider/Slider.variants.js +60 -13
  328. package/lib/module/modules/spinner/MODULE.md +16 -6
  329. package/lib/module/modules/spinner/Spinner.js +20 -16
  330. package/lib/module/modules/spinner/Spinner.variants.js +5 -3
  331. package/lib/module/modules/stage-progress/MODULE.md +64 -0
  332. package/lib/module/modules/stage-progress/StageProgress.js +174 -0
  333. package/lib/module/modules/stage-progress/StageProgress.variants.js +164 -0
  334. package/lib/module/modules/stage-progress/index.js +4 -0
  335. package/lib/module/modules/stat-tile/MODULE.md +9 -2
  336. package/lib/module/modules/stat-tile/StatTile.js +70 -33
  337. package/lib/module/modules/stat-tile/StatTile.variants.js +6 -4
  338. package/lib/module/modules/state-block/MODULE.md +52 -0
  339. package/lib/module/modules/state-block/StateBlock.js +131 -0
  340. package/lib/module/modules/state-block/StateBlock.variants.js +55 -0
  341. package/lib/module/modules/state-block/index.js +10 -0
  342. package/lib/module/modules/stepper/MODULE.md +33 -6
  343. package/lib/module/modules/stepper/Stepper.js +108 -39
  344. package/lib/module/modules/stepper/Stepper.variants.js +6 -6
  345. package/lib/module/modules/swipeable-row/MODULE.md +120 -0
  346. package/lib/module/modules/swipeable-row/SwipeableRow.js +244 -0
  347. package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
  348. package/lib/module/modules/swipeable-row/index.js +4 -0
  349. package/lib/module/modules/switch/MODULE.md +14 -0
  350. package/lib/module/modules/switch/Switch.js +1 -1
  351. package/lib/module/modules/switch/Switch.variants.js +8 -0
  352. package/lib/module/modules/tabs/MODULE.md +47 -13
  353. package/lib/module/modules/tabs/Tabs.js +121 -72
  354. package/lib/module/modules/tabs/Tabs.variants.js +30 -8
  355. package/lib/module/modules/text/MODULE.md +51 -0
  356. package/lib/module/modules/text/Text.js +47 -0
  357. package/lib/module/modules/text/Text.variants.js +98 -0
  358. package/lib/module/modules/text/index.js +4 -0
  359. package/lib/module/modules/textarea/MODULE.md +29 -13
  360. package/lib/module/modules/textarea/Textarea.js +90 -45
  361. package/lib/module/modules/textarea/Textarea.variants.js +14 -9
  362. package/lib/module/modules/timeline/MODULE.md +39 -7
  363. package/lib/module/modules/timeline/Timeline.js +151 -77
  364. package/lib/module/modules/timeline/Timeline.variants.js +13 -0
  365. package/lib/module/modules/toast/MODULE.md +66 -7
  366. package/lib/module/modules/toast/Toast.js +93 -27
  367. package/lib/module/modules/toast/Toast.variants.js +37 -1
  368. package/lib/module/modules/toast/toastScreenReader.js +69 -0
  369. package/lib/module/modules/tooltip/MODULE.md +78 -28
  370. package/lib/module/modules/tooltip/Tooltip.js +93 -43
  371. package/lib/module/modules/tooltip/Tooltip.variants.js +3 -4
  372. package/lib/module/modules/typing-indicator/MODULE.md +48 -0
  373. package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
  374. package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
  375. package/lib/module/modules/typing-indicator/index.js +4 -0
  376. package/lib/module/modules/unread-badge/MODULE.md +20 -0
  377. package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
  378. package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
  379. package/lib/module/modules/unread-badge/index.js +4 -0
  380. package/lib/module/test/mocks/flashList.js +5 -0
  381. package/lib/module/test/perfHelpers.js +18 -0
  382. package/lib/module/theme/MODULE.md +6 -0
  383. package/lib/module/theme/hooks.js +11 -0
  384. package/lib/module/theme/index.js +3 -6
  385. package/lib/module/theme/platform/MODULE.md +6 -0
  386. package/lib/module/theme/platform/motion.native.js +15 -0
  387. package/lib/module/theme/provider/PixelizeProvider.js +9 -47
  388. package/lib/module/theme/provider/ThemeContext.js +6 -0
  389. package/lib/module/theme/provider/colorModeStorage.js +2 -2
  390. package/lib/module/theme/provider/index.js +1 -0
  391. package/lib/module/theme/provider/loadPalette.js +75 -0
  392. package/lib/module/theme/provider/types.js +4 -0
  393. package/lib/module/theme/provider/useTheme.js +1 -2
  394. package/lib/module/theme/provider/useThemeMode.js +1 -1
  395. package/lib/module/theme/tokens/roles/index.js +9 -3
  396. package/lib/typescript/core/a11y/announce.d.ts +20 -0
  397. package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
  398. package/lib/typescript/core/a11y/index.d.ts +21 -2
  399. package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
  400. package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
  401. package/lib/typescript/core/a11y/labels.d.ts +19 -0
  402. package/lib/typescript/core/device/index.d.ts +16 -0
  403. package/lib/typescript/core/heading/index.d.ts +45 -0
  404. package/lib/typescript/core/icon/Icon.d.ts +18 -0
  405. package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
  406. package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
  407. package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
  408. package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
  409. package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
  410. package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
  411. package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
  412. package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
  413. package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
  414. package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
  415. package/lib/typescript/core/icon/icons/check.d.ts +3 -0
  416. package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
  417. package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
  418. package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
  419. package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
  420. package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
  421. package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
  422. package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
  423. package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
  424. package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
  425. package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
  426. package/lib/typescript/core/icon/icons/code.d.ts +3 -0
  427. package/lib/typescript/core/icon/icons/download.d.ts +3 -0
  428. package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
  429. package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
  430. package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
  431. package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
  432. package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
  433. package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
  434. package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
  435. package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
  436. package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
  437. package/lib/typescript/core/icon/icons/image.d.ts +3 -0
  438. package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
  439. package/lib/typescript/core/icon/icons/info.d.ts +3 -0
  440. package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
  441. package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
  442. package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
  443. package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
  444. package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
  445. package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
  446. package/lib/typescript/core/icon/icons/link.d.ts +3 -0
  447. package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
  448. package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
  449. package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
  450. package/lib/typescript/core/icon/icons/list.d.ts +3 -0
  451. package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
  452. package/lib/typescript/core/icon/icons/map.d.ts +3 -0
  453. package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
  454. package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
  455. package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
  456. package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
  457. package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
  458. package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
  459. package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
  460. package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
  461. package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
  462. package/lib/typescript/core/icon/icons/save.d.ts +3 -0
  463. package/lib/typescript/core/icon/icons/search.d.ts +3 -0
  464. package/lib/typescript/core/icon/icons/send.d.ts +3 -0
  465. package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
  466. package/lib/typescript/core/icon/icons/share.d.ts +3 -0
  467. package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
  468. package/lib/typescript/core/icon/icons/star.d.ts +3 -0
  469. package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
  470. package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
  471. package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
  472. package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
  473. package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
  474. package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
  475. package/lib/typescript/core/icon/icons/user.d.ts +3 -0
  476. package/lib/typescript/core/icon/icons/users.d.ts +3 -0
  477. package/lib/typescript/core/icon/icons/x.d.ts +3 -0
  478. package/lib/typescript/core/icon/index.d.ts +6 -94
  479. package/lib/typescript/core/icon/names.d.ts +2 -0
  480. package/lib/typescript/core/icon/resolve.d.ts +4 -0
  481. package/lib/typescript/core/icon/types.d.ts +13 -0
  482. package/lib/typescript/core/list/VirtualList.d.ts +55 -0
  483. package/lib/typescript/core/list/index.d.ts +3 -0
  484. package/lib/typescript/core/media/MediaImage.d.ts +28 -0
  485. package/lib/typescript/core/media/expoImage.d.ts +14 -0
  486. package/lib/typescript/core/media/index.d.ts +7 -0
  487. package/lib/typescript/core/media/pickers.d.ts +27 -0
  488. package/lib/typescript/core/motion/config.d.ts +56 -0
  489. package/lib/typescript/core/motion/index.d.ts +8 -0
  490. package/lib/typescript/core/motion/presets.d.ts +49 -0
  491. package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
  492. package/lib/typescript/core/motion/useMotion.d.ts +34 -0
  493. package/lib/typescript/core/style/index.d.ts +3 -0
  494. package/lib/typescript/core/style/sx.d.ts +86 -0
  495. package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
  496. package/lib/typescript/index.d.ts +134 -2
  497. package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
  498. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +5 -5
  499. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -1
  500. package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
  501. package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
  502. package/lib/typescript/modules/app-bar/index.d.ts +9 -0
  503. package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
  504. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
  505. package/lib/typescript/modules/avatar/index.d.ts +1 -1
  506. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +28 -0
  507. package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +75 -0
  508. package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
  509. package/lib/typescript/modules/badge/Badge.d.ts +3 -1
  510. package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
  511. package/lib/typescript/modules/banner/Banner.d.ts +35 -0
  512. package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
  513. package/lib/typescript/modules/banner/index.d.ts +5 -0
  514. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +9 -8
  515. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +22 -9
  516. package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
  517. package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
  518. package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +13 -0
  519. package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
  520. package/lib/typescript/modules/button/Button.d.ts +21 -0
  521. package/lib/typescript/modules/button/Button.variants.d.ts +22 -9
  522. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +4 -2
  523. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +18 -5
  524. package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
  525. package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
  526. package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
  527. package/lib/typescript/modules/charts/Charts.variants.d.ts +201 -2
  528. package/lib/typescript/modules/charts/DonutChart.d.ts +3 -0
  529. package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
  530. package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
  531. package/lib/typescript/modules/charts/index.d.ts +6 -0
  532. package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
  533. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
  534. package/lib/typescript/modules/chip/Chip.d.ts +38 -0
  535. package/lib/typescript/modules/chip/Chip.variants.d.ts +198 -0
  536. package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
  537. package/lib/typescript/modules/chip/index.d.ts +12 -0
  538. package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
  539. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +212 -0
  540. package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
  541. package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
  542. package/lib/typescript/modules/combobox/index.d.ts +11 -0
  543. package/lib/typescript/modules/composer/Composer.d.ts +28 -0
  544. package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
  545. package/lib/typescript/modules/composer/index.d.ts +3 -0
  546. package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
  547. package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
  548. package/lib/typescript/modules/copy-button/index.d.ts +4 -0
  549. package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
  550. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
  551. package/lib/typescript/modules/data-table/index.d.ts +9 -0
  552. package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
  553. package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
  554. package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
  555. package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
  556. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +322 -0
  557. package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
  558. package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
  559. package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
  560. package/lib/typescript/modules/date-picker/TimePicker.d.ts +20 -0
  561. package/lib/typescript/modules/date-picker/index.d.ts +16 -0
  562. package/lib/typescript/modules/divider/Divider.variants.d.ts +2 -2
  563. package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
  564. package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
  565. package/lib/typescript/modules/empty-state/EmptyState.d.ts +7 -4
  566. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +7 -1
  567. package/lib/typescript/modules/fab/Fab.d.ts +74 -0
  568. package/lib/typescript/modules/fab/Fab.variants.d.ts +229 -0
  569. package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
  570. package/lib/typescript/modules/fab/index.d.ts +12 -0
  571. package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
  572. package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
  573. package/lib/typescript/modules/file-grid/index.d.ts +4 -0
  574. package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
  575. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
  576. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
  577. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
  578. package/lib/typescript/modules/folder-row/FolderRow.d.ts +24 -0
  579. package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
  580. package/lib/typescript/modules/folder-row/index.d.ts +3 -0
  581. package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
  582. package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
  583. package/lib/typescript/modules/form-field/index.d.ts +4 -0
  584. package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
  585. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +82 -0
  586. package/lib/typescript/modules/gantt/index.d.ts +5 -0
  587. package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
  588. package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
  589. package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
  590. package/lib/typescript/modules/input/Input.d.ts +9 -1
  591. package/lib/typescript/modules/input/Input.variants.d.ts +26 -6
  592. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
  593. package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
  594. package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
  595. package/lib/typescript/modules/list-item/ListItem.d.ts +6 -0
  596. package/lib/typescript/modules/list-item/ListItem.variants.d.ts +1 -1
  597. package/lib/typescript/modules/markdown/Markdown.d.ts +6 -0
  598. package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
  599. package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
  600. package/lib/typescript/modules/menu/Menu.d.ts +8 -18
  601. package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
  602. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
  603. package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +31 -0
  604. package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
  605. package/lib/typescript/modules/modal/Modal.d.ts +12 -0
  606. package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
  607. package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
  608. package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
  609. package/lib/typescript/modules/more-items/index.d.ts +4 -0
  610. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -16
  611. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
  612. package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
  613. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +57 -7
  614. package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
  615. package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
  616. package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
  617. package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
  618. package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
  619. package/lib/typescript/modules/pagination/PaginationControls.d.ts +50 -0
  620. package/lib/typescript/modules/pagination/index.d.ts +14 -0
  621. package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
  622. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
  623. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
  624. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
  625. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
  626. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
  627. package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
  628. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
  629. package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
  630. package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
  631. package/lib/typescript/modules/rich-text/index.d.ts +5 -0
  632. package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
  633. package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
  634. package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
  635. package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
  636. package/lib/typescript/modules/screen/Screen.d.ts +36 -0
  637. package/lib/typescript/modules/screen/Screen.variants.d.ts +21 -0
  638. package/lib/typescript/modules/screen/index.d.ts +9 -0
  639. package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
  640. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
  641. package/lib/typescript/modules/search-bar/index.d.ts +11 -0
  642. package/lib/typescript/modules/section/Section.d.ts +17 -0
  643. package/lib/typescript/modules/section/Section.variants.d.ts +12 -0
  644. package/lib/typescript/modules/section/index.d.ts +8 -0
  645. package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
  646. package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
  647. package/lib/typescript/modules/section-list/index.d.ts +3 -0
  648. package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
  649. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
  650. package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
  651. package/lib/typescript/modules/select/Select.d.ts +1 -14
  652. package/lib/typescript/modules/select/Select.variants.d.ts +24 -5
  653. package/lib/typescript/modules/skeleton/Skeleton.d.ts +5 -0
  654. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +10 -9
  655. package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
  656. package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
  657. package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
  658. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +98 -0
  659. package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
  660. package/lib/typescript/modules/stat-tile/StatTile.d.ts +4 -0
  661. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
  662. package/lib/typescript/modules/state-block/StateBlock.d.ts +51 -0
  663. package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +30 -0
  664. package/lib/typescript/modules/state-block/index.d.ts +10 -0
  665. package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
  666. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
  667. package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
  668. package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
  669. package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
  670. package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
  671. package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
  672. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
  673. package/lib/typescript/modules/text/Text.d.ts +23 -0
  674. package/lib/typescript/modules/text/Text.variants.d.ts +18 -0
  675. package/lib/typescript/modules/text/index.d.ts +4 -0
  676. package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
  677. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
  678. package/lib/typescript/modules/timeline/Timeline.d.ts +9 -13
  679. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
  680. package/lib/typescript/modules/toast/Toast.d.ts +13 -3
  681. package/lib/typescript/modules/toast/Toast.variants.d.ts +31 -3
  682. package/lib/typescript/modules/toast/index.d.ts +1 -1
  683. package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
  684. package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
  685. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +4 -5
  686. package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
  687. package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
  688. package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
  689. package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
  690. package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
  691. package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
  692. package/lib/typescript/test/mocks/flashList.d.ts +3 -0
  693. package/lib/typescript/test/perfHelpers.d.ts +9 -0
  694. package/lib/typescript/theme/hooks.d.ts +11 -0
  695. package/lib/typescript/theme/index.d.ts +3 -2
  696. package/lib/typescript/theme/platform/motion.native.d.ts +15 -0
  697. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
  698. package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
  699. package/lib/typescript/theme/provider/index.d.ts +2 -1
  700. package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
  701. package/lib/typescript/theme/provider/types.d.ts +41 -0
  702. package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
  703. package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
  704. package/lib/typescript/theme/tokens/roles/index.d.ts +7 -0
  705. package/package.json +193 -19
  706. package/registry.json +172 -2
  707. package/lib/module/core/a11y/index.js.map +0 -1
  708. package/lib/module/core/icon/index.js.map +0 -1
  709. package/lib/module/core/style/index.js.map +0 -1
  710. package/lib/module/core/style/layoutStyle.js.map +0 -1
  711. package/lib/module/core/style/variants.js.map +0 -1
  712. package/lib/module/index.js.map +0 -1
  713. package/lib/module/modules/accordion/Accordion.js.map +0 -1
  714. package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
  715. package/lib/module/modules/accordion/index.js.map +0 -1
  716. package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
  717. package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
  718. package/lib/module/modules/alert-dialog/index.js.map +0 -1
  719. package/lib/module/modules/avatar/Avatar.js.map +0 -1
  720. package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
  721. package/lib/module/modules/avatar/index.js.map +0 -1
  722. package/lib/module/modules/badge/Badge.js.map +0 -1
  723. package/lib/module/modules/badge/Badge.variants.js.map +0 -1
  724. package/lib/module/modules/badge/index.js.map +0 -1
  725. package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
  726. package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
  727. package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
  728. package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
  729. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
  730. package/lib/module/modules/bottom-nav/index.js.map +0 -1
  731. package/lib/module/modules/button/Button.js.map +0 -1
  732. package/lib/module/modules/button/Button.variants.js.map +0 -1
  733. package/lib/module/modules/button/index.js.map +0 -1
  734. package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
  735. package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
  736. package/lib/module/modules/button-group/index.js.map +0 -1
  737. package/lib/module/modules/card/Card.js.map +0 -1
  738. package/lib/module/modules/card/Card.variants.js.map +0 -1
  739. package/lib/module/modules/card/index.js.map +0 -1
  740. package/lib/module/modules/charts/BarList.js.map +0 -1
  741. package/lib/module/modules/charts/Charts.variants.js.map +0 -1
  742. package/lib/module/modules/charts/DonutChart.js.map +0 -1
  743. package/lib/module/modules/charts/Sparkline.js.map +0 -1
  744. package/lib/module/modules/charts/index.js.map +0 -1
  745. package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
  746. package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
  747. package/lib/module/modules/checkbox/index.js.map +0 -1
  748. package/lib/module/modules/divider/Divider.js.map +0 -1
  749. package/lib/module/modules/divider/Divider.variants.js.map +0 -1
  750. package/lib/module/modules/divider/index.js.map +0 -1
  751. package/lib/module/modules/drawer/Drawer.js.map +0 -1
  752. package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
  753. package/lib/module/modules/drawer/index.js.map +0 -1
  754. package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
  755. package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
  756. package/lib/module/modules/empty-state/index.js.map +0 -1
  757. package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
  758. package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
  759. package/lib/module/modules/file-upload/index.js.map +0 -1
  760. package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
  761. package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
  762. package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
  763. package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
  764. package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
  765. package/lib/module/modules/filter-sheet/index.js.map +0 -1
  766. package/lib/module/modules/input/Input.js.map +0 -1
  767. package/lib/module/modules/input/Input.variants.js.map +0 -1
  768. package/lib/module/modules/input/index.js.map +0 -1
  769. package/lib/module/modules/list-item/ListItem.js.map +0 -1
  770. package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
  771. package/lib/module/modules/list-item/index.js.map +0 -1
  772. package/lib/module/modules/markdown/Markdown.js.map +0 -1
  773. package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
  774. package/lib/module/modules/markdown/index.js.map +0 -1
  775. package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
  776. package/lib/module/modules/menu/Menu.js.map +0 -1
  777. package/lib/module/modules/menu/Menu.variants.js.map +0 -1
  778. package/lib/module/modules/menu/index.js.map +0 -1
  779. package/lib/module/modules/modal/Modal.js.map +0 -1
  780. package/lib/module/modules/modal/Modal.variants.js.map +0 -1
  781. package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
  782. package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
  783. package/lib/module/modules/modal/index.js.map +0 -1
  784. package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
  785. package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
  786. package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
  787. package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
  788. package/lib/module/modules/multi-select/index.js.map +0 -1
  789. package/lib/module/modules/number-input/NumberInput.js.map +0 -1
  790. package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
  791. package/lib/module/modules/number-input/index.js.map +0 -1
  792. package/lib/module/modules/pin-input/PinInput.js.map +0 -1
  793. package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
  794. package/lib/module/modules/pin-input/index.js.map +0 -1
  795. package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
  796. package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
  797. package/lib/module/modules/progress-bar/index.js.map +0 -1
  798. package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
  799. package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
  800. package/lib/module/modules/radio-group/index.js.map +0 -1
  801. package/lib/module/modules/reorder/Reorder.js.map +0 -1
  802. package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
  803. package/lib/module/modules/reorder/index.js.map +0 -1
  804. package/lib/module/modules/select/Select.js.map +0 -1
  805. package/lib/module/modules/select/Select.variants.js.map +0 -1
  806. package/lib/module/modules/select/index.js.map +0 -1
  807. package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
  808. package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
  809. package/lib/module/modules/skeleton/index.js.map +0 -1
  810. package/lib/module/modules/slider/Slider.js.map +0 -1
  811. package/lib/module/modules/slider/Slider.variants.js.map +0 -1
  812. package/lib/module/modules/slider/index.js.map +0 -1
  813. package/lib/module/modules/spinner/Spinner.js.map +0 -1
  814. package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
  815. package/lib/module/modules/spinner/index.js.map +0 -1
  816. package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
  817. package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
  818. package/lib/module/modules/stat-tile/index.js.map +0 -1
  819. package/lib/module/modules/stepper/Stepper.js.map +0 -1
  820. package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
  821. package/lib/module/modules/stepper/index.js.map +0 -1
  822. package/lib/module/modules/switch/Switch.js.map +0 -1
  823. package/lib/module/modules/switch/Switch.variants.js.map +0 -1
  824. package/lib/module/modules/switch/index.js.map +0 -1
  825. package/lib/module/modules/tabs/Tabs.js.map +0 -1
  826. package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
  827. package/lib/module/modules/tabs/index.js.map +0 -1
  828. package/lib/module/modules/textarea/Textarea.js.map +0 -1
  829. package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
  830. package/lib/module/modules/textarea/index.js.map +0 -1
  831. package/lib/module/modules/timeline/Timeline.js.map +0 -1
  832. package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
  833. package/lib/module/modules/timeline/index.js.map +0 -1
  834. package/lib/module/modules/toast/Toast.js.map +0 -1
  835. package/lib/module/modules/toast/Toast.variants.js.map +0 -1
  836. package/lib/module/modules/toast/index.js.map +0 -1
  837. package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
  838. package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
  839. package/lib/module/modules/tooltip/index.js.map +0 -1
  840. package/lib/module/theme/index.js.map +0 -1
  841. package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
  842. package/lib/module/theme/platform/elevation.native.js.map +0 -1
  843. package/lib/module/theme/platform/fonts.native.js.map +0 -1
  844. package/lib/module/theme/platform/index.js.map +0 -1
  845. package/lib/module/theme/platform/units.native.js.map +0 -1
  846. package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
  847. package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
  848. package/lib/module/theme/provider/index.js.map +0 -1
  849. package/lib/module/theme/provider/useTheme.js.map +0 -1
  850. package/lib/module/theme/provider/useThemeColors.js.map +0 -1
  851. package/lib/module/theme/provider/useThemeMode.js.map +0 -1
  852. package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
  853. package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
  854. package/lib/module/theme/tokens/brands/index.js.map +0 -1
  855. package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
  856. package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
  857. package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
  858. package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
  859. package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
  860. package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
  861. package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
  862. package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
  863. package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
  864. package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
  865. package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
  866. package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
  867. package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
  868. package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
  869. package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
  870. package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
  871. package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
  872. package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
  873. package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
  874. package/lib/module/theme/tokens/builders/color.js.map +0 -1
  875. package/lib/module/theme/tokens/index.js.map +0 -1
  876. package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
  877. package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
  878. package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
  879. package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
  880. package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
  881. package/lib/module/theme/tokens/primitives/index.js.map +0 -1
  882. package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
  883. package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
  884. package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
  885. package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
  886. package/lib/module/theme/tokens/primitives/space.js.map +0 -1
  887. package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
  888. package/lib/module/theme/tokens/roles/index.js.map +0 -1
  889. package/lib/module/theme/tokens/types.js.map +0 -1
  890. package/lib/typescript/core/a11y/index.d.ts.map +0 -1
  891. package/lib/typescript/core/icon/index.d.ts.map +0 -1
  892. package/lib/typescript/core/style/index.d.ts.map +0 -1
  893. package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
  894. package/lib/typescript/core/style/variants.d.ts.map +0 -1
  895. package/lib/typescript/index.d.ts.map +0 -1
  896. package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
  897. package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
  898. package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
  899. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
  900. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
  901. package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
  902. package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
  903. package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
  904. package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
  905. package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
  906. package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
  907. package/lib/typescript/modules/badge/index.d.ts.map +0 -1
  908. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
  909. package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
  910. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
  911. package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
  912. package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
  913. package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
  914. package/lib/typescript/modules/button/Button.d.ts.map +0 -1
  915. package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
  916. package/lib/typescript/modules/button/index.d.ts.map +0 -1
  917. package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
  918. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
  919. package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
  920. package/lib/typescript/modules/card/Card.d.ts.map +0 -1
  921. package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
  922. package/lib/typescript/modules/card/index.d.ts.map +0 -1
  923. package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
  924. package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
  925. package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
  926. package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
  927. package/lib/typescript/modules/charts/index.d.ts.map +0 -1
  928. package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
  929. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
  930. package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
  931. package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
  932. package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
  933. package/lib/typescript/modules/divider/index.d.ts.map +0 -1
  934. package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
  935. package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
  936. package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
  937. package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
  938. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
  939. package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
  940. package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
  941. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
  942. package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
  943. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
  944. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
  945. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
  946. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
  947. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
  948. package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
  949. package/lib/typescript/modules/input/Input.d.ts.map +0 -1
  950. package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
  951. package/lib/typescript/modules/input/index.d.ts.map +0 -1
  952. package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
  953. package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
  954. package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
  955. package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
  956. package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
  957. package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
  958. package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
  959. package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
  960. package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
  961. package/lib/typescript/modules/menu/index.d.ts.map +0 -1
  962. package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
  963. package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
  964. package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
  965. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
  966. package/lib/typescript/modules/modal/index.d.ts.map +0 -1
  967. package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
  968. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
  969. package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
  970. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
  971. package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
  972. package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
  973. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
  974. package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
  975. package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
  976. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
  977. package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
  978. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
  979. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
  980. package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
  981. package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
  982. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
  983. package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
  984. package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
  985. package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
  986. package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
  987. package/lib/typescript/modules/select/Select.d.ts.map +0 -1
  988. package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
  989. package/lib/typescript/modules/select/index.d.ts.map +0 -1
  990. package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
  991. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
  992. package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
  993. package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
  994. package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
  995. package/lib/typescript/modules/slider/index.d.ts.map +0 -1
  996. package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
  997. package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
  998. package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
  999. package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
  1000. package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
  1001. package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
  1002. package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
  1003. package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
  1004. package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
  1005. package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
  1006. package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
  1007. package/lib/typescript/modules/switch/index.d.ts.map +0 -1
  1008. package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
  1009. package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
  1010. package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
  1011. package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
  1012. package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
  1013. package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
  1014. package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
  1015. package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
  1016. package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
  1017. package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
  1018. package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
  1019. package/lib/typescript/modules/toast/index.d.ts.map +0 -1
  1020. package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
  1021. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
  1022. package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
  1023. package/lib/typescript/theme/index.d.ts.map +0 -1
  1024. package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
  1025. package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
  1026. package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
  1027. package/lib/typescript/theme/platform/index.d.ts.map +0 -1
  1028. package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
  1029. package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
  1030. package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
  1031. package/lib/typescript/theme/provider/index.d.ts.map +0 -1
  1032. package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
  1033. package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
  1034. package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
  1035. package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
  1036. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
  1037. package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
  1038. package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
  1039. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
  1040. package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
  1041. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
  1042. package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
  1043. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
  1044. package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
  1045. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
  1046. package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
  1047. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
  1048. package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
  1049. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
  1050. package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
  1051. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
  1052. package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
  1053. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
  1054. package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
  1055. package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
  1056. package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
  1057. package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
  1058. package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
  1059. package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
  1060. package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
  1061. package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
  1062. package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
  1063. package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
  1064. package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
  1065. package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
  1066. package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
  1067. package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
  1068. package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
  1069. package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
  1070. package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
  1071. package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
  1072. package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
@@ -2,9 +2,8 @@
2
2
 
3
3
  `Drawer` is a hand-rolled bottom-sheet: a panel that slides up from the bottom edge over a
4
4
  translucent fading backdrop, presented in REACT NATIVE'S OWN `Modal` — the same "transient overlay,
5
- raw RN Modal" pattern `Select` already established for this library. It is NOT this library's own
6
- `../modal` (a persistent title/children dialog, centered, a different shape entirely) and it imports
7
- nothing from it.
5
+ raw RN Modal" pattern `Select` already established. It is NOT this library's own `../modal` (a
6
+ persistent title/children dialog, centered) and imports nothing from it.
8
7
 
9
8
  ## Files
10
9
 
@@ -15,6 +14,7 @@ nothing from it.
15
14
  | `index.ts` | Public surface: `Drawer`, `DrawerProps`. |
16
15
  | `__tests__/Drawer.test.ts` | Pure: reduced-motion contract, bottom-inset fallback, panel/grabber colour resolution (all brands × modes). |
17
16
  | `__tests__/Drawer.render.test.tsx` | Render: visibility, mount-through-exit-animation, dismissal paths, modal semantics, grabber a11y, reduced motion, and the web-portal opt-in branch (mocking `renderWebPortal`). |
17
+ | `__tests__/Drawer.keyboard.test.tsx` | Keyboard avoidance: no listener while closed, subscribe/unsubscribe with `mounted`, the tween's duration source, and the reduce-motion snap. |
18
18
 
19
19
  ## Props
20
20
 
@@ -25,137 +25,109 @@ nothing from it.
25
25
  | `children` | `ReactNode` | Required. Arbitrary consumer content below the grabber. |
26
26
  | `testID` | `string` | Also seeds `${testID}-backdrop`, `${testID}-panel`, `${testID}-handle`. |
27
27
 
28
- No `style`/`containerStyle` prop — same precedent as this library's own `Modal` (also style-less):
29
- it's a full-screen transient overlay whose position is fixed by the component, not something an
30
- app's layout places.
28
+ No `style`/`containerStyle` prop — same precedent as `Modal` (also style-less): a full-screen
29
+ transient overlay whose position is fixed by the component, not something an app's layout places.
31
30
 
32
31
  ## Animation
33
32
 
34
- One `Animated.Value` (`progress`, 0 → 1) drives BOTH the panel's `translateY` (interpolated from the
35
- window's own height down to `0`) and the backdrop's `opacity`, so they move in lockstep. This is why
36
- the underlying RN `<Modal>` is always given `animationType="none"` RN's native transition is a
37
- single discrete enum for the whole native surface; it can't also fade a separately-Animated backdrop
38
- in step with a custom slide, so this module owns the entire transition instead (same reasoning
39
- `Modal.tsx`'s reduced-motion note documents for its own native-vs-JS boundary, in reverse).
40
-
41
- `resolveDrawerAnimationDuration` (WCAG 2.3.3) collapses the duration to `0` under
42
- `useReducedMotion()` an instant snap, never a frozen half-slid frame, same contract every other
43
- animated module in this catalogue holds.
44
-
45
- **Exit-animation lifecycle.** RN's `<Modal>` only actually hides its children once native dismissal
46
- completes or the component unmountsflipping `visible` straight to the native `Modal`'s own
47
- `visible` prop would cut the exit slide/fade off before it plays. So Drawer keeps its own `mounted`
48
- state, distinct from the caller's `visible` prop: on close, the exit animation starts immediately and
49
- a plain `setTimeout` (matching `duration`, not the `Animated.timing` completion callback — that rides
50
- `requestAnimationFrame`, which doesn't resolve deterministically under fake timers) unmounts the
51
- underlying `<Modal>` once the animation has actually finished. Same idiom as `Toast.tsx`'s `hide()`.
33
+ One `Animated.Value` (`progress`, 0 → 1) drives both the panel's `translateY` (window height → `0`)
34
+ and the backdrop's `opacity` in lockstep why RN `<Modal>` is always given `animationType="none"`:
35
+ RN's native transition is one discrete enum for the whole surface and can't also fade a
36
+ separately-Animated backdrop in step with a custom slide.
37
+
38
+ `resolveDrawerAnimationDuration` (WCAG 2.3.3) collapses duration to `0` under `useReducedMotion()`
39
+ an instant snap, never a frozen half-slid frame.
40
+
41
+ **Exit-animation lifecycle.** RN's `<Modal>` only hides children once native dismissal completes or
42
+ the component unmounts, so Drawer keeps its own `mounted` state distinct from `visible`: on close the
43
+ exit animation starts immediately and a `setTimeout` (matching `duration`, not the `Animated.timing`
44
+ callback, which rides `requestAnimationFrame` and won't resolve deterministically under fake timers)
45
+ unmounts the `<Modal>` once finished same idiom as `Toast.tsx`'s `hide()`.
46
+
47
+ ## Keyboard avoidance
48
+
49
+ The panel is bottom-anchored (`translateY` rests at `0`), so `KeyboardAvoidingView` doesn't help —
50
+ shrinking the panel's height moves the top edge up but leaves the bottom under the keyboard. Drawer
51
+ instead grows its OWN `paddingBottom` by the keyboard's height, animated with
52
+ `keyboardWillShow`/`keyboardWillHide` on iOS (`keyboardDidShow`/`keyboardDidHide` on Android, no
53
+ "will" pair there).
54
+
55
+ **Gated on `mounted`.** The listener effect sits above the `if (!mounted) return null` guard, so
56
+ without a `mounted` check of its own it ran on a closed drawer — and the normal consumer keeps one
57
+ `<Drawer visible={false}>` permanently in the tree, which made every keyboard open anywhere on that
58
+ screen start this JS-driven tween on a hidden panel. Because nothing tracks the keyboard while
59
+ closed, the effect seeds the height from `Keyboard.metrics()` when it re-subscribes — skipped on
60
+ web, since react-native-web's `Keyboard` stub doesn't implement `metrics()` (unlike the other
61
+ `Keyboard` calls here, which it stubs as no-ops).
62
+
63
+ **Reduce motion (WCAG 2.3.3) applies here too.** This is the library's one raw `Animated.timing`
64
+ (`paddingBottom` can't run on the native driver, so it can't go through `useMotion().timing`), which
65
+ means the gate has to be applied by hand: `!motion.enabled` snaps with `setValue`, and the fallback
66
+ duration is `motion.duration("normal")` — never a hardcoded literal. The file's eslint override
67
+ drops the `Animated.timing` restriction wholesale, so nothing else catches a regression here;
68
+ `__tests__/Drawer.keyboard.test.tsx` does.
69
+
70
+ **Invariant:** that padding lives on its own inner `Animated.View`, never the panel's transform
71
+ node — RN's native driver claims a node the instant any animated prop on it starts with
72
+ `useNativeDriver: true` (the panel's `translateY`); a JS-driven prop (`paddingBottom`) on that same
73
+ node then throws "Attempting to run JS driven animation on animated node that has been moved to
74
+ 'native'" on the next keyboard toggle.
52
75
 
53
76
  ## Web portal mechanism (opt-in)
54
77
 
55
- Same containment bug, same fix, as `Modal`/`Select`/`Menu`: `react-native-web`'s own `<Modal>`
56
- unconditionally portals to `document.body` (no `container`/`portalHost` override exists see
57
- `../modal/ModalPortalContext.ts`), which breaks visual containment inside a fixed-size preview
58
- frame (`example/DeviceFrame.tsx`'s 390px phone card) the sheet rendered full-browser-viewport
59
- instead of clipped to the frame.
60
-
61
- `Drawer.tsx` reads `ModalPortalContext`/`renderWebPortal` straight from `../modal` (the same
62
- deliberate cross-module exception `Select.tsx`'s own top comment documentsa plain context +
63
- stateless helper, never this library's own `Modal` component). Gated on
64
- `Platform.OS === "web" && portalContainer != null`; every other case (native, or web with no
65
- `ModalPortalProvider`) renders through RN's own `<Modal>`, byte-identical to before this
66
- mechanism existed. See `../modal/MODULE.md`'s "Web portal mechanism" section for the full
67
- context/renderer design.
68
-
69
- **Unlike `Modal`'s portal branch, Drawer loses no animation fidelity.** Modal's portal path
70
- skips RN `<Modal>`'s native open/close animation because that's what drives Modal's fade; Drawer
71
- never relied on RN Modal's `animationType` in the first place (always `"none"` — see Animation
72
- above) — the slide+fade is 100% driven by the `progress` `Animated.Value` regardless of which
73
- container the tree renders into, so the portaled tree animates identically to the RNModal path.
74
- The portal branch is gated on `mounted` (not `visible`), reproducing RN Modal's own
75
- `visible={mounted}` so the same mount-through-exit-animation lifecycle applies on both paths —
76
- the exit slide/fade still plays out before the portaled tree unmounts.
77
-
78
- **Known minor gap:** `translateY`'s off-screen starting point interpolates from the actual
79
- browser `useWindowDimensions().height`, not the portal container's height (there's no cheap way
80
- to read the container's own height from a portal-container ref alone). Inside a frame shorter
81
- than the full window, the panel starts further off-screen than strictly necessary, animating
82
- over the same fixed duration — the resting position (`translateY: 0`) and clipping are still
83
- correct, this only affects how far the panel travels before entering view. Not a visual escape;
84
- left as-is rather than adding a container-height measurement this component doesn't otherwise
85
- need.
78
+ Same containment bug, same fix, as `Modal`/`Select`/`Menu`: `react-native-web`'s `<Modal>`
79
+ unconditionally portals to `document.body`, breaking containment inside a fixed-size preview frame.
80
+ `Drawer.tsx` reads `ModalPortalContext`/`renderWebPortal` from `../modal` (the same cross-module
81
+ exception `Select.tsx`'s top comment documents), gated on
82
+ `Platform.OS === "web" && portalContainer != null` — otherwise renders through RN's own `<Modal>`
83
+ unchanged. See `../modal/MODULE.md`'s "Web portal mechanism" section for the full design.
84
+
85
+ Loses no animation fidelity on the portal pathDrawer never relied on RN Modal's `animationType`
86
+ (always `"none"`, see Animation above), so the tree renders identically either way, gated on
87
+ `mounted` (not `visible`) to keep the same exit-animation lifecycle.
88
+
89
+ **Known minor gap:** the off-screen start uses the window height, not the portal container's, so a
90
+ shorter frame makes the panel travel further before landing — resting position and clipping are
91
+ still correct.
86
92
 
87
93
  ## Accessibility contract (WCAG)
88
94
 
89
- - **2.3.3** — see Animation above.
90
- - `accessibilityViewIsModal` on the panel, same as this library's `Modal`.
91
- - **iOS VoiceOver escape** `onAccessibilityEscape` on the panel calls `onRequestClose`, identical
92
- wiring to `Modal.tsx`.
93
- - **Android hardware back** free: RN `Modal`'s own `onRequestClose` prop is wired straight through.
94
- - The grabber (a `bg.sunken` pill) is `accessibilityElementsHidden` +
95
- `importantForAccessibility="no-hide-descendants"` on its wrapper purely decorative, so it carries
96
- no WCAG 1.4.11 obligation (a decorative graphic is out of that SC's scope entirely, same status the
97
- backdrop scrims across this library already have). Its dismiss affordance is real (backdrop press +
98
- hardware back + VoiceOver escape); it does not itself act as a control.
99
- - No owned text (`children` is arbitrary consumer content, same stance `Modal`'s own
100
- `resolveModalPanelColors` doc comment takes for its body — Drawer additionally has no `title`
101
- either), so there is nothing here for a WCAG 1.4.3 test to measure. `Drawer.test.ts`'s file header
102
- records this reasoning explicitly rather than silently omitting the usual `contrastRatio` block.
95
+ - **2.3.3** — see Animation above. `accessibilityViewIsModal` on the panel, same as this library's `Modal`.
96
+ - **iOS VoiceOver escape** `onAccessibilityEscape` calls `onRequestClose`, identical to `Modal.tsx`.
97
+ **Android hardware back** is free via RN `Modal`'s own `onRequestClose` prop.
98
+ - The grabber is `accessibilityElementsHidden` + `no-hide-descendants` — purely decorative (no WCAG
99
+ 1.4.11 obligation); its dismiss affordance is real (backdrop press + hardware back + VoiceOver escape).
100
+ - No owned text (`children` is arbitrary, no `title`) — nothing for WCAG 1.4.3 to measure;
101
+ `Drawer.test.ts`'s file header records that reasoning instead of omitting the usual block.
103
102
 
104
103
  ## Known gaps
105
104
 
106
- - **No `react-native-safe-area-context` wiring.** It's listed in `peerDependenciesMeta` as an
107
- optional peer, but is NOT actually declared in `peerDependencies` in this package's own
108
- `package.json` it only resolves in this repo's dev sandbox because the `example` workspace
109
- depends on it directly and npm workspaces hoist it into the root `node_modules`. Importing
110
- `useSafeAreaInsets` here would work in this repo and then fail to resolve for a consumer app that
111
- installs `pixelize-native-library` without separately installing that package. `Toast.tsx`'s own MODULE.md
112
- already flagged the same gap for its overlay inset. Bottom padding instead uses
113
- `resolveDrawerBottomInset`: the theme's own `space[5]` plus a static iOS home-indicator
114
- approximation (`DRAWER_IOS_HOME_INDICATOR_INSET`, 20dp) on iOS only. Revisit once
115
- `react-native-safe-area-context` is added as a REAL peer dependency (a `package.json` change, out of
116
- this module's scope) — swap the static constant for a real `useSafeAreaInsets().bottom` read.
117
- - **No swipe-down-to-dismiss in v1 — a deliberate choice, not an oversight.** The spec allowed this as
118
- a documented v1 gap, and three considerations pointed the same way:
119
- 1. **Testability.** This is the first hand-rolled gesture module in this catalogue — there is no
120
- `PanResponder` test precedent anywhere in the other 27 shipped components. `PanResponder`
121
- computes `dx`/`dy`/`vx`/`vy` internally from a raw native touch-event history; accurately
122
- reproducing that in `@testing-library/react-native` (which has no real touch pipeline) means
123
- either hand-crafting synthetic touch streams that only approximate the real responder math, or
124
- shipping the gesture path untested. Both fall short of the "measured, never eyeballed" bar the
125
- rest of this library holds itself to.
126
- 2. **Full dismiss parity already exists without it** — backdrop press, Android hardware back, and
127
- the iOS VoiceOver escape gesture together already satisfy WCAG 2.5.7's non-drag-alternative
128
- requirement; a swipe would be a nice-to-have affordance, not a missing capability.
129
- 3. **Risk to `children`.** A `PanResponder` broad enough to feel natural on the whole panel risks
130
- fighting a `ScrollView`/`FlatList` inside `children` (a scroll gesture starting near the top of
131
- scrollable content vs. a sheet-dismiss swipe is a real, easy-to-get-wrong disambiguation); scoping
132
- it to only the grabber's small handle strip avoids that fight but makes the gesture much narrower
133
- and less discoverable than the "drag anywhere" affordance users expect from a bottom sheet.
134
- A future version should revisit this with `PanResponder` scoped to `drawerHandleStructure`'s handle
135
- strip only (never the full panel), driving `resolveDrawerAnimationDuration`'s same `progress` value,
136
- gated by a real distance/velocity threshold — and, at that point, a way to verify the gesture math
137
- deterministically (e.g. extracting the dy/vy → dismiss decision into its own pure, unit-tested
138
- function, the same "keep the decision pure, wire the mechanism thin" split this file already uses
139
- everywhere else) rather than only relying on `PanResponder`'s live wiring.
140
- - No `size` prop — v1 is a single shape (content sizes the panel up to a 90% max-height cap), matching
141
- the spec this module was built against.
105
+ - **No `react-native-safe-area-context` wiring** listed as an optional peer but not a real
106
+ `peerDependencies` entry, so a consumer without it installed separately would fail to resolve it.
107
+ Bottom padding instead uses `resolveDrawerBottomInset` (theme `space[5]` + a static iOS
108
+ home-indicator constant). Revisit once the package becomes a real peer dependency.
109
+ - **No swipe-down-to-dismiss in v1** deliberate: no `PanResponder` test precedent exists in this
110
+ catalogue (untested gesture math), and backdrop press + Android back + VoiceOver escape already
111
+ satisfy WCAG 2.5.7's non-drag-alternative requirement. A future version should scope
112
+ `PanResponder` to `drawerHandleStructure`'s handle only, with the dy/vy dismiss decision as its
113
+ own pure, unit-tested function.
114
+ - No `size` prop v1 is a single shape (content sizes the panel up to a 90% max-height cap).
142
115
 
143
116
  ## Patterns copied from Modal / Select / Toast
144
117
 
145
- 1. **Structure vs colour split.** Structural values (padding, top-corner radius, the grabber's fixed
146
- pill) `createThemedVariants` (or the untethemed `createVariants` where nothing is theme-scaled,
147
- same idiom `RadioGroup`'s `radioDotStructure` uses) — never a fresh inline style object per render.
148
- Colour resolved from role tokens, applied inline.
149
- 2. **Pure, testable resolvers** in `Drawer.variants.ts` (no React/lucide) reduced motion, the
150
- bottom-inset fallback, and colour resolution are all unit-tested without rendering React Native.
151
- 3. **RN's raw `Modal`, not this library's own `../modal` COMPONENT** — same isolation contract
152
- `Select.tsx`'s own top comment states, so Drawer never depends on a sibling module's rendered
153
- output. The one deliberate exception is the web portal mechanism (`ModalPortalContext`/
154
- `renderWebPortal` — a plain context + stateless helper, not the `Modal` component) — see "Web
155
- portal mechanism" above.
156
- 4. **Mount-through-exit-animation + deterministic timer-based unmount** — copied from `Toast.tsx`'s
157
- `hide()`, adapted from a provider's imperative `show`/`hide` to a fully-controlled `visible` prop.
118
+ 1. **Structure vs colour split** structural values via `createThemedVariants`, colour resolved
119
+ from role tokens and applied inline.
120
+ 2. **Pure, testable resolvers** in `Drawer.variants.ts` (no React/lucide).
121
+ 3. **RN's raw `Modal`, not this library's own `../modal` component** — same isolation contract
122
+ `Select.tsx` states. The one exception is the web portal mechanism above.
123
+ 4. **Mount-through-exit-animation + timer-based unmount** copied from `Toast.tsx`'s `hide()`.
158
124
 
159
125
  ## Performance
160
126
 
161
127
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Only renders host primitives (`Pressable`/`View`/`Animated.View`/RN's own `Modal`) — no library child component receives a derived callback/array, so no `useCallback`/`useMemo` was needed.
128
+
129
+ ## Modernization (v1.0.7)
130
+
131
+ - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
132
+ - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
133
+ - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
@@ -7,18 +7,23 @@
7
7
  * composition (the same reasoning `AlertDialog` documents for its own footer buttons) — never a
8
8
  * hand-rolled `Pressable` that would duplicate Button's press/focus/disabled/hit-target wiring.
9
9
  *
10
- * No `accessibilityRole` of its own: like `Card`, this is a plain grouping container with no
11
- * interaction beyond the composed Button, so there is nothing here for assistive tech to announce
12
- * beyond its children the title and description read as their own `Text` elements, in order,
13
- * and the icon (redundant with the title) is hidden from the accessibility tree entirely.
10
+ * No `accessibilityRole` on the container: like `Card`, this is a plain grouping container with no
11
+ * interaction beyond the composed Button. The title is the state's heading (`accessibilityRole=
12
+ * "header"` at level 2, WCAG 1.3.1 / 2.4.6), the description reads as its own `Text` after it, and the icon
13
+ * (redundant with the title) is hidden from the accessibility tree entirely.
14
+ *
15
+ * Appearing is itself the status message (WCAG 4.1.3): a screen swapping its content for this block
16
+ * moves no focus, so `useAnnounce` speaks the title + description once, on arrival and on change.
14
17
  */
15
18
 
16
- import { memo } from "react";
19
+ import { memo, useMemo } from "react";
17
20
  import { StyleSheet, Text, View } from "react-native";
21
+ import { useAnnounce } from "../../core/a11y/index.js";
22
+ import { HEADING_LEVEL, HeadingText } from "../../core/heading/index.js";
18
23
  import { Icon } from "../../core/icon/index.js";
19
- import { useTheme } from "../../theme/index.js";
24
+ import { useTheme } from "../../theme/hooks.js";
20
25
  import { Button } from "../button/index.js";
21
- import { EMPTY_STATE_ICON_SIZE, emptyStateStructure, resolveEmptyStateColors } from "./EmptyState.variants.js";
26
+ import { EMPTY_STATE_ICON_SIZE, emptyStateStructure, resolveEmptyStateAnnouncement, resolveEmptyStateColors } from "./EmptyState.variants.js";
22
27
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
28
  // A lighter stroke than the default 2 — at 48dp a 2px stroke reads heavier than the muted,
24
29
  // secondary role this glyph plays next to the title.
@@ -32,10 +37,23 @@ export const EmptyState = /*#__PURE__*/memo(function EmptyState({
32
37
  testID
33
38
  }) {
34
39
  const theme = useTheme();
35
- const colors = resolveEmptyStateColors(theme.colors);
40
+ const colors = useMemo(() => resolveEmptyStateColors(theme.colors), [theme.colors]);
41
+
42
+ // No `accessibilityLiveRegion` alongside this — it is Android-only and would announce twice there
43
+ // (the contract `core/a11y/MODULE.md` states, same as `Input`/`FormField`).
44
+ useAnnounce(resolveEmptyStateAnnouncement(title, description));
45
+ const rootStyle = useMemo(() => [emptyStateStructure(theme), style], [theme, style]);
46
+ const titleStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.bold), styles.text, {
47
+ fontSize: theme.fontSizes.lg,
48
+ color: colors.title
49
+ }], [theme, colors]);
50
+ const descriptionStyle = useMemo(() => [styles.text, {
51
+ fontSize: theme.fontSizes.sm,
52
+ color: colors.description
53
+ }], [theme, colors]);
36
54
  return /*#__PURE__*/_jsxs(View, {
37
55
  testID: testID,
38
- style: [emptyStateStructure(theme), style],
56
+ style: rootStyle,
39
57
  children: [icon !== undefined &&
40
58
  /*#__PURE__*/
41
59
  // Decorative — redundant with the visible title below, so it is hidden from assistive
@@ -51,17 +69,13 @@ export const EmptyState = /*#__PURE__*/memo(function EmptyState({
51
69
  color: colors.icon,
52
70
  strokeWidth: ICON_STROKE
53
71
  })
54
- }), /*#__PURE__*/_jsx(Text, {
55
- style: [theme.fontStyleForWeight(theme.fontWeights.bold), styles.text, {
56
- fontSize: theme.fontSizes.lg,
57
- color: colors.title
58
- }],
72
+ }), /*#__PURE__*/_jsx(HeadingText, {
73
+ accessibilityRole: "header",
74
+ "aria-level": HEADING_LEVEL.section,
75
+ style: titleStyle,
59
76
  children: title
60
77
  }), description !== undefined && /*#__PURE__*/_jsx(Text, {
61
- style: [styles.text, {
62
- fontSize: theme.fontSizes.sm,
63
- color: colors.description
64
- }],
78
+ style: descriptionStyle,
65
79
  children: description
66
80
  }), action !== undefined && /*#__PURE__*/_jsx(Button, {
67
81
  label: action.label,
@@ -36,6 +36,15 @@ export function resolveEmptyStateColors(colors) {
36
36
  };
37
37
  }
38
38
 
39
+ /**
40
+ * What a screen reader hears when this state appears (WCAG 4.1.3). The description carries the
41
+ * recovery step ("Try a different search"), so it is announced with the title rather than left to a
42
+ * swipe the user has no reason to make.
43
+ */
44
+ export function resolveEmptyStateAnnouncement(title, description) {
45
+ return description === undefined ? title : `${title}. ${description}`;
46
+ }
47
+
39
48
  /**
40
49
  * Structural styles only — centring, padding, and the vertical rhythm between children. No
41
50
  * colours (those are resolved separately and applied inline over this) and no closed union to
@@ -9,10 +9,11 @@ identity, same reasoning `Divider`/`Avatar` give for theirs.
9
9
  | File | Role |
10
10
  |------|------|
11
11
  | `EmptyState.tsx` | The component. Resolves role colours + the themed structural style, composes the optional icon/description/action, `style` last. |
12
- | `EmptyState.variants.ts` | Pure resolver (`resolveEmptyStateColors`) + the themed structural variant resolver `emptyStateStructure` + the `EMPTY_STATE_ICON_SIZE` constant. No React, no lucide. |
12
+ | `EmptyState.variants.ts` | Pure resolvers (`resolveEmptyStateColors`, `resolveEmptyStateAnnouncement`) + the themed structural variant resolver `emptyStateStructure` + the `EMPTY_STATE_ICON_SIZE` constant. No React, no lucide. |
13
13
  | `index.ts` | Public surface: `EmptyState`, `EmptyStateProps`, `EmptyStateAction`, `IconName` (re-exported from `core/icon`). |
14
- | `__tests__/EmptyState.test.ts` | Pure: WCAG 1.4.3 (title + description, all brands × modes), the icon's 3:1 non-text floor, the colour-mapping contract, `EMPTY_STATE_ICON_SIZE`. |
15
- | `__tests__/EmptyState.render.test.tsx` | Render: title/description compose, `testID` forwards, icon absent vs. hidden-from-AT, the composed action `Button` fires `onPress` and carries its label as the accessible name, consumer `style` applies last. |
14
+ | `__tests__/EmptyState.test.ts` | Pure: WCAG 1.4.3 (title + description, all brands × modes), the icon's 3:1 non-text floor, the colour-mapping contract, `EMPTY_STATE_ICON_SIZE`, the announcement string. |
15
+ | `__tests__/EmptyState.render.test.tsx` | Render: title/description compose, the title's heading role + level, the 4.1.3 announcement (once per change, no live region), `testID` forwards, icon absent vs. hidden-from-AT, the composed action `Button` fires `onPress` and carries its label as the accessible name, consumer `style` applies last. |
16
+ | `__tests__/EmptyState.dom.test.tsx` | Real DOM (`jest.web.config.js`): the title renders a real `<h2>`. |
16
17
 
17
18
  ## Props
18
19
 
@@ -39,10 +40,21 @@ composition and `Select`'s reuse of stable siblings.
39
40
 
40
41
  ## Accessibility contract (WCAG)
41
42
 
42
- - **No `accessibilityRole` of its own.** Like `Card`, this is a plain grouping container — the
43
- title and description read as their own `Text` elements, in document order, and the composed
44
- `Button` carries its own role/state. There is nothing here for assistive tech to announce beyond
45
- its children.
43
+ - **1.3.1 / 2.4.6 the title is a level-2 heading** (`accessibilityRole="header"`,
44
+ `aria-level={2}` `HEADING_LEVEL.section`, `core/heading` the same role and level
45
+ `SectionList`'s header and `Section`'s label carry), so an empty state is a stop in rotor heading
46
+ navigation rather than an unlabelled block of text, nesting under the screen's own `<h1>` rather
47
+ than restarting the outline. The description stays plain text below it.
48
+ - **4.1.3 — appearing IS the status message.** A screen swapping its content for this block moves
49
+ no focus, so nothing would be spoken; `useAnnounce` (`core/a11y`) announces
50
+ `resolveEmptyStateAnnouncement(title, description)` — the description is included because it
51
+ carries the recovery step ("Try a different search"), which a user has no reason to swipe for.
52
+ Announced once on arrival and again only when the text actually changes. **No
53
+ `accessibilityLiveRegion`** alongside it: that prop is Android-only and would announce twice
54
+ there (the contract `core/a11y/MODULE.md` states, same as `Input`/`FormField`/`FileUpload`).
55
+ - **No `accessibilityRole` on the container.** Like `Card`, this is a plain grouping container —
56
+ the title and description read as their own `Text` elements, in document order, and the composed
57
+ `Button` carries its own role/state.
46
58
  - **Icon is decorative.** Redundant with the visible title, so its wrapper carries
47
59
  `accessibilityElementsHidden` + `importantForAccessibility="no-hide-descendants"` — the same
48
60
  contract `Avatar`/`Skeleton` give their own decorative default — rather than being announced as
@@ -76,3 +88,9 @@ None — no new icon, no new theme token, no new core helper needed for this com
76
88
  ## Performance
77
89
 
78
90
  Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Its one library child, `Button`, receives `action.label`/`action.onPress` straight from the consumer's own `action` object, not a freshly-derived closure — nothing to memoize.
91
+
92
+ ## Modernization (v1.0.7)
93
+
94
+ - Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
95
+ - List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
96
+ - `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Fab — a floating action button: an absolutely-positioned, safe-area-aware primary-action circle
5
+ * (or pill, when `label` is given — the EXTENDED variant, icon + text). It renders one small
6
+ * wrapper View around its own `Pressable` — `position: "absolute"` for every floating `position`,
7
+ * plain in-flow `position: "relative"` for `"static"` — so `bottom-center` can center a
8
+ * variable-width extended Fab via `alignItems` rather than a measured `translateX`
9
+ * (`resolveFabAnchorStyle`'s own comment has the full reasoning).
10
+ *
11
+ * `FabProps` is a discriminated union, the same shape `ButtonProps` already establishes: a labelled
12
+ * (extended) Fab, or an icon-only Fab whose `accessibilityLabel` is REQUIRED at the type level — the
13
+ * same unlabelled-icon-button trap `Button.tsx`'s own top comment documents; `label?: never` keeps
14
+ * the two shapes mutually exclusive.
15
+ *
16
+ * Press feedback (one motion-system value driving the state-layer overlay + the press scale, with a
17
+ * brightness-aware scrim direction) and the offset focus ring are Button's own techniques, copied
18
+ * here rather than imported — `fab/` stays
19
+ * free of a cross-module dependency on `button/` internals, the same isolation `Toast.variants.ts`
20
+ * documents for its own duplicated `MIN_TOUCH_TARGET`.
21
+ */
22
+
23
+ import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
24
+ import { ActivityIndicator, Animated, Platform, Pressable, StyleSheet, Text, View } from "react-native";
25
+ import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
26
+ import { Icon } from "../../core/icon/index.js";
27
+ import { useTheme } from "../../theme/hooks.js";
28
+ import { fabCircleStructure, fabExtendedStructure, FAB_SIZES, resolveFabAccessibility, resolveFabAnchorStyle, resolveFabBottomInset, resolveFabFocusRingStyle, resolveFabHorizontalInset, resolveFabTone } from "./Fab.variants.js";
29
+
30
+ /** A Fab with a visible text label — the EXTENDED variant (a pill, icon + text). */
31
+
32
+ /** An icon-only Fab. No visible text, so `accessibilityLabel` is REQUIRED at the type level — the
33
+ * same trap `Button`'s icon-only shape closes. `label?: never` keeps the two shapes exclusive. */
34
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
+ const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
36
+ const ICON_STROKE = 2;
37
+ // State-layer scrims — direction chosen by the label's brightness so the fill moves AWAY from the
38
+ // label on press (its contrast can only rise), the identical technique `Button.tsx` uses.
39
+ const PRESS_SCRIM_DARK = "#00000026";
40
+ const PRESS_SCRIM_LIGHT = "#ffffff26";
41
+
42
+ /** Cheap perceived-brightness split; `onFill` is only ever a near-white or near-black role value. */
43
+ function isLight(hex) {
44
+ const n = parseInt(hex.slice(1, 7), 16);
45
+ const r = n >> 16 & 0xff;
46
+ const g = n >> 8 & 0xff;
47
+ const b = n & 0xff;
48
+ return r * 0.299 + g * 0.587 + b * 0.114 > 140;
49
+ }
50
+ function FabImpl(props) {
51
+ const {
52
+ icon,
53
+ label,
54
+ onPress,
55
+ onLongPress,
56
+ onPressOut,
57
+ onHoverIn,
58
+ onHoverOut,
59
+ onFocus,
60
+ onBlur,
61
+ tone = "accent",
62
+ size = "lg",
63
+ position = "bottom-right",
64
+ disabled = false,
65
+ loading = false,
66
+ offset,
67
+ style,
68
+ testID,
69
+ accessibilityLabel,
70
+ accessibilityHint,
71
+ "aria-describedby": ariaDescribedBy
72
+ } = props;
73
+ const theme = useTheme();
74
+ const motion = useMotion();
75
+ // One value drives both the state-layer scrim and the press scale, so they can never desync.
76
+ const press = useAnimatedValue(0);
77
+ const pressAnimation = useRef(null);
78
+ // Keyboard / external-keyboard / assistive-tech focus (no-op on pure touch, correct everywhere else).
79
+ const [focused, setFocused] = useState(false);
80
+ const spec = FAB_SIZES[size];
81
+ const toneColors = resolveFabTone(theme.colors, tone);
82
+ const a11y = resolveFabAccessibility({
83
+ label,
84
+ accessibilityLabel,
85
+ disabled,
86
+ loading,
87
+ onPress
88
+ });
89
+ const overlayColor = isLight(toneColors.onFill) ? PRESS_SCRIM_DARK : PRESS_SCRIM_LIGHT;
90
+ const extended = label !== undefined;
91
+ const bottomInset = resolveFabBottomInset(theme.space[4], Platform.OS, offset?.bottom ?? 0);
92
+ const horizontalInset = resolveFabHorizontalInset(theme.space[4], offset?.horizontal ?? 0);
93
+ const anchor = resolveFabAnchorStyle({
94
+ position,
95
+ bottomInset,
96
+ horizontalInset,
97
+ zIndex: theme.zIndices.docked
98
+ });
99
+ const setPressed = useCallback(pressed => {
100
+ pressAnimation.current?.stop();
101
+ const to = pressed ? 1 : 0;
102
+ if (!motion.enabled) {
103
+ press.setValue(to);
104
+ return;
105
+ }
106
+ pressAnimation.current = motion.timing(press, to, {
107
+ duration: "fast"
108
+ });
109
+ pressAnimation.current.start();
110
+ }, [motion, press]);
111
+ useEffect(() => () => pressAnimation.current?.stop(), []);
112
+
113
+ // Own state first, then the incoming handler — an outer handler that throws can never strand the
114
+ // press/focus ring in its active state.
115
+ const handlePressIn = useCallback(() => setPressed(true), [setPressed]);
116
+ const handlePressOut = useCallback(event => {
117
+ setPressed(false);
118
+ onPressOut?.(event);
119
+ }, [setPressed, onPressOut]);
120
+ const handleFocus = useCallback(event => {
121
+ setFocused(true);
122
+ onFocus?.(event);
123
+ }, [onFocus]);
124
+ const handleBlur = useCallback(event => {
125
+ setFocused(false);
126
+ onBlur?.(event);
127
+ }, [onBlur]);
128
+ const pressScale = useMemo(() => press.interpolate({
129
+ inputRange: [0, 1],
130
+ outputRange: [1, motion.transform.pressScale]
131
+ }), [press, motion.transform.pressScale]);
132
+ const focusRingStyle = useMemo(() => resolveFabFocusRingStyle(theme.colors.border.focus, theme.radii.full), [theme.colors.border.focus, theme.radii.full]);
133
+
134
+ // The spinner is never the sole loading signal — `aria-busy` announces it. Hidden from AT so it
135
+ // isn't read as a separate element, the same contract Button's own spinner has.
136
+ const content = loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
137
+ size: "small",
138
+ color: toneColors.onFill,
139
+ "aria-hidden": true
140
+ }) : /*#__PURE__*/_jsx(Icon, {
141
+ name: icon,
142
+ size: spec.iconSize,
143
+ color: toneColors.onFill,
144
+ strokeWidth: ICON_STROKE
145
+ });
146
+ return /*#__PURE__*/_jsx(View, {
147
+ style: [anchor, style],
148
+ pointerEvents: "box-none",
149
+ children: /*#__PURE__*/_jsxs(AnimatedPressable, {
150
+ testID: testID,
151
+ accessibilityRole: a11y.accessibilityRole,
152
+ accessibilityLabel: a11y.accessibilityLabel,
153
+ accessibilityHint: accessibilityHint,
154
+ "aria-describedby": ariaDescribedBy,
155
+ "aria-disabled": a11y["aria-disabled"],
156
+ "aria-busy": a11y["aria-busy"],
157
+ disabled: a11y.disabled,
158
+ onPress: a11y.onPress,
159
+ onLongPress: onLongPress,
160
+ onPressIn: handlePressIn,
161
+ onPressOut: handlePressOut,
162
+ onHoverIn: onHoverIn,
163
+ onHoverOut: onHoverOut,
164
+ onFocus: handleFocus,
165
+ onBlur: handleBlur,
166
+ style: [extended ? fabExtendedStructure(theme, {
167
+ size
168
+ }) : fabCircleStructure(theme, {
169
+ size
170
+ }), {
171
+ backgroundColor: toneColors.fill,
172
+ transform: [{
173
+ scale: pressScale
174
+ }]
175
+ }, (disabled || loading) && styles.dimmed, theme.elevation.lg],
176
+ children: [/*#__PURE__*/_jsx(Animated.View, {
177
+ pointerEvents: "none"
178
+ // Matches the control's own radius: the control isn't `overflow: hidden` (that would clip
179
+ // the focus ring below), so the state layer rounds itself instead of showing square corners.
180
+ ,
181
+ style: [StyleSheet.absoluteFill, {
182
+ backgroundColor: overlayColor,
183
+ opacity: press,
184
+ borderRadius: theme.radii.full
185
+ }]
186
+ }), focused && /*#__PURE__*/_jsx(View, {
187
+ pointerEvents: "none",
188
+ testID: testID ? `${testID}-focus-ring` : undefined,
189
+ style: focusRingStyle
190
+ }), content, extended && /*#__PURE__*/_jsx(Text, {
191
+ numberOfLines: 1,
192
+ style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
193
+ fontSize: spec.fontSize,
194
+ color: toneColors.onFill
195
+ }],
196
+ children: label
197
+ })]
198
+ })
199
+ });
200
+ }
201
+ const styles = StyleSheet.create({
202
+ // A disabled/loading control is exempt from the contrast minimum (WCAG 1.4.3), so a uniform dim is
203
+ // correct — same idiom Button's own `dimmed` style uses.
204
+ dimmed: {
205
+ opacity: 0.5
206
+ }
207
+ });
208
+
209
+ // A consumer's screen re-renders far more often than Fab's own props change — memo is near-free
210
+ // insurance for a design-system primitive (see CLAUDE.md "Performance" section).
211
+ export const Fab = /*#__PURE__*/memo(FabImpl);
212
+ //# sourceMappingURL=Fab.js.map