xertica-ui 2.1.2 → 2.1.3

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 (402) hide show
  1. package/CHANGELOG.md +31 -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/bin/cli.ts +1 -1
  6. package/bin/generate-tokens.ts +13 -7
  7. package/components/assistant/index.ts +6 -6
  8. package/components/assistant/xertica-assistant/index.ts +2 -0
  9. package/components/assistant/xertica-assistant/use-assistant.ts +564 -0
  10. package/components/assistant/xertica-assistant/xertica-assistant.stories.tsx +200 -0
  11. package/components/assistant/xertica-assistant/xertica-assistant.tsx +183 -474
  12. package/components/blocks/card-patterns/ActivityCard.tsx +72 -72
  13. package/components/blocks/card-patterns/FeatureCard.tsx +100 -100
  14. package/components/blocks/card-patterns/NotificationCard.tsx +127 -127
  15. package/components/blocks/card-patterns/ProfileCard.tsx +84 -84
  16. package/components/blocks/card-patterns/ProjectCard.tsx +89 -89
  17. package/components/blocks/card-patterns/QuickActionCard.tsx +62 -62
  18. package/components/blocks/card-patterns/card-patterns.stories.tsx +445 -445
  19. package/components/blocks/card-patterns/index.ts +17 -17
  20. package/components/blocks/index.ts +1 -1
  21. package/components/brand/index.ts +6 -6
  22. package/components/brand/xertica-provider/XerticaProvider.tsx +48 -48
  23. package/components/brand/xertica-provider/xertica-provider.mdx +61 -61
  24. package/components/brand/xertica-provider/xertica-provider.test.tsx +52 -52
  25. package/components/examples/MapExamples.tsx +282 -282
  26. package/components/examples/SimpleFilterableMap.tsx +191 -191
  27. package/components/examples/index.ts +51 -51
  28. package/components/figma/ImageWithFallback.tsx +27 -27
  29. package/components/hooks/index.ts +7 -7
  30. package/components/index.ts +5 -5
  31. package/components/layout/header/header.test.tsx +8 -8
  32. package/components/layout/header/header.tsx +4 -4
  33. package/components/layout/index.ts +2 -2
  34. package/components/layout/sidebar/index.ts +2 -0
  35. package/components/layout/sidebar/sidebar.mdx +1 -1
  36. package/components/layout/sidebar/sidebar.stories.tsx +160 -8
  37. package/components/layout/sidebar/sidebar.test.tsx +11 -11
  38. package/components/layout/sidebar/sidebar.tsx +610 -471
  39. package/components/layout/sidebar/use-sidebar.ts +113 -0
  40. package/components/media/FloatingMediaWrapper.tsx +11 -11
  41. package/components/media/audio-player/AudioPlayer.tsx +22 -22
  42. package/components/media/index.ts +3 -3
  43. package/components/pages/home-content/HomeContent.tsx +7 -7
  44. package/components/pages/home-content/home-content.mdx +62 -62
  45. package/components/pages/home-page/HomePage.stories.tsx +39 -39
  46. package/components/pages/home-page/HomePage.tsx +1 -1
  47. package/components/pages/home-page/home-page.mdx +53 -53
  48. package/components/pages/index.ts +8 -8
  49. package/components/pages/template-content/TemplateContent.tsx +5 -5
  50. package/components/pages/template-content/template-content.mdx +61 -61
  51. package/components/pages/template-page/TemplatePage.stories.tsx +39 -39
  52. package/components/pages/template-page/TemplatePage.tsx +5 -5
  53. package/components/pages/template-page/template-page.mdx +53 -53
  54. package/components/public-api-smoke.test.tsx +52 -52
  55. package/components/shared/assistant-utils.ts +43 -43
  56. package/components/shared/layout-constants.ts +1 -1
  57. package/components/ui/accordion/accordion.mdx +8 -8
  58. package/components/ui/accordion/accordion.stories.tsx +53 -53
  59. package/components/ui/alert/alert.mdx +8 -8
  60. package/components/ui/alert-dialog/alert-dialog.mdx +8 -8
  61. package/components/ui/aspect-ratio/aspect-ratio.mdx +8 -8
  62. package/components/ui/assistant-chart/assistant-chart.mdx +8 -8
  63. package/components/ui/avatar/avatar.mdx +8 -8
  64. package/components/ui/badge/badge.mdx +8 -8
  65. package/components/ui/badge/badge.tsx +9 -9
  66. package/components/ui/breadcrumb/breadcrumb.mdx +8 -8
  67. package/components/ui/button/button.mdx +8 -8
  68. package/components/ui/calendar/calendar.mdx +8 -8
  69. package/components/ui/calendar/calendar.tsx +258 -258
  70. package/components/ui/card/card.mdx +8 -8
  71. package/components/ui/card/card.stories.tsx +245 -245
  72. package/components/ui/carousel/carousel.mdx +8 -8
  73. package/components/ui/chart/chart.mdx +8 -8
  74. package/components/ui/chart/chart.stories.tsx +1303 -344
  75. package/components/ui/chart/chart.test.tsx +154 -154
  76. package/components/ui/chart/chart.tsx +2367 -1494
  77. package/components/ui/checkbox/checkbox.mdx +8 -8
  78. package/components/ui/checkbox/checkbox.stories.tsx +20 -20
  79. package/components/ui/collapsible/collapsible.mdx +8 -8
  80. package/components/ui/command/command.mdx +8 -8
  81. package/components/ui/context-menu/context-menu.mdx +8 -8
  82. package/components/ui/dialog/dialog.mdx +8 -8
  83. package/components/ui/drawer/drawer.mdx +8 -8
  84. package/components/ui/dropdown-menu/dropdown-menu.mdx +8 -8
  85. package/components/ui/empty/empty.mdx +8 -8
  86. package/components/ui/file-upload/file-upload.mdx +8 -8
  87. package/components/ui/file-upload/file-upload.stories.tsx +100 -0
  88. package/components/ui/file-upload/file-upload.tsx +14 -74
  89. package/components/ui/file-upload/index.ts +1 -0
  90. package/components/ui/file-upload/use-file-upload.ts +181 -0
  91. package/components/ui/google-maps-loader/google-maps-loader.tsx +2 -2
  92. package/components/ui/hover-card/hover-card.mdx +8 -8
  93. package/components/ui/input/input.mdx +8 -8
  94. package/components/ui/input-otp/input-otp.mdx +8 -8
  95. package/components/ui/input-otp/input-otp.stories.tsx +6 -6
  96. package/components/ui/label/label.mdx +8 -8
  97. package/components/ui/map/map.mdx +8 -8
  98. package/components/ui/map/map.stories.tsx +51 -51
  99. package/components/ui/map/map.tsx +2 -2
  100. package/components/ui/menubar/menubar.mdx +8 -8
  101. package/components/ui/navigation-menu/navigation-menu.mdx +8 -8
  102. package/components/ui/notification-badge/notification-badge.mdx +8 -8
  103. package/components/ui/pagination/index.ts +2 -0
  104. package/components/ui/pagination/pagination.mdx +8 -8
  105. package/components/ui/pagination/pagination.stories.tsx +94 -0
  106. package/components/ui/pagination/use-pagination.ts +194 -0
  107. package/components/ui/popover/popover.mdx +8 -8
  108. package/components/ui/progress/progress.mdx +8 -8
  109. package/components/ui/progress/progress.tsx +68 -68
  110. package/components/ui/radio-group/radio-group.mdx +8 -8
  111. package/components/ui/rating/rating.mdx +8 -8
  112. package/components/ui/resizable/resizable.mdx +8 -8
  113. package/components/ui/rich-text-editor/index.ts +2 -0
  114. package/components/ui/rich-text-editor/rich-text-editor.stories.tsx +129 -1
  115. package/components/ui/rich-text-editor/rich-text-editor.tsx +86 -305
  116. package/components/ui/rich-text-editor/use-rich-text-editor.ts +439 -0
  117. package/components/ui/route-map/route-map.mdx +8 -8
  118. package/components/ui/route-map/route-map.stories.tsx +54 -54
  119. package/components/ui/route-map/route-map.tsx +2 -2
  120. package/components/ui/scroll-area/scroll-area.mdx +8 -8
  121. package/components/ui/search/search.mdx +8 -8
  122. package/components/ui/select/select.mdx +8 -8
  123. package/components/ui/select/select.stories.tsx +9 -9
  124. package/components/ui/separator/separator.mdx +8 -8
  125. package/components/ui/sheet/sheet.mdx +8 -8
  126. package/components/ui/sheet/sheet.stories.tsx +95 -95
  127. package/components/ui/simple-map/simple-map.mdx +8 -8
  128. package/components/ui/simple-map/simple-map.stories.tsx +48 -48
  129. package/components/ui/skeleton/skeleton.mdx +8 -8
  130. package/components/ui/slider/slider.mdx +8 -8
  131. package/components/ui/sonner/sonner.mdx +8 -8
  132. package/components/ui/stats-card/stats-card.mdx +8 -8
  133. package/components/ui/stepper/index.ts +3 -1
  134. package/components/ui/stepper/stepper.mdx +8 -8
  135. package/components/ui/stepper/stepper.stories.tsx +116 -0
  136. package/components/ui/stepper/stepper.tsx +4 -4
  137. package/components/ui/stepper/use-stepper.ts +137 -0
  138. package/components/ui/switch/switch.mdx +8 -8
  139. package/components/ui/switch/switch.stories.tsx +20 -20
  140. package/components/ui/table/table.mdx +8 -8
  141. package/components/ui/tabs/tabs.mdx +8 -8
  142. package/components/ui/tabs/tabs.stories.tsx +26 -26
  143. package/components/ui/textarea/textarea.mdx +8 -8
  144. package/components/ui/timeline/timeline.mdx +8 -8
  145. package/components/ui/toggle/toggle.mdx +8 -8
  146. package/components/ui/toggle-group/toggle-group.mdx +8 -8
  147. package/components/ui/tooltip/tooltip.mdx +8 -8
  148. package/components/ui/tree-view/index.ts +4 -1
  149. package/components/ui/tree-view/tree-view.mdx +8 -8
  150. package/components/ui/tree-view/tree-view.stories.tsx +110 -4
  151. package/components/ui/tree-view/tree-view.tsx +17 -125
  152. package/components/ui/tree-view/use-tree-view.ts +229 -0
  153. package/components.json +1512 -1512
  154. package/contexts/ApiKeyContext.tsx +72 -72
  155. package/contexts/BrandColorsContext.tsx +26 -26
  156. package/contexts/LanguageContext.tsx +13 -13
  157. package/contexts/LayoutContext.test.tsx +11 -11
  158. package/contexts/LayoutContext.tsx +29 -29
  159. package/contexts/ThemeContext.tsx +26 -26
  160. package/contexts/theme-data.ts +4 -4
  161. package/dist/{AssistantChart-CVzmmhx4.js → AssistantChart-C_hwFRRr.js} +4 -4
  162. package/dist/{AssistantChart-BAx9VQvb.cjs → AssistantChart-CldVCVDe.cjs} +311 -94
  163. package/dist/{AssistantChart-CVko2A1W.js → AssistantChart-Cu3m7RBo.js} +314 -97
  164. package/dist/{AssistantChart-9w31gdAb.cjs → AssistantChart-DoZCyS5r.cjs} +4 -4
  165. package/dist/AudioPlayer-B1lt5cPl.cjs +989 -0
  166. package/dist/AudioPlayer-BZ7bibzU.cjs +982 -0
  167. package/dist/AudioPlayer-C12BjQBV.cjs +997 -0
  168. package/dist/AudioPlayer-DMcG_c7L.js +990 -0
  169. package/dist/AudioPlayer-DcFKRJE_.js +998 -0
  170. package/dist/AudioPlayer-e8LfNoqO.js +983 -0
  171. package/dist/{xertica-assistant-Qp3ydksa.cjs → CodeBlock-7TTgmdGG.cjs} +263 -51
  172. package/dist/{xertica-assistant-gnCJdcZY.js → CodeBlock-BeSt1h5P.js} +219 -7
  173. package/dist/CodeBlock-BgfYL_rD.cjs +2094 -0
  174. package/dist/CodeBlock-BlcqlA9M.cjs +2094 -0
  175. package/dist/CodeBlock-Bnmeu5ez.cjs +2094 -0
  176. package/dist/CodeBlock-BtfPlbAI.js +2078 -0
  177. package/dist/CodeBlock-CIySIuYr.js +2078 -0
  178. package/dist/CodeBlock-CuPtUM-7.cjs +2094 -0
  179. package/dist/CodeBlock-D6ffWXgc.js +2078 -0
  180. package/dist/CodeBlock-D8dcwbit.cjs +2094 -0
  181. package/dist/CodeBlock-DMZrFnlw.cjs +2094 -0
  182. package/dist/CodeBlock-DlBehYN8.js +2078 -0
  183. package/dist/CodeBlock-DnYNI8rQ.js +2078 -0
  184. package/dist/CodeBlock-DvKWbSnE.cjs +2094 -0
  185. package/dist/CodeBlock-DwMCfkFY.js +2078 -0
  186. package/dist/CodeBlock-Dy6CNYyj.js +2078 -0
  187. package/dist/CodeBlock-U1pPOQI7.cjs +2094 -0
  188. package/dist/CodeBlock-f_GpNhEB.js +2078 -0
  189. package/dist/CodeBlock-oB6u8nI1.js +2078 -0
  190. package/dist/CodeBlock-tZC31B73.cjs +2094 -0
  191. package/dist/ImageWithFallback-CGtidP6B.cjs +4542 -0
  192. package/dist/ImageWithFallback-lsg3pdFg.js +4508 -0
  193. package/dist/LanguageSelector-B5YfbHra.js +231 -0
  194. package/dist/LanguageSelector-D6uacAIM.cjs +230 -0
  195. package/dist/LayoutContext-BAql6ZRY.js +97 -0
  196. package/dist/LayoutContext-BvK-ggDa.cjs +96 -0
  197. package/dist/ThemeContext-BoH4NLfN.js +734 -0
  198. package/dist/{ThemeContext-BbBNoFTG.js → ThemeContext-C2EwAPDt.js} +2 -2
  199. package/dist/ThemeContext-r69W20Xg.cjs +733 -0
  200. package/dist/{ThemeContext-Cmr8Ex8H.cjs → ThemeContext-vTjumZeM.cjs} +2 -2
  201. package/dist/{VerifyEmailPage-BE-L9mB7.js → VerifyEmailPage-C0c2e5n0.js} +7 -7
  202. package/dist/{VerifyEmailPage-DMBh4NM9.cjs → VerifyEmailPage-CYXtbKi3.cjs} +1 -1
  203. package/dist/{VerifyEmailPage-CR7kb5df.cjs → VerifyEmailPage-Cwi3kbol.cjs} +7 -7
  204. package/dist/{VerifyEmailPage-CdYPSJoO.js → VerifyEmailPage-DvMLZgFt.js} +1 -1
  205. package/dist/XerticaOrbe-KL1RBHzw.cjs +1354 -0
  206. package/dist/XerticaOrbe-zwS1p2a8.js +1355 -0
  207. package/dist/XerticaProvider-6btlAlzc.js +17 -0
  208. package/dist/XerticaProvider-BNoNOxQ5.cjs +16 -0
  209. package/dist/XerticaProvider-BlY2limY.cjs +38 -0
  210. package/dist/{XerticaProvider-BITjgC5p.js → XerticaProvider-CEoWMTxu.js} +2 -2
  211. package/dist/{XerticaProvider-By8q3Roe.cjs → XerticaProvider-CllrbMEJ.cjs} +2 -2
  212. package/dist/XerticaProvider-DDuiIcKo.js +39 -0
  213. package/dist/XerticaProvider-cI9hSs27.cjs +38 -0
  214. package/dist/XerticaProvider-hSwhNQex.js +39 -0
  215. package/dist/{alert-dialog-yckpaOpy.cjs → alert-dialog-DSKByiKZ.cjs} +3 -3
  216. package/dist/{alert-dialog-iDe5VE5o.js → alert-dialog-s-vmNkJ_.js} +3 -3
  217. package/dist/assistant.cjs.js +2 -1
  218. package/dist/assistant.es.js +3 -2
  219. package/dist/brand.cjs.js +1 -1
  220. package/dist/brand.es.js +1 -1
  221. package/dist/breadcrumb-CqJ7bHY5.js +161 -0
  222. package/dist/breadcrumb-m9Hb2_XN.cjs +177 -0
  223. package/dist/cli.js +14 -8
  224. package/dist/components/assistant/xertica-assistant/index.d.ts +2 -0
  225. package/dist/components/assistant/xertica-assistant/use-assistant.d.ts +126 -0
  226. package/dist/components/assistant/xertica-assistant/xertica-assistant.d.ts +7 -2
  227. package/dist/components/blocks/audio-player/AudioPlayer.d.ts +35 -0
  228. package/dist/components/blocks/audio-player/index.d.ts +1 -0
  229. package/dist/components/blocks/document-editor/DocumentEditor.d.ts +26 -0
  230. package/dist/components/blocks/document-editor/index.d.ts +1 -0
  231. package/dist/components/blocks/podcast-player/PodcastPlayer.d.ts +41 -0
  232. package/dist/components/blocks/podcast-player/index.d.ts +1 -0
  233. package/dist/components/layout/sidebar/index.d.ts +2 -0
  234. package/dist/components/layout/sidebar/sidebar.d.ts +80 -0
  235. package/dist/components/layout/sidebar/use-sidebar.d.ts +22 -0
  236. package/dist/components/shared/layout-constants.d.ts +1 -1
  237. package/dist/components/ui/button/button.d.ts +1 -1
  238. package/dist/components/ui/chart/chart.d.ts +162 -5
  239. package/dist/components/ui/file-upload/file-upload.d.ts +2 -0
  240. package/dist/components/ui/file-upload/index.d.ts +1 -0
  241. package/dist/components/ui/file-upload/use-file-upload.d.ts +49 -0
  242. package/dist/components/ui/pagination/index.d.ts +2 -0
  243. package/dist/components/ui/pagination/use-pagination.d.ts +78 -0
  244. package/dist/components/ui/rich-text-editor/index.d.ts +2 -0
  245. package/dist/components/ui/rich-text-editor/use-rich-text-editor.d.ts +107 -0
  246. package/dist/components/ui/stepper/index.d.ts +3 -1
  247. package/dist/components/ui/stepper/stepper.d.ts +2 -2
  248. package/dist/components/ui/stepper/use-stepper.d.ts +60 -0
  249. package/dist/components/ui/tree-view/index.d.ts +4 -1
  250. package/dist/components/ui/tree-view/tree-view.d.ts +4 -6
  251. package/dist/components/ui/tree-view/use-tree-view.d.ts +60 -0
  252. package/dist/dropdown-menu-BDB5CmQs.cjs +247 -0
  253. package/dist/dropdown-menu-DQidbKBD.js +231 -0
  254. package/dist/google-maps-loader-BFWp6VPd.js +287 -0
  255. package/dist/{google-maps-loader-t2IlYBzw.js → google-maps-loader-CTYySAun.js} +4 -0
  256. package/dist/{google-maps-loader-BqsYL48U.cjs → google-maps-loader-Y-QkD-Li.cjs} +5 -0
  257. package/dist/google-maps-loader-eS3uQ5TA.cjs +287 -0
  258. package/dist/header-Cgy6vYPk.cjs +731 -0
  259. package/dist/header-DRlT4jgI.js +715 -0
  260. package/dist/header-Dux00SI4.cjs +731 -0
  261. package/dist/header-EkGKXPsD.js +715 -0
  262. package/dist/header-WfEywpyc.cjs +731 -0
  263. package/dist/header-tifNQn2U.js +715 -0
  264. package/dist/hooks.cjs.js +1 -1
  265. package/dist/hooks.es.js +1 -1
  266. package/dist/index-BhapVLVj.js +8 -0
  267. package/dist/{index-D3RLKRAs.cjs → index-COtD8bRW.cjs} +1 -1
  268. package/dist/index-D6fxYEY8.cjs +7 -0
  269. package/dist/index-DW5tYe26.js +8 -0
  270. package/dist/index.cjs.js +19 -8
  271. package/dist/index.es.js +39 -28
  272. package/dist/index.umd.js +1043 -470
  273. package/dist/input-2R4loU86.js +127 -0
  274. package/dist/input-DWANSKGb.cjs +145 -0
  275. package/dist/layout.cjs.js +89 -1
  276. package/dist/layout.es.js +90 -2
  277. package/dist/pages.cjs.js +1 -1
  278. package/dist/pages.es.js +1 -1
  279. package/dist/rich-text-editor-0mraWT5y.cjs +2376 -0
  280. package/dist/rich-text-editor-B6jMRLzk.cjs +1939 -0
  281. package/dist/rich-text-editor-B8_oYcIR.js +1730 -0
  282. package/dist/rich-text-editor-B9UbSXNb.js +1203 -0
  283. package/dist/rich-text-editor-BYuRBNBU.js +2373 -0
  284. package/dist/rich-text-editor-Bb9pySTs.cjs +2374 -0
  285. package/dist/rich-text-editor-BcL6L3cm.cjs +2374 -0
  286. package/dist/rich-text-editor-BoVZYtTs.cjs +2391 -0
  287. package/dist/rich-text-editor-CPV1lEPH.cjs +1748 -0
  288. package/dist/rich-text-editor-CoKqbCtu.cjs +1799 -0
  289. package/dist/rich-text-editor-Cw56T_mB.js +2356 -0
  290. package/dist/rich-text-editor-Cyt8qs2b.js +1921 -0
  291. package/dist/rich-text-editor-D6H84OcX.cjs +1220 -0
  292. package/dist/rich-text-editor-D76gD-QI.js +2328 -0
  293. package/dist/rich-text-editor-DKkokOnA.js +1781 -0
  294. package/dist/rich-text-editor-DNsdpN64.cjs +2359 -0
  295. package/dist/rich-text-editor-DfG8bCyY.js +2358 -0
  296. package/dist/rich-text-editor-DgF8s7xW.js +2949 -0
  297. package/dist/rich-text-editor-Dxjw31Z4.js +2341 -0
  298. package/dist/rich-text-editor-DzP0Epmb.js +2356 -0
  299. package/dist/rich-text-editor-mWoaSCE4.cjs +2966 -0
  300. package/dist/rich-text-editor-skplNlBM.cjs +2345 -0
  301. package/dist/select-Bkbr0f-Z.cjs +162 -0
  302. package/dist/select-CvIVdX2n.js +145 -0
  303. package/dist/sidebar-CK_0ZQHj.cjs +803 -0
  304. package/dist/sidebar-CUuOvYhK.js +787 -0
  305. package/dist/slider-Bc5Hd0y1.js +56 -0
  306. package/dist/slider-N7hFFj6X.cjs +73 -0
  307. package/dist/tooltip-Ded96neP.cjs +137 -0
  308. package/dist/tooltip-HDOoD2-0.js +120 -0
  309. package/dist/ui.cjs.js +14 -4
  310. package/dist/ui.es.js +26 -16
  311. package/dist/use-mobile-B0hNy_Y6.cjs +4303 -0
  312. package/dist/use-mobile-BXuYROXM.js +4202 -0
  313. package/dist/use-mobile-Bbd51ASU.cjs +4392 -0
  314. package/dist/use-mobile-Bk6CX-TC.js +4359 -0
  315. package/dist/use-mobile-BvYdisLP.js +4202 -0
  316. package/dist/use-mobile-BzuxjzNX.cjs +4392 -0
  317. package/dist/use-mobile-CG2-SdXV.cjs +4235 -0
  318. package/dist/use-mobile-CKb5pqTs.js +4269 -0
  319. package/dist/use-mobile-CYuAuGDl.js +4202 -0
  320. package/dist/use-mobile-CaENcqm-.js +4508 -0
  321. package/dist/use-mobile-CbrYgJGJ.js +4203 -0
  322. package/dist/use-mobile-DMOvImGQ.cjs +4542 -0
  323. package/dist/use-mobile-DRB3BQgD.cjs +4235 -0
  324. package/dist/use-mobile-DZvv7QMR.js +4359 -0
  325. package/dist/use-mobile-DdI_TXam.cjs +4235 -0
  326. package/dist/use-mobile-DlceKf8a.js +4359 -0
  327. package/dist/use-mobile-DsOnow1o.cjs +4236 -0
  328. package/dist/use-mobile-Kcj6jSnK.cjs +4392 -0
  329. package/dist/use-mobile-bnKcua_i.js +4202 -0
  330. package/dist/use-mobile-ncXBeE2z.cjs +4235 -0
  331. package/dist/{xertica-assistant-B1IaHXnB.cjs → xertica-assistant-dyP7KHM5.cjs} +533 -392
  332. package/dist/{xertica-assistant-DPsESB6t.js → xertica-assistant-yX1CFBBo.js} +535 -394
  333. package/dist/xertica-ui.css +2 -2
  334. package/docs/ai-usage.md +28 -10
  335. package/docs/architecture.md +76 -0
  336. package/docs/components/assistant.md +159 -0
  337. package/docs/components/calendar.md +154 -154
  338. package/docs/components/card-patterns.md +337 -337
  339. package/docs/components/card.md +235 -235
  340. package/docs/components/chart.md +354 -39
  341. package/docs/components/file-upload.md +119 -2
  342. package/docs/components/map.md +84 -84
  343. package/docs/components/pagination.md +187 -0
  344. package/docs/components/rich-text-editor.md +164 -0
  345. package/docs/components/sidebar.md +153 -4
  346. package/docs/components/stepper.md +157 -12
  347. package/docs/components/tree-view.md +164 -6
  348. package/docs/components/xertica-provider.md +24 -24
  349. package/docs/decision-tree.md +287 -287
  350. package/docs/getting-started.md +1 -1
  351. package/docs/guidelines.md +14 -8
  352. package/docs/layout.md +2 -2
  353. package/docs/llms.md +4 -4
  354. package/guidelines/Guidelines.md +252 -250
  355. package/hooks/useTheme.ts +3 -3
  356. package/imports/Podcast.tsx +388 -388
  357. package/imports/XerticaAi.tsx +45 -45
  358. package/imports/XerticaX.tsx +19 -19
  359. package/imports/svg-aueiaqngck.ts +11 -11
  360. package/imports/svg-v9krss1ozd.ts +16 -16
  361. package/imports/svg-vhrdofe3qe.ts +5 -5
  362. package/llms-compact.txt +327 -327
  363. package/llms.txt +160 -160
  364. package/package.json +203 -203
  365. package/styles/xertica/app-overrides/chat.css +61 -61
  366. package/styles/xertica/app-overrides/scrollbar.css +33 -33
  367. package/styles/xertica/integrations/google-maps.css +76 -76
  368. package/styles/xertica/integrations/sonner.css +73 -73
  369. package/styles/xertica/tokens.css +41 -12
  370. package/templates/CLAUDE.md +182 -172
  371. package/templates/guidelines/Guidelines.md +325 -313
  372. package/templates/package.json +3 -3
  373. package/templates/src/features/auth/index.ts +4 -4
  374. package/templates/src/features/auth/ui/AuthPageShell.tsx +34 -34
  375. package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -70
  376. package/templates/src/features/auth/ui/LoginContent.tsx +90 -90
  377. package/templates/src/features/auth/ui/ResetPasswordContent.tsx +151 -151
  378. package/templates/src/features/auth/ui/SocialLoginButtons.tsx +59 -59
  379. package/templates/src/features/auth/ui/VerifyEmailContent.tsx +82 -82
  380. package/templates/src/features/home/index.ts +1 -1
  381. package/templates/src/features/home/ui/HomeContent.tsx +100 -100
  382. package/templates/src/features/template/index.ts +5 -5
  383. package/templates/src/features/template/ui/CrudTemplate.tsx +3 -3
  384. package/templates/src/features/template/ui/DashboardTemplate.tsx +3 -3
  385. package/templates/src/features/template/ui/FormTemplate.tsx +120 -120
  386. package/templates/src/features/template/ui/LoginTemplate.tsx +3 -3
  387. package/templates/src/pages/AssistantPage.tsx +328 -328
  388. package/templates/src/pages/ForgotPasswordPage.tsx +6 -6
  389. package/templates/src/pages/HomePage.tsx +57 -57
  390. package/templates/src/pages/LoginPage.tsx +10 -10
  391. package/templates/src/pages/ResetPasswordPage.tsx +6 -6
  392. package/templates/src/pages/TemplatePage.tsx +30 -30
  393. package/templates/src/pages/VerifyEmailPage.tsx +6 -6
  394. package/templates/src/shared/config/navigation.ts +20 -20
  395. package/templates/src/shared/lib/auth.ts +20 -20
  396. package/templates/src/shared/types/auth.ts +3 -3
  397. package/templates/src/styles/xertica/tokens.css +39 -10
  398. package/templates/tsconfig.json +5 -5
  399. package/utils/gemini.ts +140 -140
  400. package/dist/VerifyEmailPage-Bae2cBXT.cjs +0 -2827
  401. package/dist/VerifyEmailPage-CbgjOF0v.js +0 -2828
  402. package/dist/index-CkTUgOwX.js +0 -8
@@ -1,84 +1,84 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import { Card, CardContent } from "../../ui/card"
5
- import { Avatar, AvatarFallback, AvatarImage } from "../../ui/avatar"
6
- import { Badge } from "../../ui/badge"
7
- import { Button } from "../../ui/button"
8
- import { cn } from "../../shared/utils"
9
-
10
- export interface ProfileCardProps extends React.HTMLAttributes<HTMLDivElement> {
11
- name: string
12
- role: string
13
- department?: string
14
- avatar?: string
15
- initials: string
16
- status?: "online" | "offline" | "away" | "busy"
17
- stats?: Array<{ label: string; value: string | number }>
18
- primaryAction?: { label: string; onClick?: () => void }
19
- secondaryAction?: { label: string; onClick?: () => void }
20
- }
21
-
22
- const statusConfig = {
23
- online: { label: "Online", variant: "success" as const },
24
- offline: { label: "Offline", variant: "secondary" as const },
25
- away: { label: "Ausente", variant: "warning" as const },
26
- busy: { label: "Ocupado", variant: "destructive" as const },
27
- }
28
-
29
- export function ProfileCard({
30
- name, role, department, avatar, initials, status,
31
- stats, primaryAction, secondaryAction, className, ...props
32
- }: ProfileCardProps) {
33
- const s = status ? statusConfig[status] : null
34
-
35
- return (
36
- <Card className={cn("w-full", className)} {...props}>
37
- <CardContent className="pt-6 flex flex-col items-center text-center gap-3">
38
- <div className="relative">
39
- <Avatar className="size-16">
40
- {avatar && <AvatarImage src={avatar} alt={name} />}
41
- <AvatarFallback className="text-lg font-semibold">{initials}</AvatarFallback>
42
- </Avatar>
43
- {s && (
44
- <span className="absolute -bottom-0.5 -right-0.5">
45
- <Badge variant={s.variant} className="text-[10px] px-1.5 py-0 h-5">{s.label}</Badge>
46
- </span>
47
- )}
48
- </div>
49
-
50
- <div className="space-y-0.5">
51
- <p className="font-semibold text-base leading-tight">{name}</p>
52
- <p className="text-sm text-muted-foreground">{role}</p>
53
- {department && <p className="text-xs text-muted-foreground">{department}</p>}
54
- </div>
55
-
56
- {stats && stats.length > 0 && (
57
- <div className="w-full grid grid-cols-3 divide-x divide-border border-y border-border py-3 mt-1">
58
- {stats.map((stat) => (
59
- <div key={stat.label} className="flex flex-col items-center gap-0.5 px-2">
60
- <span className="text-base font-bold">{stat.value}</span>
61
- <span className="text-[11px] text-muted-foreground">{stat.label}</span>
62
- </div>
63
- ))}
64
- </div>
65
- )}
66
-
67
- {(primaryAction || secondaryAction) && (
68
- <div className="flex gap-2 w-full">
69
- {secondaryAction && (
70
- <Button variant="outline" className="flex-1" size="sm" onClick={secondaryAction.onClick}>
71
- {secondaryAction.label}
72
- </Button>
73
- )}
74
- {primaryAction && (
75
- <Button className="flex-1" size="sm" onClick={primaryAction.onClick}>
76
- {primaryAction.label}
77
- </Button>
78
- )}
79
- </div>
80
- )}
81
- </CardContent>
82
- </Card>
83
- )
84
- }
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Card, CardContent } from "../../ui/card"
5
+ import { Avatar, AvatarFallback, AvatarImage } from "../../ui/avatar"
6
+ import { Badge } from "../../ui/badge"
7
+ import { Button } from "../../ui/button"
8
+ import { cn } from "../../shared/utils"
9
+
10
+ export interface ProfileCardProps extends React.HTMLAttributes<HTMLDivElement> {
11
+ name: string
12
+ role: string
13
+ department?: string
14
+ avatar?: string
15
+ initials: string
16
+ status?: "online" | "offline" | "away" | "busy"
17
+ stats?: Array<{ label: string; value: string | number }>
18
+ primaryAction?: { label: string; onClick?: () => void }
19
+ secondaryAction?: { label: string; onClick?: () => void }
20
+ }
21
+
22
+ const statusConfig = {
23
+ online: { label: "Online", variant: "success" as const },
24
+ offline: { label: "Offline", variant: "secondary" as const },
25
+ away: { label: "Ausente", variant: "warning" as const },
26
+ busy: { label: "Ocupado", variant: "destructive" as const },
27
+ }
28
+
29
+ export function ProfileCard({
30
+ name, role, department, avatar, initials, status,
31
+ stats, primaryAction, secondaryAction, className, ...props
32
+ }: ProfileCardProps) {
33
+ const s = status ? statusConfig[status] : null
34
+
35
+ return (
36
+ <Card className={cn("w-full", className)} {...props}>
37
+ <CardContent className="pt-6 flex flex-col items-center text-center gap-3">
38
+ <div className="relative">
39
+ <Avatar className="size-16">
40
+ {avatar && <AvatarImage src={avatar} alt={name} />}
41
+ <AvatarFallback className="text-lg font-semibold">{initials}</AvatarFallback>
42
+ </Avatar>
43
+ {s && (
44
+ <span className="absolute -bottom-0.5 -right-0.5">
45
+ <Badge variant={s.variant} className="text-[10px] px-1.5 py-0 h-5">{s.label}</Badge>
46
+ </span>
47
+ )}
48
+ </div>
49
+
50
+ <div className="space-y-0.5">
51
+ <p className="font-semibold text-base leading-tight">{name}</p>
52
+ <p className="text-sm text-muted-foreground">{role}</p>
53
+ {department && <p className="text-xs text-muted-foreground">{department}</p>}
54
+ </div>
55
+
56
+ {stats && stats.length > 0 && (
57
+ <div className="w-full grid grid-cols-3 divide-x divide-border border-y border-border py-3 mt-1">
58
+ {stats.map((stat) => (
59
+ <div key={stat.label} className="flex flex-col items-center gap-0.5 px-2">
60
+ <span className="text-base font-bold">{stat.value}</span>
61
+ <span className="text-[11px] text-muted-foreground">{stat.label}</span>
62
+ </div>
63
+ ))}
64
+ </div>
65
+ )}
66
+
67
+ {(primaryAction || secondaryAction) && (
68
+ <div className="flex gap-2 w-full">
69
+ {secondaryAction && (
70
+ <Button variant="outline" className="flex-1" size="sm" onClick={secondaryAction.onClick}>
71
+ {secondaryAction.label}
72
+ </Button>
73
+ )}
74
+ {primaryAction && (
75
+ <Button className="flex-1" size="sm" onClick={primaryAction.onClick}>
76
+ {primaryAction.label}
77
+ </Button>
78
+ )}
79
+ </div>
80
+ )}
81
+ </CardContent>
82
+ </Card>
83
+ )
84
+ }
@@ -1,89 +1,89 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, CardAction } from "../../ui/card"
5
- import { Avatar, AvatarFallback, AvatarImage } from "../../ui/avatar"
6
- import { Badge } from "../../ui/badge"
7
- import { Progress } from "../../ui/progress"
8
- import { cn } from "../../shared/utils"
9
- import type { ProgressVariant } from "../../ui/progress"
10
-
11
- export type ProjectStatus = "active" | "review" | "done" | "paused" | "at-risk"
12
-
13
- export interface ProjectMember {
14
- name: string
15
- initials: string
16
- avatar?: string
17
- }
18
-
19
- export interface ProjectCardProps extends React.HTMLAttributes<HTMLDivElement> {
20
- title: string
21
- description?: string
22
- status: ProjectStatus
23
- progress: number
24
- dueDate?: string
25
- members?: ProjectMember[]
26
- maxMembers?: number
27
- action?: React.ReactNode
28
- }
29
-
30
- const statusConfig: Record<ProjectStatus, { label: string; variant: React.ComponentProps<typeof Badge>["variant"]; progressVariant: ProgressVariant }> = {
31
- active: { label: "Em andamento", variant: "info", progressVariant: "info" },
32
- review: { label: "Em revisão", variant: "warning", progressVariant: "warning" },
33
- done: { label: "Concluído", variant: "success", progressVariant: "success" },
34
- paused: { label: "Pausado", variant: "secondary", progressVariant: "default" },
35
- "at-risk":{ label: "Em risco", variant: "destructive", progressVariant: "destructive" },
36
- }
37
-
38
- export function ProjectCard({
39
- title, description, status, progress, dueDate,
40
- members = [], maxMembers = 4, action, className, ...props
41
- }: ProjectCardProps) {
42
- const { label, variant, progressVariant } = statusConfig[status]
43
- const visible = members.slice(0, maxMembers)
44
- const overflow = members.length - maxMembers
45
-
46
- return (
47
- <Card className={cn("w-full", className)} {...props}>
48
- <CardHeader>
49
- <div className="flex flex-col gap-1 min-w-0">
50
- <CardTitle className="truncate">{title}</CardTitle>
51
- {description && <CardDescription className="line-clamp-2">{description}</CardDescription>}
52
- </div>
53
- <CardAction className="flex items-center gap-2">
54
- <Badge variant={variant}>{label}</Badge>
55
- {action}
56
- </CardAction>
57
- </CardHeader>
58
-
59
- <CardContent className="space-y-4">
60
- <div className="space-y-1.5">
61
- <div className="flex justify-between text-xs text-muted-foreground">
62
- <span>Progresso</span>
63
- <span>{progress}%</span>
64
- </div>
65
- <Progress value={progress} variant={progressVariant} className="h-2" />
66
- </div>
67
- </CardContent>
68
-
69
- <CardFooter className="flex items-center justify-between">
70
- <div className="flex -space-x-2">
71
- {visible.map((m) => (
72
- <Avatar key={m.name} className="size-7 border-2 border-background">
73
- {m.avatar && <AvatarImage src={m.avatar} alt={m.name} />}
74
- <AvatarFallback className="text-[10px]">{m.initials}</AvatarFallback>
75
- </Avatar>
76
- ))}
77
- {overflow > 0 && (
78
- <div className="size-7 rounded-full border-2 border-background bg-muted flex items-center justify-center text-[10px] font-medium text-muted-foreground">
79
- +{overflow}
80
- </div>
81
- )}
82
- </div>
83
- {dueDate && (
84
- <span className="text-xs text-muted-foreground">{dueDate}</span>
85
- )}
86
- </CardFooter>
87
- </Card>
88
- )
89
- }
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, CardAction } from "../../ui/card"
5
+ import { Avatar, AvatarFallback, AvatarImage } from "../../ui/avatar"
6
+ import { Badge } from "../../ui/badge"
7
+ import { Progress } from "../../ui/progress"
8
+ import { cn } from "../../shared/utils"
9
+ import type { ProgressVariant } from "../../ui/progress"
10
+
11
+ export type ProjectStatus = "active" | "review" | "done" | "paused" | "at-risk"
12
+
13
+ export interface ProjectMember {
14
+ name: string
15
+ initials: string
16
+ avatar?: string
17
+ }
18
+
19
+ export interface ProjectCardProps extends React.HTMLAttributes<HTMLDivElement> {
20
+ title: string
21
+ description?: string
22
+ status: ProjectStatus
23
+ progress: number
24
+ dueDate?: string
25
+ members?: ProjectMember[]
26
+ maxMembers?: number
27
+ action?: React.ReactNode
28
+ }
29
+
30
+ const statusConfig: Record<ProjectStatus, { label: string; variant: React.ComponentProps<typeof Badge>["variant"]; progressVariant: ProgressVariant }> = {
31
+ active: { label: "Em andamento", variant: "info", progressVariant: "info" },
32
+ review: { label: "Em revisão", variant: "warning", progressVariant: "warning" },
33
+ done: { label: "Concluído", variant: "success", progressVariant: "success" },
34
+ paused: { label: "Pausado", variant: "secondary", progressVariant: "default" },
35
+ "at-risk":{ label: "Em risco", variant: "destructive", progressVariant: "destructive" },
36
+ }
37
+
38
+ export function ProjectCard({
39
+ title, description, status, progress, dueDate,
40
+ members = [], maxMembers = 4, action, className, ...props
41
+ }: ProjectCardProps) {
42
+ const { label, variant, progressVariant } = statusConfig[status]
43
+ const visible = members.slice(0, maxMembers)
44
+ const overflow = members.length - maxMembers
45
+
46
+ return (
47
+ <Card className={cn("w-full", className)} {...props}>
48
+ <CardHeader>
49
+ <div className="flex flex-col gap-1 min-w-0">
50
+ <CardTitle className="truncate">{title}</CardTitle>
51
+ {description && <CardDescription className="line-clamp-2">{description}</CardDescription>}
52
+ </div>
53
+ <CardAction className="flex items-center gap-2">
54
+ <Badge variant={variant}>{label}</Badge>
55
+ {action}
56
+ </CardAction>
57
+ </CardHeader>
58
+
59
+ <CardContent className="space-y-4">
60
+ <div className="space-y-1.5">
61
+ <div className="flex justify-between text-xs text-muted-foreground">
62
+ <span>Progresso</span>
63
+ <span>{progress}%</span>
64
+ </div>
65
+ <Progress value={progress} variant={progressVariant} className="h-2" />
66
+ </div>
67
+ </CardContent>
68
+
69
+ <CardFooter className="flex items-center justify-between">
70
+ <div className="flex -space-x-2">
71
+ {visible.map((m) => (
72
+ <Avatar key={m.name} className="size-7 border-2 border-background">
73
+ {m.avatar && <AvatarImage src={m.avatar} alt={m.name} />}
74
+ <AvatarFallback className="text-[10px]">{m.initials}</AvatarFallback>
75
+ </Avatar>
76
+ ))}
77
+ {overflow > 0 && (
78
+ <div className="size-7 rounded-full border-2 border-background bg-muted flex items-center justify-center text-[10px] font-medium text-muted-foreground">
79
+ +{overflow}
80
+ </div>
81
+ )}
82
+ </div>
83
+ {dueDate && (
84
+ <span className="text-xs text-muted-foreground">{dueDate}</span>
85
+ )}
86
+ </CardFooter>
87
+ </Card>
88
+ )
89
+ }
@@ -1,62 +1,62 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import { Card, CardContent } from "../../ui/card"
5
- import { Button } from "../../ui/button"
6
- import { Badge } from "../../ui/badge"
7
- import { cn } from "../../shared/utils"
8
-
9
- export interface QuickActionCardProps extends React.HTMLAttributes<HTMLDivElement> {
10
- title: string
11
- description?: string
12
- icon: React.ReactNode
13
- badge?: string
14
- badgeVariant?: React.ComponentProps<typeof Badge>["variant"]
15
- actionLabel: string
16
- actionVariant?: React.ComponentProps<typeof Button>["variant"]
17
- onAction?: () => void
18
- disabled?: boolean
19
- }
20
-
21
- export function QuickActionCard({
22
- title, description, icon, badge, badgeVariant = "secondary",
23
- actionLabel, actionVariant = "default", onAction, disabled,
24
- className, ...props
25
- }: QuickActionCardProps) {
26
- return (
27
- <Card
28
- className={cn(
29
- "w-full group transition-shadow hover:shadow-md",
30
- disabled && "opacity-60 pointer-events-none",
31
- className,
32
- )}
33
- {...props}
34
- >
35
- <CardContent className="pt-6 flex flex-col items-start gap-4">
36
- <div className="flex items-start justify-between w-full">
37
- <div className="p-2.5 rounded-[var(--radius)] bg-primary/10 text-primary">
38
- {icon}
39
- </div>
40
- {badge && <Badge variant={badgeVariant}>{badge}</Badge>}
41
- </div>
42
-
43
- <div className="space-y-1 flex-1">
44
- <p className="font-semibold text-sm leading-tight">{title}</p>
45
- {description && (
46
- <p className="text-xs text-muted-foreground leading-relaxed">{description}</p>
47
- )}
48
- </div>
49
-
50
- <Button
51
- variant={actionVariant}
52
- size="sm"
53
- className="w-full"
54
- onClick={onAction}
55
- disabled={disabled}
56
- >
57
- {actionLabel}
58
- </Button>
59
- </CardContent>
60
- </Card>
61
- )
62
- }
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Card, CardContent } from "../../ui/card"
5
+ import { Button } from "../../ui/button"
6
+ import { Badge } from "../../ui/badge"
7
+ import { cn } from "../../shared/utils"
8
+
9
+ export interface QuickActionCardProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ title: string
11
+ description?: string
12
+ icon: React.ReactNode
13
+ badge?: string
14
+ badgeVariant?: React.ComponentProps<typeof Badge>["variant"]
15
+ actionLabel: string
16
+ actionVariant?: React.ComponentProps<typeof Button>["variant"]
17
+ onAction?: () => void
18
+ disabled?: boolean
19
+ }
20
+
21
+ export function QuickActionCard({
22
+ title, description, icon, badge, badgeVariant = "secondary",
23
+ actionLabel, actionVariant = "default", onAction, disabled,
24
+ className, ...props
25
+ }: QuickActionCardProps) {
26
+ return (
27
+ <Card
28
+ className={cn(
29
+ "w-full group transition-shadow hover:shadow-md",
30
+ disabled && "opacity-60 pointer-events-none",
31
+ className,
32
+ )}
33
+ {...props}
34
+ >
35
+ <CardContent className="pt-6 flex flex-col items-start gap-4">
36
+ <div className="flex items-start justify-between w-full">
37
+ <div className="p-2.5 rounded-[var(--radius)] bg-primary/10 text-primary">
38
+ {icon}
39
+ </div>
40
+ {badge && <Badge variant={badgeVariant}>{badge}</Badge>}
41
+ </div>
42
+
43
+ <div className="space-y-1 flex-1">
44
+ <p className="font-semibold text-sm leading-tight">{title}</p>
45
+ {description && (
46
+ <p className="text-xs text-muted-foreground leading-relaxed">{description}</p>
47
+ )}
48
+ </div>
49
+
50
+ <Button
51
+ variant={actionVariant}
52
+ size="sm"
53
+ className="w-full"
54
+ onClick={onAction}
55
+ disabled={disabled}
56
+ >
57
+ {actionLabel}
58
+ </Button>
59
+ </CardContent>
60
+ </Card>
61
+ )
62
+ }