@snksergio/design-system 0.30.4 → 0.31.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 (27) hide show
  1. package/dist-lib/chunks/app-shell-78w0pYdP.mjs.map +1 -1
  2. package/dist-lib/chunks/app-shell-Cyh8AUJT.cjs.map +1 -1
  3. package/dist-lib/chunks/app-shell-mocks-kWIVSzLs.mjs.map +1 -1
  4. package/dist-lib/chunks/app-shell-mocks-oO_IV3Gw.cjs.map +1 -1
  5. package/dist-lib/chunks/chat-v2-mocks-BV9Wha_Z.cjs.map +1 -1
  6. package/dist-lib/chunks/chat-v2-mocks-DvZRkhmz.mjs.map +1 -1
  7. package/dist-lib/chunks/page-header-B6XJyIMz.mjs.map +1 -1
  8. package/dist-lib/chunks/page-header-D0rpU0yn.cjs.map +1 -1
  9. package/dist-lib/chunks/panel-8FiBxwcI.mjs.map +1 -1
  10. package/dist-lib/chunks/panel-BOrETqXz.cjs.map +1 -1
  11. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs.map +1 -1
  12. package/dist-lib/chunks/useTheme-Dee4mo-A.cjs.map +1 -1
  13. package/dist-lib/index.cjs.map +1 -1
  14. package/dist-lib/index.mjs.map +1 -1
  15. package/dist-lib/preview/chat.cjs.map +1 -1
  16. package/dist-lib/preview/chat.mjs.map +1 -1
  17. package/dist-lib/src/hooks/useBrand.d.ts +1 -1
  18. package/dist-lib/src/hooks/useBrand.d.ts.map +1 -1
  19. package/dist-lib/tokens/brands/vibrant/primitives/color-palette.d.ts +281 -0
  20. package/dist-lib/tokens/brands/vibrant/primitives/color-palette.d.ts.map +1 -0
  21. package/dist-lib/tokens/brands/vibrant/semantic/color-dark.d.ts +222 -0
  22. package/dist-lib/tokens/brands/vibrant/semantic/color-dark.d.ts.map +1 -0
  23. package/dist-lib/tokens/brands/vibrant/semantic/color-light.d.ts +220 -0
  24. package/dist-lib/tokens/brands/vibrant/semantic/color-light.d.ts.map +1 -0
  25. package/dist-lib/tokens.cjs.map +1 -1
  26. package/dist-lib/tokens.mjs.map +1 -1
  27. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell-mocks-kWIVSzLs.mjs","sources":["../../src/preview/mocks/app-shell-mocks.ts"],"sourcesContent":["import {\r\n Inbox,\r\n Contact,\r\n Megaphone,\r\n Brain,\r\n Settings as SettingsIcon,\r\n LayoutGrid,\r\n Target,\r\n Trophy,\r\n Tag,\r\n Reply,\r\n Star,\r\n GraduationCap,\r\n Activity,\r\n AlertCircle,\r\n Plug,\r\n ListOrdered,\r\n Network,\r\n Users,\r\n Ticket,\r\n Plus,\r\n Settings,\r\n UserCheck,\r\n AlertTriangle,\r\n Sparkles,\r\n CreditCard,\r\n Sun,\r\n Moon,\r\n Monitor,\r\n LogOut,\r\n Maximize2,\r\n LayoutPanelLeft,\r\n} from \"lucide-react\";\r\nimport type { SidebarContext } from \"../../components/ui/MenuSidebar\";\r\nimport type {\r\n HeaderCommandGroup,\r\n HeaderMessage,\r\n HeaderNotification,\r\n HeaderThemeOption,\r\n} from \"../../components/ui/Header\";\r\nimport type {\r\n AppShellUser,\r\n AppShellLayoutOption,\r\n} from \"../../components/ui/AppShell\";\r\n\r\n/**\r\n * Mocks compartilhados pelo AppShellDoc + pages de showcase que precisam de uma\r\n * \"casca de app realista\". Em produção, esses dados viriam do backend/contexto da\r\n * app — aqui são estáticos pra demonstração consistente.\r\n */\r\n\r\nexport const APP_SHELL_CONTEXTS: SidebarContext[] = [\r\n {\r\n id: \"inbox\",\r\n label: \"Inbox / Operação\",\r\n icon: Inbox,\r\n items: [\r\n { name: \"Atendimentos\", icon: Inbox, href: \"#atendimentos\", badge: \"8\", badgeKind: \"counter\" },\r\n { name: \"Chat Interno\", icon: ListOrdered, href: \"#chat-interno\", badge: \"2\" },\r\n { name: \"Agendamentos\", icon: LayoutGrid, href: \"#agendamentos\", badge: \"8\" },\r\n {\r\n name: \"Escalation\",\r\n icon: AlertCircle,\r\n subitems: [\r\n { name: \"Dashboard\", href: \"#esc-dash\" },\r\n { name: \"Departamentos\", href: \"#esc-deps\" },\r\n { name: \"Regras\", href: \"#esc-rules\" },\r\n ],\r\n },\r\n ],\r\n sections: [\r\n {\r\n id: \"filtros-rapidos\",\r\n label: \"Filtros rápidos\",\r\n variant: \"bookmark\",\r\n items: [\r\n { color: \"#1cb280\", name: \"Royais — In progress\" },\r\n { color: \"#f6b51e\", name: \"Licenciados — Waiting\" },\r\n { color: \"#8754ec\", name: \"IA — handover pendente\" },\r\n { color: \"#ef4444\", name: \"SLA crítico (> 30min)\" },\r\n ],\r\n },\r\n {\r\n id: \"mensagens-rapidas\",\r\n label: \"Mensagens rápidas\",\r\n variant: \"chat\",\r\n items: [\r\n { name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", status: \"online\" },\r\n { name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", status: \"online\" },\r\n { name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", status: \"offline\" },\r\n { name: \"João Pedro\", initials: \"JP\", color: \"#1cb280\", status: \"online\" },\r\n { name: \"Beatriz Almeida\", initials: \"BA\", color: \"#0088cc\", status: \"online\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"crm\",\r\n label: \"CRM\",\r\n icon: Contact,\r\n items: [\r\n { name: \"Contatos\", icon: Contact, href: \"#contatos\", badge: \"2.1k\" },\r\n { name: \"Segmentos\", icon: Target, href: \"#segmentos\" },\r\n { name: \"Tiers\", icon: Trophy, href: \"#tiers\" },\r\n { name: \"Tags\", icon: Tag, href: \"#tags\" },\r\n { name: \"Respostas Rápidas\", icon: Reply, href: \"#respostas\" },\r\n ],\r\n sections: [\r\n {\r\n id: \"listas-salvas\",\r\n label: \"Listas salvas\",\r\n variant: \"bookmark\",\r\n items: [\r\n { color: \"#0088cc\", name: \"Top 100 ativos\" },\r\n { color: \"#f59e0b\", name: \"Sem cadastro completo\" },\r\n { color: \"#1cb280\", name: \"Convertidos último mês\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"engajamento\",\r\n label: \"Engajamento\",\r\n icon: Megaphone,\r\n items: [\r\n { name: \"Campanhas\", icon: Megaphone, href: \"#campanhas\", badge: \"6\" },\r\n { name: \"Pesquisa Satisfação\", icon: Star, href: \"#csat\", badge: \"CSAT\", badgeKind: \"success\" },\r\n { name: \"Capacitações\", icon: GraduationCap, href: \"#capacitacoes\" },\r\n {\r\n name: \"Green Points\",\r\n icon: Trophy,\r\n subitems: [\r\n { name: \"My Points\", href: \"#gp-my\" },\r\n { name: \"Management\", href: \"#gp-mgmt\" },\r\n { name: \"Periods\", href: \"#gp-periods\" },\r\n { name: \"Configuration\", href: \"#gp-config\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"ia\",\r\n label: \"IA — Agente Sol\",\r\n icon: Brain,\r\n items: [\r\n { name: \"Sol Traces\", icon: Activity, href: \"#sol-traces\", badge: \"94 pgs\" },\r\n { name: \"Central de Alertas\", icon: AlertCircle, href: \"#alertas\", badge: \"1085\", badgeKind: \"counter\" },\r\n {\r\n name: \"AI Rules\",\r\n icon: Brain,\r\n subitems: [\r\n { name: \"Provenance\", href: \"#ai-prov\" },\r\n { name: \"Embeddings Health\", href: \"#ai-emb\" },\r\n { name: \"Few-shots Candidates\", href: \"#ai-fs\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"config\",\r\n label: \"Configuração\",\r\n icon: SettingsIcon,\r\n items: [\r\n { name: \"Conexões\", icon: Plug, href: \"#conexoes\", badge: \"2\" },\r\n { name: \"Filas & Chatbot\", icon: ListOrdered, href: \"#filas-cb\", badge: \"8\" },\r\n { name: \"Regras de Fila\", icon: Network, href: \"#regras-fila\" },\r\n { name: \"Channels\", icon: LayoutGrid, href: \"#channels\", badge: \"2\" },\r\n ],\r\n },\r\n];\r\n\r\nexport const APP_SHELL_COMMANDS: HeaderCommandGroup[] = [\r\n {\r\n heading: \"Navegação rápida\",\r\n items: [\r\n { label: \"Clientes\", icon: Users, onSelect: () => alert(\"→ Clientes\") },\r\n { label: \"Tickets\", icon: Ticket, onSelect: () => alert(\"→ Tickets\") },\r\n { label: \"Configurações\", icon: Settings, shortcut: \"⌘,\", onSelect: () => alert(\"→ Settings\") },\r\n ],\r\n },\r\n {\r\n heading: \"Ações\",\r\n items: [\r\n { label: \"Novo cliente\", icon: Plus, shortcut: \"⌘N\", onSelect: () => alert(\"Novo cliente\") },\r\n { label: \"Sair\", icon: LogOut, shortcut: \"⌘Q\", destructive: true, onSelect: () => alert(\"Sair\") },\r\n ],\r\n },\r\n];\r\n\r\nexport const APP_SHELL_NOTIFICATIONS: HeaderNotification[] = [\r\n {\r\n id: \"n1\",\r\n icon: UserCheck,\r\n color: \"#10B881\",\r\n title: \"Aline Castro mencionou você\",\r\n body: 'em \"Royais — In progress\" comentou: \"@você pode revisar?\"',\r\n time: \"2 min\",\r\n unread: true,\r\n kind: \"mention\",\r\n },\r\n {\r\n id: \"n2\",\r\n icon: AlertTriangle,\r\n color: \"#f59e0b\",\r\n title: \"SLA em risco\",\r\n body: \"Ticket #20260504-00031 sem resposta há 28 minutos\",\r\n time: \"15 min\",\r\n unread: true,\r\n kind: \"alert\",\r\n },\r\n {\r\n id: \"n3\",\r\n icon: Sparkles,\r\n color: \"#8754ec\",\r\n title: \"Sol Traces atualizado\",\r\n body: \"Nova versão com 12 melhorias na qualidade das respostas\",\r\n time: \"1 h\",\r\n unread: true,\r\n kind: \"system\",\r\n },\r\n {\r\n id: \"n4\",\r\n icon: CreditCard,\r\n color: \"#0FC589\",\r\n title: \"Fatura paga\",\r\n body: \"Pagamento de R$ 4.250,00 confirmado.\",\r\n time: \"3 h\",\r\n kind: \"billing\",\r\n },\r\n];\r\n\r\nexport const APP_SHELL_MESSAGES: HeaderMessage[] = [\r\n { id: \"m1\", name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", preview: \"Olá! Você pode revisar o ticket #1234?\", time: \"2 min\", unread: true },\r\n { id: \"m2\", name: \"Equipe Suporte\", initials: \"ES\", color: \"#0088cc\", preview: \"Bruno: pessoal, alguém disponível pra cobrir...\", time: \"12 min\", unread: true, group: true },\r\n { id: \"m3\", name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", preview: \"Boa tarde! Aquele cliente confirmou.\", time: \"1 h\" },\r\n { id: \"m4\", name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", preview: \"Reunião remarcada pra amanhã 10h.\", time: \"ontem\" },\r\n];\r\n\r\nexport const APP_SHELL_THEME_OPTIONS: HeaderThemeOption[] = [\r\n { id: \"system\", label: \"Sistema\", icon: Monitor },\r\n { id: \"light\", label: \"Claro\", icon: Sun },\r\n { id: \"dark\", label: \"Escuro\", icon: Moon },\r\n];\r\n\r\n/* ── User menu (avatar do rail) ───────────────────────────────────── */\r\n\r\nexport const APP_SHELL_USER: AppShellUser = {\r\n name: \"Sergio Vieira\",\r\n email: \"sergio.vieira@igreenenergy.com.br\",\r\n initials: \"SV\",\r\n};\r\n\r\nexport const APP_SHELL_LAYOUT_OPTIONS: AppShellLayoutOption[] = [\r\n { id: \"fluid\", label: \"Fluido\", icon: Maximize2 },\r\n { id: \"compact\", label: \"Compacto\", icon: LayoutPanelLeft },\r\n];\r\n"],"names":["SettingsIcon"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell-mocks-kWIVSzLs.mjs","sources":["../../src/preview/mocks/app-shell-mocks.ts"],"sourcesContent":["import {\n Inbox,\n Contact,\n Megaphone,\n Brain,\n Settings as SettingsIcon,\n LayoutGrid,\n Target,\n Trophy,\n Tag,\n Reply,\n Star,\n GraduationCap,\n Activity,\n AlertCircle,\n Plug,\n ListOrdered,\n Network,\n Users,\n Ticket,\n Plus,\n Settings,\n UserCheck,\n AlertTriangle,\n Sparkles,\n CreditCard,\n Sun,\n Moon,\n Monitor,\n LogOut,\n Maximize2,\n LayoutPanelLeft,\n} from \"lucide-react\";\nimport type { SidebarContext } from \"../../components/ui/MenuSidebar\";\nimport type {\n HeaderCommandGroup,\n HeaderMessage,\n HeaderNotification,\n HeaderThemeOption,\n} from \"../../components/ui/Header\";\nimport type {\n AppShellUser,\n AppShellLayoutOption,\n} from \"../../components/ui/AppShell\";\n\n/**\n * Mocks compartilhados pelo AppShellDoc + pages de showcase que precisam de uma\n * \"casca de app realista\". Em produção, esses dados viriam do backend/contexto da\n * app — aqui são estáticos pra demonstração consistente.\n */\n\nexport const APP_SHELL_CONTEXTS: SidebarContext[] = [\n {\n id: \"inbox\",\n label: \"Inbox / Operação\",\n icon: Inbox,\n items: [\n { name: \"Atendimentos\", icon: Inbox, href: \"#atendimentos\", badge: \"8\", badgeKind: \"counter\" },\n { name: \"Chat Interno\", icon: ListOrdered, href: \"#chat-interno\", badge: \"2\" },\n { name: \"Agendamentos\", icon: LayoutGrid, href: \"#agendamentos\", badge: \"8\" },\n {\n name: \"Escalation\",\n icon: AlertCircle,\n subitems: [\n { name: \"Dashboard\", href: \"#esc-dash\" },\n { name: \"Departamentos\", href: \"#esc-deps\" },\n { name: \"Regras\", href: \"#esc-rules\" },\n ],\n },\n ],\n sections: [\n {\n id: \"filtros-rapidos\",\n label: \"Filtros rápidos\",\n variant: \"bookmark\",\n items: [\n { color: \"#1cb280\", name: \"Royais — In progress\" },\n { color: \"#f6b51e\", name: \"Licenciados — Waiting\" },\n { color: \"#8754ec\", name: \"IA — handover pendente\" },\n { color: \"#ef4444\", name: \"SLA crítico (> 30min)\" },\n ],\n },\n {\n id: \"mensagens-rapidas\",\n label: \"Mensagens rápidas\",\n variant: \"chat\",\n items: [\n { name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", status: \"online\" },\n { name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", status: \"online\" },\n { name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", status: \"offline\" },\n { name: \"João Pedro\", initials: \"JP\", color: \"#1cb280\", status: \"online\" },\n { name: \"Beatriz Almeida\", initials: \"BA\", color: \"#0088cc\", status: \"online\" },\n ],\n },\n ],\n },\n {\n id: \"crm\",\n label: \"CRM\",\n icon: Contact,\n items: [\n { name: \"Contatos\", icon: Contact, href: \"#contatos\", badge: \"2.1k\" },\n { name: \"Segmentos\", icon: Target, href: \"#segmentos\" },\n { name: \"Tiers\", icon: Trophy, href: \"#tiers\" },\n { name: \"Tags\", icon: Tag, href: \"#tags\" },\n { name: \"Respostas Rápidas\", icon: Reply, href: \"#respostas\" },\n ],\n sections: [\n {\n id: \"listas-salvas\",\n label: \"Listas salvas\",\n variant: \"bookmark\",\n items: [\n { color: \"#0088cc\", name: \"Top 100 ativos\" },\n { color: \"#f59e0b\", name: \"Sem cadastro completo\" },\n { color: \"#1cb280\", name: \"Convertidos último mês\" },\n ],\n },\n ],\n },\n {\n id: \"engajamento\",\n label: \"Engajamento\",\n icon: Megaphone,\n items: [\n { name: \"Campanhas\", icon: Megaphone, href: \"#campanhas\", badge: \"6\" },\n { name: \"Pesquisa Satisfação\", icon: Star, href: \"#csat\", badge: \"CSAT\", badgeKind: \"success\" },\n { name: \"Capacitações\", icon: GraduationCap, href: \"#capacitacoes\" },\n {\n name: \"Green Points\",\n icon: Trophy,\n subitems: [\n { name: \"My Points\", href: \"#gp-my\" },\n { name: \"Management\", href: \"#gp-mgmt\" },\n { name: \"Periods\", href: \"#gp-periods\" },\n { name: \"Configuration\", href: \"#gp-config\" },\n ],\n },\n ],\n },\n {\n id: \"ia\",\n label: \"IA — Agente Sol\",\n icon: Brain,\n items: [\n { name: \"Sol Traces\", icon: Activity, href: \"#sol-traces\", badge: \"94 pgs\" },\n { name: \"Central de Alertas\", icon: AlertCircle, href: \"#alertas\", badge: \"1085\", badgeKind: \"counter\" },\n {\n name: \"AI Rules\",\n icon: Brain,\n subitems: [\n { name: \"Provenance\", href: \"#ai-prov\" },\n { name: \"Embeddings Health\", href: \"#ai-emb\" },\n { name: \"Few-shots Candidates\", href: \"#ai-fs\" },\n ],\n },\n ],\n },\n {\n id: \"config\",\n label: \"Configuração\",\n icon: SettingsIcon,\n items: [\n { name: \"Conexões\", icon: Plug, href: \"#conexoes\", badge: \"2\" },\n { name: \"Filas & Chatbot\", icon: ListOrdered, href: \"#filas-cb\", badge: \"8\" },\n { name: \"Regras de Fila\", icon: Network, href: \"#regras-fila\" },\n { name: \"Channels\", icon: LayoutGrid, href: \"#channels\", badge: \"2\" },\n ],\n },\n];\n\nexport const APP_SHELL_COMMANDS: HeaderCommandGroup[] = [\n {\n heading: \"Navegação rápida\",\n items: [\n { label: \"Clientes\", icon: Users, onSelect: () => alert(\"→ Clientes\") },\n { label: \"Tickets\", icon: Ticket, onSelect: () => alert(\"→ Tickets\") },\n { label: \"Configurações\", icon: Settings, shortcut: \"⌘,\", onSelect: () => alert(\"→ Settings\") },\n ],\n },\n {\n heading: \"Ações\",\n items: [\n { label: \"Novo cliente\", icon: Plus, shortcut: \"⌘N\", onSelect: () => alert(\"Novo cliente\") },\n { label: \"Sair\", icon: LogOut, shortcut: \"⌘Q\", destructive: true, onSelect: () => alert(\"Sair\") },\n ],\n },\n];\n\nexport const APP_SHELL_NOTIFICATIONS: HeaderNotification[] = [\n {\n id: \"n1\",\n icon: UserCheck,\n color: \"#10B881\",\n title: \"Aline Castro mencionou você\",\n body: 'em \"Royais — In progress\" comentou: \"@você pode revisar?\"',\n time: \"2 min\",\n unread: true,\n kind: \"mention\",\n },\n {\n id: \"n2\",\n icon: AlertTriangle,\n color: \"#f59e0b\",\n title: \"SLA em risco\",\n body: \"Ticket #20260504-00031 sem resposta há 28 minutos\",\n time: \"15 min\",\n unread: true,\n kind: \"alert\",\n },\n {\n id: \"n3\",\n icon: Sparkles,\n color: \"#8754ec\",\n title: \"Sol Traces atualizado\",\n body: \"Nova versão com 12 melhorias na qualidade das respostas\",\n time: \"1 h\",\n unread: true,\n kind: \"system\",\n },\n {\n id: \"n4\",\n icon: CreditCard,\n color: \"#0FC589\",\n title: \"Fatura paga\",\n body: \"Pagamento de R$ 4.250,00 confirmado.\",\n time: \"3 h\",\n kind: \"billing\",\n },\n];\n\nexport const APP_SHELL_MESSAGES: HeaderMessage[] = [\n { id: \"m1\", name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", preview: \"Olá! Você pode revisar o ticket #1234?\", time: \"2 min\", unread: true },\n { id: \"m2\", name: \"Equipe Suporte\", initials: \"ES\", color: \"#0088cc\", preview: \"Bruno: pessoal, alguém disponível pra cobrir...\", time: \"12 min\", unread: true, group: true },\n { id: \"m3\", name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", preview: \"Boa tarde! Aquele cliente confirmou.\", time: \"1 h\" },\n { id: \"m4\", name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", preview: \"Reunião remarcada pra amanhã 10h.\", time: \"ontem\" },\n];\n\nexport const APP_SHELL_THEME_OPTIONS: HeaderThemeOption[] = [\n { id: \"system\", label: \"Sistema\", icon: Monitor },\n { id: \"light\", label: \"Claro\", icon: Sun },\n { id: \"dark\", label: \"Escuro\", icon: Moon },\n];\n\n/* ── User menu (avatar do rail) ───────────────────────────────────── */\n\nexport const APP_SHELL_USER: AppShellUser = {\n name: \"Sergio Vieira\",\n email: \"sergio.vieira@igreenenergy.com.br\",\n initials: \"SV\",\n};\n\nexport const APP_SHELL_LAYOUT_OPTIONS: AppShellLayoutOption[] = [\n { id: \"fluid\", label: \"Fluido\", icon: Maximize2 },\n { id: \"compact\", label: \"Compacto\", icon: LayoutPanelLeft },\n];\n"],"names":["SettingsIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell-mocks-oO_IV3Gw.cjs","sources":["../../src/preview/mocks/app-shell-mocks.ts"],"sourcesContent":["import {\r\n Inbox,\r\n Contact,\r\n Megaphone,\r\n Brain,\r\n Settings as SettingsIcon,\r\n LayoutGrid,\r\n Target,\r\n Trophy,\r\n Tag,\r\n Reply,\r\n Star,\r\n GraduationCap,\r\n Activity,\r\n AlertCircle,\r\n Plug,\r\n ListOrdered,\r\n Network,\r\n Users,\r\n Ticket,\r\n Plus,\r\n Settings,\r\n UserCheck,\r\n AlertTriangle,\r\n Sparkles,\r\n CreditCard,\r\n Sun,\r\n Moon,\r\n Monitor,\r\n LogOut,\r\n Maximize2,\r\n LayoutPanelLeft,\r\n} from \"lucide-react\";\r\nimport type { SidebarContext } from \"../../components/ui/MenuSidebar\";\r\nimport type {\r\n HeaderCommandGroup,\r\n HeaderMessage,\r\n HeaderNotification,\r\n HeaderThemeOption,\r\n} from \"../../components/ui/Header\";\r\nimport type {\r\n AppShellUser,\r\n AppShellLayoutOption,\r\n} from \"../../components/ui/AppShell\";\r\n\r\n/**\r\n * Mocks compartilhados pelo AppShellDoc + pages de showcase que precisam de uma\r\n * \"casca de app realista\". Em produção, esses dados viriam do backend/contexto da\r\n * app — aqui são estáticos pra demonstração consistente.\r\n */\r\n\r\nexport const APP_SHELL_CONTEXTS: SidebarContext[] = [\r\n {\r\n id: \"inbox\",\r\n label: \"Inbox / Operação\",\r\n icon: Inbox,\r\n items: [\r\n { name: \"Atendimentos\", icon: Inbox, href: \"#atendimentos\", badge: \"8\", badgeKind: \"counter\" },\r\n { name: \"Chat Interno\", icon: ListOrdered, href: \"#chat-interno\", badge: \"2\" },\r\n { name: \"Agendamentos\", icon: LayoutGrid, href: \"#agendamentos\", badge: \"8\" },\r\n {\r\n name: \"Escalation\",\r\n icon: AlertCircle,\r\n subitems: [\r\n { name: \"Dashboard\", href: \"#esc-dash\" },\r\n { name: \"Departamentos\", href: \"#esc-deps\" },\r\n { name: \"Regras\", href: \"#esc-rules\" },\r\n ],\r\n },\r\n ],\r\n sections: [\r\n {\r\n id: \"filtros-rapidos\",\r\n label: \"Filtros rápidos\",\r\n variant: \"bookmark\",\r\n items: [\r\n { color: \"#1cb280\", name: \"Royais — In progress\" },\r\n { color: \"#f6b51e\", name: \"Licenciados — Waiting\" },\r\n { color: \"#8754ec\", name: \"IA — handover pendente\" },\r\n { color: \"#ef4444\", name: \"SLA crítico (> 30min)\" },\r\n ],\r\n },\r\n {\r\n id: \"mensagens-rapidas\",\r\n label: \"Mensagens rápidas\",\r\n variant: \"chat\",\r\n items: [\r\n { name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", status: \"online\" },\r\n { name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", status: \"online\" },\r\n { name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", status: \"offline\" },\r\n { name: \"João Pedro\", initials: \"JP\", color: \"#1cb280\", status: \"online\" },\r\n { name: \"Beatriz Almeida\", initials: \"BA\", color: \"#0088cc\", status: \"online\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"crm\",\r\n label: \"CRM\",\r\n icon: Contact,\r\n items: [\r\n { name: \"Contatos\", icon: Contact, href: \"#contatos\", badge: \"2.1k\" },\r\n { name: \"Segmentos\", icon: Target, href: \"#segmentos\" },\r\n { name: \"Tiers\", icon: Trophy, href: \"#tiers\" },\r\n { name: \"Tags\", icon: Tag, href: \"#tags\" },\r\n { name: \"Respostas Rápidas\", icon: Reply, href: \"#respostas\" },\r\n ],\r\n sections: [\r\n {\r\n id: \"listas-salvas\",\r\n label: \"Listas salvas\",\r\n variant: \"bookmark\",\r\n items: [\r\n { color: \"#0088cc\", name: \"Top 100 ativos\" },\r\n { color: \"#f59e0b\", name: \"Sem cadastro completo\" },\r\n { color: \"#1cb280\", name: \"Convertidos último mês\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"engajamento\",\r\n label: \"Engajamento\",\r\n icon: Megaphone,\r\n items: [\r\n { name: \"Campanhas\", icon: Megaphone, href: \"#campanhas\", badge: \"6\" },\r\n { name: \"Pesquisa Satisfação\", icon: Star, href: \"#csat\", badge: \"CSAT\", badgeKind: \"success\" },\r\n { name: \"Capacitações\", icon: GraduationCap, href: \"#capacitacoes\" },\r\n {\r\n name: \"Green Points\",\r\n icon: Trophy,\r\n subitems: [\r\n { name: \"My Points\", href: \"#gp-my\" },\r\n { name: \"Management\", href: \"#gp-mgmt\" },\r\n { name: \"Periods\", href: \"#gp-periods\" },\r\n { name: \"Configuration\", href: \"#gp-config\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"ia\",\r\n label: \"IA — Agente Sol\",\r\n icon: Brain,\r\n items: [\r\n { name: \"Sol Traces\", icon: Activity, href: \"#sol-traces\", badge: \"94 pgs\" },\r\n { name: \"Central de Alertas\", icon: AlertCircle, href: \"#alertas\", badge: \"1085\", badgeKind: \"counter\" },\r\n {\r\n name: \"AI Rules\",\r\n icon: Brain,\r\n subitems: [\r\n { name: \"Provenance\", href: \"#ai-prov\" },\r\n { name: \"Embeddings Health\", href: \"#ai-emb\" },\r\n { name: \"Few-shots Candidates\", href: \"#ai-fs\" },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"config\",\r\n label: \"Configuração\",\r\n icon: SettingsIcon,\r\n items: [\r\n { name: \"Conexões\", icon: Plug, href: \"#conexoes\", badge: \"2\" },\r\n { name: \"Filas & Chatbot\", icon: ListOrdered, href: \"#filas-cb\", badge: \"8\" },\r\n { name: \"Regras de Fila\", icon: Network, href: \"#regras-fila\" },\r\n { name: \"Channels\", icon: LayoutGrid, href: \"#channels\", badge: \"2\" },\r\n ],\r\n },\r\n];\r\n\r\nexport const APP_SHELL_COMMANDS: HeaderCommandGroup[] = [\r\n {\r\n heading: \"Navegação rápida\",\r\n items: [\r\n { label: \"Clientes\", icon: Users, onSelect: () => alert(\"→ Clientes\") },\r\n { label: \"Tickets\", icon: Ticket, onSelect: () => alert(\"→ Tickets\") },\r\n { label: \"Configurações\", icon: Settings, shortcut: \"⌘,\", onSelect: () => alert(\"→ Settings\") },\r\n ],\r\n },\r\n {\r\n heading: \"Ações\",\r\n items: [\r\n { label: \"Novo cliente\", icon: Plus, shortcut: \"⌘N\", onSelect: () => alert(\"Novo cliente\") },\r\n { label: \"Sair\", icon: LogOut, shortcut: \"⌘Q\", destructive: true, onSelect: () => alert(\"Sair\") },\r\n ],\r\n },\r\n];\r\n\r\nexport const APP_SHELL_NOTIFICATIONS: HeaderNotification[] = [\r\n {\r\n id: \"n1\",\r\n icon: UserCheck,\r\n color: \"#10B881\",\r\n title: \"Aline Castro mencionou você\",\r\n body: 'em \"Royais — In progress\" comentou: \"@você pode revisar?\"',\r\n time: \"2 min\",\r\n unread: true,\r\n kind: \"mention\",\r\n },\r\n {\r\n id: \"n2\",\r\n icon: AlertTriangle,\r\n color: \"#f59e0b\",\r\n title: \"SLA em risco\",\r\n body: \"Ticket #20260504-00031 sem resposta há 28 minutos\",\r\n time: \"15 min\",\r\n unread: true,\r\n kind: \"alert\",\r\n },\r\n {\r\n id: \"n3\",\r\n icon: Sparkles,\r\n color: \"#8754ec\",\r\n title: \"Sol Traces atualizado\",\r\n body: \"Nova versão com 12 melhorias na qualidade das respostas\",\r\n time: \"1 h\",\r\n unread: true,\r\n kind: \"system\",\r\n },\r\n {\r\n id: \"n4\",\r\n icon: CreditCard,\r\n color: \"#0FC589\",\r\n title: \"Fatura paga\",\r\n body: \"Pagamento de R$ 4.250,00 confirmado.\",\r\n time: \"3 h\",\r\n kind: \"billing\",\r\n },\r\n];\r\n\r\nexport const APP_SHELL_MESSAGES: HeaderMessage[] = [\r\n { id: \"m1\", name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", preview: \"Olá! Você pode revisar o ticket #1234?\", time: \"2 min\", unread: true },\r\n { id: \"m2\", name: \"Equipe Suporte\", initials: \"ES\", color: \"#0088cc\", preview: \"Bruno: pessoal, alguém disponível pra cobrir...\", time: \"12 min\", unread: true, group: true },\r\n { id: \"m3\", name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", preview: \"Boa tarde! Aquele cliente confirmou.\", time: \"1 h\" },\r\n { id: \"m4\", name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", preview: \"Reunião remarcada pra amanhã 10h.\", time: \"ontem\" },\r\n];\r\n\r\nexport const APP_SHELL_THEME_OPTIONS: HeaderThemeOption[] = [\r\n { id: \"system\", label: \"Sistema\", icon: Monitor },\r\n { id: \"light\", label: \"Claro\", icon: Sun },\r\n { id: \"dark\", label: \"Escuro\", icon: Moon },\r\n];\r\n\r\n/* ── User menu (avatar do rail) ───────────────────────────────────── */\r\n\r\nexport const APP_SHELL_USER: AppShellUser = {\r\n name: \"Sergio Vieira\",\r\n email: \"sergio.vieira@igreenenergy.com.br\",\r\n initials: \"SV\",\r\n};\r\n\r\nexport const APP_SHELL_LAYOUT_OPTIONS: AppShellLayoutOption[] = [\r\n { id: \"fluid\", label: \"Fluido\", icon: Maximize2 },\r\n { id: \"compact\", label: \"Compacto\", icon: LayoutPanelLeft },\r\n];\r\n"],"names":["Inbox","ListOrdered","LayoutGrid","AlertCircle","Contact","Target","Trophy","Tag","Reply","Megaphone","Star","GraduationCap","Brain","Activity","SettingsIcon","Plug","Network","Users","Ticket","Settings","Plus","LogOut","UserCheck","AlertTriangle","Sparkles","CreditCard","Monitor","Sun","Moon","Maximize2","LayoutPanelLeft"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell-mocks-oO_IV3Gw.cjs","sources":["../../src/preview/mocks/app-shell-mocks.ts"],"sourcesContent":["import {\n Inbox,\n Contact,\n Megaphone,\n Brain,\n Settings as SettingsIcon,\n LayoutGrid,\n Target,\n Trophy,\n Tag,\n Reply,\n Star,\n GraduationCap,\n Activity,\n AlertCircle,\n Plug,\n ListOrdered,\n Network,\n Users,\n Ticket,\n Plus,\n Settings,\n UserCheck,\n AlertTriangle,\n Sparkles,\n CreditCard,\n Sun,\n Moon,\n Monitor,\n LogOut,\n Maximize2,\n LayoutPanelLeft,\n} from \"lucide-react\";\nimport type { SidebarContext } from \"../../components/ui/MenuSidebar\";\nimport type {\n HeaderCommandGroup,\n HeaderMessage,\n HeaderNotification,\n HeaderThemeOption,\n} from \"../../components/ui/Header\";\nimport type {\n AppShellUser,\n AppShellLayoutOption,\n} from \"../../components/ui/AppShell\";\n\n/**\n * Mocks compartilhados pelo AppShellDoc + pages de showcase que precisam de uma\n * \"casca de app realista\". Em produção, esses dados viriam do backend/contexto da\n * app — aqui são estáticos pra demonstração consistente.\n */\n\nexport const APP_SHELL_CONTEXTS: SidebarContext[] = [\n {\n id: \"inbox\",\n label: \"Inbox / Operação\",\n icon: Inbox,\n items: [\n { name: \"Atendimentos\", icon: Inbox, href: \"#atendimentos\", badge: \"8\", badgeKind: \"counter\" },\n { name: \"Chat Interno\", icon: ListOrdered, href: \"#chat-interno\", badge: \"2\" },\n { name: \"Agendamentos\", icon: LayoutGrid, href: \"#agendamentos\", badge: \"8\" },\n {\n name: \"Escalation\",\n icon: AlertCircle,\n subitems: [\n { name: \"Dashboard\", href: \"#esc-dash\" },\n { name: \"Departamentos\", href: \"#esc-deps\" },\n { name: \"Regras\", href: \"#esc-rules\" },\n ],\n },\n ],\n sections: [\n {\n id: \"filtros-rapidos\",\n label: \"Filtros rápidos\",\n variant: \"bookmark\",\n items: [\n { color: \"#1cb280\", name: \"Royais — In progress\" },\n { color: \"#f6b51e\", name: \"Licenciados — Waiting\" },\n { color: \"#8754ec\", name: \"IA — handover pendente\" },\n { color: \"#ef4444\", name: \"SLA crítico (> 30min)\" },\n ],\n },\n {\n id: \"mensagens-rapidas\",\n label: \"Mensagens rápidas\",\n variant: \"chat\",\n items: [\n { name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", status: \"online\" },\n { name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", status: \"online\" },\n { name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", status: \"offline\" },\n { name: \"João Pedro\", initials: \"JP\", color: \"#1cb280\", status: \"online\" },\n { name: \"Beatriz Almeida\", initials: \"BA\", color: \"#0088cc\", status: \"online\" },\n ],\n },\n ],\n },\n {\n id: \"crm\",\n label: \"CRM\",\n icon: Contact,\n items: [\n { name: \"Contatos\", icon: Contact, href: \"#contatos\", badge: \"2.1k\" },\n { name: \"Segmentos\", icon: Target, href: \"#segmentos\" },\n { name: \"Tiers\", icon: Trophy, href: \"#tiers\" },\n { name: \"Tags\", icon: Tag, href: \"#tags\" },\n { name: \"Respostas Rápidas\", icon: Reply, href: \"#respostas\" },\n ],\n sections: [\n {\n id: \"listas-salvas\",\n label: \"Listas salvas\",\n variant: \"bookmark\",\n items: [\n { color: \"#0088cc\", name: \"Top 100 ativos\" },\n { color: \"#f59e0b\", name: \"Sem cadastro completo\" },\n { color: \"#1cb280\", name: \"Convertidos último mês\" },\n ],\n },\n ],\n },\n {\n id: \"engajamento\",\n label: \"Engajamento\",\n icon: Megaphone,\n items: [\n { name: \"Campanhas\", icon: Megaphone, href: \"#campanhas\", badge: \"6\" },\n { name: \"Pesquisa Satisfação\", icon: Star, href: \"#csat\", badge: \"CSAT\", badgeKind: \"success\" },\n { name: \"Capacitações\", icon: GraduationCap, href: \"#capacitacoes\" },\n {\n name: \"Green Points\",\n icon: Trophy,\n subitems: [\n { name: \"My Points\", href: \"#gp-my\" },\n { name: \"Management\", href: \"#gp-mgmt\" },\n { name: \"Periods\", href: \"#gp-periods\" },\n { name: \"Configuration\", href: \"#gp-config\" },\n ],\n },\n ],\n },\n {\n id: \"ia\",\n label: \"IA — Agente Sol\",\n icon: Brain,\n items: [\n { name: \"Sol Traces\", icon: Activity, href: \"#sol-traces\", badge: \"94 pgs\" },\n { name: \"Central de Alertas\", icon: AlertCircle, href: \"#alertas\", badge: \"1085\", badgeKind: \"counter\" },\n {\n name: \"AI Rules\",\n icon: Brain,\n subitems: [\n { name: \"Provenance\", href: \"#ai-prov\" },\n { name: \"Embeddings Health\", href: \"#ai-emb\" },\n { name: \"Few-shots Candidates\", href: \"#ai-fs\" },\n ],\n },\n ],\n },\n {\n id: \"config\",\n label: \"Configuração\",\n icon: SettingsIcon,\n items: [\n { name: \"Conexões\", icon: Plug, href: \"#conexoes\", badge: \"2\" },\n { name: \"Filas & Chatbot\", icon: ListOrdered, href: \"#filas-cb\", badge: \"8\" },\n { name: \"Regras de Fila\", icon: Network, href: \"#regras-fila\" },\n { name: \"Channels\", icon: LayoutGrid, href: \"#channels\", badge: \"2\" },\n ],\n },\n];\n\nexport const APP_SHELL_COMMANDS: HeaderCommandGroup[] = [\n {\n heading: \"Navegação rápida\",\n items: [\n { label: \"Clientes\", icon: Users, onSelect: () => alert(\"→ Clientes\") },\n { label: \"Tickets\", icon: Ticket, onSelect: () => alert(\"→ Tickets\") },\n { label: \"Configurações\", icon: Settings, shortcut: \"⌘,\", onSelect: () => alert(\"→ Settings\") },\n ],\n },\n {\n heading: \"Ações\",\n items: [\n { label: \"Novo cliente\", icon: Plus, shortcut: \"⌘N\", onSelect: () => alert(\"Novo cliente\") },\n { label: \"Sair\", icon: LogOut, shortcut: \"⌘Q\", destructive: true, onSelect: () => alert(\"Sair\") },\n ],\n },\n];\n\nexport const APP_SHELL_NOTIFICATIONS: HeaderNotification[] = [\n {\n id: \"n1\",\n icon: UserCheck,\n color: \"#10B881\",\n title: \"Aline Castro mencionou você\",\n body: 'em \"Royais — In progress\" comentou: \"@você pode revisar?\"',\n time: \"2 min\",\n unread: true,\n kind: \"mention\",\n },\n {\n id: \"n2\",\n icon: AlertTriangle,\n color: \"#f59e0b\",\n title: \"SLA em risco\",\n body: \"Ticket #20260504-00031 sem resposta há 28 minutos\",\n time: \"15 min\",\n unread: true,\n kind: \"alert\",\n },\n {\n id: \"n3\",\n icon: Sparkles,\n color: \"#8754ec\",\n title: \"Sol Traces atualizado\",\n body: \"Nova versão com 12 melhorias na qualidade das respostas\",\n time: \"1 h\",\n unread: true,\n kind: \"system\",\n },\n {\n id: \"n4\",\n icon: CreditCard,\n color: \"#0FC589\",\n title: \"Fatura paga\",\n body: \"Pagamento de R$ 4.250,00 confirmado.\",\n time: \"3 h\",\n kind: \"billing\",\n },\n];\n\nexport const APP_SHELL_MESSAGES: HeaderMessage[] = [\n { id: \"m1\", name: \"Aline Castro\", initials: \"AC\", color: \"#f59e0b\", preview: \"Olá! Você pode revisar o ticket #1234?\", time: \"2 min\", unread: true },\n { id: \"m2\", name: \"Equipe Suporte\", initials: \"ES\", color: \"#0088cc\", preview: \"Bruno: pessoal, alguém disponível pra cobrir...\", time: \"12 min\", unread: true, group: true },\n { id: \"m3\", name: \"Carlos Souza\", initials: \"CS\", color: \"#8754ec\", preview: \"Boa tarde! Aquele cliente confirmou.\", time: \"1 h\" },\n { id: \"m4\", name: \"Maria Lima\", initials: \"ML\", color: \"#ef4444\", preview: \"Reunião remarcada pra amanhã 10h.\", time: \"ontem\" },\n];\n\nexport const APP_SHELL_THEME_OPTIONS: HeaderThemeOption[] = [\n { id: \"system\", label: \"Sistema\", icon: Monitor },\n { id: \"light\", label: \"Claro\", icon: Sun },\n { id: \"dark\", label: \"Escuro\", icon: Moon },\n];\n\n/* ── User menu (avatar do rail) ───────────────────────────────────── */\n\nexport const APP_SHELL_USER: AppShellUser = {\n name: \"Sergio Vieira\",\n email: \"sergio.vieira@igreenenergy.com.br\",\n initials: \"SV\",\n};\n\nexport const APP_SHELL_LAYOUT_OPTIONS: AppShellLayoutOption[] = [\n { id: \"fluid\", label: \"Fluido\", icon: Maximize2 },\n { id: \"compact\", label: \"Compacto\", icon: LayoutPanelLeft },\n];\n"],"names":["Inbox","ListOrdered","LayoutGrid","AlertCircle","Contact","Target","Trophy","Tag","Reply","Megaphone","Star","GraduationCap","Brain","Activity","SettingsIcon","Plug","Network","Users","Ticket","Settings","Plus","LogOut","UserCheck","AlertTriangle","Sparkles","CreditCard","Monitor","Sun","Moon","Maximize2","LayoutPanelLeft"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-v2-mocks-BV9Wha_Z.cjs","sources":["../../src/preview/pages/ChatV2/chat-v2-mocks.ts"],"sourcesContent":["import {\r\n CheckCircle2,\r\n Clock,\r\n Crown,\r\n Inbox,\r\n Mail,\r\n MessageSquare,\r\n Send,\r\n Shield,\r\n Users,\r\n} from \"lucide-react\";\r\nimport type {\r\n ChannelId,\r\n Conversation,\r\n ConversationDetail,\r\n ConversationStatus,\r\n FilterGroupKey,\r\n FilterItem,\r\n Message,\r\n} from \"./chat-v2.types\";\r\n\r\n/* ── Lookups por canal ──────────────────────────────────────────── */\r\n\r\nexport const CHANNEL_LABEL: Record<ChannelId, string> = {\r\n whatsapp: \"WhatsApp\",\r\n telegram: \"Telegram\",\r\n instagram: \"Instagram\",\r\n webchat: \"Web Chat\",\r\n email: \"Email\",\r\n};\r\n\r\nexport const CHANNEL_HEX: Record<ChannelId, string> = {\r\n whatsapp: \"#25d366\",\r\n telegram: \"#0088cc\",\r\n instagram: \"#e1306c\",\r\n webchat: \"#0a3a2e\",\r\n email: \"#8754ec\",\r\n};\r\n\r\n/* ── Status dot (cor por status na sidebar/header) ──────────────── */\r\n\r\nexport const STATUS_DOT: Record<ConversationStatus, string> = {\r\n attending: \"var(--color-fg-success)\",\r\n waiting: \"var(--color-fg-warning)\",\r\n ai: \"var(--color-fg-info)\",\r\n};\r\n\r\n/* ── Conversations (fila) ───────────────────────────────────────── */\r\n\r\nexport const CONVERSATIONS: Conversation[] = [\r\n {\r\n id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", avatarHex: \"#f59e0b\",\r\n channel: \"whatsapp\", tag: \"Royal\", tagKind: \"warning\",\r\n status: \"attending\", statusLabel: \"Em atendimento\",\r\n last: \"Quanto seria o investimento inicial?\", time: \"10:42\", unread: 0,\r\n },\r\n {\r\n id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", avatarHex: \"#0a3a2e\",\r\n channel: \"telegram\", tag: \"Licenciado\", tagKind: \"info\",\r\n status: \"waiting\", statusLabel: \"Em espera\",\r\n last: \"Hey, how are you?\", time: \"10:30\", unread: 2,\r\n },\r\n {\r\n id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", avatarHex: \"#8754ec\",\r\n channel: \"instagram\", tag: \"Royal\", tagKind: \"warning\",\r\n status: \"attending\", statusLabel: \"Em atendimento\",\r\n last: \"Vou enviar os documentos hoje à tarde\", time: \"09:55\", unread: 1,\r\n },\r\n {\r\n id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", avatarHex: \"#0088cc\",\r\n channel: \"whatsapp\", tag: \"Lead\", tagKind: \"success\",\r\n status: \"ai\", statusLabel: \"IA\",\r\n last: \"Obrigado! Vou avaliar a proposta.\", time: \"Ontem\", unread: 0,\r\n },\r\n {\r\n id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", avatarHex: \"#1cb280\",\r\n channel: \"email\", tag: \"Licenciado\", tagKind: \"info\",\r\n status: \"waiting\", statusLabel: \"Em espera\",\r\n last: \"Bom dia! Quando podemos conversar?\", time: \"Ontem\", unread: 0,\r\n },\r\n {\r\n id: \"#A-2470\", name: \"Pedro Pereira\", initials: \"PP\", avatarHex: \"#ef4444\",\r\n channel: \"webchat\", tag: \"Lead\", tagKind: \"success\",\r\n status: \"attending\", statusLabel: \"Em atendimento\",\r\n last: \"Recebi os materiais, muito bons!\", time: \"Seg\", unread: 0,\r\n },\r\n];\r\n\r\n/* ── Filtros (sidebar esquerda) ─────────────────────────────────── */\r\n\r\nexport const STATUS_WORKFLOW: FilterItem[] = [\r\n { id: \"open\", name: \"Abertos\", count: 24, hasUnread: true, icon: Inbox },\r\n { id: \"pending\", name: \"Pendentes\", count: 6, icon: Clock },\r\n { id: \"resolved\", name: \"Resolvidos\", count: 18, icon: CheckCircle2 },\r\n];\r\n\r\nexport const CHANNELS_LIST: FilterItem[] = [\r\n { id: \"whatsapp\", name: \"WhatsApp\", count: 12, hasUnread: true, color: \"#25d366\", icon: MessageSquare },\r\n { id: \"telegram\", name: \"Telegram\", count: 4, color: \"#0088cc\", icon: Send },\r\n { id: \"instagram\", name: \"Instagram\", count: 5, color: \"#e1306c\", icon: MessageSquare },\r\n { id: \"webchat\", name: \"Web Chat\", count: 2, color: \"#0a3a2e\", icon: MessageSquare },\r\n { id: \"email\", name: \"Email\", count: 1, color: \"#8754ec\", icon: Mail },\r\n];\r\n\r\nexport const CATEGORIES_LIST: FilterItem[] = [\r\n { id: \"royal\", name: \"Royals\", count: 9, color: \"#f6b51e\", icon: Crown },\r\n { id: \"licenciado\", name: \"Licenciados\", count: 11, color: \"#8754ec\", icon: Shield },\r\n { id: \"lead\", name: \"Leads\", count: 4, color: \"#70c748\", icon: Users },\r\n];\r\n\r\nexport const STATUS_INNER_LIST: FilterItem[] = [\r\n { id: \"attending\", name: \"Em atendimento\", count: 8, color: \"var(--color-fg-success)\" },\r\n { id: \"waiting\", name: \"Em espera\", count: 7, color: \"var(--color-fg-warning)\" },\r\n { id: \"ai\", name: \"IA\", count: 9, color: \"var(--color-fg-info)\" },\r\n];\r\n\r\n/* ── Ordem canônica dos 4 grupos de filtros ───────────────────── */\r\n\r\n/**\r\n * Fonte única dos grupos de filtros. Consumido por `FiltersColumn` (com\r\n * `title`) e `FiltersRail` (sem `title`, divisor entre grupos).\r\n */\r\nexport const FILTER_GROUPS: {\r\n group: FilterGroupKey;\r\n title: string;\r\n items: FilterItem[];\r\n}[] = [\r\n { group: \"status\", title: \"STATUS\", items: STATUS_WORKFLOW },\r\n { group: \"channels\", title: \"CANAIS\", items: CHANNELS_LIST },\r\n { group: \"categories\", title: \"CATEGORIAS\", items: CATEGORIES_LIST },\r\n { group: \"innerStatus\", title: \"STATUS INTERNO\", items: STATUS_INNER_LIST },\r\n];\r\n\r\n/* ── Conversation details (painel direito) ──────────────────────── */\r\n\r\nexport const CONVERSATION_DETAILS: Record<string, ConversationDetail> = {\r\n \"#A-2453\": {\r\n phone: \"+55 11 98765-4321\",\r\n email: \"maria.hernandez@example.com\",\r\n firstContact: \"12 mar 2024\",\r\n assignedTo: \"Você\",\r\n createdAt: \"Hoje, 09:30\",\r\n extraTags: [\"VIP\", \"Setor financeiro\"],\r\n history: [\r\n { id: \"#A-2401\", date: \"20 abr 2024\", subject: \"Dúvida sobre comissão\", status: \"Resolvido\" },\r\n { id: \"#A-2389\", date: \"15 abr 2024\", subject: \"Reativação de conta\", status: \"Resolvido\" },\r\n { id: \"#A-2367\", date: \"10 abr 2024\", subject: \"Materiais exclusivos\", status: \"Resolvido\" },\r\n ],\r\n },\r\n};\r\n\r\nexport const DEFAULT_DETAIL: ConversationDetail = {\r\n phone: \"—\",\r\n email: \"—\",\r\n firstContact: \"—\",\r\n assignedTo: \"—\",\r\n createdAt: \"—\",\r\n extraTags: [],\r\n history: [],\r\n};\r\n\r\n/* ── Sample messages (thread inicial da conversa ativa) ─────────── */\r\n\r\nexport const SAMPLE_MESSAGES: Message[] = [\r\n { id: 1, from: \"them\", text: \"Olá! Bom dia 👋\", time: \"10:30\" },\r\n { id: 2, from: \"them\", text: \"Vi a oferta de vocês para licenciados Royal e gostaria de mais informações.\", time: \"10:30\" },\r\n { id: 3, from: \"me\", text: \"Bom dia, Maria! Tudo bem? 😊 Posso te ajudar com toda alegria.\", time: \"10:32\", status: \"read\" },\r\n { id: 4, from: \"me\", text: \"A oferta para Royals inclui 30% de comissão recorrente, suporte prioritário e materiais exclusivos.\", time: \"10:32\", status: \"read\" },\r\n { id: 5, from: \"them\", text: \"Have good budget for the project.\", time: \"10:42\" },\r\n { id: 6, from: \"them\", text: \"Quanto seria o investimento inicial?\", time: \"10:42\" },\r\n];\r\n"],"names":["Inbox","Clock","CheckCircle2","MessageSquare","Send","Mail","Crown","Shield","Users"],"mappings":"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"}
1
+ {"version":3,"file":"chat-v2-mocks-BV9Wha_Z.cjs","sources":["../../src/preview/pages/ChatV2/chat-v2-mocks.ts"],"sourcesContent":["import {\n CheckCircle2,\n Clock,\n Crown,\n Inbox,\n Mail,\n MessageSquare,\n Send,\n Shield,\n Users,\n} from \"lucide-react\";\nimport type {\n ChannelId,\n Conversation,\n ConversationDetail,\n ConversationStatus,\n FilterGroupKey,\n FilterItem,\n Message,\n} from \"./chat-v2.types\";\n\n/* ── Lookups por canal ──────────────────────────────────────────── */\n\nexport const CHANNEL_LABEL: Record<ChannelId, string> = {\n whatsapp: \"WhatsApp\",\n telegram: \"Telegram\",\n instagram: \"Instagram\",\n webchat: \"Web Chat\",\n email: \"Email\",\n};\n\nexport const CHANNEL_HEX: Record<ChannelId, string> = {\n whatsapp: \"#25d366\",\n telegram: \"#0088cc\",\n instagram: \"#e1306c\",\n webchat: \"#0a3a2e\",\n email: \"#8754ec\",\n};\n\n/* ── Status dot (cor por status na sidebar/header) ──────────────── */\n\nexport const STATUS_DOT: Record<ConversationStatus, string> = {\n attending: \"var(--color-fg-success)\",\n waiting: \"var(--color-fg-warning)\",\n ai: \"var(--color-fg-info)\",\n};\n\n/* ── Conversations (fila) ───────────────────────────────────────── */\n\nexport const CONVERSATIONS: Conversation[] = [\n {\n id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", avatarHex: \"#f59e0b\",\n channel: \"whatsapp\", tag: \"Royal\", tagKind: \"warning\",\n status: \"attending\", statusLabel: \"Em atendimento\",\n last: \"Quanto seria o investimento inicial?\", time: \"10:42\", unread: 0,\n },\n {\n id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", avatarHex: \"#0a3a2e\",\n channel: \"telegram\", tag: \"Licenciado\", tagKind: \"info\",\n status: \"waiting\", statusLabel: \"Em espera\",\n last: \"Hey, how are you?\", time: \"10:30\", unread: 2,\n },\n {\n id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", avatarHex: \"#8754ec\",\n channel: \"instagram\", tag: \"Royal\", tagKind: \"warning\",\n status: \"attending\", statusLabel: \"Em atendimento\",\n last: \"Vou enviar os documentos hoje à tarde\", time: \"09:55\", unread: 1,\n },\n {\n id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", avatarHex: \"#0088cc\",\n channel: \"whatsapp\", tag: \"Lead\", tagKind: \"success\",\n status: \"ai\", statusLabel: \"IA\",\n last: \"Obrigado! Vou avaliar a proposta.\", time: \"Ontem\", unread: 0,\n },\n {\n id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", avatarHex: \"#1cb280\",\n channel: \"email\", tag: \"Licenciado\", tagKind: \"info\",\n status: \"waiting\", statusLabel: \"Em espera\",\n last: \"Bom dia! Quando podemos conversar?\", time: \"Ontem\", unread: 0,\n },\n {\n id: \"#A-2470\", name: \"Pedro Pereira\", initials: \"PP\", avatarHex: \"#ef4444\",\n channel: \"webchat\", tag: \"Lead\", tagKind: \"success\",\n status: \"attending\", statusLabel: \"Em atendimento\",\n last: \"Recebi os materiais, muito bons!\", time: \"Seg\", unread: 0,\n },\n];\n\n/* ── Filtros (sidebar esquerda) ─────────────────────────────────── */\n\nexport const STATUS_WORKFLOW: FilterItem[] = [\n { id: \"open\", name: \"Abertos\", count: 24, hasUnread: true, icon: Inbox },\n { id: \"pending\", name: \"Pendentes\", count: 6, icon: Clock },\n { id: \"resolved\", name: \"Resolvidos\", count: 18, icon: CheckCircle2 },\n];\n\nexport const CHANNELS_LIST: FilterItem[] = [\n { id: \"whatsapp\", name: \"WhatsApp\", count: 12, hasUnread: true, color: \"#25d366\", icon: MessageSquare },\n { id: \"telegram\", name: \"Telegram\", count: 4, color: \"#0088cc\", icon: Send },\n { id: \"instagram\", name: \"Instagram\", count: 5, color: \"#e1306c\", icon: MessageSquare },\n { id: \"webchat\", name: \"Web Chat\", count: 2, color: \"#0a3a2e\", icon: MessageSquare },\n { id: \"email\", name: \"Email\", count: 1, color: \"#8754ec\", icon: Mail },\n];\n\nexport const CATEGORIES_LIST: FilterItem[] = [\n { id: \"royal\", name: \"Royals\", count: 9, color: \"#f6b51e\", icon: Crown },\n { id: \"licenciado\", name: \"Licenciados\", count: 11, color: \"#8754ec\", icon: Shield },\n { id: \"lead\", name: \"Leads\", count: 4, color: \"#70c748\", icon: Users },\n];\n\nexport const STATUS_INNER_LIST: FilterItem[] = [\n { id: \"attending\", name: \"Em atendimento\", count: 8, color: \"var(--color-fg-success)\" },\n { id: \"waiting\", name: \"Em espera\", count: 7, color: \"var(--color-fg-warning)\" },\n { id: \"ai\", name: \"IA\", count: 9, color: \"var(--color-fg-info)\" },\n];\n\n/* ── Ordem canônica dos 4 grupos de filtros ───────────────────── */\n\n/**\n * Fonte única dos grupos de filtros. Consumido por `FiltersColumn` (com\n * `title`) e `FiltersRail` (sem `title`, divisor entre grupos).\n */\nexport const FILTER_GROUPS: {\n group: FilterGroupKey;\n title: string;\n items: FilterItem[];\n}[] = [\n { group: \"status\", title: \"STATUS\", items: STATUS_WORKFLOW },\n { group: \"channels\", title: \"CANAIS\", items: CHANNELS_LIST },\n { group: \"categories\", title: \"CATEGORIAS\", items: CATEGORIES_LIST },\n { group: \"innerStatus\", title: \"STATUS INTERNO\", items: STATUS_INNER_LIST },\n];\n\n/* ── Conversation details (painel direito) ──────────────────────── */\n\nexport const CONVERSATION_DETAILS: Record<string, ConversationDetail> = {\n \"#A-2453\": {\n phone: \"+55 11 98765-4321\",\n email: \"maria.hernandez@example.com\",\n firstContact: \"12 mar 2024\",\n assignedTo: \"Você\",\n createdAt: \"Hoje, 09:30\",\n extraTags: [\"VIP\", \"Setor financeiro\"],\n history: [\n { id: \"#A-2401\", date: \"20 abr 2024\", subject: \"Dúvida sobre comissão\", status: \"Resolvido\" },\n { id: \"#A-2389\", date: \"15 abr 2024\", subject: \"Reativação de conta\", status: \"Resolvido\" },\n { id: \"#A-2367\", date: \"10 abr 2024\", subject: \"Materiais exclusivos\", status: \"Resolvido\" },\n ],\n },\n};\n\nexport const DEFAULT_DETAIL: ConversationDetail = {\n phone: \"—\",\n email: \"—\",\n firstContact: \"—\",\n assignedTo: \"—\",\n createdAt: \"—\",\n extraTags: [],\n history: [],\n};\n\n/* ── Sample messages (thread inicial da conversa ativa) ─────────── */\n\nexport const SAMPLE_MESSAGES: Message[] = [\n { id: 1, from: \"them\", text: \"Olá! Bom dia 👋\", time: \"10:30\" },\n { id: 2, from: \"them\", text: \"Vi a oferta de vocês para licenciados Royal e gostaria de mais informações.\", time: \"10:30\" },\n { id: 3, from: \"me\", text: \"Bom dia, Maria! Tudo bem? 😊 Posso te ajudar com toda alegria.\", time: \"10:32\", status: \"read\" },\n { id: 4, from: \"me\", text: \"A oferta para Royals inclui 30% de comissão recorrente, suporte prioritário e materiais exclusivos.\", time: \"10:32\", status: \"read\" },\n { id: 5, from: \"them\", text: \"Have good budget for the project.\", time: \"10:42\" },\n { id: 6, from: \"them\", text: \"Quanto seria o investimento inicial?\", time: \"10:42\" },\n];\n"],"names":["Inbox","Clock","CheckCircle2","MessageSquare","Send","Mail","Crown","Shield","Users"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-v2-mocks-DvZRkhmz.mjs","sources":["../../src/preview/pages/ChatV2/chat-v2-mocks.ts"],"sourcesContent":["import {\r\n CheckCircle2,\r\n Clock,\r\n Crown,\r\n Inbox,\r\n Mail,\r\n MessageSquare,\r\n Send,\r\n Shield,\r\n Users,\r\n} from \"lucide-react\";\r\nimport type {\r\n ChannelId,\r\n Conversation,\r\n ConversationDetail,\r\n ConversationStatus,\r\n FilterGroupKey,\r\n FilterItem,\r\n Message,\r\n} from \"./chat-v2.types\";\r\n\r\n/* ── Lookups por canal ──────────────────────────────────────────── */\r\n\r\nexport const CHANNEL_LABEL: Record<ChannelId, string> = {\r\n whatsapp: \"WhatsApp\",\r\n telegram: \"Telegram\",\r\n instagram: \"Instagram\",\r\n webchat: \"Web Chat\",\r\n email: \"Email\",\r\n};\r\n\r\nexport const CHANNEL_HEX: Record<ChannelId, string> = {\r\n whatsapp: \"#25d366\",\r\n telegram: \"#0088cc\",\r\n instagram: \"#e1306c\",\r\n webchat: \"#0a3a2e\",\r\n email: \"#8754ec\",\r\n};\r\n\r\n/* ── Status dot (cor por status na sidebar/header) ──────────────── */\r\n\r\nexport const STATUS_DOT: Record<ConversationStatus, string> = {\r\n attending: \"var(--color-fg-success)\",\r\n waiting: \"var(--color-fg-warning)\",\r\n ai: \"var(--color-fg-info)\",\r\n};\r\n\r\n/* ── Conversations (fila) ───────────────────────────────────────── */\r\n\r\nexport const CONVERSATIONS: Conversation[] = [\r\n {\r\n id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", avatarHex: \"#f59e0b\",\r\n channel: \"whatsapp\", tag: \"Royal\", tagKind: \"warning\",\r\n status: \"attending\", statusLabel: \"Em atendimento\",\r\n last: \"Quanto seria o investimento inicial?\", time: \"10:42\", unread: 0,\r\n },\r\n {\r\n id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", avatarHex: \"#0a3a2e\",\r\n channel: \"telegram\", tag: \"Licenciado\", tagKind: \"info\",\r\n status: \"waiting\", statusLabel: \"Em espera\",\r\n last: \"Hey, how are you?\", time: \"10:30\", unread: 2,\r\n },\r\n {\r\n id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", avatarHex: \"#8754ec\",\r\n channel: \"instagram\", tag: \"Royal\", tagKind: \"warning\",\r\n status: \"attending\", statusLabel: \"Em atendimento\",\r\n last: \"Vou enviar os documentos hoje à tarde\", time: \"09:55\", unread: 1,\r\n },\r\n {\r\n id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", avatarHex: \"#0088cc\",\r\n channel: \"whatsapp\", tag: \"Lead\", tagKind: \"success\",\r\n status: \"ai\", statusLabel: \"IA\",\r\n last: \"Obrigado! Vou avaliar a proposta.\", time: \"Ontem\", unread: 0,\r\n },\r\n {\r\n id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", avatarHex: \"#1cb280\",\r\n channel: \"email\", tag: \"Licenciado\", tagKind: \"info\",\r\n status: \"waiting\", statusLabel: \"Em espera\",\r\n last: \"Bom dia! Quando podemos conversar?\", time: \"Ontem\", unread: 0,\r\n },\r\n {\r\n id: \"#A-2470\", name: \"Pedro Pereira\", initials: \"PP\", avatarHex: \"#ef4444\",\r\n channel: \"webchat\", tag: \"Lead\", tagKind: \"success\",\r\n status: \"attending\", statusLabel: \"Em atendimento\",\r\n last: \"Recebi os materiais, muito bons!\", time: \"Seg\", unread: 0,\r\n },\r\n];\r\n\r\n/* ── Filtros (sidebar esquerda) ─────────────────────────────────── */\r\n\r\nexport const STATUS_WORKFLOW: FilterItem[] = [\r\n { id: \"open\", name: \"Abertos\", count: 24, hasUnread: true, icon: Inbox },\r\n { id: \"pending\", name: \"Pendentes\", count: 6, icon: Clock },\r\n { id: \"resolved\", name: \"Resolvidos\", count: 18, icon: CheckCircle2 },\r\n];\r\n\r\nexport const CHANNELS_LIST: FilterItem[] = [\r\n { id: \"whatsapp\", name: \"WhatsApp\", count: 12, hasUnread: true, color: \"#25d366\", icon: MessageSquare },\r\n { id: \"telegram\", name: \"Telegram\", count: 4, color: \"#0088cc\", icon: Send },\r\n { id: \"instagram\", name: \"Instagram\", count: 5, color: \"#e1306c\", icon: MessageSquare },\r\n { id: \"webchat\", name: \"Web Chat\", count: 2, color: \"#0a3a2e\", icon: MessageSquare },\r\n { id: \"email\", name: \"Email\", count: 1, color: \"#8754ec\", icon: Mail },\r\n];\r\n\r\nexport const CATEGORIES_LIST: FilterItem[] = [\r\n { id: \"royal\", name: \"Royals\", count: 9, color: \"#f6b51e\", icon: Crown },\r\n { id: \"licenciado\", name: \"Licenciados\", count: 11, color: \"#8754ec\", icon: Shield },\r\n { id: \"lead\", name: \"Leads\", count: 4, color: \"#70c748\", icon: Users },\r\n];\r\n\r\nexport const STATUS_INNER_LIST: FilterItem[] = [\r\n { id: \"attending\", name: \"Em atendimento\", count: 8, color: \"var(--color-fg-success)\" },\r\n { id: \"waiting\", name: \"Em espera\", count: 7, color: \"var(--color-fg-warning)\" },\r\n { id: \"ai\", name: \"IA\", count: 9, color: \"var(--color-fg-info)\" },\r\n];\r\n\r\n/* ── Ordem canônica dos 4 grupos de filtros ───────────────────── */\r\n\r\n/**\r\n * Fonte única dos grupos de filtros. Consumido por `FiltersColumn` (com\r\n * `title`) e `FiltersRail` (sem `title`, divisor entre grupos).\r\n */\r\nexport const FILTER_GROUPS: {\r\n group: FilterGroupKey;\r\n title: string;\r\n items: FilterItem[];\r\n}[] = [\r\n { group: \"status\", title: \"STATUS\", items: STATUS_WORKFLOW },\r\n { group: \"channels\", title: \"CANAIS\", items: CHANNELS_LIST },\r\n { group: \"categories\", title: \"CATEGORIAS\", items: CATEGORIES_LIST },\r\n { group: \"innerStatus\", title: \"STATUS INTERNO\", items: STATUS_INNER_LIST },\r\n];\r\n\r\n/* ── Conversation details (painel direito) ──────────────────────── */\r\n\r\nexport const CONVERSATION_DETAILS: Record<string, ConversationDetail> = {\r\n \"#A-2453\": {\r\n phone: \"+55 11 98765-4321\",\r\n email: \"maria.hernandez@example.com\",\r\n firstContact: \"12 mar 2024\",\r\n assignedTo: \"Você\",\r\n createdAt: \"Hoje, 09:30\",\r\n extraTags: [\"VIP\", \"Setor financeiro\"],\r\n history: [\r\n { id: \"#A-2401\", date: \"20 abr 2024\", subject: \"Dúvida sobre comissão\", status: \"Resolvido\" },\r\n { id: \"#A-2389\", date: \"15 abr 2024\", subject: \"Reativação de conta\", status: \"Resolvido\" },\r\n { id: \"#A-2367\", date: \"10 abr 2024\", subject: \"Materiais exclusivos\", status: \"Resolvido\" },\r\n ],\r\n },\r\n};\r\n\r\nexport const DEFAULT_DETAIL: ConversationDetail = {\r\n phone: \"—\",\r\n email: \"—\",\r\n firstContact: \"—\",\r\n assignedTo: \"—\",\r\n createdAt: \"—\",\r\n extraTags: [],\r\n history: [],\r\n};\r\n\r\n/* ── Sample messages (thread inicial da conversa ativa) ─────────── */\r\n\r\nexport const SAMPLE_MESSAGES: Message[] = [\r\n { id: 1, from: \"them\", text: \"Olá! Bom dia 👋\", time: \"10:30\" },\r\n { id: 2, from: \"them\", text: \"Vi a oferta de vocês para licenciados Royal e gostaria de mais informações.\", time: \"10:30\" },\r\n { id: 3, from: \"me\", text: \"Bom dia, Maria! Tudo bem? 😊 Posso te ajudar com toda alegria.\", time: \"10:32\", status: \"read\" },\r\n { id: 4, from: \"me\", text: \"A oferta para Royals inclui 30% de comissão recorrente, suporte prioritário e materiais exclusivos.\", time: \"10:32\", status: \"read\" },\r\n { id: 5, from: \"them\", text: \"Have good budget for the project.\", time: \"10:42\" },\r\n { id: 6, from: \"them\", text: \"Quanto seria o investimento inicial?\", time: \"10:42\" },\r\n];\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-v2-mocks-DvZRkhmz.mjs","sources":["../../src/preview/pages/ChatV2/chat-v2-mocks.ts"],"sourcesContent":["import {\n CheckCircle2,\n Clock,\n Crown,\n Inbox,\n Mail,\n MessageSquare,\n Send,\n Shield,\n Users,\n} from \"lucide-react\";\nimport type {\n ChannelId,\n Conversation,\n ConversationDetail,\n ConversationStatus,\n FilterGroupKey,\n FilterItem,\n Message,\n} from \"./chat-v2.types\";\n\n/* ── Lookups por canal ──────────────────────────────────────────── */\n\nexport const CHANNEL_LABEL: Record<ChannelId, string> = {\n whatsapp: \"WhatsApp\",\n telegram: \"Telegram\",\n instagram: \"Instagram\",\n webchat: \"Web Chat\",\n email: \"Email\",\n};\n\nexport const CHANNEL_HEX: Record<ChannelId, string> = {\n whatsapp: \"#25d366\",\n telegram: \"#0088cc\",\n instagram: \"#e1306c\",\n webchat: \"#0a3a2e\",\n email: \"#8754ec\",\n};\n\n/* ── Status dot (cor por status na sidebar/header) ──────────────── */\n\nexport const STATUS_DOT: Record<ConversationStatus, string> = {\n attending: \"var(--color-fg-success)\",\n waiting: \"var(--color-fg-warning)\",\n ai: \"var(--color-fg-info)\",\n};\n\n/* ── Conversations (fila) ───────────────────────────────────────── */\n\nexport const CONVERSATIONS: Conversation[] = [\n {\n id: \"#A-2453\", name: \"Maria Hernandez\", initials: \"MH\", avatarHex: \"#f59e0b\",\n channel: \"whatsapp\", tag: \"Royal\", tagKind: \"warning\",\n status: \"attending\", statusLabel: \"Em atendimento\",\n last: \"Quanto seria o investimento inicial?\", time: \"10:42\", unread: 0,\n },\n {\n id: \"#A-2455\", name: \"James Johnson\", initials: \"JJ\", avatarHex: \"#0a3a2e\",\n channel: \"telegram\", tag: \"Licenciado\", tagKind: \"info\",\n status: \"waiting\", statusLabel: \"Em espera\",\n last: \"Hey, how are you?\", time: \"10:30\", unread: 2,\n },\n {\n id: \"#A-2458\", name: \"Camila Ribeiro\", initials: \"CR\", avatarHex: \"#8754ec\",\n channel: \"instagram\", tag: \"Royal\", tagKind: \"warning\",\n status: \"attending\", statusLabel: \"Em atendimento\",\n last: \"Vou enviar os documentos hoje à tarde\", time: \"09:55\", unread: 1,\n },\n {\n id: \"#A-2461\", name: \"Roberto Souza\", initials: \"RS\", avatarHex: \"#0088cc\",\n channel: \"whatsapp\", tag: \"Lead\", tagKind: \"success\",\n status: \"ai\", statusLabel: \"IA\",\n last: \"Obrigado! Vou avaliar a proposta.\", time: \"Ontem\", unread: 0,\n },\n {\n id: \"#A-2466\", name: \"Ana Costa\", initials: \"AC\", avatarHex: \"#1cb280\",\n channel: \"email\", tag: \"Licenciado\", tagKind: \"info\",\n status: \"waiting\", statusLabel: \"Em espera\",\n last: \"Bom dia! Quando podemos conversar?\", time: \"Ontem\", unread: 0,\n },\n {\n id: \"#A-2470\", name: \"Pedro Pereira\", initials: \"PP\", avatarHex: \"#ef4444\",\n channel: \"webchat\", tag: \"Lead\", tagKind: \"success\",\n status: \"attending\", statusLabel: \"Em atendimento\",\n last: \"Recebi os materiais, muito bons!\", time: \"Seg\", unread: 0,\n },\n];\n\n/* ── Filtros (sidebar esquerda) ─────────────────────────────────── */\n\nexport const STATUS_WORKFLOW: FilterItem[] = [\n { id: \"open\", name: \"Abertos\", count: 24, hasUnread: true, icon: Inbox },\n { id: \"pending\", name: \"Pendentes\", count: 6, icon: Clock },\n { id: \"resolved\", name: \"Resolvidos\", count: 18, icon: CheckCircle2 },\n];\n\nexport const CHANNELS_LIST: FilterItem[] = [\n { id: \"whatsapp\", name: \"WhatsApp\", count: 12, hasUnread: true, color: \"#25d366\", icon: MessageSquare },\n { id: \"telegram\", name: \"Telegram\", count: 4, color: \"#0088cc\", icon: Send },\n { id: \"instagram\", name: \"Instagram\", count: 5, color: \"#e1306c\", icon: MessageSquare },\n { id: \"webchat\", name: \"Web Chat\", count: 2, color: \"#0a3a2e\", icon: MessageSquare },\n { id: \"email\", name: \"Email\", count: 1, color: \"#8754ec\", icon: Mail },\n];\n\nexport const CATEGORIES_LIST: FilterItem[] = [\n { id: \"royal\", name: \"Royals\", count: 9, color: \"#f6b51e\", icon: Crown },\n { id: \"licenciado\", name: \"Licenciados\", count: 11, color: \"#8754ec\", icon: Shield },\n { id: \"lead\", name: \"Leads\", count: 4, color: \"#70c748\", icon: Users },\n];\n\nexport const STATUS_INNER_LIST: FilterItem[] = [\n { id: \"attending\", name: \"Em atendimento\", count: 8, color: \"var(--color-fg-success)\" },\n { id: \"waiting\", name: \"Em espera\", count: 7, color: \"var(--color-fg-warning)\" },\n { id: \"ai\", name: \"IA\", count: 9, color: \"var(--color-fg-info)\" },\n];\n\n/* ── Ordem canônica dos 4 grupos de filtros ───────────────────── */\n\n/**\n * Fonte única dos grupos de filtros. Consumido por `FiltersColumn` (com\n * `title`) e `FiltersRail` (sem `title`, divisor entre grupos).\n */\nexport const FILTER_GROUPS: {\n group: FilterGroupKey;\n title: string;\n items: FilterItem[];\n}[] = [\n { group: \"status\", title: \"STATUS\", items: STATUS_WORKFLOW },\n { group: \"channels\", title: \"CANAIS\", items: CHANNELS_LIST },\n { group: \"categories\", title: \"CATEGORIAS\", items: CATEGORIES_LIST },\n { group: \"innerStatus\", title: \"STATUS INTERNO\", items: STATUS_INNER_LIST },\n];\n\n/* ── Conversation details (painel direito) ──────────────────────── */\n\nexport const CONVERSATION_DETAILS: Record<string, ConversationDetail> = {\n \"#A-2453\": {\n phone: \"+55 11 98765-4321\",\n email: \"maria.hernandez@example.com\",\n firstContact: \"12 mar 2024\",\n assignedTo: \"Você\",\n createdAt: \"Hoje, 09:30\",\n extraTags: [\"VIP\", \"Setor financeiro\"],\n history: [\n { id: \"#A-2401\", date: \"20 abr 2024\", subject: \"Dúvida sobre comissão\", status: \"Resolvido\" },\n { id: \"#A-2389\", date: \"15 abr 2024\", subject: \"Reativação de conta\", status: \"Resolvido\" },\n { id: \"#A-2367\", date: \"10 abr 2024\", subject: \"Materiais exclusivos\", status: \"Resolvido\" },\n ],\n },\n};\n\nexport const DEFAULT_DETAIL: ConversationDetail = {\n phone: \"—\",\n email: \"—\",\n firstContact: \"—\",\n assignedTo: \"—\",\n createdAt: \"—\",\n extraTags: [],\n history: [],\n};\n\n/* ── Sample messages (thread inicial da conversa ativa) ─────────── */\n\nexport const SAMPLE_MESSAGES: Message[] = [\n { id: 1, from: \"them\", text: \"Olá! Bom dia 👋\", time: \"10:30\" },\n { id: 2, from: \"them\", text: \"Vi a oferta de vocês para licenciados Royal e gostaria de mais informações.\", time: \"10:30\" },\n { id: 3, from: \"me\", text: \"Bom dia, Maria! Tudo bem? 😊 Posso te ajudar com toda alegria.\", time: \"10:32\", status: \"read\" },\n { id: 4, from: \"me\", text: \"A oferta para Royals inclui 30% de comissão recorrente, suporte prioritário e materiais exclusivos.\", time: \"10:32\", status: \"read\" },\n { id: 5, from: \"them\", text: \"Have good budget for the project.\", time: \"10:42\" },\n { id: 6, from: \"them\", text: \"Quanto seria o investimento inicial?\", time: \"10:42\" },\n];\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-header-B6XJyIMz.mjs","sources":["../../src/components/ui/PageHeader/page-header.styles.ts","../../src/components/ui/PageHeader/page-header.tsx"],"sourcesContent":["import { tv } from \"@/utils/tv\";\r\n\r\n/**\r\n * PageHeader styles — bloco de título de página colocado dentro do body\r\n * do `<AppShell>`.\r\n *\r\n * Layout desktop:\r\n * ┌──────────────────────────────────────────────────────────┐\r\n * │ [title] [badge] [action1] [action2] [CTA] │\r\n * │ description │\r\n * ├──────────────────────────────────────────────────────────┤\r\n * │ {children — ex: <Tabs />} │\r\n * └──────────────────────────────────────────────────────────┘\r\n *\r\n * Mobile:\r\n * - Text section sai (hideTextOnMobile, default true)\r\n * - Actions ocupam toda a largura; último botão vira fluid (CTA primary)\r\n */\r\nexport const pageHeaderStyles = tv({\r\n slots: {\r\n root: \"shrink-0 flex flex-col gap-gp-md\",\r\n topRow: \"flex items-center justify-between gap-gp-2xl\",\r\n textCol: \"flex flex-col gap-gp-xs min-w-0 flex-1\",\r\n titleRow: \"flex items-center gap-gp-md\",\r\n title: \"m-0 text-title-lg font-bold tracking-[-0.01em] text-fg-default\",\r\n description: [\r\n \"m-0 text-body-md text-fg-subtle leading-[1.5]\",\r\n \"whitespace-nowrap overflow-hidden text-ellipsis\",\r\n ],\r\n actionsRow: \"flex items-center gap-gp-sm shrink-0\",\r\n // mt-gp-xl: +20px somados ao gap-gp-md (12px) do root = ~32px de respiro\r\n // entre o título/descrição e o slot de conteúdo (tabs/filtros).\r\n extraRow: \"w-full mt-gp-xl\",\r\n },\r\n variants: {\r\n hideTextOnMobile: {\r\n true: { textCol: \"max-md:hidden\" },\r\n false: {},\r\n },\r\n /**\r\n * Mobile: actions ocupa o espaço (text hidden) + último filho vira fluid.\r\n * Off = mantém actions square e shrink-0 (mesmo comportamento desktop).\r\n */\r\n mobileFluid: {\r\n true: {\r\n actionsRow: [\r\n \"max-md:shrink max-md:flex-1 max-md:justify-end\",\r\n \"max-md:[&>:last-child]:flex-1\",\r\n ],\r\n },\r\n false: {},\r\n },\r\n },\r\n defaultVariants: {\r\n hideTextOnMobile: true,\r\n mobileFluid: true,\r\n },\r\n});\r\n","import { cn } from \"@/lib/utils\";\r\nimport { pageHeaderStyles } from \"./page-header.styles\";\r\nimport type { PageHeaderProps } from \"./page-header.types\";\r\n\r\n/**\r\n * PageHeader — bloco de título reutilizável colocado dentro do body do\r\n * `<AppShell>`. Cobre o caso comum:\r\n *\r\n * - Título (h1) + descrição (sub) + badge (chip ao lado)\r\n * - Slot de ações à direita (botões / dropdowns)\r\n * - Slot livre abaixo pra tabs, filtros ou qualquer conteúdo extra\r\n *\r\n * Mobile-ready por default:\r\n * - Title/description/badge somem em viewports pequenas\r\n * (Header global do AppShell já mostra title/breadcrumb)\r\n * - O último botão do `actions` vira fluid (CTA full-width)\r\n *\r\n * @example\r\n * ```tsx\r\n * <PageHeader\r\n * title=\"Clientes\"\r\n * description=\"Gerencie sua base de clientes.\"\r\n * badge={<Chip color=\"primary\" variant=\"soft\">87 registros</Chip>}\r\n * actions={\r\n * <>\r\n * <Button variant=\"outline\" size=\"icon-md\"><MoreHorizontal /></Button>\r\n * <Button variant=\"filled\" color=\"primary\">Novo cliente</Button>\r\n * </>\r\n * }\r\n * />\r\n * ```\r\n *\r\n * @example com tabs abaixo (slot children):\r\n * ```tsx\r\n * <PageHeader title=\"Configurações\" actions={<Button>Salvar</Button>}>\r\n * <Tabs ... />\r\n * </PageHeader>\r\n * ```\r\n */\r\nexport function PageHeader({\r\n title,\r\n description,\r\n badge,\r\n actions,\r\n children,\r\n hideTextOnMobile = true,\r\n fluidPrimaryOnMobile = true,\r\n className,\r\n}: PageHeaderProps) {\r\n const s = pageHeaderStyles({\r\n hideTextOnMobile,\r\n mobileFluid: fluidPrimaryOnMobile,\r\n });\r\n\r\n const hasText = !!(title || description || badge);\r\n const hasTopRow = hasText || !!actions;\r\n\r\n return (\r\n <header className={cn(s.root(), className)}>\r\n {hasTopRow && (\r\n <div className={s.topRow()}>\r\n {hasText && (\r\n <div className={s.textCol()}>\r\n {(title || badge) && (\r\n <div className={s.titleRow()}>\r\n {title && <h1 className={s.title()}>{title}</h1>}\r\n {badge}\r\n </div>\r\n )}\r\n {description && <p className={s.description()}>{description}</p>}\r\n </div>\r\n )}\r\n {actions && <div className={s.actionsRow()}>{actions}</div>}\r\n </div>\r\n )}\r\n {children && <div className={s.extraRow()}>{children}</div>}\r\n </header>\r\n );\r\n}\r\n\r\nPageHeader.displayName = \"PageHeader\";\r\n"],"names":[],"mappings":";;AAkBO,MAAM,mBAAmB,GAAG;AAAA,EACjC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IACP,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,YAAY;AAAA;AAAA;AAAA,IAGZ,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,kBAAkB;AAAA,MAChB,MAAM,EAAE,SAAS,gBAAA;AAAA,MACjB,OAAO,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMV,aAAa;AAAA,MACX,MAAM;AAAA,QACJ,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,OAAO,CAAA;AAAA,IAAC;AAAA,EACV;AAAA,EAEF,iBAAiB;AAAA,IACf,kBAAkB;AAAA,IAClB,aAAa;AAAA,EAAA;AAEjB,CAAC;AClBM,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB;AACF,GAAoB;AAClB,QAAM,IAAI,iBAAiB;AAAA,IACzB;AAAA,IACA,aAAa;AAAA,EAAA,CACd;AAED,QAAM,UAAU,CAAC,EAAE,SAAS,eAAe;AAC3C,QAAM,YAAY,WAAW,CAAC,CAAC;AAE/B,SACE,qBAAC,YAAO,WAAW,GAAG,EAAE,KAAA,GAAQ,SAAS,GACtC,UAAA;AAAA,IAAA,aACC,qBAAC,OAAA,EAAI,WAAW,EAAE,UACf,UAAA;AAAA,MAAA,WACC,qBAAC,OAAA,EAAI,WAAW,EAAE,WACd,UAAA;AAAA,SAAA,SAAS,UACT,qBAAC,OAAA,EAAI,WAAW,EAAE,YACf,UAAA;AAAA,UAAA,6BAAU,MAAA,EAAG,WAAW,EAAE,MAAA,GAAU,UAAA,OAAM;AAAA,UAC1C;AAAA,QAAA,GACH;AAAA,QAED,eAAe,oBAAC,KAAA,EAAE,WAAW,EAAE,YAAA,GAAgB,UAAA,YAAA,CAAY;AAAA,MAAA,GAC9D;AAAA,MAED,WAAW,oBAAC,OAAA,EAAI,WAAW,EAAE,WAAA,GAAe,UAAA,QAAA,CAAQ;AAAA,IAAA,GACvD;AAAA,IAED,YAAY,oBAAC,OAAA,EAAI,WAAW,EAAE,SAAA,GAAa,SAAA,CAAS;AAAA,EAAA,GACvD;AAEJ;AAEA,WAAW,cAAc;"}
1
+ {"version":3,"file":"page-header-B6XJyIMz.mjs","sources":["../../src/components/ui/PageHeader/page-header.styles.ts","../../src/components/ui/PageHeader/page-header.tsx"],"sourcesContent":["import { tv } from \"@/utils/tv\";\r\n\r\n/**\r\n * PageHeader styles — bloco de título de página colocado dentro do body\r\n * do `<AppShell>`.\r\n *\r\n * Layout desktop:\r\n * ┌──────────────────────────────────────────────────────────┐\r\n * │ [title] [badge] [action1] [action2] [CTA] │\r\n * │ description │\r\n * ├──────────────────────────────────────────────────────────┤\r\n * │ {children — ex: <Tabs />} │\r\n * └──────────────────────────────────────────────────────────┘\r\n *\r\n * Mobile:\r\n * - Text section sai (hideTextOnMobile, default true)\r\n * - Actions ocupam toda a largura; último botão vira fluid (CTA primary)\r\n */\r\nexport const pageHeaderStyles = tv({\r\n slots: {\r\n root: \"shrink-0 flex flex-col gap-gp-md\",\r\n topRow: \"flex items-center justify-between gap-gp-2xl\",\r\n textCol: \"flex flex-col gap-gp-xs min-w-0 flex-1\",\r\n titleRow: \"flex items-center gap-gp-md\",\r\n title: \"m-0 text-title-lg font-bold tracking-[-0.01em] text-fg-default\",\r\n description: [\r\n \"m-0 text-body-md text-fg-subtle leading-[1.5]\",\r\n \"whitespace-nowrap overflow-hidden text-ellipsis\",\r\n ],\r\n actionsRow: \"flex items-center gap-gp-sm shrink-0\",\r\n // mt-gp-xl: +20px somados ao gap-gp-md (12px) do root = ~32px de respiro\r\n // entre o título/descrição e o slot de conteúdo (tabs/filtros).\r\n extraRow: \"w-full mt-gp-xl\",\r\n },\r\n variants: {\r\n hideTextOnMobile: {\r\n true: { textCol: \"max-md:hidden\" },\r\n false: {},\r\n },\r\n /**\r\n * Mobile: actions ocupa o espaço (text hidden) + último filho vira fluid.\r\n * Off = mantém actions square e shrink-0 (mesmo comportamento desktop).\r\n */\r\n mobileFluid: {\r\n true: {\r\n actionsRow: [\r\n \"max-md:shrink max-md:flex-1 max-md:justify-end\",\r\n \"max-md:[&>:last-child]:flex-1\",\r\n ],\r\n },\r\n false: {},\r\n },\r\n },\r\n defaultVariants: {\r\n hideTextOnMobile: true,\r\n mobileFluid: true,\r\n },\r\n});\r\n","import { cn } from \"@/lib/utils\";\nimport { pageHeaderStyles } from \"./page-header.styles\";\nimport type { PageHeaderProps } from \"./page-header.types\";\n\n/**\n * PageHeader — bloco de título reutilizável colocado dentro do body do\n * `<AppShell>`. Cobre o caso comum:\n *\n * - Título (h1) + descrição (sub) + badge (chip ao lado)\n * - Slot de ações à direita (botões / dropdowns)\n * - Slot livre abaixo pra tabs, filtros ou qualquer conteúdo extra\n *\n * Mobile-ready por default:\n * - Title/description/badge somem em viewports pequenas\n * (Header global do AppShell já mostra title/breadcrumb)\n * - O último botão do `actions` vira fluid (CTA full-width)\n *\n * @example\n * ```tsx\n * <PageHeader\n * title=\"Clientes\"\n * description=\"Gerencie sua base de clientes.\"\n * badge={<Chip color=\"primary\" variant=\"soft\">87 registros</Chip>}\n * actions={\n * <>\n * <Button variant=\"outline\" size=\"icon-md\"><MoreHorizontal /></Button>\n * <Button variant=\"filled\" color=\"primary\">Novo cliente</Button>\n * </>\n * }\n * />\n * ```\n *\n * @example com tabs abaixo (slot children):\n * ```tsx\n * <PageHeader title=\"Configurações\" actions={<Button>Salvar</Button>}>\n * <Tabs ... />\n * </PageHeader>\n * ```\n */\nexport function PageHeader({\n title,\n description,\n badge,\n actions,\n children,\n hideTextOnMobile = true,\n fluidPrimaryOnMobile = true,\n className,\n}: PageHeaderProps) {\n const s = pageHeaderStyles({\n hideTextOnMobile,\n mobileFluid: fluidPrimaryOnMobile,\n });\n\n const hasText = !!(title || description || badge);\n const hasTopRow = hasText || !!actions;\n\n return (\n <header className={cn(s.root(), className)}>\n {hasTopRow && (\n <div className={s.topRow()}>\n {hasText && (\n <div className={s.textCol()}>\n {(title || badge) && (\n <div className={s.titleRow()}>\n {title && <h1 className={s.title()}>{title}</h1>}\n {badge}\n </div>\n )}\n {description && <p className={s.description()}>{description}</p>}\n </div>\n )}\n {actions && <div className={s.actionsRow()}>{actions}</div>}\n </div>\n )}\n {children && <div className={s.extraRow()}>{children}</div>}\n </header>\n );\n}\n\nPageHeader.displayName = \"PageHeader\";\n"],"names":[],"mappings":";;AAkBO,MAAM,mBAAmB,GAAG;AAAA,EACjC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IACP,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,YAAY;AAAA;AAAA;AAAA,IAGZ,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,kBAAkB;AAAA,MAChB,MAAM,EAAE,SAAS,gBAAA;AAAA,MACjB,OAAO,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMV,aAAa;AAAA,MACX,MAAM;AAAA,QACJ,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,OAAO,CAAA;AAAA,IAAC;AAAA,EACV;AAAA,EAEF,iBAAiB;AAAA,IACf,kBAAkB;AAAA,IAClB,aAAa;AAAA,EAAA;AAEjB,CAAC;AClBM,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB;AACF,GAAoB;AAClB,QAAM,IAAI,iBAAiB;AAAA,IACzB;AAAA,IACA,aAAa;AAAA,EAAA,CACd;AAED,QAAM,UAAU,CAAC,EAAE,SAAS,eAAe;AAC3C,QAAM,YAAY,WAAW,CAAC,CAAC;AAE/B,SACE,qBAAC,YAAO,WAAW,GAAG,EAAE,KAAA,GAAQ,SAAS,GACtC,UAAA;AAAA,IAAA,aACC,qBAAC,OAAA,EAAI,WAAW,EAAE,UACf,UAAA;AAAA,MAAA,WACC,qBAAC,OAAA,EAAI,WAAW,EAAE,WACd,UAAA;AAAA,SAAA,SAAS,UACT,qBAAC,OAAA,EAAI,WAAW,EAAE,YACf,UAAA;AAAA,UAAA,6BAAU,MAAA,EAAG,WAAW,EAAE,MAAA,GAAU,UAAA,OAAM;AAAA,UAC1C;AAAA,QAAA,GACH;AAAA,QAED,eAAe,oBAAC,KAAA,EAAE,WAAW,EAAE,YAAA,GAAgB,UAAA,YAAA,CAAY;AAAA,MAAA,GAC9D;AAAA,MAED,WAAW,oBAAC,OAAA,EAAI,WAAW,EAAE,WAAA,GAAe,UAAA,QAAA,CAAQ;AAAA,IAAA,GACvD;AAAA,IAED,YAAY,oBAAC,OAAA,EAAI,WAAW,EAAE,SAAA,GAAa,SAAA,CAAS;AAAA,EAAA,GACvD;AAEJ;AAEA,WAAW,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-header-D0rpU0yn.cjs","sources":["../../src/components/ui/PageHeader/page-header.styles.ts","../../src/components/ui/PageHeader/page-header.tsx"],"sourcesContent":["import { tv } from \"@/utils/tv\";\r\n\r\n/**\r\n * PageHeader styles — bloco de título de página colocado dentro do body\r\n * do `<AppShell>`.\r\n *\r\n * Layout desktop:\r\n * ┌──────────────────────────────────────────────────────────┐\r\n * │ [title] [badge] [action1] [action2] [CTA] │\r\n * │ description │\r\n * ├──────────────────────────────────────────────────────────┤\r\n * │ {children — ex: <Tabs />} │\r\n * └──────────────────────────────────────────────────────────┘\r\n *\r\n * Mobile:\r\n * - Text section sai (hideTextOnMobile, default true)\r\n * - Actions ocupam toda a largura; último botão vira fluid (CTA primary)\r\n */\r\nexport const pageHeaderStyles = tv({\r\n slots: {\r\n root: \"shrink-0 flex flex-col gap-gp-md\",\r\n topRow: \"flex items-center justify-between gap-gp-2xl\",\r\n textCol: \"flex flex-col gap-gp-xs min-w-0 flex-1\",\r\n titleRow: \"flex items-center gap-gp-md\",\r\n title: \"m-0 text-title-lg font-bold tracking-[-0.01em] text-fg-default\",\r\n description: [\r\n \"m-0 text-body-md text-fg-subtle leading-[1.5]\",\r\n \"whitespace-nowrap overflow-hidden text-ellipsis\",\r\n ],\r\n actionsRow: \"flex items-center gap-gp-sm shrink-0\",\r\n // mt-gp-xl: +20px somados ao gap-gp-md (12px) do root = ~32px de respiro\r\n // entre o título/descrição e o slot de conteúdo (tabs/filtros).\r\n extraRow: \"w-full mt-gp-xl\",\r\n },\r\n variants: {\r\n hideTextOnMobile: {\r\n true: { textCol: \"max-md:hidden\" },\r\n false: {},\r\n },\r\n /**\r\n * Mobile: actions ocupa o espaço (text hidden) + último filho vira fluid.\r\n * Off = mantém actions square e shrink-0 (mesmo comportamento desktop).\r\n */\r\n mobileFluid: {\r\n true: {\r\n actionsRow: [\r\n \"max-md:shrink max-md:flex-1 max-md:justify-end\",\r\n \"max-md:[&>:last-child]:flex-1\",\r\n ],\r\n },\r\n false: {},\r\n },\r\n },\r\n defaultVariants: {\r\n hideTextOnMobile: true,\r\n mobileFluid: true,\r\n },\r\n});\r\n","import { cn } from \"@/lib/utils\";\r\nimport { pageHeaderStyles } from \"./page-header.styles\";\r\nimport type { PageHeaderProps } from \"./page-header.types\";\r\n\r\n/**\r\n * PageHeader — bloco de título reutilizável colocado dentro do body do\r\n * `<AppShell>`. Cobre o caso comum:\r\n *\r\n * - Título (h1) + descrição (sub) + badge (chip ao lado)\r\n * - Slot de ações à direita (botões / dropdowns)\r\n * - Slot livre abaixo pra tabs, filtros ou qualquer conteúdo extra\r\n *\r\n * Mobile-ready por default:\r\n * - Title/description/badge somem em viewports pequenas\r\n * (Header global do AppShell já mostra title/breadcrumb)\r\n * - O último botão do `actions` vira fluid (CTA full-width)\r\n *\r\n * @example\r\n * ```tsx\r\n * <PageHeader\r\n * title=\"Clientes\"\r\n * description=\"Gerencie sua base de clientes.\"\r\n * badge={<Chip color=\"primary\" variant=\"soft\">87 registros</Chip>}\r\n * actions={\r\n * <>\r\n * <Button variant=\"outline\" size=\"icon-md\"><MoreHorizontal /></Button>\r\n * <Button variant=\"filled\" color=\"primary\">Novo cliente</Button>\r\n * </>\r\n * }\r\n * />\r\n * ```\r\n *\r\n * @example com tabs abaixo (slot children):\r\n * ```tsx\r\n * <PageHeader title=\"Configurações\" actions={<Button>Salvar</Button>}>\r\n * <Tabs ... />\r\n * </PageHeader>\r\n * ```\r\n */\r\nexport function PageHeader({\r\n title,\r\n description,\r\n badge,\r\n actions,\r\n children,\r\n hideTextOnMobile = true,\r\n fluidPrimaryOnMobile = true,\r\n className,\r\n}: PageHeaderProps) {\r\n const s = pageHeaderStyles({\r\n hideTextOnMobile,\r\n mobileFluid: fluidPrimaryOnMobile,\r\n });\r\n\r\n const hasText = !!(title || description || badge);\r\n const hasTopRow = hasText || !!actions;\r\n\r\n return (\r\n <header className={cn(s.root(), className)}>\r\n {hasTopRow && (\r\n <div className={s.topRow()}>\r\n {hasText && (\r\n <div className={s.textCol()}>\r\n {(title || badge) && (\r\n <div className={s.titleRow()}>\r\n {title && <h1 className={s.title()}>{title}</h1>}\r\n {badge}\r\n </div>\r\n )}\r\n {description && <p className={s.description()}>{description}</p>}\r\n </div>\r\n )}\r\n {actions && <div className={s.actionsRow()}>{actions}</div>}\r\n </div>\r\n )}\r\n {children && <div className={s.extraRow()}>{children}</div>}\r\n </header>\r\n );\r\n}\r\n\r\nPageHeader.displayName = \"PageHeader\";\r\n"],"names":["tv","jsxs","cn","jsx"],"mappings":";;;AAkBO,MAAM,mBAAmBA,SAAAA,GAAG;AAAA,EACjC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IACP,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,YAAY;AAAA;AAAA;AAAA,IAGZ,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,kBAAkB;AAAA,MAChB,MAAM,EAAE,SAAS,gBAAA;AAAA,MACjB,OAAO,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMV,aAAa;AAAA,MACX,MAAM;AAAA,QACJ,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,OAAO,CAAA;AAAA,IAAC;AAAA,EACV;AAAA,EAEF,iBAAiB;AAAA,IACf,kBAAkB;AAAA,IAClB,aAAa;AAAA,EAAA;AAEjB,CAAC;AClBM,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB;AACF,GAAoB;AAClB,QAAM,IAAI,iBAAiB;AAAA,IACzB;AAAA,IACA,aAAa;AAAA,EAAA,CACd;AAED,QAAM,UAAU,CAAC,EAAE,SAAS,eAAe;AAC3C,QAAM,YAAY,WAAW,CAAC,CAAC;AAE/B,SACEC,2BAAAA,KAAC,YAAO,WAAWC,SAAAA,GAAG,EAAE,KAAA,GAAQ,SAAS,GACtC,UAAA;AAAA,IAAA,aACCD,2BAAAA,KAAC,OAAA,EAAI,WAAW,EAAE,UACf,UAAA;AAAA,MAAA,WACCA,2BAAAA,KAAC,OAAA,EAAI,WAAW,EAAE,WACd,UAAA;AAAA,SAAA,SAAS,UACTA,2BAAAA,KAAC,OAAA,EAAI,WAAW,EAAE,YACf,UAAA;AAAA,UAAA,wCAAU,MAAA,EAAG,WAAW,EAAE,MAAA,GAAU,UAAA,OAAM;AAAA,UAC1C;AAAA,QAAA,GACH;AAAA,QAED,eAAeE,2BAAAA,IAAC,KAAA,EAAE,WAAW,EAAE,YAAA,GAAgB,UAAA,YAAA,CAAY;AAAA,MAAA,GAC9D;AAAA,MAED,WAAWA,2BAAAA,IAAC,OAAA,EAAI,WAAW,EAAE,WAAA,GAAe,UAAA,QAAA,CAAQ;AAAA,IAAA,GACvD;AAAA,IAED,YAAYA,2BAAAA,IAAC,OAAA,EAAI,WAAW,EAAE,SAAA,GAAa,SAAA,CAAS;AAAA,EAAA,GACvD;AAEJ;AAEA,WAAW,cAAc;;;"}
1
+ {"version":3,"file":"page-header-D0rpU0yn.cjs","sources":["../../src/components/ui/PageHeader/page-header.styles.ts","../../src/components/ui/PageHeader/page-header.tsx"],"sourcesContent":["import { tv } from \"@/utils/tv\";\r\n\r\n/**\r\n * PageHeader styles — bloco de título de página colocado dentro do body\r\n * do `<AppShell>`.\r\n *\r\n * Layout desktop:\r\n * ┌──────────────────────────────────────────────────────────┐\r\n * │ [title] [badge] [action1] [action2] [CTA] │\r\n * │ description │\r\n * ├──────────────────────────────────────────────────────────┤\r\n * │ {children — ex: <Tabs />} │\r\n * └──────────────────────────────────────────────────────────┘\r\n *\r\n * Mobile:\r\n * - Text section sai (hideTextOnMobile, default true)\r\n * - Actions ocupam toda a largura; último botão vira fluid (CTA primary)\r\n */\r\nexport const pageHeaderStyles = tv({\r\n slots: {\r\n root: \"shrink-0 flex flex-col gap-gp-md\",\r\n topRow: \"flex items-center justify-between gap-gp-2xl\",\r\n textCol: \"flex flex-col gap-gp-xs min-w-0 flex-1\",\r\n titleRow: \"flex items-center gap-gp-md\",\r\n title: \"m-0 text-title-lg font-bold tracking-[-0.01em] text-fg-default\",\r\n description: [\r\n \"m-0 text-body-md text-fg-subtle leading-[1.5]\",\r\n \"whitespace-nowrap overflow-hidden text-ellipsis\",\r\n ],\r\n actionsRow: \"flex items-center gap-gp-sm shrink-0\",\r\n // mt-gp-xl: +20px somados ao gap-gp-md (12px) do root = ~32px de respiro\r\n // entre o título/descrição e o slot de conteúdo (tabs/filtros).\r\n extraRow: \"w-full mt-gp-xl\",\r\n },\r\n variants: {\r\n hideTextOnMobile: {\r\n true: { textCol: \"max-md:hidden\" },\r\n false: {},\r\n },\r\n /**\r\n * Mobile: actions ocupa o espaço (text hidden) + último filho vira fluid.\r\n * Off = mantém actions square e shrink-0 (mesmo comportamento desktop).\r\n */\r\n mobileFluid: {\r\n true: {\r\n actionsRow: [\r\n \"max-md:shrink max-md:flex-1 max-md:justify-end\",\r\n \"max-md:[&>:last-child]:flex-1\",\r\n ],\r\n },\r\n false: {},\r\n },\r\n },\r\n defaultVariants: {\r\n hideTextOnMobile: true,\r\n mobileFluid: true,\r\n },\r\n});\r\n","import { cn } from \"@/lib/utils\";\nimport { pageHeaderStyles } from \"./page-header.styles\";\nimport type { PageHeaderProps } from \"./page-header.types\";\n\n/**\n * PageHeader — bloco de título reutilizável colocado dentro do body do\n * `<AppShell>`. Cobre o caso comum:\n *\n * - Título (h1) + descrição (sub) + badge (chip ao lado)\n * - Slot de ações à direita (botões / dropdowns)\n * - Slot livre abaixo pra tabs, filtros ou qualquer conteúdo extra\n *\n * Mobile-ready por default:\n * - Title/description/badge somem em viewports pequenas\n * (Header global do AppShell já mostra title/breadcrumb)\n * - O último botão do `actions` vira fluid (CTA full-width)\n *\n * @example\n * ```tsx\n * <PageHeader\n * title=\"Clientes\"\n * description=\"Gerencie sua base de clientes.\"\n * badge={<Chip color=\"primary\" variant=\"soft\">87 registros</Chip>}\n * actions={\n * <>\n * <Button variant=\"outline\" size=\"icon-md\"><MoreHorizontal /></Button>\n * <Button variant=\"filled\" color=\"primary\">Novo cliente</Button>\n * </>\n * }\n * />\n * ```\n *\n * @example com tabs abaixo (slot children):\n * ```tsx\n * <PageHeader title=\"Configurações\" actions={<Button>Salvar</Button>}>\n * <Tabs ... />\n * </PageHeader>\n * ```\n */\nexport function PageHeader({\n title,\n description,\n badge,\n actions,\n children,\n hideTextOnMobile = true,\n fluidPrimaryOnMobile = true,\n className,\n}: PageHeaderProps) {\n const s = pageHeaderStyles({\n hideTextOnMobile,\n mobileFluid: fluidPrimaryOnMobile,\n });\n\n const hasText = !!(title || description || badge);\n const hasTopRow = hasText || !!actions;\n\n return (\n <header className={cn(s.root(), className)}>\n {hasTopRow && (\n <div className={s.topRow()}>\n {hasText && (\n <div className={s.textCol()}>\n {(title || badge) && (\n <div className={s.titleRow()}>\n {title && <h1 className={s.title()}>{title}</h1>}\n {badge}\n </div>\n )}\n {description && <p className={s.description()}>{description}</p>}\n </div>\n )}\n {actions && <div className={s.actionsRow()}>{actions}</div>}\n </div>\n )}\n {children && <div className={s.extraRow()}>{children}</div>}\n </header>\n );\n}\n\nPageHeader.displayName = \"PageHeader\";\n"],"names":["tv","jsxs","cn","jsx"],"mappings":";;;AAkBO,MAAM,mBAAmBA,SAAAA,GAAG;AAAA,EACjC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IACP,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,YAAY;AAAA;AAAA;AAAA,IAGZ,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,kBAAkB;AAAA,MAChB,MAAM,EAAE,SAAS,gBAAA;AAAA,MACjB,OAAO,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMV,aAAa;AAAA,MACX,MAAM;AAAA,QACJ,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,OAAO,CAAA;AAAA,IAAC;AAAA,EACV;AAAA,EAEF,iBAAiB;AAAA,IACf,kBAAkB;AAAA,IAClB,aAAa;AAAA,EAAA;AAEjB,CAAC;AClBM,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB;AACF,GAAoB;AAClB,QAAM,IAAI,iBAAiB;AAAA,IACzB;AAAA,IACA,aAAa;AAAA,EAAA,CACd;AAED,QAAM,UAAU,CAAC,EAAE,SAAS,eAAe;AAC3C,QAAM,YAAY,WAAW,CAAC,CAAC;AAE/B,SACEC,2BAAAA,KAAC,YAAO,WAAWC,SAAAA,GAAG,EAAE,KAAA,GAAQ,SAAS,GACtC,UAAA;AAAA,IAAA,aACCD,2BAAAA,KAAC,OAAA,EAAI,WAAW,EAAE,UACf,UAAA;AAAA,MAAA,WACCA,2BAAAA,KAAC,OAAA,EAAI,WAAW,EAAE,WACd,UAAA;AAAA,SAAA,SAAS,UACTA,2BAAAA,KAAC,OAAA,EAAI,WAAW,EAAE,YACf,UAAA;AAAA,UAAA,wCAAU,MAAA,EAAG,WAAW,EAAE,MAAA,GAAU,UAAA,OAAM;AAAA,UAC1C;AAAA,QAAA,GACH;AAAA,QAED,eAAeE,2BAAAA,IAAC,KAAA,EAAE,WAAW,EAAE,YAAA,GAAgB,UAAA,YAAA,CAAY;AAAA,MAAA,GAC9D;AAAA,MAED,WAAWA,2BAAAA,IAAC,OAAA,EAAI,WAAW,EAAE,WAAA,GAAe,UAAA,QAAA,CAAQ;AAAA,IAAA,GACvD;AAAA,IAED,YAAYA,2BAAAA,IAAC,OAAA,EAAI,WAAW,EAAE,SAAA,GAAa,SAAA,CAAS;AAAA,EAAA,GACvD;AAEJ;AAEA,WAAW,cAAc;;;"}