@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.
- package/dist-lib/chunks/{avatar-DQYiVRlE.mjs → avatar-DFWEwBKu.mjs} +101 -51
- package/dist-lib/chunks/avatar-DFWEwBKu.mjs.map +1 -0
- package/dist-lib/chunks/{avatar-BiaG9OJS.cjs → avatar-eM5txRFZ.cjs} +53 -1
- package/dist-lib/chunks/avatar-eM5txRFZ.cjs.map +1 -0
- package/dist-lib/chunks/{input-CaC0B-_v.mjs → input-CfmzMYtd.mjs} +2 -2
- package/dist-lib/chunks/{input-CaC0B-_v.mjs.map → input-CfmzMYtd.mjs.map} +1 -1
- package/dist-lib/chunks/{input-DMH5rSP1.cjs → input-az2SuVXQ.cjs} +2 -2
- package/dist-lib/chunks/{input-DMH5rSP1.cjs.map → input-az2SuVXQ.cjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-NnEu4oIs.cjs → kpi-delta-DAfakvFp.cjs} +3 -3
- package/dist-lib/chunks/{kpi-delta-NnEu4oIs.cjs.map → kpi-delta-DAfakvFp.cjs.map} +1 -1
- package/dist-lib/chunks/{kpi-delta-CjR0OsdC.mjs → kpi-delta-DaDwKOaP.mjs} +3 -3
- package/dist-lib/chunks/{kpi-delta-CjR0OsdC.mjs.map → kpi-delta-DaDwKOaP.mjs.map} +1 -1
- package/dist-lib/chunks/{page-header-DEGbgT4w.mjs → page-header--cPS_Z-a.mjs} +2 -2
- package/dist-lib/chunks/{page-header-DEGbgT4w.mjs.map → page-header--cPS_Z-a.mjs.map} +1 -1
- package/dist-lib/chunks/{page-header-Cp_9Wog4.cjs → page-header-DvAJoEfb.cjs} +2 -2
- package/dist-lib/chunks/{page-header-Cp_9Wog4.cjs.map → page-header-DvAJoEfb.cjs.map} +1 -1
- package/dist-lib/chunks/{panel-B1xKDbjB.mjs → panel-Bje0kUTh.mjs} +5 -5
- package/dist-lib/chunks/{panel-B1xKDbjB.mjs.map → panel-Bje0kUTh.mjs.map} +1 -1
- package/dist-lib/chunks/{panel-ma7e3s4C.cjs → panel-DtU3KlKY.cjs} +5 -5
- package/dist-lib/chunks/{panel-ma7e3s4C.cjs.map → panel-DtU3KlKY.cjs.map} +1 -1
- package/dist-lib/chunks/{textarea-DivoQmJw.mjs → textarea-BPRIHZVd.mjs} +2 -2
- package/dist-lib/chunks/{textarea-DivoQmJw.mjs.map → textarea-BPRIHZVd.mjs.map} +1 -1
- package/dist-lib/chunks/{textarea-c80RFmMP.cjs → textarea-K20CL_gF.cjs} +2 -2
- package/dist-lib/chunks/{textarea-c80RFmMP.cjs.map → textarea-K20CL_gF.cjs.map} +1 -1
- package/dist-lib/chunks/{tooltip-pvZ_X-Ub.cjs → toggle-group-BEPs3e0Y.cjs} +2 -54
- package/dist-lib/chunks/toggle-group-BEPs3e0Y.cjs.map +1 -0
- package/dist-lib/chunks/{tooltip-mMF4YHZg.mjs → toggle-group-XMO6ReVo.mjs} +77 -127
- package/dist-lib/chunks/toggle-group-XMO6ReVo.mjs.map +1 -0
- package/dist-lib/chunks/{useTheme-BD0nloAv.cjs → useTheme-3iZAognE.cjs} +876 -73
- package/dist-lib/chunks/useTheme-3iZAognE.cjs.map +1 -0
- package/dist-lib/chunks/{useTheme-D1QVzZDW.mjs → useTheme-B3ZakPqk.mjs} +886 -83
- package/dist-lib/chunks/useTheme-B3ZakPqk.mjs.map +1 -0
- package/dist-lib/index.cjs +40 -732
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +94 -786
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/chat.cjs +3 -3
- package/dist-lib/preview/chat.mjs +3 -3
- package/dist-lib/preview/clientes.cjs +6 -6
- package/dist-lib/preview/clientes.mjs +6 -6
- package/dist-lib/preview/dashboard.cjs +4 -4
- package/dist-lib/preview/dashboard.mjs +4 -4
- package/dist-lib/shadcn.cjs +112 -112
- package/dist-lib/shadcn.mjs +136 -136
- package/dist-lib/src/components/ui/AppShell/app-shell.d.ts +1 -1
- package/dist-lib/src/components/ui/AppShell/app-shell.d.ts.map +1 -1
- package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts +45 -1
- package/dist-lib/src/components/ui/AppShell/app-shell.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts +106 -3
- package/dist-lib/src/components/ui/AppShell/app-shell.types.d.ts.map +1 -1
- package/dist-lib/src/components/ui/MenuSidebar/index.d.ts +2 -2
- package/dist-lib/src/components/ui/MenuSidebar/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/category.d.ts +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/category.d.ts.map +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/menu-item.d.ts +25 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/menu-item.d.ts.map +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.d.ts +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.d.ts.map +1 -1
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.d.ts +57 -2
- package/dist-lib/src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.d.ts.map +1 -1
- package/dist-lib/src/utils/nav-link.d.ts.map +1 -0
- package/package.json +207 -207
- package/dist-lib/chunks/avatar-BiaG9OJS.cjs.map +0 -1
- package/dist-lib/chunks/avatar-DQYiVRlE.mjs.map +0 -1
- package/dist-lib/chunks/tooltip-mMF4YHZg.mjs.map +0 -1
- package/dist-lib/chunks/tooltip-pvZ_X-Ub.cjs.map +0 -1
- package/dist-lib/chunks/useTheme-BD0nloAv.cjs.map +0 -1
- package/dist-lib/chunks/useTheme-D1QVzZDW.mjs.map +0 -1
- package/dist-lib/src/components/ui/MenuSidebar/nav-link.d.ts.map +0 -1
- /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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"single-menu-sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/SingleMenuSidebar/single-menu-sidebar.types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAUxE,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,mDAAmD;IACnD,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,sEAAsE;IACtE,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAID,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,SAAS,CAAC;AAErF,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kFAAkF;IAClF,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzE,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;CAAG;AAEhE,MAAM,WAAW,6BAA8B,SAAQ,gBAAgB;CAAG;AAE1E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,cAAc,CAAC,WAAW,CAAC,EAC3B,OAAO,CACR;IACC,2BAA2B;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,+DAA+D;IAC/D,IAAI,EAAE,cAAc,CAAC;IACrB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
|
|
@@ -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.
|
|
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
|
+
}
|