@wellingtonhlc/shared-ui 0.1.1 → 0.1.3
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/README.md +48 -0
- package/dist/components/ActionPrimitives.d.ts.map +1 -1
- package/dist/components/ActionPrimitives.js +4 -3
- package/dist/components/NavCard.d.ts +15 -0
- package/dist/components/NavCard.d.ts.map +1 -0
- package/dist/components/NavCard.js +13 -0
- package/dist/components/ThemePreferencesSelector.d.ts.map +1 -1
- package/dist/components/ThemePreferencesSelector.js +2 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/styles.css +37 -8
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -60,6 +60,22 @@ Nao inclua:
|
|
|
60
60
|
| `npm run storybook` | Sobe o Storybook local. |
|
|
61
61
|
| `npm run build-storybook` | Gera build estatico do Storybook. |
|
|
62
62
|
|
|
63
|
+
## Storybook
|
|
64
|
+
|
|
65
|
+
O Storybook esta na linha `10.4.6` (`storybook`, `@storybook/react-vite`, `@storybook/addon-docs` e `@storybook/addon-a11y`).
|
|
66
|
+
|
|
67
|
+
Use o Storybook para validar estados visuais antes de publicar mudancas no pacote:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm run storybook
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Antes de publicar ou consumir localmente uma alteracao visual, gere tambem a build estatica:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npm run build-storybook
|
|
77
|
+
```
|
|
78
|
+
|
|
63
79
|
## Exportacoes
|
|
64
80
|
|
|
65
81
|
Entrada principal:
|
|
@@ -95,6 +111,37 @@ Componentes disponiveis na API publica:
|
|
|
95
111
|
| Controle de renderizacao | `RenderIf`, `RenderCase` |
|
|
96
112
|
| Tema | `ThemePreferencesSelector` |
|
|
97
113
|
|
|
114
|
+
## ThemePreferencesSelector
|
|
115
|
+
|
|
116
|
+
`ThemePreferencesSelector` centraliza a escolha de cor e aparencia (`system`, `light`, `dark`) usada pelos consumidores.
|
|
117
|
+
|
|
118
|
+
Contrato minimo:
|
|
119
|
+
|
|
120
|
+
```tsx
|
|
121
|
+
import { ThemePreferencesSelector, type ThemePreferencesValue } from '@wellingtonhlc/shared-ui';
|
|
122
|
+
|
|
123
|
+
const value: ThemePreferencesValue = {
|
|
124
|
+
color: 'indigo',
|
|
125
|
+
appearance: 'system',
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
<ThemePreferencesSelector
|
|
129
|
+
value={value}
|
|
130
|
+
options={[
|
|
131
|
+
{ key: 'indigo', label: 'Indigo', primary: '#5b5cff' },
|
|
132
|
+
{ key: 'emerald', label: 'Emerald', primary: '#059669' },
|
|
133
|
+
]}
|
|
134
|
+
onChange={setValue}
|
|
135
|
+
/>;
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Pontos de validacao:
|
|
139
|
+
|
|
140
|
+
- O botao de aparencia selecionado deve ficar perceptivelmente destacado sem depender de hover.
|
|
141
|
+
- Opcoes de cor bloqueadas usam `locked` e podem informar `requiredPlan`.
|
|
142
|
+
- Use `showColorSelector={false}` ou `showAppearanceSelector={false}` quando o consumidor precisar exibir apenas uma parte do controle.
|
|
143
|
+
- A story `AppearanceStates` mostra as tres aparencias ja selecionadas para validacao visual rapida.
|
|
144
|
+
|
|
98
145
|
## Filter
|
|
99
146
|
|
|
100
147
|
`Filter.Root` organiza filtros compactos, ocupando apenas o espaço necessário. Quando houver muitos filtros, somente o corpo do painel rola e as ações continuam visíveis.
|
|
@@ -163,6 +210,7 @@ Tabela de historico:
|
|
|
163
210
|
|
|
164
211
|
| Versao | Data | Tipo | Resumo | Validacao |
|
|
165
212
|
|--------|------|------|--------|-----------|
|
|
213
|
+
| `0.1.3` | 2026-06-16 | Patch | Atualiza Storybook para `10.4.6`, documenta `ThemePreferencesSelector` e reforca o destaque visual da aparencia selecionada. | `npm run build`; `npm run build-storybook`. |
|
|
166
214
|
| `0.1.0` | 2026-06-15 | Breaking pre-v1 | Define `Filter.Root`/`Filter.Footer` como contrato final de filtros e remove aliases públicos provisórios. | `npm run build`; builds de `EloDesk.CRM` e `EloDesk.CRM.Portal`. |
|
|
167
215
|
| `0.0.7` | 2026-06-14 | Breaking pre-v1 | Publica API composicional `SearchWorkspace.Root` e `SearchFilter.Root`/`SearchFilter.Footer` para consultas com filtros compactos. | Pendente antes da publicacao. |
|
|
168
216
|
| `0.0.5` | 2026-06-14 | Minor pre-v1 | Adiciona `Table.Root isFramed`, `fill`, `viewportClassName` e `wrapperProps` para controlar frame e ocupacao de espaco sem classes ad-hoc. | `npm run build`. |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPrimitives.d.ts","sourceRoot":"","sources":["../../src/components/ActionPrimitives.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAC/C,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC3G,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,OAAO,CAAC;IACtG,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAW,EAAE,EAAE,yBAAyB,+BAapH;AAED,wBAAgB,wBAAwB,CAAC,EAAE,SAAS,EAAE,EAAE,6BAA6B,+BAEpF;AAQD,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ActionPrimitives.d.ts","sourceRoot":"","sources":["../../src/components/ActionPrimitives.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAC/C,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC3G,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,OAAO,CAAC;IACtG,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAW,EAAE,EAAE,yBAAyB,+BAapH;AAED,wBAAgB,wBAAwB,CAAC,EAAE,SAAS,EAAE,EAAE,6BAA6B,+BAEpF;AAQD,eAAO,MAAM,qBAAqB,0HA6CjC,CAAC;AAIF,eAAO,MAAM,mBAAmB,wHAI/B,CAAC"}
|
|
@@ -17,9 +17,10 @@ export const ActionButtonPrimitive = forwardRef(({ children, className, disabled
|
|
|
17
17
|
const hasText = Boolean(content);
|
|
18
18
|
const isDisabled = disabled || loading;
|
|
19
19
|
return (_jsxs("button", { ref: ref, type: type, "aria-label": tooltip, title: tooltip, disabled: isDisabled, className: cn('inline-flex cursor-pointer select-none items-center justify-center border font-bold transition-[background-color,border-color,color,box-shadow,transform,opacity] duration-150 active:translate-y-px disabled:translate-y-0 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[color-mix(in_srgb,var(--brand)_36%,transparent)] disabled:cursor-not-allowed disabled:opacity-60', variantClasses[variant],
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
|
|
20
|
+
// Forma visual consistente: cantos arredondados (rounded-md) com e sem texto.
|
|
21
|
+
// Botoes so-icone (IconButtonPrimitive) ficam quadrados; botoes com texto
|
|
22
|
+
// recebem padding horizontal. A forma vem do pacote, nao do consumidor.
|
|
23
|
+
'rounded-md', hasText ? 'min-h-8 gap-1.5 px-3 text-[0.8125rem]' : 'size-8 p-0', loading && 'cursor-wait opacity-75', className), ...props, children: [icon && _jsx("span", { className: "inline-flex shrink-0 items-center justify-center [&_svg]:size-4", children: icon }), hasText && _jsx("span", { className: "whitespace-nowrap", children: content })] }));
|
|
23
24
|
});
|
|
24
25
|
ActionButtonPrimitive.displayName = 'ActionButtonPrimitive';
|
|
25
26
|
export const IconButtonPrimitive = forwardRef(({ 'aria-label': ariaLabel, tooltip, ...props }, ref) => (_jsx(ActionButtonPrimitive, { ref: ref, "aria-label": ariaLabel, tooltip: tooltip ?? ariaLabel, ...props })));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export interface NavCardProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'title'> {
|
|
3
|
+
title: ReactNode;
|
|
4
|
+
description?: ReactNode;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
/** Oculta a seta de navegacao a direita. */
|
|
7
|
+
hideArrow?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Card/botao navegavel generico: titulo, descricao e icone opcionais, com seta a
|
|
11
|
+
* direita que desliza no hover/focus. Sem regra de dominio — use para atalhos,
|
|
12
|
+
* itens de listas navegaveis e acessos rapidos.
|
|
13
|
+
*/
|
|
14
|
+
export declare const NavCard: import("react").ForwardRefExoticComponent<NavCardProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
//# sourceMappingURL=NavCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavCard.d.ts","sourceRoot":"","sources":["../../src/components/NavCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9E,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC1F,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,4GAoCnB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { ArrowRightIcon } from 'lucide-react';
|
|
4
|
+
import { cn } from '../utils/cn';
|
|
5
|
+
/**
|
|
6
|
+
* Card/botao navegavel generico: titulo, descricao e icone opcionais, com seta a
|
|
7
|
+
* direita que desliza no hover/focus. Sem regra de dominio — use para atalhos,
|
|
8
|
+
* itens de listas navegaveis e acessos rapidos.
|
|
9
|
+
*/
|
|
10
|
+
export const NavCard = forwardRef(({ className, description, hideArrow = false, icon, title, type = 'button', ...props }, ref) => {
|
|
11
|
+
return (_jsxs("button", { ref: ref, type: type, className: cn('group border-app-border bg-background hover:bg-surface flex w-full cursor-pointer items-center gap-3 rounded-lg border px-3 py-3 text-left transition-colors', 'hover:border-[color-mix(in_srgb,var(--brand)_44%,var(--app-border))] hover:shadow-[0_14px_26px_-20px_color-mix(in_srgb,var(--brand)_45%,#000)]', 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[color-mix(in_srgb,var(--brand)_36%,transparent)] focus-visible:outline-none', className), ...props, children: [icon && (_jsx("span", { className: "text-foreground-muted group-hover:text-brand inline-flex shrink-0 items-center justify-center transition-colors [&_svg]:size-5", children: icon })), _jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [_jsx("span", { className: "text-foreground line-clamp-2 text-sm leading-snug font-medium", children: title }), description && (_jsx("span", { className: "text-foreground-muted truncate text-xs", children: description }))] }), !hideArrow && (_jsx(ArrowRightIcon, { "aria-hidden": "true", className: "text-foreground-muted/50 group-hover:text-brand size-4 shrink-0 transition-transform duration-150 group-hover:translate-x-0.5" }))] }));
|
|
12
|
+
});
|
|
13
|
+
NavCard.displayName = 'NavCard';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemePreferencesSelector.d.ts","sourceRoot":"","sources":["../../src/components/ThemePreferencesSelector.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC1D;AAQD,wBAAgB,wBAAwB,CAAC,EACvC,QAAgB,EAChB,MAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,sBAA6B,EAC7B,iBAAwB,EACxB,KAAK,GACN,EAAE,6BAA6B,+
|
|
1
|
+
{"version":3,"file":"ThemePreferencesSelector.d.ts","sourceRoot":"","sources":["../../src/components/ThemePreferencesSelector.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC1D;AAQD,wBAAgB,wBAAwB,CAAC,EACvC,QAAgB,EAChB,MAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,sBAA6B,EAC7B,iBAAwB,EACxB,KAAK,GACN,EAAE,6BAA6B,+BAiF/B"}
|
|
@@ -29,6 +29,7 @@ export function ThemePreferencesSelector({ disabled = false, locked = false, onC
|
|
|
29
29
|
: option.label }, option.key));
|
|
30
30
|
}) })] })) : null, showAppearanceSelector ? (_jsxs("section", { className: "grid gap-2", children: [_jsx("span", { className: "text-xs font-bold uppercase tracking-[0.16em] text-foreground-muted", children: "Aparencia" }), _jsx("div", { className: "flex flex-wrap items-center justify-start gap-2", children: appearanceOptions.map((option) => {
|
|
31
31
|
const Icon = option.Icon;
|
|
32
|
-
return (_jsxs("button", { type: "button", className: cn('border-app-border bg-surface inline-flex h-9 w-full max-w-[120px] cursor-pointer items-center justify-center gap-1.5 rounded-md border px-3 text-xs font-bold text-foreground-muted transition-[background-color,border-color,color,box-shadow] hover:border-[color-mix(in_srgb,var(--brand)_44%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--brand)_10%,var(--surface))] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/35 disabled:cursor-not-allowed disabled:opacity-60', value.appearance === option.value &&
|
|
32
|
+
return (_jsxs("button", { type: "button", className: cn('border-app-border bg-surface inline-flex h-9 w-full max-w-[120px] cursor-pointer items-center justify-center gap-1.5 rounded-md border px-3 text-xs font-bold text-foreground-muted transition-[background-color,border-color,color,box-shadow] hover:border-[color-mix(in_srgb,var(--brand)_44%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--brand)_10%,var(--surface))] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/35 disabled:cursor-not-allowed disabled:opacity-60', value.appearance === option.value &&
|
|
33
|
+
'border-brand bg-[color-mix(in_srgb,var(--brand)_16%,var(--surface))] text-brand shadow-[0_0_0_3px_color-mix(in_srgb,var(--brand)_18%,transparent)]'), onClick: () => selectAppearance(option.value), disabled: disabled || locked, "aria-pressed": value.appearance === option.value, children: [_jsx(Icon, { "aria-hidden": "true", size: 14, strokeWidth: 2 }), option.label] }, option.value));
|
|
33
34
|
}) })] })) : null] }));
|
|
34
35
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,4 +35,5 @@ export { ThemePreferencesSelector, type ThemeAppearance, type ThemeColorOption,
|
|
|
35
35
|
export * from './components/ActionPrimitives';
|
|
36
36
|
export { Card, type CardActionsProps, type CardBodyProps, type CardDensity, type CardDescriptionProps, type CardHeaderProps, type CardProps, type CardToolbarProps, type CardVariant, } from './components/Card';
|
|
37
37
|
export { StatCard, type StatCardProps, type StatCardSize, type StatCardVariant } from './components/StatCard';
|
|
38
|
+
export { NavCard, type NavCardProps } from './components/NavCard';
|
|
38
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -35,3 +35,4 @@ export { ThemePreferencesSelector, } from './components/ThemePreferencesSelector
|
|
|
35
35
|
export * from './components/ActionPrimitives';
|
|
36
36
|
export { Card, } from './components/Card';
|
|
37
37
|
export { StatCard } from './components/StatCard';
|
|
38
|
+
export { NavCard } from './components/NavCard';
|
package/dist/styles.css
CHANGED
|
@@ -657,6 +657,7 @@ h2.react-datepicker__current-month {
|
|
|
657
657
|
--tracking-tight: -0.025em;
|
|
658
658
|
--tracking-wide: 0.025em;
|
|
659
659
|
--leading-tight: 1.25;
|
|
660
|
+
--leading-snug: 1.375;
|
|
660
661
|
--leading-relaxed: 1.625;
|
|
661
662
|
--radius-md: 0.375rem;
|
|
662
663
|
--radius-lg: 0.5rem;
|
|
@@ -992,6 +993,12 @@ h2.react-datepicker__current-month {
|
|
|
992
993
|
.ml-auto {
|
|
993
994
|
margin-left: auto;
|
|
994
995
|
}
|
|
996
|
+
.line-clamp-2 {
|
|
997
|
+
overflow: hidden;
|
|
998
|
+
display: -webkit-box;
|
|
999
|
+
-webkit-box-orient: vertical;
|
|
1000
|
+
-webkit-line-clamp: 2;
|
|
1001
|
+
}
|
|
995
1002
|
.block {
|
|
996
1003
|
display: block;
|
|
997
1004
|
}
|
|
@@ -1460,6 +1467,9 @@ h2.react-datepicker__current-month {
|
|
|
1460
1467
|
.gap-4 {
|
|
1461
1468
|
gap: calc(var(--spacing) * 4);
|
|
1462
1469
|
}
|
|
1470
|
+
.gap-5 {
|
|
1471
|
+
gap: calc(var(--spacing) * 5);
|
|
1472
|
+
}
|
|
1463
1473
|
.gap-6 {
|
|
1464
1474
|
gap: calc(var(--spacing) * 6);
|
|
1465
1475
|
}
|
|
@@ -1580,12 +1590,6 @@ h2.react-datepicker__current-month {
|
|
|
1580
1590
|
--tw-border-style: dashed;
|
|
1581
1591
|
border-style: dashed;
|
|
1582
1592
|
}
|
|
1583
|
-
.border-\[color-mix\(in_srgb\,var\(--brand\)_44\%\,var\(--app-border\)\)\] {
|
|
1584
|
-
border-color: var(--brand);
|
|
1585
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1586
|
-
border-color: color-mix(in srgb,var(--brand) 44%,var(--app-border));
|
|
1587
|
-
}
|
|
1588
|
-
}
|
|
1589
1593
|
.border-\[color-mix\(in_srgb\,var\(--brand\)_64\%\,\#fff\)\] {
|
|
1590
1594
|
border-color: var(--brand);
|
|
1591
1595
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1634,10 +1638,10 @@ h2.react-datepicker__current-month {
|
|
|
1634
1638
|
background-color: color-mix(in srgb,var(--app-border) 60%,transparent);
|
|
1635
1639
|
}
|
|
1636
1640
|
}
|
|
1637
|
-
.bg-\[color-mix\(in_srgb\,var\(--brand\)
|
|
1641
|
+
.bg-\[color-mix\(in_srgb\,var\(--brand\)_16\%\,var\(--surface\)\)\] {
|
|
1638
1642
|
background-color: var(--brand);
|
|
1639
1643
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1640
|
-
background-color: color-mix(in srgb,var(--brand)
|
|
1644
|
+
background-color: color-mix(in srgb,var(--brand) 16%,var(--surface));
|
|
1641
1645
|
}
|
|
1642
1646
|
}
|
|
1643
1647
|
.bg-\[color-mix\(in_srgb\,var\(--destructive\)_12\%\,var\(--surface\)\)\] {
|
|
@@ -1931,6 +1935,10 @@ h2.react-datepicker__current-month {
|
|
|
1931
1935
|
--tw-leading: var(--leading-relaxed);
|
|
1932
1936
|
line-height: var(--leading-relaxed);
|
|
1933
1937
|
}
|
|
1938
|
+
.leading-snug {
|
|
1939
|
+
--tw-leading: var(--leading-snug);
|
|
1940
|
+
line-height: var(--leading-snug);
|
|
1941
|
+
}
|
|
1934
1942
|
.leading-tight {
|
|
1935
1943
|
--tw-leading: var(--leading-tight);
|
|
1936
1944
|
line-height: var(--leading-tight);
|
|
@@ -2073,6 +2081,13 @@ h2.react-datepicker__current-month {
|
|
|
2073
2081
|
--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
|
|
2074
2082
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2075
2083
|
}
|
|
2084
|
+
.shadow-\[0_0_0_3px_color-mix\(in_srgb\,var\(--brand\)_18\%\,transparent\)\] {
|
|
2085
|
+
--tw-shadow: 0 0 0 3px var(--tw-shadow-color, var(--brand));
|
|
2086
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2087
|
+
--tw-shadow: 0 0 0 3px var(--tw-shadow-color, color-mix(in srgb,var(--brand) 18%,transparent));
|
|
2088
|
+
}
|
|
2089
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2090
|
+
}
|
|
2076
2091
|
.shadow-\[0_0_0_3px_color-mix\(in_srgb\,var\(--brand\)_20\%\,transparent\)\] {
|
|
2077
2092
|
--tw-shadow: 0 0 0 3px var(--tw-shadow-color, var(--brand));
|
|
2078
2093
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2249,6 +2264,14 @@ h2.react-datepicker__current-month {
|
|
|
2249
2264
|
-webkit-user-select: none;
|
|
2250
2265
|
user-select: none;
|
|
2251
2266
|
}
|
|
2267
|
+
.group-hover\:translate-x-0\.5 {
|
|
2268
|
+
&:is(:where(.group):hover *) {
|
|
2269
|
+
@media (hover: hover) {
|
|
2270
|
+
--tw-translate-x: calc(var(--spacing) * 0.5);
|
|
2271
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
2272
|
+
}
|
|
2273
|
+
}
|
|
2274
|
+
}
|
|
2252
2275
|
.first\:border-l-0 {
|
|
2253
2276
|
&:first-child {
|
|
2254
2277
|
border-left-style: var(--tw-border-style);
|
|
@@ -3055,6 +3078,12 @@ h2.react-datepicker__current-month {
|
|
|
3055
3078
|
height: calc(var(--spacing) * 4);
|
|
3056
3079
|
}
|
|
3057
3080
|
}
|
|
3081
|
+
.\[\&_svg\]\:size-5 {
|
|
3082
|
+
& svg {
|
|
3083
|
+
width: calc(var(--spacing) * 5);
|
|
3084
|
+
height: calc(var(--spacing) * 5);
|
|
3085
|
+
}
|
|
3086
|
+
}
|
|
3058
3087
|
.\[\&_td\]\:py-2 {
|
|
3059
3088
|
& td {
|
|
3060
3089
|
padding-block: calc(var(--spacing) * 2);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wellingtonhlc/shared-ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"react-dom": "^18.3.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@storybook/addon-a11y": "^10.4.
|
|
42
|
-
"@storybook/addon-docs": "^10.4.
|
|
43
|
-
"@storybook/react-vite": "^10.4.
|
|
41
|
+
"@storybook/addon-a11y": "^10.4.6",
|
|
42
|
+
"@storybook/addon-docs": "^10.4.6",
|
|
43
|
+
"@storybook/react-vite": "^10.4.6",
|
|
44
44
|
"@tailwindcss/postcss": "4.1.10",
|
|
45
45
|
"@types/react": "^19.1.2",
|
|
46
46
|
"@types/react-dom": "^19.1.2",
|
|
47
47
|
"autoprefixer": "^10.5.0",
|
|
48
48
|
"lucide-react": "^0.522.0",
|
|
49
49
|
"postcss": "^8.5.15",
|
|
50
|
-
"storybook": "^10.4.
|
|
50
|
+
"storybook": "^10.4.6",
|
|
51
51
|
"tailwindcss": "4.1.10",
|
|
52
52
|
"typescript": "~5.8.3",
|
|
53
53
|
"vite": "^8.0.16"
|