pixelize-native-library 1.0.6

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 (713) hide show
  1. package/README.md +34 -0
  2. package/lib/module/core/MODULE.md +94 -0
  3. package/lib/module/core/a11y/MODULE.md +22 -0
  4. package/lib/module/core/a11y/index.js +26 -0
  5. package/lib/module/core/a11y/index.js.map +1 -0
  6. package/lib/module/core/icon/MODULE.md +35 -0
  7. package/lib/module/core/icon/index.js +92 -0
  8. package/lib/module/core/icon/index.js.map +1 -0
  9. package/lib/module/core/style/index.js +4 -0
  10. package/lib/module/core/style/index.js.map +1 -0
  11. package/lib/module/core/style/layoutStyle.js +4 -0
  12. package/lib/module/core/style/layoutStyle.js.map +1 -0
  13. package/lib/module/core/style/variants.js +115 -0
  14. package/lib/module/core/style/variants.js.map +1 -0
  15. package/lib/module/index.js +13 -0
  16. package/lib/module/index.js.map +1 -0
  17. package/lib/module/modules/accordion/Accordion.js +194 -0
  18. package/lib/module/modules/accordion/Accordion.js.map +1 -0
  19. package/lib/module/modules/accordion/Accordion.variants.js +143 -0
  20. package/lib/module/modules/accordion/Accordion.variants.js.map +1 -0
  21. package/lib/module/modules/accordion/MODULE.md +97 -0
  22. package/lib/module/modules/accordion/index.js +10 -0
  23. package/lib/module/modules/accordion/index.js.map +1 -0
  24. package/lib/module/modules/alert-dialog/AlertDialog.js +62 -0
  25. package/lib/module/modules/alert-dialog/AlertDialog.js.map +1 -0
  26. package/lib/module/modules/alert-dialog/AlertDialog.variants.js +44 -0
  27. package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +1 -0
  28. package/lib/module/modules/alert-dialog/MODULE.md +81 -0
  29. package/lib/module/modules/alert-dialog/index.js +10 -0
  30. package/lib/module/modules/alert-dialog/index.js.map +1 -0
  31. package/lib/module/modules/avatar/Avatar.js +57 -0
  32. package/lib/module/modules/avatar/Avatar.js.map +1 -0
  33. package/lib/module/modules/avatar/Avatar.variants.js +127 -0
  34. package/lib/module/modules/avatar/Avatar.variants.js.map +1 -0
  35. package/lib/module/modules/avatar/MODULE.md +76 -0
  36. package/lib/module/modules/avatar/index.js +12 -0
  37. package/lib/module/modules/avatar/index.js.map +1 -0
  38. package/lib/module/modules/badge/Badge.js +56 -0
  39. package/lib/module/modules/badge/Badge.js.map +1 -0
  40. package/lib/module/modules/badge/Badge.variants.js +124 -0
  41. package/lib/module/modules/badge/Badge.variants.js.map +1 -0
  42. package/lib/module/modules/badge/MODULE.md +82 -0
  43. package/lib/module/modules/badge/index.js +12 -0
  44. package/lib/module/modules/badge/index.js.map +1 -0
  45. package/lib/module/modules/bottom-nav/BottomNav.js +257 -0
  46. package/lib/module/modules/bottom-nav/BottomNav.js.map +1 -0
  47. package/lib/module/modules/bottom-nav/BottomNav.search.js +153 -0
  48. package/lib/module/modules/bottom-nav/BottomNav.search.js.map +1 -0
  49. package/lib/module/modules/bottom-nav/BottomNav.variants.js +164 -0
  50. package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +1 -0
  51. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +297 -0
  52. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +1 -0
  53. package/lib/module/modules/bottom-nav/MODULE.md +198 -0
  54. package/lib/module/modules/bottom-nav/index.js +16 -0
  55. package/lib/module/modules/bottom-nav/index.js.map +1 -0
  56. package/lib/module/modules/button/Button.js +173 -0
  57. package/lib/module/modules/button/Button.js.map +1 -0
  58. package/lib/module/modules/button/Button.variants.js +173 -0
  59. package/lib/module/modules/button/Button.variants.js.map +1 -0
  60. package/lib/module/modules/button/MODULE.md +87 -0
  61. package/lib/module/modules/button/index.js +12 -0
  62. package/lib/module/modules/button/index.js.map +1 -0
  63. package/lib/module/modules/button-group/ButtonGroup.js +106 -0
  64. package/lib/module/modules/button-group/ButtonGroup.js.map +1 -0
  65. package/lib/module/modules/button-group/ButtonGroup.variants.js +220 -0
  66. package/lib/module/modules/button-group/ButtonGroup.variants.js.map +1 -0
  67. package/lib/module/modules/button-group/MODULE.md +129 -0
  68. package/lib/module/modules/button-group/index.js +11 -0
  69. package/lib/module/modules/button-group/index.js.map +1 -0
  70. package/lib/module/modules/card/Card.js +39 -0
  71. package/lib/module/modules/card/Card.js.map +1 -0
  72. package/lib/module/modules/card/Card.variants.js +75 -0
  73. package/lib/module/modules/card/Card.variants.js.map +1 -0
  74. package/lib/module/modules/card/MODULE.md +81 -0
  75. package/lib/module/modules/card/index.js +10 -0
  76. package/lib/module/modules/card/index.js.map +1 -0
  77. package/lib/module/modules/checkbox/Checkbox.js +115 -0
  78. package/lib/module/modules/checkbox/Checkbox.js.map +1 -0
  79. package/lib/module/modules/checkbox/Checkbox.variants.js +122 -0
  80. package/lib/module/modules/checkbox/Checkbox.variants.js.map +1 -0
  81. package/lib/module/modules/checkbox/MODULE.md +76 -0
  82. package/lib/module/modules/checkbox/index.js +11 -0
  83. package/lib/module/modules/checkbox/index.js.map +1 -0
  84. package/lib/module/modules/divider/Divider.js +35 -0
  85. package/lib/module/modules/divider/Divider.js.map +1 -0
  86. package/lib/module/modules/divider/Divider.variants.js +51 -0
  87. package/lib/module/modules/divider/Divider.variants.js.map +1 -0
  88. package/lib/module/modules/divider/MODULE.md +61 -0
  89. package/lib/module/modules/divider/index.js +10 -0
  90. package/lib/module/modules/divider/index.js.map +1 -0
  91. package/lib/module/modules/drawer/Drawer.js +171 -0
  92. package/lib/module/modules/drawer/Drawer.js.map +1 -0
  93. package/lib/module/modules/drawer/Drawer.variants.js +118 -0
  94. package/lib/module/modules/drawer/Drawer.variants.js.map +1 -0
  95. package/lib/module/modules/drawer/MODULE.md +161 -0
  96. package/lib/module/modules/drawer/index.js +10 -0
  97. package/lib/module/modules/drawer/index.js.map +1 -0
  98. package/lib/module/modules/empty-state/EmptyState.js +79 -0
  99. package/lib/module/modules/empty-state/EmptyState.js.map +1 -0
  100. package/lib/module/modules/empty-state/EmptyState.variants.js +54 -0
  101. package/lib/module/modules/empty-state/EmptyState.variants.js.map +1 -0
  102. package/lib/module/modules/empty-state/MODULE.md +78 -0
  103. package/lib/module/modules/empty-state/index.js +13 -0
  104. package/lib/module/modules/empty-state/index.js.map +1 -0
  105. package/lib/module/modules/file-upload/FileUpload.js +132 -0
  106. package/lib/module/modules/file-upload/FileUpload.js.map +1 -0
  107. package/lib/module/modules/file-upload/FileUpload.variants.js +179 -0
  108. package/lib/module/modules/file-upload/FileUpload.variants.js.map +1 -0
  109. package/lib/module/modules/file-upload/MODULE.md +130 -0
  110. package/lib/module/modules/file-upload/index.js +10 -0
  111. package/lib/module/modules/file-upload/index.js.map +1 -0
  112. package/lib/module/modules/filter-sheet/FilterChip.js +79 -0
  113. package/lib/module/modules/filter-sheet/FilterChip.js.map +1 -0
  114. package/lib/module/modules/filter-sheet/FilterSheet.js +98 -0
  115. package/lib/module/modules/filter-sheet/FilterSheet.js.map +1 -0
  116. package/lib/module/modules/filter-sheet/FilterSheet.variants.js +156 -0
  117. package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +1 -0
  118. package/lib/module/modules/filter-sheet/FilterSheetBody.js +175 -0
  119. package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +1 -0
  120. package/lib/module/modules/filter-sheet/MODULE.md +115 -0
  121. package/lib/module/modules/filter-sheet/filterSheet.helpers.js +90 -0
  122. package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +1 -0
  123. package/lib/module/modules/filter-sheet/index.js +14 -0
  124. package/lib/module/modules/filter-sheet/index.js.map +1 -0
  125. package/lib/module/modules/input/Input.js +132 -0
  126. package/lib/module/modules/input/Input.js.map +1 -0
  127. package/lib/module/modules/input/Input.variants.js +122 -0
  128. package/lib/module/modules/input/Input.variants.js.map +1 -0
  129. package/lib/module/modules/input/MODULE.md +97 -0
  130. package/lib/module/modules/input/index.js +13 -0
  131. package/lib/module/modules/input/index.js.map +1 -0
  132. package/lib/module/modules/menu/MODULE.md +103 -0
  133. package/lib/module/modules/menu/Menu.js +128 -0
  134. package/lib/module/modules/menu/Menu.js.map +1 -0
  135. package/lib/module/modules/menu/Menu.variants.js +75 -0
  136. package/lib/module/modules/menu/Menu.variants.js.map +1 -0
  137. package/lib/module/modules/menu/index.js +12 -0
  138. package/lib/module/modules/menu/index.js.map +1 -0
  139. package/lib/module/modules/modal/MODULE.md +138 -0
  140. package/lib/module/modules/modal/Modal.js +101 -0
  141. package/lib/module/modules/modal/Modal.js.map +1 -0
  142. package/lib/module/modules/modal/Modal.variants.js +92 -0
  143. package/lib/module/modules/modal/Modal.variants.js.map +1 -0
  144. package/lib/module/modules/modal/ModalPortalContext.js +25 -0
  145. package/lib/module/modules/modal/ModalPortalContext.js.map +1 -0
  146. package/lib/module/modules/modal/ModalPortalProvider.js +22 -0
  147. package/lib/module/modules/modal/ModalPortalProvider.js.map +1 -0
  148. package/lib/module/modules/modal/index.js +16 -0
  149. package/lib/module/modules/modal/index.js.map +1 -0
  150. package/lib/module/modules/modal/renderWebPortal.js +18 -0
  151. package/lib/module/modules/modal/renderWebPortal.js.map +1 -0
  152. package/lib/module/modules/modal/renderWebPortal.web.js +24 -0
  153. package/lib/module/modules/modal/renderWebPortal.web.js.map +1 -0
  154. package/lib/module/modules/multi-select/MODULE.md +100 -0
  155. package/lib/module/modules/multi-select/MultiSelect.js +204 -0
  156. package/lib/module/modules/multi-select/MultiSelect.js.map +1 -0
  157. package/lib/module/modules/multi-select/MultiSelect.variants.js +195 -0
  158. package/lib/module/modules/multi-select/MultiSelect.variants.js.map +1 -0
  159. package/lib/module/modules/multi-select/index.js +11 -0
  160. package/lib/module/modules/multi-select/index.js.map +1 -0
  161. package/lib/module/modules/number-input/MODULE.md +108 -0
  162. package/lib/module/modules/number-input/NumberInput.js +253 -0
  163. package/lib/module/modules/number-input/NumberInput.js.map +1 -0
  164. package/lib/module/modules/number-input/NumberInput.variants.js +200 -0
  165. package/lib/module/modules/number-input/NumberInput.variants.js.map +1 -0
  166. package/lib/module/modules/number-input/index.js +12 -0
  167. package/lib/module/modules/number-input/index.js.map +1 -0
  168. package/lib/module/modules/pin-input/MODULE.md +134 -0
  169. package/lib/module/modules/pin-input/PinInput.js +158 -0
  170. package/lib/module/modules/pin-input/PinInput.js.map +1 -0
  171. package/lib/module/modules/pin-input/PinInput.variants.js +183 -0
  172. package/lib/module/modules/pin-input/PinInput.variants.js.map +1 -0
  173. package/lib/module/modules/pin-input/index.js +11 -0
  174. package/lib/module/modules/pin-input/index.js.map +1 -0
  175. package/lib/module/modules/progress-bar/MODULE.md +101 -0
  176. package/lib/module/modules/progress-bar/ProgressBar.js +102 -0
  177. package/lib/module/modules/progress-bar/ProgressBar.js.map +1 -0
  178. package/lib/module/modules/progress-bar/ProgressBar.variants.js +151 -0
  179. package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +1 -0
  180. package/lib/module/modules/progress-bar/index.js +12 -0
  181. package/lib/module/modules/progress-bar/index.js.map +1 -0
  182. package/lib/module/modules/radio-group/MODULE.md +75 -0
  183. package/lib/module/modules/radio-group/RadioGroup.js +87 -0
  184. package/lib/module/modules/radio-group/RadioGroup.js.map +1 -0
  185. package/lib/module/modules/radio-group/RadioGroup.variants.js +163 -0
  186. package/lib/module/modules/radio-group/RadioGroup.variants.js.map +1 -0
  187. package/lib/module/modules/radio-group/index.js +11 -0
  188. package/lib/module/modules/radio-group/index.js.map +1 -0
  189. package/lib/module/modules/reorder/MODULE.md +131 -0
  190. package/lib/module/modules/reorder/Reorder.js +291 -0
  191. package/lib/module/modules/reorder/Reorder.js.map +1 -0
  192. package/lib/module/modules/reorder/Reorder.variants.js +172 -0
  193. package/lib/module/modules/reorder/Reorder.variants.js.map +1 -0
  194. package/lib/module/modules/reorder/index.js +11 -0
  195. package/lib/module/modules/reorder/index.js.map +1 -0
  196. package/lib/module/modules/select/MODULE.md +91 -0
  197. package/lib/module/modules/select/Select.js +178 -0
  198. package/lib/module/modules/select/Select.js.map +1 -0
  199. package/lib/module/modules/select/Select.variants.js +146 -0
  200. package/lib/module/modules/select/Select.variants.js.map +1 -0
  201. package/lib/module/modules/select/index.js +10 -0
  202. package/lib/module/modules/select/index.js.map +1 -0
  203. package/lib/module/modules/skeleton/MODULE.md +87 -0
  204. package/lib/module/modules/skeleton/Skeleton.js +78 -0
  205. package/lib/module/modules/skeleton/Skeleton.js.map +1 -0
  206. package/lib/module/modules/skeleton/Skeleton.variants.js +145 -0
  207. package/lib/module/modules/skeleton/Skeleton.variants.js.map +1 -0
  208. package/lib/module/modules/skeleton/index.js +10 -0
  209. package/lib/module/modules/skeleton/index.js.map +1 -0
  210. package/lib/module/modules/slider/MODULE.md +95 -0
  211. package/lib/module/modules/slider/Slider.js +183 -0
  212. package/lib/module/modules/slider/Slider.js.map +1 -0
  213. package/lib/module/modules/slider/Slider.variants.js +258 -0
  214. package/lib/module/modules/slider/Slider.variants.js.map +1 -0
  215. package/lib/module/modules/slider/index.js +10 -0
  216. package/lib/module/modules/slider/index.js.map +1 -0
  217. package/lib/module/modules/spinner/MODULE.md +97 -0
  218. package/lib/module/modules/spinner/Spinner.js +58 -0
  219. package/lib/module/modules/spinner/Spinner.js.map +1 -0
  220. package/lib/module/modules/spinner/Spinner.variants.js +131 -0
  221. package/lib/module/modules/spinner/Spinner.variants.js.map +1 -0
  222. package/lib/module/modules/spinner/index.js +11 -0
  223. package/lib/module/modules/spinner/index.js.map +1 -0
  224. package/lib/module/modules/stepper/MODULE.md +88 -0
  225. package/lib/module/modules/stepper/Stepper.js +100 -0
  226. package/lib/module/modules/stepper/Stepper.js.map +1 -0
  227. package/lib/module/modules/stepper/Stepper.variants.js +146 -0
  228. package/lib/module/modules/stepper/Stepper.variants.js.map +1 -0
  229. package/lib/module/modules/stepper/index.js +10 -0
  230. package/lib/module/modules/stepper/index.js.map +1 -0
  231. package/lib/module/modules/switch/MODULE.md +65 -0
  232. package/lib/module/modules/switch/Switch.js +53 -0
  233. package/lib/module/modules/switch/Switch.js.map +1 -0
  234. package/lib/module/modules/switch/Switch.variants.js +61 -0
  235. package/lib/module/modules/switch/Switch.variants.js.map +1 -0
  236. package/lib/module/modules/switch/index.js +10 -0
  237. package/lib/module/modules/switch/index.js.map +1 -0
  238. package/lib/module/modules/tabs/MODULE.md +80 -0
  239. package/lib/module/modules/tabs/Tabs.js +127 -0
  240. package/lib/module/modules/tabs/Tabs.js.map +1 -0
  241. package/lib/module/modules/tabs/Tabs.variants.js +135 -0
  242. package/lib/module/modules/tabs/Tabs.variants.js.map +1 -0
  243. package/lib/module/modules/tabs/index.js +12 -0
  244. package/lib/module/modules/tabs/index.js.map +1 -0
  245. package/lib/module/modules/textarea/MODULE.md +91 -0
  246. package/lib/module/modules/textarea/Textarea.js +136 -0
  247. package/lib/module/modules/textarea/Textarea.js.map +1 -0
  248. package/lib/module/modules/textarea/Textarea.variants.js +113 -0
  249. package/lib/module/modules/textarea/Textarea.variants.js.map +1 -0
  250. package/lib/module/modules/textarea/index.js +10 -0
  251. package/lib/module/modules/textarea/index.js.map +1 -0
  252. package/lib/module/modules/timeline/MODULE.md +95 -0
  253. package/lib/module/modules/timeline/Timeline.js +92 -0
  254. package/lib/module/modules/timeline/Timeline.js.map +1 -0
  255. package/lib/module/modules/timeline/Timeline.variants.js +146 -0
  256. package/lib/module/modules/timeline/Timeline.variants.js.map +1 -0
  257. package/lib/module/modules/timeline/index.js +12 -0
  258. package/lib/module/modules/timeline/index.js.map +1 -0
  259. package/lib/module/modules/toast/MODULE.md +104 -0
  260. package/lib/module/modules/toast/Toast.js +178 -0
  261. package/lib/module/modules/toast/Toast.js.map +1 -0
  262. package/lib/module/modules/toast/Toast.variants.js +120 -0
  263. package/lib/module/modules/toast/Toast.variants.js.map +1 -0
  264. package/lib/module/modules/toast/index.js +13 -0
  265. package/lib/module/modules/toast/index.js.map +1 -0
  266. package/lib/module/modules/tooltip/MODULE.md +86 -0
  267. package/lib/module/modules/tooltip/Tooltip.js +115 -0
  268. package/lib/module/modules/tooltip/Tooltip.js.map +1 -0
  269. package/lib/module/modules/tooltip/Tooltip.variants.js +75 -0
  270. package/lib/module/modules/tooltip/Tooltip.variants.js.map +1 -0
  271. package/lib/module/modules/tooltip/index.js +10 -0
  272. package/lib/module/modules/tooltip/index.js.map +1 -0
  273. package/lib/module/package.json +1 -0
  274. package/lib/module/theme/MODULE.md +87 -0
  275. package/lib/module/theme/index.js +15 -0
  276. package/lib/module/theme/index.js.map +1 -0
  277. package/lib/module/theme/platform/MODULE.md +102 -0
  278. package/lib/module/theme/platform/colorScheme.native.js +24 -0
  279. package/lib/module/theme/platform/colorScheme.native.js.map +1 -0
  280. package/lib/module/theme/platform/elevation.native.js +75 -0
  281. package/lib/module/theme/platform/elevation.native.js.map +1 -0
  282. package/lib/module/theme/platform/fonts.native.js +58 -0
  283. package/lib/module/theme/platform/fonts.native.js.map +1 -0
  284. package/lib/module/theme/platform/index.js +14 -0
  285. package/lib/module/theme/platform/index.js.map +1 -0
  286. package/lib/module/theme/platform/units.native.js +18 -0
  287. package/lib/module/theme/platform/units.native.js.map +1 -0
  288. package/lib/module/theme/provider/PixelizeProvider.js +149 -0
  289. package/lib/module/theme/provider/PixelizeProvider.js.map +1 -0
  290. package/lib/module/theme/provider/colorModeStorage.js +63 -0
  291. package/lib/module/theme/provider/colorModeStorage.js.map +1 -0
  292. package/lib/module/theme/provider/index.js +8 -0
  293. package/lib/module/theme/provider/index.js.map +1 -0
  294. package/lib/module/theme/provider/useTheme.js +13 -0
  295. package/lib/module/theme/provider/useTheme.js.map +1 -0
  296. package/lib/module/theme/provider/useThemeColors.js +13 -0
  297. package/lib/module/theme/provider/useThemeColors.js.map +1 -0
  298. package/lib/module/theme/provider/useThemeMode.js +13 -0
  299. package/lib/module/theme/provider/useThemeMode.js.map +1 -0
  300. package/lib/module/theme/tokens/MODULE.md +102 -0
  301. package/lib/module/theme/tokens/brands/emerald/palette.dark.js +9 -0
  302. package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +1 -0
  303. package/lib/module/theme/tokens/brands/emerald/palette.light.js +125 -0
  304. package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +1 -0
  305. package/lib/module/theme/tokens/brands/index.js +91 -0
  306. package/lib/module/theme/tokens/brands/index.js.map +1 -0
  307. package/lib/module/theme/tokens/brands/lavender/palette.dark.js +9 -0
  308. package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +1 -0
  309. package/lib/module/theme/tokens/brands/lavender/palette.light.js +376 -0
  310. package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +1 -0
  311. package/lib/module/theme/tokens/brands/meadow/palette.dark.js +9 -0
  312. package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +1 -0
  313. package/lib/module/theme/tokens/brands/meadow/palette.light.js +126 -0
  314. package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +1 -0
  315. package/lib/module/theme/tokens/brands/radiant/palette.dark.js +9 -0
  316. package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +1 -0
  317. package/lib/module/theme/tokens/brands/radiant/palette.light.js +125 -0
  318. package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +1 -0
  319. package/lib/module/theme/tokens/brands/rosewood/palette.dark.js +9 -0
  320. package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +1 -0
  321. package/lib/module/theme/tokens/brands/rosewood/palette.light.js +125 -0
  322. package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +1 -0
  323. package/lib/module/theme/tokens/brands/skyline/palette.dark.js +9 -0
  324. package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +1 -0
  325. package/lib/module/theme/tokens/brands/skyline/palette.light.js +126 -0
  326. package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +1 -0
  327. package/lib/module/theme/tokens/brands/slate/palette.dark.js +11 -0
  328. package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +1 -0
  329. package/lib/module/theme/tokens/brands/slate/palette.light.js +129 -0
  330. package/lib/module/theme/tokens/brands/slate/palette.light.js.map +1 -0
  331. package/lib/module/theme/tokens/brands/storefront/palette.dark.js +7 -0
  332. package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +1 -0
  333. package/lib/module/theme/tokens/brands/storefront/palette.light.js +127 -0
  334. package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +1 -0
  335. package/lib/module/theme/tokens/brands/zinc/palette.dark.js +222 -0
  336. package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +1 -0
  337. package/lib/module/theme/tokens/brands/zinc/palette.light.js +393 -0
  338. package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +1 -0
  339. package/lib/module/theme/tokens/builders/accentText.js +66 -0
  340. package/lib/module/theme/tokens/builders/accentText.js.map +1 -0
  341. package/lib/module/theme/tokens/builders/buildBrandTokens.js +38 -0
  342. package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +1 -0
  343. package/lib/module/theme/tokens/builders/buildDarkPalette.js +300 -0
  344. package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +1 -0
  345. package/lib/module/theme/tokens/builders/color.js +187 -0
  346. package/lib/module/theme/tokens/builders/color.js.map +1 -0
  347. package/lib/module/theme/tokens/index.js +27 -0
  348. package/lib/module/theme/tokens/index.js.map +1 -0
  349. package/lib/module/theme/tokens/primitives/borderWidths.js +16 -0
  350. package/lib/module/theme/tokens/primitives/borderWidths.js.map +1 -0
  351. package/lib/module/theme/tokens/primitives/breakpoints.js +18 -0
  352. package/lib/module/theme/tokens/primitives/breakpoints.js.map +1 -0
  353. package/lib/module/theme/tokens/primitives/elevation.js +95 -0
  354. package/lib/module/theme/tokens/primitives/elevation.js.map +1 -0
  355. package/lib/module/theme/tokens/primitives/fontSizes.js +22 -0
  356. package/lib/module/theme/tokens/primitives/fontSizes.js.map +1 -0
  357. package/lib/module/theme/tokens/primitives/fontWeights.js +23 -0
  358. package/lib/module/theme/tokens/primitives/fontWeights.js.map +1 -0
  359. package/lib/module/theme/tokens/primitives/index.js +14 -0
  360. package/lib/module/theme/tokens/primitives/index.js.map +1 -0
  361. package/lib/module/theme/tokens/primitives/letterSpacings.js +18 -0
  362. package/lib/module/theme/tokens/primitives/letterSpacings.js.map +1 -0
  363. package/lib/module/theme/tokens/primitives/lineHeights.js +21 -0
  364. package/lib/module/theme/tokens/primitives/lineHeights.js.map +1 -0
  365. package/lib/module/theme/tokens/primitives/radii.js +21 -0
  366. package/lib/module/theme/tokens/primitives/radii.js.map +1 -0
  367. package/lib/module/theme/tokens/primitives/sizes.js +34 -0
  368. package/lib/module/theme/tokens/primitives/sizes.js.map +1 -0
  369. package/lib/module/theme/tokens/primitives/space.js +30 -0
  370. package/lib/module/theme/tokens/primitives/space.js.map +1 -0
  371. package/lib/module/theme/tokens/primitives/zIndices.js +23 -0
  372. package/lib/module/theme/tokens/primitives/zIndices.js.map +1 -0
  373. package/lib/module/theme/tokens/roles/index.js +126 -0
  374. package/lib/module/theme/tokens/roles/index.js.map +1 -0
  375. package/lib/module/theme/tokens/types.js +2 -0
  376. package/lib/module/theme/tokens/types.js.map +1 -0
  377. package/lib/typescript/core/a11y/index.d.ts +7 -0
  378. package/lib/typescript/core/a11y/index.d.ts.map +1 -0
  379. package/lib/typescript/core/icon/index.d.ts +60 -0
  380. package/lib/typescript/core/icon/index.d.ts.map +1 -0
  381. package/lib/typescript/core/style/index.d.ts +4 -0
  382. package/lib/typescript/core/style/index.d.ts.map +1 -0
  383. package/lib/typescript/core/style/layoutStyle.d.ts +19 -0
  384. package/lib/typescript/core/style/layoutStyle.d.ts.map +1 -0
  385. package/lib/typescript/core/style/variants.d.ts +55 -0
  386. package/lib/typescript/core/style/variants.d.ts.map +1 -0
  387. package/lib/typescript/index.d.ts +11 -0
  388. package/lib/typescript/index.d.ts.map +1 -0
  389. package/lib/typescript/modules/accordion/Accordion.d.ts +57 -0
  390. package/lib/typescript/modules/accordion/Accordion.d.ts.map +1 -0
  391. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +131 -0
  392. package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +1 -0
  393. package/lib/typescript/modules/accordion/index.d.ts +9 -0
  394. package/lib/typescript/modules/accordion/index.d.ts.map +1 -0
  395. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts +24 -0
  396. package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +1 -0
  397. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +29 -0
  398. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +1 -0
  399. package/lib/typescript/modules/alert-dialog/index.d.ts +9 -0
  400. package/lib/typescript/modules/alert-dialog/index.d.ts.map +1 -0
  401. package/lib/typescript/modules/avatar/Avatar.d.ts +30 -0
  402. package/lib/typescript/modules/avatar/Avatar.d.ts.map +1 -0
  403. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +123 -0
  404. package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +1 -0
  405. package/lib/typescript/modules/avatar/index.d.ts +11 -0
  406. package/lib/typescript/modules/avatar/index.d.ts.map +1 -0
  407. package/lib/typescript/modules/badge/Badge.d.ts +19 -0
  408. package/lib/typescript/modules/badge/Badge.d.ts.map +1 -0
  409. package/lib/typescript/modules/badge/Badge.variants.d.ts +102 -0
  410. package/lib/typescript/modules/badge/Badge.variants.d.ts.map +1 -0
  411. package/lib/typescript/modules/badge/index.d.ts +10 -0
  412. package/lib/typescript/modules/badge/index.d.ts.map +1 -0
  413. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +106 -0
  414. package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +1 -0
  415. package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts +61 -0
  416. package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +1 -0
  417. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +122 -0
  418. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +1 -0
  419. package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts +39 -0
  420. package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +1 -0
  421. package/lib/typescript/modules/bottom-nav/index.d.ts +12 -0
  422. package/lib/typescript/modules/bottom-nav/index.d.ts.map +1 -0
  423. package/lib/typescript/modules/button/Button.d.ts +43 -0
  424. package/lib/typescript/modules/button/Button.d.ts.map +1 -0
  425. package/lib/typescript/modules/button/Button.variants.d.ts +156 -0
  426. package/lib/typescript/modules/button/Button.variants.d.ts.map +1 -0
  427. package/lib/typescript/modules/button/index.d.ts +10 -0
  428. package/lib/typescript/modules/button/index.d.ts.map +1 -0
  429. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +37 -0
  430. package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +1 -0
  431. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +217 -0
  432. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +1 -0
  433. package/lib/typescript/modules/button-group/index.d.ts +10 -0
  434. package/lib/typescript/modules/button-group/index.d.ts.map +1 -0
  435. package/lib/typescript/modules/card/Card.d.ts +20 -0
  436. package/lib/typescript/modules/card/Card.d.ts.map +1 -0
  437. package/lib/typescript/modules/card/Card.variants.d.ts +51 -0
  438. package/lib/typescript/modules/card/Card.variants.d.ts.map +1 -0
  439. package/lib/typescript/modules/card/index.d.ts +9 -0
  440. package/lib/typescript/modules/card/index.d.ts.map +1 -0
  441. package/lib/typescript/modules/checkbox/Checkbox.d.ts +43 -0
  442. package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +1 -0
  443. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +120 -0
  444. package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +1 -0
  445. package/lib/typescript/modules/checkbox/index.d.ts +10 -0
  446. package/lib/typescript/modules/checkbox/index.d.ts.map +1 -0
  447. package/lib/typescript/modules/divider/Divider.d.ts +18 -0
  448. package/lib/typescript/modules/divider/Divider.d.ts.map +1 -0
  449. package/lib/typescript/modules/divider/Divider.variants.d.ts +42 -0
  450. package/lib/typescript/modules/divider/Divider.variants.d.ts.map +1 -0
  451. package/lib/typescript/modules/divider/index.d.ts +9 -0
  452. package/lib/typescript/modules/divider/index.d.ts.map +1 -0
  453. package/lib/typescript/modules/drawer/Drawer.d.ts +44 -0
  454. package/lib/typescript/modules/drawer/Drawer.d.ts.map +1 -0
  455. package/lib/typescript/modules/drawer/Drawer.variants.d.ts +80 -0
  456. package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +1 -0
  457. package/lib/typescript/modules/drawer/index.d.ts +8 -0
  458. package/lib/typescript/modules/drawer/index.d.ts.map +1 -0
  459. package/lib/typescript/modules/empty-state/EmptyState.d.ts +29 -0
  460. package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +1 -0
  461. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +43 -0
  462. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +1 -0
  463. package/lib/typescript/modules/empty-state/index.d.ts +10 -0
  464. package/lib/typescript/modules/empty-state/index.d.ts.map +1 -0
  465. package/lib/typescript/modules/file-upload/FileUpload.d.ts +44 -0
  466. package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +1 -0
  467. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +114 -0
  468. package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +1 -0
  469. package/lib/typescript/modules/file-upload/index.d.ts +9 -0
  470. package/lib/typescript/modules/file-upload/index.d.ts.map +1 -0
  471. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts +25 -0
  472. package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +1 -0
  473. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts +54 -0
  474. package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +1 -0
  475. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +98 -0
  476. package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +1 -0
  477. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +28 -0
  478. package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +1 -0
  479. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts +45 -0
  480. package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +1 -0
  481. package/lib/typescript/modules/filter-sheet/index.d.ts +12 -0
  482. package/lib/typescript/modules/filter-sheet/index.d.ts.map +1 -0
  483. package/lib/typescript/modules/input/Input.d.ts +33 -0
  484. package/lib/typescript/modules/input/Input.d.ts.map +1 -0
  485. package/lib/typescript/modules/input/Input.variants.d.ts +116 -0
  486. package/lib/typescript/modules/input/Input.variants.d.ts.map +1 -0
  487. package/lib/typescript/modules/input/index.d.ts +10 -0
  488. package/lib/typescript/modules/input/index.d.ts.map +1 -0
  489. package/lib/typescript/modules/menu/Menu.d.ts +43 -0
  490. package/lib/typescript/modules/menu/Menu.d.ts.map +1 -0
  491. package/lib/typescript/modules/menu/Menu.variants.d.ts +41 -0
  492. package/lib/typescript/modules/menu/Menu.variants.d.ts.map +1 -0
  493. package/lib/typescript/modules/menu/index.d.ts +10 -0
  494. package/lib/typescript/modules/menu/index.d.ts.map +1 -0
  495. package/lib/typescript/modules/modal/Modal.d.ts +32 -0
  496. package/lib/typescript/modules/modal/Modal.d.ts.map +1 -0
  497. package/lib/typescript/modules/modal/Modal.variants.d.ts +72 -0
  498. package/lib/typescript/modules/modal/Modal.variants.d.ts.map +1 -0
  499. package/lib/typescript/modules/modal/ModalPortalContext.d.ts +2 -0
  500. package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +1 -0
  501. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts +21 -0
  502. package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +1 -0
  503. package/lib/typescript/modules/modal/index.d.ts +16 -0
  504. package/lib/typescript/modules/modal/index.d.ts.map +1 -0
  505. package/lib/typescript/modules/modal/renderWebPortal.d.ts +15 -0
  506. package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +1 -0
  507. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts +19 -0
  508. package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +1 -0
  509. package/lib/typescript/modules/multi-select/MultiSelect.d.ts +33 -0
  510. package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +1 -0
  511. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +149 -0
  512. package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +1 -0
  513. package/lib/typescript/modules/multi-select/index.d.ts +10 -0
  514. package/lib/typescript/modules/multi-select/index.d.ts.map +1 -0
  515. package/lib/typescript/modules/number-input/NumberInput.d.ts +34 -0
  516. package/lib/typescript/modules/number-input/NumberInput.d.ts.map +1 -0
  517. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +170 -0
  518. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +1 -0
  519. package/lib/typescript/modules/number-input/index.d.ts +11 -0
  520. package/lib/typescript/modules/number-input/index.d.ts.map +1 -0
  521. package/lib/typescript/modules/pin-input/PinInput.d.ts +40 -0
  522. package/lib/typescript/modules/pin-input/PinInput.d.ts.map +1 -0
  523. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +164 -0
  524. package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +1 -0
  525. package/lib/typescript/modules/pin-input/index.d.ts +10 -0
  526. package/lib/typescript/modules/pin-input/index.d.ts.map +1 -0
  527. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +21 -0
  528. package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +1 -0
  529. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +112 -0
  530. package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +1 -0
  531. package/lib/typescript/modules/progress-bar/index.d.ts +11 -0
  532. package/lib/typescript/modules/progress-bar/index.d.ts.map +1 -0
  533. package/lib/typescript/modules/radio-group/RadioGroup.d.ts +27 -0
  534. package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +1 -0
  535. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +142 -0
  536. package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +1 -0
  537. package/lib/typescript/modules/radio-group/index.d.ts +10 -0
  538. package/lib/typescript/modules/radio-group/index.d.ts.map +1 -0
  539. package/lib/typescript/modules/reorder/Reorder.d.ts +43 -0
  540. package/lib/typescript/modules/reorder/Reorder.d.ts.map +1 -0
  541. package/lib/typescript/modules/reorder/Reorder.variants.d.ts +116 -0
  542. package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +1 -0
  543. package/lib/typescript/modules/reorder/index.d.ts +9 -0
  544. package/lib/typescript/modules/reorder/index.d.ts.map +1 -0
  545. package/lib/typescript/modules/select/Select.d.ts +31 -0
  546. package/lib/typescript/modules/select/Select.d.ts.map +1 -0
  547. package/lib/typescript/modules/select/Select.variants.d.ts +127 -0
  548. package/lib/typescript/modules/select/Select.variants.d.ts.map +1 -0
  549. package/lib/typescript/modules/select/index.d.ts +9 -0
  550. package/lib/typescript/modules/select/index.d.ts.map +1 -0
  551. package/lib/typescript/modules/skeleton/Skeleton.d.ts +27 -0
  552. package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +1 -0
  553. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +119 -0
  554. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +1 -0
  555. package/lib/typescript/modules/skeleton/index.d.ts +9 -0
  556. package/lib/typescript/modules/skeleton/index.d.ts.map +1 -0
  557. package/lib/typescript/modules/slider/Slider.d.ts +44 -0
  558. package/lib/typescript/modules/slider/Slider.d.ts.map +1 -0
  559. package/lib/typescript/modules/slider/Slider.variants.d.ts +211 -0
  560. package/lib/typescript/modules/slider/Slider.variants.d.ts.map +1 -0
  561. package/lib/typescript/modules/slider/index.d.ts +9 -0
  562. package/lib/typescript/modules/slider/index.d.ts.map +1 -0
  563. package/lib/typescript/modules/spinner/Spinner.d.ts +19 -0
  564. package/lib/typescript/modules/spinner/Spinner.d.ts.map +1 -0
  565. package/lib/typescript/modules/spinner/Spinner.variants.d.ts +113 -0
  566. package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +1 -0
  567. package/lib/typescript/modules/spinner/index.d.ts +10 -0
  568. package/lib/typescript/modules/spinner/index.d.ts.map +1 -0
  569. package/lib/typescript/modules/stepper/Stepper.d.ts +26 -0
  570. package/lib/typescript/modules/stepper/Stepper.d.ts.map +1 -0
  571. package/lib/typescript/modules/stepper/Stepper.variants.d.ts +107 -0
  572. package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +1 -0
  573. package/lib/typescript/modules/stepper/index.d.ts +8 -0
  574. package/lib/typescript/modules/stepper/index.d.ts.map +1 -0
  575. package/lib/typescript/modules/switch/Switch.d.ts +22 -0
  576. package/lib/typescript/modules/switch/Switch.d.ts.map +1 -0
  577. package/lib/typescript/modules/switch/Switch.variants.d.ts +60 -0
  578. package/lib/typescript/modules/switch/Switch.variants.d.ts.map +1 -0
  579. package/lib/typescript/modules/switch/index.d.ts +8 -0
  580. package/lib/typescript/modules/switch/index.d.ts.map +1 -0
  581. package/lib/typescript/modules/tabs/Tabs.d.ts +31 -0
  582. package/lib/typescript/modules/tabs/Tabs.d.ts.map +1 -0
  583. package/lib/typescript/modules/tabs/Tabs.variants.d.ts +114 -0
  584. package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +1 -0
  585. package/lib/typescript/modules/tabs/index.d.ts +10 -0
  586. package/lib/typescript/modules/tabs/index.d.ts.map +1 -0
  587. package/lib/typescript/modules/textarea/Textarea.d.ts +25 -0
  588. package/lib/typescript/modules/textarea/Textarea.d.ts.map +1 -0
  589. package/lib/typescript/modules/textarea/Textarea.variants.d.ts +99 -0
  590. package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +1 -0
  591. package/lib/typescript/modules/textarea/index.d.ts +9 -0
  592. package/lib/typescript/modules/textarea/index.d.ts.map +1 -0
  593. package/lib/typescript/modules/timeline/Timeline.d.ts +28 -0
  594. package/lib/typescript/modules/timeline/Timeline.d.ts.map +1 -0
  595. package/lib/typescript/modules/timeline/Timeline.variants.d.ts +103 -0
  596. package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +1 -0
  597. package/lib/typescript/modules/timeline/index.d.ts +9 -0
  598. package/lib/typescript/modules/timeline/index.d.ts.map +1 -0
  599. package/lib/typescript/modules/toast/Toast.d.ts +38 -0
  600. package/lib/typescript/modules/toast/Toast.d.ts.map +1 -0
  601. package/lib/typescript/modules/toast/Toast.variants.d.ts +80 -0
  602. package/lib/typescript/modules/toast/Toast.variants.d.ts.map +1 -0
  603. package/lib/typescript/modules/toast/index.d.ts +12 -0
  604. package/lib/typescript/modules/toast/index.d.ts.map +1 -0
  605. package/lib/typescript/modules/tooltip/Tooltip.d.ts +31 -0
  606. package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +1 -0
  607. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +52 -0
  608. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +1 -0
  609. package/lib/typescript/modules/tooltip/index.d.ts +9 -0
  610. package/lib/typescript/modules/tooltip/index.d.ts.map +1 -0
  611. package/lib/typescript/package.json +1 -0
  612. package/lib/typescript/theme/index.d.ts +11 -0
  613. package/lib/typescript/theme/index.d.ts.map +1 -0
  614. package/lib/typescript/theme/platform/colorScheme.native.d.ts +12 -0
  615. package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +1 -0
  616. package/lib/typescript/theme/platform/elevation.native.d.ts +35 -0
  617. package/lib/typescript/theme/platform/elevation.native.d.ts.map +1 -0
  618. package/lib/typescript/theme/platform/fonts.native.d.ts +41 -0
  619. package/lib/typescript/theme/platform/fonts.native.d.ts.map +1 -0
  620. package/lib/typescript/theme/platform/index.d.ts +15 -0
  621. package/lib/typescript/theme/platform/index.d.ts.map +1 -0
  622. package/lib/typescript/theme/platform/units.native.d.ts +13 -0
  623. package/lib/typescript/theme/platform/units.native.d.ts.map +1 -0
  624. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +81 -0
  625. package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +1 -0
  626. package/lib/typescript/theme/provider/colorModeStorage.d.ts +43 -0
  627. package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +1 -0
  628. package/lib/typescript/theme/provider/index.d.ts +8 -0
  629. package/lib/typescript/theme/provider/index.d.ts.map +1 -0
  630. package/lib/typescript/theme/provider/useTheme.d.ts +4 -0
  631. package/lib/typescript/theme/provider/useTheme.d.ts.map +1 -0
  632. package/lib/typescript/theme/provider/useThemeColors.d.ts +9 -0
  633. package/lib/typescript/theme/provider/useThemeColors.d.ts.map +1 -0
  634. package/lib/typescript/theme/provider/useThemeMode.d.ts +4 -0
  635. package/lib/typescript/theme/provider/useThemeMode.d.ts.map +1 -0
  636. package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts +3 -0
  637. package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +1 -0
  638. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -0
  639. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +1 -0
  640. package/lib/typescript/theme/tokens/brands/index.d.ts +30 -0
  641. package/lib/typescript/theme/tokens/brands/index.d.ts.map +1 -0
  642. package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts +3 -0
  643. package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +1 -0
  644. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -0
  645. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +1 -0
  646. package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts +3 -0
  647. package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +1 -0
  648. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -0
  649. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +1 -0
  650. package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts +3 -0
  651. package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +1 -0
  652. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -0
  653. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +1 -0
  654. package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts +3 -0
  655. package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +1 -0
  656. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -0
  657. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +1 -0
  658. package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts +3 -0
  659. package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +1 -0
  660. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -0
  661. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +1 -0
  662. package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts +3 -0
  663. package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +1 -0
  664. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -0
  665. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +1 -0
  666. package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts +3 -0
  667. package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +1 -0
  668. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -0
  669. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +1 -0
  670. package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts +4 -0
  671. package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -0
  672. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -0
  673. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +1 -0
  674. package/lib/typescript/theme/tokens/builders/accentText.d.ts +42 -0
  675. package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +1 -0
  676. package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts +21 -0
  677. package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +1 -0
  678. package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts +13 -0
  679. package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +1 -0
  680. package/lib/typescript/theme/tokens/builders/color.d.ts +59 -0
  681. package/lib/typescript/theme/tokens/builders/color.d.ts.map +1 -0
  682. package/lib/typescript/theme/tokens/index.d.ts +21 -0
  683. package/lib/typescript/theme/tokens/index.d.ts.map +1 -0
  684. package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts +15 -0
  685. package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +1 -0
  686. package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts +17 -0
  687. package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +1 -0
  688. package/lib/typescript/theme/tokens/primitives/elevation.d.ts +109 -0
  689. package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +1 -0
  690. package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts +21 -0
  691. package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +1 -0
  692. package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts +21 -0
  693. package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +1 -0
  694. package/lib/typescript/theme/tokens/primitives/index.d.ts +23 -0
  695. package/lib/typescript/theme/tokens/primitives/index.d.ts.map +1 -0
  696. package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts +17 -0
  697. package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +1 -0
  698. package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts +20 -0
  699. package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +1 -0
  700. package/lib/typescript/theme/tokens/primitives/radii.d.ts +20 -0
  701. package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +1 -0
  702. package/lib/typescript/theme/tokens/primitives/sizes.d.ts +33 -0
  703. package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +1 -0
  704. package/lib/typescript/theme/tokens/primitives/space.d.ts +29 -0
  705. package/lib/typescript/theme/tokens/primitives/space.d.ts.map +1 -0
  706. package/lib/typescript/theme/tokens/primitives/zIndices.d.ts +22 -0
  707. package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +1 -0
  708. package/lib/typescript/theme/tokens/roles/index.d.ts +68 -0
  709. package/lib/typescript/theme/tokens/roles/index.d.ts.map +1 -0
  710. package/lib/typescript/theme/tokens/types.d.ts +103 -0
  711. package/lib/typescript/theme/tokens/types.d.ts.map +1 -0
  712. package/package.json +259 -0
  713. package/registry.json +175 -0
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Textarea's style + behaviour resolution — pure functions the component (and its tests) depend on,
5
+ * plus the themed structural variant resolvers. Same split as `Button.variants.ts`:
6
+ * - STRUCTURE (padding, radius, border WIDTH, minHeight) lives in `createThemedVariants` below,
7
+ * registered once per theme identity.
8
+ * - COLOUR is `status`-driven and resolved by `resolveTextareaStatus` from the theme's ROLE colours
9
+ * — never a raw ramp, never a hardcoded hex — so `status` stays a closed union, not a `color`.
10
+ * - ACCESSIBILITY prop derivation is `resolveTextareaAccessibility`, kept pure so the
11
+ * label/hint/disabled contract is unit-testable without rendering React Native.
12
+ *
13
+ * Free of React and of any lucide import, so the WCAG + behaviour tests import it directly (mocking
14
+ * only `react-native`'s `StyleSheet`, as `core/style` does).
15
+ */
16
+
17
+ import { createThemedVariants } from "../../core/style/index.js";
18
+ /**
19
+ * A multiline field is already well past the 44dp floor at every size (unlike a compact control such
20
+ * as Button), so the touch target is met structurally — no `hitSlop` needed here. Kept local (not
21
+ * imported from a sibling module) per the library's module-isolation rule.
22
+ */
23
+ export const MIN_TOUCH_TARGET = 44;
24
+ export const TEXTAREA_SIZES = {
25
+ sm: {
26
+ minHeight: 72,
27
+ fontSize: 14
28
+ },
29
+ md: {
30
+ minHeight: 96,
31
+ fontSize: 16
32
+ },
33
+ lg: {
34
+ minHeight: 128,
35
+ fontSize: 18
36
+ }
37
+ };
38
+ /**
39
+ * Maps `status` onto the theme's role colours — the reason the prop is a closed union and not a
40
+ * `color?: string`. `error`'s border is `status.danger.solid`: measured ≥ 3:1 against the canvas on
41
+ * every brand (unlike `status.danger.border`, the pale ramp[200] chip outline, which does not clear
42
+ * 3:1 — see the WCAG test). `default`'s border is the same neutral `border.interactive` Button uses
43
+ * for its outline boundary, guaranteed ≥ 3:1 on every brand.
44
+ */
45
+ export function resolveTextareaStatus(colors, status) {
46
+ switch (status) {
47
+ case "error":
48
+ return {
49
+ border: colors.status.danger.solid,
50
+ message: colors.status.danger.text
51
+ };
52
+ case "default":
53
+ return {
54
+ border: colors.border.interactive,
55
+ message: colors.fg.muted
56
+ };
57
+ }
58
+ }
59
+ /**
60
+ * Derives the accessibility surface once, purely, so the label/hint/disabled contract is testable
61
+ * without a renderer. React Native has no `aria-describedby`; `accessibilityHint` is the platform
62
+ * equivalent, so the SAME string this returns is also what the component renders as the visible
63
+ * helper/error `Text` — one source of truth, never two strings that could drift apart.
64
+ */
65
+ export function resolveTextareaAccessibility(input) {
66
+ const isError = (input.status ?? "default") === "error";
67
+ const hint = isError && input.errorText ? input.errorText : input.helperText;
68
+ return {
69
+ accessibilityLabel: input.label,
70
+ accessibilityHint: hint,
71
+ accessibilityState: {
72
+ disabled: input.disabled === true
73
+ }
74
+ };
75
+ }
76
+
77
+ /**
78
+ * Structural styles only — layout, padding, radius, border WIDTH, per-size `minHeight`. No colours
79
+ * (those are status-driven and applied inline over this), so this compiles once per theme identity
80
+ * via the `WeakMap`-cached themed resolver and never rebuilds per render.
81
+ */
82
+ export const textareaFieldStructure = createThemedVariants(theme => ({
83
+ base: {
84
+ borderRadius: theme.radii.base,
85
+ borderWidth: theme.borderWidths.thin,
86
+ paddingHorizontal: theme.space[3],
87
+ paddingVertical: theme.space[2]
88
+ },
89
+ variants: {
90
+ size: {
91
+ sm: {
92
+ minHeight: TEXTAREA_SIZES.sm.minHeight
93
+ },
94
+ md: {
95
+ minHeight: TEXTAREA_SIZES.md.minHeight
96
+ },
97
+ lg: {
98
+ minHeight: TEXTAREA_SIZES.lg.minHeight
99
+ }
100
+ }
101
+ },
102
+ defaultVariants: {
103
+ size: "md"
104
+ }
105
+ }));
106
+
107
+ /** The gap between label / field / helper text. Themed (uses `space`), so it goes through the same resolver. */
108
+ export const textareaLayout = createThemedVariants(theme => ({
109
+ base: {
110
+ rowGap: theme.space[1]
111
+ }
112
+ }));
113
+ //# sourceMappingURL=Textarea.variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createThemedVariants","MIN_TOUCH_TARGET","TEXTAREA_SIZES","sm","minHeight","fontSize","md","lg","resolveTextareaStatus","colors","status","border","danger","solid","message","text","interactive","fg","muted","resolveTextareaAccessibility","input","isError","hint","errorText","helperText","accessibilityLabel","label","accessibilityHint","accessibilityState","disabled","textareaFieldStructure","theme","base","borderRadius","radii","borderWidth","borderWidths","thin","paddingHorizontal","space","paddingVertical","variants","size","defaultVariants","textareaLayout","rowGap"],"sourceRoot":"../../../../src","sources":["modules/textarea/Textarea.variants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,oBAAoB,QAAQ,2BAAkB;AAKvD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AASlC,OAAO,MAAMC,cAAc,GAAG;EAC5BC,EAAE,EAAE;IAAEC,SAAS,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EACnCC,EAAE,EAAE;IAAEF,SAAS,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EACnCE,EAAE,EAAE;IAAEH,SAAS,EAAE,GAAG;IAAEC,QAAQ,EAAE;EAAG;AACrC,CAA2D;AAS3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,qBAAqBA,CAACC,MAAkB,EAAEC,MAAsB,EAAwB;EACtG,QAAQA,MAAM;IACZ,KAAK,OAAO;MACV,OAAO;QAAEC,MAAM,EAAEF,MAAM,CAACC,MAAM,CAACE,MAAM,CAACC,KAAK;QAAEC,OAAO,EAAEL,MAAM,CAACC,MAAM,CAACE,MAAM,CAACG;MAAK,CAAC;IACnF,KAAK,SAAS;MACZ,OAAO;QAAEJ,MAAM,EAAEF,MAAM,CAACE,MAAM,CAACK,WAAW;QAAEF,OAAO,EAAEL,MAAM,CAACQ,EAAE,CAACC;MAAM,CAAC;EAC1E;AACF;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CAC1CC,KAAiC,EACL;EAC5B,MAAMC,OAAO,GAAG,CAACD,KAAK,CAACV,MAAM,IAAI,SAAS,MAAM,OAAO;EACvD,MAAMY,IAAI,GAAGD,OAAO,IAAID,KAAK,CAACG,SAAS,GAAGH,KAAK,CAACG,SAAS,GAAGH,KAAK,CAACI,UAAU;EAC5E,OAAO;IACLC,kBAAkB,EAAEL,KAAK,CAACM,KAAK;IAC/BC,iBAAiB,EAAEL,IAAI;IACvBM,kBAAkB,EAAE;MAAEC,QAAQ,EAAET,KAAK,CAACS,QAAQ,KAAK;IAAK;EAC1D,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG9B,oBAAoB,CAAE+B,KAAY,KAAM;EAC5EC,IAAI,EAAE;IACJC,YAAY,EAAEF,KAAK,CAACG,KAAK,CAACF,IAAI;IAC9BG,WAAW,EAAEJ,KAAK,CAACK,YAAY,CAACC,IAAI;IACpCC,iBAAiB,EAAEP,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC;IACjCC,eAAe,EAAET,KAAK,CAACQ,KAAK,CAAC,CAAC;EAChC,CAAC;EACDE,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJvC,EAAE,EAAE;QAAEC,SAAS,EAAEF,cAAc,CAACC,EAAE,CAACC;MAAU,CAAC;MAC9CE,EAAE,EAAE;QAAEF,SAAS,EAAEF,cAAc,CAACI,EAAE,CAACF;MAAU,CAAC;MAC9CG,EAAE,EAAE;QAAEH,SAAS,EAAEF,cAAc,CAACK,EAAE,CAACH;MAAU;IAC/C;EACF,CAAC;EACDuC,eAAe,EAAE;IAAED,IAAI,EAAE;EAAK;AAChC,CAAC,CAAC,CAAC;;AAEH;AACA,OAAO,MAAME,cAAc,GAAG5C,oBAAoB,CAAE+B,KAAY,KAAM;EACpEC,IAAI,EAAE;IAAEa,MAAM,EAAEd,KAAK,CAACQ,KAAK,CAAC,CAAC;EAAE;AACjC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Public surface of `pixelize-native-library/textarea`. Value exports and type exports are split for
5
+ * `verbatimModuleSyntax`. The resolvers (`resolveTextareaStatus`, `TEXTAREA_SIZES`, …) stay internal
6
+ * — a consumer configures a Textarea through its props, never by importing its internals.
7
+ */
8
+
9
+ export { Textarea } from "./Textarea.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Textarea"],"sourceRoot":"../../../../src","sources":["modules/textarea/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,eAAY","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ # timeline/ — a vertical list of dated/ordered events
2
+
3
+ `Timeline` renders a vertical stack of events, each a marker (a plain dot, or an icon in a filled
4
+ circle) connected to the next row's marker by a line. Purely informational — no press handling, no
5
+ per-item emphasis, no animation.
6
+
7
+ ## Files
8
+
9
+ | File | Role |
10
+ |------|------|
11
+ | `Timeline.tsx` | The component. Maps `items` to rows; wires the decorative connector's hidden-from-AT props. |
12
+ | `Timeline.variants.ts` | Pure resolver (`resolveTimelineColors`) + the structural variant resolvers (`timelineRowStructure`, `timelineConnectorStructure`, `timelineMarkerStructure`, `timelineConnectorLineStructure`, `timelineContentStructure`) and the `TIMELINE_MARKER` size constants. No React, no lucide. |
13
+ | `index.ts` | Public surface: `Timeline`, `TimelineProps`, `TimelineItem`, `IconName` (re-exported from `core/icon`). |
14
+ | `__tests__/Timeline.test.ts` | Pure: WCAG contrast (all brands × modes) for title/description/timestamp and the icon-on-marker pairing, plus the decorative-connector colour-mapping regression guard (mirrors `Divider.test.ts`). |
15
+ | `__tests__/Timeline.render.test.tsx` | Render: item order, description/timestamp omission, marker sizing per kind, connector line present on every row but the last, decorative hide vs exposed text, consumer `style` applies last. |
16
+
17
+ ## Props
18
+
19
+ | Prop | Type | Default | Notes |
20
+ |------|------|---------|-------|
21
+ | `items` | `{ title: string; description?: string; timestamp?: string; icon?: IconName }[]` | — | Rendered top to bottom, in array order. |
22
+ | `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
23
+ | `testID` | `string` | — | Forwarded to the outermost `View`; per-row/marker/connector/line nodes get `${testID}-item-<i>[-marker\|-connector\|-line]` when set. |
24
+
25
+ There is no `variant`/`size`/`tone` — every event reads identically (accent marker, decorative
26
+ connector, fixed `fg` text roles), so there is no appearance choice to close into a union (same
27
+ reasoning `Divider`'s minimal prop set follows when a component has nothing to vary).
28
+
29
+ ## Accessibility contract (WCAG)
30
+
31
+ - **4.1.2 / structure** — the marker + connecting line are purely decorative (removing them changes
32
+ spacing, not meaning): the connector `View` wrapping both carries `accessibilityElementsHidden` +
33
+ `importantForAccessibility="no-hide-descendants"` (the same pairing `Avatar` uses for its
34
+ decorative state), so neither the circle nor the line is announced. The title/description/
35
+ timestamp `Text` nodes are ordinary children of a plain, role-less `View` (the same "container has
36
+ nothing to announce; children carry their own semantics" reasoning `Card.tsx` documents), so they
37
+ stay in the accessibility tree, read in the order they appear.
38
+ - **1.4.3** — `title` (`fg.default`) and `description`/`timestamp` (`fg.muted`) are each measured
39
+ ≥ 4.5:1 against `bg.canvas` for all 8 brands × both modes (`Timeline.test.ts`), the same reference
40
+ surface `Input`/`Badge`/`Button` use for their own resting-state text. `timestamp` deliberately
41
+ does **not** use `fg.subtle` — that role is a flat, unmeasured `gray[500]` rung with no
42
+ `readableOn()` derivation and falls as low as 3.19:1 (emerald light) against `bg.canvas`, the same
43
+ RadioGroup/Tabs class of bug the build brief calls out; `fg.muted` is the derived role that clears
44
+ AA everywhere, and the timestamp's smaller `fontSizes.xs` still carries the de-emphasis. The icon
45
+ glyph (`accent.onSolid`) is measured ≥ 4.5:1 against its own circle fill (`accent.solid`) — never
46
+ assumed from Button's identical pairing, per the RadioGroup/Tabs lesson in the build brief.
47
+ - **1.4.11** — the connector line reads `border.default`, the same decorative rung `Divider`
48
+ documents: it draws no interactive boundary and is hidden from AT, so the 3:1 non-text floor does
49
+ not apply (an explicit regression guard asserts it is never the guaranteed-≥3:1
50
+ `border.interactive`/`border.focus` tokens instead).
51
+ - **Touch target (2.5.x)** — N/A. Timeline has no `onPress`; same reasoning `AVATAR_SIZES` documents
52
+ for its own non-interactive diameters.
53
+ - **2.3.3 (reduced motion)** — N/A. No animation.
54
+
55
+ ## Patterns copied from `button/` (the reference module), `avatar/`, and `divider/`
56
+
57
+ 1. **Structure vs colour split.** Theme-numeric structure (marker diameter via `radii.full`,
58
+ connector line width via `borderWidths.thick`, content spacing via `space[…]`) → themed
59
+ `createThemedVariants` resolvers, registered once per theme. The row/connector-column layout has
60
+ no theme dependency, so those two use the lighter `createVariants` instead (same choice
61
+ `Spinner`/`RadioGroup` make for their own theme-independent structure). Colour → resolved from
62
+ role tokens (`resolveTimelineColors`), applied inline.
63
+ 2. **Pure, testable resolver** (no React/lucide) so the WCAG + colour-mapping contract is
64
+ unit-tested against real palettes — never eyeballed.
65
+ 3. **`icon?: IconName`** — a NAME, never a `ReactNode`; always paired with the visible `title`, so
66
+ it carries no `accessibilityLabel` requirement of its own (unlike Button's icon-only shape).
67
+ 4. **`style: LayoutStyle`** last and once, no `{...rest}`.
68
+
69
+ ## Why the connector's bottom padding lives on `content`, not the shared row
70
+
71
+ A row's height is undetermined (it hugs its tallest child); the connector column has no explicit
72
+ height, so it stretches (cross-axis `align-items: stretch`, the default) to match whichever sibling
73
+ sets that height. Padding placed on the row wrapper itself sits *outside* what determined the row's
74
+ own auto height in the first place, so the connector's stretched height would stop at the content's
75
+ un-padded text height — leaving a visible gap in the line before the next row's marker. Padding
76
+ placed on the **content** column instead becomes part of the height that determines the stretch, so
77
+ the connector column (and the line's `flex: 1` inside it) stretches through the gap too, and the
78
+ line reaches the next marker with no visible break.
79
+
80
+ ## Known gaps
81
+
82
+ None — no icon, no new theme token, and no new core helper needed for this component. All markers
83
+ use the closed 22-name `IconName` set already in `core/icon`.
84
+
85
+ ## Resolved (were WCAG bugs caught by the measured test suite, now fixed)
86
+
87
+ - `timestamp` originally mapped to `fg.subtle`, which measured below 4.5:1 against `bg.canvas` on
88
+ 5 of 8 brands in light mode (lavender/meadow/radiant/emerald/rosewood; as low as 3.19:1 on
89
+ emerald) — caught by `Timeline.test.ts`'s real `it.each` measurement, never eyeballed. Remapped to
90
+ `fg.muted` (the `readableOn()`-derived role every other module already trusts on `bg.canvas`),
91
+ which clears AA on all 8 brands × both modes.
92
+
93
+ ## Performance
94
+
95
+ Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). The `items.map()` renders host `View`/`Text` plus this library's `Icon` with only primitive props — nothing to memoize.
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Timeline — a vertical list of dated/ordered events. Each row is a marker (a plain dot, or an
5
+ * icon in a filled circle) connected to the next row's marker by a line. Purely informational: no
6
+ * press handling, no per-item emphasis, no animation. The marker + connecting line are decorative
7
+ * (removing them changes spacing, not meaning — same reasoning `Divider` documents for its own
8
+ * hairline), so they are hidden from assistive tech; the title/description/timestamp stay in the
9
+ * normal accessibility tree, read in order, exactly like the plain `View` container `Card.tsx`
10
+ * documents ("nothing here for `accessibilityRole` to announce — children carry their own
11
+ * semantics").
12
+ */
13
+
14
+ import { memo } from "react";
15
+ import { Text, View } from "react-native";
16
+ import { Icon } from "../../core/icon/index.js";
17
+ import { useTheme } from "../../theme/index.js";
18
+ import { resolveTimelineColors, timelineConnectorLineStructure, timelineConnectorStructure, timelineContentStructure, timelineMarkerStructure, timelineRowStructure, TIMELINE_MARKER } from "./Timeline.variants.js";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ const ICON_STROKE = 2;
21
+ export const Timeline = /*#__PURE__*/memo(function Timeline({
22
+ items,
23
+ style,
24
+ testID
25
+ }) {
26
+ const theme = useTheme();
27
+ const colors = resolveTimelineColors(theme.colors);
28
+ return /*#__PURE__*/_jsx(View, {
29
+ testID: testID,
30
+ style: style,
31
+ children: items.map((item, index) => {
32
+ const isLast = index === items.length - 1;
33
+ const position = isLast ? "last" : "middle";
34
+ const rowTestID = testID === undefined ? undefined : `${testID}-item-${index}`;
35
+ return /*#__PURE__*/_jsxs(View, {
36
+ testID: rowTestID,
37
+ style: timelineRowStructure(),
38
+ children: [/*#__PURE__*/_jsxs(View, {
39
+ testID: rowTestID === undefined ? undefined : `${rowTestID}-connector`,
40
+ style: timelineConnectorStructure(),
41
+ accessibilityElementsHidden: true,
42
+ importantForAccessibility: "no-hide-descendants",
43
+ children: [/*#__PURE__*/_jsx(View, {
44
+ testID: rowTestID === undefined ? undefined : `${rowTestID}-marker`,
45
+ style: [timelineMarkerStructure(theme, {
46
+ kind: item.icon === undefined ? "dot" : "icon"
47
+ }), {
48
+ backgroundColor: colors.markerFill
49
+ }],
50
+ children: item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
51
+ name: item.icon,
52
+ size: TIMELINE_MARKER.glyph,
53
+ color: colors.markerIcon,
54
+ strokeWidth: ICON_STROKE
55
+ })
56
+ }), !isLast && /*#__PURE__*/_jsx(View, {
57
+ testID: rowTestID === undefined ? undefined : `${rowTestID}-line`,
58
+ style: [timelineConnectorLineStructure(theme), {
59
+ backgroundColor: colors.connector
60
+ }]
61
+ })]
62
+ }), /*#__PURE__*/_jsxs(View, {
63
+ style: timelineContentStructure(theme, {
64
+ position
65
+ }),
66
+ children: [/*#__PURE__*/_jsx(Text, {
67
+ style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
68
+ fontSize: theme.fontSizes.md,
69
+ color: colors.title
70
+ }],
71
+ children: item.title
72
+ }), item.description !== undefined && /*#__PURE__*/_jsx(Text, {
73
+ style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
74
+ fontSize: theme.fontSizes.sm,
75
+ color: colors.description,
76
+ marginTop: theme.space[1]
77
+ }],
78
+ children: item.description
79
+ }), item.timestamp !== undefined && /*#__PURE__*/_jsx(Text, {
80
+ style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
81
+ fontSize: theme.fontSizes.xs,
82
+ color: colors.timestamp,
83
+ marginTop: theme.space[1]
84
+ }],
85
+ children: item.timestamp
86
+ })]
87
+ })]
88
+ }, `${index}-${item.title}`);
89
+ })
90
+ });
91
+ });
92
+ //# sourceMappingURL=Timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Text","View","Icon","useTheme","resolveTimelineColors","timelineConnectorLineStructure","timelineConnectorStructure","timelineContentStructure","timelineMarkerStructure","timelineRowStructure","TIMELINE_MARKER","jsx","_jsx","jsxs","_jsxs","ICON_STROKE","Timeline","items","style","testID","theme","colors","children","map","item","index","isLast","length","position","rowTestID","undefined","accessibilityElementsHidden","importantForAccessibility","kind","icon","backgroundColor","markerFill","name","size","glyph","color","markerIcon","strokeWidth","connector","fontStyleForWeight","fontWeights","semibold","fontSize","fontSizes","md","title","description","regular","sm","marginTop","space","timestamp","xs"],"sourceRoot":"../../../../src","sources":["modules/timeline/Timeline.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAEzC,SAASC,IAAI,QAAQ,0BAAiB;AAGtC,SAASC,QAAQ,QAAQ,sBAAa;AAEtC,SACEC,qBAAqB,EACrBC,8BAA8B,EAC9BC,0BAA0B,EAC1BC,wBAAwB,EACxBC,uBAAuB,EACvBC,oBAAoB,EACpBC,eAAe,QACV,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAkB7B,MAAMC,WAAW,GAAG,CAAC;AAErB,OAAO,MAAMC,QAAQ,gBAAGjB,IAAI,CAAC,SAASiB,QAAQA,CAAC;EAAEC,KAAK;EAAEC,KAAK;EAAEC;AAAsB,CAAC,EAAE;EACtF,MAAMC,KAAK,GAAGjB,QAAQ,CAAC,CAAC;EACxB,MAAMkB,MAAM,GAAGjB,qBAAqB,CAACgB,KAAK,CAACC,MAAM,CAAC;EAElD,oBACET,IAAA,CAACX,IAAI;IAACkB,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAEA,KAAM;IAAAI,QAAA,EAChCL,KAAK,CAACM,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MAC1B,MAAMC,MAAM,GAAGD,KAAK,KAAKR,KAAK,CAACU,MAAM,GAAG,CAAC;MACzC,MAAMC,QAA2B,GAAGF,MAAM,GAAG,MAAM,GAAG,QAAQ;MAC9D,MAAMG,SAAS,GAAGV,MAAM,KAAKW,SAAS,GAAGA,SAAS,GAAG,GAAGX,MAAM,SAASM,KAAK,EAAE;MAE9E,oBACEX,KAAA,CAACb,IAAI;QAAgCkB,MAAM,EAAEU,SAAU;QAACX,KAAK,EAAET,oBAAoB,CAAC,CAAE;QAAAa,QAAA,gBACpFR,KAAA,CAACb,IAAI;UACHkB,MAAM,EAAEU,SAAS,KAAKC,SAAS,GAAGA,SAAS,GAAG,GAAGD,SAAS,YAAa;UACvEX,KAAK,EAAEZ,0BAA0B,CAAC,CAAE;UACpCyB,2BAA2B;UAC3BC,yBAAyB,EAAC,qBAAqB;UAAAV,QAAA,gBAE/CV,IAAA,CAACX,IAAI;YACHkB,MAAM,EAAEU,SAAS,KAAKC,SAAS,GAAGA,SAAS,GAAG,GAAGD,SAAS,SAAU;YACpEX,KAAK,EAAE,CACLV,uBAAuB,CAACY,KAAK,EAAE;cAAEa,IAAI,EAAET,IAAI,CAACU,IAAI,KAAKJ,SAAS,GAAG,KAAK,GAAG;YAAO,CAAC,CAAC,EAClF;cAAEK,eAAe,EAAEd,MAAM,CAACe;YAAW,CAAC,CACtC;YAAAd,QAAA,EAEDE,IAAI,CAACU,IAAI,KAAKJ,SAAS,iBACtBlB,IAAA,CAACV,IAAI;cACHmC,IAAI,EAAEb,IAAI,CAACU,IAAK;cAChBI,IAAI,EAAE5B,eAAe,CAAC6B,KAAM;cAC5BC,KAAK,EAAEnB,MAAM,CAACoB,UAAW;cACzBC,WAAW,EAAE3B;YAAY,CAC1B;UACF,CACG,CAAC,EACN,CAACW,MAAM,iBACNd,IAAA,CAACX,IAAI;YACHkB,MAAM,EAAEU,SAAS,KAAKC,SAAS,GAAGA,SAAS,GAAG,GAAGD,SAAS,OAAQ;YAClEX,KAAK,EAAE,CAACb,8BAA8B,CAACe,KAAK,CAAC,EAAE;cAAEe,eAAe,EAAEd,MAAM,CAACsB;YAAU,CAAC;UAAE,CACvF,CACF;QAAA,CACG,CAAC,eAEP7B,KAAA,CAACb,IAAI;UAACiB,KAAK,EAAEX,wBAAwB,CAACa,KAAK,EAAE;YAAEQ;UAAS,CAAC,CAAE;UAAAN,QAAA,gBACzDV,IAAA,CAACZ,IAAI;YACHkB,KAAK,EAAE,CACLE,KAAK,CAACwB,kBAAkB,CAACxB,KAAK,CAACyB,WAAW,CAACC,QAAQ,CAAC,EACpD;cAAEC,QAAQ,EAAE3B,KAAK,CAAC4B,SAAS,CAACC,EAAE;cAAET,KAAK,EAAEnB,MAAM,CAAC6B;YAAM,CAAC,CACrD;YAAA5B,QAAA,EAEDE,IAAI,CAAC0B;UAAK,CACP,CAAC,EACN1B,IAAI,CAAC2B,WAAW,KAAKrB,SAAS,iBAC7BlB,IAAA,CAACZ,IAAI;YACHkB,KAAK,EAAE,CACLE,KAAK,CAACwB,kBAAkB,CAACxB,KAAK,CAACyB,WAAW,CAACO,OAAO,CAAC,EACnD;cACEL,QAAQ,EAAE3B,KAAK,CAAC4B,SAAS,CAACK,EAAE;cAC5Bb,KAAK,EAAEnB,MAAM,CAAC8B,WAAW;cACzBG,SAAS,EAAElC,KAAK,CAACmC,KAAK,CAAC,CAAC;YAC1B,CAAC,CACD;YAAAjC,QAAA,EAEDE,IAAI,CAAC2B;UAAW,CACb,CACP,EACA3B,IAAI,CAACgC,SAAS,KAAK1B,SAAS,iBAC3BlB,IAAA,CAACZ,IAAI;YACHkB,KAAK,EAAE,CACLE,KAAK,CAACwB,kBAAkB,CAACxB,KAAK,CAACyB,WAAW,CAACO,OAAO,CAAC,EACnD;cACEL,QAAQ,EAAE3B,KAAK,CAAC4B,SAAS,CAACS,EAAE;cAC5BjB,KAAK,EAAEnB,MAAM,CAACmC,SAAS;cACvBF,SAAS,EAAElC,KAAK,CAACmC,KAAK,CAAC,CAAC;YAC1B,CAAC,CACD;YAAAjC,QAAA,EAEDE,IAAI,CAACgC;UAAS,CACX,CACP;QAAA,CACG,CAAC;MAAA,GApEE,GAAG/B,KAAK,IAAID,IAAI,CAAC0B,KAAK,EAqE3B,CAAC;IAEX,CAAC;EAAC,CACE,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Timeline's style + colour resolution — pure, React/lucide-free, same split as `Button`:
5
+ * - STRUCTURE (row layout, marker diameter, connector width, content spacing) lives in the
6
+ * `createThemedVariants` resolvers below, registered once per theme identity — never rebuilt
7
+ * per render.
8
+ * - COLOUR is resolved from the theme's ROLE colours (`resolveTimelineColors`), never a raw hex:
9
+ * every marker is the accent role and every text tier a fixed `fg` role. There is no
10
+ * `tone`/`color` prop to widen — a Timeline event has no per-item emphasis to express, so (like
11
+ * `resolveAvatarColors` / `resolveTabsColors`) this is pure indirection, not a union to resolve.
12
+ *
13
+ * Free of React and of any lucide import, so the WCAG + colour-mapping tests import it directly
14
+ * (mocking only `react-native`'s `StyleSheet`, as `core/style` and every sibling module's tests do).
15
+ */
16
+
17
+ import { createThemedVariants, createVariants } from "../../core/style/index.js";
18
+ /**
19
+ * Timeline-specific dimensions. Kept a plain constant — no theme dependency — same as
20
+ * `BUTTON_SIZES` / `AVATAR_SIZES`, so the render layer and tests share one source of truth.
21
+ *
22
+ * Not a touch target: Timeline has no `onPress` in this contract (a purely informational list), so
23
+ * the 44dp floor interactive modules hold themselves to (see `Button`'s `MIN_TOUCH_TARGET`) does
24
+ * not apply here — same reasoning `AVATAR_SIZES` documents for its own non-interactive diameters.
25
+ */
26
+ export const TIMELINE_MARKER = {
27
+ dot: 8,
28
+ icon: 28,
29
+ glyph: 16
30
+ };
31
+ /**
32
+ * Maps Timeline's fixed visual roles onto ROLE colours — never a hardcoded hex. There is no
33
+ * `tone`/`color` prop to widen: every event reads identically, so every colour Timeline can show is
34
+ * one of these role lookups, guaranteed legible in both modes.
35
+ */
36
+ export function resolveTimelineColors(colors) {
37
+ return {
38
+ markerFill: colors.accent.solid,
39
+ markerIcon: colors.accent.onSolid,
40
+ // Decorative connector graphics carry no information of their own — removing the line changes
41
+ // spacing, not meaning — the same WCAG 1.4.11 reasoning `Divider.variants.ts` documents for
42
+ // `border.default`, deliberately NOT the guaranteed-≥3:1 `border.interactive`/`border.focus`
43
+ // those tokens exist for real UI/focus boundaries.
44
+ connector: colors.border.default,
45
+ title: colors.fg.default,
46
+ description: colors.fg.muted,
47
+ // NOT `fg.subtle`: measured, that role is a flat `gray[500]` rung with no `readableOn()`
48
+ // derivation behind it, and it falls as low as 3.19:1 (emerald light) against `bg.canvas` —
49
+ // the exact RadioGroup/Tabs class of bug the build brief calls out. `fg.muted` is the
50
+ // `readableOn()`-derived role and clears 4.5:1 on all 8 brands × both modes; the timestamp's
51
+ // smaller `fontSizes.xs` still carries the visual de-emphasis `subtle` was reaching for.
52
+ timestamp: colors.fg.muted
53
+ };
54
+ }
55
+
56
+ /**
57
+ * The whole row: the connector column beside the content column. No theme dependency (a plain
58
+ * constant layout, like `spinnerBox`/`radioDotStructure`), so this uses `createVariants`, not the
59
+ * themed resolver — no theme identity to cache against.
60
+ */
61
+ export const timelineRowStructure = createVariants({
62
+ base: {
63
+ flexDirection: "row"
64
+ }
65
+ });
66
+
67
+ /**
68
+ * The connector column — fixed at the icon circle's width so a dot row and an icon row centre on
69
+ * the same vertical axis regardless of which marker kind that particular item renders. No explicit
70
+ * height: it stretches (the row's default cross-axis behaviour for a `flexDirection: "row"`
71
+ * container) to match the content column's height, which is what lets the line below the marker
72
+ * reach all the way down to the next row's marker — see `timelineContentStructure` below. No theme
73
+ * dependency, so `createVariants` again.
74
+ */
75
+ export const timelineConnectorStructure = createVariants({
76
+ base: {
77
+ width: TIMELINE_MARKER.icon,
78
+ alignItems: "center"
79
+ }
80
+ });
81
+
82
+ /** The marker itself — a small dot, or a larger circle sized to hold an icon glyph. */
83
+ export const timelineMarkerStructure = createThemedVariants(theme => ({
84
+ base: {
85
+ alignItems: "center",
86
+ justifyContent: "center",
87
+ borderRadius: theme.radii.full
88
+ },
89
+ variants: {
90
+ kind: {
91
+ dot: {
92
+ width: TIMELINE_MARKER.dot,
93
+ height: TIMELINE_MARKER.dot
94
+ },
95
+ icon: {
96
+ width: TIMELINE_MARKER.icon,
97
+ height: TIMELINE_MARKER.icon
98
+ }
99
+ }
100
+ },
101
+ defaultVariants: {
102
+ kind: "dot"
103
+ }
104
+ }));
105
+
106
+ /**
107
+ * The line connecting one marker to the next. `flex: 1` fills whatever height the connector
108
+ * column above stretches to; a `middle` row's CONTENT carries the extra bottom padding that makes
109
+ * that stretched height reach past the text into the gap before the next row (see
110
+ * `timelineContentStructure`), so the line never visibly stops short of the next marker.
111
+ */
112
+ export const timelineConnectorLineStructure = createThemedVariants(theme => ({
113
+ base: {
114
+ flex: 1,
115
+ width: theme.borderWidths.thick
116
+ }
117
+ }));
118
+
119
+ /**
120
+ * The text column beside the connector. A `middle` row (one with a following item) reserves the
121
+ * gap to that next row HERE, on the content sibling, not on the shared row wrapper — a row with an
122
+ * undetermined height stretches its children to its tallest child's own intrinsic height, so
123
+ * padding placed on the row itself would sit outside what the connector column stretches to match,
124
+ * leaving a visible break in the line. Placed on content instead, the padding becomes part of the
125
+ * height the connector column stretches to, so the line spans through it.
126
+ */
127
+ export const timelineContentStructure = createThemedVariants(theme => ({
128
+ base: {
129
+ flex: 1,
130
+ marginLeft: theme.space[3]
131
+ },
132
+ variants: {
133
+ position: {
134
+ middle: {
135
+ paddingBottom: theme.space[6]
136
+ },
137
+ last: {
138
+ paddingBottom: 0
139
+ }
140
+ }
141
+ },
142
+ defaultVariants: {
143
+ position: "middle"
144
+ }
145
+ }));
146
+ //# sourceMappingURL=Timeline.variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createThemedVariants","createVariants","TIMELINE_MARKER","dot","icon","glyph","resolveTimelineColors","colors","markerFill","accent","solid","markerIcon","onSolid","connector","border","default","title","fg","description","muted","timestamp","timelineRowStructure","base","flexDirection","timelineConnectorStructure","width","alignItems","timelineMarkerStructure","theme","justifyContent","borderRadius","radii","full","variants","kind","height","defaultVariants","timelineConnectorLineStructure","flex","borderWidths","thick","timelineContentStructure","marginLeft","space","position","middle","paddingBottom","last"],"sourceRoot":"../../../../src","sources":["modules/timeline/Timeline.variants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,oBAAoB,EAAEC,cAAc,QAAQ,2BAAkB;AAYvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAmC,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAclF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,MAAkB,EAAkB;EACxE,OAAO;IACLC,UAAU,EAAED,MAAM,CAACE,MAAM,CAACC,KAAK;IAC/BC,UAAU,EAAEJ,MAAM,CAACE,MAAM,CAACG,OAAO;IACjC;IACA;IACA;IACA;IACAC,SAAS,EAAEN,MAAM,CAACO,MAAM,CAACC,OAAO;IAChCC,KAAK,EAAET,MAAM,CAACU,EAAE,CAACF,OAAO;IACxBG,WAAW,EAAEX,MAAM,CAACU,EAAE,CAACE,KAAK;IAC5B;IACA;IACA;IACA;IACA;IACAC,SAAS,EAAEb,MAAM,CAACU,EAAE,CAACE;EACvB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,oBAAoB,GAAGpB,cAAc,CAAC;EACjDqB,IAAI,EAAE;IACJC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGvB,cAAc,CAAC;EACvDqB,IAAI,EAAE;IACJG,KAAK,EAAEvB,eAAe,CAACE,IAAI;IAC3BsB,UAAU,EAAE;EACd;AACF,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,uBAAuB,GAAG3B,oBAAoB,CAAE4B,KAAY,KAAM;EAC7EN,IAAI,EAAE;IACJI,UAAU,EAAE,QAAQ;IACpBG,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAEF,KAAK,CAACG,KAAK,CAACC;EAC5B,CAAC;EACDC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJ/B,GAAG,EAAE;QAAEsB,KAAK,EAAEvB,eAAe,CAACC,GAAG;QAAEgC,MAAM,EAAEjC,eAAe,CAACC;MAAI,CAAC;MAChEC,IAAI,EAAE;QAAEqB,KAAK,EAAEvB,eAAe,CAACE,IAAI;QAAE+B,MAAM,EAAEjC,eAAe,CAACE;MAAK;IACpE;EACF,CAAC;EACDgC,eAAe,EAAE;IAAEF,IAAI,EAAE;EAAM;AACjC,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,8BAA8B,GAAGrC,oBAAoB,CAAE4B,KAAY,KAAM;EACpFN,IAAI,EAAE;IACJgB,IAAI,EAAE,CAAC;IACPb,KAAK,EAAEG,KAAK,CAACW,YAAY,CAACC;EAC5B;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGzC,oBAAoB,CAAE4B,KAAY,KAAM;EAC9EN,IAAI,EAAE;IACJgB,IAAI,EAAE,CAAC;IACPI,UAAU,EAAEd,KAAK,CAACe,KAAK,CAAC,CAAC;EAC3B,CAAC;EACDV,QAAQ,EAAE;IACRW,QAAQ,EAAE;MACRC,MAAM,EAAE;QAAEC,aAAa,EAAElB,KAAK,CAACe,KAAK,CAAC,CAAC;MAAE,CAAC;MACzCI,IAAI,EAAE;QAAED,aAAa,EAAE;MAAE;IAC3B;EACF,CAAC;EACDV,eAAe,EAAE;IAAEQ,QAAQ,EAAE;EAAS;AACxC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Public surface of `pixelize-native-library/timeline`. Value exports and type exports are split for
5
+ * `verbatimModuleSyntax`. The internal resolvers (`resolveTimelineColors`, `TIMELINE_MARKER`, …)
6
+ * stay internal — a consumer configures a Timeline through its `items`, never by importing internals.
7
+ */
8
+
9
+ export { Timeline } from "./Timeline.js";
10
+
11
+ // Re-exported so a caller can type an item's `icon` field without a separate import from `core/icon`.
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Timeline"],"sourceRoot":"../../../../src","sources":["modules/timeline/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,eAAY;;AAGrC","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ # toast/ — a transient status message, floating outside RN's Modal system
2
+
3
+ `Toast` is a `ToastProvider` + `useToast()` hook, not a placeable component — a screen never renders
4
+ `<Toast>` directly, it wraps its root in `<ToastProvider>` and calls `useToast().show(...)` from
5
+ anywhere beneath it.
6
+
7
+ ## Files
8
+
9
+ | File | Role |
10
+ |------|------|
11
+ | `Toast.tsx` | `ToastProvider`, the internal `ToastCard`, and `useToast()`. State machine, timers, animation, a11y wiring. |
12
+ | `Toast.variants.ts` | Pure resolver (`resolveToastTone`) + the themed structural resolvers (`toastCardStructure`, `toastAccentBarStructure`, `toastOverlayStructure`, including the overlay's `zIndex`). No React, no lucide. |
13
+ | `index.ts` | Public surface: `ToastProvider`, `useToast`, `ToastOptions`, `ToastContextValue`, `ToastProviderProps`, the closed unions. No `IconName` re-export — the dismiss glyph is a fixed internal choice. |
14
+ | `__tests__/Toast.test.ts` | Pure: WCAG contrast (all brands × modes, including the close icon vs the card background) + touch target + the tone→role contract + every resolved colour is a solid 6-digit hex (never an alpha token). |
15
+ | `__tests__/Toast.render.test.tsx` | Render: show/auto-dismiss/dismiss, replace-while-visible, the cross-platform announce call, missing-provider error, the REAL rendered card background (flattened style, not just the token). |
16
+
17
+ ## Why not `<Modal>`
18
+
19
+ A confirmed iOS bug drops or breaks a second `<Modal>` presented while a sibling Modal — this
20
+ library's own, or an OS share sheet — is still mounted or mid-dismiss-animation. A toast shown while
21
+ one of those is open would silently fail to appear. `ToastProvider` instead renders its own plain
22
+ `View` overlay, `position: "absolute"`, at the provider's own root — entirely outside RN's Modal
23
+ system, so it floats over anything without competing for the same presentation stack.
24
+
25
+ ## API
26
+
27
+ | Member | Shape | Notes |
28
+ |--------|-------|-------|
29
+ | `ToastProvider` | `{ children, position?: "top" \| "bottom" }` | Mount once near the app root. `position` defaults to `top`; it is provider-level (one overlay), not per-toast. No `style` prop — same as `PixelizeProvider`, the only other provider in this catalogue: it wraps the whole app rather than being laid out by one. |
30
+ | `useToast()` | `{ show(options), dismiss() }` | Throws outside a `ToastProvider`, same contract as `useTheme()`. |
31
+ | `ToastOptions` | `{ message: string, tone?: ToastTone, duration?: number }` | `tone` defaults to `neutral`; `duration` defaults to `DEFAULT_TOAST_DURATION` (~3000ms). |
32
+ | `ToastTone` | `success \| warning \| danger \| info \| neutral` | Closed union — colour from `colors.status.<role>`, never a `color` prop. |
33
+
34
+ Single-slot by design: calling `show()` while a toast is visible replaces its message/tone, restarts
35
+ the auto-dismiss timer, and restarts the entrance animation (a fresh message reads as a new event).
36
+ There is no stacking queue in v1 — see Known gaps. `dismiss()` always targets that one slot and is a
37
+ safe no-op when nothing is showing.
38
+
39
+ ## Accessibility contract (WCAG)
40
+
41
+ - **4.1.3 (status messages)** — `show()` calls `AccessibilityInfo.announceForAccessibility(message)`,
42
+ the real cross-platform imperative API (VoiceOver + TalkBack). The message `Text` deliberately does
43
+ NOT also carry `accessibilityLiveRegion`: that RN prop is Android-only, and since `show()` always
44
+ fires the imperative announce too, keeping both would double-announce on Android on every toast —
45
+ see the comment at the `show()` call site and on the `Text` in `Toast.tsx`. The card itself is
46
+ `accessibilityRole="alert"`. Every tone announces the same way (no politeness distinction).
47
+ - **2.5.x target size** — the close button's 24dp box reaches ≥ 44dp via `hitSlop`
48
+ (`CLOSE_BUTTON_SIZE + 2 · CLOSE_HIT_SLOP ≥ 44`), same `slopFor` idiom as `Button`/`Input`/`Checkbox`.
49
+ - **1.4.3** — the message text is `status.<role>.text` (or `fg.default` for `neutral`) on `bg.raised`,
50
+ measured ≥ 4.5:1 for every tone × brand × mode (`Toast.test.ts`). A contrast ratio only means
51
+ anything against an OPAQUE backdrop, so `Toast.test.ts` also asserts every resolved colour is a
52
+ solid 6-digit hex (never an alpha token), and `Toast.render.test.tsx` flattens the card's real
53
+ rendered style array to confirm `backgroundColor` survives as that same opaque hex — proving
54
+ `theme.elevation.lg` (spread after `{ backgroundColor }` in `Toast.tsx`, shadow-only, never a fill)
55
+ never clobbers or substitutes for it.
56
+ - **1.4.11** — the left accent bar is the SAME role as the text (see "Why the bar reuses `text`"
57
+ below), measured ≥ 3:1 against the card's own background for every tone × brand × mode. The close
58
+ icon (`fg.muted`, constant across tones — not resolved via `resolveToastTone`) is measured the same
59
+ way against every tone's card background in the same file.
60
+ - **2.3.3** — the slide/fade entrance and exit are suppressed (`duration: 0`) when
61
+ `useReducedMotion()` is true; the toast still appears/disappears, just without the animated motion.
62
+ - The close button is icon-only: `accessibilityRole="button"` with a fixed, always-present
63
+ `accessibilityLabel="Dismiss notification"` (not a consumer-configurable prop, so there is no
64
+ unlabelled-icon-button state to make unrepresentable here — unlike `Button`'s icon-only shape).
65
+
66
+ ## Why the accent bar reuses `status.<role>.text`, not `.solid`
67
+
68
+ A first design used `status.<role>.solid` (the vivid fill) for the bar against the card's `subtle`
69
+ (pale) background — the obvious "coloured bar" choice. Measuring it against every brand × mode
70
+ (`roleColors.test.ts`'s own promises only cover `solid` vs `onSolid`/`subtle`) showed
71
+ `success`/`warning`/`info` in **light mode** fall to ~1.9–2.6:1 against `subtle`/`surface`/`raised` —
72
+ well under the 3:1 a rendered boundary needs; only `danger` happened to clear it. `status.<role>.text`
73
+ is the rung `readableOn` already resolves to ≥ 4.5:1 nearby, so it comfortably clears the bar's
74
+ looser 3:1 floor too — one already-verified role covers both the bar and the message, instead of
75
+ shipping a second, unverified pairing. `Toast.test.ts` locks this measurement so a future token
76
+ change can't silently reintroduce the gap.
77
+
78
+ ## Patterns copied from `Button`/`Card`
79
+
80
+ 1. **Structure vs colour split.** Structural values (padding, radius, gap, the bar's width, the
81
+ overlay's edge inset AND `zIndex`) → `createThemedVariants`, one resolver per concept, registered
82
+ once per theme — never a fresh inline style object per render. Colour → resolved from role tokens
83
+ per `tone`, applied inline.
84
+ 2. **Pure, testable resolvers** in `Toast.variants.ts` (no React/lucide) so the WCAG + tone→colour
85
+ contracts are unit-tested by measuring real palettes — never eyeballed.
86
+ 3. **Elevation applied directly** from `theme.elevation.lg` on the card, same idiom as `Card`'s
87
+ `elevated` variant (`theme.elevation.md`) — not re-derived as a shadow style.
88
+ 4. **Closed unions only** (`tone`, `position`), no `{...rest}`, no consumer style prop on the
89
+ provider (see API table).
90
+
91
+ ## Known gaps
92
+
93
+ - **No stacking queue.** `show()` while visible replaces the current toast; there is no multi-toast
94
+ queue in v1. Flagging for a future version if a consumer needs concurrent toasts.
95
+ - **No safe-area inset awareness.** The overlay's edge inset is a fixed `theme.space[4]`; it does not
96
+ read device safe-area insets (notch/home-indicator). `react-native-safe-area-context` is already an
97
+ optional peer dependency for this catalogue but no module wires it yet — a consumer on a notched
98
+ device may want to add its own top padding via screen-level layout until this is revisited.
99
+ - Render tests need `@testing-library/react-native` + a react-native jest preset (same
100
+ dependency-pending note as `Button.render.test.tsx`).
101
+
102
+ ## Performance
103
+
104
+ `ToastProvider` (exported) and `ToastCard` (internal, non-exported) are both wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`) — mirrors the repo convention (e.g. `AccordionRow`) of memoizing library-internal child components too. No new `useCallback`/`useMemo` needed: the props handed to `ToastCard` (`toast`, `theme`, `position`, `progress`, `onDismiss={hide}`) were already stable — the file already used `useCallback`/`useMemo` throughout.