@strategicos/ui 0.2.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 +22 -1
- package/dist/components/alert.d.ts +1 -1
- package/dist/components/alert.d.ts.map +1 -1
- package/dist/components/alert.js +10 -6
- package/dist/components/alert.js.map +1 -1
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/card.js +4 -4
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox.d.ts +8 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +13 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/field.d.ts +27 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +38 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/input.d.ts +16 -2
- package/dist/components/input.d.ts.map +1 -1
- package/dist/components/input.js +14 -4
- package/dist/components/input.js.map +1 -1
- package/dist/components/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +16 -2
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/password-input.d.ts +8 -0
- package/dist/components/password-input.d.ts.map +1 -0
- package/dist/components/password-input.js +14 -0
- package/dist/components/password-input.js.map +1 -0
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +2 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/switch.d.ts +8 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +12 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.js +2 -2
- package/dist/components/table.js.map +1 -1
- package/dist/components/textarea.d.ts +9 -3
- package/dist/components/textarea.d.ts.map +1 -1
- package/dist/components/textarea.js +11 -4
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/package.json +1 -1
- package/src/components/alert.tsx +10 -7
- package/src/components/badge.tsx +1 -1
- package/src/components/card.tsx +4 -4
- package/src/components/checkbox.tsx +33 -0
- package/src/components/field.tsx +119 -0
- package/src/components/input.tsx +48 -8
- package/src/components/pagination.tsx +54 -18
- package/src/components/password-input.tsx +35 -0
- package/src/components/select.tsx +3 -2
- package/src/components/switch.tsx +32 -0
- package/src/components/table.tsx +2 -2
- package/src/components/textarea.tsx +18 -5
- package/src/components/tooltip.tsx +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ import { cn } from "@strategicos/ui/utils"
|
|
|
15
15
|
|
|
16
16
|
## Componentes
|
|
17
17
|
|
|
18
|
-
`alert` · `alert-dialog` · `avatar` · `badge` · `button` · `card` · `dialog` · `dropdown-menu` · `input` · `label` · `pagination` · `select` · `separator` · `sheet` · `sidebar` · `skeleton` · `sonner` · `table` · `tabs` · `textarea` · `tooltip`
|
|
18
|
+
`alert` · `alert-dialog` · `avatar` · `badge` · `button` · `card` · `checkbox` · `dialog` · `dropdown-menu` · `field` · `input` · `label` · `pagination` · `password-input` · `select` · `separator` · `sheet` · `sidebar` · `skeleton` · `sonner` · `switch` · `table` · `tabs` · `textarea` · `tooltip`
|
|
19
19
|
|
|
20
20
|
Utilitários: `@strategicos/ui/utils` (`cn`) e `@strategicos/ui/hooks/use-mobile` (`useIsMobile`).
|
|
21
21
|
|
|
@@ -29,6 +29,27 @@ Utilitários: `@strategicos/ui/utils` (`cn`) e `@strategicos/ui/hooks/use-mobile
|
|
|
29
29
|
|
|
30
30
|
Botões de ícone: `icon-xs` 24px, `icon-sm` 30px, `icon` 36px, `icon-lg` 42px.
|
|
31
31
|
|
|
32
|
+
## Formulários
|
|
33
|
+
|
|
34
|
+
`Field` monta rótulo, descrição, controle e erro, e liga tudo ao controle de dentro (`id`, `aria-describedby`, `aria-invalid`, `required`). Funciona com `Input`, `PasswordInput`, `Textarea` e `SelectTrigger`.
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import { Field } from "@strategicos/ui/field"
|
|
38
|
+
import { Input } from "@strategicos/ui/input"
|
|
39
|
+
|
|
40
|
+
<Field label="E-mail" description="Usado nos avisos" error={erro} required>
|
|
41
|
+
<Input type="email" value={email} onChange={e => setEmail(e.target.value)} />
|
|
42
|
+
</Field>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- `Input` aceita `leftSection` e `rightSection` (ícones ou botões dentro do campo). Quando há seção, use `wrapperClassName` para largura e posição.
|
|
46
|
+
- `PasswordInput` traz o botão de mostrar/ocultar a senha.
|
|
47
|
+
- `Textarea autosize` cresce com o texto. Limite a altura com `max-h-*`.
|
|
48
|
+
|
|
49
|
+
## Variantes de status
|
|
50
|
+
|
|
51
|
+
`Badge` e `Alert` aceitam `variant="info" | "success" | "warning" | "destructive"`. O Badge também aceita `default`, `secondary`, `outline`, `ghost` e `link`.
|
|
52
|
+
|
|
32
53
|
## Dependências opcionais
|
|
33
54
|
|
|
34
55
|
`sonner` e `next-themes` só são necessários para o `Toaster` (`@strategicos/ui/sonner`).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const alertVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "destructive" | null | undefined;
|
|
4
|
+
variant?: "default" | "destructive" | "info" | "success" | "warning" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
6
|
declare function Alert({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): React.JSX.Element;
|
|
7
7
|
declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAiBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,qBASlE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQxE;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/components/alert.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
import { cn } from "../lib/utils.js";
|
|
4
|
-
const alertVariants = cva("group/alert relative grid w-full gap-
|
|
4
|
+
const alertVariants = cva("group/alert relative grid w-full gap-1 rounded-lg px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-3 *:[svg]:row-span-2 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-5", {
|
|
5
5
|
variants: {
|
|
6
6
|
variant: {
|
|
7
|
-
default: "bg-
|
|
8
|
-
|
|
7
|
+
default: "bg-muted text-foreground",
|
|
8
|
+
// Status: fundo em /10 da cor; título e ícone na cor, texto neutro.
|
|
9
|
+
info: "bg-info/10 *:data-[slot=alert-title]:text-info *:[svg]:text-info",
|
|
10
|
+
success: "bg-success/10 *:data-[slot=alert-title]:text-success *:[svg]:text-success",
|
|
11
|
+
warning: "bg-warning/10 *:data-[slot=alert-title]:text-warning-strong *:[svg]:text-warning",
|
|
12
|
+
destructive: "bg-destructive/10 *:data-[slot=alert-title]:text-destructive *:[svg]:text-destructive",
|
|
9
13
|
},
|
|
10
14
|
},
|
|
11
15
|
defaultVariants: {
|
|
@@ -16,13 +20,13 @@ function Alert({ className, variant, ...props }) {
|
|
|
16
20
|
return (_jsx("div", { "data-slot": "alert", role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
|
|
17
21
|
}
|
|
18
22
|
function AlertTitle({ className, ...props }) {
|
|
19
|
-
return (_jsx("div", { "data-slot": "alert-title", className: cn("font-
|
|
23
|
+
return (_jsx("div", { "data-slot": "alert-title", className: cn("font-semibold group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground", className), ...props }));
|
|
20
24
|
}
|
|
21
25
|
function AlertDescription({ className, ...props }) {
|
|
22
|
-
return (_jsx("div", { "data-slot": "alert-description", className: cn("text-sm text-balance text-
|
|
26
|
+
return (_jsx("div", { "data-slot": "alert-description", className: cn("text-sm text-balance text-foreground/80 md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className), ...props }));
|
|
23
27
|
}
|
|
24
28
|
function AlertAction({ className, ...props }) {
|
|
25
|
-
return (_jsx("div", { "data-slot": "alert-action", className: cn("absolute top-2 right-2", className), ...props }));
|
|
29
|
+
return (_jsx("div", { "data-slot": "alert-action", className: cn("absolute top-2.5 right-2.5", className), ...props }));
|
|
26
30
|
}
|
|
27
31
|
export { Alert, AlertTitle, AlertDescription, AlertAction };
|
|
28
32
|
//# sourceMappingURL=alert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,wRAAwR,EACxR;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,0BAA0B;YACnC,oEAAoE;YACpE,IAAI,EAAS,kEAAkE;YAC/E,OAAO,EAAM,2EAA2E;YACxF,OAAO,EAAM,kFAAkF;YAC/F,WAAW,EAAE,uFAAuF;SACrG;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AAED,SAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACyD;IACjE,OAAO,CACL,2BACY,OAAO,EACjB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,uHAAuH,EACvH,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACoB;IAC5B,OAAO,CACL,2BACY,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,yJAAyJ,EACzJ,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACvE,OAAO,CACL,2BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const badgeVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | "
|
|
4
|
+
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | "info" | "success" | "warning" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
6
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
7
7
|
asChild?: boolean;
|
package/dist/components/badge.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
import { Slot } from "radix-ui";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
|
-
const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-
|
|
5
|
+
const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2.5 text-[11px] font-bold tracking-[0.025em] whitespace-nowrap uppercase transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!", {
|
|
6
6
|
variants: {
|
|
7
7
|
variant: {
|
|
8
8
|
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,ugBAAugB,EACvgB;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,4DAA4D;YACrE,SAAS,EACP,kEAAkE;YACpE,WAAW,EACT,yIAAyI;YAC3I,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,wDAAwD;YACxD,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE,mCAAmC;YAC5C,IAAI,EAAK,sBAAsB;YAC/B,OAAO,EACL,kFAAkF;YACpF,KAAK,EACH,mEAAmE;YACrE,IAAI,EAAE,wDAAwD;SAC/D;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AAED,SAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EAEkD;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAEzC,OAAO,CACL,KAAC,IAAI,iBACO,OAAO,kBACH,OAAO,EACrB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/components/card.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
function Card({ className, size = "default", ...props }) {
|
|
4
|
-
return (_jsx("div", { "data-slot": "card", "data-size": size, className: cn("group/card flex flex-col gap-4 overflow-hidden rounded-
|
|
4
|
+
return (_jsx("div", { "data-slot": "card", "data-size": size, className: cn("group/card flex flex-col gap-4 overflow-hidden rounded-lg border border-border bg-card py-4 text-sm text-card-foreground shadow-card has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg", className), ...props }));
|
|
5
5
|
}
|
|
6
6
|
function CardHeader({ className, ...props }) {
|
|
7
|
-
return (_jsx("div", { "data-slot": "card-header", className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-
|
|
7
|
+
return (_jsx("div", { "data-slot": "card-header", className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-lg px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3", className), ...props }));
|
|
8
8
|
}
|
|
9
9
|
function CardTitle({ className, ...props }) {
|
|
10
|
-
return (_jsx("div", { "data-slot": "card-title", className: cn("font-heading text-base leading-snug font-
|
|
10
|
+
return (_jsx("div", { "data-slot": "card-title", className: cn("font-heading text-base leading-snug font-semibold group-data-[size=sm]/card:text-sm", className), ...props }));
|
|
11
11
|
}
|
|
12
12
|
function CardDescription({ className, ...props }) {
|
|
13
13
|
return (_jsx("div", { "data-slot": "card-description", className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
@@ -19,7 +19,7 @@ function CardContent({ className, ...props }) {
|
|
|
19
19
|
return (_jsx("div", { "data-slot": "card-content", className: cn("px-4 group-data-[size=sm]/card:px-3", className), ...props }));
|
|
20
20
|
}
|
|
21
21
|
function CardFooter({ className, ...props }) {
|
|
22
|
-
return (_jsx("div", { "data-slot": "card-footer", className: cn("flex items-center rounded-b-
|
|
22
|
+
return (_jsx("div", { "data-slot": "card-footer", className: cn("flex items-center rounded-b-lg border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3", className), ...props }));
|
|
23
23
|
}
|
|
24
24
|
export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
|
|
25
25
|
//# sourceMappingURL=card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,SAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACkD;IAC1D,OAAO,CACL,2BACY,MAAM,eACL,IAAI,EACf,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,SAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACkD;IAC1D,OAAO,CACL,2BACY,MAAM,eACL,IAAI,EACf,SAAS,EAAE,EAAE,CACX,6VAA6V,EAC7V,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,oSAAoS,EACpS,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACrE,OAAO,CACL,2BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,qFAAqF,EACrF,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IAC3E,OAAO,CACL,2BACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACvE,OAAO,CACL,2BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,SAAS,CAAC,KAC3D,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,uFAAuF,EACvF,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
3
|
+
/** Caixa de seleção (Radix Checkbox), no tamanho padrão do Mantine: 20px,
|
|
4
|
+
* raio de 4px, marcada na cor primária. Aceita `checked="indeterminate"`.
|
|
5
|
+
* Para rótulo, associe um <Label htmlFor> ao `id` do Checkbox. */
|
|
6
|
+
declare function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>): React.JSX.Element;
|
|
7
|
+
export { Checkbox };
|
|
8
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKxD;;mEAEmE;AACnE,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,qBAgBrD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
4
|
+
import { CheckIcon, MinusIcon } from "lucide-react";
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
6
|
+
/** Caixa de seleção (Radix Checkbox), no tamanho padrão do Mantine: 20px,
|
|
7
|
+
* raio de 4px, marcada na cor primária. Aceita `checked="indeterminate"`.
|
|
8
|
+
* Para rótulo, associe um <Label htmlFor> ao `id` do Checkbox. */
|
|
9
|
+
function Checkbox({ className, ...props }) {
|
|
10
|
+
return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer group/checkbox inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-lg border border-input bg-background text-primary-foreground transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive data-checked:border-primary data-checked:bg-primary data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary dark:bg-input/30", className), ...props, children: _jsxs(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "flex items-center justify-center", children: [_jsx(CheckIcon, { className: "size-3.5 stroke-3 group-data-[state=indeterminate]/checkbox:hidden" }), _jsx(MinusIcon, { className: "hidden size-3.5 stroke-3 group-data-[state=indeterminate]/checkbox:block" })] }) }));
|
|
11
|
+
}
|
|
12
|
+
export { Checkbox };
|
|
13
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC;;mEAEmE;AACnE,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EAC4C;IACpD,OAAO,CACL,KAAC,iBAAiB,CAAC,IAAI,iBACX,UAAU,EACpB,SAAS,EAAE,EAAE,CACX,qdAAqd,EACrd,SAAS,CACV,KACG,KAAK,YAET,MAAC,iBAAiB,CAAC,SAAS,iBAAW,oBAAoB,EAAC,SAAS,EAAC,kCAAkC,aACtG,KAAC,SAAS,IAAC,SAAS,EAAC,oEAAoE,GAAG,EAC5F,KAAC,SAAS,IAAC,SAAS,EAAC,0EAA0E,GAAG,IACtE,GACP,CAC1B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type ControlProps = {
|
|
3
|
+
id?: string;
|
|
4
|
+
"aria-describedby"?: string;
|
|
5
|
+
"aria-invalid"?: React.AriaAttributes["aria-invalid"];
|
|
6
|
+
};
|
|
7
|
+
/** Mescla nas props do controle o que vem do Field em volta (se houver).
|
|
8
|
+
* O que a tela passar explicitamente vence. `withRequired: false` para
|
|
9
|
+
* controles em que `required` não é atributo válido (o SelectTrigger é um
|
|
10
|
+
* <button>). */
|
|
11
|
+
declare function useFieldControl<P extends ControlProps & {
|
|
12
|
+
required?: boolean;
|
|
13
|
+
}>(props: P, { withRequired }?: {
|
|
14
|
+
withRequired?: boolean;
|
|
15
|
+
}): P;
|
|
16
|
+
declare function Field({ label, description, error, required, id, className, children, ...props }: Omit<React.ComponentProps<"div">, "id"> & {
|
|
17
|
+
label?: React.ReactNode;
|
|
18
|
+
description?: React.ReactNode;
|
|
19
|
+
/** Mensagem de erro. Quando presente, o controle fica com aria-invalid. */
|
|
20
|
+
error?: React.ReactNode;
|
|
21
|
+
/** Mostra o asterisco no rótulo e marca o controle como obrigatório. */
|
|
22
|
+
required?: boolean;
|
|
23
|
+
/** id do controle. Sem ele, um id é gerado. */
|
|
24
|
+
id?: string;
|
|
25
|
+
}): React.JSX.Element;
|
|
26
|
+
export { Field, useFieldControl };
|
|
27
|
+
//# sourceMappingURL=field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/components/field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA4B9B,KAAK,YAAY,GAAG;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;CACtD,CAAA;AAED;;;iBAGiB;AACjB,iBAAS,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACtE,KAAK,EAAE,CAAC,EACR,EAAE,YAAmB,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACvD,CAAC,CAWH;AAED,iBAAS,KAAK,CAAC,EACb,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAgB,EAChB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,qBA0CA;AAED,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
|
+
import { Label } from "./label.js";
|
|
6
|
+
const FieldContext = React.createContext(null);
|
|
7
|
+
/** Mescla nas props do controle o que vem do Field em volta (se houver).
|
|
8
|
+
* O que a tela passar explicitamente vence. `withRequired: false` para
|
|
9
|
+
* controles em que `required` não é atributo válido (o SelectTrigger é um
|
|
10
|
+
* <button>). */
|
|
11
|
+
function useFieldControl(props, { withRequired = true } = {}) {
|
|
12
|
+
const field = React.useContext(FieldContext);
|
|
13
|
+
if (!field)
|
|
14
|
+
return props;
|
|
15
|
+
const describedBy = [props["aria-describedby"], field.describedBy].filter(Boolean).join(" ") || undefined;
|
|
16
|
+
return {
|
|
17
|
+
...props,
|
|
18
|
+
id: props.id ?? field.id,
|
|
19
|
+
"aria-describedby": describedBy,
|
|
20
|
+
"aria-invalid": props["aria-invalid"] ?? (field.invalid || undefined),
|
|
21
|
+
...(withRequired && { required: props.required ?? (field.required || undefined) }),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function Field({ label, description, error, required = false, id, className, children, ...props }) {
|
|
25
|
+
const autoId = React.useId();
|
|
26
|
+
const controlId = id ?? autoId;
|
|
27
|
+
const descriptionId = description ? `${controlId}-description` : undefined;
|
|
28
|
+
const errorId = error ? `${controlId}-error` : undefined;
|
|
29
|
+
const value = React.useMemo(() => ({
|
|
30
|
+
id: controlId,
|
|
31
|
+
describedBy: [descriptionId, errorId].filter(Boolean).join(" ") || undefined,
|
|
32
|
+
invalid: !!error,
|
|
33
|
+
required,
|
|
34
|
+
}), [controlId, descriptionId, errorId, error, required]);
|
|
35
|
+
return (_jsxs("div", { "data-slot": "field", "data-invalid": error ? true : undefined, className: cn("grid content-start gap-1.5", className), ...props, children: [label && (_jsxs(Label, { htmlFor: controlId, children: [label, required && _jsx("span", { "aria-hidden": true, className: "-ml-1 text-destructive", children: "*" })] })), description && (_jsx("p", { id: descriptionId, "data-slot": "field-description", className: "-mt-0.5 text-xs leading-snug text-muted-foreground", children: description })), _jsx(FieldContext.Provider, { value: value, children: children }), error && (_jsx("p", { id: errorId, "data-slot": "field-error", className: "text-xs leading-snug text-destructive", children: error }))] }));
|
|
36
|
+
}
|
|
37
|
+
export { Field, useFieldControl };
|
|
38
|
+
//# sourceMappingURL=field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/components/field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/** Classes do campo. Foco e erro seguem o Mantine: só a borda muda de cor,
|
|
3
|
+
* sem halo em volta. */
|
|
4
|
+
declare const inputClassName = "h-9 w-full min-w-0 rounded-lg border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-60 aria-invalid:border-destructive aria-invalid:text-destructive aria-invalid:placeholder:text-destructive/60 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80";
|
|
5
|
+
type InputProps = React.ComponentProps<"input"> & {
|
|
6
|
+
/** Conteúdo à esquerda, dentro do campo (ex.: ícone de busca). Não recebe
|
|
7
|
+
* cliques: o clique passa para o campo. */
|
|
8
|
+
leftSection?: React.ReactNode;
|
|
9
|
+
/** Conteúdo à direita, dentro do campo (ex.: botão de limpar). Recebe
|
|
10
|
+
* cliques. */
|
|
11
|
+
rightSection?: React.ReactNode;
|
|
12
|
+
/** Classes do invólucro, que só existe quando há seção. Use para largura e
|
|
13
|
+
* posição no layout (flex-1, w-64…); `className` vai sempre no <input>. */
|
|
14
|
+
wrapperClassName?: string;
|
|
15
|
+
};
|
|
16
|
+
declare function Input({ className, type, leftSection, rightSection, wrapperClassName, ...props }: InputProps): React.JSX.Element;
|
|
17
|
+
export { Input, inputClassName, type InputProps };
|
|
4
18
|
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;yBACyB;AACzB,QAAA,MAAM,cAAc,sgBACif,CAAA;AAKrgB,KAAK,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG;IAChD;gDAC4C;IAC5C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B;mBACe;IACf,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;gFAC4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBA6BpG;AAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,CAAA"}
|
package/dist/components/input.js
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
import { useFieldControl } from "./field.js";
|
|
5
|
+
/** Classes do campo. Foco e erro seguem o Mantine: só a borda muda de cor,
|
|
6
|
+
* sem halo em volta. */
|
|
7
|
+
const inputClassName = "h-9 w-full min-w-0 rounded-lg border border-input bg-transparent px-3 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-60 aria-invalid:border-destructive aria-invalid:text-destructive aria-invalid:placeholder:text-destructive/60 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80";
|
|
8
|
+
const sectionClassName = "absolute inset-y-0 flex w-9 items-center justify-center text-muted-foreground [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
|
|
9
|
+
function Input({ className, type, leftSection, rightSection, wrapperClassName, ...props }) {
|
|
10
|
+
const controlProps = useFieldControl(props);
|
|
11
|
+
const input = (_jsx("input", { type: type, "data-slot": "input", className: cn(inputClassName, !!leftSection && "pl-9", !!rightSection && "pr-9", className), ...controlProps }));
|
|
12
|
+
if (!leftSection && !rightSection)
|
|
13
|
+
return input;
|
|
14
|
+
return (_jsxs("div", { "data-slot": "input-wrapper", className: cn("relative w-full min-w-0", wrapperClassName), children: [leftSection && (_jsx("span", { "data-slot": "input-left-section", className: cn(sectionClassName, "pointer-events-none left-0"), children: leftSection })), input, rightSection && (_jsx("span", { "data-slot": "input-right-section", className: cn(sectionClassName, "right-0"), children: rightSection }))] }));
|
|
5
15
|
}
|
|
6
|
-
export { Input };
|
|
16
|
+
export { Input, inputClassName };
|
|
7
17
|
//# sourceMappingURL=input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C;yBACyB;AACzB,MAAM,cAAc,GAClB,mgBAAmgB,CAAA;AAErgB,MAAM,gBAAgB,GACpB,qIAAqI,CAAA;AAcvI,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAc;IACnG,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IAE3C,MAAM,KAAK,GAAG,CACZ,gBACE,IAAI,EAAE,IAAI,eACA,OAAO,EACjB,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,CAAC,YAAY,IAAI,MAAM,EAAE,SAAS,CAAC,KACvF,YAAY,GAChB,CACH,CAAA;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAA;IAE/C,OAAO,CACL,4BAAe,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,aACtF,WAAW,IAAI,CACd,4BAAgB,oBAAoB,EAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,YAC/F,WAAW,GACP,CACR,EACA,KAAK,EACL,YAAY,IAAI,CACf,4BAAgB,qBAAqB,EAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,YAC7E,YAAY,GACR,CACR,IACG,CACP,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAoBD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,GACV,EAAE,eAAe,sCAyDjB"}
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
3
3
|
import { cn } from "../lib/utils.js";
|
|
4
|
-
|
|
4
|
+
/** Páginas visíveis, no padrão do Mantine: a primeira e a última sempre, a
|
|
5
|
+
* atual com uma vizinha de cada lado, e reticências no lugar dos buracos.
|
|
6
|
+
* O total de itens é fixo (7 quando há buraco), para os botões não pularem
|
|
7
|
+
* de posição enquanto se navega. */
|
|
8
|
+
function pageItems(page, totalPages) {
|
|
9
|
+
const range = (a, b) => Array.from({ length: b - a + 1 }, (_, i) => a + i);
|
|
10
|
+
if (totalPages <= 7)
|
|
11
|
+
return range(1, totalPages);
|
|
12
|
+
if (page <= 4)
|
|
13
|
+
return [...range(1, 5), "dots", totalPages];
|
|
14
|
+
if (page >= totalPages - 3)
|
|
15
|
+
return [1, "dots", ...range(totalPages - 4, totalPages)];
|
|
16
|
+
return [1, "dots", page - 1, page, page + 1, "dots", totalPages];
|
|
17
|
+
}
|
|
18
|
+
const control = "inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg border border-border bg-background text-sm font-medium tabular-nums text-foreground transition-colors outline-none hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-background";
|
|
5
19
|
export function Pagination({ page, totalPages, total, pageSize, loading, onPageChange, className, }) {
|
|
6
20
|
if (totalPages <= 1)
|
|
7
21
|
return null;
|
|
8
22
|
const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
9
23
|
const to = Math.min(page * pageSize, total);
|
|
10
|
-
return (_jsxs("div", { className: cn("flex items-center justify-between gap-3 pt-3", className), children: [_jsxs("p", { className: "text-xs text-muted-foreground", children: [from, "\u2013", to, " de ", total] }), _jsxs("
|
|
24
|
+
return (_jsxs("div", { className: cn("flex flex-wrap items-center justify-between gap-3 pt-3", className), children: [_jsxs("p", { className: "text-xs text-muted-foreground tabular-nums", children: [from, "\u2013", to, " de ", total] }), _jsxs("nav", { "aria-label": "Pagina\u00E7\u00E3o", className: "flex items-center gap-1.5", children: [_jsx("button", { type: "button", className: control, disabled: page <= 1 || loading, onClick: () => onPageChange(page - 1), "aria-label": "P\u00E1gina anterior", children: _jsx(ChevronLeft, { className: "size-4" }) }), pageItems(page, totalPages).map((item, i) => item === "dots" ? (_jsx("span", { "aria-hidden": true, className: "inline-flex size-8 items-center justify-center text-sm text-muted-foreground", children: "\u2026" }, `dots-${i}`)) : (_jsx("button", { type: "button", className: cn(control, item === page && "border-primary bg-primary text-primary-foreground hover:bg-primary-hover"), disabled: loading, "aria-current": item === page ? "page" : undefined, "aria-label": `Página ${item}`, onClick: () => item !== page && onPageChange(item), children: item }, item))), _jsx("button", { type: "button", className: control, disabled: page >= totalPages || loading, onClick: () => onPageChange(page + 1), "aria-label": "Pr\u00F3xima p\u00E1gina", children: _jsx(ChevronRight, { className: "size-4" }) })] })] }));
|
|
11
25
|
}
|
|
12
26
|
//# sourceMappingURL=pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type InputProps } from "./input.js";
|
|
3
|
+
/** Campo de senha com o botão de mostrar/ocultar à direita, como o
|
|
4
|
+
* PasswordInput do Mantine. Aceita as mesmas props do Input, menos `type` e
|
|
5
|
+
* `rightSection`, que ele controla. */
|
|
6
|
+
declare function PasswordInput({ disabled, ...props }: Omit<InputProps, "type" | "rightSection">): React.JSX.Element;
|
|
7
|
+
export { PasswordInput };
|
|
8
|
+
//# sourceMappingURL=password-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-input.d.ts","sourceRoot":"","sources":["../../src/components/password-input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEnD;;wCAEwC;AACxC,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC,qBAsBvF;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { EyeIcon, EyeOffIcon } from "lucide-react";
|
|
5
|
+
import { Input } from "./input.js";
|
|
6
|
+
/** Campo de senha com o botão de mostrar/ocultar à direita, como o
|
|
7
|
+
* PasswordInput do Mantine. Aceita as mesmas props do Input, menos `type` e
|
|
8
|
+
* `rightSection`, que ele controla. */
|
|
9
|
+
function PasswordInput({ disabled, ...props }) {
|
|
10
|
+
const [visible, setVisible] = React.useState(false);
|
|
11
|
+
return (_jsx(Input, { ...props, disabled: disabled, type: visible ? "text" : "password", rightSection: _jsx("button", { type: "button", onClick: () => setVisible(v => !v), disabled: disabled, "aria-label": visible ? "Ocultar senha" : "Mostrar senha", "aria-pressed": visible, className: "flex size-7 cursor-pointer items-center justify-center rounded-md transition-colors outline-none hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50", children: visible ? _jsx(EyeOffIcon, {}) : _jsx(EyeIcon, {}) }) }));
|
|
12
|
+
}
|
|
13
|
+
export { PasswordInput };
|
|
14
|
+
//# sourceMappingURL=password-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-input.js","sourceRoot":"","sources":["../../src/components/password-input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAA;AAEnD;;wCAEwC;AACxC,SAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA6C;IACtF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnD,OAAO,CACL,KAAC,KAAK,OACA,KAAK,EACT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EACnC,YAAY,EACV,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAClC,QAAQ,EAAE,QAAQ,gBACN,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,kBACzC,OAAO,EACrB,SAAS,EAAC,uOAAuO,YAEhP,OAAO,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,CAAC,CAAC,CAAC,KAAC,OAAO,KAAG,GAChC,GAEX,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAMpD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAEnD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAQpD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACxB,qBAqBA;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,KAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAyBtD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAQpD;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IAGrD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC9B,qBAyBA;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,qBAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,qBAc7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,qBAc/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Select as SelectPrimitive } from "radix-ui";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
|
+
import { useFieldControl } from "./field.js";
|
|
5
6
|
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
|
|
6
7
|
function Select({ ...props }) {
|
|
7
8
|
return _jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
@@ -13,7 +14,7 @@ function SelectValue({ ...props }) {
|
|
|
13
14
|
return _jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
14
15
|
}
|
|
15
16
|
function SelectTrigger({ className, size = "default", children, ...props }) {
|
|
16
|
-
return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2.5 pl-3 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring
|
|
17
|
+
return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2.5 pl-3 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring data-[state=open]:border-ring disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-60 aria-invalid:border-destructive data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-7.5 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...useFieldControl(props, { withRequired: false }), children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDownIcon, { className: "pointer-events-none size-4 opacity-70" }) })] }));
|
|
17
18
|
}
|
|
18
19
|
function SelectContent({ className, children, position = "popper", align = "start", ...props }) {
|
|
19
20
|
return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { "data-slot": "select-content", "data-align-trigger": position === "item-aligned", className: cn("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position, align: align, ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { "data-position": position, className: cn("p-1 data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)", position === "popper" && ""), children: children }), _jsx(SelectScrollDownButton, {})] }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAExE,SAAS,MAAM,CAAC,EACd,GAAG,KAAK,EAC0C;IAClD,OAAO,KAAC,eAAe,CAAC,IAAI,iBAAW,QAAQ,KAAK,KAAK,GAAI,CAAA;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EAC2C;IACnD,OAAO,CACL,KAAC,eAAe,CAAC,KAAK,iBACV,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KACvC,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EAC2C;IACnD,OAAO,KAAC,eAAe,CAAC,KAAK,iBAAW,cAAc,KAAK,KAAK,GAAI,CAAA;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,QAAQ,EACR,GAAG,KAAK,EAGT;IACC,OAAO,CACL,MAAC,eAAe,CAAC,OAAO,iBACZ,gBAAgB,eACf,IAAI,EACf,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Switch as SwitchPrimitive } from "radix-ui";
|
|
3
|
+
/** Interruptor liga/desliga (Radix Switch), no tamanho padrão do Mantine:
|
|
4
|
+
* trilho de 38×20px e polegar de 14px. Ligado usa a cor primária.
|
|
5
|
+
* Para rótulo, associe um <Label htmlFor> ao `id` do Switch. */
|
|
6
|
+
declare function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>): React.JSX.Element;
|
|
7
|
+
export { Switch };
|
|
8
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAIpD;;iEAEiE;AACjE,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAgBnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Switch as SwitchPrimitive } from "radix-ui";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
|
+
/** Interruptor liga/desliga (Radix Switch), no tamanho padrão do Mantine:
|
|
6
|
+
* trilho de 38×20px e polegar de 14px. Ligado usa a cor primária.
|
|
7
|
+
* Para rótulo, associe um <Label htmlFor> ao `id` do Switch. */
|
|
8
|
+
function Switch({ className, ...props }) {
|
|
9
|
+
return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn("peer inline-flex h-5 w-9.5 shrink-0 cursor-pointer items-center rounded-full border border-input bg-muted p-0.5 transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:border-primary data-checked:bg-primary dark:bg-input/40", className), ...props, children: _jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: "pointer-events-none block size-3.5 rounded-full bg-background shadow-sm ring-1 ring-foreground/10 transition-transform data-checked:translate-x-4.5 data-unchecked:translate-x-0" }) }));
|
|
10
|
+
}
|
|
11
|
+
export { Switch };
|
|
12
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC;;iEAEiE;AACjE,SAAS,MAAM,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EAC0C;IAClD,OAAO,CACL,KAAC,eAAe,CAAC,IAAI,iBACT,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,qTAAqT,EACrT,SAAS,CACV,KACG,KAAK,YAET,KAAC,eAAe,CAAC,KAAK,iBACV,cAAc,EACxB,SAAS,EAAC,kLAAkL,GAC5L,GACmB,CACxB,CAAA;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
package/dist/components/table.js
CHANGED
|
@@ -17,10 +17,10 @@ function TableRow({ className, ...props }) {
|
|
|
17
17
|
return (_jsx("tr", { "data-slot": "table-row", className: cn("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted", className), ...props }));
|
|
18
18
|
}
|
|
19
19
|
function TableHead({ className, ...props }) {
|
|
20
|
-
return (_jsx("th", { "data-slot": "table-head", className: cn("h-10 px-2 text-left align-middle font-
|
|
20
|
+
return (_jsx("th", { "data-slot": "table-head", className: cn("h-10 px-2.5 text-left align-middle font-bold whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0", className), ...props }));
|
|
21
21
|
}
|
|
22
22
|
function TableCell({ className, ...props }) {
|
|
23
|
-
return (_jsx("td", { "data-slot": "table-cell", className: cn("
|
|
23
|
+
return (_jsx("td", { "data-slot": "table-cell", className: cn("px-2.5 py-2.5 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className), ...props }));
|
|
24
24
|
}
|
|
25
25
|
function TableCaption({ className, ...props }) {
|
|
26
26
|
return (_jsx("caption", { "data-slot": "table-caption", className: cn("mt-4 text-sm text-muted-foreground", className), ...props }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/components/table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACnE,OAAO,CACL,2BACY,iBAAiB,EAC3B,SAAS,EAAC,iCAAiC,YAE3C,6BACY,OAAO,EACjB,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,GACE,CACP,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KACvC,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACvE,OAAO,CACL,6BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CACX,yDAAyD,EACzD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACnE,OAAO,CACL,0BACY,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,2GAA2G,EAC3G,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,8GAA8G,EAC9G,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/components/table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACnE,OAAO,CACL,2BACY,iBAAiB,EAC3B,SAAS,EAAC,iCAAiC,YAE3C,6BACY,OAAO,EACjB,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,GACE,CACP,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KACvC,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACvE,OAAO,CACL,6BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CACX,yDAAyD,EACzD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACnE,OAAO,CACL,0BACY,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,2GAA2G,EAC3G,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,8GAA8G,EAC9G,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,4EAA4E,EAC5E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACwB;IAChC,OAAO,CACL,+BACY,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAA"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
/**
|
|
3
3
|
* Campo multilinha. Espelha os tokens do <Input> — mesma borda, mesmo raio,
|
|
4
|
-
* mesmo
|
|
5
|
-
*
|
|
4
|
+
* mesmo foco, mesmo tratamento de desabilitado e de aria-invalid — para que um
|
|
5
|
+
* campo de texto longo não pareça de outro sistema ao lado de um curto.
|
|
6
6
|
*
|
|
7
7
|
* Difere do Input só no que a multilinha exige: sem altura fixa, com padding
|
|
8
8
|
* vertical maior e `leading-relaxed`.
|
|
9
9
|
*
|
|
10
|
+
* `autosize`: a altura acompanha o texto (CSS `field-sizing: content`, sem
|
|
11
|
+
* JS). Limite a altura com `max-h-*` no className. Navegadores sem suporte
|
|
12
|
+
* (Firefox, hoje) mantêm a altura de `rows`.
|
|
13
|
+
*
|
|
10
14
|
* Não confundir com o InlineTextarea do gerenciador: aquele é um editor inline
|
|
11
15
|
* (sem borda até o hover, salva no blur), um padrão deliberadamente diferente.
|
|
12
16
|
*/
|
|
13
|
-
declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">
|
|
17
|
+
declare function Textarea({ className, autosize, ...props }: React.ComponentProps<"textarea"> & {
|
|
18
|
+
autosize?: boolean;
|
|
19
|
+
}): React.JSX.Element;
|
|
14
20
|
export { Textarea };
|
|
15
21
|
//# sourceMappingURL=textarea.d.ts.map
|