@snksergio/design-system 0.53.0 → 0.55.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/{avatar-DAmZ7fBZ.cjs → avatar-CMWPg3A3.cjs} +157 -70
- package/dist-lib/chunks/avatar-CMWPg3A3.cjs.map +1 -0
- package/dist-lib/chunks/{avatar-FPbG1TRy.mjs → avatar-CZRLkTxt.mjs} +214 -127
- package/dist-lib/chunks/avatar-CZRLkTxt.mjs.map +1 -0
- package/dist-lib/chunks/{input-tjIT8HNE.mjs → input-BQABJR2N.mjs} +2 -2
- package/dist-lib/chunks/{input-tjIT8HNE.mjs.map → input-BQABJR2N.mjs.map} +1 -1
- package/dist-lib/chunks/{input-Ci_2-5Te.cjs → input-DqaLFxER.cjs} +2 -2
- package/dist-lib/chunks/{input-Ci_2-5Te.cjs.map → input-DqaLFxER.cjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-BRTgTaO1.mjs → kpi-delta-Bfs_oVpq.mjs} +3 -3
- package/dist-lib/chunks/{kpi-delta-BRTgTaO1.mjs.map → kpi-delta-Bfs_oVpq.mjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-1-gsPFvU.cjs → kpi-delta-wEzw5zSu.cjs} +3 -3
- package/dist-lib/chunks/{kpi-delta-1-gsPFvU.cjs.map → kpi-delta-wEzw5zSu.cjs.map} +1 -1
- package/dist-lib/chunks/{page-header-DrKDiVFN.cjs → page-header-sValhWca.cjs} +2 -2
- package/dist-lib/chunks/{page-header-DrKDiVFN.cjs.map → page-header-sValhWca.cjs.map} +1 -1
- package/dist-lib/chunks/{page-header-DdWp9c-r.mjs → page-header-t5hFIp7o.mjs} +2 -2
- package/dist-lib/chunks/{page-header-DdWp9c-r.mjs.map → page-header-t5hFIp7o.mjs.map} +1 -1
- package/dist-lib/chunks/{panel-DsOKm4Im.mjs → panel-C3puLY_V.mjs} +5 -5
- package/dist-lib/chunks/{panel-DsOKm4Im.mjs.map → panel-C3puLY_V.mjs.map} +1 -1
- package/dist-lib/chunks/{panel-CTbiCa0_.cjs → panel-DmnK2n5_.cjs} +5 -5
- package/dist-lib/chunks/{panel-CTbiCa0_.cjs.map → panel-DmnK2n5_.cjs.map} +1 -1
- package/dist-lib/chunks/{sheet-DIpYkRYS.mjs → sheet-Bjjo4ZaT.mjs} +2 -2
- package/dist-lib/chunks/{sheet-DIpYkRYS.mjs.map → sheet-Bjjo4ZaT.mjs.map} +1 -1
- package/dist-lib/chunks/{sheet-rg6uupt1.cjs → sheet-BrYriaDN.cjs} +2 -2
- package/dist-lib/chunks/{sheet-rg6uupt1.cjs.map → sheet-BrYriaDN.cjs.map} +1 -1
- package/dist-lib/chunks/{toggle-group-C9rrkkmh.cjs → toggle-group-DeoBmogo.cjs} +24 -111
- package/dist-lib/chunks/toggle-group-DeoBmogo.cjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-mXbG8_Jm.mjs → toggle-group-XMgZgL-H.mjs} +111 -198
- package/dist-lib/chunks/toggle-group-XMgZgL-H.mjs.map +1 -0
- package/dist-lib/chunks/{useTheme-Dh3POjCr.cjs → useTheme-BTjHuaT2.cjs} +225 -84
- package/dist-lib/chunks/useTheme-BTjHuaT2.cjs.map +1 -0
- package/dist-lib/chunks/{useTheme-Bk8AYqLr.mjs → useTheme-caPM-I73.mjs} +267 -126
- package/dist-lib/chunks/useTheme-caPM-I73.mjs.map +1 -0
- package/dist-lib/index.cjs +647 -8
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +1041 -402
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/chat.cjs +3 -3
- package/dist-lib/preview/chat.mjs +3 -3
- package/dist-lib/preview/clientes.cjs +6 -6
- package/dist-lib/preview/clientes.mjs +6 -6
- package/dist-lib/preview/dashboard.cjs +4 -4
- package/dist-lib/preview/dashboard.mjs +4 -4
- package/dist-lib/shadcn.cjs +11 -11
- package/dist-lib/shadcn.mjs +153 -153
- package/dist-lib/src/components/index.d.ts +2 -0
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.d.ts +35 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.styles.d.ts +94 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.types.d.ts +50 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.d.ts +32 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.styles.d.ts +111 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.types.d.ts +40 -0
- package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Breadcrumb/index.d.ts +21 -0
- package/dist-lib/src/components/ui/Breadcrumb/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/DataTable/parts/data-table-cell-addons.styles.d.ts +3 -3
- package/dist-lib/src/components/ui/Header/header-breadcrumb.d.ts +13 -3
- package/dist-lib/src/components/ui/Header/header-breadcrumb.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Header/header.styles.d.ts +12 -33
- package/dist-lib/src/components/ui/Header/header.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/Header/header.types.d.ts +17 -0
- package/dist-lib/src/components/ui/Header/header.types.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/theme.css +15 -0
- package/package.json +1 -1
- package/dist-lib/chunks/avatar-DAmZ7fBZ.cjs.map +0 -1
- package/dist-lib/chunks/avatar-FPbG1TRy.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/chunks/useTheme-Bk8AYqLr.mjs.map +0 -1
- package/dist-lib/chunks/useTheme-Dh3POjCr.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const React = require("react");
|
|
4
|
-
const avatar = require("./avatar-
|
|
4
|
+
const avatar = require("./avatar-CMWPg3A3.cjs");
|
|
5
5
|
const lucideReact = require("lucide-react");
|
|
6
6
|
const ToggleGroupPrimitive = require("@radix-ui/react-toggle-group");
|
|
7
7
|
function _interopNamespaceDefault(e) {
|
|
@@ -63,27 +63,6 @@ const headerIconBtnBadge = avatar.tv({
|
|
|
63
63
|
},
|
|
64
64
|
defaultVariants: { kind: "brand" }
|
|
65
65
|
});
|
|
66
|
-
const breadcrumbRoot = avatar.tv({
|
|
67
|
-
base: "flex items-center gap-gp-sm min-w-0"
|
|
68
|
-
});
|
|
69
|
-
const breadcrumbItem = avatar.tv({
|
|
70
|
-
base: "font-medium truncate transition-colors leading-none",
|
|
71
|
-
variants: {
|
|
72
|
-
current: {
|
|
73
|
-
true: "text-fg-default font-semibold",
|
|
74
|
-
false: "text-fg-muted hover:text-fg-default cursor-pointer"
|
|
75
|
-
},
|
|
76
|
-
/** Quando único item no breadcrumb (= título da página), font-size sobe pra 16px */
|
|
77
|
-
standalone: {
|
|
78
|
-
true: "text-body-lg",
|
|
79
|
-
false: "text-body-sm font-normal"
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
defaultVariants: { current: false, standalone: false }
|
|
83
|
-
});
|
|
84
|
-
const breadcrumbSeparator = avatar.tv({
|
|
85
|
-
base: "text-fg-subtle shrink-0"
|
|
86
|
-
});
|
|
87
66
|
const searchFakeInput = avatar.tv({
|
|
88
67
|
base: [
|
|
89
68
|
"inline-flex items-center gap-gp-md h-form-md w-[180px]",
|
|
@@ -267,81 +246,239 @@ const hdFooterLink = avatar.tv({
|
|
|
267
246
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-brand"
|
|
268
247
|
]
|
|
269
248
|
});
|
|
249
|
+
const breadcrumbSwitcher = avatar.tv({
|
|
250
|
+
slots: {
|
|
251
|
+
trigger: [
|
|
252
|
+
"inline-flex max-w-[240px] items-center gap-gp-xs rounded-radius-sm",
|
|
253
|
+
"px-pad-xs py-pad-2xs -mx-pad-xs",
|
|
254
|
+
"font-medium text-fg-default",
|
|
255
|
+
"transition-colors hover:bg-bg-muted",
|
|
256
|
+
"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand",
|
|
257
|
+
"disabled:pointer-events-none disabled:opacity-60",
|
|
258
|
+
// aberto fica marcado: sem isso, com o dropdown na tela, o gatilho some do olhar
|
|
259
|
+
"data-[state=open]:bg-bg-muted"
|
|
260
|
+
],
|
|
261
|
+
/** O rótulo trunca; o chevron nunca — ele é o que anuncia que dá pra trocar. */
|
|
262
|
+
label: "truncate",
|
|
263
|
+
chevron: "size-icon-xs shrink-0 text-fg-muted",
|
|
264
|
+
content: "w-[300px] p-0",
|
|
265
|
+
title: "px-pad-xl pt-pad-lg pb-pad-sm text-caption-md font-semibold text-fg-subtle",
|
|
266
|
+
/** O rodapé fica FORA da área que rola — “ver todos” não pode fugir com a lista. */
|
|
267
|
+
footer: "border-t border-border-default p-pad-sm",
|
|
268
|
+
item: "flex items-center gap-gp-md",
|
|
269
|
+
itemTexto: "flex min-w-0 flex-1 flex-col",
|
|
270
|
+
itemLabel: "truncate",
|
|
271
|
+
itemDescricao: "truncate text-caption-md text-fg-subtle"
|
|
272
|
+
},
|
|
273
|
+
variants: {
|
|
274
|
+
/**
|
|
275
|
+
* Acompanha o tamanho do caminho. Sem isto o gatilho ficava 13px fixo no meio de irmãos de
|
|
276
|
+
* 14px (medido na doc) — o item que troca é o MESMO item do caminho, não pode ter corpo
|
|
277
|
+
* próprio.
|
|
278
|
+
*/
|
|
279
|
+
size: {
|
|
280
|
+
sm: { trigger: "text-body-sm" },
|
|
281
|
+
md: { trigger: "text-body-md" }
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
defaultVariants: { size: "md" }
|
|
285
|
+
});
|
|
286
|
+
const BreadcrumbSwitcher = React.forwardRef(
|
|
287
|
+
function BreadcrumbSwitcher2({
|
|
288
|
+
value,
|
|
289
|
+
onValueChange,
|
|
290
|
+
options,
|
|
291
|
+
placeholder,
|
|
292
|
+
title,
|
|
293
|
+
searchPlaceholder = "Buscar…",
|
|
294
|
+
emptyMessage = "Nada encontrado.",
|
|
295
|
+
footer,
|
|
296
|
+
open: openProp,
|
|
297
|
+
onOpenChange,
|
|
298
|
+
align = "start",
|
|
299
|
+
size = "md",
|
|
300
|
+
disabled,
|
|
301
|
+
className,
|
|
302
|
+
contentClassName,
|
|
303
|
+
"aria-label": ariaLabel = "Trocar registro aberto"
|
|
304
|
+
}, ref) {
|
|
305
|
+
const [openInterno, setOpenInterno] = React.useState(false);
|
|
306
|
+
const open = openProp ?? openInterno;
|
|
307
|
+
const setOpen = (proximo) => {
|
|
308
|
+
setOpenInterno(proximo);
|
|
309
|
+
onOpenChange?.(proximo);
|
|
310
|
+
};
|
|
311
|
+
const estilos = breadcrumbSwitcher({ size });
|
|
312
|
+
const atual = options.find((o) => o.value === value);
|
|
313
|
+
const grupos = React.useMemo(() => {
|
|
314
|
+
const mapa = /* @__PURE__ */ new Map();
|
|
315
|
+
for (const opcao of options) {
|
|
316
|
+
const chave = opcao.group ?? "";
|
|
317
|
+
const atual2 = mapa.get(chave);
|
|
318
|
+
if (atual2) atual2.push(opcao);
|
|
319
|
+
else mapa.set(chave, [opcao]);
|
|
320
|
+
}
|
|
321
|
+
return [...mapa.entries()];
|
|
322
|
+
}, [options]);
|
|
323
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(avatar.Popover, { open, onOpenChange: setOpen, children: [
|
|
324
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
325
|
+
"button",
|
|
326
|
+
{
|
|
327
|
+
ref,
|
|
328
|
+
type: "button",
|
|
329
|
+
"aria-label": ariaLabel,
|
|
330
|
+
"aria-expanded": open,
|
|
331
|
+
disabled,
|
|
332
|
+
className: estilos.trigger({ className }),
|
|
333
|
+
children: [
|
|
334
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: estilos.label(), children: atual?.label ?? placeholder ?? value }),
|
|
335
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsUpDown, { className: estilos.chevron(), "aria-hidden": true })
|
|
336
|
+
]
|
|
337
|
+
}
|
|
338
|
+
) }),
|
|
339
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
340
|
+
avatar.PopoverContent,
|
|
341
|
+
{
|
|
342
|
+
align,
|
|
343
|
+
className: estilos.content({ className: contentClassName }),
|
|
344
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(avatar.Command, { children: [
|
|
345
|
+
title ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: estilos.title(), children: title }) : null,
|
|
346
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.CommandInput, { placeholder: searchPlaceholder }),
|
|
347
|
+
/* @__PURE__ */ jsxRuntime.jsxs(avatar.CommandList, { children: [
|
|
348
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.CommandEmpty, { children: emptyMessage }),
|
|
349
|
+
grupos.map(([nomeGrupo, opcoes]) => /* @__PURE__ */ jsxRuntime.jsx(avatar.CommandGroup, { heading: nomeGrupo || void 0, children: opcoes.map((opcao) => {
|
|
350
|
+
const selecionada = opcao.value === value;
|
|
351
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
352
|
+
avatar.CommandItem,
|
|
353
|
+
{
|
|
354
|
+
"data-atual": selecionada || void 0,
|
|
355
|
+
value: opcao.label,
|
|
356
|
+
keywords: [opcao.value, ...opcao.keywords ?? []],
|
|
357
|
+
onSelect: () => {
|
|
358
|
+
onValueChange(opcao.value);
|
|
359
|
+
setOpen(false);
|
|
360
|
+
},
|
|
361
|
+
className: avatar.cn(selecionada && "font-medium text-fg-default"),
|
|
362
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: estilos.item(), children: [
|
|
363
|
+
opcao.leading,
|
|
364
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: estilos.itemTexto(), children: [
|
|
365
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: estilos.itemLabel(), children: opcao.label }),
|
|
366
|
+
opcao.description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: estilos.itemDescricao(), children: opcao.description }) : null
|
|
367
|
+
] }),
|
|
368
|
+
selecionada ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-icon-sm shrink-0 text-fg-brand", "aria-hidden": true }) : null
|
|
369
|
+
] })
|
|
370
|
+
},
|
|
371
|
+
opcao.value
|
|
372
|
+
);
|
|
373
|
+
}) }, nomeGrupo || "_"))
|
|
374
|
+
] }),
|
|
375
|
+
footer ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: estilos.footer(), children: footer }) : null
|
|
376
|
+
] })
|
|
377
|
+
}
|
|
378
|
+
)
|
|
379
|
+
] });
|
|
380
|
+
}
|
|
381
|
+
);
|
|
382
|
+
BreadcrumbSwitcher.displayName = "BreadcrumbSwitcher";
|
|
383
|
+
const breadcrumbCaminho = avatar.tv({
|
|
384
|
+
slots: {
|
|
385
|
+
lista: "gap-gp-sm sm:gap-gp-sm",
|
|
386
|
+
separador: "shrink-0 text-fg-subtle [&>svg]:size-[14px]",
|
|
387
|
+
item: "truncate transition-colors leading-none"
|
|
388
|
+
},
|
|
389
|
+
variants: {
|
|
390
|
+
size: {
|
|
391
|
+
sm: { item: "text-body-sm font-normal" },
|
|
392
|
+
md: { item: "text-body-md font-normal" }
|
|
393
|
+
},
|
|
394
|
+
/**
|
|
395
|
+
* Item único = título da página. O `HeaderBreadcrumb` fazia isso e é o que mantém o Header
|
|
396
|
+
* pixel a pixel: 16px/600 em vez do 13px da cadeia.
|
|
397
|
+
*/
|
|
398
|
+
sozinho: {
|
|
399
|
+
true: { item: "text-body-lg font-semibold" },
|
|
400
|
+
false: {}
|
|
401
|
+
},
|
|
402
|
+
atual: {
|
|
403
|
+
true: { item: "text-fg-default" },
|
|
404
|
+
false: { item: "text-fg-muted hover:text-fg-default" }
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
defaultVariants: { size: "md", sozinho: false, atual: false }
|
|
408
|
+
});
|
|
409
|
+
function ehSwitcher(item) {
|
|
410
|
+
return Array.isArray(item.switcher) && item.switcher.length > 0 && typeof item.value === "string" && typeof item.onValueChange === "function";
|
|
411
|
+
}
|
|
412
|
+
const Breadcrumb = React.forwardRef(function Breadcrumb2({ items, size = "md", separator, className, children, ...rest }, ref) {
|
|
413
|
+
if (!items) {
|
|
414
|
+
return /* @__PURE__ */ jsxRuntime.jsx(avatar.Breadcrumb, { ref, className, ...rest, children });
|
|
415
|
+
}
|
|
416
|
+
if (items.length === 0) return null;
|
|
417
|
+
const sozinho = items.length === 1;
|
|
418
|
+
const estilos = breadcrumbCaminho({ size, sozinho });
|
|
419
|
+
return /* @__PURE__ */ jsxRuntime.jsx(avatar.Breadcrumb, { ref, className, ...rest, children: /* @__PURE__ */ jsxRuntime.jsx(avatar.BreadcrumbList, { className: estilos.lista(), children: items.map((item, i) => {
|
|
420
|
+
const ultimo = i === items.length - 1;
|
|
421
|
+
const clicavel = !ultimo && (item.href !== void 0 || item.onClick !== void 0);
|
|
422
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
|
|
423
|
+
i > 0 ? /* @__PURE__ */ jsxRuntime.jsx(avatar.BreadcrumbSeparator, { className: estilos.separador(), children: separator ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { strokeWidth: 1.7 }) }) : null,
|
|
424
|
+
/* @__PURE__ */ jsxRuntime.jsx(avatar.BreadcrumbItem, { className: "min-w-0", children: ehSwitcher(item) ? (
|
|
425
|
+
/* Vem ANTES do teste de link: um seletor com `href` continua sendo seletor —
|
|
426
|
+
o clique abre a lista. */
|
|
427
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
428
|
+
BreadcrumbSwitcher,
|
|
429
|
+
{
|
|
430
|
+
value: item.value,
|
|
431
|
+
onValueChange: item.onValueChange,
|
|
432
|
+
options: item.switcher,
|
|
433
|
+
size,
|
|
434
|
+
title: item.switcherTitle,
|
|
435
|
+
searchPlaceholder: item.switcherSearchPlaceholder,
|
|
436
|
+
emptyMessage: item.switcherEmptyMessage,
|
|
437
|
+
footer: item.switcherFooter,
|
|
438
|
+
"aria-label": item.switcherAriaLabel ?? `Trocar: ${item.label}`
|
|
439
|
+
}
|
|
440
|
+
)
|
|
441
|
+
) : clicavel ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
442
|
+
avatar.BreadcrumbLink,
|
|
443
|
+
{
|
|
444
|
+
href: item.href ?? "#",
|
|
445
|
+
className: estilos.item({ atual: false }),
|
|
446
|
+
onClick: (e) => {
|
|
447
|
+
if (!item.href) e.preventDefault();
|
|
448
|
+
item.onClick?.(e);
|
|
449
|
+
},
|
|
450
|
+
children: item.label
|
|
451
|
+
}
|
|
452
|
+
) : ultimo ? /* @__PURE__ */ jsxRuntime.jsx(avatar.BreadcrumbPage, { className: estilos.item({ atual: true }), children: item.label }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: avatar.cn(estilos.item({ atual: false }), "cursor-default"), children: item.label }) })
|
|
453
|
+
] }, `${item.label}-${i}`);
|
|
454
|
+
}) }) });
|
|
455
|
+
});
|
|
456
|
+
Breadcrumb.displayName = "Breadcrumb";
|
|
270
457
|
function HeaderBreadcrumb({
|
|
271
458
|
items,
|
|
272
459
|
mobileShowLastOnly,
|
|
273
460
|
className
|
|
274
461
|
}) {
|
|
275
462
|
if (items.length === 0) return null;
|
|
276
|
-
const
|
|
277
|
-
const lastItem = items[items.length - 1];
|
|
463
|
+
const ultimo = items[items.length - 1];
|
|
278
464
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
279
465
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
280
|
-
|
|
466
|
+
Breadcrumb,
|
|
281
467
|
{
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
className
|
|
286
|
-
),
|
|
287
|
-
"aria-label": "Breadcrumb",
|
|
288
|
-
children: items.map((item, idx) => {
|
|
289
|
-
const isLast = idx === items.length - 1;
|
|
290
|
-
const isClickable = !isLast && (item.href !== void 0 || item.onClick !== void 0);
|
|
291
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
|
|
292
|
-
idx > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
293
|
-
lucideReact.ChevronRight,
|
|
294
|
-
{
|
|
295
|
-
size: 14,
|
|
296
|
-
strokeWidth: 1.7,
|
|
297
|
-
className: breadcrumbSeparator(),
|
|
298
|
-
"aria-hidden": "true"
|
|
299
|
-
}
|
|
300
|
-
),
|
|
301
|
-
isClickable ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
302
|
-
"a",
|
|
303
|
-
{
|
|
304
|
-
href: item.href ?? "#",
|
|
305
|
-
className: breadcrumbItem({
|
|
306
|
-
current: false,
|
|
307
|
-
standalone: isStandalone
|
|
308
|
-
}),
|
|
309
|
-
onClick: (e) => {
|
|
310
|
-
if (!item.href) e.preventDefault();
|
|
311
|
-
item.onClick?.(e);
|
|
312
|
-
},
|
|
313
|
-
children: item.label
|
|
314
|
-
}
|
|
315
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
316
|
-
"span",
|
|
317
|
-
{
|
|
318
|
-
className: breadcrumbItem({
|
|
319
|
-
current: isLast,
|
|
320
|
-
standalone: isStandalone
|
|
321
|
-
}),
|
|
322
|
-
"aria-current": isLast ? "page" : void 0,
|
|
323
|
-
children: item.label
|
|
324
|
-
}
|
|
325
|
-
)
|
|
326
|
-
] }, `${item.label}-${idx}`);
|
|
327
|
-
})
|
|
468
|
+
items,
|
|
469
|
+
size: "sm",
|
|
470
|
+
className: avatar.cn("min-w-0", mobileShowLastOnly && "hidden md:block", className)
|
|
328
471
|
}
|
|
329
472
|
),
|
|
330
|
-
mobileShowLastOnly
|
|
331
|
-
|
|
473
|
+
mobileShowLastOnly ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
474
|
+
Breadcrumb,
|
|
332
475
|
{
|
|
333
|
-
|
|
476
|
+
items: [ultimo],
|
|
477
|
+
size: "sm",
|
|
334
478
|
"aria-label": "Seção atual",
|
|
335
|
-
|
|
336
|
-
"span",
|
|
337
|
-
{
|
|
338
|
-
className: breadcrumbItem({ current: true, standalone: true }),
|
|
339
|
-
"aria-current": "page",
|
|
340
|
-
children: lastItem.label
|
|
341
|
-
}
|
|
342
|
-
)
|
|
479
|
+
className: avatar.cn("min-w-0 md:hidden", className)
|
|
343
480
|
}
|
|
344
|
-
)
|
|
481
|
+
) : null
|
|
345
482
|
] });
|
|
346
483
|
}
|
|
347
484
|
function HeaderSearch({
|
|
@@ -3484,6 +3621,8 @@ function useTheme() {
|
|
|
3484
3621
|
return { theme, setTheme, isDark, toggle };
|
|
3485
3622
|
}
|
|
3486
3623
|
exports.AppShell = AppShell;
|
|
3624
|
+
exports.Breadcrumb = Breadcrumb;
|
|
3625
|
+
exports.BreadcrumbSwitcher = BreadcrumbSwitcher;
|
|
3487
3626
|
exports.Chip = Chip;
|
|
3488
3627
|
exports.ChipGroup = ChipGroup;
|
|
3489
3628
|
exports.ChipGroupItem = ChipGroupItem;
|
|
@@ -3503,6 +3642,8 @@ exports.SidebarSection = SidebarSection;
|
|
|
3503
3642
|
exports.SidebarSubgroup = SidebarSubgroup;
|
|
3504
3643
|
exports.SingleMenuSidebar = SingleMenuSidebar;
|
|
3505
3644
|
exports.UserMenu = UserMenu;
|
|
3645
|
+
exports.breadcrumbCaminho = breadcrumbCaminho;
|
|
3646
|
+
exports.breadcrumbSwitcher = breadcrumbSwitcher;
|
|
3506
3647
|
exports.chipCount = chipCount;
|
|
3507
3648
|
exports.chipVariants = chipVariants;
|
|
3508
3649
|
exports.isExternalHref = isExternalHref;
|
|
@@ -3512,4 +3653,4 @@ exports.shouldPreventNavigation = shouldPreventNavigation;
|
|
|
3512
3653
|
exports.useControllable = useControllable;
|
|
3513
3654
|
exports.useMediaQuery = useMediaQuery;
|
|
3514
3655
|
exports.useTheme = useTheme;
|
|
3515
|
-
//# sourceMappingURL=useTheme-
|
|
3656
|
+
//# sourceMappingURL=useTheme-BTjHuaT2.cjs.map
|