@snksergio/design-system 0.1.0 → 0.4.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 (73) hide show
  1. package/README.md +34 -1
  2. package/dist-lib/chunks/{app-shell-BNTvOETJ.mjs → app-shell-BdVam01i.cjs} +55 -55
  3. package/dist-lib/chunks/app-shell-BdVam01i.cjs.map +1 -0
  4. package/dist-lib/chunks/{app-shell-CDy42aNI.mjs → app-shell-C_enrPD8.mjs} +86 -86
  5. package/dist-lib/chunks/app-shell-C_enrPD8.mjs.map +1 -0
  6. package/dist-lib/chunks/{app-shell-mocks-oO_IV3Gw.mjs → app-shell-mocks-oO_IV3Gw.cjs} +1 -1
  7. package/dist-lib/chunks/{app-shell-mocks-oO_IV3Gw.mjs.map → app-shell-mocks-oO_IV3Gw.cjs.map} +1 -1
  8. package/dist-lib/chunks/{badge-B_2Zt52o.mjs → badge-B0D_PRxn.mjs} +10 -10
  9. package/dist-lib/chunks/badge-B0D_PRxn.mjs.map +1 -0
  10. package/dist-lib/chunks/{badge-DKpXURa1.mjs → badge-CUttkO1X.cjs} +10 -10
  11. package/dist-lib/chunks/badge-CUttkO1X.cjs.map +1 -0
  12. package/dist-lib/chunks/{chat-v2-mocks-BV9Wha_Z.mjs → chat-v2-mocks-BV9Wha_Z.cjs} +1 -1
  13. package/dist-lib/chunks/{chat-v2-mocks-BV9Wha_Z.mjs.map → chat-v2-mocks-BV9Wha_Z.cjs.map} +1 -1
  14. package/dist-lib/chunks/{chip-group-CsKBBHW2.mjs → chip-group-2-f_Yo7Y.cjs} +31 -64
  15. package/dist-lib/chunks/chip-group-2-f_Yo7Y.cjs.map +1 -0
  16. package/dist-lib/chunks/{chip-group-D3D0i72q.mjs → chip-group-_e-yh1Zq.mjs} +31 -64
  17. package/dist-lib/chunks/chip-group-_e-yh1Zq.mjs.map +1 -0
  18. package/dist-lib/chunks/{clientes-showcase-mocks-BMfbNNJh.mjs → clientes-showcase-mocks-CPNOhx1G.cjs} +3 -3
  19. package/dist-lib/chunks/clientes-showcase-mocks-CPNOhx1G.cjs.map +1 -0
  20. package/dist-lib/chunks/{clientes-showcase-mocks-Cq9u3nGZ.mjs → clientes-showcase-mocks-DEHCKxMK.mjs} +3 -3
  21. package/dist-lib/chunks/clientes-showcase-mocks-DEHCKxMK.mjs.map +1 -0
  22. package/dist-lib/chunks/{input-374MpdBL.mjs → input-BWevV7up.cjs} +3 -3
  23. package/dist-lib/chunks/input-BWevV7up.cjs.map +1 -0
  24. package/dist-lib/chunks/{input-DF4XAWmr.mjs → input-C9eKSSEb.mjs} +3 -3
  25. package/dist-lib/chunks/input-C9eKSSEb.mjs.map +1 -0
  26. package/dist-lib/chunks/{page-header-mC1gGtOI.mjs → page-header-DM2G1mdi.mjs} +3 -3
  27. package/dist-lib/chunks/page-header-DM2G1mdi.mjs.map +1 -0
  28. package/dist-lib/chunks/{page-header-Dw-3wqAG.mjs → page-header-qOywgRWy.cjs} +3 -3
  29. package/dist-lib/chunks/page-header-qOywgRWy.cjs.map +1 -0
  30. package/dist-lib/chunks/{panel-bzNmFlEZ.mjs → panel-CjfnpA-4.cjs} +532 -244
  31. package/dist-lib/chunks/panel-CjfnpA-4.cjs.map +1 -0
  32. package/dist-lib/chunks/{panel-Ds15whqp.mjs → panel-DZ7X1NZV.mjs} +547 -259
  33. package/dist-lib/chunks/panel-DZ7X1NZV.mjs.map +1 -0
  34. package/dist-lib/chunks/{useTheme-Dee4mo-A.mjs → useTheme-Dee4mo-A.cjs} +1 -1
  35. package/dist-lib/chunks/{useTheme-Dee4mo-A.mjs.map → useTheme-Dee4mo-A.cjs.map} +1 -1
  36. package/dist-lib/index.cjs +23 -76
  37. package/dist-lib/index.cjs.map +1 -1
  38. package/dist-lib/index.mjs +89 -142
  39. package/dist-lib/index.mjs.map +1 -1
  40. package/dist-lib/preview/chat.cjs +38 -39
  41. package/dist-lib/preview/chat.cjs.map +1 -1
  42. package/dist-lib/preview/chat.mjs +35 -36
  43. package/dist-lib/preview/chat.mjs.map +1 -1
  44. package/dist-lib/preview/clientes.cjs +22 -22
  45. package/dist-lib/preview/clientes.cjs.map +1 -1
  46. package/dist-lib/preview/clientes.mjs +20 -20
  47. package/dist-lib/preview/clientes.mjs.map +1 -1
  48. package/dist-lib/preview/dashboard.cjs +40 -40
  49. package/dist-lib/preview/dashboard.cjs.map +1 -1
  50. package/dist-lib/preview/dashboard.mjs +38 -38
  51. package/dist-lib/preview/dashboard.mjs.map +1 -1
  52. package/dist-lib/preview/mocks.cjs +3 -3
  53. package/dist-lib/preview/mocks.mjs +1 -1
  54. package/dist-lib/theme.css +18 -122
  55. package/dist-lib/tokens.cjs +24 -160
  56. package/dist-lib/tokens.cjs.map +1 -1
  57. package/dist-lib/tokens.mjs +24 -160
  58. package/dist-lib/tokens.mjs.map +1 -1
  59. package/package.json +142 -142
  60. package/dist-lib/chunks/app-shell-BNTvOETJ.mjs.map +0 -1
  61. package/dist-lib/chunks/app-shell-CDy42aNI.mjs.map +0 -1
  62. package/dist-lib/chunks/badge-B_2Zt52o.mjs.map +0 -1
  63. package/dist-lib/chunks/badge-DKpXURa1.mjs.map +0 -1
  64. package/dist-lib/chunks/chip-group-CsKBBHW2.mjs.map +0 -1
  65. package/dist-lib/chunks/chip-group-D3D0i72q.mjs.map +0 -1
  66. package/dist-lib/chunks/clientes-showcase-mocks-BMfbNNJh.mjs.map +0 -1
  67. package/dist-lib/chunks/clientes-showcase-mocks-Cq9u3nGZ.mjs.map +0 -1
  68. package/dist-lib/chunks/input-374MpdBL.mjs.map +0 -1
  69. package/dist-lib/chunks/input-DF4XAWmr.mjs.map +0 -1
  70. package/dist-lib/chunks/page-header-Dw-3wqAG.mjs.map +0 -1
  71. package/dist-lib/chunks/page-header-mC1gGtOI.mjs.map +0 -1
  72. package/dist-lib/chunks/panel-Ds15whqp.mjs.map +0 -1
  73. package/dist-lib/chunks/panel-bzNmFlEZ.mjs.map +0 -1
@@ -7,12 +7,12 @@ import { forwardRef, useMemo, useState, useId, useEffect, useRef, useCallback, F
7
7
  import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCorners, DragOverlay, useDroppable, useDraggable, closestCenter } from "@dnd-kit/core";
8
8
  import { useSortable, sortableKeyboardCoordinates, SortableContext, horizontalListSortingStrategy, arrayMove } from "@dnd-kit/sortable";
9
9
  import { useVirtualizer } from "@tanstack/react-virtual";
10
- import { c as cn, t as tv, B as Button, C as Chip } from "./chip-group-D3D0i72q.mjs";
11
- import { C as Checkbox, e as TableHeadCell, c as TableCell, T as Table, d as TableHead, a as TableBody, b as TableCardRow, f as TableRow } from "./badge-B_2Zt52o.mjs";
12
- import { G as DropdownMenu, J as DropdownMenuTrigger, K as DropdownMenuContent, I as InputGroup, n as InputGroupInput, l as InputGroupAddon, o as InputGroupText, D as Dialog, d as DialogContent, f as DialogClose, v as DropdownMenuSeparator, r as DropdownMenuItem, F as useMediaQuery } from "./app-shell-CDy42aNI.mjs";
13
- import { X, CheckCircle2, AlertCircle, AlertTriangle, Info, Search, CircleX, Check, GripVertical, Pin, PinOff, ArrowUp, ArrowDown, Plus, Trash2, Eye, Users, ChevronDown, ChevronUp, Filter, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, MoreHorizontal, Inbox, Type, Hash, ChevronLeftIcon, ChevronRightIcon, Calendar as Calendar$1, ToggleLeft, DollarSign, Percent, AtSign, Phone, Link, ExternalLink, User, Tag, Tags, CalendarClock, SearchX, FilterX, PinIcon, EyeOff, Loader2, SlidersHorizontal, ArrowUpDown, Columns, Download, RefreshCw, Table as Table$1, LayoutGrid, FileText, Rows4, Rows3, Rows2, Minimize2, Maximize2 } from "lucide-react";
10
+ import { c as cn, t as tv, B as Button, C as Chip } from "./chip-group-_e-yh1Zq.mjs";
11
+ import { C as Checkbox, e as TableHeadCell, c as TableCell, T as Table, d as TableHead, a as TableBody, b as TableCardRow, f as TableRow } from "./badge-B0D_PRxn.mjs";
12
+ import { D as Dialog, J as DialogTrigger, c as DialogContent, K as DialogTitle, E as DropdownMenu, F as DropdownMenuTrigger, G as DropdownMenuContent, I as InputGroup, l as InputGroupInput, j as InputGroupAddon, m as InputGroupText, d as DialogClose, t as DropdownMenuSeparator, p as DropdownMenuItem, C as useMediaQuery } from "./app-shell-C_enrPD8.mjs";
13
+ import { X, CheckCircle2, AlertCircle, AlertTriangle, Info, Search, CircleX, MoreHorizontal, Check, GripVertical, Pin, PinOff, ArrowUp, ArrowDown, Plus, Trash2, Eye, Users, ChevronDown, ChevronUp, Filter, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, Inbox, Type, Hash, ChevronLeftIcon, ChevronRightIcon, Calendar as Calendar$1, ToggleLeft, DollarSign, Percent, AtSign, Phone, Link, ExternalLink, User, Tag, Tags, CalendarClock, SearchX, FilterX, PinIcon, EyeOff, Loader2, SlidersHorizontal, ArrowUpDown, Columns, Download, RefreshCw, Table as Table$1, LayoutGrid, FileText, Rows4, Rows3, Rows2, Minimize2, Maximize2 } from "lucide-react";
14
14
  import * as PopoverPrimitive from "@radix-ui/react-popover";
15
- import { I as Input } from "./input-DF4XAWmr.mjs";
15
+ import { I as Input } from "./input-C9eKSSEb.mjs";
16
16
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
17
17
  import { cva } from "class-variance-authority";
18
18
  import { getDefaultClassNames, DayPicker } from "react-day-picker";
@@ -98,7 +98,7 @@ const AlertDialogTitle = React.forwardRef(({ className, ...props }, ref) => /* @
98
98
  {
99
99
  ref,
100
100
  className: cn(
101
- "text-[18px] font-bold tracking-[-0.01em] text-fg-default leading-tight",
101
+ "text-body-xl font-bold tracking-[-0.01em] text-fg-default leading-tight",
102
102
  className
103
103
  ),
104
104
  ...props
@@ -110,7 +110,7 @@ const AlertDialogDescription = React.forwardRef(({ className, ...props }, ref) =
110
110
  {
111
111
  ref,
112
112
  className: cn(
113
- "text-[13px] leading-[1.5] text-fg-muted max-w-[340px]",
113
+ "text-body-sm font-normal leading-[1.5] text-fg-muted max-w-[340px]",
114
114
  className
115
115
  ),
116
116
  ...props
@@ -237,9 +237,9 @@ const avatarVariants = tv({
237
237
  // 24px / 11px
238
238
  md: "size-comp-sm text-caption-sm",
239
239
  // 28px / 11px — default
240
- lg: "size-comp-md text-caption-md",
240
+ lg: "size-comp-md text-body-sm font-normal",
241
241
  // 32px / 13px
242
- xl: "size-comp-xl text-label-sm"
242
+ xl: "size-comp-xl text-body-md font-medium"
243
243
  // 40px / 14px
244
244
  },
245
245
  color: {
@@ -377,7 +377,7 @@ const toolbarSearch = tv({
377
377
  const toolbarSearchInput = tv({
378
378
  base: [
379
379
  "flex-1 min-w-0 bg-transparent border-0 outline-none",
380
- "text-[13px] text-fg-default",
380
+ "text-body-sm font-normal text-fg-default",
381
381
  "placeholder:text-fg-muted"
382
382
  ]
383
383
  });
@@ -407,7 +407,7 @@ const toolbarSegmentedButton = tv({
407
407
  "grid place-items-center",
408
408
  "h-[34px] min-w-[36px] px-pad-md",
409
409
  "rounded-radius-md border-0 bg-transparent cursor-pointer outline-none",
410
- "text-[13px] text-fg-muted",
410
+ "text-body-sm font-normal text-fg-muted",
411
411
  "transition-[background-color,color,box-shadow] duration-150",
412
412
  "hover:text-fg-default",
413
413
  "focus-visible:shadow-sh-ring",
@@ -463,7 +463,7 @@ const toolbarTabButton = tv({
463
463
  base: [
464
464
  "inline-flex items-center gap-gp-sm h-[34px] px-[14px]",
465
465
  "rounded-radius-md border-0 bg-transparent cursor-pointer outline-none",
466
- "text-[13px] font-medium text-fg-muted whitespace-nowrap",
466
+ "text-body-sm font-medium text-fg-muted whitespace-nowrap",
467
467
  "transition-[color,padding-right] duration-[220ms] ease-[cubic-bezier(0.4,0,0.2,1)]",
468
468
  "hover:text-fg-default",
469
469
  "focus-visible:shadow-sh-ring"
@@ -513,7 +513,7 @@ const toolbarAppliedChip = tv({
513
513
  "h-form-md pl-pad-sm pr-pad-lg",
514
514
  "bg-bg-surface dark:bg-bg-muted",
515
515
  "border border-dashed border-border-input rounded-radius-lg",
516
- "text-[12px] text-fg-default",
516
+ "text-body-xs font-normal text-fg-default",
517
517
  "transition-[background-color,border-color] duration-150"
518
518
  ],
519
519
  variants: {
@@ -541,19 +541,19 @@ const toolbarAppliedChipName = tv({
541
541
  base: "font-semibold text-fg-default"
542
542
  });
543
543
  const toolbarAppliedChipOp = tv({
544
- base: "text-fg-muted text-[11.5px]"
544
+ base: "text-fg-muted text-caption-sm"
545
545
  });
546
546
  const toolbarAppliedChipValue = tv({
547
547
  base: [
548
548
  "inline-flex items-center h-[22px] px-pad-md",
549
549
  "rounded-radius-sm",
550
550
  "bg-bg-muted dark:bg-bg-accent",
551
- "text-[12px] font-medium text-fg-default"
551
+ "text-body-xs font-medium text-fg-default"
552
552
  ]
553
553
  });
554
554
  const toolbarAppliedClearLink = tv({
555
555
  base: [
556
- "ml-pad-sm text-[12px] font-medium text-fg-brand cursor-pointer outline-none",
556
+ "ml-pad-sm text-body-xs font-medium text-fg-brand cursor-pointer outline-none",
557
557
  "bg-transparent border-0 p-0",
558
558
  "transition-opacity duration-150",
559
559
  "hover:underline underline-offset-2",
@@ -571,7 +571,7 @@ const bulkBarRoot = tv({
571
571
  const bulkBarCount = tv({
572
572
  base: [
573
573
  "inline-flex items-center gap-gp-md shrink-0",
574
- "text-[13px] font-semibold",
574
+ "text-body-sm font-semibold",
575
575
  "text-fg-brand dark:text-fg-default",
576
576
  "[&_svg]:size-[14px]"
577
577
  ]
@@ -586,7 +586,7 @@ const bulkBarClear = tv({
586
586
  base: [
587
587
  "shrink-0 ml-auto",
588
588
  "bg-transparent border-0 p-0 cursor-pointer outline-none",
589
- "text-[12px] font-semibold text-fg-brand",
589
+ "text-body-xs font-semibold text-fg-brand",
590
590
  "transition-opacity duration-150",
591
591
  "hover:underline underline-offset-2",
592
592
  "focus-visible:underline",
@@ -841,6 +841,68 @@ function ToolbarApplied({
841
841
  )
842
842
  ] });
843
843
  }
844
+ const HIDDEN_AT = {
845
+ md: "md:hidden",
846
+ lg: "lg:hidden",
847
+ xl: "xl:hidden",
848
+ "2xl": "2xl:hidden"
849
+ };
850
+ function ToolbarMobileDialog({
851
+ children,
852
+ trigger,
853
+ title: title2 = "Filtros e ações",
854
+ open: openProp,
855
+ onOpenChange,
856
+ desktopBreakpoint = "md",
857
+ className,
858
+ contentClassName
859
+ }) {
860
+ const [internalOpen, setInternalOpen] = useState(false);
861
+ const open = openProp ?? internalOpen;
862
+ const setOpen = onOpenChange ?? setInternalOpen;
863
+ const titleId = useId();
864
+ return /* @__PURE__ */ jsxs(Dialog, { open, onOpenChange: setOpen, children: [
865
+ /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: trigger ?? /* @__PURE__ */ jsx(
866
+ Button,
867
+ {
868
+ color: "secondary",
869
+ variant: "outline",
870
+ size: "icon-md",
871
+ "aria-label": "Mais opções",
872
+ className: cn(HIDDEN_AT[desktopBreakpoint], className),
873
+ children: /* @__PURE__ */ jsx(MoreHorizontal, {})
874
+ }
875
+ ) }),
876
+ /* @__PURE__ */ jsxs(
877
+ DialogContent,
878
+ {
879
+ hideClose: true,
880
+ "aria-labelledby": titleId,
881
+ className: cn(
882
+ // Visual alinhado com CommandDialog
883
+ "overflow-hidden p-0 gap-0 sm:max-w-[384px]",
884
+ "rounded-[12px] border border-border-default outline-float",
885
+ contentClassName
886
+ ),
887
+ children: [
888
+ /* @__PURE__ */ jsx(DialogTitle, { id: titleId, className: "sr-only", children: title2 }),
889
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-gp-3xl p-pad-2xl max-h-[85vh] overflow-y-auto", children })
890
+ ]
891
+ }
892
+ )
893
+ ] });
894
+ }
895
+ const ToolbarMobileSheet = ToolbarMobileDialog;
896
+ function ToolbarMobileSection({
897
+ title: title2,
898
+ children,
899
+ className
900
+ }) {
901
+ return /* @__PURE__ */ jsxs("section", { className: cn("flex flex-col gap-gp-md", className), children: [
902
+ title2 && /* @__PURE__ */ jsx("h3", { className: "text-body-xs font-medium text-fg-muted", children: title2 }),
903
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-gp-md", children })
904
+ ] });
905
+ }
844
906
  function BulkActionsBar({
845
907
  count,
846
908
  countLabel,
@@ -1029,7 +1091,7 @@ function ColsPopover({
1029
1091
  className
1030
1092
  ),
1031
1093
  children: [
1032
- /* @__PURE__ */ jsx("div", { className: "flex-none px-pad-xl py-pad-2xl border-b border-border-default", children: /* @__PURE__ */ jsx("h3", { className: "text-[11px] font-semibold text-fg-muted uppercase tracking-wide leading-none m-0", children: title2 }) }),
1094
+ /* @__PURE__ */ jsx("div", { className: "flex-none px-pad-xl py-pad-2xl border-b border-border-default", children: /* @__PURE__ */ jsx("h3", { className: "text-caption-sm font-semibold text-fg-muted uppercase tracking-wide leading-none m-0", children: title2 }) }),
1033
1095
  /* @__PURE__ */ jsx(
1034
1096
  "div",
1035
1097
  {
@@ -1091,7 +1153,7 @@ function ColsPopover({
1091
1153
  "label",
1092
1154
  {
1093
1155
  htmlFor: `col-vis-${col.key}`,
1094
- className: "flex-1 text-[13px] font-medium text-fg-default cursor-pointer truncate",
1156
+ className: "flex-1 text-body-sm font-medium text-fg-default cursor-pointer truncate",
1095
1157
  children: col.label
1096
1158
  }
1097
1159
  ),
@@ -1128,7 +1190,7 @@ function ColsPopover({
1128
1190
  {
1129
1191
  type: "button",
1130
1192
  onClick: showAll,
1131
- className: "text-[12px] font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none hover:underline focus-visible:underline underline-offset-2",
1193
+ className: "text-body-xs font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none hover:underline focus-visible:underline underline-offset-2",
1132
1194
  children: showAllLabel
1133
1195
  }
1134
1196
  ) : /* @__PURE__ */ jsx("span", {}),
@@ -1137,7 +1199,7 @@ function ColsPopover({
1137
1199
  {
1138
1200
  type: "button",
1139
1201
  onClick: onlyPinned,
1140
- className: "text-[12px] font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none hover:underline focus-visible:underline underline-offset-2",
1202
+ className: "text-body-xs font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none hover:underline focus-visible:underline underline-offset-2",
1141
1203
  children: onlyPinnedLabel
1142
1204
  }
1143
1205
  )
@@ -1185,7 +1247,7 @@ function SortPopover({
1185
1247
  className
1186
1248
  ),
1187
1249
  children: [
1188
- /* @__PURE__ */ jsx("div", { className: "flex-none flex items-center justify-between gap-gp-md px-pad-xl py-pad-lg border-b border-border-default", children: /* @__PURE__ */ jsx("h3", { className: "text-[11px] font-semibold text-fg-muted uppercase tracking-wide leading-none m-0", children: title2 }) }),
1250
+ /* @__PURE__ */ jsx("div", { className: "flex-none flex items-center justify-between gap-gp-md px-pad-xl py-pad-lg border-b border-border-default", children: /* @__PURE__ */ jsx("h3", { className: "text-caption-sm font-semibold text-fg-muted uppercase tracking-wide leading-none m-0", children: title2 }) }),
1189
1251
  /* @__PURE__ */ jsxs(
1190
1252
  "div",
1191
1253
  {
@@ -1197,15 +1259,15 @@ function SortPopover({
1197
1259
  "[&::-webkit-scrollbar-track]:bg-transparent"
1198
1260
  ),
1199
1261
  children: [
1200
- /* @__PURE__ */ jsx("section", { className: "px-pad-xl py-pad-lg border-b border-border-default", children: sortBy.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[12px] text-fg-muted m-0 py-pad-sm", children: emptyMessage }) : /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[2px]", children: sortBy.map((s, i) => {
1262
+ /* @__PURE__ */ jsx("section", { className: "px-pad-xl py-pad-lg border-b border-border-default", children: sortBy.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-body-xs font-normal text-fg-muted m-0 py-pad-sm", children: emptyMessage }) : /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[2px]", children: sortBy.map((s, i) => {
1201
1263
  const col = columns.find((c) => c.key === s.key);
1202
1264
  return /* @__PURE__ */ jsxs(
1203
1265
  "div",
1204
1266
  {
1205
1267
  className: "group/row flex items-center gap-gp-md px-pad-md py-[4px] rounded-radius-md hover:bg-bg-muted",
1206
1268
  children: [
1207
- /* @__PURE__ */ jsx("span", { className: "text-[11px] text-fg-subtle shrink-0", children: i === 0 ? "Por" : "depois por" }),
1208
- /* @__PURE__ */ jsx("span", { className: "flex-1 text-[13px] font-medium text-fg-default truncate", children: col?.label ?? s.key }),
1269
+ /* @__PURE__ */ jsx("span", { className: "text-caption-sm text-fg-subtle shrink-0", children: i === 0 ? "Por" : "depois por" }),
1270
+ /* @__PURE__ */ jsx("span", { className: "flex-1 text-body-sm font-medium text-fg-default truncate", children: col?.label ?? s.key }),
1209
1271
  /* @__PURE__ */ jsxs(
1210
1272
  "button",
1211
1273
  {
@@ -1213,7 +1275,7 @@ function SortPopover({
1213
1275
  onClick: () => toggleDir(i),
1214
1276
  className: cn(
1215
1277
  "inline-flex items-center gap-gp-xs h-[22px] px-pad-md shrink-0",
1216
- "rounded-radius-sm bg-bg-muted text-fg-default text-[11.5px] font-medium",
1278
+ "rounded-radius-sm bg-bg-muted text-fg-default text-caption-sm font-medium",
1217
1279
  "outline-none cursor-pointer",
1218
1280
  "hover:bg-bg-muted-hover focus-visible:bg-bg-muted-hover",
1219
1281
  "[&_svg]:size-[12px]"
@@ -1250,7 +1312,7 @@ function SortPopover({
1250
1312
  );
1251
1313
  }) }) }),
1252
1314
  available.length > 0 && /* @__PURE__ */ jsxs("section", { className: "px-pad-xl py-pad-lg", children: [
1253
- /* @__PURE__ */ jsx("h4", { className: "text-[11px] font-semibold text-fg-muted uppercase tracking-wide leading-none m-0 mb-pad-md", children: addSectionLabel }),
1315
+ /* @__PURE__ */ jsx("h4", { className: "text-caption-sm font-semibold text-fg-muted uppercase tracking-wide leading-none m-0 mb-pad-md", children: addSectionLabel }),
1254
1316
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[2px]", children: available.map((col) => {
1255
1317
  const Icon = col.icon;
1256
1318
  return /* @__PURE__ */ jsxs(
@@ -1267,7 +1329,7 @@ function SortPopover({
1267
1329
  ),
1268
1330
  children: [
1269
1331
  Icon && /* @__PURE__ */ jsx(Icon, { className: "size-[14px] shrink-0 text-fg-muted" }),
1270
- /* @__PURE__ */ jsx("span", { className: "flex-1 text-[13px] font-medium text-fg-default truncate", children: col.label }),
1332
+ /* @__PURE__ */ jsx("span", { className: "flex-1 text-body-sm font-medium text-fg-default truncate", children: col.label }),
1271
1333
  /* @__PURE__ */ jsx(
1272
1334
  Plus,
1273
1335
  {
@@ -1289,7 +1351,7 @@ function SortPopover({
1289
1351
  {
1290
1352
  type: "button",
1291
1353
  onClick: clearAll,
1292
- className: "text-[12px] font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none hover:underline focus-visible:underline underline-offset-2",
1354
+ className: "text-body-xs font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none hover:underline focus-visible:underline underline-offset-2",
1293
1355
  children: clearLabel
1294
1356
  }
1295
1357
  ) })
@@ -1360,7 +1422,7 @@ function ViewsPopover({
1360
1422
  onClick: () => setTab("all"),
1361
1423
  className: cn(
1362
1424
  "flex-1 h-form-sm px-pad-lg rounded-radius-sm",
1363
- "text-[12px] font-medium cursor-pointer outline-none",
1425
+ "text-body-xs font-medium cursor-pointer outline-none",
1364
1426
  "transition-[background-color,color,box-shadow] duration-150",
1365
1427
  tab === "all" ? "bg-bg-accent text-fg-default font-semibold shadow-sh-sm" : "bg-transparent text-fg-muted hover:text-fg-default"
1366
1428
  ),
@@ -1376,7 +1438,7 @@ function ViewsPopover({
1376
1438
  onClick: () => setTab("mine"),
1377
1439
  className: cn(
1378
1440
  "flex-1 h-form-sm px-pad-lg rounded-radius-sm",
1379
- "text-[12px] font-medium cursor-pointer outline-none",
1441
+ "text-body-xs font-medium cursor-pointer outline-none",
1380
1442
  "transition-[background-color,color,box-shadow] duration-150",
1381
1443
  tab === "mine" ? "bg-bg-accent text-fg-default font-semibold shadow-sh-sm" : "bg-transparent text-fg-muted hover:text-fg-default"
1382
1444
  ),
@@ -1403,7 +1465,7 @@ function ViewsPopover({
1403
1465
  value: search,
1404
1466
  onChange: (e) => setSearch(e.target.value),
1405
1467
  autoFocus: true,
1406
- className: "flex-1 min-w-0 bg-transparent border-0 outline-none text-[13px] text-fg-default placeholder:text-fg-muted"
1468
+ className: "flex-1 min-w-0 bg-transparent border-0 outline-none text-body-sm font-normal text-fg-default placeholder:text-fg-muted"
1407
1469
  }
1408
1470
  )
1409
1471
  ] }),
@@ -1418,7 +1480,7 @@ function ViewsPopover({
1418
1480
  "[&::-webkit-scrollbar-thumb]:bg-border-default [&::-webkit-scrollbar-thumb]:rounded-full",
1419
1481
  "[&::-webkit-scrollbar-track]:bg-transparent"
1420
1482
  ),
1421
- children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-[12px] text-fg-muted m-0 px-pad-md py-pad-2xl text-center", children: search.trim() ? emptySearchMessage(search.trim()) : emptyMessage }) : filtered.map((view) => {
1483
+ children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-body-xs font-normal text-fg-muted m-0 px-pad-md py-pad-2xl text-center", children: search.trim() ? emptySearchMessage(search.trim()) : emptyMessage }) : filtered.map((view) => {
1422
1484
  const isActive = view.id === activeViewId;
1423
1485
  const isMine = view.owner === myOwnerKey;
1424
1486
  return /* @__PURE__ */ jsxs(
@@ -1447,13 +1509,13 @@ function ViewsPopover({
1447
1509
  "span",
1448
1510
  {
1449
1511
  className: cn(
1450
- "flex-1 text-[13px] truncate",
1512
+ "flex-1 text-body-sm font-normal truncate",
1451
1513
  isActive ? "font-semibold" : "font-medium"
1452
1514
  ),
1453
1515
  children: view.name
1454
1516
  }
1455
1517
  ),
1456
- !isMine && view.ownerName && /* @__PURE__ */ jsxs("span", { className: "text-[11px] text-fg-muted shrink-0", children: [
1518
+ !isMine && view.ownerName && /* @__PURE__ */ jsxs("span", { className: "text-caption-sm text-fg-muted shrink-0", children: [
1457
1519
  "por ",
1458
1520
  view.ownerName
1459
1521
  ] })
@@ -1500,7 +1562,7 @@ function ViewsPopover({
1500
1562
  "bg-bg-surface dark:bg-bg-muted",
1501
1563
  "border border-border-subtle dark:border-border-input",
1502
1564
  "shadow-sh-sm dark:shadow-sh-none",
1503
- "text-[13px] font-semibold text-fg-default dark:text-fg-muted",
1565
+ "text-body-sm font-semibold text-fg-default dark:text-fg-muted",
1504
1566
  "outline-none cursor-pointer",
1505
1567
  "transition-[background-color,color,box-shadow] duration-150",
1506
1568
  "hover:bg-bg-muted-hover hover:text-fg-default",
@@ -1553,7 +1615,7 @@ const formFieldRoot = tv({
1553
1615
  });
1554
1616
  const formFieldLabel = tv({
1555
1617
  base: [
1556
- "text-[12.5px] font-semibold tracking-[0.01em] leading-none",
1618
+ "text-body-sm font-semibold tracking-[0.01em] leading-none",
1557
1619
  "text-fg-default dark:text-fg-muted",
1558
1620
  "select-none"
1559
1621
  ],
@@ -1567,7 +1629,7 @@ const formFieldRequired = tv({
1567
1629
  base: "ml-[2px] text-fg-danger"
1568
1630
  });
1569
1631
  const formFieldMessage = tv({
1570
- base: "text-[11.5px] leading-snug",
1632
+ base: "text-caption-sm leading-snug",
1571
1633
  variants: {
1572
1634
  state: {
1573
1635
  default: "text-fg-muted",
@@ -1741,13 +1803,13 @@ const title = tv({
1741
1803
  "m-0 mb-[2px]",
1742
1804
  // leading-[1.3] balanceia o bloco verticalmente com o icon container 40px
1743
1805
  // (leading-none deixava o glyph colado no top → parecia subido).
1744
- "text-[17px] font-bold leading-[1.3]",
1806
+ "text-body-lg font-bold leading-[1.3]",
1745
1807
  "text-fg-default",
1746
1808
  "tracking-[-0.01em]"
1747
1809
  ]
1748
1810
  });
1749
1811
  const sub = tv({
1750
- base: "m-0 text-[12.5px] text-fg-muted leading-[1.45]"
1812
+ base: "m-0 text-body-xs font-normal text-fg-muted leading-[1.45]"
1751
1813
  });
1752
1814
  const body = tv({
1753
1815
  base: "flex flex-col gap-[18px] px-pad-4xl py-[22px]"
@@ -1786,10 +1848,10 @@ const toggleText = tv({
1786
1848
  base: "flex-1 min-w-0 flex flex-col gap-[3px]"
1787
1849
  });
1788
1850
  const toggleLabel = tv({
1789
- base: "text-[13.5px] font-semibold text-fg-default leading-[1.3]"
1851
+ base: "text-body-md font-semibold text-fg-default leading-[1.3]"
1790
1852
  });
1791
1853
  const toggleDesc = tv({
1792
- base: "text-[12px] text-fg-muted leading-[1.45]"
1854
+ base: "text-body-xs font-normal text-fg-muted leading-[1.45]"
1793
1855
  });
1794
1856
  const foot = tv({
1795
1857
  base: [
@@ -2096,7 +2158,7 @@ const SelectTrigger = React.forwardRef(({ className, children, state = "default"
2096
2158
  "bg-bg-input dark:bg-bg-muted",
2097
2159
  "hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover",
2098
2160
  "border border-border-input",
2099
- "text-[13px] text-fg-default",
2161
+ "text-body-sm font-normal text-fg-default",
2100
2162
  "transition-[color,box-shadow,background-color,border-color] outline-none",
2101
2163
  "data-[placeholder]:text-fg-muted data-[placeholder]:opacity-70",
2102
2164
  state === "default" && "focus-visible:border-border-brand data-[state=open]:border-border-brand focus-visible:shadow-sh-ring data-[state=open]:shadow-sh-ring",
@@ -2179,7 +2241,7 @@ const SelectLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PUR
2179
2241
  SelectPrimitive.Label,
2180
2242
  {
2181
2243
  ref,
2182
- className: cn("py-pad-sm pl-8 pr-2 text-label-sm text-fg-muted", className),
2244
+ className: cn("py-pad-sm pl-8 pr-2 text-body-md font-medium text-fg-muted", className),
2183
2245
  ...props
2184
2246
  }
2185
2247
  ));
@@ -2191,7 +2253,7 @@ const SelectItem = React.forwardRef(({ className, children, ...props }, ref) =>
2191
2253
  className: cn(
2192
2254
  "relative flex w-full cursor-default select-none items-center gap-pad-md",
2193
2255
  "rounded-radius-sm py-pad-md pl-8 pr-pad-lg",
2194
- "text-[13px] font-medium text-fg-muted",
2256
+ "text-body-sm font-medium text-fg-muted",
2195
2257
  "outline-none transition-colors",
2196
2258
  "focus:bg-bg-muted focus:text-fg-default",
2197
2259
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
@@ -2242,7 +2304,7 @@ function isFilterEntryActive(entry) {
2242
2304
  const FIELD_BASE = cn(
2243
2305
  "min-h-form-md h-form-md min-w-0 w-full",
2244
2306
  "rounded-radius-md",
2245
- "text-[13px]"
2307
+ "text-body-sm font-normal"
2246
2308
  );
2247
2309
  const INPUT_FIELD = cn(
2248
2310
  FIELD_BASE,
@@ -2281,7 +2343,7 @@ function FilterRowEditor({
2281
2343
  "flex flex-col sm:flex-row sm:items-center gap-gp-md"
2282
2344
  ),
2283
2345
  children: [
2284
- /* @__PURE__ */ jsx("span", { className: "text-[11px] text-fg-muted shrink-0 sm:w-[18px] sm:text-center", children: index === 0 ? conjLabels.first : conjLabels.rest }),
2346
+ /* @__PURE__ */ jsx("span", { className: "text-caption-sm text-fg-muted shrink-0 sm:w-[18px] sm:text-center", children: index === 0 ? conjLabels.first : conjLabels.rest }),
2285
2347
  /* @__PURE__ */ jsx("div", { className: "w-full sm:flex-[1_1_0%] sm:basis-0 min-w-0", children: /* @__PURE__ */ jsxs(
2286
2348
  Select,
2287
2349
  {
@@ -2475,7 +2537,7 @@ function FilterPopover({
2475
2537
  ),
2476
2538
  children: [
2477
2539
  /* @__PURE__ */ jsxs("div", { className: "flex-none flex items-center justify-between gap-gp-md px-pad-xl py-pad-lg border-b border-border-default", children: [
2478
- /* @__PURE__ */ jsx("h3", { className: "text-[11px] font-semibold text-fg-muted uppercase tracking-wide leading-none m-0", children: title2 }),
2540
+ /* @__PURE__ */ jsx("h3", { className: "text-caption-sm font-semibold text-fg-muted uppercase tracking-wide leading-none m-0", children: title2 }),
2479
2541
  enableAdvanced && /* @__PURE__ */ jsxs(
2480
2542
  "div",
2481
2543
  {
@@ -2490,7 +2552,7 @@ function FilterPopover({
2490
2552
  "aria-selected": mode === "visual",
2491
2553
  onClick: () => setMode("visual"),
2492
2554
  className: cn(
2493
- "h-[30px] px-pad-lg rounded-radius-sm text-[12px] font-medium cursor-pointer outline-none",
2555
+ "h-[30px] px-pad-lg rounded-radius-sm text-body-xs font-medium cursor-pointer outline-none",
2494
2556
  "transition-[background-color,color,box-shadow] duration-150",
2495
2557
  mode === "visual" ? "bg-bg-accent text-fg-default font-semibold shadow-sh-sm" : "bg-transparent text-fg-muted hover:text-fg-default"
2496
2558
  ),
@@ -2505,7 +2567,7 @@ function FilterPopover({
2505
2567
  "aria-selected": mode === "advanced",
2506
2568
  onClick: () => setMode("advanced"),
2507
2569
  className: cn(
2508
- "h-[30px] px-pad-lg rounded-radius-sm text-[12px] font-medium cursor-pointer outline-none",
2570
+ "h-[30px] px-pad-lg rounded-radius-sm text-body-xs font-medium cursor-pointer outline-none",
2509
2571
  "transition-[background-color,color,box-shadow] duration-150",
2510
2572
  mode === "advanced" ? "bg-bg-accent text-fg-default font-semibold shadow-sh-sm" : "bg-transparent text-fg-muted hover:text-fg-default"
2511
2573
  ),
@@ -2524,8 +2586,8 @@ function FilterPopover({
2524
2586
  className: "size-[20px] text-fg-muted mb-pad-xl"
2525
2587
  }
2526
2588
  ),
2527
- /* @__PURE__ */ jsx("p", { className: "text-[13px] font-semibold text-fg-default m-0", children: "Nenhuma condição" }),
2528
- /* @__PURE__ */ jsx("p", { className: "text-[12px] text-fg-muted m-0 mt-pad-2xs mb-pad-2xl", children: "Adicione filtros pra refinar a lista." }),
2589
+ /* @__PURE__ */ jsx("p", { className: "text-body-sm font-semibold text-fg-default m-0", children: "Nenhuma condição" }),
2590
+ /* @__PURE__ */ jsx("p", { className: "text-body-xs font-normal text-fg-muted m-0 mt-pad-2xs mb-pad-2xl", children: "Adicione filtros pra refinar a lista." }),
2529
2591
  /* @__PURE__ */ jsxs(
2530
2592
  "button",
2531
2593
  {
@@ -2534,7 +2596,7 @@ function FilterPopover({
2534
2596
  className: cn(
2535
2597
  "inline-flex items-center gap-gp-sm h-form-md px-pad-2xl rounded-radius-lg",
2536
2598
  "bg-bg-brand text-fg-on-brand",
2537
- "text-[13px] font-semibold cursor-pointer outline-none",
2599
+ "text-body-sm font-semibold cursor-pointer outline-none",
2538
2600
  "transition-[background-color] duration-150",
2539
2601
  "hover:bg-bg-brand-hover focus-visible:shadow-sh-ring",
2540
2602
  "[&_svg]:size-[14px]"
@@ -2582,7 +2644,7 @@ function FilterPopover({
2582
2644
  "min-h-form-md px-pad-xl rounded-radius-md",
2583
2645
  "bg-transparent text-fg-muted",
2584
2646
  "border border-dashed border-border-default",
2585
- "text-[13px] font-medium cursor-pointer outline-none",
2647
+ "text-body-sm font-medium cursor-pointer outline-none",
2586
2648
  "transition-[background-color,color,border-color] duration-150",
2587
2649
  "hover:bg-bg-muted hover:text-fg-default hover:border-border-default",
2588
2650
  "focus-visible:bg-bg-muted focus-visible:text-fg-default",
@@ -2595,7 +2657,7 @@ function FilterPopover({
2595
2657
  }
2596
2658
  ) })
2597
2659
  ] }) : /* @__PURE__ */ jsxs("div", { className: "flex-1 min-h-0 flex flex-col gap-gp-md p-pad-xl overflow-y-auto", children: [
2598
- /* @__PURE__ */ jsxs("span", { className: "text-[11px] text-fg-muted", children: [
2660
+ /* @__PURE__ */ jsxs("span", { className: "text-caption-sm text-fg-muted", children: [
2599
2661
  "Editor livre — sintaxe estilo SQL. Operadores: ",
2600
2662
  /* @__PURE__ */ jsx("code", { children: "=" }),
2601
2663
  " ",
@@ -2630,14 +2692,14 @@ AND value > 1000`,
2630
2692
  "bg-bg-input dark:bg-bg-muted",
2631
2693
  "border",
2632
2694
  advancedError ? "border-border-critical" : "border-border-input",
2633
- "text-[12px] font-mono text-fg-default placeholder:text-fg-muted",
2695
+ "text-body-xs font-normal font-mono text-fg-default placeholder:text-fg-muted",
2634
2696
  "outline-none resize-y",
2635
2697
  "transition-[border-color,box-shadow] duration-150",
2636
2698
  advancedError ? "focus:border-border-critical focus:shadow-sh-ring-danger" : "focus:border-border-brand focus:shadow-sh-ring"
2637
2699
  )
2638
2700
  }
2639
2701
  ),
2640
- advancedError && /* @__PURE__ */ jsx("p", { className: "text-[11px] text-fg-critical", children: advancedError }),
2702
+ advancedError && /* @__PURE__ */ jsx("p", { className: "text-caption-sm text-fg-critical", children: advancedError }),
2641
2703
  /* @__PURE__ */ jsx(
2642
2704
  "button",
2643
2705
  {
@@ -2646,7 +2708,7 @@ AND value > 1000`,
2646
2708
  className: cn(
2647
2709
  "self-end px-pad-xl h-form-md rounded-radius-md",
2648
2710
  "bg-bg-brand text-fg-on-brand",
2649
- "text-[12px] font-semibold",
2711
+ "text-body-xs font-semibold",
2650
2712
  "hover:bg-bg-brand-hover focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand",
2651
2713
  "transition-[background-color,box-shadow] duration-150"
2652
2714
  ),
@@ -2662,14 +2724,14 @@ AND value > 1000`,
2662
2724
  onClick: clearAll,
2663
2725
  disabled: filters.length === 0,
2664
2726
  className: cn(
2665
- "text-[12px] font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none",
2727
+ "text-body-xs font-medium text-fg-brand bg-transparent border-0 p-0 cursor-pointer outline-none",
2666
2728
  "hover:underline focus-visible:underline underline-offset-2",
2667
2729
  "disabled:opacity-50 disabled:pointer-events-none disabled:no-underline"
2668
2730
  ),
2669
2731
  children: "Limpar todos"
2670
2732
  }
2671
2733
  ),
2672
- /* @__PURE__ */ jsx("span", { className: "text-[11px] text-fg-muted", children: validCount === 0 ? "Nenhum filtro ativo" : `${validCount} ${validCount > 1 ? "condições ativas" : "condição ativa"}` })
2734
+ /* @__PURE__ */ jsx("span", { className: "text-caption-sm text-fg-muted", children: validCount === 0 ? "Nenhum filtro ativo" : `${validCount} ${validCount > 1 ? "condições ativas" : "condição ativa"}` })
2673
2735
  ] })
2674
2736
  ]
2675
2737
  }
@@ -2708,7 +2770,7 @@ const paginationLinkVariants = cva(
2708
2770
  [
2709
2771
  "inline-flex items-center justify-center",
2710
2772
  "min-w-[30px] h-[30px] px-pad-md",
2711
- "rounded-radius-md text-[13px] font-medium tabular-nums",
2773
+ "rounded-radius-md text-body-sm font-medium tabular-nums",
2712
2774
  "outline-none cursor-pointer transition-[background-color,color,box-shadow]",
2713
2775
  "focus-visible:shadow-sh-ring",
2714
2776
  "disabled:opacity-50 disabled:pointer-events-none"
@@ -2809,7 +2871,7 @@ const PaginationEllipsis = ({
2809
2871
  "aria-hidden": "true",
2810
2872
  className: cn(
2811
2873
  "inline-flex items-center justify-center min-w-[22px] h-[30px]",
2812
- "text-[13px] text-fg-muted tracking-wider select-none",
2874
+ "text-body-sm font-normal text-fg-muted tracking-wider select-none",
2813
2875
  className
2814
2876
  ),
2815
2877
  ...props,
@@ -2858,7 +2920,7 @@ function FooterTable({
2858
2920
  // Mobile: empilha vertical (left em cima, paginação embaixo)
2859
2921
  "flex flex-col sm:flex-row sm:items-center sm:justify-between",
2860
2922
  "gap-gp-2xl px-pad-xs pt-pad-xl",
2861
- "text-[13px] text-fg-default",
2923
+ "text-body-sm font-normal text-fg-default",
2862
2924
  className
2863
2925
  ),
2864
2926
  children: [
@@ -3011,7 +3073,7 @@ const columnDot = tv({
3011
3073
  });
3012
3074
  const columnTitle = tv({
3013
3075
  base: [
3014
- "m-0 text-label-sm text-fg-default",
3076
+ "m-0 text-body-md font-medium text-fg-default",
3015
3077
  // Não expande (badge fica grudado à direita do título)
3016
3078
  "shrink min-w-0",
3017
3079
  "whitespace-nowrap overflow-hidden text-ellipsis"
@@ -3040,7 +3102,7 @@ const columnEmpty = tv({
3040
3102
  base: [
3041
3103
  "flex flex-1 flex-col items-center justify-center gap-gp-sm",
3042
3104
  "py-pad-3xl px-pad-xl",
3043
- "text-center text-caption-md text-fg-subtle"
3105
+ "text-center text-body-sm font-normal text-fg-subtle"
3044
3106
  ]
3045
3107
  });
3046
3108
  const columnEmptyIcon = tv({
@@ -3052,7 +3114,7 @@ const columnAdd = tv({
3052
3114
  "mx-pad-md mb-pad-md mt-sp-2xs",
3053
3115
  "px-pad-lg min-h-form-sm",
3054
3116
  "bg-transparent border border-dashed border-border-input rounded-radius-md",
3055
- "text-caption-md font-medium text-fg-muted",
3117
+ "text-body-sm font-medium text-fg-muted",
3056
3118
  "cursor-pointer",
3057
3119
  "transition-[background-color,color,border-color] duration-150",
3058
3120
  "hover:bg-bg-surface hover:text-fg-default hover:border-border-default",
@@ -3131,7 +3193,7 @@ const cardTitleWrap = tv({
3131
3193
  });
3132
3194
  const cardTitle = tv({
3133
3195
  base: [
3134
- "text-label-sm text-fg-default leading-[1.3]",
3196
+ "text-body-md font-medium text-fg-default leading-[1.3]",
3135
3197
  "whitespace-nowrap overflow-hidden text-ellipsis"
3136
3198
  ]
3137
3199
  });
@@ -3140,7 +3202,7 @@ const cardSubtitle = tv({
3140
3202
  });
3141
3203
  const cardDesc = tv({
3142
3204
  base: [
3143
- "m-0 text-caption-md leading-[1.45] text-fg-muted",
3205
+ "m-0 text-body-sm font-normal leading-[1.45] text-fg-muted",
3144
3206
  "[display:-webkit-box] [-webkit-line-clamp:2] [-webkit-box-orient:vertical]",
3145
3207
  "overflow-hidden"
3146
3208
  ]
@@ -3149,7 +3211,7 @@ const cardMeta = tv({
3149
3211
  base: "flex items-center justify-between gap-gp-md"
3150
3212
  });
3151
3213
  const cardValue = tv({
3152
- base: "text-caption-md font-semibold text-fg-default [font-variant-numeric:tabular-nums]"
3214
+ base: "text-body-sm font-semibold text-fg-default [font-variant-numeric:tabular-nums]"
3153
3215
  });
3154
3216
  const cardFoot = tv({
3155
3217
  base: [
@@ -3691,7 +3753,7 @@ const dataTableStyles = tv({
3691
3753
  "text-title-md text-fg-default"
3692
3754
  ],
3693
3755
  emptyDescription: [
3694
- "text-paragraph-sm text-fg-muted text-center max-w-[360px]"
3756
+ "text-body-md text-fg-muted text-center max-w-[360px]"
3695
3757
  ],
3696
3758
  bulkBar: [
3697
3759
  "fixed bottom-pad-3xl left-1/2 -translate-x-1/2 z-[var(--z-index-toast,600)]",
@@ -3756,7 +3818,7 @@ const FILTER_FIELD_CLASS = cn(
3756
3818
  "flex min-h-form-md h-form-md w-full items-center justify-between gap-gp-md",
3757
3819
  "rounded-radius-md px-pad-xl",
3758
3820
  // Tipografia
3759
- "text-[13px]",
3821
+ "text-body-sm font-normal",
3760
3822
  // Visual
3761
3823
  "bg-bg-input dark:bg-bg-muted",
3762
3824
  "border border-border-input text-fg-default",
@@ -3912,7 +3974,7 @@ function Calendar({
3912
3974
  defaultClassNames.month_caption
3913
3975
  ),
3914
3976
  caption_label: cn(
3915
- "text-label-sm font-semibold select-none",
3977
+ "text-body-md font-medium font-semibold select-none",
3916
3978
  captionLayout === "dropdown" ? "hidden" : "",
3917
3979
  defaultClassNames.caption_label
3918
3980
  ),
@@ -3921,7 +3983,7 @@ function Calendar({
3921
3983
  defaultClassNames.dropdowns
3922
3984
  ),
3923
3985
  dropdown: cn(
3924
- "cursor-pointer appearance-none bg-transparent text-label-sm font-semibold text-fg-default outline-none",
3986
+ "cursor-pointer appearance-none bg-transparent text-body-md font-medium font-semibold text-fg-default outline-none",
3925
3987
  defaultClassNames.dropdown
3926
3988
  ),
3927
3989
  months_dropdown: cn("", defaultClassNames.months_dropdown),
@@ -3929,7 +3991,7 @@ function Calendar({
3929
3991
  table: "w-full border-collapse",
3930
3992
  weekdays: cn("flex", defaultClassNames.weekdays),
3931
3993
  weekday: cn(
3932
- "flex-1 min-w-8 max-w-12 text-[0.8rem] font-normal text-fg-muted select-none text-center",
3994
+ "flex-1 min-w-8 max-w-12 text-body-sm font-normal text-fg-muted select-none text-center",
3933
3995
  defaultClassNames.weekday
3934
3996
  ),
3935
3997
  week: cn("mt-gp-md flex w-full", defaultClassNames.week),
@@ -3986,7 +4048,7 @@ function CalendarDayButton({
3986
4048
  "data-range-end": isRangeEnd || void 0,
3987
4049
  "data-range-middle": isRangeMiddle || void 0,
3988
4050
  className: cn(
3989
- "relative flex aspect-square w-full items-center justify-center text-paragraph-sm font-normal leading-none outline-none transition-colors",
4051
+ "relative flex aspect-square w-full items-center justify-center text-body-md font-normal leading-none outline-none transition-colors",
3990
4052
  // Default shape
3991
4053
  "rounded-full",
3992
4054
  // Hover
@@ -4222,7 +4284,7 @@ function MultiSelectDropdown({
4222
4284
  onChange(Array.from(set));
4223
4285
  };
4224
4286
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-gp-3xs p-pad-2xs min-w-[200px]", children: [
4225
- options.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-paragraph-xs text-fg-muted px-pad-md py-pad-sm", children: "Sem opções disponíveis" }),
4287
+ options.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-body-xs font-normal text-fg-muted px-pad-md py-pad-sm", children: "Sem opções disponíveis" }),
4226
4288
  options.map((opt) => {
4227
4289
  const isChecked = selected.map(String).includes(String(opt.value));
4228
4290
  return /* @__PURE__ */ jsxs(
@@ -4231,7 +4293,7 @@ function MultiSelectDropdown({
4231
4293
  className: cn(
4232
4294
  "flex items-center gap-gp-md w-full",
4233
4295
  "px-pad-md py-pad-sm rounded-radius-md",
4234
- "text-paragraph-sm text-fg-default text-left cursor-pointer",
4296
+ "text-body-md text-fg-default text-left cursor-pointer",
4235
4297
  "hover:bg-bg-muted focus-within:bg-bg-muted",
4236
4298
  "transition-colors duration-100"
4237
4299
  ),
@@ -5020,7 +5082,7 @@ const TagsColumnType = {
5020
5082
  onCheckedChange: () => toggle(String(o.value))
5021
5083
  }
5022
5084
  ),
5023
- /* @__PURE__ */ jsx("span", { className: "text-paragraph-sm text-fg-default", children: o.label })
5085
+ /* @__PURE__ */ jsx("span", { className: "text-body-md text-fg-default", children: o.label })
5024
5086
  ]
5025
5087
  },
5026
5088
  String(o.value)
@@ -5047,7 +5109,7 @@ const TagsColumnType = {
5047
5109
  onCheckedChange: () => toggle(String(o.value))
5048
5110
  }
5049
5111
  ),
5050
- /* @__PURE__ */ jsx("span", { className: "text-paragraph-sm text-fg-default", children: o.label })
5112
+ /* @__PURE__ */ jsx("span", { className: "text-body-md text-fg-default", children: o.label })
5051
5113
  ]
5052
5114
  },
5053
5115
  String(o.value)
@@ -6468,7 +6530,7 @@ function DataTableEmpty({
6468
6530
  ),
6469
6531
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-gp-2xs items-center", children: [
6470
6532
  /* @__PURE__ */ jsx("p", { className: "text-title-md text-fg-strong", children: title2 }),
6471
- /* @__PURE__ */ jsx("p", { className: "text-paragraph-sm text-fg-muted max-w-[360px]", children: description })
6533
+ /* @__PURE__ */ jsx("p", { className: "text-body-md text-fg-muted max-w-[360px]", children: description })
6472
6534
  ] }),
6473
6535
  action && /* @__PURE__ */ jsx("div", { className: "mt-pad-md", children: action })
6474
6536
  ] });
@@ -6564,7 +6626,7 @@ function DataTableNoResults({
6564
6626
  ),
6565
6627
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-gp-2xs items-center", children: [
6566
6628
  /* @__PURE__ */ jsx("p", { className: "text-title-md text-fg-strong", children: title2 }),
6567
- /* @__PURE__ */ jsx("p", { className: "text-paragraph-sm text-fg-muted max-w-[360px]", children: description })
6629
+ /* @__PURE__ */ jsx("p", { className: "text-body-md text-fg-muted max-w-[360px]", children: description })
6568
6630
  ] }),
6569
6631
  resolvedAction && /* @__PURE__ */ jsx("div", { className: "mt-pad-md", children: resolvedAction })
6570
6632
  ] });
@@ -7006,7 +7068,7 @@ function DataTableTotalizerRow({
7006
7068
  pinOffset: stickyOffsets[field],
7007
7069
  align: col.align,
7008
7070
  ellipsis: col.ellipsis,
7009
- className: "text-label-sm text-fg-strong bg-bg-table-head",
7071
+ className: "text-body-md font-medium text-fg-strong bg-bg-table-head",
7010
7072
  children: content
7011
7073
  },
7012
7074
  field
@@ -7135,7 +7197,7 @@ function DataTableGroupHeaderRow({
7135
7197
  "data-field": field,
7136
7198
  className: cn(
7137
7199
  "shrink-0 flex items-center px-pad-2xl gap-gp-md",
7138
- "text-label-sm text-fg-strong",
7200
+ "text-body-md font-medium text-fg-strong",
7139
7201
  isPinned && "sticky z-[5] bg-bg-subtle"
7140
7202
  ),
7141
7203
  style: cellStyle,
@@ -7679,6 +7741,24 @@ const DEFAULT_VIEW_MODE_ITEMS = [
7679
7741
  { value: "table", children: /* @__PURE__ */ jsx(Table$1, {}), label: "Tabela" },
7680
7742
  { value: "kanban", children: /* @__PURE__ */ jsx(LayoutGrid, {}), label: "Kanban" }
7681
7743
  ];
7744
+ const MOBILE_VIEW_MODE_ITEMS = [
7745
+ {
7746
+ value: "table",
7747
+ label: "Tabela",
7748
+ children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-gp-sm", children: [
7749
+ /* @__PURE__ */ jsx(Table$1, {}),
7750
+ " Tabela"
7751
+ ] })
7752
+ },
7753
+ {
7754
+ value: "kanban",
7755
+ label: "Kanban",
7756
+ children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-gp-sm", children: [
7757
+ /* @__PURE__ */ jsx(LayoutGrid, {}),
7758
+ " Kanban"
7759
+ ] })
7760
+ }
7761
+ ];
7682
7762
  function resolveCellValue(row, col) {
7683
7763
  return applyValueGetter(row, col);
7684
7764
  }
@@ -8482,38 +8562,40 @@ function DataTableInternal(props, ref) {
8482
8562
  placeholder: "Buscar..."
8483
8563
  }
8484
8564
  ),
8485
- toolbarConfig.enableRefresh !== false && /* @__PURE__ */ jsx(
8486
- ToolbarToolButton,
8487
- {
8488
- icon: /* @__PURE__ */ jsx(
8489
- RefreshCw,
8490
- {
8491
- className: isRefreshing ? "animate-spin" : ""
8492
- }
8493
- ),
8494
- "aria-label": "Atualizar",
8495
- onClick: handleRefresh
8496
- }
8497
- ),
8498
- (resolvedViewToggle || props.persistId || toolbarConfig.customLeft) && /* @__PURE__ */ jsx(ToolbarDivider, {}),
8499
- resolvedViewToggle,
8500
- props.persistId && /* @__PURE__ */ jsx(
8501
- TableToolbarViews,
8502
- {
8503
- views: viewsForToolbar,
8504
- activeViewId: savedViews.currentViewId ?? void 0,
8505
- onApply: handleViewApply,
8506
- onApplyDefault: applyDefault,
8507
- onDelete: savedViews.deleteView,
8508
- onSave: async (data) => {
8509
- await saveCurrentAsView(data.name, {
8510
- isPublic: data.isPublic
8511
- });
8512
- },
8513
- hideDivider: true
8514
- }
8515
- ),
8516
- toolbarConfig.customLeft
8565
+ /* @__PURE__ */ jsxs("div", { className: "hidden md:contents", children: [
8566
+ toolbarConfig.enableRefresh !== false && /* @__PURE__ */ jsx(
8567
+ ToolbarToolButton,
8568
+ {
8569
+ icon: /* @__PURE__ */ jsx(
8570
+ RefreshCw,
8571
+ {
8572
+ className: isRefreshing ? "animate-spin" : ""
8573
+ }
8574
+ ),
8575
+ "aria-label": "Atualizar",
8576
+ onClick: handleRefresh
8577
+ }
8578
+ ),
8579
+ (resolvedViewToggle || props.persistId || toolbarConfig.customLeft) && /* @__PURE__ */ jsx(ToolbarDivider, {}),
8580
+ resolvedViewToggle,
8581
+ props.persistId && /* @__PURE__ */ jsx(
8582
+ TableToolbarViews,
8583
+ {
8584
+ views: viewsForToolbar,
8585
+ activeViewId: savedViews.currentViewId ?? void 0,
8586
+ onApply: handleViewApply,
8587
+ onApplyDefault: applyDefault,
8588
+ onDelete: savedViews.deleteView,
8589
+ onSave: async (data) => {
8590
+ await saveCurrentAsView(data.name, {
8591
+ isPublic: data.isPublic
8592
+ });
8593
+ },
8594
+ hideDivider: true
8595
+ }
8596
+ ),
8597
+ toolbarConfig.customLeft
8598
+ ] })
8517
8599
  ] }),
8518
8600
  actions: /* @__PURE__ */ jsxs(Fragment, { children: [
8519
8601
  toolbarConfig.enableFilters !== false && filterPopoverColumns.length > 0 && /* @__PURE__ */ jsx(
@@ -8545,115 +8627,142 @@ function DataTableInternal(props, ref) {
8545
8627
  )
8546
8628
  }
8547
8629
  ),
8548
- /* @__PURE__ */ jsx(
8549
- SortPopover,
8550
- {
8551
- columns: sortPopoverColumns,
8552
- sortBy: sortPopoverCriteria,
8553
- onSortByChange: handleSortChange,
8554
- trigger: /* @__PURE__ */ jsx(
8555
- ToolbarToolButton,
8556
- {
8557
- icon: /* @__PURE__ */ jsx(ArrowUpDown, {}),
8558
- "aria-label": "Ordenar",
8559
- hasIndicator: sortPopoverCriteria.length > 0
8560
- }
8561
- )
8562
- }
8563
- ),
8564
- toolbarConfig.enableColumns !== false && /* @__PURE__ */ jsx(
8565
- ColsPopover,
8566
- {
8567
- columns: colsPopoverColumns,
8568
- visibleCols: visibleColsSet,
8569
- onVisibleChange: handleVisibleChange,
8570
- pinnedCols: pinnedColsSet,
8571
- onPinnedChange: handlePinnedChange,
8572
- onColumnsReorder: handleColumnsReorder,
8573
- trigger: /* @__PURE__ */ jsx(
8574
- ToolbarToolButton,
8575
- {
8576
- icon: /* @__PURE__ */ jsx(Columns, {}),
8577
- "aria-label": "Colunas"
8578
- }
8579
- )
8580
- }
8581
- ),
8582
- toolbarConfig.enableDensity !== false && /* @__PURE__ */ jsx(ToolbarDivider, {}),
8583
- toolbarConfig.enableDensity !== false && /* @__PURE__ */ jsx(
8584
- ToolbarSegmented,
8585
- {
8586
- value: density.density,
8587
- onValueChange: (v) => density.setDensity(v),
8588
- items: props.densityItems ?? DENSITY_ITEMS,
8589
- ariaLabel: "Densidade da tabela"
8590
- }
8591
- ),
8592
- (exportConfig || toolbarConfig.moreMenu?.items?.length) && /* @__PURE__ */ jsx(ToolbarDivider, {}),
8593
- exportConfig && /* @__PURE__ */ jsxs(DropdownMenu, { children: [
8594
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
8595
- ToolbarToolButton,
8630
+ /* @__PURE__ */ jsxs("div", { className: "hidden xl:contents", children: [
8631
+ /* @__PURE__ */ jsx(
8632
+ SortPopover,
8596
8633
  {
8597
- icon: /* @__PURE__ */ jsx(Download, {}),
8598
- label: "Exportar"
8634
+ columns: sortPopoverColumns,
8635
+ sortBy: sortPopoverCriteria,
8636
+ onSortByChange: handleSortChange,
8637
+ trigger: /* @__PURE__ */ jsx(
8638
+ ToolbarToolButton,
8639
+ {
8640
+ icon: /* @__PURE__ */ jsx(ArrowUpDown, {}),
8641
+ "aria-label": "Ordenar",
8642
+ hasIndicator: sortPopoverCriteria.length > 0
8643
+ }
8644
+ )
8599
8645
  }
8600
- ) }),
8601
- /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", children: [
8602
- exportConfig.formats.map((fmt) => {
8603
- const isCsvDefault = fmt.id === "csv" && !fmt.onSelect;
8604
- if (!isCsvDefault) {
8605
- return /* @__PURE__ */ jsxs(
8606
- DropdownMenuItem,
8607
- {
8608
- onClick: fmt.onSelect,
8609
- children: [
8610
- fmt.icon,
8611
- fmt.label
8612
- ]
8613
- },
8614
- fmt.id
8615
- );
8646
+ ),
8647
+ toolbarConfig.enableColumns !== false && /* @__PURE__ */ jsx(
8648
+ ColsPopover,
8649
+ {
8650
+ columns: colsPopoverColumns,
8651
+ visibleCols: visibleColsSet,
8652
+ onVisibleChange: handleVisibleChange,
8653
+ pinnedCols: pinnedColsSet,
8654
+ onPinnedChange: handlePinnedChange,
8655
+ onColumnsReorder: handleColumnsReorder,
8656
+ trigger: /* @__PURE__ */ jsx(
8657
+ ToolbarToolButton,
8658
+ {
8659
+ icon: /* @__PURE__ */ jsx(Columns, {}),
8660
+ "aria-label": "Colunas"
8661
+ }
8662
+ )
8663
+ }
8664
+ ),
8665
+ toolbarConfig.enableDensity !== false && /* @__PURE__ */ jsx(ToolbarDivider, {}),
8666
+ toolbarConfig.enableDensity !== false && /* @__PURE__ */ jsx(
8667
+ ToolbarSegmented,
8668
+ {
8669
+ value: density.density,
8670
+ onValueChange: (v) => density.setDensity(v),
8671
+ items: props.densityItems ?? DENSITY_ITEMS,
8672
+ ariaLabel: "Densidade da tabela"
8673
+ }
8674
+ ),
8675
+ (exportConfig || toolbarConfig.moreMenu?.items?.length) && /* @__PURE__ */ jsx(ToolbarDivider, {}),
8676
+ exportConfig && /* @__PURE__ */ jsxs(DropdownMenu, { children: [
8677
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
8678
+ ToolbarToolButton,
8679
+ {
8680
+ icon: /* @__PURE__ */ jsx(Download, {}),
8681
+ label: "Exportar"
8616
8682
  }
8617
- return /* @__PURE__ */ jsxs("div", { children: [
8618
- isServerMode ? /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("all"), children: [
8619
- fmt.icon,
8620
- fmt.label,
8621
- " Página atual"
8622
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
8623
- /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("all"), children: [
8683
+ ) }),
8684
+ /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", children: [
8685
+ exportConfig.formats.map((fmt) => {
8686
+ const isCsvDefault = fmt.id === "csv" && !fmt.onSelect;
8687
+ if (!isCsvDefault) {
8688
+ return /* @__PURE__ */ jsxs(
8689
+ DropdownMenuItem,
8690
+ {
8691
+ onClick: fmt.onSelect,
8692
+ children: [
8693
+ fmt.icon,
8694
+ fmt.label
8695
+ ]
8696
+ },
8697
+ fmt.id
8698
+ );
8699
+ }
8700
+ return /* @__PURE__ */ jsxs("div", { children: [
8701
+ isServerMode ? /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("all"), children: [
8624
8702
  fmt.icon,
8625
8703
  fmt.label,
8626
- " — Todos"
8704
+ " — Página atual"
8705
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
8706
+ /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("all"), children: [
8707
+ fmt.icon,
8708
+ fmt.label,
8709
+ " — Todos"
8710
+ ] }),
8711
+ /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("filtered"), children: [
8712
+ fmt.icon,
8713
+ fmt.label,
8714
+ " — Filtrados"
8715
+ ] })
8627
8716
  ] }),
8628
- /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("filtered"), children: [
8629
- fmt.icon,
8630
- fmt.label,
8631
- " Filtrados"
8632
- ] })
8633
- ] }),
8634
- /* @__PURE__ */ jsxs(
8717
+ /* @__PURE__ */ jsxs(
8718
+ DropdownMenuItem,
8719
+ {
8720
+ onClick: () => exportHook.exportCsv("selected"),
8721
+ disabled: selection.selectedCount === 0,
8722
+ children: [
8723
+ fmt.icon,
8724
+ fmt.label,
8725
+ " — Selecionados (",
8726
+ selection.selectedCount,
8727
+ ")"
8728
+ ]
8729
+ }
8730
+ )
8731
+ ] }, fmt.id);
8732
+ }),
8733
+ exportConfig.items.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
8734
+ /* @__PURE__ */ jsx(DropdownMenuItem, { disabled: true, className: "opacity-50", children: "───" }),
8735
+ exportConfig.items.map((it) => /* @__PURE__ */ jsxs(
8635
8736
  DropdownMenuItem,
8636
8737
  {
8637
- onClick: () => exportHook.exportCsv("selected"),
8638
- disabled: selection.selectedCount === 0,
8738
+ onClick: it.onSelect,
8739
+ disabled: it.disabled,
8639
8740
  children: [
8640
- fmt.icon,
8641
- fmt.label,
8642
- " — Selecionados (",
8643
- selection.selectedCount,
8644
- ")"
8741
+ it.icon,
8742
+ it.label
8645
8743
  ]
8646
- }
8647
- )
8648
- ] }, fmt.id);
8649
- }),
8650
- exportConfig.items.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
8651
- /* @__PURE__ */ jsx(DropdownMenuItem, { disabled: true, className: "opacity-50", children: "───" }),
8652
- exportConfig.items.map((it) => /* @__PURE__ */ jsxs(
8744
+ },
8745
+ it.id
8746
+ ))
8747
+ ] })
8748
+ ] })
8749
+ ] }),
8750
+ toolbarConfig.moreMenu?.items?.length ? /* @__PURE__ */ jsx(
8751
+ MoreMenu,
8752
+ {
8753
+ trigger: /* @__PURE__ */ jsx(
8754
+ ToolbarToolButton,
8755
+ {
8756
+ icon: /* @__PURE__ */ jsx(MoreHorizontal, {}),
8757
+ "aria-label": "Mais opções"
8758
+ }
8759
+ ),
8760
+ children: toolbarConfig.moreMenu.items.map((it) => /* @__PURE__ */ jsxs(
8653
8761
  DropdownMenuItem,
8654
8762
  {
8655
- onClick: it.onSelect,
8763
+ onSelect: it.onSelect,
8656
8764
  disabled: it.disabled,
8765
+ variant: it.destructive ? "destructive" : "default",
8657
8766
  children: [
8658
8767
  it.icon,
8659
8768
  it.label
@@ -8661,35 +8770,211 @@ function DataTableInternal(props, ref) {
8661
8770
  },
8662
8771
  it.id
8663
8772
  ))
8664
- ] })
8665
- ] })
8773
+ }
8774
+ ) : null,
8775
+ toolbarConfig.customActions
8666
8776
  ] }),
8667
- toolbarConfig.moreMenu?.items?.length ? /* @__PURE__ */ jsx(
8668
- MoreMenu,
8669
- {
8670
- trigger: /* @__PURE__ */ jsx(
8671
- ToolbarToolButton,
8777
+ /* @__PURE__ */ jsxs(ToolbarMobileDialog, { desktopBreakpoint: "xl", children: [
8778
+ (toolbarConfig.enableDensity !== false || resolvedViewToggle) && /* @__PURE__ */ jsxs(ToolbarMobileSection, { title: "Visualização", children: [
8779
+ toolbarConfig.enableDensity !== false && /* @__PURE__ */ jsx(
8780
+ ToolbarSegmented,
8672
8781
  {
8673
- icon: /* @__PURE__ */ jsx(MoreHorizontal, {}),
8674
- "aria-label": "Mais opções"
8782
+ fluid: true,
8783
+ value: density.density,
8784
+ onValueChange: (v) => density.setDensity(v),
8785
+ items: props.densityItems ?? DENSITY_ITEMS,
8786
+ ariaLabel: "Densidade da tabela"
8675
8787
  }
8676
8788
  ),
8677
- children: toolbarConfig.moreMenu.items.map((it) => /* @__PURE__ */ jsxs(
8678
- DropdownMenuItem,
8789
+ resolvedViewToggle && /* @__PURE__ */ jsx("div", { className: "md:hidden", children: props.kanbanConfig && props.toolbar?.viewToggle === void 0 ? /* @__PURE__ */ jsx(
8790
+ ToolbarSegmented,
8679
8791
  {
8680
- onSelect: it.onSelect,
8681
- disabled: it.disabled,
8682
- variant: it.destructive ? "destructive" : "default",
8683
- children: [
8684
- it.icon,
8685
- it.label
8686
- ]
8687
- },
8688
- it.id
8689
- ))
8690
- }
8691
- ) : null,
8692
- toolbarConfig.customActions
8792
+ fluid: true,
8793
+ value: viewMode,
8794
+ onValueChange: handleViewModeChange,
8795
+ items: MOBILE_VIEW_MODE_ITEMS,
8796
+ ariaLabel: "Modo de visualização"
8797
+ }
8798
+ ) : resolvedViewToggle })
8799
+ ] }),
8800
+ /* @__PURE__ */ jsxs(ToolbarMobileSection, { title: "Organizar", children: [
8801
+ /* @__PURE__ */ jsx(
8802
+ SortPopover,
8803
+ {
8804
+ columns: sortPopoverColumns,
8805
+ sortBy: sortPopoverCriteria,
8806
+ onSortByChange: handleSortChange,
8807
+ trigger: /* @__PURE__ */ jsxs(
8808
+ Button,
8809
+ {
8810
+ color: "secondary",
8811
+ variant: "outline",
8812
+ size: "md",
8813
+ fullWidth: true,
8814
+ iconLeft: /* @__PURE__ */ jsx(ArrowUpDown, {}),
8815
+ className: "justify-start",
8816
+ children: [
8817
+ "Ordenar",
8818
+ sortPopoverCriteria.length > 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-fg-muted", children: sortPopoverCriteria.length })
8819
+ ]
8820
+ }
8821
+ )
8822
+ }
8823
+ ),
8824
+ toolbarConfig.enableColumns !== false && /* @__PURE__ */ jsx(
8825
+ ColsPopover,
8826
+ {
8827
+ columns: colsPopoverColumns,
8828
+ visibleCols: visibleColsSet,
8829
+ onVisibleChange: handleVisibleChange,
8830
+ pinnedCols: pinnedColsSet,
8831
+ onPinnedChange: handlePinnedChange,
8832
+ onColumnsReorder: handleColumnsReorder,
8833
+ trigger: /* @__PURE__ */ jsx(
8834
+ Button,
8835
+ {
8836
+ color: "secondary",
8837
+ variant: "outline",
8838
+ size: "md",
8839
+ fullWidth: true,
8840
+ iconLeft: /* @__PURE__ */ jsx(Columns, {}),
8841
+ className: "justify-start",
8842
+ children: "Colunas"
8843
+ }
8844
+ )
8845
+ }
8846
+ )
8847
+ ] }),
8848
+ (toolbarConfig.enableRefresh !== false || exportConfig || toolbarConfig.moreMenu?.items?.length) && /* @__PURE__ */ jsxs(ToolbarMobileSection, { title: "Mais ações", children: [
8849
+ toolbarConfig.enableRefresh !== false && /* @__PURE__ */ jsx(
8850
+ Button,
8851
+ {
8852
+ color: "secondary",
8853
+ variant: "outline",
8854
+ size: "md",
8855
+ fullWidth: true,
8856
+ iconLeft: /* @__PURE__ */ jsx(
8857
+ RefreshCw,
8858
+ {
8859
+ className: isRefreshing ? "animate-spin" : ""
8860
+ }
8861
+ ),
8862
+ onClick: handleRefresh,
8863
+ className: "md:hidden justify-start",
8864
+ children: "Atualizar"
8865
+ }
8866
+ ),
8867
+ exportConfig && /* @__PURE__ */ jsxs(DropdownMenu, { children: [
8868
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
8869
+ Button,
8870
+ {
8871
+ color: "secondary",
8872
+ variant: "outline",
8873
+ size: "md",
8874
+ fullWidth: true,
8875
+ iconLeft: /* @__PURE__ */ jsx(Download, {}),
8876
+ className: "justify-start",
8877
+ children: "Exportar"
8878
+ }
8879
+ ) }),
8880
+ /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", children: [
8881
+ exportConfig.formats.map((fmt) => {
8882
+ const isCsvDefault = fmt.id === "csv" && !fmt.onSelect;
8883
+ if (!isCsvDefault) {
8884
+ return /* @__PURE__ */ jsxs(
8885
+ DropdownMenuItem,
8886
+ {
8887
+ onClick: fmt.onSelect,
8888
+ children: [
8889
+ fmt.icon,
8890
+ fmt.label
8891
+ ]
8892
+ },
8893
+ fmt.id
8894
+ );
8895
+ }
8896
+ return /* @__PURE__ */ jsxs("div", { children: [
8897
+ isServerMode ? /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("all"), children: [
8898
+ fmt.icon,
8899
+ fmt.label,
8900
+ " — Página atual"
8901
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
8902
+ /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("all"), children: [
8903
+ fmt.icon,
8904
+ fmt.label,
8905
+ " — Todos"
8906
+ ] }),
8907
+ /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => exportHook.exportCsv("filtered"), children: [
8908
+ fmt.icon,
8909
+ fmt.label,
8910
+ " — Filtrados"
8911
+ ] })
8912
+ ] }),
8913
+ /* @__PURE__ */ jsxs(
8914
+ DropdownMenuItem,
8915
+ {
8916
+ onClick: () => exportHook.exportCsv("selected"),
8917
+ disabled: selection.selectedCount === 0,
8918
+ children: [
8919
+ fmt.icon,
8920
+ fmt.label,
8921
+ " — Selecionados (",
8922
+ selection.selectedCount,
8923
+ ")"
8924
+ ]
8925
+ }
8926
+ )
8927
+ ] }, fmt.id);
8928
+ }),
8929
+ exportConfig.items.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
8930
+ /* @__PURE__ */ jsx(DropdownMenuItem, { disabled: true, className: "opacity-50", children: "───" }),
8931
+ exportConfig.items.map((it) => /* @__PURE__ */ jsxs(
8932
+ DropdownMenuItem,
8933
+ {
8934
+ onClick: it.onSelect,
8935
+ disabled: it.disabled,
8936
+ children: [
8937
+ it.icon,
8938
+ it.label
8939
+ ]
8940
+ },
8941
+ it.id
8942
+ ))
8943
+ ] })
8944
+ ] })
8945
+ ] }),
8946
+ toolbarConfig.moreMenu?.items?.length ? /* @__PURE__ */ jsx(
8947
+ MoreMenu,
8948
+ {
8949
+ trigger: /* @__PURE__ */ jsx(
8950
+ Button,
8951
+ {
8952
+ color: "secondary",
8953
+ variant: "outline",
8954
+ size: "md",
8955
+ fullWidth: true,
8956
+ iconLeft: /* @__PURE__ */ jsx(MoreHorizontal, {}),
8957
+ className: "justify-start",
8958
+ children: "Mais ações"
8959
+ }
8960
+ ),
8961
+ children: toolbarConfig.moreMenu.items.map((it) => /* @__PURE__ */ jsxs(
8962
+ DropdownMenuItem,
8963
+ {
8964
+ onSelect: it.onSelect,
8965
+ disabled: it.disabled,
8966
+ variant: it.destructive ? "destructive" : "default",
8967
+ children: [
8968
+ it.icon,
8969
+ it.label
8970
+ ]
8971
+ },
8972
+ it.id
8973
+ ))
8974
+ }
8975
+ ) : null
8976
+ ] })
8977
+ ] })
8693
8978
  ] }),
8694
8979
  bulkBar: selectionConfig.enabled && selection.selectedCount > 0 ? /* @__PURE__ */ jsx(
8695
8980
  BulkActionsBar,
@@ -8815,7 +9100,7 @@ function DataTableFloatingBulkBar({
8815
9100
  }) {
8816
9101
  if (count === 0) return null;
8817
9102
  return /* @__PURE__ */ jsxs("div", { className: styles.bulkBar(), role: "region", "aria-label": "Acoes em massa", children: [
8818
- /* @__PURE__ */ jsxs("span", { className: "text-label-sm whitespace-nowrap", children: [
9103
+ /* @__PURE__ */ jsxs("span", { className: "text-body-md font-medium whitespace-nowrap", children: [
8819
9104
  count,
8820
9105
  " selecionado",
8821
9106
  count > 1 ? "s" : ""
@@ -8911,10 +9196,10 @@ const floatingPanelStyles = tv({
8911
9196
  headerText: "flex flex-col gap-gp-2xs min-w-0 flex-1",
8912
9197
  headerTitle: [
8913
9198
  "flex items-center gap-gp-md min-w-0",
8914
- "text-[16px] font-bold tracking-[-0.01em] text-fg-default truncate"
9199
+ "text-body-lg font-bold tracking-[-0.01em] text-fg-default truncate"
8915
9200
  ],
8916
9201
  headerTitleIcon: "size-[18px] text-fg-brand shrink-0",
8917
- headerDescription: "text-paragraph-sm text-fg-muted truncate",
9202
+ headerDescription: "text-body-md text-fg-muted truncate",
8918
9203
  headerActions: "flex items-center gap-gp-xs flex-none",
8919
9204
  body: [
8920
9205
  "flex-1 overflow-y-auto scrollbar-thin"
@@ -9145,7 +9430,7 @@ const textareaVariants = cva(
9145
9430
  "hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover",
9146
9431
  "border border-border-input rounded-radius-lg",
9147
9432
  "px-pad-xl py-pad-lg",
9148
- "text-[13px] leading-[1.5] text-fg-default",
9433
+ "text-body-sm font-normal leading-[1.5] text-fg-default",
9149
9434
  "placeholder:text-fg-muted placeholder:opacity-70",
9150
9435
  "transition-[color,box-shadow,background-color,border-color] outline-none",
9151
9436
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-bg-input dark:disabled:hover:bg-bg-muted"
@@ -9458,7 +9743,7 @@ const SheetTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE
9458
9743
  SheetPrimitive.Title,
9459
9744
  {
9460
9745
  ref,
9461
- className: cn("text-label-md font-semibold text-fg-default", className),
9746
+ className: cn("text-body-lg font-medium font-semibold text-fg-default", className),
9462
9747
  ...props
9463
9748
  }
9464
9749
  ));
@@ -9467,7 +9752,7 @@ const SheetDescription = React.forwardRef(({ className, ...props }, ref) => /* @
9467
9752
  SheetPrimitive.Description,
9468
9753
  {
9469
9754
  ref,
9470
- className: cn("text-paragraph-sm text-fg-muted", className),
9755
+ className: cn("text-body-md text-fg-muted", className),
9471
9756
  ...props
9472
9757
  }
9473
9758
  ));
@@ -9516,7 +9801,7 @@ const panelHeaderText = tv({
9516
9801
  const panelTitle = tv({
9517
9802
  base: [
9518
9803
  "flex items-center gap-gp-md min-w-0",
9519
- "text-[16px] font-bold text-fg-default tracking-[-0.01em]",
9804
+ "text-body-lg font-bold text-fg-default tracking-[-0.01em]",
9520
9805
  "truncate"
9521
9806
  ]
9522
9807
  });
@@ -9524,7 +9809,7 @@ const panelTitleIcon = tv({
9524
9809
  base: "size-[18px] text-fg-brand shrink-0"
9525
9810
  });
9526
9811
  const panelDescription = tv({
9527
- base: "text-paragraph-sm text-fg-muted"
9812
+ base: "text-body-md text-fg-muted"
9528
9813
  });
9529
9814
  const panelClose = tv({
9530
9815
  base: [
@@ -9655,7 +9940,7 @@ function Panel({
9655
9940
  ] });
9656
9941
  }
9657
9942
  export {
9658
- panelContainer as $,
9943
+ avatarVariants as $,
9659
9944
  AlertModal as A,
9660
9945
  BulkActionButton as B,
9661
9946
  ColsPopover as C,
@@ -9672,22 +9957,25 @@ export {
9672
9957
  ToolbarApplied as N,
9673
9958
  ToolbarDivider as O,
9674
9959
  Panel as P,
9675
- ToolbarSaveButton as Q,
9676
- ToolbarSearch as R,
9960
+ ToolbarMobileDialog as Q,
9961
+ ToolbarMobileSection as R,
9677
9962
  SheetClose as S,
9678
9963
  TABLE_HEADER_HEIGHT as T,
9679
- ToolbarSegmented as U,
9680
- ToolbarTabs as V,
9681
- ToolbarToolButton as W,
9682
- ViewsPopover as X,
9683
- avatarVariants as Y,
9684
- columnTypeRegistry as Z,
9685
- floatingPanelStyles as _,
9964
+ ToolbarMobileSheet as U,
9965
+ ToolbarSaveButton as V,
9966
+ ToolbarSearch as W,
9967
+ ToolbarSegmented as X,
9968
+ ToolbarTabs as Y,
9969
+ ToolbarToolButton as Z,
9970
+ ViewsPopover as _,
9686
9971
  FormField as a,
9687
- savedViewsMockService as a0,
9688
- useColumnWidths as a1,
9689
- useDataTableContext as a2,
9690
- useFloatingPanelResize as a3,
9972
+ columnTypeRegistry as a0,
9973
+ floatingPanelStyles as a1,
9974
+ panelContainer as a2,
9975
+ savedViewsMockService as a3,
9976
+ useColumnWidths as a4,
9977
+ useDataTableContext as a5,
9978
+ useFloatingPanelResize as a6,
9691
9979
  FormFieldSelect as b,
9692
9980
  FormFieldTextarea as c,
9693
9981
  FloatingPanel as d,
@@ -9714,4 +10002,4 @@ export {
9714
10002
  PanelFooter as y,
9715
10003
  PanelHeader as z
9716
10004
  };
9717
- //# sourceMappingURL=panel-Ds15whqp.mjs.map
10005
+ //# sourceMappingURL=panel-DZ7X1NZV.mjs.map