@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.
Files changed (87) hide show
  1. package/dist-lib/chunks/{avatar-DAmZ7fBZ.cjs → avatar-CMWPg3A3.cjs} +157 -70
  2. package/dist-lib/chunks/avatar-CMWPg3A3.cjs.map +1 -0
  3. package/dist-lib/chunks/{avatar-FPbG1TRy.mjs → avatar-CZRLkTxt.mjs} +214 -127
  4. package/dist-lib/chunks/avatar-CZRLkTxt.mjs.map +1 -0
  5. package/dist-lib/chunks/{input-tjIT8HNE.mjs → input-BQABJR2N.mjs} +2 -2
  6. package/dist-lib/chunks/{input-tjIT8HNE.mjs.map → input-BQABJR2N.mjs.map} +1 -1
  7. package/dist-lib/chunks/{input-Ci_2-5Te.cjs → input-DqaLFxER.cjs} +2 -2
  8. package/dist-lib/chunks/{input-Ci_2-5Te.cjs.map → input-DqaLFxER.cjs.map} +1 -1
  9. package/dist-lib/chunks/{kpi-delta-BRTgTaO1.mjs → kpi-delta-Bfs_oVpq.mjs} +3 -3
  10. package/dist-lib/chunks/{kpi-delta-BRTgTaO1.mjs.map → kpi-delta-Bfs_oVpq.mjs.map} +1 -1
  11. package/dist-lib/chunks/{kpi-delta-1-gsPFvU.cjs → kpi-delta-wEzw5zSu.cjs} +3 -3
  12. package/dist-lib/chunks/{kpi-delta-1-gsPFvU.cjs.map → kpi-delta-wEzw5zSu.cjs.map} +1 -1
  13. package/dist-lib/chunks/{page-header-DrKDiVFN.cjs → page-header-sValhWca.cjs} +2 -2
  14. package/dist-lib/chunks/{page-header-DrKDiVFN.cjs.map → page-header-sValhWca.cjs.map} +1 -1
  15. package/dist-lib/chunks/{page-header-DdWp9c-r.mjs → page-header-t5hFIp7o.mjs} +2 -2
  16. package/dist-lib/chunks/{page-header-DdWp9c-r.mjs.map → page-header-t5hFIp7o.mjs.map} +1 -1
  17. package/dist-lib/chunks/{panel-DsOKm4Im.mjs → panel-C3puLY_V.mjs} +5 -5
  18. package/dist-lib/chunks/{panel-DsOKm4Im.mjs.map → panel-C3puLY_V.mjs.map} +1 -1
  19. package/dist-lib/chunks/{panel-CTbiCa0_.cjs → panel-DmnK2n5_.cjs} +5 -5
  20. package/dist-lib/chunks/{panel-CTbiCa0_.cjs.map → panel-DmnK2n5_.cjs.map} +1 -1
  21. package/dist-lib/chunks/{sheet-DIpYkRYS.mjs → sheet-Bjjo4ZaT.mjs} +2 -2
  22. package/dist-lib/chunks/{sheet-DIpYkRYS.mjs.map → sheet-Bjjo4ZaT.mjs.map} +1 -1
  23. package/dist-lib/chunks/{sheet-rg6uupt1.cjs → sheet-BrYriaDN.cjs} +2 -2
  24. package/dist-lib/chunks/{sheet-rg6uupt1.cjs.map → sheet-BrYriaDN.cjs.map} +1 -1
  25. package/dist-lib/chunks/{toggle-group-C9rrkkmh.cjs → toggle-group-DeoBmogo.cjs} +24 -111
  26. package/dist-lib/chunks/toggle-group-DeoBmogo.cjs.map +1 -0
  27. package/dist-lib/chunks/{toggle-group-mXbG8_Jm.mjs → toggle-group-XMgZgL-H.mjs} +111 -198
  28. package/dist-lib/chunks/toggle-group-XMgZgL-H.mjs.map +1 -0
  29. package/dist-lib/chunks/{useTheme-Dh3POjCr.cjs → useTheme-BTjHuaT2.cjs} +225 -84
  30. package/dist-lib/chunks/useTheme-BTjHuaT2.cjs.map +1 -0
  31. package/dist-lib/chunks/{useTheme-Bk8AYqLr.mjs → useTheme-caPM-I73.mjs} +267 -126
  32. package/dist-lib/chunks/useTheme-caPM-I73.mjs.map +1 -0
  33. package/dist-lib/index.cjs +647 -8
  34. package/dist-lib/index.cjs.map +1 -1
  35. package/dist-lib/index.mjs +1041 -402
  36. package/dist-lib/index.mjs.map +1 -1
  37. package/dist-lib/preview/chat.cjs +3 -3
  38. package/dist-lib/preview/chat.mjs +3 -3
  39. package/dist-lib/preview/clientes.cjs +6 -6
  40. package/dist-lib/preview/clientes.mjs +6 -6
  41. package/dist-lib/preview/dashboard.cjs +4 -4
  42. package/dist-lib/preview/dashboard.mjs +4 -4
  43. package/dist-lib/shadcn.cjs +11 -11
  44. package/dist-lib/shadcn.mjs +153 -153
  45. package/dist-lib/src/components/index.d.ts +2 -0
  46. package/dist-lib/src/components/index.d.ts.map +1 -1
  47. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.d.ts +35 -0
  48. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.d.ts.map +1 -0
  49. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.styles.d.ts +94 -0
  50. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.styles.d.ts.map +1 -0
  51. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.types.d.ts +50 -0
  52. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb-switcher.types.d.ts.map +1 -0
  53. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.d.ts +32 -0
  54. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.d.ts.map +1 -0
  55. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.styles.d.ts +111 -0
  56. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.styles.d.ts.map +1 -0
  57. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.types.d.ts +40 -0
  58. package/dist-lib/src/components/ui/Breadcrumb/breadcrumb.types.d.ts.map +1 -0
  59. package/dist-lib/src/components/ui/Breadcrumb/index.d.ts +21 -0
  60. package/dist-lib/src/components/ui/Breadcrumb/index.d.ts.map +1 -0
  61. package/dist-lib/src/components/ui/DataTable/parts/data-table-cell-addons.styles.d.ts +3 -3
  62. package/dist-lib/src/components/ui/Header/header-breadcrumb.d.ts +13 -3
  63. package/dist-lib/src/components/ui/Header/header-breadcrumb.d.ts.map +1 -1
  64. package/dist-lib/src/components/ui/Header/header.styles.d.ts +12 -33
  65. package/dist-lib/src/components/ui/Header/header.styles.d.ts.map +1 -1
  66. package/dist-lib/src/components/ui/Header/header.types.d.ts +17 -0
  67. package/dist-lib/src/components/ui/Header/header.types.d.ts.map +1 -1
  68. package/dist-lib/src/components/ui/TabsNavigation/index.d.ts +5 -0
  69. package/dist-lib/src/components/ui/TabsNavigation/index.d.ts.map +1 -0
  70. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation-context.d.ts +19 -0
  71. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation-context.d.ts.map +1 -0
  72. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.d.ts +84 -0
  73. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.d.ts.map +1 -0
  74. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.styles.d.ts +393 -0
  75. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.styles.d.ts.map +1 -0
  76. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.types.d.ts +99 -0
  77. package/dist-lib/src/components/ui/TabsNavigation/tabs-navigation.types.d.ts.map +1 -0
  78. package/dist-lib/src/components/ui/TabsNavigation/use-arrastar-para-rolar.d.ts +26 -0
  79. package/dist-lib/src/components/ui/TabsNavigation/use-arrastar-para-rolar.d.ts.map +1 -0
  80. package/dist-lib/theme.css +15 -0
  81. package/package.json +1 -1
  82. package/dist-lib/chunks/avatar-DAmZ7fBZ.cjs.map +0 -1
  83. package/dist-lib/chunks/avatar-FPbG1TRy.mjs.map +0 -1
  84. package/dist-lib/chunks/toggle-group-C9rrkkmh.cjs.map +0 -1
  85. package/dist-lib/chunks/toggle-group-mXbG8_Jm.mjs.map +0 -1
  86. package/dist-lib/chunks/useTheme-Bk8AYqLr.mjs.map +0 -1
  87. 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-DAmZ7fBZ.cjs");
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 isStandalone = items.length === 1;
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
- "nav",
466
+ Breadcrumb,
281
467
  {
282
- className: avatar.cn(
283
- breadcrumbRoot(),
284
- mobileShowLastOnly && "hidden md:flex",
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 && /* @__PURE__ */ jsxRuntime.jsx(
331
- "nav",
473
+ mobileShowLastOnly ? /* @__PURE__ */ jsxRuntime.jsx(
474
+ Breadcrumb,
332
475
  {
333
- className: avatar.cn(breadcrumbRoot(), "md:hidden", className),
476
+ items: [ultimo],
477
+ size: "sm",
334
478
  "aria-label": "Seção atual",
335
- children: /* @__PURE__ */ jsxRuntime.jsx(
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-Dh3POjCr.cjs.map
3656
+ //# sourceMappingURL=useTheme-BTjHuaT2.cjs.map