xertica-ui 2.1.10 → 2.2.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 (1043) hide show
  1. package/CHANGELOG.md +525 -469
  2. package/README.md +382 -299
  3. package/assets/xertica-logo.svg +37 -37
  4. package/assets/xertica-x-logo.svg +20 -20
  5. package/bin/cli.ts +748 -548
  6. package/bin/generate-tokens.ts +262 -262
  7. package/bin/language-config.ts +361 -0
  8. package/components/assets/xertica-orbe-animation.ts +1162 -1162
  9. package/components/assistant/code-block/CodeBlock.tsx +268 -266
  10. package/components/assistant/code-block/code-block.stories.tsx +57 -57
  11. package/components/assistant/code-block/code-block.test.tsx +44 -44
  12. package/components/assistant/code-block/index.ts +1 -1
  13. package/components/assistant/formatted-document/FormattedDocument.tsx +147 -145
  14. package/components/assistant/formatted-document/formatted-document.stories.tsx +51 -51
  15. package/components/assistant/formatted-document/formatted-document.test.tsx +42 -42
  16. package/components/assistant/formatted-document/index.ts +1 -1
  17. package/components/assistant/index.ts +6 -6
  18. package/components/assistant/markdown-message/MarkdownMessage.tsx +152 -152
  19. package/components/assistant/markdown-message/index.ts +1 -1
  20. package/components/assistant/markdown-message/markdown-message.stories.tsx +50 -50
  21. package/components/assistant/markdown-message/markdown-message.test.tsx +33 -33
  22. package/components/assistant/modern-chat-input/ModernChatInput.tsx +36 -31
  23. package/components/assistant/modern-chat-input/index.ts +1 -1
  24. package/components/assistant/modern-chat-input/modern-chat-input.stories.tsx +131 -131
  25. package/components/assistant/modern-chat-input/modern-chat-input.test.tsx +79 -79
  26. package/components/assistant/xertica-assistant/index.ts +3 -3
  27. package/components/assistant/xertica-assistant/parts/AssistantCollapsedView.tsx +99 -97
  28. package/components/assistant/xertica-assistant/parts/AssistantConversationList.tsx +106 -104
  29. package/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.tsx +81 -79
  30. package/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.tsx +78 -74
  31. package/components/assistant/xertica-assistant/parts/AssistantHeader.tsx +75 -73
  32. package/components/assistant/xertica-assistant/parts/AssistantMessageBubble.tsx +560 -558
  33. package/components/assistant/xertica-assistant/parts/AssistantTabBar.tsx +67 -65
  34. package/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.tsx +41 -41
  35. package/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.tsx +103 -101
  36. package/components/assistant/xertica-assistant/parts/index.ts +16 -16
  37. package/components/assistant/xertica-assistant/types.ts +134 -134
  38. package/components/assistant/xertica-assistant/use-assistant.ts +615 -608
  39. package/components/assistant/xertica-assistant/xertica-assistant.stories.tsx +407 -407
  40. package/components/assistant/xertica-assistant/xertica-assistant.test.tsx +65 -65
  41. package/components/assistant/xertica-assistant/xertica-assistant.tsx +613 -609
  42. package/components/blocks/card-patterns/ActivityCard.tsx +100 -81
  43. package/components/blocks/card-patterns/ActivityCardSkeleton.tsx +56 -0
  44. package/components/blocks/card-patterns/FeatureCard.tsx +109 -109
  45. package/components/blocks/card-patterns/FeatureCardSkeleton.tsx +63 -0
  46. package/components/blocks/card-patterns/NotificationCard.tsx +140 -137
  47. package/components/blocks/card-patterns/NotificationCardSkeleton.tsx +81 -0
  48. package/components/blocks/card-patterns/ProfileCard.tsx +114 -100
  49. package/components/blocks/card-patterns/ProfileCardSkeleton.tsx +69 -0
  50. package/components/blocks/card-patterns/ProjectCard.tsx +123 -110
  51. package/components/blocks/card-patterns/ProjectCardSkeleton.tsx +72 -0
  52. package/components/blocks/card-patterns/QuickActionCard.tsx +68 -68
  53. package/components/blocks/card-patterns/QuickActionCardSkeleton.tsx +44 -0
  54. package/components/blocks/card-patterns/card-patterns.mdx +123 -0
  55. package/components/blocks/card-patterns/card-patterns.stories.tsx +594 -515
  56. package/components/blocks/card-patterns/index.ts +29 -17
  57. package/components/blocks/index.ts +1 -1
  58. package/components/brand/branding/branding.stories.tsx +57 -57
  59. package/components/brand/index.ts +6 -6
  60. package/components/brand/language-selector/LanguageSelector.tsx +47 -12
  61. package/components/brand/language-selector/index.ts +1 -1
  62. package/components/brand/language-selector/language-selector.mdx +126 -57
  63. package/components/brand/language-selector/language-selector.stories.tsx +66 -16
  64. package/components/brand/language-selector/language-selector.test.tsx +64 -8
  65. package/components/brand/theme-toggle/ThemeToggle.tsx +70 -68
  66. package/components/brand/theme-toggle/index.ts +1 -1
  67. package/components/brand/theme-toggle/theme-toggle.stories.tsx +34 -34
  68. package/components/brand/theme-toggle/theme-toggle.test.tsx +34 -34
  69. package/components/brand/xertica-logo/XerticaLogo.stories.tsx +82 -82
  70. package/components/brand/xertica-logo/XerticaLogo.tsx +104 -104
  71. package/components/brand/xertica-logo/index.ts +1 -1
  72. package/components/brand/xertica-logo/xertica-logo.test.tsx +26 -26
  73. package/components/brand/xertica-orbe/XerticaOrbe.tsx +1927 -1927
  74. package/components/brand/xertica-orbe/index.ts +1 -1
  75. package/components/brand/xertica-orbe/xertica-orbe.stories.tsx +40 -40
  76. package/components/brand/xertica-orbe/xertica-orbe.test.tsx +19 -19
  77. package/components/brand/xertica-provider/XerticaProvider.tsx +38 -2
  78. package/components/brand/xertica-provider/index.ts +1 -1
  79. package/components/brand/xertica-provider/xertica-provider.mdx +61 -61
  80. package/components/brand/xertica-provider/xertica-provider.test.tsx +74 -74
  81. package/components/brand/xertica-xlogo/XerticaXLogo.stories.tsx +79 -79
  82. package/components/brand/xertica-xlogo/XerticaXLogo.tsx +65 -65
  83. package/components/brand/xertica-xlogo/index.ts +1 -1
  84. package/components/brand/xertica-xlogo/xertica-xlogo.test.tsx +16 -16
  85. package/components/examples/ApiKeyMapExample.tsx +71 -71
  86. package/components/examples/DrawingMapExample.tsx +565 -565
  87. package/components/examples/FilterableMapExample.tsx +393 -393
  88. package/components/examples/LocationPickerExample.tsx +348 -348
  89. package/components/examples/MapExamples.tsx +268 -268
  90. package/components/examples/MapGmpExample.tsx +169 -169
  91. package/components/examples/MapShowcase.tsx +471 -471
  92. package/components/examples/RouteMapExamples.tsx +329 -329
  93. package/components/examples/SidebarLogoExample.tsx +65 -65
  94. package/components/examples/SimpleFilterableMap.tsx +219 -219
  95. package/components/examples/index.ts +45 -45
  96. package/components/figma/ImageWithFallback.tsx +27 -27
  97. package/components/hooks/index.ts +13 -13
  98. package/components/hooks/use-layout-shortcuts.ts +43 -43
  99. package/components/index.ts +90 -77
  100. package/components/layout/header/header.stories.tsx +204 -204
  101. package/components/layout/header/header.test.tsx +75 -75
  102. package/components/layout/header/header.tsx +349 -349
  103. package/components/layout/header/index.ts +1 -1
  104. package/components/layout/index.ts +2 -2
  105. package/components/layout/sidebar/index.ts +3 -3
  106. package/components/layout/sidebar/sidebar.mdx +1 -1
  107. package/components/layout/sidebar/sidebar.stories.tsx +586 -586
  108. package/components/layout/sidebar/sidebar.test.tsx +76 -76
  109. package/components/layout/sidebar/sidebar.tsx +1073 -1068
  110. package/components/layout/sidebar/use-sidebar.ts +104 -104
  111. package/components/media/FloatingMediaWrapper.tsx +371 -368
  112. package/components/media/audio-player/AudioPlayer.stories.tsx +124 -124
  113. package/components/media/audio-player/AudioPlayer.test.tsx +106 -106
  114. package/components/media/audio-player/AudioPlayer.tsx +765 -762
  115. package/components/media/audio-player/index.ts +1 -1
  116. package/components/media/audio-player/use-audio-player.ts +312 -312
  117. package/components/media/index.ts +3 -3
  118. package/components/media/video-player/VideoPlayer.stories.tsx +98 -98
  119. package/components/media/video-player/VideoPlayer.test.tsx +73 -73
  120. package/components/media/video-player/VideoPlayer.tsx +310 -308
  121. package/components/media/video-player/index.ts +1 -1
  122. package/components/pages/forgot-password-page/ForgotPasswordPage.stories.tsx +24 -24
  123. package/components/pages/forgot-password-page/ForgotPasswordPage.tsx +188 -188
  124. package/components/pages/forgot-password-page/forgot-password-page.test.tsx +45 -45
  125. package/components/pages/forgot-password-page/index.ts +1 -1
  126. package/components/pages/home-content/HomeContent.stories.tsx +43 -43
  127. package/components/pages/home-content/HomeContent.tsx +120 -125
  128. package/components/pages/home-content/home-content.mdx +62 -62
  129. package/components/pages/home-content/index.ts +1 -1
  130. package/components/pages/home-page/HomePage.stories.tsx +39 -39
  131. package/components/pages/home-page/HomePage.tsx +74 -75
  132. package/components/pages/home-page/home-page.mdx +53 -53
  133. package/components/pages/home-page/home-page.test.tsx +53 -53
  134. package/components/pages/home-page/index.ts +1 -1
  135. package/components/pages/index.ts +8 -8
  136. package/components/pages/login-page/LoginPage.stories.tsx +39 -39
  137. package/components/pages/login-page/LoginPage.tsx +216 -216
  138. package/components/pages/login-page/index.ts +1 -1
  139. package/components/pages/login-page/login-page.test.tsx +63 -63
  140. package/components/pages/reset-password-page/ResetPasswordPage.stories.tsx +24 -24
  141. package/components/pages/reset-password-page/ResetPasswordPage.tsx +239 -237
  142. package/components/pages/reset-password-page/index.ts +1 -1
  143. package/components/pages/template-content/TemplateContent.stories.tsx +43 -43
  144. package/components/pages/template-content/TemplateContent.tsx +1235 -1237
  145. package/components/pages/template-content/index.ts +1 -1
  146. package/components/pages/template-content/template-content.mdx +61 -61
  147. package/components/pages/template-page/TemplatePage.stories.tsx +39 -39
  148. package/components/pages/template-page/TemplatePage.tsx +62 -62
  149. package/components/pages/template-page/index.ts +1 -1
  150. package/components/pages/template-page/template-page.mdx +53 -53
  151. package/components/pages/template-page/template-page.test.tsx +52 -52
  152. package/components/pages/verify-email-page/VerifyEmailPage.stories.tsx +41 -41
  153. package/components/pages/verify-email-page/VerifyEmailPage.tsx +206 -206
  154. package/components/pages/verify-email-page/index.ts +1 -1
  155. package/components/public-api-smoke.test.tsx +52 -52
  156. package/components/shared/CustomTooltipContent.tsx +48 -48
  157. package/components/shared/assistant-utils.test.ts +16 -16
  158. package/components/shared/assistant-utils.ts +225 -225
  159. package/components/shared/error-boundary.stories.tsx +132 -132
  160. package/components/shared/error-boundary.tsx +154 -154
  161. package/components/shared/error-fallbacks.tsx +226 -226
  162. package/components/shared/layout-constants.ts +8 -8
  163. package/components/shared/navigation.ts +35 -35
  164. package/components/shared/use-mobile.test.ts +16 -16
  165. package/components/shared/use-mobile.ts +36 -36
  166. package/components/shared/utils.test.ts +14 -14
  167. package/components/shared/utils.ts +6 -6
  168. package/components/ui/accordion/accordion.mdx +8 -8
  169. package/components/ui/accordion/accordion.stories.tsx +105 -105
  170. package/components/ui/accordion/accordion.test.tsx +59 -59
  171. package/components/ui/accordion/accordion.tsx +77 -77
  172. package/components/ui/accordion/index.ts +1 -1
  173. package/components/ui/alert/alert.mdx +8 -8
  174. package/components/ui/alert/alert.stories.tsx +86 -86
  175. package/components/ui/alert/alert.test.tsx +53 -53
  176. package/components/ui/alert/alert.tsx +93 -93
  177. package/components/ui/alert/index.ts +1 -1
  178. package/components/ui/alert-dialog/alert-dialog.mdx +8 -8
  179. package/components/ui/alert-dialog/alert-dialog.stories.tsx +84 -84
  180. package/components/ui/alert-dialog/alert-dialog.test.tsx +70 -70
  181. package/components/ui/alert-dialog/alert-dialog.tsx +149 -149
  182. package/components/ui/alert-dialog/index.ts +1 -1
  183. package/components/ui/aspect-ratio/aspect-ratio.mdx +8 -8
  184. package/components/ui/aspect-ratio/aspect-ratio.stories.tsx +46 -46
  185. package/components/ui/aspect-ratio/aspect-ratio.test.tsx +28 -28
  186. package/components/ui/aspect-ratio/aspect-ratio.tsx +20 -20
  187. package/components/ui/aspect-ratio/index.ts +1 -1
  188. package/components/ui/assistant-chart/AssistantChart.tsx +64 -64
  189. package/components/ui/assistant-chart/assistant-chart.mdx +8 -8
  190. package/components/ui/assistant-chart/assistant-chart.stories.tsx +44 -44
  191. package/components/ui/assistant-chart/assistant-chart.test.tsx +46 -46
  192. package/components/ui/assistant-chart/index.ts +1 -1
  193. package/components/ui/avatar/avatar.mdx +8 -8
  194. package/components/ui/avatar/avatar.stories.tsx +86 -86
  195. package/components/ui/avatar/avatar.test.tsx +55 -55
  196. package/components/ui/avatar/avatar.tsx +71 -71
  197. package/components/ui/avatar/index.ts +1 -1
  198. package/components/ui/badge/badge.mdx +8 -8
  199. package/components/ui/badge/badge.stories.tsx +72 -72
  200. package/components/ui/badge/badge.test.tsx +40 -40
  201. package/components/ui/badge/badge.tsx +58 -58
  202. package/components/ui/badge/index.ts +1 -1
  203. package/components/ui/breadcrumb/breadcrumb.mdx +8 -8
  204. package/components/ui/breadcrumb/breadcrumb.stories.tsx +123 -123
  205. package/components/ui/breadcrumb/breadcrumb.test.tsx +70 -70
  206. package/components/ui/breadcrumb/breadcrumb.tsx +114 -114
  207. package/components/ui/breadcrumb/index.ts +1 -1
  208. package/components/ui/button/button.mdx +8 -8
  209. package/components/ui/button/button.stories.tsx +183 -183
  210. package/components/ui/button/button.test.tsx +64 -64
  211. package/components/ui/button/button.tsx +98 -98
  212. package/components/ui/button/index.ts +1 -1
  213. package/components/ui/calendar/calendar.mdx +8 -8
  214. package/components/ui/calendar/calendar.stories.tsx +108 -108
  215. package/components/ui/calendar/calendar.test.tsx +53 -53
  216. package/components/ui/calendar/calendar.tsx +230 -230
  217. package/components/ui/calendar/index.ts +1 -1
  218. package/components/ui/card/card.mdx +8 -8
  219. package/components/ui/card/card.stories.tsx +301 -301
  220. package/components/ui/card/card.test.tsx +55 -55
  221. package/components/ui/card/card.tsx +83 -83
  222. package/components/ui/card/index.ts +1 -1
  223. package/components/ui/carousel/carousel.mdx +8 -8
  224. package/components/ui/carousel/carousel.stories.tsx +80 -80
  225. package/components/ui/carousel/carousel.test.tsx +75 -75
  226. package/components/ui/carousel/carousel.tsx +242 -242
  227. package/components/ui/carousel/index.ts +1 -1
  228. package/components/ui/chart/chart.mdx +8 -8
  229. package/components/ui/chart/chart.stories.tsx +1328 -1328
  230. package/components/ui/chart/chart.test.tsx +178 -178
  231. package/components/ui/chart/chart.tsx +2232 -2232
  232. package/components/ui/chart/index.ts +1 -1
  233. package/components/ui/checkbox/checkbox.mdx +8 -8
  234. package/components/ui/checkbox/checkbox.stories.tsx +109 -109
  235. package/components/ui/checkbox/checkbox.test.tsx +49 -49
  236. package/components/ui/checkbox/checkbox.tsx +68 -68
  237. package/components/ui/checkbox/index.ts +1 -1
  238. package/components/ui/collapsible/collapsible.mdx +8 -8
  239. package/components/ui/collapsible/collapsible.stories.tsx +45 -45
  240. package/components/ui/collapsible/collapsible.test.tsx +51 -51
  241. package/components/ui/collapsible/collapsible.tsx +32 -32
  242. package/components/ui/collapsible/index.ts +1 -1
  243. package/components/ui/command/command.mdx +8 -8
  244. package/components/ui/command/command.stories.tsx +134 -134
  245. package/components/ui/command/command.test.tsx +48 -48
  246. package/components/ui/command/command.tsx +163 -163
  247. package/components/ui/command/index.ts +1 -1
  248. package/components/ui/context-menu/context-menu.mdx +8 -8
  249. package/components/ui/context-menu/context-menu.stories.tsx +76 -76
  250. package/components/ui/context-menu/context-menu.test.tsx +61 -61
  251. package/components/ui/context-menu/context-menu.tsx +236 -236
  252. package/components/ui/context-menu/index.ts +1 -1
  253. package/components/ui/dialog/dialog.mdx +8 -8
  254. package/components/ui/dialog/dialog.stories.tsx +174 -174
  255. package/components/ui/dialog/dialog.test.tsx +78 -78
  256. package/components/ui/dialog/dialog.tsx +189 -189
  257. package/components/ui/dialog/index.ts +1 -1
  258. package/components/ui/drawer/drawer.mdx +8 -8
  259. package/components/ui/drawer/drawer.stories.tsx +71 -71
  260. package/components/ui/drawer/drawer.test.tsx +67 -67
  261. package/components/ui/drawer/drawer.tsx +146 -146
  262. package/components/ui/drawer/index.ts +1 -1
  263. package/components/ui/dropdown-menu/dropdown-menu.mdx +8 -8
  264. package/components/ui/dropdown-menu/dropdown-menu.stories.tsx +156 -156
  265. package/components/ui/dropdown-menu/dropdown-menu.test.tsx +62 -62
  266. package/components/ui/dropdown-menu/dropdown-menu.tsx +240 -240
  267. package/components/ui/dropdown-menu/index.ts +1 -1
  268. package/components/ui/empty/empty.mdx +8 -8
  269. package/components/ui/empty/empty.stories.tsx +85 -85
  270. package/components/ui/empty/empty.test.tsx +31 -31
  271. package/components/ui/empty/empty.tsx +88 -88
  272. package/components/ui/empty/index.ts +1 -1
  273. package/components/ui/file-upload/file-upload.mdx +8 -8
  274. package/components/ui/file-upload/file-upload.stories.tsx +144 -144
  275. package/components/ui/file-upload/file-upload.test.tsx +65 -65
  276. package/components/ui/file-upload/file-upload.tsx +142 -142
  277. package/components/ui/file-upload/index.ts +2 -2
  278. package/components/ui/file-upload/use-file-upload.ts +177 -177
  279. package/components/ui/form/form.stories.tsx +85 -85
  280. package/components/ui/form/form.test.tsx +75 -75
  281. package/components/ui/form/form.tsx +163 -163
  282. package/components/ui/form/index.ts +1 -1
  283. package/components/ui/google-maps-loader/google-maps-loader.test.tsx +35 -35
  284. package/components/ui/google-maps-loader/google-maps-loader.tsx +465 -465
  285. package/components/ui/google-maps-loader/index.ts +1 -1
  286. package/components/ui/hover-card/hover-card.mdx +8 -8
  287. package/components/ui/hover-card/hover-card.stories.tsx +61 -61
  288. package/components/ui/hover-card/hover-card.test.tsx +48 -48
  289. package/components/ui/hover-card/hover-card.tsx +50 -50
  290. package/components/ui/hover-card/index.ts +1 -1
  291. package/components/ui/index.ts +400 -400
  292. package/components/ui/input/index.ts +1 -1
  293. package/components/ui/input/input.mdx +8 -8
  294. package/components/ui/input/input.stories.tsx +153 -153
  295. package/components/ui/input/input.test.tsx +47 -47
  296. package/components/ui/input/input.tsx +57 -57
  297. package/components/ui/input-otp/index.ts +1 -1
  298. package/components/ui/input-otp/input-otp.mdx +8 -8
  299. package/components/ui/input-otp/input-otp.stories.tsx +120 -120
  300. package/components/ui/input-otp/input-otp.test.tsx +74 -74
  301. package/components/ui/input-otp/input-otp.tsx +101 -101
  302. package/components/ui/label/index.ts +1 -1
  303. package/components/ui/label/label.mdx +8 -8
  304. package/components/ui/label/label.stories.tsx +74 -74
  305. package/components/ui/label/label.test.tsx +45 -45
  306. package/components/ui/label/label.tsx +53 -53
  307. package/components/ui/map/index.ts +1 -1
  308. package/components/ui/map/map.mdx +8 -8
  309. package/components/ui/map/map.stories.tsx +86 -86
  310. package/components/ui/map/map.test.tsx +82 -82
  311. package/components/ui/map/map.tsx +506 -506
  312. package/components/ui/map/mock.test.tsx +13 -13
  313. package/components/ui/map-config/index.ts +1 -1
  314. package/components/ui/map-config/map-config.ts +18 -18
  315. package/components/ui/map-layers/index.ts +1 -1
  316. package/components/ui/map-layers/map-layers.test.tsx +48 -48
  317. package/components/ui/map-layers/map-layers.tsx +126 -126
  318. package/components/ui/map.exports/index.ts +1 -1
  319. package/components/ui/map.exports/map.exports.ts +31 -31
  320. package/components/ui/menubar/index.ts +1 -1
  321. package/components/ui/menubar/menubar.mdx +8 -8
  322. package/components/ui/menubar/menubar.stories.tsx +130 -130
  323. package/components/ui/menubar/menubar.test.tsx +53 -53
  324. package/components/ui/menubar/menubar.tsx +265 -265
  325. package/components/ui/navigation-menu/index.ts +1 -1
  326. package/components/ui/navigation-menu/navigation-menu.mdx +8 -8
  327. package/components/ui/navigation-menu/navigation-menu.stories.tsx +126 -126
  328. package/components/ui/navigation-menu/navigation-menu.test.tsx +47 -47
  329. package/components/ui/navigation-menu/navigation-menu.tsx +165 -165
  330. package/components/ui/notification-badge/index.ts +1 -1
  331. package/components/ui/notification-badge/notification-badge.mdx +8 -8
  332. package/components/ui/notification-badge/notification-badge.stories.tsx +66 -66
  333. package/components/ui/notification-badge/notification-badge.test.tsx +61 -61
  334. package/components/ui/notification-badge/notification-badge.tsx +91 -91
  335. package/components/ui/page-header/index.ts +1 -1
  336. package/components/ui/page-header/page-header.stories.tsx +69 -69
  337. package/components/ui/page-header/page-header.test.tsx +37 -37
  338. package/components/ui/page-header/page-header.tsx +124 -124
  339. package/components/ui/pagination/index.ts +3 -3
  340. package/components/ui/pagination/pagination.mdx +8 -8
  341. package/components/ui/pagination/pagination.stories.tsx +210 -210
  342. package/components/ui/pagination/pagination.test.tsx +63 -63
  343. package/components/ui/pagination/pagination.tsx +140 -140
  344. package/components/ui/pagination/use-pagination.ts +173 -173
  345. package/components/ui/popover/index.ts +1 -1
  346. package/components/ui/popover/popover.mdx +8 -8
  347. package/components/ui/popover/popover.stories.tsx +73 -73
  348. package/components/ui/popover/popover.test.tsx +48 -48
  349. package/components/ui/popover/popover.tsx +54 -54
  350. package/components/ui/progress/index.ts +1 -1
  351. package/components/ui/progress/progress.mdx +8 -8
  352. package/components/ui/progress/progress.stories.tsx +55 -55
  353. package/components/ui/progress/progress.test.tsx +23 -23
  354. package/components/ui/progress/progress.tsx +68 -68
  355. package/components/ui/radio-group/index.ts +1 -1
  356. package/components/ui/radio-group/radio-group.mdx +8 -8
  357. package/components/ui/radio-group/radio-group.stories.tsx +114 -114
  358. package/components/ui/radio-group/radio-group.test.tsx +78 -78
  359. package/components/ui/radio-group/radio-group.tsx +93 -93
  360. package/components/ui/rating/index.ts +1 -1
  361. package/components/ui/rating/rating.mdx +8 -8
  362. package/components/ui/rating/rating.stories.tsx +50 -50
  363. package/components/ui/rating/rating.test.tsx +48 -48
  364. package/components/ui/rating/rating.tsx +145 -145
  365. package/components/ui/resizable/index.ts +1 -1
  366. package/components/ui/resizable/resizable.mdx +8 -8
  367. package/components/ui/resizable/resizable.stories.tsx +88 -88
  368. package/components/ui/resizable/resizable.test.tsx +61 -61
  369. package/components/ui/resizable/resizable.tsx +452 -452
  370. package/components/ui/rich-text-editor/index.ts +7 -7
  371. package/components/ui/rich-text-editor/rich-text-editor.stories.tsx +290 -290
  372. package/components/ui/rich-text-editor/rich-text-editor.test.tsx +86 -86
  373. package/components/ui/rich-text-editor/rich-text-editor.tsx +634 -634
  374. package/components/ui/rich-text-editor/use-rich-text-editor.ts +453 -453
  375. package/components/ui/route-map/index.ts +1 -1
  376. package/components/ui/route-map/route-map.mdx +8 -8
  377. package/components/ui/route-map/route-map.stories.tsx +48 -48
  378. package/components/ui/route-map/route-map.test.tsx +108 -108
  379. package/components/ui/route-map/route-map.tsx +349 -349
  380. package/components/ui/scroll-area/index.ts +1 -1
  381. package/components/ui/scroll-area/scroll-area.mdx +8 -8
  382. package/components/ui/scroll-area/scroll-area.stories.tsx +31 -31
  383. package/components/ui/scroll-area/scroll-area.test.tsx +27 -27
  384. package/components/ui/scroll-area/scroll-area.tsx +70 -70
  385. package/components/ui/search/index.ts +1 -1
  386. package/components/ui/search/search.mdx +8 -8
  387. package/components/ui/search/search.stories.tsx +107 -107
  388. package/components/ui/search/search.test.tsx +67 -67
  389. package/components/ui/search/search.tsx +141 -141
  390. package/components/ui/select/index.ts +1 -1
  391. package/components/ui/select/select.mdx +8 -8
  392. package/components/ui/select/select.stories.tsx +163 -163
  393. package/components/ui/select/select.test.tsx +99 -99
  394. package/components/ui/select/select.tsx +195 -195
  395. package/components/ui/separator/index.ts +1 -1
  396. package/components/ui/separator/separator.mdx +8 -8
  397. package/components/ui/separator/separator.stories.tsx +55 -55
  398. package/components/ui/separator/separator.test.tsx +23 -23
  399. package/components/ui/separator/separator.tsx +39 -39
  400. package/components/ui/sheet/index.ts +1 -1
  401. package/components/ui/sheet/sheet.mdx +8 -8
  402. package/components/ui/sheet/sheet.stories.tsx +93 -93
  403. package/components/ui/sheet/sheet.test.tsx +62 -62
  404. package/components/ui/sheet/sheet.tsx +149 -149
  405. package/components/ui/simple-map/index.ts +1 -1
  406. package/components/ui/simple-map/simple-map.mdx +8 -8
  407. package/components/ui/simple-map/simple-map.stories.tsx +44 -44
  408. package/components/ui/simple-map/simple-map.test.tsx +36 -36
  409. package/components/ui/simple-map/simple-map.tsx +92 -92
  410. package/components/ui/skeleton/index.ts +1 -1
  411. package/components/ui/skeleton/skeleton.mdx +8 -8
  412. package/components/ui/skeleton/skeleton.stories.tsx +36 -36
  413. package/components/ui/skeleton/skeleton.test.tsx +19 -19
  414. package/components/ui/skeleton/skeleton.tsx +25 -25
  415. package/components/ui/slider/index.ts +1 -1
  416. package/components/ui/slider/slider.mdx +8 -8
  417. package/components/ui/slider/slider.stories.tsx +44 -44
  418. package/components/ui/slider/slider.test.tsx +25 -25
  419. package/components/ui/slider/slider.tsx +66 -66
  420. package/components/ui/sonner/index.ts +1 -1
  421. package/components/ui/sonner/sonner.mdx +8 -8
  422. package/components/ui/sonner/sonner.stories.tsx +41 -41
  423. package/components/ui/sonner/sonner.test.tsx +24 -24
  424. package/components/ui/sonner/sonner.tsx +74 -74
  425. package/components/ui/stats-card/index.ts +2 -1
  426. package/components/ui/stats-card/stats-card-skeleton.tsx +62 -0
  427. package/components/ui/stats-card/stats-card.mdx +8 -8
  428. package/components/ui/stats-card/stats-card.stories.tsx +99 -77
  429. package/components/ui/stats-card/stats-card.test.tsx +34 -34
  430. package/components/ui/stats-card/stats-card.tsx +93 -93
  431. package/components/ui/stepper/index.ts +3 -3
  432. package/components/ui/stepper/stepper.mdx +8 -8
  433. package/components/ui/stepper/stepper.stories.tsx +171 -171
  434. package/components/ui/stepper/stepper.test.tsx +47 -47
  435. package/components/ui/stepper/stepper.tsx +190 -190
  436. package/components/ui/stepper/use-stepper.ts +139 -139
  437. package/components/ui/switch/index.ts +1 -1
  438. package/components/ui/switch/switch.mdx +8 -8
  439. package/components/ui/switch/switch.stories.tsx +93 -93
  440. package/components/ui/switch/switch.test.tsx +44 -44
  441. package/components/ui/switch/switch.tsx +70 -70
  442. package/components/ui/table/index.ts +1 -1
  443. package/components/ui/table/table.mdx +8 -8
  444. package/components/ui/table/table.stories.tsx +114 -114
  445. package/components/ui/table/table.test.tsx +43 -43
  446. package/components/ui/table/table.tsx +104 -104
  447. package/components/ui/tabs/index.ts +1 -1
  448. package/components/ui/tabs/tabs.mdx +8 -8
  449. package/components/ui/tabs/tabs.stories.tsx +140 -140
  450. package/components/ui/tabs/tabs.test.tsx +50 -50
  451. package/components/ui/tabs/tabs.tsx +66 -66
  452. package/components/ui/textarea/index.ts +1 -1
  453. package/components/ui/textarea/textarea.mdx +8 -8
  454. package/components/ui/textarea/textarea.stories.tsx +69 -69
  455. package/components/ui/textarea/textarea.test.tsx +41 -41
  456. package/components/ui/textarea/textarea.tsx +61 -61
  457. package/components/ui/timeline/index.ts +1 -1
  458. package/components/ui/timeline/timeline.mdx +8 -8
  459. package/components/ui/timeline/timeline.stories.tsx +97 -97
  460. package/components/ui/timeline/timeline.test.tsx +53 -53
  461. package/components/ui/timeline/timeline.tsx +124 -124
  462. package/components/ui/toggle/index.ts +1 -1
  463. package/components/ui/toggle/toggle.mdx +8 -8
  464. package/components/ui/toggle/toggle.stories.tsx +56 -56
  465. package/components/ui/toggle/toggle.test.tsx +32 -32
  466. package/components/ui/toggle/toggle.tsx +55 -55
  467. package/components/ui/toggle-group/index.ts +1 -1
  468. package/components/ui/toggle-group/toggle-group.mdx +8 -8
  469. package/components/ui/toggle-group/toggle-group.stories.tsx +66 -66
  470. package/components/ui/toggle-group/toggle-group.test.tsx +47 -47
  471. package/components/ui/toggle-group/toggle-group.tsx +79 -79
  472. package/components/ui/tooltip/index.ts +1 -1
  473. package/components/ui/tooltip/tooltip.mdx +8 -8
  474. package/components/ui/tooltip/tooltip.stories.tsx +83 -83
  475. package/components/ui/tooltip/tooltip.test.tsx +39 -39
  476. package/components/ui/tooltip/tooltip.tsx +69 -69
  477. package/components/ui/tree-view/index.ts +4 -4
  478. package/components/ui/tree-view/tree-view.mdx +8 -8
  479. package/components/ui/tree-view/tree-view.stories.tsx +154 -154
  480. package/components/ui/tree-view/tree-view.test.tsx +58 -58
  481. package/components/ui/tree-view/tree-view.tsx +171 -171
  482. package/components/ui/tree-view/use-tree-view.ts +237 -237
  483. package/components.json +892 -892
  484. package/contexts/ApiKeyContext.test.tsx +26 -26
  485. package/contexts/ApiKeyContext.tsx +196 -196
  486. package/contexts/AssistenteContext.test.tsx +17 -17
  487. package/contexts/AssistenteContext.tsx +113 -113
  488. package/contexts/AuthContext.tsx +118 -118
  489. package/contexts/BrandColorsContext.test.tsx +21 -21
  490. package/contexts/BrandColorsContext.tsx +251 -251
  491. package/contexts/LanguageContext.test.tsx +108 -16
  492. package/contexts/LanguageContext.tsx +202 -17
  493. package/contexts/LayoutContext.test.tsx +29 -29
  494. package/contexts/LayoutContext.tsx +140 -140
  495. package/contexts/ThemeContext.test.tsx +38 -38
  496. package/contexts/ThemeContext.tsx +111 -111
  497. package/contexts/index.ts +8 -8
  498. package/contexts/theme-data.ts +340 -340
  499. package/dist/{AssistantChart-DoZCyS5r.cjs → AssistantChart-9w31gdAb.cjs} +4 -4
  500. package/dist/{AssistantChart-CldVCVDe.cjs → AssistantChart-BAudAfne.cjs} +5 -5
  501. package/dist/{AssistantChart-Bdd44uBn.cjs → AssistantChart-BAx9VQvb.cjs} +127 -388
  502. package/dist/{AssistantChart-Cu3m7RBo.js → AssistantChart-BP8upjMk.js} +5 -5
  503. package/dist/{use-mobile-BXuYROXM.js → AssistantChart-BXU1ACnh.js} +958 -1671
  504. package/dist/{AssistantChart-CFhDdGyU.js → AssistantChart-CVko2A1W.js} +130 -391
  505. package/dist/{AssistantChart-C_hwFRRr.js → AssistantChart-CVzmmhx4.js} +4 -4
  506. package/dist/{use-mobile-CG2-SdXV.cjs → AssistantChart-D0A1FPYt.cjs} +980 -1700
  507. package/dist/{AudioPlayer-IAU5q5T1.cjs → AudioPlayer-1ypwE2Wh.cjs} +1 -1
  508. package/dist/AudioPlayer-BWDW6TN9.cjs +1279 -0
  509. package/dist/AudioPlayer-CM962GEh.js +1280 -0
  510. package/dist/{AudioPlayer-CySJIyvL.js → AudioPlayer-DuKXrCfy.js} +1 -1
  511. package/dist/CodeBlock-CV6dtsTM.cjs +220 -0
  512. package/dist/CodeBlock-CjeFavqV.js +221 -0
  513. package/dist/{FeatureCard-DbHWCb4E.js → FeatureCard-Cfs6Ishq.js} +221 -37
  514. package/dist/FeatureCard-ie3L8Fpr.cjs +484 -0
  515. package/dist/FeatureCardSkeleton-CAgu8stE.js +27 -0
  516. package/dist/FeatureCardSkeleton-mO3Bdm_V.cjs +26 -0
  517. package/dist/{LanguageContext-CS14yCpi.js → LanguageContext-BwhwC3G2.js} +2 -2
  518. package/dist/{LanguageContext-B_KFTCzT.cjs → LanguageContext-DvUt5jBg.cjs} +2 -2
  519. package/dist/{ThemeContext-C2EwAPDt.js → ThemeContext-BbBNoFTG.js} +2 -2
  520. package/dist/ThemeContext-BblcjQup.cjs +1855 -0
  521. package/dist/ThemeContext-Bo-W2WZH.js +1856 -0
  522. package/dist/ThemeContext-CP3a0jxy.cjs +1855 -0
  523. package/dist/{ThemeContext-vTjumZeM.cjs → ThemeContext-Cmr8Ex8H.cjs} +2 -2
  524. package/dist/ThemeContext-CpqYShLq.cjs +324 -0
  525. package/dist/{ThemeContext-CQSo4Iwc.js → ThemeContext-D3LzacmG.js} +8 -1
  526. package/dist/ThemeContext-Du2nE1PL.js +325 -0
  527. package/dist/ThemeContext-GeEBTJ3q.cjs +1621 -0
  528. package/dist/ThemeContext-JyLK9B1o.js +1622 -0
  529. package/dist/{ThemeContext-CGk3KK0k.cjs → ThemeContext-U4dEYc6C.cjs} +8 -1
  530. package/dist/ThemeContext-ept8jhXI.js +1856 -0
  531. package/dist/{VerifyEmailPage-C0c2e5n0.js → VerifyEmailPage-BE-L9mB7.js} +7 -7
  532. package/dist/VerifyEmailPage-BIBOKV7Z.js +3214 -0
  533. package/dist/{VerifyEmailPage--1Vurewl.cjs → VerifyEmailPage-BRSP-Pwt.cjs} +3 -3
  534. package/dist/{VerifyEmailPage-Cwi3kbol.cjs → VerifyEmailPage-Bae2cBXT.cjs} +7 -7
  535. package/dist/{VerifyEmailPage-DjQKRlUS.cjs → VerifyEmailPage-BiRm7Nh4.cjs} +1185 -796
  536. package/dist/VerifyEmailPage-Bvfv8HVQ.js +3214 -0
  537. package/dist/{VerifyEmailPage-BComraR7.cjs → VerifyEmailPage-CR7kb5df.cjs} +22 -12
  538. package/dist/{VerifyEmailPage-MTD7AG1Z.js → VerifyEmailPage-C_ihbcth.js} +4 -4
  539. package/dist/{VerifyEmailPage-1WwWczAn.js → VerifyEmailPage-CbgjOF0v.js} +22 -12
  540. package/dist/{VerifyEmailPage-DvMLZgFt.js → VerifyEmailPage-CdYPSJoO.js} +1 -1
  541. package/dist/VerifyEmailPage-D-FRj5TU.cjs +3213 -0
  542. package/dist/{VerifyEmailPage-s-1X3LDJ.cjs → VerifyEmailPage-DF2ilhum.cjs} +1049 -665
  543. package/dist/{VerifyEmailPage-CYXtbKi3.cjs → VerifyEmailPage-DMBh4NM9.cjs} +1 -1
  544. package/dist/{VerifyEmailPage-CgMxRb4z.js → VerifyEmailPage-DTtFfC-J.js} +3 -3
  545. package/dist/{VerifyEmailPage-CFLMls1p.cjs → VerifyEmailPage-Dt7zgA4w.cjs} +4 -4
  546. package/dist/VerifyEmailPage-EhudUdqF.js +3211 -0
  547. package/dist/VerifyEmailPage-hdB8JQGv.cjs +3213 -0
  548. package/dist/VerifyEmailPage-vYHbYK3q.js +3214 -0
  549. package/dist/XerticaProvider-AChwphCO.cjs +48 -0
  550. package/dist/XerticaProvider-AbWlr7Af.cjs +48 -0
  551. package/dist/{XerticaProvider-D-yNhF94.cjs → XerticaProvider-B8CaV7xu.cjs} +1 -1
  552. package/dist/{XerticaProvider-CEoWMTxu.js → XerticaProvider-BITjgC5p.js} +2 -2
  553. package/dist/{XerticaProvider-CllrbMEJ.cjs → XerticaProvider-By8q3Roe.cjs} +2 -2
  554. package/dist/XerticaProvider-CUYJZc32.js +49 -0
  555. package/dist/{XerticaProvider-ET0ihewn.cjs → XerticaProvider-CW9hpCdF.cjs} +2 -2
  556. package/dist/XerticaProvider-CWgby5mY.js +49 -0
  557. package/dist/XerticaProvider-CWs6EwNa.js +49 -0
  558. package/dist/XerticaProvider-CjQAQPcn.cjs +48 -0
  559. package/dist/XerticaProvider-D5lLumH-.js +49 -0
  560. package/dist/{XerticaProvider-DYq4JWtg.js → XerticaProvider-DQtvJU7m.js} +1 -1
  561. package/dist/XerticaProvider-qQUDop71.cjs +48 -0
  562. package/dist/{XerticaProvider-B7EVH-NF.js → XerticaProvider-siSt9uG2.js} +2 -2
  563. package/dist/{LanguageSelector-D6uacAIM.cjs → XerticaXLogo-8TTzBjHw.cjs} +136 -115
  564. package/dist/{LanguageSelector-B5YfbHra.js → XerticaXLogo-BWaag64t.js} +136 -115
  565. package/dist/XerticaXLogo-CFuIlYFH.js +252 -0
  566. package/dist/XerticaXLogo-CU-U-GP4.cjs +251 -0
  567. package/dist/XerticaXLogo-ChryA6xj.js +252 -0
  568. package/dist/{XerticaXLogo-CQUUjXoH.cjs → XerticaXLogo-CziKMQil.cjs} +8 -8
  569. package/dist/XerticaXLogo-DHz5SugF.js +252 -0
  570. package/dist/XerticaXLogo-DTee_y8X.cjs +251 -0
  571. package/dist/{XerticaXLogo-Cmsp-Eey.js → XerticaXLogo-DfUvz-lD.js} +9 -9
  572. package/dist/XerticaXLogo-kslQ8Tk_.cjs +251 -0
  573. package/dist/{alert-dialog-s-vmNkJ_.js → alert-dialog-iDe5VE5o.js} +3 -3
  574. package/dist/{alert-dialog-DSKByiKZ.cjs → alert-dialog-yckpaOpy.cjs} +3 -3
  575. package/dist/assistant.cjs.js +2 -2
  576. package/dist/assistant.es.js +2 -2
  577. package/dist/blocks.cjs.js +8 -1
  578. package/dist/blocks.es.js +10 -3
  579. package/dist/brand.cjs.js +2 -2
  580. package/dist/brand.es.js +2 -2
  581. package/dist/cli.js +524 -164
  582. package/dist/components/blocks/card-patterns/ActivityCardSkeleton.d.ts +19 -0
  583. package/dist/components/blocks/card-patterns/FeatureCardSkeleton.d.ts +18 -0
  584. package/dist/components/blocks/card-patterns/NotificationCardSkeleton.d.ts +21 -0
  585. package/dist/components/blocks/card-patterns/ProfileCardSkeleton.d.ts +20 -0
  586. package/dist/components/blocks/card-patterns/ProjectCardSkeleton.d.ts +18 -0
  587. package/dist/components/blocks/card-patterns/QuickActionCardSkeleton.d.ts +16 -0
  588. package/dist/components/blocks/card-patterns/index.d.ts +12 -0
  589. package/dist/components/brand/language-selector/LanguageSelector.d.ts +15 -1
  590. package/dist/components/brand/xertica-provider/XerticaProvider.d.ts +29 -1
  591. package/dist/components/index.d.ts +3 -0
  592. package/dist/components/ui/stats-card/index.d.ts +1 -0
  593. package/dist/components/ui/stats-card/stats-card-skeleton.d.ts +25 -0
  594. package/dist/contexts/LanguageContext.d.ts +66 -5
  595. package/dist/features/assistant/data/mock.d.ts +2 -2
  596. package/dist/features/assistant/hooks/useAssistantConfig.d.ts +0 -1
  597. package/dist/features/assistant/index.d.ts +1 -1
  598. package/dist/features/home/hooks/useDashboardStats.d.ts +0 -1
  599. package/dist/features/home/hooks/useFeatureCards.d.ts +0 -1
  600. package/dist/features/home/hooks/useTeamMembers.d.ts +0 -1
  601. package/dist/features/home/index.d.ts +3 -3
  602. package/dist/{google-maps-loader-Y-QkD-Li.cjs → google-maps-loader-BqsYL48U.cjs} +0 -5
  603. package/dist/{google-maps-loader-CTYySAun.js → google-maps-loader-t2IlYBzw.js} +0 -4
  604. package/dist/hooks.cjs.js +2 -1
  605. package/dist/hooks.es.js +2 -1
  606. package/dist/i18n.d.ts +13 -0
  607. package/dist/index-CkTUgOwX.js +8 -0
  608. package/dist/{index-COtD8bRW.cjs → index-D3RLKRAs.cjs} +1 -1
  609. package/dist/index.cjs.js +34 -19
  610. package/dist/index.es.js +71 -56
  611. package/dist/index.umd.js +454 -1027
  612. package/dist/layout.cjs.js +1 -1
  613. package/dist/layout.es.js +1 -1
  614. package/dist/media.cjs.js +1 -1
  615. package/dist/media.es.js +1 -1
  616. package/dist/pages.cjs.js +1 -1
  617. package/dist/pages.es.js +1 -1
  618. package/dist/{rich-text-editor-Bp3zQqMC.js → rich-text-editor-1UW3Y2JK.js} +989 -1052
  619. package/dist/{rich-text-editor-CeucBdIv.cjs → rich-text-editor-CyggTOLQ.cjs} +989 -1052
  620. package/dist/{sidebar-DQj1z3jG.cjs → sidebar-B3EYhli0.cjs} +269 -227
  621. package/dist/{sidebar-CK_0ZQHj.cjs → sidebar-B9NR0lCe.cjs} +271 -274
  622. package/dist/sidebar-BvF5I2Ue.cjs +800 -0
  623. package/dist/{sidebar-q7P2Godd.cjs → sidebar-C5B_LHek.cjs} +1 -1
  624. package/dist/{sidebar-LluMXfam.js → sidebar-CA6_ek3f.js} +269 -227
  625. package/dist/{sidebar-BxGXsDAd.cjs → sidebar-CVUGHOS_.cjs} +8 -16
  626. package/dist/{sidebar-BViy8Eeu.js → sidebar-CmvwjnVb.js} +9 -17
  627. package/dist/{sidebar-CUuOvYhK.js → sidebar-CplprZpM.js} +272 -258
  628. package/dist/{sidebar-BbVIQvlP.js → sidebar-Dz7bd3zP.js} +1 -1
  629. package/dist/sidebar-KIS0C2JH.js +801 -0
  630. package/dist/sidebar-OTO_up7Z.js +801 -0
  631. package/dist/sidebar-zowjejT2.cjs +800 -0
  632. package/dist/skeleton-4zoHiFJ_.cjs +83 -0
  633. package/dist/skeleton-C4bHqUBf.js +84 -0
  634. package/dist/ui.cjs.js +12 -11
  635. package/dist/ui.es.js +46 -45
  636. package/dist/{use-audio-player-nv8ZSGa1.js → use-audio-player-Bkh23vQ3.js} +3 -7
  637. package/dist/{use-audio-player-NKsWyjWu.cjs → use-audio-player-Dn1NR9xN.cjs} +3 -7
  638. package/dist/{xertica-assistant-dyP7KHM5.cjs → xertica-assistant-B1IaHXnB.cjs} +388 -529
  639. package/dist/{xertica-assistant-ciJaWqm1.js → xertica-assistant-BMqdyRVi.js} +10 -28
  640. package/dist/{xertica-assistant-BdiZag0h.js → xertica-assistant-BbgzsgsG.js} +539 -562
  641. package/dist/{xertica-assistant-V_IdW4WF.cjs → xertica-assistant-Bj3vBCq_.cjs} +9 -27
  642. package/dist/{xertica-assistant-yX1CFBBo.js → xertica-assistant-DPsESB6t.js} +390 -531
  643. package/dist/{CodeBlock-7TTgmdGG.cjs → xertica-assistant-Qp3ydksa.cjs} +51 -263
  644. package/dist/{xertica-assistant-DUBpmEgo.cjs → xertica-assistant-d2qs2Vd9.cjs} +538 -561
  645. package/dist/{CodeBlock-DnYNI8rQ.js → xertica-assistant-gnCJdcZY.js} +7 -219
  646. package/dist/xertica-ui.css +2 -2
  647. package/docs/ai-usage.md +195 -195
  648. package/docs/architecture-improvements.md +456 -476
  649. package/docs/architecture.md +306 -273
  650. package/docs/components/accordion.md +109 -109
  651. package/docs/components/alert-dialog.md +127 -127
  652. package/docs/components/alert.md +106 -106
  653. package/docs/components/aspect-ratio.md +58 -58
  654. package/docs/components/assistant-chart.md +47 -47
  655. package/docs/components/assistant.md +426 -426
  656. package/docs/components/audio-player.md +167 -167
  657. package/docs/components/avatar.md +101 -101
  658. package/docs/components/badge.md +84 -84
  659. package/docs/components/branding.md +252 -249
  660. package/docs/components/breadcrumb.md +104 -104
  661. package/docs/components/button.md +156 -156
  662. package/docs/components/calendar.md +141 -141
  663. package/docs/components/card-patterns.md +445 -376
  664. package/docs/components/card.md +245 -245
  665. package/docs/components/carousel.md +100 -100
  666. package/docs/components/chart.md +638 -638
  667. package/docs/components/checkbox.md +88 -88
  668. package/docs/components/code-block.md +105 -105
  669. package/docs/components/collapsible.md +86 -86
  670. package/docs/components/command.md +113 -113
  671. package/docs/components/context-menu.md +81 -81
  672. package/docs/components/dialog.md +198 -198
  673. package/docs/components/drawer.md +105 -105
  674. package/docs/components/dropdown-menu.md +127 -127
  675. package/docs/components/empty.md +127 -127
  676. package/docs/components/error-boundary.md +191 -191
  677. package/docs/components/file-upload.md +189 -189
  678. package/docs/components/floating-media-wrapper.md +63 -63
  679. package/docs/components/form.md +177 -177
  680. package/docs/components/formatted-document.md +105 -105
  681. package/docs/components/google-maps-loader.md +44 -44
  682. package/docs/components/header.md +177 -177
  683. package/docs/components/hooks.md +430 -425
  684. package/docs/components/hover-card.md +86 -86
  685. package/docs/components/image-with-fallback.md +107 -107
  686. package/docs/components/input-otp.md +95 -95
  687. package/docs/components/input.md +130 -130
  688. package/docs/components/label.md +69 -69
  689. package/docs/components/language-selector.md +71 -16
  690. package/docs/components/map-layers.md +138 -138
  691. package/docs/components/map.md +84 -84
  692. package/docs/components/markdown-message.md +47 -47
  693. package/docs/components/menubar.md +89 -89
  694. package/docs/components/modern-chat-input.md +164 -164
  695. package/docs/components/navigation-menu.md +83 -83
  696. package/docs/components/notification-badge.md +78 -78
  697. package/docs/components/page-header.md +93 -93
  698. package/docs/components/pages.md +309 -309
  699. package/docs/components/pagination.md +334 -334
  700. package/docs/components/popover.md +116 -116
  701. package/docs/components/progress.md +103 -103
  702. package/docs/components/radio-group.md +133 -133
  703. package/docs/components/rating.md +77 -77
  704. package/docs/components/resizable.md +84 -84
  705. package/docs/components/rich-text-editor.md +255 -255
  706. package/docs/components/route-map.md +124 -124
  707. package/docs/components/scroll-area.md +58 -58
  708. package/docs/components/search.md +87 -87
  709. package/docs/components/select.md +144 -144
  710. package/docs/components/separator.md +58 -58
  711. package/docs/components/sheet.md +122 -122
  712. package/docs/components/sidebar.md +314 -314
  713. package/docs/components/simple-map.md +51 -51
  714. package/docs/components/skeleton.md +99 -99
  715. package/docs/components/slider.md +84 -84
  716. package/docs/components/sonner.md +115 -115
  717. package/docs/components/stats-card.md +120 -120
  718. package/docs/components/stepper.md +268 -268
  719. package/docs/components/switch.md +106 -106
  720. package/docs/components/table.md +138 -138
  721. package/docs/components/tabs.md +117 -117
  722. package/docs/components/textarea.md +86 -86
  723. package/docs/components/theme-toggle.md +73 -73
  724. package/docs/components/timeline.md +121 -121
  725. package/docs/components/toggle-group.md +68 -68
  726. package/docs/components/toggle.md +62 -62
  727. package/docs/components/tooltip.md +116 -116
  728. package/docs/components/tree-view.md +238 -238
  729. package/docs/components/use-mobile.md +96 -96
  730. package/docs/components/video-player.md +68 -68
  731. package/docs/components/xertica-logo.md +36 -36
  732. package/docs/components/xertica-orbe.md +35 -35
  733. package/docs/components/xertica-provider.md +65 -65
  734. package/docs/components/xertica-xlogo.md +35 -35
  735. package/docs/decision-tree.md +293 -293
  736. package/docs/doc-audit.md +243 -224
  737. package/docs/form-sizing.md +162 -162
  738. package/docs/getting-started.md +591 -568
  739. package/docs/guidelines.md +328 -222
  740. package/docs/i18n.md +324 -43
  741. package/docs/installation.md +267 -267
  742. package/docs/layout.md +143 -143
  743. package/docs/llms.md +295 -295
  744. package/docs/patterns/analytics.md +194 -194
  745. package/docs/patterns/crud.md +149 -149
  746. package/docs/patterns/dashboard.md +138 -138
  747. package/docs/patterns/detail-page.md +296 -296
  748. package/docs/patterns/form.md +241 -241
  749. package/docs/patterns/login.md +156 -156
  750. package/docs/patterns/settings.md +368 -368
  751. package/docs/patterns/wizard.md +213 -213
  752. package/docs/state-management.md +289 -283
  753. package/guidelines/Guidelines.md +406 -257
  754. package/hooks/useTheme.test.tsx +16 -16
  755. package/hooks/useTheme.ts +4 -4
  756. package/imports/Podcast.tsx +540 -540
  757. package/imports/XerticaAi.tsx +46 -46
  758. package/imports/XerticaX.tsx +15 -15
  759. package/imports/svg-aueiaqngck.ts +20 -20
  760. package/imports/svg-v9krss1ozd.ts +23 -23
  761. package/imports/svg-vhrdofe3qe.ts +6 -6
  762. package/llms-compact.txt +1 -1
  763. package/llms-full.txt +5 -2
  764. package/llms.txt +186 -186
  765. package/mcp/resources.json +22 -22
  766. package/mcp/tools.json +35 -35
  767. package/package.json +213 -213
  768. package/scripts/ai-validator.ts +91 -91
  769. package/scripts/cleanup-case-dupes.ts +62 -62
  770. package/scripts/generate-ai-manifests.ts +107 -107
  771. package/styles/globals.css +13 -13
  772. package/styles/xertica/app-overrides/chat.css +61 -61
  773. package/styles/xertica/app-overrides/scrollbar.css +33 -33
  774. package/styles/xertica/base.css +71 -71
  775. package/styles/xertica/integrations/google-maps.css +76 -76
  776. package/styles/xertica/integrations/sonner.css +73 -73
  777. package/styles/xertica/theme-map.css +99 -99
  778. package/styles/xertica/tokens.css +236 -236
  779. package/templates/.prettierignore +4 -4
  780. package/templates/.prettierrc +10 -10
  781. package/templates/CLAUDE.md +180 -180
  782. package/templates/eslint.config.js +26 -26
  783. package/templates/guidelines/Guidelines.md +553 -335
  784. package/templates/package.json +69 -69
  785. package/templates/postcss.config.js +6 -6
  786. package/templates/src/app/App.tsx +46 -46
  787. package/templates/src/app/components/AppLayout.tsx +55 -55
  788. package/templates/src/app/components/AuthGuard.tsx +82 -82
  789. package/templates/src/app/context/AuthContext.tsx +108 -108
  790. package/templates/src/features/assistant/data/mock.ts +21 -12
  791. package/templates/src/features/assistant/hooks/useAssistantConfig.ts +4 -3
  792. package/templates/src/features/assistant/index.ts +5 -5
  793. package/templates/src/features/auth/index.ts +4 -4
  794. package/templates/src/features/auth/ui/AuthPageShell.tsx +32 -32
  795. package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -70
  796. package/templates/src/features/auth/ui/LoginContent.tsx +90 -90
  797. package/templates/src/features/auth/ui/ResetPasswordContent.tsx +177 -177
  798. package/templates/src/features/auth/ui/SocialLoginButtons.tsx +73 -73
  799. package/templates/src/features/auth/ui/VerifyEmailContent.tsx +82 -82
  800. package/templates/src/features/home/data/mock.ts +35 -35
  801. package/templates/src/features/home/hooks/useFeatureCards.ts +4 -3
  802. package/templates/src/features/home/index.ts +11 -11
  803. package/templates/src/features/home/store/dashboardStore.ts +25 -25
  804. package/templates/src/features/home/ui/HomeContent.tsx +119 -121
  805. package/templates/src/features/template/index.ts +5 -5
  806. package/templates/src/features/template/ui/CrudTemplate.tsx +32 -17
  807. package/templates/src/features/template/ui/DashboardTemplate.tsx +31 -15
  808. package/templates/src/features/template/ui/FormTemplate.tsx +21 -21
  809. package/templates/src/features/template/ui/LoginTemplate.tsx +14 -7
  810. package/templates/src/features/template/ui/TemplateContent.tsx +403 -288
  811. package/templates/src/i18n.ts +97 -11
  812. package/templates/src/locales/en/common.json +21 -0
  813. package/templates/src/locales/en/components/activityCard.json +10 -0
  814. package/templates/src/locales/en/components/assistant.json +105 -0
  815. package/templates/src/locales/en/components/media.json +29 -0
  816. package/templates/src/locales/en/components/notificationCard.json +5 -0
  817. package/templates/src/locales/en/components/profileCard.json +8 -0
  818. package/templates/src/locales/en/components/projectCard.json +10 -0
  819. package/templates/src/locales/en/components/sidebar.json +14 -0
  820. package/templates/src/locales/en/components/stats.json +8 -0
  821. package/templates/src/locales/en/components/team.json +14 -0
  822. package/templates/src/locales/en/errors.json +9 -0
  823. package/templates/src/locales/en/languageSelector.json +7 -0
  824. package/templates/src/locales/en/nav.json +6 -0
  825. package/templates/src/locales/en/pages/crudTemplate.json +25 -0
  826. package/templates/src/locales/en/pages/dashboardTemplate.json +20 -0
  827. package/templates/src/locales/en/pages/formTemplate.json +16 -0
  828. package/templates/src/locales/en/pages/home.json +7 -0
  829. package/templates/src/locales/en/pages/login.json +15 -0
  830. package/templates/src/locales/en/pages/loginTemplate.json +9 -0
  831. package/templates/src/locales/en/pages/resetPassword.json +18 -0
  832. package/templates/src/locales/en/pages/templates.json +317 -0
  833. package/templates/src/locales/en/pages/verifyEmail.json +12 -0
  834. package/templates/src/locales/en/themeToggle.json +6 -0
  835. package/templates/src/locales/es/common.json +21 -0
  836. package/templates/src/locales/es/components/activityCard.json +10 -0
  837. package/templates/src/locales/es/components/assistant.json +105 -0
  838. package/templates/src/locales/es/components/media.json +29 -0
  839. package/templates/src/locales/es/components/notificationCard.json +5 -0
  840. package/templates/src/locales/es/components/profileCard.json +8 -0
  841. package/templates/src/locales/es/components/projectCard.json +10 -0
  842. package/templates/src/locales/es/components/sidebar.json +14 -0
  843. package/templates/src/locales/es/components/stats.json +8 -0
  844. package/templates/src/locales/es/components/team.json +14 -0
  845. package/templates/src/locales/es/errors.json +9 -0
  846. package/templates/src/locales/es/languageSelector.json +7 -0
  847. package/templates/src/locales/es/nav.json +6 -0
  848. package/templates/src/locales/es/pages/crudTemplate.json +25 -0
  849. package/templates/src/locales/es/pages/dashboardTemplate.json +20 -0
  850. package/templates/src/locales/es/pages/formTemplate.json +16 -0
  851. package/templates/src/locales/es/pages/home.json +7 -0
  852. package/templates/src/locales/es/pages/login.json +15 -0
  853. package/templates/src/locales/es/pages/loginTemplate.json +9 -0
  854. package/templates/src/locales/es/pages/resetPassword.json +18 -0
  855. package/templates/src/locales/es/pages/templates.json +317 -0
  856. package/templates/src/locales/es/pages/verifyEmail.json +12 -0
  857. package/templates/src/locales/es/themeToggle.json +6 -0
  858. package/templates/src/locales/pt-BR/common.json +21 -0
  859. package/templates/src/locales/pt-BR/components/activityCard.json +10 -0
  860. package/templates/src/locales/pt-BR/components/assistant.json +105 -0
  861. package/templates/src/locales/pt-BR/components/media.json +29 -0
  862. package/templates/src/locales/pt-BR/components/notificationCard.json +5 -0
  863. package/templates/src/locales/pt-BR/components/profileCard.json +8 -0
  864. package/templates/src/locales/pt-BR/components/projectCard.json +10 -0
  865. package/templates/src/locales/pt-BR/components/sidebar.json +14 -0
  866. package/templates/src/locales/pt-BR/components/stats.json +8 -0
  867. package/templates/src/locales/pt-BR/components/team.json +14 -0
  868. package/templates/src/locales/pt-BR/errors.json +9 -0
  869. package/templates/src/locales/pt-BR/languageSelector.json +7 -0
  870. package/templates/src/locales/pt-BR/nav.json +6 -0
  871. package/templates/src/locales/pt-BR/pages/crudTemplate.json +25 -0
  872. package/templates/src/locales/pt-BR/pages/dashboardTemplate.json +20 -0
  873. package/templates/src/locales/pt-BR/pages/formTemplate.json +16 -0
  874. package/templates/src/locales/pt-BR/pages/home.json +7 -0
  875. package/templates/src/locales/pt-BR/pages/login.json +15 -0
  876. package/templates/src/locales/pt-BR/pages/loginTemplate.json +9 -0
  877. package/templates/src/locales/pt-BR/pages/resetPassword.json +18 -0
  878. package/templates/src/locales/pt-BR/pages/templates.json +317 -0
  879. package/templates/src/locales/pt-BR/pages/verifyEmail.json +12 -0
  880. package/templates/src/locales/pt-BR/themeToggle.json +6 -0
  881. package/templates/src/main.tsx +11 -11
  882. package/templates/src/pages/AssistantPage.tsx +463 -463
  883. package/templates/src/pages/ForgotPasswordPage.tsx +6 -6
  884. package/templates/src/pages/HomePage.tsx +49 -50
  885. package/templates/src/pages/LoginPage.tsx +10 -10
  886. package/templates/src/pages/ResetPasswordPage.tsx +6 -6
  887. package/templates/src/pages/TemplatePage.tsx +28 -28
  888. package/templates/src/pages/VerifyEmailPage.tsx +6 -6
  889. package/templates/src/shared/config/navigation.ts +19 -19
  890. package/templates/src/shared/error-boundary.tsx +154 -154
  891. package/templates/src/shared/error-fallbacks.tsx +226 -226
  892. package/templates/src/shared/lib/auth.ts +20 -20
  893. package/templates/src/shared/types/auth.ts +3 -3
  894. package/templates/src/styles/index.css +95 -95
  895. package/templates/src/styles/xertica/tokens.css +236 -236
  896. package/templates/tsconfig.json +25 -25
  897. package/templates/tsconfig.node.json +12 -12
  898. package/templates/vite-env.d.ts +1 -1
  899. package/templates/vite.config.ts +51 -21
  900. package/utils/color-utils.ts +72 -72
  901. package/utils/demo-responses.test.ts +10 -10
  902. package/utils/demo-responses.ts +151 -151
  903. package/utils/gemini.test.ts +25 -25
  904. package/utils/gemini.ts +155 -155
  905. package/dist/AssistantChart-DIpshm3i.js +0 -4784
  906. package/dist/AssistantChart-zjsy2GaZ.cjs +0 -4810
  907. package/dist/AudioPlayer-B1lt5cPl.cjs +0 -989
  908. package/dist/AudioPlayer-BZ7bibzU.cjs +0 -982
  909. package/dist/AudioPlayer-C12BjQBV.cjs +0 -997
  910. package/dist/AudioPlayer-CFeV8t-5.cjs +0 -936
  911. package/dist/AudioPlayer-CGRUtUdN.js +0 -937
  912. package/dist/AudioPlayer-DMcG_c7L.js +0 -990
  913. package/dist/AudioPlayer-DcFKRJE_.js +0 -998
  914. package/dist/AudioPlayer-e8LfNoqO.js +0 -983
  915. package/dist/CodeBlock-BeSt1h5P.js +0 -2078
  916. package/dist/CodeBlock-BgfYL_rD.cjs +0 -2094
  917. package/dist/CodeBlock-BlcqlA9M.cjs +0 -2094
  918. package/dist/CodeBlock-Bnmeu5ez.cjs +0 -2094
  919. package/dist/CodeBlock-BtfPlbAI.js +0 -2078
  920. package/dist/CodeBlock-CIySIuYr.js +0 -2078
  921. package/dist/CodeBlock-CuPtUM-7.cjs +0 -2094
  922. package/dist/CodeBlock-D6ffWXgc.js +0 -2078
  923. package/dist/CodeBlock-D8dcwbit.cjs +0 -2094
  924. package/dist/CodeBlock-DMZrFnlw.cjs +0 -2094
  925. package/dist/CodeBlock-DlBehYN8.js +0 -2078
  926. package/dist/CodeBlock-DvKWbSnE.cjs +0 -2094
  927. package/dist/CodeBlock-DwMCfkFY.js +0 -2078
  928. package/dist/CodeBlock-Dy6CNYyj.js +0 -2078
  929. package/dist/CodeBlock-U1pPOQI7.cjs +0 -2094
  930. package/dist/CodeBlock-f_GpNhEB.js +0 -2078
  931. package/dist/CodeBlock-oB6u8nI1.js +0 -2078
  932. package/dist/CodeBlock-tZC31B73.cjs +0 -2094
  933. package/dist/FeatureCard-CxC-7C-C.cjs +0 -300
  934. package/dist/ImageWithFallback-CGtidP6B.cjs +0 -4542
  935. package/dist/ImageWithFallback-lsg3pdFg.js +0 -4508
  936. package/dist/LayoutContext-BAql6ZRY.js +0 -97
  937. package/dist/LayoutContext-BvK-ggDa.cjs +0 -96
  938. package/dist/ThemeContext-BoH4NLfN.js +0 -734
  939. package/dist/ThemeContext-r69W20Xg.cjs +0 -733
  940. package/dist/VerifyEmailPage-COiyNl1y.js +0 -2825
  941. package/dist/VerifyEmailPage-CqKsR2v8.js +0 -2827
  942. package/dist/XerticaOrbe-KL1RBHzw.cjs +0 -1354
  943. package/dist/XerticaOrbe-zwS1p2a8.js +0 -1355
  944. package/dist/XerticaProvider-6btlAlzc.js +0 -17
  945. package/dist/XerticaProvider-BNoNOxQ5.cjs +0 -16
  946. package/dist/XerticaProvider-BlY2limY.cjs +0 -38
  947. package/dist/XerticaProvider-DDuiIcKo.js +0 -39
  948. package/dist/XerticaProvider-cI9hSs27.cjs +0 -38
  949. package/dist/XerticaProvider-hSwhNQex.js +0 -39
  950. package/dist/breadcrumb-CqJ7bHY5.js +0 -161
  951. package/dist/breadcrumb-m9Hb2_XN.cjs +0 -177
  952. package/dist/components/assistant/xertica-assistant/hooks/index.d.ts +0 -6
  953. package/dist/components/assistant/xertica-assistant/hooks/use-assistant-conversations.d.ts +0 -21
  954. package/dist/components/assistant/xertica-assistant/hooks/use-assistant-messages.d.ts +0 -49
  955. package/dist/components/assistant/xertica-assistant/hooks/use-assistant-suggestions.d.ts +0 -16
  956. package/dist/components/blocks/audio-player/AudioPlayer.d.ts +0 -35
  957. package/dist/components/blocks/audio-player/index.d.ts +0 -1
  958. package/dist/components/blocks/document-editor/DocumentEditor.d.ts +0 -26
  959. package/dist/components/blocks/document-editor/index.d.ts +0 -1
  960. package/dist/components/blocks/podcast-player/PodcastPlayer.d.ts +0 -41
  961. package/dist/components/blocks/podcast-player/index.d.ts +0 -1
  962. package/dist/components/ui/chart/parts/chart-dashboard.d.ts +0 -113
  963. package/dist/components/ui/chart/parts/chart-metric.d.ts +0 -118
  964. package/dist/components/ui/chart/parts/chart-primitives.d.ts +0 -101
  965. package/dist/components/ui/chart/parts/chart-shared.d.ts +0 -20
  966. package/dist/components/ui/chart/parts/chart-utils.d.ts +0 -12
  967. package/dist/components/ui/chart/parts/index.d.ts +0 -5
  968. package/dist/dropdown-menu-BDB5CmQs.cjs +0 -247
  969. package/dist/dropdown-menu-DQidbKBD.js +0 -231
  970. package/dist/google-maps-loader-BFWp6VPd.js +0 -287
  971. package/dist/google-maps-loader-eS3uQ5TA.cjs +0 -287
  972. package/dist/header-Cgy6vYPk.cjs +0 -731
  973. package/dist/header-DRlT4jgI.js +0 -715
  974. package/dist/header-Dux00SI4.cjs +0 -731
  975. package/dist/header-EkGKXPsD.js +0 -715
  976. package/dist/header-WfEywpyc.cjs +0 -731
  977. package/dist/header-tifNQn2U.js +0 -715
  978. package/dist/index-BhapVLVj.js +0 -8
  979. package/dist/index-D6fxYEY8.cjs +0 -7
  980. package/dist/index-DW5tYe26.js +0 -8
  981. package/dist/input-2R4loU86.js +0 -127
  982. package/dist/input-DWANSKGb.cjs +0 -145
  983. package/dist/progress-DPtzoVV8.js +0 -175
  984. package/dist/progress-EeaoqqUs.cjs +0 -191
  985. package/dist/rich-text-editor-0mraWT5y.cjs +0 -2376
  986. package/dist/rich-text-editor-B6jMRLzk.cjs +0 -1939
  987. package/dist/rich-text-editor-B8_oYcIR.js +0 -1730
  988. package/dist/rich-text-editor-B9UbSXNb.js +0 -1203
  989. package/dist/rich-text-editor-BYuRBNBU.js +0 -2373
  990. package/dist/rich-text-editor-Bb9pySTs.cjs +0 -2374
  991. package/dist/rich-text-editor-BcL6L3cm.cjs +0 -2374
  992. package/dist/rich-text-editor-BoVZYtTs.cjs +0 -2391
  993. package/dist/rich-text-editor-CMgSN_w2.js +0 -1189
  994. package/dist/rich-text-editor-CPV1lEPH.cjs +0 -1748
  995. package/dist/rich-text-editor-CoKqbCtu.cjs +0 -1799
  996. package/dist/rich-text-editor-Cw56T_mB.js +0 -2356
  997. package/dist/rich-text-editor-Cyt8qs2b.js +0 -1921
  998. package/dist/rich-text-editor-D6H84OcX.cjs +0 -1220
  999. package/dist/rich-text-editor-D76gD-QI.js +0 -2328
  1000. package/dist/rich-text-editor-DKkokOnA.js +0 -1781
  1001. package/dist/rich-text-editor-DNsdpN64.cjs +0 -2359
  1002. package/dist/rich-text-editor-DfG8bCyY.js +0 -2358
  1003. package/dist/rich-text-editor-Dxjw31Z4.js +0 -2341
  1004. package/dist/rich-text-editor-DzP0Epmb.js +0 -2356
  1005. package/dist/rich-text-editor-lyYE2ZG5.cjs +0 -1207
  1006. package/dist/rich-text-editor-skplNlBM.cjs +0 -2345
  1007. package/dist/select-Bkbr0f-Z.cjs +0 -162
  1008. package/dist/select-CvIVdX2n.js +0 -145
  1009. package/dist/sidebar-Djn5syhi.cjs +0 -786
  1010. package/dist/sidebar-_rT7rBMk.js +0 -787
  1011. package/dist/slider-Bc5Hd0y1.js +0 -56
  1012. package/dist/slider-N7hFFj6X.cjs +0 -73
  1013. package/dist/tooltip-Ded96neP.cjs +0 -137
  1014. package/dist/tooltip-HDOoD2-0.js +0 -120
  1015. package/dist/use-audio-player-BkmEmj8Q.js +0 -185
  1016. package/dist/use-audio-player-CLFTWFW1.cjs +0 -184
  1017. package/dist/use-file-upload-BcjEo2S5.js +0 -404
  1018. package/dist/use-file-upload-CRJR68Tj.cjs +0 -403
  1019. package/dist/use-mobile-B0hNy_Y6.cjs +0 -4303
  1020. package/dist/use-mobile-Bbd51ASU.cjs +0 -4392
  1021. package/dist/use-mobile-Bk6CX-TC.js +0 -4359
  1022. package/dist/use-mobile-BvYdisLP.js +0 -4202
  1023. package/dist/use-mobile-BzuxjzNX.cjs +0 -4392
  1024. package/dist/use-mobile-CKb5pqTs.js +0 -4269
  1025. package/dist/use-mobile-CYuAuGDl.js +0 -4202
  1026. package/dist/use-mobile-CaENcqm-.js +0 -4508
  1027. package/dist/use-mobile-CbrYgJGJ.js +0 -4203
  1028. package/dist/use-mobile-DMOvImGQ.cjs +0 -4542
  1029. package/dist/use-mobile-DRB3BQgD.cjs +0 -4235
  1030. package/dist/use-mobile-DZvv7QMR.js +0 -4359
  1031. package/dist/use-mobile-DdI_TXam.cjs +0 -4235
  1032. package/dist/use-mobile-DlceKf8a.js +0 -4359
  1033. package/dist/use-mobile-DsOnow1o.cjs +0 -4236
  1034. package/dist/use-mobile-Kcj6jSnK.cjs +0 -4392
  1035. package/dist/use-mobile-bnKcua_i.js +0 -4202
  1036. package/dist/use-mobile-ncXBeE2z.cjs +0 -4235
  1037. package/dist/use-rich-text-editor-DjiddBGv.js +0 -282
  1038. package/dist/use-rich-text-editor-lpeswbCs.cjs +0 -281
  1039. package/templates/src/locales/en.json +0 -79
  1040. package/templates/src/locales/es.json +0 -79
  1041. package/templates/src/locales/pt-BR.json +0 -79
  1042. package/dist/{rich-text-editor-DgF8s7xW.js → rich-text-editor-BmsjY03B.js} +26 -26
  1043. package/dist/{rich-text-editor-mWoaSCE4.cjs → rich-text-editor-GS2kpTAK.cjs} +26 -26
@@ -1,20 +1,27 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const React = require("react");
4
- const button = require("./button-0CXwCRTm.cjs");
5
- const input = require("./input-CPl84zAx.cjs");
6
- const alertDialog = require("./alert-dialog-DSKByiKZ.cjs");
7
- const XerticaXLogo = require("./XerticaXLogo-D8jf0SNv.cjs");
4
+ const button = require("./button-Bnv9SvYK.cjs");
5
+ const input = require("./input-CNFHVKvo.cjs");
6
+ const alertDialog = require("./alert-dialog-B4M3vQKS.cjs");
7
+ const XerticaXLogo = require("./XerticaXLogo-CU-U-GP4.cjs");
8
8
  const lucideReact = require("lucide-react");
9
9
  const reactRouterDom = require("react-router-dom");
10
- const sidebar = require("./sidebar-BxGXsDAd.cjs");
11
- const progress = require("./progress-EeaoqqUs.cjs");
12
- const LayoutContext = require("./LayoutContext-BDmcZfMH.cjs");
13
- const xerticaAssistant = require("./xertica-assistant-DUBpmEgo.cjs");
14
- const richTextEditor = require("./rich-text-editor-lyYE2ZG5.cjs");
15
- const select = require("./select-DT7Zjn42.cjs");
16
- const slider = require("./slider-CPmwzm_3.cjs");
10
+ const sidebar = require("./sidebar-zowjejT2.cjs");
11
+ const skeleton = require("./skeleton-4zoHiFJ_.cjs");
12
+ const progress = require("./progress-DDeuWPZw.cjs");
13
+ const LayoutContext = require("./LayoutContext-C4kKN9RV.cjs");
14
+ const ThemeContext = require("./ThemeContext-CpqYShLq.cjs");
15
+ const reactQuery = require("@tanstack/react-query");
16
+ const reactI18next = require("react-i18next");
17
+ const FeatureCardSkeleton = require("./FeatureCardSkeleton-mO3Bdm_V.cjs");
18
+ const xerticaAssistant = require("./xertica-assistant-d2qs2Vd9.cjs");
19
+ const i18n = require("i18next");
20
+ const richTextEditor = require("./rich-text-editor-CyggTOLQ.cjs");
21
+ const select = require("./select-Cmb8zF7w.cjs");
22
+ const slider = require("./slider-DcJharR9.cjs");
17
23
  const sonner = require("sonner");
24
+ const zustand = require("zustand");
18
25
  function ForgotPasswordPage() {
19
26
  const navigate = reactRouterDom.useNavigate();
20
27
  const [email, setEmail] = React.useState("");
@@ -73,15 +80,7 @@ function ForgotPasswordPage() {
73
80
  )
74
81
  ] }),
75
82
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
76
- /* @__PURE__ */ jsxRuntime.jsx(
77
- button.Button,
78
- {
79
- type: "submit",
80
- className: "w-full",
81
- disabled: isLoading,
82
- children: isLoading ? "Enviando..." : "Enviar instruções"
83
- }
84
- ),
83
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { type: "submit", className: "w-full", disabled: isLoading, children: isLoading ? "Enviando..." : "Enviar instruções" }),
85
84
  /* @__PURE__ */ jsxRuntime.jsxs(
86
85
  button.Button,
87
86
  {
@@ -111,10 +110,34 @@ function ForgotPasswordPage() {
111
110
  onClick: () => handleSocialLogin(),
112
111
  children: [
113
112
  /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-5 h-5 mr-2", viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", children: [
114
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#EA4335", d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z" }),
115
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#4285F4", d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z" }),
116
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#FBBC05", d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z" }),
117
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#34A853", d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z" }),
113
+ /* @__PURE__ */ jsxRuntime.jsx(
114
+ "path",
115
+ {
116
+ fill: "#EA4335",
117
+ d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"
118
+ }
119
+ ),
120
+ /* @__PURE__ */ jsxRuntime.jsx(
121
+ "path",
122
+ {
123
+ fill: "#4285F4",
124
+ d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"
125
+ }
126
+ ),
127
+ /* @__PURE__ */ jsxRuntime.jsx(
128
+ "path",
129
+ {
130
+ fill: "#FBBC05",
131
+ d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"
132
+ }
133
+ ),
134
+ /* @__PURE__ */ jsxRuntime.jsx(
135
+ "path",
136
+ {
137
+ fill: "#34A853",
138
+ d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"
139
+ }
140
+ ),
118
141
  /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "none", d: "M0 0h48v48H0z" })
119
142
  ] }),
120
143
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Entrar com Google" })
@@ -152,34 +175,154 @@ function ForgotPasswordPage() {
152
175
  ] })
153
176
  ] });
154
177
  }
155
- const routes = [
156
- {
157
- path: "/home",
158
- label: "Home",
159
- icon: lucideReact.Home
160
- },
161
- {
162
- path: "/template",
163
- label: "Template",
164
- icon: lucideReact.FileText
165
- }
166
- ];
167
- const getRouteByPath = (path) => {
168
- return routes.find((route) => route.path === path);
169
- };
170
178
  const SIDEBAR_COLLAPSED_WIDTH = 80;
171
- function HomeContent({ user, onLogout, onSettings }) {
179
+ const t = (key, options) => i18n.t(key, options);
180
+ const MOCK_TEAM_MEMBERS = [
181
+ { id: "1", name: "Ana Silva", email: "ana.silva@example.com", role: "Developer", status: "active" },
182
+ { id: "2", name: "Bruno Costa", email: "bruno.costa@example.com", role: "Designer", status: "active" },
183
+ { id: "3", name: "Carla Oliveira", email: "carla.oliveira@example.com", role: "Manager", status: "away" },
184
+ { id: "4", name: "Diego Santos", email: "diego.santos@example.com", role: "Analyst", status: "inactive" }
185
+ ];
186
+ async function fetchTeamMembers() {
187
+ await new Promise((resolve) => setTimeout(resolve, 250));
188
+ return MOCK_TEAM_MEMBERS;
189
+ }
190
+ async function fetchFeatureCards() {
191
+ await new Promise((resolve) => setTimeout(resolve, 100));
192
+ return [
193
+ {
194
+ id: "template-cli",
195
+ title: t("home.templateCliTitle"),
196
+ description: t("home.templateCliDescription"),
197
+ badge: t("home.templateClibadge"),
198
+ href: "/template"
199
+ }
200
+ ];
201
+ }
202
+ function useTeamMembers() {
203
+ const { language } = ThemeContext.useLanguage();
204
+ return reactQuery.useQuery({
205
+ // Language is part of the key so each locale has its own cache slot.
206
+ queryKey: ["home", "team-members", language],
207
+ queryFn: fetchTeamMembers,
208
+ staleTime: 2 * 60 * 1e3
209
+ // 2 min
210
+ });
211
+ }
212
+ function useFeatureCards() {
213
+ const { language } = ThemeContext.useLanguage();
214
+ return reactQuery.useQuery({
215
+ // Language is part of the key so each locale has its own cache slot.
216
+ queryKey: ["home", "feature-cards", language],
217
+ queryFn: fetchFeatureCards,
218
+ staleTime: 10 * 60 * 1e3
219
+ // 10 min — feature list is fairly static
220
+ });
221
+ }
222
+ const useDashboardStore = zustand.create((set) => ({
223
+ // Filters
224
+ activeTab: "overview",
225
+ setActiveTab: (tab) => set({ activeTab: tab }),
226
+ // UI toggles
227
+ statsExpanded: true,
228
+ toggleStats: () => set((state) => ({ statsExpanded: !state.statsExpanded })),
229
+ // Showcase controls
230
+ progress: 45,
231
+ setProgress: (value) => set({ progress: value }),
232
+ sliderValue: [50],
233
+ setSliderValue: (value) => set({ sliderValue: value }),
234
+ switchEnabled: false,
235
+ toggleSwitch: () => set((state) => ({ switchEnabled: !state.switchEnabled }))
236
+ }));
237
+ function isDev() {
238
+ return false;
239
+ }
240
+ function SectionErrorFallback({ error, reset }) {
241
+ return /* @__PURE__ */ jsxRuntime.jsxs(
242
+ "div",
243
+ {
244
+ role: "alert",
245
+ className: "flex flex-col items-center justify-center gap-3 p-6 rounded-[var(--radius-lg)] border border-destructive/30 bg-destructive/5 text-center",
246
+ children: [
247
+ /* @__PURE__ */ jsxRuntime.jsxs(
248
+ "svg",
249
+ {
250
+ width: "24",
251
+ height: "24",
252
+ viewBox: "0 0 24 24",
253
+ fill: "none",
254
+ stroke: "currentColor",
255
+ strokeWidth: "2",
256
+ strokeLinecap: "round",
257
+ strokeLinejoin: "round",
258
+ className: "text-destructive shrink-0",
259
+ "aria-hidden": "true",
260
+ children: [
261
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
262
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
263
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
264
+ ]
265
+ }
266
+ ),
267
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
268
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: "Não foi possível carregar este conteúdo" }),
269
+ isDev()
270
+ ] }),
271
+ /* @__PURE__ */ jsxRuntime.jsx(
272
+ "button",
273
+ {
274
+ onClick: reset,
275
+ className: "inline-flex items-center px-3 py-1.5 text-xs rounded-[var(--radius-button)] border border-border bg-background hover:bg-accent hover:text-accent-foreground transition-colors",
276
+ children: "Tentar novamente"
277
+ }
278
+ )
279
+ ]
280
+ }
281
+ );
282
+ }
283
+ class ErrorBoundary extends React.Component {
284
+ constructor(props) {
285
+ super(props);
286
+ this.state = { hasError: false, error: null };
287
+ this.reset = this.reset.bind(this);
288
+ }
289
+ static getDerivedStateFromError(error) {
290
+ return { hasError: true, error };
291
+ }
292
+ componentDidCatch(error, info) {
293
+ var _a, _b;
294
+ (_b = (_a = this.props).onError) == null ? void 0 : _b.call(_a, error, info);
295
+ }
296
+ componentDidUpdate(prevProps) {
297
+ if (!this.state.hasError) return;
298
+ const { resetKeys } = this.props;
299
+ if (!(resetKeys == null ? void 0 : resetKeys.length)) return;
300
+ const prevKeys = prevProps.resetKeys ?? [];
301
+ const changed = resetKeys.some((key, i) => key !== prevKeys[i]);
302
+ if (changed) this.reset();
303
+ }
304
+ reset() {
305
+ this.setState({ hasError: false, error: null });
306
+ }
307
+ render() {
308
+ const { hasError, error } = this.state;
309
+ const { children, fallback: Fallback } = this.props;
310
+ if (hasError && error) {
311
+ return /* @__PURE__ */ jsxRuntime.jsx(Fallback, { error, reset: this.reset });
312
+ }
313
+ return children;
314
+ }
315
+ }
316
+ function SectionErrorBoundary({ children, onError, resetKeys }) {
317
+ return /* @__PURE__ */ jsxRuntime.jsx(ErrorBoundary, { fallback: SectionErrorFallback, onError, resetKeys, children });
318
+ }
319
+ function HomeContent() {
320
+ const { t: t2 } = reactI18next.useTranslation();
172
321
  const layout = LayoutContext.useOptionalLayout();
173
322
  const sidebarExpanded = (layout == null ? void 0 : layout.sidebarExpanded) ?? false;
174
323
  const sidebarWidth = (layout == null ? void 0 : layout.sidebarWidth) ?? 256;
175
- const location = reactRouterDom.useLocation();
176
324
  const navigate = reactRouterDom.useNavigate();
177
- const labelTranslations = {
178
- "home": "Início",
179
- "template": "Template"
180
- };
181
- const currentRoute = getRouteByPath(location.pathname);
182
- (currentRoute == null ? void 0 : currentRoute.label) ? labelTranslations[currentRoute.label.toLowerCase()] || currentRoute.label : "Início";
325
+ const { data: featureCards = [], isLoading } = useFeatureCards();
183
326
  return /* @__PURE__ */ jsxRuntime.jsxs(
184
327
  "div",
185
328
  {
@@ -194,8 +337,8 @@ function HomeContent({ user, onLogout, onSettings }) {
194
337
  showThemeToggle: true,
195
338
  showLanguageSelector: true,
196
339
  breadcrumbs: [
197
- { label: "Design System", href: "/home" },
198
- { label: "Início" }
340
+ { label: t2("nav.designSystem"), href: "/home" },
341
+ { label: t2("nav.home") }
199
342
  ],
200
343
  renderLink: (href, props) => /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Link, { to: href, ...props })
201
344
  }
@@ -204,46 +347,105 @@ function HomeContent({ user, onLogout, onSettings }) {
204
347
  /* @__PURE__ */ jsxRuntime.jsx(
205
348
  alertDialog.PageHeader,
206
349
  {
207
- title: "Bem-vindo ao Design System!",
208
- subtitle: "Sua plataforma inteligente para automação e análise de dados"
350
+ title: t2("home.welcome"),
351
+ subtitle: t2("home.subtitle")
209
352
  }
210
353
  ),
211
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { className: "hover:shadow-xl transition-shadow duration-200 flex flex-col h-full", children: [
212
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
213
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-2 bg-[var(--chart-2)]/20 rounded-[var(--radius)]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "w-6 h-6 text-[var(--chart-2)]" }) }),
214
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
215
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { className: "text-sm", children: "Template CLI" }),
216
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "default", className: "text-xs", children: "Novo" })
217
- ] })
218
- ] }) }),
219
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: "Página de template pronta para uso CLI com todos os componentes configurados." }) }),
220
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardFooter, { children: /* @__PURE__ */ jsxRuntime.jsx(
221
- button.Button,
222
- {
223
- variant: "outline",
224
- className: "w-full",
225
- onClick: () => navigate("/template"),
226
- children: "Visualizar"
227
- }
228
- ) })
229
- ] }) })
354
+ /* @__PURE__ */ jsxRuntime.jsx(SectionErrorBoundary, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
355
+ /* @__PURE__ */ jsxRuntime.jsx(FeatureCardSkeleton.FeatureCardSkeleton, { showAction: true }),
356
+ /* @__PURE__ */ jsxRuntime.jsx(FeatureCardSkeleton.FeatureCardSkeleton, { showAction: true }),
357
+ /* @__PURE__ */ jsxRuntime.jsx(FeatureCardSkeleton.FeatureCardSkeleton, { showAction: true })
358
+ ] }) : featureCards.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
359
+ skeleton.Card,
360
+ {
361
+ className: "hover:shadow-xl transition-shadow duration-200 flex flex-col h-full",
362
+ children: [
363
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
364
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-2 bg-[var(--chart-2)]/20 rounded-[var(--radius)]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "w-6 h-6 text-[var(--chart-2)]" }) }),
365
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
366
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { className: "text-sm", children: t2(`home.${card.id.replace(/-/g, "")}Title`, { defaultValue: card.title }) }),
367
+ card.badge && /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "default", className: "text-xs", children: t2(`home.${card.id.replace(/-/g, "")}badge`, { defaultValue: card.badge }) })
368
+ ] })
369
+ ] }) }),
370
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: t2(`home.${card.id.replace(/-/g, "")}Description`, { defaultValue: card.description }) }) }),
371
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardFooter, { children: /* @__PURE__ */ jsxRuntime.jsx(
372
+ button.Button,
373
+ {
374
+ variant: "outline",
375
+ className: "w-full",
376
+ onClick: () => navigate(card.href),
377
+ children: t2("common.view")
378
+ }
379
+ ) })
380
+ ]
381
+ },
382
+ card.id
383
+ )) }) })
230
384
  ] }) }) }) })
231
385
  ]
232
386
  }
233
387
  );
234
388
  }
235
- const richSuggestions = [
236
- { id: "chart-1", text: "Ver análise de desempenho" },
237
- { id: "table-1", text: "Gerar relatório do projeto" },
238
- { id: "doc-1", text: "Criar documento de requisitos" },
239
- { id: "pod-1", text: "Gerar podcast de resumo diário" }
240
- ];
241
- const feedbackOptions = [
242
- "Não era o que eu estava procurando",
243
- "Informações incorretas",
244
- "Resposta incompleta"
389
+ const routes = [
390
+ { path: "/home", label: "Home", icon: lucideReact.Home },
391
+ { path: "/template", label: "Template", icon: lucideReact.FileText }
245
392
  ];
246
- function HomePage({ user, onLogout }) {
393
+ const AuthContext = React.createContext(null);
394
+ function useAuth() {
395
+ const ctx = React.useContext(AuthContext);
396
+ if (!ctx) throw new Error("useAuth must be used within <AuthProvider>");
397
+ return ctx;
398
+ }
399
+ async function fetchAssistantConfig() {
400
+ await new Promise((resolve) => setTimeout(resolve, 150));
401
+ const t2 = (key) => i18n.t(key);
402
+ return {
403
+ suggestions: [
404
+ { id: "1", text: t2("assistant.suggestions.whatCanIAsk") },
405
+ { id: "2", text: t2("assistant.suggestions.whatDoYouDo") },
406
+ { id: "3", text: t2("assistant.suggestions.whichProjects") },
407
+ { id: "4", text: t2("assistant.suggestions.nextProject") }
408
+ ],
409
+ richSuggestions: [
410
+ { id: "rich-1", text: t2("assistant.richSuggestions.viewPerformance") },
411
+ { id: "rich-2", text: t2("assistant.richSuggestions.generateReport") },
412
+ { id: "rich-3", text: t2("assistant.richSuggestions.createDocument") },
413
+ { id: "rich-4", text: t2("assistant.richSuggestions.generatePodcast") }
414
+ ],
415
+ feedbackOptions: [
416
+ t2("assistant.feedback.notWhatIWanted"),
417
+ t2("assistant.feedback.incorrectInfo"),
418
+ t2("assistant.feedback.incompleteAnswer")
419
+ ]
420
+ };
421
+ }
422
+ function getMockRichSuggestions() {
423
+ return [
424
+ { id: "rich-1", text: i18n.t("assistant.richSuggestions.viewPerformance") },
425
+ { id: "rich-2", text: i18n.t("assistant.richSuggestions.generateReport") },
426
+ { id: "rich-3", text: i18n.t("assistant.richSuggestions.createDocument") },
427
+ { id: "rich-4", text: i18n.t("assistant.richSuggestions.generatePodcast") }
428
+ ];
429
+ }
430
+ function getMockFeedbackOptions() {
431
+ return [
432
+ i18n.t("assistant.feedback.notWhatIWanted"),
433
+ i18n.t("assistant.feedback.incorrectInfo"),
434
+ i18n.t("assistant.feedback.incompleteAnswer")
435
+ ];
436
+ }
437
+ function useAssistantConfig() {
438
+ const { language } = ThemeContext.useLanguage();
439
+ return reactQuery.useQuery({
440
+ // Language is part of the key so each locale has its own cache slot.
441
+ queryKey: ["assistant", "config", language],
442
+ queryFn: fetchAssistantConfig,
443
+ staleTime: 30 * 60 * 1e3
444
+ // 30 min — config rarely changes
445
+ });
446
+ }
447
+ function HomePage() {
448
+ const { user, logout } = useAuth();
247
449
  const layout = LayoutContext.useOptionalLayout();
248
450
  const [localSidebarExpanded, setLocalSidebarExpanded] = React.useState(false);
249
451
  const [localAssistantExpanded, setLocalAssistantExpanded] = React.useState(false);
@@ -254,6 +456,7 @@ function HomePage({ user, onLogout }) {
254
456
  const toggleAssistente = (layout == null ? void 0 : layout.toggleAssistente) ?? (() => setLocalAssistantExpanded((value) => !value));
255
457
  const location = reactRouterDom.useLocation();
256
458
  const navigate = reactRouterDom.useNavigate();
459
+ const { data: assistantConfig } = useAssistantConfig();
257
460
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-screen flex bg-muted overflow-hidden relative", children: [
258
461
  /* @__PURE__ */ jsxRuntime.jsx(
259
462
  sidebar.Sidebar,
@@ -266,21 +469,14 @@ function HomePage({ user, onLogout }) {
266
469
  name: "Ariel Santos",
267
470
  avatar: "https://github.com/shadcn.png"
268
471
  },
269
- onLogout,
472
+ onLogout: logout,
270
473
  onSettingsClick: () => navigate("/settings"),
271
474
  location,
272
475
  navigate,
273
476
  routes
274
477
  }
275
478
  ),
276
- /* @__PURE__ */ jsxRuntime.jsx(
277
- HomeContent,
278
- {
279
- user,
280
- onLogout,
281
- onSettings: () => navigate("/settings")
282
- }
283
- ),
479
+ /* @__PURE__ */ jsxRuntime.jsx(HomeContent, {}),
284
480
  /* @__PURE__ */ jsxRuntime.jsx(
285
481
  xerticaAssistant.XerticaAssistant,
286
482
  {
@@ -289,8 +485,9 @@ function HomePage({ user, onLogout }) {
289
485
  defaultTab: "chat",
290
486
  demoMode: true,
291
487
  responseGenerator: xerticaAssistant.gerarResposta,
292
- richSuggestions,
293
- feedbackOptions,
488
+ suggestions: assistantConfig == null ? void 0 : assistantConfig.suggestions,
489
+ richSuggestions: (assistantConfig == null ? void 0 : assistantConfig.richSuggestions) ?? getMockRichSuggestions(),
490
+ feedbackOptions: (assistantConfig == null ? void 0 : assistantConfig.feedbackOptions) ?? getMockFeedbackOptions(),
294
491
  onEvaluation: () => {
295
492
  }
296
493
  }
@@ -299,6 +496,7 @@ function HomePage({ user, onLogout }) {
299
496
  }
300
497
  function LoginPage({ onLogin }) {
301
498
  const navigate = reactRouterDom.useNavigate();
499
+ const { t: t2 } = reactI18next.useTranslation();
302
500
  const [email, setEmail] = React.useState("");
303
501
  const [password, setPassword] = React.useState("");
304
502
  const [isLoading, setIsLoading] = React.useState(false);
@@ -310,7 +508,7 @@ function LoginPage({ onLogin }) {
310
508
  await new Promise((resolve) => setTimeout(resolve, 1e3));
311
509
  const success = onLogin(email, password);
312
510
  if (!success) {
313
- setError("Por favor, preencha todos os campos");
511
+ setError(t2("login.errorFillFields"));
314
512
  }
315
513
  setIsLoading(false);
316
514
  };
@@ -323,7 +521,7 @@ function LoginPage({ onLogin }) {
323
521
  alertDialog.ImageWithFallback,
324
522
  {
325
523
  src: "https://images.unsplash.com/photo-1551434678-e076c223a692?w=1200&h=800&fit=crop&auto=format",
326
- alt: "Equipe trabalhando com tecnologia",
524
+ alt: t2("login.heroImageAlt"),
327
525
  className: "absolute inset-0 w-full h-full object-cover"
328
526
  }
329
527
  ),
@@ -341,11 +539,11 @@ function LoginPage({ onLogin }) {
341
539
  variant: "theme"
342
540
  }
343
541
  ) }),
344
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-muted-foreground", children: "Acesse sua conta" })
542
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-muted-foreground", children: t2("login.heading") })
345
543
  ] }),
346
544
  /* @__PURE__ */ jsxRuntime.jsxs("form", { className: "space-y-6", onSubmit: handleSubmit, children: [
347
545
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
348
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "email", children: "E-mail" }),
546
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "email", children: t2("login.emailLabel") }),
349
547
  /* @__PURE__ */ jsxRuntime.jsx(
350
548
  input.Input,
351
549
  {
@@ -354,14 +552,14 @@ function LoginPage({ onLogin }) {
354
552
  type: "email",
355
553
  required: true,
356
554
  className: "w-full",
357
- placeholder: "seu@email.com",
555
+ placeholder: t2("login.emailPlaceholder"),
358
556
  value: email,
359
557
  onChange: (e) => setEmail(e.target.value)
360
558
  }
361
559
  )
362
560
  ] }),
363
561
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
364
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "password", children: "Senha" }),
562
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "password", children: t2("login.passwordLabel") }),
365
563
  /* @__PURE__ */ jsxRuntime.jsx(
366
564
  input.Input,
367
565
  {
@@ -377,28 +575,20 @@ function LoginPage({ onLogin }) {
377
575
  )
378
576
  ] }),
379
577
  error && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-destructive text-sm text-center", children: error }),
380
- /* @__PURE__ */ jsxRuntime.jsx(
381
- button.Button,
382
- {
383
- type: "submit",
384
- className: "w-full",
385
- disabled: isLoading,
386
- children: isLoading ? "Entrando..." : "Entrar"
387
- }
388
- ),
578
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { type: "submit", className: "w-full", disabled: isLoading, children: isLoading ? t2("login.submitting") : t2("login.submit") }),
389
579
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx(
390
580
  "button",
391
581
  {
392
582
  type: "button",
393
583
  onClick: () => navigate("/forgot-password"),
394
584
  className: "text-sm text-primary hover:opacity-80 transition-colors",
395
- children: "Esqueceu sua senha?"
585
+ children: t2("login.forgotPassword")
396
586
  }
397
587
  ) })
398
588
  ] }),
399
589
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
400
590
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full border-t border-border" }) }),
401
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: "ou continue com" }) })
591
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: t2("login.orContinueWith") }) })
402
592
  ] }),
403
593
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
404
594
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -410,13 +600,37 @@ function LoginPage({ onLogin }) {
410
600
  onClick: () => handleSocialLogin(),
411
601
  children: [
412
602
  /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-5 h-5 mr-2", viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", children: [
413
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#EA4335", d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z" }),
414
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#4285F4", d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z" }),
415
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#FBBC05", d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z" }),
416
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#34A853", d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z" }),
603
+ /* @__PURE__ */ jsxRuntime.jsx(
604
+ "path",
605
+ {
606
+ fill: "#EA4335",
607
+ d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"
608
+ }
609
+ ),
610
+ /* @__PURE__ */ jsxRuntime.jsx(
611
+ "path",
612
+ {
613
+ fill: "#4285F4",
614
+ d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"
615
+ }
616
+ ),
617
+ /* @__PURE__ */ jsxRuntime.jsx(
618
+ "path",
619
+ {
620
+ fill: "#FBBC05",
621
+ d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"
622
+ }
623
+ ),
624
+ /* @__PURE__ */ jsxRuntime.jsx(
625
+ "path",
626
+ {
627
+ fill: "#34A853",
628
+ d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"
629
+ }
630
+ ),
417
631
  /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "none", d: "M0 0h48v48H0z" })
418
632
  ] }),
419
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Entrar com Google" })
633
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: t2("login.signInWithGoogle") })
420
634
  ]
421
635
  }
422
636
  ),
@@ -429,7 +643,7 @@ function LoginPage({ onLogin }) {
429
643
  onClick: () => handleSocialLogin(),
430
644
  children: [
431
645
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "w-5 h-5 mr-2 text-[var(--chart-4)]" }),
432
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Entrar com MT Login" })
646
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: t2("login.signInWithMTLogin") })
433
647
  ]
434
648
  }
435
649
  ),
@@ -440,10 +654,7 @@ function LoginPage({ onLogin }) {
440
654
  variant: "outline",
441
655
  className: "w-full justify-center font-normal",
442
656
  onClick: () => handleSocialLogin(),
443
- children: /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
444
- "Entrar com ",
445
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "font-semibold", children: "gov.br" })
446
- ] })
657
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: t2("login.signInWithGovBr") })
447
658
  }
448
659
  )
449
660
  ] })
@@ -453,11 +664,14 @@ function LoginPage({ onLogin }) {
453
664
  }
454
665
  function ResetPasswordPage() {
455
666
  const navigate = reactRouterDom.useNavigate();
667
+ const { t: t2 } = reactI18next.useTranslation();
456
668
  const [password, setPassword] = React.useState("");
457
669
  const [confirmPassword, setConfirmPassword] = React.useState("");
458
670
  const [isLoading, setIsLoading] = React.useState(false);
459
671
  const [error, setError] = React.useState("");
460
- const [passwordStrength, setPasswordStrength] = React.useState(null);
672
+ const [passwordStrength, setPasswordStrength] = React.useState(
673
+ null
674
+ );
461
675
  const checkPasswordStrength = (pwd) => {
462
676
  if (pwd.length === 0) {
463
677
  setPasswordStrength(null);
@@ -480,11 +694,11 @@ function ResetPasswordPage() {
480
694
  e.preventDefault();
481
695
  setError("");
482
696
  if (password.length < 6) {
483
- setError("A senha deve ter pelo menos 6 caracteres");
697
+ setError(t2("resetPassword.errorMinLength"));
484
698
  return;
485
699
  }
486
700
  if (password !== confirmPassword) {
487
- setError("As senhas não coincidem");
701
+ setError(t2("resetPassword.errorMismatch"));
488
702
  return;
489
703
  }
490
704
  setIsLoading(true);
@@ -507,11 +721,11 @@ function ResetPasswordPage() {
507
721
  const getStrengthText = () => {
508
722
  switch (passwordStrength) {
509
723
  case "weak":
510
- return "Senha fraca";
724
+ return t2("resetPassword.strengthWeak");
511
725
  case "medium":
512
- return "Senha média";
726
+ return t2("resetPassword.strengthMedium");
513
727
  case "strong":
514
- return "Senha forte";
728
+ return t2("resetPassword.strengthStrong");
515
729
  default:
516
730
  return "";
517
731
  }
@@ -522,7 +736,7 @@ function ResetPasswordPage() {
522
736
  alertDialog.ImageWithFallback,
523
737
  {
524
738
  src: "https://images.unsplash.com/photo-1555949963-aa79dcee981c?w=1200&h=800&fit=crop&auto=format",
525
- alt: "Segurança e proteção",
739
+ alt: t2("resetPassword.heroImageAlt"),
526
740
  className: "absolute inset-0 w-full h-full object-cover"
527
741
  }
528
742
  ),
@@ -539,7 +753,7 @@ function ResetPasswordPage() {
539
753
  className: "flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors",
540
754
  children: [
541
755
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "w-4 h-4" }),
542
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-small", children: "Voltar para o login" })
756
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-small", children: t2("resetPassword.backToLogin") })
543
757
  ]
544
758
  }
545
759
  ),
@@ -551,12 +765,12 @@ function ResetPasswordPage() {
551
765
  variant: "theme"
552
766
  }
553
767
  ) }),
554
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-muted-foreground", children: "Redefinir senha" }),
555
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: "Crie uma nova senha segura para sua conta" })
768
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-muted-foreground", children: t2("resetPassword.heading") }),
769
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: t2("resetPassword.subheading") })
556
770
  ] }),
557
771
  /* @__PURE__ */ jsxRuntime.jsxs("form", { className: "space-y-6", onSubmit: handleSubmit, children: [
558
772
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
559
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "password", children: "Nova senha" }),
773
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "password", children: t2("resetPassword.newPasswordLabel") }),
560
774
  /* @__PURE__ */ jsxRuntime.jsx(
561
775
  input.Input,
562
776
  {
@@ -581,7 +795,7 @@ function ResetPasswordPage() {
581
795
  ] })
582
796
  ] }),
583
797
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
584
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "confirmPassword", children: "Confirmar senha" }),
798
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "confirmPassword", children: t2("resetPassword.confirmPasswordLabel") }),
585
799
  /* @__PURE__ */ jsxRuntime.jsx(
586
800
  input.Input,
587
801
  {
@@ -600,7 +814,7 @@ function ResetPasswordPage() {
600
814
  )
601
815
  ] }),
602
816
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-accent rounded-[var(--radius)] p-4 space-y-2", children: [
603
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: "Requisitos de senha:" }),
817
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: t2("resetPassword.requirements") }),
604
818
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
605
819
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
606
820
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -609,7 +823,7 @@ function ResetPasswordPage() {
609
823
  className: `w-4 h-4 ${password.length >= 6 ? "text-[var(--chart-2)]" : "text-muted-foreground"}`
610
824
  }
611
825
  ),
612
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "Mínimo de 6 caracteres" })
826
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: t2("resetPassword.requirementMinChars") })
613
827
  ] }),
614
828
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
615
829
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -618,7 +832,7 @@ function ResetPasswordPage() {
618
832
  className: `w-4 h-4 ${password === confirmPassword && password.length > 0 ? "text-[var(--chart-2)]" : "text-muted-foreground"}`
619
833
  }
620
834
  ),
621
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "As senhas coincidem" })
835
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: t2("resetPassword.requirementMatch") })
622
836
  ] })
623
837
  ] })
624
838
  ] }),
@@ -626,15 +840,7 @@ function ResetPasswordPage() {
626
840
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "w-4 h-4 flex-shrink-0" }),
627
841
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: error })
628
842
  ] }),
629
- /* @__PURE__ */ jsxRuntime.jsx(
630
- button.Button,
631
- {
632
- type: "submit",
633
- className: "w-full",
634
- disabled: isLoading,
635
- children: isLoading ? "Redefinindo..." : "Redefinir senha"
636
- }
637
- )
843
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { type: "submit", className: "w-full", disabled: isLoading, children: isLoading ? t2("resetPassword.submitting") : t2("resetPassword.submit") })
638
844
  ] })
639
845
  ] })
640
846
  ] })
@@ -853,81 +1059,76 @@ function FilterableMapExample({ apiKey }) {
853
1059
  "absolute top-4 left-4 z-10 transition-all duration-300",
854
1060
  showFilters ? "translate-x-0" : "-translate-x-full"
855
1061
  ),
856
- children: /* @__PURE__ */ jsxRuntime.jsxs(
857
- "div",
858
- {
859
- className: "p-2.5 rounded-lg shadow-[var(--shadow-elevation-sm)] bg-card border border-border max-w-[220px]",
860
- children: [
861
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-2 gap-2", children: [
862
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
863
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Filter, { className: "w-3.5 h-3.5 text-foreground" }),
864
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground", children: "Filtros" })
865
- ] }),
1062
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2.5 rounded-lg shadow-[var(--shadow-elevation-sm)] bg-card border border-border max-w-[220px]", children: [
1063
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-2 gap-2", children: [
1064
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
1065
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Filter, { className: "w-3.5 h-3.5 text-foreground" }),
1066
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground", children: "Filtros" })
1067
+ ] }),
1068
+ /* @__PURE__ */ jsxRuntime.jsx(
1069
+ button.Button,
1070
+ {
1071
+ size: "sm",
1072
+ variant: "ghost",
1073
+ onClick: () => setShowFilters(false),
1074
+ className: "h-5 w-5 p-0",
1075
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-3 h-3" })
1076
+ }
1077
+ )
1078
+ ] }),
1079
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
1080
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2 py-0.5", children: [
1081
+ /* @__PURE__ */ jsxRuntime.jsx(
1082
+ alertDialog.Checkbox,
1083
+ {
1084
+ id: "filter-all",
1085
+ checked: activeFilters.size === Object.keys(markerGroups).length,
1086
+ onCheckedChange: toggleAll
1087
+ }
1088
+ ),
1089
+ /* @__PURE__ */ jsxRuntime.jsxs(
1090
+ alertDialog.Label,
1091
+ {
1092
+ htmlFor: "filter-all",
1093
+ className: "flex items-center gap-1.5 cursor-pointer text-sm",
1094
+ children: [
1095
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "w-3.5 h-3.5" }),
1096
+ "Todos",
1097
+ /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", className: "text-xs h-4 px-1", children: sampleLocations.length })
1098
+ ]
1099
+ }
1100
+ )
1101
+ ] }),
1102
+ Object.entries(markerGroups).map(([id, group]) => {
1103
+ const groupId = id;
1104
+ const Icon = group.icon;
1105
+ const isActive = activeFilters.has(groupId);
1106
+ const count = getGroupCount(groupId);
1107
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2 py-0.5", children: [
866
1108
  /* @__PURE__ */ jsxRuntime.jsx(
867
- button.Button,
1109
+ alertDialog.Checkbox,
868
1110
  {
869
- size: "sm",
870
- variant: "ghost",
871
- onClick: () => setShowFilters(false),
872
- className: "h-5 w-5 p-0",
873
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-3 h-3" })
1111
+ id: `filter-${id}`,
1112
+ checked: isActive,
1113
+ onCheckedChange: () => toggleFilter(groupId)
1114
+ }
1115
+ ),
1116
+ /* @__PURE__ */ jsxRuntime.jsxs(
1117
+ alertDialog.Label,
1118
+ {
1119
+ htmlFor: `filter-${id}`,
1120
+ className: "flex items-center gap-1.5 cursor-pointer text-sm",
1121
+ children: [
1122
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "w-3.5 h-3.5", style: { color: group.color } }),
1123
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: isActive ? "text-foreground" : "text-muted-foreground", children: group.name }),
1124
+ /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", className: "text-xs h-4 px-1", children: count })
1125
+ ]
874
1126
  }
875
1127
  )
876
- ] }),
877
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
878
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2 py-0.5", children: [
879
- /* @__PURE__ */ jsxRuntime.jsx(
880
- alertDialog.Checkbox,
881
- {
882
- id: "filter-all",
883
- checked: activeFilters.size === Object.keys(markerGroups).length,
884
- onCheckedChange: toggleAll
885
- }
886
- ),
887
- /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.Label, { htmlFor: "filter-all", className: "flex items-center gap-1.5 cursor-pointer text-sm", children: [
888
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "w-3.5 h-3.5" }),
889
- "Todos",
890
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", className: "text-xs h-4 px-1", children: sampleLocations.length })
891
- ] })
892
- ] }),
893
- Object.entries(markerGroups).map(([id, group]) => {
894
- const groupId = id;
895
- const Icon = group.icon;
896
- const isActive = activeFilters.has(groupId);
897
- const count = getGroupCount(groupId);
898
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2 py-0.5", children: [
899
- /* @__PURE__ */ jsxRuntime.jsx(
900
- alertDialog.Checkbox,
901
- {
902
- id: `filter-${id}`,
903
- checked: isActive,
904
- onCheckedChange: () => toggleFilter(groupId)
905
- }
906
- ),
907
- /* @__PURE__ */ jsxRuntime.jsxs(
908
- alertDialog.Label,
909
- {
910
- htmlFor: `filter-${id}`,
911
- className: "flex items-center gap-1.5 cursor-pointer text-sm",
912
- children: [
913
- /* @__PURE__ */ jsxRuntime.jsx(
914
- Icon,
915
- {
916
- className: "w-3.5 h-3.5",
917
- style: { color: group.color }
918
- }
919
- ),
920
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: isActive ? "text-foreground" : "text-muted-foreground", children: group.name }),
921
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", className: "text-xs h-4 px-1", children: count })
922
- ]
923
- }
924
- )
925
- ] }, id);
926
- })
927
- ] })
928
- ]
929
- }
930
- )
1128
+ ] }, id);
1129
+ })
1130
+ ] })
1131
+ ] })
931
1132
  }
932
1133
  ),
933
1134
  !showFilters && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -946,25 +1147,12 @@ function FilterableMapExample({ apiKey }) {
946
1147
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-3 justify-center pt-2 border-t border-border", children: Object.entries(markerGroups).map(([id, group]) => {
947
1148
  const Icon = group.icon;
948
1149
  const count = getGroupCount(id);
949
- return /* @__PURE__ */ jsxRuntime.jsxs(
950
- "div",
951
- {
952
- className: "flex items-center gap-2 px-3 py-1 rounded-lg bg-muted",
953
- children: [
954
- /* @__PURE__ */ jsxRuntime.jsx(
955
- "div",
956
- {
957
- className: "w-3 h-3 rounded-full",
958
- style: { backgroundColor: group.color }
959
- }
960
- ),
961
- /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "w-4 h-4", style: { color: group.color } }),
962
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", style: { color: "var(--foreground)" }, children: group.name }),
963
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", className: "text-xs h-5", children: count })
964
- ]
965
- },
966
- id
967
- );
1150
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 px-3 py-1 rounded-lg bg-muted", children: [
1151
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-3 h-3 rounded-full", style: { backgroundColor: group.color } }),
1152
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "w-4 h-4", style: { color: group.color } }),
1153
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", style: { color: "var(--foreground)" }, children: group.name }),
1154
+ /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", className: "text-xs h-5", children: count })
1155
+ ] }, id);
968
1156
  }) }),
969
1157
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-3", children: [
970
1158
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center p-3 rounded-lg bg-muted", children: [
@@ -1005,62 +1193,71 @@ function DrawingMapExample({ apiKey }) {
1005
1193
  editable: true,
1006
1194
  draggable: true
1007
1195
  };
1008
- const addMarker = React.useCallback((position) => {
1009
- if (!mapInstance) return;
1010
- const marker = new google.maps.marker.AdvancedMarkerElement({
1011
- position,
1012
- map: mapInstance,
1013
- gmpDraggable: true,
1014
- // Propriedade correta para AdvancedMarkerElement
1015
- title: "Marcador"
1016
- });
1017
- marker.addListener("dragend", () => {
1018
- sonner.toast.info("Posição do marcador atualizada");
1019
- });
1020
- const newShape = { type: "marker", overlay: marker };
1021
- setShapes((prev) => [...prev, newShape]);
1022
- sonner.toast.success("Marcador adicionado");
1023
- }, [mapInstance]);
1024
- const addCircle = React.useCallback((center) => {
1025
- if (!mapInstance) return;
1026
- const circle = new google.maps.Circle({
1027
- map: mapInstance,
1028
- center,
1029
- radius: 500,
1030
- fillColor: colors.fill,
1031
- fillOpacity: colors.fillOpacity,
1032
- strokeColor: colors.stroke,
1033
- strokeWeight: colors.strokeWeight,
1034
- editable: true,
1035
- draggable: true
1036
- });
1037
- const newShape = { type: "circle", overlay: circle };
1038
- setShapes((prev) => [...prev, newShape]);
1039
- sonner.toast.success("Círculo adicionado");
1040
- }, [mapInstance, colors]);
1041
- const addRectangle = React.useCallback((center) => {
1042
- if (!mapInstance) return;
1043
- const offset = 5e-3;
1044
- const bounds = {
1045
- north: center.lat() + offset,
1046
- south: center.lat() - offset,
1047
- east: center.lng() + offset,
1048
- west: center.lng() - offset
1049
- };
1050
- const rectangle = new google.maps.Rectangle({
1051
- map: mapInstance,
1052
- bounds,
1053
- fillColor: colors.fill,
1054
- fillOpacity: colors.fillOpacity,
1055
- strokeColor: colors.stroke,
1056
- strokeWeight: colors.strokeWeight,
1057
- editable: true,
1058
- draggable: true
1059
- });
1060
- const newShape = { type: "rectangle", overlay: rectangle };
1061
- setShapes((prev) => [...prev, newShape]);
1062
- sonner.toast.success("Retângulo adicionado");
1063
- }, [mapInstance, colors]);
1196
+ const addMarker = React.useCallback(
1197
+ (position) => {
1198
+ if (!mapInstance) return;
1199
+ const marker = new google.maps.marker.AdvancedMarkerElement({
1200
+ position,
1201
+ map: mapInstance,
1202
+ gmpDraggable: true,
1203
+ // Propriedade correta para AdvancedMarkerElement
1204
+ title: "Marcador"
1205
+ });
1206
+ marker.addListener("dragend", () => {
1207
+ sonner.toast.info("Posição do marcador atualizada");
1208
+ });
1209
+ const newShape = { type: "marker", overlay: marker };
1210
+ setShapes((prev) => [...prev, newShape]);
1211
+ sonner.toast.success("Marcador adicionado");
1212
+ },
1213
+ [mapInstance]
1214
+ );
1215
+ const addCircle = React.useCallback(
1216
+ (center) => {
1217
+ if (!mapInstance) return;
1218
+ const circle = new google.maps.Circle({
1219
+ map: mapInstance,
1220
+ center,
1221
+ radius: 500,
1222
+ fillColor: colors.fill,
1223
+ fillOpacity: colors.fillOpacity,
1224
+ strokeColor: colors.stroke,
1225
+ strokeWeight: colors.strokeWeight,
1226
+ editable: true,
1227
+ draggable: true
1228
+ });
1229
+ const newShape = { type: "circle", overlay: circle };
1230
+ setShapes((prev) => [...prev, newShape]);
1231
+ sonner.toast.success("Círculo adicionado");
1232
+ },
1233
+ [mapInstance, colors]
1234
+ );
1235
+ const addRectangle = React.useCallback(
1236
+ (center) => {
1237
+ if (!mapInstance) return;
1238
+ const offset = 5e-3;
1239
+ const bounds = {
1240
+ north: center.lat() + offset,
1241
+ south: center.lat() - offset,
1242
+ east: center.lng() + offset,
1243
+ west: center.lng() - offset
1244
+ };
1245
+ const rectangle = new google.maps.Rectangle({
1246
+ map: mapInstance,
1247
+ bounds,
1248
+ fillColor: colors.fill,
1249
+ fillOpacity: colors.fillOpacity,
1250
+ strokeColor: colors.stroke,
1251
+ strokeWeight: colors.strokeWeight,
1252
+ editable: true,
1253
+ draggable: true
1254
+ });
1255
+ const newShape = { type: "rectangle", overlay: rectangle };
1256
+ setShapes((prev) => [...prev, newShape]);
1257
+ sonner.toast.success("Retângulo adicionado");
1258
+ },
1259
+ [mapInstance, colors]
1260
+ );
1064
1261
  const cancelPolygonDrawing = React.useCallback(() => {
1065
1262
  if (tempPolylineRef.current) {
1066
1263
  tempPolylineRef.current.setMap(null);
@@ -1091,28 +1288,33 @@ function DrawingMapExample({ apiKey }) {
1091
1288
  cancelPolygonDrawing();
1092
1289
  sonner.toast.success("Polígono criado com sucesso!");
1093
1290
  }, [mapInstance, colors, cancelPolygonDrawing]);
1094
- const addPolygonPoint = React.useCallback((point) => {
1095
- var _a;
1096
- if (!mapInstance) return;
1097
- if (!isDrawingPolygon) {
1098
- setIsDrawingPolygon(true);
1099
- polygonPathRef.current = [point];
1100
- tempPolylineRef.current = new google.maps.Polyline({
1101
- map: mapInstance,
1102
- path: polygonPathRef.current,
1103
- strokeColor: colors.stroke,
1104
- strokeOpacity: 0.8,
1105
- strokeWeight: 2,
1106
- geodesic: true,
1107
- clickable: false
1108
- // Importante: não capturar cliques para não atrapalhar o mapa
1109
- });
1110
- sonner.toast.info("Clique para adicionar pontos. Duplo clique ou botão check para fechar.", { duration: 4e3 });
1111
- } else {
1112
- polygonPathRef.current.push(point);
1113
- (_a = tempPolylineRef.current) == null ? void 0 : _a.setPath(polygonPathRef.current);
1114
- }
1115
- }, [mapInstance, isDrawingPolygon, colors]);
1291
+ const addPolygonPoint = React.useCallback(
1292
+ (point) => {
1293
+ var _a;
1294
+ if (!mapInstance) return;
1295
+ if (!isDrawingPolygon) {
1296
+ setIsDrawingPolygon(true);
1297
+ polygonPathRef.current = [point];
1298
+ tempPolylineRef.current = new google.maps.Polyline({
1299
+ map: mapInstance,
1300
+ path: polygonPathRef.current,
1301
+ strokeColor: colors.stroke,
1302
+ strokeOpacity: 0.8,
1303
+ strokeWeight: 2,
1304
+ geodesic: true,
1305
+ clickable: false
1306
+ // Importante: não capturar cliques para não atrapalhar o mapa
1307
+ });
1308
+ sonner.toast.info("Clique para adicionar pontos. Duplo clique ou botão check para fechar.", {
1309
+ duration: 4e3
1310
+ });
1311
+ } else {
1312
+ polygonPathRef.current.push(point);
1313
+ (_a = tempPolylineRef.current) == null ? void 0 : _a.setPath(polygonPathRef.current);
1314
+ }
1315
+ },
1316
+ [mapInstance, isDrawingPolygon, colors]
1317
+ );
1116
1318
  const clearListeners = () => {
1117
1319
  mapListenersRef.current.forEach((listener) => google.maps.event.removeListener(listener));
1118
1320
  mapListenersRef.current = [];
@@ -1156,7 +1358,15 @@ function DrawingMapExample({ apiKey }) {
1156
1358
  return () => {
1157
1359
  clearListeners();
1158
1360
  };
1159
- }, [mapInstance, selectedMode, addMarker, addCircle, addRectangle, addPolygonPoint, finishPolygon]);
1361
+ }, [
1362
+ mapInstance,
1363
+ selectedMode,
1364
+ addMarker,
1365
+ addCircle,
1366
+ addRectangle,
1367
+ addPolygonPoint,
1368
+ finishPolygon
1369
+ ]);
1160
1370
  const handleModeChange = (mode) => {
1161
1371
  if (isDrawingPolygon) {
1162
1372
  cancelPolygonDrawing();
@@ -1248,11 +1458,11 @@ function DrawingMapExample({ apiKey }) {
1248
1458
  ]
1249
1459
  }
1250
1460
  );
1251
- return /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { className: "h-full border-0 shadow-none md:border md:shadow-sm", children: [
1252
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardHeader, { className: "border-b bg-muted/20 pb-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1461
+ return /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { className: "h-full border-0 shadow-none md:border md:shadow-sm", children: [
1462
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardHeader, { className: "border-b bg-muted/20 pb-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1253
1463
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1254
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Ferramentas de Desenho" }),
1255
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { className: "mt-1", children: "Crie geometrias personalizadas no mapa" })
1464
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Ferramentas de Desenho" }),
1465
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { className: "mt-1", children: "Crie geometrias personalizadas no mapa" })
1256
1466
  ] }),
1257
1467
  /* @__PURE__ */ jsxRuntime.jsxs(progress.Badge, { variant: "outline", className: "h-6", children: [
1258
1468
  shapes.length,
@@ -1260,7 +1470,7 @@ function DrawingMapExample({ apiKey }) {
1260
1470
  shapes.length === 1 ? "elemento" : "elementos"
1261
1471
  ] })
1262
1472
  ] }) }),
1263
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "p-0 flex flex-col md:flex-row h-[600px] bg-background", children: [
1473
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "p-0 flex flex-col md:flex-row h-[600px] bg-background", children: [
1264
1474
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full md:w-64 border-b md:border-b-0 md:border-r bg-muted/10 flex flex-col", children: [
1265
1475
  /* @__PURE__ */ jsxRuntime.jsx(input.ScrollArea, { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 space-y-6", children: [
1266
1476
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
@@ -1425,7 +1635,14 @@ function DrawingMapExample({ apiKey }) {
1425
1635
  /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.DialogTitle, { children: "Dados Geográficos (GeoJSON)" }),
1426
1636
  /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.DialogDescription, { children: "Copie os dados das formas desenhadas abaixo." })
1427
1637
  ] }),
1428
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mt-2", children: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "p-4 rounded-lg bg-muted overflow-auto max-h-[300px] text-xs font-mono", "data-custom-scrollbar": true, children: savedData }) }),
1638
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
1639
+ "pre",
1640
+ {
1641
+ className: "p-4 rounded-lg bg-muted overflow-auto max-h-[300px] text-xs font-mono",
1642
+ "data-custom-scrollbar": true,
1643
+ children: savedData
1644
+ }
1645
+ ) }),
1429
1646
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end mt-4", children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { onClick: () => setShowSaveDialog(false), children: "Fechar" }) })
1430
1647
  ] }) })
1431
1648
  ] })
@@ -1460,12 +1677,12 @@ function MapShowcase() {
1460
1677
  actions: /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { children: "Design System" })
1461
1678
  }
1462
1679
  ),
1463
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1464
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1465
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Configuração da API Key" }),
1466
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Insira sua Google Maps API Key para renderizar os mapas abaixo." })
1680
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1681
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1682
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Configuração da API Key" }),
1683
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Insira sua Google Maps API Key para renderizar os mapas abaixo." })
1467
1684
  ] }),
1468
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-md items-center space-x-2", children: [
1685
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-md items-center space-x-2", children: [
1469
1686
  /* @__PURE__ */ jsxRuntime.jsx(
1470
1687
  input.Input,
1471
1688
  {
@@ -1491,12 +1708,12 @@ function MapShowcase() {
1491
1708
  ] })
1492
1709
  ] }),
1493
1710
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "simple", className: "space-y-8", children: !isTransitioning && activeTab === "simple" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1494
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1495
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1496
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Mapa Padrão" }),
1497
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Configuração básica do mapa centralizado em uma coordenada específica." })
1711
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1712
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1713
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Mapa Padrão" }),
1714
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Configuração básica do mapa centralizado em uma coordenada específica." })
1498
1715
  ] }),
1499
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1716
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1500
1717
  alertDialog.Map,
1501
1718
  {
1502
1719
  center: { lat: -23.5505, lng: -46.6333 },
@@ -1506,36 +1723,22 @@ function MapShowcase() {
1506
1723
  }
1507
1724
  ) })
1508
1725
  ] }),
1509
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1510
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1511
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Camadas (Layers)" }),
1512
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Sobreposição de informações como tráfego, transporte público e ciclovias." })
1726
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1727
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1728
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Camadas (Layers)" }),
1729
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Sobreposição de informações como tráfego, transporte público e ciclovias." })
1513
1730
  ] }),
1514
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-4", children: [
1731
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-4", children: [
1515
1732
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-6 p-4 border rounded-lg bg-muted/50", children: [
1516
1733
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1517
- /* @__PURE__ */ jsxRuntime.jsx(
1518
- alertDialog.Switch,
1519
- {
1520
- id: "traffic",
1521
- checked: showTraffic,
1522
- onCheckedChange: setShowTraffic
1523
- }
1524
- ),
1734
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "traffic", checked: showTraffic, onCheckedChange: setShowTraffic }),
1525
1735
  /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.Label, { htmlFor: "traffic", className: "flex items-center gap-2", children: [
1526
1736
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Layers, { className: "w-4 h-4" }),
1527
1737
  " Trânsito"
1528
1738
  ] })
1529
1739
  ] }),
1530
1740
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1531
- /* @__PURE__ */ jsxRuntime.jsx(
1532
- alertDialog.Switch,
1533
- {
1534
- id: "transit",
1535
- checked: showTransit,
1536
- onCheckedChange: setShowTransit
1537
- }
1538
- ),
1741
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "transit", checked: showTransit, onCheckedChange: setShowTransit }),
1539
1742
  /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.Label, { htmlFor: "transit", className: "flex items-center gap-2", children: [
1540
1743
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Layers, { className: "w-4 h-4" }),
1541
1744
  " Transporte"
@@ -1573,9 +1776,9 @@ function MapShowcase() {
1573
1776
  ] })
1574
1777
  ] }),
1575
1778
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid md:grid-cols-3 gap-4", children: [
1576
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1577
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardHeader, { className: "p-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { className: "text-sm", children: "São Paulo" }) }),
1578
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { className: "p-4 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1779
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1780
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardHeader, { className: "p-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { className: "text-sm", children: "São Paulo" }) }),
1781
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { className: "p-4 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1579
1782
  alertDialog.Map,
1580
1783
  {
1581
1784
  center: { lat: -23.5505, lng: -46.6333 },
@@ -1586,9 +1789,9 @@ function MapShowcase() {
1586
1789
  }
1587
1790
  ) })
1588
1791
  ] }),
1589
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1590
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardHeader, { className: "p-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { className: "text-sm", children: "Rio de Janeiro" }) }),
1591
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { className: "p-4 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1792
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1793
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardHeader, { className: "p-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { className: "text-sm", children: "Rio de Janeiro" }) }),
1794
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { className: "p-4 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1592
1795
  alertDialog.Map,
1593
1796
  {
1594
1797
  center: { lat: -22.9068, lng: -43.1729 },
@@ -1599,9 +1802,9 @@ function MapShowcase() {
1599
1802
  }
1600
1803
  ) })
1601
1804
  ] }),
1602
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1603
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardHeader, { className: "p-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { className: "text-sm", children: "New York" }) }),
1604
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { className: "p-4 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1805
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1806
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardHeader, { className: "p-4 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { className: "text-sm", children: "New York" }) }),
1807
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { className: "p-4 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1605
1808
  alertDialog.Map,
1606
1809
  {
1607
1810
  center: { lat: 40.7128, lng: -74.006 },
@@ -1615,12 +1818,12 @@ function MapShowcase() {
1615
1818
  ] })
1616
1819
  ] }) }),
1617
1820
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "markers", className: "space-y-8", children: !isTransitioning && activeTab === "markers" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1618
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1619
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1620
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Marcadores e Pins" }),
1621
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Exemplos de marcadores personalizados com diferentes cores e informações." })
1821
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1822
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1823
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Marcadores e Pins" }),
1824
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Exemplos de marcadores personalizados com diferentes cores e informações." })
1622
1825
  ] }),
1623
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1826
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1624
1827
  alertDialog.Map,
1625
1828
  {
1626
1829
  center: { lat: -23.5505, lng: -46.6333 },
@@ -1652,12 +1855,12 @@ function MapShowcase() {
1652
1855
  }
1653
1856
  ) })
1654
1857
  ] }),
1655
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1656
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1657
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Marcador com Ações" }),
1658
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Marcador interativo que exibe conteúdo rico (texto, imagem, botões) ao ser clicado." })
1858
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1859
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1860
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Marcador com Ações" }),
1861
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Marcador interativo que exibe conteúdo rico (texto, imagem, botões) ao ser clicado." })
1659
1862
  ] }),
1660
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1863
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1661
1864
  alertDialog.Map,
1662
1865
  {
1663
1866
  center: { lat: -23.5505, lng: -46.6333 },
@@ -1680,7 +1883,15 @@ function MapShowcase() {
1680
1883
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-3 leading-relaxed", children: "Sede principal em São Paulo. Espaço moderno para reuniões e eventos." }),
1681
1884
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
1682
1885
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { size: "sm", className: "w-full h-8 text-xs shadow-sm", children: "Navegar" }),
1683
- /* @__PURE__ */ jsxRuntime.jsx(button.Button, { size: "sm", variant: "outline", className: "w-full h-8 text-xs bg-background", children: "Detalhes" })
1886
+ /* @__PURE__ */ jsxRuntime.jsx(
1887
+ button.Button,
1888
+ {
1889
+ size: "sm",
1890
+ variant: "outline",
1891
+ className: "w-full h-8 text-xs bg-background",
1892
+ children: "Detalhes"
1893
+ }
1894
+ )
1684
1895
  ] })
1685
1896
  ] })
1686
1897
  }
@@ -1688,12 +1899,12 @@ function MapShowcase() {
1688
1899
  }
1689
1900
  ) })
1690
1901
  ] }),
1691
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1692
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1693
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Áreas e Zonas" }),
1694
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Delimitação de áreas geográficas usando círculos e polígonos." })
1902
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1903
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1904
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Áreas e Zonas" }),
1905
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Delimitação de áreas geográficas usando círculos e polígonos." })
1695
1906
  ] }),
1696
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1907
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(
1697
1908
  alertDialog.Map,
1698
1909
  {
1699
1910
  center: { lat: -23.5505, lng: -46.6333 },
@@ -1731,12 +1942,12 @@ function MapShowcase() {
1731
1942
  ] })
1732
1943
  ] }) }),
1733
1944
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "controls", className: "space-y-8", children: !isTransitioning && activeTab === "controls" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1734
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1735
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1736
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Controles do Mapa" }),
1737
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Personalize a interface do mapa ativando ou desativando controles nativos." })
1945
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
1946
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
1947
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Controles do Mapa" }),
1948
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Personalize a interface do mapa ativando ou desativando controles nativos." })
1738
1949
  ] }),
1739
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-4", children: [
1950
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-4", children: [
1740
1951
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 p-4 border rounded-lg bg-muted/50", children: [
1741
1952
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1742
1953
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1798,12 +2009,12 @@ function MapShowcase() {
1798
2009
  )
1799
2010
  ] })
1800
2011
  ] }),
1801
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1802
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1803
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Filtros Interativos" }),
1804
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Exemplo avançado de mapa com controles customizados para filtragem de marcadores." })
2012
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2013
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2014
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Filtros Interativos" }),
2015
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Exemplo avançado de mapa com controles customizados para filtragem de marcadores." })
1805
2016
  ] }),
1806
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(FilterableMapExample, { apiKey }) })
2017
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(FilterableMapExample, { apiKey }) })
1807
2018
  ] })
1808
2019
  ] }) }),
1809
2020
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "drawing", className: "space-y-8", children: !isTransitioning && activeTab === "drawing" && /* @__PURE__ */ jsxRuntime.jsx(DrawingMapExample, { apiKey }) })
@@ -1832,7 +2043,8 @@ function MapShowcase() {
1832
2043
  ] })
1833
2044
  ] });
1834
2045
  }
1835
- function TemplateContent({ user, onLogout, onSettings }) {
2046
+ function TemplateContent() {
2047
+ const { t: t2 } = reactI18next.useTranslation();
1836
2048
  const layout = LayoutContext.useOptionalLayout();
1837
2049
  const [localSidebarExpanded, setLocalSidebarExpanded] = React.useState(false);
1838
2050
  const [localSidebarWidth, setLocalSidebarWidth] = React.useState(280);
@@ -1841,9 +2053,13 @@ function TemplateContent({ user, onLogout, onSettings }) {
1841
2053
  const setSidebarWidth = (layout == null ? void 0 : layout.setSidebarWidth) ?? setLocalSidebarWidth;
1842
2054
  (layout == null ? void 0 : layout.toggleSidebar) ?? (() => setLocalSidebarExpanded((value) => !value));
1843
2055
  reactRouterDom.useNavigate();
1844
- const [progress$1, setProgress] = React.useState(45);
1845
- const [sliderValue, setSliderValue] = React.useState([50]);
1846
- const [switchEnabled, setSwitchEnabled] = React.useState(false);
2056
+ const { data: teamMembers = [], isLoading: teamLoading } = useTeamMembers();
2057
+ const progress$1 = useDashboardStore((s) => s.progress);
2058
+ const setProgress = useDashboardStore((s) => s.setProgress);
2059
+ const sliderValue = useDashboardStore((s) => s.sliderValue);
2060
+ const setSliderValue = useDashboardStore((s) => s.setSliderValue);
2061
+ const switchEnabled = useDashboardStore((s) => s.switchEnabled);
2062
+ const toggleSwitch = useDashboardStore((s) => s.toggleSwitch);
1847
2063
  const [showSidebarUser, setShowSidebarUser] = React.useState(true);
1848
2064
  const [showSidebarSettings, setShowSidebarSettings] = React.useState(true);
1849
2065
  const [showSidebarLogout, setShowSidebarLogout] = React.useState(true);
@@ -1883,12 +2099,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
1883
2099
  ),
1884
2100
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
1885
2101
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4", children: "Header with Breadcrumbs" }),
1886
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1887
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1888
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Main Header" }),
1889
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Example of Header with 4-level breadcrumbs" })
2102
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2103
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2104
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Main Header" }),
2105
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Example of Header with 4-level breadcrumbs" })
1890
2106
  ] }),
1891
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "p-0 border-t bg-background overflow-hidden rounded-b-[var(--radius-lg)]", children: [
2107
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "p-0 border-t bg-background overflow-hidden rounded-b-[var(--radius-lg)]", children: [
1892
2108
  /* @__PURE__ */ jsxRuntime.jsx(
1893
2109
  sidebar.Header,
1894
2110
  {
@@ -1948,43 +2164,43 @@ function TemplateContent({ user, onLogout, onSettings }) {
1948
2164
  ] }),
1949
2165
  /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.TabsContent, { value: "overview", className: "space-y-4", children: [
1950
2166
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4 md:grid-cols-3", children: [
1951
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1952
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1953
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Total de Usuários" }),
1954
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Últimos 30 dias" })
2167
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2168
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2169
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Total de Usuários" }),
2170
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Últimos 30 dias" })
1955
2171
  ] }),
1956
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-foreground", children: [
2172
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-foreground", children: [
1957
2173
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "[font-size:var(--text-stats)] [font-weight:var(--font-weight-bold)]", children: "1,234" }),
1958
2174
  /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "default", className: "ml-2", children: "+12%" })
1959
2175
  ] }) })
1960
2176
  ] }),
1961
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1962
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1963
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Receita Total" }),
1964
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Mês atual" })
2177
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2178
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2179
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Receita Total" }),
2180
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Mês atual" })
1965
2181
  ] }),
1966
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-foreground", children: [
2182
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-foreground", children: [
1967
2183
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "[font-size:var(--text-stats)] [font-weight:var(--font-weight-bold)]", children: "$ 45.2k" }),
1968
2184
  /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", className: "ml-2", children: "+8%" })
1969
2185
  ] }) })
1970
2186
  ] }),
1971
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1972
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1973
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Taxa de Conversão" }),
1974
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Semana atual" })
2187
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2188
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2189
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Taxa de Conversão" }),
2190
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Semana atual" })
1975
2191
  ] }),
1976
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-foreground", children: [
2192
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-foreground", children: [
1977
2193
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "[font-size:var(--text-stats)] [font-weight:var(--font-weight-bold)]", children: "3.2%" }),
1978
2194
  /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", className: "ml-2", children: "-2%" })
1979
2195
  ] }) })
1980
2196
  ] })
1981
2197
  ] }),
1982
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
1983
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
1984
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Progresso & Sliders" }),
1985
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Exemplo de componentes de progresso" })
2198
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2199
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2200
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Progresso & Sliders" }),
2201
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Exemplo de componentes de progresso" })
1986
2202
  ] }),
1987
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-6", children: [
2203
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-6", children: [
1988
2204
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1989
2205
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1990
2206
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { children: "Progresso do Projeto" }),
@@ -1995,8 +2211,22 @@ function TemplateContent({ user, onLogout, onSettings }) {
1995
2211
  ] }),
1996
2212
  /* @__PURE__ */ jsxRuntime.jsx(progress.Progress, { value: progress$1, className: "w-full" }),
1997
2213
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
1998
- /* @__PURE__ */ jsxRuntime.jsx(button.Button, { size: "sm", onClick: () => setProgress(Math.max(0, progress$1 - 10)), children: "-10%" }),
1999
- /* @__PURE__ */ jsxRuntime.jsx(button.Button, { size: "sm", onClick: () => setProgress(Math.min(100, progress$1 + 10)), children: "+10%" })
2214
+ /* @__PURE__ */ jsxRuntime.jsx(
2215
+ button.Button,
2216
+ {
2217
+ size: "sm",
2218
+ onClick: () => setProgress(Math.max(0, progress$1 - 10)),
2219
+ children: "-10%"
2220
+ }
2221
+ ),
2222
+ /* @__PURE__ */ jsxRuntime.jsx(
2223
+ button.Button,
2224
+ {
2225
+ size: "sm",
2226
+ onClick: () => setProgress(Math.min(100, progress$1 + 10)),
2227
+ children: "+10%"
2228
+ }
2229
+ )
2000
2230
  ] })
2001
2231
  ] }),
2002
2232
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, {}),
@@ -2024,12 +2254,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
2024
2254
  ] })
2025
2255
  ] })
2026
2256
  ] }),
2027
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "forms", className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2028
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2029
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Formulário de Cadastro" }),
2030
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Preencha os campos abaixo para criar uma nova conta" })
2257
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "forms", className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2258
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2259
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Formulário de Cadastro" }),
2260
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Preencha os campos abaixo para criar uma nova conta" })
2031
2261
  ] }),
2032
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleFormSubmit, className: "space-y-4", children: [
2262
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleFormSubmit, className: "space-y-4", children: [
2033
2263
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4 md:grid-cols-2", children: [
2034
2264
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2035
2265
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "firstName", children: "Nome" }),
@@ -2044,14 +2274,30 @@ function TemplateContent({ user, onLogout, onSettings }) {
2044
2274
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "email", children: "E-mail" }),
2045
2275
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2046
2276
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "absolute left-3 top-3 h-4 w-4 text-muted-foreground" }),
2047
- /* @__PURE__ */ jsxRuntime.jsx(input.Input, { id: "email", type: "email", placeholder: "john@example.com", className: "pl-10" })
2277
+ /* @__PURE__ */ jsxRuntime.jsx(
2278
+ input.Input,
2279
+ {
2280
+ id: "email",
2281
+ type: "email",
2282
+ placeholder: "john@example.com",
2283
+ className: "pl-10"
2284
+ }
2285
+ )
2048
2286
  ] })
2049
2287
  ] }),
2050
2288
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2051
2289
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "phone", children: "Telefone" }),
2052
2290
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2053
2291
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "absolute left-3 top-3 h-4 w-4 text-muted-foreground" }),
2054
- /* @__PURE__ */ jsxRuntime.jsx(input.Input, { id: "phone", type: "tel", placeholder: "(11) 99999-9999", className: "pl-10" })
2292
+ /* @__PURE__ */ jsxRuntime.jsx(
2293
+ input.Input,
2294
+ {
2295
+ id: "phone",
2296
+ type: "tel",
2297
+ placeholder: "(11) 99999-9999",
2298
+ className: "pl-10"
2299
+ }
2300
+ )
2055
2301
  ] })
2056
2302
  ] }),
2057
2303
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
@@ -2114,17 +2360,17 @@ function TemplateContent({ user, onLogout, onSettings }) {
2114
2360
  ] })
2115
2361
  ] })
2116
2362
  ] }) }),
2117
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardFooter, { className: "flex justify-between", children: [
2363
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardFooter, { className: "flex justify-between", children: [
2118
2364
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", children: "Cancelar" }),
2119
2365
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { onClick: handleFormSubmit, children: "Criar Conta" })
2120
2366
  ] })
2121
2367
  ] }) }),
2122
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "data", className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2123
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2124
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Lista de Usuários" }),
2125
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Gerenciar usuários do sistema" })
2368
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "data", className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(SectionErrorBoundary, { children: /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2369
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2370
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Lista de Usuários" }),
2371
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Gerenciar usuários do sistema" })
2126
2372
  ] }),
2127
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { children: [
2373
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { children: [
2128
2374
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2129
2375
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-3 h-4 w-4 text-muted-foreground" }),
2130
2376
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2138,64 +2384,63 @@ function TemplateContent({ user, onLogout, onSettings }) {
2138
2384
  ] }) }),
2139
2385
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-[var(--radius-lg)] border border-border overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.Table, { children: [
2140
2386
  /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2141
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: "Name" }),
2142
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: "Email" }),
2143
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: "Role" }),
2144
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: "Status" }),
2145
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { className: "text-right", children: "Actions" })
2387
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: t2("team.name") }),
2388
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: t2("team.email") }),
2389
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: t2("team.role") }),
2390
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { children: t2("team.status") }),
2391
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableHead, { className: "text-right", children: t2("team.actions") })
2146
2392
  ] }) }),
2147
- /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableBody, { children: [
2148
- /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2149
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Ana Silva" }),
2150
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "ana.silva@example.com" }),
2151
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Developer" }),
2152
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "default", children: "Active" }) }),
2153
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "sm", children: "Edit" }) })
2154
- ] }),
2155
- /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2156
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Bruno Costa" }),
2157
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "bruno.costa@example.com" }),
2158
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Designer" }),
2159
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "default", children: "Active" }) }),
2160
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "sm", children: "Edit" }) })
2161
- ] }),
2162
- /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2163
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Carla Oliveira" }),
2164
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "carla.oliveira@example.com" }),
2165
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Manager" }),
2166
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", children: "Away" }) }),
2167
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "sm", children: "Edit" }) })
2168
- ] }),
2169
- /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2170
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Diego Santos" }),
2171
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "diego.santos@example.com" }),
2172
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: "Analyst" }),
2173
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", children: "Inactive" }) }),
2174
- /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "sm", children: "Edit" }) })
2175
- ] })
2176
- ] })
2393
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableBody, { children: teamLoading ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2394
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2395
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "size-8 rounded-full shrink-0" }),
2396
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3.5 w-28" })
2397
+ ] }) }),
2398
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3.5 w-36" }) }),
2399
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-3.5 w-20" }) }),
2400
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-5 w-16 rounded-full" }) }),
2401
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-7 w-14 ml-auto" }) })
2402
+ ] }, i)) }) : teamMembers.map((member) => /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.TableRow, { children: [
2403
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: member.name }),
2404
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: member.email }),
2405
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: t2(`team.roles.${member.role}`) }),
2406
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(
2407
+ progress.Badge,
2408
+ {
2409
+ variant: member.status === "active" ? "default" : member.status === "away" ? "secondary" : "outline",
2410
+ children: t2(`common.${member.status}`)
2411
+ }
2412
+ ) }),
2413
+ /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "sm", children: t2("common.edit") }) })
2414
+ ] }, member.id)) })
2177
2415
  ] }) })
2178
2416
  ] }),
2179
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardFooter, { className: "flex justify-between items-center", children: [
2180
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: "Showing 4 of 127 users" }),
2417
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardFooter, { className: "flex justify-between items-center", children: [
2418
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: t2("team.showing", { count: teamMembers.length, total: teamMembers.length }) }),
2181
2419
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
2182
2420
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", size: "sm", children: "Previous" }),
2183
2421
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", size: "sm", children: "Next" })
2184
2422
  ] })
2185
2423
  ] })
2186
- ] }) }),
2187
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "settings", className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2188
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2189
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Configurações do Sistema" }),
2190
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Gerenciar configurações gerais" })
2424
+ ] }) }) }),
2425
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "settings", className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2426
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2427
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Configurações do Sistema" }),
2428
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Gerenciar configurações gerais" })
2191
2429
  ] }),
2192
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-6", children: [
2430
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-6", children: [
2193
2431
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
2194
2432
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
2195
2433
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "dark-mode", children: "Dark Mode" }),
2196
2434
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: "Enable dark theme in the interface" })
2197
2435
  ] }),
2198
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "dark-mode", checked: switchEnabled, onCheckedChange: setSwitchEnabled })
2436
+ /* @__PURE__ */ jsxRuntime.jsx(
2437
+ alertDialog.Switch,
2438
+ {
2439
+ id: "dark-mode",
2440
+ checked: switchEnabled,
2441
+ onCheckedChange: toggleSwitch
2442
+ }
2443
+ )
2199
2444
  ] }),
2200
2445
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, {}),
2201
2446
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
@@ -2238,7 +2483,7 @@ function TemplateContent({ user, onLogout, onSettings }) {
2238
2483
  ] })
2239
2484
  ] })
2240
2485
  ] }),
2241
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardFooter, { className: "flex justify-between", children: [
2486
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardFooter, { className: "flex justify-between", children: [
2242
2487
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", children: "Restaurar Padrões" }),
2243
2488
  /* @__PURE__ */ jsxRuntime.jsx(button.Button, { children: "Salvar Alterações" })
2244
2489
  ] })
@@ -2248,12 +2493,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
2248
2493
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, { className: "my-8" }),
2249
2494
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2250
2495
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4", children: "Botões" }),
2251
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2252
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2253
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Variações de Botão" }),
2254
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Diferentes estilos e tamanhos de botões" })
2496
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2497
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2498
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Variações de Botão" }),
2499
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Diferentes estilos e tamanhos de botões" })
2255
2500
  ] }),
2256
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-6", children: [
2501
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-6", children: [
2257
2502
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2258
2503
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { children: "Variants" }),
2259
2504
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-3", children: [
@@ -2307,12 +2552,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
2307
2552
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, { className: "my-8" }),
2308
2553
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2309
2554
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4", children: "Badges" }),
2310
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2311
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2312
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Variações de Badge" }),
2313
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Estilos diferentes de badge para status e tags" })
2555
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2556
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2557
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Variações de Badge" }),
2558
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Estilos diferentes de badge para status e tags" })
2314
2559
  ] }),
2315
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-3", children: [
2560
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-3", children: [
2316
2561
  /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "default", children: "Padrão" }),
2317
2562
  /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "secondary", children: "Secundário" }),
2318
2563
  /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", children: "Contorno" }),
@@ -2327,12 +2572,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
2327
2572
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2328
2573
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4", children: "Diálogos" }),
2329
2574
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4 md:grid-cols-2", children: [
2330
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2331
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2332
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Diálogo" }),
2333
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Um modal interativo básico" })
2575
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2576
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2577
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Diálogo" }),
2578
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Um modal interativo básico" })
2334
2579
  ] }),
2335
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { className: "flex justify-center py-6", children: /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.Dialog, { children: [
2580
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { className: "flex justify-center py-6", children: /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.Dialog, { children: [
2336
2581
  /* @__PURE__ */ jsxRuntime.jsx(richTextEditor.DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", children: "Editar Perfil" }) }),
2337
2582
  /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.DialogContent, { className: "sm:max-w-[425px]", children: [
2338
2583
  /* @__PURE__ */ jsxRuntime.jsxs(richTextEditor.DialogHeader, { children: [
@@ -2353,12 +2598,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
2353
2598
  ] })
2354
2599
  ] }) })
2355
2600
  ] }),
2356
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2357
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2358
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Alerta de Diálogo" }),
2359
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Um alerta para decisões importantes" })
2601
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2602
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2603
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Alerta de Diálogo" }),
2604
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Um alerta para decisões importantes" })
2360
2605
  ] }),
2361
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { className: "flex justify-center py-6", children: /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.AlertDialog, { children: [
2606
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { className: "flex justify-center py-6", children: /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.AlertDialog, { children: [
2362
2607
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.AlertDialogTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "destructive", children: "Excluir Conta" }) }),
2363
2608
  /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.AlertDialogContent, { className: "sm:max-w-[425px]", children: [
2364
2609
  /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.AlertDialogHeader, { children: [
@@ -2379,21 +2624,35 @@ function TemplateContent({ user, onLogout, onSettings }) {
2379
2624
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, { className: "my-8" }),
2380
2625
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2381
2626
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4", children: "Variações de Cabeçalho" }),
2382
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2383
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2384
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Configurações do Cabeçalho Principal" }),
2385
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "O Header é focado em navegação (breadcrumbs) e ações contextuais rápidas." })
2627
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2628
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2629
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Configurações do Cabeçalho Principal" }),
2630
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "O Header é focado em navegação (breadcrumbs) e ações contextuais rápidas." })
2386
2631
  ] }),
2387
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-6", children: [
2632
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-6", children: [
2388
2633
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border rounded-[var(--radius-lg)] bg-muted/30", children: [
2389
2634
  /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-semibold mb-4", children: "Elementos Visíveis" }),
2390
2635
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6", children: [
2391
2636
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
2392
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "header-actions", checked: showHeaderActions, onCheckedChange: setShowHeaderActions }),
2637
+ /* @__PURE__ */ jsxRuntime.jsx(
2638
+ alertDialog.Switch,
2639
+ {
2640
+ id: "header-actions",
2641
+ checked: showHeaderActions,
2642
+ onCheckedChange: setShowHeaderActions
2643
+ }
2644
+ ),
2393
2645
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "header-actions", className: "cursor-pointer", children: "Botões de Ação" })
2394
2646
  ] }),
2395
2647
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
2396
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "header-bread", checked: showHeaderBreadcrumbs, onCheckedChange: setShowHeaderBreadcrumbs }),
2648
+ /* @__PURE__ */ jsxRuntime.jsx(
2649
+ alertDialog.Switch,
2650
+ {
2651
+ id: "header-bread",
2652
+ checked: showHeaderBreadcrumbs,
2653
+ onCheckedChange: setShowHeaderBreadcrumbs
2654
+ }
2655
+ ),
2397
2656
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "header-bread", className: "cursor-pointer", children: "Breadcrumbs" })
2398
2657
  ] })
2399
2658
  ] })
@@ -2405,13 +2664,26 @@ function TemplateContent({ user, onLogout, onSettings }) {
2405
2664
  {
2406
2665
  title: !showHeaderBreadcrumbs ? "Página Atual" : void 0,
2407
2666
  breadcrumbs: showHeaderBreadcrumbs ? [
2408
- { label: "Xertica UI", href: "#", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Home, { className: "w-4 h-4" }) },
2667
+ {
2668
+ label: "Xertica UI",
2669
+ href: "#",
2670
+ icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Home, { className: "w-4 h-4" })
2671
+ },
2409
2672
  { label: "Configurações", href: "#" },
2410
2673
  { label: "Perfil" }
2411
2674
  ] : void 0,
2412
2675
  actions: showHeaderActions ? [
2413
- { id: "notify", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "w-5 h-5" }), onClick: () => sonner.toast("Notificações abertas") },
2414
- { id: "mail", label: "Mensagens", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-5 h-5" }), onClick: () => sonner.toast("Mensagens abertas") }
2676
+ {
2677
+ id: "notify",
2678
+ icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "w-5 h-5" }),
2679
+ onClick: () => sonner.toast("Notificações abertas")
2680
+ },
2681
+ {
2682
+ id: "mail",
2683
+ label: "Mensagens",
2684
+ icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-5 h-5" }),
2685
+ onClick: () => sonner.toast("Mensagens abertas")
2686
+ }
2415
2687
  ] : void 0
2416
2688
  }
2417
2689
  ),
@@ -2423,12 +2695,12 @@ function TemplateContent({ user, onLogout, onSettings }) {
2423
2695
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, { className: "my-8" }),
2424
2696
  /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
2425
2697
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4", children: "Variações da Sidebar" }),
2426
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { children: [
2427
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2428
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Sidebar Modo Assistente vs Padrão" }),
2429
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "A Sidebar suporta flexibilidade através da propriedade variant." })
2698
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { children: [
2699
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2700
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Sidebar Modo Assistente vs Padrão" }),
2701
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "A Sidebar suporta flexibilidade através da propriedade variant." })
2430
2702
  ] }),
2431
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.Tabs, { defaultValue: "assistant", className: "w-full", children: [
2703
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.Tabs, { defaultValue: "assistant", className: "w-full", children: [
2432
2704
  /* @__PURE__ */ jsxRuntime.jsxs(alertDialog.TabsList, { className: "mb-4", children: [
2433
2705
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsTrigger, { value: "assistant", children: "Modo Assistente" }),
2434
2706
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsTrigger, { value: "default", children: "Modo Padrão" })
@@ -2437,15 +2709,36 @@ function TemplateContent({ user, onLogout, onSettings }) {
2437
2709
  /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-semibold mb-4", children: "Configurações do Rodapé" }),
2438
2710
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-6 mt-2", children: [
2439
2711
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
2440
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "show-user", checked: showSidebarUser, onCheckedChange: setShowSidebarUser }),
2712
+ /* @__PURE__ */ jsxRuntime.jsx(
2713
+ alertDialog.Switch,
2714
+ {
2715
+ id: "show-user",
2716
+ checked: showSidebarUser,
2717
+ onCheckedChange: setShowSidebarUser
2718
+ }
2719
+ ),
2441
2720
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "show-user", className: "cursor-pointer", children: "Perfil do Usuário" })
2442
2721
  ] }),
2443
2722
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
2444
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "show-settings", checked: showSidebarSettings, onCheckedChange: setShowSidebarSettings }),
2723
+ /* @__PURE__ */ jsxRuntime.jsx(
2724
+ alertDialog.Switch,
2725
+ {
2726
+ id: "show-settings",
2727
+ checked: showSidebarSettings,
2728
+ onCheckedChange: setShowSidebarSettings
2729
+ }
2730
+ ),
2445
2731
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "show-settings", className: "cursor-pointer", children: "Configurações" })
2446
2732
  ] }),
2447
2733
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
2448
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Switch, { id: "show-logout", checked: showSidebarLogout, onCheckedChange: setShowSidebarLogout }),
2734
+ /* @__PURE__ */ jsxRuntime.jsx(
2735
+ alertDialog.Switch,
2736
+ {
2737
+ id: "show-logout",
2738
+ checked: showSidebarLogout,
2739
+ onCheckedChange: setShowSidebarLogout
2740
+ }
2741
+ ),
2449
2742
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Label, { htmlFor: "show-logout", className: "cursor-pointer", children: "Botão de Sair" })
2450
2743
  ] })
2451
2744
  ] }),
@@ -2475,146 +2768,221 @@ function TemplateContent({ user, onLogout, onSettings }) {
2475
2768
  ] })
2476
2769
  ] })
2477
2770
  ] }),
2478
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "assistant", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-[600px] border rounded-[var(--radius-lg)] bg-muted/20 overflow-hidden", style: { transform: "translateZ(0)" }, children: [
2479
- /* @__PURE__ */ jsxRuntime.jsx(
2480
- sidebar.Sidebar,
2481
- {
2482
- expanded: true,
2483
- width: sidebarWidth,
2484
- onToggle: () => {
2485
- },
2486
- user: { email: "admin@xertica.com" },
2487
- onLogout: () => sonner.toast("Saiu"),
2488
- location: { pathname: "/assistant/current" },
2489
- navigate: () => {
2490
- },
2491
- variant: "assistant",
2492
- search: {
2493
- show: true,
2494
- placeholder: "Buscar tópicos...",
2495
- filter: {
2496
- show: true,
2497
- content: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2 space-y-2", children: [
2498
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-semibold uppercase text-muted-foreground px-2", children: "Filtrar por Status" }),
2499
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-2 p-1", children: [
2500
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { className: "bg-sidebar-foreground/20 text-sidebar-foreground border-none cursor-pointer hover:bg-sidebar-foreground/30", children: "Ativo" }),
2501
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", className: "text-sidebar-foreground/70 border-sidebar-foreground/20 cursor-pointer hover:bg-sidebar-foreground/10", children: "Arquivado" }),
2502
- /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { variant: "outline", className: "text-sidebar-foreground/70 border-sidebar-foreground/20 cursor-pointer hover:bg-sidebar-foreground/10", children: "Pendente" })
2503
- ] })
2504
- ] })
2505
- }
2506
- },
2507
- fixedArea: {
2508
- show: true,
2509
- content: /* @__PURE__ */ jsxRuntime.jsxs(button.Button, { className: "w-full bg-sidebar-primary hover:bg-sidebar-primary/90 text-sidebar-primary-foreground shadow-lg font-bold border-none transition-all duration-300 transform hover:scale-[1.02] active:scale-[0.98]", children: [
2510
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "w-4 h-4 mr-2" }),
2511
- "Nova Conversa"
2512
- ] })
2513
- },
2514
- navigationGroups: [
2771
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "assistant", children: /* @__PURE__ */ jsxRuntime.jsxs(
2772
+ "div",
2773
+ {
2774
+ className: "relative h-[600px] border rounded-[var(--radius-lg)] bg-muted/20 overflow-hidden",
2775
+ style: { transform: "translateZ(0)" },
2776
+ children: [
2777
+ /* @__PURE__ */ jsxRuntime.jsx(
2778
+ sidebar.Sidebar,
2515
2779
  {
2516
- id: "recent",
2517
- label: "Recentes",
2518
- icon: lucideReact.Clock,
2519
- items: [
2780
+ expanded: true,
2781
+ width: sidebarWidth,
2782
+ onToggle: () => {
2783
+ },
2784
+ user: { email: "admin@xertica.com" },
2785
+ onLogout: () => sonner.toast("Saiu"),
2786
+ location: { pathname: "/assistant/current" },
2787
+ navigate: () => {
2788
+ },
2789
+ variant: "assistant",
2790
+ search: {
2791
+ show: true,
2792
+ placeholder: "Buscar tópicos...",
2793
+ filter: {
2794
+ show: true,
2795
+ content: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2 space-y-2", children: [
2796
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-semibold uppercase text-muted-foreground px-2", children: "Filtrar por Status" }),
2797
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-2 p-1", children: [
2798
+ /* @__PURE__ */ jsxRuntime.jsx(progress.Badge, { className: "bg-sidebar-foreground/20 text-sidebar-foreground border-none cursor-pointer hover:bg-sidebar-foreground/30", children: "Ativo" }),
2799
+ /* @__PURE__ */ jsxRuntime.jsx(
2800
+ progress.Badge,
2801
+ {
2802
+ variant: "outline",
2803
+ className: "text-sidebar-foreground/70 border-sidebar-foreground/20 cursor-pointer hover:bg-sidebar-foreground/10",
2804
+ children: "Arquivado"
2805
+ }
2806
+ ),
2807
+ /* @__PURE__ */ jsxRuntime.jsx(
2808
+ progress.Badge,
2809
+ {
2810
+ variant: "outline",
2811
+ className: "text-sidebar-foreground/70 border-sidebar-foreground/20 cursor-pointer hover:bg-sidebar-foreground/10",
2812
+ children: "Pendente"
2813
+ }
2814
+ )
2815
+ ] })
2816
+ ] })
2817
+ }
2818
+ },
2819
+ fixedArea: {
2820
+ show: true,
2821
+ content: /* @__PURE__ */ jsxRuntime.jsxs(button.Button, { className: "w-full bg-sidebar-primary hover:bg-sidebar-primary/90 text-sidebar-primary-foreground shadow-lg font-bold border-none transition-all duration-300 transform hover:scale-[1.02] active:scale-[0.98]", children: [
2822
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "w-4 h-4 mr-2" }),
2823
+ "Nova Conversa"
2824
+ ] })
2825
+ },
2826
+ navigationGroups: [
2520
2827
  {
2521
- path: "/assistant/refatoracao",
2522
- label: "Refatoração da Sidebar",
2523
- description: "Ativo agora",
2524
- actions: [
2525
- { label: "Renomear", icon: lucideReact.FileEdit, onClick: () => sonner.toast("Abrir renomear...") },
2828
+ id: "recent",
2829
+ label: "Recentes",
2830
+ icon: lucideReact.Clock,
2831
+ items: [
2526
2832
  {
2527
- label: "Mover",
2528
- icon: lucideReact.ArrowRightLeft,
2529
- children: [
2530
- { label: "Projetos Ativos", onClick: () => sonner.toast("Movido para Projetos Ativos") },
2531
- { label: "Monitoramento", onClick: () => sonner.toast("Movido para Monitoramento") },
2532
- { label: "Arquivar", onClick: () => sonner.toast("Movido para Arquivo") }
2833
+ path: "/assistant/refatoracao",
2834
+ label: "Refatoração da Sidebar",
2835
+ description: "Ativo agora",
2836
+ actions: [
2837
+ {
2838
+ label: "Renomear",
2839
+ icon: lucideReact.FileEdit,
2840
+ onClick: () => sonner.toast("Abrir renomear...")
2841
+ },
2842
+ {
2843
+ label: "Mover",
2844
+ icon: lucideReact.ArrowRightLeft,
2845
+ children: [
2846
+ {
2847
+ label: "Projetos Ativos",
2848
+ onClick: () => sonner.toast("Movido para Projetos Ativos")
2849
+ },
2850
+ {
2851
+ label: "Monitoramento",
2852
+ onClick: () => sonner.toast("Movido para Monitoramento")
2853
+ },
2854
+ {
2855
+ label: "Arquivar",
2856
+ onClick: () => sonner.toast("Movido para Arquivo")
2857
+ }
2858
+ ]
2859
+ },
2860
+ {
2861
+ label: "Limpar",
2862
+ icon: lucideReact.Trash2,
2863
+ onClick: () => sonner.toast("Histórico Limpo!"),
2864
+ variant: "destructive"
2865
+ }
2533
2866
  ]
2867
+ }
2868
+ ]
2869
+ },
2870
+ {
2871
+ id: "projects",
2872
+ label: "Monitoramento de Projetos",
2873
+ icon: lucideReact.Map,
2874
+ actions: [
2875
+ {
2876
+ label: "Nova Categoria",
2877
+ icon: lucideReact.Plus,
2878
+ onClick: () => sonner.toast("Criar nova categoria...")
2534
2879
  },
2535
- { label: "Limpar", icon: lucideReact.Trash2, onClick: () => sonner.toast("Histórico Limpo!"), variant: "destructive" }
2880
+ {
2881
+ label: "Arquivar Grupo",
2882
+ icon: lucideReact.Archive,
2883
+ onClick: () => sonner.toast("Arquivando grupo...")
2884
+ }
2885
+ ],
2886
+ items: [
2887
+ {
2888
+ path: "/assistant/br163",
2889
+ label: "Restauração BR-163",
2890
+ icon: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-2 h-2 rounded-full bg-yellow-500" }),
2891
+ description: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5 min-w-[160px]", children: [
2892
+ /* @__PURE__ */ jsxRuntime.jsx(
2893
+ progress.Progress,
2894
+ {
2895
+ value: 67,
2896
+ className: "h-1.5 bg-sidebar-foreground/10"
2897
+ }
2898
+ ),
2899
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center text-[10px] text-sidebar-foreground/60", children: [
2900
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Cuiabá, MT" }),
2901
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "67%" })
2902
+ ] })
2903
+ ] })
2904
+ }
2536
2905
  ]
2537
2906
  }
2538
- ]
2539
- },
2907
+ ],
2908
+ footer: {
2909
+ showUser: showSidebarUser,
2910
+ showSettings: showSidebarSettings,
2911
+ showLogout: showSidebarLogout
2912
+ }
2913
+ }
2914
+ ),
2915
+ /* @__PURE__ */ jsxRuntime.jsx(
2916
+ "div",
2540
2917
  {
2541
- id: "projects",
2542
- label: "Monitoramento de Projetos",
2543
- icon: lucideReact.Map,
2544
- actions: [
2545
- { label: "Nova Categoria", icon: lucideReact.Plus, onClick: () => sonner.toast("Criar nova categoria...") },
2546
- { label: "Arquivar Grupo", icon: lucideReact.Archive, onClick: () => sonner.toast("Arquivando grupo...") }
2918
+ className: "absolute inset-y-0 right-0 p-8 flex items-center justify-center transition-all duration-300",
2919
+ style: { left: `${sidebarWidth}px` },
2920
+ children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-center", children: "Conteúdo do Modo Assistente" })
2921
+ }
2922
+ )
2923
+ ]
2924
+ }
2925
+ ) }),
2926
+ /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "default", children: /* @__PURE__ */ jsxRuntime.jsxs(
2927
+ "div",
2928
+ {
2929
+ className: "relative h-[600px] border rounded-[var(--radius-lg)] bg-muted/20 overflow-hidden",
2930
+ style: { transform: "translateZ(0)" },
2931
+ children: [
2932
+ /* @__PURE__ */ jsxRuntime.jsx(
2933
+ sidebar.Sidebar,
2934
+ {
2935
+ expanded: true,
2936
+ width: sidebarWidth,
2937
+ onToggle: () => {
2938
+ },
2939
+ user: {
2940
+ name: "Ariel Santos",
2941
+ email: "admin@xertica.com",
2942
+ avatar: "https://github.com/shadcn.png"
2943
+ },
2944
+ onLogout: () => sonner.toast("Saiu"),
2945
+ onSettingsClick: () => sonner.toast("Configurações clicadas"),
2946
+ location: { pathname: "/home" },
2947
+ navigate: () => {
2948
+ },
2949
+ variant: "default",
2950
+ routes: [
2951
+ { path: "/home", label: "Início", icon: lucideReact.Home },
2952
+ { path: "/dashboard", label: "Dashboard", icon: lucideReact.Users },
2953
+ { path: "/settings", label: "Configurações", icon: lucideReact.Settings }
2547
2954
  ],
2548
- items: [
2549
- {
2550
- path: "/assistant/br163",
2551
- label: "Restauração BR-163",
2552
- icon: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-2 h-2 rounded-full bg-yellow-500" }),
2553
- description: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5 min-w-[160px]", children: [
2554
- /* @__PURE__ */ jsxRuntime.jsx(progress.Progress, { value: 67, className: "h-1.5 bg-sidebar-foreground/10" }),
2555
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center text-[10px] text-sidebar-foreground/60", children: [
2556
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Cuiabá, MT" }),
2557
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "67%" })
2558
- ] })
2559
- ] })
2560
- }
2561
- ]
2955
+ footer: {
2956
+ showUser: showSidebarUser,
2957
+ showSettings: showSidebarSettings,
2958
+ showLogout: showSidebarLogout
2959
+ }
2562
2960
  }
2563
- ],
2564
- footer: {
2565
- showUser: showSidebarUser,
2566
- showSettings: showSidebarSettings,
2567
- showLogout: showSidebarLogout
2568
- }
2569
- }
2570
- ),
2571
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 p-8 flex items-center justify-center transition-all duration-300", style: { left: `${sidebarWidth}px` }, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-center", children: "Conteúdo do Modo Assistente" }) })
2572
- ] }) }),
2573
- /* @__PURE__ */ jsxRuntime.jsx(alertDialog.TabsContent, { value: "default", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-[600px] border rounded-[var(--radius-lg)] bg-muted/20 overflow-hidden", style: { transform: "translateZ(0)" }, children: [
2574
- /* @__PURE__ */ jsxRuntime.jsx(
2575
- sidebar.Sidebar,
2576
- {
2577
- expanded: true,
2578
- width: sidebarWidth,
2579
- onToggle: () => {
2580
- },
2581
- user: {
2582
- name: "Ariel Santos",
2583
- email: "admin@xertica.com",
2584
- avatar: "https://github.com/shadcn.png"
2585
- },
2586
- onLogout: () => sonner.toast("Saiu"),
2587
- onSettingsClick: () => sonner.toast("Configurações clicadas"),
2588
- location: { pathname: "/home" },
2589
- navigate: () => {
2590
- },
2591
- variant: "default",
2592
- routes: [
2593
- { path: "/home", label: "Início", icon: lucideReact.Home },
2594
- { path: "/dashboard", label: "Dashboard", icon: lucideReact.Users },
2595
- { path: "/settings", label: "Configurações", icon: lucideReact.Settings }
2596
- ],
2597
- footer: {
2598
- showUser: showSidebarUser,
2599
- showSettings: showSidebarSettings,
2600
- showLogout: showSidebarLogout
2601
- }
2602
- }
2603
- ),
2604
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 p-8 flex items-center justify-center transition-all duration-300", style: { left: `${sidebarWidth}px` }, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-center", children: "Navegação Tradicional do Sistema" }) })
2605
- ] }) })
2961
+ ),
2962
+ /* @__PURE__ */ jsxRuntime.jsx(
2963
+ "div",
2964
+ {
2965
+ className: "absolute inset-y-0 right-0 p-8 flex items-center justify-center transition-all duration-300",
2966
+ style: { left: `${sidebarWidth}px` },
2967
+ children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-center", children: "Navegação Tradicional do Sistema" })
2968
+ }
2969
+ )
2970
+ ]
2971
+ }
2972
+ ) })
2606
2973
  ] }) })
2607
2974
  ] })
2608
2975
  ] }),
2609
2976
  /* @__PURE__ */ jsxRuntime.jsx(alertDialog.Separator, { className: "my-8" }),
2610
- /* @__PURE__ */ jsxRuntime.jsxs(progress.Card, { className: "mt-8", children: [
2611
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardHeader, { children: [
2612
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardTitle, { children: "Template Pronto para CLI" }),
2613
- /* @__PURE__ */ jsxRuntime.jsx(progress.CardDescription, { children: "Como usar este template" })
2977
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.Card, { className: "mt-8", children: [
2978
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardHeader, { children: [
2979
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardTitle, { children: "Template Pronto para CLI" }),
2980
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.CardDescription, { children: "Como usar este template" })
2614
2981
  ] }),
2615
- /* @__PURE__ */ jsxRuntime.jsxs(progress.CardContent, { className: "space-y-4", children: [
2982
+ /* @__PURE__ */ jsxRuntime.jsxs(skeleton.CardContent, { className: "space-y-4", children: [
2616
2983
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-muted-foreground", children: [
2617
- "Este template está pronto para ser usado como base para novos projetos. Todos os componentes usam as variáveis CSS definidas em ",
2984
+ "Este template está pronto para ser usado como base para novos projetos. Todos os componentes usam as variáveis CSS definidas em",
2985
+ " ",
2618
2986
  /* @__PURE__ */ jsxRuntime.jsx("code", { className: "bg-muted px-2 py-1 rounded-[var(--radius-sm)] [font-size:var(--text-small)]", children: "/styles/xertica/tokens.css" }),
2619
2987
  "and follow the Xertica UI CLI-first architecture."
2620
2988
  ] }),
@@ -2629,7 +2997,8 @@ function TemplateContent({ user, onLogout, onSettings }) {
2629
2997
  }
2630
2998
  );
2631
2999
  }
2632
- function TemplatePage({ user, onLogout }) {
3000
+ function TemplatePage() {
3001
+ const { user, logout } = useAuth();
2633
3002
  const layout = LayoutContext.useOptionalLayout();
2634
3003
  const [localSidebarExpanded, setLocalSidebarExpanded] = React.useState(false);
2635
3004
  const [localAssistantExpanded, setLocalAssistantExpanded] = React.useState(false);
@@ -2652,21 +3021,14 @@ function TemplatePage({ user, onLogout }) {
2652
3021
  name: "Ariel Santos",
2653
3022
  avatar: "https://github.com/shadcn.png"
2654
3023
  },
2655
- onLogout,
3024
+ onLogout: logout,
2656
3025
  onSettingsClick: () => navigate("/settings"),
2657
3026
  location,
2658
3027
  navigate,
2659
3028
  routes
2660
3029
  }
2661
3030
  ),
2662
- /* @__PURE__ */ jsxRuntime.jsx(
2663
- TemplateContent,
2664
- {
2665
- user,
2666
- onLogout,
2667
- onSettings: () => navigate("/settings")
2668
- }
2669
- ),
3031
+ /* @__PURE__ */ jsxRuntime.jsx(TemplateContent, {}),
2670
3032
  /* @__PURE__ */ jsxRuntime.jsx(
2671
3033
  xerticaAssistant.XerticaAssistant,
2672
3034
  {
@@ -2682,6 +3044,7 @@ function VerifyEmailPage() {
2682
3044
  var _a;
2683
3045
  const navigate = reactRouterDom.useNavigate();
2684
3046
  const location = reactRouterDom.useLocation();
3047
+ const { t: t2 } = reactI18next.useTranslation();
2685
3048
  const email = ((_a = location.state) == null ? void 0 : _a.email) || "your@email.com";
2686
3049
  const [isResending, setIsResending] = React.useState(false);
2687
3050
  const [resendSuccess, setResendSuccess] = React.useState(false);
@@ -2701,7 +3064,7 @@ function VerifyEmailPage() {
2701
3064
  alertDialog.ImageWithFallback,
2702
3065
  {
2703
3066
  src: "https://images.unsplash.com/photo-1563986768609-322da13575f3?w=1200&h=800&fit=crop&auto=format",
2704
- alt: "E-mail e comunicação",
3067
+ alt: t2("verifyEmail.heroImageAlt"),
2705
3068
  className: "absolute inset-0 w-full h-full object-cover"
2706
3069
  }
2707
3070
  ),
@@ -2720,23 +3083,23 @@ function VerifyEmailPage() {
2720
3083
  }
2721
3084
  ) }),
2722
3085
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center mb-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 bg-primary/10 rounded-[var(--radius)]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-12 h-12 text-primary" }) }) }),
2723
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-muted-foreground", children: "Verifique seu e-mail" }),
2724
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: "Enviamos as instruções para redefinir sua senha para:" }),
3086
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-muted-foreground", children: t2("verifyEmail.heading") }),
3087
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: t2("verifyEmail.instructionsSent") }),
2725
3088
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-primary", children: email })
2726
3089
  ] }),
2727
3090
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-accent rounded-[var(--radius)] p-4 space-y-3", children: [
2728
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: "Siga as instruções no e-mail para redefinir sua senha. O link expira em 24 horas." }),
3091
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: t2("verifyEmail.instructions") }),
2729
3092
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-muted-foreground", children: [
2730
3093
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "w-4 h-4 mt-0.5 flex-shrink-0 text-[var(--chart-2)]" }),
2731
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Verifique sua pasta de spam se não encontrar o e-mail" })
3094
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: t2("verifyEmail.checkSpam") })
2732
3095
  ] })
2733
3096
  ] }),
2734
3097
  resendSuccess && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-[var(--chart-2)]/10 border border-[var(--chart-2)]/20 rounded-[var(--radius)] p-3 flex items-center gap-2", children: [
2735
3098
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "w-5 h-5 text-[var(--chart-2)] flex-shrink-0" }),
2736
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-[var(--chart-2)]", children: "E-mail reenviado com sucesso!" })
3099
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-[var(--chart-2)]", children: t2("verifyEmail.resentSuccess") })
2737
3100
  ] }),
2738
3101
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2739
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-center text-muted-foreground", children: "Não recebeu o e-mail?" }),
3102
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-center text-muted-foreground", children: t2("verifyEmail.notReceived") }),
2740
3103
  /* @__PURE__ */ jsxRuntime.jsx(
2741
3104
  button.Button,
2742
3105
  {
@@ -2744,7 +3107,7 @@ function VerifyEmailPage() {
2744
3107
  className: "w-full",
2745
3108
  onClick: handleResend,
2746
3109
  disabled: isResending,
2747
- children: isResending ? "Reenviando..." : "Reenviar e-mail"
3110
+ children: isResending ? t2("verifyEmail.resending") : t2("verifyEmail.resend")
2748
3111
  }
2749
3112
  ),
2750
3113
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2756,14 +3119,14 @@ function VerifyEmailPage() {
2756
3119
  className: "w-full text-muted-foreground hover:text-foreground",
2757
3120
  children: [
2758
3121
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "w-4 h-4 mr-2" }),
2759
- "Voltar para o login"
3122
+ t2("verifyEmail.backToLogin")
2760
3123
  ]
2761
3124
  }
2762
3125
  )
2763
3126
  ] }),
2764
3127
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2765
3128
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full border-t border-border" }) }),
2766
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: "ou continue com" }) })
3129
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: t2("login.orContinueWith") }) })
2767
3130
  ] }),
2768
3131
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2769
3132
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2775,13 +3138,37 @@ function VerifyEmailPage() {
2775
3138
  onClick: () => handleSocialLogin(),
2776
3139
  children: [
2777
3140
  /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "w-5 h-5 mr-2", viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", children: [
2778
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#EA4335", d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z" }),
2779
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#4285F4", d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z" }),
2780
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#FBBC05", d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z" }),
2781
- /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#34A853", d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z" }),
3141
+ /* @__PURE__ */ jsxRuntime.jsx(
3142
+ "path",
3143
+ {
3144
+ fill: "#EA4335",
3145
+ d: "M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"
3146
+ }
3147
+ ),
3148
+ /* @__PURE__ */ jsxRuntime.jsx(
3149
+ "path",
3150
+ {
3151
+ fill: "#4285F4",
3152
+ d: "M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"
3153
+ }
3154
+ ),
3155
+ /* @__PURE__ */ jsxRuntime.jsx(
3156
+ "path",
3157
+ {
3158
+ fill: "#FBBC05",
3159
+ d: "M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"
3160
+ }
3161
+ ),
3162
+ /* @__PURE__ */ jsxRuntime.jsx(
3163
+ "path",
3164
+ {
3165
+ fill: "#34A853",
3166
+ d: "M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"
3167
+ }
3168
+ ),
2782
3169
  /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "none", d: "M0 0h48v48H0z" })
2783
3170
  ] }),
2784
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Entrar com Google" })
3171
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: t2("login.signInWithGoogle") })
2785
3172
  ]
2786
3173
  }
2787
3174
  ),
@@ -2794,7 +3181,7 @@ function VerifyEmailPage() {
2794
3181
  onClick: () => handleSocialLogin(),
2795
3182
  children: [
2796
3183
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "w-5 h-5 mr-2 text-[var(--chart-4)]" }),
2797
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Entrar com MT Login" })
3184
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: t2("login.signInWithMTLogin") })
2798
3185
  ]
2799
3186
  }
2800
3187
  ),
@@ -2805,10 +3192,7 @@ function VerifyEmailPage() {
2805
3192
  variant: "outline",
2806
3193
  className: "w-full justify-center font-normal",
2807
3194
  onClick: () => handleSocialLogin(),
2808
- children: /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
2809
- "Entrar com ",
2810
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "font-semibold", children: "gov.br" })
2811
- ] })
3195
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: t2("login.signInWithGovBr") })
2812
3196
  }
2813
3197
  )
2814
3198
  ] })