@snksergio/design-system 0.36.0 → 0.37.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.
- package/README.md +58 -12
- package/dist-lib/chunks/avatar-CIHTveDJ.mjs +1177 -0
- package/dist-lib/chunks/avatar-CIHTveDJ.mjs.map +1 -0
- package/dist-lib/chunks/avatar-YpqQgJnh.cjs +1196 -0
- package/dist-lib/chunks/avatar-YpqQgJnh.cjs.map +1 -0
- package/dist-lib/chunks/{input-CLZuK61s.cjs → input-CJnonz-G.cjs} +3 -3
- package/dist-lib/chunks/{input-CLZuK61s.cjs.map → input-CJnonz-G.cjs.map} +1 -1
- package/dist-lib/chunks/{input-Di_5Ir5M.mjs → input-jLoO8t0I.mjs} +2 -2
- package/dist-lib/chunks/{input-Di_5Ir5M.mjs.map → input-jLoO8t0I.mjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-CMdiNoMu.mjs → kpi-delta-D0g2YzDy.mjs} +3 -2
- package/dist-lib/chunks/{kpi-delta-CMdiNoMu.mjs.map → kpi-delta-D0g2YzDy.mjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta--KmkXYn9.cjs → kpi-delta-D6cLnCqW.cjs} +8 -7
- package/dist-lib/chunks/{kpi-delta--KmkXYn9.cjs.map → kpi-delta-D6cLnCqW.cjs.map} +1 -1
- package/dist-lib/chunks/{page-header-HWma4AzM.cjs → page-header-DSTprenz.cjs} +4 -4
- package/dist-lib/chunks/{page-header-HWma4AzM.cjs.map → page-header-DSTprenz.cjs.map} +1 -1
- package/dist-lib/chunks/{page-header-gYXNGHv-.mjs → page-header-Deb1excS.mjs} +2 -2
- package/dist-lib/chunks/{page-header-gYXNGHv-.mjs.map → page-header-Deb1excS.mjs.map} +1 -1
- package/dist-lib/chunks/{panel-BCGlqoEk.mjs → panel-Cid3m9zb.mjs} +370 -9823
- package/dist-lib/chunks/panel-Cid3m9zb.mjs.map +1 -0
- package/dist-lib/chunks/{panel-Cq9UQki6.cjs → panel-DLcD8LhW.cjs} +595 -10052
- package/dist-lib/chunks/panel-DLcD8LhW.cjs.map +1 -0
- package/dist-lib/chunks/textarea-BDJRaL5h.mjs +781 -0
- package/dist-lib/chunks/textarea-BDJRaL5h.mjs.map +1 -0
- package/dist-lib/chunks/textarea-Bxl9Voe8.cjs +802 -0
- package/dist-lib/chunks/textarea-Bxl9Voe8.cjs.map +1 -0
- package/dist-lib/chunks/tooltip-DGI3hDFM.mjs +1452 -0
- package/dist-lib/chunks/tooltip-DGI3hDFM.mjs.map +1 -0
- package/dist-lib/chunks/tooltip-vLUyJ0h5.cjs +1484 -0
- package/dist-lib/chunks/tooltip-vLUyJ0h5.cjs.map +1 -0
- package/dist-lib/chunks/{useTheme-DFAlP_ab.cjs → useTheme-DQ7FaHdv.cjs} +170 -1287
- package/dist-lib/chunks/useTheme-DQ7FaHdv.cjs.map +1 -0
- package/dist-lib/chunks/{useTheme-D-405m16.mjs → useTheme-UrerJ3i-.mjs} +26 -1139
- package/dist-lib/chunks/useTheme-UrerJ3i-.mjs.map +1 -0
- package/dist-lib/index.cjs +1258 -311
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +1631 -679
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/chat.cjs +45 -44
- package/dist-lib/preview/chat.cjs.map +1 -1
- package/dist-lib/preview/chat.mjs +3 -2
- package/dist-lib/preview/chat.mjs.map +1 -1
- package/dist-lib/preview/clientes.cjs +22 -20
- package/dist-lib/preview/clientes.cjs.map +1 -1
- package/dist-lib/preview/clientes.mjs +6 -4
- package/dist-lib/preview/clientes.mjs.map +1 -1
- package/dist-lib/preview/dashboard.cjs +40 -39
- package/dist-lib/preview/dashboard.cjs.map +1 -1
- package/dist-lib/preview/dashboard.mjs +4 -3
- package/dist-lib/preview/dashboard.mjs.map +1 -1
- package/dist-lib/shadcn.cjs +293 -0
- package/dist-lib/shadcn.cjs.map +1 -0
- package/dist-lib/shadcn.d.ts +2 -0
- package/dist-lib/shadcn.mjs +276 -0
- package/dist-lib/shadcn.mjs.map +1 -0
- package/dist-lib/src/components/index.d.ts +10 -0
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/shadcn/index.d.ts +60 -6
- package/dist-lib/src/components/shadcn/index.d.ts.map +1 -1
- package/dist-lib/src/hooks/useBrand.d.ts +1 -1
- package/package.json +11 -3
- package/dist-lib/chunks/panel-BCGlqoEk.mjs.map +0 -1
- package/dist-lib/chunks/panel-Cq9UQki6.cjs.map +0 -1
- package/dist-lib/chunks/useTheme-D-405m16.mjs.map +0 -1
- package/dist-lib/chunks/useTheme-DFAlP_ab.cjs.map +0 -1
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const React = require("react");
|
|
4
|
-
const
|
|
5
|
-
const tailwindMerge = require("tailwind-merge");
|
|
4
|
+
const avatar = require("./avatar-YpqQgJnh.cjs");
|
|
6
5
|
const lucideReact = require("lucide-react");
|
|
7
|
-
const tailwindVariants = require("tailwind-variants");
|
|
8
|
-
const cmdk = require("cmdk");
|
|
9
|
-
const SheetPrimitive = require("@radix-ui/react-dialog");
|
|
10
6
|
const ToggleGroupPrimitive = require("@radix-ui/react-toggle-group");
|
|
11
|
-
const PopoverPrimitive = require("@radix-ui/react-popover");
|
|
12
|
-
const classVarianceAuthority = require("class-variance-authority");
|
|
13
|
-
const DropdownMenuPrimitive = require("@radix-ui/react-dropdown-menu");
|
|
14
|
-
const AvatarPrimitive = require("@radix-ui/react-avatar");
|
|
15
7
|
function _interopNamespaceDefault(e) {
|
|
16
8
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
17
9
|
if (e) {
|
|
@@ -28,432 +20,8 @@ function _interopNamespaceDefault(e) {
|
|
|
28
20
|
n.default = e;
|
|
29
21
|
return Object.freeze(n);
|
|
30
22
|
}
|
|
31
|
-
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
32
|
-
const SheetPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(SheetPrimitive);
|
|
33
23
|
const ToggleGroupPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ToggleGroupPrimitive);
|
|
34
|
-
const
|
|
35
|
-
const DropdownMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(DropdownMenuPrimitive);
|
|
36
|
-
const AvatarPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AvatarPrimitive);
|
|
37
|
-
const isDsPad = (v) => /^(pad|sp)-/.test(v);
|
|
38
|
-
const isDsGap = (v) => /^gp-/.test(v);
|
|
39
|
-
const isDsRadius = (v) => /^radius-/.test(v);
|
|
40
|
-
const isDsShadow = (v) => /^sh-/.test(v);
|
|
41
|
-
const isDsForm = (v) => /^form-/.test(v);
|
|
42
|
-
const twMerge = tailwindMerge.extendTailwindMerge({
|
|
43
|
-
extend: {
|
|
44
|
-
classGroups: {
|
|
45
|
-
"font-size": [
|
|
46
|
-
{
|
|
47
|
-
// Lista 1:1 com tokens/brands/default/semantic/typography.ts.
|
|
48
|
-
// Manter sincronizado com src/utils/tv.ts. Ver L-016.
|
|
49
|
-
text: [
|
|
50
|
-
// Displays (fluid clamp)
|
|
51
|
-
"display-2xl",
|
|
52
|
-
"display-xl",
|
|
53
|
-
"display-lg",
|
|
54
|
-
"display-md",
|
|
55
|
-
// Headings (xs estático, sm-xl fluid clamp)
|
|
56
|
-
"heading-xl",
|
|
57
|
-
"heading-lg",
|
|
58
|
-
"heading-md",
|
|
59
|
-
"heading-sm",
|
|
60
|
-
"heading-xs",
|
|
61
|
-
// Titles (weight 600 default)
|
|
62
|
-
"title-lg",
|
|
63
|
-
"title-md",
|
|
64
|
-
"title-sm",
|
|
65
|
-
// Body (xs/sm = weight 500 interactive; md-2xl = 400 corrido)
|
|
66
|
-
"body-2xl",
|
|
67
|
-
"body-xl",
|
|
68
|
-
"body-lg",
|
|
69
|
-
"body-md",
|
|
70
|
-
"body-sm",
|
|
71
|
-
"body-xs",
|
|
72
|
-
// Captions (weight 400)
|
|
73
|
-
"caption-md",
|
|
74
|
-
"caption-sm",
|
|
75
|
-
"caption-xs",
|
|
76
|
-
// Code (mono regular)
|
|
77
|
-
"code-md",
|
|
78
|
-
"code-sm"
|
|
79
|
-
]
|
|
80
|
-
}
|
|
81
|
-
],
|
|
82
|
-
/* ── Padding ──────────────────────────────────────────────────────── */
|
|
83
|
-
p: [{ p: [isDsPad] }],
|
|
84
|
-
px: [{ px: [isDsPad] }],
|
|
85
|
-
py: [{ py: [isDsPad] }],
|
|
86
|
-
pt: [{ pt: [isDsPad] }],
|
|
87
|
-
pr: [{ pr: [isDsPad] }],
|
|
88
|
-
pb: [{ pb: [isDsPad] }],
|
|
89
|
-
pl: [{ pl: [isDsPad] }],
|
|
90
|
-
ps: [{ ps: [isDsPad] }],
|
|
91
|
-
pe: [{ pe: [isDsPad] }],
|
|
92
|
-
/* ── Margin (usa mesmo sp-*) ──────────────────────────────────────── */
|
|
93
|
-
m: [{ m: [isDsPad] }],
|
|
94
|
-
mx: [{ mx: [isDsPad] }],
|
|
95
|
-
my: [{ my: [isDsPad] }],
|
|
96
|
-
mt: [{ mt: [isDsPad] }],
|
|
97
|
-
mr: [{ mr: [isDsPad] }],
|
|
98
|
-
mb: [{ mb: [isDsPad] }],
|
|
99
|
-
ml: [{ ml: [isDsPad] }],
|
|
100
|
-
ms: [{ ms: [isDsPad] }],
|
|
101
|
-
me: [{ me: [isDsPad] }],
|
|
102
|
-
/* ── Inset / position (top/right/bottom/left) ─────────────────────── */
|
|
103
|
-
inset: [{ inset: [isDsPad] }],
|
|
104
|
-
"inset-x": [{ "inset-x": [isDsPad] }],
|
|
105
|
-
"inset-y": [{ "inset-y": [isDsPad] }],
|
|
106
|
-
"top": [{ top: [isDsPad] }],
|
|
107
|
-
"right": [{ right: [isDsPad] }],
|
|
108
|
-
"bottom": [{ bottom: [isDsPad] }],
|
|
109
|
-
"left": [{ left: [isDsPad] }],
|
|
110
|
-
"start": [{ start: [isDsPad] }],
|
|
111
|
-
"end": [{ end: [isDsPad] }],
|
|
112
|
-
/* ── Gap ──────────────────────────────────────────────────────────── */
|
|
113
|
-
gap: [{ gap: [isDsGap] }],
|
|
114
|
-
"gap-x": [{ "gap-x": [isDsGap] }],
|
|
115
|
-
"gap-y": [{ "gap-y": [isDsGap] }],
|
|
116
|
-
/* ── Rounded (todas as cantos) ────────────────────────────────────── */
|
|
117
|
-
rounded: [{ rounded: [isDsRadius] }],
|
|
118
|
-
"rounded-s": [{ "rounded-s": [isDsRadius] }],
|
|
119
|
-
"rounded-e": [{ "rounded-e": [isDsRadius] }],
|
|
120
|
-
"rounded-t": [{ "rounded-t": [isDsRadius] }],
|
|
121
|
-
"rounded-r": [{ "rounded-r": [isDsRadius] }],
|
|
122
|
-
"rounded-b": [{ "rounded-b": [isDsRadius] }],
|
|
123
|
-
"rounded-l": [{ "rounded-l": [isDsRadius] }],
|
|
124
|
-
"rounded-ss": [{ "rounded-ss": [isDsRadius] }],
|
|
125
|
-
"rounded-se": [{ "rounded-se": [isDsRadius] }],
|
|
126
|
-
"rounded-ee": [{ "rounded-ee": [isDsRadius] }],
|
|
127
|
-
"rounded-es": [{ "rounded-es": [isDsRadius] }],
|
|
128
|
-
"rounded-tl": [{ "rounded-tl": [isDsRadius] }],
|
|
129
|
-
"rounded-tr": [{ "rounded-tr": [isDsRadius] }],
|
|
130
|
-
"rounded-br": [{ "rounded-br": [isDsRadius] }],
|
|
131
|
-
"rounded-bl": [{ "rounded-bl": [isDsRadius] }],
|
|
132
|
-
/* ── Shadow ───────────────────────────────────────────────────────── */
|
|
133
|
-
shadow: [{ shadow: [isDsShadow] }],
|
|
134
|
-
/* ── Form sizes (min-h, h, w, size) ───────────────────────────────── */
|
|
135
|
-
"min-h": [{ "min-h": [isDsForm] }],
|
|
136
|
-
h: [{ h: [isDsForm] }],
|
|
137
|
-
w: [{ w: [isDsForm] }],
|
|
138
|
-
size: [{ size: [isDsForm] }]
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
function cn(...inputs) {
|
|
143
|
-
return twMerge(clsx.clsx(inputs));
|
|
144
|
-
}
|
|
145
|
-
const twMergeConfig = {
|
|
146
|
-
extend: {
|
|
147
|
-
classGroups: {
|
|
148
|
-
"font-size": [
|
|
149
|
-
{
|
|
150
|
-
text: [
|
|
151
|
-
// Displays (fluid clamp)
|
|
152
|
-
"display-2xl",
|
|
153
|
-
"display-xl",
|
|
154
|
-
"display-lg",
|
|
155
|
-
"display-md",
|
|
156
|
-
// Headings (xs estático, sm-xl fluid clamp)
|
|
157
|
-
"heading-xl",
|
|
158
|
-
"heading-lg",
|
|
159
|
-
"heading-md",
|
|
160
|
-
"heading-sm",
|
|
161
|
-
"heading-xs",
|
|
162
|
-
// Titles (weight 600 default)
|
|
163
|
-
"title-lg",
|
|
164
|
-
"title-md",
|
|
165
|
-
"title-sm",
|
|
166
|
-
// Body (xs/sm = weight 500 interactive; md-2xl = 400 corrido)
|
|
167
|
-
"body-2xl",
|
|
168
|
-
"body-xl",
|
|
169
|
-
"body-lg",
|
|
170
|
-
"body-md",
|
|
171
|
-
"body-sm",
|
|
172
|
-
"body-xs",
|
|
173
|
-
// Captions (weight 400)
|
|
174
|
-
"caption-md",
|
|
175
|
-
"caption-sm",
|
|
176
|
-
"caption-xs",
|
|
177
|
-
// Stat (número de métrica/KPI — estático, bold, leading tight)
|
|
178
|
-
"stat-xl",
|
|
179
|
-
"stat-lg",
|
|
180
|
-
"stat-md",
|
|
181
|
-
"stat-sm",
|
|
182
|
-
// Code (mono regular)
|
|
183
|
-
"code-md",
|
|
184
|
-
"code-sm"
|
|
185
|
-
]
|
|
186
|
-
}
|
|
187
|
-
]
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
const tv = (options, config) => tailwindVariants.tv(options, {
|
|
192
|
-
...config,
|
|
193
|
-
twMergeConfig
|
|
194
|
-
});
|
|
195
|
-
const buttonVariants = tv({
|
|
196
|
-
base: [
|
|
197
|
-
"inline-flex items-center justify-center",
|
|
198
|
-
"select-none whitespace-nowrap",
|
|
199
|
-
"focus-visible:outline-none",
|
|
200
|
-
"border border-transparent",
|
|
201
|
-
"text-body-sm font-semibold leading-none",
|
|
202
|
-
// 13px / 600 — alinhado com sandbox btn
|
|
203
|
-
"[&_svg]:shrink-0",
|
|
204
|
-
// SVG não diminui; tamanho controlado por size
|
|
205
|
-
"transition-all duration-200 ease-out",
|
|
206
|
-
"cursor-pointer",
|
|
207
|
-
"focus-visible:ring-4"
|
|
208
|
-
],
|
|
209
|
-
variants: {
|
|
210
|
-
color: {
|
|
211
|
-
primary: "focus-visible:ring-ring-brand",
|
|
212
|
-
secondary: "focus-visible:ring-ring-secondary",
|
|
213
|
-
critical: "focus-visible:ring-ring-danger",
|
|
214
|
-
success: "focus-visible:ring-ring-success",
|
|
215
|
-
warning: "focus-visible:ring-ring-warning"
|
|
216
|
-
},
|
|
217
|
-
variant: {
|
|
218
|
-
filled: "",
|
|
219
|
-
outline: "",
|
|
220
|
-
soft: "",
|
|
221
|
-
ghost: "bg-transparent"
|
|
222
|
-
},
|
|
223
|
-
size: {
|
|
224
|
-
// h28 / pad 10 / gap 6 / radius 8 / icon 12
|
|
225
|
-
"2xs": "min-h-form-xs px-pad-lg gap-gp-sm rounded-radius-md [&_svg]:size-[12px]",
|
|
226
|
-
// h32 / pad 12 / gap 6 / radius 8 / icon 14
|
|
227
|
-
xs: "min-h-form-sm px-pad-xl gap-gp-sm rounded-radius-md [&_svg]:size-[14px]",
|
|
228
|
-
// h36 / pad 12 / gap 6 / radius 10 / icon 14
|
|
229
|
-
sm: "min-h-form-md px-pad-xl gap-gp-sm rounded-radius-lg [&_svg]:size-[14px]",
|
|
230
|
-
// h40 / pad 16 / gap 6 / radius 10 / icon 14 (alinhado com sandbox Exportar)
|
|
231
|
-
md: "min-h-form-lg px-pad-2xl gap-gp-sm rounded-radius-lg [&_svg]:size-[14px]",
|
|
232
|
-
// h44 / pad 16 / gap 8 / radius 10 / icon 16
|
|
233
|
-
lg: "min-h-form-xl px-pad-2xl gap-gp-md rounded-radius-lg [&_svg]:size-[16px]",
|
|
234
|
-
// Icon buttons — width = height (square). Regra: SVG +2px vs versão com label
|
|
235
|
-
// (precisa preencher mais o quadrado sem o texto carregando peso visual).
|
|
236
|
-
"icon-2xs": "size-form-xs rounded-radius-md p-0 [&_svg]:size-[14px]",
|
|
237
|
-
// 28×28 / +2 (12→14)
|
|
238
|
-
"icon-xs": "size-form-sm rounded-radius-md p-0 [&_svg]:size-[16px]",
|
|
239
|
-
// 32×32 / +2 (14→16)
|
|
240
|
-
"icon-sm": "size-form-md rounded-radius-lg p-0 [&_svg]:size-[16px]",
|
|
241
|
-
// 36×36 / +2 (14→16)
|
|
242
|
-
"icon-md": "size-form-lg rounded-radius-lg p-0 [&_svg]:size-[16px]",
|
|
243
|
-
// 40×40 / +2 (14→16)
|
|
244
|
-
"icon-lg": "size-form-xl rounded-radius-lg p-0 [&_svg]:size-[18px]"
|
|
245
|
-
// 44×44 / +2 (16→18)
|
|
246
|
-
},
|
|
247
|
-
fullWidth: {
|
|
248
|
-
true: "w-full flex-1"
|
|
249
|
-
},
|
|
250
|
-
/**
|
|
251
|
-
* Shape do botão:
|
|
252
|
-
* - rounded (default): mantém o radius da `size` (varia por tamanho)
|
|
253
|
-
* - pill: força `rounded-full` (override com `!` pra ganhar do size)
|
|
254
|
-
*/
|
|
255
|
-
shape: {
|
|
256
|
-
rounded: "",
|
|
257
|
-
pill: "!rounded-full"
|
|
258
|
-
},
|
|
259
|
-
disabled: {
|
|
260
|
-
true: "pointer-events-none opacity-50"
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
compoundVariants: [
|
|
264
|
-
// ── Primary (brand) ─────────────────────────────────────────────
|
|
265
|
-
{
|
|
266
|
-
color: "primary",
|
|
267
|
-
variant: "filled",
|
|
268
|
-
class: "bg-bg-brand text-fg-on-brand hover:bg-bg-brand-hover"
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
color: "primary",
|
|
272
|
-
variant: "outline",
|
|
273
|
-
class: "bg-bg-surface border-border-brand text-fg-brand shadow-sh-sm hover:bg-bg-brand-subtle hover:border-transparent hover:shadow-sh-none"
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
color: "primary",
|
|
277
|
-
variant: "soft",
|
|
278
|
-
class: "bg-bg-brand-subtle text-fg-brand hover:bg-bg-brand-subtle-hover"
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
color: "primary",
|
|
282
|
-
variant: "ghost",
|
|
283
|
-
class: "text-fg-brand hover:bg-bg-brand-subtle"
|
|
284
|
-
},
|
|
285
|
-
// ── Secondary (neutro) ──────────────────────────────────────────
|
|
286
|
-
{
|
|
287
|
-
color: "secondary",
|
|
288
|
-
variant: "filled",
|
|
289
|
-
class: "bg-bg-muted text-fg-muted hover:bg-bg-muted-hover hover:text-fg-default"
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
// Outline alinhado com `.btn.tbl-tool-btn` do design-and-table-v2:
|
|
293
|
-
// light = bg-surface + border-subtle + fg-default + shadow-sm (mantém no hover)
|
|
294
|
-
// dark = bg-muted + border-input + fg-muted + sem shadow
|
|
295
|
-
color: "secondary",
|
|
296
|
-
variant: "outline",
|
|
297
|
-
class: [
|
|
298
|
-
"bg-bg-surface border-border-subtle text-fg-default shadow-sh-sm",
|
|
299
|
-
"dark:bg-bg-muted dark:border-border-input dark:text-fg-muted dark:shadow-sh-none",
|
|
300
|
-
"hover:bg-bg-muted-hover hover:text-fg-default",
|
|
301
|
-
"dark:hover:bg-bg-muted-hover dark:hover:text-fg-default"
|
|
302
|
-
].join(" ")
|
|
303
|
-
},
|
|
304
|
-
{
|
|
305
|
-
color: "secondary",
|
|
306
|
-
variant: "soft",
|
|
307
|
-
class: "bg-bg-muted text-fg-muted hover:bg-bg-muted-hover hover:text-fg-default"
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
color: "secondary",
|
|
311
|
-
variant: "ghost",
|
|
312
|
-
class: "text-fg-muted hover:bg-bg-muted hover:text-fg-default"
|
|
313
|
-
},
|
|
314
|
-
// ── Critical (danger) ───────────────────────────────────────────
|
|
315
|
-
{
|
|
316
|
-
color: "critical",
|
|
317
|
-
variant: "filled",
|
|
318
|
-
class: "bg-bg-danger text-fg-on-danger hover:bg-bg-danger-hover"
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
color: "critical",
|
|
322
|
-
variant: "outline",
|
|
323
|
-
class: "bg-bg-surface border-border-danger-muted text-fg-danger shadow-sh-sm hover:bg-bg-danger-muted hover:shadow-sh-none"
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
color: "critical",
|
|
327
|
-
variant: "soft",
|
|
328
|
-
class: "bg-bg-danger-muted text-fg-danger hover:bg-bg-danger-muted-hover"
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
color: "critical",
|
|
332
|
-
variant: "ghost",
|
|
333
|
-
class: "text-fg-danger hover:bg-bg-danger-muted"
|
|
334
|
-
},
|
|
335
|
-
// ── Success ─────────────────────────────────────────────────────
|
|
336
|
-
{
|
|
337
|
-
color: "success",
|
|
338
|
-
variant: "filled",
|
|
339
|
-
class: "bg-bg-success text-fg-on-success hover:bg-bg-success-hover"
|
|
340
|
-
},
|
|
341
|
-
{
|
|
342
|
-
color: "success",
|
|
343
|
-
variant: "outline",
|
|
344
|
-
class: "bg-bg-surface border-border-success-muted text-fg-success shadow-sh-sm hover:bg-bg-success-muted hover:shadow-sh-none"
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
color: "success",
|
|
348
|
-
variant: "soft",
|
|
349
|
-
class: "bg-bg-success-muted text-fg-success hover:bg-bg-success-muted-hover"
|
|
350
|
-
},
|
|
351
|
-
{
|
|
352
|
-
color: "success",
|
|
353
|
-
variant: "ghost",
|
|
354
|
-
class: "text-fg-success hover:bg-bg-success-muted"
|
|
355
|
-
},
|
|
356
|
-
// ── Warning ─────────────────────────────────────────────────────
|
|
357
|
-
{
|
|
358
|
-
color: "warning",
|
|
359
|
-
variant: "filled",
|
|
360
|
-
class: "bg-bg-warning text-fg-on-warning hover:bg-bg-warning-hover"
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
color: "warning",
|
|
364
|
-
variant: "outline",
|
|
365
|
-
class: "bg-bg-surface border-border-warning-muted text-fg-warning shadow-sh-sm hover:bg-bg-warning-muted hover:shadow-sh-none"
|
|
366
|
-
},
|
|
367
|
-
{
|
|
368
|
-
color: "warning",
|
|
369
|
-
variant: "soft",
|
|
370
|
-
class: "bg-bg-warning-muted text-fg-warning hover:bg-bg-warning-muted-hover"
|
|
371
|
-
},
|
|
372
|
-
{
|
|
373
|
-
color: "warning",
|
|
374
|
-
variant: "ghost",
|
|
375
|
-
class: "text-fg-warning hover:bg-bg-warning-muted"
|
|
376
|
-
},
|
|
377
|
-
// ── Disabled — SEMPRE por último ────────────────────────────────
|
|
378
|
-
{ disabled: true, class: "pointer-events-none opacity-50" }
|
|
379
|
-
],
|
|
380
|
-
defaultVariants: {
|
|
381
|
-
color: "primary",
|
|
382
|
-
variant: "filled",
|
|
383
|
-
size: "md",
|
|
384
|
-
shape: "rounded"
|
|
385
|
-
}
|
|
386
|
-
});
|
|
387
|
-
const Button = React.forwardRef(
|
|
388
|
-
function Button2({
|
|
389
|
-
color,
|
|
390
|
-
variant,
|
|
391
|
-
size,
|
|
392
|
-
shape,
|
|
393
|
-
fullWidth,
|
|
394
|
-
loading = false,
|
|
395
|
-
disabled = false,
|
|
396
|
-
iconLeft,
|
|
397
|
-
iconRight,
|
|
398
|
-
children,
|
|
399
|
-
className,
|
|
400
|
-
type = "button",
|
|
401
|
-
...rest
|
|
402
|
-
}, ref) {
|
|
403
|
-
const isDisabled = disabled || loading;
|
|
404
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
405
|
-
"button",
|
|
406
|
-
{
|
|
407
|
-
ref,
|
|
408
|
-
type,
|
|
409
|
-
disabled: isDisabled,
|
|
410
|
-
className: buttonVariants({
|
|
411
|
-
color,
|
|
412
|
-
variant,
|
|
413
|
-
size,
|
|
414
|
-
shape,
|
|
415
|
-
fullWidth,
|
|
416
|
-
disabled: isDisabled,
|
|
417
|
-
className
|
|
418
|
-
}),
|
|
419
|
-
...rest,
|
|
420
|
-
children: [
|
|
421
|
-
loading && /* @__PURE__ */ jsxRuntime.jsx(Spinner, {}),
|
|
422
|
-
!loading && iconLeft,
|
|
423
|
-
children,
|
|
424
|
-
!loading && iconRight
|
|
425
|
-
]
|
|
426
|
-
}
|
|
427
|
-
);
|
|
428
|
-
}
|
|
429
|
-
);
|
|
430
|
-
function Spinner() {
|
|
431
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
432
|
-
"svg",
|
|
433
|
-
{
|
|
434
|
-
width: "16",
|
|
435
|
-
height: "16",
|
|
436
|
-
viewBox: "0 0 16 16",
|
|
437
|
-
fill: "none",
|
|
438
|
-
className: "animate-spin",
|
|
439
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
440
|
-
"circle",
|
|
441
|
-
{
|
|
442
|
-
cx: "8",
|
|
443
|
-
cy: "8",
|
|
444
|
-
r: "6",
|
|
445
|
-
stroke: "currentColor",
|
|
446
|
-
strokeWidth: "2",
|
|
447
|
-
strokeLinecap: "round",
|
|
448
|
-
strokeDasharray: "28",
|
|
449
|
-
strokeDashoffset: "8",
|
|
450
|
-
className: "opacity-70"
|
|
451
|
-
}
|
|
452
|
-
)
|
|
453
|
-
}
|
|
454
|
-
);
|
|
455
|
-
}
|
|
456
|
-
const headerRoot = tv({
|
|
24
|
+
const headerRoot = avatar.tv({
|
|
457
25
|
base: [
|
|
458
26
|
"flex items-center justify-between gap-gp-lg",
|
|
459
27
|
"h-[60px] flex-none px-pad-2xl",
|
|
@@ -461,16 +29,16 @@ const headerRoot = tv({
|
|
|
461
29
|
"text-fg-default font-sans"
|
|
462
30
|
]
|
|
463
31
|
});
|
|
464
|
-
const headerLeft = tv({
|
|
32
|
+
const headerLeft = avatar.tv({
|
|
465
33
|
base: "flex items-center gap-gp-md min-w-0 flex-1"
|
|
466
34
|
});
|
|
467
|
-
const headerRight = tv({
|
|
35
|
+
const headerRight = avatar.tv({
|
|
468
36
|
base: "flex items-center gap-gp-sm shrink-0"
|
|
469
37
|
});
|
|
470
|
-
const headerDivider = tv({
|
|
38
|
+
const headerDivider = avatar.tv({
|
|
471
39
|
base: "h-[24px] w-px bg-border-default shrink-0 mx-pad-xs"
|
|
472
40
|
});
|
|
473
|
-
const headerIconBtn = tv({
|
|
41
|
+
const headerIconBtn = avatar.tv({
|
|
474
42
|
base: [
|
|
475
43
|
"relative inline-flex items-center justify-center",
|
|
476
44
|
"w-form-md h-form-md rounded-radius-md",
|
|
@@ -485,7 +53,7 @@ const headerIconBtn = tv({
|
|
|
485
53
|
},
|
|
486
54
|
defaultVariants: { variant: "ghost" }
|
|
487
55
|
});
|
|
488
|
-
const headerIconBtnBadge = tv({
|
|
56
|
+
const headerIconBtnBadge = avatar.tv({
|
|
489
57
|
base: "absolute top-[4px] right-[4px] w-[8px] h-[8px] rounded-full ring-2 ring-bg-canvas",
|
|
490
58
|
variants: {
|
|
491
59
|
kind: {
|
|
@@ -495,10 +63,10 @@ const headerIconBtnBadge = tv({
|
|
|
495
63
|
},
|
|
496
64
|
defaultVariants: { kind: "brand" }
|
|
497
65
|
});
|
|
498
|
-
const breadcrumbRoot = tv({
|
|
66
|
+
const breadcrumbRoot = avatar.tv({
|
|
499
67
|
base: "flex items-center gap-gp-sm min-w-0"
|
|
500
68
|
});
|
|
501
|
-
const breadcrumbItem = tv({
|
|
69
|
+
const breadcrumbItem = avatar.tv({
|
|
502
70
|
base: "font-medium truncate transition-colors leading-none",
|
|
503
71
|
variants: {
|
|
504
72
|
current: {
|
|
@@ -513,10 +81,10 @@ const breadcrumbItem = tv({
|
|
|
513
81
|
},
|
|
514
82
|
defaultVariants: { current: false, standalone: false }
|
|
515
83
|
});
|
|
516
|
-
const breadcrumbSeparator = tv({
|
|
84
|
+
const breadcrumbSeparator = avatar.tv({
|
|
517
85
|
base: "text-fg-subtle shrink-0"
|
|
518
86
|
});
|
|
519
|
-
const searchFakeInput = tv({
|
|
87
|
+
const searchFakeInput = avatar.tv({
|
|
520
88
|
base: [
|
|
521
89
|
"inline-flex items-center gap-gp-md h-form-md w-[180px]",
|
|
522
90
|
"px-pad-xl rounded-radius-md",
|
|
@@ -527,13 +95,13 @@ const searchFakeInput = tv({
|
|
|
527
95
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
528
96
|
]
|
|
529
97
|
});
|
|
530
|
-
const searchFakeInputIcon = tv({
|
|
98
|
+
const searchFakeInputIcon = avatar.tv({
|
|
531
99
|
base: "size-[14px] text-fg-subtle shrink-0"
|
|
532
100
|
});
|
|
533
|
-
const searchFakeInputText = tv({
|
|
101
|
+
const searchFakeInputText = avatar.tv({
|
|
534
102
|
base: "flex-1 text-left truncate"
|
|
535
103
|
});
|
|
536
|
-
const searchFakeInputKbd = tv({
|
|
104
|
+
const searchFakeInputKbd = avatar.tv({
|
|
537
105
|
base: [
|
|
538
106
|
"ml-auto inline-flex items-center justify-center",
|
|
539
107
|
"h-[20px] px-pad-xs rounded-radius-xs",
|
|
@@ -541,10 +109,10 @@ const searchFakeInputKbd = tv({
|
|
|
541
109
|
"text-caption-xs font-semibold text-fg-muted tabular-nums shrink-0"
|
|
542
110
|
]
|
|
543
111
|
});
|
|
544
|
-
tv({
|
|
112
|
+
avatar.tv({
|
|
545
113
|
base: "relative inline-flex"
|
|
546
114
|
});
|
|
547
|
-
tv({
|
|
115
|
+
avatar.tv({
|
|
548
116
|
base: [
|
|
549
117
|
"absolute top-[calc(100%+8px)] right-0 z-50",
|
|
550
118
|
"w-[380px] max-w-[calc(100vw-32px)] max-h-[520px] flex flex-col",
|
|
@@ -558,26 +126,26 @@ tv({
|
|
|
558
126
|
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"
|
|
559
127
|
]
|
|
560
128
|
});
|
|
561
|
-
const hdTop = tv({
|
|
129
|
+
const hdTop = avatar.tv({
|
|
562
130
|
base: "flex flex-col gap-gp-md p-pad-xl border-b border-border-subtle bg-bg-canvas/40"
|
|
563
131
|
});
|
|
564
|
-
const hdHeader = tv({
|
|
132
|
+
const hdHeader = avatar.tv({
|
|
565
133
|
base: "flex items-center justify-between"
|
|
566
134
|
});
|
|
567
|
-
const hdTitle = tv({
|
|
135
|
+
const hdTitle = avatar.tv({
|
|
568
136
|
base: "flex items-center gap-gp-sm text-body-lg font-semibold text-fg-default"
|
|
569
137
|
});
|
|
570
|
-
const hdTitleCount = tv({
|
|
138
|
+
const hdTitleCount = avatar.tv({
|
|
571
139
|
base: [
|
|
572
140
|
"inline-flex items-center justify-center min-w-[20px] h-[20px] px-pad-xs",
|
|
573
141
|
"rounded-radius-xs bg-bg-brand text-fg-on-brand",
|
|
574
142
|
"text-caption-sm font-bold tabular-nums"
|
|
575
143
|
]
|
|
576
144
|
});
|
|
577
|
-
const hdHeaderActions = tv({
|
|
145
|
+
const hdHeaderActions = avatar.tv({
|
|
578
146
|
base: "flex items-center gap-gp-xs"
|
|
579
147
|
});
|
|
580
|
-
tv({
|
|
148
|
+
avatar.tv({
|
|
581
149
|
base: [
|
|
582
150
|
"inline-flex items-center gap-gp-sm h-form-sm w-full",
|
|
583
151
|
"px-pad-lg rounded-radius-md",
|
|
@@ -586,16 +154,16 @@ tv({
|
|
|
586
154
|
"focus-within:border-border-brand focus-within:ring-4 focus-within:ring-ring-brand"
|
|
587
155
|
]
|
|
588
156
|
});
|
|
589
|
-
tv({
|
|
157
|
+
avatar.tv({
|
|
590
158
|
base: "size-[14px] text-fg-muted shrink-0"
|
|
591
159
|
});
|
|
592
|
-
tv({
|
|
160
|
+
avatar.tv({
|
|
593
161
|
base: "flex-1 min-w-0 bg-transparent border-0 outline-none text-body-sm font-normal text-fg-default placeholder:text-fg-subtle"
|
|
594
162
|
});
|
|
595
|
-
tv({
|
|
163
|
+
avatar.tv({
|
|
596
164
|
base: "flex items-center gap-gp-2xs p-[3px] rounded-radius-lg bg-bg-muted"
|
|
597
165
|
});
|
|
598
|
-
tv({
|
|
166
|
+
avatar.tv({
|
|
599
167
|
base: [
|
|
600
168
|
"inline-flex items-center justify-center gap-gp-xs",
|
|
601
169
|
"h-[28px] px-[10px] rounded-radius-sm",
|
|
@@ -611,19 +179,19 @@ tv({
|
|
|
611
179
|
}
|
|
612
180
|
}
|
|
613
181
|
});
|
|
614
|
-
tv({
|
|
182
|
+
avatar.tv({
|
|
615
183
|
base: "text-caption-xs font-bold tabular-nums opacity-70"
|
|
616
184
|
});
|
|
617
|
-
const hdBody = tv({
|
|
185
|
+
const hdBody = avatar.tv({
|
|
618
186
|
base: "flex-1 overflow-y-auto p-pad-sm flex flex-col gap-px"
|
|
619
187
|
});
|
|
620
|
-
const hdEmpty = tv({
|
|
188
|
+
const hdEmpty = avatar.tv({
|
|
621
189
|
base: "flex flex-col items-center justify-center gap-gp-md py-pad-7xl text-fg-subtle"
|
|
622
190
|
});
|
|
623
|
-
const hdEmptyText = tv({
|
|
191
|
+
const hdEmptyText = avatar.tv({
|
|
624
192
|
base: "text-body-md"
|
|
625
193
|
});
|
|
626
|
-
const hdNotif = tv({
|
|
194
|
+
const hdNotif = avatar.tv({
|
|
627
195
|
base: [
|
|
628
196
|
"relative flex items-start gap-gp-lg p-pad-lg rounded-radius-md text-left w-full",
|
|
629
197
|
"bg-transparent border-0 cursor-pointer",
|
|
@@ -632,25 +200,25 @@ const hdNotif = tv({
|
|
|
632
200
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-secondary"
|
|
633
201
|
]
|
|
634
202
|
});
|
|
635
|
-
const hdNotifIcon = tv({
|
|
203
|
+
const hdNotifIcon = avatar.tv({
|
|
636
204
|
base: "flex-none w-[28px] h-[28px] rounded-radius-md grid place-items-center"
|
|
637
205
|
});
|
|
638
|
-
const hdNotifBody = tv({
|
|
206
|
+
const hdNotifBody = avatar.tv({
|
|
639
207
|
base: "flex-1 min-w-0 flex flex-col gap-gp-2xs"
|
|
640
208
|
});
|
|
641
|
-
const hdNotifTitle = tv({
|
|
209
|
+
const hdNotifTitle = avatar.tv({
|
|
642
210
|
base: "text-body-sm font-semibold text-fg-default leading-tight"
|
|
643
211
|
});
|
|
644
|
-
const hdNotifText = tv({
|
|
212
|
+
const hdNotifText = avatar.tv({
|
|
645
213
|
base: "text-body-xs font-normal text-fg-muted leading-snug line-clamp-2"
|
|
646
214
|
});
|
|
647
|
-
const hdNotifTime = tv({
|
|
215
|
+
const hdNotifTime = avatar.tv({
|
|
648
216
|
base: "text-caption-sm text-fg-subtle"
|
|
649
217
|
});
|
|
650
|
-
const hdNotifDot = tv({
|
|
218
|
+
const hdNotifDot = avatar.tv({
|
|
651
219
|
base: "shrink-0 mt-pad-xs w-[8px] h-[8px] rounded-full bg-bg-brand"
|
|
652
220
|
});
|
|
653
|
-
const hdMsg = tv({
|
|
221
|
+
const hdMsg = avatar.tv({
|
|
654
222
|
base: [
|
|
655
223
|
"relative flex items-center gap-gp-lg p-pad-lg rounded-radius-md text-left w-full",
|
|
656
224
|
"bg-transparent border-0 cursor-pointer",
|
|
@@ -659,37 +227,37 @@ const hdMsg = tv({
|
|
|
659
227
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-secondary"
|
|
660
228
|
]
|
|
661
229
|
});
|
|
662
|
-
const hdMsgAvatar = tv({
|
|
230
|
+
const hdMsgAvatar = avatar.tv({
|
|
663
231
|
base: [
|
|
664
232
|
"flex-none grid place-items-center w-icon-lg h-icon-lg rounded-full",
|
|
665
233
|
"text-white text-caption-sm font-bold uppercase tracking-[0.02em] leading-none"
|
|
666
234
|
]
|
|
667
235
|
});
|
|
668
|
-
const hdMsgBody = tv({
|
|
236
|
+
const hdMsgBody = avatar.tv({
|
|
669
237
|
base: "flex-1 min-w-0 flex flex-col gap-gp-2xs"
|
|
670
238
|
});
|
|
671
|
-
const hdMsgRow = tv({
|
|
239
|
+
const hdMsgRow = avatar.tv({
|
|
672
240
|
base: "flex items-center justify-between gap-gp-sm"
|
|
673
241
|
});
|
|
674
|
-
const hdMsgName = tv({
|
|
242
|
+
const hdMsgName = avatar.tv({
|
|
675
243
|
base: "text-body-sm font-semibold text-fg-default truncate"
|
|
676
244
|
});
|
|
677
|
-
const hdMsgTime = tv({
|
|
245
|
+
const hdMsgTime = avatar.tv({
|
|
678
246
|
base: "text-caption-sm text-fg-subtle shrink-0"
|
|
679
247
|
});
|
|
680
|
-
const hdMsgPreviewRow = tv({
|
|
248
|
+
const hdMsgPreviewRow = avatar.tv({
|
|
681
249
|
base: "flex items-center gap-gp-sm"
|
|
682
250
|
});
|
|
683
|
-
const hdMsgPreview = tv({
|
|
251
|
+
const hdMsgPreview = avatar.tv({
|
|
684
252
|
base: "flex-1 min-w-0 text-body-xs font-normal text-fg-muted truncate"
|
|
685
253
|
});
|
|
686
|
-
const hdMsgDot = tv({
|
|
254
|
+
const hdMsgDot = avatar.tv({
|
|
687
255
|
base: "shrink-0 w-[8px] h-[8px] rounded-full bg-bg-brand"
|
|
688
256
|
});
|
|
689
|
-
const hdFooter = tv({
|
|
257
|
+
const hdFooter = avatar.tv({
|
|
690
258
|
base: "flex-none p-pad-md border-t border-border-subtle text-center"
|
|
691
259
|
});
|
|
692
|
-
const hdFooterLink = tv({
|
|
260
|
+
const hdFooterLink = avatar.tv({
|
|
693
261
|
base: [
|
|
694
262
|
"inline-flex items-center justify-center gap-gp-sm",
|
|
695
263
|
"h-form-sm px-pad-lg rounded-radius-md w-full",
|
|
@@ -711,7 +279,7 @@ function HeaderBreadcrumb({
|
|
|
711
279
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
712
280
|
"nav",
|
|
713
281
|
{
|
|
714
|
-
className: cn(
|
|
282
|
+
className: avatar.cn(
|
|
715
283
|
breadcrumbRoot(),
|
|
716
284
|
mobileShowLastOnly && "hidden md:flex",
|
|
717
285
|
className
|
|
@@ -762,7 +330,7 @@ function HeaderBreadcrumb({
|
|
|
762
330
|
mobileShowLastOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
763
331
|
"nav",
|
|
764
332
|
{
|
|
765
|
-
className: cn(breadcrumbRoot(), "md:hidden", className),
|
|
333
|
+
className: avatar.cn(breadcrumbRoot(), "md:hidden", className),
|
|
766
334
|
"aria-label": "Seção atual",
|
|
767
335
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
768
336
|
"span",
|
|
@@ -776,212 +344,6 @@ function HeaderBreadcrumb({
|
|
|
776
344
|
)
|
|
777
345
|
] });
|
|
778
346
|
}
|
|
779
|
-
const Dialog = SheetPrimitive__namespace.Root;
|
|
780
|
-
const DialogTrigger = SheetPrimitive__namespace.Trigger;
|
|
781
|
-
const DialogPortal = SheetPrimitive__namespace.Portal;
|
|
782
|
-
const DialogClose = SheetPrimitive__namespace.Close;
|
|
783
|
-
const DialogOverlay = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
784
|
-
SheetPrimitive__namespace.Overlay,
|
|
785
|
-
{
|
|
786
|
-
ref,
|
|
787
|
-
className: cn(
|
|
788
|
-
"fixed inset-0 z-50 bg-black/30 supports-[backdrop-filter]:backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
789
|
-
className
|
|
790
|
-
),
|
|
791
|
-
...props
|
|
792
|
-
}
|
|
793
|
-
));
|
|
794
|
-
DialogOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
|
|
795
|
-
const DialogContent = React__namespace.forwardRef(({ className, children, hideClose, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
|
|
796
|
-
/* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
|
|
797
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
798
|
-
SheetPrimitive__namespace.Content,
|
|
799
|
-
{
|
|
800
|
-
ref,
|
|
801
|
-
className: cn(
|
|
802
|
-
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-gp-4xl rounded-radius-base bg-bg-surface p-pad-4xl text-body-md text-fg-default shadow-sh-xl outline-float duration-200 sm:max-w-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
803
|
-
className
|
|
804
|
-
),
|
|
805
|
-
...props,
|
|
806
|
-
children: [
|
|
807
|
-
children,
|
|
808
|
-
!hideClose && /* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-radius-sm opacity-70 transition-opacity hover:opacity-100 outline-none ring-0 ring-ring-brand focus-visible:ring-4 disabled:pointer-events-none data-[state=open]:bg-bg-muted data-[state=open]:text-fg-muted", children: [
|
|
809
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
|
|
810
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
811
|
-
] })
|
|
812
|
-
]
|
|
813
|
-
}
|
|
814
|
-
)
|
|
815
|
-
] }));
|
|
816
|
-
DialogContent.displayName = SheetPrimitive__namespace.Content.displayName;
|
|
817
|
-
const DialogTitle = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
818
|
-
SheetPrimitive__namespace.Title,
|
|
819
|
-
{
|
|
820
|
-
ref,
|
|
821
|
-
className: cn(
|
|
822
|
-
"text-title-md font-medium text-fg-default leading-none",
|
|
823
|
-
className
|
|
824
|
-
),
|
|
825
|
-
...props
|
|
826
|
-
}
|
|
827
|
-
));
|
|
828
|
-
DialogTitle.displayName = SheetPrimitive__namespace.Title.displayName;
|
|
829
|
-
const DialogDescription = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
830
|
-
SheetPrimitive__namespace.Description,
|
|
831
|
-
{
|
|
832
|
-
ref,
|
|
833
|
-
className: cn("text-body-md text-fg-muted", className),
|
|
834
|
-
...props
|
|
835
|
-
}
|
|
836
|
-
));
|
|
837
|
-
DialogDescription.displayName = SheetPrimitive__namespace.Description.displayName;
|
|
838
|
-
const Command = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
839
|
-
cmdk.Command,
|
|
840
|
-
{
|
|
841
|
-
ref,
|
|
842
|
-
className: cn(
|
|
843
|
-
// `bg-popover`/`text-popover-foreground` são vocabulário SHADCN, não do DS —
|
|
844
|
-
// dependem da bridge do `index.css`, que só existe no scaffold. Em npm e
|
|
845
|
-
// submódulo a bridge não viaja, e a superfície caía no default do shadcn em vez
|
|
846
|
-
// dos tokens iGreen (L-039/L-040). Era a ÚNICA ocorrência de vocabulário shadcn
|
|
847
|
-
// em todo o bundle publicado — medida em 2026-08-08.
|
|
848
|
-
"flex h-full w-full flex-col overflow-hidden p-pad-xl bg-bg-dropdown text-fg-default",
|
|
849
|
-
className
|
|
850
|
-
),
|
|
851
|
-
...props
|
|
852
|
-
}
|
|
853
|
-
));
|
|
854
|
-
Command.displayName = cmdk.Command.displayName;
|
|
855
|
-
const CommandDialog = ({ children, ...props }) => {
|
|
856
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
857
|
-
DialogContent,
|
|
858
|
-
{
|
|
859
|
-
hideClose: true,
|
|
860
|
-
"aria-describedby": void 0,
|
|
861
|
-
className: cn(
|
|
862
|
-
"overflow-hidden p-0 gap-0 sm:max-w-[384px]",
|
|
863
|
-
"rounded-[12px] border border-border-default",
|
|
864
|
-
// Outline padrão de elementos flutuantes
|
|
865
|
-
"outline-float"
|
|
866
|
-
),
|
|
867
|
-
children: [
|
|
868
|
-
/* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "sr-only", children: "Comando" }),
|
|
869
|
-
/* @__PURE__ */ jsxRuntime.jsx(Command, { children })
|
|
870
|
-
]
|
|
871
|
-
}
|
|
872
|
-
) });
|
|
873
|
-
};
|
|
874
|
-
const CommandInput = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
875
|
-
"div",
|
|
876
|
-
{
|
|
877
|
-
"cmdk-input-wrapper": "",
|
|
878
|
-
className: cn(
|
|
879
|
-
"flex items-center gap-gp-md h-form-md px-pad-xl rounded-radius-lg",
|
|
880
|
-
"bg-bg-input border border-border-subtle shadow-sh-sm",
|
|
881
|
-
"transition-[border-color,box-shadow,background-color] duration-150",
|
|
882
|
-
"focus-within:border-border-brand focus-within:shadow-sh-ring",
|
|
883
|
-
"dark:bg-bg-muted dark:border-border-input dark:shadow-sh-none"
|
|
884
|
-
),
|
|
885
|
-
children: [
|
|
886
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "size-[14px] text-fg-muted shrink-0", strokeWidth: 1.8 }),
|
|
887
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
888
|
-
cmdk.Command.Input,
|
|
889
|
-
{
|
|
890
|
-
ref,
|
|
891
|
-
className: cn(
|
|
892
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none",
|
|
893
|
-
"text-body-sm font-normal text-fg-default placeholder:text-fg-muted",
|
|
894
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
895
|
-
className
|
|
896
|
-
),
|
|
897
|
-
...props
|
|
898
|
-
}
|
|
899
|
-
)
|
|
900
|
-
]
|
|
901
|
-
}
|
|
902
|
-
));
|
|
903
|
-
CommandInput.displayName = cmdk.Command.Input.displayName;
|
|
904
|
-
const CommandList = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
905
|
-
cmdk.Command.List,
|
|
906
|
-
{
|
|
907
|
-
ref,
|
|
908
|
-
className: cn(
|
|
909
|
-
"max-h-[300px] overflow-y-auto overflow-x-hidden mt-pad-md scrollbar-thin",
|
|
910
|
-
className
|
|
911
|
-
),
|
|
912
|
-
...props
|
|
913
|
-
}
|
|
914
|
-
));
|
|
915
|
-
CommandList.displayName = cmdk.Command.List.displayName;
|
|
916
|
-
const CommandEmpty = React__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
917
|
-
cmdk.Command.Empty,
|
|
918
|
-
{
|
|
919
|
-
ref,
|
|
920
|
-
className: "py-pad-5xl text-center text-body-md text-fg-muted",
|
|
921
|
-
...props
|
|
922
|
-
}
|
|
923
|
-
));
|
|
924
|
-
CommandEmpty.displayName = cmdk.Command.Empty.displayName;
|
|
925
|
-
const CommandGroup = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
926
|
-
cmdk.Command.Group,
|
|
927
|
-
{
|
|
928
|
-
ref,
|
|
929
|
-
className: cn(
|
|
930
|
-
"overflow-hidden text-fg-default",
|
|
931
|
-
"[&_[cmdk-group-heading]]:flex [&_[cmdk-group-heading]]:items-center",
|
|
932
|
-
"[&_[cmdk-group-heading]]:h-[28px] [&_[cmdk-group-heading]]:px-pad-xl",
|
|
933
|
-
"[&_[cmdk-group-heading]]:text-caption-xs [&_[cmdk-group-heading]]:font-bold",
|
|
934
|
-
"[&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider",
|
|
935
|
-
"[&_[cmdk-group-heading]]:text-fg-subtle",
|
|
936
|
-
className
|
|
937
|
-
),
|
|
938
|
-
...props
|
|
939
|
-
}
|
|
940
|
-
));
|
|
941
|
-
CommandGroup.displayName = cmdk.Command.Group.displayName;
|
|
942
|
-
const CommandSeparator = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
943
|
-
cmdk.Command.Separator,
|
|
944
|
-
{
|
|
945
|
-
ref,
|
|
946
|
-
className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
|
|
947
|
-
...props
|
|
948
|
-
}
|
|
949
|
-
));
|
|
950
|
-
CommandSeparator.displayName = cmdk.Command.Separator.displayName;
|
|
951
|
-
const CommandItem = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
952
|
-
cmdk.Command.Item,
|
|
953
|
-
{
|
|
954
|
-
ref,
|
|
955
|
-
className: cn(
|
|
956
|
-
"relative flex cursor-default select-none items-center gap-gp-md",
|
|
957
|
-
"rounded-radius-lg px-pad-xl py-pad-md",
|
|
958
|
-
"text-body-sm font-medium text-fg-muted",
|
|
959
|
-
"outline-none transition-colors",
|
|
960
|
-
"data-[selected='true']:bg-bg-muted data-[selected='true']:text-fg-default data-[selected='true']:[&_svg]:text-fg-default",
|
|
961
|
-
"data-[disabled='true']:pointer-events-none data-[disabled='true']:opacity-50",
|
|
962
|
-
"[&_svg]:pointer-events-none [&_svg]:size-[18px] [&_svg]:shrink-0 [&_svg]:text-fg-muted",
|
|
963
|
-
className
|
|
964
|
-
),
|
|
965
|
-
...props
|
|
966
|
-
}
|
|
967
|
-
));
|
|
968
|
-
CommandItem.displayName = cmdk.Command.Item.displayName;
|
|
969
|
-
const CommandShortcut = ({
|
|
970
|
-
className,
|
|
971
|
-
...props
|
|
972
|
-
}) => {
|
|
973
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
974
|
-
"span",
|
|
975
|
-
{
|
|
976
|
-
className: cn(
|
|
977
|
-
"ml-auto text-caption-sm tracking-wider text-fg-subtle",
|
|
978
|
-
className
|
|
979
|
-
),
|
|
980
|
-
...props
|
|
981
|
-
}
|
|
982
|
-
);
|
|
983
|
-
};
|
|
984
|
-
CommandShortcut.displayName = "CommandShortcut";
|
|
985
347
|
function HeaderSearch({
|
|
986
348
|
placeholder = "Buscar...",
|
|
987
349
|
shortcut = "⌘K",
|
|
@@ -1010,7 +372,7 @@ function HeaderSearch({
|
|
|
1010
372
|
"button",
|
|
1011
373
|
{
|
|
1012
374
|
type: "button",
|
|
1013
|
-
className: cn(searchFakeInput(), "hidden md:inline-flex", className),
|
|
375
|
+
className: avatar.cn(searchFakeInput(), "hidden md:inline-flex", className),
|
|
1014
376
|
onClick: () => setOpen(true),
|
|
1015
377
|
"aria-label": "Abrir busca",
|
|
1016
378
|
children: [
|
|
@@ -1021,7 +383,7 @@ function HeaderSearch({
|
|
|
1021
383
|
}
|
|
1022
384
|
),
|
|
1023
385
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1024
|
-
Button,
|
|
386
|
+
avatar.Button,
|
|
1025
387
|
{
|
|
1026
388
|
color: "secondary",
|
|
1027
389
|
variant: "outline",
|
|
@@ -1033,10 +395,10 @@ function HeaderSearch({
|
|
|
1033
395
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, {})
|
|
1034
396
|
}
|
|
1035
397
|
),
|
|
1036
|
-
/* @__PURE__ */ jsxRuntime.jsxs(CommandDialog, { open, onOpenChange: setOpen, children: [
|
|
1037
|
-
/* @__PURE__ */ jsxRuntime.jsx(CommandInput, { placeholder: commandPlaceholder }),
|
|
1038
|
-
/* @__PURE__ */ jsxRuntime.jsxs(CommandList, { children: [
|
|
1039
|
-
/* @__PURE__ */ jsxRuntime.jsx(CommandEmpty, { children: commandEmptyMessage }),
|
|
398
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.CommandDialog, { open, onOpenChange: setOpen, children: [
|
|
399
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.CommandInput, { placeholder: commandPlaceholder }),
|
|
400
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.CommandList, { children: [
|
|
401
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.CommandEmpty, { children: commandEmptyMessage }),
|
|
1040
402
|
commandGroups.map((group, gIdx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1041
403
|
CommandGroupBlock,
|
|
1042
404
|
{
|
|
@@ -1056,10 +418,10 @@ function CommandGroupBlock({
|
|
|
1056
418
|
onSelect
|
|
1057
419
|
}) {
|
|
1058
420
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1059
|
-
/* @__PURE__ */ jsxRuntime.jsx(CommandGroup, { heading: group.heading, children: group.items.map((item) => {
|
|
421
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.CommandGroup, { heading: group.heading, children: group.items.map((item) => {
|
|
1060
422
|
const Icon = item.icon;
|
|
1061
423
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1062
|
-
CommandItem,
|
|
424
|
+
avatar.CommandItem,
|
|
1063
425
|
{
|
|
1064
426
|
value: item.id ?? item.label,
|
|
1065
427
|
keywords: item.keywords,
|
|
@@ -1071,16 +433,16 @@ function CommandGroupBlock({
|
|
|
1071
433
|
children: [
|
|
1072
434
|
Icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
1073
435
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label }),
|
|
1074
|
-
item.shortcut && /* @__PURE__ */ jsxRuntime.jsx(CommandShortcut, { children: item.shortcut })
|
|
436
|
+
item.shortcut && /* @__PURE__ */ jsxRuntime.jsx(avatar.CommandShortcut, { children: item.shortcut })
|
|
1075
437
|
]
|
|
1076
438
|
},
|
|
1077
439
|
item.id ?? item.label
|
|
1078
440
|
);
|
|
1079
441
|
}) }),
|
|
1080
|
-
!isLast && /* @__PURE__ */ jsxRuntime.jsx(CommandSeparator, {})
|
|
442
|
+
!isLast && /* @__PURE__ */ jsxRuntime.jsx(avatar.CommandSeparator, {})
|
|
1081
443
|
] });
|
|
1082
444
|
}
|
|
1083
|
-
const chipVariants = tv({
|
|
445
|
+
const chipVariants = avatar.tv({
|
|
1084
446
|
base: [
|
|
1085
447
|
"inline-flex items-center justify-center gap-gp-xs shrink-0",
|
|
1086
448
|
"font-semibold whitespace-nowrap select-none",
|
|
@@ -1205,7 +567,7 @@ const chipVariants = tv({
|
|
|
1205
567
|
selected: false
|
|
1206
568
|
}
|
|
1207
569
|
});
|
|
1208
|
-
const chipCount = tv({
|
|
570
|
+
const chipCount = avatar.tv({
|
|
1209
571
|
base: [
|
|
1210
572
|
"inline-flex items-center justify-center min-w-[16px] h-[16px] px-[4px]",
|
|
1211
573
|
"rounded-radius-full text-caption-xs font-semibold leading-none",
|
|
@@ -1226,7 +588,7 @@ const Chip = React.forwardRef(function Chip2({
|
|
|
1226
588
|
...rest
|
|
1227
589
|
}, ref) {
|
|
1228
590
|
const interactive = Boolean(onClick) || asButton === true;
|
|
1229
|
-
const classes = cn(
|
|
591
|
+
const classes = avatar.cn(
|
|
1230
592
|
chipVariants({ color, variant, size, shape, interactive, selected }),
|
|
1231
593
|
className
|
|
1232
594
|
);
|
|
@@ -1325,7 +687,7 @@ const ChipGroup = React.forwardRef(
|
|
|
1325
687
|
onValueChange: props.onValueChange,
|
|
1326
688
|
orientation,
|
|
1327
689
|
"aria-label": ariaLabel,
|
|
1328
|
-
className: cn(
|
|
690
|
+
className: avatar.cn(
|
|
1329
691
|
"inline-flex items-center gap-gp-sm",
|
|
1330
692
|
orientation === "vertical" && "flex-col",
|
|
1331
693
|
className
|
|
@@ -1344,7 +706,7 @@ const ChipGroup = React.forwardRef(
|
|
|
1344
706
|
onValueChange: props.onValueChange,
|
|
1345
707
|
orientation,
|
|
1346
708
|
"aria-label": ariaLabel,
|
|
1347
|
-
className: cn(
|
|
709
|
+
className: avatar.cn(
|
|
1348
710
|
"inline-flex items-center gap-gp-sm",
|
|
1349
711
|
orientation === "vertical" && "flex-col",
|
|
1350
712
|
className
|
|
@@ -1376,7 +738,7 @@ const ChipGroupItem = React.forwardRef(
|
|
|
1376
738
|
ToggleGroupPrimitive__namespace.Item,
|
|
1377
739
|
{
|
|
1378
740
|
ref,
|
|
1379
|
-
className: cn(
|
|
741
|
+
className: avatar.cn(
|
|
1380
742
|
// Estado OFF — visual inativo (passa pelo chipVariants normal)
|
|
1381
743
|
chipVariants({
|
|
1382
744
|
color: inactiveColor,
|
|
@@ -1395,71 +757,6 @@ const ChipGroupItem = React.forwardRef(
|
|
|
1395
757
|
);
|
|
1396
758
|
}
|
|
1397
759
|
);
|
|
1398
|
-
const Popover = PopoverPrimitive__namespace.Root;
|
|
1399
|
-
const PopoverTrigger = PopoverPrimitive__namespace.Trigger;
|
|
1400
|
-
const PopoverAnchor = PopoverPrimitive__namespace.Anchor;
|
|
1401
|
-
const POPOVER_MOBILE_SHEET = [
|
|
1402
|
-
"max-md:w-full max-md:min-w-0 max-md:max-w-none",
|
|
1403
|
-
"max-md:!max-h-[92vh]",
|
|
1404
|
-
"max-md:rounded-b-none max-md:rounded-t-[12px]",
|
|
1405
|
-
"max-md:border-x-0 max-md:border-b-0",
|
|
1406
|
-
"max-md:outline-none max-md:shadow-none",
|
|
1407
|
-
// Respiro de 20px (pad-3xl) no rodapé pra o conteúdo (footer/última seção)
|
|
1408
|
-
// não colar na borda inferior do device quando vira sheet.
|
|
1409
|
-
"max-md:pb-pad-3xl",
|
|
1410
|
-
"max-md:data-[state=open]:zoom-in-100 max-md:data-[state=closed]:zoom-out-100",
|
|
1411
|
-
"max-md:data-[state=open]:slide-in-from-bottom-12 max-md:data-[state=closed]:slide-out-to-bottom-12"
|
|
1412
|
-
].join(" ");
|
|
1413
|
-
const PopoverSheetBackdrop = () => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1414
|
-
"div",
|
|
1415
|
-
{
|
|
1416
|
-
"aria-hidden": "true",
|
|
1417
|
-
className: "fixed inset-0 z-[55] bg-overlay-scrim pointer-events-auto md:hidden animate-in fade-in-0 duration-150"
|
|
1418
|
-
}
|
|
1419
|
-
);
|
|
1420
|
-
const PopoverContent = React__namespace.forwardRef(
|
|
1421
|
-
({ className, align = "center", sideOffset = 6, disablePortal, mobileSheet = true, ...props }, ref) => {
|
|
1422
|
-
const content = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1423
|
-
PopoverPrimitive__namespace.Content,
|
|
1424
|
-
{
|
|
1425
|
-
ref,
|
|
1426
|
-
align,
|
|
1427
|
-
sideOffset,
|
|
1428
|
-
"data-mobile-sheet": mobileSheet ? "" : void 0,
|
|
1429
|
-
className: cn(
|
|
1430
|
-
"relative z-50",
|
|
1431
|
-
// Unificado com DropdownMenu/Select: bg-bg-dropdown (frosted no dark)
|
|
1432
|
-
// + border-border-default + outline-float. O `before` pseudo-element
|
|
1433
|
-
// aplica o blur backdrop (necessário pra bg-bg-dropdown semi-transparente
|
|
1434
|
-
// render correto no dark mode).
|
|
1435
|
-
"bg-bg-dropdown",
|
|
1436
|
-
"border border-border-default rounded-[12px] shadow-sh-lg outline-float",
|
|
1437
|
-
"before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150",
|
|
1438
|
-
"text-fg-default",
|
|
1439
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1440
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1441
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1442
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
1443
|
-
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1444
|
-
mobileSheet && POPOVER_MOBILE_SHEET,
|
|
1445
|
-
className
|
|
1446
|
-
),
|
|
1447
|
-
...props
|
|
1448
|
-
}
|
|
1449
|
-
);
|
|
1450
|
-
if (disablePortal) {
|
|
1451
|
-
return mobileSheet ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1452
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverSheetBackdrop, {}),
|
|
1453
|
-
content
|
|
1454
|
-
] }) : content;
|
|
1455
|
-
}
|
|
1456
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1457
|
-
mobileSheet && /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(PopoverSheetBackdrop, {}) }),
|
|
1458
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: content })
|
|
1459
|
-
] });
|
|
1460
|
-
}
|
|
1461
|
-
);
|
|
1462
|
-
PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
|
|
1463
760
|
const DEFAULT_FILTERS$1 = [
|
|
1464
761
|
{ id: "all", label: "Todas", predicate: () => true },
|
|
1465
762
|
{ id: "unread", label: "Não lidas", predicate: (n) => !!n.unread },
|
|
@@ -1481,9 +778,9 @@ function HeaderNotifications({ config, className }) {
|
|
|
1481
778
|
const filtered = items.filter(
|
|
1482
779
|
filters.find((f) => f.id === activeFilter)?.predicate ?? (() => true)
|
|
1483
780
|
);
|
|
1484
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
1485
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1486
|
-
Button,
|
|
781
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.Popover, { open, onOpenChange: setOpen, children: [
|
|
782
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
783
|
+
avatar.Button,
|
|
1487
784
|
{
|
|
1488
785
|
color: "secondary",
|
|
1489
786
|
variant: "outline",
|
|
@@ -1498,10 +795,10 @@ function HeaderNotifications({ config, className }) {
|
|
|
1498
795
|
}
|
|
1499
796
|
) }),
|
|
1500
797
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1501
|
-
PopoverContent,
|
|
798
|
+
avatar.PopoverContent,
|
|
1502
799
|
{
|
|
1503
800
|
align: "end",
|
|
1504
|
-
className: cn(
|
|
801
|
+
className: avatar.cn(
|
|
1505
802
|
"w-[380px] max-w-[calc(100vw-32px)] max-h-[520px] p-0 flex flex-col overflow-hidden",
|
|
1506
803
|
className
|
|
1507
804
|
),
|
|
@@ -1515,7 +812,7 @@ function HeaderNotifications({ config, className }) {
|
|
|
1515
812
|
] }),
|
|
1516
813
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: hdHeaderActions(), children: [
|
|
1517
814
|
onMarkAllRead && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1518
|
-
Button,
|
|
815
|
+
avatar.Button,
|
|
1519
816
|
{
|
|
1520
817
|
color: "secondary",
|
|
1521
818
|
variant: "ghost",
|
|
@@ -1527,7 +824,7 @@ function HeaderNotifications({ config, className }) {
|
|
|
1527
824
|
}
|
|
1528
825
|
),
|
|
1529
826
|
onMoreActions && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1530
|
-
Button,
|
|
827
|
+
avatar.Button,
|
|
1531
828
|
{
|
|
1532
829
|
color: "secondary",
|
|
1533
830
|
variant: "ghost",
|
|
@@ -1608,169 +905,6 @@ function NotificationRow({ item }) {
|
|
|
1608
905
|
}
|
|
1609
906
|
);
|
|
1610
907
|
}
|
|
1611
|
-
const inputGroupVariants = classVarianceAuthority.cva(
|
|
1612
|
-
[
|
|
1613
|
-
"group/input-group relative flex w-full items-center",
|
|
1614
|
-
"bg-bg-input dark:bg-bg-muted",
|
|
1615
|
-
"hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover",
|
|
1616
|
-
"border border-border-input rounded-radius-lg",
|
|
1617
|
-
"transition-[border-color,box-shadow,background-color] outline-none",
|
|
1618
|
-
"has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50 has-[input:disabled]:hover:bg-bg-input dark:has-[input:disabled]:hover:bg-bg-muted"
|
|
1619
|
-
],
|
|
1620
|
-
{
|
|
1621
|
-
variants: {
|
|
1622
|
-
size: {
|
|
1623
|
-
xxs: "min-h-form-xs px-pad-md gap-gp-xs rounded-radius-md text-body-sm font-normal",
|
|
1624
|
-
xs: "min-h-form-sm px-pad-xl gap-gp-md rounded-radius-md text-body-sm font-normal",
|
|
1625
|
-
sm: "min-h-form-md px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal",
|
|
1626
|
-
md: "min-h-form-lg px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal"
|
|
1627
|
-
},
|
|
1628
|
-
state: {
|
|
1629
|
-
default: "focus-within:border-border-brand focus-within:shadow-sh-ring",
|
|
1630
|
-
error: "border-border-danger-muted focus-within:border-border-danger-muted focus-within:shadow-sh-ring-danger",
|
|
1631
|
-
warning: "border-border-warning-muted focus-within:border-border-warning-muted focus-within:shadow-sh-ring-warning",
|
|
1632
|
-
success: "border-border-success-muted focus-within:border-border-success-muted focus-within:shadow-sh-ring-success"
|
|
1633
|
-
}
|
|
1634
|
-
},
|
|
1635
|
-
defaultVariants: { size: "md", state: "default" }
|
|
1636
|
-
}
|
|
1637
|
-
);
|
|
1638
|
-
const InputGroup = React__namespace.forwardRef(
|
|
1639
|
-
({ className, size, state, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1640
|
-
"div",
|
|
1641
|
-
{
|
|
1642
|
-
ref,
|
|
1643
|
-
role: "group",
|
|
1644
|
-
"data-slot": "input-group",
|
|
1645
|
-
className: cn(inputGroupVariants({ size, state }), className),
|
|
1646
|
-
...props
|
|
1647
|
-
}
|
|
1648
|
-
)
|
|
1649
|
-
);
|
|
1650
|
-
InputGroup.displayName = "InputGroup";
|
|
1651
|
-
const inputGroupInputVariants = classVarianceAuthority.cva([
|
|
1652
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none",
|
|
1653
|
-
"text-body-sm font-normal text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
|
|
1654
|
-
"disabled:cursor-not-allowed",
|
|
1655
|
-
"file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-fg-default"
|
|
1656
|
-
]);
|
|
1657
|
-
const InputGroupInput = React__namespace.forwardRef(({ className, type, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1658
|
-
"input",
|
|
1659
|
-
{
|
|
1660
|
-
ref,
|
|
1661
|
-
type,
|
|
1662
|
-
"data-slot": "input-group-input",
|
|
1663
|
-
className: cn(inputGroupInputVariants(), className),
|
|
1664
|
-
...props
|
|
1665
|
-
}
|
|
1666
|
-
));
|
|
1667
|
-
InputGroupInput.displayName = "InputGroupInput";
|
|
1668
|
-
const inputGroupTextareaVariants = classVarianceAuthority.cva([
|
|
1669
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none resize-y",
|
|
1670
|
-
"py-pad-md",
|
|
1671
|
-
"text-body-sm font-normal leading-[1.5] text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
|
|
1672
|
-
"disabled:cursor-not-allowed"
|
|
1673
|
-
]);
|
|
1674
|
-
const InputGroupTextarea = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1675
|
-
"textarea",
|
|
1676
|
-
{
|
|
1677
|
-
ref,
|
|
1678
|
-
"data-slot": "input-group-textarea",
|
|
1679
|
-
className: cn(inputGroupTextareaVariants(), className),
|
|
1680
|
-
...props
|
|
1681
|
-
}
|
|
1682
|
-
));
|
|
1683
|
-
InputGroupTextarea.displayName = "InputGroupTextarea";
|
|
1684
|
-
const inputGroupAddonVariants = classVarianceAuthority.cva(
|
|
1685
|
-
"flex items-center text-fg-muted shrink-0 select-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1686
|
-
{
|
|
1687
|
-
variants: {
|
|
1688
|
-
align: {
|
|
1689
|
-
// Inline = horizontal (start/end do eixo do texto)
|
|
1690
|
-
"inline-start": "",
|
|
1691
|
-
"inline-end": "",
|
|
1692
|
-
// Block = vertical (top/bottom — multi-linha em textarea)
|
|
1693
|
-
"block-start": "",
|
|
1694
|
-
"block-end": ""
|
|
1695
|
-
}
|
|
1696
|
-
},
|
|
1697
|
-
defaultVariants: { align: "inline-start" }
|
|
1698
|
-
}
|
|
1699
|
-
);
|
|
1700
|
-
const InputGroupAddon = React__namespace.forwardRef(({ className, align = "inline-start", onClick, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1701
|
-
"div",
|
|
1702
|
-
{
|
|
1703
|
-
ref,
|
|
1704
|
-
role: "group",
|
|
1705
|
-
"data-slot": "input-group-addon",
|
|
1706
|
-
"data-align": align,
|
|
1707
|
-
className: cn(inputGroupAddonVariants({ align }), className),
|
|
1708
|
-
onClick: (e) => {
|
|
1709
|
-
if (e.target.closest("button")) {
|
|
1710
|
-
onClick?.(e);
|
|
1711
|
-
return;
|
|
1712
|
-
}
|
|
1713
|
-
e.currentTarget.parentElement?.querySelector(
|
|
1714
|
-
"input, textarea"
|
|
1715
|
-
)?.focus();
|
|
1716
|
-
onClick?.(e);
|
|
1717
|
-
},
|
|
1718
|
-
...props
|
|
1719
|
-
}
|
|
1720
|
-
));
|
|
1721
|
-
InputGroupAddon.displayName = "InputGroupAddon";
|
|
1722
|
-
const InputGroupText = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1723
|
-
"span",
|
|
1724
|
-
{
|
|
1725
|
-
ref,
|
|
1726
|
-
"data-slot": "input-group-text",
|
|
1727
|
-
className: cn(
|
|
1728
|
-
"text-body-xs text-fg-muted whitespace-nowrap",
|
|
1729
|
-
className
|
|
1730
|
-
),
|
|
1731
|
-
...props
|
|
1732
|
-
}
|
|
1733
|
-
));
|
|
1734
|
-
InputGroupText.displayName = "InputGroupText";
|
|
1735
|
-
const inputGroupButtonVariants = classVarianceAuthority.cva(
|
|
1736
|
-
[
|
|
1737
|
-
"inline-flex items-center justify-center shrink-0",
|
|
1738
|
-
"rounded-radius-md transition-colors outline-none cursor-pointer",
|
|
1739
|
-
"focus-visible:ring-4 focus-visible:ring-ring-brand",
|
|
1740
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
1741
|
-
"[&_svg]:size-4 [&_svg]:shrink-0"
|
|
1742
|
-
],
|
|
1743
|
-
{
|
|
1744
|
-
variants: {
|
|
1745
|
-
size: {
|
|
1746
|
-
xs: "h-form-xs px-pad-md gap-gp-xs text-body-xs font-normal",
|
|
1747
|
-
"icon-xs": "size-form-xs",
|
|
1748
|
-
sm: "h-form-sm px-pad-lg gap-gp-md text-body-xs font-normal",
|
|
1749
|
-
"icon-sm": "size-form-sm"
|
|
1750
|
-
},
|
|
1751
|
-
variant: {
|
|
1752
|
-
default: "bg-bg-muted text-fg-default hover:bg-bg-muted-hover",
|
|
1753
|
-
destructive: "bg-bg-danger text-fg-on-danger hover:bg-bg-danger-hover",
|
|
1754
|
-
outline: "border border-border-input bg-transparent text-fg-default hover:bg-bg-muted",
|
|
1755
|
-
secondary: "bg-bg-emphasis text-fg-default hover:bg-bg-muted-hover",
|
|
1756
|
-
ghost: "bg-transparent text-fg-muted hover:bg-bg-muted hover:text-fg-default",
|
|
1757
|
-
link: "bg-transparent text-fg-brand underline-offset-4 hover:underline"
|
|
1758
|
-
}
|
|
1759
|
-
},
|
|
1760
|
-
defaultVariants: { size: "xs", variant: "ghost" }
|
|
1761
|
-
}
|
|
1762
|
-
);
|
|
1763
|
-
const InputGroupButton = React__namespace.forwardRef(({ className, size, variant, type = "button", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1764
|
-
"button",
|
|
1765
|
-
{
|
|
1766
|
-
ref,
|
|
1767
|
-
type,
|
|
1768
|
-
"data-slot": "input-group-button",
|
|
1769
|
-
className: cn(inputGroupButtonVariants({ size, variant }), className),
|
|
1770
|
-
...props
|
|
1771
|
-
}
|
|
1772
|
-
));
|
|
1773
|
-
InputGroupButton.displayName = "InputGroupButton";
|
|
1774
908
|
const DEFAULT_FILTERS = [
|
|
1775
909
|
{ id: "all", label: "Tudo", predicate: () => true },
|
|
1776
910
|
{ id: "unread", label: "Não lidas", predicate: (m) => !!m.unread },
|
|
@@ -1795,9 +929,9 @@ function HeaderMessages({ config, className }) {
|
|
|
1795
929
|
const filtered = items.filter(filters.find((f) => f.id === activeFilter)?.predicate ?? (() => true)).filter(
|
|
1796
930
|
(m) => search ? m.name.toLowerCase().includes(search.toLowerCase()) : true
|
|
1797
931
|
);
|
|
1798
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
1799
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1800
|
-
Button,
|
|
932
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.Popover, { open, onOpenChange: setOpen, children: [
|
|
933
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
934
|
+
avatar.Button,
|
|
1801
935
|
{
|
|
1802
936
|
color: "secondary",
|
|
1803
937
|
variant: "outline",
|
|
@@ -1812,10 +946,10 @@ function HeaderMessages({ config, className }) {
|
|
|
1812
946
|
}
|
|
1813
947
|
) }),
|
|
1814
948
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1815
|
-
PopoverContent,
|
|
949
|
+
avatar.PopoverContent,
|
|
1816
950
|
{
|
|
1817
951
|
align: "end",
|
|
1818
|
-
className: cn(
|
|
952
|
+
className: avatar.cn(
|
|
1819
953
|
"w-[380px] max-w-[calc(100vw-32px)] max-h-[520px] p-0 flex flex-col overflow-hidden",
|
|
1820
954
|
className
|
|
1821
955
|
),
|
|
@@ -1829,7 +963,7 @@ function HeaderMessages({ config, className }) {
|
|
|
1829
963
|
] }),
|
|
1830
964
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: hdHeaderActions(), children: [
|
|
1831
965
|
onNewMessage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1832
|
-
Button,
|
|
966
|
+
avatar.Button,
|
|
1833
967
|
{
|
|
1834
968
|
color: "secondary",
|
|
1835
969
|
variant: "ghost",
|
|
@@ -1841,7 +975,7 @@ function HeaderMessages({ config, className }) {
|
|
|
1841
975
|
}
|
|
1842
976
|
),
|
|
1843
977
|
onExpand && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1844
|
-
Button,
|
|
978
|
+
avatar.Button,
|
|
1845
979
|
{
|
|
1846
980
|
color: "secondary",
|
|
1847
981
|
variant: "ghost",
|
|
@@ -1854,10 +988,10 @@ function HeaderMessages({ config, className }) {
|
|
|
1854
988
|
)
|
|
1855
989
|
] })
|
|
1856
990
|
] }),
|
|
1857
|
-
showSearch && /* @__PURE__ */ jsxRuntime.jsxs(InputGroup, { size: "sm", children: [
|
|
1858
|
-
/* @__PURE__ */ jsxRuntime.jsx(InputGroupAddon, { align: "inline-start", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { strokeWidth: 1.8 }) }),
|
|
991
|
+
showSearch && /* @__PURE__ */ jsxRuntime.jsxs(avatar.InputGroup, { size: "sm", children: [
|
|
992
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.InputGroupAddon, { align: "inline-start", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { strokeWidth: 1.8 }) }),
|
|
1859
993
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1860
|
-
InputGroupInput,
|
|
994
|
+
avatar.InputGroupInput,
|
|
1861
995
|
{
|
|
1862
996
|
type: "text",
|
|
1863
997
|
placeholder: searchPlaceholder,
|
|
@@ -1937,184 +1071,6 @@ function MessageRow({ item }) {
|
|
|
1937
1071
|
}
|
|
1938
1072
|
);
|
|
1939
1073
|
}
|
|
1940
|
-
const DropdownMenu = DropdownMenuPrimitive__namespace.Root;
|
|
1941
|
-
const DropdownMenuTrigger = DropdownMenuPrimitive__namespace.Trigger;
|
|
1942
|
-
const DropdownMenuGroup = DropdownMenuPrimitive__namespace.Group;
|
|
1943
|
-
const DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
|
|
1944
|
-
const DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
|
|
1945
|
-
const CONTAINER_CLASSES = [
|
|
1946
|
-
"relative z-50 min-w-[180px] overflow-hidden",
|
|
1947
|
-
"flex flex-col gap-px",
|
|
1948
|
-
"rounded-[12px] bg-bg-dropdown p-pad-sm",
|
|
1949
|
-
"border border-border-default shadow-sh-lg",
|
|
1950
|
-
// Outline padrão de elementos flutuantes
|
|
1951
|
-
"outline-float",
|
|
1952
|
-
"text-fg-muted",
|
|
1953
|
-
// Frosted-glass blur (necessário pra fazer o bg-dropdown semi-transparent render correto no dark)
|
|
1954
|
-
"before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150",
|
|
1955
|
-
// Animações Radix
|
|
1956
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1957
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1958
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1959
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
1960
|
-
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1961
|
-
"origin-[--radix-dropdown-menu-content-transform-origin]"
|
|
1962
|
-
].join(" ");
|
|
1963
|
-
const MOBILE_SHEET_CLASSES = [
|
|
1964
|
-
"max-md:w-full max-md:min-w-0 max-md:max-w-none",
|
|
1965
|
-
"max-md:!max-h-[92vh]",
|
|
1966
|
-
"max-md:rounded-b-none max-md:rounded-t-[12px]",
|
|
1967
|
-
"max-md:border-x-0 max-md:border-b-0",
|
|
1968
|
-
"max-md:outline-none max-md:shadow-none",
|
|
1969
|
-
"max-md:data-[state=open]:zoom-in-100 max-md:data-[state=closed]:zoom-out-100",
|
|
1970
|
-
"max-md:data-[state=open]:slide-in-from-bottom-12 max-md:data-[state=closed]:slide-out-to-bottom-12"
|
|
1971
|
-
].join(" ");
|
|
1972
|
-
const ITEM_BASE = [
|
|
1973
|
-
"relative flex cursor-default select-none items-center",
|
|
1974
|
-
"gap-pad-lg px-pad-lg py-pad-md rounded-radius-sm",
|
|
1975
|
-
"text-body-sm font-medium",
|
|
1976
|
-
"outline-none transition-colors",
|
|
1977
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1978
|
-
"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
|
|
1979
|
-
].join(" ");
|
|
1980
|
-
const ITEM_VARIANT_DEFAULT = [
|
|
1981
|
-
"text-fg-muted [&_svg]:text-fg-muted",
|
|
1982
|
-
"focus:bg-bg-muted focus:text-fg-default focus:[&_svg]:text-fg-default"
|
|
1983
|
-
].join(" ");
|
|
1984
|
-
const ITEM_VARIANT_DESTRUCTIVE = [
|
|
1985
|
-
"text-fg-danger [&_svg]:text-fg-danger",
|
|
1986
|
-
"focus:bg-bg-danger-muted focus:text-fg-danger focus:[&_svg]:text-fg-danger"
|
|
1987
|
-
].join(" ");
|
|
1988
|
-
const DropdownMenuSubTrigger = React__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1989
|
-
DropdownMenuPrimitive__namespace.SubTrigger,
|
|
1990
|
-
{
|
|
1991
|
-
ref,
|
|
1992
|
-
className: cn(
|
|
1993
|
-
ITEM_BASE,
|
|
1994
|
-
ITEM_VARIANT_DEFAULT,
|
|
1995
|
-
"data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default",
|
|
1996
|
-
inset && "pl-8",
|
|
1997
|
-
className
|
|
1998
|
-
),
|
|
1999
|
-
...props,
|
|
2000
|
-
children: [
|
|
2001
|
-
children,
|
|
2002
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto" })
|
|
2003
|
-
]
|
|
2004
|
-
}
|
|
2005
|
-
));
|
|
2006
|
-
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
|
|
2007
|
-
const DropdownMenuSubContent = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2008
|
-
DropdownMenuPrimitive__namespace.SubContent,
|
|
2009
|
-
{
|
|
2010
|
-
ref,
|
|
2011
|
-
className: cn(CONTAINER_CLASSES, className),
|
|
2012
|
-
...props
|
|
2013
|
-
}
|
|
2014
|
-
));
|
|
2015
|
-
DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
|
|
2016
|
-
const DropdownMenuContent = React__namespace.forwardRef(({ className, sideOffset = 8, mobileSheet = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2017
|
-
mobileSheet && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2018
|
-
"div",
|
|
2019
|
-
{
|
|
2020
|
-
"aria-hidden": "true",
|
|
2021
|
-
className: "fixed inset-0 z-[55] bg-overlay-scrim pointer-events-none md:hidden animate-in fade-in-0 duration-150"
|
|
2022
|
-
}
|
|
2023
|
-
) }),
|
|
2024
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2025
|
-
DropdownMenuPrimitive__namespace.Content,
|
|
2026
|
-
{
|
|
2027
|
-
ref,
|
|
2028
|
-
sideOffset,
|
|
2029
|
-
"data-mobile-sheet": mobileSheet ? "" : void 0,
|
|
2030
|
-
className: cn(
|
|
2031
|
-
CONTAINER_CLASSES,
|
|
2032
|
-
"max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto overflow-x-hidden",
|
|
2033
|
-
mobileSheet && MOBILE_SHEET_CLASSES,
|
|
2034
|
-
className
|
|
2035
|
-
),
|
|
2036
|
-
...props
|
|
2037
|
-
}
|
|
2038
|
-
) })
|
|
2039
|
-
] }));
|
|
2040
|
-
DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
|
|
2041
|
-
const DropdownMenuItem = React__namespace.forwardRef(({ className, inset, variant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2042
|
-
DropdownMenuPrimitive__namespace.Item,
|
|
2043
|
-
{
|
|
2044
|
-
ref,
|
|
2045
|
-
className: cn(
|
|
2046
|
-
ITEM_BASE,
|
|
2047
|
-
variant === "destructive" ? ITEM_VARIANT_DESTRUCTIVE : ITEM_VARIANT_DEFAULT,
|
|
2048
|
-
inset && "pl-8",
|
|
2049
|
-
className
|
|
2050
|
-
),
|
|
2051
|
-
...props
|
|
2052
|
-
}
|
|
2053
|
-
));
|
|
2054
|
-
DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
|
|
2055
|
-
const DropdownMenuCheckboxItem = React__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2056
|
-
DropdownMenuPrimitive__namespace.CheckboxItem,
|
|
2057
|
-
{
|
|
2058
|
-
ref,
|
|
2059
|
-
className: cn(
|
|
2060
|
-
ITEM_BASE,
|
|
2061
|
-
ITEM_VARIANT_DEFAULT,
|
|
2062
|
-
"pl-8 pr-pad-lg",
|
|
2063
|
-
className
|
|
2064
|
-
),
|
|
2065
|
-
checked,
|
|
2066
|
-
...props,
|
|
2067
|
-
children: [
|
|
2068
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-pad-md flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
2069
|
-
children
|
|
2070
|
-
]
|
|
2071
|
-
}
|
|
2072
|
-
));
|
|
2073
|
-
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
|
|
2074
|
-
const DropdownMenuRadioItem = React__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2075
|
-
DropdownMenuPrimitive__namespace.RadioItem,
|
|
2076
|
-
{
|
|
2077
|
-
ref,
|
|
2078
|
-
className: cn(
|
|
2079
|
-
ITEM_BASE,
|
|
2080
|
-
ITEM_VARIANT_DEFAULT,
|
|
2081
|
-
"pl-8 pr-pad-lg",
|
|
2082
|
-
// Selected state — brand tint (mantém no focus pra não voltar pra muted)
|
|
2083
|
-
"data-[state=checked]:bg-bg-brand-subtle data-[state=checked]:text-fg-brand",
|
|
2084
|
-
"data-[state=checked]:[&_svg]:text-fg-brand",
|
|
2085
|
-
"data-[state=checked]:focus:bg-bg-brand-subtle data-[state=checked]:focus:text-fg-brand",
|
|
2086
|
-
className
|
|
2087
|
-
),
|
|
2088
|
-
...props,
|
|
2089
|
-
children: [
|
|
2090
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-pad-md flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-4" }) }) }),
|
|
2091
|
-
children
|
|
2092
|
-
]
|
|
2093
|
-
}
|
|
2094
|
-
));
|
|
2095
|
-
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
|
|
2096
|
-
const DropdownMenuLabel = React__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2097
|
-
DropdownMenuPrimitive__namespace.Label,
|
|
2098
|
-
{
|
|
2099
|
-
ref,
|
|
2100
|
-
className: cn(
|
|
2101
|
-
"px-pad-lg py-pad-sm text-caption-sm font-semibold uppercase tracking-wider text-fg-subtle",
|
|
2102
|
-
inset && "pl-8",
|
|
2103
|
-
className
|
|
2104
|
-
),
|
|
2105
|
-
...props
|
|
2106
|
-
}
|
|
2107
|
-
));
|
|
2108
|
-
DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
|
|
2109
|
-
const DropdownMenuSeparator = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2110
|
-
DropdownMenuPrimitive__namespace.Separator,
|
|
2111
|
-
{
|
|
2112
|
-
ref,
|
|
2113
|
-
className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
|
|
2114
|
-
...props
|
|
2115
|
-
}
|
|
2116
|
-
));
|
|
2117
|
-
DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
|
|
2118
1074
|
const DEFAULT_OPTIONS = [
|
|
2119
1075
|
{ id: "light", label: "Claro", icon: lucideReact.Sun },
|
|
2120
1076
|
{ id: "dark", label: "Escuro", icon: lucideReact.Moon }
|
|
@@ -2127,24 +1083,24 @@ function HeaderThemeSwitcher({
|
|
|
2127
1083
|
}) {
|
|
2128
1084
|
const current = options.find((o) => o.id === theme) ?? options[0];
|
|
2129
1085
|
const CurrentIcon = current?.icon ?? lucideReact.Sun;
|
|
2130
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
|
|
2131
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2132
|
-
Button,
|
|
1086
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenu, { children: [
|
|
1087
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1088
|
+
avatar.Button,
|
|
2133
1089
|
{
|
|
2134
1090
|
color: "secondary",
|
|
2135
1091
|
variant: "outline",
|
|
2136
1092
|
size: "icon-sm",
|
|
2137
|
-
className: cn("rounded-radius-md", className),
|
|
1093
|
+
className: avatar.cn("rounded-radius-md", className),
|
|
2138
1094
|
"aria-label": "Trocar tema",
|
|
2139
1095
|
title: `Tema: ${current?.label ?? ""}`,
|
|
2140
1096
|
children: /* @__PURE__ */ jsxRuntime.jsx(CurrentIcon, {})
|
|
2141
1097
|
}
|
|
2142
1098
|
) }),
|
|
2143
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContent, { align: "end", sideOffset: 8, className: "min-w-[160px]", children: options.map((opt) => {
|
|
1099
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuContent, { align: "end", sideOffset: 8, className: "min-w-[160px]", children: options.map((opt) => {
|
|
2144
1100
|
const Icon = opt.icon;
|
|
2145
1101
|
const isActive = opt.id === theme;
|
|
2146
1102
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2147
|
-
DropdownMenuItem,
|
|
1103
|
+
avatar.DropdownMenuItem,
|
|
2148
1104
|
{
|
|
2149
1105
|
onSelect: () => onThemeChange(opt.id),
|
|
2150
1106
|
children: [
|
|
@@ -2176,14 +1132,14 @@ function Header({
|
|
|
2176
1132
|
rightSlot,
|
|
2177
1133
|
className
|
|
2178
1134
|
}) {
|
|
2179
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("header", { className: cn(headerRoot(), className), children: [
|
|
1135
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("header", { className: avatar.cn(headerRoot(), className), children: [
|
|
2180
1136
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: headerLeft(), children: [
|
|
2181
1137
|
onCollapseMenu && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2182
1138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2183
1139
|
"button",
|
|
2184
1140
|
{
|
|
2185
1141
|
type: "button",
|
|
2186
|
-
className: cn(
|
|
1142
|
+
className: avatar.cn(
|
|
2187
1143
|
headerIconBtn({ variant: "ghost" }),
|
|
2188
1144
|
"hidden md:inline-flex text-fg-muted hover:text-fg-default"
|
|
2189
1145
|
),
|
|
@@ -2197,7 +1153,7 @@ function Header({
|
|
|
2197
1153
|
"button",
|
|
2198
1154
|
{
|
|
2199
1155
|
type: "button",
|
|
2200
|
-
className: cn(
|
|
1156
|
+
className: avatar.cn(
|
|
2201
1157
|
headerIconBtn({ variant: "ghost" }),
|
|
2202
1158
|
"md:hidden text-fg-muted hover:text-fg-default"
|
|
2203
1159
|
),
|
|
@@ -2210,7 +1166,7 @@ function Header({
|
|
|
2210
1166
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2211
1167
|
"span",
|
|
2212
1168
|
{
|
|
2213
|
-
className: cn(headerDivider(), "hidden md:block"),
|
|
1169
|
+
className: avatar.cn(headerDivider(), "hidden md:block"),
|
|
2214
1170
|
"aria-hidden": "true"
|
|
2215
1171
|
}
|
|
2216
1172
|
)
|
|
@@ -2248,7 +1204,7 @@ function Header({
|
|
|
2248
1204
|
] })
|
|
2249
1205
|
] });
|
|
2250
1206
|
}
|
|
2251
|
-
const sidebarRoot = tv({
|
|
1207
|
+
const sidebarRoot = avatar.tv({
|
|
2252
1208
|
base: "relative flex h-screen w-fit bg-bg-sidebar text-fg-default font-sans",
|
|
2253
1209
|
variants: {
|
|
2254
1210
|
mobile: {
|
|
@@ -2266,13 +1222,13 @@ const sidebarRoot = tv({
|
|
|
2266
1222
|
{ mobile: true, mobileOpen: false, class: "-translate-x-full" }
|
|
2267
1223
|
]
|
|
2268
1224
|
});
|
|
2269
|
-
tv({
|
|
1225
|
+
avatar.tv({
|
|
2270
1226
|
base: "relative flex h-full w-fit bg-bg-sidebar text-fg-default font-sans"
|
|
2271
1227
|
});
|
|
2272
|
-
const sidebarMobileBackdrop = tv({
|
|
1228
|
+
const sidebarMobileBackdrop = avatar.tv({
|
|
2273
1229
|
base: "fixed inset-0 z-40 bg-overlay-scrim transition-opacity duration-200"
|
|
2274
1230
|
});
|
|
2275
|
-
const sidebarMobileCloseBtn = tv({
|
|
1231
|
+
const sidebarMobileCloseBtn = avatar.tv({
|
|
2276
1232
|
base: [
|
|
2277
1233
|
"absolute top-[14px] right-[14px] z-10",
|
|
2278
1234
|
"w-form-sm h-form-sm rounded-radius-md grid place-items-center",
|
|
@@ -2283,7 +1239,7 @@ const sidebarMobileCloseBtn = tv({
|
|
|
2283
1239
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2284
1240
|
]
|
|
2285
1241
|
});
|
|
2286
|
-
const sidebarRail = tv({
|
|
1242
|
+
const sidebarRail = avatar.tv({
|
|
2287
1243
|
base: [
|
|
2288
1244
|
"flex flex-col items-center w-[64px] flex-none",
|
|
2289
1245
|
"h-full sticky top-0 z-30",
|
|
@@ -2291,17 +1247,17 @@ const sidebarRail = tv({
|
|
|
2291
1247
|
"bg-bg-sidebar border-r border-border-sidebar"
|
|
2292
1248
|
]
|
|
2293
1249
|
});
|
|
2294
|
-
const sidebarRailBrand = tv({
|
|
1250
|
+
const sidebarRailBrand = avatar.tv({
|
|
2295
1251
|
base: [
|
|
2296
1252
|
"w-form-lg h-form-lg rounded-radius-xl grid place-items-center",
|
|
2297
1253
|
"bg-bg-brand text-fg-on-brand mb-pad-sm",
|
|
2298
1254
|
"transition-opacity hover:opacity-90"
|
|
2299
1255
|
]
|
|
2300
1256
|
});
|
|
2301
|
-
const sidebarRailList = tv({
|
|
1257
|
+
const sidebarRailList = avatar.tv({
|
|
2302
1258
|
base: "flex flex-col items-center gap-gp-sm flex-1"
|
|
2303
1259
|
});
|
|
2304
|
-
const sidebarRailItem = tv({
|
|
1260
|
+
const sidebarRailItem = avatar.tv({
|
|
2305
1261
|
base: [
|
|
2306
1262
|
"group/rail-item relative w-form-lg h-form-lg rounded-radius-xl grid place-items-center",
|
|
2307
1263
|
"bg-transparent border-0 cursor-pointer",
|
|
@@ -2318,13 +1274,13 @@ const sidebarRailItem = tv({
|
|
|
2318
1274
|
}
|
|
2319
1275
|
}
|
|
2320
1276
|
});
|
|
2321
|
-
const sidebarRailActiveBar = tv({
|
|
1277
|
+
const sidebarRailActiveBar = avatar.tv({
|
|
2322
1278
|
base: [
|
|
2323
1279
|
"absolute -left-pad-2xl top-pad-md bottom-pad-md w-[3px]",
|
|
2324
1280
|
"rounded-r-radius-sm bg-bg-brand"
|
|
2325
1281
|
]
|
|
2326
1282
|
});
|
|
2327
|
-
const sidebarRailTooltip = tv({
|
|
1283
|
+
const sidebarRailTooltip = avatar.tv({
|
|
2328
1284
|
base: [
|
|
2329
1285
|
"pointer-events-none absolute left-full ml-[14px] top-1/2 -translate-y-1/2",
|
|
2330
1286
|
"px-pad-md py-[5px] rounded-radius-sm",
|
|
@@ -2335,7 +1291,7 @@ const sidebarRailTooltip = tv({
|
|
|
2335
1291
|
"shadow-sh-md"
|
|
2336
1292
|
]
|
|
2337
1293
|
});
|
|
2338
|
-
const sidebarRailAdd = tv({
|
|
1294
|
+
const sidebarRailAdd = avatar.tv({
|
|
2339
1295
|
base: [
|
|
2340
1296
|
"w-form-lg h-form-lg rounded-radius-xl grid place-items-center",
|
|
2341
1297
|
"text-fg-muted bg-transparent border-0 cursor-pointer mt-pad-xs opacity-70",
|
|
@@ -2344,17 +1300,17 @@ const sidebarRailAdd = tv({
|
|
|
2344
1300
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2345
1301
|
]
|
|
2346
1302
|
});
|
|
2347
|
-
const sidebarRailUser = tv({
|
|
1303
|
+
const sidebarRailUser = avatar.tv({
|
|
2348
1304
|
base: "mt-auto"
|
|
2349
1305
|
});
|
|
2350
|
-
const sidebarRailUserDefault = tv({
|
|
1306
|
+
const sidebarRailUserDefault = avatar.tv({
|
|
2351
1307
|
base: [
|
|
2352
1308
|
"grid place-items-center size-comp-lg rounded-full",
|
|
2353
1309
|
// tracking-[0.02em] preserva tracking original (preset usa +0.06em)
|
|
2354
1310
|
"bg-bg-brand text-fg-on-brand font-bold text-caption-sm uppercase tracking-[0.02em]"
|
|
2355
1311
|
]
|
|
2356
1312
|
});
|
|
2357
|
-
const sidebarPanel = tv({
|
|
1313
|
+
const sidebarPanel = avatar.tv({
|
|
2358
1314
|
base: [
|
|
2359
1315
|
"w-[264px] flex-none h-full sticky top-0 flex flex-col overflow-hidden",
|
|
2360
1316
|
"bg-bg-sidebar border-r border-border-sidebar",
|
|
@@ -2374,10 +1330,10 @@ const sidebarPanel = tv({
|
|
|
2374
1330
|
}
|
|
2375
1331
|
}
|
|
2376
1332
|
});
|
|
2377
|
-
const sidebarPanelHeader = tv({
|
|
1333
|
+
const sidebarPanelHeader = avatar.tv({
|
|
2378
1334
|
base: "flex items-center h-[60px] flex-none px-[14px] border-b border-border-sidebar"
|
|
2379
1335
|
});
|
|
2380
|
-
const sidebarPanelTitle = tv({
|
|
1336
|
+
const sidebarPanelTitle = avatar.tv({
|
|
2381
1337
|
base: [
|
|
2382
1338
|
"flex-1 min-w-0 inline-flex items-center gap-gp-sm",
|
|
2383
1339
|
"py-pad-sm px-pad-md rounded-radius-md",
|
|
@@ -2387,13 +1343,13 @@ const sidebarPanelTitle = tv({
|
|
|
2387
1343
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2388
1344
|
]
|
|
2389
1345
|
});
|
|
2390
|
-
const sidebarPanelBody = tv({
|
|
1346
|
+
const sidebarPanelBody = avatar.tv({
|
|
2391
1347
|
base: "flex-1 overflow-y-auto p-[14px] scrollbar-thin"
|
|
2392
1348
|
});
|
|
2393
|
-
const sidebarPanelGroup = tv({
|
|
1349
|
+
const sidebarPanelGroup = avatar.tv({
|
|
2394
1350
|
base: "flex flex-col gap-px"
|
|
2395
1351
|
});
|
|
2396
|
-
const sidebarItem = tv({
|
|
1352
|
+
const sidebarItem = avatar.tv({
|
|
2397
1353
|
base: [
|
|
2398
1354
|
"flex items-center gap-[11px] h-form-lg w-full px-pad-xl rounded-radius-md",
|
|
2399
1355
|
"text-fg-default text-body-sm font-medium text-left no-underline cursor-pointer",
|
|
@@ -2425,7 +1381,7 @@ const sidebarItem = tv({
|
|
|
2425
1381
|
}
|
|
2426
1382
|
]
|
|
2427
1383
|
});
|
|
2428
|
-
const sidebarItemIcon = tv({
|
|
1384
|
+
const sidebarItemIcon = avatar.tv({
|
|
2429
1385
|
base: "flex-none w-[17px] h-[17px] text-fg-muted transition-colors",
|
|
2430
1386
|
variants: {
|
|
2431
1387
|
active: {
|
|
@@ -2436,10 +1392,10 @@ const sidebarItemIcon = tv({
|
|
|
2436
1392
|
}
|
|
2437
1393
|
}
|
|
2438
1394
|
});
|
|
2439
|
-
const sidebarItemText = tv({
|
|
1395
|
+
const sidebarItemText = avatar.tv({
|
|
2440
1396
|
base: "flex-1 min-w-0 whitespace-nowrap overflow-hidden text-ellipsis"
|
|
2441
1397
|
});
|
|
2442
|
-
const sidebarPill = tv({
|
|
1398
|
+
const sidebarPill = avatar.tv({
|
|
2443
1399
|
base: [
|
|
2444
1400
|
"inline-flex items-center justify-center flex-none",
|
|
2445
1401
|
"min-w-[22px] h-[22px] px-[7px] rounded-radius-sm",
|
|
@@ -2460,10 +1416,10 @@ const sidebarPill = tv({
|
|
|
2460
1416
|
},
|
|
2461
1417
|
defaultVariants: { kind: "default" }
|
|
2462
1418
|
});
|
|
2463
|
-
const sidebarSubgroupRoot = tv({
|
|
1419
|
+
const sidebarSubgroupRoot = avatar.tv({
|
|
2464
1420
|
base: "flex flex-col gap-px"
|
|
2465
1421
|
});
|
|
2466
|
-
const sidebarSubgroupChev = tv({
|
|
1422
|
+
const sidebarSubgroupChev = avatar.tv({
|
|
2467
1423
|
base: "flex-none w-[13px] h-[13px] text-fg-muted ml-auto transition-transform duration-200",
|
|
2468
1424
|
variants: {
|
|
2469
1425
|
collapsed: {
|
|
@@ -2471,7 +1427,7 @@ const sidebarSubgroupChev = tv({
|
|
|
2471
1427
|
}
|
|
2472
1428
|
}
|
|
2473
1429
|
});
|
|
2474
|
-
const sidebarSubgroupList = tv({
|
|
1430
|
+
const sidebarSubgroupList = avatar.tv({
|
|
2475
1431
|
base: [
|
|
2476
1432
|
"flex flex-col gap-px overflow-hidden",
|
|
2477
1433
|
"ml-pad-xl pl-[14px] py-pad-2xs",
|
|
@@ -2486,10 +1442,10 @@ const sidebarSubgroupList = tv({
|
|
|
2486
1442
|
},
|
|
2487
1443
|
defaultVariants: { collapsed: false }
|
|
2488
1444
|
});
|
|
2489
|
-
const sidebarSection = tv({
|
|
1445
|
+
const sidebarSection = avatar.tv({
|
|
2490
1446
|
base: "flex flex-col gap-px pt-[18px] mt-pad-xl border-t border-border-sidebar"
|
|
2491
1447
|
});
|
|
2492
|
-
const sidebarSectionHeader = tv({
|
|
1448
|
+
const sidebarSectionHeader = avatar.tv({
|
|
2493
1449
|
base: [
|
|
2494
1450
|
"flex items-center gap-gp-sm px-pad-lg pt-pad-sm pb-pad-md",
|
|
2495
1451
|
"bg-transparent border-0 text-left cursor-pointer select-none w-full",
|
|
@@ -2500,7 +1456,7 @@ const sidebarSectionHeader = tv({
|
|
|
2500
1456
|
"dark:text-fg-muted dark:font-medium dark:opacity-70"
|
|
2501
1457
|
]
|
|
2502
1458
|
});
|
|
2503
|
-
const sidebarSectionChev = tv({
|
|
1459
|
+
const sidebarSectionChev = avatar.tv({
|
|
2504
1460
|
base: "flex-none w-[12px] h-[12px] transition-transform duration-200",
|
|
2505
1461
|
variants: {
|
|
2506
1462
|
collapsed: {
|
|
@@ -2508,7 +1464,7 @@ const sidebarSectionChev = tv({
|
|
|
2508
1464
|
}
|
|
2509
1465
|
}
|
|
2510
1466
|
});
|
|
2511
|
-
const sidebarSectionAdd = tv({
|
|
1467
|
+
const sidebarSectionAdd = avatar.tv({
|
|
2512
1468
|
base: [
|
|
2513
1469
|
"ml-auto w-[18px] h-[18px] grid place-items-center rounded-radius-xs",
|
|
2514
1470
|
"text-fg-muted bg-transparent border-0 cursor-pointer text-body-md leading-none",
|
|
@@ -2516,7 +1472,7 @@ const sidebarSectionAdd = tv({
|
|
|
2516
1472
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-secondary"
|
|
2517
1473
|
]
|
|
2518
1474
|
});
|
|
2519
|
-
const sidebarSectionList = tv({
|
|
1475
|
+
const sidebarSectionList = avatar.tv({
|
|
2520
1476
|
base: "flex flex-col gap-px overflow-hidden transition-[max-height,opacity] duration-200 ease-out",
|
|
2521
1477
|
variants: {
|
|
2522
1478
|
collapsed: {
|
|
@@ -2530,7 +1486,7 @@ const sidebarSectionList = tv({
|
|
|
2530
1486
|
},
|
|
2531
1487
|
defaultVariants: { collapsed: false, variant: "bookmark" }
|
|
2532
1488
|
});
|
|
2533
|
-
const sidebarSectionItem = tv({
|
|
1489
|
+
const sidebarSectionItem = avatar.tv({
|
|
2534
1490
|
base: [
|
|
2535
1491
|
"flex items-center gap-[11px] h-form-sm w-full px-pad-lg rounded-radius-md",
|
|
2536
1492
|
"text-body-xs font-medium text-fg-muted no-underline cursor-pointer",
|
|
@@ -2540,10 +1496,10 @@ const sidebarSectionItem = tv({
|
|
|
2540
1496
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2541
1497
|
]
|
|
2542
1498
|
});
|
|
2543
|
-
const sidebarBookmarkDot = tv({
|
|
1499
|
+
const sidebarBookmarkDot = avatar.tv({
|
|
2544
1500
|
base: "flex-none w-[10px] h-[10px] rounded-full"
|
|
2545
1501
|
});
|
|
2546
|
-
const sidebarBookmarkIcon = tv({
|
|
1502
|
+
const sidebarBookmarkIcon = avatar.tv({
|
|
2547
1503
|
base: [
|
|
2548
1504
|
// mesmo footprint do dot/avatar → alinhamento consistente; ícone herda a
|
|
2549
1505
|
// cor via `color` inline (currentColor), sem caixa de fundo
|
|
@@ -2552,14 +1508,14 @@ const sidebarBookmarkIcon = tv({
|
|
|
2552
1508
|
"[&>svg]:size-icon-xs"
|
|
2553
1509
|
]
|
|
2554
1510
|
});
|
|
2555
|
-
const sidebarChatAvatar = tv({
|
|
1511
|
+
const sidebarChatAvatar = avatar.tv({
|
|
2556
1512
|
base: [
|
|
2557
1513
|
"flex-none grid place-items-center w-icon-lg h-icon-lg rounded-full",
|
|
2558
1514
|
// tracking-[0.02em] preserva o tracking original (preset usa +0.06em); leading-none mantém centralização vertical
|
|
2559
1515
|
"text-white text-caption-xs font-bold uppercase tracking-[0.02em] leading-none"
|
|
2560
1516
|
]
|
|
2561
1517
|
});
|
|
2562
|
-
const sidebarChatStatus = tv({
|
|
1518
|
+
const sidebarChatStatus = avatar.tv({
|
|
2563
1519
|
base: "flex-none w-[7px] h-[7px] rounded-full ml-auto",
|
|
2564
1520
|
variants: {
|
|
2565
1521
|
status: {
|
|
@@ -2612,7 +1568,7 @@ function SidebarRail({
|
|
|
2612
1568
|
onAddClick,
|
|
2613
1569
|
className
|
|
2614
1570
|
}) {
|
|
2615
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: cn(sidebarRail(), className), children: [
|
|
1571
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: avatar.cn(sidebarRail(), className), children: [
|
|
2616
1572
|
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/", className: sidebarRailBrand(), "aria-label": "Home", children: brand ?? /* @__PURE__ */ jsxRuntime.jsx(SidebarBrandIcon, {}) }),
|
|
2617
1573
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: sidebarRailList(), children: [
|
|
2618
1574
|
contexts.map((ctx) => {
|
|
@@ -2652,7 +1608,7 @@ function SidebarRail({
|
|
|
2652
1608
|
const SidebarItem = React.forwardRef(
|
|
2653
1609
|
({ item, active, subitem, iconBrand, onClick, className }, ref) => {
|
|
2654
1610
|
const Icon = item.icon;
|
|
2655
|
-
const classes = cn(sidebarItem({ active, subitem }), className);
|
|
1611
|
+
const classes = avatar.cn(sidebarItem({ active, subitem }), className);
|
|
2656
1612
|
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2657
1613
|
Icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2658
1614
|
Icon,
|
|
@@ -2702,7 +1658,7 @@ function SidebarPill({
|
|
|
2702
1658
|
children,
|
|
2703
1659
|
className
|
|
2704
1660
|
}) {
|
|
2705
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(sidebarPill({ kind, active }), className), children });
|
|
1661
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: avatar.cn(sidebarPill({ kind, active }), className), children });
|
|
2706
1662
|
}
|
|
2707
1663
|
function SidebarSubgroup({
|
|
2708
1664
|
item,
|
|
@@ -2726,12 +1682,12 @@ function SidebarSubgroup({
|
|
|
2726
1682
|
onOpenChange?.(next);
|
|
2727
1683
|
};
|
|
2728
1684
|
const Icon = item.icon;
|
|
2729
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(sidebarSubgroupRoot(), className), children: [
|
|
1685
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: avatar.cn(sidebarSubgroupRoot(), className), children: [
|
|
2730
1686
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2731
1687
|
"button",
|
|
2732
1688
|
{
|
|
2733
1689
|
type: "button",
|
|
2734
|
-
className: cn(sidebarItem(), "select-none"),
|
|
1690
|
+
className: avatar.cn(sidebarItem(), "select-none"),
|
|
2735
1691
|
onClick: () => setOpen(!isOpen),
|
|
2736
1692
|
"aria-expanded": isOpen,
|
|
2737
1693
|
"aria-controls": `subgroup-${item.name}`,
|
|
@@ -2781,7 +1737,7 @@ function SidebarSection({
|
|
|
2781
1737
|
if (open === void 0) setInternalOpen(next);
|
|
2782
1738
|
onOpenChange?.(next);
|
|
2783
1739
|
};
|
|
2784
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(sidebarSection(), className), children: [
|
|
1740
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: avatar.cn(sidebarSection(), className), children: [
|
|
2785
1741
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2786
1742
|
"button",
|
|
2787
1743
|
{
|
|
@@ -2930,11 +1886,11 @@ function SidebarPanel({
|
|
|
2930
1886
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2931
1887
|
"aside",
|
|
2932
1888
|
{
|
|
2933
|
-
className: cn(sidebarPanel({ collapsed, floating, mobile }), className),
|
|
1889
|
+
className: avatar.cn(sidebarPanel({ collapsed, floating, mobile }), className),
|
|
2934
1890
|
"aria-hidden": collapsed,
|
|
2935
1891
|
children: [
|
|
2936
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: sidebarPanelHeader(), children: hasSwitcher ? /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
|
|
2937
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: sidebarPanelTitle(), children: [
|
|
1892
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: sidebarPanelHeader(), children: hasSwitcher ? /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenu, { children: [
|
|
1893
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: sidebarPanelTitle(), children: [
|
|
2938
1894
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 min-w-0 whitespace-nowrap overflow-hidden text-ellipsis", children: context.label }),
|
|
2939
1895
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2940
1896
|
lucideReact.ChevronDown,
|
|
@@ -2945,11 +1901,11 @@ function SidebarPanel({
|
|
|
2945
1901
|
}
|
|
2946
1902
|
)
|
|
2947
1903
|
] }) }),
|
|
2948
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContent, { align: "start", sideOffset: 6, className: "min-w-[220px]", children: contexts.map((ctx) => {
|
|
1904
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuContent, { align: "start", sideOffset: 6, className: "min-w-[220px]", children: contexts.map((ctx) => {
|
|
2949
1905
|
const Icon = ctx.icon;
|
|
2950
1906
|
const isActive = ctx.id === context.id;
|
|
2951
1907
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2952
|
-
DropdownMenuItem,
|
|
1908
|
+
avatar.DropdownMenuItem,
|
|
2953
1909
|
{
|
|
2954
1910
|
onSelect: () => onContextChange?.(ctx.id),
|
|
2955
1911
|
children: [
|
|
@@ -3103,7 +2059,7 @@ function MenuSidebar({
|
|
|
3103
2059
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3104
2060
|
"div",
|
|
3105
2061
|
{
|
|
3106
|
-
className: cn(
|
|
2062
|
+
className: avatar.cn(
|
|
3107
2063
|
sidebarRoot({ mobile: isMobile, mobileOpen: isMobile && openMobile }),
|
|
3108
2064
|
className
|
|
3109
2065
|
),
|
|
@@ -3170,39 +2126,6 @@ function MenuSidebar({
|
|
|
3170
2126
|
)
|
|
3171
2127
|
] });
|
|
3172
2128
|
}
|
|
3173
|
-
const Avatar = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3174
|
-
AvatarPrimitive__namespace.Root,
|
|
3175
|
-
{
|
|
3176
|
-
ref,
|
|
3177
|
-
className: cn(
|
|
3178
|
-
"relative flex size-8 shrink-0 overflow-hidden rounded-full",
|
|
3179
|
-
className
|
|
3180
|
-
),
|
|
3181
|
-
...props
|
|
3182
|
-
}
|
|
3183
|
-
));
|
|
3184
|
-
Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
|
|
3185
|
-
const AvatarImage = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3186
|
-
AvatarPrimitive__namespace.Image,
|
|
3187
|
-
{
|
|
3188
|
-
ref,
|
|
3189
|
-
className: cn("aspect-square h-full w-full", className),
|
|
3190
|
-
...props
|
|
3191
|
-
}
|
|
3192
|
-
));
|
|
3193
|
-
AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
|
|
3194
|
-
const AvatarFallback = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3195
|
-
AvatarPrimitive__namespace.Fallback,
|
|
3196
|
-
{
|
|
3197
|
-
ref,
|
|
3198
|
-
className: cn(
|
|
3199
|
-
"flex h-full w-full items-center justify-center rounded-full bg-bg-muted text-fg-muted text-body-sm font-normal",
|
|
3200
|
-
className
|
|
3201
|
-
),
|
|
3202
|
-
...props
|
|
3203
|
-
}
|
|
3204
|
-
));
|
|
3205
|
-
AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
|
|
3206
2129
|
function deriveInitials(name) {
|
|
3207
2130
|
return name.split(" ").filter(Boolean).map((p) => p[0]).join("").slice(0, 2).toUpperCase();
|
|
3208
2131
|
}
|
|
@@ -3229,8 +2152,8 @@ function UserMenu({
|
|
|
3229
2152
|
// abertura → o menu abre no pointerdown e fecha no click/pointerup do mesmo
|
|
3230
2153
|
// toque ("aparece e some", precisa 2-3 toques). Sem modal, o dismiss por
|
|
3231
2154
|
// toque-fora continua via DismissableLayer, sem a corrida.
|
|
3232
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { modal: false, children: [
|
|
3233
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2155
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenu, { modal: false, children: [
|
|
2156
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3234
2157
|
"button",
|
|
3235
2158
|
{
|
|
3236
2159
|
type: "button",
|
|
@@ -3244,14 +2167,14 @@ function UserMenu({
|
|
|
3244
2167
|
"data-[state=open]:ring-4 data-[state=open]:ring-ring-secondary"
|
|
3245
2168
|
].join(" "),
|
|
3246
2169
|
style: user.avatarColor ? { background: user.avatarColor } : void 0,
|
|
3247
|
-
children: user.avatarSrc ? /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-comp-lg", children: [
|
|
3248
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: user.avatarSrc, alt: user.name }),
|
|
3249
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "bg-transparent text-fg-on-brand", children: initials })
|
|
2170
|
+
children: user.avatarSrc ? /* @__PURE__ */ jsxRuntime.jsxs(avatar.Avatar, { className: "size-comp-lg", children: [
|
|
2171
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.AvatarImage, { src: user.avatarSrc, alt: user.name }),
|
|
2172
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.AvatarFallback, { className: "bg-transparent text-fg-on-brand", children: initials })
|
|
3250
2173
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, children: initials })
|
|
3251
2174
|
}
|
|
3252
2175
|
) }),
|
|
3253
2176
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3254
|
-
DropdownMenuContent,
|
|
2177
|
+
avatar.DropdownMenuContent,
|
|
3255
2178
|
{
|
|
3256
2179
|
side: "right",
|
|
3257
2180
|
align: "end",
|
|
@@ -3260,13 +2183,13 @@ function UserMenu({
|
|
|
3260
2183
|
children: [
|
|
3261
2184
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-gp-md px-pad-lg py-pad-md", children: [
|
|
3262
2185
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3263
|
-
Avatar,
|
|
2186
|
+
avatar.Avatar,
|
|
3264
2187
|
{
|
|
3265
2188
|
className: "size-comp-lg shrink-0",
|
|
3266
2189
|
style: user.avatarColor ? { background: user.avatarColor } : void 0,
|
|
3267
2190
|
children: [
|
|
3268
|
-
user.avatarSrc && /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: user.avatarSrc, alt: user.name }),
|
|
3269
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "bg-bg-brand text-fg-on-brand text-body-xs font-bold uppercase", children: initials })
|
|
2191
|
+
user.avatarSrc && /* @__PURE__ */ jsxRuntime.jsx(avatar.AvatarImage, { src: user.avatarSrc, alt: user.name }),
|
|
2192
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.AvatarFallback, { className: "bg-bg-brand text-fg-on-brand text-body-xs font-bold uppercase", children: initials })
|
|
3270
2193
|
]
|
|
3271
2194
|
}
|
|
3272
2195
|
),
|
|
@@ -3275,21 +2198,21 @@ function UserMenu({
|
|
|
3275
2198
|
user.email && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-caption-sm text-fg-muted truncate", children: user.email })
|
|
3276
2199
|
] })
|
|
3277
2200
|
] }),
|
|
3278
|
-
hasGroups && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
|
|
3279
|
-
hasLayout && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSub, { children: [
|
|
3280
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSubTrigger, { children: [
|
|
2201
|
+
hasGroups && /* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSeparator, {}),
|
|
2202
|
+
hasLayout && /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuSub, { children: [
|
|
2203
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuSubTrigger, { children: [
|
|
3281
2204
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutGrid, {}),
|
|
3282
2205
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Layout" }),
|
|
3283
2206
|
currentLayoutLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-caption-sm text-fg-subtle", children: currentLayoutLabel })
|
|
3284
2207
|
] }),
|
|
3285
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3286
|
-
DropdownMenuRadioGroup,
|
|
2208
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2209
|
+
avatar.DropdownMenuRadioGroup,
|
|
3287
2210
|
{
|
|
3288
2211
|
value: layout,
|
|
3289
2212
|
onValueChange: onLayoutChange,
|
|
3290
2213
|
children: layoutOptions.map((opt) => {
|
|
3291
2214
|
const Icon = opt.icon;
|
|
3292
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuRadioItem, { value: opt.id, children: [
|
|
2215
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuRadioItem, { value: opt.id, children: [
|
|
3293
2216
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
3294
2217
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: opt.label })
|
|
3295
2218
|
] }, opt.id);
|
|
@@ -3297,20 +2220,20 @@ function UserMenu({
|
|
|
3297
2220
|
}
|
|
3298
2221
|
) })
|
|
3299
2222
|
] }),
|
|
3300
|
-
hasTheme && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSub, { children: [
|
|
3301
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSubTrigger, { children: [
|
|
2223
|
+
hasTheme && /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuSub, { children: [
|
|
2224
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuSubTrigger, { children: [
|
|
3302
2225
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunMoon, {}),
|
|
3303
2226
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Tema" }),
|
|
3304
2227
|
currentThemeLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-caption-sm text-fg-subtle", children: currentThemeLabel })
|
|
3305
2228
|
] }),
|
|
3306
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3307
|
-
DropdownMenuRadioGroup,
|
|
2229
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2230
|
+
avatar.DropdownMenuRadioGroup,
|
|
3308
2231
|
{
|
|
3309
2232
|
value: theme,
|
|
3310
2233
|
onValueChange: onThemeChange,
|
|
3311
2234
|
children: themeOptions.map((opt) => {
|
|
3312
2235
|
const Icon = opt.icon;
|
|
3313
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuRadioItem, { value: opt.id, children: [
|
|
2236
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuRadioItem, { value: opt.id, children: [
|
|
3314
2237
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
3315
2238
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: opt.label })
|
|
3316
2239
|
] }, opt.id);
|
|
@@ -3318,13 +2241,13 @@ function UserMenu({
|
|
|
3318
2241
|
}
|
|
3319
2242
|
) })
|
|
3320
2243
|
] }),
|
|
3321
|
-
onSettings && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuItem, { onSelect: onSettings, children: [
|
|
2244
|
+
onSettings && /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuItem, { onSelect: onSettings, children: [
|
|
3322
2245
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings, {}),
|
|
3323
2246
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Configurações" })
|
|
3324
2247
|
] }),
|
|
3325
2248
|
onLogout && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3326
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
|
|
3327
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuItem, { onSelect: onLogout, children: [
|
|
2249
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSeparator, {}),
|
|
2250
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuItem, { onSelect: onLogout, children: [
|
|
3328
2251
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, {}),
|
|
3329
2252
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Sair" })
|
|
3330
2253
|
] })
|
|
@@ -3335,26 +2258,26 @@ function UserMenu({
|
|
|
3335
2258
|
] })
|
|
3336
2259
|
);
|
|
3337
2260
|
}
|
|
3338
|
-
const root = tv({
|
|
2261
|
+
const root = avatar.tv({
|
|
3339
2262
|
base: [
|
|
3340
2263
|
"flex h-screen w-full bg-bg-canvas",
|
|
3341
2264
|
"overflow-hidden"
|
|
3342
2265
|
// garante que sidebar + main não vazem viewport
|
|
3343
2266
|
]
|
|
3344
2267
|
});
|
|
3345
|
-
const main = tv({
|
|
2268
|
+
const main = avatar.tv({
|
|
3346
2269
|
base: [
|
|
3347
2270
|
"flex flex-col flex-1 min-w-0",
|
|
3348
2271
|
"overflow-hidden"
|
|
3349
2272
|
]
|
|
3350
2273
|
});
|
|
3351
|
-
const body = tv({
|
|
2274
|
+
const body = avatar.tv({
|
|
3352
2275
|
base: [
|
|
3353
2276
|
"flex flex-col flex-1 min-h-0",
|
|
3354
2277
|
"overflow-auto scrollbar-thin"
|
|
3355
2278
|
]
|
|
3356
2279
|
});
|
|
3357
|
-
const bodyInner = tv({
|
|
2280
|
+
const bodyInner = avatar.tv({
|
|
3358
2281
|
base: [
|
|
3359
2282
|
"flex flex-col flex-1 min-h-0 w-full mx-auto",
|
|
3360
2283
|
"gap-gp-4xl p-pad-6xl max-2xl:p-pad-4xl"
|
|
@@ -3451,7 +2374,7 @@ function AppShell({
|
|
|
3451
2374
|
onLogout
|
|
3452
2375
|
}
|
|
3453
2376
|
) : void 0;
|
|
3454
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(root(), className), children: [
|
|
2377
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: avatar.cn(root(), className), children: [
|
|
3455
2378
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3456
2379
|
MenuSidebar,
|
|
3457
2380
|
{
|
|
@@ -3491,7 +2414,7 @@ function AppShell({
|
|
|
3491
2414
|
rightSlot: headerRightSlot
|
|
3492
2415
|
}
|
|
3493
2416
|
),
|
|
3494
|
-
/* @__PURE__ */ jsxRuntime.jsx("main", { className: cn(body(), bodyClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2417
|
+
/* @__PURE__ */ jsxRuntime.jsx("main", { className: avatar.cn(body(), bodyClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3495
2418
|
"div",
|
|
3496
2419
|
{
|
|
3497
2420
|
className: bodyInner({
|
|
@@ -3567,52 +2490,16 @@ function useTheme() {
|
|
|
3567
2490
|
return { theme, setTheme, isDark, toggle };
|
|
3568
2491
|
}
|
|
3569
2492
|
exports.AppShell = AppShell;
|
|
3570
|
-
exports.Avatar = Avatar;
|
|
3571
|
-
exports.AvatarFallback = AvatarFallback;
|
|
3572
|
-
exports.Button = Button;
|
|
3573
2493
|
exports.Chip = Chip;
|
|
3574
2494
|
exports.ChipGroup = ChipGroup;
|
|
3575
2495
|
exports.ChipGroupItem = ChipGroupItem;
|
|
3576
|
-
exports.Command = Command;
|
|
3577
|
-
exports.CommandDialog = CommandDialog;
|
|
3578
|
-
exports.CommandEmpty = CommandEmpty;
|
|
3579
|
-
exports.CommandGroup = CommandGroup;
|
|
3580
|
-
exports.CommandInput = CommandInput;
|
|
3581
|
-
exports.CommandItem = CommandItem;
|
|
3582
|
-
exports.CommandList = CommandList;
|
|
3583
|
-
exports.Dialog = Dialog;
|
|
3584
|
-
exports.DialogClose = DialogClose;
|
|
3585
|
-
exports.DialogContent = DialogContent;
|
|
3586
|
-
exports.DialogDescription = DialogDescription;
|
|
3587
|
-
exports.DialogTitle = DialogTitle;
|
|
3588
|
-
exports.DialogTrigger = DialogTrigger;
|
|
3589
|
-
exports.DropdownMenu = DropdownMenu;
|
|
3590
|
-
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
3591
|
-
exports.DropdownMenuContent = DropdownMenuContent;
|
|
3592
|
-
exports.DropdownMenuGroup = DropdownMenuGroup;
|
|
3593
|
-
exports.DropdownMenuItem = DropdownMenuItem;
|
|
3594
|
-
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
3595
|
-
exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
|
|
3596
|
-
exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
|
|
3597
|
-
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
3598
|
-
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
3599
2496
|
exports.Header = Header;
|
|
3600
2497
|
exports.HeaderBreadcrumb = HeaderBreadcrumb;
|
|
3601
2498
|
exports.HeaderMessages = HeaderMessages;
|
|
3602
2499
|
exports.HeaderNotifications = HeaderNotifications;
|
|
3603
2500
|
exports.HeaderSearch = HeaderSearch;
|
|
3604
2501
|
exports.HeaderThemeSwitcher = HeaderThemeSwitcher;
|
|
3605
|
-
exports.InputGroup = InputGroup;
|
|
3606
|
-
exports.InputGroupAddon = InputGroupAddon;
|
|
3607
|
-
exports.InputGroupButton = InputGroupButton;
|
|
3608
|
-
exports.InputGroupInput = InputGroupInput;
|
|
3609
|
-
exports.InputGroupText = InputGroupText;
|
|
3610
|
-
exports.InputGroupTextarea = InputGroupTextarea;
|
|
3611
2502
|
exports.MenuSidebar = MenuSidebar;
|
|
3612
|
-
exports.Popover = Popover;
|
|
3613
|
-
exports.PopoverAnchor = PopoverAnchor;
|
|
3614
|
-
exports.PopoverContent = PopoverContent;
|
|
3615
|
-
exports.PopoverTrigger = PopoverTrigger;
|
|
3616
2503
|
exports.SidebarBrandIcon = SidebarBrandIcon;
|
|
3617
2504
|
exports.SidebarItem = SidebarItem;
|
|
3618
2505
|
exports.SidebarPanel = SidebarPanel;
|
|
@@ -3621,13 +2508,9 @@ exports.SidebarRail = SidebarRail;
|
|
|
3621
2508
|
exports.SidebarSection = SidebarSection;
|
|
3622
2509
|
exports.SidebarSubgroup = SidebarSubgroup;
|
|
3623
2510
|
exports.UserMenu = UserMenu;
|
|
3624
|
-
exports.buttonVariants = buttonVariants;
|
|
3625
2511
|
exports.chipCount = chipCount;
|
|
3626
2512
|
exports.chipVariants = chipVariants;
|
|
3627
|
-
exports.cn = cn;
|
|
3628
|
-
exports.inputGroupVariants = inputGroupVariants;
|
|
3629
|
-
exports.tv = tv;
|
|
3630
2513
|
exports.useControllable = useControllable;
|
|
3631
2514
|
exports.useMediaQuery = useMediaQuery;
|
|
3632
2515
|
exports.useTheme = useTheme;
|
|
3633
|
-
//# sourceMappingURL=useTheme-
|
|
2516
|
+
//# sourceMappingURL=useTheme-DQ7FaHdv.cjs.map
|