xertica-ui 2.1.3 → 2.1.4

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 (404) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/assets/xertica-logo.svg +37 -37
  4. package/assets/xertica-x-logo.svg +20 -20
  5. package/components/assistant/index.ts +6 -6
  6. package/components/assistant/xertica-assistant/parts/AssistantCollapsedView.tsx +97 -0
  7. package/components/assistant/xertica-assistant/parts/AssistantConversationList.tsx +104 -0
  8. package/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.tsx +81 -0
  9. package/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.tsx +86 -0
  10. package/components/assistant/xertica-assistant/parts/AssistantHeader.tsx +77 -0
  11. package/components/assistant/xertica-assistant/parts/AssistantMessageBubble.tsx +573 -0
  12. package/components/assistant/xertica-assistant/parts/AssistantTabBar.tsx +65 -0
  13. package/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.tsx +41 -0
  14. package/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.tsx +98 -0
  15. package/components/assistant/xertica-assistant/parts/index.ts +16 -0
  16. package/components/assistant/xertica-assistant/types.ts +139 -0
  17. package/components/assistant/xertica-assistant/use-assistant.ts +5 -10
  18. package/components/assistant/xertica-assistant/xertica-assistant.tsx +125 -1096
  19. package/components/blocks/card-patterns/ActivityCard.tsx +72 -72
  20. package/components/blocks/card-patterns/FeatureCard.tsx +100 -100
  21. package/components/blocks/card-patterns/NotificationCard.tsx +127 -127
  22. package/components/blocks/card-patterns/ProfileCard.tsx +84 -84
  23. package/components/blocks/card-patterns/ProjectCard.tsx +89 -89
  24. package/components/blocks/card-patterns/QuickActionCard.tsx +62 -62
  25. package/components/blocks/card-patterns/card-patterns.stories.tsx +445 -445
  26. package/components/blocks/card-patterns/index.ts +17 -17
  27. package/components/blocks/index.ts +1 -1
  28. package/components/brand/index.ts +6 -6
  29. package/components/brand/theme-toggle/ThemeToggle.tsx +8 -27
  30. package/components/brand/xertica-provider/XerticaProvider.tsx +48 -48
  31. package/components/brand/xertica-provider/xertica-provider.mdx +61 -61
  32. package/components/brand/xertica-provider/xertica-provider.test.tsx +52 -52
  33. package/components/examples/MapExamples.tsx +282 -282
  34. package/components/examples/SimpleFilterableMap.tsx +191 -191
  35. package/components/examples/index.ts +51 -51
  36. package/components/figma/ImageWithFallback.tsx +27 -27
  37. package/components/hooks/index.ts +10 -7
  38. package/components/hooks/use-layout-shortcuts.ts +46 -0
  39. package/components/index.ts +5 -5
  40. package/components/layout/header/header.test.tsx +8 -8
  41. package/components/layout/header/header.tsx +4 -4
  42. package/components/layout/index.ts +2 -2
  43. package/components/layout/sidebar/sidebar.mdx +1 -1
  44. package/components/layout/sidebar/sidebar.test.tsx +11 -11
  45. package/components/layout/sidebar/sidebar.tsx +1 -31
  46. package/components/layout/sidebar/use-sidebar.ts +2 -11
  47. package/components/media/FloatingMediaWrapper.tsx +11 -11
  48. package/components/media/audio-player/AudioPlayer.tsx +140 -215
  49. package/components/media/audio-player/use-audio-player.ts +298 -0
  50. package/components/media/index.ts +3 -3
  51. package/components/pages/home-content/HomeContent.tsx +7 -7
  52. package/components/pages/home-content/home-content.mdx +62 -62
  53. package/components/pages/home-page/HomePage.stories.tsx +39 -39
  54. package/components/pages/home-page/home-page.mdx +53 -53
  55. package/components/pages/index.ts +8 -8
  56. package/components/pages/template-content/template-content.mdx +61 -61
  57. package/components/pages/template-page/TemplatePage.stories.tsx +39 -39
  58. package/components/pages/template-page/template-page.mdx +53 -53
  59. package/components/public-api-smoke.test.tsx +52 -52
  60. package/components/shared/CustomTooltipContent.tsx +52 -0
  61. package/components/shared/assistant-utils.ts +43 -43
  62. package/components/ui/accordion/accordion.mdx +8 -8
  63. package/components/ui/accordion/accordion.stories.tsx +53 -53
  64. package/components/ui/alert/alert.mdx +8 -8
  65. package/components/ui/alert-dialog/alert-dialog.mdx +8 -8
  66. package/components/ui/aspect-ratio/aspect-ratio.mdx +8 -8
  67. package/components/ui/assistant-chart/assistant-chart.mdx +8 -8
  68. package/components/ui/avatar/avatar.mdx +8 -8
  69. package/components/ui/badge/badge.mdx +8 -8
  70. package/components/ui/badge/badge.tsx +9 -9
  71. package/components/ui/breadcrumb/breadcrumb.mdx +8 -8
  72. package/components/ui/button/button.mdx +8 -8
  73. package/components/ui/calendar/calendar.mdx +8 -8
  74. package/components/ui/calendar/calendar.tsx +258 -258
  75. package/components/ui/card/card.mdx +8 -8
  76. package/components/ui/card/card.stories.tsx +245 -245
  77. package/components/ui/carousel/carousel.mdx +8 -8
  78. package/components/ui/chart/chart.mdx +8 -8
  79. package/components/ui/chart/chart.stories.tsx +1303 -1303
  80. package/components/ui/chart/chart.test.tsx +154 -154
  81. package/components/ui/chart/chart.tsx +2367 -2367
  82. package/components/ui/checkbox/checkbox.mdx +8 -8
  83. package/components/ui/checkbox/checkbox.stories.tsx +20 -20
  84. package/components/ui/collapsible/collapsible.mdx +8 -8
  85. package/components/ui/command/command.mdx +8 -8
  86. package/components/ui/context-menu/context-menu.mdx +8 -8
  87. package/components/ui/dialog/dialog.mdx +8 -8
  88. package/components/ui/drawer/drawer.mdx +8 -8
  89. package/components/ui/dropdown-menu/dropdown-menu.mdx +8 -8
  90. package/components/ui/empty/empty.mdx +8 -8
  91. package/components/ui/file-upload/file-upload.mdx +8 -8
  92. package/components/ui/google-maps-loader/google-maps-loader.tsx +2 -2
  93. package/components/ui/hover-card/hover-card.mdx +8 -8
  94. package/components/ui/input/input.mdx +8 -8
  95. package/components/ui/input-otp/input-otp.mdx +8 -8
  96. package/components/ui/input-otp/input-otp.stories.tsx +6 -6
  97. package/components/ui/label/label.mdx +8 -8
  98. package/components/ui/map/map.mdx +8 -8
  99. package/components/ui/map/map.stories.tsx +51 -51
  100. package/components/ui/map/map.tsx +2 -2
  101. package/components/ui/menubar/menubar.mdx +8 -8
  102. package/components/ui/navigation-menu/navigation-menu.mdx +8 -8
  103. package/components/ui/notification-badge/notification-badge.mdx +8 -8
  104. package/components/ui/pagination/pagination.mdx +8 -8
  105. package/components/ui/popover/popover.mdx +8 -8
  106. package/components/ui/progress/progress.mdx +8 -8
  107. package/components/ui/progress/progress.tsx +68 -68
  108. package/components/ui/radio-group/radio-group.mdx +8 -8
  109. package/components/ui/rating/rating.mdx +8 -8
  110. package/components/ui/resizable/resizable.mdx +8 -8
  111. package/components/ui/route-map/route-map.mdx +8 -8
  112. package/components/ui/route-map/route-map.stories.tsx +54 -54
  113. package/components/ui/route-map/route-map.tsx +2 -2
  114. package/components/ui/scroll-area/scroll-area.mdx +8 -8
  115. package/components/ui/search/search.mdx +8 -8
  116. package/components/ui/select/select.mdx +8 -8
  117. package/components/ui/select/select.stories.tsx +9 -9
  118. package/components/ui/separator/separator.mdx +8 -8
  119. package/components/ui/sheet/sheet.mdx +8 -8
  120. package/components/ui/sheet/sheet.stories.tsx +95 -95
  121. package/components/ui/simple-map/simple-map.mdx +8 -8
  122. package/components/ui/simple-map/simple-map.stories.tsx +48 -48
  123. package/components/ui/skeleton/skeleton.mdx +8 -8
  124. package/components/ui/slider/slider.mdx +8 -8
  125. package/components/ui/sonner/sonner.mdx +8 -8
  126. package/components/ui/stats-card/stats-card.mdx +8 -8
  127. package/components/ui/stepper/stepper.mdx +8 -8
  128. package/components/ui/switch/switch.mdx +8 -8
  129. package/components/ui/switch/switch.stories.tsx +20 -20
  130. package/components/ui/table/table.mdx +8 -8
  131. package/components/ui/tabs/tabs.mdx +8 -8
  132. package/components/ui/tabs/tabs.stories.tsx +26 -26
  133. package/components/ui/textarea/textarea.mdx +8 -8
  134. package/components/ui/timeline/timeline.mdx +8 -8
  135. package/components/ui/toggle/toggle.mdx +8 -8
  136. package/components/ui/toggle-group/toggle-group.mdx +8 -8
  137. package/components/ui/tooltip/tooltip.mdx +8 -8
  138. package/components/ui/tree-view/tree-view.mdx +8 -8
  139. package/components.json +1512 -1512
  140. package/contexts/ApiKeyContext.tsx +72 -72
  141. package/contexts/AssistenteContext.tsx +17 -54
  142. package/contexts/BrandColorsContext.tsx +32 -43
  143. package/contexts/LanguageContext.tsx +13 -13
  144. package/contexts/LayoutContext.test.tsx +11 -11
  145. package/contexts/LayoutContext.tsx +24 -50
  146. package/contexts/ThemeContext.tsx +26 -26
  147. package/contexts/theme-data.ts +4 -4
  148. package/dist/{AssistantChart-DoZCyS5r.cjs → AssistantChart-9w31gdAb.cjs} +4 -4
  149. package/dist/{AssistantChart-CldVCVDe.cjs → AssistantChart-BAudAfne.cjs} +5 -5
  150. package/dist/{use-mobile-DRB3BQgD.cjs → AssistantChart-BAx9VQvb.cjs} +209 -1070
  151. package/dist/{AssistantChart-Cu3m7RBo.js → AssistantChart-BP8upjMk.js} +5 -5
  152. package/dist/{use-mobile-BvYdisLP.js → AssistantChart-CVko2A1W.js} +171 -1025
  153. package/dist/{AssistantChart-C_hwFRRr.js → AssistantChart-CVzmmhx4.js} +4 -4
  154. package/dist/{AudioPlayer-C12BjQBV.cjs → AudioPlayer-1ypwE2Wh.cjs} +126 -187
  155. package/dist/{AudioPlayer-DcFKRJE_.js → AudioPlayer-DuKXrCfy.js} +80 -141
  156. package/dist/CustomTooltipContent-DHjkY0ww.js +40 -0
  157. package/dist/CustomTooltipContent-c_K-DWRr.cjs +56 -0
  158. package/dist/{ThemeContext-BoH4NLfN.js → LanguageContext-BwhwC3G2.js} +27 -104
  159. package/dist/{ThemeContext-r69W20Xg.cjs → LanguageContext-DvUt5jBg.cjs} +27 -104
  160. package/dist/{LayoutContext-BvK-ggDa.cjs → LayoutContext-BDmcZfMH.cjs} +8 -20
  161. package/dist/{LayoutContext-BAql6ZRY.js → LayoutContext-dbQvdC4O.js} +8 -20
  162. package/dist/{ThemeContext-C2EwAPDt.js → ThemeContext-BbBNoFTG.js} +2 -2
  163. package/dist/{ThemeContext-vTjumZeM.cjs → ThemeContext-Cmr8Ex8H.cjs} +2 -2
  164. package/dist/ThemeContext-RTy1m2Uq.js +82 -0
  165. package/dist/ThemeContext-bSzuOit2.cjs +81 -0
  166. package/dist/VerifyEmailPage-BE-L9mB7.js +2828 -0
  167. package/dist/{VerifyEmailPage-Cwi3kbol.cjs → VerifyEmailPage-Bae2cBXT.cjs} +7 -7
  168. package/dist/VerifyEmailPage-CR7kb5df.cjs +2827 -0
  169. package/dist/{VerifyEmailPage-C0c2e5n0.js → VerifyEmailPage-C_ihbcth.js} +6 -6
  170. package/dist/VerifyEmailPage-CbgjOF0v.js +2828 -0
  171. package/dist/{VerifyEmailPage-DvMLZgFt.js → VerifyEmailPage-CdYPSJoO.js} +1 -1
  172. package/dist/{VerifyEmailPage-CYXtbKi3.cjs → VerifyEmailPage-DMBh4NM9.cjs} +1 -1
  173. package/dist/VerifyEmailPage-Dt7zgA4w.cjs +2827 -0
  174. package/dist/{XerticaProvider-CEoWMTxu.js → XerticaProvider-BITjgC5p.js} +2 -2
  175. package/dist/{XerticaProvider-CllrbMEJ.cjs → XerticaProvider-By8q3Roe.cjs} +2 -2
  176. package/dist/{XerticaProvider-cI9hSs27.cjs → XerticaProvider-CW9hpCdF.cjs} +9 -8
  177. package/dist/{XerticaProvider-DDuiIcKo.js → XerticaProvider-siSt9uG2.js} +5 -4
  178. package/dist/{LanguageSelector-D6uacAIM.cjs → XerticaXLogo-D8jf0SNv.cjs} +86 -102
  179. package/dist/{LanguageSelector-B5YfbHra.js → XerticaXLogo-fAJMy3H4.js} +87 -103
  180. package/dist/{alert-dialog-s-vmNkJ_.js → alert-dialog-iDe5VE5o.js} +3 -3
  181. package/dist/{alert-dialog-DSKByiKZ.cjs → alert-dialog-yckpaOpy.cjs} +3 -3
  182. package/dist/assistant.cjs.js +1 -1
  183. package/dist/assistant.es.js +1 -1
  184. package/dist/brand.cjs.js +2 -2
  185. package/dist/brand.es.js +2 -2
  186. package/dist/components/assistant/xertica-assistant/parts/AssistantCollapsedView.d.ts +13 -0
  187. package/dist/components/assistant/xertica-assistant/parts/AssistantConversationList.d.ts +16 -0
  188. package/dist/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.d.ts +17 -0
  189. package/dist/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.d.ts +19 -0
  190. package/dist/components/assistant/xertica-assistant/parts/AssistantHeader.d.ts +11 -0
  191. package/dist/components/assistant/xertica-assistant/parts/AssistantMessageBubble.d.ts +29 -0
  192. package/dist/components/assistant/xertica-assistant/parts/AssistantTabBar.d.ts +13 -0
  193. package/dist/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.d.ts +4 -0
  194. package/dist/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.d.ts +17 -0
  195. package/dist/components/assistant/xertica-assistant/parts/index.d.ts +16 -0
  196. package/dist/components/assistant/xertica-assistant/types.d.ts +106 -0
  197. package/dist/components/assistant/xertica-assistant/use-assistant.d.ts +1 -2
  198. package/dist/components/assistant/xertica-assistant/xertica-assistant.d.ts +2 -96
  199. package/dist/components/hooks/index.d.ts +3 -0
  200. package/dist/components/hooks/use-layout-shortcuts.d.ts +22 -0
  201. package/dist/components/media/audio-player/AudioPlayer.d.ts +4 -1
  202. package/dist/components/media/audio-player/use-audio-player.d.ts +72 -0
  203. package/dist/components/shared/CustomTooltipContent.d.ts +20 -0
  204. package/dist/components/ui/alert/alert.d.ts +1 -1
  205. package/dist/components/ui/badge/badge.d.ts +1 -1
  206. package/dist/components/ui/button/button.d.ts +2 -2
  207. package/dist/contexts/AssistenteContext.d.ts +10 -49
  208. package/dist/{google-maps-loader-Y-QkD-Li.cjs → google-maps-loader-BqsYL48U.cjs} +0 -5
  209. package/dist/{google-maps-loader-CTYySAun.js → google-maps-loader-t2IlYBzw.js} +0 -4
  210. package/dist/hooks.cjs.js +30 -10
  211. package/dist/hooks.es.js +25 -4
  212. package/dist/index-CkTUgOwX.js +8 -0
  213. package/dist/{index-COtD8bRW.cjs → index-D3RLKRAs.cjs} +1 -1
  214. package/dist/index.cjs.js +11 -11
  215. package/dist/index.es.js +11 -11
  216. package/dist/index.umd.js +454 -1027
  217. package/dist/layout.cjs.js +3 -10
  218. package/dist/layout.es.js +3 -10
  219. package/dist/media.cjs.js +1 -1
  220. package/dist/media.es.js +1 -1
  221. package/dist/pages.cjs.js +1 -1
  222. package/dist/pages.es.js +1 -1
  223. package/dist/{sidebar-CK_0ZQHj.cjs → sidebar-CVUGHOS_.cjs} +10 -57
  224. package/dist/{sidebar-CUuOvYhK.js → sidebar-CmvwjnVb.js} +10 -40
  225. package/dist/ui.cjs.js +4 -4
  226. package/dist/ui.es.js +4 -4
  227. package/dist/use-audio-player-Bkh23vQ3.js +177 -0
  228. package/dist/use-audio-player-Dn1NR9xN.cjs +176 -0
  229. package/dist/utils/color-utils.d.ts +51 -0
  230. package/dist/{xertica-assistant-dyP7KHM5.cjs → xertica-assistant-B1IaHXnB.cjs} +388 -529
  231. package/dist/xertica-assistant-BMqdyRVi.js +2082 -0
  232. package/dist/xertica-assistant-Bj3vBCq_.cjs +2081 -0
  233. package/dist/{xertica-assistant-yX1CFBBo.js → xertica-assistant-DPsESB6t.js} +390 -531
  234. package/dist/{CodeBlock-BgfYL_rD.cjs → xertica-assistant-Qp3ydksa.cjs} +51 -263
  235. package/dist/{CodeBlock-DnYNI8rQ.js → xertica-assistant-gnCJdcZY.js} +7 -219
  236. package/dist/xertica-ui.css +2 -2
  237. package/docs/architecture-improvements.md +463 -0
  238. package/docs/architecture.md +1 -1
  239. package/docs/components/assistant-chart.md +1 -1
  240. package/docs/components/audio-player.md +46 -0
  241. package/docs/components/branding.md +251 -0
  242. package/docs/components/calendar.md +154 -154
  243. package/docs/components/card-patterns.md +337 -337
  244. package/docs/components/card.md +235 -235
  245. package/docs/components/code-block.md +108 -0
  246. package/docs/components/formatted-document.md +113 -0
  247. package/docs/components/hooks.md +430 -0
  248. package/docs/components/image-with-fallback.md +106 -0
  249. package/docs/components/map-layers.md +140 -0
  250. package/docs/components/map.md +84 -84
  251. package/docs/components/modern-chat-input.md +163 -0
  252. package/docs/components/pages.md +351 -0
  253. package/docs/components/xertica-provider.md +24 -24
  254. package/docs/decision-tree.md +287 -287
  255. package/docs/doc-audit.md +223 -0
  256. package/docs/getting-started.md +154 -0
  257. package/docs/llms.md +25 -5
  258. package/docs/patterns/detail-page.md +276 -0
  259. package/docs/patterns/settings.md +346 -0
  260. package/docs/patterns/wizard.md +217 -0
  261. package/guidelines/Guidelines.md +252 -252
  262. package/hooks/useTheme.ts +3 -3
  263. package/imports/Podcast.tsx +388 -388
  264. package/imports/XerticaAi.tsx +45 -45
  265. package/imports/XerticaX.tsx +19 -19
  266. package/imports/svg-aueiaqngck.ts +11 -11
  267. package/imports/svg-v9krss1ozd.ts +16 -16
  268. package/imports/svg-vhrdofe3qe.ts +5 -5
  269. package/llms-compact.txt +327 -327
  270. package/llms.txt +160 -160
  271. package/package.json +203 -203
  272. package/styles/xertica/app-overrides/chat.css +61 -61
  273. package/styles/xertica/app-overrides/scrollbar.css +33 -33
  274. package/styles/xertica/integrations/google-maps.css +76 -76
  275. package/styles/xertica/integrations/sonner.css +73 -73
  276. package/templates/CLAUDE.md +182 -182
  277. package/templates/guidelines/Guidelines.md +325 -325
  278. package/templates/package.json +2 -2
  279. package/templates/src/features/auth/index.ts +4 -4
  280. package/templates/src/features/auth/ui/AuthPageShell.tsx +34 -34
  281. package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -70
  282. package/templates/src/features/auth/ui/LoginContent.tsx +90 -90
  283. package/templates/src/features/auth/ui/ResetPasswordContent.tsx +151 -151
  284. package/templates/src/features/auth/ui/SocialLoginButtons.tsx +59 -59
  285. package/templates/src/features/auth/ui/VerifyEmailContent.tsx +82 -82
  286. package/templates/src/features/home/index.ts +1 -1
  287. package/templates/src/features/home/ui/HomeContent.tsx +100 -100
  288. package/templates/src/features/template/index.ts +5 -5
  289. package/templates/src/features/template/ui/CrudTemplate.tsx +3 -3
  290. package/templates/src/features/template/ui/DashboardTemplate.tsx +3 -3
  291. package/templates/src/features/template/ui/FormTemplate.tsx +120 -120
  292. package/templates/src/features/template/ui/LoginTemplate.tsx +3 -3
  293. package/templates/src/pages/AssistantPage.tsx +328 -328
  294. package/templates/src/pages/ForgotPasswordPage.tsx +6 -6
  295. package/templates/src/pages/HomePage.tsx +57 -57
  296. package/templates/src/pages/LoginPage.tsx +10 -10
  297. package/templates/src/pages/ResetPasswordPage.tsx +6 -6
  298. package/templates/src/pages/TemplatePage.tsx +30 -30
  299. package/templates/src/pages/VerifyEmailPage.tsx +6 -6
  300. package/templates/src/shared/config/navigation.ts +20 -20
  301. package/templates/src/shared/lib/auth.ts +20 -20
  302. package/templates/src/shared/types/auth.ts +3 -3
  303. package/templates/tsconfig.json +5 -5
  304. package/utils/color-utils.ts +72 -0
  305. package/utils/gemini.ts +140 -140
  306. package/dist/AudioPlayer-B1lt5cPl.cjs +0 -989
  307. package/dist/AudioPlayer-BZ7bibzU.cjs +0 -982
  308. package/dist/AudioPlayer-DMcG_c7L.js +0 -990
  309. package/dist/AudioPlayer-e8LfNoqO.js +0 -983
  310. package/dist/CodeBlock-7TTgmdGG.cjs +0 -2094
  311. package/dist/CodeBlock-BeSt1h5P.js +0 -2078
  312. package/dist/CodeBlock-BlcqlA9M.cjs +0 -2094
  313. package/dist/CodeBlock-Bnmeu5ez.cjs +0 -2094
  314. package/dist/CodeBlock-BtfPlbAI.js +0 -2078
  315. package/dist/CodeBlock-CIySIuYr.js +0 -2078
  316. package/dist/CodeBlock-CuPtUM-7.cjs +0 -2094
  317. package/dist/CodeBlock-D6ffWXgc.js +0 -2078
  318. package/dist/CodeBlock-D8dcwbit.cjs +0 -2094
  319. package/dist/CodeBlock-DMZrFnlw.cjs +0 -2094
  320. package/dist/CodeBlock-DlBehYN8.js +0 -2078
  321. package/dist/CodeBlock-DvKWbSnE.cjs +0 -2094
  322. package/dist/CodeBlock-DwMCfkFY.js +0 -2078
  323. package/dist/CodeBlock-Dy6CNYyj.js +0 -2078
  324. package/dist/CodeBlock-U1pPOQI7.cjs +0 -2094
  325. package/dist/CodeBlock-f_GpNhEB.js +0 -2078
  326. package/dist/CodeBlock-oB6u8nI1.js +0 -2078
  327. package/dist/CodeBlock-tZC31B73.cjs +0 -2094
  328. package/dist/ImageWithFallback-CGtidP6B.cjs +0 -4542
  329. package/dist/ImageWithFallback-lsg3pdFg.js +0 -4508
  330. package/dist/XerticaOrbe-KL1RBHzw.cjs +0 -1354
  331. package/dist/XerticaOrbe-zwS1p2a8.js +0 -1355
  332. package/dist/XerticaProvider-6btlAlzc.js +0 -17
  333. package/dist/XerticaProvider-BNoNOxQ5.cjs +0 -16
  334. package/dist/XerticaProvider-BlY2limY.cjs +0 -38
  335. package/dist/XerticaProvider-hSwhNQex.js +0 -39
  336. package/dist/breadcrumb-CqJ7bHY5.js +0 -161
  337. package/dist/breadcrumb-m9Hb2_XN.cjs +0 -177
  338. package/dist/components/blocks/audio-player/AudioPlayer.d.ts +0 -35
  339. package/dist/components/blocks/audio-player/index.d.ts +0 -1
  340. package/dist/components/blocks/document-editor/DocumentEditor.d.ts +0 -26
  341. package/dist/components/blocks/document-editor/index.d.ts +0 -1
  342. package/dist/components/blocks/podcast-player/PodcastPlayer.d.ts +0 -41
  343. package/dist/components/blocks/podcast-player/index.d.ts +0 -1
  344. package/dist/dropdown-menu-BDB5CmQs.cjs +0 -247
  345. package/dist/dropdown-menu-DQidbKBD.js +0 -231
  346. package/dist/google-maps-loader-BFWp6VPd.js +0 -287
  347. package/dist/google-maps-loader-eS3uQ5TA.cjs +0 -287
  348. package/dist/header-Cgy6vYPk.cjs +0 -731
  349. package/dist/header-DRlT4jgI.js +0 -715
  350. package/dist/header-Dux00SI4.cjs +0 -731
  351. package/dist/header-EkGKXPsD.js +0 -715
  352. package/dist/header-WfEywpyc.cjs +0 -731
  353. package/dist/header-tifNQn2U.js +0 -715
  354. package/dist/index-BhapVLVj.js +0 -8
  355. package/dist/index-D6fxYEY8.cjs +0 -7
  356. package/dist/index-DW5tYe26.js +0 -8
  357. package/dist/input-2R4loU86.js +0 -127
  358. package/dist/input-DWANSKGb.cjs +0 -145
  359. package/dist/rich-text-editor-0mraWT5y.cjs +0 -2376
  360. package/dist/rich-text-editor-B6jMRLzk.cjs +0 -1939
  361. package/dist/rich-text-editor-B8_oYcIR.js +0 -1730
  362. package/dist/rich-text-editor-B9UbSXNb.js +0 -1203
  363. package/dist/rich-text-editor-BYuRBNBU.js +0 -2373
  364. package/dist/rich-text-editor-Bb9pySTs.cjs +0 -2374
  365. package/dist/rich-text-editor-BcL6L3cm.cjs +0 -2374
  366. package/dist/rich-text-editor-BoVZYtTs.cjs +0 -2391
  367. package/dist/rich-text-editor-CPV1lEPH.cjs +0 -1748
  368. package/dist/rich-text-editor-CoKqbCtu.cjs +0 -1799
  369. package/dist/rich-text-editor-Cw56T_mB.js +0 -2356
  370. package/dist/rich-text-editor-Cyt8qs2b.js +0 -1921
  371. package/dist/rich-text-editor-D6H84OcX.cjs +0 -1220
  372. package/dist/rich-text-editor-D76gD-QI.js +0 -2328
  373. package/dist/rich-text-editor-DKkokOnA.js +0 -1781
  374. package/dist/rich-text-editor-DNsdpN64.cjs +0 -2359
  375. package/dist/rich-text-editor-DfG8bCyY.js +0 -2358
  376. package/dist/rich-text-editor-Dxjw31Z4.js +0 -2341
  377. package/dist/rich-text-editor-DzP0Epmb.js +0 -2356
  378. package/dist/rich-text-editor-skplNlBM.cjs +0 -2345
  379. package/dist/select-Bkbr0f-Z.cjs +0 -162
  380. package/dist/select-CvIVdX2n.js +0 -145
  381. package/dist/slider-Bc5Hd0y1.js +0 -56
  382. package/dist/slider-N7hFFj6X.cjs +0 -73
  383. package/dist/tooltip-Ded96neP.cjs +0 -137
  384. package/dist/tooltip-HDOoD2-0.js +0 -120
  385. package/dist/use-mobile-B0hNy_Y6.cjs +0 -4303
  386. package/dist/use-mobile-BXuYROXM.js +0 -4202
  387. package/dist/use-mobile-Bbd51ASU.cjs +0 -4392
  388. package/dist/use-mobile-Bk6CX-TC.js +0 -4359
  389. package/dist/use-mobile-BzuxjzNX.cjs +0 -4392
  390. package/dist/use-mobile-CG2-SdXV.cjs +0 -4235
  391. package/dist/use-mobile-CKb5pqTs.js +0 -4269
  392. package/dist/use-mobile-CYuAuGDl.js +0 -4202
  393. package/dist/use-mobile-CaENcqm-.js +0 -4508
  394. package/dist/use-mobile-CbrYgJGJ.js +0 -4203
  395. package/dist/use-mobile-DMOvImGQ.cjs +0 -4542
  396. package/dist/use-mobile-DZvv7QMR.js +0 -4359
  397. package/dist/use-mobile-DdI_TXam.cjs +0 -4235
  398. package/dist/use-mobile-DlceKf8a.js +0 -4359
  399. package/dist/use-mobile-DsOnow1o.cjs +0 -4236
  400. package/dist/use-mobile-Kcj6jSnK.cjs +0 -4392
  401. package/dist/use-mobile-bnKcua_i.js +0 -4202
  402. package/dist/use-mobile-ncXBeE2z.cjs +0 -4235
  403. package/dist/{rich-text-editor-DgF8s7xW.js → rich-text-editor-BmsjY03B.js} +26 -26
  404. package/dist/{rich-text-editor-mWoaSCE4.cjs → rich-text-editor-GS2kpTAK.cjs} +26 -26
@@ -0,0 +1,223 @@
1
+ # Xertica UI — Auditoria de Documentação
2
+
3
+ > **Data:** 2026-05-19
4
+ > **Escopo:** Verificação completa de cobertura e qualidade da documentação em `docs/`
5
+
6
+ ---
7
+
8
+ ## Resumo Executivo
9
+
10
+ | Categoria | Total no Código | Com Doc | Sem Doc |
11
+ |---|---|---|---|
12
+ | Componentes UI (`components/ui/`) | 65 | 65 | 0 |
13
+ | Componentes Assistant (`components/assistant/`) | 5 | 2 | **3** |
14
+ | Componentes Brand (`components/brand/`) | 7 | 6 | **1** |
15
+ | Componentes Layout (`components/layout/`) | 2 | 2 | 0 |
16
+ | Componentes Media (`components/media/`) | 3 | 3 | 0 |
17
+ | Componentes Blocks (`components/blocks/`) | 6 cards | 1 doc (card-patterns) | 0 |
18
+ | Páginas (`components/pages/`) | 8 | 0 | **8** |
19
+ | Hooks/Contextos (`components/hooks/`) | 6 hooks | 1 (use-mobile) | **5** |
20
+ | Utilitários (`components/figma/`) | 1 | 0 | **1** |
21
+
22
+ ---
23
+
24
+ ## 1. Componentes SEM Documentação
25
+
26
+ ### 1.1 Componentes Assistant — Sem doc própria
27
+
28
+ O [`docs/llms.md`](./llms.md) menciona estes três como *"in Storybook"*, mas não há arquivo `.md` em `docs/components/`:
29
+
30
+ | Componente | Arquivo | Importação | Status |
31
+ |---|---|---|---|
32
+ | `CodeBlock` | `components/assistant/code-block/` | `xertica-ui/assistant` | ❌ Sem doc |
33
+ | `ModernChatInput` | `components/assistant/modern-chat-input/` | `xertica-ui/assistant` | ❌ Sem doc |
34
+ | `FormattedDocument` | `components/assistant/formatted-document/` | `xertica-ui/assistant` | ❌ Sem doc |
35
+
36
+ **Impacto:** Agentes de IA não conseguem usar esses componentes corretamente sem prop tables e exemplos.
37
+
38
+ ---
39
+
40
+ ### 1.2 Componente Brand — Sem doc
41
+
42
+ | Componente | Arquivo | Status |
43
+ |---|---|---|
44
+ | `Branding` | `components/brand/branding/` | ❌ Sem doc (apenas `.mdx` e `.stories.tsx`) |
45
+
46
+ ---
47
+
48
+ ### 1.3 Hook `useMapLayers` — Sem doc
49
+
50
+ O hook [`useMapLayers`](../components/ui/map-layers/map-layers.tsx) é exportado publicamente via `xertica-ui/ui` mas não tem documentação em `docs/components/`. Está relacionado ao sistema de mapas mas não aparece no catálogo do [`docs/llms.md`](./llms.md).
51
+
52
+ ---
53
+
54
+ ### 1.4 Utilitário `ImageWithFallback` — Sem doc
55
+
56
+ | Componente | Arquivo | Status |
57
+ |---|---|---|
58
+ | `ImageWithFallback` | `components/figma/ImageWithFallback.tsx` | ❌ Sem doc |
59
+
60
+ Exportado publicamente via `xertica-ui` mas sem documentação.
61
+
62
+ ---
63
+
64
+ ### 1.5 Páginas — Completamente sem documentação
65
+
66
+ Nenhuma das 8 páginas-template tem documentação em `docs/`:
67
+
68
+ | Página | Arquivo |
69
+ |---|---|
70
+ | `LoginPage` | `components/pages/login-page/` |
71
+ | `ForgotPasswordPage` | `components/pages/forgot-password-page/` |
72
+ | `ResetPasswordPage` | `components/pages/reset-password-page/` |
73
+ | `VerifyEmailPage` | `components/pages/verify-email-page/` |
74
+ | `HomePage` | `components/pages/home-page/` |
75
+ | `HomeContent` | `components/pages/home-content/` |
76
+ | `TemplatePage` | `components/pages/template-page/` |
77
+ | `TemplateContent` | `components/pages/template-content/` |
78
+
79
+ **Impacto:** Desenvolvedores e agentes de IA não sabem que essas páginas existem, quais props aceitam, ou como customizá-las. O [`docs/llms.md`](./llms.md) menciona "8 Page Templates" nas estatísticas mas não lista nenhuma delas no catálogo.
80
+
81
+ ---
82
+
83
+ ### 1.6 Hooks/Contextos — Sem documentação
84
+
85
+ O subpath `xertica-ui/hooks` exporta 6 hooks mas apenas `useMobile` tem doc:
86
+
87
+ | Hook | Contexto | Status |
88
+ |---|---|---|
89
+ | `useLayout` | `LayoutContext` | ✅ Documentado em [`docs/layout.md`](./layout.md) |
90
+ | `useMobile` / `useIsMobile` | `use-mobile` | ✅ Documentado em [`docs/components/use-mobile.md`](./components/use-mobile.md) |
91
+ | `useTheme` | `ThemeContext` | ❌ Sem doc |
92
+ | `useLanguage` | `LanguageContext` | ❌ Sem doc |
93
+ | `useBrandColors` | `BrandColorsContext` | ❌ Sem doc |
94
+ | `useAssistente` | `AssistenteContext` | ❌ Sem doc |
95
+ | `useApiKey` | `ApiKeyContext` | ❌ Sem doc |
96
+
97
+ **Impacto:** Agentes de IA não sabem como acessar o tema atual, idioma, cores da marca ou estado do assistente programaticamente.
98
+
99
+ ---
100
+
101
+ ## 2. Problemas de Qualidade nos Docs Existentes
102
+
103
+ ### 2.1 `docs/architecture.md` — Título incorreto
104
+
105
+ O arquivo [`docs/architecture.md`](./architecture.md) tem como título `# Xertica UI — Documentation Audit Report` (linha 1), mas deveria ser `# Xertica UI — Architecture`. Isso confunde agentes de IA que buscam documentação de arquitetura.
106
+
107
+ ---
108
+
109
+ ### 2.2 `docs/components/assistant-chart.md` — Doc muito rasa
110
+
111
+ O doc do [`AssistantChart`](./components/assistant-chart.md) tem apenas 47 linhas e contém uma regra problemática:
112
+
113
+ > *"Data Format: Ensure your data objects contain keys that match the `dataKey` set in the internal implementation (currently `month`, `desktop`, and `mobile`)."*
114
+
115
+ Isso sugere que o componente só aceita dados com essas chaves específicas, o que é enganoso. Faltam:
116
+ - Explicação de como usar `dataKey` customizado
117
+ - Exemplos com dados reais de negócio
118
+ - Seção "When to Use / When NOT to Use"
119
+
120
+ ---
121
+
122
+ ### 2.3 `docs/llms.md` — Estatísticas desatualizadas e catálogo incompleto
123
+
124
+ - **Linha 6:** `Total Components: 97` — o número real é maior (inclui páginas, hooks adicionais, `useMapLayers`, etc.)
125
+ - **Seção AI Features:** `CodeBlock`, `ModernChatInput`, `FormattedDocument` listados como *"in Storybook"* sem link de doc — isso instrui agentes a não usá-los quando na verdade são componentes públicos
126
+ - **Seção Pages:** não existe no catálogo — as 8 páginas-template são invisíveis para agentes de IA
127
+ - **Seção Hooks:** `useTheme`, `useLanguage`, `useBrandColors`, `useAssistente`, `useApiKey` não estão listados
128
+
129
+ ---
130
+
131
+ ### 2.4 `docs/components/floating-media-wrapper.md` — Doc incompleta
132
+
133
+ O arquivo tem apenas 64 linhas e está truncado — a seção "Related Components" (linha 60) não tem conteúdo.
134
+
135
+ ---
136
+
137
+ ### 2.5 `docs/components/xertica-provider.md` — Seção "AI Rules" incompleta
138
+
139
+ O arquivo tem 65 linhas e a seção `## AI Rules` (linha 60) está vazia/truncada.
140
+
141
+ ---
142
+
143
+ ## 3. Padrões (Patterns) Faltando
144
+
145
+ Os 5 padrões existentes cobrem casos básicos, mas faltam padrões para fluxos muito comuns:
146
+
147
+ | Padrão Faltando | Descrição |
148
+ |---|---|
149
+ | **Wizard / Multi-step Form** | Formulário com `Stepper` + validação por etapa + `useStepper` |
150
+ | **Detail Page** | Página de detalhe de registro com `PageHeader` + back button + seções com `Card` |
151
+ | **Settings Page** | Página de configurações com `Tabs` + seções de formulário + `Switch` |
152
+ | **Empty + Loading States** | Padrão completo de `Skeleton` → `Empty` → dados com `Table` |
153
+ | **File Upload Form** | Formulário com `FileUpload` integrado ao `react-hook-form` |
154
+
155
+ ---
156
+
157
+ ## 4. Docs Gerais — Pontos de Melhoria
158
+
159
+ ### 4.1 `docs/getting-started.md` — Falta seção de troubleshooting
160
+
161
+ Não há seção de problemas comuns (ex: componentes sem estilo = CSS não importado, erros de TypeScript com subpath imports, etc.).
162
+
163
+ ### 4.2 `docs/installation.md` — Falta menção ao `moduleResolution`
164
+
165
+ O arquivo [`docs/architecture.md`](./architecture.md) menciona que TypeScript precisa de `"moduleResolution": "bundler"` para subpath exports, mas [`docs/installation.md`](./installation.md) não menciona isso — é um erro de configuração muito comum.
166
+
167
+ ### 4.3 `docs/ai-usage.md` — Falta regra sobre páginas-template
168
+
169
+ Não há instrução para agentes de IA sobre quando usar as páginas-template (`LoginPage`, `TemplatePage`, etc.) vs. compor do zero.
170
+
171
+ ---
172
+
173
+ ## 5. Priorização das Lacunas
174
+
175
+ ### 🔴 Alta Prioridade (impacto direto em agentes de IA e desenvolvedores)
176
+
177
+ 1. **Criar `docs/components/code-block.md`** — componente usado internamente e externamente
178
+ 2. **Criar `docs/components/modern-chat-input.md`** — componente de input do assistente
179
+ 3. **Criar `docs/components/formatted-document.md`** — componente de documento do assistente
180
+ 4. **Criar `docs/components/pages.md`** (ou docs individuais) — 8 páginas-template completamente invisíveis
181
+ 5. **Criar `docs/components/hooks.md`** — documentar `useTheme`, `useLanguage`, `useBrandColors`, `useAssistente`, `useApiKey`
182
+ 6. **Atualizar `docs/llms.md`** — corrigir estatísticas, adicionar páginas e hooks ao catálogo, adicionar links para docs dos componentes assistant
183
+
184
+ ### 🟡 Média Prioridade (melhoria de qualidade)
185
+
186
+ 7. **Corrigir título de `docs/architecture.md`**
187
+ 8. **Expandir `docs/components/assistant-chart.md`** — remover restrição enganosa de dataKey
188
+ 9. **Completar `docs/components/floating-media-wrapper.md`** — seção "Related Components"
189
+ 10. **Completar `docs/components/xertica-provider.md`** — seção "AI Rules"
190
+ 11. **Criar `docs/components/map-layers.md`** — documentar `useMapLayers`
191
+ 12. **Adicionar `"moduleResolution": "bundler"` em `docs/installation.md`**
192
+
193
+ ### 🟢 Baixa Prioridade (melhorias incrementais)
194
+
195
+ 13. **Criar padrão `docs/patterns/wizard.md`** — multi-step form com Stepper
196
+ 14. **Criar padrão `docs/patterns/detail-page.md`** — página de detalhe
197
+ 15. **Criar padrão `docs/patterns/settings.md`** — página de configurações
198
+ 16. **Adicionar seção de troubleshooting em `docs/getting-started.md`**
199
+ 17. **Criar `docs/components/image-with-fallback.md`** — utilitário de imagem
200
+ 18. **Criar `docs/components/branding.md`** — componente de branding
201
+
202
+ ---
203
+
204
+ ## 6. Checklist de Ações
205
+
206
+ - [ ] `docs/components/code-block.md` — criar
207
+ - [ ] `docs/components/modern-chat-input.md` — criar
208
+ - [ ] `docs/components/formatted-document.md` — criar
209
+ - [ ] `docs/components/pages.md` — criar (ou 8 docs individuais)
210
+ - [ ] `docs/components/hooks.md` — criar (useTheme, useLanguage, useBrandColors, useAssistente, useApiKey)
211
+ - [ ] `docs/llms.md` — atualizar estatísticas + adicionar páginas + hooks + links dos assistant components
212
+ - [ ] `docs/architecture.md` — corrigir título (linha 1)
213
+ - [ ] `docs/components/assistant-chart.md` — expandir e corrigir regra de dataKey
214
+ - [ ] `docs/components/floating-media-wrapper.md` — completar seção "Related Components"
215
+ - [ ] `docs/components/xertica-provider.md` — completar seção "AI Rules"
216
+ - [ ] `docs/components/map-layers.md` — criar
217
+ - [ ] `docs/installation.md` — adicionar requisito de `moduleResolution`
218
+ - [ ] `docs/patterns/wizard.md` — criar
219
+ - [ ] `docs/patterns/detail-page.md` — criar
220
+ - [ ] `docs/patterns/settings.md` — criar
221
+ - [ ] `docs/getting-started.md` — adicionar seção de troubleshooting
222
+ - [ ] `docs/components/image-with-fallback.md` — criar
223
+ - [ ] `docs/components/branding.md` — criar
@@ -259,3 +259,157 @@ Icons are separate — always use `lucide-react`:
259
259
  ```tsx
260
260
  import { Home, Settings, Users, LogOut } from 'lucide-react';
261
261
  ```
262
+
263
+ ---
264
+
265
+ ## Troubleshooting
266
+
267
+ ### Components render without styles (transparent / unstyled)
268
+
269
+ **Cause**: Missing CSS import.
270
+
271
+ **Fix**: Add `import 'xertica-ui/style.css'` to your entry file (`main.tsx` or `index.tsx`), **before** your own styles:
272
+
273
+ ```tsx
274
+ import 'xertica-ui/style.css';
275
+ import './styles/index.css'; // your tokens and overrides
276
+ ```
277
+
278
+ ---
279
+
280
+ ### Dark mode doesn't apply
281
+
282
+ **Cause**: The `dark` class is not being toggled on `<html>`, or `@theme inline` is missing from your CSS.
283
+
284
+ **Fix 1**: Use `<ThemeToggle>` from `xertica-ui/brand` — it handles the class toggle automatically.
285
+
286
+ **Fix 2**: Ensure your `index.css` uses `@theme inline` (not plain `@theme`):
287
+
288
+ ```css
289
+ /* ✅ Correct */
290
+ @theme inline {
291
+ --color-primary: var(--primary);
292
+ }
293
+
294
+ /* ❌ Wrong — compiles tokens statically, ignoring your tokens.css overrides */
295
+ @theme {
296
+ --color-primary: var(--primary);
297
+ }
298
+ ```
299
+
300
+ ---
301
+
302
+ ### Subpath imports cause TypeScript errors
303
+
304
+ **Cause**: `tsconfig.json` uses `"moduleResolution": "node"` which does not support package subpath exports.
305
+
306
+ **Fix**: Update `tsconfig.json`:
307
+
308
+ ```json
309
+ {
310
+ "compilerOptions": {
311
+ "moduleResolution": "bundler"
312
+ }
313
+ }
314
+ ```
315
+
316
+ Alternatively, use `"moduleResolution": "node16"` or `"nodenext"`.
317
+
318
+ ---
319
+
320
+ ### Toast notifications don't appear
321
+
322
+ **Cause**: `<Toaster>` is not mounted, or `<XerticaProvider>` is missing.
323
+
324
+ **Fix**: Wrap your app in `<XerticaProvider>` — it auto-injects `<Toaster>`. If you are not using `XerticaProvider`, add `<Toaster />` manually:
325
+
326
+ ```tsx
327
+ import { Toaster } from 'xertica-ui/ui';
328
+
329
+ function App() {
330
+ return (
331
+ <>
332
+ <YourApp />
333
+ <Toaster />
334
+ </>
335
+ );
336
+ }
337
+ ```
338
+
339
+ ---
340
+
341
+ ### Dialogs / Modals don't appear
342
+
343
+ **Cause**: Missing `<XerticaProvider>` (which includes `TooltipProvider` and portal context).
344
+
345
+ **Fix**: Ensure `<XerticaProvider>` wraps the entire application at the root level.
346
+
347
+ ---
348
+
349
+ ### Google Maps doesn't load
350
+
351
+ **Cause**: Missing or invalid `googleMapsApiKey`, or the Maps API script failed to load.
352
+
353
+ **Fix**: Pass the key to `XerticaProvider`:
354
+
355
+ ```tsx
356
+ <XerticaProvider googleMapsApiKey="YOUR_VALID_KEY">
357
+ <App />
358
+ </XerticaProvider>
359
+ ```
360
+
361
+ Or use `useApiKey()` to set it at runtime:
362
+
363
+ ```tsx
364
+ const { setGoogleMapsApiKey, reloadMapsApi } = useApiKey();
365
+ setGoogleMapsApiKey('YOUR_KEY');
366
+ await reloadMapsApi();
367
+ ```
368
+
369
+ ---
370
+
371
+ ### `useLayout()` throws "must be used within LayoutProvider"
372
+
373
+ **Cause**: The component using `useLayout()` is rendered outside `<XerticaProvider>`.
374
+
375
+ **Fix**: Ensure `<XerticaProvider>` is an ancestor of all components that use `useLayout()`, `useTheme()`, or any other context hook.
376
+
377
+ For components that may be used both inside and outside the provider (e.g., in Storybook), use `useOptionalLayout()` instead — it returns `null` when the context is unavailable.
378
+
379
+ ---
380
+
381
+ ### Sidebar width causes content overlap
382
+
383
+ **Cause**: Content area is not reading `sidebarWidth` from `useLayout()`.
384
+
385
+ **Fix**: Apply the sidebar width as a left margin or padding on the main content area:
386
+
387
+ ```tsx
388
+ const { sidebarWidth } = useLayout();
389
+
390
+ <main style={{ marginLeft: sidebarWidth }} className="flex-1 overflow-auto">
391
+ {/* content */}
392
+ </main>
393
+ ```
394
+
395
+ ---
396
+
397
+ ### AI Assistant doesn't respond (real mode)
398
+
399
+ **Cause**: Missing or invalid Gemini API key.
400
+
401
+ **Fix**: Set the Gemini API key via `useApiKey()` or pass it to `XerticaProvider`:
402
+
403
+ ```tsx
404
+ <XerticaProvider initialGeminiApiKey="YOUR_GEMINI_KEY">
405
+ <App />
406
+ </XerticaProvider>
407
+ ```
408
+
409
+ Or use the Settings pattern to let users enter their own key. See [`docs/patterns/settings.md`](./patterns/settings.md).
410
+
411
+ For testing without a real API key, use `mode="demo"` on `XerticaAssistant`:
412
+
413
+ ```tsx
414
+ <XerticaAssistant mode="demo" />
415
+ ```
package/docs/llms.md CHANGED
@@ -3,13 +3,14 @@
3
3
  > **This is the primary entrypoint for AI agents operating on any project that uses `xertica-ui`.** Read this document first before exploring any other file.
4
4
 
5
5
  ## Statistics
6
- - **Total Components:** 97
6
+ - **Total Components:** 104
7
7
  - **UI Components:** 62
8
- - **Assistant Components:** 5
8
+ - **Assistant Components:** 8
9
9
  - **Brand Components:** 6
10
10
  - **Media Components:** 3
11
11
  - **Layout Components:** 2
12
12
  - **Page Templates:** 8
13
+ - **Hooks:** 9
13
14
 
14
15
  ## What is Xertica UI?
15
16
 
@@ -154,15 +155,34 @@ Follow this order when onboarding to a project that uses `xertica-ui`:
154
155
  |---|---|---|
155
156
  | `useMobile` / `useIsMobile` | [use-mobile.md](./components/use-mobile.md) | Detects mobile viewport for conditional rendering |
156
157
  | `useLayout` | [layout.md](../layout.md) | Accesses sidebar width, state, and toggle functions |
158
+ | `useTheme` | [hooks.md](./components/hooks.md#usetheme) | Reads and toggles the current color theme (light/dark) |
159
+ | `useLanguage` | [hooks.md](./components/hooks.md#uselanguage) | Reads and sets the current UI language preference |
160
+ | `useBrandColors` | [hooks.md](./components/hooks.md#usebrandcolors) | Reads and modifies brand color CSS variables |
161
+ | `useAssistente` | [hooks.md](./components/hooks.md#useassistente) | Accesses the global AI assistant context |
162
+ | `useApiKey` | [hooks.md](./components/hooks.md#useapikey) | Manages API keys for Xertica, Gemini, and Google Maps |
163
+ | `useAudioPlayer` | [hooks.md](./components/hooks.md#useaudioplayer) | Headless hook for building custom audio player UIs |
164
+ | `useLayoutShortcuts` | [hooks.md](./components/hooks.md#uselayoutshortcuts) | Registers global keyboard shortcuts (Ctrl+B = sidebar toggle) |
165
+
166
+ ### Page Templates
167
+ | Component | Doc | Purpose |
168
+ |---|---|---|
169
+ | `LoginPage` | [pages.md](./components/pages.md#loginpage) | Complete login screen with email/password and SSO placeholders |
170
+ | `ForgotPasswordPage` | [pages.md](./components/pages.md#forgotpasswordpage) | Password recovery form |
171
+ | `ResetPasswordPage` | [pages.md](./components/pages.md#resetpasswordpage) | New password form for reset flow |
172
+ | `VerifyEmailPage` | [pages.md](./components/pages.md#verifyemailpage) | Email verification confirmation screen |
173
+ | `HomePage` | [pages.md](./components/pages.md#homepage) | Root dashboard shell (Sidebar + HomeContent + Assistant) |
174
+ | `HomeContent` | [pages.md](./components/pages.md#homecontent) | Dashboard main content area with stats, charts, and tables |
175
+ | `TemplatePage` | [pages.md](./components/pages.md#templatepage) | Full layout reference shell (Sidebar + TemplateContent + Assistant) |
176
+ | `TemplateContent` | [pages.md](./components/pages.md#templatecontent) | Comprehensive component showcase for development reference |
157
177
 
158
178
  ### AI Features
159
179
  | Component | Doc | Purpose |
160
180
  |---|---|---|
161
181
  | `XerticaAssistant` | [assistant.md](./components/assistant.md) | Embedded AI chat panel & document workspace |
162
- | `CodeBlock` | in Storybook | Syntax-highlighted code display with copy button |
182
+ | `CodeBlock` | [code-block.md](./components/code-block.md) | Syntax-highlighted code display with copy button |
163
183
  | `MarkdownMessage` | [markdown-message.md](./components/markdown-message.md) | Renders AI responses with Markdown formatting |
164
- | `ModernChatInput` | in Storybook | Enhanced AI chat input with drag-and-drop support |
165
- | `FormattedDocument` | in Storybook | Refined document display for AI-generated content |
184
+ | `ModernChatInput` | [modern-chat-input.md](./components/modern-chat-input.md) | Enhanced AI chat input with action chips and voice recording |
185
+ | `FormattedDocument` | [formatted-document.md](./components/formatted-document.md) | Collapsible Markdown renderer for AI-generated documents |
166
186
  | `AssistantChart` | [assistant-chart.md](./components/assistant-chart.md) | Specialized data visualization for AI insights |
167
187
 
168
188
  ### Brand & Theme