@primer/react-brand 0.76.0 → 0.77.0-rc.d45b2bb1

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 (392) hide show
  1. package/docs/index.md +2 -2
  2. package/docs/introduction/theming.md +2 -0
  3. package/esm/ThemeProvider/ThemeProvider.d.ts +3 -2
  4. package/esm/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  5. package/esm/ThemeProvider/ThemeProvider.js +21 -18
  6. package/esm/ThemeProvider/ThemeProvider.js.map +1 -1
  7. package/lib/ThemeProvider/ThemeProvider.d.ts +3 -2
  8. package/lib/css/main.css +71 -71
  9. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  10. package/lib/design-tokens/css/tokens/base/colors/light.css +1 -1
  11. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  12. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  13. package/lib/design-tokens/css/tokens/functional/animation/base.css +1 -1
  14. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  15. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  16. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  17. package/lib/design-tokens/css/tokens/functional/components/action-menu/colors-with-modes.css +1 -1
  18. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +1 -1
  19. package/lib/design-tokens/css/tokens/functional/components/bento/base.css +1 -1
  20. package/lib/design-tokens/css/tokens/functional/components/blinking-cursor/colors-with-modes.css +1 -1
  21. package/lib/design-tokens/css/tokens/functional/components/breadcrumbs/colors-with-modes.css +1 -1
  22. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  23. package/lib/design-tokens/css/tokens/functional/components/card/base.css +1 -1
  24. package/lib/design-tokens/css/tokens/functional/components/card/colors-with-modes.css +1 -1
  25. package/lib/design-tokens/css/tokens/functional/components/card/colors.css +1 -1
  26. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  27. package/lib/design-tokens/css/tokens/functional/components/comparison-table/comparison-table.css +1 -1
  28. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  29. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  30. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/colors-with-modes.css +1 -1
  31. package/lib/design-tokens/css/tokens/functional/components/eyebrow-banner/eyebrow-banner.css +1 -1
  32. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  33. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  34. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  35. package/lib/design-tokens/css/tokens/functional/components/faq/faq.css +1 -1
  36. package/lib/design-tokens/css/tokens/functional/components/footer/base.css +1 -1
  37. package/lib/design-tokens/css/tokens/functional/components/footer/colors-with-modes.css +1 -1
  38. package/lib/design-tokens/css/tokens/functional/components/footer/colors.css +1 -1
  39. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/base.css +1 -1
  40. package/lib/design-tokens/css/tokens/functional/components/frosted-glass-vfx/colors-with-modes.css +1 -1
  41. package/lib/design-tokens/css/tokens/functional/components/grid/colors-with-modes.css +1 -1
  42. package/lib/design-tokens/css/tokens/functional/components/grid/colors.css +1 -1
  43. package/lib/design-tokens/css/tokens/functional/components/grid/grid.css +1 -1
  44. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  45. package/lib/design-tokens/css/tokens/functional/components/icon/colors-with-modes.css +1 -1
  46. package/lib/design-tokens/css/tokens/functional/components/icon/colors.css +1 -1
  47. package/lib/design-tokens/css/tokens/functional/components/ide/base.css +1 -1
  48. package/lib/design-tokens/css/tokens/functional/components/ide/colors-with-modes.css +1 -1
  49. package/lib/design-tokens/css/tokens/functional/components/image/base.css +1 -1
  50. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors-with-modes.css +1 -1
  51. package/lib/design-tokens/css/tokens/functional/components/inline-code/colors.css +1 -1
  52. package/lib/design-tokens/css/tokens/functional/components/inline-link/base.css +1 -1
  53. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  54. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  55. package/lib/design-tokens/css/tokens/functional/components/label/colors-with-modes.css +1 -1
  56. package/lib/design-tokens/css/tokens/functional/components/label/colors.css +1 -1
  57. package/lib/design-tokens/css/tokens/functional/components/link/colors-with-modes.css +1 -1
  58. package/lib/design-tokens/css/tokens/functional/components/link/colors.css +1 -1
  59. package/lib/design-tokens/css/tokens/functional/components/logosuite/base.css +1 -1
  60. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors-with-modes.css +1 -1
  61. package/lib/design-tokens/css/tokens/functional/components/logosuite/colors.css +1 -1
  62. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors-with-modes.css +1 -1
  63. package/lib/design-tokens/css/tokens/functional/components/media-playlist/colors.css +1 -1
  64. package/lib/design-tokens/css/tokens/functional/components/nav-list/colors-with-modes.css +1 -1
  65. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors-with-modes.css +1 -1
  66. package/lib/design-tokens/css/tokens/functional/components/pricing-options/colors.css +1 -1
  67. package/lib/design-tokens/css/tokens/functional/components/pricing-options/pricing-options.css +1 -1
  68. package/lib/design-tokens/css/tokens/functional/components/prose/base.css +1 -1
  69. package/lib/design-tokens/css/tokens/functional/components/prose/colors-with-modes.css +1 -1
  70. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  71. package/lib/design-tokens/css/tokens/functional/components/river/river.css +1 -1
  72. package/lib/design-tokens/css/tokens/functional/components/river-story-scroll/colors-with-modes.css +1 -1
  73. package/lib/design-tokens/css/tokens/functional/components/section/section.css +1 -1
  74. package/lib/design-tokens/css/tokens/functional/components/statistic/base.css +1 -1
  75. package/lib/design-tokens/css/tokens/functional/components/sub-nav/base.css +1 -1
  76. package/lib/design-tokens/css/tokens/functional/components/sub-nav/colors-with-modes.css +1 -1
  77. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  78. package/lib/design-tokens/css/tokens/functional/components/tabs/base.css +1 -1
  79. package/lib/design-tokens/css/tokens/functional/components/tabs/colors-with-modes.css +1 -1
  80. package/lib/design-tokens/css/tokens/functional/components/tabs/colors.css +1 -1
  81. package/lib/design-tokens/css/tokens/functional/components/testimonial/base.css +1 -1
  82. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors-with-modes.css +1 -1
  83. package/lib/design-tokens/css/tokens/functional/components/testimonial/colors.css +1 -1
  84. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/base.css +1 -1
  85. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors-with-modes.css +1 -1
  86. package/lib/design-tokens/css/tokens/functional/components/text-cursor-animation/colors.css +1 -1
  87. package/lib/design-tokens/css/tokens/functional/components/tiles/colors-with-modes.css +1 -1
  88. package/lib/design-tokens/css/tokens/functional/components/timeline/base.css +1 -1
  89. package/lib/design-tokens/css/tokens/functional/components/timeline/colors-with-modes.css +1 -1
  90. package/lib/design-tokens/css/tokens/functional/components/timeline/colors.css +1 -1
  91. package/lib/design-tokens/css/tokens/functional/components/token/colors-with-modes.css +1 -1
  92. package/lib/design-tokens/css/tokens/functional/components/token/colors.css +1 -1
  93. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors-with-modes.css +1 -1
  94. package/lib/design-tokens/css/tokens/functional/components/tooltip/colors.css +1 -1
  95. package/lib/design-tokens/css/tokens/functional/components/video-player/base.css +1 -1
  96. package/lib/design-tokens/css/tokens/functional/components/video-player/colors-with-modes.css +1 -1
  97. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  98. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  99. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  100. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  101. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  102. package/lib/design-tokens/css/tokens/functional/size/viewport.css +1 -1
  103. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  104. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  105. package/lib/design-tokens/js/module/tokens/base/colors/light.js +1 -1
  106. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  107. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  108. package/lib/design-tokens/js/module/tokens/functional/animation/base.js +1 -1
  109. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  110. package/lib/design-tokens/js/module/tokens/functional/components/bento/base.js +1 -1
  111. package/lib/design-tokens/js/module/tokens/functional/components/card/base.js +1 -1
  112. package/lib/design-tokens/js/module/tokens/functional/components/card/colors.js +1 -1
  113. package/lib/design-tokens/js/module/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  114. package/lib/design-tokens/js/module/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  115. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  116. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  117. package/lib/design-tokens/js/module/tokens/functional/components/faq/faq.js +1 -1
  118. package/lib/design-tokens/js/module/tokens/functional/components/footer/base.js +1 -1
  119. package/lib/design-tokens/js/module/tokens/functional/components/footer/colors.js +1 -1
  120. package/lib/design-tokens/js/module/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  121. package/lib/design-tokens/js/module/tokens/functional/components/grid/colors.js +1 -1
  122. package/lib/design-tokens/js/module/tokens/functional/components/grid/grid.js +1 -1
  123. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  124. package/lib/design-tokens/js/module/tokens/functional/components/icon/colors.js +1 -1
  125. package/lib/design-tokens/js/module/tokens/functional/components/ide/base.js +1 -1
  126. package/lib/design-tokens/js/module/tokens/functional/components/image/base.js +1 -1
  127. package/lib/design-tokens/js/module/tokens/functional/components/inline-code/colors.js +1 -1
  128. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/base.js +1 -1
  129. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  130. package/lib/design-tokens/js/module/tokens/functional/components/label/colors.js +1 -1
  131. package/lib/design-tokens/js/module/tokens/functional/components/link/colors.js +1 -1
  132. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/base.js +1 -1
  133. package/lib/design-tokens/js/module/tokens/functional/components/logosuite/colors.js +1 -1
  134. package/lib/design-tokens/js/module/tokens/functional/components/media-playlist/colors.js +1 -1
  135. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/colors.js +1 -1
  136. package/lib/design-tokens/js/module/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  137. package/lib/design-tokens/js/module/tokens/functional/components/prose/base.js +1 -1
  138. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  139. package/lib/design-tokens/js/module/tokens/functional/components/river/river.js +1 -1
  140. package/lib/design-tokens/js/module/tokens/functional/components/section/section.js +1 -1
  141. package/lib/design-tokens/js/module/tokens/functional/components/statistic/base.js +1 -1
  142. package/lib/design-tokens/js/module/tokens/functional/components/sub-nav/base.js +1 -1
  143. package/lib/design-tokens/js/module/tokens/functional/components/tabs/base.js +1 -1
  144. package/lib/design-tokens/js/module/tokens/functional/components/tabs/colors.js +1 -1
  145. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/base.js +1 -1
  146. package/lib/design-tokens/js/module/tokens/functional/components/testimonial/colors.js +1 -1
  147. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/base.js +1 -1
  148. package/lib/design-tokens/js/module/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  149. package/lib/design-tokens/js/module/tokens/functional/components/timeline/base.js +1 -1
  150. package/lib/design-tokens/js/module/tokens/functional/components/timeline/colors.js +1 -1
  151. package/lib/design-tokens/js/module/tokens/functional/components/token/colors.js +1 -1
  152. package/lib/design-tokens/js/module/tokens/functional/components/tooltip/colors.js +1 -1
  153. package/lib/design-tokens/js/module/tokens/functional/components/video-player/base.js +1 -1
  154. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  155. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  156. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  157. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  158. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  159. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  160. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  161. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  162. package/lib/design-tokens/js/tokens/base/colors/light.js +1 -1
  163. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  164. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  165. package/lib/design-tokens/js/tokens/functional/animation/base.js +1 -1
  166. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  167. package/lib/design-tokens/js/tokens/functional/components/bento/base.js +1 -1
  168. package/lib/design-tokens/js/tokens/functional/components/card/base.js +1 -1
  169. package/lib/design-tokens/js/tokens/functional/components/card/colors.js +1 -1
  170. package/lib/design-tokens/js/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  171. package/lib/design-tokens/js/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  172. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  173. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  174. package/lib/design-tokens/js/tokens/functional/components/faq/faq.js +1 -1
  175. package/lib/design-tokens/js/tokens/functional/components/footer/base.js +1 -1
  176. package/lib/design-tokens/js/tokens/functional/components/footer/colors.js +1 -1
  177. package/lib/design-tokens/js/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  178. package/lib/design-tokens/js/tokens/functional/components/grid/colors.js +1 -1
  179. package/lib/design-tokens/js/tokens/functional/components/grid/grid.js +1 -1
  180. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  181. package/lib/design-tokens/js/tokens/functional/components/icon/colors.js +1 -1
  182. package/lib/design-tokens/js/tokens/functional/components/ide/base.js +1 -1
  183. package/lib/design-tokens/js/tokens/functional/components/image/base.js +1 -1
  184. package/lib/design-tokens/js/tokens/functional/components/inline-code/colors.js +1 -1
  185. package/lib/design-tokens/js/tokens/functional/components/inline-link/base.js +1 -1
  186. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  187. package/lib/design-tokens/js/tokens/functional/components/label/colors.js +1 -1
  188. package/lib/design-tokens/js/tokens/functional/components/link/colors.js +1 -1
  189. package/lib/design-tokens/js/tokens/functional/components/logosuite/base.js +1 -1
  190. package/lib/design-tokens/js/tokens/functional/components/logosuite/colors.js +1 -1
  191. package/lib/design-tokens/js/tokens/functional/components/media-playlist/colors.js +1 -1
  192. package/lib/design-tokens/js/tokens/functional/components/pricing-options/colors.js +1 -1
  193. package/lib/design-tokens/js/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  194. package/lib/design-tokens/js/tokens/functional/components/prose/base.js +1 -1
  195. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  196. package/lib/design-tokens/js/tokens/functional/components/river/river.js +1 -1
  197. package/lib/design-tokens/js/tokens/functional/components/section/section.js +1 -1
  198. package/lib/design-tokens/js/tokens/functional/components/statistic/base.js +1 -1
  199. package/lib/design-tokens/js/tokens/functional/components/sub-nav/base.js +1 -1
  200. package/lib/design-tokens/js/tokens/functional/components/tabs/base.js +1 -1
  201. package/lib/design-tokens/js/tokens/functional/components/tabs/colors.js +1 -1
  202. package/lib/design-tokens/js/tokens/functional/components/testimonial/base.js +1 -1
  203. package/lib/design-tokens/js/tokens/functional/components/testimonial/colors.js +1 -1
  204. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/base.js +1 -1
  205. package/lib/design-tokens/js/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  206. package/lib/design-tokens/js/tokens/functional/components/timeline/base.js +1 -1
  207. package/lib/design-tokens/js/tokens/functional/components/timeline/colors.js +1 -1
  208. package/lib/design-tokens/js/tokens/functional/components/token/colors.js +1 -1
  209. package/lib/design-tokens/js/tokens/functional/components/tooltip/colors.js +1 -1
  210. package/lib/design-tokens/js/tokens/functional/components/video-player/base.js +1 -1
  211. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  212. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  213. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  214. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  215. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  216. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  217. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  218. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  219. package/lib/design-tokens/scss/tokens/base/colors/light.scss +1 -1
  220. package/lib/design-tokens/scss/tokens/base/size/size.scss +1 -1
  221. package/lib/design-tokens/scss/tokens/base/typography/typography.scss +1 -1
  222. package/lib/design-tokens/scss/tokens/functional/animation/base.scss +1 -1
  223. package/lib/design-tokens/scss/tokens/functional/colors/global.scss +1 -1
  224. package/lib/design-tokens/scss/tokens/functional/components/bento/base.scss +1 -1
  225. package/lib/design-tokens/scss/tokens/functional/components/card/base.scss +1 -1
  226. package/lib/design-tokens/scss/tokens/functional/components/card/colors.scss +1 -1
  227. package/lib/design-tokens/scss/tokens/functional/components/comparison-table/comparison-table.scss +1 -1
  228. package/lib/design-tokens/scss/tokens/functional/components/eyebrow-banner/eyebrow-banner.scss +1 -1
  229. package/lib/design-tokens/scss/tokens/functional/components/faq/base.scss +1 -1
  230. package/lib/design-tokens/scss/tokens/functional/components/faq/colors.scss +1 -1
  231. package/lib/design-tokens/scss/tokens/functional/components/faq/faq.scss +1 -1
  232. package/lib/design-tokens/scss/tokens/functional/components/footer/base.scss +1 -1
  233. package/lib/design-tokens/scss/tokens/functional/components/footer/colors.scss +1 -1
  234. package/lib/design-tokens/scss/tokens/functional/components/frosted-glass-vfx/base.scss +1 -1
  235. package/lib/design-tokens/scss/tokens/functional/components/grid/colors.scss +1 -1
  236. package/lib/design-tokens/scss/tokens/functional/components/grid/grid.scss +1 -1
  237. package/lib/design-tokens/scss/tokens/functional/components/hero/base.scss +1 -1
  238. package/lib/design-tokens/scss/tokens/functional/components/icon/colors.scss +1 -1
  239. package/lib/design-tokens/scss/tokens/functional/components/ide/base.scss +1 -1
  240. package/lib/design-tokens/scss/tokens/functional/components/image/base.scss +1 -1
  241. package/lib/design-tokens/scss/tokens/functional/components/inline-code/colors.scss +1 -1
  242. package/lib/design-tokens/scss/tokens/functional/components/inline-link/base.scss +1 -1
  243. package/lib/design-tokens/scss/tokens/functional/components/inline-link/colors.scss +1 -1
  244. package/lib/design-tokens/scss/tokens/functional/components/label/colors.scss +1 -1
  245. package/lib/design-tokens/scss/tokens/functional/components/link/colors.scss +1 -1
  246. package/lib/design-tokens/scss/tokens/functional/components/logosuite/base.scss +1 -1
  247. package/lib/design-tokens/scss/tokens/functional/components/logosuite/colors.scss +1 -1
  248. package/lib/design-tokens/scss/tokens/functional/components/media-playlist/colors.scss +1 -1
  249. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/colors.scss +1 -1
  250. package/lib/design-tokens/scss/tokens/functional/components/pricing-options/pricing-options.scss +1 -1
  251. package/lib/design-tokens/scss/tokens/functional/components/prose/base.scss +1 -1
  252. package/lib/design-tokens/scss/tokens/functional/components/river/base.scss +1 -1
  253. package/lib/design-tokens/scss/tokens/functional/components/river/river.scss +1 -1
  254. package/lib/design-tokens/scss/tokens/functional/components/section/section.scss +1 -1
  255. package/lib/design-tokens/scss/tokens/functional/components/statistic/base.scss +1 -1
  256. package/lib/design-tokens/scss/tokens/functional/components/sub-nav/base.scss +1 -1
  257. package/lib/design-tokens/scss/tokens/functional/components/tabs/base.scss +1 -1
  258. package/lib/design-tokens/scss/tokens/functional/components/tabs/colors.scss +1 -1
  259. package/lib/design-tokens/scss/tokens/functional/components/testimonial/base.scss +1 -1
  260. package/lib/design-tokens/scss/tokens/functional/components/testimonial/colors.scss +1 -1
  261. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/base.scss +1 -1
  262. package/lib/design-tokens/scss/tokens/functional/components/text-cursor-animation/colors.scss +1 -1
  263. package/lib/design-tokens/scss/tokens/functional/components/timeline/base.scss +1 -1
  264. package/lib/design-tokens/scss/tokens/functional/components/timeline/colors.scss +1 -1
  265. package/lib/design-tokens/scss/tokens/functional/components/token/colors.scss +1 -1
  266. package/lib/design-tokens/scss/tokens/functional/components/tooltip/colors.scss +1 -1
  267. package/lib/design-tokens/scss/tokens/functional/components/video-player/base.scss +1 -1
  268. package/lib/design-tokens/scss/tokens/functional/size/border.scss +1 -1
  269. package/lib/design-tokens/scss/tokens/functional/size/breakpoints.scss +1 -1
  270. package/lib/design-tokens/scss/tokens/functional/size/size-coarse.scss +1 -1
  271. package/lib/design-tokens/scss/tokens/functional/size/size-fine.scss +1 -1
  272. package/lib/design-tokens/scss/tokens/functional/size/size.scss +1 -1
  273. package/lib/design-tokens/scss/tokens/functional/size/viewport.scss +1 -1
  274. package/lib/design-tokens/scss/tokens/functional/typography/typography-responsive.scss +1 -1
  275. package/lib/design-tokens/scss/tokens/functional/typography/typography.scss +1 -1
  276. package/lib/design-tokens/ts/tokens/base/colors/light.d.ts +1 -1
  277. package/lib/design-tokens/ts/tokens/base/colors/light.js +1 -1
  278. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  279. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  280. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  281. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  282. package/lib/design-tokens/ts/tokens/functional/animation/base.d.ts +1 -1
  283. package/lib/design-tokens/ts/tokens/functional/animation/base.js +1 -1
  284. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  285. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  286. package/lib/design-tokens/ts/tokens/functional/components/bento/base.d.ts +1 -1
  287. package/lib/design-tokens/ts/tokens/functional/components/bento/base.js +1 -1
  288. package/lib/design-tokens/ts/tokens/functional/components/card/base.d.ts +1 -1
  289. package/lib/design-tokens/ts/tokens/functional/components/card/base.js +1 -1
  290. package/lib/design-tokens/ts/tokens/functional/components/card/colors.d.ts +1 -1
  291. package/lib/design-tokens/ts/tokens/functional/components/card/colors.js +1 -1
  292. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.d.ts +1 -1
  293. package/lib/design-tokens/ts/tokens/functional/components/comparison-table/comparison-table.js +1 -1
  294. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.d.ts +1 -1
  295. package/lib/design-tokens/ts/tokens/functional/components/eyebrow-banner/eyebrow-banner.js +1 -1
  296. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  297. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  298. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  299. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  300. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.d.ts +1 -1
  301. package/lib/design-tokens/ts/tokens/functional/components/faq/faq.js +1 -1
  302. package/lib/design-tokens/ts/tokens/functional/components/footer/base.d.ts +1 -1
  303. package/lib/design-tokens/ts/tokens/functional/components/footer/base.js +1 -1
  304. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.d.ts +1 -1
  305. package/lib/design-tokens/ts/tokens/functional/components/footer/colors.js +1 -1
  306. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.d.ts +1 -1
  307. package/lib/design-tokens/ts/tokens/functional/components/frosted-glass-vfx/base.js +1 -1
  308. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.d.ts +1 -1
  309. package/lib/design-tokens/ts/tokens/functional/components/grid/colors.js +1 -1
  310. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.d.ts +1 -1
  311. package/lib/design-tokens/ts/tokens/functional/components/grid/grid.js +1 -1
  312. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  313. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  314. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.d.ts +1 -1
  315. package/lib/design-tokens/ts/tokens/functional/components/icon/colors.js +1 -1
  316. package/lib/design-tokens/ts/tokens/functional/components/ide/base.d.ts +1 -1
  317. package/lib/design-tokens/ts/tokens/functional/components/ide/base.js +1 -1
  318. package/lib/design-tokens/ts/tokens/functional/components/image/base.d.ts +1 -1
  319. package/lib/design-tokens/ts/tokens/functional/components/image/base.js +1 -1
  320. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.d.ts +1 -1
  321. package/lib/design-tokens/ts/tokens/functional/components/inline-code/colors.js +1 -1
  322. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.d.ts +1 -1
  323. package/lib/design-tokens/ts/tokens/functional/components/inline-link/base.js +1 -1
  324. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  325. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  326. package/lib/design-tokens/ts/tokens/functional/components/label/colors.d.ts +1 -1
  327. package/lib/design-tokens/ts/tokens/functional/components/label/colors.js +1 -1
  328. package/lib/design-tokens/ts/tokens/functional/components/link/colors.d.ts +1 -1
  329. package/lib/design-tokens/ts/tokens/functional/components/link/colors.js +1 -1
  330. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.d.ts +1 -1
  331. package/lib/design-tokens/ts/tokens/functional/components/logosuite/base.js +1 -1
  332. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.d.ts +1 -1
  333. package/lib/design-tokens/ts/tokens/functional/components/logosuite/colors.js +1 -1
  334. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.d.ts +1 -1
  335. package/lib/design-tokens/ts/tokens/functional/components/media-playlist/colors.js +1 -1
  336. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.d.ts +1 -1
  337. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/colors.js +1 -1
  338. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.d.ts +1 -1
  339. package/lib/design-tokens/ts/tokens/functional/components/pricing-options/pricing-options.js +1 -1
  340. package/lib/design-tokens/ts/tokens/functional/components/prose/base.d.ts +1 -1
  341. package/lib/design-tokens/ts/tokens/functional/components/prose/base.js +1 -1
  342. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  343. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  344. package/lib/design-tokens/ts/tokens/functional/components/river/river.d.ts +1 -1
  345. package/lib/design-tokens/ts/tokens/functional/components/river/river.js +1 -1
  346. package/lib/design-tokens/ts/tokens/functional/components/section/section.d.ts +1 -1
  347. package/lib/design-tokens/ts/tokens/functional/components/section/section.js +1 -1
  348. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.d.ts +1 -1
  349. package/lib/design-tokens/ts/tokens/functional/components/statistic/base.js +1 -1
  350. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.d.ts +1 -1
  351. package/lib/design-tokens/ts/tokens/functional/components/sub-nav/base.js +1 -1
  352. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.d.ts +1 -1
  353. package/lib/design-tokens/ts/tokens/functional/components/tabs/base.js +1 -1
  354. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.d.ts +1 -1
  355. package/lib/design-tokens/ts/tokens/functional/components/tabs/colors.js +1 -1
  356. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.d.ts +1 -1
  357. package/lib/design-tokens/ts/tokens/functional/components/testimonial/base.js +1 -1
  358. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.d.ts +1 -1
  359. package/lib/design-tokens/ts/tokens/functional/components/testimonial/colors.js +1 -1
  360. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.d.ts +1 -1
  361. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/base.js +1 -1
  362. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.d.ts +1 -1
  363. package/lib/design-tokens/ts/tokens/functional/components/text-cursor-animation/colors.js +1 -1
  364. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.d.ts +1 -1
  365. package/lib/design-tokens/ts/tokens/functional/components/timeline/base.js +1 -1
  366. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.d.ts +1 -1
  367. package/lib/design-tokens/ts/tokens/functional/components/timeline/colors.js +1 -1
  368. package/lib/design-tokens/ts/tokens/functional/components/token/colors.d.ts +1 -1
  369. package/lib/design-tokens/ts/tokens/functional/components/token/colors.js +1 -1
  370. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.d.ts +1 -1
  371. package/lib/design-tokens/ts/tokens/functional/components/tooltip/colors.js +1 -1
  372. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.d.ts +1 -1
  373. package/lib/design-tokens/ts/tokens/functional/components/video-player/base.js +1 -1
  374. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  375. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  376. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  377. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  378. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  379. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  380. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  381. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  382. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  383. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  384. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  385. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  386. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  387. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  388. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  389. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  390. package/lib/index.js +1 -1
  391. package/llms.txt +2 -2
  392. package/package.json +1 -1
package/docs/index.md CHANGED
@@ -1,6 +1,6 @@
1
- # Primer Brand docs (v0.76.0)
1
+ # Primer Brand docs (v0.77.0-rc.d45b2bb1)
2
2
 
3
- These docs are bundled with `@primer/react-brand@0.76.0` and match your installed version.
3
+ These docs are bundled with `@primer/react-brand@0.77.0-rc.d45b2bb1` and match your installed version.
4
4
 
5
5
  New here? Start with [Getting started](getting-started/index.md) for installation, global
6
6
  stylesheet and font setup. Component directories are named after their import (e.g.
@@ -43,6 +43,8 @@ Primer Brand supports the following color modes through a dedicated prop by appl
43
43
  | Light | `light` | `data-color-mode="light"` |
44
44
  | Dark | `dark` | `data-color-mode="dark"` |
45
45
 
46
+ In-product appearance modes such as `dark_dimmed` and `light_high_contrast` resolve internally to Primer Brand's `dark` or `light` defaults. The resolved value is returned by `useTheme().colorMode` and applied to `data-color-mode`.
47
+
46
48
  The `ThemeProvider` applies the data attributes and handles state-changes internally.
47
49
 
48
50
  **`ThemeProvider` will apply `light` mode by default if the `colorMode` is not specified. This is recommended for top-level placement.**
@@ -4,9 +4,10 @@ export declare enum ColorModesEnum {
4
4
  DARK = "dark",
5
5
  AUTO = "auto"
6
6
  }
7
- export type ColorMode = `${ColorModesEnum}`;
7
+ export type ColorMode = `${ColorModesEnum}` | (string & {});
8
+ export type ResolvedColorMode = ColorModesEnum.LIGHT | ColorModesEnum.DARK;
8
9
  export type ThemeContextProps = {
9
- colorMode: ColorMode;
10
+ colorMode: ResolvedColorMode;
10
11
  availableColorModes: ColorModesEnum[];
11
12
  };
12
13
  export type ThemeProviderProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA8C,cAAc,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAE3G,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,cAAc,EAAE,CAAA;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAI9B,SAAS,EAAE,SAAS,CAAA;IAKpB,mBAAmB,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAIlC,eAAO,MAAM,YAAY,kCAGvB,CAAA;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAC,SAAuB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,qBAqBhH"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAmC,cAAc,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAGhG,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,cAAc,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAC3D,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAA;AAW1E,MAAM,MAAM,iBAAiB,GAAG;IAI9B,SAAS,EAAE,iBAAiB,CAAA;IAK5B,mBAAmB,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAGlC,eAAO,MAAM,YAAY,kCAGvB,CAAA;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAC,SAAuB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,qBAmBhH"}
@@ -1,35 +1,38 @@
1
- import { createContext as e, useEffect as t, useMemo as n, useState as r } from "react";
1
+ import e from "../hooks/useIsomorphicLayoutEffect.js";
2
+ import { createContext as t, useMemo as n, useState as r } from "react";
2
3
  import { jsx as i } from "react/jsx-runtime";
3
4
  //#region src/ThemeProvider/ThemeProvider.tsx
4
5
  var a = /* @__PURE__ */ function(e) {
5
6
  return e.LIGHT = "light", e.DARK = "dark", e.AUTO = "auto", e;
6
- }({}), o = "light", s = e({
7
- colorMode: o,
7
+ }({});
8
+ function o(e) {
9
+ return e === "dark" || e.startsWith("dark_") ? "dark" : "light";
10
+ }
11
+ var s = "light", c = t({
12
+ colorMode: s,
8
13
  availableColorModes: Object.values(a)
9
14
  });
10
- function c({ colorMode: e = o, children: c, ...l }) {
11
- let [f, p] = r(e), m = n(() => Object.values(a), []);
12
- return t(() => (e === "auto" ? p(u()) : f !== e && p(e), d(p)), [
13
- e,
14
- f,
15
- p
16
- ]), /* @__PURE__ */ i(s.Provider, {
15
+ function l({ colorMode: t = s, children: l, ...u }) {
16
+ let [p, m] = r(s), h = t === "auto" ? p : o(t), g = n(() => Object.values(a), []);
17
+ return e(() => {
18
+ if (t === "auto") return m(d()), f(m);
19
+ }, [t]), /* @__PURE__ */ i(c.Provider, {
17
20
  value: {
18
- colorMode: f,
19
- availableColorModes: m
21
+ colorMode: h,
22
+ availableColorModes: g
20
23
  },
21
24
  children: /* @__PURE__ */ i("div", {
22
- "data-color-mode": f,
23
- ...l,
24
- children: c
25
+ "data-color-mode": h,
26
+ ...u,
27
+ children: l
25
28
  })
26
29
  });
27
30
  }
28
- var l = () => window.matchMedia("(prefers-color-scheme: dark)"), u = () => l().matches ? "dark" : "light", d = (e) => {
29
- let t = l(), n = (t) => e(t.matches ? "dark" : "light");
31
+ var u = () => window.matchMedia("(prefers-color-scheme: dark)"), d = () => u().matches ? "dark" : "light", f = (e) => {
32
+ let t = u(), n = (t) => e(t.matches ? "dark" : "light");
30
33
  return t.addEventListener("change", n), () => t.removeEventListener("change", n);
31
34
  };
32
35
  //#endregion
33
- export { a as ColorModesEnum, s as ThemeContext, c as ThemeProvider };
36
+ export { a as ColorModesEnum, c as ThemeContext, l as ThemeProvider };
34
37
 
35
38
  //# sourceMappingURL=ThemeProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","names":[],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, createContext, HTMLAttributes, PropsWithChildren} from 'react'\n\nexport enum ColorModesEnum {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\nexport type ColorMode = `${ColorModesEnum}`\n\nexport type ThemeContextProps = {\n /*\n * The active color mode of the parent ThemeProvider.\n */\n colorMode: ColorMode\n\n /*\n * List of available color modes.\n */\n availableColorModes: ColorModesEnum[]\n}\n\nexport type ThemeProviderProps = {\n colorMode?: ColorMode\n} & HTMLAttributes<HTMLDivElement>\n\nconst defaultMode = ColorModesEnum.LIGHT\n\nexport const ThemeContext = createContext<ThemeContextProps>({\n colorMode: defaultMode,\n availableColorModes: Object.values(ColorModesEnum),\n})\n\n/**\n * ThemeProvider is used to provide theme-related context to its child components.\n */\nexport function ThemeProvider({colorMode = defaultMode, children, ...rest}: PropsWithChildren<ThemeProviderProps>) {\n const [activeMode, setActiveMode] = useState(colorMode)\n const availableColorModes = useMemo(() => Object.values(ColorModesEnum), [])\n\n useEffect(() => {\n if (colorMode === ColorModesEnum.AUTO) {\n setActiveMode(getActiveAutoMode())\n } else if (activeMode !== colorMode) {\n setActiveMode(colorMode)\n }\n\n return handleSystemPreferenceChange(setActiveMode)\n }, [colorMode, activeMode, setActiveMode])\n\n return (\n <ThemeContext.Provider value={{colorMode: activeMode, availableColorModes}}>\n <div data-color-mode={activeMode} {...rest}>\n {children}\n </div>\n </ThemeContext.Provider>\n )\n}\n\nconst queryBrowserPreference = () => window.matchMedia(`(prefers-color-scheme: ${ColorModesEnum.DARK})`)\n\nconst getActiveAutoMode = () => {\n const mediaQueryList: MediaQueryList = queryBrowserPreference()\n return mediaQueryList.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT\n}\n\nconst handleSystemPreferenceChange = callback => {\n const mediaQueryList = queryBrowserPreference()\n const changeHandler = event => callback(event.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT)\n mediaQueryList.addEventListener('change', changeHandler)\n return () => mediaQueryList.removeEventListener('change', changeHandler)\n}\n"],"mappings":";;;AAEA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,QAAA,SACA,EAAA,OAAA,QACA,EAAA,OAAA;AACF,EAAA,CAAA,CAAA,GAoBM,IAAA,SAEO,IAAe,EAAiC;CAC3D,WAAW;CACX,qBAAqB,OAAO,OAAO,CAAc;AACnD,CAAC;AAKD,SAAgB,EAAc,EAAC,eAAY,GAAa,aAAU,GAAG,KAA8C;CACjH,IAAM,CAAC,GAAY,KAAiB,EAAS,CAAS,GAChD,IAAsB,QAAc,OAAO,OAAO,CAAc,GAAG,CAAC,CAAC;CAY3E,OAVA,SACM,MAAA,SACF,EAAc,EAAkB,CAAC,IACxB,MAAe,KACxB,EAAc,CAAS,GAGlB,EAA6B,CAAa,IAChD;EAAC;EAAW;EAAY;CAAa,CAAC,GAGvC,kBAAC,EAAa,UAAd;EAAuB,OAAO;GAAC,WAAW;GAAY;EAAmB;YACvE,kBAAC,OAAD;GAAK,mBAAiB;GAAY,GAAI;GACnC;EACE,CAAA;CACgB,CAAA;AAE3B;AAEA,IAAM,UAA+B,OAAO,WAAW,8BAAgD,GAEjG,UACmC,EAChC,CAAA,CAAe,UAAA,SAAA,SAGlB,KAA+B,MAAY;CAC/C,IAAM,IAAiB,EAAuB,GACxC,KAAgB,MAAS,EAAS,EAAM,UAAA,SAAA,OAAoD;CAElG,OADA,EAAe,iBAAiB,UAAU,CAAa,SAC1C,EAAe,oBAAoB,UAAU,CAAa;AACzE"}
1
+ {"version":3,"file":"ThemeProvider.js","names":[],"sources":["../../src/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import React, {useState, useMemo, createContext, HTMLAttributes, PropsWithChildren} from 'react'\nimport useIsomorphicLayoutEffect from '../hooks/useIsomorphicLayoutEffect'\n\nexport enum ColorModesEnum {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\nexport type ColorMode = `${ColorModesEnum}` | (string & {})\nexport type ResolvedColorMode = ColorModesEnum.LIGHT | ColorModesEnum.DARK\n\n/**\n * Resolves a color mode to the light or dark theme it should use.\n */\nfunction resolveColorMode(mode: string): ResolvedColorMode {\n return mode === ColorModesEnum.DARK || mode.startsWith(`${ColorModesEnum.DARK}_`)\n ? ColorModesEnum.DARK\n : ColorModesEnum.LIGHT\n}\n\nexport type ThemeContextProps = {\n /*\n * The active color mode of the parent ThemeProvider.\n */\n colorMode: ResolvedColorMode\n\n /*\n * List of available color modes.\n */\n availableColorModes: ColorModesEnum[]\n}\n\nexport type ThemeProviderProps = {\n colorMode?: ColorMode\n} & HTMLAttributes<HTMLDivElement>\n\nconst defaultMode = ColorModesEnum.LIGHT\nexport const ThemeContext = createContext<ThemeContextProps>({\n colorMode: defaultMode,\n availableColorModes: Object.values(ColorModesEnum),\n})\n\n/**\n * ThemeProvider is used to provide theme-related context to its child components.\n */\nexport function ThemeProvider({colorMode = defaultMode, children, ...rest}: PropsWithChildren<ThemeProviderProps>) {\n const [autoMode, setAutoMode] = useState<ResolvedColorMode>(defaultMode)\n const activeMode = colorMode === ColorModesEnum.AUTO ? autoMode : resolveColorMode(colorMode)\n const availableColorModes = useMemo(() => Object.values(ColorModesEnum), [])\n\n useIsomorphicLayoutEffect(() => {\n if (colorMode !== ColorModesEnum.AUTO) return\n\n setAutoMode(getActiveAutoMode())\n return handleSystemPreferenceChange(setAutoMode)\n }, [colorMode])\n\n return (\n <ThemeContext.Provider value={{colorMode: activeMode, availableColorModes}}>\n <div data-color-mode={activeMode} {...rest}>\n {children}\n </div>\n </ThemeContext.Provider>\n )\n}\n\nconst queryBrowserPreference = () => window.matchMedia(`(prefers-color-scheme: ${ColorModesEnum.DARK})`)\n\nconst getActiveAutoMode = (): ResolvedColorMode => {\n const mediaQueryList: MediaQueryList = queryBrowserPreference()\n return mediaQueryList.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT\n}\n\nconst handleSystemPreferenceChange = (callback: (mode: ResolvedColorMode) => void) => {\n const mediaQueryList = queryBrowserPreference()\n const changeHandler = (event: MediaQueryListEvent) =>\n callback(event.matches ? ColorModesEnum.DARK : ColorModesEnum.LIGHT)\n mediaQueryList.addEventListener('change', changeHandler)\n return () => mediaQueryList.removeEventListener('change', changeHandler)\n}\n"],"mappings":";;;;AAGA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,QAAA,SACA,EAAA,OAAA,QACA,EAAA,OAAA;AACF,EAAA,CAAA,CAAA;AAQA,SAAS,EAAiB,GAAiC;CACzD,OAAO,MAAA,UAAgC,EAAK,WAAW,OAAyB,IAAA,SAAA;AAGlF;AAkBA,IAAM,IAAA,SACO,IAAe,EAAiC;CAC3D,WAAW;CACX,qBAAqB,OAAO,OAAO,CAAc;AACnD,CAAC;AAKD,SAAgB,EAAc,EAAC,eAAY,GAAa,aAAU,GAAG,KAA8C;CACjH,IAAM,CAAC,GAAU,KAAe,EAA4B,CAAW,GACjE,IAAa,MAAA,SAAoC,IAAW,EAAiB,CAAS,GACtF,IAAsB,QAAc,OAAO,OAAO,CAAc,GAAG,CAAC,CAAC;CAS3E,OAPA,QAAgC;EAC1B,UAAA,QAGJ,OADA,EAAY,EAAkB,CAAC,GACxB,EAA6B,CAAW;CACjD,GAAG,CAAC,CAAS,CAAC,GAGZ,kBAAC,EAAa,UAAd;EAAuB,OAAO;GAAC,WAAW;GAAY;EAAmB;YACvE,kBAAC,OAAD;GAAK,mBAAiB;GAAY,GAAI;GACnC;EACE,CAAA;CACgB,CAAA;AAE3B;AAEA,IAAM,UAA+B,OAAO,WAAW,8BAAgD,GAEjG,UACmC,EAChC,CAAA,CAAe,UAAA,SAAA,SAGlB,KAAgC,MAAgD;CACpF,IAAM,IAAiB,EAAuB,GACxC,KAAiB,MACrB,EAAS,EAAM,UAAA,SAAA,OAAoD;CAErE,OADA,EAAe,iBAAiB,UAAU,CAAa,SAC1C,EAAe,oBAAoB,UAAU,CAAa;AACzE"}
@@ -4,9 +4,10 @@ export declare enum ColorModesEnum {
4
4
  DARK = "dark",
5
5
  AUTO = "auto"
6
6
  }
7
- export type ColorMode = `${ColorModesEnum}`;
7
+ export type ColorMode = `${ColorModesEnum}` | (string & {});
8
+ export type ResolvedColorMode = ColorModesEnum.LIGHT | ColorModesEnum.DARK;
8
9
  export type ThemeContextProps = {
9
- colorMode: ColorMode;
10
+ colorMode: ResolvedColorMode;
10
11
  availableColorModes: ColorModesEnum[];
11
12
  };
12
13
  export type ThemeProviderProps = {