xertica-ui 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/bin/cli.ts +2 -1
  4. package/components/assistant/markdown-message/markdown-message.mdx +1 -1
  5. package/components/brand/language-selector/language-selector.mdx +1 -1
  6. package/components/brand/theme-toggle/theme-toggle.mdx +1 -1
  7. package/components/brand/xertica-logo/xertica-logo.mdx +1 -1
  8. package/components/brand/xertica-provider/xertica-provider.mdx +1 -1
  9. package/components/brand/xertica-xlogo/xertica-xlogo.mdx +1 -1
  10. package/components/index.ts +6 -0
  11. package/components/layout/header/header.mdx +1 -1
  12. package/components/layout/sidebar/sidebar.mdx +2 -1
  13. package/components/media/floating-media-wrapper.mdx +2 -2
  14. package/components/pages/forgot-password-page/ForgotPasswordPage.tsx +2 -4
  15. package/components/pages/home-content/HomeContent.tsx +1 -1
  16. package/components/pages/home-content/home-content.mdx +1 -1
  17. package/components/pages/home-page/HomePage.stories.tsx +39 -0
  18. package/components/pages/home-page/HomePage.tsx +2 -3
  19. package/components/pages/home-page/home-page.mdx +56 -0
  20. package/components/pages/login-page/LoginPage.tsx +2 -5
  21. package/components/pages/reset-password-page/reset-password-page.mdx +6 -2
  22. package/components/pages/template-page/TemplatePage.stories.tsx +39 -0
  23. package/components/pages/template-page/TemplatePage.tsx +3 -1
  24. package/components/pages/template-page/template-page.mdx +54 -0
  25. package/components/pages/verify-email-page/VerifyEmailPage.tsx +2 -4
  26. package/components/ui/accordion/accordion.stories.tsx +27 -1
  27. package/components/ui/alert-dialog/alert-dialog.stories.tsx +30 -0
  28. package/components/ui/button/button.stories.tsx +23 -0
  29. package/components/ui/checkbox/checkbox.stories.tsx +20 -1
  30. package/components/ui/dialog/dialog.stories.tsx +30 -0
  31. package/components/ui/google-maps-loader/google-maps-loader.mdx +1 -1
  32. package/components/ui/input/input.stories.tsx +24 -0
  33. package/components/ui/switch/switch.stories.tsx +20 -1
  34. package/components/ui/tabs/tabs.stories.tsx +26 -1
  35. package/components.json +1507 -530
  36. package/dist/cli.js +3 -2
  37. package/dist/components/index.d.ts +6 -0
  38. package/dist/index.cjs.js +1233 -484
  39. package/dist/index.es.js +778 -28
  40. package/dist/ui.cjs.js +178 -178
  41. package/dist/ui.es.js +1 -1
  42. package/dist/use-mobile-CaENcqm-.js +4508 -0
  43. package/dist/use-mobile-DMOvImGQ.cjs +4542 -0
  44. package/dist/xertica-ui.css +1 -1
  45. package/docs/decision-tree.md +287 -0
  46. package/guidelines/Guidelines.md +250 -657
  47. package/llms-compact.txt +327 -0
  48. package/llms.txt +160 -71
  49. package/package.json +193 -192
  50. package/templates/CLAUDE.md +160 -0
  51. package/templates/guidelines/Guidelines.md +245 -99
  52. package/templates/package.json +3 -3
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import { X as XerticaAssistant } from "./CodeBlock-D6ffWXgc.js";
2
- import { C, F, M, a, g, g as g2 } from "./CodeBlock-D6ffWXgc.js";
1
+ import { X as XerticaAssistant, g as gerarResposta } from "./CodeBlock-D6ffWXgc.js";
2
+ import { C, F, M, a } from "./CodeBlock-D6ffWXgc.js";
3
3
  import { X } from "./XerticaProvider-6btlAlzc.js";
4
4
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
5
5
  import { useNavigate, Link, useLocation } from "react-router-dom";
@@ -9,23 +9,24 @@ import { B as Button, e as cn } from "./tooltip-HDOoD2-0.js";
9
9
  import { T, a as a2, b, c, d } from "./tooltip-HDOoD2-0.js";
10
10
  import { S as ScrollArea, I as Input } from "./input-2R4loU86.js";
11
11
  import { P, a as a3, b as b2, c as c2 } from "./input-2R4loU86.js";
12
- import { B as Badge, aF as Map, I as Checkbox, aE as Label, t as Card, y as CardHeader, z as CardTitle, w as CardDescription, v as CardContent, bm as Separator, b3 as PageHeader, bB as Tabs, bD as TabsList, bE as TabsTrigger, bC as TabsContent, bA as Switch, d as Alert, q as AlertTitle, e as AlertDescription, bd as Progress, be as RadioGroup, bf as RadioGroupItem, x as CardFooter, f as AlertDialog, p as AlertDialogTrigger, i as AlertDialogContent, l as AlertDialogHeader, o as AlertDialogTitle, j as AlertDialogDescription, k as AlertDialogFooter, h as AlertDialogCancel, g as AlertDialogAction } from "./ImageWithFallback-lsg3pdFg.js";
13
- import { A, a as a4, b as b3, c as c3, m, n, r, s, C as C2, u, D, E, F as F2, G, H, J, K, L, M as M2, N, O, P as P2, Q, R, S, T as T2, U, V, W, X as X2, Y, Z, _, $, a0, a1, a2 as a22, a3 as a32, a4 as a42, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, aA, aB, aC, aD, aG, aH, aI, aJ, aK, aL, aM, aN, aO, aP, aQ, aR, aS, aT, aU, aV, aW, aX, aY, aZ, a_, a$, b0, b1, b2 as b22, b4, b5, b6, b7, b8, b9, ba, bb, bc, bg, bh, bi, bj, bk, bl, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, bF, bG, bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW } from "./ImageWithFallback-lsg3pdFg.js";
12
+ import { B as Badge, aF as Map, I as Checkbox, aE as Label, t as Card, y as CardHeader, z as CardTitle, w as CardDescription, v as CardContent, bm as Separator, b3 as PageHeader, bB as Tabs, bD as TabsList, bE as TabsTrigger, bC as TabsContent, bA as Switch, d as Alert, q as AlertTitle, e as AlertDescription, bd as Progress, be as RadioGroup, bf as RadioGroupItem, x as CardFooter, f as AlertDialog, p as AlertDialogTrigger, i as AlertDialogContent, l as AlertDialogHeader, o as AlertDialogTitle, j as AlertDialogDescription, k as AlertDialogFooter, h as AlertDialogCancel, g as AlertDialogAction, az as ImageWithFallback } from "./use-mobile-CaENcqm-.js";
13
+ import { A, a as a4, b as b3, c as c3, m, n, r, s, C as C2, u, D, E, F as F2, G, H, J, K, L, M as M2, N, O, P as P2, Q, R, S, T as T2, U, V, W, X as X2, Y, Z, _, $, a0, a1, a2 as a22, a3 as a32, a4 as a42, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, aA, aB, aC, aD, aG, aH, aI, aJ, aK, aL, aM, aN, aO, aP, aQ, aR, aS, aT, aU, aV, aW, aX, aY, aZ, a_, a$, b0, b1, b2 as b22, b4, b5, b6, b7, b8, b9, ba, bb, bc, bg, bh, bi, bj, bk, bl, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, bF, bG, bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW } from "./use-mobile-CaENcqm-.js";
14
14
  import { S as Select, h as SelectTrigger, i as SelectValue, a as SelectContent, c as SelectItem } from "./select-CvIVdX2n.js";
15
- import { b as b10, d as d2, e, f, g as g3 } from "./select-CvIVdX2n.js";
15
+ import { b as b10, d as d2, e, f, g } from "./select-CvIVdX2n.js";
16
16
  import { D as Dialog, h as DialogContent, k as DialogHeader, n as DialogTitle, i as DialogDescription, w as Textarea, T as Table, u as TableHeader, v as TableRow, t as TableHead, p as TableBody, r as TableCell, o as DialogTrigger, j as DialogFooter } from "./rich-text-editor-B9UbSXNb.js";
17
- import { C as C3, a as a10, b as b11, c as c4, d as d3, e as e2, f as f2, g as g4, l, m as m2, R as R2, q, s as s2 } from "./rich-text-editor-B9UbSXNb.js";
18
- import { Coffee, ShoppingBag, Landmark, Hotel, Utensils, MapPin, Filter, X as X3, MousePointer2, Circle, Square, Hexagon, Undo, Trash2, Save, Check, Pencil, Layers, Home, Settings, Users, Mail, Phone, Search, User, Calendar, Bell, FileEdit, ArrowRightLeft, Clock, Plus, Archive, Map as Map$1, FileText } from "lucide-react";
17
+ import { C as C3, a as a10, b as b11, c as c4, d as d3, e as e2, f as f2, g as g2, l, m as m2, R as R2, q, s as s2 } from "./rich-text-editor-B9UbSXNb.js";
18
+ import { Coffee, ShoppingBag, Landmark, Hotel, Utensils, MapPin, Filter, X as X3, MousePointer2, Circle, Square, Hexagon, Undo, Trash2, Save, Check, Pencil, Layers, Home, Settings, Users, Mail, Phone, Search, User, Calendar, Bell, FileEdit, ArrowRightLeft, Clock, Plus, Archive, Map as Map$1, FileText, Lock, ArrowLeft, CheckCircle2, AlertCircle } from "lucide-react";
19
19
  import { S as Slider } from "./slider-Bc5Hd0y1.js";
20
20
  import { toast } from "sonner";
21
21
  import { u as useLayout } from "./LayoutContext-BAql6ZRY.js";
22
22
  import { L as L2 } from "./LayoutContext-BAql6ZRY.js";
23
- import { A as A2, a as a11, b as b12, B, c as c5, d as d4, e as e3, f as f3, g as g5, h } from "./breadcrumb-CqJ7bHY5.js";
24
- import { D as D2, a as a12, b as b13, c as c6, d as d5, e as e4, f as f4, g as g6, h as h2, i, j, k, l as l2, m as m3, n as n2 } from "./dropdown-menu-DQidbKBD.js";
25
- import { T as T3 } from "./sonner-g9RIfi35.js";
23
+ import { L as LanguageSelector, X as XerticaLogo } from "./LanguageSelector-B5YfbHra.js";
24
+ import { T as T3, a as a11 } from "./LanguageSelector-B5YfbHra.js";
25
+ import { A as A2, a as a12, b as b12, B, c as c5, d as d4, e as e3, f as f3, g as g3, h } from "./breadcrumb-CqJ7bHY5.js";
26
+ import { D as D2, a as a13, b as b13, c as c6, d as d5, e as e4, f as f4, g as g4, h as h2, i, j, k, l as l2, m as m3, n as n2 } from "./dropdown-menu-DQidbKBD.js";
27
+ import { T as T4 } from "./sonner-g9RIfi35.js";
26
28
  import { G as G2, r as r2, u as u2 } from "./google-maps-loader-BFWp6VPd.js";
27
- import { L as L3, T as T4, X as X4, a as a13 } from "./LanguageSelector-B5YfbHra.js";
28
- import { X as X5 } from "./XerticaOrbe-zwS1p2a8.js";
29
+ import { X as X4 } from "./XerticaOrbe-zwS1p2a8.js";
29
30
  import { A as A3, F as F3, V as V2 } from "./AudioPlayer-e8LfNoqO.js";
30
31
  function createLucideIconSvg(iconName) {
31
32
  const iconPaths = {
@@ -2022,6 +2023,9 @@ const routes = [
2022
2023
  icon: FileText
2023
2024
  }
2024
2025
  ];
2026
+ const getRouteByPath = (path) => {
2027
+ return routes.find((route) => route.path === path);
2028
+ };
2025
2029
  function TemplatePage({ user, onLogout }) {
2026
2030
  const { sidebarExpanded, sidebarWidth, assistenteExpanded, toggleSidebar, toggleAssistente } = useLayout();
2027
2031
  const location = useLocation();
@@ -2058,11 +2062,751 @@ function TemplatePage({ user, onLogout }) {
2058
2062
  {
2059
2063
  isExpanded: assistenteExpanded,
2060
2064
  onToggle: toggleAssistente,
2061
- onEvaluation: (id, type, reason) => console.log("Feedback:", id, type, reason)
2065
+ onEvaluation: () => {
2066
+ }
2062
2067
  }
2063
2068
  )
2064
2069
  ] });
2065
2070
  }
2071
+ const SIDEBAR_COLLAPSED_WIDTH = 80;
2072
+ function HomeContent({ user, onLogout, onSettings }) {
2073
+ const { sidebarExpanded, sidebarWidth, assistenteExpanded } = useLayout();
2074
+ const location = useLocation();
2075
+ const navigate = useNavigate();
2076
+ const labelTranslations = {
2077
+ "home": "Início",
2078
+ "template": "Template"
2079
+ };
2080
+ const currentRoute = getRouteByPath(location.pathname);
2081
+ (currentRoute == null ? void 0 : currentRoute.label) ? labelTranslations[currentRoute.label.toLowerCase()] || currentRoute.label : "Início";
2082
+ return /* @__PURE__ */ jsxs(
2083
+ "div",
2084
+ {
2085
+ style: {
2086
+ paddingLeft: sidebarExpanded ? `${sidebarWidth}px` : SIDEBAR_COLLAPSED_WIDTH
2087
+ },
2088
+ className: "flex-1 flex flex-col overflow-hidden transition-all duration-300",
2089
+ children: [
2090
+ /* @__PURE__ */ jsx(
2091
+ Header,
2092
+ {
2093
+ showThemeToggle: true,
2094
+ showLanguageSelector: true,
2095
+ breadcrumbs: [
2096
+ { label: "Design System", href: "/home" },
2097
+ { label: "Início" }
2098
+ ],
2099
+ renderLink: (href, props) => /* @__PURE__ */ jsx(Link, { to: href, ...props })
2100
+ }
2101
+ ),
2102
+ /* @__PURE__ */ jsx("main", { className: "flex-1 overflow-hidden bg-muted", children: /* @__PURE__ */ jsx(ScrollArea, { className: "h-full", children: /* @__PURE__ */ jsx("div", { className: "p-2 sm:p-4 md:p-6", children: /* @__PURE__ */ jsxs("div", { className: "max-w-6xl mx-auto space-y-8", children: [
2103
+ /* @__PURE__ */ jsx(
2104
+ PageHeader,
2105
+ {
2106
+ title: "Bem-vindo ao Design System!",
2107
+ subtitle: "Sua plataforma inteligente para automação e análise de dados"
2108
+ }
2109
+ ),
2110
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: /* @__PURE__ */ jsxs(Card, { className: "hover:shadow-xl transition-shadow duration-200 flex flex-col h-full", children: [
2111
+ /* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
2112
+ /* @__PURE__ */ jsx("div", { className: "p-2 bg-[var(--chart-2)]/20 rounded-[var(--radius)]", children: /* @__PURE__ */ jsx(FileText, { className: "w-6 h-6 text-[var(--chart-2)]" }) }),
2113
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2114
+ /* @__PURE__ */ jsx(CardTitle, { className: "text-sm", children: "Template CLI" }),
2115
+ /* @__PURE__ */ jsx(Badge, { variant: "default", className: "text-xs", children: "Novo" })
2116
+ ] })
2117
+ ] }) }),
2118
+ /* @__PURE__ */ jsx(CardContent, { className: "flex-1", children: /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: "Página de template pronta para uso CLI com todos os componentes configurados." }) }),
2119
+ /* @__PURE__ */ jsx(CardFooter, { children: /* @__PURE__ */ jsx(
2120
+ Button,
2121
+ {
2122
+ variant: "outline",
2123
+ className: "w-full",
2124
+ onClick: () => navigate("/template"),
2125
+ children: "Visualizar"
2126
+ }
2127
+ ) })
2128
+ ] }) })
2129
+ ] }) }) }) })
2130
+ ]
2131
+ }
2132
+ );
2133
+ }
2134
+ const richSuggestions = [
2135
+ { id: "chart-1", text: "Ver análise de desempenho" },
2136
+ { id: "table-1", text: "Gerar relatório do projeto" },
2137
+ { id: "doc-1", text: "Criar documento de requisitos" },
2138
+ { id: "pod-1", text: "Gerar podcast de resumo diário" }
2139
+ ];
2140
+ const feedbackOptions = [
2141
+ "Não era o que eu estava procurando",
2142
+ "Informações incorretas",
2143
+ "Resposta incompleta"
2144
+ ];
2145
+ function HomePage({ user, onLogout }) {
2146
+ const { sidebarExpanded, sidebarWidth, assistenteExpanded, toggleSidebar, toggleAssistente, toggleAssistenteWithTab } = useLayout();
2147
+ const location = useLocation();
2148
+ const navigate = useNavigate();
2149
+ return /* @__PURE__ */ jsxs("div", { className: "h-screen flex bg-muted overflow-hidden relative", children: [
2150
+ /* @__PURE__ */ jsx(
2151
+ Sidebar,
2152
+ {
2153
+ expanded: sidebarExpanded,
2154
+ width: sidebarWidth,
2155
+ onToggle: toggleSidebar,
2156
+ user: {
2157
+ ...user,
2158
+ name: "Ariel Santos",
2159
+ avatar: "https://github.com/shadcn.png"
2160
+ },
2161
+ onLogout,
2162
+ onSettingsClick: () => navigate("/settings"),
2163
+ location,
2164
+ navigate,
2165
+ routes
2166
+ }
2167
+ ),
2168
+ /* @__PURE__ */ jsx(
2169
+ HomeContent,
2170
+ {
2171
+ user,
2172
+ onLogout,
2173
+ onSettings: () => navigate("/settings")
2174
+ }
2175
+ ),
2176
+ /* @__PURE__ */ jsx(
2177
+ XerticaAssistant,
2178
+ {
2179
+ isExpanded: assistenteExpanded,
2180
+ onToggle: toggleAssistente,
2181
+ defaultTab: "chat",
2182
+ demoMode: true,
2183
+ responseGenerator: gerarResposta,
2184
+ richSuggestions,
2185
+ feedbackOptions,
2186
+ onEvaluation: () => {
2187
+ }
2188
+ }
2189
+ )
2190
+ ] });
2191
+ }
2192
+ function LoginPage({ onLogin }) {
2193
+ const navigate = useNavigate();
2194
+ const [email, setEmail] = useState("");
2195
+ const [password, setPassword] = useState("");
2196
+ const [isLoading, setIsLoading] = useState(false);
2197
+ const [error, setError] = useState("");
2198
+ const handleSubmit = async (e5) => {
2199
+ e5.preventDefault();
2200
+ setError("");
2201
+ setIsLoading(true);
2202
+ await new Promise((resolve) => setTimeout(resolve, 1e3));
2203
+ const success = onLogin(email, password);
2204
+ if (!success) {
2205
+ setError("Por favor, preencha todos os campos");
2206
+ }
2207
+ setIsLoading(false);
2208
+ };
2209
+ const handleSocialLogin = (_provider) => {
2210
+ onLogin("social@user.com", "social-auth");
2211
+ };
2212
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen flex", children: [
2213
+ /* @__PURE__ */ jsxs("div", { className: "hidden lg:flex lg:flex-1 relative overflow-hidden", children: [
2214
+ /* @__PURE__ */ jsx(
2215
+ ImageWithFallback,
2216
+ {
2217
+ src: "https://images.unsplash.com/photo-1551434678-e076c223a692?w=1200&h=800&fit=crop&auto=format",
2218
+ alt: "Equipe trabalhando com tecnologia",
2219
+ className: "absolute inset-0 w-full h-full object-cover"
2220
+ }
2221
+ ),
2222
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-[image:var(--gradient-diagonal)] opacity-80" })
2223
+ ] }),
2224
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex items-center justify-center px-4 sm:px-6 lg:px-8 lg:flex-none lg:w-1/2 relative bg-muted", children: [
2225
+ /* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-20", children: /* @__PURE__ */ jsx(LanguageSelector, { variant: "minimal", showIcon: false }) }),
2226
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 lg:hidden bg-[image:var(--gradient-diagonal)] opacity-10 dark:opacity-5" }),
2227
+ /* @__PURE__ */ jsxs("div", { className: "w-full max-w-sm space-y-6 relative z-10", children: [
2228
+ /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
2229
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center mb-4", children: /* @__PURE__ */ jsx(
2230
+ XerticaLogo,
2231
+ {
2232
+ className: "h-12 w-auto text-primary dark:text-foreground",
2233
+ variant: "theme"
2234
+ }
2235
+ ) }),
2236
+ /* @__PURE__ */ jsx("h2", { className: "text-sm text-muted-foreground", children: "Acesse sua conta" })
2237
+ ] }),
2238
+ /* @__PURE__ */ jsxs("form", { className: "space-y-6", onSubmit: handleSubmit, children: [
2239
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2240
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "E-mail" }),
2241
+ /* @__PURE__ */ jsx(
2242
+ Input,
2243
+ {
2244
+ id: "email",
2245
+ name: "email",
2246
+ type: "email",
2247
+ required: true,
2248
+ className: "w-full",
2249
+ placeholder: "seu@email.com",
2250
+ value: email,
2251
+ onChange: (e5) => setEmail(e5.target.value)
2252
+ }
2253
+ )
2254
+ ] }),
2255
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2256
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "Senha" }),
2257
+ /* @__PURE__ */ jsx(
2258
+ Input,
2259
+ {
2260
+ id: "password",
2261
+ name: "password",
2262
+ type: "password",
2263
+ required: true,
2264
+ className: "w-full",
2265
+ placeholder: "••••••••",
2266
+ value: password,
2267
+ onChange: (e5) => setPassword(e5.target.value)
2268
+ }
2269
+ )
2270
+ ] }),
2271
+ error && /* @__PURE__ */ jsx("div", { className: "text-destructive text-sm text-center", children: error }),
2272
+ /* @__PURE__ */ jsx(
2273
+ Button,
2274
+ {
2275
+ type: "submit",
2276
+ className: "w-full",
2277
+ disabled: isLoading,
2278
+ children: isLoading ? "Entrando..." : "Entrar"
2279
+ }
2280
+ ),
2281
+ /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx(
2282
+ "button",
2283
+ {
2284
+ type: "button",
2285
+ onClick: () => navigate("/forgot-password"),
2286
+ className: "text-sm text-primary hover:opacity-80 transition-colors",
2287
+ children: "Esqueceu sua senha?"
2288
+ }
2289
+ ) })
2290
+ ] }),
2291
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
2292
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className: "w-full border-t border-border" }) }),
2293
+ /* @__PURE__ */ jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: "ou continue com" }) })
2294
+ ] }),
2295
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
2296
+ /* @__PURE__ */ jsxs(
2297
+ Button,
2298
+ {
2299
+ type: "button",
2300
+ variant: "outline",
2301
+ className: "w-full justify-center",
2302
+ onClick: () => handleSocialLogin(),
2303
+ children: [
2304
+ /* @__PURE__ */ jsxs("svg", { className: "w-5 h-5 mr-2", viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", children: [
2305
+ /* @__PURE__ */ 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" }),
2306
+ /* @__PURE__ */ 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" }),
2307
+ /* @__PURE__ */ 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" }),
2308
+ /* @__PURE__ */ 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" }),
2309
+ /* @__PURE__ */ jsx("path", { fill: "none", d: "M0 0h48v48H0z" })
2310
+ ] }),
2311
+ /* @__PURE__ */ jsx("span", { children: "Entrar com Google" })
2312
+ ]
2313
+ }
2314
+ ),
2315
+ /* @__PURE__ */ jsxs(
2316
+ Button,
2317
+ {
2318
+ type: "button",
2319
+ variant: "outline",
2320
+ className: "w-full justify-center",
2321
+ onClick: () => handleSocialLogin(),
2322
+ children: [
2323
+ /* @__PURE__ */ jsx(Lock, { className: "w-5 h-5 mr-2 text-[var(--chart-4)]" }),
2324
+ /* @__PURE__ */ jsx("span", { children: "Entrar com MT Login" })
2325
+ ]
2326
+ }
2327
+ ),
2328
+ /* @__PURE__ */ jsx(
2329
+ Button,
2330
+ {
2331
+ type: "button",
2332
+ variant: "outline",
2333
+ className: "w-full justify-center font-normal",
2334
+ onClick: () => handleSocialLogin(),
2335
+ children: /* @__PURE__ */ jsxs("span", { children: [
2336
+ "Entrar com ",
2337
+ /* @__PURE__ */ jsx("strong", { className: "font-semibold", children: "gov.br" })
2338
+ ] })
2339
+ }
2340
+ )
2341
+ ] })
2342
+ ] })
2343
+ ] })
2344
+ ] });
2345
+ }
2346
+ function ForgotPasswordPage() {
2347
+ const navigate = useNavigate();
2348
+ const [email, setEmail] = useState("");
2349
+ const [isLoading, setIsLoading] = useState(false);
2350
+ const handleSubmit = async (e5) => {
2351
+ e5.preventDefault();
2352
+ setIsLoading(true);
2353
+ await new Promise((resolve) => setTimeout(resolve, 1500));
2354
+ navigate("/verify-email", { state: { email } });
2355
+ setIsLoading(false);
2356
+ };
2357
+ const handleSocialLogin = (_provider) => {
2358
+ };
2359
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen flex", children: [
2360
+ /* @__PURE__ */ jsxs("div", { className: "hidden lg:flex lg:flex-1 relative overflow-hidden", children: [
2361
+ /* @__PURE__ */ jsx(
2362
+ ImageWithFallback,
2363
+ {
2364
+ src: "https://images.unsplash.com/photo-1557804506-669a67965ba0?w=1200&h=800&fit=crop&auto=format",
2365
+ alt: "Segurança e tecnologia",
2366
+ className: "absolute inset-0 w-full h-full object-cover"
2367
+ }
2368
+ ),
2369
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-[image:var(--gradient-diagonal)] opacity-80" })
2370
+ ] }),
2371
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex items-center justify-center px-4 sm:px-6 lg:px-8 lg:flex-none lg:w-1/2 relative bg-muted", children: [
2372
+ /* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-20", children: /* @__PURE__ */ jsx(LanguageSelector, { variant: "minimal", showIcon: false }) }),
2373
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 lg:hidden bg-[image:var(--gradient-diagonal)] opacity-10 dark:opacity-5" }),
2374
+ /* @__PURE__ */ jsxs("div", { className: "w-full max-w-sm space-y-6 relative z-10", children: [
2375
+ /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
2376
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center mb-4", children: /* @__PURE__ */ jsx(
2377
+ XerticaLogo,
2378
+ {
2379
+ className: "h-12 w-auto text-primary dark:text-foreground",
2380
+ variant: "theme"
2381
+ }
2382
+ ) }),
2383
+ /* @__PURE__ */ jsx("h2", { className: "text-sm text-muted-foreground", children: "Recuperar senha" }),
2384
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-muted-foreground", children: "Digite seu e-mail e enviaremos as instruções para redefinir sua senha" })
2385
+ ] }),
2386
+ /* @__PURE__ */ jsxs("form", { className: "space-y-6", onSubmit: handleSubmit, children: [
2387
+ /* @__PURE__ */ jsxs("div", { className: "form-group space-y-2", children: [
2388
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", className: "form-label", children: "E-mail" }),
2389
+ /* @__PURE__ */ jsx(
2390
+ Input,
2391
+ {
2392
+ id: "email",
2393
+ name: "email",
2394
+ type: "email",
2395
+ required: true,
2396
+ className: "w-full",
2397
+ placeholder: "seu@email.com",
2398
+ value: email,
2399
+ onChange: (e5) => setEmail(e5.target.value)
2400
+ }
2401
+ )
2402
+ ] }),
2403
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
2404
+ /* @__PURE__ */ jsx(
2405
+ Button,
2406
+ {
2407
+ type: "submit",
2408
+ className: "w-full",
2409
+ disabled: isLoading,
2410
+ children: isLoading ? "Enviando..." : "Enviar instruções"
2411
+ }
2412
+ ),
2413
+ /* @__PURE__ */ jsxs(
2414
+ Button,
2415
+ {
2416
+ type: "button",
2417
+ onClick: () => navigate("/login"),
2418
+ variant: "outline",
2419
+ className: "w-full text-muted-foreground hover:text-foreground",
2420
+ children: [
2421
+ /* @__PURE__ */ jsx(ArrowLeft, { className: "w-4 h-4 mr-2" }),
2422
+ "Voltar para o login"
2423
+ ]
2424
+ }
2425
+ )
2426
+ ] })
2427
+ ] }),
2428
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
2429
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className: "w-full border-t border-border" }) }),
2430
+ /* @__PURE__ */ jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: "ou continue com" }) })
2431
+ ] }),
2432
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
2433
+ /* @__PURE__ */ jsxs(
2434
+ Button,
2435
+ {
2436
+ type: "button",
2437
+ variant: "outline",
2438
+ className: "w-full justify-center",
2439
+ onClick: () => handleSocialLogin(),
2440
+ children: [
2441
+ /* @__PURE__ */ jsxs("svg", { className: "w-5 h-5 mr-2", viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", children: [
2442
+ /* @__PURE__ */ 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" }),
2443
+ /* @__PURE__ */ 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" }),
2444
+ /* @__PURE__ */ 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" }),
2445
+ /* @__PURE__ */ 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" }),
2446
+ /* @__PURE__ */ jsx("path", { fill: "none", d: "M0 0h48v48H0z" })
2447
+ ] }),
2448
+ /* @__PURE__ */ jsx("span", { children: "Entrar com Google" })
2449
+ ]
2450
+ }
2451
+ ),
2452
+ /* @__PURE__ */ jsxs(
2453
+ Button,
2454
+ {
2455
+ type: "button",
2456
+ variant: "outline",
2457
+ className: "w-full justify-center",
2458
+ onClick: () => handleSocialLogin(),
2459
+ children: [
2460
+ /* @__PURE__ */ jsx(Lock, { className: "w-5 h-5 mr-2 text-[var(--chart-4)]" }),
2461
+ /* @__PURE__ */ jsx("span", { children: "Entrar com MT Login" })
2462
+ ]
2463
+ }
2464
+ ),
2465
+ /* @__PURE__ */ jsx(
2466
+ Button,
2467
+ {
2468
+ type: "button",
2469
+ variant: "outline",
2470
+ className: "w-full justify-center font-normal",
2471
+ onClick: () => handleSocialLogin(),
2472
+ children: /* @__PURE__ */ jsxs("span", { children: [
2473
+ "Entrar com ",
2474
+ /* @__PURE__ */ jsx("strong", { className: "font-semibold", children: "gov.br" })
2475
+ ] })
2476
+ }
2477
+ )
2478
+ ] })
2479
+ ] })
2480
+ ] })
2481
+ ] });
2482
+ }
2483
+ function VerifyEmailPage() {
2484
+ var _a;
2485
+ const navigate = useNavigate();
2486
+ const location = useLocation();
2487
+ const email = ((_a = location.state) == null ? void 0 : _a.email) || "your@email.com";
2488
+ const [isResending, setIsResending] = useState(false);
2489
+ const [resendSuccess, setResendSuccess] = useState(false);
2490
+ const handleResend = async () => {
2491
+ setIsResending(true);
2492
+ setResendSuccess(false);
2493
+ await new Promise((resolve) => setTimeout(resolve, 1500));
2494
+ setIsResending(false);
2495
+ setResendSuccess(true);
2496
+ setTimeout(() => setResendSuccess(false), 3e3);
2497
+ };
2498
+ const handleSocialLogin = (_provider) => {
2499
+ };
2500
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen flex", children: [
2501
+ /* @__PURE__ */ jsxs("div", { className: "hidden lg:flex lg:flex-1 relative overflow-hidden", children: [
2502
+ /* @__PURE__ */ jsx(
2503
+ ImageWithFallback,
2504
+ {
2505
+ src: "https://images.unsplash.com/photo-1563986768609-322da13575f3?w=1200&h=800&fit=crop&auto=format",
2506
+ alt: "E-mail e comunicação",
2507
+ className: "absolute inset-0 w-full h-full object-cover"
2508
+ }
2509
+ ),
2510
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-[image:var(--gradient-diagonal)] opacity-80" })
2511
+ ] }),
2512
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex items-center justify-center px-4 sm:px-6 lg:px-8 lg:flex-none lg:w-1/2 relative bg-muted", children: [
2513
+ /* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-20", children: /* @__PURE__ */ jsx(LanguageSelector, { variant: "minimal", showIcon: false }) }),
2514
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 lg:hidden bg-[image:var(--gradient-diagonal)] opacity-10 dark:opacity-5" }),
2515
+ /* @__PURE__ */ jsxs("div", { className: "w-full max-w-sm space-y-6 relative z-10", children: [
2516
+ /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
2517
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center mb-4", children: /* @__PURE__ */ jsx(
2518
+ XerticaLogo,
2519
+ {
2520
+ className: "h-12 w-auto text-primary dark:text-foreground",
2521
+ variant: "theme"
2522
+ }
2523
+ ) }),
2524
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center mb-4", children: /* @__PURE__ */ jsx("div", { className: "p-4 bg-primary/10 rounded-[var(--radius)]", children: /* @__PURE__ */ jsx(Mail, { className: "w-12 h-12 text-primary" }) }) }),
2525
+ /* @__PURE__ */ jsx("h2", { className: "text-sm text-muted-foreground", children: "Verifique seu e-mail" }),
2526
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-muted-foreground", children: "Enviamos as instruções para redefinir sua senha para:" }),
2527
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-primary", children: email })
2528
+ ] }),
2529
+ /* @__PURE__ */ jsxs("div", { className: "bg-accent rounded-[var(--radius)] p-4 space-y-3", children: [
2530
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: "Siga as instruções no e-mail para redefinir sua senha. O link expira em 24 horas." }),
2531
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-muted-foreground", children: [
2532
+ /* @__PURE__ */ jsx(CheckCircle2, { className: "w-4 h-4 mt-0.5 flex-shrink-0 text-[var(--chart-2)]" }),
2533
+ /* @__PURE__ */ jsx("span", { className: "text-sm", children: "Verifique sua pasta de spam se não encontrar o e-mail" })
2534
+ ] })
2535
+ ] }),
2536
+ resendSuccess && /* @__PURE__ */ 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: [
2537
+ /* @__PURE__ */ jsx(CheckCircle2, { className: "w-5 h-5 text-[var(--chart-2)] flex-shrink-0" }),
2538
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-[var(--chart-2)]", children: "E-mail reenviado com sucesso!" })
2539
+ ] }),
2540
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
2541
+ /* @__PURE__ */ jsx("p", { className: "text-center text-muted-foreground", children: "Não recebeu o e-mail?" }),
2542
+ /* @__PURE__ */ jsx(
2543
+ Button,
2544
+ {
2545
+ variant: "outline",
2546
+ className: "w-full",
2547
+ onClick: handleResend,
2548
+ disabled: isResending,
2549
+ children: isResending ? "Reenviando..." : "Reenviar e-mail"
2550
+ }
2551
+ ),
2552
+ /* @__PURE__ */ jsxs(
2553
+ Button,
2554
+ {
2555
+ type: "button",
2556
+ onClick: () => navigate("/login"),
2557
+ variant: "outline",
2558
+ className: "w-full text-muted-foreground hover:text-foreground",
2559
+ children: [
2560
+ /* @__PURE__ */ jsx(ArrowLeft, { className: "w-4 h-4 mr-2" }),
2561
+ "Voltar para o login"
2562
+ ]
2563
+ }
2564
+ )
2565
+ ] }),
2566
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
2567
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className: "w-full border-t border-border" }) }),
2568
+ /* @__PURE__ */ jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsx("span", { className: "bg-muted px-2 text-muted-foreground", children: "ou continue com" }) })
2569
+ ] }),
2570
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
2571
+ /* @__PURE__ */ jsxs(
2572
+ Button,
2573
+ {
2574
+ type: "button",
2575
+ variant: "outline",
2576
+ className: "w-full justify-center",
2577
+ onClick: () => handleSocialLogin(),
2578
+ children: [
2579
+ /* @__PURE__ */ jsxs("svg", { className: "w-5 h-5 mr-2", viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", children: [
2580
+ /* @__PURE__ */ 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" }),
2581
+ /* @__PURE__ */ 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" }),
2582
+ /* @__PURE__ */ 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" }),
2583
+ /* @__PURE__ */ 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" }),
2584
+ /* @__PURE__ */ jsx("path", { fill: "none", d: "M0 0h48v48H0z" })
2585
+ ] }),
2586
+ /* @__PURE__ */ jsx("span", { children: "Entrar com Google" })
2587
+ ]
2588
+ }
2589
+ ),
2590
+ /* @__PURE__ */ jsxs(
2591
+ Button,
2592
+ {
2593
+ type: "button",
2594
+ variant: "outline",
2595
+ className: "w-full justify-center",
2596
+ onClick: () => handleSocialLogin(),
2597
+ children: [
2598
+ /* @__PURE__ */ jsx(Lock, { className: "w-5 h-5 mr-2 text-[var(--chart-4)]" }),
2599
+ /* @__PURE__ */ jsx("span", { children: "Entrar com MT Login" })
2600
+ ]
2601
+ }
2602
+ ),
2603
+ /* @__PURE__ */ jsx(
2604
+ Button,
2605
+ {
2606
+ type: "button",
2607
+ variant: "outline",
2608
+ className: "w-full justify-center font-normal",
2609
+ onClick: () => handleSocialLogin(),
2610
+ children: /* @__PURE__ */ jsxs("span", { children: [
2611
+ "Entrar com ",
2612
+ /* @__PURE__ */ jsx("strong", { className: "font-semibold", children: "gov.br" })
2613
+ ] })
2614
+ }
2615
+ )
2616
+ ] })
2617
+ ] })
2618
+ ] })
2619
+ ] });
2620
+ }
2621
+ function ResetPasswordPage() {
2622
+ const navigate = useNavigate();
2623
+ const [password, setPassword] = useState("");
2624
+ const [confirmPassword, setConfirmPassword] = useState("");
2625
+ const [isLoading, setIsLoading] = useState(false);
2626
+ const [error, setError] = useState("");
2627
+ const [passwordStrength, setPasswordStrength] = useState(null);
2628
+ const checkPasswordStrength = (pwd) => {
2629
+ if (pwd.length === 0) {
2630
+ setPasswordStrength(null);
2631
+ return;
2632
+ }
2633
+ if (pwd.length < 6) {
2634
+ setPasswordStrength("weak");
2635
+ } else if (pwd.length < 10) {
2636
+ setPasswordStrength("medium");
2637
+ } else {
2638
+ setPasswordStrength("strong");
2639
+ }
2640
+ };
2641
+ const handlePasswordChange = (value) => {
2642
+ setPassword(value);
2643
+ checkPasswordStrength(value);
2644
+ setError("");
2645
+ };
2646
+ const handleSubmit = async (e5) => {
2647
+ e5.preventDefault();
2648
+ setError("");
2649
+ if (password.length < 6) {
2650
+ setError("A senha deve ter pelo menos 6 caracteres");
2651
+ return;
2652
+ }
2653
+ if (password !== confirmPassword) {
2654
+ setError("As senhas não coincidem");
2655
+ return;
2656
+ }
2657
+ setIsLoading(true);
2658
+ await new Promise((resolve) => setTimeout(resolve, 1500));
2659
+ navigate("/login", { state: { resetSuccess: true } });
2660
+ setIsLoading(false);
2661
+ };
2662
+ const getStrengthColor = () => {
2663
+ switch (passwordStrength) {
2664
+ case "weak":
2665
+ return "text-destructive";
2666
+ case "medium":
2667
+ return "text-[var(--chart-3)]";
2668
+ case "strong":
2669
+ return "text-[var(--chart-2)]";
2670
+ default:
2671
+ return "text-muted-foreground";
2672
+ }
2673
+ };
2674
+ const getStrengthText = () => {
2675
+ switch (passwordStrength) {
2676
+ case "weak":
2677
+ return "Senha fraca";
2678
+ case "medium":
2679
+ return "Senha média";
2680
+ case "strong":
2681
+ return "Senha forte";
2682
+ default:
2683
+ return "";
2684
+ }
2685
+ };
2686
+ return /* @__PURE__ */ jsxs("div", { className: "min-h-screen flex", children: [
2687
+ /* @__PURE__ */ jsxs("div", { className: "hidden lg:flex lg:flex-1 relative overflow-hidden", children: [
2688
+ /* @__PURE__ */ jsx(
2689
+ ImageWithFallback,
2690
+ {
2691
+ src: "https://images.unsplash.com/photo-1555949963-aa79dcee981c?w=1200&h=800&fit=crop&auto=format",
2692
+ alt: "Segurança e proteção",
2693
+ className: "absolute inset-0 w-full h-full object-cover"
2694
+ }
2695
+ ),
2696
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-[image:var(--gradient-diagonal)] opacity-80" })
2697
+ ] }),
2698
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex items-center justify-center px-4 sm:px-6 lg:px-8 lg:flex-none lg:w-1/2 relative bg-muted", children: [
2699
+ /* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-20", children: /* @__PURE__ */ jsx(LanguageSelector, { variant: "minimal", showIcon: false }) }),
2700
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 lg:hidden bg-[image:var(--gradient-diagonal)] opacity-10 dark:opacity-5" }),
2701
+ /* @__PURE__ */ jsxs("div", { className: "w-full max-w-sm space-y-6 relative z-10", children: [
2702
+ /* @__PURE__ */ jsxs(
2703
+ "button",
2704
+ {
2705
+ onClick: () => navigate("/login"),
2706
+ className: "flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors",
2707
+ children: [
2708
+ /* @__PURE__ */ jsx(ArrowLeft, { className: "w-4 h-4" }),
2709
+ /* @__PURE__ */ jsx("span", { className: "text-small", children: "Voltar para o login" })
2710
+ ]
2711
+ }
2712
+ ),
2713
+ /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
2714
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center mb-4", children: /* @__PURE__ */ jsx(
2715
+ XerticaLogo,
2716
+ {
2717
+ className: "h-12 w-auto text-primary dark:text-foreground",
2718
+ variant: "theme"
2719
+ }
2720
+ ) }),
2721
+ /* @__PURE__ */ jsx("h2", { className: "text-sm text-muted-foreground", children: "Redefinir senha" }),
2722
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-muted-foreground", children: "Crie uma nova senha segura para sua conta" })
2723
+ ] }),
2724
+ /* @__PURE__ */ jsxs("form", { className: "space-y-6", onSubmit: handleSubmit, children: [
2725
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2726
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "Nova senha" }),
2727
+ /* @__PURE__ */ jsx(
2728
+ Input,
2729
+ {
2730
+ id: "password",
2731
+ name: "password",
2732
+ type: "password",
2733
+ required: true,
2734
+ className: "w-full",
2735
+ placeholder: "••••••••",
2736
+ value: password,
2737
+ onChange: (e5) => handlePasswordChange(e5.target.value)
2738
+ }
2739
+ ),
2740
+ passwordStrength && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2741
+ /* @__PURE__ */ jsx("div", { className: "flex-1 h-1 bg-muted rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
2742
+ "div",
2743
+ {
2744
+ className: `h-full transition-all duration-300 ${passwordStrength === "weak" ? "w-1/3 bg-destructive" : passwordStrength === "medium" ? "w-2/3 bg-[var(--chart-3)]" : "w-full bg-[var(--chart-2)]"}`
2745
+ }
2746
+ ) }),
2747
+ /* @__PURE__ */ jsx("span", { className: `text-small ${getStrengthColor()}`, children: getStrengthText() })
2748
+ ] })
2749
+ ] }),
2750
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2751
+ /* @__PURE__ */ jsx(Label, { htmlFor: "confirmPassword", children: "Confirmar senha" }),
2752
+ /* @__PURE__ */ jsx(
2753
+ Input,
2754
+ {
2755
+ id: "confirmPassword",
2756
+ name: "confirmPassword",
2757
+ type: "password",
2758
+ required: true,
2759
+ className: "w-full",
2760
+ placeholder: "••••••••",
2761
+ value: confirmPassword,
2762
+ onChange: (e5) => {
2763
+ setConfirmPassword(e5.target.value);
2764
+ setError("");
2765
+ }
2766
+ }
2767
+ )
2768
+ ] }),
2769
+ /* @__PURE__ */ jsxs("div", { className: "bg-accent rounded-[var(--radius)] p-4 space-y-2", children: [
2770
+ /* @__PURE__ */ jsx("p", { className: "text-sm", children: "Requisitos de senha:" }),
2771
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
2772
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2773
+ /* @__PURE__ */ jsx(
2774
+ CheckCircle2,
2775
+ {
2776
+ className: `w-4 h-4 ${password.length >= 6 ? "text-[var(--chart-2)]" : "text-muted-foreground"}`
2777
+ }
2778
+ ),
2779
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Mínimo de 6 caracteres" })
2780
+ ] }),
2781
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2782
+ /* @__PURE__ */ jsx(
2783
+ CheckCircle2,
2784
+ {
2785
+ className: `w-4 h-4 ${password === confirmPassword && password.length > 0 ? "text-[var(--chart-2)]" : "text-muted-foreground"}`
2786
+ }
2787
+ ),
2788
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "As senhas coincidem" })
2789
+ ] })
2790
+ ] })
2791
+ ] }),
2792
+ error && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-destructive bg-destructive/10 rounded-[var(--radius)] p-3", children: [
2793
+ /* @__PURE__ */ jsx(AlertCircle, { className: "w-4 h-4 flex-shrink-0" }),
2794
+ /* @__PURE__ */ jsx("span", { className: "text-sm", children: error })
2795
+ ] }),
2796
+ /* @__PURE__ */ jsx(
2797
+ Button,
2798
+ {
2799
+ type: "submit",
2800
+ className: "w-full",
2801
+ disabled: isLoading,
2802
+ children: isLoading ? "Redefinindo..." : "Redefinir senha"
2803
+ }
2804
+ )
2805
+ ] })
2806
+ ] })
2807
+ ] })
2808
+ ] });
2809
+ }
2066
2810
  export {
2067
2811
  A as Accordion,
2068
2812
  a4 as AccordionContent,
@@ -2086,7 +2830,7 @@ export {
2086
2830
  s as AssistantChart,
2087
2831
  A3 as AudioPlayer,
2088
2832
  A2 as Avatar,
2089
- a11 as AvatarFallback,
2833
+ a12 as AvatarFallback,
2090
2834
  b12 as AvatarImage,
2091
2835
  Badge,
2092
2836
  B as Breadcrumb,
@@ -2094,7 +2838,7 @@ export {
2094
2838
  d4 as BreadcrumbItem,
2095
2839
  e3 as BreadcrumbLink,
2096
2840
  f3 as BreadcrumbList,
2097
- g5 as BreadcrumbPage,
2841
+ g3 as BreadcrumbPage,
2098
2842
  h as BreadcrumbSeparator,
2099
2843
  Button,
2100
2844
  C2 as Calendar,
@@ -2147,7 +2891,7 @@ export {
2147
2891
  a7 as ContextMenuTrigger,
2148
2892
  Dialog,
2149
2893
  f2 as DialogBody,
2150
- g4 as DialogClose,
2894
+ g2 as DialogClose,
2151
2895
  DialogContent,
2152
2896
  DialogDescription,
2153
2897
  DialogFooter,
@@ -2167,13 +2911,13 @@ export {
2167
2911
  ag as DrawerTitle,
2168
2912
  ah as DrawerTrigger,
2169
2913
  D2 as DropdownMenu,
2170
- a12 as DropdownMenuCheckboxItem,
2914
+ a13 as DropdownMenuCheckboxItem,
2171
2915
  b13 as DropdownMenuContent,
2172
2916
  c6 as DropdownMenuGroup,
2173
2917
  d5 as DropdownMenuItem,
2174
2918
  e4 as DropdownMenuLabel,
2175
2919
  f4 as DropdownMenuPortal,
2176
- g6 as DropdownMenuRadioGroup,
2920
+ g4 as DropdownMenuRadioGroup,
2177
2921
  h2 as DropdownMenuRadioItem,
2178
2922
  i as DropdownMenuSeparator,
2179
2923
  j as DropdownMenuShortcut,
@@ -2189,6 +2933,7 @@ export {
2189
2933
  an as EmptyTitle,
2190
2934
  ao as FileUpload,
2191
2935
  F3 as FloatingMediaWrapper,
2936
+ ForgotPasswordPage,
2192
2937
  ap as Form,
2193
2938
  aq as FormControl,
2194
2939
  ar as FormDescription,
@@ -2199,18 +2944,21 @@ export {
2199
2944
  F as FormattedDocument,
2200
2945
  G2 as GoogleMapsLoaderProvider,
2201
2946
  Header,
2947
+ HomeContent,
2948
+ HomePage,
2202
2949
  aw as HoverCard,
2203
2950
  ax as HoverCardContent,
2204
2951
  ay as HoverCardTrigger,
2205
- az as ImageWithFallback,
2952
+ ImageWithFallback,
2206
2953
  Input,
2207
2954
  aA as InputOTP,
2208
2955
  aB as InputOTPGroup,
2209
2956
  aC as InputOTPSeparator,
2210
2957
  aD as InputOTPSlot,
2211
2958
  Label,
2212
- L3 as LanguageSelector,
2959
+ LanguageSelector,
2213
2960
  L2 as LayoutProvider,
2961
+ LoginPage,
2214
2962
  Map,
2215
2963
  M as MarkdownMessage,
2216
2964
  aG as Menubar,
@@ -2256,6 +3004,7 @@ export {
2256
3004
  RadioGroup,
2257
3005
  RadioGroupItem,
2258
3006
  bg as Rating,
3007
+ ResetPasswordPage,
2259
3008
  bh as ResizableHandle,
2260
3009
  bi as ResizablePanel,
2261
3010
  bj as ResizablePanelGroup,
@@ -2271,7 +3020,7 @@ export {
2271
3020
  d2 as SelectLabel,
2272
3021
  e as SelectScrollDownButton,
2273
3022
  f as SelectScrollUpButton,
2274
- g3 as SelectSeparator,
3023
+ g as SelectSeparator,
2275
3024
  SelectTrigger,
2276
3025
  SelectValue,
2277
3026
  Separator,
@@ -2305,7 +3054,7 @@ export {
2305
3054
  TabsTrigger,
2306
3055
  TemplatePage,
2307
3056
  Textarea,
2308
- T4 as ThemeToggle,
3057
+ T3 as ThemeToggle,
2309
3058
  bF as Timeline,
2310
3059
  bG as TimelineContent,
2311
3060
  bH as TimelineDescription,
@@ -2313,7 +3062,7 @@ export {
2313
3062
  bJ as TimelineHeading,
2314
3063
  bK as TimelineItem,
2315
3064
  bL as TimelineTime,
2316
- T3 as Toaster,
3065
+ T4 as Toaster,
2317
3066
  bM as Toggle,
2318
3067
  bN as ToggleGroup,
2319
3068
  bO as ToggleGroupItem,
@@ -2322,17 +3071,18 @@ export {
2322
3071
  b as TooltipProvider,
2323
3072
  c as TooltipTrigger,
2324
3073
  bP as TreeView,
3074
+ VerifyEmailPage,
2325
3075
  V2 as VideoPlayer,
2326
3076
  XerticaAssistant,
2327
- X4 as XerticaLogo,
2328
- X5 as XerticaOrbe,
3077
+ XerticaLogo,
3078
+ X4 as XerticaOrbe,
2329
3079
  X as XerticaProvider,
2330
- a13 as XerticaXLogo,
3080
+ a11 as XerticaXLogo,
2331
3081
  bQ as badgeVariants,
2332
3082
  d as buttonVariants,
2333
3083
  cn,
2334
- g as generateDemoResponse,
2335
- g2 as gerarResposta,
3084
+ gerarResposta as generateDemoResponse,
3085
+ gerarResposta,
2336
3086
  bR as navigationMenuTriggerStyle,
2337
3087
  r2 as reloadGoogleMaps,
2338
3088
  bS as toggleVariants,