@lucasbernardosn/react-ui 0.3.0 → 0.4.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 +2 -1
- package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts +1 -1
- package/dist/components/display/avatar/avatar-root-variants.d.ts +1 -1
- package/dist/components/display/badge/badge-variants.d.ts +4 -1
- package/dist/components/display/badge/badge-variants.js +5 -0
- package/dist/components/display/badge/badge-variants.js.map +1 -1
- package/dist/components/display/badge/badge.d.ts +10 -1
- package/dist/components/display/badge/badge.js +40 -2
- package/dist/components/display/badge/badge.js.map +1 -1
- package/dist/components/display/card/card-body.js +1 -0
- package/dist/components/display/card/card-body.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-label-variants.d.ts +7 -0
- package/dist/components/display/data-list/data-list-item-label-variants.js +27 -0
- package/dist/components/display/data-list/data-list-item-label-variants.js.map +1 -0
- package/dist/components/display/data-list/data-list-item-label.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item-label.js +9 -2
- package/dist/components/display/data-list/data-list-item-label.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-value-variants.d.ts +1 -1
- package/dist/components/display/data-list/data-list-item-value-variants.js +9 -5
- package/dist/components/display/data-list/data-list-item-value-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-value.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item-value.js +4 -3
- package/dist/components/display/data-list/data-list-item-value.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-variants.d.ts +2 -6
- package/dist/components/display/data-list/data-list-item-variants.js +24 -26
- package/dist/components/display/data-list/data-list-item-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item.js +7 -3
- package/dist/components/display/data-list/data-list-item.js.map +1 -1
- package/dist/components/display/data-list/data-list-root-variants.d.ts +1 -2
- package/dist/components/display/data-list/data-list-root-variants.js +7 -24
- package/dist/components/display/data-list/data-list-root-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-root.d.ts +3 -2
- package/dist/components/display/data-list/data-list-root.js +8 -3
- package/dist/components/display/data-list/data-list-root.js.map +1 -1
- package/dist/components/display/data-list/use-data-list-context.d.ts +18 -7
- package/dist/components/display/data-list/use-data-list-context.js +3 -2
- package/dist/components/display/data-list/use-data-list-context.js.map +1 -1
- package/dist/components/display/tag/tag-root-variants.d.ts +1 -2
- package/dist/components/display/tag/tag-root-variants.js +0 -1
- package/dist/components/display/tag/tag-root-variants.js.map +1 -1
- package/dist/components/feedback/alert/alert-indicator.d.ts +2 -2
- package/dist/components/feedback/alert/alert-indicator.js +2 -2
- package/dist/components/feedback/alert/alert-indicator.js.map +1 -1
- package/dist/components/layout/center-absolute/center-absolute-variants.d.ts +1 -1
- package/dist/components/layout/scroll-area/scroll-area-root.d.ts +16 -3
- package/dist/components/layout/scroll-area/scroll-area-root.js +6 -3
- package/dist/components/layout/scroll-area/scroll-area-root.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.d.ts +3 -0
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.js +9 -2
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.d.ts +5 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.js +15 -5
- package/dist/components/layout/scroll-area/scroll-area-thumb.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts +5 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js +8 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts +6 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +9 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts +9 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js +19 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +87 -28
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +120 -55
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.d.ts +24 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js +31 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.d.ts +25 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js +51 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.d.ts +4 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js +13 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts +4 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +7 -6
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.d.ts +2 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.js +2 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-store.d.ts +20 -4
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js +48 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts +3 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js +4 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js.map +1 -1
- package/dist/components/overlays/alert-dialog/index.parts.d.ts +4 -3
- package/dist/components/overlays/alert-dialog/index.parts.js +3 -1
- package/dist/components/overlays/alert-dialog/index.parts.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-body.js +1 -0
- package/dist/components/overlays/dialog/dialog-body.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.d.ts +1 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.js +2 -3
- package/dist/components/overlays/dialog/dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-body.js +1 -0
- package/dist/components/overlays/drawer/drawer-body.js.map +1 -1
- package/dist/components/typography/link/index.d.ts +3 -0
- package/dist/components/typography/link/index.js +2 -0
- package/dist/components/typography/link/link-variants.d.ts +33 -0
- package/dist/components/typography/link/link-variants.js +91 -0
- package/dist/components/typography/link/link-variants.js.map +1 -0
- package/dist/components/typography/link/link.d.ts +50 -0
- package/dist/components/typography/link/link.js +74 -0
- package/dist/components/typography/link/link.js.map +1 -0
- package/dist/components/typography/mark/mark-variants.d.ts +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -120,7 +120,8 @@ Toast.add({ type: 'success', title: 'Nota 4821 emitida' });
|
|
|
120
120
|
const confirmed = await AlertDialog.confirm({
|
|
121
121
|
title: 'Excluir a nota 4821?',
|
|
122
122
|
description: 'A exclusão não pode ser desfeita.',
|
|
123
|
-
|
|
123
|
+
confirmLabel: 'Excluir',
|
|
124
|
+
destructive: true,
|
|
124
125
|
});
|
|
125
126
|
```
|
|
126
127
|
|
|
@@ -10,7 +10,7 @@ export type CollapsiblePanelVariants = {
|
|
|
10
10
|
};
|
|
11
11
|
export declare const collapsiblePanelDefaultVariants: Required<CollapsiblePanelVariants>;
|
|
12
12
|
export declare const collapsiblePanelVariants: (props?: ({
|
|
13
|
-
orientation?: "
|
|
13
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
14
14
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
15
|
//#endregion
|
|
16
16
|
//# sourceMappingURL=collapsible-panel-variants.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/disclosure/tabs/tabs-indicator-variants.d.ts
|
|
2
2
|
export declare const tabsIndicatorVariants: (props?: ({
|
|
3
|
-
variant?: "
|
|
3
|
+
variant?: "subtle" | "outline" | "plain" | "line" | "enclosed" | null | undefined;
|
|
4
4
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
5
|
//#endregion
|
|
6
6
|
//# sourceMappingURL=tabs-indicator-variants.d.ts.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export declare const tabsListVariants: (props?: ({
|
|
3
3
|
fitted?: boolean | null | undefined;
|
|
4
4
|
justify?: "center" | "start" | "end" | null | undefined;
|
|
5
|
-
variant?: "
|
|
5
|
+
variant?: "subtle" | "outline" | "plain" | "line" | "enclosed" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
//#endregion
|
|
8
8
|
//# sourceMappingURL=tabs-list-variants.d.ts.map
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const tabsTabVariants: (props?: ({
|
|
9
9
|
fitted?: boolean | null | undefined;
|
|
10
|
-
variant?: "
|
|
10
|
+
variant?: "subtle" | "outline" | "plain" | "line" | "enclosed" | null | undefined;
|
|
11
11
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
12
12
|
//#endregion
|
|
13
13
|
//# sourceMappingURL=tabs-tab-variants.d.ts.map
|
|
@@ -31,7 +31,7 @@ export declare const avatarRootDefaultVariants: Pick<Required<AvatarRootVariants
|
|
|
31
31
|
* yellow, sky, mint e lime), que levam preto; o gray é preto no tema claro e branco no escuro.
|
|
32
32
|
*/
|
|
33
33
|
export declare const avatarRootVariants: (props?: ({
|
|
34
|
-
colorScheme?: "
|
|
34
|
+
colorScheme?: "gray" | "brand" | "red" | "green" | "blue" | "teal" | "pink" | "purple" | "cyan" | "orange" | "brown" | "yellow" | "amber" | "ruby" | "bronze" | "gold" | "tomato" | "crimson" | "plum" | "violet" | "iris" | "indigo" | "jade" | "grass" | "lime" | "mint" | "sky" | null | undefined;
|
|
35
35
|
size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
36
36
|
variant?: "solid" | "subtle" | "surface" | "outline" | null | undefined;
|
|
37
37
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -31,9 +31,12 @@ export declare const badgeDefaultVariants: Required<BadgeVariants>;
|
|
|
31
31
|
* fundo e a borda usam a escala alpha, para o badge funcionar sobre qualquer fundo. No `solid`, o
|
|
32
32
|
* texto é branco, menos em amber, yellow, sky, mint e lime, claros demais para ele, que levam
|
|
33
33
|
* preto; o gray sólido é preto no tema claro e branco no escuro, como o do `Button`.
|
|
34
|
+
*
|
|
35
|
+
* O `max-w-full` e o `min-w-0` limitam o badge à largura do pai, para o `Badge` cortar um texto
|
|
36
|
+
* longo com reticências. O `shrink-0` fica: numa linha flex, quem encolhe é o vizinho.
|
|
34
37
|
*/
|
|
35
38
|
export declare const badgeVariants: (props?: ({
|
|
36
|
-
colorScheme?: "
|
|
39
|
+
colorScheme?: "gray" | "brand" | "red" | "green" | "blue" | "teal" | "pink" | "purple" | "cyan" | "orange" | "brown" | "yellow" | "amber" | "ruby" | "bronze" | "gold" | "tomato" | "crimson" | "plum" | "violet" | "iris" | "indigo" | "jade" | "grass" | "lime" | "mint" | "sky" | null | undefined;
|
|
37
40
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
38
41
|
variant?: "solid" | "subtle" | "surface" | "outline" | null | undefined;
|
|
39
42
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -13,12 +13,17 @@ const badgeDefaultVariants = {
|
|
|
13
13
|
* fundo e a borda usam a escala alpha, para o badge funcionar sobre qualquer fundo. No `solid`, o
|
|
14
14
|
* texto é branco, menos em amber, yellow, sky, mint e lime, claros demais para ele, que levam
|
|
15
15
|
* preto; o gray sólido é preto no tema claro e branco no escuro, como o do `Button`.
|
|
16
|
+
*
|
|
17
|
+
* O `max-w-full` e o `min-w-0` limitam o badge à largura do pai, para o `Badge` cortar um texto
|
|
18
|
+
* longo com reticências. O `shrink-0` fica: numa linha flex, quem encolhe é o vizinho.
|
|
16
19
|
*/
|
|
17
20
|
const badgeVariants = cva([
|
|
18
21
|
"inline-flex",
|
|
19
22
|
"items-center",
|
|
20
23
|
"shrink-0",
|
|
21
24
|
"align-middle",
|
|
25
|
+
"max-w-full",
|
|
26
|
+
"min-w-0",
|
|
22
27
|
"border",
|
|
23
28
|
"rounded-sm",
|
|
24
29
|
"corner-squircle",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge-variants.js","names":[],"sources":["../../../../src/components/display/badge/badge-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { ColorSchemeFull } from '#types';\n\nexport type BadgeVariants = {\n /**\n * Cor do texto, do fundo e da borda, entre todas as escalas do tema: para categorias, há\n * variedade; para estado, `red`, `green`, `amber` e `blue`.\n *\n * @default 'gray'\n */\n colorScheme?: ColorSchemeFull;\n /**\n * Altura, padding, tamanho do texto e do ícone: `sm` = `h-5`, `md` = `h-6`, `lg` = `h-7`.\n *\n * @default 'sm'\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Fundo e borda: `subtle` só com fundo, `surface` com fundo e borda, `outline` só com borda e\n * `solid` com o fundo cheio (passo 9) e o texto em contraste.\n *\n * @default 'subtle'\n */\n variant?: 'subtle' | 'surface' | 'outline' | 'solid';\n};\n\nexport const badgeDefaultVariants: Required<BadgeVariants> = {\n colorScheme: 'gray',\n size: 'sm',\n variant: 'subtle',\n};\n\n/**\n * Origem do visual do rótulo curto, copiado pela `Tag` (tabela no README de `display`).\n *\n * O `colorScheme` só declara as variáveis `--badge-*`, e a `variant` decide onde cada uma entra.\n * Assim uma cor nova é um bloco de variáveis, sem um bloco por combinação de cor e `variant`. O\n * fundo e a borda usam a escala alpha, para o badge funcionar sobre qualquer fundo. No `solid`, o\n * texto é branco, menos em amber, yellow, sky, mint e lime, claros demais para ele, que levam\n * preto; o gray sólido é preto no tema claro e branco no escuro, como o do `Button`.\n */\nexport const badgeVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'shrink-0',\n 'align-middle',\n\n 'border',\n 'rounded-sm',\n 'corner-squircle',\n\n 'font-medium',\n 'leading-none',\n 'whitespace-nowrap',\n 'tabular-nums',\n\n '[&_svg]:shrink-0',\n ],\n {\n variants: {\n colorScheme: {\n gray: [\n '[--badge-fg:var(--color-gray-11)]',\n '[--badge-subtle-bg:var(--color-gray-alpha-3)]',\n '[--badge-surface-bg:var(--color-gray-alpha-2)]',\n '[--badge-surface-border:var(--color-gray-alpha-6)]',\n '[--badge-outline-border:var(--color-gray-alpha-8)]',\n '[--badge-solid-bg:var(--color-black)]',\n 'dark:[--badge-solid-bg:var(--color-white)]',\n '[--badge-solid-fg:var(--color-white)]',\n 'dark:[--badge-solid-fg:var(--color-black)]',\n ],\n brand: [\n '[--badge-fg:var(--color-brand-11)]',\n '[--badge-subtle-bg:var(--color-brand-alpha-3)]',\n '[--badge-surface-bg:var(--color-brand-alpha-2)]',\n '[--badge-surface-border:var(--color-brand-alpha-6)]',\n '[--badge-outline-border:var(--color-brand-alpha-8)]',\n '[--badge-solid-bg:var(--color-brand-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n red: [\n '[--badge-fg:var(--color-red-11)]',\n '[--badge-subtle-bg:var(--color-red-alpha-3)]',\n '[--badge-surface-bg:var(--color-red-alpha-2)]',\n '[--badge-surface-border:var(--color-red-alpha-6)]',\n '[--badge-outline-border:var(--color-red-alpha-8)]',\n '[--badge-solid-bg:var(--color-red-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n green: [\n '[--badge-fg:var(--color-green-11)]',\n '[--badge-subtle-bg:var(--color-green-alpha-3)]',\n '[--badge-surface-bg:var(--color-green-alpha-2)]',\n '[--badge-surface-border:var(--color-green-alpha-6)]',\n '[--badge-outline-border:var(--color-green-alpha-8)]',\n '[--badge-solid-bg:var(--color-green-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n blue: [\n '[--badge-fg:var(--color-blue-11)]',\n '[--badge-subtle-bg:var(--color-blue-alpha-3)]',\n '[--badge-surface-bg:var(--color-blue-alpha-2)]',\n '[--badge-surface-border:var(--color-blue-alpha-6)]',\n '[--badge-outline-border:var(--color-blue-alpha-8)]',\n '[--badge-solid-bg:var(--color-blue-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n amber: [\n '[--badge-fg:var(--color-amber-11)]',\n '[--badge-subtle-bg:var(--color-amber-alpha-3)]',\n '[--badge-surface-bg:var(--color-amber-alpha-2)]',\n '[--badge-surface-border:var(--color-amber-alpha-6)]',\n '[--badge-outline-border:var(--color-amber-alpha-8)]',\n '[--badge-solid-bg:var(--color-amber-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n purple: [\n '[--badge-fg:var(--color-purple-11)]',\n '[--badge-subtle-bg:var(--color-purple-alpha-3)]',\n '[--badge-surface-bg:var(--color-purple-alpha-2)]',\n '[--badge-surface-border:var(--color-purple-alpha-6)]',\n '[--badge-outline-border:var(--color-purple-alpha-8)]',\n '[--badge-solid-bg:var(--color-purple-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n pink: [\n '[--badge-fg:var(--color-pink-11)]',\n '[--badge-subtle-bg:var(--color-pink-alpha-3)]',\n '[--badge-surface-bg:var(--color-pink-alpha-2)]',\n '[--badge-surface-border:var(--color-pink-alpha-6)]',\n '[--badge-outline-border:var(--color-pink-alpha-8)]',\n '[--badge-solid-bg:var(--color-pink-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n cyan: [\n '[--badge-fg:var(--color-cyan-11)]',\n '[--badge-subtle-bg:var(--color-cyan-alpha-3)]',\n '[--badge-surface-bg:var(--color-cyan-alpha-2)]',\n '[--badge-surface-border:var(--color-cyan-alpha-6)]',\n '[--badge-outline-border:var(--color-cyan-alpha-8)]',\n '[--badge-solid-bg:var(--color-cyan-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n teal: [\n '[--badge-fg:var(--color-teal-11)]',\n '[--badge-subtle-bg:var(--color-teal-alpha-3)]',\n '[--badge-surface-bg:var(--color-teal-alpha-2)]',\n '[--badge-surface-border:var(--color-teal-alpha-6)]',\n '[--badge-outline-border:var(--color-teal-alpha-8)]',\n '[--badge-solid-bg:var(--color-teal-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n orange: [\n '[--badge-fg:var(--color-orange-11)]',\n '[--badge-subtle-bg:var(--color-orange-alpha-3)]',\n '[--badge-surface-bg:var(--color-orange-alpha-2)]',\n '[--badge-surface-border:var(--color-orange-alpha-6)]',\n '[--badge-outline-border:var(--color-orange-alpha-8)]',\n '[--badge-solid-bg:var(--color-orange-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n brown: [\n '[--badge-fg:var(--color-brown-11)]',\n '[--badge-subtle-bg:var(--color-brown-alpha-3)]',\n '[--badge-surface-bg:var(--color-brown-alpha-2)]',\n '[--badge-surface-border:var(--color-brown-alpha-6)]',\n '[--badge-outline-border:var(--color-brown-alpha-8)]',\n '[--badge-solid-bg:var(--color-brown-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n yellow: [\n '[--badge-fg:var(--color-yellow-11)]',\n '[--badge-subtle-bg:var(--color-yellow-alpha-3)]',\n '[--badge-surface-bg:var(--color-yellow-alpha-2)]',\n '[--badge-surface-border:var(--color-yellow-alpha-6)]',\n '[--badge-outline-border:var(--color-yellow-alpha-8)]',\n '[--badge-solid-bg:var(--color-yellow-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n bronze: [\n '[--badge-fg:var(--color-bronze-11)]',\n '[--badge-subtle-bg:var(--color-bronze-alpha-3)]',\n '[--badge-surface-bg:var(--color-bronze-alpha-2)]',\n '[--badge-surface-border:var(--color-bronze-alpha-6)]',\n '[--badge-outline-border:var(--color-bronze-alpha-8)]',\n '[--badge-solid-bg:var(--color-bronze-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n gold: [\n '[--badge-fg:var(--color-gold-11)]',\n '[--badge-subtle-bg:var(--color-gold-alpha-3)]',\n '[--badge-surface-bg:var(--color-gold-alpha-2)]',\n '[--badge-surface-border:var(--color-gold-alpha-6)]',\n '[--badge-outline-border:var(--color-gold-alpha-8)]',\n '[--badge-solid-bg:var(--color-gold-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n tomato: [\n '[--badge-fg:var(--color-tomato-11)]',\n '[--badge-subtle-bg:var(--color-tomato-alpha-3)]',\n '[--badge-surface-bg:var(--color-tomato-alpha-2)]',\n '[--badge-surface-border:var(--color-tomato-alpha-6)]',\n '[--badge-outline-border:var(--color-tomato-alpha-8)]',\n '[--badge-solid-bg:var(--color-tomato-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n ruby: [\n '[--badge-fg:var(--color-ruby-11)]',\n '[--badge-subtle-bg:var(--color-ruby-alpha-3)]',\n '[--badge-surface-bg:var(--color-ruby-alpha-2)]',\n '[--badge-surface-border:var(--color-ruby-alpha-6)]',\n '[--badge-outline-border:var(--color-ruby-alpha-8)]',\n '[--badge-solid-bg:var(--color-ruby-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n crimson: [\n '[--badge-fg:var(--color-crimson-11)]',\n '[--badge-subtle-bg:var(--color-crimson-alpha-3)]',\n '[--badge-surface-bg:var(--color-crimson-alpha-2)]',\n '[--badge-surface-border:var(--color-crimson-alpha-6)]',\n '[--badge-outline-border:var(--color-crimson-alpha-8)]',\n '[--badge-solid-bg:var(--color-crimson-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n plum: [\n '[--badge-fg:var(--color-plum-11)]',\n '[--badge-subtle-bg:var(--color-plum-alpha-3)]',\n '[--badge-surface-bg:var(--color-plum-alpha-2)]',\n '[--badge-surface-border:var(--color-plum-alpha-6)]',\n '[--badge-outline-border:var(--color-plum-alpha-8)]',\n '[--badge-solid-bg:var(--color-plum-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n violet: [\n '[--badge-fg:var(--color-violet-11)]',\n '[--badge-subtle-bg:var(--color-violet-alpha-3)]',\n '[--badge-surface-bg:var(--color-violet-alpha-2)]',\n '[--badge-surface-border:var(--color-violet-alpha-6)]',\n '[--badge-outline-border:var(--color-violet-alpha-8)]',\n '[--badge-solid-bg:var(--color-violet-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n iris: [\n '[--badge-fg:var(--color-iris-11)]',\n '[--badge-subtle-bg:var(--color-iris-alpha-3)]',\n '[--badge-surface-bg:var(--color-iris-alpha-2)]',\n '[--badge-surface-border:var(--color-iris-alpha-6)]',\n '[--badge-outline-border:var(--color-iris-alpha-8)]',\n '[--badge-solid-bg:var(--color-iris-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n indigo: [\n '[--badge-fg:var(--color-indigo-11)]',\n '[--badge-subtle-bg:var(--color-indigo-alpha-3)]',\n '[--badge-surface-bg:var(--color-indigo-alpha-2)]',\n '[--badge-surface-border:var(--color-indigo-alpha-6)]',\n '[--badge-outline-border:var(--color-indigo-alpha-8)]',\n '[--badge-solid-bg:var(--color-indigo-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n sky: [\n '[--badge-fg:var(--color-sky-11)]',\n '[--badge-subtle-bg:var(--color-sky-alpha-3)]',\n '[--badge-surface-bg:var(--color-sky-alpha-2)]',\n '[--badge-surface-border:var(--color-sky-alpha-6)]',\n '[--badge-outline-border:var(--color-sky-alpha-8)]',\n '[--badge-solid-bg:var(--color-sky-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n mint: [\n '[--badge-fg:var(--color-mint-11)]',\n '[--badge-subtle-bg:var(--color-mint-alpha-3)]',\n '[--badge-surface-bg:var(--color-mint-alpha-2)]',\n '[--badge-surface-border:var(--color-mint-alpha-6)]',\n '[--badge-outline-border:var(--color-mint-alpha-8)]',\n '[--badge-solid-bg:var(--color-mint-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n lime: [\n '[--badge-fg:var(--color-lime-11)]',\n '[--badge-subtle-bg:var(--color-lime-alpha-3)]',\n '[--badge-surface-bg:var(--color-lime-alpha-2)]',\n '[--badge-surface-border:var(--color-lime-alpha-6)]',\n '[--badge-outline-border:var(--color-lime-alpha-8)]',\n '[--badge-solid-bg:var(--color-lime-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n jade: [\n '[--badge-fg:var(--color-jade-11)]',\n '[--badge-subtle-bg:var(--color-jade-alpha-3)]',\n '[--badge-surface-bg:var(--color-jade-alpha-2)]',\n '[--badge-surface-border:var(--color-jade-alpha-6)]',\n '[--badge-outline-border:var(--color-jade-alpha-8)]',\n '[--badge-solid-bg:var(--color-jade-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n grass: [\n '[--badge-fg:var(--color-grass-11)]',\n '[--badge-subtle-bg:var(--color-grass-alpha-3)]',\n '[--badge-surface-bg:var(--color-grass-alpha-2)]',\n '[--badge-surface-border:var(--color-grass-alpha-6)]',\n '[--badge-outline-border:var(--color-grass-alpha-8)]',\n '[--badge-solid-bg:var(--color-grass-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n },\n size: {\n sm: ['h-5', 'px-1.5', 'gap-1', 'text-xs', '[&_svg]:size-3'],\n md: ['h-6', 'px-2', 'gap-1', 'text-xs', '[&_svg]:size-3.5'],\n lg: ['h-7', 'px-2.5', 'gap-1.5', 'text-sm', '[&_svg]:size-4'],\n },\n variant: {\n // A borda transparente fica para as variantes terem a mesma medida.\n subtle: [\n 'border-transparent',\n 'bg-(--badge-subtle-bg)',\n 'text-(--badge-fg)',\n ],\n surface: [\n 'border-(--badge-surface-border)',\n 'bg-(--badge-surface-bg)',\n 'text-(--badge-fg)',\n ],\n outline: ['border-(--badge-outline-border)', 'text-(--badge-fg)'],\n solid: [\n 'border-transparent',\n 'bg-(--badge-solid-bg)',\n 'text-(--badge-solid-fg)',\n ],\n },\n },\n defaultVariants: {\n colorScheme: badgeDefaultVariants.colorScheme,\n size: badgeDefaultVariants.size,\n variant: badgeDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AA0BA,MAAa,uBAAgD;CAC3D,aAAa;CACb,MAAM;CACN,SAAS;AACX;;;;;;;;;;AAWA,MAAa,gBAAgB,IAC3B;CACE;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CACA;CAEA;AACF,GACA;CACE,UAAU;EACR,aAAa;GACX,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,KAAK;IACH;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,KAAK;IACH;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF;EACA,MAAM;GACJ,IAAI;IAAC;IAAO;IAAU;IAAS;IAAW;GAAgB;GAC1D,IAAI;IAAC;IAAO;IAAQ;IAAS;IAAW;GAAkB;GAC1D,IAAI;IAAC;IAAO;IAAU;IAAW;IAAW;GAAgB;EAC9D;EACA,SAAS;GAEP,QAAQ;IACN;IACA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;GACF;GACA,SAAS,CAAC,mCAAmC,mBAAmB;GAChE,OAAO;IACL;IACA;IACA;GACF;EACF;CACF;CACA,iBAAiB;EACf,aAAa,qBAAqB;EAClC,MAAM,qBAAqB;EAC3B,SAAS,qBAAqB;CAChC;AACF,CACF"}
|
|
1
|
+
{"version":3,"file":"badge-variants.js","names":[],"sources":["../../../../src/components/display/badge/badge-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { ColorSchemeFull } from '#types';\n\nexport type BadgeVariants = {\n /**\n * Cor do texto, do fundo e da borda, entre todas as escalas do tema: para categorias, há\n * variedade; para estado, `red`, `green`, `amber` e `blue`.\n *\n * @default 'gray'\n */\n colorScheme?: ColorSchemeFull;\n /**\n * Altura, padding, tamanho do texto e do ícone: `sm` = `h-5`, `md` = `h-6`, `lg` = `h-7`.\n *\n * @default 'sm'\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Fundo e borda: `subtle` só com fundo, `surface` com fundo e borda, `outline` só com borda e\n * `solid` com o fundo cheio (passo 9) e o texto em contraste.\n *\n * @default 'subtle'\n */\n variant?: 'subtle' | 'surface' | 'outline' | 'solid';\n};\n\nexport const badgeDefaultVariants: Required<BadgeVariants> = {\n colorScheme: 'gray',\n size: 'sm',\n variant: 'subtle',\n};\n\n/**\n * Origem do visual do rótulo curto, copiado pela `Tag` (tabela no README de `display`).\n *\n * O `colorScheme` só declara as variáveis `--badge-*`, e a `variant` decide onde cada uma entra.\n * Assim uma cor nova é um bloco de variáveis, sem um bloco por combinação de cor e `variant`. O\n * fundo e a borda usam a escala alpha, para o badge funcionar sobre qualquer fundo. No `solid`, o\n * texto é branco, menos em amber, yellow, sky, mint e lime, claros demais para ele, que levam\n * preto; o gray sólido é preto no tema claro e branco no escuro, como o do `Button`.\n *\n * O `max-w-full` e o `min-w-0` limitam o badge à largura do pai, para o `Badge` cortar um texto\n * longo com reticências. O `shrink-0` fica: numa linha flex, quem encolhe é o vizinho.\n */\nexport const badgeVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'shrink-0',\n 'align-middle',\n\n 'max-w-full',\n 'min-w-0',\n\n 'border',\n 'rounded-sm',\n 'corner-squircle',\n\n 'font-medium',\n 'leading-none',\n 'whitespace-nowrap',\n 'tabular-nums',\n\n '[&_svg]:shrink-0',\n ],\n {\n variants: {\n colorScheme: {\n gray: [\n '[--badge-fg:var(--color-gray-11)]',\n '[--badge-subtle-bg:var(--color-gray-alpha-3)]',\n '[--badge-surface-bg:var(--color-gray-alpha-2)]',\n '[--badge-surface-border:var(--color-gray-alpha-6)]',\n '[--badge-outline-border:var(--color-gray-alpha-8)]',\n '[--badge-solid-bg:var(--color-black)]',\n 'dark:[--badge-solid-bg:var(--color-white)]',\n '[--badge-solid-fg:var(--color-white)]',\n 'dark:[--badge-solid-fg:var(--color-black)]',\n ],\n brand: [\n '[--badge-fg:var(--color-brand-11)]',\n '[--badge-subtle-bg:var(--color-brand-alpha-3)]',\n '[--badge-surface-bg:var(--color-brand-alpha-2)]',\n '[--badge-surface-border:var(--color-brand-alpha-6)]',\n '[--badge-outline-border:var(--color-brand-alpha-8)]',\n '[--badge-solid-bg:var(--color-brand-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n red: [\n '[--badge-fg:var(--color-red-11)]',\n '[--badge-subtle-bg:var(--color-red-alpha-3)]',\n '[--badge-surface-bg:var(--color-red-alpha-2)]',\n '[--badge-surface-border:var(--color-red-alpha-6)]',\n '[--badge-outline-border:var(--color-red-alpha-8)]',\n '[--badge-solid-bg:var(--color-red-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n green: [\n '[--badge-fg:var(--color-green-11)]',\n '[--badge-subtle-bg:var(--color-green-alpha-3)]',\n '[--badge-surface-bg:var(--color-green-alpha-2)]',\n '[--badge-surface-border:var(--color-green-alpha-6)]',\n '[--badge-outline-border:var(--color-green-alpha-8)]',\n '[--badge-solid-bg:var(--color-green-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n blue: [\n '[--badge-fg:var(--color-blue-11)]',\n '[--badge-subtle-bg:var(--color-blue-alpha-3)]',\n '[--badge-surface-bg:var(--color-blue-alpha-2)]',\n '[--badge-surface-border:var(--color-blue-alpha-6)]',\n '[--badge-outline-border:var(--color-blue-alpha-8)]',\n '[--badge-solid-bg:var(--color-blue-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n amber: [\n '[--badge-fg:var(--color-amber-11)]',\n '[--badge-subtle-bg:var(--color-amber-alpha-3)]',\n '[--badge-surface-bg:var(--color-amber-alpha-2)]',\n '[--badge-surface-border:var(--color-amber-alpha-6)]',\n '[--badge-outline-border:var(--color-amber-alpha-8)]',\n '[--badge-solid-bg:var(--color-amber-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n purple: [\n '[--badge-fg:var(--color-purple-11)]',\n '[--badge-subtle-bg:var(--color-purple-alpha-3)]',\n '[--badge-surface-bg:var(--color-purple-alpha-2)]',\n '[--badge-surface-border:var(--color-purple-alpha-6)]',\n '[--badge-outline-border:var(--color-purple-alpha-8)]',\n '[--badge-solid-bg:var(--color-purple-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n pink: [\n '[--badge-fg:var(--color-pink-11)]',\n '[--badge-subtle-bg:var(--color-pink-alpha-3)]',\n '[--badge-surface-bg:var(--color-pink-alpha-2)]',\n '[--badge-surface-border:var(--color-pink-alpha-6)]',\n '[--badge-outline-border:var(--color-pink-alpha-8)]',\n '[--badge-solid-bg:var(--color-pink-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n cyan: [\n '[--badge-fg:var(--color-cyan-11)]',\n '[--badge-subtle-bg:var(--color-cyan-alpha-3)]',\n '[--badge-surface-bg:var(--color-cyan-alpha-2)]',\n '[--badge-surface-border:var(--color-cyan-alpha-6)]',\n '[--badge-outline-border:var(--color-cyan-alpha-8)]',\n '[--badge-solid-bg:var(--color-cyan-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n teal: [\n '[--badge-fg:var(--color-teal-11)]',\n '[--badge-subtle-bg:var(--color-teal-alpha-3)]',\n '[--badge-surface-bg:var(--color-teal-alpha-2)]',\n '[--badge-surface-border:var(--color-teal-alpha-6)]',\n '[--badge-outline-border:var(--color-teal-alpha-8)]',\n '[--badge-solid-bg:var(--color-teal-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n orange: [\n '[--badge-fg:var(--color-orange-11)]',\n '[--badge-subtle-bg:var(--color-orange-alpha-3)]',\n '[--badge-surface-bg:var(--color-orange-alpha-2)]',\n '[--badge-surface-border:var(--color-orange-alpha-6)]',\n '[--badge-outline-border:var(--color-orange-alpha-8)]',\n '[--badge-solid-bg:var(--color-orange-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n brown: [\n '[--badge-fg:var(--color-brown-11)]',\n '[--badge-subtle-bg:var(--color-brown-alpha-3)]',\n '[--badge-surface-bg:var(--color-brown-alpha-2)]',\n '[--badge-surface-border:var(--color-brown-alpha-6)]',\n '[--badge-outline-border:var(--color-brown-alpha-8)]',\n '[--badge-solid-bg:var(--color-brown-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n yellow: [\n '[--badge-fg:var(--color-yellow-11)]',\n '[--badge-subtle-bg:var(--color-yellow-alpha-3)]',\n '[--badge-surface-bg:var(--color-yellow-alpha-2)]',\n '[--badge-surface-border:var(--color-yellow-alpha-6)]',\n '[--badge-outline-border:var(--color-yellow-alpha-8)]',\n '[--badge-solid-bg:var(--color-yellow-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n bronze: [\n '[--badge-fg:var(--color-bronze-11)]',\n '[--badge-subtle-bg:var(--color-bronze-alpha-3)]',\n '[--badge-surface-bg:var(--color-bronze-alpha-2)]',\n '[--badge-surface-border:var(--color-bronze-alpha-6)]',\n '[--badge-outline-border:var(--color-bronze-alpha-8)]',\n '[--badge-solid-bg:var(--color-bronze-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n gold: [\n '[--badge-fg:var(--color-gold-11)]',\n '[--badge-subtle-bg:var(--color-gold-alpha-3)]',\n '[--badge-surface-bg:var(--color-gold-alpha-2)]',\n '[--badge-surface-border:var(--color-gold-alpha-6)]',\n '[--badge-outline-border:var(--color-gold-alpha-8)]',\n '[--badge-solid-bg:var(--color-gold-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n tomato: [\n '[--badge-fg:var(--color-tomato-11)]',\n '[--badge-subtle-bg:var(--color-tomato-alpha-3)]',\n '[--badge-surface-bg:var(--color-tomato-alpha-2)]',\n '[--badge-surface-border:var(--color-tomato-alpha-6)]',\n '[--badge-outline-border:var(--color-tomato-alpha-8)]',\n '[--badge-solid-bg:var(--color-tomato-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n ruby: [\n '[--badge-fg:var(--color-ruby-11)]',\n '[--badge-subtle-bg:var(--color-ruby-alpha-3)]',\n '[--badge-surface-bg:var(--color-ruby-alpha-2)]',\n '[--badge-surface-border:var(--color-ruby-alpha-6)]',\n '[--badge-outline-border:var(--color-ruby-alpha-8)]',\n '[--badge-solid-bg:var(--color-ruby-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n crimson: [\n '[--badge-fg:var(--color-crimson-11)]',\n '[--badge-subtle-bg:var(--color-crimson-alpha-3)]',\n '[--badge-surface-bg:var(--color-crimson-alpha-2)]',\n '[--badge-surface-border:var(--color-crimson-alpha-6)]',\n '[--badge-outline-border:var(--color-crimson-alpha-8)]',\n '[--badge-solid-bg:var(--color-crimson-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n plum: [\n '[--badge-fg:var(--color-plum-11)]',\n '[--badge-subtle-bg:var(--color-plum-alpha-3)]',\n '[--badge-surface-bg:var(--color-plum-alpha-2)]',\n '[--badge-surface-border:var(--color-plum-alpha-6)]',\n '[--badge-outline-border:var(--color-plum-alpha-8)]',\n '[--badge-solid-bg:var(--color-plum-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n violet: [\n '[--badge-fg:var(--color-violet-11)]',\n '[--badge-subtle-bg:var(--color-violet-alpha-3)]',\n '[--badge-surface-bg:var(--color-violet-alpha-2)]',\n '[--badge-surface-border:var(--color-violet-alpha-6)]',\n '[--badge-outline-border:var(--color-violet-alpha-8)]',\n '[--badge-solid-bg:var(--color-violet-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n iris: [\n '[--badge-fg:var(--color-iris-11)]',\n '[--badge-subtle-bg:var(--color-iris-alpha-3)]',\n '[--badge-surface-bg:var(--color-iris-alpha-2)]',\n '[--badge-surface-border:var(--color-iris-alpha-6)]',\n '[--badge-outline-border:var(--color-iris-alpha-8)]',\n '[--badge-solid-bg:var(--color-iris-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n indigo: [\n '[--badge-fg:var(--color-indigo-11)]',\n '[--badge-subtle-bg:var(--color-indigo-alpha-3)]',\n '[--badge-surface-bg:var(--color-indigo-alpha-2)]',\n '[--badge-surface-border:var(--color-indigo-alpha-6)]',\n '[--badge-outline-border:var(--color-indigo-alpha-8)]',\n '[--badge-solid-bg:var(--color-indigo-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n sky: [\n '[--badge-fg:var(--color-sky-11)]',\n '[--badge-subtle-bg:var(--color-sky-alpha-3)]',\n '[--badge-surface-bg:var(--color-sky-alpha-2)]',\n '[--badge-surface-border:var(--color-sky-alpha-6)]',\n '[--badge-outline-border:var(--color-sky-alpha-8)]',\n '[--badge-solid-bg:var(--color-sky-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n mint: [\n '[--badge-fg:var(--color-mint-11)]',\n '[--badge-subtle-bg:var(--color-mint-alpha-3)]',\n '[--badge-surface-bg:var(--color-mint-alpha-2)]',\n '[--badge-surface-border:var(--color-mint-alpha-6)]',\n '[--badge-outline-border:var(--color-mint-alpha-8)]',\n '[--badge-solid-bg:var(--color-mint-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n lime: [\n '[--badge-fg:var(--color-lime-11)]',\n '[--badge-subtle-bg:var(--color-lime-alpha-3)]',\n '[--badge-surface-bg:var(--color-lime-alpha-2)]',\n '[--badge-surface-border:var(--color-lime-alpha-6)]',\n '[--badge-outline-border:var(--color-lime-alpha-8)]',\n '[--badge-solid-bg:var(--color-lime-9)]',\n '[--badge-solid-fg:var(--color-black)]',\n ],\n jade: [\n '[--badge-fg:var(--color-jade-11)]',\n '[--badge-subtle-bg:var(--color-jade-alpha-3)]',\n '[--badge-surface-bg:var(--color-jade-alpha-2)]',\n '[--badge-surface-border:var(--color-jade-alpha-6)]',\n '[--badge-outline-border:var(--color-jade-alpha-8)]',\n '[--badge-solid-bg:var(--color-jade-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n grass: [\n '[--badge-fg:var(--color-grass-11)]',\n '[--badge-subtle-bg:var(--color-grass-alpha-3)]',\n '[--badge-surface-bg:var(--color-grass-alpha-2)]',\n '[--badge-surface-border:var(--color-grass-alpha-6)]',\n '[--badge-outline-border:var(--color-grass-alpha-8)]',\n '[--badge-solid-bg:var(--color-grass-9)]',\n '[--badge-solid-fg:var(--color-white)]',\n ],\n },\n size: {\n sm: ['h-5', 'px-1.5', 'gap-1', 'text-xs', '[&_svg]:size-3'],\n md: ['h-6', 'px-2', 'gap-1', 'text-xs', '[&_svg]:size-3.5'],\n lg: ['h-7', 'px-2.5', 'gap-1.5', 'text-sm', '[&_svg]:size-4'],\n },\n variant: {\n // A borda transparente fica para as variantes terem a mesma medida.\n subtle: [\n 'border-transparent',\n 'bg-(--badge-subtle-bg)',\n 'text-(--badge-fg)',\n ],\n surface: [\n 'border-(--badge-surface-border)',\n 'bg-(--badge-surface-bg)',\n 'text-(--badge-fg)',\n ],\n outline: ['border-(--badge-outline-border)', 'text-(--badge-fg)'],\n solid: [\n 'border-transparent',\n 'bg-(--badge-solid-bg)',\n 'text-(--badge-solid-fg)',\n ],\n },\n },\n defaultVariants: {\n colorScheme: badgeDefaultVariants.colorScheme,\n size: badgeDefaultVariants.size,\n variant: badgeDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AA0BA,MAAa,uBAAgD;CAC3D,aAAa;CACb,MAAM;CACN,SAAS;AACX;;;;;;;;;;;;;AAcA,MAAa,gBAAgB,IAC3B;CACE;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CACA;CAEA;AACF,GACA;CACE,UAAU;EACR,aAAa;GACX,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,KAAK;IACH;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,KAAK;IACH;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,MAAM;IACJ;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,OAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF;EACA,MAAM;GACJ,IAAI;IAAC;IAAO;IAAU;IAAS;IAAW;GAAgB;GAC1D,IAAI;IAAC;IAAO;IAAQ;IAAS;IAAW;GAAkB;GAC1D,IAAI;IAAC;IAAO;IAAU;IAAW;IAAW;GAAgB;EAC9D;EACA,SAAS;GAEP,QAAQ;IACN;IACA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;GACF;GACA,SAAS,CAAC,mCAAmC,mBAAmB;GAChE,OAAO;IACL;IACA;IACA;GACF;EACF;CACF;CACA,iBAAiB;EACf,aAAa,qBAAqB;EAClC,MAAM,qBAAqB;EAC3B,SAAS,qBAAqB;CAChC;AACF,CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BadgeVariants } from "./badge-variants.js";
|
|
2
|
+
import React from "react";
|
|
2
3
|
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
3
4
|
import { useRender } from "@base-ui/react";
|
|
4
5
|
//#region src/components/display/badge/badge.d.ts
|
|
@@ -10,13 +11,21 @@ export type BadgeProps = MergeOverride<useRender.ComponentProps<'span'>, BadgeVa
|
|
|
10
11
|
* Um ícone entra nos filhos, antes ou depois do texto, pelo `Icon` da lib. A cor sozinha não
|
|
11
12
|
* comunica para quem não a distingue: o texto diz o que o badge significa.
|
|
12
13
|
*
|
|
14
|
+
* O badge não passa da largura do pai: um texto que não cabe termina em reticências. O leitor de
|
|
15
|
+
* tela lê o texto inteiro, e quem vê precisa dele no `title`, como no `Truncate`.
|
|
16
|
+
*
|
|
13
17
|
* @example
|
|
14
18
|
* ```tsx
|
|
15
19
|
* <Badge colorScheme="green">Pago</Badge>
|
|
16
20
|
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <Badge title={status}>{status}</Badge>
|
|
25
|
+
* ```
|
|
17
26
|
*/
|
|
18
27
|
export declare const Badge: {
|
|
19
|
-
(props: BadgeProps):
|
|
28
|
+
(props: BadgeProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
20
29
|
displayName: string;
|
|
21
30
|
};
|
|
22
31
|
//#endregion
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
2
2
|
import { badgeVariants } from "./badge-variants.js";
|
|
3
|
+
import { Children } from "react";
|
|
3
4
|
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
5
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
7
|
//#region src/components/display/badge/badge.tsx
|
|
6
8
|
const splitVariantProps = createSplitProps();
|
|
7
9
|
/**
|
|
@@ -11,10 +13,18 @@ const splitVariantProps = createSplitProps();
|
|
|
11
13
|
* Um ícone entra nos filhos, antes ou depois do texto, pelo `Icon` da lib. A cor sozinha não
|
|
12
14
|
* comunica para quem não a distingue: o texto diz o que o badge significa.
|
|
13
15
|
*
|
|
16
|
+
* O badge não passa da largura do pai: um texto que não cabe termina em reticências. O leitor de
|
|
17
|
+
* tela lê o texto inteiro, e quem vê precisa dele no `title`, como no `Truncate`.
|
|
18
|
+
*
|
|
14
19
|
* @example
|
|
15
20
|
* ```tsx
|
|
16
21
|
* <Badge colorScheme="green">Pago</Badge>
|
|
17
22
|
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <Badge title={status}>{status}</Badge>
|
|
27
|
+
* ```
|
|
18
28
|
*/
|
|
19
29
|
const Badge = (props) => {
|
|
20
30
|
const [variantProps, elementProps] = splitVariantProps(props, [
|
|
@@ -22,7 +32,7 @@ const Badge = (props) => {
|
|
|
22
32
|
"size",
|
|
23
33
|
"variant"
|
|
24
34
|
]);
|
|
25
|
-
const { render, className, ...rest } = elementProps;
|
|
35
|
+
const { render, className, children, ...rest } = elementProps;
|
|
26
36
|
const baseProps = {
|
|
27
37
|
"data-component": "Badge",
|
|
28
38
|
className: mergeTwClassNames(badgeVariants(variantProps), className)
|
|
@@ -30,10 +40,38 @@ const Badge = (props) => {
|
|
|
30
40
|
return useRender({
|
|
31
41
|
render,
|
|
32
42
|
defaultTagName: "span",
|
|
33
|
-
props: mergeProps(baseProps, rest)
|
|
43
|
+
props: mergeProps(baseProps, rest, children === void 0 ? {} : { children: wrapTextChildren(children) })
|
|
34
44
|
});
|
|
35
45
|
};
|
|
36
46
|
Badge.displayName = "Badge";
|
|
47
|
+
/**
|
|
48
|
+
* Envolve cada sequência de texto dos filhos num `span` com `truncate`, que é onde as reticências
|
|
49
|
+
* se aplicam: um texto solto num contêiner flex vira um item anônimo e não corta. Os elementos
|
|
50
|
+
* (ícones) ficam como estão, e `null`, `undefined` e booleanos somem. Sem texto, devolve os
|
|
51
|
+
* filhos intactos.
|
|
52
|
+
*/
|
|
53
|
+
const wrapTextChildren = (children) => {
|
|
54
|
+
const items = Children.toArray(children);
|
|
55
|
+
if (!items.some(isText)) return children;
|
|
56
|
+
const result = [];
|
|
57
|
+
let textRun = [];
|
|
58
|
+
const flushTextRun = () => {
|
|
59
|
+
if (textRun.length === 0) return;
|
|
60
|
+
result.push(/* @__PURE__ */ jsx("span", {
|
|
61
|
+
className: mergeTwClassNames(["min-w-0", "truncate"]),
|
|
62
|
+
children: textRun
|
|
63
|
+
}, `text-${result.length}`));
|
|
64
|
+
textRun = [];
|
|
65
|
+
};
|
|
66
|
+
for (const item of items) if (isText(item)) textRun.push(item);
|
|
67
|
+
else {
|
|
68
|
+
flushTextRun();
|
|
69
|
+
result.push(item);
|
|
70
|
+
}
|
|
71
|
+
flushTextRun();
|
|
72
|
+
return result;
|
|
73
|
+
};
|
|
74
|
+
const isText = (node) => typeof node === "string" || typeof node === "number";
|
|
37
75
|
//#endregion
|
|
38
76
|
export { Badge };
|
|
39
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","names":[],"sources":["../../../../src/components/display/badge/badge.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeTwClassNames } from '#utils';\nimport { type BadgeVariants, badgeVariants } from './badge-variants';\n\nexport type BadgeProps = MergeOverride<\n useRender.ComponentProps<'span'>,\n BadgeVariants\n>;\n\nconst splitVariantProps = createSplitProps<BadgeVariants>();\n\n/**\n * Rótulo curto de exibição, para uma categoria, um estado ou uma contagem (\"Pago\", \"NF-e\", \"3\").\n * Não tem interação: para um item que se remove, a `Tag`.\n *\n * Um ícone entra nos filhos, antes ou depois do texto, pelo `Icon` da lib. A cor sozinha não\n * comunica para quem não a distingue: o texto diz o que o badge significa.\n *\n * @example\n * ```tsx\n * <Badge colorScheme=\"green\">Pago</Badge>\n * ```\n */\nexport const Badge = (props: BadgeProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'colorScheme',\n 'size',\n 'variant',\n ]);\n\n const { render, className, ...rest } = elementProps;\n\n const baseProps = {\n 'data-component': 'Badge',\n className: mergeTwClassNames(badgeVariants(variantProps), className),\n };\n\n return useRender({\n render,\n defaultTagName: 'span',\n props: mergeProps(baseProps
|
|
1
|
+
{"version":3,"file":"badge.js","names":[],"sources":["../../../../src/components/display/badge/badge.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport type React from 'react';\nimport { Children } from 'react';\nimport { mergeTwClassNames } from '#utils';\nimport { type BadgeVariants, badgeVariants } from './badge-variants';\n\nexport type BadgeProps = MergeOverride<\n useRender.ComponentProps<'span'>,\n BadgeVariants\n>;\n\nconst splitVariantProps = createSplitProps<BadgeVariants>();\n\n/**\n * Rótulo curto de exibição, para uma categoria, um estado ou uma contagem (\"Pago\", \"NF-e\", \"3\").\n * Não tem interação: para um item que se remove, a `Tag`.\n *\n * Um ícone entra nos filhos, antes ou depois do texto, pelo `Icon` da lib. A cor sozinha não\n * comunica para quem não a distingue: o texto diz o que o badge significa.\n *\n * O badge não passa da largura do pai: um texto que não cabe termina em reticências. O leitor de\n * tela lê o texto inteiro, e quem vê precisa dele no `title`, como no `Truncate`.\n *\n * @example\n * ```tsx\n * <Badge colorScheme=\"green\">Pago</Badge>\n * ```\n *\n * @example\n * ```tsx\n * <Badge title={status}>{status}</Badge>\n * ```\n */\nexport const Badge = (props: BadgeProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'colorScheme',\n 'size',\n 'variant',\n ]);\n\n const { render, className, children, ...rest } = elementProps;\n\n const baseProps = {\n 'data-component': 'Badge',\n className: mergeTwClassNames(badgeVariants(variantProps), className),\n };\n\n return useRender({\n render,\n defaultTagName: 'span',\n props: mergeProps(\n baseProps,\n rest,\n children === undefined ? {} : { children: wrapTextChildren(children) },\n ),\n });\n};\n\nBadge.displayName = 'Badge';\n\n/**\n * Envolve cada sequência de texto dos filhos num `span` com `truncate`, que é onde as reticências\n * se aplicam: um texto solto num contêiner flex vira um item anônimo e não corta. Os elementos\n * (ícones) ficam como estão, e `null`, `undefined` e booleanos somem. Sem texto, devolve os\n * filhos intactos.\n */\nconst wrapTextChildren = (children: React.ReactNode): React.ReactNode => {\n const items = Children.toArray(children);\n\n if (!items.some(isText)) {\n return children;\n }\n\n const result: React.ReactNode[] = [];\n let textRun: (string | number)[] = [];\n\n const flushTextRun = () => {\n if (textRun.length === 0) {\n return;\n }\n\n result.push(\n <span\n key={`text-${result.length}`}\n className={mergeTwClassNames(['min-w-0', 'truncate'])}\n >\n {textRun}\n </span>,\n );\n textRun = [];\n };\n\n for (const item of items) {\n if (isText(item)) {\n textRun.push(item);\n } else {\n flushTextRun();\n result.push(item);\n }\n }\n\n flushTextRun();\n\n return result;\n};\n\nconst isText = (node: unknown): node is string | number =>\n typeof node === 'string' || typeof node === 'number';\n"],"mappings":";;;;;;;AAeA,MAAM,oBAAoB,iBAAgC;;;;;;;;;;;;;;;;;;;;;AAsB1D,MAAa,SAAS,UAAsB;CAC1C,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO;EAC5D;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,QAAQ,WAAW,UAAU,GAAG,SAAS;CAEjD,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBAAkB,cAAc,YAAY,GAAG,SAAS;CACrE;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WACL,WACA,MACA,aAAa,KAAA,IAAY,CAAC,IAAI,EAAE,UAAU,iBAAiB,QAAQ,EAAE,CACvE;CACF,CAAC;AACH;AAEA,MAAM,cAAc;;;;;;;AAQpB,MAAM,oBAAoB,aAA+C;CACvE,MAAM,QAAQ,SAAS,QAAQ,QAAQ;CAEvC,IAAI,CAAC,MAAM,KAAK,MAAM,GACpB,OAAO;CAGT,MAAM,SAA4B,CAAC;CACnC,IAAI,UAA+B,CAAC;CAEpC,MAAM,qBAAqB;EACzB,IAAI,QAAQ,WAAW,GACrB;EAGF,OAAO,KACL,oBAAC,QAAD;GAEE,WAAW,kBAAkB,CAAC,WAAW,UAAU,CAAC;GAEnD,UAAA;EACG,GAJC,QAAQ,OAAO,QAIhB,CACR;EACA,UAAU,CAAC;CACb;CAEA,KAAK,MAAM,QAAQ,OACjB,IAAI,OAAO,IAAI,GACb,QAAQ,KAAK,IAAI;MACZ;EACL,aAAa;EACb,OAAO,KAAK,IAAI;CAClB;CAGF,aAAa;CAEb,OAAO;AACT;AAEA,MAAM,UAAU,SACd,OAAO,SAAS,YAAY,OAAO,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-body.js","names":[],"sources":["../../../../src/components/display/card/card-body.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type CardBodyProps = useRender.ComponentProps<'div'>;\n\n/**\n * Conteúdo principal do card. Ocupa o espaço que sobra (`flex-1`), empurrando o `Card.Footer`\n * para a base.\n *\n * Origem do corpo das superfícies com cabeçalho: o `Dialog.Body` copia estas classes (tabela no README de `display`). Uma\n * mudança aqui vale para a cópia na mesma rodada.\n */\nexport const CardBody = (props: CardBodyProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'Card.Body',\n className: mergeTwClassNames(\n [\n 'flex',\n 'flex-1',\n 'flex-col',\n\n 'p-(--card-padding)',\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nCardBody.displayName = 'Card.Body';\n"],"mappings":";;;;;;;;;;AAYA,MAAa,YAAY,UAAyB;CAChD,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT;GACE;GACA;GACA;GAEA;EACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,SAAS,cAAc"}
|
|
1
|
+
{"version":3,"file":"card-body.js","names":[],"sources":["../../../../src/components/display/card/card-body.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type CardBodyProps = useRender.ComponentProps<'div'>;\n\n/**\n * Conteúdo principal do card. Ocupa o espaço que sobra (`flex-1`), empurrando o `Card.Footer`\n * para a base.\n *\n * Origem do corpo das superfícies com cabeçalho: o `Dialog.Body` copia estas classes (tabela no README de `display`). Uma\n * mudança aqui vale para a cópia na mesma rodada.\n */\nexport const CardBody = (props: CardBodyProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'Card.Body',\n className: mergeTwClassNames(\n [\n 'flex',\n 'flex-1',\n 'flex-col',\n 'gap-4',\n\n 'p-(--card-padding)',\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nCardBody.displayName = 'Card.Body';\n"],"mappings":";;;;;;;;;;AAYA,MAAa,YAAY,UAAyB;CAChD,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT;GACE;GACA;GACA;GACA;GAEA;EACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,SAAS,cAAc"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/components/display/data-list/data-list-item-label-variants.d.ts
|
|
2
|
+
export declare const dataListItemLabelVariants: (props?: ({
|
|
3
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
4
|
+
variant?: "subtle" | "bold" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
//#endregion
|
|
7
|
+
//# sourceMappingURL=data-list-item-label-variants.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { dataListDefaultVariants } from "./use-data-list-context.js";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
//#region src/components/display/data-list/data-list-item-label-variants.ts
|
|
4
|
+
const dataListItemLabelVariants = cva([
|
|
5
|
+
"flex",
|
|
6
|
+
"items-center",
|
|
7
|
+
"gap-1"
|
|
8
|
+
], {
|
|
9
|
+
variants: {
|
|
10
|
+
orientation: {
|
|
11
|
+
vertical: [],
|
|
12
|
+
horizontal: ["min-w-30"]
|
|
13
|
+
},
|
|
14
|
+
variant: {
|
|
15
|
+
subtle: ["text-gray-11"],
|
|
16
|
+
bold: ["font-medium", "text-gray-12"]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
orientation: dataListDefaultVariants.orientation,
|
|
21
|
+
variant: dataListDefaultVariants.variant
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
//#endregion
|
|
25
|
+
export { dataListItemLabelVariants };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=data-list-item-label-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list-item-label-variants.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-label-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nimport { dataListDefaultVariants } from './use-data-list-context';\n\nexport const dataListItemLabelVariants = cva(\n [\n 'flex',\n 'items-center',\n\n 'gap-1',\n ],\n {\n variants: {\n orientation: {\n vertical: [],\n horizontal: ['min-w-30'],\n },\n variant: {\n subtle: ['text-gray-11'],\n bold: [\n 'font-medium',\n\n 'text-gray-12',\n ],\n },\n },\n defaultVariants: {\n orientation: dataListDefaultVariants.orientation,\n variant: dataListDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;;AAIA,MAAa,4BAA4B,IACvC;CACE;CACA;CAEA;AACF,GACA;CACE,UAAU;EACR,aAAa;GACX,UAAU,CAAC;GACX,YAAY,CAAC,UAAU;EACzB;EACA,SAAS;GACP,QAAQ,CAAC,cAAc;GACvB,MAAM,CACJ,eAEA,cACF;EACF;CACF;CACA,iBAAiB;EACf,aAAa,wBAAwB;EACrC,SAAS,wBAAwB;CACnC;AACF,CACF"}
|
|
@@ -2,7 +2,8 @@ import { useRender } from "@base-ui/react";
|
|
|
2
2
|
//#region src/components/display/data-list/data-list-item-label.d.ts
|
|
3
3
|
export type DataListItemLabelProps = useRender.ComponentProps<'dt'>;
|
|
4
4
|
/**
|
|
5
|
-
* Rótulo do item, renderizado como `dt`.
|
|
5
|
+
* Rótulo do item, renderizado como `dt`. É um `flex`, para caber um ícone ao lado do texto. Na
|
|
6
|
+
* orientação `horizontal`, tem largura mínima de 120px.
|
|
6
7
|
*/
|
|
7
8
|
export declare const DataListItemLabel: {
|
|
8
9
|
(props: DataListItemLabelProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
2
|
+
import { useDataListContext } from "./use-data-list-context.js";
|
|
3
|
+
import { dataListItemLabelVariants } from "./data-list-item-label-variants.js";
|
|
2
4
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
3
5
|
//#region src/components/display/data-list/data-list-item-label.tsx
|
|
4
6
|
/**
|
|
5
|
-
* Rótulo do item, renderizado como `dt`.
|
|
7
|
+
* Rótulo do item, renderizado como `dt`. É um `flex`, para caber um ícone ao lado do texto. Na
|
|
8
|
+
* orientação `horizontal`, tem largura mínima de 120px.
|
|
6
9
|
*/
|
|
7
10
|
const DataListItemLabel = (props) => {
|
|
8
11
|
const { render, className, ...rest } = props;
|
|
12
|
+
const { orientation, variant } = useDataListContext();
|
|
9
13
|
const baseProps = {
|
|
10
14
|
"data-component": "DataList.ItemLabel",
|
|
11
|
-
className: mergeTwClassNames(
|
|
15
|
+
className: mergeTwClassNames(dataListItemLabelVariants({
|
|
16
|
+
orientation,
|
|
17
|
+
variant
|
|
18
|
+
}), className)
|
|
12
19
|
};
|
|
13
20
|
return useRender({
|
|
14
21
|
render,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-list-item-label.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-label.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type DataListItemLabelProps = useRender.ComponentProps<'dt'>;\n\n/**\n * Rótulo do item, renderizado como `dt
|
|
1
|
+
{"version":3,"file":"data-list-item-label.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-label.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\nimport { dataListItemLabelVariants } from './data-list-item-label-variants';\nimport { useDataListContext } from './use-data-list-context';\n\nexport type DataListItemLabelProps = useRender.ComponentProps<'dt'>;\n\n/**\n * Rótulo do item, renderizado como `dt`. É um `flex`, para caber um ícone ao lado do texto. Na\n * orientação `horizontal`, tem largura mínima de 120px.\n */\nexport const DataListItemLabel = (props: DataListItemLabelProps) => {\n const { render, className, ...rest } = props;\n\n const { orientation, variant } = useDataListContext();\n\n const baseProps = {\n 'data-component': 'DataList.ItemLabel',\n className: mergeTwClassNames(\n dataListItemLabelVariants({ orientation, variant }),\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'dt',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataListItemLabel.displayName = 'DataList.ItemLabel';\n"],"mappings":";;;;;;;;;AAWA,MAAa,qBAAqB,UAAkC;CAClE,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,EAAE,aAAa,YAAY,mBAAmB;CAEpD,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT,0BAA0B;GAAE;GAAa;EAAQ,CAAC,GAClD,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,kBAAkB,cAAc"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/components/display/data-list/data-list-item-value-variants.d.ts
|
|
2
2
|
export declare const dataListItemValueVariants: (props?: ({
|
|
3
|
-
|
|
3
|
+
variant?: "subtle" | "bold" | null | undefined;
|
|
4
4
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
5
|
//#endregion
|
|
6
6
|
//# sourceMappingURL=data-list-item-value-variants.d.ts.map
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { dataListDefaultVariants } from "./use-data-list-context.js";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
//#region src/components/display/data-list/data-list-item-value-variants.ts
|
|
4
|
-
const dataListItemValueVariants = cva([
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const dataListItemValueVariants = cva([
|
|
5
|
+
"flex",
|
|
6
|
+
"min-w-0",
|
|
7
|
+
"flex-1"
|
|
8
|
+
], {
|
|
9
|
+
variants: { variant: {
|
|
10
|
+
subtle: ["text-gray-12"],
|
|
11
|
+
bold: ["text-gray-11"]
|
|
8
12
|
} },
|
|
9
|
-
defaultVariants: {
|
|
13
|
+
defaultVariants: { variant: dataListDefaultVariants.variant }
|
|
10
14
|
});
|
|
11
15
|
//#endregion
|
|
12
16
|
export { dataListItemValueVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-list-item-value-variants.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-value-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport { dataListDefaultVariants } from './use-data-list-context';\n\nexport const dataListItemValueVariants = cva(['
|
|
1
|
+
{"version":3,"file":"data-list-item-value-variants.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-value-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nimport { dataListDefaultVariants } from './use-data-list-context';\n\nexport const dataListItemValueVariants = cva(\n [\n 'flex',\n 'min-w-0',\n\n 'flex-1',\n ],\n {\n variants: {\n variant: {\n subtle: ['text-gray-12'],\n bold: ['text-gray-11'],\n },\n },\n defaultVariants: {\n variant: dataListDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;;AAIA,MAAa,4BAA4B,IACvC;CACE;CACA;CAEA;AACF,GACA;CACE,UAAU,EACR,SAAS;EACP,QAAQ,CAAC,cAAc;EACvB,MAAM,CAAC,cAAc;CACvB,EACF;CACA,iBAAiB,EACf,SAAS,wBAAwB,QACnC;AACF,CACF"}
|
|
@@ -2,7 +2,8 @@ import { useRender } from "@base-ui/react";
|
|
|
2
2
|
//#region src/components/display/data-list/data-list-item-value.d.ts
|
|
3
3
|
export type DataListItemValueProps = useRender.ComponentProps<'dd'>;
|
|
4
4
|
/**
|
|
5
|
-
* Valor do item, renderizado como `dd`.
|
|
5
|
+
* Valor do item, renderizado como `dd`. Ocupa o espaço que sobra ao lado do rótulo e quebra o texto
|
|
6
|
+
* longo dentro da própria coluna.
|
|
6
7
|
*/
|
|
7
8
|
export declare const DataListItemValue: {
|
|
8
9
|
(props: DataListItemValueProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -4,14 +4,15 @@ import { dataListItemValueVariants } from "./data-list-item-value-variants.js";
|
|
|
4
4
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
5
5
|
//#region src/components/display/data-list/data-list-item-value.tsx
|
|
6
6
|
/**
|
|
7
|
-
* Valor do item, renderizado como `dd`.
|
|
7
|
+
* Valor do item, renderizado como `dd`. Ocupa o espaço que sobra ao lado do rótulo e quebra o texto
|
|
8
|
+
* longo dentro da própria coluna.
|
|
8
9
|
*/
|
|
9
10
|
const DataListItemValue = (props) => {
|
|
10
11
|
const { render, className, ...rest } = props;
|
|
11
|
-
const {
|
|
12
|
+
const { variant } = useDataListContext();
|
|
12
13
|
const baseProps = {
|
|
13
14
|
"data-component": "DataList.ItemValue",
|
|
14
|
-
className: mergeTwClassNames(dataListItemValueVariants({
|
|
15
|
+
className: mergeTwClassNames(dataListItemValueVariants({ variant }), className)
|
|
15
16
|
};
|
|
16
17
|
return useRender({
|
|
17
18
|
render,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-list-item-value.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-value.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\nimport { dataListItemValueVariants } from './data-list-item-value-variants';\nimport { useDataListContext } from './use-data-list-context';\n\nexport type DataListItemValueProps = useRender.ComponentProps<'dd'>;\n\n/**\n * Valor do item, renderizado como `dd`.
|
|
1
|
+
{"version":3,"file":"data-list-item-value.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-value.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\nimport { dataListItemValueVariants } from './data-list-item-value-variants';\nimport { useDataListContext } from './use-data-list-context';\n\nexport type DataListItemValueProps = useRender.ComponentProps<'dd'>;\n\n/**\n * Valor do item, renderizado como `dd`. Ocupa o espaço que sobra ao lado do rótulo e quebra o texto\n * longo dentro da própria coluna.\n */\nexport const DataListItemValue = (props: DataListItemValueProps) => {\n const { render, className, ...rest } = props;\n\n const { variant } = useDataListContext();\n\n const baseProps = {\n 'data-component': 'DataList.ItemValue',\n className: mergeTwClassNames(\n dataListItemValueVariants({ variant }),\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'dd',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataListItemValue.displayName = 'DataList.ItemValue';\n"],"mappings":";;;;;;;;;AAWA,MAAa,qBAAqB,UAAkC;CAClE,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,EAAE,YAAY,mBAAmB;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT,0BAA0B,EAAE,QAAQ,CAAC,GACrC,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,kBAAkB,cAAc"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
//#region src/components/display/data-list/data-list-item-variants.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* O espaçamento depende da orientação: em `horizontal` os itens ficam lado a lado e o respiro é
|
|
4
|
-
* lateral, com o valor abaixo do rótulo; em `vertical` eles empilham e o respiro é vertical, com
|
|
5
|
-
* rótulo e valor lado a lado.
|
|
6
|
-
*/
|
|
7
2
|
export declare const dataListItemVariants: (props?: ({
|
|
8
|
-
orientation?: "
|
|
3
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
4
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
6
|
//#endregion
|
|
11
7
|
//# sourceMappingURL=data-list-item-variants.d.ts.map
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
import { dataListDefaultVariants } from "./use-data-list-context.js";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
//#region src/components/display/data-list/data-list-item-variants.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} },
|
|
29
|
-
defaultVariants: { orientation: dataListDefaultVariants.orientation }
|
|
4
|
+
const dataListItemVariants = cva([], {
|
|
5
|
+
variants: {
|
|
6
|
+
orientation: {
|
|
7
|
+
vertical: [
|
|
8
|
+
"flex",
|
|
9
|
+
"flex-col",
|
|
10
|
+
"gap-1"
|
|
11
|
+
],
|
|
12
|
+
horizontal: [
|
|
13
|
+
"inline-flex",
|
|
14
|
+
"items-center",
|
|
15
|
+
"gap-4"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
size: {
|
|
19
|
+
sm: ["text-xs/4"],
|
|
20
|
+
md: ["text-sm/5"],
|
|
21
|
+
lg: ["text-base/6"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
orientation: dataListDefaultVariants.orientation,
|
|
26
|
+
size: dataListDefaultVariants.size
|
|
27
|
+
}
|
|
30
28
|
});
|
|
31
29
|
//#endregion
|
|
32
30
|
export { dataListItemVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-list-item-variants.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport { dataListDefaultVariants } from './use-data-list-context';\n\
|
|
1
|
+
{"version":3,"file":"data-list-item-variants.js","names":[],"sources":["../../../../src/components/display/data-list/data-list-item-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nimport { dataListDefaultVariants } from './use-data-list-context';\n\nexport const dataListItemVariants = cva([], {\n variants: {\n orientation: {\n vertical: [\n 'flex',\n 'flex-col',\n\n 'gap-1',\n ],\n horizontal: [\n 'inline-flex',\n 'items-center',\n\n 'gap-4',\n ],\n },\n size: {\n sm: ['text-xs/4'],\n md: ['text-sm/5'],\n lg: ['text-base/6'],\n },\n },\n defaultVariants: {\n orientation: dataListDefaultVariants.orientation,\n size: dataListDefaultVariants.size,\n },\n});\n"],"mappings":";;;AAIA,MAAa,uBAAuB,IAAI,CAAC,GAAG;CAC1C,UAAU;EACR,aAAa;GACX,UAAU;IACR;IACA;IAEA;GACF;GACA,YAAY;IACV;IACA;IAEA;GACF;EACF;EACA,MAAM;GACJ,IAAI,CAAC,WAAW;GAChB,IAAI,CAAC,WAAW;GAChB,IAAI,CAAC,aAAa;EACpB;CACF;CACA,iBAAiB;EACf,aAAa,wBAAwB;EACrC,MAAM,wBAAwB;CAChC;AACF,CAAC"}
|
|
@@ -2,7 +2,8 @@ import { useRender } from "@base-ui/react";
|
|
|
2
2
|
//#region src/components/display/data-list/data-list-item.d.ts
|
|
3
3
|
export type DataListItemProps = useRender.ComponentProps<'div'>;
|
|
4
4
|
/**
|
|
5
|
-
* Um par rótulo e valor
|
|
5
|
+
* Um par rótulo e valor, com a orientação e o tamanho do `Root`. O `div` em volta de `dt` e `dd` é
|
|
6
|
+
* válido dentro de `dl`.
|
|
6
7
|
*/
|
|
7
8
|
export declare const DataListItem: {
|
|
8
9
|
(props: DataListItemProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|