@snksergio/design-system 0.54.0 → 0.56.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-BTnqY_nt.cjs → toggle-group-DeoBmogo.cjs} +2 -89
- package/dist-lib/chunks/toggle-group-DeoBmogo.cjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-BYmj8142.mjs → toggle-group-XMgZgL-H.mjs} +90 -177
- 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 +2535 -11
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +2956 -432
- 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/Scheduler/hooks/layout.d.ts +165 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/layout.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-media-query.d.ts +21 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-media-query.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-dnd.d.ts +41 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-dnd.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-filter.d.ts +35 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-filter.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-keyboard.d.ts +47 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-keyboard.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-state.d.ts +44 -0
- package/dist-lib/src/components/ui/Scheduler/hooks/use-scheduler-state.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/index.d.ts +14 -0
- package/dist-lib/src/components/ui/Scheduler/index.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/draggable-event.d.ts +30 -0
- package/dist-lib/src/components/ui/Scheduler/parts/draggable-event.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/mini-month.d.ts +28 -0
- package/dist-lib/src/components/ui/Scheduler/parts/mini-month.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-event.d.ts +53 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-event.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-filter-panel.d.ts +41 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-filter-panel.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-toolbar.d.ts +31 -0
- package/dist-lib/src/components/ui/Scheduler/parts/scheduler-toolbar.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.d.ts +44 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.styles.d.ts +820 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.types.d.ts +285 -0
- package/dist-lib/src/components/ui/Scheduler/scheduler.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/views/list.d.ts +33 -0
- package/dist-lib/src/components/ui/Scheduler/views/list.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/views/month.d.ts +47 -0
- package/dist-lib/src/components/ui/Scheduler/views/month.d.ts.map +1 -0
- package/dist-lib/src/components/ui/Scheduler/views/time-grid.d.ts +48 -0
- package/dist-lib/src/components/ui/Scheduler/views/time-grid.d.ts.map +1 -0
- package/package.json +210 -210
- 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-BTnqY_nt.cjs.map +0 -1
- package/dist-lib/chunks/toggle-group-BYmj8142.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
|