@snksergio/design-system 0.40.0 → 0.41.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 (70) hide show
  1. package/dist-lib/chunks/{avatar-DQYiVRlE.mjs → avatar-DFWEwBKu.mjs} +101 -51
  2. package/dist-lib/chunks/avatar-DFWEwBKu.mjs.map +1 -0
  3. package/dist-lib/chunks/{avatar-BiaG9OJS.cjs → avatar-eM5txRFZ.cjs} +53 -1
  4. package/dist-lib/chunks/avatar-eM5txRFZ.cjs.map +1 -0
  5. package/dist-lib/chunks/{input-CaC0B-_v.mjs → input-CfmzMYtd.mjs} +2 -2
  6. package/dist-lib/chunks/{input-CaC0B-_v.mjs.map → input-CfmzMYtd.mjs.map} +1 -1
  7. package/dist-lib/chunks/{input-DMH5rSP1.cjs → input-az2SuVXQ.cjs} +2 -2
  8. package/dist-lib/chunks/{input-DMH5rSP1.cjs.map → input-az2SuVXQ.cjs.map} +1 -1
  9. package/dist-lib/chunks/{kpi-delta-NnEu4oIs.cjs → kpi-delta-DAfakvFp.cjs} +3 -3
  10. package/dist-lib/chunks/{kpi-delta-NnEu4oIs.cjs.map → kpi-delta-DAfakvFp.cjs.map} +1 -1
  11. package/dist-lib/chunks/{kpi-delta-CjR0OsdC.mjs → kpi-delta-DaDwKOaP.mjs} +3 -3
  12. package/dist-lib/chunks/{kpi-delta-CjR0OsdC.mjs.map → kpi-delta-DaDwKOaP.mjs.map} +1 -1
  13. package/dist-lib/chunks/{page-header-DEGbgT4w.mjs → page-header--cPS_Z-a.mjs} +2 -2
  14. package/dist-lib/chunks/{page-header-DEGbgT4w.mjs.map → page-header--cPS_Z-a.mjs.map} +1 -1
  15. package/dist-lib/chunks/{page-header-Cp_9Wog4.cjs → page-header-DvAJoEfb.cjs} +2 -2
  16. package/dist-lib/chunks/{page-header-Cp_9Wog4.cjs.map → page-header-DvAJoEfb.cjs.map} +1 -1
  17. package/dist-lib/chunks/{panel-B1xKDbjB.mjs → panel-Bje0kUTh.mjs} +5 -5
  18. package/dist-lib/chunks/{panel-B1xKDbjB.mjs.map → panel-Bje0kUTh.mjs.map} +1 -1
  19. package/dist-lib/chunks/{panel-ma7e3s4C.cjs → panel-DtU3KlKY.cjs} +5 -5
  20. package/dist-lib/chunks/{panel-ma7e3s4C.cjs.map → panel-DtU3KlKY.cjs.map} +1 -1
  21. package/dist-lib/chunks/{textarea-DivoQmJw.mjs → textarea-BPRIHZVd.mjs} +2 -2
  22. package/dist-lib/chunks/{textarea-DivoQmJw.mjs.map → textarea-BPRIHZVd.mjs.map} +1 -1
  23. package/dist-lib/chunks/{textarea-c80RFmMP.cjs → textarea-K20CL_gF.cjs} +2 -2
  24. package/dist-lib/chunks/{textarea-c80RFmMP.cjs.map → textarea-K20CL_gF.cjs.map} +1 -1
  25. package/dist-lib/chunks/{tooltip-pvZ_X-Ub.cjs → toggle-group-BEPs3e0Y.cjs} +2 -54
  26. package/dist-lib/chunks/toggle-group-BEPs3e0Y.cjs.map +1 -0
  27. package/dist-lib/chunks/{tooltip-mMF4YHZg.mjs → toggle-group-XMO6ReVo.mjs} +77 -127
  28. package/dist-lib/chunks/toggle-group-XMO6ReVo.mjs.map +1 -0
  29. package/dist-lib/chunks/{useTheme-BD0nloAv.cjs → useTheme-3iZAognE.cjs} +876 -73
  30. package/dist-lib/chunks/useTheme-3iZAognE.cjs.map +1 -0
  31. package/dist-lib/chunks/{useTheme-D1QVzZDW.mjs → useTheme-B3ZakPqk.mjs} +886 -83
  32. package/dist-lib/chunks/useTheme-B3ZakPqk.mjs.map +1 -0
  33. package/dist-lib/index.cjs +40 -732
  34. package/dist-lib/index.cjs.map +1 -1
  35. package/dist-lib/index.mjs +94 -786
  36. package/dist-lib/index.mjs.map +1 -1
  37. package/dist-lib/preview/chat.cjs +3 -3
  38. package/dist-lib/preview/chat.mjs +3 -3
  39. package/dist-lib/preview/clientes.cjs +6 -6
  40. package/dist-lib/preview/clientes.mjs +6 -6
  41. package/dist-lib/preview/dashboard.cjs +4 -4
  42. package/dist-lib/preview/dashboard.mjs +4 -4
  43. package/dist-lib/shadcn.cjs +112 -112
  44. package/dist-lib/shadcn.mjs +136 -136
  45. package/dist-lib/src/components/ui/AppShell/app-shell.d.ts +1 -1
  46. package/dist-lib/src/components/ui/AppShell/app-shell.d.ts.map +1 -1
  47. package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts +45 -1
  48. package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts.map +1 -1
  49. package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts +106 -3
  50. package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts.map +1 -1
  51. package/dist-lib/src/components/ui/MenuSidebar/index.d.ts +2 -2
  52. package/dist-lib/src/components/ui/MenuSidebar/index.d.ts.map +1 -1
  53. package/dist-lib/src/components/ui/SingleMenuSidebar/category.d.ts +1 -1
  54. package/dist-lib/src/components/ui/SingleMenuSidebar/category.d.ts.map +1 -1
  55. package/dist-lib/src/components/ui/SingleMenuSidebar/menu-item.d.ts +25 -1
  56. package/dist-lib/src/components/ui/SingleMenuSidebar/menu-item.d.ts.map +1 -1
  57. package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.d.ts +1 -1
  58. package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.d.ts.map +1 -1
  59. package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.d.ts +57 -2
  60. package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.d.ts.map +1 -1
  61. package/dist-lib/src/utils/nav-link.d.ts.map +1 -0
  62. package/package.json +207 -207
  63. package/dist-lib/chunks/avatar-BiaG9OJS.cjs.map +0 -1
  64. package/dist-lib/chunks/avatar-DQYiVRlE.mjs.map +0 -1
  65. package/dist-lib/chunks/tooltip-mMF4YHZg.mjs.map +0 -1
  66. package/dist-lib/chunks/tooltip-pvZ_X-Ub.cjs.map +0 -1
  67. package/dist-lib/chunks/useTheme-BD0nloAv.cjs.map +0 -1
  68. package/dist-lib/chunks/useTheme-D1QVzZDW.mjs.map +0 -1
  69. package/dist-lib/src/components/ui/MenuSidebar/nav-link.d.ts.map +0 -1
  70. /package/dist-lib/src/{components/ui/MenuSidebar → utils}/nav-link.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { ReactNode, HTMLAttributes, Ref } from 'react';
1
+ import { ReactNode, HTMLAttributes, Ref, MouseEvent } from 'react';
2
2
  /** Sub-item dentro de uma categoria (ex.: "Contratos Instalação"). */
3
3
  export interface SingleMenuSubItem {
4
4
  /** Identificador único */
@@ -103,6 +103,31 @@ export interface SingleMenuHeaderProps {
103
103
  title: string;
104
104
  showToggleIndicator?: boolean;
105
105
  }
106
+ /**
107
+ * Props que o sidebar entrega pra quem vai renderizar o link. Mesmo contrato do
108
+ * `SidebarLinkRenderProps` do `MenuSidebar` — a **lógica** de quando cancelar a
109
+ * navegação é compartilhada de fato (`@/utils/nav-link`); só este alias estrutural é
110
+ * declarado nos dois, pra o `single-menu-sidebar` não passar a depender do item de
111
+ * registry do `menu-sidebar` inteiro.
112
+ */
113
+ export type SingleMenuLinkRenderProps = {
114
+ href: string;
115
+ target?: string;
116
+ className?: string;
117
+ onClick?: (e: MouseEvent<HTMLAnchorElement>) => void;
118
+ "aria-current"?: "page";
119
+ children?: ReactNode;
120
+ };
121
+ /**
122
+ * Substitui o `<a>` nativo pelo link do router do consumidor.
123
+ *
124
+ * **Render-prop, não `linkComponent`** — um componente escrito inline remonta a
125
+ * subárvore a cada render do pai (L-068).
126
+ *
127
+ * @example
128
+ * renderLink={({ href, ...rest }) => <Link to={href} {...rest} />}
129
+ */
130
+ export type SingleMenuLinkRenderer = (props: SingleMenuLinkRenderProps) => ReactNode;
106
131
  export interface SingleMenuCategoryProps extends SingleMenuCategory {
107
132
  /** Sub-item atualmente selecionado */
108
133
  activeItemId?: string;
@@ -110,11 +135,35 @@ export interface SingleMenuCategoryProps extends SingleMenuCategory {
110
135
  onItemClick?: (id: string) => void;
111
136
  /** Callback ao clicar no cabeçalho da categoria */
112
137
  onCategoryClick?: () => void;
138
+ /** Link do router do consumidor — repassado aos sub-itens e à categoria-folha. */
139
+ renderLink?: SingleMenuLinkRenderer;
113
140
  }
114
141
  export interface SingleMenuItemProps {
115
142
  label: string;
116
143
  selected?: boolean;
117
- onClick?: () => void;
144
+ /**
145
+ * Destino. Com `href` o item vira `<a>` (ctrl+clique, nova aba, "copiar link",
146
+ * leitor de tela anunciando "link"); sem, continua `<button>`.
147
+ *
148
+ * Até 2026-08-18 esta prop existia no tipo `SingleMenuSubItem` e no `USAGE.md` — e
149
+ * **nada a lia**: o item era sempre `<button>`. Declarar o destino não fazia nada.
150
+ */
151
+ href?: string;
152
+ /** `_blank` etc. Desliga o cancelamento da navegação nativa. */
153
+ target?: string;
154
+ onClick?: (e: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) => void;
155
+ renderLink?: SingleMenuLinkRenderer;
156
+ /**
157
+ * O consumidor trata a navegação? Decide se o clique cancela o `<a>` nativo.
158
+ *
159
+ * O `SingleMenuCategory` SEMPRE passa um `onClick` (é como o sidebar mantém o item
160
+ * marcado), então inferir por "tem onClick" cancelaria a navegação até de quem não
161
+ * passou handler nenhum — trocando "recarrega" por "não navega". É o mesmo motivo
162
+ * pelo qual o `MenuSidebar` tem esta prop.
163
+ *
164
+ * `undefined` → infere de `onClick`. `boolean` → o container decide.
165
+ */
166
+ interceptNavigation?: boolean;
118
167
  }
119
168
  export interface SingleMenuFooterProps extends SingleMenuUser {
120
169
  }
@@ -167,6 +216,12 @@ export interface SingleMenuSidebarProps extends Omit<HTMLAttributes<HTMLElement>
167
216
  activeItemId?: string;
168
217
  /** Callback ao clicar em qualquer sub-item */
169
218
  onItemClick?: (id: string) => void;
219
+ /**
220
+ * Substitui o `<a>` nativo pelo link do router do consumidor, em TODOS os itens e
221
+ * nas categorias-folha com `href`. Sem isso o sidebar emite `<a href>` puro e
222
+ * cancela a navegação nativa quando há handler — ver `@/utils/nav-link`.
223
+ */
224
+ renderLink?: SingleMenuLinkRenderer;
170
225
  /** Informações do usuário no rodapé (com dropdown opcional) */
171
226
  user: SingleMenuUser;
172
227
  /** Estado expandido inicial */
@@ -1 +1 @@
1
- {"version":3,"file":"single-menu-sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"single-menu-sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-link.d.ts","sourceRoot":"","sources":["../../../src/utils/nav-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAKxC,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKhE;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE5D;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,CAAC,EAAE;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAQV;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,UAAU,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,EAAE,IAAI,CACT,UAAU,CAAC,iBAAiB,CAAC,EAC7B,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,kBAAkB,CAC9E,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,UAAU,EACV,MAAM,EACN,KAAK,GACN,EAAE,sBAAsB,GAAG,OAAO,CASlC"}
package/package.json CHANGED
@@ -1,207 +1,207 @@
1
- {
2
- "name": "@snksergio/design-system",
3
- "version": "0.40.0",
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), publicado por passo MANUAL do mantenedor, entao costuma ficar atras do registry. SECUNDARIO descreve a ORDEM DE PUBLICACAO, nao o nivel de suporte: NAO e depreciado, e desde a 0.37.0 entrega 41 dos 42 componentes ui/ no barrel raiz + os 41 primitivos shadcn no subpath ./shadcn (so TabelaTeste, demo interno, fica de fora). 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
- "description": "iGreen Design System — internal library for SaaS CRM, admin panels and dashboards. React 19 + Tailwind v4 + Shadcn + Radix.",
6
- "license": "UNLICENSED",
7
- "type": "module",
8
- "main": "./dist-lib/index.cjs",
9
- "module": "./dist-lib/index.mjs",
10
- "types": "./dist-lib/index.d.ts",
11
- "files": [
12
- "dist-lib/index.*",
13
- "dist-lib/shadcn.*",
14
- "dist-lib/tokens.*",
15
- "dist-lib/theme.css",
16
- "dist-lib/theme/**",
17
- "dist-lib/fonts/**",
18
- "dist-lib/preview/**",
19
- "dist-lib/chunks/**",
20
- "dist-lib/src/**",
21
- "dist-lib/tokens/**",
22
- "README.md"
23
- ],
24
- "engines": {
25
- "node": ">=20.0.0"
26
- },
27
- "repository": {
28
- "type": "git",
29
- "url": "git+https://github.com/igreenlab/igreen-desingsystem-admin.git"
30
- },
31
- "bugs": {
32
- "url": "https://github.com/igreenlab/igreen-desingsystem-admin/issues"
33
- },
34
- "homepage": "https://github.com/igreenlab/igreen-desingsystem-admin#readme",
35
- "//exports-theme-marcas": "Os overlays de marca (./theme/brand-*.css) são enumerados um por um DE PROPÓSITO, não por wildcard: o pack-contract extrai cada path prometido no exports e o lib-verify confere no disco — um './theme/*' prometeria nada e não seria verificado, que é justo o modo de falha da L-017. Marca nova exige entrada aqui, e o build:lib FALHA se achar brand-*.css sem export correspondente (gate no vite.lib.config.ts). Nunca colocar chave de comentário DENTRO de exports: lá toda chave é subpath e o Node/pack-contract tentam resolvê-la.",
36
- "exports": {
37
- ".": {
38
- "types": "./dist-lib/index.d.ts",
39
- "import": "./dist-lib/index.mjs",
40
- "require": "./dist-lib/index.cjs"
41
- },
42
- "./shadcn": {
43
- "types": "./dist-lib/shadcn.d.ts",
44
- "import": "./dist-lib/shadcn.mjs",
45
- "require": "./dist-lib/shadcn.cjs"
46
- },
47
- "./theme.css": "./dist-lib/theme.css",
48
- "./theme/brand-blue.css": "./dist-lib/theme/brand-blue.css",
49
- "./theme/brand-green.css": "./dist-lib/theme/brand-green.css",
50
- "./theme/brand-pay.css": "./dist-lib/theme/brand-pay.css",
51
- "./theme/brand-vibrant.css": "./dist-lib/theme/brand-vibrant.css",
52
- "./tokens": {
53
- "types": "./dist-lib/tokens.d.ts",
54
- "import": "./dist-lib/tokens.mjs",
55
- "require": "./dist-lib/tokens.cjs"
56
- },
57
- "./preview/chat": {
58
- "types": "./dist-lib/preview/chat.d.ts",
59
- "import": "./dist-lib/preview/chat.mjs",
60
- "require": "./dist-lib/preview/chat.cjs"
61
- },
62
- "./preview/clientes": {
63
- "types": "./dist-lib/preview/clientes.d.ts",
64
- "import": "./dist-lib/preview/clientes.mjs",
65
- "require": "./dist-lib/preview/clientes.cjs"
66
- },
67
- "./preview/dashboard": {
68
- "types": "./dist-lib/preview/dashboard.d.ts",
69
- "import": "./dist-lib/preview/dashboard.mjs",
70
- "require": "./dist-lib/preview/dashboard.cjs"
71
- },
72
- "./preview/mocks": {
73
- "types": "./dist-lib/preview/mocks.d.ts",
74
- "import": "./dist-lib/preview/mocks.mjs",
75
- "require": "./dist-lib/preview/mocks.cjs"
76
- }
77
- },
78
- "publishConfig": {
79
- "access": "public"
80
- },
81
- "scripts": {
82
- "dev": "npm run tokens:tw4 && vite",
83
- "build": "npm run tokens:tw4 && tsc -b && vite build",
84
- "build:showcase": "npm run build && npm --prefix projeto/virtual-proposta install --no-audit --no-fund && npm --prefix projeto/virtual-proposta run build && cp -r projeto/virtual-proposta/dist dist/demo",
85
- "build:lib": "npm run tokens:tw4 && vite build --config vite.lib.config.ts",
86
- "preview": "vite preview",
87
- "prepublishOnly": "npm run build:lib",
88
- "lib:verify": "node scripts/lib-verify.mjs --build",
89
- "lib:publish:patch": "echo '⛔ Use o /ds-release: ele bumpa, valida com lib:verify e PARA pedindo o token. Publicar por aqui pula o gate (Regra 7 / L-020).' && exit 1",
90
- "lib:publish:minor": "echo '⛔ Use o /ds-release: ele bumpa, valida com lib:verify e PARA pedindo o token. Publicar por aqui pula o gate (Regra 7 / L-020).' && exit 1",
91
- "lib:publish:major": "echo '⛔ Use o /ds-release: ele bumpa, valida com lib:verify e PARA pedindo o token. Publicar por aqui pula o gate (Regra 7 / L-020).' && exit 1",
92
- "tokens:tw4": "tsx tokens/transforms/to-tailwind-v4.ts > src/styles/theme/tailwind-theme.css",
93
- "tokens:brand:blue": "tsx tokens/transforms/to-brand-overlay.ts blue > src/styles/theme/brand-blue.css",
94
- "tokens:brand:green": "tsx tokens/transforms/to-brand-overlay.ts green > src/styles/theme/brand-green.css",
95
- "tokens:brand:pay": "tsx tokens/transforms/to-brand-overlay.ts pay > src/styles/theme/brand-pay.css",
96
- "tokens:brand:vibrant": "tsx tokens/transforms/to-brand-overlay.ts vibrant > src/styles/theme/brand-vibrant.css",
97
- "tokens:css": "tsx tokens/transforms/to-css-vars.ts > dist/tokens.css",
98
- "tokens:dtcg": "tsx tokens/transforms/to-dtcg.ts > dist/tokens.tokens.json",
99
- "tokens:all": "npm run tokens:tw4 && npm run tokens:css && npm run tokens:dtcg",
100
- "tokens:check": "tsc --noEmit",
101
- "brand:check": "node scripts/brand-check.mjs",
102
- "brand:contrast": "node scripts/brand-contrast.mjs",
103
- "audit:token-docs": "node scripts/audit-token-docs.mjs",
104
- "registry:stamp": "node scripts/registry-stamp.mjs",
105
- "registry:build": "npm run examples:drift && npm run tokens:tw4 && npm run registry:stamp && npx shadcn@4.17.0 build",
106
- "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 --ci && npm run registry-app:audit",
107
- "registry-app:audit": "npm audit --audit-level=high --prefix registry-app",
108
- "distribution:debt": "node scripts/distribution-debt.mjs",
109
- "lint:styles": "node scripts/lint-styles.mjs --ratchet",
110
- "cli:rebake": "node scripts/cli-rebake-foundationals.mjs",
111
- "doc:index": "node scripts/doc-index.mjs --write",
112
- "typecheck": "tsc --noEmit",
113
- "test": "npm run typecheck && vitest run",
114
- "test:watch": "vitest",
115
- "test:ui": "vitest --ui",
116
- "sync:agents": "node .claude/scripts/sync-agents-to-cursor.cjs",
117
- "examples:drift": "node scripts/examples-drift-check.mjs",
118
- "ds:link": "node scripts/ds-link.mjs"
119
- },
120
- "//test-inclui-typecheck": "O `test` roda `typecheck` ANTES do vitest de proposito. Medido em 2026-08-14 por dogfood: um componente que NAO compilava passou 413/413 no `npm test`, porque o `tsc --noEmit` era step separado so no CI. Quem valida local com o comando natural (`npm test`) recebia falso verde e so descobria na PR. Custo: ~10s no caminho de sucesso. No CI o Typecheck ja roda em step proprio ANTES dos testes (falha rapida com sinal claro na UI de Checks), entao o job so paga esses 10s quando tudo passa. `tokens:check` e o MESMO comando sob um nome que sugere escopo de tokens — mantido porque ha registro historico apontando pra ele; o nome canonico e `typecheck`.",
121
- "//deps-de-tipo": "Os 3 `@types/*` abaixo estao em dependencies (nao devDependencies) DE PROPOSITO: os `.d.ts` publicados os referenciam no tipo PUBLICO. `dist-lib/src/components/ui/ChoroplethMap/choropleth-map.types.d.ts` faz `import { Feature } from 'geojson'` e `import { Topology } from 'topojson-specification'`, e `GeoProjection` vem de `@types/d3-geo` (o `d3-geo` nao embute tipos). Em devDependencies o consumidor npm instala o pacote, recebe os `.d.ts`, e o `tsc` DELE quebra com 'Cannot find module geojson' — o DS compila porque tem os @types localmente. Criterio: se um pacote aparece num `from '...'` de `.d.ts` sob `dist-lib/`, ele e dependency. Gate: `scripts/lib/deps-declared.mjs`. `@types/topojson-client` fica em devDeps porque o topojson-client so e importado como VALOR, e o tipo nao vaza pra superficie publica.",
122
- "dependencies": {
123
- "@dnd-kit/core": "^6.3.1",
124
- "@dnd-kit/modifiers": "^9.0.0",
125
- "@dnd-kit/sortable": "^10.0.0",
126
- "@dnd-kit/utilities": "^3.2.2",
127
- "@hello-pangea/dnd": "^18.0.1",
128
- "@radix-ui/react-accordion": "^1.2.12",
129
- "@radix-ui/react-alert-dialog": "^1.1.15",
130
- "@radix-ui/react-aspect-ratio": "^1.1.10",
131
- "@radix-ui/react-avatar": "^1.1.11",
132
- "@radix-ui/react-checkbox": "^1.3.3",
133
- "@radix-ui/react-collapsible": "^1.1.14",
134
- "@radix-ui/react-context-menu": "^2.3.1",
135
- "@radix-ui/react-dialog": "^1.1.17",
136
- "@radix-ui/react-dropdown-menu": "^2.1.16",
137
- "@radix-ui/react-hover-card": "^1.1.17",
138
- "@radix-ui/react-label": "^2.1.8",
139
- "@radix-ui/react-menubar": "^1.1.18",
140
- "@radix-ui/react-navigation-menu": "^1.2.16",
141
- "@radix-ui/react-popover": "^1.1.15",
142
- "@radix-ui/react-progress": "^1.1.8",
143
- "@radix-ui/react-radio-group": "^1.3.8",
144
- "@radix-ui/react-scroll-area": "^1.2.12",
145
- "@radix-ui/react-select": "^2.2.6",
146
- "@radix-ui/react-separator": "^1.1.8",
147
- "@radix-ui/react-slider": "^1.3.6",
148
- "@radix-ui/react-slot": "^1.3.0",
149
- "@radix-ui/react-switch": "^1.2.6",
150
- "@radix-ui/react-tabs": "^1.1.13",
151
- "@radix-ui/react-toggle": "^1.1.12",
152
- "@radix-ui/react-toggle-group": "^1.1.13",
153
- "@radix-ui/react-tooltip": "^1.2.10",
154
- "@tanstack/react-virtual": "^3.13.24",
155
- "@types/d3-geo": "^3.1.0",
156
- "@types/geojson": "^7946.0.14",
157
- "@types/topojson-specification": "^1.0.5",
158
- "class-variance-authority": "^0.7.1",
159
- "clsx": "^2.1.1",
160
- "cmdk": "^1.1.1",
161
- "d3-geo": "^3.1.1",
162
- "date-fns": "^4.1.0",
163
- "embla-carousel-react": "^8.6.0",
164
- "geist": "^1.7.0",
165
- "input-otp": "^1.4.2",
166
- "lucide-react": "^1.7.0",
167
- "react-day-picker": "^9.14.0",
168
- "recharts": "^3.8.1",
169
- "sonner": "^2.0.7",
170
- "tailwind-merge": "^3.0.0",
171
- "tailwind-variants": "^3.0.0",
172
- "topojson-client": "^3.1.0",
173
- "tw-animate-css": "^1.4.0",
174
- "vaul": "^1.1.2"
175
- },
176
- "devDependencies": {
177
- "@tailwindcss/vite": "^4.0.0",
178
- "@testing-library/dom": "^10.4.1",
179
- "@testing-library/jest-dom": "^6.9.1",
180
- "@testing-library/react": "^16.3.2",
181
- "@testing-library/user-event": "^14.6.3",
182
- "@types/react": "^19.0.0",
183
- "@types/react-dom": "^19.0.0",
184
- "@types/topojson-client": "^3.1.5",
185
- "@vitejs/plugin-react": "^4.3.0",
186
- "@vitest/ui": "^4.1.6",
187
- "jsdom": "^29.1.1",
188
- "react-router-dom": "^7.18.2",
189
- "tailwindcss": "^4.0.0",
190
- "tsx": "^4.19.0",
191
- "typescript": "^5.6.0",
192
- "vite": "^6.0.0",
193
- "vite-plugin-dts": "^5.0.0",
194
- "vitest": "^4.1.6"
195
- },
196
- "peerDependencies": {
197
- "react": "^19.0.0",
198
- "react-dom": "^19.0.0",
199
- "tailwindcss": "^4.0.0"
200
- },
201
- "peerDependenciesMeta": {
202
- "tailwindcss": {
203
- "optional": false
204
- }
205
- },
206
- "//exports-shadcn": "O subpath ./shadcn e um ENTRY SEPARADO (nao um re-export do barrel raiz) de proposito: 41 arquivos / 233 nomes exportados contra 3-4 que o consumidor tipico usa. No mesmo entry, qualquer import do pacote arrastaria Radix + cmdk + vaul + embla + input-otp + sonner antes do tree-shaking do consumidor. Deps desses primitivos ficam em rollupOptions.external (vite.lib.config.ts) — sem isso o Rollup as embute e sonner/@hello-pangea-dnd rodam com contexto React duplicado."
207
- }
1
+ {
2
+ "name": "@snksergio/design-system",
3
+ "version": "0.41.0",
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), publicado por passo MANUAL do mantenedor, entao costuma ficar atras do registry. SECUNDARIO descreve a ORDEM DE PUBLICACAO, nao o nivel de suporte: NAO e depreciado, e desde a 0.37.0 entrega 41 dos 42 componentes ui/ no barrel raiz + os 41 primitivos shadcn no subpath ./shadcn (so TabelaTeste, demo interno, fica de fora). 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
+ "description": "iGreen Design System — internal library for SaaS CRM, admin panels and dashboards. React 19 + Tailwind v4 + Shadcn + Radix.",
6
+ "license": "UNLICENSED",
7
+ "type": "module",
8
+ "main": "./dist-lib/index.cjs",
9
+ "module": "./dist-lib/index.mjs",
10
+ "types": "./dist-lib/index.d.ts",
11
+ "files": [
12
+ "dist-lib/index.*",
13
+ "dist-lib/shadcn.*",
14
+ "dist-lib/tokens.*",
15
+ "dist-lib/theme.css",
16
+ "dist-lib/theme/**",
17
+ "dist-lib/fonts/**",
18
+ "dist-lib/preview/**",
19
+ "dist-lib/chunks/**",
20
+ "dist-lib/src/**",
21
+ "dist-lib/tokens/**",
22
+ "README.md"
23
+ ],
24
+ "engines": {
25
+ "node": ">=20.0.0"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/igreenlab/igreen-desingsystem-admin.git"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/igreenlab/igreen-desingsystem-admin/issues"
33
+ },
34
+ "homepage": "https://github.com/igreenlab/igreen-desingsystem-admin#readme",
35
+ "//exports-theme-marcas": "Os overlays de marca (./theme/brand-*.css) são enumerados um por um DE PROPÓSITO, não por wildcard: o pack-contract extrai cada path prometido no exports e o lib-verify confere no disco — um './theme/*' prometeria nada e não seria verificado, que é justo o modo de falha da L-017. Marca nova exige entrada aqui, e o build:lib FALHA se achar brand-*.css sem export correspondente (gate no vite.lib.config.ts). Nunca colocar chave de comentário DENTRO de exports: lá toda chave é subpath e o Node/pack-contract tentam resolvê-la.",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist-lib/index.d.ts",
39
+ "import": "./dist-lib/index.mjs",
40
+ "require": "./dist-lib/index.cjs"
41
+ },
42
+ "./shadcn": {
43
+ "types": "./dist-lib/shadcn.d.ts",
44
+ "import": "./dist-lib/shadcn.mjs",
45
+ "require": "./dist-lib/shadcn.cjs"
46
+ },
47
+ "./theme.css": "./dist-lib/theme.css",
48
+ "./theme/brand-blue.css": "./dist-lib/theme/brand-blue.css",
49
+ "./theme/brand-green.css": "./dist-lib/theme/brand-green.css",
50
+ "./theme/brand-pay.css": "./dist-lib/theme/brand-pay.css",
51
+ "./theme/brand-vibrant.css": "./dist-lib/theme/brand-vibrant.css",
52
+ "./tokens": {
53
+ "types": "./dist-lib/tokens.d.ts",
54
+ "import": "./dist-lib/tokens.mjs",
55
+ "require": "./dist-lib/tokens.cjs"
56
+ },
57
+ "./preview/chat": {
58
+ "types": "./dist-lib/preview/chat.d.ts",
59
+ "import": "./dist-lib/preview/chat.mjs",
60
+ "require": "./dist-lib/preview/chat.cjs"
61
+ },
62
+ "./preview/clientes": {
63
+ "types": "./dist-lib/preview/clientes.d.ts",
64
+ "import": "./dist-lib/preview/clientes.mjs",
65
+ "require": "./dist-lib/preview/clientes.cjs"
66
+ },
67
+ "./preview/dashboard": {
68
+ "types": "./dist-lib/preview/dashboard.d.ts",
69
+ "import": "./dist-lib/preview/dashboard.mjs",
70
+ "require": "./dist-lib/preview/dashboard.cjs"
71
+ },
72
+ "./preview/mocks": {
73
+ "types": "./dist-lib/preview/mocks.d.ts",
74
+ "import": "./dist-lib/preview/mocks.mjs",
75
+ "require": "./dist-lib/preview/mocks.cjs"
76
+ }
77
+ },
78
+ "publishConfig": {
79
+ "access": "public"
80
+ },
81
+ "scripts": {
82
+ "dev": "npm run tokens:tw4 && vite",
83
+ "build": "npm run tokens:tw4 && tsc -b && vite build",
84
+ "build:showcase": "npm run build && npm --prefix projeto/virtual-proposta install --no-audit --no-fund && npm --prefix projeto/virtual-proposta run build && cp -r projeto/virtual-proposta/dist dist/demo",
85
+ "build:lib": "npm run tokens:tw4 && vite build --config vite.lib.config.ts",
86
+ "preview": "vite preview",
87
+ "prepublishOnly": "npm run build:lib",
88
+ "lib:verify": "node scripts/lib-verify.mjs --build",
89
+ "lib:publish:patch": "echo '⛔ Use o /ds-release: ele bumpa, valida com lib:verify e PARA pedindo o token. Publicar por aqui pula o gate (Regra 7 / L-020).' && exit 1",
90
+ "lib:publish:minor": "echo '⛔ Use o /ds-release: ele bumpa, valida com lib:verify e PARA pedindo o token. Publicar por aqui pula o gate (Regra 7 / L-020).' && exit 1",
91
+ "lib:publish:major": "echo '⛔ Use o /ds-release: ele bumpa, valida com lib:verify e PARA pedindo o token. Publicar por aqui pula o gate (Regra 7 / L-020).' && exit 1",
92
+ "tokens:tw4": "tsx tokens/transforms/to-tailwind-v4.ts > src/styles/theme/tailwind-theme.css",
93
+ "tokens:brand:blue": "tsx tokens/transforms/to-brand-overlay.ts blue > src/styles/theme/brand-blue.css",
94
+ "tokens:brand:green": "tsx tokens/transforms/to-brand-overlay.ts green > src/styles/theme/brand-green.css",
95
+ "tokens:brand:pay": "tsx tokens/transforms/to-brand-overlay.ts pay > src/styles/theme/brand-pay.css",
96
+ "tokens:brand:vibrant": "tsx tokens/transforms/to-brand-overlay.ts vibrant > src/styles/theme/brand-vibrant.css",
97
+ "tokens:css": "tsx tokens/transforms/to-css-vars.ts > dist/tokens.css",
98
+ "tokens:dtcg": "tsx tokens/transforms/to-dtcg.ts > dist/tokens.tokens.json",
99
+ "tokens:all": "npm run tokens:tw4 && npm run tokens:css && npm run tokens:dtcg",
100
+ "tokens:check": "tsc --noEmit",
101
+ "brand:check": "node scripts/brand-check.mjs",
102
+ "brand:contrast": "node scripts/brand-contrast.mjs",
103
+ "audit:token-docs": "node scripts/audit-token-docs.mjs",
104
+ "registry:stamp": "node scripts/registry-stamp.mjs",
105
+ "registry:build": "npm run examples:drift && npm run tokens:tw4 && npm run registry:stamp && npx shadcn@4.17.0 build",
106
+ "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 --ci && npm run registry-app:audit",
107
+ "registry-app:audit": "npm audit --audit-level=high --prefix registry-app",
108
+ "distribution:debt": "node scripts/distribution-debt.mjs",
109
+ "lint:styles": "node scripts/lint-styles.mjs --ratchet",
110
+ "cli:rebake": "node scripts/cli-rebake-foundationals.mjs",
111
+ "doc:index": "node scripts/doc-index.mjs --write",
112
+ "typecheck": "tsc --noEmit",
113
+ "test": "npm run typecheck && vitest run",
114
+ "test:watch": "vitest",
115
+ "test:ui": "vitest --ui",
116
+ "sync:agents": "node .claude/scripts/sync-agents-to-cursor.cjs",
117
+ "examples:drift": "node scripts/examples-drift-check.mjs",
118
+ "ds:link": "node scripts/ds-link.mjs"
119
+ },
120
+ "//test-inclui-typecheck": "O `test` roda `typecheck` ANTES do vitest de proposito. Medido em 2026-08-14 por dogfood: um componente que NAO compilava passou 413/413 no `npm test`, porque o `tsc --noEmit` era step separado so no CI. Quem valida local com o comando natural (`npm test`) recebia falso verde e so descobria na PR. Custo: ~10s no caminho de sucesso. No CI o Typecheck ja roda em step proprio ANTES dos testes (falha rapida com sinal claro na UI de Checks), entao o job so paga esses 10s quando tudo passa. `tokens:check` e o MESMO comando sob um nome que sugere escopo de tokens — mantido porque ha registro historico apontando pra ele; o nome canonico e `typecheck`.",
121
+ "//deps-de-tipo": "Os 3 `@types/*` abaixo estao em dependencies (nao devDependencies) DE PROPOSITO: os `.d.ts` publicados os referenciam no tipo PUBLICO. `dist-lib/src/components/ui/ChoroplethMap/choropleth-map.types.d.ts` faz `import { Feature } from 'geojson'` e `import { Topology } from 'topojson-specification'`, e `GeoProjection` vem de `@types/d3-geo` (o `d3-geo` nao embute tipos). Em devDependencies o consumidor npm instala o pacote, recebe os `.d.ts`, e o `tsc` DELE quebra com 'Cannot find module geojson' — o DS compila porque tem os @types localmente. Criterio: se um pacote aparece num `from '...'` de `.d.ts` sob `dist-lib/`, ele e dependency. Gate: `scripts/lib/deps-declared.mjs`. `@types/topojson-client` fica em devDeps porque o topojson-client so e importado como VALOR, e o tipo nao vaza pra superficie publica.",
122
+ "dependencies": {
123
+ "@dnd-kit/core": "^6.3.1",
124
+ "@dnd-kit/modifiers": "^9.0.0",
125
+ "@dnd-kit/sortable": "^10.0.0",
126
+ "@dnd-kit/utilities": "^3.2.2",
127
+ "@hello-pangea/dnd": "^18.0.1",
128
+ "@radix-ui/react-accordion": "^1.2.12",
129
+ "@radix-ui/react-alert-dialog": "^1.1.15",
130
+ "@radix-ui/react-aspect-ratio": "^1.1.10",
131
+ "@radix-ui/react-avatar": "^1.1.11",
132
+ "@radix-ui/react-checkbox": "^1.3.3",
133
+ "@radix-ui/react-collapsible": "^1.1.14",
134
+ "@radix-ui/react-context-menu": "^2.3.1",
135
+ "@radix-ui/react-dialog": "^1.1.17",
136
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
137
+ "@radix-ui/react-hover-card": "^1.1.17",
138
+ "@radix-ui/react-label": "^2.1.8",
139
+ "@radix-ui/react-menubar": "^1.1.18",
140
+ "@radix-ui/react-navigation-menu": "^1.2.16",
141
+ "@radix-ui/react-popover": "^1.1.15",
142
+ "@radix-ui/react-progress": "^1.1.8",
143
+ "@radix-ui/react-radio-group": "^1.3.8",
144
+ "@radix-ui/react-scroll-area": "^1.2.12",
145
+ "@radix-ui/react-select": "^2.2.6",
146
+ "@radix-ui/react-separator": "^1.1.8",
147
+ "@radix-ui/react-slider": "^1.3.6",
148
+ "@radix-ui/react-slot": "^1.3.0",
149
+ "@radix-ui/react-switch": "^1.2.6",
150
+ "@radix-ui/react-tabs": "^1.1.13",
151
+ "@radix-ui/react-toggle": "^1.1.12",
152
+ "@radix-ui/react-toggle-group": "^1.1.13",
153
+ "@radix-ui/react-tooltip": "^1.2.10",
154
+ "@tanstack/react-virtual": "^3.13.24",
155
+ "@types/d3-geo": "^3.1.0",
156
+ "@types/geojson": "^7946.0.14",
157
+ "@types/topojson-specification": "^1.0.5",
158
+ "class-variance-authority": "^0.7.1",
159
+ "clsx": "^2.1.1",
160
+ "cmdk": "^1.1.1",
161
+ "d3-geo": "^3.1.1",
162
+ "date-fns": "^4.1.0",
163
+ "embla-carousel-react": "^8.6.0",
164
+ "geist": "^1.7.0",
165
+ "input-otp": "^1.4.2",
166
+ "lucide-react": "^1.7.0",
167
+ "react-day-picker": "^9.14.0",
168
+ "recharts": "^3.8.1",
169
+ "sonner": "^2.0.7",
170
+ "tailwind-merge": "^3.0.0",
171
+ "tailwind-variants": "^3.0.0",
172
+ "topojson-client": "^3.1.0",
173
+ "tw-animate-css": "^1.4.0",
174
+ "vaul": "^1.1.2"
175
+ },
176
+ "devDependencies": {
177
+ "@tailwindcss/vite": "^4.0.0",
178
+ "@testing-library/dom": "^10.4.1",
179
+ "@testing-library/jest-dom": "^6.9.1",
180
+ "@testing-library/react": "^16.3.2",
181
+ "@testing-library/user-event": "^14.6.3",
182
+ "@types/react": "^19.0.0",
183
+ "@types/react-dom": "^19.0.0",
184
+ "@types/topojson-client": "^3.1.5",
185
+ "@vitejs/plugin-react": "^4.3.0",
186
+ "@vitest/ui": "^4.1.6",
187
+ "jsdom": "^29.1.1",
188
+ "react-router-dom": "^7.18.2",
189
+ "tailwindcss": "^4.0.0",
190
+ "tsx": "^4.19.0",
191
+ "typescript": "^5.6.0",
192
+ "vite": "^6.0.0",
193
+ "vite-plugin-dts": "^5.0.0",
194
+ "vitest": "^4.1.6"
195
+ },
196
+ "peerDependencies": {
197
+ "react": "^19.0.0",
198
+ "react-dom": "^19.0.0",
199
+ "tailwindcss": "^4.0.0"
200
+ },
201
+ "peerDependenciesMeta": {
202
+ "tailwindcss": {
203
+ "optional": false
204
+ }
205
+ },
206
+ "//exports-shadcn": "O subpath ./shadcn e um ENTRY SEPARADO (nao um re-export do barrel raiz) de proposito: 41 arquivos / 233 nomes exportados contra 3-4 que o consumidor tipico usa. No mesmo entry, qualquer import do pacote arrastaria Radix + cmdk + vaul + embla + input-otp + sonner antes do tree-shaking do consumidor. Deps desses primitivos ficam em rollupOptions.external (vite.lib.config.ts) — sem isso o Rollup as embute e sonner/@hello-pangea-dnd rodam com contexto React duplicado."
207
+ }