@snksergio/design-system 0.35.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-CizzMZ20.cjs → input-CJnonz-G.cjs} +3 -3
- package/dist-lib/chunks/{input-CizzMZ20.cjs.map → input-CJnonz-G.cjs.map} +1 -1
- package/dist-lib/chunks/{input-Cym0k4ZI.mjs → input-jLoO8t0I.mjs} +2 -2
- package/dist-lib/chunks/{input-Cym0k4ZI.mjs.map → input-jLoO8t0I.mjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-FhfuIg27.mjs → kpi-delta-D0g2YzDy.mjs} +3 -2
- package/dist-lib/chunks/{kpi-delta-FhfuIg27.mjs.map → kpi-delta-D0g2YzDy.mjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-DrSJPMCY.cjs → kpi-delta-D6cLnCqW.cjs} +8 -7
- package/dist-lib/chunks/{kpi-delta-DrSJPMCY.cjs.map → kpi-delta-D6cLnCqW.cjs.map} +1 -1
- package/dist-lib/chunks/{page-header-BMzUloFi.cjs → page-header-DSTprenz.cjs} +4 -4
- package/dist-lib/chunks/{page-header-BMzUloFi.cjs.map → page-header-DSTprenz.cjs.map} +1 -1
- package/dist-lib/chunks/{page-header-Buh6YlQM.mjs → page-header-Deb1excS.mjs} +2 -2
- package/dist-lib/chunks/{page-header-Buh6YlQM.mjs.map → page-header-Deb1excS.mjs.map} +1 -1
- package/dist-lib/chunks/{panel-Cdl0GPVE.mjs → panel-Cid3m9zb.mjs} +370 -9823
- package/dist-lib/chunks/panel-Cid3m9zb.mjs.map +1 -0
- package/dist-lib/chunks/{panel-DlyaLunw.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-D4alxxGV.cjs → useTheme-DQ7FaHdv.cjs} +170 -1282
- package/dist-lib/chunks/useTheme-DQ7FaHdv.cjs.map +1 -0
- package/dist-lib/chunks/{useTheme-DF2xbSdI.mjs → useTheme-UrerJ3i-.mjs} +26 -1134
- 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/command.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/dist-lib/theme/brand-blue.css +110 -110
- package/dist-lib/theme/brand-green.css +110 -110
- package/dist-lib/theme/brand-pay.css +189 -189
- package/dist-lib/theme/brand-vibrant.css +148 -148
- package/dist-lib/theme.css +10 -6
- package/dist-lib/tokens/brands/blue/semantic/color-dark.d.ts +4 -0
- package/dist-lib/tokens/brands/blue/semantic/color-dark.d.ts.map +1 -1
- package/dist-lib/tokens/brands/blue/semantic/color-light.d.ts +4 -0
- package/dist-lib/tokens/brands/blue/semantic/color-light.d.ts.map +1 -1
- package/dist-lib/tokens/brands/default/semantic/color-dark.d.ts +4 -0
- package/dist-lib/tokens/brands/default/semantic/color-dark.d.ts.map +1 -1
- package/dist-lib/tokens/brands/default/semantic/color-light.d.ts +4 -0
- package/dist-lib/tokens/brands/default/semantic/color-light.d.ts.map +1 -1
- package/dist-lib/tokens/brands/green/semantic/color-dark.d.ts +4 -0
- package/dist-lib/tokens/brands/green/semantic/color-dark.d.ts.map +1 -1
- package/dist-lib/tokens/brands/green/semantic/color-light.d.ts +4 -0
- package/dist-lib/tokens/brands/green/semantic/color-light.d.ts.map +1 -1
- package/dist-lib/tokens/brands/pay/semantic/color-dark.d.ts +4 -0
- package/dist-lib/tokens/brands/pay/semantic/color-dark.d.ts.map +1 -1
- package/dist-lib/tokens/brands/pay/semantic/color-light.d.ts +4 -0
- package/dist-lib/tokens/brands/pay/semantic/color-light.d.ts.map +1 -1
- package/dist-lib/tokens/brands/vibrant/semantic/color-dark.d.ts +4 -0
- package/dist-lib/tokens/brands/vibrant/semantic/color-dark.d.ts.map +1 -1
- package/dist-lib/tokens/brands/vibrant/semantic/color-light.d.ts +4 -0
- package/dist-lib/tokens/brands/vibrant/semantic/color-light.d.ts.map +1 -1
- package/dist-lib/tokens.cjs +12 -0
- package/dist-lib/tokens.cjs.map +1 -1
- package/dist-lib/tokens.mjs +12 -0
- package/dist-lib/tokens.mjs.map +1 -1
- package/package.json +11 -3
- package/dist-lib/chunks/panel-Cdl0GPVE.mjs.map +0 -1
- package/dist-lib/chunks/panel-DlyaLunw.cjs.map +0 -1
- package/dist-lib/chunks/useTheme-D4alxxGV.cjs.map +0 -1
- package/dist-lib/chunks/useTheme-DF2xbSdI.mjs.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,207 +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
|
-
"flex h-full w-full flex-col overflow-hidden p-pad-xl bg-popover text-popover-foreground",
|
|
844
|
-
className
|
|
845
|
-
),
|
|
846
|
-
...props
|
|
847
|
-
}
|
|
848
|
-
));
|
|
849
|
-
Command.displayName = cmdk.Command.displayName;
|
|
850
|
-
const CommandDialog = ({ children, ...props }) => {
|
|
851
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
852
|
-
DialogContent,
|
|
853
|
-
{
|
|
854
|
-
hideClose: true,
|
|
855
|
-
"aria-describedby": void 0,
|
|
856
|
-
className: cn(
|
|
857
|
-
"overflow-hidden p-0 gap-0 sm:max-w-[384px]",
|
|
858
|
-
"rounded-[12px] border border-border-default",
|
|
859
|
-
// Outline padrão de elementos flutuantes
|
|
860
|
-
"outline-float"
|
|
861
|
-
),
|
|
862
|
-
children: [
|
|
863
|
-
/* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "sr-only", children: "Comando" }),
|
|
864
|
-
/* @__PURE__ */ jsxRuntime.jsx(Command, { children })
|
|
865
|
-
]
|
|
866
|
-
}
|
|
867
|
-
) });
|
|
868
|
-
};
|
|
869
|
-
const CommandInput = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
870
|
-
"div",
|
|
871
|
-
{
|
|
872
|
-
"cmdk-input-wrapper": "",
|
|
873
|
-
className: cn(
|
|
874
|
-
"flex items-center gap-gp-md h-form-md px-pad-xl rounded-radius-lg",
|
|
875
|
-
"bg-bg-input border border-border-subtle shadow-sh-sm",
|
|
876
|
-
"transition-[border-color,box-shadow,background-color] duration-150",
|
|
877
|
-
"focus-within:border-border-brand focus-within:shadow-sh-ring",
|
|
878
|
-
"dark:bg-bg-muted dark:border-border-input dark:shadow-sh-none"
|
|
879
|
-
),
|
|
880
|
-
children: [
|
|
881
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "size-[14px] text-fg-muted shrink-0", strokeWidth: 1.8 }),
|
|
882
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
883
|
-
cmdk.Command.Input,
|
|
884
|
-
{
|
|
885
|
-
ref,
|
|
886
|
-
className: cn(
|
|
887
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none",
|
|
888
|
-
"text-body-sm font-normal text-fg-default placeholder:text-fg-muted",
|
|
889
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
890
|
-
className
|
|
891
|
-
),
|
|
892
|
-
...props
|
|
893
|
-
}
|
|
894
|
-
)
|
|
895
|
-
]
|
|
896
|
-
}
|
|
897
|
-
));
|
|
898
|
-
CommandInput.displayName = cmdk.Command.Input.displayName;
|
|
899
|
-
const CommandList = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
900
|
-
cmdk.Command.List,
|
|
901
|
-
{
|
|
902
|
-
ref,
|
|
903
|
-
className: cn(
|
|
904
|
-
"max-h-[300px] overflow-y-auto overflow-x-hidden mt-pad-md scrollbar-thin",
|
|
905
|
-
className
|
|
906
|
-
),
|
|
907
|
-
...props
|
|
908
|
-
}
|
|
909
|
-
));
|
|
910
|
-
CommandList.displayName = cmdk.Command.List.displayName;
|
|
911
|
-
const CommandEmpty = React__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
912
|
-
cmdk.Command.Empty,
|
|
913
|
-
{
|
|
914
|
-
ref,
|
|
915
|
-
className: "py-pad-5xl text-center text-body-md text-fg-muted",
|
|
916
|
-
...props
|
|
917
|
-
}
|
|
918
|
-
));
|
|
919
|
-
CommandEmpty.displayName = cmdk.Command.Empty.displayName;
|
|
920
|
-
const CommandGroup = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
921
|
-
cmdk.Command.Group,
|
|
922
|
-
{
|
|
923
|
-
ref,
|
|
924
|
-
className: cn(
|
|
925
|
-
"overflow-hidden text-fg-default",
|
|
926
|
-
"[&_[cmdk-group-heading]]:flex [&_[cmdk-group-heading]]:items-center",
|
|
927
|
-
"[&_[cmdk-group-heading]]:h-[28px] [&_[cmdk-group-heading]]:px-pad-xl",
|
|
928
|
-
"[&_[cmdk-group-heading]]:text-caption-xs [&_[cmdk-group-heading]]:font-bold",
|
|
929
|
-
"[&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider",
|
|
930
|
-
"[&_[cmdk-group-heading]]:text-fg-subtle",
|
|
931
|
-
className
|
|
932
|
-
),
|
|
933
|
-
...props
|
|
934
|
-
}
|
|
935
|
-
));
|
|
936
|
-
CommandGroup.displayName = cmdk.Command.Group.displayName;
|
|
937
|
-
const CommandSeparator = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
938
|
-
cmdk.Command.Separator,
|
|
939
|
-
{
|
|
940
|
-
ref,
|
|
941
|
-
className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
|
|
942
|
-
...props
|
|
943
|
-
}
|
|
944
|
-
));
|
|
945
|
-
CommandSeparator.displayName = cmdk.Command.Separator.displayName;
|
|
946
|
-
const CommandItem = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
947
|
-
cmdk.Command.Item,
|
|
948
|
-
{
|
|
949
|
-
ref,
|
|
950
|
-
className: cn(
|
|
951
|
-
"relative flex cursor-default select-none items-center gap-gp-md",
|
|
952
|
-
"rounded-radius-lg px-pad-xl py-pad-md",
|
|
953
|
-
"text-body-sm font-medium text-fg-muted",
|
|
954
|
-
"outline-none transition-colors",
|
|
955
|
-
"data-[selected='true']:bg-bg-muted data-[selected='true']:text-fg-default data-[selected='true']:[&_svg]:text-fg-default",
|
|
956
|
-
"data-[disabled='true']:pointer-events-none data-[disabled='true']:opacity-50",
|
|
957
|
-
"[&_svg]:pointer-events-none [&_svg]:size-[18px] [&_svg]:shrink-0 [&_svg]:text-fg-muted",
|
|
958
|
-
className
|
|
959
|
-
),
|
|
960
|
-
...props
|
|
961
|
-
}
|
|
962
|
-
));
|
|
963
|
-
CommandItem.displayName = cmdk.Command.Item.displayName;
|
|
964
|
-
const CommandShortcut = ({
|
|
965
|
-
className,
|
|
966
|
-
...props
|
|
967
|
-
}) => {
|
|
968
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
969
|
-
"span",
|
|
970
|
-
{
|
|
971
|
-
className: cn(
|
|
972
|
-
"ml-auto text-caption-sm tracking-wider text-fg-subtle",
|
|
973
|
-
className
|
|
974
|
-
),
|
|
975
|
-
...props
|
|
976
|
-
}
|
|
977
|
-
);
|
|
978
|
-
};
|
|
979
|
-
CommandShortcut.displayName = "CommandShortcut";
|
|
980
347
|
function HeaderSearch({
|
|
981
348
|
placeholder = "Buscar...",
|
|
982
349
|
shortcut = "⌘K",
|
|
@@ -1005,7 +372,7 @@ function HeaderSearch({
|
|
|
1005
372
|
"button",
|
|
1006
373
|
{
|
|
1007
374
|
type: "button",
|
|
1008
|
-
className: cn(searchFakeInput(), "hidden md:inline-flex", className),
|
|
375
|
+
className: avatar.cn(searchFakeInput(), "hidden md:inline-flex", className),
|
|
1009
376
|
onClick: () => setOpen(true),
|
|
1010
377
|
"aria-label": "Abrir busca",
|
|
1011
378
|
children: [
|
|
@@ -1016,7 +383,7 @@ function HeaderSearch({
|
|
|
1016
383
|
}
|
|
1017
384
|
),
|
|
1018
385
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1019
|
-
Button,
|
|
386
|
+
avatar.Button,
|
|
1020
387
|
{
|
|
1021
388
|
color: "secondary",
|
|
1022
389
|
variant: "outline",
|
|
@@ -1028,10 +395,10 @@ function HeaderSearch({
|
|
|
1028
395
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, {})
|
|
1029
396
|
}
|
|
1030
397
|
),
|
|
1031
|
-
/* @__PURE__ */ jsxRuntime.jsxs(CommandDialog, { open, onOpenChange: setOpen, children: [
|
|
1032
|
-
/* @__PURE__ */ jsxRuntime.jsx(CommandInput, { placeholder: commandPlaceholder }),
|
|
1033
|
-
/* @__PURE__ */ jsxRuntime.jsxs(CommandList, { children: [
|
|
1034
|
-
/* @__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 }),
|
|
1035
402
|
commandGroups.map((group, gIdx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1036
403
|
CommandGroupBlock,
|
|
1037
404
|
{
|
|
@@ -1051,10 +418,10 @@ function CommandGroupBlock({
|
|
|
1051
418
|
onSelect
|
|
1052
419
|
}) {
|
|
1053
420
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1054
|
-
/* @__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) => {
|
|
1055
422
|
const Icon = item.icon;
|
|
1056
423
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1057
|
-
CommandItem,
|
|
424
|
+
avatar.CommandItem,
|
|
1058
425
|
{
|
|
1059
426
|
value: item.id ?? item.label,
|
|
1060
427
|
keywords: item.keywords,
|
|
@@ -1066,16 +433,16 @@ function CommandGroupBlock({
|
|
|
1066
433
|
children: [
|
|
1067
434
|
Icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
1068
435
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label }),
|
|
1069
|
-
item.shortcut && /* @__PURE__ */ jsxRuntime.jsx(CommandShortcut, { children: item.shortcut })
|
|
436
|
+
item.shortcut && /* @__PURE__ */ jsxRuntime.jsx(avatar.CommandShortcut, { children: item.shortcut })
|
|
1070
437
|
]
|
|
1071
438
|
},
|
|
1072
439
|
item.id ?? item.label
|
|
1073
440
|
);
|
|
1074
441
|
}) }),
|
|
1075
|
-
!isLast && /* @__PURE__ */ jsxRuntime.jsx(CommandSeparator, {})
|
|
442
|
+
!isLast && /* @__PURE__ */ jsxRuntime.jsx(avatar.CommandSeparator, {})
|
|
1076
443
|
] });
|
|
1077
444
|
}
|
|
1078
|
-
const chipVariants = tv({
|
|
445
|
+
const chipVariants = avatar.tv({
|
|
1079
446
|
base: [
|
|
1080
447
|
"inline-flex items-center justify-center gap-gp-xs shrink-0",
|
|
1081
448
|
"font-semibold whitespace-nowrap select-none",
|
|
@@ -1200,7 +567,7 @@ const chipVariants = tv({
|
|
|
1200
567
|
selected: false
|
|
1201
568
|
}
|
|
1202
569
|
});
|
|
1203
|
-
const chipCount = tv({
|
|
570
|
+
const chipCount = avatar.tv({
|
|
1204
571
|
base: [
|
|
1205
572
|
"inline-flex items-center justify-center min-w-[16px] h-[16px] px-[4px]",
|
|
1206
573
|
"rounded-radius-full text-caption-xs font-semibold leading-none",
|
|
@@ -1221,7 +588,7 @@ const Chip = React.forwardRef(function Chip2({
|
|
|
1221
588
|
...rest
|
|
1222
589
|
}, ref) {
|
|
1223
590
|
const interactive = Boolean(onClick) || asButton === true;
|
|
1224
|
-
const classes = cn(
|
|
591
|
+
const classes = avatar.cn(
|
|
1225
592
|
chipVariants({ color, variant, size, shape, interactive, selected }),
|
|
1226
593
|
className
|
|
1227
594
|
);
|
|
@@ -1320,7 +687,7 @@ const ChipGroup = React.forwardRef(
|
|
|
1320
687
|
onValueChange: props.onValueChange,
|
|
1321
688
|
orientation,
|
|
1322
689
|
"aria-label": ariaLabel,
|
|
1323
|
-
className: cn(
|
|
690
|
+
className: avatar.cn(
|
|
1324
691
|
"inline-flex items-center gap-gp-sm",
|
|
1325
692
|
orientation === "vertical" && "flex-col",
|
|
1326
693
|
className
|
|
@@ -1339,7 +706,7 @@ const ChipGroup = React.forwardRef(
|
|
|
1339
706
|
onValueChange: props.onValueChange,
|
|
1340
707
|
orientation,
|
|
1341
708
|
"aria-label": ariaLabel,
|
|
1342
|
-
className: cn(
|
|
709
|
+
className: avatar.cn(
|
|
1343
710
|
"inline-flex items-center gap-gp-sm",
|
|
1344
711
|
orientation === "vertical" && "flex-col",
|
|
1345
712
|
className
|
|
@@ -1371,7 +738,7 @@ const ChipGroupItem = React.forwardRef(
|
|
|
1371
738
|
ToggleGroupPrimitive__namespace.Item,
|
|
1372
739
|
{
|
|
1373
740
|
ref,
|
|
1374
|
-
className: cn(
|
|
741
|
+
className: avatar.cn(
|
|
1375
742
|
// Estado OFF — visual inativo (passa pelo chipVariants normal)
|
|
1376
743
|
chipVariants({
|
|
1377
744
|
color: inactiveColor,
|
|
@@ -1390,71 +757,6 @@ const ChipGroupItem = React.forwardRef(
|
|
|
1390
757
|
);
|
|
1391
758
|
}
|
|
1392
759
|
);
|
|
1393
|
-
const Popover = PopoverPrimitive__namespace.Root;
|
|
1394
|
-
const PopoverTrigger = PopoverPrimitive__namespace.Trigger;
|
|
1395
|
-
const PopoverAnchor = PopoverPrimitive__namespace.Anchor;
|
|
1396
|
-
const POPOVER_MOBILE_SHEET = [
|
|
1397
|
-
"max-md:w-full max-md:min-w-0 max-md:max-w-none",
|
|
1398
|
-
"max-md:!max-h-[92vh]",
|
|
1399
|
-
"max-md:rounded-b-none max-md:rounded-t-[12px]",
|
|
1400
|
-
"max-md:border-x-0 max-md:border-b-0",
|
|
1401
|
-
"max-md:outline-none max-md:shadow-none",
|
|
1402
|
-
// Respiro de 20px (pad-3xl) no rodapé pra o conteúdo (footer/última seção)
|
|
1403
|
-
// não colar na borda inferior do device quando vira sheet.
|
|
1404
|
-
"max-md:pb-pad-3xl",
|
|
1405
|
-
"max-md:data-[state=open]:zoom-in-100 max-md:data-[state=closed]:zoom-out-100",
|
|
1406
|
-
"max-md:data-[state=open]:slide-in-from-bottom-12 max-md:data-[state=closed]:slide-out-to-bottom-12"
|
|
1407
|
-
].join(" ");
|
|
1408
|
-
const PopoverSheetBackdrop = () => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1409
|
-
"div",
|
|
1410
|
-
{
|
|
1411
|
-
"aria-hidden": "true",
|
|
1412
|
-
className: "fixed inset-0 z-[55] bg-overlay-scrim pointer-events-auto md:hidden animate-in fade-in-0 duration-150"
|
|
1413
|
-
}
|
|
1414
|
-
);
|
|
1415
|
-
const PopoverContent = React__namespace.forwardRef(
|
|
1416
|
-
({ className, align = "center", sideOffset = 6, disablePortal, mobileSheet = true, ...props }, ref) => {
|
|
1417
|
-
const content = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1418
|
-
PopoverPrimitive__namespace.Content,
|
|
1419
|
-
{
|
|
1420
|
-
ref,
|
|
1421
|
-
align,
|
|
1422
|
-
sideOffset,
|
|
1423
|
-
"data-mobile-sheet": mobileSheet ? "" : void 0,
|
|
1424
|
-
className: cn(
|
|
1425
|
-
"relative z-50",
|
|
1426
|
-
// Unificado com DropdownMenu/Select: bg-bg-dropdown (frosted no dark)
|
|
1427
|
-
// + border-border-default + outline-float. O `before` pseudo-element
|
|
1428
|
-
// aplica o blur backdrop (necessário pra bg-bg-dropdown semi-transparente
|
|
1429
|
-
// render correto no dark mode).
|
|
1430
|
-
"bg-bg-dropdown",
|
|
1431
|
-
"border border-border-default rounded-[12px] shadow-sh-lg outline-float",
|
|
1432
|
-
"before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150",
|
|
1433
|
-
"text-fg-default",
|
|
1434
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1435
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1436
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1437
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
1438
|
-
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1439
|
-
mobileSheet && POPOVER_MOBILE_SHEET,
|
|
1440
|
-
className
|
|
1441
|
-
),
|
|
1442
|
-
...props
|
|
1443
|
-
}
|
|
1444
|
-
);
|
|
1445
|
-
if (disablePortal) {
|
|
1446
|
-
return mobileSheet ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1447
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverSheetBackdrop, {}),
|
|
1448
|
-
content
|
|
1449
|
-
] }) : content;
|
|
1450
|
-
}
|
|
1451
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1452
|
-
mobileSheet && /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(PopoverSheetBackdrop, {}) }),
|
|
1453
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: content })
|
|
1454
|
-
] });
|
|
1455
|
-
}
|
|
1456
|
-
);
|
|
1457
|
-
PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
|
|
1458
760
|
const DEFAULT_FILTERS$1 = [
|
|
1459
761
|
{ id: "all", label: "Todas", predicate: () => true },
|
|
1460
762
|
{ id: "unread", label: "Não lidas", predicate: (n) => !!n.unread },
|
|
@@ -1476,9 +778,9 @@ function HeaderNotifications({ config, className }) {
|
|
|
1476
778
|
const filtered = items.filter(
|
|
1477
779
|
filters.find((f) => f.id === activeFilter)?.predicate ?? (() => true)
|
|
1478
780
|
);
|
|
1479
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
1480
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1481
|
-
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,
|
|
1482
784
|
{
|
|
1483
785
|
color: "secondary",
|
|
1484
786
|
variant: "outline",
|
|
@@ -1493,10 +795,10 @@ function HeaderNotifications({ config, className }) {
|
|
|
1493
795
|
}
|
|
1494
796
|
) }),
|
|
1495
797
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1496
|
-
PopoverContent,
|
|
798
|
+
avatar.PopoverContent,
|
|
1497
799
|
{
|
|
1498
800
|
align: "end",
|
|
1499
|
-
className: cn(
|
|
801
|
+
className: avatar.cn(
|
|
1500
802
|
"w-[380px] max-w-[calc(100vw-32px)] max-h-[520px] p-0 flex flex-col overflow-hidden",
|
|
1501
803
|
className
|
|
1502
804
|
),
|
|
@@ -1510,7 +812,7 @@ function HeaderNotifications({ config, className }) {
|
|
|
1510
812
|
] }),
|
|
1511
813
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: hdHeaderActions(), children: [
|
|
1512
814
|
onMarkAllRead && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1513
|
-
Button,
|
|
815
|
+
avatar.Button,
|
|
1514
816
|
{
|
|
1515
817
|
color: "secondary",
|
|
1516
818
|
variant: "ghost",
|
|
@@ -1522,7 +824,7 @@ function HeaderNotifications({ config, className }) {
|
|
|
1522
824
|
}
|
|
1523
825
|
),
|
|
1524
826
|
onMoreActions && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1525
|
-
Button,
|
|
827
|
+
avatar.Button,
|
|
1526
828
|
{
|
|
1527
829
|
color: "secondary",
|
|
1528
830
|
variant: "ghost",
|
|
@@ -1603,169 +905,6 @@ function NotificationRow({ item }) {
|
|
|
1603
905
|
}
|
|
1604
906
|
);
|
|
1605
907
|
}
|
|
1606
|
-
const inputGroupVariants = classVarianceAuthority.cva(
|
|
1607
|
-
[
|
|
1608
|
-
"group/input-group relative flex w-full items-center",
|
|
1609
|
-
"bg-bg-input dark:bg-bg-muted",
|
|
1610
|
-
"hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover",
|
|
1611
|
-
"border border-border-input rounded-radius-lg",
|
|
1612
|
-
"transition-[border-color,box-shadow,background-color] outline-none",
|
|
1613
|
-
"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"
|
|
1614
|
-
],
|
|
1615
|
-
{
|
|
1616
|
-
variants: {
|
|
1617
|
-
size: {
|
|
1618
|
-
xxs: "min-h-form-xs px-pad-md gap-gp-xs rounded-radius-md text-body-sm font-normal",
|
|
1619
|
-
xs: "min-h-form-sm px-pad-xl gap-gp-md rounded-radius-md text-body-sm font-normal",
|
|
1620
|
-
sm: "min-h-form-md px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal",
|
|
1621
|
-
md: "min-h-form-lg px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal"
|
|
1622
|
-
},
|
|
1623
|
-
state: {
|
|
1624
|
-
default: "focus-within:border-border-brand focus-within:shadow-sh-ring",
|
|
1625
|
-
error: "border-border-danger-muted focus-within:border-border-danger-muted focus-within:shadow-sh-ring-danger",
|
|
1626
|
-
warning: "border-border-warning-muted focus-within:border-border-warning-muted focus-within:shadow-sh-ring-warning",
|
|
1627
|
-
success: "border-border-success-muted focus-within:border-border-success-muted focus-within:shadow-sh-ring-success"
|
|
1628
|
-
}
|
|
1629
|
-
},
|
|
1630
|
-
defaultVariants: { size: "md", state: "default" }
|
|
1631
|
-
}
|
|
1632
|
-
);
|
|
1633
|
-
const InputGroup = React__namespace.forwardRef(
|
|
1634
|
-
({ className, size, state, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1635
|
-
"div",
|
|
1636
|
-
{
|
|
1637
|
-
ref,
|
|
1638
|
-
role: "group",
|
|
1639
|
-
"data-slot": "input-group",
|
|
1640
|
-
className: cn(inputGroupVariants({ size, state }), className),
|
|
1641
|
-
...props
|
|
1642
|
-
}
|
|
1643
|
-
)
|
|
1644
|
-
);
|
|
1645
|
-
InputGroup.displayName = "InputGroup";
|
|
1646
|
-
const inputGroupInputVariants = classVarianceAuthority.cva([
|
|
1647
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none",
|
|
1648
|
-
"text-body-sm font-normal text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
|
|
1649
|
-
"disabled:cursor-not-allowed",
|
|
1650
|
-
"file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-fg-default"
|
|
1651
|
-
]);
|
|
1652
|
-
const InputGroupInput = React__namespace.forwardRef(({ className, type, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1653
|
-
"input",
|
|
1654
|
-
{
|
|
1655
|
-
ref,
|
|
1656
|
-
type,
|
|
1657
|
-
"data-slot": "input-group-input",
|
|
1658
|
-
className: cn(inputGroupInputVariants(), className),
|
|
1659
|
-
...props
|
|
1660
|
-
}
|
|
1661
|
-
));
|
|
1662
|
-
InputGroupInput.displayName = "InputGroupInput";
|
|
1663
|
-
const inputGroupTextareaVariants = classVarianceAuthority.cva([
|
|
1664
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none resize-y",
|
|
1665
|
-
"py-pad-md",
|
|
1666
|
-
"text-body-sm font-normal leading-[1.5] text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
|
|
1667
|
-
"disabled:cursor-not-allowed"
|
|
1668
|
-
]);
|
|
1669
|
-
const InputGroupTextarea = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1670
|
-
"textarea",
|
|
1671
|
-
{
|
|
1672
|
-
ref,
|
|
1673
|
-
"data-slot": "input-group-textarea",
|
|
1674
|
-
className: cn(inputGroupTextareaVariants(), className),
|
|
1675
|
-
...props
|
|
1676
|
-
}
|
|
1677
|
-
));
|
|
1678
|
-
InputGroupTextarea.displayName = "InputGroupTextarea";
|
|
1679
|
-
const inputGroupAddonVariants = classVarianceAuthority.cva(
|
|
1680
|
-
"flex items-center text-fg-muted shrink-0 select-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1681
|
-
{
|
|
1682
|
-
variants: {
|
|
1683
|
-
align: {
|
|
1684
|
-
// Inline = horizontal (start/end do eixo do texto)
|
|
1685
|
-
"inline-start": "",
|
|
1686
|
-
"inline-end": "",
|
|
1687
|
-
// Block = vertical (top/bottom — multi-linha em textarea)
|
|
1688
|
-
"block-start": "",
|
|
1689
|
-
"block-end": ""
|
|
1690
|
-
}
|
|
1691
|
-
},
|
|
1692
|
-
defaultVariants: { align: "inline-start" }
|
|
1693
|
-
}
|
|
1694
|
-
);
|
|
1695
|
-
const InputGroupAddon = React__namespace.forwardRef(({ className, align = "inline-start", onClick, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1696
|
-
"div",
|
|
1697
|
-
{
|
|
1698
|
-
ref,
|
|
1699
|
-
role: "group",
|
|
1700
|
-
"data-slot": "input-group-addon",
|
|
1701
|
-
"data-align": align,
|
|
1702
|
-
className: cn(inputGroupAddonVariants({ align }), className),
|
|
1703
|
-
onClick: (e) => {
|
|
1704
|
-
if (e.target.closest("button")) {
|
|
1705
|
-
onClick?.(e);
|
|
1706
|
-
return;
|
|
1707
|
-
}
|
|
1708
|
-
e.currentTarget.parentElement?.querySelector(
|
|
1709
|
-
"input, textarea"
|
|
1710
|
-
)?.focus();
|
|
1711
|
-
onClick?.(e);
|
|
1712
|
-
},
|
|
1713
|
-
...props
|
|
1714
|
-
}
|
|
1715
|
-
));
|
|
1716
|
-
InputGroupAddon.displayName = "InputGroupAddon";
|
|
1717
|
-
const InputGroupText = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1718
|
-
"span",
|
|
1719
|
-
{
|
|
1720
|
-
ref,
|
|
1721
|
-
"data-slot": "input-group-text",
|
|
1722
|
-
className: cn(
|
|
1723
|
-
"text-body-xs text-fg-muted whitespace-nowrap",
|
|
1724
|
-
className
|
|
1725
|
-
),
|
|
1726
|
-
...props
|
|
1727
|
-
}
|
|
1728
|
-
));
|
|
1729
|
-
InputGroupText.displayName = "InputGroupText";
|
|
1730
|
-
const inputGroupButtonVariants = classVarianceAuthority.cva(
|
|
1731
|
-
[
|
|
1732
|
-
"inline-flex items-center justify-center shrink-0",
|
|
1733
|
-
"rounded-radius-md transition-colors outline-none cursor-pointer",
|
|
1734
|
-
"focus-visible:ring-4 focus-visible:ring-ring-brand",
|
|
1735
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
1736
|
-
"[&_svg]:size-4 [&_svg]:shrink-0"
|
|
1737
|
-
],
|
|
1738
|
-
{
|
|
1739
|
-
variants: {
|
|
1740
|
-
size: {
|
|
1741
|
-
xs: "h-form-xs px-pad-md gap-gp-xs text-body-xs font-normal",
|
|
1742
|
-
"icon-xs": "size-form-xs",
|
|
1743
|
-
sm: "h-form-sm px-pad-lg gap-gp-md text-body-xs font-normal",
|
|
1744
|
-
"icon-sm": "size-form-sm"
|
|
1745
|
-
},
|
|
1746
|
-
variant: {
|
|
1747
|
-
default: "bg-bg-muted text-fg-default hover:bg-bg-muted-hover",
|
|
1748
|
-
destructive: "bg-bg-danger text-fg-on-danger hover:bg-bg-danger-hover",
|
|
1749
|
-
outline: "border border-border-input bg-transparent text-fg-default hover:bg-bg-muted",
|
|
1750
|
-
secondary: "bg-bg-emphasis text-fg-default hover:bg-bg-muted-hover",
|
|
1751
|
-
ghost: "bg-transparent text-fg-muted hover:bg-bg-muted hover:text-fg-default",
|
|
1752
|
-
link: "bg-transparent text-fg-brand underline-offset-4 hover:underline"
|
|
1753
|
-
}
|
|
1754
|
-
},
|
|
1755
|
-
defaultVariants: { size: "xs", variant: "ghost" }
|
|
1756
|
-
}
|
|
1757
|
-
);
|
|
1758
|
-
const InputGroupButton = React__namespace.forwardRef(({ className, size, variant, type = "button", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1759
|
-
"button",
|
|
1760
|
-
{
|
|
1761
|
-
ref,
|
|
1762
|
-
type,
|
|
1763
|
-
"data-slot": "input-group-button",
|
|
1764
|
-
className: cn(inputGroupButtonVariants({ size, variant }), className),
|
|
1765
|
-
...props
|
|
1766
|
-
}
|
|
1767
|
-
));
|
|
1768
|
-
InputGroupButton.displayName = "InputGroupButton";
|
|
1769
908
|
const DEFAULT_FILTERS = [
|
|
1770
909
|
{ id: "all", label: "Tudo", predicate: () => true },
|
|
1771
910
|
{ id: "unread", label: "Não lidas", predicate: (m) => !!m.unread },
|
|
@@ -1790,9 +929,9 @@ function HeaderMessages({ config, className }) {
|
|
|
1790
929
|
const filtered = items.filter(filters.find((f) => f.id === activeFilter)?.predicate ?? (() => true)).filter(
|
|
1791
930
|
(m) => search ? m.name.toLowerCase().includes(search.toLowerCase()) : true
|
|
1792
931
|
);
|
|
1793
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
1794
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1795
|
-
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,
|
|
1796
935
|
{
|
|
1797
936
|
color: "secondary",
|
|
1798
937
|
variant: "outline",
|
|
@@ -1807,10 +946,10 @@ function HeaderMessages({ config, className }) {
|
|
|
1807
946
|
}
|
|
1808
947
|
) }),
|
|
1809
948
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1810
|
-
PopoverContent,
|
|
949
|
+
avatar.PopoverContent,
|
|
1811
950
|
{
|
|
1812
951
|
align: "end",
|
|
1813
|
-
className: cn(
|
|
952
|
+
className: avatar.cn(
|
|
1814
953
|
"w-[380px] max-w-[calc(100vw-32px)] max-h-[520px] p-0 flex flex-col overflow-hidden",
|
|
1815
954
|
className
|
|
1816
955
|
),
|
|
@@ -1824,7 +963,7 @@ function HeaderMessages({ config, className }) {
|
|
|
1824
963
|
] }),
|
|
1825
964
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: hdHeaderActions(), children: [
|
|
1826
965
|
onNewMessage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1827
|
-
Button,
|
|
966
|
+
avatar.Button,
|
|
1828
967
|
{
|
|
1829
968
|
color: "secondary",
|
|
1830
969
|
variant: "ghost",
|
|
@@ -1836,7 +975,7 @@ function HeaderMessages({ config, className }) {
|
|
|
1836
975
|
}
|
|
1837
976
|
),
|
|
1838
977
|
onExpand && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1839
|
-
Button,
|
|
978
|
+
avatar.Button,
|
|
1840
979
|
{
|
|
1841
980
|
color: "secondary",
|
|
1842
981
|
variant: "ghost",
|
|
@@ -1849,10 +988,10 @@ function HeaderMessages({ config, className }) {
|
|
|
1849
988
|
)
|
|
1850
989
|
] })
|
|
1851
990
|
] }),
|
|
1852
|
-
showSearch && /* @__PURE__ */ jsxRuntime.jsxs(InputGroup, { size: "sm", children: [
|
|
1853
|
-
/* @__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 }) }),
|
|
1854
993
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1855
|
-
InputGroupInput,
|
|
994
|
+
avatar.InputGroupInput,
|
|
1856
995
|
{
|
|
1857
996
|
type: "text",
|
|
1858
997
|
placeholder: searchPlaceholder,
|
|
@@ -1932,184 +1071,6 @@ function MessageRow({ item }) {
|
|
|
1932
1071
|
}
|
|
1933
1072
|
);
|
|
1934
1073
|
}
|
|
1935
|
-
const DropdownMenu = DropdownMenuPrimitive__namespace.Root;
|
|
1936
|
-
const DropdownMenuTrigger = DropdownMenuPrimitive__namespace.Trigger;
|
|
1937
|
-
const DropdownMenuGroup = DropdownMenuPrimitive__namespace.Group;
|
|
1938
|
-
const DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
|
|
1939
|
-
const DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
|
|
1940
|
-
const CONTAINER_CLASSES = [
|
|
1941
|
-
"relative z-50 min-w-[180px] overflow-hidden",
|
|
1942
|
-
"flex flex-col gap-px",
|
|
1943
|
-
"rounded-[12px] bg-bg-dropdown p-pad-sm",
|
|
1944
|
-
"border border-border-default shadow-sh-lg",
|
|
1945
|
-
// Outline padrão de elementos flutuantes
|
|
1946
|
-
"outline-float",
|
|
1947
|
-
"text-fg-muted",
|
|
1948
|
-
// Frosted-glass blur (necessário pra fazer o bg-dropdown semi-transparent render correto no dark)
|
|
1949
|
-
"before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150",
|
|
1950
|
-
// Animações Radix
|
|
1951
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1952
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1953
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1954
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
1955
|
-
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1956
|
-
"origin-[--radix-dropdown-menu-content-transform-origin]"
|
|
1957
|
-
].join(" ");
|
|
1958
|
-
const MOBILE_SHEET_CLASSES = [
|
|
1959
|
-
"max-md:w-full max-md:min-w-0 max-md:max-w-none",
|
|
1960
|
-
"max-md:!max-h-[92vh]",
|
|
1961
|
-
"max-md:rounded-b-none max-md:rounded-t-[12px]",
|
|
1962
|
-
"max-md:border-x-0 max-md:border-b-0",
|
|
1963
|
-
"max-md:outline-none max-md:shadow-none",
|
|
1964
|
-
"max-md:data-[state=open]:zoom-in-100 max-md:data-[state=closed]:zoom-out-100",
|
|
1965
|
-
"max-md:data-[state=open]:slide-in-from-bottom-12 max-md:data-[state=closed]:slide-out-to-bottom-12"
|
|
1966
|
-
].join(" ");
|
|
1967
|
-
const ITEM_BASE = [
|
|
1968
|
-
"relative flex cursor-default select-none items-center",
|
|
1969
|
-
"gap-pad-lg px-pad-lg py-pad-md rounded-radius-sm",
|
|
1970
|
-
"text-body-sm font-medium",
|
|
1971
|
-
"outline-none transition-colors",
|
|
1972
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1973
|
-
"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
|
|
1974
|
-
].join(" ");
|
|
1975
|
-
const ITEM_VARIANT_DEFAULT = [
|
|
1976
|
-
"text-fg-muted [&_svg]:text-fg-muted",
|
|
1977
|
-
"focus:bg-bg-muted focus:text-fg-default focus:[&_svg]:text-fg-default"
|
|
1978
|
-
].join(" ");
|
|
1979
|
-
const ITEM_VARIANT_DESTRUCTIVE = [
|
|
1980
|
-
"text-fg-danger [&_svg]:text-fg-danger",
|
|
1981
|
-
"focus:bg-bg-danger-muted focus:text-fg-danger focus:[&_svg]:text-fg-danger"
|
|
1982
|
-
].join(" ");
|
|
1983
|
-
const DropdownMenuSubTrigger = React__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1984
|
-
DropdownMenuPrimitive__namespace.SubTrigger,
|
|
1985
|
-
{
|
|
1986
|
-
ref,
|
|
1987
|
-
className: cn(
|
|
1988
|
-
ITEM_BASE,
|
|
1989
|
-
ITEM_VARIANT_DEFAULT,
|
|
1990
|
-
"data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default",
|
|
1991
|
-
inset && "pl-8",
|
|
1992
|
-
className
|
|
1993
|
-
),
|
|
1994
|
-
...props,
|
|
1995
|
-
children: [
|
|
1996
|
-
children,
|
|
1997
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto" })
|
|
1998
|
-
]
|
|
1999
|
-
}
|
|
2000
|
-
));
|
|
2001
|
-
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
|
|
2002
|
-
const DropdownMenuSubContent = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2003
|
-
DropdownMenuPrimitive__namespace.SubContent,
|
|
2004
|
-
{
|
|
2005
|
-
ref,
|
|
2006
|
-
className: cn(CONTAINER_CLASSES, className),
|
|
2007
|
-
...props
|
|
2008
|
-
}
|
|
2009
|
-
));
|
|
2010
|
-
DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
|
|
2011
|
-
const DropdownMenuContent = React__namespace.forwardRef(({ className, sideOffset = 8, mobileSheet = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2012
|
-
mobileSheet && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2013
|
-
"div",
|
|
2014
|
-
{
|
|
2015
|
-
"aria-hidden": "true",
|
|
2016
|
-
className: "fixed inset-0 z-[55] bg-overlay-scrim pointer-events-none md:hidden animate-in fade-in-0 duration-150"
|
|
2017
|
-
}
|
|
2018
|
-
) }),
|
|
2019
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2020
|
-
DropdownMenuPrimitive__namespace.Content,
|
|
2021
|
-
{
|
|
2022
|
-
ref,
|
|
2023
|
-
sideOffset,
|
|
2024
|
-
"data-mobile-sheet": mobileSheet ? "" : void 0,
|
|
2025
|
-
className: cn(
|
|
2026
|
-
CONTAINER_CLASSES,
|
|
2027
|
-
"max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto overflow-x-hidden",
|
|
2028
|
-
mobileSheet && MOBILE_SHEET_CLASSES,
|
|
2029
|
-
className
|
|
2030
|
-
),
|
|
2031
|
-
...props
|
|
2032
|
-
}
|
|
2033
|
-
) })
|
|
2034
|
-
] }));
|
|
2035
|
-
DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
|
|
2036
|
-
const DropdownMenuItem = React__namespace.forwardRef(({ className, inset, variant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2037
|
-
DropdownMenuPrimitive__namespace.Item,
|
|
2038
|
-
{
|
|
2039
|
-
ref,
|
|
2040
|
-
className: cn(
|
|
2041
|
-
ITEM_BASE,
|
|
2042
|
-
variant === "destructive" ? ITEM_VARIANT_DESTRUCTIVE : ITEM_VARIANT_DEFAULT,
|
|
2043
|
-
inset && "pl-8",
|
|
2044
|
-
className
|
|
2045
|
-
),
|
|
2046
|
-
...props
|
|
2047
|
-
}
|
|
2048
|
-
));
|
|
2049
|
-
DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
|
|
2050
|
-
const DropdownMenuCheckboxItem = React__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2051
|
-
DropdownMenuPrimitive__namespace.CheckboxItem,
|
|
2052
|
-
{
|
|
2053
|
-
ref,
|
|
2054
|
-
className: cn(
|
|
2055
|
-
ITEM_BASE,
|
|
2056
|
-
ITEM_VARIANT_DEFAULT,
|
|
2057
|
-
"pl-8 pr-pad-lg",
|
|
2058
|
-
className
|
|
2059
|
-
),
|
|
2060
|
-
checked,
|
|
2061
|
-
...props,
|
|
2062
|
-
children: [
|
|
2063
|
-
/* @__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" }) }) }),
|
|
2064
|
-
children
|
|
2065
|
-
]
|
|
2066
|
-
}
|
|
2067
|
-
));
|
|
2068
|
-
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
|
|
2069
|
-
const DropdownMenuRadioItem = React__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2070
|
-
DropdownMenuPrimitive__namespace.RadioItem,
|
|
2071
|
-
{
|
|
2072
|
-
ref,
|
|
2073
|
-
className: cn(
|
|
2074
|
-
ITEM_BASE,
|
|
2075
|
-
ITEM_VARIANT_DEFAULT,
|
|
2076
|
-
"pl-8 pr-pad-lg",
|
|
2077
|
-
// Selected state — brand tint (mantém no focus pra não voltar pra muted)
|
|
2078
|
-
"data-[state=checked]:bg-bg-brand-subtle data-[state=checked]:text-fg-brand",
|
|
2079
|
-
"data-[state=checked]:[&_svg]:text-fg-brand",
|
|
2080
|
-
"data-[state=checked]:focus:bg-bg-brand-subtle data-[state=checked]:focus:text-fg-brand",
|
|
2081
|
-
className
|
|
2082
|
-
),
|
|
2083
|
-
...props,
|
|
2084
|
-
children: [
|
|
2085
|
-
/* @__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" }) }) }),
|
|
2086
|
-
children
|
|
2087
|
-
]
|
|
2088
|
-
}
|
|
2089
|
-
));
|
|
2090
|
-
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
|
|
2091
|
-
const DropdownMenuLabel = React__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2092
|
-
DropdownMenuPrimitive__namespace.Label,
|
|
2093
|
-
{
|
|
2094
|
-
ref,
|
|
2095
|
-
className: cn(
|
|
2096
|
-
"px-pad-lg py-pad-sm text-caption-sm font-semibold uppercase tracking-wider text-fg-subtle",
|
|
2097
|
-
inset && "pl-8",
|
|
2098
|
-
className
|
|
2099
|
-
),
|
|
2100
|
-
...props
|
|
2101
|
-
}
|
|
2102
|
-
));
|
|
2103
|
-
DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
|
|
2104
|
-
const DropdownMenuSeparator = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2105
|
-
DropdownMenuPrimitive__namespace.Separator,
|
|
2106
|
-
{
|
|
2107
|
-
ref,
|
|
2108
|
-
className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
|
|
2109
|
-
...props
|
|
2110
|
-
}
|
|
2111
|
-
));
|
|
2112
|
-
DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
|
|
2113
1074
|
const DEFAULT_OPTIONS = [
|
|
2114
1075
|
{ id: "light", label: "Claro", icon: lucideReact.Sun },
|
|
2115
1076
|
{ id: "dark", label: "Escuro", icon: lucideReact.Moon }
|
|
@@ -2122,24 +1083,24 @@ function HeaderThemeSwitcher({
|
|
|
2122
1083
|
}) {
|
|
2123
1084
|
const current = options.find((o) => o.id === theme) ?? options[0];
|
|
2124
1085
|
const CurrentIcon = current?.icon ?? lucideReact.Sun;
|
|
2125
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
|
|
2126
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2127
|
-
Button,
|
|
1086
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenu, { children: [
|
|
1087
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1088
|
+
avatar.Button,
|
|
2128
1089
|
{
|
|
2129
1090
|
color: "secondary",
|
|
2130
1091
|
variant: "outline",
|
|
2131
1092
|
size: "icon-sm",
|
|
2132
|
-
className: cn("rounded-radius-md", className),
|
|
1093
|
+
className: avatar.cn("rounded-radius-md", className),
|
|
2133
1094
|
"aria-label": "Trocar tema",
|
|
2134
1095
|
title: `Tema: ${current?.label ?? ""}`,
|
|
2135
1096
|
children: /* @__PURE__ */ jsxRuntime.jsx(CurrentIcon, {})
|
|
2136
1097
|
}
|
|
2137
1098
|
) }),
|
|
2138
|
-
/* @__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) => {
|
|
2139
1100
|
const Icon = opt.icon;
|
|
2140
1101
|
const isActive = opt.id === theme;
|
|
2141
1102
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2142
|
-
DropdownMenuItem,
|
|
1103
|
+
avatar.DropdownMenuItem,
|
|
2143
1104
|
{
|
|
2144
1105
|
onSelect: () => onThemeChange(opt.id),
|
|
2145
1106
|
children: [
|
|
@@ -2171,14 +1132,14 @@ function Header({
|
|
|
2171
1132
|
rightSlot,
|
|
2172
1133
|
className
|
|
2173
1134
|
}) {
|
|
2174
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("header", { className: cn(headerRoot(), className), children: [
|
|
1135
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("header", { className: avatar.cn(headerRoot(), className), children: [
|
|
2175
1136
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: headerLeft(), children: [
|
|
2176
1137
|
onCollapseMenu && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2177
1138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2178
1139
|
"button",
|
|
2179
1140
|
{
|
|
2180
1141
|
type: "button",
|
|
2181
|
-
className: cn(
|
|
1142
|
+
className: avatar.cn(
|
|
2182
1143
|
headerIconBtn({ variant: "ghost" }),
|
|
2183
1144
|
"hidden md:inline-flex text-fg-muted hover:text-fg-default"
|
|
2184
1145
|
),
|
|
@@ -2192,7 +1153,7 @@ function Header({
|
|
|
2192
1153
|
"button",
|
|
2193
1154
|
{
|
|
2194
1155
|
type: "button",
|
|
2195
|
-
className: cn(
|
|
1156
|
+
className: avatar.cn(
|
|
2196
1157
|
headerIconBtn({ variant: "ghost" }),
|
|
2197
1158
|
"md:hidden text-fg-muted hover:text-fg-default"
|
|
2198
1159
|
),
|
|
@@ -2205,7 +1166,7 @@ function Header({
|
|
|
2205
1166
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2206
1167
|
"span",
|
|
2207
1168
|
{
|
|
2208
|
-
className: cn(headerDivider(), "hidden md:block"),
|
|
1169
|
+
className: avatar.cn(headerDivider(), "hidden md:block"),
|
|
2209
1170
|
"aria-hidden": "true"
|
|
2210
1171
|
}
|
|
2211
1172
|
)
|
|
@@ -2243,7 +1204,7 @@ function Header({
|
|
|
2243
1204
|
] })
|
|
2244
1205
|
] });
|
|
2245
1206
|
}
|
|
2246
|
-
const sidebarRoot = tv({
|
|
1207
|
+
const sidebarRoot = avatar.tv({
|
|
2247
1208
|
base: "relative flex h-screen w-fit bg-bg-sidebar text-fg-default font-sans",
|
|
2248
1209
|
variants: {
|
|
2249
1210
|
mobile: {
|
|
@@ -2261,13 +1222,13 @@ const sidebarRoot = tv({
|
|
|
2261
1222
|
{ mobile: true, mobileOpen: false, class: "-translate-x-full" }
|
|
2262
1223
|
]
|
|
2263
1224
|
});
|
|
2264
|
-
tv({
|
|
1225
|
+
avatar.tv({
|
|
2265
1226
|
base: "relative flex h-full w-fit bg-bg-sidebar text-fg-default font-sans"
|
|
2266
1227
|
});
|
|
2267
|
-
const sidebarMobileBackdrop = tv({
|
|
1228
|
+
const sidebarMobileBackdrop = avatar.tv({
|
|
2268
1229
|
base: "fixed inset-0 z-40 bg-overlay-scrim transition-opacity duration-200"
|
|
2269
1230
|
});
|
|
2270
|
-
const sidebarMobileCloseBtn = tv({
|
|
1231
|
+
const sidebarMobileCloseBtn = avatar.tv({
|
|
2271
1232
|
base: [
|
|
2272
1233
|
"absolute top-[14px] right-[14px] z-10",
|
|
2273
1234
|
"w-form-sm h-form-sm rounded-radius-md grid place-items-center",
|
|
@@ -2278,7 +1239,7 @@ const sidebarMobileCloseBtn = tv({
|
|
|
2278
1239
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2279
1240
|
]
|
|
2280
1241
|
});
|
|
2281
|
-
const sidebarRail = tv({
|
|
1242
|
+
const sidebarRail = avatar.tv({
|
|
2282
1243
|
base: [
|
|
2283
1244
|
"flex flex-col items-center w-[64px] flex-none",
|
|
2284
1245
|
"h-full sticky top-0 z-30",
|
|
@@ -2286,17 +1247,17 @@ const sidebarRail = tv({
|
|
|
2286
1247
|
"bg-bg-sidebar border-r border-border-sidebar"
|
|
2287
1248
|
]
|
|
2288
1249
|
});
|
|
2289
|
-
const sidebarRailBrand = tv({
|
|
1250
|
+
const sidebarRailBrand = avatar.tv({
|
|
2290
1251
|
base: [
|
|
2291
1252
|
"w-form-lg h-form-lg rounded-radius-xl grid place-items-center",
|
|
2292
1253
|
"bg-bg-brand text-fg-on-brand mb-pad-sm",
|
|
2293
1254
|
"transition-opacity hover:opacity-90"
|
|
2294
1255
|
]
|
|
2295
1256
|
});
|
|
2296
|
-
const sidebarRailList = tv({
|
|
1257
|
+
const sidebarRailList = avatar.tv({
|
|
2297
1258
|
base: "flex flex-col items-center gap-gp-sm flex-1"
|
|
2298
1259
|
});
|
|
2299
|
-
const sidebarRailItem = tv({
|
|
1260
|
+
const sidebarRailItem = avatar.tv({
|
|
2300
1261
|
base: [
|
|
2301
1262
|
"group/rail-item relative w-form-lg h-form-lg rounded-radius-xl grid place-items-center",
|
|
2302
1263
|
"bg-transparent border-0 cursor-pointer",
|
|
@@ -2313,13 +1274,13 @@ const sidebarRailItem = tv({
|
|
|
2313
1274
|
}
|
|
2314
1275
|
}
|
|
2315
1276
|
});
|
|
2316
|
-
const sidebarRailActiveBar = tv({
|
|
1277
|
+
const sidebarRailActiveBar = avatar.tv({
|
|
2317
1278
|
base: [
|
|
2318
1279
|
"absolute -left-pad-2xl top-pad-md bottom-pad-md w-[3px]",
|
|
2319
1280
|
"rounded-r-radius-sm bg-bg-brand"
|
|
2320
1281
|
]
|
|
2321
1282
|
});
|
|
2322
|
-
const sidebarRailTooltip = tv({
|
|
1283
|
+
const sidebarRailTooltip = avatar.tv({
|
|
2323
1284
|
base: [
|
|
2324
1285
|
"pointer-events-none absolute left-full ml-[14px] top-1/2 -translate-y-1/2",
|
|
2325
1286
|
"px-pad-md py-[5px] rounded-radius-sm",
|
|
@@ -2330,7 +1291,7 @@ const sidebarRailTooltip = tv({
|
|
|
2330
1291
|
"shadow-sh-md"
|
|
2331
1292
|
]
|
|
2332
1293
|
});
|
|
2333
|
-
const sidebarRailAdd = tv({
|
|
1294
|
+
const sidebarRailAdd = avatar.tv({
|
|
2334
1295
|
base: [
|
|
2335
1296
|
"w-form-lg h-form-lg rounded-radius-xl grid place-items-center",
|
|
2336
1297
|
"text-fg-muted bg-transparent border-0 cursor-pointer mt-pad-xs opacity-70",
|
|
@@ -2339,17 +1300,17 @@ const sidebarRailAdd = tv({
|
|
|
2339
1300
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2340
1301
|
]
|
|
2341
1302
|
});
|
|
2342
|
-
const sidebarRailUser = tv({
|
|
1303
|
+
const sidebarRailUser = avatar.tv({
|
|
2343
1304
|
base: "mt-auto"
|
|
2344
1305
|
});
|
|
2345
|
-
const sidebarRailUserDefault = tv({
|
|
1306
|
+
const sidebarRailUserDefault = avatar.tv({
|
|
2346
1307
|
base: [
|
|
2347
1308
|
"grid place-items-center size-comp-lg rounded-full",
|
|
2348
1309
|
// tracking-[0.02em] preserva tracking original (preset usa +0.06em)
|
|
2349
1310
|
"bg-bg-brand text-fg-on-brand font-bold text-caption-sm uppercase tracking-[0.02em]"
|
|
2350
1311
|
]
|
|
2351
1312
|
});
|
|
2352
|
-
const sidebarPanel = tv({
|
|
1313
|
+
const sidebarPanel = avatar.tv({
|
|
2353
1314
|
base: [
|
|
2354
1315
|
"w-[264px] flex-none h-full sticky top-0 flex flex-col overflow-hidden",
|
|
2355
1316
|
"bg-bg-sidebar border-r border-border-sidebar",
|
|
@@ -2369,10 +1330,10 @@ const sidebarPanel = tv({
|
|
|
2369
1330
|
}
|
|
2370
1331
|
}
|
|
2371
1332
|
});
|
|
2372
|
-
const sidebarPanelHeader = tv({
|
|
1333
|
+
const sidebarPanelHeader = avatar.tv({
|
|
2373
1334
|
base: "flex items-center h-[60px] flex-none px-[14px] border-b border-border-sidebar"
|
|
2374
1335
|
});
|
|
2375
|
-
const sidebarPanelTitle = tv({
|
|
1336
|
+
const sidebarPanelTitle = avatar.tv({
|
|
2376
1337
|
base: [
|
|
2377
1338
|
"flex-1 min-w-0 inline-flex items-center gap-gp-sm",
|
|
2378
1339
|
"py-pad-sm px-pad-md rounded-radius-md",
|
|
@@ -2382,13 +1343,13 @@ const sidebarPanelTitle = tv({
|
|
|
2382
1343
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2383
1344
|
]
|
|
2384
1345
|
});
|
|
2385
|
-
const sidebarPanelBody = tv({
|
|
1346
|
+
const sidebarPanelBody = avatar.tv({
|
|
2386
1347
|
base: "flex-1 overflow-y-auto p-[14px] scrollbar-thin"
|
|
2387
1348
|
});
|
|
2388
|
-
const sidebarPanelGroup = tv({
|
|
1349
|
+
const sidebarPanelGroup = avatar.tv({
|
|
2389
1350
|
base: "flex flex-col gap-px"
|
|
2390
1351
|
});
|
|
2391
|
-
const sidebarItem = tv({
|
|
1352
|
+
const sidebarItem = avatar.tv({
|
|
2392
1353
|
base: [
|
|
2393
1354
|
"flex items-center gap-[11px] h-form-lg w-full px-pad-xl rounded-radius-md",
|
|
2394
1355
|
"text-fg-default text-body-sm font-medium text-left no-underline cursor-pointer",
|
|
@@ -2420,7 +1381,7 @@ const sidebarItem = tv({
|
|
|
2420
1381
|
}
|
|
2421
1382
|
]
|
|
2422
1383
|
});
|
|
2423
|
-
const sidebarItemIcon = tv({
|
|
1384
|
+
const sidebarItemIcon = avatar.tv({
|
|
2424
1385
|
base: "flex-none w-[17px] h-[17px] text-fg-muted transition-colors",
|
|
2425
1386
|
variants: {
|
|
2426
1387
|
active: {
|
|
@@ -2431,10 +1392,10 @@ const sidebarItemIcon = tv({
|
|
|
2431
1392
|
}
|
|
2432
1393
|
}
|
|
2433
1394
|
});
|
|
2434
|
-
const sidebarItemText = tv({
|
|
1395
|
+
const sidebarItemText = avatar.tv({
|
|
2435
1396
|
base: "flex-1 min-w-0 whitespace-nowrap overflow-hidden text-ellipsis"
|
|
2436
1397
|
});
|
|
2437
|
-
const sidebarPill = tv({
|
|
1398
|
+
const sidebarPill = avatar.tv({
|
|
2438
1399
|
base: [
|
|
2439
1400
|
"inline-flex items-center justify-center flex-none",
|
|
2440
1401
|
"min-w-[22px] h-[22px] px-[7px] rounded-radius-sm",
|
|
@@ -2455,10 +1416,10 @@ const sidebarPill = tv({
|
|
|
2455
1416
|
},
|
|
2456
1417
|
defaultVariants: { kind: "default" }
|
|
2457
1418
|
});
|
|
2458
|
-
const sidebarSubgroupRoot = tv({
|
|
1419
|
+
const sidebarSubgroupRoot = avatar.tv({
|
|
2459
1420
|
base: "flex flex-col gap-px"
|
|
2460
1421
|
});
|
|
2461
|
-
const sidebarSubgroupChev = tv({
|
|
1422
|
+
const sidebarSubgroupChev = avatar.tv({
|
|
2462
1423
|
base: "flex-none w-[13px] h-[13px] text-fg-muted ml-auto transition-transform duration-200",
|
|
2463
1424
|
variants: {
|
|
2464
1425
|
collapsed: {
|
|
@@ -2466,7 +1427,7 @@ const sidebarSubgroupChev = tv({
|
|
|
2466
1427
|
}
|
|
2467
1428
|
}
|
|
2468
1429
|
});
|
|
2469
|
-
const sidebarSubgroupList = tv({
|
|
1430
|
+
const sidebarSubgroupList = avatar.tv({
|
|
2470
1431
|
base: [
|
|
2471
1432
|
"flex flex-col gap-px overflow-hidden",
|
|
2472
1433
|
"ml-pad-xl pl-[14px] py-pad-2xs",
|
|
@@ -2481,10 +1442,10 @@ const sidebarSubgroupList = tv({
|
|
|
2481
1442
|
},
|
|
2482
1443
|
defaultVariants: { collapsed: false }
|
|
2483
1444
|
});
|
|
2484
|
-
const sidebarSection = tv({
|
|
1445
|
+
const sidebarSection = avatar.tv({
|
|
2485
1446
|
base: "flex flex-col gap-px pt-[18px] mt-pad-xl border-t border-border-sidebar"
|
|
2486
1447
|
});
|
|
2487
|
-
const sidebarSectionHeader = tv({
|
|
1448
|
+
const sidebarSectionHeader = avatar.tv({
|
|
2488
1449
|
base: [
|
|
2489
1450
|
"flex items-center gap-gp-sm px-pad-lg pt-pad-sm pb-pad-md",
|
|
2490
1451
|
"bg-transparent border-0 text-left cursor-pointer select-none w-full",
|
|
@@ -2495,7 +1456,7 @@ const sidebarSectionHeader = tv({
|
|
|
2495
1456
|
"dark:text-fg-muted dark:font-medium dark:opacity-70"
|
|
2496
1457
|
]
|
|
2497
1458
|
});
|
|
2498
|
-
const sidebarSectionChev = tv({
|
|
1459
|
+
const sidebarSectionChev = avatar.tv({
|
|
2499
1460
|
base: "flex-none w-[12px] h-[12px] transition-transform duration-200",
|
|
2500
1461
|
variants: {
|
|
2501
1462
|
collapsed: {
|
|
@@ -2503,7 +1464,7 @@ const sidebarSectionChev = tv({
|
|
|
2503
1464
|
}
|
|
2504
1465
|
}
|
|
2505
1466
|
});
|
|
2506
|
-
const sidebarSectionAdd = tv({
|
|
1467
|
+
const sidebarSectionAdd = avatar.tv({
|
|
2507
1468
|
base: [
|
|
2508
1469
|
"ml-auto w-[18px] h-[18px] grid place-items-center rounded-radius-xs",
|
|
2509
1470
|
"text-fg-muted bg-transparent border-0 cursor-pointer text-body-md leading-none",
|
|
@@ -2511,7 +1472,7 @@ const sidebarSectionAdd = tv({
|
|
|
2511
1472
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-secondary"
|
|
2512
1473
|
]
|
|
2513
1474
|
});
|
|
2514
|
-
const sidebarSectionList = tv({
|
|
1475
|
+
const sidebarSectionList = avatar.tv({
|
|
2515
1476
|
base: "flex flex-col gap-px overflow-hidden transition-[max-height,opacity] duration-200 ease-out",
|
|
2516
1477
|
variants: {
|
|
2517
1478
|
collapsed: {
|
|
@@ -2525,7 +1486,7 @@ const sidebarSectionList = tv({
|
|
|
2525
1486
|
},
|
|
2526
1487
|
defaultVariants: { collapsed: false, variant: "bookmark" }
|
|
2527
1488
|
});
|
|
2528
|
-
const sidebarSectionItem = tv({
|
|
1489
|
+
const sidebarSectionItem = avatar.tv({
|
|
2529
1490
|
base: [
|
|
2530
1491
|
"flex items-center gap-[11px] h-form-sm w-full px-pad-lg rounded-radius-md",
|
|
2531
1492
|
"text-body-xs font-medium text-fg-muted no-underline cursor-pointer",
|
|
@@ -2535,10 +1496,10 @@ const sidebarSectionItem = tv({
|
|
|
2535
1496
|
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
|
|
2536
1497
|
]
|
|
2537
1498
|
});
|
|
2538
|
-
const sidebarBookmarkDot = tv({
|
|
1499
|
+
const sidebarBookmarkDot = avatar.tv({
|
|
2539
1500
|
base: "flex-none w-[10px] h-[10px] rounded-full"
|
|
2540
1501
|
});
|
|
2541
|
-
const sidebarBookmarkIcon = tv({
|
|
1502
|
+
const sidebarBookmarkIcon = avatar.tv({
|
|
2542
1503
|
base: [
|
|
2543
1504
|
// mesmo footprint do dot/avatar → alinhamento consistente; ícone herda a
|
|
2544
1505
|
// cor via `color` inline (currentColor), sem caixa de fundo
|
|
@@ -2547,14 +1508,14 @@ const sidebarBookmarkIcon = tv({
|
|
|
2547
1508
|
"[&>svg]:size-icon-xs"
|
|
2548
1509
|
]
|
|
2549
1510
|
});
|
|
2550
|
-
const sidebarChatAvatar = tv({
|
|
1511
|
+
const sidebarChatAvatar = avatar.tv({
|
|
2551
1512
|
base: [
|
|
2552
1513
|
"flex-none grid place-items-center w-icon-lg h-icon-lg rounded-full",
|
|
2553
1514
|
// tracking-[0.02em] preserva o tracking original (preset usa +0.06em); leading-none mantém centralização vertical
|
|
2554
1515
|
"text-white text-caption-xs font-bold uppercase tracking-[0.02em] leading-none"
|
|
2555
1516
|
]
|
|
2556
1517
|
});
|
|
2557
|
-
const sidebarChatStatus = tv({
|
|
1518
|
+
const sidebarChatStatus = avatar.tv({
|
|
2558
1519
|
base: "flex-none w-[7px] h-[7px] rounded-full ml-auto",
|
|
2559
1520
|
variants: {
|
|
2560
1521
|
status: {
|
|
@@ -2607,7 +1568,7 @@ function SidebarRail({
|
|
|
2607
1568
|
onAddClick,
|
|
2608
1569
|
className
|
|
2609
1570
|
}) {
|
|
2610
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: cn(sidebarRail(), className), children: [
|
|
1571
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: avatar.cn(sidebarRail(), className), children: [
|
|
2611
1572
|
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/", className: sidebarRailBrand(), "aria-label": "Home", children: brand ?? /* @__PURE__ */ jsxRuntime.jsx(SidebarBrandIcon, {}) }),
|
|
2612
1573
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: sidebarRailList(), children: [
|
|
2613
1574
|
contexts.map((ctx) => {
|
|
@@ -2647,7 +1608,7 @@ function SidebarRail({
|
|
|
2647
1608
|
const SidebarItem = React.forwardRef(
|
|
2648
1609
|
({ item, active, subitem, iconBrand, onClick, className }, ref) => {
|
|
2649
1610
|
const Icon = item.icon;
|
|
2650
|
-
const classes = cn(sidebarItem({ active, subitem }), className);
|
|
1611
|
+
const classes = avatar.cn(sidebarItem({ active, subitem }), className);
|
|
2651
1612
|
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2652
1613
|
Icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2653
1614
|
Icon,
|
|
@@ -2697,7 +1658,7 @@ function SidebarPill({
|
|
|
2697
1658
|
children,
|
|
2698
1659
|
className
|
|
2699
1660
|
}) {
|
|
2700
|
-
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 });
|
|
2701
1662
|
}
|
|
2702
1663
|
function SidebarSubgroup({
|
|
2703
1664
|
item,
|
|
@@ -2721,12 +1682,12 @@ function SidebarSubgroup({
|
|
|
2721
1682
|
onOpenChange?.(next);
|
|
2722
1683
|
};
|
|
2723
1684
|
const Icon = item.icon;
|
|
2724
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(sidebarSubgroupRoot(), className), children: [
|
|
1685
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: avatar.cn(sidebarSubgroupRoot(), className), children: [
|
|
2725
1686
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2726
1687
|
"button",
|
|
2727
1688
|
{
|
|
2728
1689
|
type: "button",
|
|
2729
|
-
className: cn(sidebarItem(), "select-none"),
|
|
1690
|
+
className: avatar.cn(sidebarItem(), "select-none"),
|
|
2730
1691
|
onClick: () => setOpen(!isOpen),
|
|
2731
1692
|
"aria-expanded": isOpen,
|
|
2732
1693
|
"aria-controls": `subgroup-${item.name}`,
|
|
@@ -2776,7 +1737,7 @@ function SidebarSection({
|
|
|
2776
1737
|
if (open === void 0) setInternalOpen(next);
|
|
2777
1738
|
onOpenChange?.(next);
|
|
2778
1739
|
};
|
|
2779
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(sidebarSection(), className), children: [
|
|
1740
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: avatar.cn(sidebarSection(), className), children: [
|
|
2780
1741
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2781
1742
|
"button",
|
|
2782
1743
|
{
|
|
@@ -2925,11 +1886,11 @@ function SidebarPanel({
|
|
|
2925
1886
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2926
1887
|
"aside",
|
|
2927
1888
|
{
|
|
2928
|
-
className: cn(sidebarPanel({ collapsed, floating, mobile }), className),
|
|
1889
|
+
className: avatar.cn(sidebarPanel({ collapsed, floating, mobile }), className),
|
|
2929
1890
|
"aria-hidden": collapsed,
|
|
2930
1891
|
children: [
|
|
2931
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: sidebarPanelHeader(), children: hasSwitcher ? /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
|
|
2932
|
-
/* @__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: [
|
|
2933
1894
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 min-w-0 whitespace-nowrap overflow-hidden text-ellipsis", children: context.label }),
|
|
2934
1895
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2935
1896
|
lucideReact.ChevronDown,
|
|
@@ -2940,11 +1901,11 @@ function SidebarPanel({
|
|
|
2940
1901
|
}
|
|
2941
1902
|
)
|
|
2942
1903
|
] }) }),
|
|
2943
|
-
/* @__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) => {
|
|
2944
1905
|
const Icon = ctx.icon;
|
|
2945
1906
|
const isActive = ctx.id === context.id;
|
|
2946
1907
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2947
|
-
DropdownMenuItem,
|
|
1908
|
+
avatar.DropdownMenuItem,
|
|
2948
1909
|
{
|
|
2949
1910
|
onSelect: () => onContextChange?.(ctx.id),
|
|
2950
1911
|
children: [
|
|
@@ -3098,7 +2059,7 @@ function MenuSidebar({
|
|
|
3098
2059
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3099
2060
|
"div",
|
|
3100
2061
|
{
|
|
3101
|
-
className: cn(
|
|
2062
|
+
className: avatar.cn(
|
|
3102
2063
|
sidebarRoot({ mobile: isMobile, mobileOpen: isMobile && openMobile }),
|
|
3103
2064
|
className
|
|
3104
2065
|
),
|
|
@@ -3165,39 +2126,6 @@ function MenuSidebar({
|
|
|
3165
2126
|
)
|
|
3166
2127
|
] });
|
|
3167
2128
|
}
|
|
3168
|
-
const Avatar = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3169
|
-
AvatarPrimitive__namespace.Root,
|
|
3170
|
-
{
|
|
3171
|
-
ref,
|
|
3172
|
-
className: cn(
|
|
3173
|
-
"relative flex size-8 shrink-0 overflow-hidden rounded-full",
|
|
3174
|
-
className
|
|
3175
|
-
),
|
|
3176
|
-
...props
|
|
3177
|
-
}
|
|
3178
|
-
));
|
|
3179
|
-
Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
|
|
3180
|
-
const AvatarImage = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3181
|
-
AvatarPrimitive__namespace.Image,
|
|
3182
|
-
{
|
|
3183
|
-
ref,
|
|
3184
|
-
className: cn("aspect-square h-full w-full", className),
|
|
3185
|
-
...props
|
|
3186
|
-
}
|
|
3187
|
-
));
|
|
3188
|
-
AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
|
|
3189
|
-
const AvatarFallback = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3190
|
-
AvatarPrimitive__namespace.Fallback,
|
|
3191
|
-
{
|
|
3192
|
-
ref,
|
|
3193
|
-
className: cn(
|
|
3194
|
-
"flex h-full w-full items-center justify-center rounded-full bg-bg-muted text-fg-muted text-body-sm font-normal",
|
|
3195
|
-
className
|
|
3196
|
-
),
|
|
3197
|
-
...props
|
|
3198
|
-
}
|
|
3199
|
-
));
|
|
3200
|
-
AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
|
|
3201
2129
|
function deriveInitials(name) {
|
|
3202
2130
|
return name.split(" ").filter(Boolean).map((p) => p[0]).join("").slice(0, 2).toUpperCase();
|
|
3203
2131
|
}
|
|
@@ -3224,8 +2152,8 @@ function UserMenu({
|
|
|
3224
2152
|
// abertura → o menu abre no pointerdown e fecha no click/pointerup do mesmo
|
|
3225
2153
|
// toque ("aparece e some", precisa 2-3 toques). Sem modal, o dismiss por
|
|
3226
2154
|
// toque-fora continua via DismissableLayer, sem a corrida.
|
|
3227
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { modal: false, children: [
|
|
3228
|
-
/* @__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(
|
|
3229
2157
|
"button",
|
|
3230
2158
|
{
|
|
3231
2159
|
type: "button",
|
|
@@ -3239,14 +2167,14 @@ function UserMenu({
|
|
|
3239
2167
|
"data-[state=open]:ring-4 data-[state=open]:ring-ring-secondary"
|
|
3240
2168
|
].join(" "),
|
|
3241
2169
|
style: user.avatarColor ? { background: user.avatarColor } : void 0,
|
|
3242
|
-
children: user.avatarSrc ? /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-comp-lg", children: [
|
|
3243
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: user.avatarSrc, alt: user.name }),
|
|
3244
|
-
/* @__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 })
|
|
3245
2173
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, children: initials })
|
|
3246
2174
|
}
|
|
3247
2175
|
) }),
|
|
3248
2176
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3249
|
-
DropdownMenuContent,
|
|
2177
|
+
avatar.DropdownMenuContent,
|
|
3250
2178
|
{
|
|
3251
2179
|
side: "right",
|
|
3252
2180
|
align: "end",
|
|
@@ -3255,13 +2183,13 @@ function UserMenu({
|
|
|
3255
2183
|
children: [
|
|
3256
2184
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-gp-md px-pad-lg py-pad-md", children: [
|
|
3257
2185
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3258
|
-
Avatar,
|
|
2186
|
+
avatar.Avatar,
|
|
3259
2187
|
{
|
|
3260
2188
|
className: "size-comp-lg shrink-0",
|
|
3261
2189
|
style: user.avatarColor ? { background: user.avatarColor } : void 0,
|
|
3262
2190
|
children: [
|
|
3263
|
-
user.avatarSrc && /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: user.avatarSrc, alt: user.name }),
|
|
3264
|
-
/* @__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 })
|
|
3265
2193
|
]
|
|
3266
2194
|
}
|
|
3267
2195
|
),
|
|
@@ -3270,21 +2198,21 @@ function UserMenu({
|
|
|
3270
2198
|
user.email && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-caption-sm text-fg-muted truncate", children: user.email })
|
|
3271
2199
|
] })
|
|
3272
2200
|
] }),
|
|
3273
|
-
hasGroups && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
|
|
3274
|
-
hasLayout && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSub, { children: [
|
|
3275
|
-
/* @__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: [
|
|
3276
2204
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutGrid, {}),
|
|
3277
2205
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Layout" }),
|
|
3278
2206
|
currentLayoutLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-caption-sm text-fg-subtle", children: currentLayoutLabel })
|
|
3279
2207
|
] }),
|
|
3280
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3281
|
-
DropdownMenuRadioGroup,
|
|
2208
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2209
|
+
avatar.DropdownMenuRadioGroup,
|
|
3282
2210
|
{
|
|
3283
2211
|
value: layout,
|
|
3284
2212
|
onValueChange: onLayoutChange,
|
|
3285
2213
|
children: layoutOptions.map((opt) => {
|
|
3286
2214
|
const Icon = opt.icon;
|
|
3287
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuRadioItem, { value: opt.id, children: [
|
|
2215
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuRadioItem, { value: opt.id, children: [
|
|
3288
2216
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
3289
2217
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: opt.label })
|
|
3290
2218
|
] }, opt.id);
|
|
@@ -3292,20 +2220,20 @@ function UserMenu({
|
|
|
3292
2220
|
}
|
|
3293
2221
|
) })
|
|
3294
2222
|
] }),
|
|
3295
|
-
hasTheme && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSub, { children: [
|
|
3296
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSubTrigger, { children: [
|
|
2223
|
+
hasTheme && /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuSub, { children: [
|
|
2224
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuSubTrigger, { children: [
|
|
3297
2225
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunMoon, {}),
|
|
3298
2226
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Tema" }),
|
|
3299
2227
|
currentThemeLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-caption-sm text-fg-subtle", children: currentThemeLabel })
|
|
3300
2228
|
] }),
|
|
3301
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3302
|
-
DropdownMenuRadioGroup,
|
|
2229
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2230
|
+
avatar.DropdownMenuRadioGroup,
|
|
3303
2231
|
{
|
|
3304
2232
|
value: theme,
|
|
3305
2233
|
onValueChange: onThemeChange,
|
|
3306
2234
|
children: themeOptions.map((opt) => {
|
|
3307
2235
|
const Icon = opt.icon;
|
|
3308
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuRadioItem, { value: opt.id, children: [
|
|
2236
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuRadioItem, { value: opt.id, children: [
|
|
3309
2237
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
3310
2238
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: opt.label })
|
|
3311
2239
|
] }, opt.id);
|
|
@@ -3313,13 +2241,13 @@ function UserMenu({
|
|
|
3313
2241
|
}
|
|
3314
2242
|
) })
|
|
3315
2243
|
] }),
|
|
3316
|
-
onSettings && /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuItem, { onSelect: onSettings, children: [
|
|
2244
|
+
onSettings && /* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuItem, { onSelect: onSettings, children: [
|
|
3317
2245
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings, {}),
|
|
3318
2246
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Configurações" })
|
|
3319
2247
|
] }),
|
|
3320
2248
|
onLogout && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3321
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
|
|
3322
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuItem, { onSelect: onLogout, children: [
|
|
2249
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.DropdownMenuSeparator, {}),
|
|
2250
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.DropdownMenuItem, { onSelect: onLogout, children: [
|
|
3323
2251
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, {}),
|
|
3324
2252
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Sair" })
|
|
3325
2253
|
] })
|
|
@@ -3330,26 +2258,26 @@ function UserMenu({
|
|
|
3330
2258
|
] })
|
|
3331
2259
|
);
|
|
3332
2260
|
}
|
|
3333
|
-
const root = tv({
|
|
2261
|
+
const root = avatar.tv({
|
|
3334
2262
|
base: [
|
|
3335
2263
|
"flex h-screen w-full bg-bg-canvas",
|
|
3336
2264
|
"overflow-hidden"
|
|
3337
2265
|
// garante que sidebar + main não vazem viewport
|
|
3338
2266
|
]
|
|
3339
2267
|
});
|
|
3340
|
-
const main = tv({
|
|
2268
|
+
const main = avatar.tv({
|
|
3341
2269
|
base: [
|
|
3342
2270
|
"flex flex-col flex-1 min-w-0",
|
|
3343
2271
|
"overflow-hidden"
|
|
3344
2272
|
]
|
|
3345
2273
|
});
|
|
3346
|
-
const body = tv({
|
|
2274
|
+
const body = avatar.tv({
|
|
3347
2275
|
base: [
|
|
3348
2276
|
"flex flex-col flex-1 min-h-0",
|
|
3349
2277
|
"overflow-auto scrollbar-thin"
|
|
3350
2278
|
]
|
|
3351
2279
|
});
|
|
3352
|
-
const bodyInner = tv({
|
|
2280
|
+
const bodyInner = avatar.tv({
|
|
3353
2281
|
base: [
|
|
3354
2282
|
"flex flex-col flex-1 min-h-0 w-full mx-auto",
|
|
3355
2283
|
"gap-gp-4xl p-pad-6xl max-2xl:p-pad-4xl"
|
|
@@ -3446,7 +2374,7 @@ function AppShell({
|
|
|
3446
2374
|
onLogout
|
|
3447
2375
|
}
|
|
3448
2376
|
) : void 0;
|
|
3449
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(root(), className), children: [
|
|
2377
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: avatar.cn(root(), className), children: [
|
|
3450
2378
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3451
2379
|
MenuSidebar,
|
|
3452
2380
|
{
|
|
@@ -3486,7 +2414,7 @@ function AppShell({
|
|
|
3486
2414
|
rightSlot: headerRightSlot
|
|
3487
2415
|
}
|
|
3488
2416
|
),
|
|
3489
|
-
/* @__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(
|
|
3490
2418
|
"div",
|
|
3491
2419
|
{
|
|
3492
2420
|
className: bodyInner({
|
|
@@ -3562,52 +2490,16 @@ function useTheme() {
|
|
|
3562
2490
|
return { theme, setTheme, isDark, toggle };
|
|
3563
2491
|
}
|
|
3564
2492
|
exports.AppShell = AppShell;
|
|
3565
|
-
exports.Avatar = Avatar;
|
|
3566
|
-
exports.AvatarFallback = AvatarFallback;
|
|
3567
|
-
exports.Button = Button;
|
|
3568
2493
|
exports.Chip = Chip;
|
|
3569
2494
|
exports.ChipGroup = ChipGroup;
|
|
3570
2495
|
exports.ChipGroupItem = ChipGroupItem;
|
|
3571
|
-
exports.Command = Command;
|
|
3572
|
-
exports.CommandDialog = CommandDialog;
|
|
3573
|
-
exports.CommandEmpty = CommandEmpty;
|
|
3574
|
-
exports.CommandGroup = CommandGroup;
|
|
3575
|
-
exports.CommandInput = CommandInput;
|
|
3576
|
-
exports.CommandItem = CommandItem;
|
|
3577
|
-
exports.CommandList = CommandList;
|
|
3578
|
-
exports.Dialog = Dialog;
|
|
3579
|
-
exports.DialogClose = DialogClose;
|
|
3580
|
-
exports.DialogContent = DialogContent;
|
|
3581
|
-
exports.DialogDescription = DialogDescription;
|
|
3582
|
-
exports.DialogTitle = DialogTitle;
|
|
3583
|
-
exports.DialogTrigger = DialogTrigger;
|
|
3584
|
-
exports.DropdownMenu = DropdownMenu;
|
|
3585
|
-
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
3586
|
-
exports.DropdownMenuContent = DropdownMenuContent;
|
|
3587
|
-
exports.DropdownMenuGroup = DropdownMenuGroup;
|
|
3588
|
-
exports.DropdownMenuItem = DropdownMenuItem;
|
|
3589
|
-
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
3590
|
-
exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
|
|
3591
|
-
exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
|
|
3592
|
-
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
3593
|
-
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
3594
2496
|
exports.Header = Header;
|
|
3595
2497
|
exports.HeaderBreadcrumb = HeaderBreadcrumb;
|
|
3596
2498
|
exports.HeaderMessages = HeaderMessages;
|
|
3597
2499
|
exports.HeaderNotifications = HeaderNotifications;
|
|
3598
2500
|
exports.HeaderSearch = HeaderSearch;
|
|
3599
2501
|
exports.HeaderThemeSwitcher = HeaderThemeSwitcher;
|
|
3600
|
-
exports.InputGroup = InputGroup;
|
|
3601
|
-
exports.InputGroupAddon = InputGroupAddon;
|
|
3602
|
-
exports.InputGroupButton = InputGroupButton;
|
|
3603
|
-
exports.InputGroupInput = InputGroupInput;
|
|
3604
|
-
exports.InputGroupText = InputGroupText;
|
|
3605
|
-
exports.InputGroupTextarea = InputGroupTextarea;
|
|
3606
2502
|
exports.MenuSidebar = MenuSidebar;
|
|
3607
|
-
exports.Popover = Popover;
|
|
3608
|
-
exports.PopoverAnchor = PopoverAnchor;
|
|
3609
|
-
exports.PopoverContent = PopoverContent;
|
|
3610
|
-
exports.PopoverTrigger = PopoverTrigger;
|
|
3611
2503
|
exports.SidebarBrandIcon = SidebarBrandIcon;
|
|
3612
2504
|
exports.SidebarItem = SidebarItem;
|
|
3613
2505
|
exports.SidebarPanel = SidebarPanel;
|
|
@@ -3616,13 +2508,9 @@ exports.SidebarRail = SidebarRail;
|
|
|
3616
2508
|
exports.SidebarSection = SidebarSection;
|
|
3617
2509
|
exports.SidebarSubgroup = SidebarSubgroup;
|
|
3618
2510
|
exports.UserMenu = UserMenu;
|
|
3619
|
-
exports.buttonVariants = buttonVariants;
|
|
3620
2511
|
exports.chipCount = chipCount;
|
|
3621
2512
|
exports.chipVariants = chipVariants;
|
|
3622
|
-
exports.cn = cn;
|
|
3623
|
-
exports.inputGroupVariants = inputGroupVariants;
|
|
3624
|
-
exports.tv = tv;
|
|
3625
2513
|
exports.useControllable = useControllable;
|
|
3626
2514
|
exports.useMediaQuery = useMediaQuery;
|
|
3627
2515
|
exports.useTheme = useTheme;
|
|
3628
|
-
//# sourceMappingURL=useTheme-
|
|
2516
|
+
//# sourceMappingURL=useTheme-DQ7FaHdv.cjs.map
|