@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,436 +1,8 @@
|
|
|
1
|
-
import { jsxs,
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { extendTailwindMerge } from "tailwind-merge";
|
|
6
|
-
import { ChevronRight, X, Search, Bell, CheckCheck, MoreHorizontal, MessageSquare, PenLine, Maximize2, Check, Sun, Moon, PanelLeftOpen, PanelLeftClose, Menu, Plus, ChevronDown, LayoutGrid, SunMoon, Settings, LogOut } from "lucide-react";
|
|
7
|
-
import { tv as tv$1 } from "tailwind-variants";
|
|
8
|
-
import { Command as Command$1 } from "cmdk";
|
|
9
|
-
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as Fragment$1, useState, useEffect, forwardRef, createContext, useContext, useCallback, useRef } from "react";
|
|
3
|
+
import { t as tv, c as cn, B as Button, d as CommandDialog, g as CommandInput, i as CommandList, e as CommandEmpty, f as CommandGroup, h as CommandItem, k as CommandShortcut, j as CommandSeparator, U as Popover, Y as PopoverTrigger, X as PopoverContent, O as InputGroup, P as InputGroupAddon, R as InputGroupInput, v as DropdownMenu, N as DropdownMenuTrigger, x as DropdownMenuContent, z as DropdownMenuItem, A as Avatar, b as AvatarImage, a as AvatarFallback, I as DropdownMenuSeparator, K as DropdownMenuSub, M as DropdownMenuSubTrigger, L as DropdownMenuSubContent, G as DropdownMenuRadioGroup, H as DropdownMenuRadioItem } from "./avatar-CIHTveDJ.mjs";
|
|
4
|
+
import { ChevronRight, Search, Bell, CheckCheck, MoreHorizontal, MessageSquare, PenLine, Maximize2, Sun, Moon, Check, PanelLeftOpen, PanelLeftClose, Menu, Plus, ChevronDown, X, LayoutGrid, SunMoon, Settings, LogOut } from "lucide-react";
|
|
10
5
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
11
|
-
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
12
|
-
import { cva } from "class-variance-authority";
|
|
13
|
-
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
14
|
-
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
15
|
-
const isDsPad = (v) => /^(pad|sp)-/.test(v);
|
|
16
|
-
const isDsGap = (v) => /^gp-/.test(v);
|
|
17
|
-
const isDsRadius = (v) => /^radius-/.test(v);
|
|
18
|
-
const isDsShadow = (v) => /^sh-/.test(v);
|
|
19
|
-
const isDsForm = (v) => /^form-/.test(v);
|
|
20
|
-
const twMerge = extendTailwindMerge({
|
|
21
|
-
extend: {
|
|
22
|
-
classGroups: {
|
|
23
|
-
"font-size": [
|
|
24
|
-
{
|
|
25
|
-
// Lista 1:1 com tokens/brands/default/semantic/typography.ts.
|
|
26
|
-
// Manter sincronizado com src/utils/tv.ts. Ver L-016.
|
|
27
|
-
text: [
|
|
28
|
-
// Displays (fluid clamp)
|
|
29
|
-
"display-2xl",
|
|
30
|
-
"display-xl",
|
|
31
|
-
"display-lg",
|
|
32
|
-
"display-md",
|
|
33
|
-
// Headings (xs estático, sm-xl fluid clamp)
|
|
34
|
-
"heading-xl",
|
|
35
|
-
"heading-lg",
|
|
36
|
-
"heading-md",
|
|
37
|
-
"heading-sm",
|
|
38
|
-
"heading-xs",
|
|
39
|
-
// Titles (weight 600 default)
|
|
40
|
-
"title-lg",
|
|
41
|
-
"title-md",
|
|
42
|
-
"title-sm",
|
|
43
|
-
// Body (xs/sm = weight 500 interactive; md-2xl = 400 corrido)
|
|
44
|
-
"body-2xl",
|
|
45
|
-
"body-xl",
|
|
46
|
-
"body-lg",
|
|
47
|
-
"body-md",
|
|
48
|
-
"body-sm",
|
|
49
|
-
"body-xs",
|
|
50
|
-
// Captions (weight 400)
|
|
51
|
-
"caption-md",
|
|
52
|
-
"caption-sm",
|
|
53
|
-
"caption-xs",
|
|
54
|
-
// Code (mono regular)
|
|
55
|
-
"code-md",
|
|
56
|
-
"code-sm"
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
/* ── Padding ──────────────────────────────────────────────────────── */
|
|
61
|
-
p: [{ p: [isDsPad] }],
|
|
62
|
-
px: [{ px: [isDsPad] }],
|
|
63
|
-
py: [{ py: [isDsPad] }],
|
|
64
|
-
pt: [{ pt: [isDsPad] }],
|
|
65
|
-
pr: [{ pr: [isDsPad] }],
|
|
66
|
-
pb: [{ pb: [isDsPad] }],
|
|
67
|
-
pl: [{ pl: [isDsPad] }],
|
|
68
|
-
ps: [{ ps: [isDsPad] }],
|
|
69
|
-
pe: [{ pe: [isDsPad] }],
|
|
70
|
-
/* ── Margin (usa mesmo sp-*) ──────────────────────────────────────── */
|
|
71
|
-
m: [{ m: [isDsPad] }],
|
|
72
|
-
mx: [{ mx: [isDsPad] }],
|
|
73
|
-
my: [{ my: [isDsPad] }],
|
|
74
|
-
mt: [{ mt: [isDsPad] }],
|
|
75
|
-
mr: [{ mr: [isDsPad] }],
|
|
76
|
-
mb: [{ mb: [isDsPad] }],
|
|
77
|
-
ml: [{ ml: [isDsPad] }],
|
|
78
|
-
ms: [{ ms: [isDsPad] }],
|
|
79
|
-
me: [{ me: [isDsPad] }],
|
|
80
|
-
/* ── Inset / position (top/right/bottom/left) ─────────────────────── */
|
|
81
|
-
inset: [{ inset: [isDsPad] }],
|
|
82
|
-
"inset-x": [{ "inset-x": [isDsPad] }],
|
|
83
|
-
"inset-y": [{ "inset-y": [isDsPad] }],
|
|
84
|
-
"top": [{ top: [isDsPad] }],
|
|
85
|
-
"right": [{ right: [isDsPad] }],
|
|
86
|
-
"bottom": [{ bottom: [isDsPad] }],
|
|
87
|
-
"left": [{ left: [isDsPad] }],
|
|
88
|
-
"start": [{ start: [isDsPad] }],
|
|
89
|
-
"end": [{ end: [isDsPad] }],
|
|
90
|
-
/* ── Gap ──────────────────────────────────────────────────────────── */
|
|
91
|
-
gap: [{ gap: [isDsGap] }],
|
|
92
|
-
"gap-x": [{ "gap-x": [isDsGap] }],
|
|
93
|
-
"gap-y": [{ "gap-y": [isDsGap] }],
|
|
94
|
-
/* ── Rounded (todas as cantos) ────────────────────────────────────── */
|
|
95
|
-
rounded: [{ rounded: [isDsRadius] }],
|
|
96
|
-
"rounded-s": [{ "rounded-s": [isDsRadius] }],
|
|
97
|
-
"rounded-e": [{ "rounded-e": [isDsRadius] }],
|
|
98
|
-
"rounded-t": [{ "rounded-t": [isDsRadius] }],
|
|
99
|
-
"rounded-r": [{ "rounded-r": [isDsRadius] }],
|
|
100
|
-
"rounded-b": [{ "rounded-b": [isDsRadius] }],
|
|
101
|
-
"rounded-l": [{ "rounded-l": [isDsRadius] }],
|
|
102
|
-
"rounded-ss": [{ "rounded-ss": [isDsRadius] }],
|
|
103
|
-
"rounded-se": [{ "rounded-se": [isDsRadius] }],
|
|
104
|
-
"rounded-ee": [{ "rounded-ee": [isDsRadius] }],
|
|
105
|
-
"rounded-es": [{ "rounded-es": [isDsRadius] }],
|
|
106
|
-
"rounded-tl": [{ "rounded-tl": [isDsRadius] }],
|
|
107
|
-
"rounded-tr": [{ "rounded-tr": [isDsRadius] }],
|
|
108
|
-
"rounded-br": [{ "rounded-br": [isDsRadius] }],
|
|
109
|
-
"rounded-bl": [{ "rounded-bl": [isDsRadius] }],
|
|
110
|
-
/* ── Shadow ───────────────────────────────────────────────────────── */
|
|
111
|
-
shadow: [{ shadow: [isDsShadow] }],
|
|
112
|
-
/* ── Form sizes (min-h, h, w, size) ───────────────────────────────── */
|
|
113
|
-
"min-h": [{ "min-h": [isDsForm] }],
|
|
114
|
-
h: [{ h: [isDsForm] }],
|
|
115
|
-
w: [{ w: [isDsForm] }],
|
|
116
|
-
size: [{ size: [isDsForm] }]
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
function cn(...inputs) {
|
|
121
|
-
return twMerge(clsx(inputs));
|
|
122
|
-
}
|
|
123
|
-
const twMergeConfig = {
|
|
124
|
-
extend: {
|
|
125
|
-
classGroups: {
|
|
126
|
-
"font-size": [
|
|
127
|
-
{
|
|
128
|
-
text: [
|
|
129
|
-
// Displays (fluid clamp)
|
|
130
|
-
"display-2xl",
|
|
131
|
-
"display-xl",
|
|
132
|
-
"display-lg",
|
|
133
|
-
"display-md",
|
|
134
|
-
// Headings (xs estático, sm-xl fluid clamp)
|
|
135
|
-
"heading-xl",
|
|
136
|
-
"heading-lg",
|
|
137
|
-
"heading-md",
|
|
138
|
-
"heading-sm",
|
|
139
|
-
"heading-xs",
|
|
140
|
-
// Titles (weight 600 default)
|
|
141
|
-
"title-lg",
|
|
142
|
-
"title-md",
|
|
143
|
-
"title-sm",
|
|
144
|
-
// Body (xs/sm = weight 500 interactive; md-2xl = 400 corrido)
|
|
145
|
-
"body-2xl",
|
|
146
|
-
"body-xl",
|
|
147
|
-
"body-lg",
|
|
148
|
-
"body-md",
|
|
149
|
-
"body-sm",
|
|
150
|
-
"body-xs",
|
|
151
|
-
// Captions (weight 400)
|
|
152
|
-
"caption-md",
|
|
153
|
-
"caption-sm",
|
|
154
|
-
"caption-xs",
|
|
155
|
-
// Stat (número de métrica/KPI — estático, bold, leading tight)
|
|
156
|
-
"stat-xl",
|
|
157
|
-
"stat-lg",
|
|
158
|
-
"stat-md",
|
|
159
|
-
"stat-sm",
|
|
160
|
-
// Code (mono regular)
|
|
161
|
-
"code-md",
|
|
162
|
-
"code-sm"
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
]
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
const tv = (options, config) => tv$1(options, {
|
|
170
|
-
...config,
|
|
171
|
-
twMergeConfig
|
|
172
|
-
});
|
|
173
|
-
const buttonVariants = tv({
|
|
174
|
-
base: [
|
|
175
|
-
"inline-flex items-center justify-center",
|
|
176
|
-
"select-none whitespace-nowrap",
|
|
177
|
-
"focus-visible:outline-none",
|
|
178
|
-
"border border-transparent",
|
|
179
|
-
"text-body-sm font-semibold leading-none",
|
|
180
|
-
// 13px / 600 — alinhado com sandbox btn
|
|
181
|
-
"[&_svg]:shrink-0",
|
|
182
|
-
// SVG não diminui; tamanho controlado por size
|
|
183
|
-
"transition-all duration-200 ease-out",
|
|
184
|
-
"cursor-pointer",
|
|
185
|
-
"focus-visible:ring-4"
|
|
186
|
-
],
|
|
187
|
-
variants: {
|
|
188
|
-
color: {
|
|
189
|
-
primary: "focus-visible:ring-ring-brand",
|
|
190
|
-
secondary: "focus-visible:ring-ring-secondary",
|
|
191
|
-
critical: "focus-visible:ring-ring-danger",
|
|
192
|
-
success: "focus-visible:ring-ring-success",
|
|
193
|
-
warning: "focus-visible:ring-ring-warning"
|
|
194
|
-
},
|
|
195
|
-
variant: {
|
|
196
|
-
filled: "",
|
|
197
|
-
outline: "",
|
|
198
|
-
soft: "",
|
|
199
|
-
ghost: "bg-transparent"
|
|
200
|
-
},
|
|
201
|
-
size: {
|
|
202
|
-
// h28 / pad 10 / gap 6 / radius 8 / icon 12
|
|
203
|
-
"2xs": "min-h-form-xs px-pad-lg gap-gp-sm rounded-radius-md [&_svg]:size-[12px]",
|
|
204
|
-
// h32 / pad 12 / gap 6 / radius 8 / icon 14
|
|
205
|
-
xs: "min-h-form-sm px-pad-xl gap-gp-sm rounded-radius-md [&_svg]:size-[14px]",
|
|
206
|
-
// h36 / pad 12 / gap 6 / radius 10 / icon 14
|
|
207
|
-
sm: "min-h-form-md px-pad-xl gap-gp-sm rounded-radius-lg [&_svg]:size-[14px]",
|
|
208
|
-
// h40 / pad 16 / gap 6 / radius 10 / icon 14 (alinhado com sandbox Exportar)
|
|
209
|
-
md: "min-h-form-lg px-pad-2xl gap-gp-sm rounded-radius-lg [&_svg]:size-[14px]",
|
|
210
|
-
// h44 / pad 16 / gap 8 / radius 10 / icon 16
|
|
211
|
-
lg: "min-h-form-xl px-pad-2xl gap-gp-md rounded-radius-lg [&_svg]:size-[16px]",
|
|
212
|
-
// Icon buttons — width = height (square). Regra: SVG +2px vs versão com label
|
|
213
|
-
// (precisa preencher mais o quadrado sem o texto carregando peso visual).
|
|
214
|
-
"icon-2xs": "size-form-xs rounded-radius-md p-0 [&_svg]:size-[14px]",
|
|
215
|
-
// 28×28 / +2 (12→14)
|
|
216
|
-
"icon-xs": "size-form-sm rounded-radius-md p-0 [&_svg]:size-[16px]",
|
|
217
|
-
// 32×32 / +2 (14→16)
|
|
218
|
-
"icon-sm": "size-form-md rounded-radius-lg p-0 [&_svg]:size-[16px]",
|
|
219
|
-
// 36×36 / +2 (14→16)
|
|
220
|
-
"icon-md": "size-form-lg rounded-radius-lg p-0 [&_svg]:size-[16px]",
|
|
221
|
-
// 40×40 / +2 (14→16)
|
|
222
|
-
"icon-lg": "size-form-xl rounded-radius-lg p-0 [&_svg]:size-[18px]"
|
|
223
|
-
// 44×44 / +2 (16→18)
|
|
224
|
-
},
|
|
225
|
-
fullWidth: {
|
|
226
|
-
true: "w-full flex-1"
|
|
227
|
-
},
|
|
228
|
-
/**
|
|
229
|
-
* Shape do botão:
|
|
230
|
-
* - rounded (default): mantém o radius da `size` (varia por tamanho)
|
|
231
|
-
* - pill: força `rounded-full` (override com `!` pra ganhar do size)
|
|
232
|
-
*/
|
|
233
|
-
shape: {
|
|
234
|
-
rounded: "",
|
|
235
|
-
pill: "!rounded-full"
|
|
236
|
-
},
|
|
237
|
-
disabled: {
|
|
238
|
-
true: "pointer-events-none opacity-50"
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
compoundVariants: [
|
|
242
|
-
// ── Primary (brand) ─────────────────────────────────────────────
|
|
243
|
-
{
|
|
244
|
-
color: "primary",
|
|
245
|
-
variant: "filled",
|
|
246
|
-
class: "bg-bg-brand text-fg-on-brand hover:bg-bg-brand-hover"
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
color: "primary",
|
|
250
|
-
variant: "outline",
|
|
251
|
-
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"
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
color: "primary",
|
|
255
|
-
variant: "soft",
|
|
256
|
-
class: "bg-bg-brand-subtle text-fg-brand hover:bg-bg-brand-subtle-hover"
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
color: "primary",
|
|
260
|
-
variant: "ghost",
|
|
261
|
-
class: "text-fg-brand hover:bg-bg-brand-subtle"
|
|
262
|
-
},
|
|
263
|
-
// ── Secondary (neutro) ──────────────────────────────────────────
|
|
264
|
-
{
|
|
265
|
-
color: "secondary",
|
|
266
|
-
variant: "filled",
|
|
267
|
-
class: "bg-bg-muted text-fg-muted hover:bg-bg-muted-hover hover:text-fg-default"
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
// Outline alinhado com `.btn.tbl-tool-btn` do design-and-table-v2:
|
|
271
|
-
// light = bg-surface + border-subtle + fg-default + shadow-sm (mantém no hover)
|
|
272
|
-
// dark = bg-muted + border-input + fg-muted + sem shadow
|
|
273
|
-
color: "secondary",
|
|
274
|
-
variant: "outline",
|
|
275
|
-
class: [
|
|
276
|
-
"bg-bg-surface border-border-subtle text-fg-default shadow-sh-sm",
|
|
277
|
-
"dark:bg-bg-muted dark:border-border-input dark:text-fg-muted dark:shadow-sh-none",
|
|
278
|
-
"hover:bg-bg-muted-hover hover:text-fg-default",
|
|
279
|
-
"dark:hover:bg-bg-muted-hover dark:hover:text-fg-default"
|
|
280
|
-
].join(" ")
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
color: "secondary",
|
|
284
|
-
variant: "soft",
|
|
285
|
-
class: "bg-bg-muted text-fg-muted hover:bg-bg-muted-hover hover:text-fg-default"
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
color: "secondary",
|
|
289
|
-
variant: "ghost",
|
|
290
|
-
class: "text-fg-muted hover:bg-bg-muted hover:text-fg-default"
|
|
291
|
-
},
|
|
292
|
-
// ── Critical (danger) ───────────────────────────────────────────
|
|
293
|
-
{
|
|
294
|
-
color: "critical",
|
|
295
|
-
variant: "filled",
|
|
296
|
-
class: "bg-bg-danger text-fg-on-danger hover:bg-bg-danger-hover"
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
color: "critical",
|
|
300
|
-
variant: "outline",
|
|
301
|
-
class: "bg-bg-surface border-border-danger-muted text-fg-danger shadow-sh-sm hover:bg-bg-danger-muted hover:shadow-sh-none"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
color: "critical",
|
|
305
|
-
variant: "soft",
|
|
306
|
-
class: "bg-bg-danger-muted text-fg-danger hover:bg-bg-danger-muted-hover"
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
color: "critical",
|
|
310
|
-
variant: "ghost",
|
|
311
|
-
class: "text-fg-danger hover:bg-bg-danger-muted"
|
|
312
|
-
},
|
|
313
|
-
// ── Success ─────────────────────────────────────────────────────
|
|
314
|
-
{
|
|
315
|
-
color: "success",
|
|
316
|
-
variant: "filled",
|
|
317
|
-
class: "bg-bg-success text-fg-on-success hover:bg-bg-success-hover"
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
color: "success",
|
|
321
|
-
variant: "outline",
|
|
322
|
-
class: "bg-bg-surface border-border-success-muted text-fg-success shadow-sh-sm hover:bg-bg-success-muted hover:shadow-sh-none"
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
color: "success",
|
|
326
|
-
variant: "soft",
|
|
327
|
-
class: "bg-bg-success-muted text-fg-success hover:bg-bg-success-muted-hover"
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
color: "success",
|
|
331
|
-
variant: "ghost",
|
|
332
|
-
class: "text-fg-success hover:bg-bg-success-muted"
|
|
333
|
-
},
|
|
334
|
-
// ── Warning ─────────────────────────────────────────────────────
|
|
335
|
-
{
|
|
336
|
-
color: "warning",
|
|
337
|
-
variant: "filled",
|
|
338
|
-
class: "bg-bg-warning text-fg-on-warning hover:bg-bg-warning-hover"
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
color: "warning",
|
|
342
|
-
variant: "outline",
|
|
343
|
-
class: "bg-bg-surface border-border-warning-muted text-fg-warning shadow-sh-sm hover:bg-bg-warning-muted hover:shadow-sh-none"
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
color: "warning",
|
|
347
|
-
variant: "soft",
|
|
348
|
-
class: "bg-bg-warning-muted text-fg-warning hover:bg-bg-warning-muted-hover"
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
color: "warning",
|
|
352
|
-
variant: "ghost",
|
|
353
|
-
class: "text-fg-warning hover:bg-bg-warning-muted"
|
|
354
|
-
},
|
|
355
|
-
// ── Disabled — SEMPRE por último ────────────────────────────────
|
|
356
|
-
{ disabled: true, class: "pointer-events-none opacity-50" }
|
|
357
|
-
],
|
|
358
|
-
defaultVariants: {
|
|
359
|
-
color: "primary",
|
|
360
|
-
variant: "filled",
|
|
361
|
-
size: "md",
|
|
362
|
-
shape: "rounded"
|
|
363
|
-
}
|
|
364
|
-
});
|
|
365
|
-
const Button = forwardRef(
|
|
366
|
-
function Button2({
|
|
367
|
-
color,
|
|
368
|
-
variant,
|
|
369
|
-
size,
|
|
370
|
-
shape,
|
|
371
|
-
fullWidth,
|
|
372
|
-
loading = false,
|
|
373
|
-
disabled = false,
|
|
374
|
-
iconLeft,
|
|
375
|
-
iconRight,
|
|
376
|
-
children,
|
|
377
|
-
className,
|
|
378
|
-
type = "button",
|
|
379
|
-
...rest
|
|
380
|
-
}, ref) {
|
|
381
|
-
const isDisabled = disabled || loading;
|
|
382
|
-
return /* @__PURE__ */ jsxs(
|
|
383
|
-
"button",
|
|
384
|
-
{
|
|
385
|
-
ref,
|
|
386
|
-
type,
|
|
387
|
-
disabled: isDisabled,
|
|
388
|
-
className: buttonVariants({
|
|
389
|
-
color,
|
|
390
|
-
variant,
|
|
391
|
-
size,
|
|
392
|
-
shape,
|
|
393
|
-
fullWidth,
|
|
394
|
-
disabled: isDisabled,
|
|
395
|
-
className
|
|
396
|
-
}),
|
|
397
|
-
...rest,
|
|
398
|
-
children: [
|
|
399
|
-
loading && /* @__PURE__ */ jsx(Spinner, {}),
|
|
400
|
-
!loading && iconLeft,
|
|
401
|
-
children,
|
|
402
|
-
!loading && iconRight
|
|
403
|
-
]
|
|
404
|
-
}
|
|
405
|
-
);
|
|
406
|
-
}
|
|
407
|
-
);
|
|
408
|
-
function Spinner() {
|
|
409
|
-
return /* @__PURE__ */ jsx(
|
|
410
|
-
"svg",
|
|
411
|
-
{
|
|
412
|
-
width: "16",
|
|
413
|
-
height: "16",
|
|
414
|
-
viewBox: "0 0 16 16",
|
|
415
|
-
fill: "none",
|
|
416
|
-
className: "animate-spin",
|
|
417
|
-
children: /* @__PURE__ */ jsx(
|
|
418
|
-
"circle",
|
|
419
|
-
{
|
|
420
|
-
cx: "8",
|
|
421
|
-
cy: "8",
|
|
422
|
-
r: "6",
|
|
423
|
-
stroke: "currentColor",
|
|
424
|
-
strokeWidth: "2",
|
|
425
|
-
strokeLinecap: "round",
|
|
426
|
-
strokeDasharray: "28",
|
|
427
|
-
strokeDashoffset: "8",
|
|
428
|
-
className: "opacity-70"
|
|
429
|
-
}
|
|
430
|
-
)
|
|
431
|
-
}
|
|
432
|
-
);
|
|
433
|
-
}
|
|
434
6
|
const headerRoot = tv({
|
|
435
7
|
base: [
|
|
436
8
|
"flex items-center justify-between gap-gp-lg",
|
|
@@ -754,207 +326,6 @@ function HeaderBreadcrumb({
|
|
|
754
326
|
)
|
|
755
327
|
] });
|
|
756
328
|
}
|
|
757
|
-
const Dialog = SheetPrimitive.Root;
|
|
758
|
-
const DialogTrigger = SheetPrimitive.Trigger;
|
|
759
|
-
const DialogPortal = SheetPrimitive.Portal;
|
|
760
|
-
const DialogClose = SheetPrimitive.Close;
|
|
761
|
-
const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
762
|
-
SheetPrimitive.Overlay,
|
|
763
|
-
{
|
|
764
|
-
ref,
|
|
765
|
-
className: cn(
|
|
766
|
-
"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",
|
|
767
|
-
className
|
|
768
|
-
),
|
|
769
|
-
...props
|
|
770
|
-
}
|
|
771
|
-
));
|
|
772
|
-
DialogOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
773
|
-
const DialogContent = React.forwardRef(({ className, children, hideClose, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
774
|
-
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
775
|
-
/* @__PURE__ */ jsxs(
|
|
776
|
-
SheetPrimitive.Content,
|
|
777
|
-
{
|
|
778
|
-
ref,
|
|
779
|
-
className: cn(
|
|
780
|
-
"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",
|
|
781
|
-
className
|
|
782
|
-
),
|
|
783
|
-
...props,
|
|
784
|
-
children: [
|
|
785
|
-
children,
|
|
786
|
-
!hideClose && /* @__PURE__ */ jsxs(SheetPrimitive.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: [
|
|
787
|
-
/* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
|
|
788
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
789
|
-
] })
|
|
790
|
-
]
|
|
791
|
-
}
|
|
792
|
-
)
|
|
793
|
-
] }));
|
|
794
|
-
DialogContent.displayName = SheetPrimitive.Content.displayName;
|
|
795
|
-
const DialogTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
796
|
-
SheetPrimitive.Title,
|
|
797
|
-
{
|
|
798
|
-
ref,
|
|
799
|
-
className: cn(
|
|
800
|
-
"text-title-md font-medium text-fg-default leading-none",
|
|
801
|
-
className
|
|
802
|
-
),
|
|
803
|
-
...props
|
|
804
|
-
}
|
|
805
|
-
));
|
|
806
|
-
DialogTitle.displayName = SheetPrimitive.Title.displayName;
|
|
807
|
-
const DialogDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
808
|
-
SheetPrimitive.Description,
|
|
809
|
-
{
|
|
810
|
-
ref,
|
|
811
|
-
className: cn("text-body-md text-fg-muted", className),
|
|
812
|
-
...props
|
|
813
|
-
}
|
|
814
|
-
));
|
|
815
|
-
DialogDescription.displayName = SheetPrimitive.Description.displayName;
|
|
816
|
-
const Command = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
817
|
-
Command$1,
|
|
818
|
-
{
|
|
819
|
-
ref,
|
|
820
|
-
className: cn(
|
|
821
|
-
"flex h-full w-full flex-col overflow-hidden p-pad-xl bg-popover text-popover-foreground",
|
|
822
|
-
className
|
|
823
|
-
),
|
|
824
|
-
...props
|
|
825
|
-
}
|
|
826
|
-
));
|
|
827
|
-
Command.displayName = Command$1.displayName;
|
|
828
|
-
const CommandDialog = ({ children, ...props }) => {
|
|
829
|
-
return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxs(
|
|
830
|
-
DialogContent,
|
|
831
|
-
{
|
|
832
|
-
hideClose: true,
|
|
833
|
-
"aria-describedby": void 0,
|
|
834
|
-
className: cn(
|
|
835
|
-
"overflow-hidden p-0 gap-0 sm:max-w-[384px]",
|
|
836
|
-
"rounded-[12px] border border-border-default",
|
|
837
|
-
// Outline padrão de elementos flutuantes
|
|
838
|
-
"outline-float"
|
|
839
|
-
),
|
|
840
|
-
children: [
|
|
841
|
-
/* @__PURE__ */ jsx(DialogTitle, { className: "sr-only", children: "Comando" }),
|
|
842
|
-
/* @__PURE__ */ jsx(Command, { children })
|
|
843
|
-
]
|
|
844
|
-
}
|
|
845
|
-
) });
|
|
846
|
-
};
|
|
847
|
-
const CommandInput = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
848
|
-
"div",
|
|
849
|
-
{
|
|
850
|
-
"cmdk-input-wrapper": "",
|
|
851
|
-
className: cn(
|
|
852
|
-
"flex items-center gap-gp-md h-form-md px-pad-xl rounded-radius-lg",
|
|
853
|
-
"bg-bg-input border border-border-subtle shadow-sh-sm",
|
|
854
|
-
"transition-[border-color,box-shadow,background-color] duration-150",
|
|
855
|
-
"focus-within:border-border-brand focus-within:shadow-sh-ring",
|
|
856
|
-
"dark:bg-bg-muted dark:border-border-input dark:shadow-sh-none"
|
|
857
|
-
),
|
|
858
|
-
children: [
|
|
859
|
-
/* @__PURE__ */ jsx(Search, { className: "size-[14px] text-fg-muted shrink-0", strokeWidth: 1.8 }),
|
|
860
|
-
/* @__PURE__ */ jsx(
|
|
861
|
-
Command$1.Input,
|
|
862
|
-
{
|
|
863
|
-
ref,
|
|
864
|
-
className: cn(
|
|
865
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none",
|
|
866
|
-
"text-body-sm font-normal text-fg-default placeholder:text-fg-muted",
|
|
867
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
868
|
-
className
|
|
869
|
-
),
|
|
870
|
-
...props
|
|
871
|
-
}
|
|
872
|
-
)
|
|
873
|
-
]
|
|
874
|
-
}
|
|
875
|
-
));
|
|
876
|
-
CommandInput.displayName = Command$1.Input.displayName;
|
|
877
|
-
const CommandList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
878
|
-
Command$1.List,
|
|
879
|
-
{
|
|
880
|
-
ref,
|
|
881
|
-
className: cn(
|
|
882
|
-
"max-h-[300px] overflow-y-auto overflow-x-hidden mt-pad-md scrollbar-thin",
|
|
883
|
-
className
|
|
884
|
-
),
|
|
885
|
-
...props
|
|
886
|
-
}
|
|
887
|
-
));
|
|
888
|
-
CommandList.displayName = Command$1.List.displayName;
|
|
889
|
-
const CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
890
|
-
Command$1.Empty,
|
|
891
|
-
{
|
|
892
|
-
ref,
|
|
893
|
-
className: "py-pad-5xl text-center text-body-md text-fg-muted",
|
|
894
|
-
...props
|
|
895
|
-
}
|
|
896
|
-
));
|
|
897
|
-
CommandEmpty.displayName = Command$1.Empty.displayName;
|
|
898
|
-
const CommandGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
899
|
-
Command$1.Group,
|
|
900
|
-
{
|
|
901
|
-
ref,
|
|
902
|
-
className: cn(
|
|
903
|
-
"overflow-hidden text-fg-default",
|
|
904
|
-
"[&_[cmdk-group-heading]]:flex [&_[cmdk-group-heading]]:items-center",
|
|
905
|
-
"[&_[cmdk-group-heading]]:h-[28px] [&_[cmdk-group-heading]]:px-pad-xl",
|
|
906
|
-
"[&_[cmdk-group-heading]]:text-caption-xs [&_[cmdk-group-heading]]:font-bold",
|
|
907
|
-
"[&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider",
|
|
908
|
-
"[&_[cmdk-group-heading]]:text-fg-subtle",
|
|
909
|
-
className
|
|
910
|
-
),
|
|
911
|
-
...props
|
|
912
|
-
}
|
|
913
|
-
));
|
|
914
|
-
CommandGroup.displayName = Command$1.Group.displayName;
|
|
915
|
-
const CommandSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
916
|
-
Command$1.Separator,
|
|
917
|
-
{
|
|
918
|
-
ref,
|
|
919
|
-
className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
|
|
920
|
-
...props
|
|
921
|
-
}
|
|
922
|
-
));
|
|
923
|
-
CommandSeparator.displayName = Command$1.Separator.displayName;
|
|
924
|
-
const CommandItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
925
|
-
Command$1.Item,
|
|
926
|
-
{
|
|
927
|
-
ref,
|
|
928
|
-
className: cn(
|
|
929
|
-
"relative flex cursor-default select-none items-center gap-gp-md",
|
|
930
|
-
"rounded-radius-lg px-pad-xl py-pad-md",
|
|
931
|
-
"text-body-sm font-medium text-fg-muted",
|
|
932
|
-
"outline-none transition-colors",
|
|
933
|
-
"data-[selected='true']:bg-bg-muted data-[selected='true']:text-fg-default data-[selected='true']:[&_svg]:text-fg-default",
|
|
934
|
-
"data-[disabled='true']:pointer-events-none data-[disabled='true']:opacity-50",
|
|
935
|
-
"[&_svg]:pointer-events-none [&_svg]:size-[18px] [&_svg]:shrink-0 [&_svg]:text-fg-muted",
|
|
936
|
-
className
|
|
937
|
-
),
|
|
938
|
-
...props
|
|
939
|
-
}
|
|
940
|
-
));
|
|
941
|
-
CommandItem.displayName = Command$1.Item.displayName;
|
|
942
|
-
const CommandShortcut = ({
|
|
943
|
-
className,
|
|
944
|
-
...props
|
|
945
|
-
}) => {
|
|
946
|
-
return /* @__PURE__ */ jsx(
|
|
947
|
-
"span",
|
|
948
|
-
{
|
|
949
|
-
className: cn(
|
|
950
|
-
"ml-auto text-caption-sm tracking-wider text-fg-subtle",
|
|
951
|
-
className
|
|
952
|
-
),
|
|
953
|
-
...props
|
|
954
|
-
}
|
|
955
|
-
);
|
|
956
|
-
};
|
|
957
|
-
CommandShortcut.displayName = "CommandShortcut";
|
|
958
329
|
function HeaderSearch({
|
|
959
330
|
placeholder = "Buscar...",
|
|
960
331
|
shortcut = "⌘K",
|
|
@@ -1368,71 +739,6 @@ const ChipGroupItem = forwardRef(
|
|
|
1368
739
|
);
|
|
1369
740
|
}
|
|
1370
741
|
);
|
|
1371
|
-
const Popover = PopoverPrimitive.Root;
|
|
1372
|
-
const PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1373
|
-
const PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1374
|
-
const POPOVER_MOBILE_SHEET = [
|
|
1375
|
-
"max-md:w-full max-md:min-w-0 max-md:max-w-none",
|
|
1376
|
-
"max-md:!max-h-[92vh]",
|
|
1377
|
-
"max-md:rounded-b-none max-md:rounded-t-[12px]",
|
|
1378
|
-
"max-md:border-x-0 max-md:border-b-0",
|
|
1379
|
-
"max-md:outline-none max-md:shadow-none",
|
|
1380
|
-
// Respiro de 20px (pad-3xl) no rodapé pra o conteúdo (footer/última seção)
|
|
1381
|
-
// não colar na borda inferior do device quando vira sheet.
|
|
1382
|
-
"max-md:pb-pad-3xl",
|
|
1383
|
-
"max-md:data-[state=open]:zoom-in-100 max-md:data-[state=closed]:zoom-out-100",
|
|
1384
|
-
"max-md:data-[state=open]:slide-in-from-bottom-12 max-md:data-[state=closed]:slide-out-to-bottom-12"
|
|
1385
|
-
].join(" ");
|
|
1386
|
-
const PopoverSheetBackdrop = () => /* @__PURE__ */ jsx(
|
|
1387
|
-
"div",
|
|
1388
|
-
{
|
|
1389
|
-
"aria-hidden": "true",
|
|
1390
|
-
className: "fixed inset-0 z-[55] bg-overlay-scrim pointer-events-auto md:hidden animate-in fade-in-0 duration-150"
|
|
1391
|
-
}
|
|
1392
|
-
);
|
|
1393
|
-
const PopoverContent = React.forwardRef(
|
|
1394
|
-
({ className, align = "center", sideOffset = 6, disablePortal, mobileSheet = true, ...props }, ref) => {
|
|
1395
|
-
const content = /* @__PURE__ */ jsx(
|
|
1396
|
-
PopoverPrimitive.Content,
|
|
1397
|
-
{
|
|
1398
|
-
ref,
|
|
1399
|
-
align,
|
|
1400
|
-
sideOffset,
|
|
1401
|
-
"data-mobile-sheet": mobileSheet ? "" : void 0,
|
|
1402
|
-
className: cn(
|
|
1403
|
-
"relative z-50",
|
|
1404
|
-
// Unificado com DropdownMenu/Select: bg-bg-dropdown (frosted no dark)
|
|
1405
|
-
// + border-border-default + outline-float. O `before` pseudo-element
|
|
1406
|
-
// aplica o blur backdrop (necessário pra bg-bg-dropdown semi-transparente
|
|
1407
|
-
// render correto no dark mode).
|
|
1408
|
-
"bg-bg-dropdown",
|
|
1409
|
-
"border border-border-default rounded-[12px] shadow-sh-lg outline-float",
|
|
1410
|
-
"before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150",
|
|
1411
|
-
"text-fg-default",
|
|
1412
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1413
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1414
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1415
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
1416
|
-
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1417
|
-
mobileSheet && POPOVER_MOBILE_SHEET,
|
|
1418
|
-
className
|
|
1419
|
-
),
|
|
1420
|
-
...props
|
|
1421
|
-
}
|
|
1422
|
-
);
|
|
1423
|
-
if (disablePortal) {
|
|
1424
|
-
return mobileSheet ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1425
|
-
/* @__PURE__ */ jsx(PopoverSheetBackdrop, {}),
|
|
1426
|
-
content
|
|
1427
|
-
] }) : content;
|
|
1428
|
-
}
|
|
1429
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1430
|
-
mobileSheet && /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverSheetBackdrop, {}) }),
|
|
1431
|
-
/* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: content })
|
|
1432
|
-
] });
|
|
1433
|
-
}
|
|
1434
|
-
);
|
|
1435
|
-
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1436
742
|
const DEFAULT_FILTERS$1 = [
|
|
1437
743
|
{ id: "all", label: "Todas", predicate: () => true },
|
|
1438
744
|
{ id: "unread", label: "Não lidas", predicate: (n) => !!n.unread },
|
|
@@ -1581,169 +887,6 @@ function NotificationRow({ item }) {
|
|
|
1581
887
|
}
|
|
1582
888
|
);
|
|
1583
889
|
}
|
|
1584
|
-
const inputGroupVariants = cva(
|
|
1585
|
-
[
|
|
1586
|
-
"group/input-group relative flex w-full items-center",
|
|
1587
|
-
"bg-bg-input dark:bg-bg-muted",
|
|
1588
|
-
"hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover",
|
|
1589
|
-
"border border-border-input rounded-radius-lg",
|
|
1590
|
-
"transition-[border-color,box-shadow,background-color] outline-none",
|
|
1591
|
-
"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"
|
|
1592
|
-
],
|
|
1593
|
-
{
|
|
1594
|
-
variants: {
|
|
1595
|
-
size: {
|
|
1596
|
-
xxs: "min-h-form-xs px-pad-md gap-gp-xs rounded-radius-md text-body-sm font-normal",
|
|
1597
|
-
xs: "min-h-form-sm px-pad-xl gap-gp-md rounded-radius-md text-body-sm font-normal",
|
|
1598
|
-
sm: "min-h-form-md px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal",
|
|
1599
|
-
md: "min-h-form-lg px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal"
|
|
1600
|
-
},
|
|
1601
|
-
state: {
|
|
1602
|
-
default: "focus-within:border-border-brand focus-within:shadow-sh-ring",
|
|
1603
|
-
error: "border-border-danger-muted focus-within:border-border-danger-muted focus-within:shadow-sh-ring-danger",
|
|
1604
|
-
warning: "border-border-warning-muted focus-within:border-border-warning-muted focus-within:shadow-sh-ring-warning",
|
|
1605
|
-
success: "border-border-success-muted focus-within:border-border-success-muted focus-within:shadow-sh-ring-success"
|
|
1606
|
-
}
|
|
1607
|
-
},
|
|
1608
|
-
defaultVariants: { size: "md", state: "default" }
|
|
1609
|
-
}
|
|
1610
|
-
);
|
|
1611
|
-
const InputGroup = React.forwardRef(
|
|
1612
|
-
({ className, size, state, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1613
|
-
"div",
|
|
1614
|
-
{
|
|
1615
|
-
ref,
|
|
1616
|
-
role: "group",
|
|
1617
|
-
"data-slot": "input-group",
|
|
1618
|
-
className: cn(inputGroupVariants({ size, state }), className),
|
|
1619
|
-
...props
|
|
1620
|
-
}
|
|
1621
|
-
)
|
|
1622
|
-
);
|
|
1623
|
-
InputGroup.displayName = "InputGroup";
|
|
1624
|
-
const inputGroupInputVariants = cva([
|
|
1625
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none",
|
|
1626
|
-
"text-body-sm font-normal text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
|
|
1627
|
-
"disabled:cursor-not-allowed",
|
|
1628
|
-
"file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-fg-default"
|
|
1629
|
-
]);
|
|
1630
|
-
const InputGroupInput = React.forwardRef(({ className, type, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1631
|
-
"input",
|
|
1632
|
-
{
|
|
1633
|
-
ref,
|
|
1634
|
-
type,
|
|
1635
|
-
"data-slot": "input-group-input",
|
|
1636
|
-
className: cn(inputGroupInputVariants(), className),
|
|
1637
|
-
...props
|
|
1638
|
-
}
|
|
1639
|
-
));
|
|
1640
|
-
InputGroupInput.displayName = "InputGroupInput";
|
|
1641
|
-
const inputGroupTextareaVariants = cva([
|
|
1642
|
-
"flex-1 min-w-0 bg-transparent border-0 outline-none resize-y",
|
|
1643
|
-
"py-pad-md",
|
|
1644
|
-
"text-body-sm font-normal leading-[1.5] text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
|
|
1645
|
-
"disabled:cursor-not-allowed"
|
|
1646
|
-
]);
|
|
1647
|
-
const InputGroupTextarea = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1648
|
-
"textarea",
|
|
1649
|
-
{
|
|
1650
|
-
ref,
|
|
1651
|
-
"data-slot": "input-group-textarea",
|
|
1652
|
-
className: cn(inputGroupTextareaVariants(), className),
|
|
1653
|
-
...props
|
|
1654
|
-
}
|
|
1655
|
-
));
|
|
1656
|
-
InputGroupTextarea.displayName = "InputGroupTextarea";
|
|
1657
|
-
const inputGroupAddonVariants = cva(
|
|
1658
|
-
"flex items-center text-fg-muted shrink-0 select-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1659
|
-
{
|
|
1660
|
-
variants: {
|
|
1661
|
-
align: {
|
|
1662
|
-
// Inline = horizontal (start/end do eixo do texto)
|
|
1663
|
-
"inline-start": "",
|
|
1664
|
-
"inline-end": "",
|
|
1665
|
-
// Block = vertical (top/bottom — multi-linha em textarea)
|
|
1666
|
-
"block-start": "",
|
|
1667
|
-
"block-end": ""
|
|
1668
|
-
}
|
|
1669
|
-
},
|
|
1670
|
-
defaultVariants: { align: "inline-start" }
|
|
1671
|
-
}
|
|
1672
|
-
);
|
|
1673
|
-
const InputGroupAddon = React.forwardRef(({ className, align = "inline-start", onClick, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1674
|
-
"div",
|
|
1675
|
-
{
|
|
1676
|
-
ref,
|
|
1677
|
-
role: "group",
|
|
1678
|
-
"data-slot": "input-group-addon",
|
|
1679
|
-
"data-align": align,
|
|
1680
|
-
className: cn(inputGroupAddonVariants({ align }), className),
|
|
1681
|
-
onClick: (e) => {
|
|
1682
|
-
if (e.target.closest("button")) {
|
|
1683
|
-
onClick?.(e);
|
|
1684
|
-
return;
|
|
1685
|
-
}
|
|
1686
|
-
e.currentTarget.parentElement?.querySelector(
|
|
1687
|
-
"input, textarea"
|
|
1688
|
-
)?.focus();
|
|
1689
|
-
onClick?.(e);
|
|
1690
|
-
},
|
|
1691
|
-
...props
|
|
1692
|
-
}
|
|
1693
|
-
));
|
|
1694
|
-
InputGroupAddon.displayName = "InputGroupAddon";
|
|
1695
|
-
const InputGroupText = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1696
|
-
"span",
|
|
1697
|
-
{
|
|
1698
|
-
ref,
|
|
1699
|
-
"data-slot": "input-group-text",
|
|
1700
|
-
className: cn(
|
|
1701
|
-
"text-body-xs text-fg-muted whitespace-nowrap",
|
|
1702
|
-
className
|
|
1703
|
-
),
|
|
1704
|
-
...props
|
|
1705
|
-
}
|
|
1706
|
-
));
|
|
1707
|
-
InputGroupText.displayName = "InputGroupText";
|
|
1708
|
-
const inputGroupButtonVariants = cva(
|
|
1709
|
-
[
|
|
1710
|
-
"inline-flex items-center justify-center shrink-0",
|
|
1711
|
-
"rounded-radius-md transition-colors outline-none cursor-pointer",
|
|
1712
|
-
"focus-visible:ring-4 focus-visible:ring-ring-brand",
|
|
1713
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
1714
|
-
"[&_svg]:size-4 [&_svg]:shrink-0"
|
|
1715
|
-
],
|
|
1716
|
-
{
|
|
1717
|
-
variants: {
|
|
1718
|
-
size: {
|
|
1719
|
-
xs: "h-form-xs px-pad-md gap-gp-xs text-body-xs font-normal",
|
|
1720
|
-
"icon-xs": "size-form-xs",
|
|
1721
|
-
sm: "h-form-sm px-pad-lg gap-gp-md text-body-xs font-normal",
|
|
1722
|
-
"icon-sm": "size-form-sm"
|
|
1723
|
-
},
|
|
1724
|
-
variant: {
|
|
1725
|
-
default: "bg-bg-muted text-fg-default hover:bg-bg-muted-hover",
|
|
1726
|
-
destructive: "bg-bg-danger text-fg-on-danger hover:bg-bg-danger-hover",
|
|
1727
|
-
outline: "border border-border-input bg-transparent text-fg-default hover:bg-bg-muted",
|
|
1728
|
-
secondary: "bg-bg-emphasis text-fg-default hover:bg-bg-muted-hover",
|
|
1729
|
-
ghost: "bg-transparent text-fg-muted hover:bg-bg-muted hover:text-fg-default",
|
|
1730
|
-
link: "bg-transparent text-fg-brand underline-offset-4 hover:underline"
|
|
1731
|
-
}
|
|
1732
|
-
},
|
|
1733
|
-
defaultVariants: { size: "xs", variant: "ghost" }
|
|
1734
|
-
}
|
|
1735
|
-
);
|
|
1736
|
-
const InputGroupButton = React.forwardRef(({ className, size, variant, type = "button", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1737
|
-
"button",
|
|
1738
|
-
{
|
|
1739
|
-
ref,
|
|
1740
|
-
type,
|
|
1741
|
-
"data-slot": "input-group-button",
|
|
1742
|
-
className: cn(inputGroupButtonVariants({ size, variant }), className),
|
|
1743
|
-
...props
|
|
1744
|
-
}
|
|
1745
|
-
));
|
|
1746
|
-
InputGroupButton.displayName = "InputGroupButton";
|
|
1747
890
|
const DEFAULT_FILTERS = [
|
|
1748
891
|
{ id: "all", label: "Tudo", predicate: () => true },
|
|
1749
892
|
{ id: "unread", label: "Não lidas", predicate: (m) => !!m.unread },
|
|
@@ -1910,184 +1053,6 @@ function MessageRow({ item }) {
|
|
|
1910
1053
|
}
|
|
1911
1054
|
);
|
|
1912
1055
|
}
|
|
1913
|
-
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1914
|
-
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1915
|
-
const DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
1916
|
-
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
1917
|
-
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
1918
|
-
const CONTAINER_CLASSES = [
|
|
1919
|
-
"relative z-50 min-w-[180px] overflow-hidden",
|
|
1920
|
-
"flex flex-col gap-px",
|
|
1921
|
-
"rounded-[12px] bg-bg-dropdown p-pad-sm",
|
|
1922
|
-
"border border-border-default shadow-sh-lg",
|
|
1923
|
-
// Outline padrão de elementos flutuantes
|
|
1924
|
-
"outline-float",
|
|
1925
|
-
"text-fg-muted",
|
|
1926
|
-
// Frosted-glass blur (necessário pra fazer o bg-dropdown semi-transparent render correto no dark)
|
|
1927
|
-
"before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150",
|
|
1928
|
-
// Animações Radix
|
|
1929
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1930
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1931
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1932
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
1933
|
-
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1934
|
-
"origin-[--radix-dropdown-menu-content-transform-origin]"
|
|
1935
|
-
].join(" ");
|
|
1936
|
-
const MOBILE_SHEET_CLASSES = [
|
|
1937
|
-
"max-md:w-full max-md:min-w-0 max-md:max-w-none",
|
|
1938
|
-
"max-md:!max-h-[92vh]",
|
|
1939
|
-
"max-md:rounded-b-none max-md:rounded-t-[12px]",
|
|
1940
|
-
"max-md:border-x-0 max-md:border-b-0",
|
|
1941
|
-
"max-md:outline-none max-md:shadow-none",
|
|
1942
|
-
"max-md:data-[state=open]:zoom-in-100 max-md:data-[state=closed]:zoom-out-100",
|
|
1943
|
-
"max-md:data-[state=open]:slide-in-from-bottom-12 max-md:data-[state=closed]:slide-out-to-bottom-12"
|
|
1944
|
-
].join(" ");
|
|
1945
|
-
const ITEM_BASE = [
|
|
1946
|
-
"relative flex cursor-default select-none items-center",
|
|
1947
|
-
"gap-pad-lg px-pad-lg py-pad-md rounded-radius-sm",
|
|
1948
|
-
"text-body-sm font-medium",
|
|
1949
|
-
"outline-none transition-colors",
|
|
1950
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1951
|
-
"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
|
|
1952
|
-
].join(" ");
|
|
1953
|
-
const ITEM_VARIANT_DEFAULT = [
|
|
1954
|
-
"text-fg-muted [&_svg]:text-fg-muted",
|
|
1955
|
-
"focus:bg-bg-muted focus:text-fg-default focus:[&_svg]:text-fg-default"
|
|
1956
|
-
].join(" ");
|
|
1957
|
-
const ITEM_VARIANT_DESTRUCTIVE = [
|
|
1958
|
-
"text-fg-danger [&_svg]:text-fg-danger",
|
|
1959
|
-
"focus:bg-bg-danger-muted focus:text-fg-danger focus:[&_svg]:text-fg-danger"
|
|
1960
|
-
].join(" ");
|
|
1961
|
-
const DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1962
|
-
DropdownMenuPrimitive.SubTrigger,
|
|
1963
|
-
{
|
|
1964
|
-
ref,
|
|
1965
|
-
className: cn(
|
|
1966
|
-
ITEM_BASE,
|
|
1967
|
-
ITEM_VARIANT_DEFAULT,
|
|
1968
|
-
"data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default",
|
|
1969
|
-
inset && "pl-8",
|
|
1970
|
-
className
|
|
1971
|
-
),
|
|
1972
|
-
...props,
|
|
1973
|
-
children: [
|
|
1974
|
-
children,
|
|
1975
|
-
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto" })
|
|
1976
|
-
]
|
|
1977
|
-
}
|
|
1978
|
-
));
|
|
1979
|
-
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1980
|
-
const DropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1981
|
-
DropdownMenuPrimitive.SubContent,
|
|
1982
|
-
{
|
|
1983
|
-
ref,
|
|
1984
|
-
className: cn(CONTAINER_CLASSES, className),
|
|
1985
|
-
...props
|
|
1986
|
-
}
|
|
1987
|
-
));
|
|
1988
|
-
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1989
|
-
const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 8, mobileSheet = true, ...props }, ref) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1990
|
-
mobileSheet && /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1991
|
-
"div",
|
|
1992
|
-
{
|
|
1993
|
-
"aria-hidden": "true",
|
|
1994
|
-
className: "fixed inset-0 z-[55] bg-overlay-scrim pointer-events-none md:hidden animate-in fade-in-0 duration-150"
|
|
1995
|
-
}
|
|
1996
|
-
) }),
|
|
1997
|
-
/* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1998
|
-
DropdownMenuPrimitive.Content,
|
|
1999
|
-
{
|
|
2000
|
-
ref,
|
|
2001
|
-
sideOffset,
|
|
2002
|
-
"data-mobile-sheet": mobileSheet ? "" : void 0,
|
|
2003
|
-
className: cn(
|
|
2004
|
-
CONTAINER_CLASSES,
|
|
2005
|
-
"max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto overflow-x-hidden",
|
|
2006
|
-
mobileSheet && MOBILE_SHEET_CLASSES,
|
|
2007
|
-
className
|
|
2008
|
-
),
|
|
2009
|
-
...props
|
|
2010
|
-
}
|
|
2011
|
-
) })
|
|
2012
|
-
] }));
|
|
2013
|
-
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
2014
|
-
const DropdownMenuItem = React.forwardRef(({ className, inset, variant = "default", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2015
|
-
DropdownMenuPrimitive.Item,
|
|
2016
|
-
{
|
|
2017
|
-
ref,
|
|
2018
|
-
className: cn(
|
|
2019
|
-
ITEM_BASE,
|
|
2020
|
-
variant === "destructive" ? ITEM_VARIANT_DESTRUCTIVE : ITEM_VARIANT_DEFAULT,
|
|
2021
|
-
inset && "pl-8",
|
|
2022
|
-
className
|
|
2023
|
-
),
|
|
2024
|
-
...props
|
|
2025
|
-
}
|
|
2026
|
-
));
|
|
2027
|
-
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
2028
|
-
const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2029
|
-
DropdownMenuPrimitive.CheckboxItem,
|
|
2030
|
-
{
|
|
2031
|
-
ref,
|
|
2032
|
-
className: cn(
|
|
2033
|
-
ITEM_BASE,
|
|
2034
|
-
ITEM_VARIANT_DEFAULT,
|
|
2035
|
-
"pl-8 pr-pad-lg",
|
|
2036
|
-
className
|
|
2037
|
-
),
|
|
2038
|
-
checked,
|
|
2039
|
-
...props,
|
|
2040
|
-
children: [
|
|
2041
|
-
/* @__PURE__ */ jsx("span", { className: "absolute left-pad-md flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
2042
|
-
children
|
|
2043
|
-
]
|
|
2044
|
-
}
|
|
2045
|
-
));
|
|
2046
|
-
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
2047
|
-
const DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2048
|
-
DropdownMenuPrimitive.RadioItem,
|
|
2049
|
-
{
|
|
2050
|
-
ref,
|
|
2051
|
-
className: cn(
|
|
2052
|
-
ITEM_BASE,
|
|
2053
|
-
ITEM_VARIANT_DEFAULT,
|
|
2054
|
-
"pl-8 pr-pad-lg",
|
|
2055
|
-
// Selected state — brand tint (mantém no focus pra não voltar pra muted)
|
|
2056
|
-
"data-[state=checked]:bg-bg-brand-subtle data-[state=checked]:text-fg-brand",
|
|
2057
|
-
"data-[state=checked]:[&_svg]:text-fg-brand",
|
|
2058
|
-
"data-[state=checked]:focus:bg-bg-brand-subtle data-[state=checked]:focus:text-fg-brand",
|
|
2059
|
-
className
|
|
2060
|
-
),
|
|
2061
|
-
...props,
|
|
2062
|
-
children: [
|
|
2063
|
-
/* @__PURE__ */ jsx("span", { className: "absolute left-pad-md flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "size-4" }) }) }),
|
|
2064
|
-
children
|
|
2065
|
-
]
|
|
2066
|
-
}
|
|
2067
|
-
));
|
|
2068
|
-
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2069
|
-
const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2070
|
-
DropdownMenuPrimitive.Label,
|
|
2071
|
-
{
|
|
2072
|
-
ref,
|
|
2073
|
-
className: cn(
|
|
2074
|
-
"px-pad-lg py-pad-sm text-caption-sm font-semibold uppercase tracking-wider text-fg-subtle",
|
|
2075
|
-
inset && "pl-8",
|
|
2076
|
-
className
|
|
2077
|
-
),
|
|
2078
|
-
...props
|
|
2079
|
-
}
|
|
2080
|
-
));
|
|
2081
|
-
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2082
|
-
const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2083
|
-
DropdownMenuPrimitive.Separator,
|
|
2084
|
-
{
|
|
2085
|
-
ref,
|
|
2086
|
-
className: cn("mx-pad-xs my-pad-xs h-px bg-border-default", className),
|
|
2087
|
-
...props
|
|
2088
|
-
}
|
|
2089
|
-
));
|
|
2090
|
-
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
2091
1056
|
const DEFAULT_OPTIONS = [
|
|
2092
1057
|
{ id: "light", label: "Claro", icon: Sun },
|
|
2093
1058
|
{ id: "dark", label: "Escuro", icon: Moon }
|
|
@@ -3143,39 +2108,6 @@ function MenuSidebar({
|
|
|
3143
2108
|
)
|
|
3144
2109
|
] });
|
|
3145
2110
|
}
|
|
3146
|
-
const Avatar = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3147
|
-
AvatarPrimitive.Root,
|
|
3148
|
-
{
|
|
3149
|
-
ref,
|
|
3150
|
-
className: cn(
|
|
3151
|
-
"relative flex size-8 shrink-0 overflow-hidden rounded-full",
|
|
3152
|
-
className
|
|
3153
|
-
),
|
|
3154
|
-
...props
|
|
3155
|
-
}
|
|
3156
|
-
));
|
|
3157
|
-
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
3158
|
-
const AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3159
|
-
AvatarPrimitive.Image,
|
|
3160
|
-
{
|
|
3161
|
-
ref,
|
|
3162
|
-
className: cn("aspect-square h-full w-full", className),
|
|
3163
|
-
...props
|
|
3164
|
-
}
|
|
3165
|
-
));
|
|
3166
|
-
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
3167
|
-
const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3168
|
-
AvatarPrimitive.Fallback,
|
|
3169
|
-
{
|
|
3170
|
-
ref,
|
|
3171
|
-
className: cn(
|
|
3172
|
-
"flex h-full w-full items-center justify-center rounded-full bg-bg-muted text-fg-muted text-body-sm font-normal",
|
|
3173
|
-
className
|
|
3174
|
-
),
|
|
3175
|
-
...props
|
|
3176
|
-
}
|
|
3177
|
-
));
|
|
3178
|
-
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
3179
2111
|
function deriveInitials(name) {
|
|
3180
2112
|
return name.split(" ").filter(Boolean).map((p) => p[0]).join("").slice(0, 2).toUpperCase();
|
|
3181
2113
|
}
|
|
@@ -3540,69 +2472,29 @@ function useTheme() {
|
|
|
3540
2472
|
return { theme, setTheme, isDark, toggle };
|
|
3541
2473
|
}
|
|
3542
2474
|
export {
|
|
3543
|
-
SidebarRail as $,
|
|
3544
2475
|
AppShell as A,
|
|
3545
|
-
Button as B,
|
|
3546
2476
|
Chip as C,
|
|
3547
|
-
DropdownMenu as D,
|
|
3548
|
-
DropdownMenuGroup as E,
|
|
3549
|
-
DropdownMenuLabel as F,
|
|
3550
|
-
HeaderBreadcrumb as G,
|
|
3551
2477
|
Header as H,
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
3572
|
-
|
|
3573
|
-
SidebarSubgroup as a1,
|
|
3574
|
-
UserMenu as a2,
|
|
3575
|
-
buttonVariants as a3,
|
|
3576
|
-
chipCount as a4,
|
|
3577
|
-
chipVariants as a5,
|
|
3578
|
-
inputGroupVariants as a6,
|
|
3579
|
-
useControllable as a7,
|
|
3580
|
-
useMediaQuery as a8,
|
|
3581
|
-
Command as a9,
|
|
3582
|
-
AvatarFallback as b,
|
|
3583
|
-
cn as c,
|
|
3584
|
-
ChipGroup as d,
|
|
3585
|
-
ChipGroupItem as e,
|
|
3586
|
-
DropdownMenuTrigger as f,
|
|
3587
|
-
DropdownMenuContent as g,
|
|
3588
|
-
DropdownMenuItem as h,
|
|
3589
|
-
DropdownMenuSeparator as i,
|
|
3590
|
-
PopoverTrigger as j,
|
|
3591
|
-
PopoverContent as k,
|
|
3592
|
-
Dialog as l,
|
|
3593
|
-
DialogTrigger as m,
|
|
3594
|
-
DialogContent as n,
|
|
3595
|
-
DialogTitle as o,
|
|
3596
|
-
PopoverAnchor as p,
|
|
3597
|
-
DialogClose as q,
|
|
3598
|
-
DialogDescription as r,
|
|
3599
|
-
CommandDialog as s,
|
|
3600
|
-
tv as t,
|
|
3601
|
-
useTheme as u,
|
|
3602
|
-
CommandInput as v,
|
|
3603
|
-
CommandList as w,
|
|
3604
|
-
CommandEmpty as x,
|
|
3605
|
-
CommandGroup as y,
|
|
3606
|
-
CommandItem as z
|
|
2478
|
+
MenuSidebar as M,
|
|
2479
|
+
SidebarBrandIcon as S,
|
|
2480
|
+
UserMenu as U,
|
|
2481
|
+
ChipGroup as a,
|
|
2482
|
+
ChipGroupItem as b,
|
|
2483
|
+
HeaderBreadcrumb as c,
|
|
2484
|
+
HeaderMessages as d,
|
|
2485
|
+
HeaderNotifications as e,
|
|
2486
|
+
HeaderSearch as f,
|
|
2487
|
+
HeaderThemeSwitcher as g,
|
|
2488
|
+
SidebarItem as h,
|
|
2489
|
+
SidebarPanel as i,
|
|
2490
|
+
SidebarPill as j,
|
|
2491
|
+
SidebarRail as k,
|
|
2492
|
+
SidebarSection as l,
|
|
2493
|
+
SidebarSubgroup as m,
|
|
2494
|
+
chipCount as n,
|
|
2495
|
+
chipVariants as o,
|
|
2496
|
+
useControllable as p,
|
|
2497
|
+
useMediaQuery as q,
|
|
2498
|
+
useTheme as u
|
|
3607
2499
|
};
|
|
3608
|
-
//# sourceMappingURL=useTheme-
|
|
2500
|
+
//# sourceMappingURL=useTheme-UrerJ3i-.mjs.map
|