@snksergio/design-system 0.32.1 → 0.34.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 (58) hide show
  1. package/dist-lib/chunks/{input-BjUSWce3.cjs → input-CizzMZ20.cjs} +3 -3
  2. package/dist-lib/chunks/{input-BjUSWce3.cjs.map → input-CizzMZ20.cjs.map} +1 -1
  3. package/dist-lib/chunks/{input-DCDU4i4S.mjs → input-Cym0k4ZI.mjs} +2 -2
  4. package/dist-lib/chunks/{input-DCDU4i4S.mjs.map → input-Cym0k4ZI.mjs.map} +1 -1
  5. package/dist-lib/chunks/{kpi-delta-C_3V6uG6.cjs → kpi-delta-DrSJPMCY.cjs} +8 -8
  6. package/dist-lib/chunks/{kpi-delta-C_3V6uG6.cjs.map → kpi-delta-DrSJPMCY.cjs.map} +1 -1
  7. package/dist-lib/chunks/{kpi-delta-DpYuDY4h.mjs → kpi-delta-FhfuIg27.mjs} +2 -2
  8. package/dist-lib/chunks/{kpi-delta-DpYuDY4h.mjs.map → kpi-delta-FhfuIg27.mjs.map} +1 -1
  9. package/dist-lib/chunks/{page-header-D0rpU0yn.cjs → page-header-BMzUloFi.cjs} +4 -4
  10. package/dist-lib/chunks/{page-header-D0rpU0yn.cjs.map → page-header-BMzUloFi.cjs.map} +1 -1
  11. package/dist-lib/chunks/{page-header-B6XJyIMz.mjs → page-header-Buh6YlQM.mjs} +2 -2
  12. package/dist-lib/chunks/{page-header-B6XJyIMz.mjs.map → page-header-Buh6YlQM.mjs.map} +1 -1
  13. package/dist-lib/chunks/{panel-8FiBxwcI.mjs → panel-Cdl0GPVE.mjs} +3 -3
  14. package/dist-lib/chunks/{panel-8FiBxwcI.mjs.map → panel-Cdl0GPVE.mjs.map} +1 -1
  15. package/dist-lib/chunks/{panel-BOrETqXz.cjs → panel-DlyaLunw.cjs} +401 -401
  16. package/dist-lib/chunks/{panel-BOrETqXz.cjs.map → panel-DlyaLunw.cjs.map} +1 -1
  17. package/dist-lib/chunks/{app-shell-Cyh8AUJT.cjs → useTheme-D4alxxGV.cjs} +70 -4
  18. package/dist-lib/chunks/useTheme-D4alxxGV.cjs.map +1 -0
  19. package/dist-lib/chunks/{app-shell-78w0pYdP.mjs → useTheme-DF2xbSdI.mjs} +107 -41
  20. package/dist-lib/chunks/useTheme-DF2xbSdI.mjs.map +1 -0
  21. package/dist-lib/index.cjs +224 -154
  22. package/dist-lib/index.cjs.map +1 -1
  23. package/dist-lib/index.mjs +110 -40
  24. package/dist-lib/index.mjs.map +1 -1
  25. package/dist-lib/preview/chat.cjs +54 -55
  26. package/dist-lib/preview/chat.cjs.map +1 -1
  27. package/dist-lib/preview/chat.mjs +2 -3
  28. package/dist-lib/preview/chat.mjs.map +1 -1
  29. package/dist-lib/preview/clientes.cjs +28 -29
  30. package/dist-lib/preview/clientes.cjs.map +1 -1
  31. package/dist-lib/preview/clientes.mjs +4 -5
  32. package/dist-lib/preview/clientes.mjs.map +1 -1
  33. package/dist-lib/preview/dashboard.cjs +24 -25
  34. package/dist-lib/preview/dashboard.cjs.map +1 -1
  35. package/dist-lib/preview/dashboard.mjs +3 -4
  36. package/dist-lib/preview/dashboard.mjs.map +1 -1
  37. package/dist-lib/src/components/index.d.ts +4 -0
  38. package/dist-lib/src/components/index.d.ts.map +1 -1
  39. package/dist-lib/src/components/ui/AppShell/app-shell.d.ts +3 -2
  40. package/dist-lib/src/components/ui/AppShell/app-shell.d.ts.map +1 -1
  41. package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts +21 -4
  42. package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts.map +1 -1
  43. package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts +13 -3
  44. package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts.map +1 -1
  45. package/dist-lib/src/hooks/useBrand.d.ts +49 -16
  46. package/dist-lib/src/hooks/useBrand.d.ts.map +1 -1
  47. package/dist-lib/theme/brand-blue.css +6 -3
  48. package/dist-lib/theme/brand-green.css +6 -3
  49. package/dist-lib/theme/brand-pay.css +6 -3
  50. package/dist-lib/theme/brand-vibrant.css +6 -3
  51. package/dist-lib/theme.css +5 -2
  52. package/package.json +4 -2
  53. package/dist-lib/chunks/app-shell-78w0pYdP.mjs.map +0 -1
  54. package/dist-lib/chunks/app-shell-Cyh8AUJT.cjs.map +0 -1
  55. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs +0 -66
  56. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs.map +0 -1
  57. package/dist-lib/chunks/useTheme-Dee4mo-A.cjs +0 -65
  58. package/dist-lib/chunks/useTheme-Dee4mo-A.cjs.map +0 -1
@@ -2,13 +2,12 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
- const appShell = require("../chunks/app-shell-Cyh8AUJT.cjs");
6
- const useTheme = require("../chunks/useTheme-Dee4mo-A.cjs");
5
+ const useTheme = require("../chunks/useTheme-D4alxxGV.cjs");
7
6
  const lucideReact = require("lucide-react");
8
7
  const appShellMocks = require("../chunks/app-shell-mocks-oO_IV3Gw.cjs");
9
8
  const chatV2Mocks = require("../chunks/chat-v2-mocks-BV9Wha_Z.cjs");
10
- const input = require("../chunks/input-BjUSWce3.cjs");
11
- const chatV2Styles = appShell.tv({
9
+ const input = require("../chunks/input-CizzMZ20.cjs");
10
+ const chatV2Styles = useTheme.tv({
12
11
  slots: {
13
12
  /** Body do AppShell — flex row com gap entre colunas. `relative` pra mobile overlays. */
14
13
  root: "flex flex-1 min-h-0 gap-gp-2xl relative",
@@ -99,9 +98,9 @@ function ConversationActionsMenu({
99
98
  onAssign,
100
99
  onArchive
101
100
  }) {
102
- return /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenu, { children: [
103
- /* @__PURE__ */ jsxRuntime.jsx(appShell.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
104
- appShell.Button,
101
+ return /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenu, { children: [
102
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
103
+ useTheme.Button,
105
104
  {
106
105
  color: "secondary",
107
106
  variant: "outline",
@@ -110,32 +109,32 @@ function ConversationActionsMenu({
110
109
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, {})
111
110
  }
112
111
  ) }),
113
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuContent, { align: "end", sideOffset: 6, className: "min-w-[200px]", children: [
112
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuContent, { align: "end", sideOffset: 6, className: "min-w-[200px]", children: [
114
113
  showResolveInMenu && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
115
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuItem, { onSelect: onResolve, children: [
114
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuItem, { onSelect: onResolve, children: [
116
115
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, {}),
117
116
  " Resolver"
118
117
  ] }),
119
- /* @__PURE__ */ jsxRuntime.jsx(appShell.DropdownMenuSeparator, {})
118
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.DropdownMenuSeparator, {})
120
119
  ] }),
121
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuItem, { onSelect: onCall, children: [
120
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuItem, { onSelect: onCall, children: [
122
121
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, {}),
123
122
  " Ligar"
124
123
  ] }),
125
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuItem, { onSelect: onVideo, children: [
124
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuItem, { onSelect: onVideo, children: [
126
125
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, {}),
127
126
  " Vídeo chamada"
128
127
  ] }),
129
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuItem, { onSelect: onAddTag, children: [
128
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuItem, { onSelect: onAddTag, children: [
130
129
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Tag, {}),
131
130
  " Adicionar tag"
132
131
  ] }),
133
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuItem, { onSelect: onAssign, children: [
132
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuItem, { onSelect: onAssign, children: [
134
133
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserPlus, {}),
135
134
  " Atribuir"
136
135
  ] }),
137
- /* @__PURE__ */ jsxRuntime.jsx(appShell.DropdownMenuSeparator, {}),
138
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.DropdownMenuItem, { variant: "destructive", onSelect: onArchive, children: [
136
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.DropdownMenuSeparator, {}),
137
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.DropdownMenuItem, { variant: "destructive", onSelect: onArchive, children: [
139
138
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Archive, {}),
140
139
  " Arquivar"
141
140
  ] })
@@ -145,7 +144,7 @@ function ConversationActionsMenu({
145
144
  function DateSeparator({ label }) {
146
145
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center my-pad-md", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-pad-lg py-pad-2xs rounded-radius-full bg-bg-muted text-caption-sm text-fg-muted [font-variant-numeric:tabular-nums]", children: label }) });
147
146
  }
148
- const messageBubbleStyles = appShell.tv({
147
+ const messageBubbleStyles = useTheme.tv({
149
148
  slots: {
150
149
  /** Wrapper que controla o alinhamento horizontal (esquerda/direita). */
151
150
  row: "flex",
@@ -193,9 +192,9 @@ const SIZE_CLASSES = {
193
192
  lg: "size-[40px] text-body-md"
194
193
  };
195
194
  function PersonAvatar({ initials, hex, size = "md" }) {
196
- return /* @__PURE__ */ jsxRuntime.jsx(appShell.Avatar, { className: SIZE_CLASSES[size], style: { background: hex }, children: /* @__PURE__ */ jsxRuntime.jsx(appShell.AvatarFallback, { className: "bg-transparent text-white font-bold", children: initials }) });
195
+ return /* @__PURE__ */ jsxRuntime.jsx(useTheme.Avatar, { className: SIZE_CLASSES[size], style: { background: hex }, children: /* @__PURE__ */ jsxRuntime.jsx(useTheme.AvatarFallback, { className: "bg-transparent text-white font-bold", children: initials }) });
197
196
  }
198
- const conversationColumnStyles = appShell.tv({
197
+ const conversationColumnStyles = useTheme.tv({
199
198
  slots: {
200
199
  root: "flex flex-col flex-1 min-w-0 bg-bg-surface border border-border-subtle rounded-radius-xl overflow-hidden",
201
200
  header: "flex items-center gap-gp-lg px-pad-2xl py-pad-md border-b border-border-subtle shrink-0",
@@ -238,10 +237,10 @@ function ConversationColumn({
238
237
  ]);
239
238
  setText("");
240
239
  };
241
- return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": "Conversa", className: appShell.cn(s.root(), className), children: [
240
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": "Conversa", className: useTheme.cn(s.root(), className), children: [
242
241
  /* @__PURE__ */ jsxRuntime.jsxs("header", { className: s.header(), children: [
243
242
  onBackToList && /* @__PURE__ */ jsxRuntime.jsx(
244
- appShell.Button,
243
+ useTheme.Button,
245
244
  {
246
245
  color: "secondary",
247
246
  variant: "ghost",
@@ -263,7 +262,7 @@ function ConversationColumn({
263
262
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.headerInfo(), children: [
264
263
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.headerTitleRow(), children: [
265
264
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: s.headerName(), children: conversation.name }),
266
- /* @__PURE__ */ jsxRuntime.jsx(appShell.Chip, { color: conversation.tagKind, variant: "soft", size: "sm", shape: "pill", children: conversation.tag })
265
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.Chip, { color: conversation.tagKind, variant: "soft", size: "sm", shape: "pill", children: conversation.tag })
267
266
  ] }),
268
267
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.headerMetaRow(), children: [
269
268
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "[font-variant-numeric:tabular-nums]", children: conversation.id }),
@@ -285,7 +284,7 @@ function ConversationColumn({
285
284
  ] }),
286
285
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.headerActions(), children: [
287
286
  /* @__PURE__ */ jsxRuntime.jsx(
288
- appShell.Button,
287
+ useTheme.Button,
289
288
  {
290
289
  color: "primary",
291
290
  variant: "filled",
@@ -308,7 +307,7 @@ function ConversationColumn({
308
307
  }
309
308
  ),
310
309
  /* @__PURE__ */ jsxRuntime.jsx(
311
- appShell.Button,
310
+ useTheme.Button,
312
311
  {
313
312
  color: "secondary",
314
313
  variant: "outline",
@@ -327,7 +326,7 @@ function ConversationColumn({
327
326
  ] }),
328
327
  /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: send, className: s.composer(), children: [
329
328
  /* @__PURE__ */ jsxRuntime.jsx(
330
- appShell.Button,
329
+ useTheme.Button,
331
330
  {
332
331
  color: "secondary",
333
332
  variant: "ghost",
@@ -349,7 +348,7 @@ function ConversationColumn({
349
348
  }
350
349
  ),
351
350
  /* @__PURE__ */ jsxRuntime.jsx(
352
- appShell.Button,
351
+ useTheme.Button,
353
352
  {
354
353
  color: "secondary",
355
354
  variant: "ghost",
@@ -360,7 +359,7 @@ function ConversationColumn({
360
359
  }
361
360
  ),
362
361
  text.trim() ? /* @__PURE__ */ jsxRuntime.jsx(
363
- appShell.Button,
362
+ useTheme.Button,
364
363
  {
365
364
  color: "primary",
366
365
  variant: "filled",
@@ -370,7 +369,7 @@ function ConversationColumn({
370
369
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Send, { strokeWidth: 2.2 })
371
370
  }
372
371
  ) : /* @__PURE__ */ jsxRuntime.jsx(
373
- appShell.Button,
372
+ useTheme.Button,
374
373
  {
375
374
  color: "primary",
376
375
  variant: "filled",
@@ -421,7 +420,7 @@ function DetailSection({
421
420
  open && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-gp-sm pt-pad-xs", children })
422
421
  ] });
423
422
  }
424
- const detailsColumnStyles = appShell.tv({
423
+ const detailsColumnStyles = useTheme.tv({
425
424
  slots: {
426
425
  root: "relative flex flex-col shrink-0 bg-bg-surface border border-border-subtle rounded-radius-xl overflow-hidden",
427
426
  /** Resize handle no left edge — 4px. */
@@ -461,7 +460,7 @@ function DetailsColumn({
461
460
  {
462
461
  "aria-label": "Detalhes do contato",
463
462
  style: { width },
464
- className: appShell.cn(s.root(), className),
463
+ className: useTheme.cn(s.root(), className),
465
464
  children: [
466
465
  /* @__PURE__ */ jsxRuntime.jsx(
467
466
  "button",
@@ -474,7 +473,7 @@ function DetailsColumn({
474
473
  ),
475
474
  /* @__PURE__ */ jsxRuntime.jsxs("header", { className: s.header(), children: [
476
475
  onBackToChat && /* @__PURE__ */ jsxRuntime.jsx(
477
- appShell.Button,
476
+ useTheme.Button,
478
477
  {
479
478
  color: "secondary",
480
479
  variant: "ghost",
@@ -487,7 +486,7 @@ function DetailsColumn({
487
486
  ),
488
487
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: s.title(), children: "Detalhes" }),
489
488
  /* @__PURE__ */ jsxRuntime.jsx(
490
- appShell.Button,
489
+ useTheme.Button,
491
490
  {
492
491
  color: "secondary",
493
492
  variant: "ghost",
@@ -538,8 +537,8 @@ function DetailsColumn({
538
537
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.tagsRow(), children: [
539
538
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: s.tagsLabel(), children: "Tags" }),
540
539
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.tagsChips(), children: [
541
- /* @__PURE__ */ jsxRuntime.jsx(appShell.Chip, { color: conversation.tagKind, variant: "soft", size: "sm", shape: "pill", children: conversation.tag }),
542
- detail.extraTags.map((t) => /* @__PURE__ */ jsxRuntime.jsx(appShell.Chip, { color: "info", variant: "soft", size: "sm", shape: "pill", children: t }, t)),
540
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.Chip, { color: conversation.tagKind, variant: "soft", size: "sm", shape: "pill", children: conversation.tag }),
541
+ detail.extraTags.map((t) => /* @__PURE__ */ jsxRuntime.jsx(useTheme.Chip, { color: "info", variant: "soft", size: "sm", shape: "pill", children: t }, t)),
543
542
  /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: s.tagAddBtn(), children: [
544
543
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { size: 11, strokeWidth: 2.2 }),
545
544
  " tag"
@@ -573,7 +572,7 @@ function DetailsColumn({
573
572
  }
574
573
  );
575
574
  }
576
- const filterRowStyles = appShell.tv({
575
+ const filterRowStyles = useTheme.tv({
577
576
  slots: {
578
577
  button: [
579
578
  "flex items-center gap-gp-md w-full",
@@ -638,7 +637,7 @@ function FilterRow({ item, isActive, onClick }) {
638
637
  }
639
638
  );
640
639
  }
641
- const filtersColumnStyles = appShell.tv({
640
+ const filtersColumnStyles = useTheme.tv({
642
641
  slots: {
643
642
  /** Aside raiz da versão expandida (280px). */
644
643
  root: "flex flex-col w-[280px] shrink-0 bg-bg-surface border border-border-subtle rounded-radius-xl overflow-hidden",
@@ -667,7 +666,7 @@ function FiltersColumn({
667
666
  className
668
667
  }) {
669
668
  const s = filtersColumnStyles();
670
- return /* @__PURE__ */ jsxRuntime.jsx("aside", { "aria-label": "Filtros", className: appShell.cn(s.root(), className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.scroll(), children: chatV2Mocks.FILTER_GROUPS.map((sec, i) => /* @__PURE__ */ jsxRuntime.jsx(
669
+ return /* @__PURE__ */ jsxRuntime.jsx("aside", { "aria-label": "Filtros", className: useTheme.cn(s.root(), className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.scroll(), children: chatV2Mocks.FILTER_GROUPS.map((sec, i) => /* @__PURE__ */ jsxRuntime.jsx(
671
670
  FilterSection,
672
671
  {
673
672
  title: sec.title,
@@ -689,7 +688,7 @@ function FilterSection({
689
688
  isFirst
690
689
  }) {
691
690
  const s = filtersColumnStyles();
692
- return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: appShell.cn(s.section(), !isFirst && s.sectionDivider()), children: [
691
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: useTheme.cn(s.section(), !isFirst && s.sectionDivider()), children: [
693
692
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.sectionTitle(), children: title }),
694
693
  items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
695
694
  FilterRow,
@@ -702,7 +701,7 @@ function FilterSection({
702
701
  ))
703
702
  ] });
704
703
  }
705
- const railItemStyles = appShell.tv({
704
+ const railItemStyles = useTheme.tv({
706
705
  slots: {
707
706
  button: [
708
707
  "relative grid place-items-center size-form-md rounded-radius-md cursor-pointer",
@@ -765,10 +764,10 @@ function FiltersRail({
765
764
  className
766
765
  }) {
767
766
  const s = filtersColumnStyles();
768
- return /* @__PURE__ */ jsxRuntime.jsx("aside", { "aria-label": "Filtros (compactos)", className: appShell.cn(s.rail(), className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.railScroll(), children: chatV2Mocks.FILTER_GROUPS.map(({ group, items }, gi) => /* @__PURE__ */ jsxRuntime.jsx(
767
+ return /* @__PURE__ */ jsxRuntime.jsx("aside", { "aria-label": "Filtros (compactos)", className: useTheme.cn(s.rail(), className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.railScroll(), children: chatV2Mocks.FILTER_GROUPS.map(({ group, items }, gi) => /* @__PURE__ */ jsxRuntime.jsx(
769
768
  "div",
770
769
  {
771
- className: appShell.cn(s.railGroup(), gi > 0 && s.railGroupDivider()),
770
+ className: useTheme.cn(s.railGroup(), gi > 0 && s.railGroupDivider()),
772
771
  children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
773
772
  RailItem,
774
773
  {
@@ -782,7 +781,7 @@ function FiltersRail({
782
781
  group
783
782
  )) }) });
784
783
  }
785
- const conversationListItemStyles = appShell.tv({
784
+ const conversationListItemStyles = useTheme.tv({
786
785
  slots: {
787
786
  /** Card raiz (button) — flex horizontal com avatar + conteúdo. */
788
787
  root: [
@@ -855,7 +854,7 @@ function ConversationListItem({
855
854
  ] }),
856
855
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.rowBot(), children: [
857
856
  /* @__PURE__ */ jsxRuntime.jsx(ChannelDot, { channel: conv.channel }),
858
- /* @__PURE__ */ jsxRuntime.jsx(appShell.Chip, { color: conv.tagKind, variant: "soft", size: "sm", shape: "pill", children: conv.tag }),
857
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.Chip, { color: conv.tagKind, variant: "soft", size: "sm", shape: "pill", children: conv.tag }),
859
858
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: s.id(), children: conv.id })
860
859
  ] })
861
860
  ] })
@@ -863,7 +862,7 @@ function ConversationListItem({
863
862
  }
864
863
  );
865
864
  }
866
- const queueColumnStyles = appShell.tv({
865
+ const queueColumnStyles = useTheme.tv({
867
866
  slots: {
868
867
  root: "flex flex-col w-[340px] shrink-0 bg-bg-surface border border-border-subtle rounded-radius-xl overflow-hidden",
869
868
  header: "flex items-center gap-gp-sm px-pad-md pt-pad-md pb-pad-md",
@@ -910,10 +909,10 @@ function QueueColumn({
910
909
  read: bySearch.filter((c) => c.unread === 0).length
911
910
  };
912
911
  }, [searchQuery]);
913
- return /* @__PURE__ */ jsxRuntime.jsxs("aside", { "aria-label": "Fila de conversas", className: appShell.cn(s.root(), className), children: [
912
+ return /* @__PURE__ */ jsxRuntime.jsxs("aside", { "aria-label": "Fila de conversas", className: useTheme.cn(s.root(), className), children: [
914
913
  /* @__PURE__ */ jsxRuntime.jsxs("header", { className: s.header(), children: [
915
914
  /* @__PURE__ */ jsxRuntime.jsx(
916
- appShell.Button,
915
+ useTheme.Button,
917
916
  {
918
917
  color: "secondary",
919
918
  variant: "ghost",
@@ -925,7 +924,7 @@ function QueueColumn({
925
924
  }
926
925
  ),
927
926
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: s.title(), children: "Conversas" }),
928
- /* @__PURE__ */ jsxRuntime.jsx(appShell.Chip, { color: "primary", variant: "soft", size: "sm", shape: "rounded", children: filtered.length })
927
+ /* @__PURE__ */ jsxRuntime.jsx(useTheme.Chip, { color: "primary", variant: "soft", size: "sm", shape: "rounded", children: filtered.length })
929
928
  ] }),
930
929
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.searchWrap(), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: s.searchInner(), children: [
931
930
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { size: 14, strokeWidth: 1.8, className: s.searchIcon() }),
@@ -951,7 +950,7 @@ function QueueColumn({
951
950
  )
952
951
  ] }) }),
953
952
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: s.chipsWrap(), children: /* @__PURE__ */ jsxRuntime.jsxs(
954
- appShell.ChipGroup,
953
+ useTheme.ChipGroup,
955
954
  {
956
955
  type: "single",
957
956
  value: queueFilter,
@@ -959,15 +958,15 @@ function QueueColumn({
959
958
  size: "md",
960
959
  ariaLabel: "Filtrar conversas",
961
960
  children: [
962
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.ChipGroupItem, { value: "all", children: [
961
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.ChipGroupItem, { value: "all", children: [
963
962
  "Todas",
964
963
  counts.all > 0 && ` (${counts.all})`
965
964
  ] }),
966
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.ChipGroupItem, { value: "unread", children: [
965
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.ChipGroupItem, { value: "unread", children: [
967
966
  "Não lidas",
968
967
  counts.unread > 0 && ` (${counts.unread})`
969
968
  ] }),
970
- /* @__PURE__ */ jsxRuntime.jsxs(appShell.ChipGroupItem, { value: "read", children: [
969
+ /* @__PURE__ */ jsxRuntime.jsxs(useTheme.ChipGroupItem, { value: "read", children: [
971
970
  "Lidas",
972
971
  counts.read > 0 && ` (${counts.read})`
973
972
  ] })
@@ -1037,7 +1036,7 @@ function ChatV2() {
1037
1036
  const activeConversation = chatV2Mocks.CONVERSATIONS.find((c) => c.id === activeId) ?? chatV2Mocks.CONVERSATIONS[0];
1038
1037
  const activeDetail = chatV2Mocks.CONVERSATION_DETAILS[activeConversation.id] ?? chatV2Mocks.DEFAULT_DETAIL;
1039
1038
  return /* @__PURE__ */ jsxRuntime.jsx(
1040
- appShell.AppShell,
1039
+ useTheme.AppShell,
1041
1040
  {
1042
1041
  contexts: appShellMocks.APP_SHELL_CONTEXTS,
1043
1042
  defaultActiveContextId: "inbox",
@@ -1073,7 +1072,7 @@ function ChatV2() {
1073
1072
  onQueueFilterChange: setQueueFilter,
1074
1073
  filtersCollapsed,
1075
1074
  onToggleFilters: () => setFiltersCollapsed((c) => !c),
1076
- className: appShell.cn(
1075
+ className: useTheme.cn(
1077
1076
  mobileView === "list" ? `${mobileOverlay.active} max-md:z-[1]` : mobileOverlay.hidden
1078
1077
  )
1079
1078
  }
@@ -1085,7 +1084,7 @@ function ChatV2() {
1085
1084
  detailsOpen,
1086
1085
  onToggleDetails: handleToggleDetails,
1087
1086
  onBackToList: () => setMobileView("list"),
1088
- className: appShell.cn(
1087
+ className: useTheme.cn(
1089
1088
  mobileView === "chat" ? `${mobileOverlay.active} max-md:z-[2]` : mobileOverlay.hidden
1090
1089
  )
1091
1090
  }
@@ -1104,7 +1103,7 @@ function ChatV2() {
1104
1103
  onBackToChat: () => setMobileView("chat"),
1105
1104
  width: detailsResize.width,
1106
1105
  onResizeStart: detailsResize.onResizeStart,
1107
- className: appShell.cn(
1106
+ className: useTheme.cn(
1108
1107
  mobileView === "details" ? `${mobileOverlay.active} max-md:!w-full max-md:z-[3]` : mobileOverlay.hidden
1109
1108
  )
1110
1109
  }