@snksergio/design-system 0.52.0 → 0.54.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/dist-lib/chunks/{panel-Bly-rNP9.cjs → panel-CTbiCa0_.cjs} +105 -3
- package/dist-lib/chunks/panel-CTbiCa0_.cjs.map +1 -0
- package/dist-lib/chunks/{panel-DA6K3a3n.mjs → panel-DsOKm4Im.mjs} +155 -53
- package/dist-lib/chunks/panel-DsOKm4Im.mjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-C9rrkkmh.cjs → toggle-group-BTnqY_nt.cjs} +23 -23
- package/dist-lib/chunks/toggle-group-BTnqY_nt.cjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-mXbG8_Jm.mjs → toggle-group-BYmj8142.mjs} +22 -22
- package/dist-lib/chunks/toggle-group-BYmj8142.mjs.map +1 -0
- package/dist-lib/index.cjs +634 -2
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +692 -60
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/clientes.cjs +1 -1
- package/dist-lib/preview/clientes.mjs +1 -1
- package/dist-lib/shadcn.cjs +1 -1
- package/dist-lib/shadcn.mjs +1 -1
- package/dist-lib/src/components/index.d.ts +1 -0
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/TabsNavigation/index.d.ts +5 -0
- package/dist-lib/src/components/ui/TabsNavigation/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation-context.d.ts +19 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation-context.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.d.ts +84 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.styles.d.ts +393 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.types.d.ts +99 -0
- package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/TabsNavigation/use-arrastar-para-rolar.d.ts +26 -0
- package/dist-lib/src/components/ui/TabsNavigation/use-arrastar-para-rolar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group-context.d.ts +24 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group-context.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group.d.ts +52 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar-group.d.ts.map +1 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.d.ts +9 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.d.ts.map +1 -1
- package/dist-lib/src/components/ui/avatar-ig/avatar.styles.d.ts +93 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/avatar-ig/avatar.types.d.ts +37 -0
- package/dist-lib/src/components/ui/avatar-ig/avatar.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/avatar-ig/index.d.ts +3 -2
- package/dist-lib/src/components/ui/avatar-ig/index.d.ts.map +1 -1
- package/dist-lib/theme.css +15 -0
- package/package.json +1 -1
- package/dist-lib/chunks/panel-Bly-rNP9.cjs.map +0 -1
- package/dist-lib/chunks/panel-DA6K3a3n.mjs.map +0 -1
- package/dist-lib/chunks/toggle-group-C9rrkkmh.cjs.map +0 -1
- package/dist-lib/chunks/toggle-group-mXbG8_Jm.mjs.map +0 -1
package/dist-lib/index.mjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { g as getContrastTextColor, a as FormField, e as Avatar, i as isFilterEntryActive, f as FilterPopover, T as ToolbarToolButton, h as ButtonGroup, j as ToolbarSimpleFilterDrawer, k as TableToolbar, l as ToolbarActions, m as ToolbarFilterButton, n as ToolbarSearch, o as ToolbarApplied, q as ToolbarTabs, r as columnTypeRegistry, L as ListItem, s as List } from "./chunks/panel-
|
|
2
|
-
import { t, A, B,
|
|
1
|
+
import { g as getContrastTextColor, a as FormField, e as Avatar, i as isFilterEntryActive, f as FilterPopover, T as ToolbarToolButton, h as ButtonGroup, j as ToolbarSimpleFilterDrawer, k as TableToolbar, l as ToolbarActions, m as ToolbarFilterButton, n as ToolbarSearch, o as ToolbarApplied, q as ToolbarTabs, r as columnTypeRegistry, L as ListItem, s as List } from "./chunks/panel-DsOKm4Im.mjs";
|
|
2
|
+
import { t, A, u, B, v, C, w, x, y, D, z, E, G, H, I, J, K, M, N, d, O, Q, R, S, U, F, b, V, c, W, X, P, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, p, al, am, an, ao, ap } from "./chunks/panel-DsOKm4Im.mjs";
|
|
3
3
|
import { C as Chip } from "./chunks/useTheme-Bk8AYqLr.mjs";
|
|
4
4
|
import { A as A2, a, b as b2, H as H2, c as c2, d as d2, e, f, g, M as M2, S as S2, h, i, j, k, l, m, n, U as U2, o, p as p2, q, r, s, t as t2, v as v2, w as w2, u as u2 } from "./chunks/useTheme-Bk8AYqLr.mjs";
|
|
5
|
-
import { a8 as tv, c as cn, V as Popover, Z as PopoverTrigger, Y as PopoverContent, a7 as Button, D as Dialog, w as DialogTrigger, p as DialogContent, v as DialogTitle, W as PopoverAnchor, o as DialogClose, q as DialogDescription, x as DropdownMenu, O as DropdownMenuTrigger, z as DropdownMenuContent, J as DropdownMenuSeparator, E as DropdownMenuItem } from "./chunks/avatar-FPbG1TRy.mjs";
|
|
6
|
-
import { P as P2, Q as Q2, R as R2, S as S3, T, U as U3, y as y2,
|
|
5
|
+
import { a8 as tv, c as cn, V as Popover, Z as PopoverTrigger, Y as PopoverContent, a7 as Button, D as Dialog, w as DialogTrigger, p as DialogContent, v as DialogTitle, W as PopoverAnchor, o as DialogClose, q as DialogDescription, x as DropdownMenu, O as DropdownMenuTrigger, z as DropdownMenuContent, F as DropdownMenuLabel, J as DropdownMenuSeparator, E as DropdownMenuItem } from "./chunks/avatar-FPbG1TRy.mjs";
|
|
6
|
+
import { P as P2, Q as Q2, R as R2, S as S3, T, U as U3, y as y2, H as H3, I as I2, a9 as a92, a6 as a62 } from "./chunks/avatar-FPbG1TRy.mjs";
|
|
7
7
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
import { createContext, forwardRef, useContext, useId, useState, Fragment as Fragment$1, isValidElement, useCallback, useMemo, createElement, useRef, useEffect, useLayoutEffect } from "react";
|
|
9
|
+
import { createContext, forwardRef, useContext, useId, useState, Fragment as Fragment$1, isValidElement, useCallback, useMemo, createElement, useRef, useEffect, useLayoutEffect, Children } from "react";
|
|
10
10
|
import { Q as Switch, l as Checkbox, C as Calendar, T as Textarea } from "./chunks/sheet-DIpYkRYS.mjs";
|
|
11
|
-
import { G as G2, H as H4, F as
|
|
12
|
-
import { av as RadioGroup, aw as RadioGroupItem, az as Separator, aA as Skeleton } from "./chunks/toggle-group-
|
|
13
|
-
import { B as B2, aJ } from "./chunks/toggle-group-
|
|
14
|
-
import { Check, MoreHorizontal, SlidersHorizontal, Calendar as Calendar$1, AlertCircle, CheckCheck, Clock, MoreVertical, Ban, X as X2, CalendarDays, ChevronDown, ChevronLeft, ChevronRight, RefreshCw, OctagonX, TriangleAlert, CircleCheck, Info, Bell } from "lucide-react";
|
|
11
|
+
import { G as G2, H as H4, F as F2, O as O2 } from "./chunks/sheet-DIpYkRYS.mjs";
|
|
12
|
+
import { av as RadioGroup, aw as RadioGroupItem, az as Separator, aA as Skeleton, _ as HoverCard, a0 as HoverCardTrigger, $ as HoverCardContent } from "./chunks/toggle-group-BYmj8142.mjs";
|
|
13
|
+
import { B as B2, aJ } from "./chunks/toggle-group-BYmj8142.mjs";
|
|
14
|
+
import { Check, MoreHorizontal, SlidersHorizontal, Calendar as Calendar$1, AlertCircle, CheckCheck, Clock, MoreVertical, Ban, X as X2, CalendarDays, ChevronDown, ChevronLeft, ChevronRight, Circle, Plus, RefreshCw, OctagonX, TriangleAlert, CircleCheck, Info, Bell } from "lucide-react";
|
|
15
15
|
import { Reply } from "lucide-react";
|
|
16
16
|
import { I as Input } from "./chunks/input-tjIT8HNE.mjs";
|
|
17
17
|
import { i as i2 } from "./chunks/input-tjIT8HNE.mjs";
|
|
@@ -5400,6 +5400,618 @@ const ScreenLoader = forwardRef(
|
|
|
5400
5400
|
}
|
|
5401
5401
|
);
|
|
5402
5402
|
ScreenLoader.displayName = "ScreenLoader";
|
|
5403
|
+
const TabsNavigationContext = createContext(null);
|
|
5404
|
+
function useArrastarParaRolar(trilho, ativo = true, limiarPx = 6) {
|
|
5405
|
+
const engolirClique = useRef(false);
|
|
5406
|
+
useEffect(() => {
|
|
5407
|
+
if (!ativo) return;
|
|
5408
|
+
const el = trilho.current;
|
|
5409
|
+
if (!el) return;
|
|
5410
|
+
if (typeof window === "undefined") return;
|
|
5411
|
+
if (window.matchMedia?.("(pointer: coarse)").matches) return;
|
|
5412
|
+
let arrastando = false;
|
|
5413
|
+
let passouLimiar = false;
|
|
5414
|
+
let xInicial = 0;
|
|
5415
|
+
let scrollInicial = 0;
|
|
5416
|
+
const ehInterativo = (alvo) => alvo instanceof Element && !!alvo.closest(
|
|
5417
|
+
'button, a, input, select, textarea, [role="button"], [role="menuitem"], [data-radix-popper-content-wrapper], [role="dialog"], [role="menu"], [role="tooltip"]'
|
|
5418
|
+
);
|
|
5419
|
+
const onPointerDown = (e2) => {
|
|
5420
|
+
if (e2.button !== 0 || ehInterativo(e2.target)) return;
|
|
5421
|
+
arrastando = true;
|
|
5422
|
+
passouLimiar = false;
|
|
5423
|
+
xInicial = e2.clientX;
|
|
5424
|
+
scrollInicial = el.scrollLeft;
|
|
5425
|
+
};
|
|
5426
|
+
const onPointerMove = (e2) => {
|
|
5427
|
+
if (!arrastando) return;
|
|
5428
|
+
const delta = e2.clientX - xInicial;
|
|
5429
|
+
if (!passouLimiar) {
|
|
5430
|
+
if (Math.abs(delta) < limiarPx) return;
|
|
5431
|
+
passouLimiar = true;
|
|
5432
|
+
engolirClique.current = true;
|
|
5433
|
+
el.setPointerCapture?.(e2.pointerId);
|
|
5434
|
+
el.style.cursor = "grabbing";
|
|
5435
|
+
el.style.userSelect = "none";
|
|
5436
|
+
}
|
|
5437
|
+
el.scrollLeft = scrollInicial - delta;
|
|
5438
|
+
};
|
|
5439
|
+
const encerrar = (e2) => {
|
|
5440
|
+
if (!arrastando) return;
|
|
5441
|
+
arrastando = false;
|
|
5442
|
+
el.releasePointerCapture?.(e2.pointerId);
|
|
5443
|
+
el.style.cursor = "";
|
|
5444
|
+
el.style.userSelect = "";
|
|
5445
|
+
};
|
|
5446
|
+
const onClickCapture = (e2) => {
|
|
5447
|
+
if (!engolirClique.current) return;
|
|
5448
|
+
engolirClique.current = false;
|
|
5449
|
+
e2.stopPropagation();
|
|
5450
|
+
e2.preventDefault();
|
|
5451
|
+
};
|
|
5452
|
+
el.addEventListener("pointerdown", onPointerDown);
|
|
5453
|
+
el.addEventListener("pointermove", onPointerMove);
|
|
5454
|
+
el.addEventListener("pointerup", encerrar);
|
|
5455
|
+
el.addEventListener("pointercancel", encerrar);
|
|
5456
|
+
el.addEventListener("click", onClickCapture, true);
|
|
5457
|
+
return () => {
|
|
5458
|
+
el.removeEventListener("pointerdown", onPointerDown);
|
|
5459
|
+
el.removeEventListener("pointermove", onPointerMove);
|
|
5460
|
+
el.removeEventListener("pointerup", encerrar);
|
|
5461
|
+
el.removeEventListener("pointercancel", encerrar);
|
|
5462
|
+
el.removeEventListener("click", onClickCapture, true);
|
|
5463
|
+
el.style.cursor = "";
|
|
5464
|
+
el.style.userSelect = "";
|
|
5465
|
+
};
|
|
5466
|
+
}, [trilho, ativo, limiarPx]);
|
|
5467
|
+
}
|
|
5468
|
+
const tabsNavigationRoot = tv({
|
|
5469
|
+
base: "flex gap-gp-2xs px-pad-lg",
|
|
5470
|
+
variants: {
|
|
5471
|
+
/**
|
|
5472
|
+
* O RESPIRO DO TOPO É DO COMPONENTE, não do consumidor — e isso é o que torna a peça
|
|
5473
|
+
* independente da superfície onde ela cai.
|
|
5474
|
+
*
|
|
5475
|
+
* Enquanto o padding vinha de um wrapper por fora, aquela faixa de 8px acima das abas
|
|
5476
|
+
* ficava com a cor do container (a superfície do card) enquanto a tira ficava com o
|
|
5477
|
+
* recuo: duas cores na mesma banda, e a aba inativa parecia "um botão de outra cor
|
|
5478
|
+
* pousado num fundo diferente". Trazendo o padding pra cá, o recuo cobre a banda inteira
|
|
5479
|
+
* e a ÚNICA coisa com fundo próprio passa a ser a aba ativa.
|
|
5480
|
+
*/
|
|
5481
|
+
respiro: {
|
|
5482
|
+
comfortable: "pt-pad-md",
|
|
5483
|
+
compact: "pt-pad-sm",
|
|
5484
|
+
nenhum: ""
|
|
5485
|
+
},
|
|
5486
|
+
/**
|
|
5487
|
+
* `items-stretch` é o que faz a aba de altura total valer: com `items-end` ela encolheria
|
|
5488
|
+
* pro próprio conteúdo e o `h-full` não teria contra o que medir. A régua some junto.
|
|
5489
|
+
*/
|
|
5490
|
+
fill: {
|
|
5491
|
+
true: "items-stretch",
|
|
5492
|
+
false: "items-end border-b border-border-default"
|
|
5493
|
+
},
|
|
5494
|
+
/**
|
|
5495
|
+
* Fundo recuado da tira — o par por modo explicado no cabeçalho deste arquivo.
|
|
5496
|
+
*
|
|
5497
|
+
* No claro é `bg-emphasis` (0.94), não `bg-subtle` (0.973): contra a aba ativa branca, o
|
|
5498
|
+
* delta de 0.027 do subtle quase não se lia. Com `emphasis` o recuo é 0.06 e a aba
|
|
5499
|
+
* selecionada salta. No escuro `emphasis` é branco a 12% **sobre** o que está atrás, ou
|
|
5500
|
+
* seja mais CLARO que a superfície (0.28 contra 0.225) — inverteria a hierarquia; ali quem
|
|
5501
|
+
* recua continua sendo `canvas`, e o reforço vem da sombra na aba ativa.
|
|
5502
|
+
*/
|
|
5503
|
+
chrome: {
|
|
5504
|
+
true: "bg-bg-emphasis dark:bg-bg-canvas",
|
|
5505
|
+
false: ""
|
|
5506
|
+
}
|
|
5507
|
+
},
|
|
5508
|
+
defaultVariants: { fill: false, chrome: true, respiro: "comfortable" }
|
|
5509
|
+
});
|
|
5510
|
+
const tabsNavigationTrilho = tv({
|
|
5511
|
+
/**
|
|
5512
|
+
* `scrollbar-none` não é preferência: a barra ocupa 11px DENTRO do trilho e empurra as abas
|
|
5513
|
+
* pra cima da régua, matando a união. A affordance de navegação são as setas + a lista.
|
|
5514
|
+
*/
|
|
5515
|
+
base: "flex min-w-0 flex-1 gap-gp-2xs overflow-x-auto scrollbar-none",
|
|
5516
|
+
variants: {
|
|
5517
|
+
/** o `pb-px` só existe pra o `-mb-px` da aba não ser cortado pelo overflow. */
|
|
5518
|
+
fill: {
|
|
5519
|
+
true: "items-stretch",
|
|
5520
|
+
false: "items-end pb-px"
|
|
5521
|
+
}
|
|
5522
|
+
},
|
|
5523
|
+
defaultVariants: { fill: false }
|
|
5524
|
+
});
|
|
5525
|
+
const tabsNavigationTab = tv({
|
|
5526
|
+
base: [
|
|
5527
|
+
"group/aba relative flex shrink-0 cursor-pointer select-none",
|
|
5528
|
+
"items-center gap-gp-sm border border-transparent px-pad-xl",
|
|
5529
|
+
"text-fg-muted transition-colors",
|
|
5530
|
+
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand"
|
|
5531
|
+
],
|
|
5532
|
+
variants: {
|
|
5533
|
+
/**
|
|
5534
|
+
* A largura é fixa (aba que cresce com o título faz a fila dançar a cada troca) — mas
|
|
5535
|
+
* fixa em DOIS degraus: no celular, 228px é quase a tela inteira e o usuário vê uma aba
|
|
5536
|
+
* e meia, sem noção de que há uma fila. Abaixo de `sm` a aba cai pra ~168/148px, que
|
|
5537
|
+
* mostra duas e meia e deixa o gesto de arrastar fazer sentido.
|
|
5538
|
+
*/
|
|
5539
|
+
density: {
|
|
5540
|
+
comfortable: "w-[168px] sm:w-[228px]",
|
|
5541
|
+
compact: "w-[148px] sm:w-[196px]"
|
|
5542
|
+
},
|
|
5543
|
+
fill: {
|
|
5544
|
+
true: "h-full self-stretch",
|
|
5545
|
+
false: "-mb-px rounded-t-radius-lg"
|
|
5546
|
+
},
|
|
5547
|
+
/** A superfície da aba ATIVA — tem que casar com o conteúdo logo abaixo dela. */
|
|
5548
|
+
surface: {
|
|
5549
|
+
surface: "",
|
|
5550
|
+
canvas: ""
|
|
5551
|
+
},
|
|
5552
|
+
ativa: {
|
|
5553
|
+
/**
|
|
5554
|
+
* `shadow-sh-sm` faz o trabalho que a cor não consegue no escuro: ali a ativa (0.225) e
|
|
5555
|
+
* o recuo (0.205) distam 0.02, e mudar a cor da ativa quebraria a união com o conteúdo,
|
|
5556
|
+
* que é o ponto do componente. A sombra separa sem mexer na cor — e no dark ela vem
|
|
5557
|
+
* amplificada por token (L-011).
|
|
5558
|
+
*/
|
|
5559
|
+
true: "border-border-default text-fg-strong shadow-sh-sm",
|
|
5560
|
+
false: "hover:bg-bg-subtle"
|
|
5561
|
+
}
|
|
5562
|
+
},
|
|
5563
|
+
compoundVariants: [
|
|
5564
|
+
{ fill: false, density: "comfortable", class: "min-h-comp-3xl" },
|
|
5565
|
+
{ fill: false, density: "compact", class: "min-h-comp-xl" },
|
|
5566
|
+
/**
|
|
5567
|
+
* ⚠️ A borda de baixo da aba ativa é **transparente**, não "da cor do conteúdo".
|
|
5568
|
+
*
|
|
5569
|
+
* A primeira versão pintava `border-b-bg-surface` pra apagar a régua. Funcionava só quando
|
|
5570
|
+
* o conteúdo logo abaixo era exatamente aquela cor — nos exemplos em que a tira ficava
|
|
5571
|
+
* sobre container transparente, ou separada do painel por um gap, sobrava um traço claro
|
|
5572
|
+
* embaixo da aba selecionada. Com a borda transparente é o **fundo da aba** que cobre a
|
|
5573
|
+
* régua (o background pinta sob a border-box, e o `-mb-px` a coloca por cima da linha):
|
|
5574
|
+
* funciona igual em qualquer superfície, que é o comportamento que se espera por padrão —
|
|
5575
|
+
* a aba emenda no conteúdo, sem linha entre os dois.
|
|
5576
|
+
*/
|
|
5577
|
+
{ ativa: true, surface: "surface", class: "bg-bg-surface border-b-transparent" },
|
|
5578
|
+
{ ativa: true, surface: "canvas", class: "bg-bg-canvas border-b-transparent" }
|
|
5579
|
+
],
|
|
5580
|
+
defaultVariants: { density: "comfortable", fill: false, surface: "surface", ativa: false }
|
|
5581
|
+
});
|
|
5582
|
+
const tabsNavigationDivisoria = tv({
|
|
5583
|
+
base: "w-px shrink-0 bg-border-default",
|
|
5584
|
+
variants: {
|
|
5585
|
+
fill: {
|
|
5586
|
+
true: "h-[20px] self-center",
|
|
5587
|
+
false: "h-[20px] mb-[14px]"
|
|
5588
|
+
},
|
|
5589
|
+
/** Ao lado da aba ativa some: encostada na borda dela vira uma sombra falsa. */
|
|
5590
|
+
oculta: {
|
|
5591
|
+
true: "bg-transparent",
|
|
5592
|
+
false: ""
|
|
5593
|
+
}
|
|
5594
|
+
},
|
|
5595
|
+
defaultVariants: { fill: false, oculta: false }
|
|
5596
|
+
});
|
|
5597
|
+
const tabsNavigationControles = tv({
|
|
5598
|
+
base: "flex shrink-0 items-center gap-gp-2xs",
|
|
5599
|
+
variants: {
|
|
5600
|
+
fill: { true: "h-full", false: "" },
|
|
5601
|
+
density: { comfortable: "h-comp-3xl", compact: "h-comp-xl" }
|
|
5602
|
+
},
|
|
5603
|
+
compoundVariants: [
|
|
5604
|
+
{ fill: true, density: "comfortable", class: "h-full" },
|
|
5605
|
+
{ fill: true, density: "compact", class: "h-full" }
|
|
5606
|
+
],
|
|
5607
|
+
defaultVariants: { fill: false, density: "comfortable" }
|
|
5608
|
+
});
|
|
5609
|
+
const tabsNavigationAcao = tv({
|
|
5610
|
+
base: [
|
|
5611
|
+
"inline-flex size-comp-xs items-center justify-center rounded-radius-sm",
|
|
5612
|
+
"transition-colors focus-visible:outline-none focus-visible:ring-4"
|
|
5613
|
+
],
|
|
5614
|
+
variants: {
|
|
5615
|
+
tom: {
|
|
5616
|
+
neutro: "text-fg-muted hover:bg-bg-muted hover:text-fg-default focus-visible:ring-ring-brand",
|
|
5617
|
+
success: "text-fg-success hover:bg-bg-success-muted focus-visible:ring-ring-success",
|
|
5618
|
+
danger: "text-fg-danger hover:bg-bg-danger-muted focus-visible:ring-ring-danger"
|
|
5619
|
+
}
|
|
5620
|
+
},
|
|
5621
|
+
defaultVariants: { tom: "neutro" }
|
|
5622
|
+
});
|
|
5623
|
+
const tabsNavigationAcoes = tv({
|
|
5624
|
+
base: "grid transition-[grid-template-columns,opacity] duration-150 ease-out",
|
|
5625
|
+
variants: {
|
|
5626
|
+
visivel: {
|
|
5627
|
+
true: "grid-cols-[1fr] opacity-100",
|
|
5628
|
+
false: "grid-cols-[0fr] opacity-0 group-hover/aba:grid-cols-[1fr] group-hover/aba:opacity-100 group-focus-within/aba:grid-cols-[1fr] group-focus-within/aba:opacity-100"
|
|
5629
|
+
}
|
|
5630
|
+
},
|
|
5631
|
+
defaultVariants: { visivel: false }
|
|
5632
|
+
});
|
|
5633
|
+
const tabsNavigationStatus = tv({
|
|
5634
|
+
base: "size-icon-2xs shrink-0",
|
|
5635
|
+
variants: {
|
|
5636
|
+
status: {
|
|
5637
|
+
success: "fill-bg-success text-bg-success",
|
|
5638
|
+
warning: "fill-bg-warning text-bg-warning",
|
|
5639
|
+
danger: "fill-bg-danger text-bg-danger",
|
|
5640
|
+
info: "fill-bg-info text-bg-info",
|
|
5641
|
+
neutral: "fill-fg-subtle text-fg-subtle"
|
|
5642
|
+
}
|
|
5643
|
+
},
|
|
5644
|
+
defaultVariants: { status: "neutral" }
|
|
5645
|
+
});
|
|
5646
|
+
const STATUS_CONHECIDOS = ["success", "warning", "danger", "info", "neutral"];
|
|
5647
|
+
const ehStatusConhecido = (s2) => typeof s2 === "string" && STATUS_CONHECIDOS.includes(s2);
|
|
5648
|
+
function TabsNavigationTitle({ children, className, ...rest }) {
|
|
5649
|
+
return /* @__PURE__ */ jsx(
|
|
5650
|
+
"span",
|
|
5651
|
+
{
|
|
5652
|
+
className: [
|
|
5653
|
+
"block truncate text-body-sm font-medium",
|
|
5654
|
+
"group-aria-selected/aba:font-semibold",
|
|
5655
|
+
className ?? ""
|
|
5656
|
+
].join(" "),
|
|
5657
|
+
...rest,
|
|
5658
|
+
children
|
|
5659
|
+
}
|
|
5660
|
+
);
|
|
5661
|
+
}
|
|
5662
|
+
TabsNavigationTitle.displayName = "TabsNavigation.Title";
|
|
5663
|
+
function TabsNavigationSubtitle({ children, className, ...rest }) {
|
|
5664
|
+
const ctx = useContext(TabsNavigationContext);
|
|
5665
|
+
if (ctx?.density === "compact") return null;
|
|
5666
|
+
return /* @__PURE__ */ jsx(
|
|
5667
|
+
"span",
|
|
5668
|
+
{
|
|
5669
|
+
className: ["block truncate text-caption-md text-fg-subtle", className ?? ""].join(" "),
|
|
5670
|
+
...rest,
|
|
5671
|
+
children
|
|
5672
|
+
}
|
|
5673
|
+
);
|
|
5674
|
+
}
|
|
5675
|
+
TabsNavigationSubtitle.displayName = "TabsNavigation.Subtitle";
|
|
5676
|
+
const TabsNavigationAction = forwardRef(function TabsNavigationAction2({ tom = "neutro", className, onClick, ...rest }, ref) {
|
|
5677
|
+
return /* @__PURE__ */ jsx(
|
|
5678
|
+
"button",
|
|
5679
|
+
{
|
|
5680
|
+
ref,
|
|
5681
|
+
type: "button",
|
|
5682
|
+
className: tabsNavigationAcao({ tom, className }),
|
|
5683
|
+
onClick: (e2) => {
|
|
5684
|
+
e2.stopPropagation();
|
|
5685
|
+
onClick?.(e2);
|
|
5686
|
+
},
|
|
5687
|
+
...rest
|
|
5688
|
+
}
|
|
5689
|
+
);
|
|
5690
|
+
});
|
|
5691
|
+
TabsNavigationAction.displayName = "TabsNavigation.Action";
|
|
5692
|
+
function TabsNavigationActions({ children }) {
|
|
5693
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
5694
|
+
}
|
|
5695
|
+
TabsNavigationActions.displayName = "TabsNavigation.Actions";
|
|
5696
|
+
function TabsNavigationPanel({ value, children, className, ...rest }) {
|
|
5697
|
+
const ctx = useContext(TabsNavigationContext);
|
|
5698
|
+
if (!ctx || ctx.value !== value) return null;
|
|
5699
|
+
return /* @__PURE__ */ jsx(
|
|
5700
|
+
"div",
|
|
5701
|
+
{
|
|
5702
|
+
role: "tabpanel",
|
|
5703
|
+
"aria-labelledby": ctx.idTab(value),
|
|
5704
|
+
tabIndex: 0,
|
|
5705
|
+
className,
|
|
5706
|
+
...rest,
|
|
5707
|
+
children
|
|
5708
|
+
}
|
|
5709
|
+
);
|
|
5710
|
+
}
|
|
5711
|
+
TabsNavigationPanel.displayName = "TabsNavigation.Panel";
|
|
5712
|
+
const TabsNavigationTab = forwardRef(function TabsNavigationTab2({
|
|
5713
|
+
value,
|
|
5714
|
+
leading,
|
|
5715
|
+
status,
|
|
5716
|
+
badge,
|
|
5717
|
+
actions,
|
|
5718
|
+
onClose,
|
|
5719
|
+
menu,
|
|
5720
|
+
panelId,
|
|
5721
|
+
actionsAlwaysVisible = false,
|
|
5722
|
+
hoverCard,
|
|
5723
|
+
children,
|
|
5724
|
+
className,
|
|
5725
|
+
...rest
|
|
5726
|
+
}, ref) {
|
|
5727
|
+
const ctx = useContext(TabsNavigationContext);
|
|
5728
|
+
if (!ctx) throw new Error("<TabsNavigation.Tab> só funciona dentro de <TabsNavigation>.");
|
|
5729
|
+
const ativa = ctx.value === value;
|
|
5730
|
+
const temAcoesPadrao = !actions && typeof onClose === "function";
|
|
5731
|
+
const conteudoAcoes = actions ?? (temAcoesPadrao ? /* @__PURE__ */ jsx(AcoesPadrao, { onClose, menu }) : null);
|
|
5732
|
+
const aba = /* @__PURE__ */ jsxs(
|
|
5733
|
+
"div",
|
|
5734
|
+
{
|
|
5735
|
+
ref,
|
|
5736
|
+
role: "tab",
|
|
5737
|
+
id: ctx.idTab(value),
|
|
5738
|
+
"data-value": value,
|
|
5739
|
+
"aria-selected": ativa,
|
|
5740
|
+
"aria-controls": panelId,
|
|
5741
|
+
tabIndex: ativa ? 0 : -1,
|
|
5742
|
+
onClick: () => ctx.onValueChange(value),
|
|
5743
|
+
onKeyDown: (e2) => {
|
|
5744
|
+
if (e2.key === "Enter" || e2.key === " ") {
|
|
5745
|
+
e2.preventDefault();
|
|
5746
|
+
ctx.onValueChange(value);
|
|
5747
|
+
}
|
|
5748
|
+
},
|
|
5749
|
+
className: tabsNavigationTab({
|
|
5750
|
+
density: ctx.density,
|
|
5751
|
+
fill: ctx.fill,
|
|
5752
|
+
surface: ctx.surface,
|
|
5753
|
+
ativa,
|
|
5754
|
+
className
|
|
5755
|
+
}),
|
|
5756
|
+
...rest,
|
|
5757
|
+
children: [
|
|
5758
|
+
leading,
|
|
5759
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: status !== void 0 ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-gp-sm", children: [
|
|
5760
|
+
ehStatusConhecido(status) ? /* @__PURE__ */ jsx(Circle, { className: tabsNavigationStatus({ status }), "aria-hidden": true }) : status,
|
|
5761
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children })
|
|
5762
|
+
] }) : children }),
|
|
5763
|
+
!ativa && badge !== void 0 && badge !== null && badge !== 0 ? typeof badge === "number" ? /* @__PURE__ */ jsx(
|
|
5764
|
+
"span",
|
|
5765
|
+
{
|
|
5766
|
+
className: "inline-flex min-w-[18px] items-center justify-center rounded-radius-full bg-bg-brand px-pad-xs text-caption-sm font-semibold text-fg-on-brand",
|
|
5767
|
+
"aria-hidden": true,
|
|
5768
|
+
children: badge
|
|
5769
|
+
}
|
|
5770
|
+
) : badge : null,
|
|
5771
|
+
conteudoAcoes ? /* @__PURE__ */ jsx(
|
|
5772
|
+
"div",
|
|
5773
|
+
{
|
|
5774
|
+
className: tabsNavigationAcoes({
|
|
5775
|
+
visivel: ativa || actionsAlwaysVisible || ctx.actionsMode === "persistent"
|
|
5776
|
+
}),
|
|
5777
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-gp-2xs overflow-hidden", children: conteudoAcoes })
|
|
5778
|
+
}
|
|
5779
|
+
) : null
|
|
5780
|
+
]
|
|
5781
|
+
}
|
|
5782
|
+
);
|
|
5783
|
+
if (!hoverCard || ativa) return aba;
|
|
5784
|
+
return /* @__PURE__ */ jsxs(HoverCard, { openDelay: 500, closeDelay: 120, children: [
|
|
5785
|
+
/* @__PURE__ */ jsx(HoverCardTrigger, { asChild: true, children: aba }),
|
|
5786
|
+
/* @__PURE__ */ jsx(HoverCardContent, { align: "start", className: "w-[300px]", children: hoverCard })
|
|
5787
|
+
] });
|
|
5788
|
+
});
|
|
5789
|
+
TabsNavigationTab.displayName = "TabsNavigation.Tab";
|
|
5790
|
+
function AcoesPadrao({ onClose, menu }) {
|
|
5791
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5792
|
+
/* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
5793
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(TabsNavigationAction, { "aria-label": "Opções da aba", children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-icon-sm" }) }) }),
|
|
5794
|
+
/* @__PURE__ */ jsxs(DropdownMenuContent, { align: "start", className: "w-[196px]", children: [
|
|
5795
|
+
menu,
|
|
5796
|
+
menu ? /* @__PURE__ */ jsx(DropdownMenuSeparator, {}) : null,
|
|
5797
|
+
/* @__PURE__ */ jsxs(
|
|
5798
|
+
DropdownMenuItem,
|
|
5799
|
+
{
|
|
5800
|
+
onSelect: onClose,
|
|
5801
|
+
className: "text-fg-danger focus:bg-bg-danger-muted focus:text-fg-danger",
|
|
5802
|
+
children: [
|
|
5803
|
+
/* @__PURE__ */ jsx(X2, { className: "size-icon-sm" }),
|
|
5804
|
+
" Fechar aba"
|
|
5805
|
+
]
|
|
5806
|
+
}
|
|
5807
|
+
)
|
|
5808
|
+
] })
|
|
5809
|
+
] }),
|
|
5810
|
+
/* @__PURE__ */ jsx(TabsNavigationAction, { "aria-label": "Fechar aba", onClick: onClose, children: /* @__PURE__ */ jsx(X2, { className: "size-icon-sm" }) })
|
|
5811
|
+
] });
|
|
5812
|
+
}
|
|
5813
|
+
const TabsNavigationRoot = forwardRef(function TabsNavigation2({
|
|
5814
|
+
value,
|
|
5815
|
+
onValueChange,
|
|
5816
|
+
surface = "surface",
|
|
5817
|
+
density = "comfortable",
|
|
5818
|
+
fill = false,
|
|
5819
|
+
actionsMode = "hover",
|
|
5820
|
+
chrome = true,
|
|
5821
|
+
onNewTab,
|
|
5822
|
+
children,
|
|
5823
|
+
className,
|
|
5824
|
+
"aria-label": ariaLabel,
|
|
5825
|
+
...rest
|
|
5826
|
+
}, ref) {
|
|
5827
|
+
const prefixo = useId();
|
|
5828
|
+
const trilho = useRef(null);
|
|
5829
|
+
const ctx = useMemo(
|
|
5830
|
+
() => ({
|
|
5831
|
+
value,
|
|
5832
|
+
onValueChange,
|
|
5833
|
+
surface,
|
|
5834
|
+
density,
|
|
5835
|
+
fill,
|
|
5836
|
+
actionsMode,
|
|
5837
|
+
idTab: (v3) => `${prefixo}-${v3}`
|
|
5838
|
+
}),
|
|
5839
|
+
[value, onValueChange, surface, density, fill, actionsMode, prefixo]
|
|
5840
|
+
);
|
|
5841
|
+
const { abas, acoesGlobais } = useMemo(() => {
|
|
5842
|
+
const abas2 = [];
|
|
5843
|
+
let acoesGlobais2 = null;
|
|
5844
|
+
for (const filho of Children.toArray(children)) {
|
|
5845
|
+
if (!isValidElement(filho)) continue;
|
|
5846
|
+
if (filho.type === TabsNavigationActions) acoesGlobais2 = filho;
|
|
5847
|
+
else abas2.push(filho);
|
|
5848
|
+
}
|
|
5849
|
+
return { abas: abas2, acoesGlobais: acoesGlobais2 };
|
|
5850
|
+
}, [children]);
|
|
5851
|
+
const [rolagem, setRolagem] = useState({ transborda: false, esq: false, dir: false });
|
|
5852
|
+
const medir = useCallback(() => {
|
|
5853
|
+
const el = trilho.current;
|
|
5854
|
+
if (!el) return;
|
|
5855
|
+
const max = el.scrollWidth - el.clientWidth;
|
|
5856
|
+
setRolagem({ transborda: max > 1, esq: el.scrollLeft > 1, dir: el.scrollLeft < max - 1 });
|
|
5857
|
+
}, []);
|
|
5858
|
+
useEffect(() => {
|
|
5859
|
+
const el = trilho.current;
|
|
5860
|
+
if (!el) return;
|
|
5861
|
+
medir();
|
|
5862
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
5863
|
+
const ro = new ResizeObserver(medir);
|
|
5864
|
+
ro.observe(el);
|
|
5865
|
+
for (const filho of Array.from(el.children)) ro.observe(filho);
|
|
5866
|
+
return () => ro.disconnect();
|
|
5867
|
+
}, [medir, abas.length]);
|
|
5868
|
+
useEffect(() => {
|
|
5869
|
+
const el = trilho.current;
|
|
5870
|
+
const alvo = el?.querySelector(`[data-value="${CSS.escape(value)}"]`);
|
|
5871
|
+
alvo?.scrollIntoView({ inline: "nearest", block: "nearest", behavior: "smooth" });
|
|
5872
|
+
if (el?.contains(document.activeElement) && alvo !== document.activeElement) alvo?.focus();
|
|
5873
|
+
}, [value]);
|
|
5874
|
+
useArrastarParaRolar(trilho);
|
|
5875
|
+
const rolar = (dir) => trilho.current?.scrollBy({ left: dir * 240, behavior: "smooth" });
|
|
5876
|
+
const onKeyDown = (e2) => {
|
|
5877
|
+
const valores = abas.map((a11) => a11.props.value);
|
|
5878
|
+
const i3 = valores.indexOf(value);
|
|
5879
|
+
if (i3 < 0) return;
|
|
5880
|
+
const proximo = e2.key === "ArrowRight" ? valores[(i3 + 1) % valores.length] : e2.key === "ArrowLeft" ? valores[(i3 - 1 + valores.length) % valores.length] : e2.key === "Home" ? valores[0] : e2.key === "End" ? valores[valores.length - 1] : null;
|
|
5881
|
+
if (!proximo) return;
|
|
5882
|
+
e2.preventDefault();
|
|
5883
|
+
onValueChange(proximo);
|
|
5884
|
+
};
|
|
5885
|
+
const controles = tabsNavigationControles({ fill, density });
|
|
5886
|
+
return /* @__PURE__ */ jsx(TabsNavigationContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs(
|
|
5887
|
+
"div",
|
|
5888
|
+
{
|
|
5889
|
+
ref,
|
|
5890
|
+
role: "tablist",
|
|
5891
|
+
"aria-label": ariaLabel,
|
|
5892
|
+
"aria-orientation": "horizontal",
|
|
5893
|
+
onKeyDown,
|
|
5894
|
+
className: tabsNavigationRoot({
|
|
5895
|
+
fill,
|
|
5896
|
+
chrome,
|
|
5897
|
+
// em `fill` a aba vai de ponta a ponta: respiro no topo desmontaria justamente isso
|
|
5898
|
+
respiro: fill ? "nenhum" : density,
|
|
5899
|
+
className
|
|
5900
|
+
}),
|
|
5901
|
+
...rest,
|
|
5902
|
+
children: [
|
|
5903
|
+
rolagem.esq ? /* @__PURE__ */ jsxs("div", { className: `${controles} hidden pr-pad-xs sm:flex`, children: [
|
|
5904
|
+
/* @__PURE__ */ jsx(
|
|
5905
|
+
Button,
|
|
5906
|
+
{
|
|
5907
|
+
variant: "ghost",
|
|
5908
|
+
color: "secondary",
|
|
5909
|
+
size: "icon-sm",
|
|
5910
|
+
"aria-label": "Abas anteriores",
|
|
5911
|
+
onClick: () => rolar(-1),
|
|
5912
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, {})
|
|
5913
|
+
}
|
|
5914
|
+
),
|
|
5915
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: tabsNavigationDivisoria({ fill }) })
|
|
5916
|
+
] }) : null,
|
|
5917
|
+
/* @__PURE__ */ jsx("div", { ref: trilho, onScroll: medir, className: tabsNavigationTrilho({ fill }), children: abas.map((aba, i3) => {
|
|
5918
|
+
const vizinhaDaAtiva = aba.props.value === value || abas[i3 + 1]?.props.value === value;
|
|
5919
|
+
return /* @__PURE__ */ jsxs(
|
|
5920
|
+
"div",
|
|
5921
|
+
{
|
|
5922
|
+
className: ["flex shrink-0", fill ? "items-stretch" : "items-end"].join(" "),
|
|
5923
|
+
children: [
|
|
5924
|
+
aba,
|
|
5925
|
+
i3 < abas.length - 1 ? /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: tabsNavigationDivisoria({ fill, oculta: vizinhaDaAtiva }) }) : null
|
|
5926
|
+
]
|
|
5927
|
+
},
|
|
5928
|
+
aba.props.value
|
|
5929
|
+
);
|
|
5930
|
+
}) }),
|
|
5931
|
+
rolagem.dir ? /* @__PURE__ */ jsxs("div", { className: `${controles} hidden pl-pad-xs sm:flex`, children: [
|
|
5932
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: tabsNavigationDivisoria({ fill }) }),
|
|
5933
|
+
/* @__PURE__ */ jsx(
|
|
5934
|
+
Button,
|
|
5935
|
+
{
|
|
5936
|
+
variant: "ghost",
|
|
5937
|
+
color: "secondary",
|
|
5938
|
+
size: "icon-sm",
|
|
5939
|
+
"aria-label": "Próximas abas",
|
|
5940
|
+
onClick: () => rolar(1),
|
|
5941
|
+
children: /* @__PURE__ */ jsx(ChevronRight, {})
|
|
5942
|
+
}
|
|
5943
|
+
)
|
|
5944
|
+
] }) : null,
|
|
5945
|
+
onNewTab || rolagem.transborda && abas.length || acoesGlobais ? /* @__PURE__ */ jsxs("div", { className: controles, children: [
|
|
5946
|
+
onNewTab ? /* @__PURE__ */ jsx(
|
|
5947
|
+
Button,
|
|
5948
|
+
{
|
|
5949
|
+
variant: "ghost",
|
|
5950
|
+
color: "secondary",
|
|
5951
|
+
size: "icon-sm",
|
|
5952
|
+
"aria-label": "Abrir nova aba",
|
|
5953
|
+
onClick: onNewTab,
|
|
5954
|
+
children: /* @__PURE__ */ jsx(Plus, {})
|
|
5955
|
+
}
|
|
5956
|
+
) : null,
|
|
5957
|
+
rolagem.transborda && abas.length ? /* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
5958
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
5959
|
+
Button,
|
|
5960
|
+
{
|
|
5961
|
+
variant: "ghost",
|
|
5962
|
+
color: "secondary",
|
|
5963
|
+
size: "icon-sm",
|
|
5964
|
+
"aria-label": `Listar as ${abas.length} abas abertas`,
|
|
5965
|
+
children: /* @__PURE__ */ jsx(ChevronDown, {})
|
|
5966
|
+
}
|
|
5967
|
+
) }),
|
|
5968
|
+
/* @__PURE__ */ jsxs(
|
|
5969
|
+
DropdownMenuContent,
|
|
5970
|
+
{
|
|
5971
|
+
align: "end",
|
|
5972
|
+
className: "max-h-[320px] w-[264px] overflow-y-auto scrollbar-thin",
|
|
5973
|
+
children: [
|
|
5974
|
+
/* @__PURE__ */ jsxs(DropdownMenuLabel, { children: [
|
|
5975
|
+
abas.length,
|
|
5976
|
+
" abas abertas"
|
|
5977
|
+
] }),
|
|
5978
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
5979
|
+
abas.map((aba) => {
|
|
5980
|
+
const p4 = aba.props;
|
|
5981
|
+
return /* @__PURE__ */ jsxs(
|
|
5982
|
+
DropdownMenuItem,
|
|
5983
|
+
{
|
|
5984
|
+
onSelect: () => onValueChange(p4.value),
|
|
5985
|
+
className: p4.value === value ? "bg-bg-brand-subtle text-fg-brand" : void 0,
|
|
5986
|
+
children: [
|
|
5987
|
+
ehStatusConhecido(p4.status) ? /* @__PURE__ */ jsx(Circle, { className: tabsNavigationStatus({ status: p4.status }), "aria-hidden": true }) : null,
|
|
5988
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1", children: p4.children })
|
|
5989
|
+
]
|
|
5990
|
+
},
|
|
5991
|
+
p4.value
|
|
5992
|
+
);
|
|
5993
|
+
})
|
|
5994
|
+
]
|
|
5995
|
+
}
|
|
5996
|
+
)
|
|
5997
|
+
] }) : null,
|
|
5998
|
+
acoesGlobais ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5999
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: tabsNavigationDivisoria({ fill, className: "mx-pad-xs" }) }),
|
|
6000
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-gp-2xs", children: acoesGlobais })
|
|
6001
|
+
] }) : null
|
|
6002
|
+
] }) : null
|
|
6003
|
+
]
|
|
6004
|
+
}
|
|
6005
|
+
) });
|
|
6006
|
+
});
|
|
6007
|
+
const TabsNavigation = Object.assign(TabsNavigationRoot, {
|
|
6008
|
+
Tab: TabsNavigationTab,
|
|
6009
|
+
Title: TabsNavigationTitle,
|
|
6010
|
+
Subtitle: TabsNavigationSubtitle,
|
|
6011
|
+
Action: TabsNavigationAction,
|
|
6012
|
+
Actions: TabsNavigationActions,
|
|
6013
|
+
Panel: TabsNavigationPanel
|
|
6014
|
+
});
|
|
5403
6015
|
class Adder {
|
|
5404
6016
|
constructor() {
|
|
5405
6017
|
this._partials = new Float64Array(32);
|
|
@@ -8295,10 +8907,11 @@ export {
|
|
|
8295
8907
|
A as AlertModal,
|
|
8296
8908
|
A2 as AppShell,
|
|
8297
8909
|
Avatar,
|
|
8910
|
+
u as AvatarGroup,
|
|
8298
8911
|
BRANDS,
|
|
8299
8912
|
B2 as Badge,
|
|
8300
8913
|
B as BulkActionButton,
|
|
8301
|
-
|
|
8914
|
+
v as BulkActionsBar,
|
|
8302
8915
|
Button,
|
|
8303
8916
|
ButtonGroup,
|
|
8304
8917
|
CardCheckbox,
|
|
@@ -8316,38 +8929,38 @@ export {
|
|
|
8316
8929
|
ChoroplethMap,
|
|
8317
8930
|
ColorPicker,
|
|
8318
8931
|
C as ColsPanel,
|
|
8319
|
-
|
|
8320
|
-
|
|
8932
|
+
w as ColsPopover,
|
|
8933
|
+
x as Combobox,
|
|
8321
8934
|
ConversationListItem,
|
|
8322
8935
|
DEFAULT_COLOR_PRESETS,
|
|
8323
|
-
|
|
8936
|
+
y as DEFAULT_FILTER_OPERATORS,
|
|
8324
8937
|
DEFAULT_MESSAGE_VARIABLES,
|
|
8325
8938
|
DataList,
|
|
8326
8939
|
D as DataTable,
|
|
8327
|
-
|
|
8328
|
-
|
|
8329
|
-
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8940
|
+
z as DataTableActionsCell,
|
|
8941
|
+
E as DataTableEditCell,
|
|
8942
|
+
G as DataTableEmpty,
|
|
8943
|
+
H as DataTableFloatingBulkBar,
|
|
8944
|
+
I as DataTableLoading,
|
|
8945
|
+
J as DataTableNoResults,
|
|
8946
|
+
K as DataTableTotalizerRow,
|
|
8334
8947
|
DatePicker,
|
|
8335
8948
|
DateSeparatorChip,
|
|
8336
8949
|
EmptyState,
|
|
8337
|
-
|
|
8950
|
+
M as FLOATING_PANEL_SIZE_PX,
|
|
8338
8951
|
FileUploadField,
|
|
8339
|
-
|
|
8952
|
+
N as FilterPanel,
|
|
8340
8953
|
FilterPopover,
|
|
8341
8954
|
d as FloatingPanel,
|
|
8342
|
-
|
|
8343
|
-
|
|
8344
|
-
|
|
8345
|
-
|
|
8955
|
+
O as FloatingPanelField,
|
|
8956
|
+
Q as FloatingPanelSection,
|
|
8957
|
+
R as FooterTable,
|
|
8958
|
+
S as FooterTableSkeleton,
|
|
8346
8959
|
FormField,
|
|
8347
|
-
|
|
8960
|
+
U as FormFieldCheckbox,
|
|
8348
8961
|
F as FormFieldInput,
|
|
8349
8962
|
b as FormFieldSelect,
|
|
8350
|
-
|
|
8963
|
+
V as FormFieldSwitch,
|
|
8351
8964
|
c as FormFieldTextarea,
|
|
8352
8965
|
H2 as Header,
|
|
8353
8966
|
c2 as HeaderBreadcrumb,
|
|
@@ -8363,7 +8976,7 @@ export {
|
|
|
8363
8976
|
S3 as InputGroupInput,
|
|
8364
8977
|
T as InputGroupText,
|
|
8365
8978
|
U3 as InputGroupTextarea,
|
|
8366
|
-
|
|
8979
|
+
W as Kanban,
|
|
8367
8980
|
a10 as Kpi,
|
|
8368
8981
|
b3 as KpiDelta,
|
|
8369
8982
|
K2 as KpiGroup,
|
|
@@ -8378,23 +8991,23 @@ export {
|
|
|
8378
8991
|
MessageVariablesPicker,
|
|
8379
8992
|
Modal,
|
|
8380
8993
|
MonthYearPicker,
|
|
8381
|
-
|
|
8994
|
+
X as MoreMenu,
|
|
8382
8995
|
y2 as MoreMenuCheckboxItem,
|
|
8383
8996
|
DropdownMenuItem as MoreMenuItem,
|
|
8384
|
-
|
|
8997
|
+
DropdownMenuLabel as MoreMenuLabel,
|
|
8385
8998
|
H3 as MoreMenuRadioGroup,
|
|
8386
8999
|
I2 as MoreMenuRadioItem,
|
|
8387
9000
|
DropdownMenuSeparator as MoreMenuSeparator,
|
|
8388
9001
|
P3 as PageHeader,
|
|
8389
9002
|
P as Panel,
|
|
8390
|
-
|
|
9003
|
+
Y as PanelBody,
|
|
8391
9004
|
G2 as PanelCloseAction,
|
|
8392
9005
|
H4 as PanelContent,
|
|
8393
|
-
|
|
8394
|
-
|
|
8395
|
-
|
|
9006
|
+
Z as PanelFooter,
|
|
9007
|
+
_ as PanelHeader,
|
|
9008
|
+
F2 as PanelRoot,
|
|
8396
9009
|
O2 as PanelTrigger,
|
|
8397
|
-
|
|
9010
|
+
$ as SELECTION_COLUMN_WIDTH,
|
|
8398
9011
|
ScreenLoader,
|
|
8399
9012
|
S2 as SidebarBrandIcon,
|
|
8400
9013
|
h as SidebarItem,
|
|
@@ -8404,37 +9017,48 @@ export {
|
|
|
8404
9017
|
l as SidebarSection,
|
|
8405
9018
|
m as SidebarSubgroup,
|
|
8406
9019
|
n as SingleMenuSidebar,
|
|
8407
|
-
|
|
8408
|
-
|
|
9020
|
+
a0 as SortPanel,
|
|
9021
|
+
a1 as SortPopover,
|
|
8409
9022
|
Spinner,
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
|
|
8414
|
-
|
|
8415
|
-
|
|
8416
|
-
|
|
8417
|
-
|
|
9023
|
+
a2 as TABLE_HEADER_HEIGHT,
|
|
9024
|
+
a3 as Table,
|
|
9025
|
+
a4 as TableBody,
|
|
9026
|
+
a5 as TableCardRow,
|
|
9027
|
+
a6 as TableCell,
|
|
9028
|
+
a7 as TableHead,
|
|
9029
|
+
a8 as TableHeadCell,
|
|
9030
|
+
a9 as TableRow,
|
|
8418
9031
|
TableToolbar,
|
|
8419
|
-
|
|
9032
|
+
aa as TableToolbarViews,
|
|
9033
|
+
TabsNavigation,
|
|
9034
|
+
TabsNavigationAction,
|
|
9035
|
+
TabsNavigationActions,
|
|
9036
|
+
TabsNavigationContext,
|
|
9037
|
+
TabsNavigationPanel,
|
|
9038
|
+
TabsNavigationRoot,
|
|
9039
|
+
TabsNavigationSubtitle,
|
|
9040
|
+
TabsNavigationTab,
|
|
9041
|
+
TabsNavigationTitle,
|
|
8420
9042
|
ToastCard,
|
|
8421
9043
|
ToolbarApplied,
|
|
8422
|
-
|
|
9044
|
+
ab as ToolbarDivider,
|
|
8423
9045
|
ToolbarFilterControl,
|
|
8424
9046
|
ToolbarMobileDialog,
|
|
8425
9047
|
ToolbarMobileSection,
|
|
8426
9048
|
ToolbarMobileSheet,
|
|
8427
|
-
|
|
9049
|
+
ac as ToolbarSaveButton,
|
|
8428
9050
|
ToolbarSearch,
|
|
8429
|
-
|
|
8430
|
-
|
|
9051
|
+
ad as ToolbarSegmented,
|
|
9052
|
+
ae as ToolbarSettingsMenu,
|
|
8431
9053
|
ToolbarSimpleFilterDrawer,
|
|
8432
9054
|
ToolbarTabs,
|
|
8433
9055
|
ToolbarToolButton,
|
|
8434
9056
|
U2 as UserMenu,
|
|
8435
|
-
|
|
9057
|
+
af as ViewsPopover,
|
|
8436
9058
|
actionColumn,
|
|
8437
|
-
|
|
9059
|
+
ag as avatarGroupItem,
|
|
9060
|
+
ah as avatarGroupRoot,
|
|
9061
|
+
ai as avatarVariants,
|
|
8438
9062
|
aJ as badgeVariants,
|
|
8439
9063
|
a92 as buttonVariants,
|
|
8440
9064
|
cardCheckbox,
|
|
@@ -8451,7 +9075,7 @@ export {
|
|
|
8451
9075
|
dateSeparatorChipStyles,
|
|
8452
9076
|
emailColumn,
|
|
8453
9077
|
emptyStateStyles,
|
|
8454
|
-
|
|
9078
|
+
aj as floatingPanelStyles,
|
|
8455
9079
|
iconStyles,
|
|
8456
9080
|
icons,
|
|
8457
9081
|
a62 as inputGroupVariants,
|
|
@@ -8467,22 +9091,30 @@ export {
|
|
|
8467
9091
|
messageVariablesPickerStyles,
|
|
8468
9092
|
numberColumn,
|
|
8469
9093
|
p3 as pageHeaderStyles,
|
|
8470
|
-
|
|
9094
|
+
ak as panelContainer,
|
|
8471
9095
|
phoneColumn,
|
|
8472
9096
|
p as presetView,
|
|
8473
|
-
|
|
9097
|
+
al as savedViewsMockService,
|
|
8474
9098
|
t2 as shouldPreventNavigation,
|
|
8475
9099
|
statusColumn,
|
|
9100
|
+
tabsNavigationAcao,
|
|
9101
|
+
tabsNavigationAcoes,
|
|
9102
|
+
tabsNavigationControles,
|
|
9103
|
+
tabsNavigationDivisoria,
|
|
9104
|
+
tabsNavigationRoot,
|
|
9105
|
+
tabsNavigationStatus,
|
|
9106
|
+
tabsNavigationTab,
|
|
9107
|
+
tabsNavigationTrilho,
|
|
8476
9108
|
textColumn,
|
|
8477
9109
|
toast,
|
|
8478
9110
|
toastVariants,
|
|
8479
9111
|
useBrand,
|
|
8480
9112
|
useChart,
|
|
8481
|
-
|
|
8482
|
-
|
|
9113
|
+
am as useColumnResize,
|
|
9114
|
+
an as useColumnWidths,
|
|
8483
9115
|
v2 as useControllable,
|
|
8484
|
-
|
|
8485
|
-
|
|
9116
|
+
ao as useDataTableContext,
|
|
9117
|
+
ap as useFloatingPanelResize,
|
|
8486
9118
|
w2 as useMediaQuery,
|
|
8487
9119
|
u2 as useTheme,
|
|
8488
9120
|
useToolbarFilterControl,
|