@snksergio/design-system 0.1.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 (73) hide show
  1. package/README.md +260 -0
  2. package/dist-lib/chunks/app-shell-BNTvOETJ.mjs +2681 -0
  3. package/dist-lib/chunks/app-shell-BNTvOETJ.mjs.map +1 -0
  4. package/dist-lib/chunks/app-shell-CDy42aNI.mjs +2663 -0
  5. package/dist-lib/chunks/app-shell-CDy42aNI.mjs.map +1 -0
  6. package/dist-lib/chunks/app-shell-mocks-kWIVSzLs.mjs +208 -0
  7. package/dist-lib/chunks/app-shell-mocks-kWIVSzLs.mjs.map +1 -0
  8. package/dist-lib/chunks/app-shell-mocks-oO_IV3Gw.mjs +207 -0
  9. package/dist-lib/chunks/app-shell-mocks-oO_IV3Gw.mjs.map +1 -0
  10. package/dist-lib/chunks/badge-B_2Zt52o.mjs +797 -0
  11. package/dist-lib/chunks/badge-B_2Zt52o.mjs.map +1 -0
  12. package/dist-lib/chunks/badge-DKpXURa1.mjs +813 -0
  13. package/dist-lib/chunks/badge-DKpXURa1.mjs.map +1 -0
  14. package/dist-lib/chunks/chat-v2-mocks-BV9Wha_Z.mjs +192 -0
  15. package/dist-lib/chunks/chat-v2-mocks-BV9Wha_Z.mjs.map +1 -0
  16. package/dist-lib/chunks/chat-v2-mocks-DvZRkhmz.mjs +193 -0
  17. package/dist-lib/chunks/chat-v2-mocks-DvZRkhmz.mjs.map +1 -0
  18. package/dist-lib/chunks/chip-group-CsKBBHW2.mjs +796 -0
  19. package/dist-lib/chunks/chip-group-CsKBBHW2.mjs.map +1 -0
  20. package/dist-lib/chunks/chip-group-D3D0i72q.mjs +780 -0
  21. package/dist-lib/chunks/chip-group-D3D0i72q.mjs.map +1 -0
  22. package/dist-lib/chunks/clientes-showcase-mocks-BMfbNNJh.mjs +185 -0
  23. package/dist-lib/chunks/clientes-showcase-mocks-BMfbNNJh.mjs.map +1 -0
  24. package/dist-lib/chunks/clientes-showcase-mocks-Cq9u3nGZ.mjs +169 -0
  25. package/dist-lib/chunks/clientes-showcase-mocks-Cq9u3nGZ.mjs.map +1 -0
  26. package/dist-lib/chunks/input-374MpdBL.mjs +72 -0
  27. package/dist-lib/chunks/input-374MpdBL.mjs.map +1 -0
  28. package/dist-lib/chunks/input-DF4XAWmr.mjs +56 -0
  29. package/dist-lib/chunks/input-DF4XAWmr.mjs.map +1 -0
  30. package/dist-lib/chunks/page-header-Dw-3wqAG.mjs +75 -0
  31. package/dist-lib/chunks/page-header-Dw-3wqAG.mjs.map +1 -0
  32. package/dist-lib/chunks/page-header-mC1gGtOI.mjs +76 -0
  33. package/dist-lib/chunks/page-header-mC1gGtOI.mjs.map +1 -0
  34. package/dist-lib/chunks/panel-Ds15whqp.mjs +9717 -0
  35. package/dist-lib/chunks/panel-Ds15whqp.mjs.map +1 -0
  36. package/dist-lib/chunks/panel-bzNmFlEZ.mjs +9737 -0
  37. package/dist-lib/chunks/panel-bzNmFlEZ.mjs.map +1 -0
  38. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs +66 -0
  39. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs.map +1 -0
  40. package/dist-lib/chunks/useTheme-Dee4mo-A.mjs +65 -0
  41. package/dist-lib/chunks/useTheme-Dee4mo-A.mjs.map +1 -0
  42. package/dist-lib/index.cjs +1207 -0
  43. package/dist-lib/index.cjs.map +1 -0
  44. package/dist-lib/index.d.ts +2 -0
  45. package/dist-lib/index.mjs +1209 -0
  46. package/dist-lib/index.mjs.map +1 -0
  47. package/dist-lib/preview/chat.cjs +1120 -0
  48. package/dist-lib/preview/chat.cjs.map +1 -0
  49. package/dist-lib/preview/chat.d.ts +6 -0
  50. package/dist-lib/preview/chat.mjs +1120 -0
  51. package/dist-lib/preview/chat.mjs.map +1 -0
  52. package/dist-lib/preview/clientes.cjs +897 -0
  53. package/dist-lib/preview/clientes.cjs.map +1 -0
  54. package/dist-lib/preview/clientes.d.ts +6 -0
  55. package/dist-lib/preview/clientes.mjs +897 -0
  56. package/dist-lib/preview/clientes.mjs.map +1 -0
  57. package/dist-lib/preview/dashboard.cjs +733 -0
  58. package/dist-lib/preview/dashboard.cjs.map +1 -0
  59. package/dist-lib/preview/dashboard.d.ts +4 -0
  60. package/dist-lib/preview/dashboard.mjs +733 -0
  61. package/dist-lib/preview/dashboard.mjs.map +1 -0
  62. package/dist-lib/preview/mocks.cjs +15 -0
  63. package/dist-lib/preview/mocks.cjs.map +1 -0
  64. package/dist-lib/preview/mocks.d.ts +2 -0
  65. package/dist-lib/preview/mocks.mjs +15 -0
  66. package/dist-lib/preview/mocks.mjs.map +1 -0
  67. package/dist-lib/theme.css +668 -0
  68. package/dist-lib/tokens.cjs +915 -0
  69. package/dist-lib/tokens.cjs.map +1 -0
  70. package/dist-lib/tokens.d.ts +2 -0
  71. package/dist-lib/tokens.mjs +915 -0
  72. package/dist-lib/tokens.mjs.map +1 -0
  73. package/package.json +142 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.mjs","sources":["../../src/preview/pages/DashboardShowcase.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { useTheme, type Theme } from \"@/hooks/useTheme\";\nimport type { LucideIcon } from \"lucide-react\";\nimport {\n ArrowRight,\n ArrowUpRight,\n ArrowDownRight,\n Bot,\n Calendar,\n CheckCircle2,\n ChevronDown,\n Clock,\n Headphones,\n Mail,\n MessageSquare,\n MoreVertical,\n Phone,\n Search,\n Send,\n Star,\n Sun,\n Timer,\n TrendingUp,\n UserPlus,\n} from \"lucide-react\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Cell,\n Pie,\n PieChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { AppShell } from \"@/components/ui/AppShell\";\nimport { Button } from \"@/components/ui/Button/button\";\nimport { Chip } from \"@/components/ui/Chip\";\nimport { PageHeader } from \"@/components/ui/PageHeader\";\nimport { Avatar, AvatarFallback } from \"@/components/shadcn/avatar\";\nimport {\n APP_SHELL_CONTEXTS,\n APP_SHELL_COMMANDS,\n APP_SHELL_NOTIFICATIONS,\n APP_SHELL_MESSAGES,\n APP_SHELL_THEME_OPTIONS,\n} from \"../mocks/app-shell-mocks\";\n\n/* ─────────────────────────────────────────────────────────────\n * Tipos + mock data — call center + analytics\n * ───────────────────────────────────────────────────────────── */\n\ntype KpiTone = \"brand\" | \"success\" | \"warning\" | \"info\" | \"danger\" | \"neutral\";\n\ntype KpiCardData = {\n id: string;\n title: string;\n value: string;\n delta?: { value: string; direction: \"up\" | \"down\"; positive: boolean; label: string };\n icon: LucideIcon;\n tone: KpiTone;\n};\n\nconst KPIS_PRIMARY: KpiCardData[] = [\n { id: \"in-conv\", title: \"Em atendimento\", value: \"12\",\n delta: { value: \"+3\", direction: \"up\", positive: true, label: \"vs ontem\" },\n icon: Phone, tone: \"success\" },\n { id: \"waiting\", title: \"Em espera\", value: \"4\",\n delta: { value: \"+1\", direction: \"up\", positive: false, label: \"vs ontem\" },\n icon: Timer, tone: \"warning\" },\n { id: \"finished\", title: \"Resolvidos hoje\", value: \"87\",\n delta: { value: \"+12%\", direction: \"up\", positive: true, label: \"vs semana\" },\n icon: CheckCircle2, tone: \"info\" },\n { id: \"new\", title: \"Novos contatos\", value: \"260\",\n delta: { value: \"+24\", direction: \"up\", positive: true, label: \"vs ontem\" },\n icon: UserPlus, tone: \"brand\" },\n { id: \"talk\", title: \"Tempo médio atend.\", value: \"4m 32s\",\n delta: { value: \"-12s\", direction: \"down\", positive: true, label: \"melhorou\" },\n icon: Clock, tone: \"neutral\" },\n { id: \"wait\", title: \"Tempo médio espera\", value: \"1m 18s\",\n delta: { value: \"-8s\", direction: \"down\", positive: true, label: \"melhorou\" },\n icon: Timer, tone: \"neutral\" },\n];\n\nconst KPIS_QUALITY: KpiCardData[] = [\n { id: \"frt\", title: \"First Response Time\", value: \"42s\",\n delta: { value: \"-5s\", direction: \"down\", positive: true, label: \"melhorou\" },\n icon: TrendingUp, tone: \"info\" },\n { id: \"csat\", title: \"CSAT\", value: \"4.7\",\n delta: { value: \"+0.2\", direction: \"up\", positive: true, label: \"vs semana\" },\n icon: Star, tone: \"warning\" },\n { id: \"nps\", title: \"NPS\", value: \"68\",\n delta: { value: \"+5\", direction: \"up\", positive: true, label: \"vs mês\" },\n icon: Headphones, tone: \"success\" },\n { id: \"ai\", title: \"Resolvido por IA\", value: \"32%\",\n delta: { value: \"+4%\", direction: \"up\", positive: true, label: \"vs semana\" },\n icon: Bot, tone: \"brand\" },\n];\n\n/* Volume — stacked bars (2 séries: humano + IA) */\nconst VOLUME_BY_MONTH = [\n { m: \"Jan\", human: 2400, ai: 1200 },\n { m: \"Feb\", human: 4000, ai: 2800 },\n { m: \"Mar\", human: 3500, ai: 2200 },\n { m: \"Apr\", human: 3800, ai: 2900 },\n { m: \"May\", human: 2700, ai: 2300 },\n { m: \"Jun\", human: 3200, ai: 2700 },\n { m: \"Jul\", human: 2600, ai: 2700 },\n { m: \"Aug\", human: 4500, ai: 3200 },\n { m: \"Sep\", human: 2800, ai: 2700 },\n { m: \"Oct\", human: 4200, ai: 2300 },\n { m: \"Nov\", human: 2600, ai: 2700 },\n { m: \"Dec\", human: 3000, ai: 4000 },\n];\n\n/* Current Visits — origem dos atendimentos (regiões/cidades) */\nconst REGIONS = [\n { name: \"São Paulo\", value: 1650, color: \"var(--color-fg-brand)\", delta: \"+4.7%\", positive: true },\n { name: \"Rio de Janeiro\", value: 350, color: \"var(--color-fg-warning)\", delta: \"+2.1%\", positive: true },\n { name: \"Belo Horizonte\", value: 498, color: \"var(--color-fg-info)\", delta: \"-1.7%\", positive: false },\n];\n\n/* Channels — lista estilo Campaign Performance */\ntype ChannelKind = \"whatsapp\" | \"telegram\" | \"instagram\" | \"email\" | \"webchat\";\n\nconst CHANNELS: { id: ChannelKind; name: string; volume: string; color: string; icon: LucideIcon; status: \"active\" | \"paused\" | \"off\" }[] = [\n { id: \"whatsapp\", name: \"WhatsApp\", volume: \"8.49k\", color: \"#25d366\", icon: MessageSquare, status: \"active\" },\n { id: \"instagram\", name: \"Instagram\", volume: \"6.98k\", color: \"#e1306c\", icon: MessageSquare, status: \"active\" },\n { id: \"telegram\", name: \"Telegram\", volume: \"3.21k\", color: \"#0088cc\", icon: Send, status: \"paused\" },\n { id: \"email\", name: \"Email\", volume: \"2.14k\", color: \"#8754ec\", icon: Mail, status: \"active\" },\n { id: \"webchat\", name: \"Web Chat\", volume: \"1.50k\", color: \"#0a3a2e\", icon: MessageSquare, status: \"off\" },\n];\n\nconst CHANNEL_STATUS_LABEL: Record<\"active\" | \"paused\" | \"off\", string> = {\n active: \"Ativo\",\n paused: \"Pausado\",\n off: \"Desligado\",\n};\n\nconst CHANNEL_STATUS_TONE: Record<\"active\" | \"paused\" | \"off\", \"success\" | \"warning\" | \"neutral\"> = {\n active: \"success\",\n paused: \"warning\",\n off: \"neutral\",\n};\n\n/* Open conversations — atendimentos ativos */\ntype OpenConv = {\n id: string;\n name: string;\n initials: string;\n hex: string;\n channel: ChannelKind;\n status: \"attending\" | \"waiting\" | \"ai\";\n waitTime: string;\n agent?: { initials: string; name: string; hex: string };\n};\n\nconst OPEN_CONVS: OpenConv[] = [\n { id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", hex: \"#f59e0b\", channel: \"whatsapp\", status: \"attending\", waitTime: \"2m\", agent: { initials: \"AC\", name: \"Aline Castro\", hex: \"#f59e0b\" } },\n { id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", hex: \"#0a3a2e\", channel: \"telegram\", status: \"waiting\", waitTime: \"8m\" },\n { id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", hex: \"#8754ec\", channel: \"instagram\", status: \"attending\", waitTime: \"1m\", agent: { initials: \"VC\", name: \"Você\", hex: \"#0a3a2e\" } },\n { id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", hex: \"#0088cc\", channel: \"whatsapp\", status: \"ai\", waitTime: \"3m\" },\n { id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", hex: \"#1cb280\", channel: \"email\", status: \"waiting\", waitTime: \"14m\" },\n];\n\nconst STATUS_LABEL: Record<OpenConv[\"status\"], string> = {\n attending: \"Em atendimento\",\n waiting: \"Em espera\",\n ai: \"IA\",\n};\n\nconst STATUS_TONE: Record<OpenConv[\"status\"], \"success\" | \"warning\" | \"info\"> = {\n attending: \"success\",\n waiting: \"warning\",\n ai: \"info\",\n};\n\n/* Agents */\ntype AgentRow = {\n id: string;\n name: string;\n initials: string;\n hex: string;\n active: boolean;\n resolved: number;\n avgTime: string;\n csat: number;\n};\n\nconst AGENTS: AgentRow[] = [\n { id: \"aline\", name: \"Aline Castro\", initials: \"AC\", hex: \"#f59e0b\", active: true, resolved: 24, avgTime: \"3m 12s\", csat: 4.9 },\n { id: \"carlos\", name: \"Carlos Souza\", initials: \"CS\", hex: \"#8754ec\", active: true, resolved: 19, avgTime: \"4m 45s\", csat: 4.7 },\n { id: \"maria\", name: \"Maria Lima\", initials: \"ML\", hex: \"#ef4444\", active: false, resolved: 17, avgTime: \"5m 03s\", csat: 4.5 },\n { id: \"joao\", name: \"João Pereira\", initials: \"JP\", hex: \"#1cb280\", active: true, resolved: 15, avgTime: \"3m 58s\", csat: 4.8 },\n { id: \"you\", name: \"Você\", initials: \"VC\", hex: \"#0a3a2e\", active: true, resolved: 12, avgTime: \"4m 11s\", csat: 4.6 },\n];\n\n/* Traffic Data — origem das conversas (tabela) */\ntype TrafficRow = {\n source: string;\n visits: string;\n bounce: string;\n goal: number;\n goalColor: string;\n};\n\nconst TRAFFIC_ROWS: TrafficRow[] = [\n { source: \"Direct\", visits: \"1.300\", bounce: \"30%\", goal: 80, goalColor: \"var(--color-fg-warning)\" },\n { source: \"Email Campaign\", visits: \"5.000\", bounce: \"45%\", goal: 40, goalColor: \"var(--color-fg-success)\" },\n { source: \"Organic\", visits: \"3.000\", bounce: \"10%\", goal: 55, goalColor: \"var(--color-fg-warning)\" },\n { source: \"Paid Search\", visits: \"2.450\", bounce: \"22%\", goal: 68, goalColor: \"var(--color-fg-success)\" },\n { source: \"Social\", visits: \"1.870\", bounce: \"55%\", goal: 25, goalColor: \"var(--color-fg-danger)\" },\n { source: \"Referral\", visits: \"940\", bounce: \"18%\", goal: 72, goalColor: \"var(--color-fg-success)\" },\n];\n\n/* ─────────────────────────────────────────────────────────────\n * Atoms\n * ───────────────────────────────────────────────────────────── */\n\nconst TONE_CLASSES: Record<KpiTone, { bg: string; fg: string }> = {\n brand: { bg: \"bg-bg-brand-subtle\", fg: \"text-fg-brand\" },\n success: { bg: \"bg-bg-success-muted\", fg: \"text-fg-success\" },\n warning: { bg: \"bg-bg-warning-muted\", fg: \"text-fg-warning\" },\n info: { bg: \"bg-bg-info-muted\", fg: \"text-fg-info\" },\n danger: { bg: \"bg-bg-danger-muted\", fg: \"text-fg-danger\" },\n neutral: { bg: \"bg-bg-muted\", fg: \"text-fg-muted\" },\n};\n\n/** KpiCard — title no topo + icon container + value + Chip delta (padronizado). */\nfunction KpiCard({ kpi }: { kpi: KpiCardData }) {\n const Icon = kpi.icon;\n const cls = TONE_CLASSES[kpi.tone];\n return (\n <article className=\"flex flex-col gap-gp-lg p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm\">\n <header className=\"flex items-start justify-between gap-gp-md\">\n <h3 className=\"m-0 text-paragraph-sm font-semibold text-fg-default\">{kpi.title}</h3>\n <span\n className={cn(\n \"grid place-items-center size-form-lg rounded-radius-lg shrink-0\",\n cls.bg, cls.fg,\n )}\n aria-hidden\n >\n <Icon className=\"size-icon-md\" strokeWidth={1.8} />\n </span>\n </header>\n <div className=\"flex flex-col gap-gp-xs\">\n <div className=\"flex items-center gap-gp-md flex-wrap\">\n <span className=\"text-[26px] font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\n {kpi.value}\n </span>\n {kpi.delta && (\n <Chip\n color={kpi.delta.positive ? \"success\" : \"danger\"}\n variant=\"soft\"\n size=\"sm\"\n shape=\"pill\"\n >\n {kpi.delta.value}\n </Chip>\n )}\n </div>\n {kpi.delta && (\n <span className=\"text-[11px] text-fg-subtle\">{kpi.delta.label}</span>\n )}\n </div>\n </article>\n );\n}\n\n/** Welcome banner — brand gradient, ilustração SVG, CTA. */\nfunction WelcomeBanner() {\n return (\n <article className=\"relative overflow-hidden bg-bg-brand rounded-radius-xl p-pad-4xl flex items-center gap-gp-2xl flex-1 w-full\">\n {/* Texto à esquerda */}\n <div className=\"flex flex-col gap-gp-md flex-1 min-w-0 z-[1]\">\n <h2 className=\"m-0 flex items-center gap-gp-md text-[22px] font-bold text-fg-on-brand\">\n Boa tarde, Sergio\n <Sun className=\"size-icon-md text-fg-warning\" fill=\"currentColor\" />\n </h2>\n <p className=\"m-0 text-paragraph-sm text-fg-on-brand opacity-80 max-w-[480px]\">\n Acompanhe a performance da sua equipe hoje.<br />\n Snapshot rápido das principais métricas do atendimento.\n </p>\n <div>\n <Button\n color=\"secondary\"\n variant=\"filled\"\n size=\"md\"\n iconRight={<ArrowRight />}\n className=\"bg-bg-surface text-fg-default hover:bg-bg-muted\"\n >\n Ver relatório completo\n </Button>\n </div>\n </div>\n\n </article>\n );\n}\n\n/** Key Insights — all-time revenue + stacked bar + legend (legend no footer via mt-auto). */\nfunction KeyInsightsCard() {\n return (\n <article className=\"flex flex-col gap-gp-md p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm h-full\">\n <header className=\"flex items-center justify-between gap-gp-md\">\n <h3 className=\"m-0 text-[15px] font-bold text-fg-default\">Key Insights</h3>\n <Button color=\"secondary\" variant=\"ghost\" size=\"icon-sm\" aria-label=\"Mais opções\">\n <MoreVertical />\n </Button>\n </header>\n <p className=\"m-0 text-[12px] text-fg-muted\">Receita acumulada (anual)</p>\n <div className=\"flex items-center gap-gp-md flex-wrap\">\n <span className=\"text-[26px] font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\n R$ 395.7k\n </span>\n <Chip color=\"success\" variant=\"soft\" size=\"sm\" shape=\"pill\">\n +2.7%\n </Chip>\n </div>\n {/* Spacer empurra bar + legend pro bottom do card */}\n <div className=\"mt-auto flex flex-col gap-gp-md\">\n {/* Stacked bar 3 segmentos */}\n <div className=\"flex h-[8px] gap-[2px] rounded-radius-full overflow-hidden\">\n <span className=\"bg-bg-brand\" style={{ flex: 4 }} aria-hidden />\n <span className=\"bg-bg-warning\" style={{ flex: 3 }} aria-hidden />\n <span className=\"bg-bg-info\" style={{ flex: 4 }} aria-hidden />\n </div>\n <div className=\"flex items-center gap-gp-lg flex-wrap text-[11px] text-fg-muted\">\n <span className=\"inline-flex items-center gap-[5px]\">\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand\" aria-hidden />\n São Paulo\n </span>\n <span className=\"inline-flex items-center gap-[5px]\">\n <span className=\"size-[8px] rounded-radius-full bg-bg-warning\" aria-hidden />\n Rio\n </span>\n <span className=\"inline-flex items-center gap-[5px]\">\n <span className=\"size-[8px] rounded-radius-full bg-bg-info\" aria-hidden />\n MG\n </span>\n </div>\n </div>\n </article>\n );\n}\n\nfunction SectionCard({\n title,\n subtitle,\n action,\n children,\n className,\n}: {\n title: string;\n subtitle?: string;\n action?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <section\n className={cn(\n \"flex flex-col gap-gp-2xl p-pad-3xl bg-bg-surface border border-border-subtle rounded-radius-xl shadow-sh-sm\",\n className,\n )}\n >\n <header className=\"flex items-center justify-between gap-gp-md\">\n <div className=\"flex flex-col gap-[2px] min-w-0\">\n <h3 className=\"m-0 text-[15px] font-bold text-fg-default\">{title}</h3>\n {subtitle && (\n <p className=\"m-0 text-[12px] text-fg-muted\">{subtitle}</p>\n )}\n </div>\n {action ?? (\n <Button color=\"secondary\" variant=\"ghost\" size=\"icon-sm\" aria-label=\"Mais opções\">\n <MoreVertical />\n </Button>\n )}\n </header>\n {children}\n </section>\n );\n}\n\n/** Tooltip estilizado pros charts — consome tokens DS. */\nconst CHART_TOOLTIP_STYLE: React.CSSProperties = {\n borderRadius: 10,\n border: \"1px solid var(--color-border-default)\",\n background: \"var(--color-bg-surface-elevated)\",\n color: \"var(--color-fg-default)\",\n fontSize: 12,\n boxShadow: \"rgba(0,0,0,0.18) 0 12px 24px -4px\",\n padding: \"8px 12px\",\n};\n\nconst CHART_TOOLTIP_LABEL_STYLE: React.CSSProperties = {\n color: \"var(--color-fg-muted)\",\n fontSize: 11,\n marginBottom: 4,\n};\n\n/** Stacked bar chart (humano + IA) com Recharts — tooltip + hover + responsivo. */\nfunction VolumeStackedChart() {\n return (\n <div className=\"flex flex-col gap-gp-lg\">\n {/* Header com valor + chip delta + legend + selector ano */}\n <div className=\"flex items-center gap-gp-md flex-wrap\">\n <div className=\"flex items-baseline gap-gp-md flex-wrap\">\n <span className=\"text-[26px] font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\n R$ 395.7k\n </span>\n <Chip color=\"success\" variant=\"soft\" size=\"sm\" shape=\"pill\">\n +18%\n </Chip>\n <span className=\"text-[12px] text-fg-muted\">vs ano passado</span>\n </div>\n <div className=\"ml-auto flex items-center gap-gp-md\">\n <span className=\"inline-flex items-center gap-[4px] text-[11px] text-fg-muted\">\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand\" aria-hidden /> Humano\n </span>\n <span className=\"inline-flex items-center gap-[4px] text-[11px] text-fg-muted\">\n <span className=\"size-[8px] rounded-radius-full bg-bg-brand-subtle\" aria-hidden /> IA\n </span>\n <Button color=\"secondary\" variant=\"outline\" size=\"sm\" iconRight={<ChevronDown />}>\n 2026\n </Button>\n </div>\n </div>\n\n {/* Recharts: ResponsiveContainer + BarChart stacked + Tooltip + grid dashed */}\n <div style={{ width: \"100%\", height: 280 }}>\n <ResponsiveContainer>\n <BarChart\n data={VOLUME_BY_MONTH}\n margin={{ top: 8, right: 8, left: -16, bottom: 0 }}\n barCategoryGap={18}\n >\n <CartesianGrid\n stroke=\"var(--color-border-subtle)\"\n strokeDasharray=\"4 4\"\n vertical={false}\n />\n <XAxis\n dataKey=\"m\"\n tickLine={false}\n axisLine={false}\n fontSize={11}\n stroke=\"var(--color-fg-subtle)\"\n />\n <YAxis\n tickLine={false}\n axisLine={false}\n fontSize={11}\n stroke=\"var(--color-fg-subtle)\"\n tickFormatter={(v) => (v === 0 ? \"0k\" : `${v / 1000}k`)}\n ticks={[0, 2000, 4000, 6000, 8000, 10000]}\n domain={[0, 10000]}\n />\n <Tooltip\n cursor={{ fill: \"var(--color-bg-muted)\", opacity: 0.5 }}\n contentStyle={CHART_TOOLTIP_STYLE}\n labelStyle={CHART_TOOLTIP_LABEL_STYLE}\n formatter={(value, name) => {\n const label = name === \"human\" ? \"Humano\" : \"IA\";\n return [Number(value).toLocaleString(\"pt-BR\"), label];\n }}\n />\n <Bar dataKey=\"human\" stackId=\"x\" fill=\"var(--color-bg-brand)\" radius={[0, 0, 0, 0]} />\n <Bar dataKey=\"ai\" stackId=\"x\" fill=\"var(--color-bg-brand-subtle)\" radius={[6, 6, 0, 0]} />\n </BarChart>\n </ResponsiveContainer>\n </div>\n </div>\n );\n}\n\n/** Donut com Recharts PieChart — tooltip + hover + total no centro. */\nfunction CurrentVisitsCard() {\n const total = REGIONS.reduce((s, r) => s + r.value, 0);\n return (\n <SectionCard title=\"Origem dos atendimentos\" subtitle=\"Por região\" className=\"h-full\">\n {/* Donut — wrapper relativo ancora o center dentro do círculo */}\n <div className=\"relative flex items-center justify-center\" style={{ height: 210 }}>\n <ResponsiveContainer width=\"100%\" height={210}>\n <PieChart margin={{ top: 0, right: 0, bottom: 0, left: 0 }}>\n <Pie\n data={REGIONS}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={70}\n outerRadius={92}\n paddingAngle={3}\n startAngle={90}\n endAngle={-270}\n stroke=\"none\"\n isAnimationActive\n >\n {REGIONS.map((r) => (\n <Cell key={r.name} fill={r.color} />\n ))}\n </Pie>\n <Tooltip\n contentStyle={CHART_TOOLTIP_STYLE}\n labelStyle={CHART_TOOLTIP_LABEL_STYLE}\n formatter={(value) => Number(value).toLocaleString(\"pt-BR\")}\n />\n </PieChart>\n </ResponsiveContainer>\n {/* Total absolute no centro do donut */}\n <div className=\"absolute inset-0 flex flex-col items-center justify-center pointer-events-none\">\n <span className=\"text-[11px] text-fg-muted\">Total</span>\n <span className=\"text-[24px] font-bold text-fg-default leading-none [font-variant-numeric:tabular-nums]\">\n {total.toLocaleString(\"pt-BR\")}\n </span>\n </div>\n </div>\n {/* Lista de regiões — mt-auto empurra pro bottom do card */}\n <div className=\"mt-auto flex flex-col gap-gp-md\">\n {REGIONS.map((r) => (\n <div key={r.name} className=\"flex items-center gap-gp-md\">\n <span\n className=\"size-[10px] rounded-radius-full shrink-0\"\n style={{ background: r.color }}\n aria-hidden\n />\n <span className=\"flex-1 text-[12.5px] text-fg-default font-medium\">{r.name}</span>\n <span className=\"text-[12px] text-fg-default [font-variant-numeric:tabular-nums]\">\n {r.value.toLocaleString(\"pt-BR\")}\n </span>\n <Chip\n color={r.positive ? \"success\" : \"danger\"}\n variant=\"soft\"\n size=\"sm\"\n shape=\"pill\"\n >\n {r.delta}\n </Chip>\n </div>\n ))}\n </div>\n </SectionCard>\n );\n}\n\nfunction PersonAvatar({ initials, hex, size = \"md\" }: { initials: string; hex: string; size?: \"sm\" | \"md\" }) {\n const cls = size === \"sm\" ? \"size-[24px] text-[10px]\" : \"size-[32px] text-[12px]\";\n return (\n <Avatar className={cls} style={{ background: hex }}>\n <AvatarFallback className=\"bg-transparent text-white font-bold\">{initials}</AvatarFallback>\n </Avatar>\n );\n}\n\nfunction OpenConversationsList() {\n return (\n <ul className=\"m-0 p-0 list-none flex flex-col\">\n {OPEN_CONVS.map((c) => {\n const ChIcon = CHANNELS.find((ch) => ch.id === c.channel)?.icon ?? MessageSquare;\n return (\n <li\n key={c.id}\n className=\"flex items-center gap-gp-md py-pad-lg border-b border-border-subtle last:border-b-0 cursor-pointer hover:[&>*]:opacity-90 transition-opacity\"\n >\n <PersonAvatar initials={c.initials} hex={c.hex} size=\"md\" />\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\n <div className=\"flex items-center gap-gp-sm\">\n <span className=\"text-[13px] font-semibold text-fg-default whitespace-nowrap overflow-hidden text-ellipsis\">\n {c.name}\n </span>\n <span className=\"text-[11px] text-fg-subtle [font-variant-numeric:tabular-nums] shrink-0\">\n {c.id}\n </span>\n </div>\n <div className=\"flex items-center gap-gp-sm flex-wrap text-[11px] text-fg-muted\">\n <span className=\"inline-flex items-center gap-[3px]\">\n <ChIcon size={11} strokeWidth={1.8} aria-hidden />\n {CHANNELS.find((ch) => ch.id === c.channel)?.name ?? c.channel}\n </span>\n {c.agent && (\n <>\n <span aria-hidden>·</span>\n <span>{c.agent.name}</span>\n </>\n )}\n </div>\n </div>\n <div className=\"flex flex-col items-end gap-[4px] shrink-0\">\n <Chip color={STATUS_TONE[c.status]} variant=\"soft\" size=\"sm\" shape=\"pill\">\n {STATUS_LABEL[c.status]}\n </Chip>\n <span className=\"inline-flex items-center gap-[3px] text-[11px] text-fg-muted [font-variant-numeric:tabular-nums]\">\n <Clock size={10} strokeWidth={1.8} aria-hidden />\n {c.waitTime}\n </span>\n </div>\n </li>\n );\n })}\n </ul>\n );\n}\n\nfunction AgentPerformanceList() {\n return (\n <ul className=\"m-0 p-0 list-none flex flex-col\">\n {AGENTS.map((a, i) => (\n <li\n key={a.id}\n className=\"flex items-center gap-gp-md py-pad-lg border-b border-border-subtle last:border-b-0\"\n >\n <span className=\"grid place-items-center size-[20px] rounded-radius-full bg-bg-muted text-[11px] font-bold text-fg-muted shrink-0 [font-variant-numeric:tabular-nums]\">\n {i + 1}\n </span>\n <div className=\"relative shrink-0\">\n <PersonAvatar initials={a.initials} hex={a.hex} size=\"md\" />\n <span\n className={cn(\n \"absolute -bottom-[1px] -right-[1px] size-[8px] rounded-radius-full border border-bg-surface\",\n a.active ? \"bg-bg-success\" : \"bg-bg-muted\",\n )}\n aria-label={a.active ? \"online\" : \"offline\"}\n />\n </div>\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\n <span className=\"text-[13px] font-semibold text-fg-default whitespace-nowrap overflow-hidden text-ellipsis\">\n {a.name}\n </span>\n <span className=\"text-[11px] text-fg-muted\">\n {a.resolved} resolvidos · {a.avgTime} médio\n </span>\n </div>\n <div className=\"flex items-center gap-[3px] shrink-0 text-[12px] font-semibold text-fg-default\">\n <Star size={11} strokeWidth={2} className=\"text-fg-warning fill-current\" aria-hidden />\n <span className=\"[font-variant-numeric:tabular-nums]\">{a.csat.toFixed(1)}</span>\n </div>\n </li>\n ))}\n </ul>\n );\n}\n\n/** Canais com volume + status — estilo Campaign Performance. */\nfunction ChannelPerformanceList() {\n return (\n <ul className=\"m-0 p-0 list-none flex flex-col\">\n {CHANNELS.map((c) => {\n const Icon = c.icon;\n return (\n <li\n key={c.id}\n className=\"flex items-center gap-gp-lg py-pad-lg border-b border-border-subtle last:border-b-0\"\n >\n <span\n className=\"grid place-items-center size-[36px] rounded-radius-full shrink-0 text-white\"\n style={{ background: c.color }}\n aria-hidden\n >\n <Icon size={16} strokeWidth={1.8} />\n </span>\n <div className=\"flex-1 min-w-0 flex flex-col gap-[2px]\">\n <span className=\"text-[13px] font-semibold text-fg-default\">{c.name}</span>\n <span className=\"text-[11px] text-fg-muted\">\n {c.volume} mensagens\n </span>\n </div>\n <Chip color={CHANNEL_STATUS_TONE[c.status]} variant=\"soft\" size=\"sm\" shape=\"pill\">\n {CHANNEL_STATUS_LABEL[c.status]}\n </Chip>\n </li>\n );\n })}\n </ul>\n );\n}\n\n/** Traffic Data — tabela com source/visits/bounce/goal. */\nfunction TrafficDataTable() {\n return (\n <SectionCard\n title=\"Origem do tráfego\"\n subtitle=\"Fontes de aquisição\"\n className=\"flex-1 h-full\"\n action={\n <div className=\"relative max-w-[200px]\">\n <Search\n size={14}\n strokeWidth={1.8}\n className=\"absolute left-pad-lg top-1/2 -translate-y-1/2 text-fg-muted pointer-events-none\"\n />\n <input\n type=\"search\"\n placeholder=\"Buscar...\"\n className=\"h-form-md pl-[34px] pr-pad-md w-full rounded-radius-md bg-bg-muted border border-border-input text-paragraph-sm text-fg-default placeholder:text-fg-muted focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand focus-visible:border-border-brand\"\n />\n </div>\n }\n >\n <div className=\"overflow-x-auto -mx-pad-2xl px-pad-2xl\">\n <table className=\"w-full text-paragraph-sm border-separate border-spacing-0\">\n <thead>\n <tr className=\"text-[11px] font-bold tracking-[0.04em] text-fg-subtle uppercase\">\n <th className=\"text-left pb-pad-md border-b border-border-subtle font-bold\">Fonte</th>\n <th className=\"text-right pb-pad-md border-b border-border-subtle font-bold\">Visitas</th>\n <th className=\"text-left pb-pad-md pl-pad-2xl border-b border-border-subtle font-bold\">Bounce</th>\n <th className=\"text-left pb-pad-md pl-pad-2xl border-b border-border-subtle font-bold\">Meta (%)</th>\n </tr>\n </thead>\n <tbody>\n {TRAFFIC_ROWS.map((r) => (\n <tr key={r.source} className=\"text-[12.5px]\">\n <td className=\"py-pad-lg border-b border-border-subtle text-fg-default font-medium\">\n {r.source}\n </td>\n <td className=\"py-pad-lg border-b border-border-subtle text-right text-fg-default [font-variant-numeric:tabular-nums]\">\n {r.visits}\n </td>\n <td className=\"py-pad-sm pl-pad-2xl border-b border-border-subtle text-fg-muted [font-variant-numeric:tabular-nums]\">\n {r.bounce}\n </td>\n <td className=\"py-pad-sm pl-pad-2xl border-b border-border-subtle\">\n <div className=\"flex items-center gap-gp-md\">\n <div className=\"flex-1 h-[6px] bg-bg-muted rounded-radius-full overflow-hidden min-w-[80px]\">\n <div\n className=\"h-full rounded-radius-full\"\n style={{ width: `${r.goal}%`, background: r.goalColor }}\n />\n </div>\n <span className=\"text-[11px] font-semibold text-fg-default [font-variant-numeric:tabular-nums] shrink-0 min-w-[32px] text-right\">\n {r.goal}%\n </span>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </SectionCard>\n );\n}\n\n/* ─────────────────────────────────────────────────────────────\n * Page\n * ───────────────────────────────────────────────────────────── */\n\nexport default function DashboardShowcase() {\n const { theme, setTheme } = useTheme();\n const [period, setPeriod] = useState<string>(\"Últimos 7 dias\");\n\n return (\n <AppShell\n contexts={APP_SHELL_CONTEXTS}\n defaultActiveContextId=\"inbox\"\n defaultActiveItemHref=\"#dashboard\"\n breadcrumb={[{ label: \"Dashboard\" }]}\n commandGroups={APP_SHELL_COMMANDS}\n notifications={{\n items: APP_SHELL_NOTIFICATIONS,\n onMarkAllRead: () => alert(\"Marcar todas como lidas\"),\n onMoreActions: () => alert(\"Mais ações\"),\n onViewAll: () => alert(\"Ver todas\"),\n }}\n messages={{\n items: APP_SHELL_MESSAGES,\n onNewMessage: () => alert(\"Nova mensagem\"),\n onExpand: () => alert(\"Expandir\"),\n onViewAll: () => alert(\"Ver todas\"),\n }}\n theme={theme}\n onThemeChange={(id) => setTheme(id as Theme)}\n themeOptions={APP_SHELL_THEME_OPTIONS}\n >\n <PageHeader\n title=\"Dashboard\"\n description=\"Visão geral do atendimento em tempo real — KPIs, volume, canais e performance da equipe.\"\n badge={\n <Chip color=\"primary\" variant=\"soft\" size=\"sm\" shape=\"pill\">\n Hoje\n </Chip>\n }\n actions={\n <>\n <Button\n color=\"secondary\"\n variant=\"outline\"\n size=\"icon-md\"\n aria-label=\"Mais ações\"\n >\n <MoreVertical />\n </Button>\n <Button\n color=\"secondary\"\n variant=\"outline\"\n size=\"md\"\n iconLeft={<Calendar />}\n iconRight={<ChevronDown />}\n onClick={() => {\n const next = period === \"Últimos 7 dias\" ? \"Últimos 30 dias\" : \"Últimos 7 dias\";\n setPeriod(next);\n }}\n >\n {period}\n </Button>\n </>\n }\n />\n\n {/* Row 1 — Welcome (2/3) + KeyInsights (1/3) — alturas iguais */}\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\n <div className=\"lg:col-span-2 flex\">\n <WelcomeBanner />\n </div>\n <KeyInsightsCard />\n </section>\n\n {/* Row 2 — KPIs primários (6) */}\n <section\n aria-label=\"KPIs principais\"\n className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-gp-2xl\"\n >\n {KPIS_PRIMARY.map((kpi) => (\n <KpiCard key={kpi.id} kpi={kpi} />\n ))}\n </section>\n\n {/* Row 3 — Volume stacked (2/3) + Current visits donut (1/3) — alturas iguais */}\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\n <SectionCard\n title=\"Volume de atendimentos\"\n subtitle=\"Humano vs IA — ano corrente\"\n className=\"lg:col-span-2 h-full\"\n >\n <VolumeStackedChart />\n </SectionCard>\n <CurrentVisitsCard />\n </section>\n\n {/* Row 4 — KPIs qualidade (4) — APÓS os charts */}\n <section\n aria-label=\"Qualidade do atendimento\"\n className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-gp-2xl\"\n >\n {KPIS_QUALITY.map((kpi) => (\n <KpiCard key={kpi.id} kpi={kpi} />\n ))}\n </section>\n\n {/* Row 5 — Open + Agents */}\n <section className=\"grid grid-cols-1 lg:grid-cols-2 gap-gp-2xl\">\n <SectionCard\n title=\"Atendimentos em aberto\"\n subtitle=\"5 ativos agora\"\n action={\n <Button color=\"secondary\" variant=\"ghost\" size=\"sm\">\n Ver todos\n </Button>\n }\n >\n <OpenConversationsList />\n </SectionCard>\n <SectionCard\n title=\"Performance da equipe\"\n subtitle=\"Ranking de hoje\"\n action={\n <Button color=\"secondary\" variant=\"ghost\" size=\"sm\">\n Ver equipe\n </Button>\n }\n >\n <AgentPerformanceList />\n </SectionCard>\n </section>\n\n {/* Row 6 — Channels (1/3) + Traffic Data (2/3). Ambos h-full pra\n alturas se igualarem dentro da row do grid. */}\n <section className=\"grid grid-cols-1 lg:grid-cols-3 gap-gp-2xl items-stretch\">\n <SectionCard title=\"Canais\" subtitle=\"Volume e status\" className=\"h-full\">\n <ChannelPerformanceList />\n </SectionCard>\n <div className=\"lg:col-span-2 flex\">\n <TrafficDataTable />\n </div>\n </section>\n </AppShell>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const appShellMocks = require("../chunks/app-shell-mocks-oO_IV3Gw.mjs");
4
+ const chatV2Mocks = require("../chunks/chat-v2-mocks-BV9Wha_Z.mjs");
5
+ const clientesShowcaseMocks = require("../chunks/clientes-showcase-mocks-BMfbNNJh.mjs");
6
+ exports.APP_SHELL_COMMANDS = appShellMocks.APP_SHELL_COMMANDS;
7
+ exports.APP_SHELL_CONTEXTS = appShellMocks.APP_SHELL_CONTEXTS;
8
+ exports.APP_SHELL_LAYOUT_OPTIONS = appShellMocks.APP_SHELL_LAYOUT_OPTIONS;
9
+ exports.APP_SHELL_MESSAGES = appShellMocks.APP_SHELL_MESSAGES;
10
+ exports.APP_SHELL_NOTIFICATIONS = appShellMocks.APP_SHELL_NOTIFICATIONS;
11
+ exports.APP_SHELL_THEME_OPTIONS = appShellMocks.APP_SHELL_THEME_OPTIONS;
12
+ exports.APP_SHELL_USER = appShellMocks.APP_SHELL_USER;
13
+ exports.chatMocks = chatV2Mocks.chatV2Mocks;
14
+ exports.clientesMocks = clientesShowcaseMocks.clientesShowcaseMocks;
15
+ //# sourceMappingURL=mocks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/preview/mocks/index'
2
+ export {}
@@ -0,0 +1,15 @@
1
+ import { A, a, b, c, d, e, f } from "../chunks/app-shell-mocks-kWIVSzLs.mjs";
2
+ import { c as c2 } from "../chunks/chat-v2-mocks-DvZRkhmz.mjs";
3
+ import { c as c3 } from "../chunks/clientes-showcase-mocks-Cq9u3nGZ.mjs";
4
+ export {
5
+ A as APP_SHELL_COMMANDS,
6
+ a as APP_SHELL_CONTEXTS,
7
+ b as APP_SHELL_LAYOUT_OPTIONS,
8
+ c as APP_SHELL_MESSAGES,
9
+ d as APP_SHELL_NOTIFICATIONS,
10
+ e as APP_SHELL_THEME_OPTIONS,
11
+ f as APP_SHELL_USER,
12
+ c2 as chatMocks,
13
+ c3 as clientesMocks
14
+ };
15
+ //# sourceMappingURL=mocks.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}