@snksergio/design-system 0.32.1 → 0.34.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 (58) hide show
  1. package/dist-lib/chunks/{input-BjUSWce3.cjs → input-CizzMZ20.cjs} +3 -3
  2. package/dist-lib/chunks/{input-BjUSWce3.cjs.map → input-CizzMZ20.cjs.map} +1 -1
  3. package/dist-lib/chunks/{input-DCDU4i4S.mjs → input-Cym0k4ZI.mjs} +2 -2
  4. package/dist-lib/chunks/{input-DCDU4i4S.mjs.map → input-Cym0k4ZI.mjs.map} +1 -1
  5. package/dist-lib/chunks/{kpi-delta-C_3V6uG6.cjs → kpi-delta-DrSJPMCY.cjs} +8 -8
  6. package/dist-lib/chunks/{kpi-delta-C_3V6uG6.cjs.map → kpi-delta-DrSJPMCY.cjs.map} +1 -1
  7. package/dist-lib/chunks/{kpi-delta-DpYuDY4h.mjs → kpi-delta-FhfuIg27.mjs} +2 -2
  8. package/dist-lib/chunks/{kpi-delta-DpYuDY4h.mjs.map → kpi-delta-FhfuIg27.mjs.map} +1 -1
  9. package/dist-lib/chunks/{page-header-D0rpU0yn.cjs → page-header-BMzUloFi.cjs} +4 -4
  10. package/dist-lib/chunks/{page-header-D0rpU0yn.cjs.map → page-header-BMzUloFi.cjs.map} +1 -1
  11. package/dist-lib/chunks/{page-header-B6XJyIMz.mjs → page-header-Buh6YlQM.mjs} +2 -2
  12. package/dist-lib/chunks/{page-header-B6XJyIMz.mjs.map → page-header-Buh6YlQM.mjs.map} +1 -1
  13. package/dist-lib/chunks/{panel-8FiBxwcI.mjs → panel-Cdl0GPVE.mjs} +3 -3
  14. package/dist-lib/chunks/{panel-8FiBxwcI.mjs.map → panel-Cdl0GPVE.mjs.map} +1 -1
  15. package/dist-lib/chunks/{panel-BOrETqXz.cjs → panel-DlyaLunw.cjs} +401 -401
  16. package/dist-lib/chunks/{panel-BOrETqXz.cjs.map → panel-DlyaLunw.cjs.map} +1 -1
  17. package/dist-lib/chunks/{app-shell-Cyh8AUJT.cjs → useTheme-D4alxxGV.cjs} +70 -4
  18. package/dist-lib/chunks/useTheme-D4alxxGV.cjs.map +1 -0
  19. package/dist-lib/chunks/{app-shell-78w0pYdP.mjs → useTheme-DF2xbSdI.mjs} +107 -41
  20. package/dist-lib/chunks/useTheme-DF2xbSdI.mjs.map +1 -0
  21. package/dist-lib/index.cjs +224 -154
  22. package/dist-lib/index.cjs.map +1 -1
  23. package/dist-lib/index.mjs +110 -40
  24. package/dist-lib/index.mjs.map +1 -1
  25. package/dist-lib/preview/chat.cjs +54 -55
  26. package/dist-lib/preview/chat.cjs.map +1 -1
  27. package/dist-lib/preview/chat.mjs +2 -3
  28. package/dist-lib/preview/chat.mjs.map +1 -1
  29. package/dist-lib/preview/clientes.cjs +28 -29
  30. package/dist-lib/preview/clientes.cjs.map +1 -1
  31. package/dist-lib/preview/clientes.mjs +4 -5
  32. package/dist-lib/preview/clientes.mjs.map +1 -1
  33. package/dist-lib/preview/dashboard.cjs +24 -25
  34. package/dist-lib/preview/dashboard.cjs.map +1 -1
  35. package/dist-lib/preview/dashboard.mjs +3 -4
  36. package/dist-lib/preview/dashboard.mjs.map +1 -1
  37. package/dist-lib/src/components/index.d.ts +4 -0
  38. package/dist-lib/src/components/index.d.ts.map +1 -1
  39. package/dist-lib/src/components/ui/AppShell/app-shell.d.ts +3 -2
  40. package/dist-lib/src/components/ui/AppShell/app-shell.d.ts.map +1 -1
  41. package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts +21 -4
  42. package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts.map +1 -1
  43. package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts +13 -3
  44. package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts.map +1 -1
  45. package/dist-lib/src/hooks/useBrand.d.ts +49 -16
  46. package/dist-lib/src/hooks/useBrand.d.ts.map +1 -1
  47. package/dist-lib/theme/brand-blue.css +6 -3
  48. package/dist-lib/theme/brand-green.css +6 -3
  49. package/dist-lib/theme/brand-pay.css +6 -3
  50. package/dist-lib/theme/brand-vibrant.css +6 -3
  51. package/dist-lib/theme.css +5 -2
  52. package/package.json +4 -2
  53. package/dist-lib/chunks/app-shell-78w0pYdP.mjs.map +0 -1
  54. package/dist-lib/chunks/app-shell-Cyh8AUJT.cjs.map +0 -1
  55. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs +0 -66
  56. package/dist-lib/chunks/useTheme-BUPLZBMs.mjs.map +0 -1
  57. package/dist-lib/chunks/useTheme-Dee4mo-A.cjs +0 -65
  58. package/dist-lib/chunks/useTheme-Dee4mo-A.cjs.map +0 -1
@@ -57,4 +57,8 @@ export type { InputProps, InputVariantProps, InputState } from './shadcn';
57
57
  export { InputGroup, InputGroupInput, InputGroupTextarea, InputGroupAddon, InputGroupText, InputGroupButton, } from './shadcn';
58
58
  export { inputGroupVariants } from './shadcn';
59
59
  export type { InputGroupProps, InputGroupVariantProps, InputGroupInputProps, InputGroupTextareaProps, InputGroupAddonProps, InputGroupAddonAlign, InputGroupTextProps, InputGroupButtonProps, InputGroupState, } from './shadcn';
60
+ export { useBrand, BRANDS } from '../hooks/useBrand';
61
+ export type { Brand, BrandOption, UseBrandOptions } from '../hooks/useBrand';
62
+ export { useTheme } from '../hooks/useTheme';
63
+ export type { Theme } from '../hooks/useTheme';
60
64
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,9 @@ import { AppShellProps } from './app-shell.types';
9
9
  *
10
10
  * **Padrão controlled/uncontrolled** pra `menuCollapsed`:
11
11
  * - `menuCollapsed` prop → controlled (consumer gerencia state)
12
- * - `defaultMenuCollapsed` → uncontrolled initial value
13
- * - Sem nenhum dos dois → uncontrolled, default `false`
12
+ * - `defaultMenuCollapsed` → uncontrolled initial value (vence a regra responsiva)
13
+ * - Sem nenhum dos dois → uncontrolled com default **responsivo**: colapsado
14
+ * abaixo de 1536px, expandido acima (ver o `useState` do `internalCollapsed`)
14
15
  *
15
16
  * Todas as outras props são **passthrough 1:1** pros sub-componentes.
16
17
  * AppShell não impõe styling ao body além de gap/padding fixos — consumer
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/AppShell/app-shell.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,EAEvB,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,WAAW,EAEX,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EAEf,IAAI,EACJ,MAAM,EACN,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EAER,aAAa,EAAE,mBAAmB,EAClC,oBAA4B,EAC5B,oBAAoB,EAEpB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,SAAS,GACV,EAAE,aAAa,2CAqFf;yBA1He,QAAQ"}
1
+ {"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/AppShell/app-shell.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,EAEvB,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,WAAW,EAEX,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EAEf,IAAI,EACJ,MAAM,EACN,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EAER,aAAa,EAAE,mBAAmB,EAClC,oBAAoB,EACpB,oBAAoB,EAEpB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,SAAS,GACV,EAAE,aAAa,2CAgHf;yBArJe,QAAQ"}
@@ -4,8 +4,9 @@
4
4
  * Layout 2-column: sidebar à esquerda (fixa, full-height) + main area
5
5
  * à direita (Header sticky no topo + body abaixo).
6
6
  *
7
- * Body recebe `gap-gp-4xl` (24px) e `p-pad-6xl` (32px) por design — slot
8
- * "padronizado" pra todas as telas. Consumer customiza os filhos.
7
+ * Body recebe `gap-gp-4xl` (24px) fixo e padding responsivo em 3 patamares
8
+ * (18 / 24 / 32px ver `bodyInner`) por design — slot "padronizado" pra todas
9
+ * as telas. Consumer customiza só os filhos.
9
10
  */
10
11
  export declare const root: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, string[], unknown, unknown, undefined>>;
11
12
  /** Wrapper da área principal (Header + Body). Ocupa o resto do flex row. */
@@ -26,8 +27,24 @@ export declare const body: import('tailwind-variants').TVReturnType<{} | {} | {}
26
27
  * - `fluid` (default): ocupa 100% da largura disponível (atual)
27
28
  * - `compact`: max-width 1368px (`--container-main-content-max`), centralizado
28
29
  *
29
- * Mobile (<md): padding reduzido pra 18px telas pequenas precisam respiro
30
- * mínimo mas não zero (chat/navegação por overlays usam o bodyInner cheio).
30
+ * Padding por faixa de viewport3 patamares, não 2:
31
+ *
32
+ * < 768px (max-md) 18px — telas pequenas precisam respiro mínimo mas não
33
+ * zero (chat/navegação por overlays usam o
34
+ * bodyInner cheio).
35
+ * 768–1535 (max-2xl) 24px — NOTEBOOK. Até 2026-08-04 esta faixa herdava os
36
+ * 32px do desktop: um 1366×768 gastava a mesma
37
+ * moldura de um 4K, com muito menos área útil.
38
+ * O corte é em `2xl` (1536) e não em `xl` (1280)
39
+ * porque 1366 e 1536 são as duas resoluções de
40
+ * notebook dominantes — cortar em `xl` deixaria a
41
+ * 1536 de fora justamente onde aperta.
42
+ * ≥ 1536px 32px — desktop, valor original preservado.
43
+ *
44
+ * ⚠️ `max-md:` tem que vencer `max-2xl:` abaixo de 768px. Vence por ordem de
45
+ * fonte: o Tailwind emite as variantes `max-*` em breakpoint DECRESCENTE, então
46
+ * a regra `max-md` sai depois da `max-2xl` com a mesma especificidade. Medido no
47
+ * browser nos 3 patamares, não deduzido — é a classe de erro da L-066.
31
48
  */
32
49
  export declare const bodyInner: import('tailwind-variants').TVReturnType<{
33
50
  layout: {
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/AppShell/app-shell.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,eAAO,MAAM,IAAI,sMAKf,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,IAAI,sMAKf,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,sMAKf,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;;;;IAUlB;;;;;;;OAOG;;;;;;;;;;IAPH;;;;;;;OAOG;;;;;;;;;;IAPH;;;;;;;OAOG;;;;;qDAUL,CAAC"}
1
+ {"version":3,"file":"app-shell.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/AppShell/app-shell.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,eAAO,MAAM,IAAI,sMAKf,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,IAAI,sMAKf,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,sMAKf,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,SAAS;;;;;IAUlB;;;;;;;OAOG;;;;;;;;;;IAPH;;;;;;;OAOG;;;;;;;;;;IAPH;;;;;;;OAOG;;;;;qDAUL,CAAC"}
@@ -92,17 +92,27 @@ export type AppShellProps = {
92
92
  * interno (uncontrolled) — toggle do header dispara setInternal.
93
93
  */
94
94
  menuCollapsed?: boolean;
95
+ /**
96
+ * Estado inicial do collapse (uncontrolled). **Omitido, o default é responsivo:**
97
+ * colapsado abaixo de 1536px (mesma fronteira do padding do body), expandido
98
+ * acima — notebook perde ~200px de largura útil com o painel aberto.
99
+ *
100
+ * Passar valor explícito **vence** a regra responsiva, inclusive `false`.
101
+ * Aplicado só no mount: resize não re-colapsa, pra não brigar com quem abriu o
102
+ * menu na mão.
103
+ */
95
104
  defaultMenuCollapsed?: boolean;
96
105
  onMenuCollapseChange?: (collapsed: boolean) => void;
97
- /** Conteúdo do body — o que muda entre telas. Aplicado dentro de slot
98
- * com `gap-gp-4xl p-pad-6xl` (24px gap + 32px padding). */
106
+ /** Conteúdo do body — o que muda entre telas. Aplicado dentro de slot com
107
+ * gap 24px (`gap-gp-4xl`) e padding responsivo em 3 patamares:
108
+ * **18px** < 768px · **24px** 768–1535px (notebook) · **32px** ≥ 1536px. */
99
109
  children: ReactNode;
100
110
  /** ClassName extra no body slot (raro — use só pra ajustes pontuais). */
101
111
  bodyClassName?: string;
102
112
  /**
103
113
  * Em mobile (<md), zera o padding interno do body — útil pra telas que
104
114
  * controlam o próprio padding (chat com overlays fullscreen, mapas, etc).
105
- * Default: false (padding 18px mobile, 32px desktop).
115
+ * Default: false (18px mobile · 24px notebook · 32px desktop).
106
116
  */
107
117
  mobileEdgeToEdge?: boolean;
108
118
  /** ClassName extra no root da AppShell (afeta toda a tela). */
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/AppShell/app-shell.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/AppShell/app-shell.types.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,64 @@
1
1
  /**
2
- * Marcas disponíveis. "default" = tema-base (verde iGreen, sem data-theme).
3
- * "blue" = overlay de teste multi-tema (src/styles/theme/brand-blue.css).
2
+ * Marcas disponíveis. `default` = tema-base (verde iGreen, sem `data-theme`); as
3
+ * outras 4 são overlays de cor escopados em `[data-theme="<id>"]`.
4
4
  *
5
- * Novas marcas: gere o overlay (`npm run tokens:brand:<x>`), importe no
6
- * globals.css e acrescente o id aqui.
5
+ * Marca nova: gere o overlay (`npm run tokens:brand:<x>`), importe no `globals.css`
6
+ * e acrescente aqui **e** no `BRANDS` abaixo. As 6 superfícies completas estão em
7
+ * `.claude/rules/ds-standards.md` §"Sistema multi-marca".
7
8
  */
8
9
  export type Brand = "default" | "blue" | "green" | "pay" | "vibrant";
9
- /**
10
- * Catálogo de marcas — fonte única p/ o seletor (dropdown) e swatches.
11
- * Nova marca: gere o overlay, importe no globals.css, acrescente aqui e no type.
12
- */
13
- export declare const BRANDS: {
10
+ /** Uma entrada de catálogo: o que o seletor precisa pra renderizar a opção. */
11
+ export type BrandOption = {
14
12
  id: Brand;
15
13
  label: string;
14
+ /** Cor do swatch no seletor. Aceita qualquer valor CSS de cor. */
16
15
  swatch: string;
17
- }[];
16
+ };
18
17
  /**
19
- * Hook de MARCA eixo ortogonal ao dark/light (useTheme).
18
+ * Catálogo COMPLETOas 5 marcas que o DS publica. É a fonte única do seletor do
19
+ * showcase e o default do hook.
20
+ *
21
+ * ⚠️ Consumidor: só passe este catálogo inteiro se você importou os 5 overlays. Marca
22
+ * cujo CSS não está no bundle **não faz nada** quando selecionada — `data-theme` com id
23
+ * sem CSS é no-op silencioso. Se você instalou só um tema, passe um catálogo com ele:
24
+ * `useBrand({ brands: [{ id: "vibrant", label: "…", swatch: "…" }] })`.
25
+ */
26
+ export declare const BRANDS: BrandOption[];
27
+ export type UseBrandOptions = {
28
+ /**
29
+ * Catálogo que o hook valida e percorre. Default: `BRANDS` (as 5 do DS).
30
+ *
31
+ * Passe um subconjunto quando o projeto importou só alguns overlays — o hook usa esta
32
+ * lista pra validar o valor persistido e pra ciclar no `toggle()`, então id fora dela
33
+ * é ignorado e cai no fallback. A **primeira** entrada é o fallback.
34
+ */
35
+ brands?: BrandOption[];
36
+ };
37
+ /**
38
+ * Hook de MARCA — eixo ortogonal ao dark/light (`useTheme`).
39
+ *
40
+ * - Aplica `data-theme="<marca>"` no `<html>`. A primeira entrada do catálogo é
41
+ * tratada como padrão: se ela for `default`, o atributo é REMOVIDO (o tema-base
42
+ * não tem overlay, então `default` = ausência de `data-theme`).
43
+ * - Persiste em `localStorage` e sincroniza instâncias (CustomEvent + storage).
44
+ * - Marca e dark/light são independentes: o overlay declara os 2 blocos
45
+ * (`[data-theme]:not(.dark)` e `.dark[data-theme]`), então os eixos combinam.
46
+ *
47
+ * ```tsx
48
+ * const { brand, brands, setBrand } = useBrand(); // as 5 do DS
49
+ * const { brand, setBrand } = useBrand({ brands: meus }); // só o que instalei
50
+ * ```
20
51
  *
21
- * - Aplica `data-theme="<marca>"` no `<html>` ("default" remove o atributo).
22
- * - O CSS overlay ([data-theme="blue"]) sobrescreve a família `brand`;
23
- * dark/light continua via `.dark`, então os dois eixos combinam livremente.
24
- * - Persiste em localStorage + sincroniza instâncias (CustomEvent + storage).
52
+ * ⚠️ Selecionar marca cujo CSS não está no bundle é **no-op silencioso** — o atributo
53
+ * entra no `<html>` e nenhuma regra casa. Mantenha o catálogo alinhado com os
54
+ * `@import` do seu CSS de entrada.
25
55
  */
26
- export declare function useBrand(): {
56
+ export declare function useBrand(options?: UseBrandOptions): {
27
57
  readonly brand: Brand;
58
+ readonly brands: BrandOption[];
59
+ readonly current: BrandOption;
28
60
  readonly setBrand: (next: Brand) => void;
29
61
  readonly toggle: () => void;
62
+ readonly isBrand: (value: unknown) => value is Brand;
30
63
  };
31
64
  //# sourceMappingURL=useBrand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBrand.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBrand.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAMhE,CAAC;AAsBF;;;;;;;GAOG;AACH,wBAAgB,QAAQ;;8BAWc,KAAK;;EAoC1C"}
1
+ {"version":3,"file":"useBrand.d.ts","sourceRoot":"","sources":["../../../src/hooks/useBrand.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAErE,+EAA+E;AAC/E,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,WAAW,EAM/B,CAAC;AAMF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe;;;;8BAkCZ,KAAK;;8BAvB/B,OAAO,KAAG,KAAK,IAAI,KAAK;EA4EnC"}
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * brand-blue.css — Auto-gerado. Não editar manualmente.
3
3
  * Overlay de marca escopado (só o DIFF de cor vs. default). Coexiste com o tema-base.
4
- * Source: tokens/brands/blue/semantic/*.ts
5
- * Regenerar: npx tsx tokens/transforms/to-brand-overlay.ts blue > src/styles/theme/brand-blue.css
4
+ * Source (repo do DS): tokens/brands/blue/semantic/*.ts
5
+ * Regenerar (só no repo do DS): npm run tokens:brand:blue
6
6
  *
7
- * Ative aplicando data-theme="blue" no <html> (ver src/hooks/useBrand.ts).
7
+ * ATIVAR: importe este arquivo DEPOIS do tailwind-theme.css e ponha
8
+ * data-theme="blue" no <html>. Sem o atributo nada casa — e não dá erro.
9
+ * Seletor de marca em runtime: hook `useBrand` do pacote (≥ 0.33.0), ou
10
+ * setAttribute/removeAttribute na mão ("default" = remover o atributo).
8
11
  *
9
12
  * Os 2 blocos são MUTUAMENTE EXCLUSIVOS por construção (`:not(.dark)`). No dark,
10
13
  * token ausente do bloco dark cai no `.dark` do tema-base de propósito: o diff só
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * brand-green.css — Auto-gerado. Não editar manualmente.
3
3
  * Overlay de marca escopado (só o DIFF de cor vs. default). Coexiste com o tema-base.
4
- * Source: tokens/brands/green/semantic/*.ts
5
- * Regenerar: npx tsx tokens/transforms/to-brand-overlay.ts green > src/styles/theme/brand-green.css
4
+ * Source (repo do DS): tokens/brands/green/semantic/*.ts
5
+ * Regenerar (só no repo do DS): npm run tokens:brand:green
6
6
  *
7
- * Ative aplicando data-theme="green" no <html> (ver src/hooks/useBrand.ts).
7
+ * ATIVAR: importe este arquivo DEPOIS do tailwind-theme.css e ponha
8
+ * data-theme="green" no <html>. Sem o atributo nada casa — e não dá erro.
9
+ * Seletor de marca em runtime: hook `useBrand` do pacote (≥ 0.33.0), ou
10
+ * setAttribute/removeAttribute na mão ("default" = remover o atributo).
8
11
  *
9
12
  * Os 2 blocos são MUTUAMENTE EXCLUSIVOS por construção (`:not(.dark)`). No dark,
10
13
  * token ausente do bloco dark cai no `.dark` do tema-base de propósito: o diff só
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * brand-pay.css — Auto-gerado. Não editar manualmente.
3
3
  * Overlay de marca escopado (só o DIFF de cor vs. default). Coexiste com o tema-base.
4
- * Source: tokens/brands/pay/semantic/*.ts
5
- * Regenerar: npx tsx tokens/transforms/to-brand-overlay.ts pay > src/styles/theme/brand-pay.css
4
+ * Source (repo do DS): tokens/brands/pay/semantic/*.ts
5
+ * Regenerar (só no repo do DS): npm run tokens:brand:pay
6
6
  *
7
- * Ative aplicando data-theme="pay" no <html> (ver src/hooks/useBrand.ts).
7
+ * ATIVAR: importe este arquivo DEPOIS do tailwind-theme.css e ponha
8
+ * data-theme="pay" no <html>. Sem o atributo nada casa — e não dá erro.
9
+ * Seletor de marca em runtime: hook `useBrand` do pacote (≥ 0.33.0), ou
10
+ * setAttribute/removeAttribute na mão ("default" = remover o atributo).
8
11
  *
9
12
  * Os 2 blocos são MUTUAMENTE EXCLUSIVOS por construção (`:not(.dark)`). No dark,
10
13
  * token ausente do bloco dark cai no `.dark` do tema-base de propósito: o diff só
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * brand-vibrant.css — Auto-gerado. Não editar manualmente.
3
3
  * Overlay de marca escopado (só o DIFF de cor vs. default). Coexiste com o tema-base.
4
- * Source: tokens/brands/vibrant/semantic/*.ts
5
- * Regenerar: npx tsx tokens/transforms/to-brand-overlay.ts vibrant > src/styles/theme/brand-vibrant.css
4
+ * Source (repo do DS): tokens/brands/vibrant/semantic/*.ts
5
+ * Regenerar (só no repo do DS): npm run tokens:brand:vibrant
6
6
  *
7
- * Ative aplicando data-theme="vibrant" no <html> (ver src/hooks/useBrand.ts).
7
+ * ATIVAR: importe este arquivo DEPOIS do tailwind-theme.css e ponha
8
+ * data-theme="vibrant" no <html>. Sem o atributo nada casa — e não dá erro.
9
+ * Seletor de marca em runtime: hook `useBrand` do pacote (≥ 0.33.0), ou
10
+ * setAttribute/removeAttribute na mão ("default" = remover o atributo).
8
11
  *
9
12
  * Os 2 blocos são MUTUAMENTE EXCLUSIVOS por construção (`:not(.dark)`). No dark,
10
13
  * token ausente do bloco dark cai no `.dark` do tema-base de propósito: o diff só
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * tailwind-theme.css — Auto-gerado. Não editar manualmente.
3
- * Source of truth: tokens/brands/default/semantic/*.ts
4
- * Regenerar: npx tsx tokens/transforms/to-tailwind-v4.ts > dist/tailwind-theme.css
3
+ * Source of truth (repo do DS): tokens/brands/default/semantic/*.ts
4
+ * Regenerar (só no repo do DS): npm run tokens:tw4
5
+ *
6
+ * No seu projeto: este arquivo é gerenciado pelo DS — edição some no próximo update.
7
+ * Customize na composição da tela (props/variantes + classes DS), não nos tokens.
5
8
  */
6
9
 
7
10
  @theme {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snksergio/design-system",
3
- "version": "0.32.1",
3
+ "version": "0.34.0",
4
4
  "//distribuicao": "Canal PRIMARIO = registry shadcn (copy-in) + CLI @snksergio/create-design-system; sobe sozinho no merge (Vercel). Canal SECUNDARIO = este pacote npm (@snksergio/design-system), funcional (build:lib gera ESM+CJS+types+theme.css) e publicado por passo MANUAL do mantenedor, entao costuma ficar atras do registry. NAO e depreciado — o texto anterior dizia isso e estava errado. Publish so pelo Passo 7 do .claude/skills/ds-dev/release.md (valida com `npm run lib:verify`, pede o token, publica, revoga). Ver DISTRIBUICAO.md.",
5
5
  "description": "iGreen Design System — internal library for SaaS CRM, admin panels and dashboards. React 19 + Tailwind v4 + Shadcn + Radix.",
6
6
  "license": "UNLICENSED",
@@ -91,9 +91,11 @@
91
91
  "tokens:dtcg": "tsx tokens/transforms/to-dtcg.ts > dist/tokens.tokens.json",
92
92
  "tokens:all": "npm run tokens:tw4 && npm run tokens:css && npm run tokens:dtcg",
93
93
  "tokens:check": "tsc --noEmit",
94
+ "brand:check": "node scripts/brand-check.mjs",
95
+ "brand:contrast": "node scripts/brand-contrast.mjs",
94
96
  "registry:stamp": "node scripts/registry-stamp.mjs",
95
97
  "registry:build": "npm run examples:drift && npm run tokens:tw4 && npm run registry:stamp && npx shadcn build",
96
- "release:check": "node scripts/registry-check.mjs && node scripts/distribution-debt.mjs --ci && node scripts/examples-drift-check.mjs && npm run registry-app:audit",
98
+ "release:check": "node scripts/registry-check.mjs --ci && node scripts/brand-check.mjs && node scripts/distribution-debt.mjs --ci && node scripts/examples-drift-check.mjs && npm run registry-app:audit",
97
99
  "registry-app:audit": "npm audit --audit-level=high --prefix registry-app",
98
100
  "distribution:debt": "node scripts/distribution-debt.mjs",
99
101
  "lint:styles": "node scripts/lint-styles.mjs --ratchet origin/main",