@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
package/README.md CHANGED
@@ -80,9 +80,25 @@ tokens/brands/default/
80
80
 
81
81
  ---
82
82
 
83
+ ## Quick start (CLI)
84
+
85
+ Para criar um projeto novo do zero já consumindo o DS, com tudo configurado (Vite + React 19 + Tailwind v4 + tema light/dark + exemplo funcional):
86
+
87
+ ```bash
88
+ npm create @snksergio/design-system my-app
89
+ cd my-app
90
+ npm run dev
91
+ ```
92
+
93
+ O CLI pergunta o nome do projeto, package manager, se quer instalar deps e iniciar git. Em ~30 segundos você tem um app rodando em `http://localhost:3200` com 4 componentes do DS demonstrados. Sem precisar configurar nada manualmente, sem gotcha do `@source` do Tailwind v4.
94
+
95
+ Ver detalhes: [`cli/README.md`](cli/README.md).
96
+
97
+ ---
98
+
83
99
  ## Install in external apps
84
100
 
85
- O DS é publicado como pacote NPM público (`@snksergio/design-system`). Apps externos consomem via:
101
+ Se você prefere adicionar o DS num projeto JÁ existente (ao invés de usar o CLI), é publicado como pacote NPM público (`@snksergio/design-system`):
86
102
 
87
103
  ```bash
88
104
  npm install @snksergio/design-system
@@ -92,6 +108,23 @@ npm install @snksergio/design-system
92
108
  - React 19+ (peer dep)
93
109
  - Tailwind CSS v4 instalado e configurado
94
110
  - Importar `@snksergio/design-system/theme.css` uma vez no entry CSS
111
+ - **Adicionar `@source` apontando pro `dist-lib/` do package** (ver abaixo) — sem isso, as classes utility usadas DENTRO dos componentes não são geradas pelo Tailwind v4
112
+
113
+ **Configuração mínima do CSS de entrada (`index.css` ou `globals.css`):**
114
+
115
+ ```css
116
+ @import "tailwindcss";
117
+
118
+ /* Necessário: Tailwind v4 ignora node_modules por default.
119
+ Isso instrui ele a escanear os bundles do DS pra gerar
120
+ classes utility usadas DENTRO dos componentes
121
+ (gap-gp-md, rounded-radius-base, min-h-form-lg, etc.) */
122
+ @source "../node_modules/@snksergio/design-system/dist-lib/**/*.{mjs,cjs,js}";
123
+
124
+ @import "@snksergio/design-system/theme.css";
125
+ ```
126
+
127
+ ⚠️ **Esse `@source` é obrigatório.** Sem ele, os componentes ficam sem estilo (cores aparecem via CSS vars, mas spacing/radius/shadow/sizing somem porque as classes utility ficam órfãs).
95
128
 
96
129
  **Uso:**
97
130
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const React = require("react");
4
- const chipGroup = require("./chip-group-CsKBBHW2.mjs");
4
+ const chipGroup = require("./chip-group-2-f_Yo7Y.cjs");
5
5
  const lucideReact = require("lucide-react");
6
6
  const cmdk = require("cmdk");
7
7
  const SheetPrimitive = require("@radix-ui/react-dialog");
@@ -80,10 +80,10 @@ const breadcrumbItem = chipGroup.tv({
80
80
  true: "text-fg-default font-semibold",
81
81
  false: "text-fg-muted hover:text-fg-default cursor-pointer"
82
82
  },
83
- /** Quando único item no breadcrumb (= título da página), font-size sobe pra 15px */
83
+ /** Quando único item no breadcrumb (= título da página), font-size sobe pra 16px */
84
84
  standalone: {
85
- true: "text-[15px]",
86
- false: "text-[13px]"
85
+ true: "text-body-lg",
86
+ false: "text-body-sm font-normal"
87
87
  }
88
88
  },
89
89
  defaultVariants: { current: false, standalone: false }
@@ -96,7 +96,7 @@ const searchFakeInput = chipGroup.tv({
96
96
  "inline-flex items-center gap-gp-md h-form-md w-[180px]",
97
97
  "px-pad-xl rounded-radius-md",
98
98
  "bg-bg-subtle border border-border-subtle cursor-pointer",
99
- "text-fg-subtle text-[13px]",
99
+ "text-fg-subtle text-body-sm font-normal",
100
100
  "transition-colors duration-150",
101
101
  "hover:bg-bg-muted hover:border-border-default",
102
102
  "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
@@ -113,7 +113,7 @@ const searchFakeInputKbd = chipGroup.tv({
113
113
  "ml-auto inline-flex items-center justify-center",
114
114
  "h-[20px] px-pad-xs rounded-radius-xs",
115
115
  "bg-bg-canvas border border-border-subtle dark:bg-bg-muted",
116
- "text-[10px] font-semibold text-fg-muted tabular-nums shrink-0"
116
+ "text-caption-xs font-semibold text-fg-muted tabular-nums shrink-0"
117
117
  ]
118
118
  });
119
119
  const hdWrap = chipGroup.tv({
@@ -140,13 +140,13 @@ const hdHeader = chipGroup.tv({
140
140
  base: "flex items-center justify-between"
141
141
  });
142
142
  const hdTitle = chipGroup.tv({
143
- base: "flex items-center gap-gp-sm text-[15px] font-semibold text-fg-default"
143
+ base: "flex items-center gap-gp-sm text-body-lg font-semibold text-fg-default"
144
144
  });
145
145
  const hdTitleCount = chipGroup.tv({
146
146
  base: [
147
147
  "inline-flex items-center justify-center min-w-[20px] h-[20px] px-pad-xs",
148
148
  "rounded-radius-xs bg-bg-brand text-fg-on-brand",
149
- "text-[11px] font-bold tabular-nums"
149
+ "text-caption-sm font-bold tabular-nums"
150
150
  ]
151
151
  });
152
152
  const hdHeaderActions = chipGroup.tv({
@@ -165,7 +165,7 @@ chipGroup.tv({
165
165
  base: "size-[14px] text-fg-muted shrink-0"
166
166
  });
167
167
  chipGroup.tv({
168
- base: "flex-1 min-w-0 bg-transparent border-0 outline-none text-[13px] text-fg-default placeholder:text-fg-subtle"
168
+ base: "flex-1 min-w-0 bg-transparent border-0 outline-none text-body-sm font-normal text-fg-default placeholder:text-fg-subtle"
169
169
  });
170
170
  chipGroup.tv({
171
171
  base: "flex items-center gap-gp-2xs p-[3px] rounded-radius-lg bg-bg-muted"
@@ -174,7 +174,7 @@ chipGroup.tv({
174
174
  base: [
175
175
  "inline-flex items-center justify-center gap-gp-xs",
176
176
  "h-[28px] px-[10px] rounded-radius-sm",
177
- "text-[12px] font-medium text-fg-muted cursor-pointer",
177
+ "text-body-xs font-medium text-fg-muted cursor-pointer",
178
178
  "bg-transparent border-0",
179
179
  "transition-colors duration-150",
180
180
  "hover:text-fg-default",
@@ -187,7 +187,7 @@ chipGroup.tv({
187
187
  }
188
188
  });
189
189
  chipGroup.tv({
190
- base: "text-[10px] font-bold tabular-nums opacity-70"
190
+ base: "text-caption-xs font-bold tabular-nums opacity-70"
191
191
  });
192
192
  const hdBody = chipGroup.tv({
193
193
  base: "flex-1 overflow-y-auto p-pad-sm flex flex-col gap-px"
@@ -196,7 +196,7 @@ const hdEmpty = chipGroup.tv({
196
196
  base: "flex flex-col items-center justify-center gap-gp-md py-pad-7xl text-fg-subtle"
197
197
  });
198
198
  const hdEmptyText = chipGroup.tv({
199
- base: "text-paragraph-sm"
199
+ base: "text-body-md"
200
200
  });
201
201
  const hdNotif = chipGroup.tv({
202
202
  base: [
@@ -214,13 +214,13 @@ const hdNotifBody = chipGroup.tv({
214
214
  base: "flex-1 min-w-0 flex flex-col gap-gp-2xs"
215
215
  });
216
216
  const hdNotifTitle = chipGroup.tv({
217
- base: "text-[13px] font-semibold text-fg-default leading-tight"
217
+ base: "text-body-sm font-semibold text-fg-default leading-tight"
218
218
  });
219
219
  const hdNotifText = chipGroup.tv({
220
- base: "text-[12px] text-fg-muted leading-snug line-clamp-2"
220
+ base: "text-body-xs font-normal text-fg-muted leading-snug line-clamp-2"
221
221
  });
222
222
  const hdNotifTime = chipGroup.tv({
223
- base: "text-[11px] text-fg-subtle"
223
+ base: "text-caption-sm text-fg-subtle"
224
224
  });
225
225
  const hdNotifDot = chipGroup.tv({
226
226
  base: "shrink-0 mt-pad-xs w-[8px] h-[8px] rounded-full bg-bg-brand"
@@ -237,7 +237,7 @@ const hdMsg = chipGroup.tv({
237
237
  const hdMsgAvatar = chipGroup.tv({
238
238
  base: [
239
239
  "flex-none grid place-items-center w-icon-lg h-icon-lg rounded-full",
240
- "text-white text-[11px] font-bold uppercase tracking-[0.02em] leading-none"
240
+ "text-white text-caption-sm font-bold uppercase tracking-[0.02em] leading-none"
241
241
  ]
242
242
  });
243
243
  const hdMsgBody = chipGroup.tv({
@@ -247,16 +247,16 @@ const hdMsgRow = chipGroup.tv({
247
247
  base: "flex items-center justify-between gap-gp-sm"
248
248
  });
249
249
  const hdMsgName = chipGroup.tv({
250
- base: "text-[13px] font-semibold text-fg-default truncate"
250
+ base: "text-body-sm font-semibold text-fg-default truncate"
251
251
  });
252
252
  const hdMsgTime = chipGroup.tv({
253
- base: "text-[11px] text-fg-subtle shrink-0"
253
+ base: "text-caption-sm text-fg-subtle shrink-0"
254
254
  });
255
255
  const hdMsgPreviewRow = chipGroup.tv({
256
256
  base: "flex items-center gap-gp-sm"
257
257
  });
258
258
  const hdMsgPreview = chipGroup.tv({
259
- base: "flex-1 min-w-0 text-[12px] text-fg-muted truncate"
259
+ base: "flex-1 min-w-0 text-body-xs font-normal text-fg-muted truncate"
260
260
  });
261
261
  const hdMsgDot = chipGroup.tv({
262
262
  base: "shrink-0 w-[8px] h-[8px] rounded-full bg-bg-brand"
@@ -268,7 +268,7 @@ const hdFooterLink = chipGroup.tv({
268
268
  base: [
269
269
  "inline-flex items-center justify-center gap-gp-sm",
270
270
  "h-form-sm px-pad-lg rounded-radius-md w-full",
271
- "text-[13px] font-medium text-fg-brand no-underline",
271
+ "text-body-sm font-medium text-fg-brand no-underline",
272
272
  "transition-colors duration-150",
273
273
  "hover:bg-bg-brand-subtle",
274
274
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-brand"
@@ -374,7 +374,7 @@ const DialogContent = React__namespace.forwardRef(({ className, children, hideCl
374
374
  {
375
375
  ref,
376
376
  className: chipGroup.cn(
377
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-gp-4xl rounded-radius-base bg-bg-surface p-pad-4xl text-paragraph-sm text-fg-default shadow-sh-xl outline-float duration-200 sm:max-w-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
377
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-gp-4xl rounded-radius-base bg-bg-surface p-pad-4xl text-body-md text-fg-default shadow-sh-xl outline-float duration-200 sm:max-w-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
378
378
  className
379
379
  ),
380
380
  ...props,
@@ -405,7 +405,7 @@ const DialogDescription = React__namespace.forwardRef(({ className, ...props },
405
405
  SheetPrimitive__namespace.Description,
406
406
  {
407
407
  ref,
408
- className: chipGroup.cn("text-paragraph-sm text-fg-muted", className),
408
+ className: chipGroup.cn("text-body-md text-fg-muted", className),
409
409
  ...props
410
410
  }
411
411
  ));
@@ -456,7 +456,7 @@ const CommandInput = React__namespace.forwardRef(({ className, ...props }, ref)
456
456
  ref,
457
457
  className: chipGroup.cn(
458
458
  "flex-1 min-w-0 bg-transparent border-0 outline-none",
459
- "text-[13px] text-fg-default placeholder:text-fg-muted",
459
+ "text-body-sm font-normal text-fg-default placeholder:text-fg-muted",
460
460
  "disabled:cursor-not-allowed disabled:opacity-50",
461
461
  className
462
462
  ),
@@ -483,7 +483,7 @@ const CommandEmpty = React__namespace.forwardRef((props, ref) => /* @__PURE__ */
483
483
  cmdk.Command.Empty,
484
484
  {
485
485
  ref,
486
- className: "py-pad-5xl text-center text-paragraph-sm text-fg-muted",
486
+ className: "py-pad-5xl text-center text-body-md text-fg-muted",
487
487
  ...props
488
488
  }
489
489
  ));
@@ -496,7 +496,7 @@ const CommandGroup = React__namespace.forwardRef(({ className, ...props }, ref)
496
496
  "overflow-hidden text-fg-default",
497
497
  "[&_[cmdk-group-heading]]:flex [&_[cmdk-group-heading]]:items-center",
498
498
  "[&_[cmdk-group-heading]]:h-[28px] [&_[cmdk-group-heading]]:px-pad-xl",
499
- "[&_[cmdk-group-heading]]:text-[10px] [&_[cmdk-group-heading]]:font-bold",
499
+ "[&_[cmdk-group-heading]]:text-caption-xs [&_[cmdk-group-heading]]:font-bold",
500
500
  "[&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider",
501
501
  "[&_[cmdk-group-heading]]:text-fg-subtle",
502
502
  className
@@ -521,7 +521,7 @@ const CommandItem = React__namespace.forwardRef(({ className, ...props }, ref) =
521
521
  className: chipGroup.cn(
522
522
  "relative flex cursor-default select-none items-center gap-gp-md",
523
523
  "rounded-radius-lg px-pad-xl py-pad-md",
524
- "text-[13px] font-medium text-fg-muted",
524
+ "text-body-sm font-medium text-fg-muted",
525
525
  "outline-none transition-colors",
526
526
  "data-[selected='true']:bg-bg-muted data-[selected='true']:text-fg-default data-[selected='true']:[&_svg]:text-fg-default",
527
527
  "data-[disabled='true']:pointer-events-none data-[disabled='true']:opacity-50",
@@ -540,7 +540,7 @@ const CommandShortcut = ({
540
540
  "span",
541
541
  {
542
542
  className: chipGroup.cn(
543
- "ml-auto text-[11px] tracking-wider text-fg-subtle",
543
+ "ml-auto text-caption-sm tracking-wider text-fg-subtle",
544
544
  className
545
545
  ),
546
546
  ...props
@@ -813,10 +813,10 @@ const inputGroupVariants = classVarianceAuthority.cva(
813
813
  {
814
814
  variants: {
815
815
  size: {
816
- xxs: "min-h-form-xs px-pad-md gap-gp-xs rounded-radius-md text-[13px]",
817
- xs: "min-h-form-sm px-pad-xl gap-gp-md rounded-radius-md text-[13px]",
818
- sm: "min-h-form-md px-pad-xl gap-gp-md rounded-radius-lg text-[13px]",
819
- md: "min-h-form-lg px-pad-xl gap-gp-md rounded-radius-lg text-[13px]"
816
+ xxs: "min-h-form-xs px-pad-md gap-gp-xs rounded-radius-md text-body-sm font-normal",
817
+ xs: "min-h-form-sm px-pad-xl gap-gp-md rounded-radius-md text-body-sm font-normal",
818
+ sm: "min-h-form-md px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal",
819
+ md: "min-h-form-lg px-pad-xl gap-gp-md rounded-radius-lg text-body-sm font-normal"
820
820
  },
821
821
  state: {
822
822
  default: "focus-within:border-border-brand focus-within:shadow-sh-ring",
@@ -843,7 +843,7 @@ const InputGroup = React__namespace.forwardRef(
843
843
  InputGroup.displayName = "InputGroup";
844
844
  const inputGroupInputVariants = classVarianceAuthority.cva([
845
845
  "flex-1 min-w-0 bg-transparent border-0 outline-none",
846
- "text-[13px] text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
846
+ "text-body-sm font-normal text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
847
847
  "disabled:cursor-not-allowed",
848
848
  "file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-fg-default"
849
849
  ]);
@@ -861,7 +861,7 @@ InputGroupInput.displayName = "InputGroupInput";
861
861
  const inputGroupTextareaVariants = classVarianceAuthority.cva([
862
862
  "flex-1 min-w-0 bg-transparent border-0 outline-none resize-y",
863
863
  "py-pad-md",
864
- "text-[13px] leading-[1.5] text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
864
+ "text-body-sm font-normal leading-[1.5] text-fg-default placeholder:text-fg-muted placeholder:opacity-70",
865
865
  "disabled:cursor-not-allowed"
866
866
  ]);
867
867
  const InputGroupTextarea = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -918,7 +918,7 @@ const InputGroupText = React__namespace.forwardRef(({ className, ...props }, ref
918
918
  ref,
919
919
  "data-slot": "input-group-text",
920
920
  className: chipGroup.cn(
921
- "text-[12.5px] font-medium text-fg-muted whitespace-nowrap",
921
+ "text-body-xs text-fg-muted whitespace-nowrap",
922
922
  className
923
923
  ),
924
924
  ...props
@@ -936,9 +936,9 @@ const inputGroupButtonVariants = classVarianceAuthority.cva(
936
936
  {
937
937
  variants: {
938
938
  size: {
939
- xs: "h-form-xs px-pad-md gap-gp-xs text-[12px]",
939
+ xs: "h-form-xs px-pad-md gap-gp-xs text-body-xs font-normal",
940
940
  "icon-xs": "size-form-xs",
941
- sm: "h-form-sm px-pad-lg gap-gp-md text-[12.5px]",
941
+ sm: "h-form-sm px-pad-lg gap-gp-md text-body-xs font-normal",
942
942
  "icon-sm": "size-form-sm"
943
943
  },
944
944
  variant: {
@@ -1162,7 +1162,7 @@ const CONTAINER_CLASSES = [
1162
1162
  const ITEM_BASE = [
1163
1163
  "relative flex cursor-default select-none items-center",
1164
1164
  "gap-pad-lg px-pad-lg py-pad-md rounded-radius-sm",
1165
- "text-[13px] font-medium",
1165
+ "text-body-sm font-medium",
1166
1166
  "outline-none transition-colors",
1167
1167
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1168
1168
  "[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
@@ -1507,7 +1507,7 @@ const sidebarRailTooltip = chipGroup.tv({
1507
1507
  "pointer-events-none absolute left-full ml-[14px] top-1/2 -translate-y-1/2",
1508
1508
  "px-pad-md py-[5px] rounded-radius-sm",
1509
1509
  "bg-fg-default text-bg-sidebar",
1510
- "text-[11.5px] font-semibold tracking-[0.01em] whitespace-nowrap",
1510
+ "text-caption-sm font-semibold tracking-[0.01em] whitespace-nowrap",
1511
1511
  "opacity-0 group-hover/rail-item:opacity-100",
1512
1512
  "transition-opacity duration-150 z-50",
1513
1513
  "shadow-sh-md"
@@ -1529,7 +1529,7 @@ const sidebarRailUserDefault = chipGroup.tv({
1529
1529
  base: [
1530
1530
  "grid place-items-center w-9 h-9 rounded-full",
1531
1531
  // tracking-[0.02em] preserva tracking original (preset usa +0.06em)
1532
- "bg-bg-brand text-fg-on-brand font-bold text-[11px] uppercase tracking-[0.02em]"
1532
+ "bg-bg-brand text-fg-on-brand font-bold text-caption-sm uppercase tracking-[0.02em]"
1533
1533
  ]
1534
1534
  });
1535
1535
  const sidebarPanel = chipGroup.tv({
@@ -1556,7 +1556,7 @@ const sidebarPanelTitle = chipGroup.tv({
1556
1556
  "flex-1 min-w-0 inline-flex items-center gap-gp-sm",
1557
1557
  "py-pad-sm px-pad-md rounded-radius-md",
1558
1558
  "bg-transparent border-0 cursor-pointer text-left",
1559
- "font-bold text-fg-default text-[14.5px]",
1559
+ "text-body-md font-medium font-bold text-fg-default",
1560
1560
  "transition-colors hover:bg-bg-sidebar-accent-hover",
1561
1561
  "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary"
1562
1562
  ]
@@ -1570,7 +1570,7 @@ const sidebarPanelGroup = chipGroup.tv({
1570
1570
  const sidebarItem = chipGroup.tv({
1571
1571
  base: [
1572
1572
  "flex items-center gap-[11px] h-form-lg w-full px-pad-xl rounded-radius-md",
1573
- "text-fg-default text-[13px] font-medium text-left no-underline cursor-pointer",
1573
+ "text-fg-default text-body-sm font-medium text-left no-underline cursor-pointer",
1574
1574
  "bg-transparent border-0",
1575
1575
  "transition-colors duration-150",
1576
1576
  // Hover usa sidebar-accent-hover (mineral subtle no light, alpha-12 no dark) —
@@ -1588,7 +1588,7 @@ const sidebarItem = chipGroup.tv({
1588
1588
  ]
1589
1589
  },
1590
1590
  subitem: {
1591
- true: "h-form-sm px-pad-lg text-[12.5px] text-fg-muted hover:text-fg-default"
1591
+ true: "h-form-sm px-pad-lg text-body-xs font-normal text-fg-muted hover:text-fg-default"
1592
1592
  }
1593
1593
  },
1594
1594
  compoundVariants: [
@@ -1618,7 +1618,7 @@ const sidebarPill = chipGroup.tv({
1618
1618
  "inline-flex items-center justify-center flex-none",
1619
1619
  "min-w-[22px] h-[22px] px-[7px] rounded-radius-sm",
1620
1620
  // tracking-[0.02em] e leading-none preservam visual original (preset usa +0.06em e lineHeight 14px)
1621
- "text-[11px] font-bold leading-none tracking-[0.02em] tabular-nums"
1621
+ "text-caption-sm font-bold leading-none tracking-[0.02em] tabular-nums"
1622
1622
  ],
1623
1623
  variants: {
1624
1624
  kind: {
@@ -1667,7 +1667,7 @@ const sidebarSectionHeader = chipGroup.tv({
1667
1667
  base: [
1668
1668
  "flex items-center gap-gp-sm px-pad-lg pt-pad-sm pb-pad-md",
1669
1669
  "bg-transparent border-0 text-left cursor-pointer select-none w-full",
1670
- "text-[10px] font-bold uppercase tracking-[0.06em] text-fg-default",
1670
+ "text-caption-xs font-bold uppercase tracking-[0.06em] text-fg-default",
1671
1671
  "transition-colors hover:text-fg-default",
1672
1672
  "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary rounded-radius-sm",
1673
1673
  // Dark: enfraquecer (mais sutil)
@@ -1685,7 +1685,7 @@ const sidebarSectionChev = chipGroup.tv({
1685
1685
  const sidebarSectionAdd = chipGroup.tv({
1686
1686
  base: [
1687
1687
  "ml-auto w-[18px] h-[18px] grid place-items-center rounded-radius-xs",
1688
- "text-fg-muted bg-transparent border-0 cursor-pointer text-[14px] leading-none",
1688
+ "text-fg-muted bg-transparent border-0 cursor-pointer text-body-md leading-none",
1689
1689
  "transition-colors hover:bg-bg-sidebar-accent-hover hover:text-fg-default",
1690
1690
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring-secondary"
1691
1691
  ]
@@ -1707,7 +1707,7 @@ const sidebarSectionList = chipGroup.tv({
1707
1707
  const sidebarSectionItem = chipGroup.tv({
1708
1708
  base: [
1709
1709
  "flex items-center gap-[11px] h-form-sm w-full px-pad-lg rounded-radius-md",
1710
- "text-[12.5px] font-medium text-fg-muted no-underline cursor-pointer",
1710
+ "text-body-xs font-medium text-fg-muted no-underline cursor-pointer",
1711
1711
  "bg-transparent border-0 text-left",
1712
1712
  "transition-colors duration-150",
1713
1713
  "hover:bg-bg-sidebar-accent-hover hover:text-fg-default",
@@ -1721,7 +1721,7 @@ const sidebarChatAvatar = chipGroup.tv({
1721
1721
  base: [
1722
1722
  "flex-none grid place-items-center w-icon-lg h-icon-lg rounded-full",
1723
1723
  // tracking-[0.02em] preserva o tracking original (preset usa +0.06em); leading-none mantém centralização vertical
1724
- "text-white text-[10px] font-bold uppercase tracking-[0.02em] leading-none"
1724
+ "text-white text-caption-xs font-bold uppercase tracking-[0.02em] leading-none"
1725
1725
  ]
1726
1726
  });
1727
1727
  const sidebarChatStatus = chipGroup.tv({
@@ -2348,7 +2348,7 @@ const AvatarFallback = React__namespace.forwardRef(({ className, ...props }, ref
2348
2348
  {
2349
2349
  ref,
2350
2350
  className: chipGroup.cn(
2351
- "flex h-full w-full items-center justify-center rounded-full bg-bg-muted text-fg-muted text-caption-md",
2351
+ "flex h-full w-full items-center justify-center rounded-full bg-bg-muted text-fg-muted text-body-sm font-normal",
2352
2352
  className
2353
2353
  ),
2354
2354
  ...props
@@ -2383,7 +2383,7 @@ function UserMenu({
2383
2383
  "aria-label": `Menu do usuário (${user.name})`,
2384
2384
  className: [
2385
2385
  "grid place-items-center w-9 h-9 rounded-full shrink-0",
2386
- "bg-bg-brand text-fg-on-brand text-[11px] font-bold uppercase tracking-[0.02em]",
2386
+ "bg-bg-brand text-fg-on-brand text-caption-sm font-bold uppercase tracking-[0.02em]",
2387
2387
  "cursor-pointer transition-opacity duration-150",
2388
2388
  "hover:opacity-90",
2389
2389
  "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary",
@@ -2412,13 +2412,13 @@ function UserMenu({
2412
2412
  style: user.avatarColor ? { background: user.avatarColor } : void 0,
2413
2413
  children: [
2414
2414
  user.avatarSrc && /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: user.avatarSrc, alt: user.name }),
2415
- /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "bg-bg-brand text-fg-on-brand text-[12px] font-bold uppercase", children: initials })
2415
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "bg-bg-brand text-fg-on-brand text-body-xs font-bold uppercase", children: initials })
2416
2416
  ]
2417
2417
  }
2418
2418
  ),
2419
2419
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col min-w-0 flex-1", children: [
2420
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[13px] font-medium text-fg-default truncate", children: user.name }),
2421
- user.email && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-fg-muted truncate", children: user.email })
2420
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-body-sm font-medium text-fg-default truncate", children: user.name }),
2421
+ user.email && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-caption-sm text-fg-muted truncate", children: user.email })
2422
2422
  ] })
2423
2423
  ] }),
2424
2424
  hasGroups && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
@@ -2426,7 +2426,7 @@ function UserMenu({
2426
2426
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSubTrigger, { children: [
2427
2427
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutGrid, {}),
2428
2428
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Layout" }),
2429
- currentLayoutLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-[11px] text-fg-subtle", children: currentLayoutLabel })
2429
+ currentLayoutLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-caption-sm text-fg-subtle", children: currentLayoutLabel })
2430
2430
  ] }),
2431
2431
  /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
2432
2432
  DropdownMenuRadioGroup,
@@ -2447,7 +2447,7 @@ function UserMenu({
2447
2447
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuSubTrigger, { children: [
2448
2448
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunMoon, {}),
2449
2449
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Tema" }),
2450
- currentThemeLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-[11px] text-fg-subtle", children: currentThemeLabel })
2450
+ currentThemeLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-right text-caption-sm text-fg-subtle", children: currentThemeLabel })
2451
2451
  ] }),
2452
2452
  /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSubContent, { sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsx(
2453
2453
  DropdownMenuRadioGroup,
@@ -2678,4 +2678,4 @@ exports.SidebarSubgroup = SidebarSubgroup;
2678
2678
  exports.UserMenu = UserMenu;
2679
2679
  exports.useControllable = useControllable;
2680
2680
  exports.useMediaQuery = useMediaQuery;
2681
- //# sourceMappingURL=app-shell-BNTvOETJ.mjs.map
2681
+ //# sourceMappingURL=app-shell-BdVam01i.cjs.map