@ekanos/ui 0.1.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/LICENSE +21 -0
- package/README.md +124 -0
- package/dist/ai-prompt-input.d.ts +187 -0
- package/dist/ai-prompt-input.js +2411 -0
- package/dist/alert.d.ts +12 -0
- package/dist/alert.js +92 -0
- package/dist/badge.d.ts +12 -0
- package/dist/badge.js +60 -0
- package/dist/button.d.ts +13 -0
- package/dist/button.js +64 -0
- package/dist/card.d.ts +18 -0
- package/dist/card.js +108 -0
- package/dist/dialog.d.ts +19 -0
- package/dist/dialog.js +897 -0
- package/dist/dropdown-menu.d.ts +27 -0
- package/dist/dropdown-menu.js +941 -0
- package/dist/form.d.ts +27 -0
- package/dist/form.js +156 -0
- package/dist/icon.d.ts +47 -0
- package/dist/icon.js +763 -0
- package/dist/if.d.ts +38 -0
- package/dist/if.js +15 -0
- package/dist/input.d.ts +5 -0
- package/dist/input.js +28 -0
- package/dist/label.d.ts +5 -0
- package/dist/label.js +27 -0
- package/dist/select.d.ts +25 -0
- package/dist/select.js +944 -0
- package/dist/separator.d.ts +6 -0
- package/dist/separator.js +35 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +22 -0
- package/dist/spinner.d.ts +27 -0
- package/dist/spinner.js +49 -0
- package/dist/tooltip.d.ts +9 -0
- package/dist/tooltip.js +74 -0
- package/dist/trans.d.ts +39 -0
- package/dist/trans.js +9 -0
- package/dist/utils.d.ts +23 -0
- package/dist/utils.js +83 -0
- package/package.json +150 -0
package/dist/alert.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
declare const alertVariants: (props?: ({
|
|
6
|
+
variant?: "default" | "destructive" | "success" | "warning" | "info" | null | undefined;
|
|
7
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
8
|
+
declare function Alert({ className, variant, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>): React.JSX.Element;
|
|
9
|
+
declare function AlertTitle({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
10
|
+
declare function AlertDescription({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
11
|
+
|
|
12
|
+
export { Alert, AlertDescription, AlertTitle };
|
package/dist/alert.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// ../ui/src/shadcn/alert.tsx
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
|
|
4
|
+
// ../ui/src/lib/utils/cn.ts
|
|
5
|
+
import { clsx } from "clsx";
|
|
6
|
+
import { twMerge } from "tailwind-merge";
|
|
7
|
+
function cn(...inputs) {
|
|
8
|
+
return twMerge(clsx(inputs));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// ../ui/src/shadcn/alert.tsx
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
var alertVariants = cva(
|
|
14
|
+
"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>i]:grid-cols-[auto_1fr] has-[>i]:gap-x-3 has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>i]:shrink-0 [&>i]:translate-y-0.5 [&>i]:text-current [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
|
|
15
|
+
{
|
|
16
|
+
variants: {
|
|
17
|
+
variant: {
|
|
18
|
+
default: "bg-card text-card-foreground",
|
|
19
|
+
/*
|
|
20
|
+
* The `-strong` steps, not the base tokens.
|
|
21
|
+
*
|
|
22
|
+
* An alert's title and description are small text, so 4.5:1 applies —
|
|
23
|
+
* and the base status colours are FILL colours. `--destructive` reads
|
|
24
|
+
* 2.66:1 as dark-mode text on `--card`, and `--success` reads 3.94:1 on
|
|
25
|
+
* a light `bg-success/5` tint. Both tokens already ship a text step for
|
|
26
|
+
* exactly this; `--warning` and `--info` clear AA as-is and keep theirs.
|
|
27
|
+
*
|
|
28
|
+
* The description drops to /90 of the same step rather than of the base,
|
|
29
|
+
* so it stays above the floor too.
|
|
30
|
+
*/
|
|
31
|
+
destructive: "bg-card text-destructive-strong *:data-[slot=alert-description]:text-destructive-strong/90 [&>svg]:text-current",
|
|
32
|
+
success: "bg-card text-success-strong *:data-[slot=alert-description]:text-success-strong/90 [&>svg]:text-current",
|
|
33
|
+
warning: "bg-card text-warning *:data-[slot=alert-description]:text-warning/90 [&>svg]:text-current",
|
|
34
|
+
info: "bg-card text-info *:data-[slot=alert-description]:text-info/90 [&>svg]:text-current"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
variant: "default"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
function Alert({
|
|
43
|
+
className,
|
|
44
|
+
variant,
|
|
45
|
+
...props
|
|
46
|
+
}) {
|
|
47
|
+
return /* @__PURE__ */ jsx(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
"data-slot": "alert",
|
|
51
|
+
role: "alert",
|
|
52
|
+
className: cn(alertVariants({ variant }), className),
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function AlertTitle({ className, ...props }) {
|
|
58
|
+
return /* @__PURE__ */ jsx(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
"data-slot": "alert-title",
|
|
62
|
+
className: cn(
|
|
63
|
+
// Wraps rather than clamps: an alert title is the sentence that names
|
|
64
|
+
// the problem, and a clamped one on a 390px screen names half of it.
|
|
65
|
+
"col-start-2 min-h-4 font-medium tracking-tight text-balance",
|
|
66
|
+
className
|
|
67
|
+
),
|
|
68
|
+
...props
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
function AlertDescription({
|
|
73
|
+
className,
|
|
74
|
+
...props
|
|
75
|
+
}) {
|
|
76
|
+
return /* @__PURE__ */ jsx(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
"data-slot": "alert-description",
|
|
80
|
+
className: cn(
|
|
81
|
+
"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
|
|
82
|
+
className
|
|
83
|
+
),
|
|
84
|
+
...props
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
Alert,
|
|
90
|
+
AlertDescription,
|
|
91
|
+
AlertTitle
|
|
92
|
+
};
|
package/dist/badge.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const badgeVariants: (props?: ({
|
|
7
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | "success" | "warning" | "info" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
type BadgeProps = useRender.ComponentProps<'span'> & VariantProps<typeof badgeVariants>;
|
|
10
|
+
declare function Badge({ className, variant, render, ...props }: BadgeProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
11
|
+
|
|
12
|
+
export { Badge, type BadgeProps, badgeVariants };
|
package/dist/badge.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// ../ui/src/shadcn/badge.tsx
|
|
2
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
// ../ui/src/lib/utils/cn.ts
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { twMerge } from "tailwind-merge";
|
|
9
|
+
function cn(...inputs) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// ../ui/src/shadcn/badge.tsx
|
|
14
|
+
var badgeVariants = cva(
|
|
15
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",
|
|
16
|
+
{
|
|
17
|
+
variants: {
|
|
18
|
+
variant: {
|
|
19
|
+
default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
20
|
+
secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
21
|
+
destructive: "bg-destructive text-destructive-foreground focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
|
|
22
|
+
outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
|
23
|
+
ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
|
24
|
+
link: "text-primary underline-offset-4 [a&]:hover:underline",
|
|
25
|
+
// `text-success-strong`, not `text-success`: a badge label is `text-xs`,
|
|
26
|
+
// and the base green reaches only 4.19:1 on `--background`. The strong
|
|
27
|
+
// step clears AA on both card and page, and is the same token in dark.
|
|
28
|
+
success: "border-success text-success-strong",
|
|
29
|
+
warning: "border-warning text-warning",
|
|
30
|
+
info: "border-info text-info"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
defaultVariants: {
|
|
34
|
+
variant: "default"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
function Badge({
|
|
39
|
+
className,
|
|
40
|
+
variant = "default",
|
|
41
|
+
render,
|
|
42
|
+
...props
|
|
43
|
+
}) {
|
|
44
|
+
return useRender({
|
|
45
|
+
defaultTagName: "span",
|
|
46
|
+
render,
|
|
47
|
+
props: mergeProps(
|
|
48
|
+
{
|
|
49
|
+
"data-slot": "badge",
|
|
50
|
+
"data-variant": variant,
|
|
51
|
+
className: cn(badgeVariants({ variant }), className)
|
|
52
|
+
},
|
|
53
|
+
props
|
|
54
|
+
)
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
Badge,
|
|
59
|
+
badgeVariants
|
|
60
|
+
};
|
package/dist/button.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import { Button as Button$1 } from '@base-ui/react/button';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | "success" | null | undefined;
|
|
8
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
type ButtonProps = Button$1.Props & VariantProps<typeof buttonVariants>;
|
|
11
|
+
declare function Button({ className, variant, size, ...props }: ButtonProps): React.JSX.Element;
|
|
12
|
+
|
|
13
|
+
export { Button, type ButtonProps, buttonVariants };
|
package/dist/button.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// ../ui/src/shadcn/button.tsx
|
|
2
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
|
|
5
|
+
// ../ui/src/lib/utils/cn.ts
|
|
6
|
+
import { clsx } from "clsx";
|
|
7
|
+
import { twMerge } from "tailwind-merge";
|
|
8
|
+
function cn(...inputs) {
|
|
9
|
+
return twMerge(clsx(inputs));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// ../ui/src/shadcn/button.tsx
|
|
13
|
+
import { jsx } from "react/jsx-runtime";
|
|
14
|
+
var buttonVariants = cva(
|
|
15
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
16
|
+
{
|
|
17
|
+
variants: {
|
|
18
|
+
variant: {
|
|
19
|
+
default: "bg-primary-strong text-primary-foreground hover:bg-primary-strong/90",
|
|
20
|
+
destructive: "bg-destructive hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 text-destructive-foreground",
|
|
21
|
+
outline: "bg-background hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 border shadow-xs",
|
|
22
|
+
success: "bg-success-strong text-success-foreground hover:bg-success-strong/90 focus-visible:ring-success-strong/30",
|
|
23
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
24
|
+
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
25
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
26
|
+
},
|
|
27
|
+
size: {
|
|
28
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
29
|
+
xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
30
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
31
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
32
|
+
icon: "size-9",
|
|
33
|
+
"icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
|
|
34
|
+
"icon-sm": "size-8",
|
|
35
|
+
"icon-lg": "size-10"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
variant: "default",
|
|
40
|
+
size: "default"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
function Button({
|
|
45
|
+
className,
|
|
46
|
+
variant = "default",
|
|
47
|
+
size = "default",
|
|
48
|
+
...props
|
|
49
|
+
}) {
|
|
50
|
+
return /* @__PURE__ */ jsx(
|
|
51
|
+
ButtonPrimitive,
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "button",
|
|
54
|
+
"data-variant": variant,
|
|
55
|
+
"data-size": size,
|
|
56
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
57
|
+
...props
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
Button,
|
|
63
|
+
buttonVariants
|
|
64
|
+
};
|
package/dist/card.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Takes a `render` prop (the Base UI convention — see packages/ui/CLAUDE.md) so
|
|
6
|
+
* a card that is itself a destination can BE the link rather than wrapping one:
|
|
7
|
+
* `<Card render={<Link href={href} />}>`. Without it, clickable cards get
|
|
8
|
+
* hand-styled anchors and the surface drifts from this one.
|
|
9
|
+
*/
|
|
10
|
+
declare function Card({ className, render, ...props }: useRender.ComponentProps<'div'>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
11
|
+
declare function CardHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
12
|
+
declare function CardTitle({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
13
|
+
declare function CardDescription({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
14
|
+
declare function CardAction({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
15
|
+
declare function CardContent({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
16
|
+
declare function CardFooter({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
17
|
+
|
|
18
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|
package/dist/card.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// ../ui/src/shadcn/card.tsx
|
|
2
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
|
|
5
|
+
// ../ui/src/lib/utils/cn.ts
|
|
6
|
+
import { clsx } from "clsx";
|
|
7
|
+
import { twMerge } from "tailwind-merge";
|
|
8
|
+
function cn(...inputs) {
|
|
9
|
+
return twMerge(clsx(inputs));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// ../ui/src/shadcn/card.tsx
|
|
13
|
+
import { jsx } from "react/jsx-runtime";
|
|
14
|
+
function Card({
|
|
15
|
+
className,
|
|
16
|
+
render,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
19
|
+
return useRender({
|
|
20
|
+
defaultTagName: "div",
|
|
21
|
+
render,
|
|
22
|
+
props: mergeProps(
|
|
23
|
+
{
|
|
24
|
+
"data-slot": "card",
|
|
25
|
+
className: cn(
|
|
26
|
+
"bg-card text-card-foreground shadow-card flex flex-col gap-6 rounded-lg border-0 py-5",
|
|
27
|
+
className
|
|
28
|
+
)
|
|
29
|
+
},
|
|
30
|
+
props
|
|
31
|
+
)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function CardHeader({ className, ...props }) {
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
"data-slot": "card-header",
|
|
39
|
+
className: cn(
|
|
40
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-5 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-5",
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
...props
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
function CardTitle({ className, ...props }) {
|
|
48
|
+
return /* @__PURE__ */ jsx(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
"data-slot": "card-title",
|
|
52
|
+
className: cn("leading-none font-semibold", className),
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function CardDescription({ className, ...props }) {
|
|
58
|
+
return /* @__PURE__ */ jsx(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
"data-slot": "card-description",
|
|
62
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
63
|
+
...props
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function CardAction({ className, ...props }) {
|
|
68
|
+
return /* @__PURE__ */ jsx(
|
|
69
|
+
"div",
|
|
70
|
+
{
|
|
71
|
+
"data-slot": "card-action",
|
|
72
|
+
className: cn(
|
|
73
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
74
|
+
className
|
|
75
|
+
),
|
|
76
|
+
...props
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
function CardContent({ className, ...props }) {
|
|
81
|
+
return /* @__PURE__ */ jsx(
|
|
82
|
+
"div",
|
|
83
|
+
{
|
|
84
|
+
"data-slot": "card-content",
|
|
85
|
+
className: cn("px-5", className),
|
|
86
|
+
...props
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
function CardFooter({ className, ...props }) {
|
|
91
|
+
return /* @__PURE__ */ jsx(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
"data-slot": "card-footer",
|
|
95
|
+
className: cn("flex items-center px-5 [.border-t]:pt-5", className),
|
|
96
|
+
...props
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
Card,
|
|
102
|
+
CardAction,
|
|
103
|
+
CardContent,
|
|
104
|
+
CardDescription,
|
|
105
|
+
CardFooter,
|
|
106
|
+
CardHeader,
|
|
107
|
+
CardTitle
|
|
108
|
+
};
|
package/dist/dialog.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
|
|
3
|
+
|
|
4
|
+
declare function Dialog({ ...props }: Dialog$1.Root.Props): React.JSX.Element;
|
|
5
|
+
declare function DialogTrigger({ ...props }: Dialog$1.Trigger.Props): React.JSX.Element;
|
|
6
|
+
declare function DialogPortal({ ...props }: Dialog$1.Portal.Props): React.JSX.Element;
|
|
7
|
+
declare function DialogClose({ ...props }: Dialog$1.Close.Props): React.JSX.Element;
|
|
8
|
+
declare function DialogOverlay({ className, ...props }: Dialog$1.Backdrop.Props): React.JSX.Element;
|
|
9
|
+
declare function DialogContent({ className, children, showCloseButton, ...props }: Dialog$1.Popup.Props & {
|
|
10
|
+
showCloseButton?: boolean;
|
|
11
|
+
}): React.JSX.Element;
|
|
12
|
+
declare function DialogHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
13
|
+
declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<'div'> & {
|
|
14
|
+
showCloseButton?: boolean;
|
|
15
|
+
}): React.JSX.Element;
|
|
16
|
+
declare function DialogTitle({ className, ...props }: Dialog$1.Title.Props): React.JSX.Element;
|
|
17
|
+
declare function DialogDescription({ className, ...props }: Dialog$1.Description.Props): React.JSX.Element;
|
|
18
|
+
|
|
19
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|