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 @@
1
+ {"version":3,"file":"sidebar-section.d.ts","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar-section.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGhF,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC,uDAAuD;IACvD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+DxD,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { StyleSheet, View } from 'react-native';
3
+ import { Typography } from '../../ui/typography';
4
+ import { useThemeContext } from '../../../theme';
5
+ import { renderIcon } from '../../../icons';
6
+ // 3. COMPONENT
7
+ /**
8
+ * Groups sidebar items with an optional section header
9
+ */
10
+ export const SidebarSection = ({ title, icon, children, style, testID, }) => {
11
+ const { values: theme } = useThemeContext();
12
+ const tokens = theme.tokens.sidebar;
13
+ const spacing = theme.spacing;
14
+ const renderSectionIcon = () => {
15
+ if (!icon)
16
+ return null;
17
+ const iconSize = icon.size || 14;
18
+ const iconLibrary = icon.library || 'Feather';
19
+ return (_jsx(View, { style: styles.iconContainer, children: renderIcon(icon, iconLibrary, iconSize, theme.onSurfaceVariant) }));
20
+ };
21
+ return (_jsxs(View, { style: [
22
+ styles.container,
23
+ style,
24
+ ], testID: testID, children: [title && (_jsxs(View, { style: [
25
+ styles.header,
26
+ { paddingHorizontal: spacing.md, gap: spacing.xs },
27
+ ], children: [renderSectionIcon(), _jsx(Typography, { variant: "labelSmall", weight: "medium", color: theme.onSurfaceVariant, uppercase: true, children: title })] })), _jsx(View, { style: styles.itemsContainer, children: children }), _jsx(View, { style: [
28
+ styles.divider,
29
+ {
30
+ backgroundColor: tokens.divider,
31
+ },
32
+ ] })] }));
33
+ };
34
+ // 4. STYLES
35
+ const styles = StyleSheet.create({
36
+ container: {
37
+ width: '100%',
38
+ },
39
+ header: {
40
+ minHeight: 48,
41
+ flexDirection: 'row',
42
+ alignItems: 'center',
43
+ },
44
+ iconContainer: {
45
+ alignItems: 'center',
46
+ justifyContent: 'center',
47
+ },
48
+ itemsContainer: {
49
+ width: '100%',
50
+ },
51
+ divider: {
52
+ width: '100%',
53
+ height: 1,
54
+ },
55
+ });
56
+ //# sourceMappingURL=sidebar-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-section.js","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar-section.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAgC9D,eAAe;AAEf;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAE9B,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;QAC9C,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,aAAa,YAC9B,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAC3D,CACR,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAE;YACL,MAAM,CAAC,SAAS;YAChB,KAAK;SACN,EACD,MAAM,EAAE,MAAM,aAEb,KAAK,IAAI,CACR,MAAC,IAAI,IACH,KAAK,EAAE;oBACL,MAAM,CAAC,MAAM;oBACb,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;iBACnD,aAEA,iBAAiB,EAAE,EACpB,KAAC,UAAU,IACT,OAAO,EAAC,YAAY,EACpB,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAC7B,SAAS,kBAER,KAAK,GACK,IACR,CACR,EAED,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,cAAc,YAC/B,QAAQ,GACJ,EAEP,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,MAAM,CAAC,OAAO;oBACd;wBACE,eAAe,EAAE,MAAM,CAAC,OAAO;qBAChC;iBACF,GACD,IACG,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,YAAY;AACZ,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,KAAK,EAAE,MAAM;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;KACrB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,MAAM;KACd;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Sidebar, type SidebarProps } from './sidebar.web';
2
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Default export for TypeScript compilation
2
+ // Metro bundler resolves .web.tsx / .native.tsx at runtime
3
+ export { Sidebar } from './sidebar.web';
4
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar.tsx"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAqB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ /**
4
+ * Props for the Sidebar component (Native)
5
+ */
6
+ export interface SidebarProps {
7
+ /** Optional header component */
8
+ header?: React.ReactNode;
9
+ /** Sidebar content (usually SidebarSection and SidebarItem components) */
10
+ children: React.ReactNode;
11
+ /** Optional footer component */
12
+ footer?: React.ReactNode;
13
+ /** Custom styles */
14
+ style?: StyleProp<ViewStyle>;
15
+ /** Test ID for testing */
16
+ testID?: string;
17
+ }
18
+ /**
19
+ * Sidebar component for iOS/Android platforms
20
+ * Modal-based drawer that slides in from the left
21
+ */
22
+ export declare const Sidebar: React.FC<SidebarProps>;
23
+ //# sourceMappingURL=sidebar.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.native.d.ts","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar.native.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gCAAgC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAoF1C,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // 1. IMPORTS
3
+ import React from 'react';
4
+ import { StyleSheet, View, Modal, Pressable, ScrollView, } from 'react-native';
5
+ import Animated, { useAnimatedStyle, withTiming, useSharedValue } from 'react-native-reanimated';
6
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
+ import { useThemeContext } from '../../../theme';
8
+ import { useSidebar } from '../../../context/sidebar-context';
9
+ // 3. COMPONENT
10
+ /**
11
+ * Sidebar component for iOS/Android platforms
12
+ * Modal-based drawer that slides in from the left
13
+ */
14
+ export const Sidebar = ({ header, children, footer, style, testID, }) => {
15
+ const { values: theme } = useThemeContext();
16
+ const { isOpen, close } = useSidebar();
17
+ const tokens = theme.tokens.sidebar;
18
+ const insets = useSafeAreaInsets();
19
+ const translateX = useSharedValue(isOpen ? 0 : -tokens.width);
20
+ const backdropOpacity = useSharedValue(isOpen ? 1 : 0);
21
+ React.useEffect(() => {
22
+ if (isOpen) {
23
+ translateX.value = withTiming(0, { duration: 300 });
24
+ backdropOpacity.value = withTiming(1, { duration: 300 });
25
+ }
26
+ else {
27
+ translateX.value = withTiming(-tokens.width, { duration: 250 });
28
+ backdropOpacity.value = withTiming(0, { duration: 250 });
29
+ }
30
+ }, [isOpen, translateX, backdropOpacity, tokens.width]);
31
+ const animatedDrawerStyle = useAnimatedStyle(() => ({
32
+ transform: [{ translateX: translateX.value }],
33
+ }));
34
+ const animatedBackdropStyle = useAnimatedStyle(() => ({
35
+ opacity: backdropOpacity.value * 0.5,
36
+ }));
37
+ return (_jsx(Modal, { visible: isOpen, transparent: true, animationType: "none", onRequestClose: close, statusBarTranslucent: true, children: _jsxs(View, { style: styles.modalContainer, children: [_jsx(Animated.View, { style: [
38
+ styles.backdrop,
39
+ { backgroundColor: theme.scrim },
40
+ animatedBackdropStyle,
41
+ ], children: _jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: close }) }), _jsxs(Animated.View, { style: [
42
+ styles.drawer,
43
+ {
44
+ width: tokens.width,
45
+ backgroundColor: tokens.background,
46
+ paddingTop: insets.top,
47
+ paddingBottom: insets.bottom,
48
+ shadowColor: theme.shadow,
49
+ shadowOffset: { width: 2, height: 0 },
50
+ shadowOpacity: 0.25,
51
+ shadowRadius: 12,
52
+ elevation: 16,
53
+ },
54
+ animatedDrawerStyle,
55
+ style,
56
+ ], testID: testID, children: [header, _jsx(ScrollView, { style: styles.scrollContent, contentContainerStyle: styles.scrollContentContainer, showsVerticalScrollIndicator: false, children: children }), footer] })] }) }));
57
+ };
58
+ // 4. STYLES
59
+ const styles = StyleSheet.create({
60
+ modalContainer: {
61
+ flex: 1,
62
+ flexDirection: 'row',
63
+ },
64
+ backdrop: {
65
+ ...StyleSheet.absoluteFillObject,
66
+ },
67
+ drawer: {
68
+ position: 'absolute',
69
+ left: 0,
70
+ top: 0,
71
+ bottom: 0,
72
+ },
73
+ scrollContent: {
74
+ flex: 1,
75
+ },
76
+ scrollContentContainer: {
77
+ flexGrow: 1,
78
+ },
79
+ });
80
+ //# sourceMappingURL=sidebar.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.native.js","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar.native.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ /**
4
+ * Props for the Sidebar component (Web)
5
+ */
6
+ export interface SidebarProps {
7
+ /** Optional header component */
8
+ header?: React.ReactNode;
9
+ /** Sidebar content (usually SidebarSection and SidebarItem components) */
10
+ children: React.ReactNode;
11
+ /** Optional footer component */
12
+ footer?: React.ReactNode;
13
+ /** Custom styles */
14
+ style?: StyleProp<ViewStyle>;
15
+ /** Test ID for testing */
16
+ testID?: string;
17
+ /** Anchor side for the sidebar: 'left' | 'right' (desktop and mobile drawer) */
18
+ anchor?: 'left' | 'right';
19
+ }
20
+ /**
21
+ * Sidebar component for web platform
22
+ * - Desktop (≥1024px): Persistent sidebar on left (always visible, below AppBar)
23
+ * - Mobile/Tablet (<1024px): Floating trigger icon + overlay Drawer
24
+ */
25
+ export declare const Sidebar: React.FC<SidebarProps>;
26
+ //# sourceMappingURL=sidebar.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.web.d.ts","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar.web.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAWtB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gCAAgC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAID;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAmG1C,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ // 1. IMPORTS
3
+ import React from 'react';
4
+ import { StyleSheet, View, ScrollView, } from 'react-native';
5
+ import { useThemeContext } from '../../../theme';
6
+ import { useDimensions, breakpoints } from '../../../hooks';
7
+ import { useSidebar } from '../../../context/sidebar-context';
8
+ import { useLayout } from '../../../context/layout-context';
9
+ import { usePathname } from 'expo-router';
10
+ import { Drawer } from '../drawer/drawer';
11
+ import { FAB } from '../../ui/fab';
12
+ // 3. COMPONENT
13
+ /**
14
+ * Sidebar component for web platform
15
+ * - Desktop (≥1024px): Persistent sidebar on left (always visible, below AppBar)
16
+ * - Mobile/Tablet (<1024px): Floating trigger icon + overlay Drawer
17
+ */
18
+ export const Sidebar = ({ header, children, footer, style, testID, anchor = 'left', }) => {
19
+ const { values: theme } = useThemeContext();
20
+ const { width } = useDimensions();
21
+ const { isOpen, open, close } = useSidebar();
22
+ const { appBarHeight } = useLayout();
23
+ const tokens = theme.tokens.sidebar;
24
+ const spacing = theme.spacing;
25
+ const pathname = usePathname();
26
+ // Capture the route scope on first mount so the sidebar only renders
27
+ // when the current pathname matches (prevents showing on other tabs
28
+ // when expo-router caches mounted layouts).
29
+ const routeScopeRef = React.useRef(null);
30
+ if (routeScopeRef.current === null) {
31
+ const firstSegment = pathname.split('/').filter(Boolean)[0];
32
+ routeScopeRef.current = firstSegment ? `/${firstSegment}` : '/';
33
+ }
34
+ const isOnSidebarRoute = routeScopeRef.current === '/' ||
35
+ pathname === routeScopeRef.current ||
36
+ pathname.startsWith(routeScopeRef.current + '/');
37
+ const isDesktop = width >= breakpoints.large;
38
+ const isRight = anchor === 'right';
39
+ // Don't render anything when on a different route (cached tab)
40
+ if (!isOnSidebarRoute) {
41
+ return null;
42
+ }
43
+ // Desktop: persistent sidebar below AppBar
44
+ if (isDesktop) {
45
+ return (_jsxs(View, { style: [
46
+ styles.sidebarDesktop,
47
+ {
48
+ width: tokens.width,
49
+ backgroundColor: tokens.background,
50
+ borderRightWidth: isRight ? 0 : 1,
51
+ borderRightColor: isRight ? 'transparent' : tokens.divider,
52
+ borderLeftWidth: isRight ? 1 : 0,
53
+ borderLeftColor: isRight ? tokens.divider : 'transparent',
54
+ top: appBarHeight,
55
+ height: `calc(100vh - ${appBarHeight}px)`,
56
+ left: isRight ? 'auto' : 0,
57
+ right: isRight ? 0 : 'auto',
58
+ },
59
+ style,
60
+ ], testID: testID, children: [header, _jsx(ScrollView, { style: styles.scrollContent, contentContainerStyle: styles.scrollContentContainer, children: children }), footer] }));
61
+ }
62
+ // Mobile: self-contained trigger + Drawer
63
+ return (_jsxs(_Fragment, { children: [!isOpen && (_jsx(FAB, { icon: { library: 'Feather', name: 'sidebar' }, variant: "primary", size: "medium", onPress: open, style: [
64
+ styles.mobileTrigger,
65
+ {
66
+ bottom: spacing.lg,
67
+ right: isRight ? 'auto' : spacing.lg,
68
+ left: isRight ? spacing.lg : 'auto',
69
+ },
70
+ ] })), _jsx(Drawer, { isOpen: isOpen, onClose: close, side: anchor, header: header, footer: footer, style: style, children: children })] }));
71
+ };
72
+ // 4. STYLES
73
+ const styles = StyleSheet.create({
74
+ sidebarDesktop: {
75
+ position: 'fixed',
76
+ left: 0,
77
+ zIndex: 100,
78
+ },
79
+ mobileTrigger: {
80
+ position: 'fixed',
81
+ zIndex: 99,
82
+ },
83
+ scrollContent: {
84
+ flex: 1,
85
+ },
86
+ scrollContentContainer: {
87
+ flexGrow: 1,
88
+ },
89
+ });
90
+ //# sourceMappingURL=sidebar.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.web.js","sourceRoot":"","sources":["../../../../components/navigation/sidebar/sidebar.web.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type ComponentProps } from 'react';
2
+ import { Stack } from 'expo-router';
3
+ type StackProps = ComponentProps<typeof Stack>;
4
+ /**
5
+ * A themed wrapper around Expo Router's Stack that automatically applies
6
+ * the app's header styling from the design token system.
7
+ *
8
+ * Applies headerStyle, headerTintColor, and sensible back button defaults.
9
+ * Any screenOptions passed as props are merged and will override the defaults.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * // _layout.native.tsx
14
+ * <ThemedStack>
15
+ * <Stack.Screen name="index" options={{ title: 'Home' }} />
16
+ * <Stack.Screen name="detail" options={{ title: 'Detail' }} />
17
+ * </ThemedStack>
18
+ * ```
19
+ */
20
+ export declare function ThemedStack({ screenOptions, ...props }: StackProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare namespace ThemedStack {
22
+ var displayName: string;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=themed-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themed-stack.d.ts","sourceRoot":"","sources":["../../../components/navigation/themed-stack.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,KAAK,UAAU,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAmBlE;yBAnBe,WAAW"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Stack } from 'expo-router';
3
+ import { useTheme } from '../../theme';
4
+ /**
5
+ * A themed wrapper around Expo Router's Stack that automatically applies
6
+ * the app's header styling from the design token system.
7
+ *
8
+ * Applies headerStyle, headerTintColor, and sensible back button defaults.
9
+ * Any screenOptions passed as props are merged and will override the defaults.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * // _layout.native.tsx
14
+ * <ThemedStack>
15
+ * <Stack.Screen name="index" options={{ title: 'Home' }} />
16
+ * <Stack.Screen name="detail" options={{ title: 'Detail' }} />
17
+ * </ThemedStack>
18
+ * ```
19
+ */
20
+ export function ThemedStack({ screenOptions, ...props }) {
21
+ const theme = useTheme();
22
+ const defaults = {
23
+ headerStyle: { backgroundColor: theme.tokens.appbar.background },
24
+ headerTintColor: theme.onSurface,
25
+ headerBackVisible: true,
26
+ headerBackButtonDisplayMode: 'minimal',
27
+ };
28
+ const mergedScreenOptions = typeof screenOptions === 'function'
29
+ ? (args) => ({
30
+ ...defaults,
31
+ ...screenOptions(args),
32
+ })
33
+ : { ...defaults, ...screenOptions };
34
+ return _jsx(Stack, { screenOptions: mergedScreenOptions, ...props });
35
+ }
36
+ ThemedStack.displayName = 'ThemedStack';
37
+ //# sourceMappingURL=themed-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themed-stack.js","sourceRoot":"","sources":["../../../components/navigation/themed-stack.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,EAAc;IACjE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,MAAM,QAAQ,GAAG;QACf,WAAW,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;QAChE,eAAe,EAAE,KAAK,CAAC,SAAS;QAChC,iBAAiB,EAAE,IAAI;QACvB,2BAA2B,EAAE,SAAkB;KAChD,CAAC;IAEF,MAAM,mBAAmB,GACvB,OAAO,aAAa,KAAK,UAAU;QACjC,CAAC,CAAC,CAAC,IAAmE,EAAE,EAAE,CAAC,CAAC;YACxE,GAAG,QAAQ;YACX,GAAG,aAAa,CAAC,IAAI,CAAC;SACvB,CAAC;QACJ,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAExC,OAAO,KAAC,KAAK,IAAC,aAAa,EAAE,mBAAmB,KAAM,KAAK,GAAI,CAAC;AAClE,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { BaseComponentProps, InteractiveComponentProps, LoadableComponentProps, ContainerComponentProps, } from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/shared/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/shared/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import type { ViewStyle, StyleProp, AccessibilityRole } from 'react-native';
2
+ /**
3
+ * Base props shared by all components.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * <MyComponent
8
+ * testID="my-component"
9
+ * style={{ marginTop: 16 }}
10
+ * />
11
+ * ```
12
+ */
13
+ export interface BaseComponentProps {
14
+ /** Test identifier for e2e testing frameworks */
15
+ testID?: string;
16
+ /** Additional styles to apply to the component's root view */
17
+ style?: StyleProp<ViewStyle>;
18
+ }
19
+ /**
20
+ * Props for interactive components (buttons, links, pressable tiles).
21
+ * Extends BaseComponentProps with interaction and accessibility support.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <InteractiveComponent
26
+ * onPress={() => handlePress()}
27
+ * disabled={isLoading}
28
+ * accessibilityLabel="Submit form"
29
+ * accessibilityHint="Submits the registration form"
30
+ * />
31
+ * ```
32
+ */
33
+ export interface InteractiveComponentProps extends BaseComponentProps {
34
+ /** Whether the component is disabled and non-interactive */
35
+ disabled?: boolean;
36
+ /** Callback fired when the component is pressed */
37
+ onPress?: () => void;
38
+ /**
39
+ * Accessibility label read by screen readers.
40
+ * Should describe what the element is.
41
+ */
42
+ accessibilityLabel?: string;
43
+ /**
44
+ * Accessibility hint providing additional context.
45
+ * Should describe what happens when activated.
46
+ */
47
+ accessibilityHint?: string;
48
+ /** Accessibility role for assistive technologies */
49
+ accessibilityRole?: AccessibilityRole;
50
+ }
51
+ /**
52
+ * Props for components that support loading states.
53
+ *
54
+ * @example
55
+ * ```tsx
56
+ * <Button title="Submit" loading={isSubmitting} />
57
+ * ```
58
+ */
59
+ export interface LoadableComponentProps {
60
+ /** Whether to show a loading indicator instead of content */
61
+ loading?: boolean;
62
+ }
63
+ /**
64
+ * Props for container components that wrap children.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <Card
69
+ * style={{ margin: 16 }}
70
+ * contentStyle={{ padding: 24 }}
71
+ * >
72
+ * <Typography>Card content</Typography>
73
+ * </Card>
74
+ * ```
75
+ */
76
+ export interface ContainerComponentProps extends BaseComponentProps {
77
+ /** Child elements to render inside the container */
78
+ children: React.ReactNode;
79
+ /** Styles applied to the inner content wrapper */
80
+ contentStyle?: StyleProp<ViewStyle>;
81
+ }
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../components/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAyB,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEnG;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,oDAAoD;IACpD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../components/chat/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../components/shared/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,132 @@
1
+ import React from 'react';
2
+ import { GestureResponderEvent, View } from 'react-native';
3
+ import { type IconLibrary } from '../../icons';
4
+ import type { InteractiveComponentProps, LoadableComponentProps } from '../shared/types';
5
+ /**
6
+ * Configuration for button icons.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * // Using Feather icons (default)
11
+ * <Button title="Next" icon={{ name: 'arrow-right' }} />
12
+ *
13
+ * // Using MaterialIcons
14
+ * <Button title="Save" icon={{ library: 'MaterialIcons', name: 'save', size: 20 }} />
15
+ *
16
+ * // Custom color
17
+ * <Button title="Delete" icon={{ name: 'trash-2', color: '#FF0000' }} />
18
+ * ```
19
+ */
20
+ export interface IconConfig {
21
+ /** Icon library to use. @default 'Feather' */
22
+ library?: IconLibrary;
23
+ /** Name of the icon from the specified library */
24
+ name: string;
25
+ /** Icon size in pixels. @default 18 */
26
+ size?: number;
27
+ /** Custom icon color. Defaults to button text color */
28
+ color?: string;
29
+ }
30
+ /**
31
+ * Material Design 3 button variants.
32
+ * - `filled`: High-emphasis, solid background (default)
33
+ * - `elevated`: Medium-emphasis with shadow/elevation
34
+ * - `tonal`: Medium-emphasis with secondary container color
35
+ * - `outlined`: Medium-emphasis with border, no fill
36
+ * - `text`: Low-emphasis, text only
37
+ */
38
+ export type ButtonVariant = 'elevated' | 'filled' | 'tonal' | 'outlined' | 'text';
39
+ export declare const ButtonVariants: readonly ["filled", "elevated", "tonal", "outlined", "text"];
40
+ /**
41
+ * Props for the Button component.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * // Basic usage
46
+ * <Button title="Click me" onPress={() => console.log('Pressed!')} />
47
+ * ```
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * // Different variants
52
+ * <Button title="Primary Action" variant="filled" />
53
+ * <Button title="Secondary" variant="tonal" />
54
+ * <Button title="Cancel" variant="outlined" />
55
+ * <Button title="Learn more" variant="text" />
56
+ * ```
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * // With icon
61
+ * <Button
62
+ * title="Continue"
63
+ * icon={{ name: 'arrow-right' }}
64
+ * iconPosition="right"
65
+ * />
66
+ * ```
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * // Loading state
71
+ * <Button title="Submitting..." loading={true} />
72
+ * ```
73
+ *
74
+ * @example
75
+ * ```tsx
76
+ * // Custom colors (use sparingly - prefer variants)
77
+ * <Button
78
+ * title="Custom"
79
+ * backgroundColor="#FF6B35"
80
+ * color="#FFFFFF"
81
+ * />
82
+ * ```
83
+ */
84
+ export interface ButtonProps extends Omit<InteractiveComponentProps, 'onPress'>, LoadableComponentProps {
85
+ /** Button label text */
86
+ title: string;
87
+ /** Press handler. Receives optional GestureResponderEvent */
88
+ onPress?: (event?: GestureResponderEvent) => void;
89
+ /**
90
+ * Visual style variant following M3 button spec.
91
+ * @default 'filled'
92
+ */
93
+ variant?: ButtonVariant;
94
+ /** Optional icon configuration */
95
+ icon?: IconConfig;
96
+ /**
97
+ * Position of the icon relative to the title.
98
+ * @default 'right'
99
+ */
100
+ iconPosition?: 'left' | 'right';
101
+ /**
102
+ * Override text color. Use sparingly - prefer semantic variants.
103
+ * Useful for special cases like destructive actions.
104
+ */
105
+ color?: string;
106
+ /**
107
+ * Override background color. Use sparingly - prefer semantic variants.
108
+ */
109
+ backgroundColor?: string;
110
+ /**
111
+ * Button size affecting height.
112
+ * - `small`: 32dp
113
+ * - `medium`: 40dp (default)
114
+ * - `large`: 56dp
115
+ * @default 'medium'
116
+ */
117
+ size?: 'small' | 'medium' | 'large';
118
+ }
119
+ /**
120
+ * Material Design 3 Button component
121
+ * https://m3.material.io/components/buttons
122
+ *
123
+ * Supports five variants:
124
+ * - filled: High-emphasis actions (default)
125
+ * - elevated: Medium-emphasis actions with elevation
126
+ * - tonal: Medium-emphasis with container color
127
+ * - outlined: Medium-emphasis with border
128
+ * - text: Low-emphasis actions
129
+ */
130
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<View>>;
131
+ export { Button };
132
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../components/ui/button.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,EAEL,qBAAqB,EAIrB,IAAI,EAIL,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIzF;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAClF,eAAO,MAAM,cAAc,8DAA+D,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAE,sBAAsB;IACrG,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AAGD;;;;;;;;;;GAUG;AACH,QAAA,MAAM,MAAM,0EAkQV,CAAC;AAmDH,OAAO,EAAE,MAAM,EAAE,CAAC"}