pixelize-native-library 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/lib/module/core/MODULE.md +2 -1
  2. package/lib/module/core/gradient/AccentGradientFill.js +80 -0
  3. package/lib/module/core/gradient/darkenHex.js +13 -0
  4. package/lib/module/core/gradient/gradientStops.js +27 -0
  5. package/lib/module/core/gradient/index.js +7 -0
  6. package/lib/module/core/gradient/withAlpha.js +19 -0
  7. package/lib/module/core/haptics/MODULE.md +4 -0
  8. package/lib/module/core/haptics/context.js +7 -0
  9. package/lib/module/core/haptics/haptics.js +17 -0
  10. package/lib/module/core/haptics/index.js +6 -0
  11. package/lib/module/core/haptics/useHaptics.js +73 -0
  12. package/lib/module/core/icon/MODULE.md +16 -9
  13. package/lib/module/core/icon/icons/trending-up.js +10 -0
  14. package/lib/module/core/icon/resolve.js +2 -0
  15. package/lib/module/core/media/expoImage.js +6 -0
  16. package/lib/module/core/motion/MODULE.md +12 -12
  17. package/lib/module/core/motion/config.js +4 -1
  18. package/lib/module/core/motion/index.js +2 -1
  19. package/lib/module/core/motion/usePressState.js +145 -0
  20. package/lib/module/core/style/index.js +1 -0
  21. package/lib/module/core/style/radius.js +4 -0
  22. package/lib/module/index.js +1 -0
  23. package/lib/module/modules/accordion/Accordion.js +69 -49
  24. package/lib/module/modules/accordion/Accordion.variants.js +4 -3
  25. package/lib/module/modules/accordion/MODULE.md +2 -1
  26. package/lib/module/modules/alert-dialog/AlertDialog.js +6 -5
  27. package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
  28. package/lib/module/modules/app-bar/AppBar.js +6 -4
  29. package/lib/module/modules/app-bar/AppBar.variants.js +1 -2
  30. package/lib/module/modules/avatar/Avatar.js +7 -1
  31. package/lib/module/modules/avatar/Avatar.variants.js +1 -1
  32. package/lib/module/modules/avatar/MODULE.md +2 -2
  33. package/lib/module/modules/avatar-group/AvatarGroup.js +10 -6
  34. package/lib/module/modules/avatar-group/AvatarGroup.variants.js +23 -0
  35. package/lib/module/modules/avatar-group/MODULE.md +16 -0
  36. package/lib/module/modules/badge/Badge.js +11 -5
  37. package/lib/module/modules/badge/Badge.variants.js +2 -1
  38. package/lib/module/modules/badge/MODULE.md +5 -5
  39. package/lib/module/modules/banner/Banner.js +106 -60
  40. package/lib/module/modules/banner/Banner.variants.js +2 -2
  41. package/lib/module/modules/banner/MODULE.md +7 -2
  42. package/lib/module/modules/bottom-nav/BottomNav.js +6 -3
  43. package/lib/module/modules/bottom-nav/BottomNav.variants.js +9 -10
  44. package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +28 -4
  45. package/lib/module/modules/bottom-nav/BottomNavTab.js +28 -4
  46. package/lib/module/modules/bottom-nav/MODULE.md +10 -1
  47. package/lib/module/modules/bottom-sheet/BottomSheet.js +20 -7
  48. package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +15 -5
  49. package/lib/module/modules/bottom-sheet/MODULE.md +13 -2
  50. package/lib/module/modules/button/Button.js +87 -101
  51. package/lib/module/modules/button/Button.variants.js +8 -7
  52. package/lib/module/modules/button/MODULE.md +6 -0
  53. package/lib/module/modules/button-group/ButtonGroup.js +36 -37
  54. package/lib/module/modules/button-group/ButtonGroup.variants.js +21 -46
  55. package/lib/module/modules/button-group/MODULE.md +25 -30
  56. package/lib/module/modules/card/Card.js +117 -19
  57. package/lib/module/modules/card/Card.variants.js +1 -0
  58. package/lib/module/modules/card/MODULE.md +13 -10
  59. package/lib/module/modules/charts/BarChart.js +29 -14
  60. package/lib/module/modules/charts/BarList.js +31 -18
  61. package/lib/module/modules/charts/Charts.variants.js +66 -2
  62. package/lib/module/modules/charts/DonutChart.js +9 -4
  63. package/lib/module/modules/charts/LineChart.js +5 -3
  64. package/lib/module/modules/charts/MODULE.md +24 -11
  65. package/lib/module/modules/charts/PieChart.js +13 -4
  66. package/lib/module/modules/charts/Sparkline.js +4 -2
  67. package/lib/module/modules/checkbox/Checkbox.js +10 -2
  68. package/lib/module/modules/checkbox/MODULE.md +5 -0
  69. package/lib/module/modules/chip/Chip.js +83 -38
  70. package/lib/module/modules/chip/Chip.variants.js +15 -3
  71. package/lib/module/modules/chip/MODULE.md +6 -4
  72. package/lib/module/modules/combobox/Combobox.js +93 -57
  73. package/lib/module/modules/combobox/Combobox.variants.js +22 -7
  74. package/lib/module/modules/combobox/MODULE.md +14 -4
  75. package/lib/module/modules/composer/Composer.js +9 -2
  76. package/lib/module/modules/composer/Composer.variants.js +2 -0
  77. package/lib/module/modules/composer/MODULE.md +5 -0
  78. package/lib/module/modules/copy-button/CopyButton.js +22 -4
  79. package/lib/module/modules/copy-button/CopyButton.variants.js +4 -2
  80. package/lib/module/modules/copy-button/MODULE.md +5 -0
  81. package/lib/module/modules/data-table/DataTable.js +28 -9
  82. package/lib/module/modules/data-table/DataTable.variants.js +3 -2
  83. package/lib/module/modules/data-table/MODULE.md +1 -0
  84. package/lib/module/modules/date-picker/Calendar.js +75 -29
  85. package/lib/module/modules/date-picker/DatePicker.variants.js +24 -9
  86. package/lib/module/modules/date-picker/MODULE.md +25 -4
  87. package/lib/module/modules/date-picker/PickerField.js +13 -4
  88. package/lib/module/modules/date-picker/PickerShell.js +2 -0
  89. package/lib/module/modules/date-picker/TimePicker.js +13 -18
  90. package/lib/module/modules/divider/Divider.variants.js +6 -5
  91. package/lib/module/modules/divider/MODULE.md +2 -0
  92. package/lib/module/modules/drawer/Drawer.js +20 -8
  93. package/lib/module/modules/drawer/Drawer.variants.js +4 -4
  94. package/lib/module/modules/drawer/MODULE.md +3 -0
  95. package/lib/module/modules/empty-state/EmptyState.js +18 -29
  96. package/lib/module/modules/empty-state/EmptyState.variants.js +7 -0
  97. package/lib/module/modules/empty-state/MODULE.md +1 -0
  98. package/lib/module/modules/fab/Fab.js +41 -61
  99. package/lib/module/modules/fab/Fab.variants.js +15 -1
  100. package/lib/module/modules/fab/FabGroup.js +84 -57
  101. package/lib/module/modules/fab/MODULE.md +19 -6
  102. package/lib/module/modules/file-grid/FileGrid.js +30 -16
  103. package/lib/module/modules/file-grid/FileGrid.variants.js +2 -2
  104. package/lib/module/modules/file-grid/MODULE.md +3 -1
  105. package/lib/module/modules/file-upload/FileUpload.variants.js +3 -1
  106. package/lib/module/modules/file-upload/MODULE.md +2 -0
  107. package/lib/module/modules/filter-sheet/FilterChip.js +11 -3
  108. package/lib/module/modules/filter-sheet/FilterSheetBody.js +15 -3
  109. package/lib/module/modules/filter-sheet/MODULE.md +9 -0
  110. package/lib/module/modules/folder-row/FolderRow.js +29 -17
  111. package/lib/module/modules/folder-row/FolderRow.variants.js +4 -2
  112. package/lib/module/modules/folder-row/MODULE.md +2 -1
  113. package/lib/module/modules/gantt/Gantt.js +30 -9
  114. package/lib/module/modules/gantt/Gantt.variants.js +36 -0
  115. package/lib/module/modules/gantt/MODULE.md +11 -1
  116. package/lib/module/modules/image-viewer/ImageViewer.js +35 -5
  117. package/lib/module/modules/image-viewer/MODULE.md +6 -0
  118. package/lib/module/modules/input/Input.js +20 -7
  119. package/lib/module/modules/input/Input.variants.js +8 -7
  120. package/lib/module/modules/input/MODULE.md +2 -0
  121. package/lib/module/modules/list-item/ListItem.js +48 -26
  122. package/lib/module/modules/list-item/ListItem.variants.js +11 -2
  123. package/lib/module/modules/list-item/MODULE.md +2 -3
  124. package/lib/module/modules/markdown/MODULE.md +8 -1
  125. package/lib/module/modules/markdown/Markdown.js +57 -22
  126. package/lib/module/modules/markdown/Markdown.variants.js +2 -1
  127. package/lib/module/modules/menu/MODULE.md +11 -0
  128. package/lib/module/modules/menu/Menu.js +99 -40
  129. package/lib/module/modules/menu/Menu.variants.js +3 -3
  130. package/lib/module/modules/message-bubble/MODULE.md +4 -1
  131. package/lib/module/modules/message-bubble/MessageBubble.js +4 -5
  132. package/lib/module/modules/message-bubble/MessageBubble.variants.js +5 -5
  133. package/lib/module/modules/modal/MODULE.md +11 -0
  134. package/lib/module/modules/modal/Modal.js +87 -35
  135. package/lib/module/modules/modal/Modal.variants.js +2 -2
  136. package/lib/module/modules/more-items/MODULE.md +5 -0
  137. package/lib/module/modules/more-items/MoreItems.js +7 -1
  138. package/lib/module/modules/more-items/MoreItems.variants.js +4 -1
  139. package/lib/module/modules/multi-select/MODULE.md +5 -0
  140. package/lib/module/modules/multi-select/MultiSelect.js +23 -1
  141. package/lib/module/modules/multi-select/MultiSelect.variants.js +4 -2
  142. package/lib/module/modules/number-input/MODULE.md +2 -1
  143. package/lib/module/modules/number-input/NumberInput.js +97 -84
  144. package/lib/module/modules/number-input/NumberInput.variants.js +9 -6
  145. package/lib/module/modules/org-switcher/MODULE.md +13 -1
  146. package/lib/module/modules/org-switcher/OrgSwitcher.js +13 -2
  147. package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +4 -2
  148. package/lib/module/modules/pagination/MODULE.md +2 -2
  149. package/lib/module/modules/pagination/Pagination.js +76 -37
  150. package/lib/module/modules/pagination/Pagination.variants.js +4 -2
  151. package/lib/module/modules/pagination/PaginationControls.js +55 -35
  152. package/lib/module/modules/pin-input/MODULE.md +5 -1
  153. package/lib/module/modules/pin-input/PinInput.js +9 -2
  154. package/lib/module/modules/pin-input/PinInput.variants.js +2 -1
  155. package/lib/module/modules/radio-group/MODULE.md +2 -2
  156. package/lib/module/modules/radio-group/RadioGroup.js +122 -63
  157. package/lib/module/modules/radio-group/RadioGroup.variants.js +2 -1
  158. package/lib/module/modules/reorder/MODULE.md +2 -0
  159. package/lib/module/modules/reorder/Reorder.js +4 -3
  160. package/lib/module/modules/reorder/Reorder.variants.js +4 -2
  161. package/lib/module/modules/rich-text/MODULE.md +3 -1
  162. package/lib/module/modules/rich-text/RichText.js +42 -22
  163. package/lib/module/modules/rich-text-editor/MODULE.md +4 -1
  164. package/lib/module/modules/rich-text-editor/RichTextEditor.js +8 -1
  165. package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +9 -6
  166. package/lib/module/modules/screen/MODULE.md +7 -0
  167. package/lib/module/modules/screen/Screen.js +50 -17
  168. package/lib/module/modules/screen/Screen.variants.js +18 -0
  169. package/lib/module/modules/search-bar/MODULE.md +1 -0
  170. package/lib/module/modules/search-bar/SearchBar.js +46 -26
  171. package/lib/module/modules/search-bar/SearchBar.variants.js +11 -8
  172. package/lib/module/modules/section/MODULE.md +2 -0
  173. package/lib/module/modules/section/Section.js +8 -15
  174. package/lib/module/modules/section/Section.variants.js +1 -6
  175. package/lib/module/modules/segmented-control/MODULE.md +3 -1
  176. package/lib/module/modules/segmented-control/SegmentedControl.js +110 -46
  177. package/lib/module/modules/segmented-control/SegmentedControl.variants.js +3 -2
  178. package/lib/module/modules/select/MODULE.md +26 -5
  179. package/lib/module/modules/select/Select.js +39 -12
  180. package/lib/module/modules/select/Select.variants.js +36 -12
  181. package/lib/module/modules/skeleton/MODULE.md +23 -27
  182. package/lib/module/modules/skeleton/Skeleton.js +46 -51
  183. package/lib/module/modules/skeleton/Skeleton.variants.js +17 -75
  184. package/lib/module/modules/slider/MODULE.md +2 -0
  185. package/lib/module/modules/slider/Slider.js +2 -1
  186. package/lib/module/modules/stage-progress/MODULE.md +12 -8
  187. package/lib/module/modules/stage-progress/StageProgress.js +94 -47
  188. package/lib/module/modules/stage-progress/StageProgress.variants.js +17 -12
  189. package/lib/module/modules/stat-tile/MODULE.md +2 -0
  190. package/lib/module/modules/stat-tile/StatTile.js +15 -10
  191. package/lib/module/modules/stat-tile/StatTile.variants.js +2 -0
  192. package/lib/module/modules/state-block/MODULE.md +3 -0
  193. package/lib/module/modules/state-block/StateBlock.js +11 -6
  194. package/lib/module/modules/state-block/StateBlock.variants.js +7 -0
  195. package/lib/module/modules/surface/MODULE.md +59 -0
  196. package/lib/module/modules/surface/Surface.js +42 -0
  197. package/lib/module/modules/surface/Surface.variants.js +33 -0
  198. package/lib/module/modules/surface/index.js +4 -0
  199. package/lib/module/modules/swipeable-row/MODULE.md +9 -0
  200. package/lib/module/modules/swipeable-row/SwipeableRow.js +28 -7
  201. package/lib/module/modules/switch/MODULE.md +2 -0
  202. package/lib/module/modules/switch/Switch.js +8 -2
  203. package/lib/module/modules/tabs/MODULE.md +2 -1
  204. package/lib/module/modules/tabs/Tabs.js +37 -18
  205. package/lib/module/modules/tabs/Tabs.variants.js +4 -2
  206. package/lib/module/modules/text/MODULE.md +5 -2
  207. package/lib/module/modules/text/Text.js +18 -6
  208. package/lib/module/modules/text/Text.variants.js +108 -44
  209. package/lib/module/modules/textarea/MODULE.md +2 -0
  210. package/lib/module/modules/textarea/Textarea.js +3 -2
  211. package/lib/module/modules/textarea/Textarea.variants.js +2 -1
  212. package/lib/module/modules/toast/MODULE.md +8 -4
  213. package/lib/module/modules/toast/Toast.js +31 -13
  214. package/lib/module/modules/toast/Toast.variants.js +5 -0
  215. package/lib/module/modules/tooltip/MODULE.md +15 -11
  216. package/lib/module/modules/tooltip/Tooltip.js +41 -9
  217. package/lib/module/modules/tooltip/Tooltip.variants.js +8 -1
  218. package/lib/module/theme/MODULE.md +3 -1
  219. package/lib/module/theme/platform/MODULE.md +14 -2
  220. package/lib/module/theme/platform/elevation.native.js +0 -44
  221. package/lib/module/theme/platform/floatingSurface.native.js +75 -0
  222. package/lib/module/theme/platform/highlight.native.js +59 -0
  223. package/lib/module/theme/platform/index.js +5 -0
  224. package/lib/module/theme/platform/motion.native.js +31 -11
  225. package/lib/module/theme/platform/stateLayer.native.js +14 -0
  226. package/lib/module/theme/platform/surfaces.native.js +11 -0
  227. package/lib/module/theme/provider/PixelizeProvider.js +12 -5
  228. package/lib/module/theme/tokens/MODULE.md +32 -28
  229. package/lib/module/theme/tokens/THEME-CONTRACT.md +137 -0
  230. package/lib/module/theme/tokens/assertPalette.js +29 -0
  231. package/lib/module/theme/tokens/brands/emerald/palette.light.js +7 -6
  232. package/lib/module/theme/tokens/brands/lavender/palette.light.js +3 -2
  233. package/lib/module/theme/tokens/brands/meadow/palette.light.js +7 -6
  234. package/lib/module/theme/tokens/brands/radiant/palette.light.js +7 -6
  235. package/lib/module/theme/tokens/brands/rosewood/palette.light.js +7 -6
  236. package/lib/module/theme/tokens/brands/skyline/palette.light.js +7 -6
  237. package/lib/module/theme/tokens/brands/slate/palette.light.js +8 -10
  238. package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
  239. package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
  240. package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
  241. package/lib/module/theme/tokens/builders/buildDarkPalette.js +3 -2
  242. package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
  243. package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
  244. package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
  245. package/lib/module/theme/tokens/builders/semanticText.js +14 -0
  246. package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
  247. package/lib/module/theme/tokens/index.js +5 -0
  248. package/lib/module/theme/tokens/roles/index.js +5 -0
  249. package/lib/typescript/core/gradient/AccentGradientFill.d.ts +7 -0
  250. package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
  251. package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
  252. package/lib/typescript/core/gradient/index.d.ts +5 -0
  253. package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
  254. package/lib/typescript/core/haptics/context.d.ts +3 -0
  255. package/lib/typescript/core/haptics/haptics.d.ts +33 -0
  256. package/lib/typescript/core/haptics/index.d.ts +6 -0
  257. package/lib/typescript/core/haptics/useHaptics.d.ts +12 -0
  258. package/lib/typescript/core/icon/icons/trending-up.d.ts +3 -0
  259. package/lib/typescript/core/icon/names.d.ts +1 -1
  260. package/lib/typescript/core/media/expoImage.d.ts +15 -6
  261. package/lib/typescript/core/media/pickers.d.ts +5 -5
  262. package/lib/typescript/core/motion/config.d.ts +2 -1
  263. package/lib/typescript/core/motion/index.d.ts +3 -1
  264. package/lib/typescript/core/motion/usePressState.d.ts +21 -0
  265. package/lib/typescript/core/style/index.d.ts +1 -0
  266. package/lib/typescript/core/style/radius.d.ts +2 -0
  267. package/lib/typescript/index.d.ts +4 -2
  268. package/lib/typescript/modules/accordion/Accordion.variants.d.ts +2 -2
  269. package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -0
  270. package/lib/typescript/modules/avatar/Avatar.variants.d.ts +1 -1
  271. package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +4 -2
  272. package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +19 -0
  273. package/lib/typescript/modules/banner/Banner.d.ts +2 -0
  274. package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +1 -3
  275. package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +3 -1
  276. package/lib/typescript/modules/button/Button.d.ts +0 -25
  277. package/lib/typescript/modules/button/Button.variants.d.ts +6 -6
  278. package/lib/typescript/modules/button-group/ButtonGroup.d.ts +0 -19
  279. package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +22 -56
  280. package/lib/typescript/modules/card/Card.d.ts +7 -5
  281. package/lib/typescript/modules/charts/Charts.variants.d.ts +29 -1
  282. package/lib/typescript/modules/chip/Chip.d.ts +3 -1
  283. package/lib/typescript/modules/chip/Chip.variants.d.ts +6 -2
  284. package/lib/typescript/modules/chip/index.d.ts +1 -1
  285. package/lib/typescript/modules/combobox/Combobox.variants.d.ts +17 -4
  286. package/lib/typescript/modules/data-table/DataTable.variants.d.ts +1 -1
  287. package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +15 -3
  288. package/lib/typescript/modules/date-picker/TimePicker.d.ts +1 -7
  289. package/lib/typescript/modules/divider/Divider.variants.d.ts +4 -4
  290. package/lib/typescript/modules/empty-state/EmptyState.d.ts +2 -0
  291. package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +1 -0
  292. package/lib/typescript/modules/fab/Fab.variants.d.ts +2 -0
  293. package/lib/typescript/modules/folder-row/FolderRow.d.ts +0 -8
  294. package/lib/typescript/modules/gantt/Gantt.variants.d.ts +21 -0
  295. package/lib/typescript/modules/input/Input.variants.d.ts +6 -6
  296. package/lib/typescript/modules/list-item/ListItem.d.ts +1 -5
  297. package/lib/typescript/modules/list-item/ListItem.variants.d.ts +137 -1
  298. package/lib/typescript/modules/markdown/Markdown.d.ts +7 -0
  299. package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +2 -2
  300. package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +1 -2
  301. package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +7 -5
  302. package/lib/typescript/modules/pagination/PaginationControls.d.ts +1 -4
  303. package/lib/typescript/modules/reorder/Reorder.d.ts +1 -1
  304. package/lib/typescript/modules/screen/Screen.d.ts +3 -9
  305. package/lib/typescript/modules/screen/Screen.variants.d.ts +4 -0
  306. package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +6 -6
  307. package/lib/typescript/modules/section/Section.variants.d.ts +0 -3
  308. package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +1 -1
  309. package/lib/typescript/modules/select/Select.d.ts +4 -1
  310. package/lib/typescript/modules/select/Select.variants.d.ts +22 -8
  311. package/lib/typescript/modules/select/index.d.ts +1 -1
  312. package/lib/typescript/modules/skeleton/Skeleton.d.ts +3 -18
  313. package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +12 -68
  314. package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +15 -6
  315. package/lib/typescript/modules/state-block/StateBlock.d.ts +4 -0
  316. package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +1 -0
  317. package/lib/typescript/modules/surface/Surface.d.ts +19 -0
  318. package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
  319. package/lib/typescript/modules/surface/index.d.ts +4 -0
  320. package/lib/typescript/modules/text/Text.d.ts +8 -4
  321. package/lib/typescript/modules/text/Text.variants.d.ts +14 -11
  322. package/lib/typescript/modules/toast/Toast.variants.d.ts +2 -0
  323. package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +7 -0
  324. package/lib/typescript/theme/index.d.ts +1 -1
  325. package/lib/typescript/theme/platform/elevation.native.d.ts +0 -30
  326. package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
  327. package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
  328. package/lib/typescript/theme/platform/index.d.ts +9 -0
  329. package/lib/typescript/theme/platform/motion.native.d.ts +33 -13
  330. package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
  331. package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -0
  332. package/lib/typescript/theme/provider/PixelizeProvider.d.ts +1 -1
  333. package/lib/typescript/theme/provider/types.d.ts +8 -0
  334. package/lib/typescript/theme/tokens/assertPalette.d.ts +10 -0
  335. package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
  336. package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
  337. package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
  338. package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
  339. package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
  340. package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
  341. package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
  342. package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
  343. package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
  344. package/lib/typescript/theme/tokens/builders/finalizePalette.d.ts +4 -0
  345. package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
  346. package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
  347. package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
  348. package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
  349. package/lib/typescript/theme/tokens/index.d.ts +5 -0
  350. package/lib/typescript/theme/tokens/roles/index.d.ts +1 -0
  351. package/lib/typescript/theme/tokens/types.d.ts +8 -7
  352. package/package.json +10 -2
  353. package/registry.json +5 -0
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
- import { space, radii, fontSizes, fontWeights, lineHeights, letterSpacings, borderWidths, breakpoints, zIndices, elevation as elevationTokens, roleColors } from "../tokens/index.js";
5
- import { elevation as renderElevation, fontStyleForWeight, getSystemColorMode, subscribeToSystemColorMode } from "../platform/index.js";
4
+ import { HapticsContext, hasHapticsModule } from "../../core/haptics/index.js";
5
+ import { space, radii, fontSizes, fontWeights, lineHeights, letterSpacings, borderWidths, breakpoints, zIndices, elevation as elevationTokens, roleColors, assertPalette } from "../tokens/index.js";
6
+ import { elevation as renderElevation, elevatedSurfaces, fontStyleForWeight, getSystemColorMode, subscribeToSystemColorMode } from "../platform/index.js";
6
7
  import { DEFAULT_BRAND_STORAGE_NAMESPACE, DEFAULT_STORAGE_NAMESPACE, isThemeMode, isThemeName, memoryStorageAdapter } from "./colorModeStorage.js";
7
8
  import { DEFAULT_THEME, loadPaletteSync } from "./loadPalette.js";
8
9
  import { ThemeContext, ThemeModeContext } from "./ThemeContext.js";
@@ -16,11 +17,12 @@ const RENDERED_ELEVATION = {
16
17
  lg: renderElevation(elevationTokens.lg)
17
18
  };
18
19
  function buildTheme(brand, mode, interLoaded, paletteOverride) {
19
- const palette = paletteOverride ?? loadPaletteSync(brand, mode);
20
+ const palette = paletteOverride ? assertPalette(paletteOverride, "the `palette` prop") : loadPaletteSync(brand, mode);
20
21
  return {
21
22
  brand,
22
23
  mode,
23
24
  colors: roleColors(palette),
25
+ elevatedSurfaces: elevatedSurfaces(palette, mode),
24
26
  palette,
25
27
  space,
26
28
  radii,
@@ -43,7 +45,8 @@ export function PixelizeProvider({
43
45
  storageKey = DEFAULT_STORAGE_NAMESPACE,
44
46
  brandStorageKey = DEFAULT_BRAND_STORAGE_NAMESPACE,
45
47
  interLoaded = false,
46
- palette: paletteProp
48
+ palette: paletteProp,
49
+ haptics: hapticsProp
47
50
  }) {
48
51
  const storage = storageProp ?? memoryStorageAdapter;
49
52
  const [modeState, setModeState] = useState(mode);
@@ -100,11 +103,15 @@ export function PixelizeProvider({
100
103
  brand: brandState,
101
104
  setBrand
102
105
  }), [modeState, resolvedMode, setMode, brandState, setBrand]);
106
+ const hapticsEnabled = hapticsProp ?? hasHapticsModule();
103
107
  return /*#__PURE__*/_jsx(ThemeContext.Provider, {
104
108
  value: theme,
105
109
  children: /*#__PURE__*/_jsx(ThemeModeContext.Provider, {
106
110
  value: modeValue,
107
- children: children
111
+ children: /*#__PURE__*/_jsx(HapticsContext.Provider, {
112
+ value: hapticsEnabled,
113
+ children: children
114
+ })
108
115
  })
109
116
  });
110
117
  }
@@ -1,8 +1,13 @@
1
- # tokens/ — the copy-paste zone
1
+ # tokens/ — the portable core
2
2
 
3
- The portable core of the design system, **byte-identical with web's `src/Theme/tokens/`** and
4
- hash-gated by `.tokens.sha256`. The folder layout mirrors web exactly, so the gate can compare
5
- like-for-like: `types.ts`, `index.ts`, `primitives/`, `brands/`, `builders/`, `roles/`.
3
+ Platform-neutral data and pure functions: `types.ts`, `index.ts`, `primitives/`, `brands/`,
4
+ `builders/`, `roles/`. Web's `src/Theme/tokens/` is the sibling this folder was seeded from and
5
+ still tracks in shape and naming, but the two are **not** byte-identical and no gate requires them
6
+ to be: mobile owns `roles/`, `assertPalette.ts` and its own `PaletteProps`, and web owns sidebar
7
+ tokens mobile has no rail for.
8
+
9
+ **[THEME-CONTRACT.md](./THEME-CONTRACT.md) is the source of truth** for required vs derived tokens,
10
+ which token to pick by role, and why nothing may write `palette.x?.y ?? z`.
6
11
 
7
12
  ## Purity contract (lint + `__tests__/purity.test.ts` enforce it)
8
13
 
@@ -15,46 +20,45 @@ Nothing under `tokens/` may contain:
15
20
  The one subtlety a hex is allowed: `#rrggbb` / `#rrggbbaa` are values, not units — they parse the
16
21
  same on web and RN, so translucency uses 8-digit hex.
17
22
 
18
- **Never edit `tokens/` to fix a mobile problem.** If a token is wrong it is wrong on web too — fix
19
- it on web and re-copy. (Known live example: `brands/slate/palette.light.ts` `table.hover[500]`
20
- carries a Cyrillic homoglyph copied verbatim from web; it is fixed upstream, not here. No builder
21
- reads it, so no palette is affected.)
23
+ **A token that is wrong here is fixed here.** Web is a sibling, not an upstream the drift gate is
24
+ per-repo by design and never reads the other repo. Flag the same defect for web; do not wait for it.
25
+ `brands/slate/palette.light.ts` `table.hover[500]` carried a Cyrillic homoglyph (`"#dfdfе2"`,
26
+ U+0435) on both sides for an unknown period; mobile's copy was fixed 2026-08-31, web's still ships it.
22
27
 
23
- **2026-07-18 — `zinc` dark primary corrected to shadcn's real value.** `PRIMARY_500` in
24
- `brands/zinc/palette.dark.ts` was `#fafafa` (an approximated "near-white"); verified against
25
- shadcn's live zinc theme registry and corrected to `#e4e4e7` — shadcn's actual dark `--primary`
26
- (`#fafafa` is shadcn's `--foreground`, a different token). `gradient.from` now references the
27
- `PRIMARY_500` constant instead of duplicating the literal, so it can't drift again. Both light
28
- mode's primary (`#18181b`, already an exact match) and every other zinc role were checked against
29
- the same registry and left unchanged — see `micro-components/.cursor/modules/theme/MODULE.md` for
30
- the full verification notes (web is the source of truth for token values).
28
+ `zinc`'s dark `PRIMARY_500` is `#e4e4e7`, shadcn's real dark `--primary`, verified against its live
29
+ theme registry (2026-07-18). `#fafafa` is shadcn's `--foreground` — a different token; do not
30
+ "correct" it back.
31
31
 
32
32
  ## Brand roster
33
33
 
34
34
  `brands/` ships 9 identities: `zinc` (mobile-only default, the shadcn look), plus 8 mirroring web —
35
35
  `lavender`, `meadow`, `radiant`, `skyline`, `slate`, `emerald`, `rosewood`, `storefront`. Each is a
36
- `palette.light.ts` (usually `...basePalette` spread + brand overrides — see `emerald`/`storefront` for
37
- the pattern) and a `palette.dark.ts` (`buildDarkPalette(light)`, no bespoke override unless the brand
38
- needs one like `zinc`). Add a brand by dropping in both files and registering it in `brands/index.ts`
39
- + the `ThemeName` union in `types.ts` the `it.each(themeNames)` test sweeps pick it up automatically.
36
+ `palette.light.ts` exporting a `BrandPaletteSource` as `source` (usually `...lavenderSource` +
37
+ brand overrides see `emerald`/`storefront`) and default-exporting `finalizePalette(source)`, plus a
38
+ `palette.dark.ts` (`buildDarkPalette(light)`, no bespoke override unless the brand needs one like
39
+ `zinc`). Add a brand by dropping in both files and registering it in `brands/index.ts`,
40
+ `provider/loadPalette.ts` and the `ThemeName` union — the `it.each(themeNames)` sweeps pick it up.
40
41
 
41
42
  ## Copied vs not
42
43
 
43
- | Path | Copied to/from web? |
44
- |------|---------------------|
45
- | `tokens/**` (this folder) | **Yes** — the hash gate keeps it identical |
44
+ | Path | Shared with web? |
45
+ |------|------------------|
46
+ | `tokens/**` (this folder) | **In shape and intent** — reconcile deliberately, never assume identical |
46
47
  | `platform/**` | **Never** — one file per platform, identical export *names*, RN implementations |
47
48
 
48
49
  `platform/` is where numbers become styles: DP conversion, `StyleSheet.hairlineWidth`, and the
49
50
  iOS/Android shadow split. A component imports resolved values from the theme, never from `tokens/`
50
51
  math directly.
51
52
 
52
- ## The `.tokens.sha256` gate
53
+ ## Gates over this folder
53
54
 
54
- CI hashes the contents of `tokens/` and compares against `.tokens.sha256`. A mismatch means web and
55
- mobile diverged: either an intended change was made on one side (re-copy + regenerate the hash) or an
56
- accidental edit slipped in (revert it). Because the gate hashes the whole subtree, the **folder shape
57
- must match web** a differently-named folder (an old `scale/` or `color/`) can never go green.
55
+ - `__tests__/paletteContrast.test.ts` 9 brands x 2 modes, 138 assertions: every derived token's
56
+ contrast guarantee, every colour value parses, no brand file hand-writes a derived token.
57
+ - `roles/__tests__/roleColors.test.ts` the same sweep one layer up, over `roleColors()`.
58
+ - `__tests__/purity.test.ts`no unit, CSS string or `platform/` import.
59
+ - `scripts/gates/token-drift.sh` hashes this folder against its **own** committed baseline. That
60
+ baseline does not exist yet and `pre-pr-check.sh` does not run it, so today it gates nothing —
61
+ run it with `--update` once, deliberately, if you want it live.
58
62
 
59
63
  ## RN unit traps baked into the primitives
60
64
 
@@ -0,0 +1,137 @@
1
+ # Theme token contract
2
+
3
+ How colour enters this library, and why nothing may guard a token with `?.` / `??`.
4
+ Read this before adding a token, a brand, or a component that reads a palette.
5
+
6
+ ## The two palette types
7
+
8
+ | Type | Who writes it | Contains |
9
+ | --- | --- | --- |
10
+ | `BrandPaletteSource` | a brand's `palette.light.ts`, by hand | every hand-authored token, all **required** |
11
+ | `PaletteProps` | `finalizePalette`, at module load | the source **plus** every derived token |
12
+
13
+ Each `palette.light.ts` annotates `export const source: BrandPaletteSource = { … }` and
14
+ default-exports `finalizePalette(source)`. A missing token is a compile error **in that brand's
15
+ file**. Consumers only ever see `PaletteProps`, where nothing is optional.
16
+
17
+ Seven brands build on lavender by spreading its `source`, not its finalized default — a brand must
18
+ never inherit another brand's *derived* values.
19
+
20
+ ## Derived tokens — never hand-written
21
+
22
+ | Token | Derived by | Guarantee |
23
+ | --- | --- | --- |
24
+ | `semanticText.{success,error,warning,info}` | `buildSemanticText` | each status tone as ink, ≥4.5:1 on that palette's canvas |
25
+ | `placeholder[500]` | `finalizePalette` | placeholder ink, ≥4.5:1 on `background[50]` |
26
+ | `table.hover[500]` | `finalizePalette` | hover row steps ≥4.5:1 away from `text[500]` |
27
+
28
+ Light finalizes in each brand's own file; dark finalizes inside `buildDarkPalette`. `zinc` pins its
29
+ own dark canvas, so `palette.dark.ts` re-finalizes after the override — otherwise its derived tokens
30
+ would be resolved against the canvas it replaced. A hand-copied hex goes stale the moment a canvas
31
+ moves; that is the whole reason these are computed.
32
+
33
+ `liftToContrast(hex, backdrop, target)` takes no colour-mode argument. It reads the direction from
34
+ the backdrop's own luminance, so "step away from what it sits on" is one rule for both modes and for
35
+ both directions — ink moving off a surface, and a surface moving off ink.
36
+
37
+ ## Tokens with no contrast guarantee
38
+
39
+ `boxborder`, `border` and `sidebar` are decorative or vestigial. Measured on the canvas,
40
+ `boxborder[500]` is 1.30–2.56:1 in light and 1.84–3.78:1 in dark — it must not be used as a control
41
+ outline. Nothing in this library reads any of the three.
42
+
43
+ | Need | Use | Never |
44
+ | --- | --- | --- |
45
+ | a control outline (WCAG 1.4.11) | `roleColors().border.interactive` | `boxborder[500]` |
46
+ | status text, icon or border | `palette.semanticText[tone]` | `semantic[tone][500]` — that is the *fill* rung |
47
+ | a status fill | `roleColors().status[role].solid` + `onSolid` | a hand-picked white or black label |
48
+ | accent-coloured text | `roleColors().accent.text` | `primary[500]` — the *filled-control* rung |
49
+ | secondary/muted text | `roleColors().fg.muted` | `gray[400]` — the border/icon rung |
50
+ | a field's placeholder | `roleColors().fg.placeholder` | `fg.muted` — body copy, so empty fields read as filled |
51
+ | a white surface | `background[50]` | `white` — that is ink on a filled control |
52
+
53
+ `roleColors()` is the supported colour API; the raw palette is available as `useTheme().palette` for
54
+ the few tokens roles do not cover. There is no sidebar rail in this library, so `sidebar` carries a
55
+ background ramp and nothing else — web's `sidebar.active*` / `muted*` / `elevated` tokens are
56
+ deliberately not ported.
57
+
58
+ ## Reading colour
59
+
60
+ ```ts
61
+ const { palette } = useTheme();
62
+ palette.semanticText.error // guaranteed present
63
+ ```
64
+
65
+ No `?.`, no `??`, no `as unknown as`. `assertPalette` runs once where a palette enters
66
+ (`PixelizeProvider`) and throws naming every missing token. That error is the feature: it is
67
+ visible, it names the fix, and it happens once at the boundary instead of as a wrong colour deep in
68
+ a screen.
69
+
70
+ ## Adding a token
71
+
72
+ 1. Add it to `PaletteProps` in `types.ts`.
73
+ 2. Compile. TypeScript names every place that must handle it:
74
+ - `assertPalette.ts` — `type Unlisted = Exclude<keyof PaletteProps, …>` fails until the token is
75
+ listed in `REQUIRED_TOKENS`
76
+ - each brand's `palette.light.ts` — unless the token is derived, in which case exclude it from
77
+ `BrandPaletteSource` and compute it in `finalizePalette`
78
+ 3. Add an assertion of its guarantee to `__tests__/paletteContrast.test.ts`, for **every** brand in
79
+ **both** modes — no exceptions list.
80
+
81
+ Adding a brand is the mirror image: one `palette.light.ts` exporting a `BrandPaletteSource`, a
82
+ `palette.dark.ts` calling `buildDarkPalette(light)`, and entries in `brands/index.ts`,
83
+ `provider/loadPalette.ts` and the `ThemeName` union. The `it.each(themeNames)` sweeps pick it up.
84
+
85
+ ## The gate
86
+
87
+ `__tests__/paletteContrast.test.ts` scores every guarantee above for all 9 brands in both modes —
88
+ 138 assertions. It also asserts every colour value in every palette parses, and that no brand file
89
+ writes a derived token by hand.
90
+
91
+ `slate`'s `table.hover[500]` shipped a Cyrillic `е` (U+0435) inside `"#dfdfе2"` — a valid-looking
92
+ string that RN resolves to no colour at all. It was fixed here on 2026-08-31 and the parse assertion
93
+ is what keeps it fixed. **Web's `slate` palette still carries it.**
94
+
95
+ ## Known gap
96
+
97
+ The light `semantic` ramps are near-identical across all 9 brands, and their `[500]` rungs measure
98
+ **1.84–3.68:1** against the light canvas — unusable as ink. `semanticText` exists so no call site
99
+ has to know that. Dark needs no such lift (5.05–9.89:1) because `buildDarkPalette` derives the
100
+ status ramps rather than copying them. **Light is the worse mode**: every defect this contract
101
+ resolves was light-only.
102
+
103
+ ## Placeholder ink is not muted text
104
+
105
+ `fg.muted` is body copy. Six components used it as their `placeholderTextColor`, so an empty field
106
+ read as one already typed into. `fg.placeholder` is the rung the brand authored — `placeholder[500]`
107
+ shipped as-is — with a 3:1 floor underneath it, never a 4.5:1 one.
108
+
109
+ **The sub-4.5 floor is deliberate.** It was tried the other way first: held to body-text contrast the
110
+ hint stopped reading as a hint, which is the bug this section exists to prevent. 3:1 is the 1.4.11
111
+ non-text floor, and it is what the published web library ships. Lavender light is `#7a72b0` at 4.06:1
112
+ in both libraries; every brand lands between 3.96 and 4.13 in light.
113
+
114
+ The rung is never darkened when it already clears. The floor exists only for a brand whose authored
115
+ rung is too pale for a surface it lands on — and it does fire here, on `radiant light` and
116
+ `rosewood light`, because of the port boundary below.
117
+
118
+ ### Where mobile's field surfaces differ from web's
119
+
120
+ | | web `fieldSurfaces` | mobile `FIELD_SURFACES` |
121
+ |---|---|---|
122
+ | canvas | `backgroundColor.main` | `backgroundColor.main` |
123
+ | field fill | `gray[50]`, `background[50]` | `background[50]` |
124
+ | pressed | — | `backgroundColor.muted` (`bg.hover`) |
125
+
126
+ Mobile is touch: a Select or Combobox trigger showing a placeholder goes to `bg.hover` while pressed,
127
+ with the hint still on screen, so that surface is a real pairing here and not on web. On the two
128
+ brands whose `backgroundColor.muted` is a deep tint this pulls the ink above the authored rung. That
129
+ divergence is correct, not drift — do not "fix" it by deleting the pressed surface.
130
+
131
+ Disabled fills are excluded on purpose: 1.4.3 exempts them, and folding them in would darken the hint
132
+ on every enabled field.
133
+
134
+ `roleColors.test.ts` gates both halves: the ink clears 3:1 on every field surface, and it is left
135
+ untouched whenever the authored rung already clears. `surfaceRungs.test.ts` deliberately does **not**
136
+ sweep `placeholder[500]` — what ships is `fg.placeholder`, not the raw rung. Web's mirror of this
137
+ lives in `Theme/CHROME-CONSISTENCY.md`.
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ const REQUIRED_TOKENS = ["gradient", "primary", "secondary", "tertiary", "transparent", "black", "white", "semantic", "gray", "red", "orange", "yellow", "green", "teal", "blue", "cyan", "purple", "pink", "backgroundColor", "background", "text", "header", "placeholder", "boxShadow", "sidebar", "boxborder", "border", "table", "disabled", "semanticText"];
4
+
5
+ // Adding a token to PaletteProps without listing it here is a compile error, not a silent gap.
6
+
7
+ export const allPaletteTokensListed = true;
8
+ const NESTED = [["semantic", ["success", "error", "warning", "info"]], ["backgroundColor", ["main", "base"]], ["gradient", ["from", "to"]], ["semanticText", ["success", "error", "warning", "info"]]];
9
+ export const missingPaletteTokens = palette => {
10
+ if (!palette || typeof palette !== "object") return ["(no palette object)"];
11
+ const p = palette;
12
+ const missing = REQUIRED_TOKENS.filter(k => p[k] === undefined).map(String);
13
+ for (const [group, keys] of NESTED) {
14
+ const value = p[group];
15
+ if (!value) continue;
16
+ for (const key of keys) if (value[key] === undefined) missing.push(`${group}.${key}`);
17
+ }
18
+ return missing;
19
+ };
20
+
21
+ /** Fails once, loudly, where a palette enters — never as a wrong colour deep in a screen. */
22
+ export const assertPalette = (palette, source) => {
23
+ const missing = missingPaletteTokens(palette);
24
+ if (missing.length > 0) {
25
+ throw new Error(`pixelize-native-library: ${source} is missing ${missing.length} palette token(s): ` + `${missing.join(", ")}. Roles read these directly and have no fallback by design.`);
26
+ }
27
+ return palette;
28
+ };
29
+ //# sourceMappingURL=assertPalette.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#0f9d8a";
6
7
  const primary = {
@@ -18,8 +19,8 @@ const primary = {
18
19
  };
19
20
 
20
21
  // No `tertiary` override — emerald inherits lavender's purple tertiary, as web ships it.
21
- const palette = {
22
- ...lavenderPalette,
22
+ export const source = {
23
+ ...lavenderSource,
23
24
  gradient: {
24
25
  from: "#0f9d8a",
25
26
  to: "#06b6d4"
@@ -117,9 +118,9 @@ const palette = {
117
118
  },
118
119
  boxShadow: {
119
120
  primary: buildPrimaryShadowTint(PRIMARY_500),
120
- error: lavenderPalette.boxShadow.error,
121
- default: lavenderPalette.boxShadow.default
121
+ error: lavenderSource.boxShadow.error,
122
+ default: lavenderSource.boxShadow.default
122
123
  }
123
124
  };
124
- export default palette;
125
+ export default finalizePalette(source);
125
126
  //# sourceMappingURL=palette.light.js.map
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import finalizePalette from "../../builders/finalizePalette.js";
3
4
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
4
5
  const PRIMARY_500 = "#8B3FC8";
5
6
  const SECONDARY_ANCHOR = "#1e0f30";
@@ -341,7 +342,7 @@ const gradient = {
341
342
  from: "#8B3FC8",
342
343
  to: "#EC4899"
343
344
  };
344
- const palette = {
345
+ export const source = {
345
346
  gradient,
346
347
  primary,
347
348
  secondary,
@@ -372,5 +373,5 @@ const palette = {
372
373
  table,
373
374
  disabled
374
375
  };
375
- export default palette;
376
+ export default finalizePalette(source);
376
377
  //# sourceMappingURL=palette.light.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#2d6a4f";
6
7
  const primary = {
@@ -16,8 +17,8 @@ const primary = {
16
17
  900: "#0a2016",
17
18
  opacity: buildPrimaryOpacity(PRIMARY_500)
18
19
  };
19
- const palette = {
20
- ...lavenderPalette,
20
+ export const source = {
21
+ ...lavenderSource,
21
22
  gradient: {
22
23
  from: "#2d6a4f",
23
24
  to: "#14b8a6"
@@ -118,9 +119,9 @@ const palette = {
118
119
  },
119
120
  boxShadow: {
120
121
  primary: buildPrimaryShadowTint(PRIMARY_500),
121
- error: lavenderPalette.boxShadow.error,
122
- default: lavenderPalette.boxShadow.default
122
+ error: lavenderSource.boxShadow.error,
123
+ default: lavenderSource.boxShadow.default
123
124
  }
124
125
  };
125
- export default palette;
126
+ export default finalizePalette(source);
126
127
  //# sourceMappingURL=palette.light.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#cf4e3a";
6
7
  const primary = {
@@ -18,8 +19,8 @@ const primary = {
18
19
  };
19
20
 
20
21
  // No `tertiary` override — radiant inherits lavender's purple tertiary, as web ships it.
21
- const palette = {
22
- ...lavenderPalette,
22
+ export const source = {
23
+ ...lavenderSource,
23
24
  gradient: {
24
25
  from: "#cf4e3a",
25
26
  to: "#f59e0b"
@@ -117,9 +118,9 @@ const palette = {
117
118
  },
118
119
  boxShadow: {
119
120
  primary: buildPrimaryShadowTint(PRIMARY_500),
120
- error: lavenderPalette.boxShadow.error,
121
- default: lavenderPalette.boxShadow.default
121
+ error: lavenderSource.boxShadow.error,
122
+ default: lavenderSource.boxShadow.default
122
123
  }
123
124
  };
124
- export default palette;
125
+ export default finalizePalette(source);
125
126
  //# sourceMappingURL=palette.light.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#d16a7e";
6
7
  const primary = {
@@ -18,8 +19,8 @@ const primary = {
18
19
  };
19
20
 
20
21
  // No `tertiary` override — rosewood inherits lavender's purple tertiary, as web ships it.
21
- const palette = {
22
- ...lavenderPalette,
22
+ export const source = {
23
+ ...lavenderSource,
23
24
  gradient: {
24
25
  from: "#d16a7e",
25
26
  to: "#fb7185"
@@ -117,9 +118,9 @@ const palette = {
117
118
  },
118
119
  boxShadow: {
119
120
  primary: buildPrimaryShadowTint(PRIMARY_500),
120
- error: lavenderPalette.boxShadow.error,
121
- default: lavenderPalette.boxShadow.default
121
+ error: lavenderSource.boxShadow.error,
122
+ default: lavenderSource.boxShadow.default
122
123
  }
123
124
  };
124
- export default palette;
125
+ export default finalizePalette(source);
125
126
  //# sourceMappingURL=palette.light.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#1a3a6b";
6
7
  const primary = {
@@ -16,8 +17,8 @@ const primary = {
16
17
  900: "#071021",
17
18
  opacity: buildPrimaryOpacity(PRIMARY_500)
18
19
  };
19
- const palette = {
20
- ...lavenderPalette,
20
+ export const source = {
21
+ ...lavenderSource,
21
22
  gradient: {
22
23
  from: "#1a3a6b",
23
24
  to: "#38bdf8"
@@ -118,9 +119,9 @@ const palette = {
118
119
  },
119
120
  boxShadow: {
120
121
  primary: buildPrimaryShadowTint(PRIMARY_500),
121
- error: lavenderPalette.boxShadow.error,
122
- default: lavenderPalette.boxShadow.default
122
+ error: lavenderSource.boxShadow.error,
123
+ default: lavenderSource.boxShadow.default
123
124
  }
124
125
  };
125
- export default palette;
126
+ export default finalizePalette(source);
126
127
  //# sourceMappingURL=palette.light.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#6b7280";
6
7
  const primary = {
@@ -16,8 +17,8 @@ const primary = {
16
17
  900: "#111827",
17
18
  opacity: buildPrimaryOpacity(PRIMARY_500)
18
19
  };
19
- const palette = {
20
- ...lavenderPalette,
20
+ export const source = {
21
+ ...lavenderSource,
21
22
  gradient: {
22
23
  from: "#6b7280",
23
24
  to: "#818cf8"
@@ -88,9 +89,6 @@ const palette = {
88
89
  800: "#6a6a6e",
89
90
  900: "#4f4f52"
90
91
  },
91
- // NOTE: table.hover[500] carries a Cyrillic homoglyph (U+0435) inside the hex, copied
92
- // verbatim from web's slate palette (a real upstream bug). Do not "fix" here — it must be
93
- // corrected on web and re-copied. Flagged for the web chat; see this task's report.
94
92
  table: {
95
93
  hover: {
96
94
  50: "#fefefe",
@@ -98,7 +96,7 @@ const palette = {
98
96
  200: "#f1f1f3",
99
97
  300: "#ebebed",
100
98
  400: "#e5e5e8",
101
- 500: "#dfdfе2",
99
+ 500: "#dfdfe2",
102
100
  600: "#cbcbcf",
103
101
  700: "#a0a0a5",
104
102
  800: "#787880",
@@ -121,9 +119,9 @@ const palette = {
121
119
  },
122
120
  boxShadow: {
123
121
  primary: buildPrimaryShadowTint(PRIMARY_500),
124
- error: lavenderPalette.boxShadow.error,
125
- default: lavenderPalette.boxShadow.default
122
+ error: lavenderSource.boxShadow.error,
123
+ default: lavenderSource.boxShadow.default
126
124
  }
127
125
  };
128
- export default palette;
126
+ export default finalizePalette(source);
129
127
  //# sourceMappingURL=palette.light.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import lavenderPalette from "../lavender/palette.light.js";
3
+ import finalizePalette from "../../builders/finalizePalette.js";
4
+ import { source as lavenderSource } from "../lavender/palette.light.js";
4
5
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
5
6
  const PRIMARY_500 = "#004f4b";
6
7
  const primary = {
@@ -20,8 +21,8 @@ const primary = {
20
21
  // No `tertiary` override — storefront inherits lavender's purple tertiary, as web ships it.
21
22
  // Same for `secondary`, `semantic`, the 9 utility hues, `text`/`header`/`placeholder`/`disabled`,
22
23
  // and `transparent`/`black`/`white`.
23
- const palette = {
24
- ...lavenderPalette,
24
+ export const source = {
25
+ ...lavenderSource,
25
26
  gradient: {
26
27
  from: "#0c7d77",
27
28
  to: "#095e90"
@@ -119,9 +120,9 @@ const palette = {
119
120
  },
120
121
  boxShadow: {
121
122
  primary: buildPrimaryShadowTint(PRIMARY_500),
122
- error: lavenderPalette.boxShadow.error,
123
- default: lavenderPalette.boxShadow.default
123
+ error: lavenderSource.boxShadow.error,
124
+ default: lavenderSource.boxShadow.default
124
125
  }
125
126
  };
126
- export default palette;
127
+ export default finalizePalette(source);
127
128
  //# sourceMappingURL=palette.light.js.map
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
4
4
  import buildDarkPalette from "../../builders/buildDarkPalette.js";
5
+ import finalizePalette from "../../builders/finalizePalette.js";
5
6
  import light from "./palette.light.js";
6
7
 
7
8
  /**
@@ -190,7 +191,7 @@ const sidebar = {
190
191
  900: "#040405"
191
192
  }
192
193
  };
193
- const palette = {
194
+ const palette = finalizePalette({
194
195
  ...derived,
195
196
  gradient: {
196
197
  from: PRIMARY_500,
@@ -217,6 +218,6 @@ const palette = {
217
218
  error: derived.boxShadow.error,
218
219
  default: "#00000080"
219
220
  }
220
- };
221
+ });
221
222
  export default palette;
222
223
  //# sourceMappingURL=palette.dark.js.map
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import finalizePalette from "../../builders/finalizePalette.js";
3
4
  import { buildPrimaryOpacity, buildPrimaryShadowTint } from "../../builders/buildBrandTokens.js";
4
5
 
5
6
  /**
@@ -356,7 +357,7 @@ const gradient = {
356
357
  from: "#18181b",
357
358
  to: "#52525b"
358
359
  };
359
- const palette = {
360
+ export const source = {
360
361
  gradient,
361
362
  primary,
362
363
  secondary,
@@ -389,5 +390,5 @@ const palette = {
389
390
  table,
390
391
  disabled
391
392
  };
392
- export default palette;
393
+ export default finalizePalette(source);
393
394
  //# sourceMappingURL=palette.light.js.map