zero-to-app 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/brand/brand-config.d.ts +65 -0
  2. package/dist/brand/brand-config.d.ts.map +1 -0
  3. package/dist/brand/brand-config.js +68 -0
  4. package/dist/brand/brand-config.js.map +1 -0
  5. package/dist/brand/brand-context.d.ts +55 -0
  6. package/dist/brand/brand-context.d.ts.map +1 -0
  7. package/dist/brand/brand-context.js +76 -0
  8. package/dist/brand/brand-context.js.map +1 -0
  9. package/dist/brand/brand-types.d.ts +92 -0
  10. package/dist/brand/brand-types.d.ts.map +1 -0
  11. package/dist/brand/brand-types.js +2 -0
  12. package/dist/brand/brand-types.js.map +1 -0
  13. package/dist/brand/default-brand.d.ts +11 -0
  14. package/dist/brand/default-brand.d.ts.map +1 -0
  15. package/dist/brand/default-brand.js +32 -0
  16. package/dist/brand/default-brand.js.map +1 -0
  17. package/dist/brand/index.d.ts +5 -3
  18. package/dist/brand/index.d.ts.map +1 -1
  19. package/dist/brand/index.js +6 -3
  20. package/dist/brand/index.js.map +1 -1
  21. package/dist/brand/palette-generator.d.ts +64 -0
  22. package/dist/brand/palette-generator.d.ts.map +1 -0
  23. package/dist/brand/palette-generator.js +283 -0
  24. package/dist/brand/palette-generator.js.map +1 -0
  25. package/dist/components/index.d.ts +0 -8
  26. package/dist/components/index.d.ts.map +1 -1
  27. package/dist/components/index.js +0 -9
  28. package/dist/components/index.js.map +1 -1
  29. package/dist/components/navigation/app-tabs/app-tabs.d.ts +63 -0
  30. package/dist/components/navigation/app-tabs/app-tabs.d.ts.map +1 -0
  31. package/dist/components/navigation/app-tabs/app-tabs.js +13 -0
  32. package/dist/components/navigation/app-tabs/app-tabs.js.map +1 -0
  33. package/dist/components/navigation/app-tabs/app-tabs.web.d.ts +47 -0
  34. package/dist/components/navigation/app-tabs/app-tabs.web.d.ts.map +1 -0
  35. package/dist/components/navigation/app-tabs/app-tabs.web.js +104 -0
  36. package/dist/components/navigation/app-tabs/app-tabs.web.js.map +1 -0
  37. package/dist/components/navigation/app-tabs/index.d.ts +3 -0
  38. package/dist/components/navigation/app-tabs/index.d.ts.map +1 -0
  39. package/dist/components/navigation/app-tabs/index.js +3 -0
  40. package/dist/components/navigation/app-tabs/index.js.map +1 -0
  41. package/dist/components/navigation/drawer/drawer.d.ts +24 -0
  42. package/dist/components/navigation/drawer/drawer.d.ts.map +1 -0
  43. package/dist/components/navigation/drawer/drawer.js +82 -0
  44. package/dist/components/navigation/drawer/drawer.js.map +1 -0
  45. package/dist/components/navigation/index.d.ts +9 -5
  46. package/dist/components/navigation/index.d.ts.map +1 -1
  47. package/dist/components/navigation/index.js +9 -5
  48. package/dist/components/navigation/index.js.map +1 -1
  49. package/dist/components/navigation/native-header.d.ts +25 -0
  50. package/dist/components/navigation/native-header.d.ts.map +1 -0
  51. package/dist/components/navigation/native-header.js +32 -0
  52. package/dist/components/navigation/native-header.js.map +1 -0
  53. package/dist/components/navigation/shared/sidebar-styles.d.ts +34 -0
  54. package/dist/components/navigation/shared/sidebar-styles.d.ts.map +1 -0
  55. package/dist/components/navigation/shared/sidebar-styles.js +34 -0
  56. package/dist/components/navigation/shared/sidebar-styles.js.map +1 -0
  57. package/dist/components/navigation/sidebar/index.d.ts +10 -0
  58. package/dist/components/navigation/sidebar/index.d.ts.map +1 -0
  59. package/dist/components/navigation/sidebar/index.js +7 -0
  60. package/dist/components/navigation/sidebar/index.js.map +1 -0
  61. package/dist/components/navigation/sidebar/sidebar-footer.d.ts +18 -0
  62. package/dist/components/navigation/sidebar/sidebar-footer.d.ts.map +1 -0
  63. package/dist/components/navigation/sidebar/sidebar-footer.js +27 -0
  64. package/dist/components/navigation/sidebar/sidebar-footer.js.map +1 -0
  65. package/dist/components/navigation/sidebar/sidebar-header.d.ts +26 -0
  66. package/dist/components/navigation/sidebar/sidebar-header.d.ts.map +1 -0
  67. package/dist/components/navigation/sidebar/sidebar-header.js +38 -0
  68. package/dist/components/navigation/sidebar/sidebar-header.js.map +1 -0
  69. package/dist/components/navigation/sidebar/sidebar-item.d.ts +36 -0
  70. package/dist/components/navigation/sidebar/sidebar-item.d.ts.map +1 -0
  71. package/dist/components/navigation/sidebar/sidebar-item.js +63 -0
  72. package/dist/components/navigation/sidebar/sidebar-item.js.map +1 -0
  73. package/dist/components/navigation/sidebar/sidebar-section.d.ts +34 -0
  74. package/dist/components/navigation/sidebar/sidebar-section.d.ts.map +1 -0
  75. package/dist/components/navigation/sidebar/sidebar-section.js +56 -0
  76. package/dist/components/navigation/sidebar/sidebar-section.js.map +1 -0
  77. package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
  78. package/dist/components/navigation/sidebar/sidebar.d.ts.map +1 -0
  79. package/dist/components/navigation/sidebar/sidebar.js +4 -0
  80. package/dist/components/navigation/sidebar/sidebar.js.map +1 -0
  81. package/dist/components/navigation/sidebar/sidebar.native.d.ts +23 -0
  82. package/dist/components/navigation/sidebar/sidebar.native.d.ts.map +1 -0
  83. package/dist/components/navigation/sidebar/sidebar.native.js +80 -0
  84. package/dist/components/navigation/sidebar/sidebar.native.js.map +1 -0
  85. package/dist/components/navigation/sidebar/sidebar.web.d.ts +26 -0
  86. package/dist/components/navigation/sidebar/sidebar.web.d.ts.map +1 -0
  87. package/dist/components/navigation/sidebar/sidebar.web.js +90 -0
  88. package/dist/components/navigation/sidebar/sidebar.web.js.map +1 -0
  89. package/dist/components/navigation/themed-stack.d.ts +25 -0
  90. package/dist/components/navigation/themed-stack.d.ts.map +1 -0
  91. package/dist/components/navigation/themed-stack.js +37 -0
  92. package/dist/components/navigation/themed-stack.js.map +1 -0
  93. package/dist/components/shared/index.d.ts +2 -0
  94. package/dist/components/shared/index.d.ts.map +1 -0
  95. package/dist/components/shared/index.js +2 -0
  96. package/dist/components/shared/index.js.map +1 -0
  97. package/dist/components/shared/types.d.ts +82 -0
  98. package/dist/components/shared/types.d.ts.map +1 -0
  99. package/dist/components/{chat → shared}/types.js.map +1 -1
  100. package/dist/components/ui/button.d.ts +132 -0
  101. package/dist/components/ui/button.d.ts.map +1 -0
  102. package/dist/components/ui/button.js +253 -0
  103. package/dist/components/ui/button.js.map +1 -0
  104. package/dist/components/ui/collapsible.d.ts +88 -0
  105. package/dist/components/ui/collapsible.d.ts.map +1 -0
  106. package/dist/components/ui/collapsible.js +66 -0
  107. package/dist/components/ui/collapsible.js.map +1 -0
  108. package/dist/components/ui/container.d.ts +31 -0
  109. package/dist/components/ui/container.d.ts.map +1 -0
  110. package/dist/components/ui/container.js +46 -0
  111. package/dist/components/ui/container.js.map +1 -0
  112. package/dist/components/ui/fab.d.ts +51 -0
  113. package/dist/components/ui/fab.d.ts.map +1 -0
  114. package/dist/components/ui/fab.js +138 -0
  115. package/dist/components/ui/fab.js.map +1 -0
  116. package/dist/components/ui/index.d.ts +17 -12
  117. package/dist/components/ui/index.d.ts.map +1 -1
  118. package/dist/components/ui/index.js +15 -12
  119. package/dist/components/ui/index.js.map +1 -1
  120. package/dist/components/ui/screen.d.ts +40 -0
  121. package/dist/components/ui/screen.d.ts.map +1 -0
  122. package/dist/components/ui/screen.js +57 -0
  123. package/dist/components/ui/screen.js.map +1 -0
  124. package/dist/components/ui/themed-image.d.ts +7 -0
  125. package/dist/components/ui/themed-image.d.ts.map +1 -0
  126. package/dist/components/ui/themed-image.js +9 -0
  127. package/dist/components/ui/themed-image.js.map +1 -0
  128. package/dist/components/ui/themed-view.d.ts +20 -0
  129. package/dist/components/ui/themed-view.d.ts.map +1 -0
  130. package/dist/components/ui/themed-view.js +75 -0
  131. package/dist/components/ui/themed-view.js.map +1 -0
  132. package/dist/components/ui/typography.d.ts +110 -0
  133. package/dist/components/ui/typography.d.ts.map +1 -0
  134. package/dist/components/ui/typography.js +69 -0
  135. package/dist/components/ui/typography.js.map +1 -0
  136. package/dist/context/layout-context.d.ts +66 -0
  137. package/dist/context/layout-context.d.ts.map +1 -0
  138. package/dist/context/layout-context.js +83 -0
  139. package/dist/context/layout-context.js.map +1 -0
  140. package/dist/context/{scrollContext.d.ts → scroll-context.d.ts} +1 -1
  141. package/dist/context/scroll-context.d.ts.map +1 -0
  142. package/dist/context/{scrollContext.js → scroll-context.js} +1 -1
  143. package/dist/context/scroll-context.js.map +1 -0
  144. package/dist/context/sidebar-context.d.ts +74 -0
  145. package/dist/context/sidebar-context.d.ts.map +1 -0
  146. package/dist/context/sidebar-context.js +95 -0
  147. package/dist/context/sidebar-context.js.map +1 -0
  148. package/dist/hooks/index.d.ts +3 -3
  149. package/dist/hooks/index.d.ts.map +1 -1
  150. package/dist/hooks/index.js +3 -3
  151. package/dist/hooks/index.js.map +1 -1
  152. package/dist/hooks/use-breakpoint.d.ts +8 -0
  153. package/dist/hooks/use-breakpoint.d.ts.map +1 -0
  154. package/dist/hooks/use-breakpoint.js +10 -0
  155. package/dist/hooks/use-breakpoint.js.map +1 -0
  156. package/dist/hooks/{useDimensions.d.ts → use-dimensions.d.ts} +1 -1
  157. package/dist/hooks/use-dimensions.d.ts.map +1 -0
  158. package/dist/hooks/{useDimensions.js → use-dimensions.js} +1 -1
  159. package/dist/hooks/use-dimensions.js.map +1 -0
  160. package/dist/hooks/use-route-navigation.d.ts +19 -0
  161. package/dist/hooks/use-route-navigation.d.ts.map +1 -0
  162. package/dist/hooks/use-route-navigation.js +25 -0
  163. package/dist/hooks/use-route-navigation.js.map +1 -0
  164. package/dist/{components/navigation/iconUtils.d.ts → icons/icon-utils.d.ts} +2 -2
  165. package/dist/icons/icon-utils.d.ts.map +1 -0
  166. package/dist/{components/navigation/iconUtils.js → icons/icon-utils.js} +8 -4
  167. package/dist/icons/icon-utils.js.map +1 -0
  168. package/dist/icons/index.d.ts +13 -0
  169. package/dist/icons/index.d.ts.map +1 -0
  170. package/dist/icons/index.js +12 -0
  171. package/dist/icons/index.js.map +1 -0
  172. package/dist/index.d.ts +4 -1
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +4 -1
  175. package/dist/index.js.map +1 -1
  176. package/dist/theme/high-contrast-theme.d.ts +19 -0
  177. package/dist/theme/high-contrast-theme.d.ts.map +1 -0
  178. package/dist/theme/high-contrast-theme.js +225 -0
  179. package/dist/theme/high-contrast-theme.js.map +1 -0
  180. package/dist/theme/index.d.ts +4 -2
  181. package/dist/theme/index.d.ts.map +1 -1
  182. package/dist/theme/index.js +4 -2
  183. package/dist/theme/index.js.map +1 -1
  184. package/dist/theme/theme-config.d.ts +134 -0
  185. package/dist/theme/theme-config.d.ts.map +1 -0
  186. package/dist/theme/theme-config.js +286 -0
  187. package/dist/theme/theme-config.js.map +1 -0
  188. package/dist/theme/theme.d.ts +93 -2
  189. package/dist/theme/theme.d.ts.map +1 -1
  190. package/dist/theme/theme.js +125 -28
  191. package/dist/theme/theme.js.map +1 -1
  192. package/dist/utils/contrast-checker.d.ts +51 -0
  193. package/dist/utils/contrast-checker.d.ts.map +1 -0
  194. package/dist/utils/contrast-checker.js +97 -0
  195. package/dist/utils/contrast-checker.js.map +1 -0
  196. package/dist/utils/index.d.ts +2 -0
  197. package/dist/utils/index.d.ts.map +1 -0
  198. package/dist/utils/index.js +3 -0
  199. package/dist/utils/index.js.map +1 -0
  200. package/package.json +35 -20
  201. package/README.md +0 -929
  202. package/dist/brand/brandConfig.d.ts +0 -48
  203. package/dist/brand/brandConfig.d.ts.map +0 -1
  204. package/dist/brand/brandConfig.js +0 -41
  205. package/dist/brand/brandConfig.js.map +0 -1
  206. package/dist/brand/brandContext.d.ts +0 -10
  207. package/dist/brand/brandContext.d.ts.map +0 -1
  208. package/dist/brand/brandContext.js +0 -16
  209. package/dist/brand/brandContext.js.map +0 -1
  210. package/dist/brand/brandTypes.d.ts +0 -54
  211. package/dist/brand/brandTypes.d.ts.map +0 -1
  212. package/dist/brand/brandTypes.js +0 -2
  213. package/dist/brand/brandTypes.js.map +0 -1
  214. package/dist/components/action/ActionRow.d.ts +0 -25
  215. package/dist/components/action/ActionRow.d.ts.map +0 -1
  216. package/dist/components/action/ActionRow.js +0 -66
  217. package/dist/components/action/ActionRow.js.map +0 -1
  218. package/dist/components/action/index.d.ts +0 -2
  219. package/dist/components/action/index.d.ts.map +0 -1
  220. package/dist/components/action/index.js +0 -3
  221. package/dist/components/action/index.js.map +0 -1
  222. package/dist/components/card/Card.d.ts +0 -11
  223. package/dist/components/card/Card.d.ts.map +0 -1
  224. package/dist/components/card/Card.js +0 -32
  225. package/dist/components/card/Card.js.map +0 -1
  226. package/dist/components/card/index.d.ts +0 -2
  227. package/dist/components/card/index.d.ts.map +0 -1
  228. package/dist/components/card/index.js +0 -2
  229. package/dist/components/card/index.js.map +0 -1
  230. package/dist/components/chat/ChatContainer.d.ts +0 -27
  231. package/dist/components/chat/ChatContainer.d.ts.map +0 -1
  232. package/dist/components/chat/ChatContainer.js +0 -52
  233. package/dist/components/chat/ChatContainer.js.map +0 -1
  234. package/dist/components/chat/ChatInput.d.ts +0 -9
  235. package/dist/components/chat/ChatInput.d.ts.map +0 -1
  236. package/dist/components/chat/ChatInput.js +0 -219
  237. package/dist/components/chat/ChatInput.js.map +0 -1
  238. package/dist/components/chat/ChatMessages.d.ts +0 -9
  239. package/dist/components/chat/ChatMessages.d.ts.map +0 -1
  240. package/dist/components/chat/ChatMessages.js +0 -35
  241. package/dist/components/chat/ChatMessages.js.map +0 -1
  242. package/dist/components/chat/EmptyChat.d.ts +0 -18
  243. package/dist/components/chat/EmptyChat.d.ts.map +0 -1
  244. package/dist/components/chat/EmptyChat.js +0 -64
  245. package/dist/components/chat/EmptyChat.js.map +0 -1
  246. package/dist/components/chat/Message.d.ts +0 -8
  247. package/dist/components/chat/Message.d.ts.map +0 -1
  248. package/dist/components/chat/Message.js +0 -47
  249. package/dist/components/chat/Message.js.map +0 -1
  250. package/dist/components/chat/index.d.ts +0 -6
  251. package/dist/components/chat/index.d.ts.map +0 -1
  252. package/dist/components/chat/index.js +0 -7
  253. package/dist/components/chat/index.js.map +0 -1
  254. package/dist/components/chat/types.d.ts +0 -34
  255. package/dist/components/chat/types.d.ts.map +0 -1
  256. package/dist/components/form/DropDownSelect.d.ts +0 -12
  257. package/dist/components/form/DropDownSelect.d.ts.map +0 -1
  258. package/dist/components/form/DropDownSelect.js +0 -63
  259. package/dist/components/form/DropDownSelect.js.map +0 -1
  260. package/dist/components/form/EmailSubscriptionForm.d.ts +0 -14
  261. package/dist/components/form/EmailSubscriptionForm.d.ts.map +0 -1
  262. package/dist/components/form/EmailSubscriptionForm.js +0 -58
  263. package/dist/components/form/EmailSubscriptionForm.js.map +0 -1
  264. package/dist/components/form/FormErrors.d.ts +0 -7
  265. package/dist/components/form/FormErrors.d.ts.map +0 -1
  266. package/dist/components/form/FormErrors.js +0 -35
  267. package/dist/components/form/FormErrors.js.map +0 -1
  268. package/dist/components/form/FormInput.d.ts +0 -14
  269. package/dist/components/form/FormInput.d.ts.map +0 -1
  270. package/dist/components/form/FormInput.js +0 -35
  271. package/dist/components/form/FormInput.js.map +0 -1
  272. package/dist/components/form/FormSeparator.d.ts +0 -6
  273. package/dist/components/form/FormSeparator.d.ts.map +0 -1
  274. package/dist/components/form/FormSeparator.js +0 -25
  275. package/dist/components/form/FormSeparator.js.map +0 -1
  276. package/dist/components/form/index.d.ts +0 -6
  277. package/dist/components/form/index.d.ts.map +0 -1
  278. package/dist/components/form/index.js +0 -7
  279. package/dist/components/form/index.js.map +0 -1
  280. package/dist/components/layout/Footer.d.ts +0 -3
  281. package/dist/components/layout/Footer.d.ts.map +0 -1
  282. package/dist/components/layout/Footer.js +0 -60
  283. package/dist/components/layout/Footer.js.map +0 -1
  284. package/dist/components/layout/MinimalFooter.d.ts +0 -8
  285. package/dist/components/layout/MinimalFooter.d.ts.map +0 -1
  286. package/dist/components/layout/MinimalFooter.js +0 -57
  287. package/dist/components/layout/MinimalFooter.js.map +0 -1
  288. package/dist/components/layout/MobileFooterBar.d.ts +0 -7
  289. package/dist/components/layout/MobileFooterBar.d.ts.map +0 -1
  290. package/dist/components/layout/MobileFooterBar.js +0 -18
  291. package/dist/components/layout/MobileFooterBar.js.map +0 -1
  292. package/dist/components/layout/ParallaxScrollView.d.ts +0 -11
  293. package/dist/components/layout/ParallaxScrollView.d.ts.map +0 -1
  294. package/dist/components/layout/ParallaxScrollView.js +0 -67
  295. package/dist/components/layout/ParallaxScrollView.js.map +0 -1
  296. package/dist/components/layout/WebPageLayout.d.ts +0 -17
  297. package/dist/components/layout/WebPageLayout.d.ts.map +0 -1
  298. package/dist/components/layout/WebPageLayout.js +0 -103
  299. package/dist/components/layout/WebPageLayout.js.map +0 -1
  300. package/dist/components/layout/index.d.ts +0 -6
  301. package/dist/components/layout/index.d.ts.map +0 -1
  302. package/dist/components/layout/index.js +0 -9
  303. package/dist/components/layout/index.js.map +0 -1
  304. package/dist/components/list/List.d.ts +0 -10
  305. package/dist/components/list/List.d.ts.map +0 -1
  306. package/dist/components/list/List.js +0 -18
  307. package/dist/components/list/List.js.map +0 -1
  308. package/dist/components/list/ListButton.d.ts +0 -13
  309. package/dist/components/list/ListButton.d.ts.map +0 -1
  310. package/dist/components/list/ListButton.js +0 -24
  311. package/dist/components/list/ListButton.js.map +0 -1
  312. package/dist/components/list/ListDivider.d.ts +0 -7
  313. package/dist/components/list/ListDivider.d.ts.map +0 -1
  314. package/dist/components/list/ListDivider.js +0 -23
  315. package/dist/components/list/ListDivider.js.map +0 -1
  316. package/dist/components/list/index.d.ts +0 -4
  317. package/dist/components/list/index.d.ts.map +0 -1
  318. package/dist/components/list/index.js +0 -4
  319. package/dist/components/list/index.js.map +0 -1
  320. package/dist/components/media/Carousel.d.ts +0 -18
  321. package/dist/components/media/Carousel.d.ts.map +0 -1
  322. package/dist/components/media/Carousel.js +0 -60
  323. package/dist/components/media/Carousel.js.map +0 -1
  324. package/dist/components/media/FeatureCard.d.ts +0 -9
  325. package/dist/components/media/FeatureCard.d.ts.map +0 -1
  326. package/dist/components/media/FeatureCard.js +0 -68
  327. package/dist/components/media/FeatureCard.js.map +0 -1
  328. package/dist/components/media/HorizontalCarousel.d.ts +0 -17
  329. package/dist/components/media/HorizontalCarousel.d.ts.map +0 -1
  330. package/dist/components/media/HorizontalCarousel.js +0 -60
  331. package/dist/components/media/HorizontalCarousel.js.map +0 -1
  332. package/dist/components/media/ImageCarousel.d.ts +0 -14
  333. package/dist/components/media/ImageCarousel.d.ts.map +0 -1
  334. package/dist/components/media/ImageCarousel.js +0 -21
  335. package/dist/components/media/ImageCarousel.js.map +0 -1
  336. package/dist/components/media/MediaTile.d.ts +0 -30
  337. package/dist/components/media/MediaTile.d.ts.map +0 -1
  338. package/dist/components/media/MediaTile.js +0 -51
  339. package/dist/components/media/MediaTile.js.map +0 -1
  340. package/dist/components/media/SkeletonMediaTile.d.ts +0 -17
  341. package/dist/components/media/SkeletonMediaTile.d.ts.map +0 -1
  342. package/dist/components/media/SkeletonMediaTile.js +0 -67
  343. package/dist/components/media/SkeletonMediaTile.js.map +0 -1
  344. package/dist/components/media/index.d.ts +0 -7
  345. package/dist/components/media/index.d.ts.map +0 -1
  346. package/dist/components/media/index.js +0 -8
  347. package/dist/components/media/index.js.map +0 -1
  348. package/dist/components/navigation/AppbarWeb.d.ts +0 -18
  349. package/dist/components/navigation/AppbarWeb.d.ts.map +0 -1
  350. package/dist/components/navigation/AppbarWeb.js +0 -70
  351. package/dist/components/navigation/AppbarWeb.js.map +0 -1
  352. package/dist/components/navigation/IconButtonGroup.d.ts +0 -7
  353. package/dist/components/navigation/IconButtonGroup.d.ts.map +0 -1
  354. package/dist/components/navigation/IconButtonGroup.js +0 -33
  355. package/dist/components/navigation/IconButtonGroup.js.map +0 -1
  356. package/dist/components/navigation/Logo.d.ts +0 -16
  357. package/dist/components/navigation/Logo.d.ts.map +0 -1
  358. package/dist/components/navigation/Logo.js +0 -64
  359. package/dist/components/navigation/Logo.js.map +0 -1
  360. package/dist/components/navigation/MobileMenuDrawer.d.ts +0 -13
  361. package/dist/components/navigation/MobileMenuDrawer.d.ts.map +0 -1
  362. package/dist/components/navigation/MobileMenuDrawer.js +0 -184
  363. package/dist/components/navigation/MobileMenuDrawer.js.map +0 -1
  364. package/dist/components/navigation/ScreenHeader.d.ts +0 -30
  365. package/dist/components/navigation/ScreenHeader.d.ts.map +0 -1
  366. package/dist/components/navigation/ScreenHeader.js +0 -127
  367. package/dist/components/navigation/ScreenHeader.js.map +0 -1
  368. package/dist/components/navigation/iconUtils.d.ts.map +0 -1
  369. package/dist/components/navigation/iconUtils.js.map +0 -1
  370. package/dist/components/tile/Tile.d.ts +0 -18
  371. package/dist/components/tile/Tile.d.ts.map +0 -1
  372. package/dist/components/tile/Tile.js +0 -41
  373. package/dist/components/tile/Tile.js.map +0 -1
  374. package/dist/components/tile/index.d.ts +0 -2
  375. package/dist/components/tile/index.d.ts.map +0 -1
  376. package/dist/components/tile/index.js +0 -2
  377. package/dist/components/tile/index.js.map +0 -1
  378. package/dist/components/ui/ArrowButton.d.ts +0 -8
  379. package/dist/components/ui/ArrowButton.d.ts.map +0 -1
  380. package/dist/components/ui/ArrowButton.js +0 -30
  381. package/dist/components/ui/ArrowButton.js.map +0 -1
  382. package/dist/components/ui/BlurButton.d.ts +0 -16
  383. package/dist/components/ui/BlurButton.d.ts.map +0 -1
  384. package/dist/components/ui/BlurButton.js +0 -26
  385. package/dist/components/ui/BlurButton.js.map +0 -1
  386. package/dist/components/ui/Button.d.ts +0 -24
  387. package/dist/components/ui/Button.d.ts.map +0 -1
  388. package/dist/components/ui/Button.js +0 -60
  389. package/dist/components/ui/Button.js.map +0 -1
  390. package/dist/components/ui/ErrorBoundary.d.ts +0 -18
  391. package/dist/components/ui/ErrorBoundary.d.ts.map +0 -1
  392. package/dist/components/ui/ErrorBoundary.js +0 -37
  393. package/dist/components/ui/ErrorBoundary.js.map +0 -1
  394. package/dist/components/ui/IconButton.d.ts +0 -13
  395. package/dist/components/ui/IconButton.d.ts.map +0 -1
  396. package/dist/components/ui/IconButton.js +0 -27
  397. package/dist/components/ui/IconButton.js.map +0 -1
  398. package/dist/components/ui/LoadingIndicator.d.ts +0 -6
  399. package/dist/components/ui/LoadingIndicator.d.ts.map +0 -1
  400. package/dist/components/ui/LoadingIndicator.js +0 -15
  401. package/dist/components/ui/LoadingIndicator.js.map +0 -1
  402. package/dist/components/ui/NotificationBadge.d.ts +0 -8
  403. package/dist/components/ui/NotificationBadge.d.ts.map +0 -1
  404. package/dist/components/ui/NotificationBadge.js +0 -24
  405. package/dist/components/ui/NotificationBadge.js.map +0 -1
  406. package/dist/components/ui/SkeletonCard.d.ts +0 -14
  407. package/dist/components/ui/SkeletonCard.d.ts.map +0 -1
  408. package/dist/components/ui/SkeletonCard.js +0 -50
  409. package/dist/components/ui/SkeletonCard.js.map +0 -1
  410. package/dist/components/ui/StyledText.d.ts +0 -17
  411. package/dist/components/ui/StyledText.d.ts.map +0 -1
  412. package/dist/components/ui/StyledText.js +0 -27
  413. package/dist/components/ui/StyledText.js.map +0 -1
  414. package/dist/components/ui/StyledTextInput.d.ts +0 -10
  415. package/dist/components/ui/StyledTextInput.d.ts.map +0 -1
  416. package/dist/components/ui/StyledTextInput.js +0 -62
  417. package/dist/components/ui/StyledTextInput.js.map +0 -1
  418. package/dist/components/ui/TextLink.d.ts +0 -14
  419. package/dist/components/ui/TextLink.d.ts.map +0 -1
  420. package/dist/components/ui/TextLink.js +0 -25
  421. package/dist/components/ui/TextLink.js.map +0 -1
  422. package/dist/components/ui/ToggleIconButton.d.ts +0 -14
  423. package/dist/components/ui/ToggleIconButton.d.ts.map +0 -1
  424. package/dist/components/ui/ToggleIconButton.js +0 -19
  425. package/dist/components/ui/ToggleIconButton.js.map +0 -1
  426. package/dist/context/scrollContext.d.ts.map +0 -1
  427. package/dist/context/scrollContext.js.map +0 -1
  428. package/dist/hooks/useDimensions.d.ts.map +0 -1
  429. package/dist/hooks/useDimensions.js.map +0 -1
  430. package/dist/hooks/useWindowHeight.d.ts +0 -7
  431. package/dist/hooks/useWindowHeight.d.ts.map +0 -1
  432. package/dist/hooks/useWindowHeight.js +0 -10
  433. package/dist/hooks/useWindowHeight.js.map +0 -1
  434. package/dist/hooks/useWindowWidth.d.ts +0 -20
  435. package/dist/hooks/useWindowWidth.d.ts.map +0 -1
  436. package/dist/hooks/useWindowWidth.js +0 -27
  437. package/dist/hooks/useWindowWidth.js.map +0 -1
  438. package/dist/theme/themeConfig.d.ts +0 -19
  439. package/dist/theme/themeConfig.d.ts.map +0 -1
  440. package/dist/theme/themeConfig.js +0 -43
  441. package/dist/theme/themeConfig.js.map +0 -1
  442. /package/dist/components/{chat → shared}/types.js +0 -0
@@ -0,0 +1,286 @@
1
+ export const createLightTheme = (brand) => {
2
+ const c = brand.colors;
3
+ return {
4
+ primary: c.primary,
5
+ onPrimary: c.onPrimary,
6
+ primaryContainer: c.primaryContainer,
7
+ onPrimaryContainer: c.onPrimaryContainer,
8
+ secondary: c.secondary,
9
+ onSecondary: c.onSecondary,
10
+ secondaryContainer: c.secondaryContainer,
11
+ onSecondaryContainer: c.onSecondaryContainer,
12
+ tertiary: c.tertiary,
13
+ onTertiary: c.onTertiary,
14
+ tertiaryContainer: c.tertiaryContainer,
15
+ onTertiaryContainer: c.onTertiaryContainer,
16
+ error: c.error,
17
+ onError: c.onError,
18
+ errorContainer: c.errorContainer,
19
+ onErrorContainer: c.onErrorContainer,
20
+ surface: c.surface,
21
+ surfaceVariant: c.surfaceContainer,
22
+ surfaceTint: c.primary,
23
+ onSurface: c.onSurface,
24
+ onSurfaceVariant: c.onSurfaceVariant,
25
+ surfaceContainerLowest: c.surfaceContainerLowest,
26
+ surfaceContainerLow: c.surfaceContainerLow,
27
+ surfaceContainer: c.surfaceContainer,
28
+ surfaceContainerHigh: c.surfaceContainerHigh,
29
+ surfaceContainerHighest: c.surfaceContainerHighest,
30
+ outline: c.outline,
31
+ outlineVariant: c.outlineVariant,
32
+ inverseSurface: c.inverseSurface,
33
+ inverseOnSurface: c.inverseOnSurface,
34
+ inversePrimary: c.inversePrimary,
35
+ scrim: c.scrim,
36
+ shadow: c.shadow,
37
+ spacing: brand.spacing,
38
+ borderRadius: brand.borderRadius,
39
+ shape: brand.shape,
40
+ isDark: false,
41
+ tokens: {
42
+ button: {
43
+ // Filled / high-emphasis (Material `filled`)
44
+ filledBg: c.primary,
45
+ filledText: c.onPrimary,
46
+ filledHoverBg: c.primaryContainer ?? c.primary,
47
+ filledPressedBg: c.primaryContainer ?? c.primary,
48
+ // Elevated (surface with elevation)
49
+ elevatedBg: c.surfaceContainerHigh,
50
+ elevatedText: c.onSurface,
51
+ elevatedHoverBg: c.surfaceContainerHighest,
52
+ // Tonal (Material `tonal`)
53
+ tonalBg: c.secondaryContainer,
54
+ tonalText: c.onSecondary,
55
+ tonalHoverBg: c.secondaryContainer ?? c.secondary,
56
+ // Outlined
57
+ outlinedBorder: c.outlineVariant ?? c.outline,
58
+ outlinedText: c.primary,
59
+ outlinedHoverBorder: c.outlineVariant ?? c.outline,
60
+ // Text (low emphasis)
61
+ textColor: c.primary,
62
+ textHoverColor: c.primary,
63
+ // Disabled
64
+ disabledBg: c.surfaceContainerLow,
65
+ disabledText: c.onSurfaceVariant,
66
+ },
67
+ card: {
68
+ background: c.surfaceContainer,
69
+ text: c.onSurface,
70
+ },
71
+ input: {
72
+ background: c.surfaceContainerLow,
73
+ text: c.onSurface,
74
+ border: c.outlineVariant ?? c.outline,
75
+ placeholder: c.onSurfaceVariant,
76
+ },
77
+ appbar: {
78
+ background: c.surface,
79
+ text: c.onSurface,
80
+ border: c.outlineVariant ?? c.outline,
81
+ },
82
+ link: {
83
+ text: c.primary,
84
+ hover: c.primary,
85
+ },
86
+ badge: {
87
+ background: c.primary,
88
+ text: c.onPrimary,
89
+ },
90
+ sidebar: {
91
+ background: c.surface,
92
+ itemText: c.onSurface,
93
+ itemActiveText: c.primary,
94
+ itemActiveBg: c.primaryContainer,
95
+ itemHoverBg: c.surfaceContainerHigh,
96
+ divider: c.outlineVariant ?? c.outline,
97
+ width: 280,
98
+ },
99
+ elevation: {
100
+ level0: 0,
101
+ level1: 1,
102
+ level2: 3,
103
+ level3: 6,
104
+ level4: 8,
105
+ level5: 12,
106
+ },
107
+ focusRing: {
108
+ color: c.primary,
109
+ width: 2,
110
+ offset: 2,
111
+ },
112
+ typography: {
113
+ // M3 Display styles (largest)
114
+ displayLarge: 57,
115
+ displayMedium: 45,
116
+ displaySmall: 36,
117
+ // M3 Headline styles
118
+ headlineLarge: 32,
119
+ headlineMedium: 28,
120
+ headlineSmall: 24,
121
+ // M3 Title styles
122
+ titleLarge: 22,
123
+ titleMedium: 16,
124
+ titleSmall: 14,
125
+ // M3 Body styles
126
+ bodyLarge: 16,
127
+ bodyMedium: 14,
128
+ bodySmall: 12,
129
+ // M3 Label styles
130
+ labelLarge: 14,
131
+ labelMedium: 12,
132
+ labelSmall: 11,
133
+ // Font weights
134
+ weightLight: 300,
135
+ weightRegular: 400,
136
+ weightMedium: 500,
137
+ weightBold: 700,
138
+ // Line heights (multipliers)
139
+ lineHeightTight: 1.2,
140
+ lineHeightNormal: 1.5,
141
+ lineHeightRelaxed: 1.75,
142
+ },
143
+ },
144
+ };
145
+ };
146
+ export const createDarkTheme = (brand) => {
147
+ // Use brand.darkColors if available, otherwise use brand.colors (assumes colors work for both themes)
148
+ const c = brand.darkColors ?? brand.colors;
149
+ return {
150
+ primary: c.primary,
151
+ onPrimary: c.onPrimary,
152
+ primaryContainer: c.primaryContainer,
153
+ onPrimaryContainer: c.onPrimaryContainer,
154
+ secondary: c.secondary,
155
+ onSecondary: c.onSecondary,
156
+ secondaryContainer: c.secondaryContainer,
157
+ onSecondaryContainer: c.onSecondaryContainer,
158
+ tertiary: c.tertiary,
159
+ onTertiary: c.onTertiary,
160
+ tertiaryContainer: c.tertiaryContainer,
161
+ onTertiaryContainer: c.onTertiaryContainer,
162
+ error: c.error,
163
+ onError: c.onError,
164
+ errorContainer: c.errorContainer,
165
+ onErrorContainer: c.onErrorContainer,
166
+ surface: c.surface,
167
+ surfaceVariant: c.surfaceContainer,
168
+ surfaceTint: c.primary,
169
+ onSurface: c.onSurface,
170
+ onSurfaceVariant: c.onSurfaceVariant,
171
+ surfaceContainerLowest: c.surfaceContainerLowest,
172
+ surfaceContainerLow: c.surfaceContainerLow,
173
+ surfaceContainer: c.surfaceContainer,
174
+ surfaceContainerHigh: c.surfaceContainerHigh,
175
+ surfaceContainerHighest: c.surfaceContainerHighest,
176
+ outline: c.outline,
177
+ outlineVariant: c.outlineVariant,
178
+ inverseSurface: c.inverseSurface,
179
+ inverseOnSurface: c.inverseOnSurface,
180
+ inversePrimary: c.inversePrimary,
181
+ scrim: c.scrim,
182
+ shadow: c.shadow,
183
+ spacing: brand.spacing,
184
+ borderRadius: brand.borderRadius,
185
+ shape: brand.shape,
186
+ isDark: true,
187
+ tokens: {
188
+ button: {
189
+ filledBg: c.primary,
190
+ filledText: c.onPrimary,
191
+ filledHoverBg: c.primaryContainer ?? c.primary,
192
+ filledPressedBg: c.primaryContainer ?? c.primary,
193
+ elevatedBg: c.surfaceContainerHigh,
194
+ elevatedText: c.onSurface,
195
+ elevatedHoverBg: c.surfaceContainerHighest,
196
+ tonalBg: c.secondaryContainer,
197
+ tonalText: c.onSecondary,
198
+ tonalHoverBg: c.secondaryContainer ?? c.secondary,
199
+ outlinedBorder: c.outlineVariant ?? c.outline,
200
+ outlinedText: c.primary,
201
+ outlinedHoverBorder: c.outlineVariant ?? c.outline,
202
+ textColor: c.primary,
203
+ textHoverColor: c.primary,
204
+ disabledBg: c.surfaceContainerLow,
205
+ disabledText: c.onSurfaceVariant,
206
+ },
207
+ card: {
208
+ background: c.surfaceContainer,
209
+ text: c.onSurface,
210
+ },
211
+ input: {
212
+ background: c.surfaceContainerLow,
213
+ text: c.onSurface,
214
+ border: c.outlineVariant ?? c.outline,
215
+ placeholder: c.onSurfaceVariant,
216
+ },
217
+ appbar: {
218
+ background: c.surface,
219
+ text: c.onSurface,
220
+ border: c.outlineVariant ?? c.outline,
221
+ },
222
+ link: {
223
+ text: c.primary,
224
+ hover: c.primary,
225
+ },
226
+ badge: {
227
+ background: c.primary,
228
+ text: c.onPrimary,
229
+ },
230
+ sidebar: {
231
+ background: c.surface,
232
+ itemText: c.onSurface,
233
+ itemActiveText: c.primary,
234
+ itemActiveBg: c.primaryContainer,
235
+ itemHoverBg: c.surfaceContainerHigh,
236
+ divider: c.outlineVariant ?? c.outline,
237
+ width: 280,
238
+ },
239
+ elevation: {
240
+ level0: 0,
241
+ level1: 1,
242
+ level2: 3,
243
+ level3: 6,
244
+ level4: 8,
245
+ level5: 12,
246
+ },
247
+ focusRing: {
248
+ color: c.primary,
249
+ width: 2,
250
+ offset: 2,
251
+ },
252
+ typography: {
253
+ // M3 Display styles (largest)
254
+ displayLarge: 57,
255
+ displayMedium: 45,
256
+ displaySmall: 36,
257
+ // M3 Headline styles
258
+ headlineLarge: 32,
259
+ headlineMedium: 28,
260
+ headlineSmall: 24,
261
+ // M3 Title styles
262
+ titleLarge: 22,
263
+ titleMedium: 16,
264
+ titleSmall: 14,
265
+ // M3 Body styles
266
+ bodyLarge: 16,
267
+ bodyMedium: 14,
268
+ bodySmall: 12,
269
+ // M3 Label styles
270
+ labelLarge: 14,
271
+ labelMedium: 12,
272
+ labelSmall: 11,
273
+ // Font weights
274
+ weightLight: 300,
275
+ weightRegular: 400,
276
+ weightMedium: 500,
277
+ weightBold: 700,
278
+ // Line heights (multipliers)
279
+ lineHeightTight: 1.2,
280
+ lineHeightNormal: 1.5,
281
+ lineHeightRelaxed: 1.75,
282
+ },
283
+ },
284
+ };
285
+ };
286
+ //# sourceMappingURL=theme-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-config.js","sourceRoot":"","sources":["../../theme/theme-config.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,106 @@
1
1
  import React from 'react';
2
- import { ThemeValuesType } from './themeConfig';
2
+ import { ThemeValuesType, type ThemeTokens } from './theme-config';
3
3
  import { Brand } from '../brand';
4
+ export type ThemeMode = 'light' | 'dark';
4
5
  export type ThemeContextType = {
5
6
  values: ThemeValuesType;
7
+ mode: ThemeMode;
8
+ setMode: (m: ThemeMode) => void;
6
9
  toggleTheme: () => void;
7
10
  };
8
- declare const ThemeContext: React.Context<ThemeContextType>;
11
+ declare const MISSING_PROVIDER: unique symbol;
12
+ declare const ThemeContext: React.Context<ThemeContextType | typeof MISSING_PROVIDER>;
9
13
  type ZeroToAppProps = {
10
14
  brand: Brand;
11
15
  children: React.ReactNode;
12
16
  };
13
17
  declare const ZeroToApp: ({ brand, children }: ZeroToAppProps) => import("react/jsx-runtime").JSX.Element;
18
+ /**
19
+ * Hook to access the current theme values and mode.
20
+ * Must be used within a `<ZeroToApp>` provider.
21
+ *
22
+ * @returns The theme context containing values, mode, setMode, and toggleTheme
23
+ * @throws Error if used outside of a ZeroToApp provider
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * function MyComponent() {
28
+ * const theme = useTheme();
29
+ *
30
+ * return (
31
+ * <View style={{ backgroundColor: theme.surface }}>
32
+ * <Text style={{ color: theme.onSurface }}>
33
+ * Hello World
34
+ * </Text>
35
+ * </View>
36
+ * );
37
+ * }
38
+ * ```
39
+ */
40
+ export declare const useTheme: () => ThemeValuesType;
41
+ /**
42
+ * Hook to access the current theme mode and controllers.
43
+ * Must be used within a `<ZeroToApp>` provider.
44
+ *
45
+ * @returns The theme mode context containing mode, setMode, and toggleTheme
46
+ * @throws Error if used outside of a ZeroToApp provider
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * function ThemeToggler() {
51
+ * const { mode, toggleTheme } = useThemeMode();
52
+ * return <Button title={`Switch to ${mode === 'light' ? 'dark' : 'light'}`} onPress={toggleTheme} />;
53
+ * }
54
+ * ```
55
+ */
56
+ export declare const useThemeMode: () => {
57
+ mode: ThemeMode;
58
+ setMode: (m: ThemeMode) => void;
59
+ toggleTheme: () => void;
60
+ };
61
+ export declare const useThemeContext: () => ThemeContextType;
62
+ /**
63
+ * Convenience hook to access theme tokens directly without drilling through `values.tokens`.
64
+ * Must be used within a `<ZeroToApp>` provider.
65
+ *
66
+ * @returns The theme tokens object containing button, card, input, typography, elevation, etc.
67
+ * @throws Error if used outside of a ZeroToApp provider
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * function MyCard() {
72
+ * const tokens = useTokens();
73
+ *
74
+ * return (
75
+ * <View style={{
76
+ * backgroundColor: tokens.card.background,
77
+ * shadowOffset: { width: 0, height: tokens.elevation.level2 },
78
+ * }}>
79
+ * <Text style={{ fontSize: tokens.typography.bodyMedium }}>
80
+ * Card content
81
+ * </Text>
82
+ * </View>
83
+ * );
84
+ * }
85
+ * ```
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * // Access specific token groups
90
+ * function MyButton() {
91
+ * const { button, focusRing } = useTokens();
92
+ *
93
+ * return (
94
+ * <Pressable style={{
95
+ * backgroundColor: button.filledBg,
96
+ * borderColor: focusRing.color,
97
+ * }}>
98
+ * <Text style={{ color: button.filledText }}>Click me</Text>
99
+ * </Pressable>
100
+ * );
101
+ * }
102
+ * ```
103
+ */
104
+ export declare const useTokens: () => ThemeTokens;
14
105
  export { ThemeContext, ZeroToApp };
15
106
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../theme/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAAqC,eAAe,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAIF,QAAA,MAAM,YAAY,iCAmBhB,CAAC;AAEH,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,SAAS,GAAI,qBAAqB,cAAc,4CAarD,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../theme/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAqC,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMjC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAGF,QAAA,MAAM,gBAAgB,eAA6B,CAAC;AAGpD,QAAA,MAAM,YAAY,2DAA8E,CAAC;AAEjG,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,SAAS,GAAI,qBAAqB,cAAc,4CA0BrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,QAAO,eAG3B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY;;iBArFV,SAAS,KAAK,IAAI;uBACZ,IAAI;CAuFxB,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,gBAoBlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,SAAS,QAAO,WAG5B,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -1,38 +1,135 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useState, useMemo } from 'react';
3
- import { createDarkTheme, createLightTheme } from './themeConfig';
4
- import { BrandProvider } from '../brand/brandContext';
5
- // Initialize ThemeContext with a placeholder that throws if used outside provider
6
- // This should never be used in practice since ZeroToApp always provides a real brand
7
- const ThemeContext = createContext({
8
- values: {
9
- color: '#000000',
10
- backgroundColor: '#FFFFFF',
11
- highlightColor: '#000000',
12
- borderColor: '#dddfe2',
13
- inactiveIconColor: '#606770',
14
- dividerColor: '#dddfe2',
15
- cardBackgroundColor: '#FFFFFF',
16
- appbarBackgroundColor: '#FFFFFF',
17
- iconButtonBackgroundColor: '#999999',
18
- iconButtonIconColor: '#ffffff',
19
- inputBackgroundColor: '#ffffff',
20
- linkColor: '#666666',
21
- isDark: false,
22
- },
23
- toggleTheme: () => {
24
- throw new Error('ThemeContext used outside ZeroToApp provider');
25
- },
26
- });
2
+ import { createContext, useState, useMemo, useContext } from 'react';
3
+ import { createDarkTheme, createLightTheme } from './theme-config';
4
+ import { BrandProvider } from '../brand/brand-context';
5
+ import { SidebarProvider } from '../context/sidebar-context';
6
+ import { LayoutProvider } from '../context/layout-context';
7
+ // Sentinel value to detect missing provider
8
+ const MISSING_PROVIDER = Symbol('MISSING_PROVIDER');
9
+ // Initialize ThemeContext with undefined to detect missing provider
10
+ const ThemeContext = createContext(MISSING_PROVIDER);
27
11
  //Initialize ZeroToApp with a toggle function
28
12
  const ZeroToApp = ({ brand, children }) => {
29
13
  const lightTheme = useMemo(() => createLightTheme(brand), [brand]);
14
+ // Use brand.darkColors if available, otherwise generate from brand.colors
30
15
  const darkTheme = useMemo(() => createDarkTheme(brand), [brand]);
31
- const [values, setTheme] = useState(lightTheme);
16
+ const [mode, setModeState] = useState('light');
17
+ const values = mode === 'light' ? lightTheme : darkTheme;
18
+ const setMode = (m) => {
19
+ setModeState(m);
20
+ };
32
21
  const toggleTheme = () => {
33
- setTheme(values === lightTheme ? darkTheme : lightTheme);
22
+ setModeState((prev) => (prev === 'light' ? 'dark' : 'light'));
34
23
  };
35
- return (_jsx(BrandProvider, { brand: brand, children: _jsx(ThemeContext.Provider, { value: { values, toggleTheme }, children: children }) }));
24
+ return (_jsx(BrandProvider, { brand: brand, children: _jsx(ThemeContext.Provider, { value: { values, mode, setMode, toggleTheme }, children: _jsx(LayoutProvider, { children: _jsx(SidebarProvider, { children: children }) }) }) }));
25
+ };
26
+ /**
27
+ * Hook to access the current theme values and mode.
28
+ * Must be used within a `<ZeroToApp>` provider.
29
+ *
30
+ * @returns The theme context containing values, mode, setMode, and toggleTheme
31
+ * @throws Error if used outside of a ZeroToApp provider
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * function MyComponent() {
36
+ * const theme = useTheme();
37
+ *
38
+ * return (
39
+ * <View style={{ backgroundColor: theme.surface }}>
40
+ * <Text style={{ color: theme.onSurface }}>
41
+ * Hello World
42
+ * </Text>
43
+ * </View>
44
+ * );
45
+ * }
46
+ * ```
47
+ */
48
+ export const useTheme = () => {
49
+ const { values } = useThemeContext();
50
+ return values;
51
+ };
52
+ /**
53
+ * Hook to access the current theme mode and controllers.
54
+ * Must be used within a `<ZeroToApp>` provider.
55
+ *
56
+ * @returns The theme mode context containing mode, setMode, and toggleTheme
57
+ * @throws Error if used outside of a ZeroToApp provider
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * function ThemeToggler() {
62
+ * const { mode, toggleTheme } = useThemeMode();
63
+ * return <Button title={`Switch to ${mode === 'light' ? 'dark' : 'light'}`} onPress={toggleTheme} />;
64
+ * }
65
+ * ```
66
+ */
67
+ export const useThemeMode = () => {
68
+ const { mode, setMode, toggleTheme } = useThemeContext();
69
+ return { mode, setMode, toggleTheme };
70
+ };
71
+ export const useThemeContext = () => {
72
+ const context = useContext(ThemeContext);
73
+ if (context === MISSING_PROVIDER) {
74
+ throw new Error('useThemeContext must be used within a <ZeroToApp> provider.\n\n' +
75
+ 'Make sure your component is wrapped with ZeroToApp:\n\n' +
76
+ ' import { ZeroToApp, createBrand } from "zero-to-app";\n\n' +
77
+ ' const brand = createBrand({ ... });\n\n' +
78
+ ' function App() {\n' +
79
+ ' return (\n' +
80
+ ' <ZeroToApp brand={brand}>\n' +
81
+ ' <YourComponent />\n' +
82
+ ' </ZeroToApp>\n' +
83
+ ' );\n' +
84
+ ' }');
85
+ }
86
+ return context;
87
+ };
88
+ /**
89
+ * Convenience hook to access theme tokens directly without drilling through `values.tokens`.
90
+ * Must be used within a `<ZeroToApp>` provider.
91
+ *
92
+ * @returns The theme tokens object containing button, card, input, typography, elevation, etc.
93
+ * @throws Error if used outside of a ZeroToApp provider
94
+ *
95
+ * @example
96
+ * ```tsx
97
+ * function MyCard() {
98
+ * const tokens = useTokens();
99
+ *
100
+ * return (
101
+ * <View style={{
102
+ * backgroundColor: tokens.card.background,
103
+ * shadowOffset: { width: 0, height: tokens.elevation.level2 },
104
+ * }}>
105
+ * <Text style={{ fontSize: tokens.typography.bodyMedium }}>
106
+ * Card content
107
+ * </Text>
108
+ * </View>
109
+ * );
110
+ * }
111
+ * ```
112
+ *
113
+ * @example
114
+ * ```tsx
115
+ * // Access specific token groups
116
+ * function MyButton() {
117
+ * const { button, focusRing } = useTokens();
118
+ *
119
+ * return (
120
+ * <Pressable style={{
121
+ * backgroundColor: button.filledBg,
122
+ * borderColor: focusRing.color,
123
+ * }}>
124
+ * <Text style={{ color: button.filledText }}>Click me</Text>
125
+ * </Pressable>
126
+ * );
127
+ * }
128
+ * ```
129
+ */
130
+ export const useTokens = () => {
131
+ const { values } = useThemeContext();
132
+ return values.tokens;
36
133
  };
37
134
  export { ThemeContext, ZeroToApp };
38
135
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../theme/theme.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQtD,kFAAkF;AAClF,qFAAqF;AACrF,MAAM,YAAY,GAAG,aAAa,CAAmB;IACnD,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,SAAS;QACtB,iBAAiB,EAAE,SAAS;QAC5B,YAAY,EAAE,SAAS;QACvB,mBAAmB,EAAE,SAAS;QAC9B,qBAAqB,EAAE,SAAS;QAChC,yBAAyB,EAAE,SAAS;QACpC,mBAAmB,EAAE,SAAS;QAC9B,oBAAoB,EAAE,SAAS;QAC/B,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,KAAK;KACd;IACD,WAAW,EAAE,GAAG,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;CACF,CAAC,CAAC;AAMH,6CAA6C;AAC7C,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAkB,EAAE,EAAE;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,UAAU,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YACzB,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,YAAG,QAAQ,GAAyB,GAC3E,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../theme/theme.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * WCAG 2.1 Contrast Checker
3
+ * Automated accessibility contrast validation
4
+ */
5
+ import type { Colors } from '../brand/brand-types';
6
+ export interface ContrastCheck {
7
+ pair: string;
8
+ foreground: string;
9
+ background: string;
10
+ ratio: number;
11
+ passes: boolean;
12
+ level: 'AAA' | 'AA' | 'Fail';
13
+ }
14
+ /**
15
+ * WCAG 2.1 contrast requirements
16
+ * - AAA: 7:1 for normal text, 4.5:1 for large text
17
+ * - AA: 4.5:1 for normal text, 3:1 for large text
18
+ */
19
+ export declare const WCAG_LEVELS: {
20
+ readonly AAA_NORMAL: 7;
21
+ readonly AAA_LARGE: 4.5;
22
+ readonly AA_NORMAL: 4.5;
23
+ readonly AA_LARGE: 3;
24
+ };
25
+ /**
26
+ * Check all critical color pairs in a theme for WCAG compliance
27
+ * @param colors Color scheme to validate
28
+ * @param largeText Whether to use large text criteria (default: false)
29
+ * @returns Array of contrast check results
30
+ */
31
+ export declare function checkThemeContrast(colors: Colors, largeText?: boolean): ContrastCheck[];
32
+ /**
33
+ * Validate theme and return failing pairs
34
+ * @param colors Color scheme to validate
35
+ * @returns Array of failing contrast pairs
36
+ */
37
+ export declare function validateThemeContrast(colors: Colors): ContrastCheck[];
38
+ /**
39
+ * Generate a contrast report for a theme
40
+ * @param colors Color scheme to validate
41
+ * @returns Human-readable report string
42
+ */
43
+ export declare function generateContrastReport(colors: Colors): string;
44
+ /**
45
+ * Assert theme contrast passes WCAG AA
46
+ * Useful for automated tests
47
+ * @param colors Color scheme to validate
48
+ * @throws Error if any pairs fail
49
+ */
50
+ export declare function assertThemeContrast(colors: Colors): void;
51
+ //# sourceMappingURL=contrast-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contrast-checker.d.ts","sourceRoot":"","sources":["../../utils/contrast-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAe,GACzB,aAAa,EAAE,CAqCjB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAGrE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiB7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQxD"}