@snksergio/design-system 0.49.0 → 0.50.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/README.md +1 -1
- package/dist-lib/chunks/{panel-57Pt_bL9.cjs → panel-Bly-rNP9.cjs} +2 -2
- package/dist-lib/chunks/{panel-57Pt_bL9.cjs.map → panel-Bly-rNP9.cjs.map} +1 -1
- package/dist-lib/chunks/{panel-DlZeQw7G.mjs → panel-DA6K3a3n.mjs} +2 -2
- package/dist-lib/chunks/{panel-DlZeQw7G.mjs.map → panel-DA6K3a3n.mjs.map} +1 -1
- package/dist-lib/chunks/{sheet-7v5vamnP.mjs → sheet-DIpYkRYS.mjs} +32 -32
- package/dist-lib/chunks/{sheet-7v5vamnP.mjs.map → sheet-DIpYkRYS.mjs.map} +1 -1
- package/dist-lib/chunks/{sheet-BZlQ0gKA.cjs → sheet-rg6uupt1.cjs} +33 -33
- package/dist-lib/chunks/{sheet-BZlQ0gKA.cjs.map → sheet-rg6uupt1.cjs.map} +1 -1
- package/dist-lib/chunks/{toggle-group-DkCrzjfE.cjs → toggle-group-C9rrkkmh.cjs} +38 -38
- package/dist-lib/chunks/toggle-group-C9rrkkmh.cjs.map +1 -0
- package/dist-lib/chunks/{toggle-group-C3srOzNZ.mjs → toggle-group-mXbG8_Jm.mjs} +37 -37
- package/dist-lib/chunks/toggle-group-mXbG8_Jm.mjs.map +1 -0
- package/dist-lib/index.cjs +298 -45
- package/dist-lib/index.cjs.map +1 -1
- package/dist-lib/index.mjs +302 -49
- package/dist-lib/index.mjs.map +1 -1
- package/dist-lib/preview/clientes.cjs +2 -2
- package/dist-lib/preview/clientes.mjs +2 -2
- package/dist-lib/shadcn.cjs +2 -2
- package/dist-lib/shadcn.mjs +2 -2
- package/dist-lib/src/components/index.d.ts +1 -0
- package/dist-lib/src/components/index.d.ts.map +1 -1
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.d.ts +30 -31
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.d.ts.map +1 -1
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.styles.d.ts +5 -0
- package/dist-lib/src/components/ui/CardCheckbox/card-checkbox.styles.d.ts.map +1 -1
- package/dist-lib/src/components/ui/CardOption/card-option.d.ts +27 -0
- package/dist-lib/src/components/ui/CardOption/card-option.d.ts.map +1 -0
- package/dist-lib/src/components/ui/CardOption/card-option.styles.d.ts +381 -0
- package/dist-lib/src/components/ui/CardOption/card-option.styles.d.ts.map +1 -0
- package/dist-lib/src/components/ui/CardOption/card-option.types.d.ts +76 -0
- package/dist-lib/src/components/ui/CardOption/card-option.types.d.ts.map +1 -0
- package/dist-lib/src/components/ui/CardOption/index.d.ts +4 -0
- package/dist-lib/src/components/ui/CardOption/index.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist-lib/chunks/toggle-group-C3srOzNZ.mjs.map +0 -1
- package/dist-lib/chunks/toggle-group-DkCrzjfE.cjs.map +0 -1
|
@@ -5,10 +5,10 @@ const React = require("react");
|
|
|
5
5
|
const useTheme = require("../chunks/useTheme-Dh3POjCr.cjs");
|
|
6
6
|
const lucideReact = require("lucide-react");
|
|
7
7
|
const clientesShowcaseMocks = require("../chunks/clientes-showcase-mocks-CwhluBTT.cjs");
|
|
8
|
-
const panel = require("../chunks/panel-
|
|
8
|
+
const panel = require("../chunks/panel-Bly-rNP9.cjs");
|
|
9
9
|
const avatar = require("../chunks/avatar-DAmZ7fBZ.cjs");
|
|
10
10
|
require("../chunks/input-Ci_2-5Te.cjs");
|
|
11
|
-
require("../chunks/sheet-
|
|
11
|
+
require("../chunks/sheet-rg6uupt1.cjs");
|
|
12
12
|
const pageHeader = require("../chunks/page-header-DrKDiVFN.cjs");
|
|
13
13
|
require("react-dom");
|
|
14
14
|
const appShellMocks = require("../chunks/app-shell-mocks-oO_IV3Gw.cjs");
|
|
@@ -3,10 +3,10 @@ import { useState, useEffect, useRef, useCallback, useMemo } from "react";
|
|
|
3
3
|
import { a as ChipGroup, b as ChipGroupItem, C as Chip, u as useTheme, A as AppShell } from "../chunks/useTheme-Bk8AYqLr.mjs";
|
|
4
4
|
import { Pencil, Trash2, ChevronDown, MoreHorizontal, Plus, Download, Maximize2, Copy, Upload, RotateCcw, MessageSquare, Archive, Clock } from "lucide-react";
|
|
5
5
|
import { S as STATUSES, a as STATUS_DOT, C as CATEGORIES, b as CITIES, A as AGENTS, d as CATEGORY_KIND, f as formatBRL, e as formatShortDate, g as CLIENTS_87, K as KANBAN_COLUMNS, h as STATUS_OPTIONS, i as CATEGORY_OPTIONS, j as AGENTS_LOOKUP, k as AGENT_OPTIONS } from "../chunks/clientes-showcase-mocks-CwWGCCmf.mjs";
|
|
6
|
-
import { P as Panel, F as FormFieldInput, a as FormField, b as FormFieldSelect, c as FormFieldTextarea, d as FloatingPanel, p as presetView, D as DataTable, B as BulkActionButton, A as AlertModal } from "../chunks/panel-
|
|
6
|
+
import { P as Panel, F as FormFieldInput, a as FormField, b as FormFieldSelect, c as FormFieldTextarea, d as FloatingPanel, p as presetView, D as DataTable, B as BulkActionButton, A as AlertModal } from "../chunks/panel-DA6K3a3n.mjs";
|
|
7
7
|
import { a8 as tv, a7 as Button, A as Avatar, a as AvatarFallback } from "../chunks/avatar-FPbG1TRy.mjs";
|
|
8
8
|
import "../chunks/input-tjIT8HNE.mjs";
|
|
9
|
-
import "../chunks/sheet-
|
|
9
|
+
import "../chunks/sheet-DIpYkRYS.mjs";
|
|
10
10
|
import { P as PageHeader } from "../chunks/page-header-DdWp9c-r.mjs";
|
|
11
11
|
import "react-dom";
|
|
12
12
|
import { b as APP_SHELL_LAYOUT_OPTIONS, f as APP_SHELL_USER, e as APP_SHELL_THEME_OPTIONS, c as APP_SHELL_MESSAGES, d as APP_SHELL_NOTIFICATIONS, A as APP_SHELL_COMMANDS, a as APP_SHELL_CONTEXTS } from "../chunks/app-shell-mocks-kWIVSzLs.mjs";
|
package/dist-lib/shadcn.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const toggleGroup = require("./chunks/toggle-group-
|
|
4
|
-
const sheet = require("./chunks/sheet-
|
|
3
|
+
const toggleGroup = require("./chunks/toggle-group-C9rrkkmh.cjs");
|
|
4
|
+
const sheet = require("./chunks/sheet-rg6uupt1.cjs");
|
|
5
5
|
const AspectRatioPrimitive = require("@radix-ui/react-aspect-ratio");
|
|
6
6
|
const avatar = require("./chunks/avatar-DAmZ7fBZ.cjs");
|
|
7
7
|
const input = require("./chunks/input-Ci_2-5Te.cjs");
|
package/dist-lib/shadcn.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A, a, b, c, d, e, f, B, g, h, i, j, k, l, m, C, n, o, p, q, r, s, t, u, v, w, x, y, z, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM } from "./chunks/toggle-group-
|
|
2
|
-
import { A as A2, a as a10, b as b2, c as c2, d as d2, e as e2, f as f2, g as g2, h as h2, i as i2, j as j2, C as C2, k as k2, l as l2, P as P2, m as m2, n as n2, o as o2, p as p2, q as q2, r as r2, s as s2, t as t2, S as S2, u as u2, v as v2, w as w2, x as x2, y as y2, z as z2, B as B2, D as D2, E as E2, F as F2, G as G2, H as H2, I as I2, J as J2, K as K2, L as L2, M as M2, N as N2, O as O2, Q as Q2, T as T2, R as R2, U as U2, V as V2, W as W2 } from "./chunks/sheet-
|
|
1
|
+
import { A, a, b, c, d, e, f, B, g, h, i, j, k, l, m, C, n, o, p, q, r, s, t, u, v, w, x, y, z, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM } from "./chunks/toggle-group-mXbG8_Jm.mjs";
|
|
2
|
+
import { A as A2, a as a10, b as b2, c as c2, d as d2, e as e2, f as f2, g as g2, h as h2, i as i2, j as j2, C as C2, k as k2, l as l2, P as P2, m as m2, n as n2, o as o2, p as p2, q as q2, r as r2, s as s2, t as t2, S as S2, u as u2, v as v2, w as w2, x as x2, y as y2, z as z2, B as B2, D as D2, E as E2, F as F2, G as G2, H as H2, I as I2, J as J2, K as K2, L as L2, M as M2, N as N2, O as O2, Q as Q2, T as T2, R as R2, U as U2, V as V2, W as W2 } from "./chunks/sheet-DIpYkRYS.mjs";
|
|
3
3
|
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
|
|
4
4
|
import { A as A3, a as a11, b as b3, C as C3, d as d3, e as e3, f as f3, g as g3, h as h3, i as i3, j as j3, k as k3, l as l3, m as m3, n as n3, D as D3, o as o3, p as p3, q as q3, r as r3, s as s3, t as t3, u as u3, v as v3, w as w3, x as x3, y as y3, z as z3, B as B3, E as E3, F as F3, G as G3, H as H3, I as I3, J as J3, K as K3, L as L3, M as M3, N as N3, O as O3, P as P3, Q as Q3, R as R3, S as S3, T as T3, U as U3, V as V3, W as W3, X as X2, Y as Y2, Z as Z2, _ as _2, $ as $2, a0 as a02, a1 as a12, a2 as a22, a3 as a32, a4 as a42, a5 as a52, a6 as a62 } from "./chunks/avatar-FPbG1TRy.mjs";
|
|
5
5
|
import { I as I4, i as i4 } from "./chunks/input-tjIT8HNE.mjs";
|
|
@@ -13,6 +13,7 @@ export * from './ui/avatar-ig';
|
|
|
13
13
|
export * from './ui/Button';
|
|
14
14
|
export * from './ui/ButtonGroup';
|
|
15
15
|
export * from './ui/CardCheckbox';
|
|
16
|
+
export * from './ui/CardOption';
|
|
16
17
|
export * from './ui/Chip';
|
|
17
18
|
export * from './ui/ColorPicker';
|
|
18
19
|
export * from './ui/Combobox';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +1,41 @@
|
|
|
1
|
-
import { ReactNode
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export type CardCheckboxProps = Omit<ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "id" | "className"> & {
|
|
5
|
-
/** Label principal — chamada do card */
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { CardOptionSize } from '../CardOption';
|
|
3
|
+
export type CardCheckboxProps = {
|
|
6
4
|
label: ReactNode;
|
|
7
5
|
/** Texto secundário abaixo do label */
|
|
8
6
|
description?: ReactNode;
|
|
9
|
-
/**
|
|
7
|
+
/** Ícone à esquerda, entre o checkbox e o texto */
|
|
10
8
|
icon?: ReactNode;
|
|
11
|
-
|
|
9
|
+
checked?: boolean;
|
|
10
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
id?: string;
|
|
13
|
+
size?: CardOptionSize;
|
|
12
14
|
className?: string;
|
|
13
|
-
}
|
|
15
|
+
};
|
|
14
16
|
/**
|
|
15
|
-
* CardCheckbox —
|
|
17
|
+
* CardCheckbox — atalho de `<CardOption type="checkbox">`.
|
|
16
18
|
*
|
|
17
|
-
*
|
|
18
|
-
* selected). Diferente do FormFieldCheckbox que é layout horizontal compact —
|
|
19
|
-
* CardCheckbox é UI de "opção destacada" com label + description visíveis.
|
|
19
|
+
* ## Por que virou wrapper em 2026-08-27
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* onCheckedChange={(v) => setSave(v === true)}
|
|
27
|
-
* />
|
|
21
|
+
* Este componente era o ÚNICO dos três padrões de "card com controle" que existia de fato: o
|
|
22
|
+
* card de radio e o de switch eram markup solto dentro das páginas de doc, e por isso os três
|
|
23
|
+
* divergiam em 11 dimensões (alinhamento, padding, radius, presets do label e da descrição,
|
|
24
|
+
* cor do selecionado, lado do input…). A implementação foi unificada no `CardOption`, e este
|
|
25
|
+
* arquivo ficou como atalho.
|
|
28
26
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
27
|
+
* **Não foi deprecado nem removido**, e isso é deliberado: ele está no `registry.json`, no
|
|
28
|
+
* barrel do npm, no vocabulário do consumidor e em **duas telas reais** — uma delas o
|
|
29
|
+
* `example-finance`, que é distribuído. Trocar a API aqui seria breaking pra quem consome por
|
|
30
|
+
* npm sem ganho nenhum: o comportamento é idêntico.
|
|
31
|
+
*
|
|
32
|
+
* Componente NOVO deve usar `CardOption` direto — é lá que estão `type`, `orientation`,
|
|
33
|
+
* `layout="list"` e a matriz de tamanhos.
|
|
34
|
+
*
|
|
35
|
+
* ⚠️ Uma diferença de comportamento, e ela é CONSERTO: o anel de foco agora é do card, via
|
|
36
|
+
* `has-[:focus-visible]`. A versão anterior declarava `focus-visible:ring-4` no próprio
|
|
37
|
+
* `<label>`, que não recebe foco — era CSS morto, e o único anel visível era o do checkbox de
|
|
38
|
+
* 16px (medido no browser).
|
|
31
39
|
*/
|
|
32
|
-
export declare const CardCheckbox: import('react').ForwardRefExoticComponent<
|
|
33
|
-
/** Label principal — chamada do card */
|
|
34
|
-
label: ReactNode;
|
|
35
|
-
/** Texto secundário abaixo do label */
|
|
36
|
-
description?: ReactNode;
|
|
37
|
-
/** ReactNode opcional renderizado à esquerda (antes do checkbox) — ex: <Save /> */
|
|
38
|
-
icon?: ReactNode;
|
|
39
|
-
/** className aplicado ao card root (sobrescreve background/border se necessário) */
|
|
40
|
-
className?: string;
|
|
41
|
-
} & Omit<CardCheckboxVariants, "selected"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
40
|
+
export declare const CardCheckbox: import('react').ForwardRefExoticComponent<CardCheckboxProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
42
41
|
//# sourceMappingURL=card-checkbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/CardCheckbox/card-checkbox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"card-checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/CardCheckbox/card-checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mDAAmD;IACnD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,YAAY,iHAIxB,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { VariantProps } from '../../../utils/tv';
|
|
2
2
|
/**
|
|
3
|
+
* ⚠️ SUPERSEDIDO pelo `cardOption` (ui/CardOption) em 2026-08-27 — a implementação foi
|
|
4
|
+
* unificada porque os três padrões de card-com-controle divergiam em 11 dimensões. Este
|
|
5
|
+
* `tv()` não é mais consumido por componente nenhum; segue exportado porque está no barrel
|
|
6
|
+
* público e remover seria breaking sem ganho. Não escreva componente novo sobre ele.
|
|
7
|
+
*
|
|
3
8
|
* CardCheckbox — checkbox apresentado como card clicável (área grande,
|
|
4
9
|
* label + description visíveis). Mesma estética dos radio cards (border +
|
|
5
10
|
* bg + padding + selected state com bg-success-muted + border-brand).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-checkbox.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/CardCheckbox/card-checkbox.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"card-checkbox.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/CardCheckbox/card-checkbox.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA2BvB,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CardOptionGroupProps, CardOptionProps } from './card-option.types';
|
|
2
|
+
/**
|
|
3
|
+
* `CardOptionGroup` — o container.
|
|
4
|
+
*
|
|
5
|
+
* Existe por dois motivos que se somam:
|
|
6
|
+
*
|
|
7
|
+
* 1. **`type="radio"` PRECISA de um pai.** É o `RadioGroup` do Radix que dá navegação por
|
|
8
|
+
* seta e agrupamento por `name`. Checkbox e switch são autônomos — nesses casos o grupo
|
|
9
|
+
* é só um `<div>`.
|
|
10
|
+
* 2. **O modo lista mora aqui.** Em `layout="list"` a borda e o arredondamento são do
|
|
11
|
+
* GRUPO e o item perde os seus (`inList`) — a divisória é a borda de baixo de cada item,
|
|
12
|
+
* com a última suprimida. Se cada item mantivesse a borda inteira, a lista sairia com
|
|
13
|
+
* borda dupla entre linhas. (Não é `divide-y`: ele põe `border-top` nos filhos e brigava
|
|
14
|
+
* com o reset de borda do item — resultado medido era ZERO divisória.)
|
|
15
|
+
*/
|
|
16
|
+
export declare const CardOptionGroup: import('react').ForwardRefExoticComponent<CardOptionGroupProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
17
|
+
/**
|
|
18
|
+
* `CardOption` — o item.
|
|
19
|
+
*
|
|
20
|
+
* ⚠️ **É um `<label htmlFor>` nativo, nunca `<button onClick>` (L-025).** Com `button`, o
|
|
21
|
+
* leitor de tela anuncia "button" em vez de checkbox/radio, o submit nativo perde
|
|
22
|
+
* `name`/`value`, e o `stopPropagation` do controle interno faz o clique no card não chegar
|
|
23
|
+
* nele. O label nativo propaga o clique pro controle real e preserva a semântica — foi a
|
|
24
|
+
* lição que o `CardCheckbox` já carregava e que esta implementação mantém.
|
|
25
|
+
*/
|
|
26
|
+
export declare const CardOption: import('react').ForwardRefExoticComponent<CardOptionProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
27
|
+
//# sourceMappingURL=card-option.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-option.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/CardOption/card-option.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,oBAAoB,EAGpB,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AA+B7B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,iHAuD3B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,+GA2GtB,CAAC"}
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import { VariantProps } from '../../../utils/tv';
|
|
2
|
+
/**
|
|
3
|
+
* CardOption — controle de formulário apresentado como card clicável, com o controle
|
|
4
|
+
* (checkbox, radio ou switch) trocável por prop.
|
|
5
|
+
*
|
|
6
|
+
* ## Por que um componente e não três
|
|
7
|
+
*
|
|
8
|
+
* Medido em 2026-08-27: dos três padrões de "card com controle" que o DS mostrava, **só um
|
|
9
|
+
* era componente** (`CardCheckbox`). O "Card Selection" do radio e o "Card Toggle" do switch
|
|
10
|
+
* eram markup solto dentro das páginas de doc — e por isso divergiam em 11 dimensões:
|
|
11
|
+
* alinhamento (`items-start` vs `items-center`), padding (20px vs 12px), radius, preset do
|
|
12
|
+
* label (`body-md medium` vs `body-sm semibold`), preset da descrição (`body-md` onde devia
|
|
13
|
+
* ser `caption`), cor do selecionado, lado do input, e por aí.
|
|
14
|
+
*
|
|
15
|
+
* O que produziu a divergência foi a ausência de componente, não falta de disciplina: cada
|
|
16
|
+
* exemplo foi escrito à mão, em momentos diferentes, e quem copiasse da doc levava a versão
|
|
17
|
+
* daquele dia. `has-[[data-state=checked]]` aparecia 5× no repo, **todas** em página de doc e
|
|
18
|
+
* nenhuma em tela real — ou seja, a janela pra unificar era esta, sem migração.
|
|
19
|
+
*
|
|
20
|
+
* ## As duas assimetrias que o `type` carrega
|
|
21
|
+
*
|
|
22
|
+
* Não é "o mesmo card com controle diferente" em tudo:
|
|
23
|
+
*
|
|
24
|
+
* 1. **Lado do controle.** Checkbox/radio à esquerda, switch à direita — convenção de linha
|
|
25
|
+
* de configuração. Um default único erraria metade dos casos, então o default deriva do
|
|
26
|
+
* `type` (ver `card-option.tsx`).
|
|
27
|
+
* 2. **Destaque de selecionado.** Radio/checkbox SELECIONAM uma opção e ganham o destaque
|
|
28
|
+
* (`bg-success-muted` + `border-brand`). Switch é ESTADO, não seleção: uma lista de
|
|
29
|
+
* settings toda verde é ruído, e é exatamente por isso que o exemplo antigo do switch
|
|
30
|
+
* não tinha estado nenhum. Daí `highlightSelected` derivar do `type`.
|
|
31
|
+
*
|
|
32
|
+
* ## Foco — corrige defeito do CardCheckbox
|
|
33
|
+
*
|
|
34
|
+
* O anel vai no card por **`has-[:focus-visible]`**, não por `focus-visible:` no root. O
|
|
35
|
+
* `CardCheckbox` declarava `focus-visible:ring-4` no `<label>`, e **label não recebe foco**:
|
|
36
|
+
* era CSS morto (verificado no browser em 2026-08-27 — o anel que aparecia era só o do
|
|
37
|
+
* controle de 16px, do `shadcn/checkbox`). Com `has-`, o card inteiro reage ao foco do
|
|
38
|
+
* controle interno, que é o que a área clicável grande promete.
|
|
39
|
+
*/
|
|
40
|
+
export declare const cardOption: import('tailwind-variants').TVReturnType<{
|
|
41
|
+
size: {
|
|
42
|
+
sm: {
|
|
43
|
+
root: string;
|
|
44
|
+
label: string;
|
|
45
|
+
description: string;
|
|
46
|
+
};
|
|
47
|
+
md: {
|
|
48
|
+
root: string;
|
|
49
|
+
label: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
lg: {
|
|
53
|
+
root: string;
|
|
54
|
+
label: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Onde o CONTROLE fica — e só ele.
|
|
60
|
+
*
|
|
61
|
+
* ⚠️ Era `flex-row-reverse` no root, que invertia TODOS os filhos e levava o ícone pra
|
|
62
|
+
* direita junto. O ícone tem de ficar sempre à esquerda: ele identifica a opção (junto do
|
|
63
|
+
* texto), enquanto o controle é a ação. `order-last` move apenas o controle, mantendo
|
|
64
|
+
* ícone → texto na ordem de leitura em qualquer orientação.
|
|
65
|
+
*/
|
|
66
|
+
orientation: {
|
|
67
|
+
left: {};
|
|
68
|
+
right: {
|
|
69
|
+
control: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* O destaque de selecionado vem do **data attribute do controle**, não de prop.
|
|
74
|
+
*
|
|
75
|
+
* ⚠️ A 1ª versão derivava de `checked === true` em JS e o card de **radio nunca
|
|
76
|
+
* destacava** — a seleção do radio mora no `value` do grupo, não numa prop do item, então
|
|
77
|
+
* a condição era falsa por construção. Pego no browser: o item com
|
|
78
|
+
* `data-state="checked"` seguia branco.
|
|
79
|
+
*
|
|
80
|
+
* `has-[[data-state=checked]]` resolve os três tipos de uma vez e funciona também em uso
|
|
81
|
+
* NÃO-CONTROLADO (`defaultValue`/`defaultChecked`), onde nenhuma prop diz o estado. É a
|
|
82
|
+
* L-012: Radix marca estado por data attribute, não por atributo HTML.
|
|
83
|
+
*
|
|
84
|
+
* ⚠️ Quem decide se esta variante entra é o `card-option.tsx`, e o default DEPENDE DO
|
|
85
|
+
* CONTEXTO: em card solto vem do `type`; **em lista vem desligado**, porque a única borda
|
|
86
|
+
* do item ali é a de baixo — a divisória — e pintá-la colore a linha que separa o
|
|
87
|
+
* selecionado do vizinho, não o contorno dele.
|
|
88
|
+
*/
|
|
89
|
+
highlight: {
|
|
90
|
+
true: {
|
|
91
|
+
root: string[];
|
|
92
|
+
};
|
|
93
|
+
false: {
|
|
94
|
+
root: string;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Dentro de um grupo `layout="list"`: sem cantos e sem borda em volta — quem desenha o
|
|
99
|
+
* contorno é o grupo. O que sobra é a **linha divisória**, feita pela borda de baixo de
|
|
100
|
+
* cada item, com o último suprimido.
|
|
101
|
+
*
|
|
102
|
+
* ⚠️ A 1ª versão era `border-0` no item + `divide-y` no grupo, e **não desenhava divisória
|
|
103
|
+
* nenhuma**: o `divide-y` funciona pondo `border-top` nos filhos a partir do 2º, e o
|
|
104
|
+
* `border-0` do item zerava justamente essa borda. Medido no browser — `border-top: 0px`
|
|
105
|
+
* nos três itens. Desenhar a borda no próprio item não depende dessa ordem de cascata.
|
|
106
|
+
*/
|
|
107
|
+
inList: {
|
|
108
|
+
true: {
|
|
109
|
+
root: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
disabled: {
|
|
113
|
+
true: {
|
|
114
|
+
root: string;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
}, {
|
|
118
|
+
root: string[];
|
|
119
|
+
control: string;
|
|
120
|
+
iconWrap: string;
|
|
121
|
+
body: string;
|
|
122
|
+
label: string;
|
|
123
|
+
description: string;
|
|
124
|
+
}, undefined, {
|
|
125
|
+
size: {
|
|
126
|
+
sm: {
|
|
127
|
+
root: string;
|
|
128
|
+
label: string;
|
|
129
|
+
description: string;
|
|
130
|
+
};
|
|
131
|
+
md: {
|
|
132
|
+
root: string;
|
|
133
|
+
label: string;
|
|
134
|
+
description: string;
|
|
135
|
+
};
|
|
136
|
+
lg: {
|
|
137
|
+
root: string;
|
|
138
|
+
label: string;
|
|
139
|
+
description: string;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Onde o CONTROLE fica — e só ele.
|
|
144
|
+
*
|
|
145
|
+
* ⚠️ Era `flex-row-reverse` no root, que invertia TODOS os filhos e levava o ícone pra
|
|
146
|
+
* direita junto. O ícone tem de ficar sempre à esquerda: ele identifica a opção (junto do
|
|
147
|
+
* texto), enquanto o controle é a ação. `order-last` move apenas o controle, mantendo
|
|
148
|
+
* ícone → texto na ordem de leitura em qualquer orientação.
|
|
149
|
+
*/
|
|
150
|
+
orientation: {
|
|
151
|
+
left: {};
|
|
152
|
+
right: {
|
|
153
|
+
control: string;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* O destaque de selecionado vem do **data attribute do controle**, não de prop.
|
|
158
|
+
*
|
|
159
|
+
* ⚠️ A 1ª versão derivava de `checked === true` em JS e o card de **radio nunca
|
|
160
|
+
* destacava** — a seleção do radio mora no `value` do grupo, não numa prop do item, então
|
|
161
|
+
* a condição era falsa por construção. Pego no browser: o item com
|
|
162
|
+
* `data-state="checked"` seguia branco.
|
|
163
|
+
*
|
|
164
|
+
* `has-[[data-state=checked]]` resolve os três tipos de uma vez e funciona também em uso
|
|
165
|
+
* NÃO-CONTROLADO (`defaultValue`/`defaultChecked`), onde nenhuma prop diz o estado. É a
|
|
166
|
+
* L-012: Radix marca estado por data attribute, não por atributo HTML.
|
|
167
|
+
*
|
|
168
|
+
* ⚠️ Quem decide se esta variante entra é o `card-option.tsx`, e o default DEPENDE DO
|
|
169
|
+
* CONTEXTO: em card solto vem do `type`; **em lista vem desligado**, porque a única borda
|
|
170
|
+
* do item ali é a de baixo — a divisória — e pintá-la colore a linha que separa o
|
|
171
|
+
* selecionado do vizinho, não o contorno dele.
|
|
172
|
+
*/
|
|
173
|
+
highlight: {
|
|
174
|
+
true: {
|
|
175
|
+
root: string[];
|
|
176
|
+
};
|
|
177
|
+
false: {
|
|
178
|
+
root: string;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Dentro de um grupo `layout="list"`: sem cantos e sem borda em volta — quem desenha o
|
|
183
|
+
* contorno é o grupo. O que sobra é a **linha divisória**, feita pela borda de baixo de
|
|
184
|
+
* cada item, com o último suprimido.
|
|
185
|
+
*
|
|
186
|
+
* ⚠️ A 1ª versão era `border-0` no item + `divide-y` no grupo, e **não desenhava divisória
|
|
187
|
+
* nenhuma**: o `divide-y` funciona pondo `border-top` nos filhos a partir do 2º, e o
|
|
188
|
+
* `border-0` do item zerava justamente essa borda. Medido no browser — `border-top: 0px`
|
|
189
|
+
* nos três itens. Desenhar a borda no próprio item não depende dessa ordem de cascata.
|
|
190
|
+
*/
|
|
191
|
+
inList: {
|
|
192
|
+
true: {
|
|
193
|
+
root: string;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
disabled: {
|
|
197
|
+
true: {
|
|
198
|
+
root: string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
}, {
|
|
202
|
+
root: string[];
|
|
203
|
+
control: string;
|
|
204
|
+
iconWrap: string;
|
|
205
|
+
body: string;
|
|
206
|
+
label: string;
|
|
207
|
+
description: string;
|
|
208
|
+
}, import('tailwind-variants').TVReturnType<{
|
|
209
|
+
size: {
|
|
210
|
+
sm: {
|
|
211
|
+
root: string;
|
|
212
|
+
label: string;
|
|
213
|
+
description: string;
|
|
214
|
+
};
|
|
215
|
+
md: {
|
|
216
|
+
root: string;
|
|
217
|
+
label: string;
|
|
218
|
+
description: string;
|
|
219
|
+
};
|
|
220
|
+
lg: {
|
|
221
|
+
root: string;
|
|
222
|
+
label: string;
|
|
223
|
+
description: string;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Onde o CONTROLE fica — e só ele.
|
|
228
|
+
*
|
|
229
|
+
* ⚠️ Era `flex-row-reverse` no root, que invertia TODOS os filhos e levava o ícone pra
|
|
230
|
+
* direita junto. O ícone tem de ficar sempre à esquerda: ele identifica a opção (junto do
|
|
231
|
+
* texto), enquanto o controle é a ação. `order-last` move apenas o controle, mantendo
|
|
232
|
+
* ícone → texto na ordem de leitura em qualquer orientação.
|
|
233
|
+
*/
|
|
234
|
+
orientation: {
|
|
235
|
+
left: {};
|
|
236
|
+
right: {
|
|
237
|
+
control: string;
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* O destaque de selecionado vem do **data attribute do controle**, não de prop.
|
|
242
|
+
*
|
|
243
|
+
* ⚠️ A 1ª versão derivava de `checked === true` em JS e o card de **radio nunca
|
|
244
|
+
* destacava** — a seleção do radio mora no `value` do grupo, não numa prop do item, então
|
|
245
|
+
* a condição era falsa por construção. Pego no browser: o item com
|
|
246
|
+
* `data-state="checked"` seguia branco.
|
|
247
|
+
*
|
|
248
|
+
* `has-[[data-state=checked]]` resolve os três tipos de uma vez e funciona também em uso
|
|
249
|
+
* NÃO-CONTROLADO (`defaultValue`/`defaultChecked`), onde nenhuma prop diz o estado. É a
|
|
250
|
+
* L-012: Radix marca estado por data attribute, não por atributo HTML.
|
|
251
|
+
*
|
|
252
|
+
* ⚠️ Quem decide se esta variante entra é o `card-option.tsx`, e o default DEPENDE DO
|
|
253
|
+
* CONTEXTO: em card solto vem do `type`; **em lista vem desligado**, porque a única borda
|
|
254
|
+
* do item ali é a de baixo — a divisória — e pintá-la colore a linha que separa o
|
|
255
|
+
* selecionado do vizinho, não o contorno dele.
|
|
256
|
+
*/
|
|
257
|
+
highlight: {
|
|
258
|
+
true: {
|
|
259
|
+
root: string[];
|
|
260
|
+
};
|
|
261
|
+
false: {
|
|
262
|
+
root: string;
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Dentro de um grupo `layout="list"`: sem cantos e sem borda em volta — quem desenha o
|
|
267
|
+
* contorno é o grupo. O que sobra é a **linha divisória**, feita pela borda de baixo de
|
|
268
|
+
* cada item, com o último suprimido.
|
|
269
|
+
*
|
|
270
|
+
* ⚠️ A 1ª versão era `border-0` no item + `divide-y` no grupo, e **não desenhava divisória
|
|
271
|
+
* nenhuma**: o `divide-y` funciona pondo `border-top` nos filhos a partir do 2º, e o
|
|
272
|
+
* `border-0` do item zerava justamente essa borda. Medido no browser — `border-top: 0px`
|
|
273
|
+
* nos três itens. Desenhar a borda no próprio item não depende dessa ordem de cascata.
|
|
274
|
+
*/
|
|
275
|
+
inList: {
|
|
276
|
+
true: {
|
|
277
|
+
root: string;
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
disabled: {
|
|
281
|
+
true: {
|
|
282
|
+
root: string;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
}, {
|
|
286
|
+
root: string[];
|
|
287
|
+
control: string;
|
|
288
|
+
iconWrap: string;
|
|
289
|
+
body: string;
|
|
290
|
+
label: string;
|
|
291
|
+
description: string;
|
|
292
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
293
|
+
/**
|
|
294
|
+
* O container. Guarda a borda e o arredondamento quando `layout="list"`, porque nesse modo
|
|
295
|
+
* os itens não têm os seus.
|
|
296
|
+
*/
|
|
297
|
+
export declare const cardOptionGroup: import('tailwind-variants').TVReturnType<{
|
|
298
|
+
layout: {
|
|
299
|
+
spaced: string;
|
|
300
|
+
/**
|
|
301
|
+
* O grupo desenha só o contorno; a divisória entre linhas é a borda de baixo de cada
|
|
302
|
+
* item (ver `inList`). Não usa `divide-y`: ele põe `border-top` nos filhos e brigava
|
|
303
|
+
* com o reset de borda do item.
|
|
304
|
+
*
|
|
305
|
+
* Vale pros TRÊS tipos, não só switch — radio em lista é um seletor de linha única, e
|
|
306
|
+
* checkbox em lista é uma lista de permissões.
|
|
307
|
+
*
|
|
308
|
+
* ⚠️ O `gap-0` é obrigatório e não é redundante: com `type="radio"` o grupo É o
|
|
309
|
+
* `RadioGroup` do DS, que traz `grid w-full gap-gp-xl` no base. Sem declarar gap aqui,
|
|
310
|
+
* o `gap-gp-xl` (12px) sobrevivia e a lista de radio saía com 12px entre as linhas —
|
|
311
|
+
* medido. (A 1ª tentativa foi um `grid-none` que eu inventei; classe inexistente é
|
|
312
|
+
* inerte e não zera nada.)
|
|
313
|
+
*/
|
|
314
|
+
list: string;
|
|
315
|
+
};
|
|
316
|
+
size: {
|
|
317
|
+
sm: string;
|
|
318
|
+
md: string;
|
|
319
|
+
lg: string;
|
|
320
|
+
};
|
|
321
|
+
disabled: {
|
|
322
|
+
true: string;
|
|
323
|
+
};
|
|
324
|
+
}, undefined, "flex w-full flex-col", {
|
|
325
|
+
layout: {
|
|
326
|
+
spaced: string;
|
|
327
|
+
/**
|
|
328
|
+
* O grupo desenha só o contorno; a divisória entre linhas é a borda de baixo de cada
|
|
329
|
+
* item (ver `inList`). Não usa `divide-y`: ele põe `border-top` nos filhos e brigava
|
|
330
|
+
* com o reset de borda do item.
|
|
331
|
+
*
|
|
332
|
+
* Vale pros TRÊS tipos, não só switch — radio em lista é um seletor de linha única, e
|
|
333
|
+
* checkbox em lista é uma lista de permissões.
|
|
334
|
+
*
|
|
335
|
+
* ⚠️ O `gap-0` é obrigatório e não é redundante: com `type="radio"` o grupo É o
|
|
336
|
+
* `RadioGroup` do DS, que traz `grid w-full gap-gp-xl` no base. Sem declarar gap aqui,
|
|
337
|
+
* o `gap-gp-xl` (12px) sobrevivia e a lista de radio saía com 12px entre as linhas —
|
|
338
|
+
* medido. (A 1ª tentativa foi um `grid-none` que eu inventei; classe inexistente é
|
|
339
|
+
* inerte e não zera nada.)
|
|
340
|
+
*/
|
|
341
|
+
list: string;
|
|
342
|
+
};
|
|
343
|
+
size: {
|
|
344
|
+
sm: string;
|
|
345
|
+
md: string;
|
|
346
|
+
lg: string;
|
|
347
|
+
};
|
|
348
|
+
disabled: {
|
|
349
|
+
true: string;
|
|
350
|
+
};
|
|
351
|
+
}, undefined, import('tailwind-variants').TVReturnType<{
|
|
352
|
+
layout: {
|
|
353
|
+
spaced: string;
|
|
354
|
+
/**
|
|
355
|
+
* O grupo desenha só o contorno; a divisória entre linhas é a borda de baixo de cada
|
|
356
|
+
* item (ver `inList`). Não usa `divide-y`: ele põe `border-top` nos filhos e brigava
|
|
357
|
+
* com o reset de borda do item.
|
|
358
|
+
*
|
|
359
|
+
* Vale pros TRÊS tipos, não só switch — radio em lista é um seletor de linha única, e
|
|
360
|
+
* checkbox em lista é uma lista de permissões.
|
|
361
|
+
*
|
|
362
|
+
* ⚠️ O `gap-0` é obrigatório e não é redundante: com `type="radio"` o grupo É o
|
|
363
|
+
* `RadioGroup` do DS, que traz `grid w-full gap-gp-xl` no base. Sem declarar gap aqui,
|
|
364
|
+
* o `gap-gp-xl` (12px) sobrevivia e a lista de radio saía com 12px entre as linhas —
|
|
365
|
+
* medido. (A 1ª tentativa foi um `grid-none` que eu inventei; classe inexistente é
|
|
366
|
+
* inerte e não zera nada.)
|
|
367
|
+
*/
|
|
368
|
+
list: string;
|
|
369
|
+
};
|
|
370
|
+
size: {
|
|
371
|
+
sm: string;
|
|
372
|
+
md: string;
|
|
373
|
+
lg: string;
|
|
374
|
+
};
|
|
375
|
+
disabled: {
|
|
376
|
+
true: string;
|
|
377
|
+
};
|
|
378
|
+
}, undefined, "flex w-full flex-col", unknown, unknown, undefined>>;
|
|
379
|
+
export type CardOptionVariants = VariantProps<typeof cardOption>;
|
|
380
|
+
export type CardOptionGroupVariants = VariantProps<typeof cardOptionGroup>;
|
|
381
|
+
//# sourceMappingURL=card-option.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-option.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/CardOption/card-option.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;IAmCnB;;;;;;;OAOG;;;;;;;IAKH;;;;;;;;;;;;;;;;OAgBG;;;;;;;;;IAcH;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnDH;;;;;;;OAOG;;;;;;;IAKH;;;;;;;;;;;;;;;;OAgBG;;;;;;;;;IAcH;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnDH;;;;;;;OAOG;;;;;;;IAKH;;;;;;;;;;;;;;;;OAgBG;;;;;;;;;IAcH;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;2CAoCL,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;QAKtB;;;;;;;;;;;;;WAaG;;;;;;;;;;;;;;QAbH;;;;;;;;;;;;;WAaG;;;;;;;;;;;;;;QAbH;;;;;;;;;;;;;WAaG;;;;;;;;;;;mEAsBP,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AACjE,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC"}
|