@rimelight/ui 0.0.29 → 0.0.31
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/package.json +1 -1
- package/src/components/astro/RLAAlert.astro +60 -0
- package/src/components/astro/RLAAlertDialog.astro +86 -0
- package/src/components/astro/RLAAspectRatio.astro +23 -0
- package/src/components/astro/RLAAvatar.astro +56 -0
- package/src/components/astro/RLAAvatarGroup.astro +19 -0
- package/src/components/astro/RLABadge.astro +31 -0
- package/src/components/astro/RLABreadcrumb.astro +44 -0
- package/src/components/astro/RLACard.astro +74 -0
- package/src/components/astro/RLACarousel.astro +71 -0
- package/src/components/astro/RLAChart.astro +215 -0
- package/src/components/astro/RLACheckbox.astro +51 -0
- package/src/components/astro/RLACollapsible.astro +38 -0
- package/src/components/astro/RLACombobox.astro +131 -0
- package/src/components/astro/RLADialog.astro +95 -0
- package/src/components/astro/RLADrawer.astro +74 -0
- package/src/components/astro/RLADropdownMenu.astro +82 -0
- package/src/components/astro/RLADropzone.astro +134 -0
- package/src/components/astro/RLAField.astro +43 -0
- package/src/components/{Head.astro → astro/RLAHead.astro} +181 -199
- package/src/components/astro/RLAHoverCard.astro +31 -0
- package/src/components/astro/RLAInput.astro +60 -0
- package/src/components/astro/RLAInputGroup.astro +35 -0
- package/src/components/astro/RLAKbd.astro +22 -0
- package/src/components/astro/RLALabel.astro +23 -0
- package/src/components/astro/RLALocaleSelector.astro +110 -0
- package/src/components/astro/RLAMain.astro +28 -0
- package/src/components/astro/RLAMarquee.astro +32 -0
- package/src/components/astro/RLANativeSelect.astro +51 -0
- package/src/components/astro/RLANavigationMenu.astro +136 -0
- package/src/components/astro/RLAPagination.astro +94 -0
- package/src/components/astro/RLAPopover.astro +31 -0
- package/src/components/astro/RLAProgress.astro +43 -0
- package/src/components/astro/RLAResizable.astro +177 -0
- package/src/components/astro/RLAScrollArea.astro +157 -0
- package/src/components/astro/RLASection.astro +0 -1
- package/src/components/astro/RLASelect.astro +109 -0
- package/src/components/astro/RLASeparator.astro +27 -0
- package/src/components/astro/RLASheet.astro +72 -0
- package/src/components/astro/RLASidebar.astro +135 -0
- package/src/components/astro/RLASkeleton.astro +20 -0
- package/src/components/astro/RLASlider.astro +53 -0
- package/src/components/astro/RLASpinner.astro +25 -0
- package/src/components/astro/RLAStickySurface.astro +27 -0
- package/src/components/astro/RLASwitch.astro +49 -0
- package/src/components/astro/RLATable.astro +60 -0
- package/src/components/astro/RLATabs.astro +92 -0
- package/src/components/astro/RLATextarea.astro +42 -0
- package/src/components/astro/RLAThemeSelector.astro +73 -0
- package/src/components/astro/RLAToast.astro +107 -0
- package/src/components/astro/RLAToggle.astro +38 -0
- package/src/components/astro/RLAToggleGroup.astro +30 -0
- package/src/components/astro/RLATooltip.astro +31 -0
- package/src/integrations/ui.ts +1 -0
- package/src/themes/alert.theme.ts +51 -0
- package/src/themes/alertDialog.theme.ts +33 -0
- package/src/themes/aspectRatio.theme.ts +11 -0
- package/src/themes/avatar.theme.ts +28 -0
- package/src/themes/avatarGroup.theme.ts +10 -0
- package/src/themes/badge.theme.ts +61 -0
- package/src/themes/breadcrumb.theme.ts +15 -0
- package/src/themes/card.theme.ts +34 -0
- package/src/themes/carousel.theme.ts +32 -0
- package/src/themes/chart.theme.ts +21 -0
- package/src/themes/checkbox.theme.ts +42 -0
- package/src/themes/collapsible.theme.ts +22 -0
- package/src/themes/combobox.theme.ts +28 -0
- package/src/themes/dialog.theme.ts +37 -0
- package/src/themes/drawer.theme.ts +44 -0
- package/src/themes/dropdownMenu.theme.ts +27 -0
- package/src/themes/dropzone.theme.ts +24 -0
- package/src/themes/field.theme.ts +24 -0
- package/src/themes/hoverCard.theme.ts +27 -0
- package/src/themes/input.theme.ts +36 -0
- package/src/themes/inputGroup.theme.ts +23 -0
- package/src/themes/kbd.theme.ts +24 -0
- package/src/themes/label.theme.ts +20 -0
- package/src/themes/localeSelector.theme.ts +50 -0
- package/src/themes/main.theme.ts +12 -0
- package/src/themes/marquee.theme.ts +27 -0
- package/src/themes/nativeSelect.theme.ts +24 -0
- package/src/themes/navigationMenu.theme.ts +19 -0
- package/src/themes/pagination.theme.ts +26 -0
- package/src/themes/popover.theme.ts +28 -0
- package/src/themes/progress.theme.ts +26 -0
- package/src/themes/resizable.theme.ts +22 -0
- package/src/themes/scrollArea.theme.ts +24 -0
- package/src/themes/section.theme.ts +1 -2
- package/src/themes/select.theme.ts +27 -0
- package/src/themes/separator.theme.ts +19 -0
- package/src/themes/sheet.theme.ts +43 -0
- package/src/themes/sidebar.theme.ts +33 -0
- package/src/themes/skeleton.theme.ts +20 -0
- package/src/themes/slider.theme.ts +28 -0
- package/src/themes/spinner.theme.ts +30 -0
- package/src/themes/stickySurface.theme.ts +10 -0
- package/src/themes/switch.theme.ts +59 -0
- package/src/themes/table.theme.ts +36 -0
- package/src/themes/tabs.theme.ts +44 -0
- package/src/themes/textarea.theme.ts +26 -0
- package/src/themes/themeSelector.theme.ts +16 -0
- package/src/themes/toast.theme.ts +25 -0
- package/src/themes/toggle.theme.ts +42 -0
- package/src/themes/toggleGroup.theme.ts +21 -0
- package/src/themes/tooltip.theme.ts +27 -0
- package/src/types/components/alert-dialog.ts +35 -0
- package/src/types/components/alert.ts +31 -0
- package/src/types/components/aspect-ratio.ts +15 -0
- package/src/types/components/avatar.ts +47 -0
- package/src/types/components/badge.ts +27 -0
- package/src/types/components/breadcrumb.ts +24 -0
- package/src/types/components/card.ts +31 -0
- package/src/types/components/carousel.ts +25 -0
- package/src/types/components/chart.ts +38 -0
- package/src/types/components/checkbox.ts +35 -0
- package/src/types/components/collapsible.ts +31 -0
- package/src/types/components/combobox.ts +43 -0
- package/src/types/components/dialog.ts +39 -0
- package/src/types/components/drawer.ts +31 -0
- package/src/types/components/dropdown-menu.ts +42 -0
- package/src/types/components/dropzone.ts +39 -0
- package/src/types/components/field.ts +31 -0
- package/src/types/components/hover-card.ts +19 -0
- package/src/types/components/index.ts +51 -3
- package/src/types/components/input-group.ts +23 -0
- package/src/types/components/input.ts +59 -0
- package/src/types/components/kbd.ts +15 -0
- package/src/types/components/label.ts +19 -0
- package/src/types/components/localeSelector.ts +33 -0
- package/src/types/components/main.ts +17 -0
- package/src/types/components/marquee.ts +23 -0
- package/src/types/components/native-select.ts +39 -0
- package/src/types/components/navigation-menu.ts +27 -0
- package/src/types/components/pagination.ts +23 -0
- package/src/types/components/popover.ts +23 -0
- package/src/types/components/progress.ts +27 -0
- package/src/types/components/resizable.ts +19 -0
- package/src/types/components/scroll-area.ts +23 -0
- package/src/types/components/select.ts +43 -0
- package/src/types/components/separator.ts +19 -0
- package/src/types/components/sheet.ts +31 -0
- package/src/types/components/sidebar.ts +36 -0
- package/src/types/components/skeleton.ts +15 -0
- package/src/types/components/slider.ts +35 -0
- package/src/types/components/spinner.ts +19 -0
- package/src/types/components/sticky-surface.ts +19 -0
- package/src/types/components/switch.ts +35 -0
- package/src/types/components/table.ts +31 -0
- package/src/types/components/tabs.ts +43 -0
- package/src/types/components/textarea.ts +51 -0
- package/src/types/components/themeSelector.ts +15 -0
- package/src/types/components/toast.ts +35 -0
- package/src/types/components/toggle-group.ts +23 -0
- package/src/types/components/toggle.ts +27 -0
- package/src/types/components/tooltip.ts +23 -0
- package/src/components/ThemeToggle.astro +0 -57
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
const defaultColors = ["primary", "secondary", "info", "success", "warning", "error"]
|
|
4
|
+
|
|
5
|
+
export const createAlertTheme = (colors: string[] = defaultColors) =>
|
|
6
|
+
defineTheme({
|
|
7
|
+
slots: ["root", "icon", "content", "title", "description"],
|
|
8
|
+
base: {
|
|
9
|
+
root: "relative w-full rounded-lg border p-4 flex gap-3 text-sm transition-all shadow-sm",
|
|
10
|
+
icon: "shrink-0 size-5 text-current",
|
|
11
|
+
content: "flex flex-col gap-1 w-full",
|
|
12
|
+
title: "font-semibold leading-none tracking-tight text-foreground",
|
|
13
|
+
description: "text-xs opacity-90 leading-relaxed"
|
|
14
|
+
},
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: { root: "bg-background text-foreground border-border" },
|
|
18
|
+
destructive: { root: "bg-error-500/10 text-error-700 border-error-500/20 dark:text-error-400" },
|
|
19
|
+
outline: { root: "border bg-transparent" },
|
|
20
|
+
solid: { root: "border-transparent text-white" }
|
|
21
|
+
},
|
|
22
|
+
color: Object.fromEntries(colors.map((color) => [color, { root: "" }])),
|
|
23
|
+
hasIcon: {
|
|
24
|
+
true: { icon: "block" },
|
|
25
|
+
false: { icon: "hidden" }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
compoundVariants: [
|
|
29
|
+
...colors.map((color) => ({
|
|
30
|
+
variant: "solid" as const,
|
|
31
|
+
color,
|
|
32
|
+
classNames: {
|
|
33
|
+
root: `bg-${color}-500 text-white border-transparent`
|
|
34
|
+
}
|
|
35
|
+
})),
|
|
36
|
+
...colors.map((color) => ({
|
|
37
|
+
variant: "outline" as const,
|
|
38
|
+
color,
|
|
39
|
+
classNames: {
|
|
40
|
+
root: `border-${color}-500/20 text-${color}-600 bg-${color}-500/5`
|
|
41
|
+
}
|
|
42
|
+
}))
|
|
43
|
+
],
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
variant: "default",
|
|
46
|
+
color: "primary",
|
|
47
|
+
hasIcon: false
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
export default createAlertTheme()
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const alertDialogTheme = defineTheme({
|
|
4
|
+
slots: ["root", "trigger", "backdrop", "content", "header", "title", "description", "footer", "cancelButton", "actionButton"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative inline-block",
|
|
7
|
+
trigger: "",
|
|
8
|
+
backdrop: "fixed inset-0 z-50 bg-black/60 backdrop-blur-sm transition-all duration-300",
|
|
9
|
+
content: [
|
|
10
|
+
"fixed left-1/2 top-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border",
|
|
11
|
+
"bg-background p-6 shadow-xl transition-all duration-300 outline-none",
|
|
12
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2",
|
|
13
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2"
|
|
14
|
+
],
|
|
15
|
+
header: "flex flex-col gap-1.5 text-center sm:text-left mb-4",
|
|
16
|
+
title: "text-lg font-semibold leading-none tracking-tight text-foreground",
|
|
17
|
+
description: "text-sm text-muted-foreground leading-relaxed",
|
|
18
|
+
footer: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 mt-6",
|
|
19
|
+
cancelButton: "w-full sm:w-auto",
|
|
20
|
+
actionButton: "w-full sm:w-auto"
|
|
21
|
+
},
|
|
22
|
+
variants: {
|
|
23
|
+
variant: {
|
|
24
|
+
default: { actionButton: "" },
|
|
25
|
+
destructive: { actionButton: "bg-error-500 hover:bg-error-600 focus-visible:ring-error-500/50" }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
variant: "default"
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
export default alertDialogTheme
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const aspectRatioTheme = defineTheme({
|
|
4
|
+
slots: ["root", "content"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative w-full overflow-hidden",
|
|
7
|
+
content: "absolute inset-0 h-full w-full object-cover"
|
|
8
|
+
}
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
export default aspectRatioTheme
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const avatarTheme = defineTheme({
|
|
4
|
+
slots: ["root", "image", "fallback", "badge"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative flex shrink-0 overflow-hidden rounded-full select-none",
|
|
7
|
+
image: "aspect-square h-full w-full object-cover",
|
|
8
|
+
fallback: "flex h-full w-full items-center justify-center rounded-full bg-muted font-semibold text-muted-foreground uppercase",
|
|
9
|
+
badge: "absolute bottom-0 right-0 block size-2.5 rounded-full ring-2 ring-background"
|
|
10
|
+
},
|
|
11
|
+
variants: {
|
|
12
|
+
size: {
|
|
13
|
+
sm: { root: "size-8", fallback: "text-xs" },
|
|
14
|
+
md: { root: "size-10", fallback: "text-sm" },
|
|
15
|
+
lg: { root: "size-12", fallback: "text-base" }
|
|
16
|
+
},
|
|
17
|
+
hasBadge: {
|
|
18
|
+
true: { badge: "block" },
|
|
19
|
+
false: { badge: "hidden" }
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
size: "md",
|
|
24
|
+
hasBadge: false
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
export default avatarTheme
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const avatarGroupTheme = defineTheme({
|
|
4
|
+
slots: ["root"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "flex -space-x-3 hover:space-x-0 transition-all duration-300 [&_[data-slot=root]]:ring-2 [&_[data-slot=root]]:ring-background [&_[data-slot=root]]:transition-all"
|
|
7
|
+
}
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export default avatarGroupTheme
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
const defaultColors = ["primary", "secondary", "info", "success", "warning", "error"]
|
|
4
|
+
|
|
5
|
+
export const createBadgeTheme = (colors: string[] = defaultColors) =>
|
|
6
|
+
defineTheme({
|
|
7
|
+
slots: ["root"],
|
|
8
|
+
base: {
|
|
9
|
+
root: "inline-flex items-center gap-1.5 font-medium select-none overflow-hidden transition-all duration-150"
|
|
10
|
+
},
|
|
11
|
+
variants: {
|
|
12
|
+
variant: {
|
|
13
|
+
solid: { root: "border border-transparent text-white" },
|
|
14
|
+
outline: { root: "border" },
|
|
15
|
+
soft: { root: "border border-transparent" },
|
|
16
|
+
ghost: { root: "bg-transparent hover:bg-muted" }
|
|
17
|
+
},
|
|
18
|
+
color: Object.fromEntries(colors.map((color) => [color, { root: "" }])),
|
|
19
|
+
size: {
|
|
20
|
+
sm: { root: "px-2 py-0.5 text-2xs rounded-full h-5" },
|
|
21
|
+
md: { root: "px-2.5 py-0.5 text-xs rounded-full h-6" },
|
|
22
|
+
lg: { root: "px-3 py-1 text-sm rounded-full h-7" }
|
|
23
|
+
},
|
|
24
|
+
shape: {
|
|
25
|
+
square: { root: "rounded-sm" },
|
|
26
|
+
rounded: { root: "rounded-md" },
|
|
27
|
+
pill: { root: "rounded-full" }
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
compoundVariants: [
|
|
31
|
+
...colors.map((color) => ({
|
|
32
|
+
variant: "solid" as const,
|
|
33
|
+
color,
|
|
34
|
+
classNames: {
|
|
35
|
+
root: `bg-${color}-500 text-white hover:bg-${color}-600`
|
|
36
|
+
}
|
|
37
|
+
})),
|
|
38
|
+
...colors.map((color) => ({
|
|
39
|
+
variant: "outline" as const,
|
|
40
|
+
color,
|
|
41
|
+
classNames: {
|
|
42
|
+
root: `border-${color}-500/20 text-${color}-600 bg-transparent hover:bg-${color}-500/5`
|
|
43
|
+
}
|
|
44
|
+
})),
|
|
45
|
+
...colors.map((color) => ({
|
|
46
|
+
variant: "soft" as const,
|
|
47
|
+
color,
|
|
48
|
+
classNames: {
|
|
49
|
+
root: `text-${color}-600 bg-${color}-500/10 hover:bg-${color}-500/20`
|
|
50
|
+
}
|
|
51
|
+
}))
|
|
52
|
+
],
|
|
53
|
+
defaultVariants: {
|
|
54
|
+
variant: "solid",
|
|
55
|
+
color: "primary",
|
|
56
|
+
size: "md",
|
|
57
|
+
shape: "pill"
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
export default createBadgeTheme()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const breadcrumbTheme = defineTheme({
|
|
4
|
+
slots: ["root", "list", "item", "link", "separator", "page"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "aria-label='breadcrumb'",
|
|
7
|
+
list: "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
|
|
8
|
+
item: "flex items-center gap-1.5",
|
|
9
|
+
link: "transition-colors hover:text-foreground cursor-pointer decoration-none text-current",
|
|
10
|
+
separator: "flex size-3.5 items-center justify-center [&_svg]:size-3.5 opacity-60",
|
|
11
|
+
page: "font-normal text-foreground"
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export default breadcrumbTheme
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const cardTheme = defineTheme({
|
|
4
|
+
slots: ["root", "media", "header", "title", "description", "content", "footer", "overlay"],
|
|
5
|
+
base: {
|
|
6
|
+
root: [
|
|
7
|
+
"rounded-xl border border-border bg-card text-card-foreground shadow-sm overflow-hidden flex flex-col transition-all duration-300",
|
|
8
|
+
"focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2"
|
|
9
|
+
],
|
|
10
|
+
media: "relative w-full aspect-video overflow-hidden shrink-0 bg-muted",
|
|
11
|
+
header: "flex flex-col gap-1.5 p-6 shrink-0",
|
|
12
|
+
title: "text-lg font-semibold leading-none tracking-tight text-foreground",
|
|
13
|
+
description: "text-sm text-muted-foreground leading-relaxed",
|
|
14
|
+
content: "p-6 pt-0 flex-1 leading-relaxed text-sm",
|
|
15
|
+
footer: "flex items-center p-6 pt-0 mt-auto shrink-0",
|
|
16
|
+
overlay: "absolute inset-0 bg-gradient-to-t from-black/80 via-black/40 to-transparent p-6 flex flex-col justify-end text-white"
|
|
17
|
+
},
|
|
18
|
+
variants: {
|
|
19
|
+
interactive: {
|
|
20
|
+
true: { root: "hover:shadow-md hover:-translate-y-0.5 cursor-pointer hover:border-primary/30" },
|
|
21
|
+
false: { root: "" }
|
|
22
|
+
},
|
|
23
|
+
overlay: {
|
|
24
|
+
true: { root: "relative aspect-square", content: "absolute inset-0 z-10" },
|
|
25
|
+
false: { root: "" }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
interactive: false,
|
|
30
|
+
overlay: false
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
export default cardTheme
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const carouselTheme = defineTheme({
|
|
4
|
+
slots: ["root", "viewport", "container", "slide", "buttonPrev", "buttonNext", "dots", "dot"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative w-full overflow-hidden select-none group/carousel",
|
|
7
|
+
viewport: "w-full overflow-hidden cursor-grab active:cursor-grabbing",
|
|
8
|
+
container: "flex backface-hidden",
|
|
9
|
+
slide: "min-w-0 shrink-0 grow-0 basis-full pl-4 relative",
|
|
10
|
+
buttonPrev: [
|
|
11
|
+
"absolute left-4 top-1/2 -translate-y-1/2 z-10 flex size-9 items-center justify-center rounded-full border border-border bg-background/80 backdrop-blur-sm text-foreground shadow transition-all hover:bg-background cursor-pointer",
|
|
12
|
+
"opacity-0 scale-90 group-hover/carousel:opacity-100 group-hover/carousel:scale-100"
|
|
13
|
+
],
|
|
14
|
+
buttonNext: [
|
|
15
|
+
"absolute right-4 top-1/2 -translate-y-1/2 z-10 flex size-9 items-center justify-center rounded-full border border-border bg-background/80 backdrop-blur-sm text-foreground shadow transition-all hover:bg-background cursor-pointer",
|
|
16
|
+
"opacity-0 scale-90 group-hover/carousel:opacity-100 group-hover/carousel:scale-100"
|
|
17
|
+
],
|
|
18
|
+
dots: "absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex gap-1.5 items-center",
|
|
19
|
+
dot: "block size-2 rounded-full bg-foreground/20 cursor-pointer transition-all duration-350 hover:bg-foreground/45"
|
|
20
|
+
},
|
|
21
|
+
variants: {
|
|
22
|
+
active: {
|
|
23
|
+
true: { dot: "bg-foreground size-2.5" },
|
|
24
|
+
false: { dot: "" }
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
defaultVariants: {
|
|
28
|
+
active: false
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
export default carouselTheme
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createChartTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "title", "container", "svg", "axis", "bar", "line", "tooltip", "legend"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "flex flex-col gap-3 p-4 rounded-xl border border-border bg-card text-card-foreground shadow-sm",
|
|
8
|
+
title: "text-sm font-semibold tracking-tight text-foreground",
|
|
9
|
+
container: "relative w-full aspect-video flex items-end justify-between",
|
|
10
|
+
svg: "w-full h-full",
|
|
11
|
+
axis: "text-[10px] text-muted-foreground",
|
|
12
|
+
bar: "rounded-t transition-all hover:opacity-85",
|
|
13
|
+
line: "stroke-2 fill-none",
|
|
14
|
+
tooltip: "absolute z-50 bg-background text-foreground border border-border rounded shadow p-2 text-xs",
|
|
15
|
+
legend: "flex items-center justify-center gap-4 text-xs text-muted-foreground"
|
|
16
|
+
},
|
|
17
|
+
variants: {},
|
|
18
|
+
defaultVariants: {}
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
export default createChartTheme()
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
const defaultColors = ["primary", "secondary", "info", "success", "warning", "error"]
|
|
4
|
+
|
|
5
|
+
export const createCheckboxTheme = (colors: string[] = defaultColors) =>
|
|
6
|
+
defineTheme({
|
|
7
|
+
slots: ["root", "input", "box", "indicator", "label"],
|
|
8
|
+
base: {
|
|
9
|
+
root: "inline-flex items-center gap-2 cursor-pointer select-none",
|
|
10
|
+
input: "absolute opacity-0 size-0 pointer-events-none peer",
|
|
11
|
+
box: [
|
|
12
|
+
"size-4 shrink-0 rounded border border-border bg-background transition-all focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
|
|
13
|
+
"peer-disabled:cursor-not-allowed peer-disabled:opacity-50"
|
|
14
|
+
],
|
|
15
|
+
indicator: "flex items-center justify-center text-white scale-0 transition-transform duration-150",
|
|
16
|
+
label: "text-sm text-foreground leading-none"
|
|
17
|
+
},
|
|
18
|
+
variants: {
|
|
19
|
+
color: Object.fromEntries(colors.map((color) => [
|
|
20
|
+
color,
|
|
21
|
+
{
|
|
22
|
+
box: `peer-checked:bg-${color}-500 peer-checked:border-${color}-500 focus-within:ring-${color}-500/50`
|
|
23
|
+
}
|
|
24
|
+
])),
|
|
25
|
+
size: {
|
|
26
|
+
sm: { box: "size-3.5", label: "text-xs" },
|
|
27
|
+
md: { box: "size-4", label: "text-sm" },
|
|
28
|
+
lg: { box: "size-4.5", label: "text-base" }
|
|
29
|
+
},
|
|
30
|
+
checked: {
|
|
31
|
+
true: { indicator: "scale-100" },
|
|
32
|
+
false: { indicator: "scale-0" }
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
color: "primary",
|
|
37
|
+
size: "md",
|
|
38
|
+
checked: false
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
export default createCheckboxTheme()
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createCollapsibleTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "trigger", "content"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "w-full",
|
|
8
|
+
trigger: "flex items-center justify-between w-full font-medium transition-all",
|
|
9
|
+
content: "overflow-hidden transition-all duration-300"
|
|
10
|
+
},
|
|
11
|
+
variants: {
|
|
12
|
+
open: {
|
|
13
|
+
true: { trigger: "", content: "h-auto" },
|
|
14
|
+
false: { trigger: "", content: "h-0 invisible" }
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
open: false
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
export default createCollapsibleTheme()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createComboboxTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "label", "trigger", "input", "content", "item", "itemText", "itemIcon"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "relative w-full flex flex-col gap-1.5",
|
|
8
|
+
label: "text-sm font-medium text-foreground",
|
|
9
|
+
trigger: "flex h-9 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-all focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
10
|
+
input: "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-all placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
11
|
+
content: "absolute z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md transition-all w-full mt-1 max-h-60 overflow-y-auto",
|
|
12
|
+
item: "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 px-2 text-sm outline-none hover:bg-accent hover:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
13
|
+
itemText: "truncate",
|
|
14
|
+
itemIcon: "ml-auto size-4"
|
|
15
|
+
},
|
|
16
|
+
variants: {
|
|
17
|
+
size: {
|
|
18
|
+
sm: { trigger: "h-8 px-2 text-xs", input: "h-8 text-xs", item: "py-1 px-1.5 text-xs" },
|
|
19
|
+
md: { trigger: "h-9 px-3 text-sm", input: "h-9 text-sm", item: "py-1.5 px-2 text-sm" },
|
|
20
|
+
lg: { trigger: "h-10 px-4 text-base", input: "h-10 text-base", item: "py-2 px-2.5 text-base" }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: {
|
|
24
|
+
size: "md"
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
export default createComboboxTheme()
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const dialogTheme = defineTheme({
|
|
4
|
+
slots: ["root", "trigger", "backdrop", "content", "header", "title", "description", "footer", "closeButton"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative inline-block",
|
|
7
|
+
trigger: "",
|
|
8
|
+
backdrop: "fixed inset-0 z-50 bg-black/60 backdrop-blur-sm transition-all duration-300",
|
|
9
|
+
content: [
|
|
10
|
+
"fixed left-1/2 top-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border",
|
|
11
|
+
"bg-background p-6 shadow-xl transition-all duration-300 outline-none",
|
|
12
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2",
|
|
13
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2"
|
|
14
|
+
],
|
|
15
|
+
header: "flex flex-col gap-1.5 text-center sm:text-left mb-4",
|
|
16
|
+
title: "text-lg font-semibold leading-none tracking-tight text-foreground",
|
|
17
|
+
description: "text-sm text-muted-foreground leading-relaxed",
|
|
18
|
+
footer: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 mt-6",
|
|
19
|
+
closeButton: [
|
|
20
|
+
"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100",
|
|
21
|
+
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
variants: {
|
|
25
|
+
size: {
|
|
26
|
+
sm: { content: "max-w-sm" },
|
|
27
|
+
md: { content: "max-w-lg" },
|
|
28
|
+
lg: { content: "max-w-2xl" },
|
|
29
|
+
xl: { content: "max-w-4xl" }
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
size: "md"
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
export default dialogTheme
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const drawerTheme = defineTheme({
|
|
4
|
+
slots: ["root", "trigger", "backdrop", "content", "handle", "header", "title", "description", "footer", "closeButton"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative inline-block",
|
|
7
|
+
trigger: "",
|
|
8
|
+
backdrop: "fixed inset-0 z-50 bg-black/60 backdrop-blur-sm transition-all duration-300",
|
|
9
|
+
content: [
|
|
10
|
+
"fixed z-50 bg-background p-6 shadow-xl border-border transition-all duration-300 outline-none",
|
|
11
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out"
|
|
12
|
+
],
|
|
13
|
+
handle: "mx-auto h-1.5 w-[100px] rounded-full bg-muted mb-4",
|
|
14
|
+
header: "flex flex-col gap-1.5 mb-4 text-center",
|
|
15
|
+
title: "text-lg font-semibold leading-none tracking-tight text-foreground",
|
|
16
|
+
description: "text-sm text-muted-foreground leading-relaxed",
|
|
17
|
+
footer: "flex flex-col gap-2 mt-6",
|
|
18
|
+
closeButton: [
|
|
19
|
+
"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100",
|
|
20
|
+
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
variants: {
|
|
24
|
+
direction: {
|
|
25
|
+
top: {
|
|
26
|
+
content: "inset-x-0 top-0 border-b rounded-b-xl data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top"
|
|
27
|
+
},
|
|
28
|
+
bottom: {
|
|
29
|
+
content: "inset-x-0 bottom-0 border-t rounded-t-xl data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom"
|
|
30
|
+
},
|
|
31
|
+
left: {
|
|
32
|
+
content: "inset-y-0 left-0 h-full w-3/4 max-w-sm border-r rounded-r-xl data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left"
|
|
33
|
+
},
|
|
34
|
+
right: {
|
|
35
|
+
content: "inset-y-0 right-0 h-full w-3/4 max-w-sm border-l rounded-l-xl data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
defaultVariants: {
|
|
40
|
+
direction: "bottom"
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
export default drawerTheme
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createDropdownMenuTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "trigger", "content", "item", "shortcut", "separator", "label"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "relative inline-block text-left",
|
|
8
|
+
trigger: "inline-flex justify-center w-full rounded-md border border-input bg-background px-4 py-2 text-sm font-medium shadow-sm hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
9
|
+
content: "absolute right-0 z-50 mt-2 w-56 origin-top-right rounded-md border bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-black ring-opacity-5 focus:outline-none",
|
|
10
|
+
item: "group flex w-full items-center rounded-md px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer disabled:pointer-events-none disabled:opacity-50",
|
|
11
|
+
shortcut: "ml-auto text-xs tracking-widest opacity-60",
|
|
12
|
+
separator: "-mx-1 my-1 h-px bg-muted",
|
|
13
|
+
label: "px-2 py-1.5 text-xs font-semibold tracking-wider text-muted-foreground uppercase"
|
|
14
|
+
},
|
|
15
|
+
variants: {
|
|
16
|
+
size: {
|
|
17
|
+
sm: { trigger: "px-3 py-1.5 text-xs", item: "px-2 py-1 text-xs" },
|
|
18
|
+
md: { trigger: "px-4 py-2 text-sm", item: "px-2 py-1.5 text-sm" },
|
|
19
|
+
lg: { trigger: "px-5 py-2.5 text-base", item: "px-3 py-2 text-base" }
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
size: "md"
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
export default createDropdownMenuTheme()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createDropzoneTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "input", "content", "icon", "title", "description"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "flex flex-col items-center justify-center w-full min-h-[150px] border-2 border-dashed border-border rounded-lg bg-background/50 hover:bg-muted/30 transition-colors cursor-pointer select-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
|
|
8
|
+
input: "absolute opacity-0 size-0 pointer-events-none",
|
|
9
|
+
content: "flex flex-col items-center justify-center p-6 text-center gap-1.5",
|
|
10
|
+
icon: "size-8 text-muted-foreground",
|
|
11
|
+
title: "text-sm font-semibold text-foreground",
|
|
12
|
+
description: "text-xs text-muted-foreground"
|
|
13
|
+
},
|
|
14
|
+
variants: {
|
|
15
|
+
disabled: {
|
|
16
|
+
true: { root: "opacity-50 cursor-not-allowed pointer-events-none" }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
disabled: false
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
export default createDropzoneTheme()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createFieldTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "label", "description", "error"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "flex flex-col gap-1.5 w-full",
|
|
8
|
+
label: "text-sm font-medium text-foreground",
|
|
9
|
+
description: "text-xs text-muted-foreground leading-normal",
|
|
10
|
+
error: "text-xs font-medium text-error-500 leading-normal"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
size: {
|
|
14
|
+
sm: { label: "text-xs", description: "text-[10px]", error: "text-[10px]" },
|
|
15
|
+
md: { label: "text-sm", description: "text-xs", error: "text-xs" },
|
|
16
|
+
lg: { label: "text-base", description: "text-sm", error: "text-sm" }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
size: "md"
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
export default createFieldTheme()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const hoverCardTheme = defineTheme({
|
|
4
|
+
slots: ["root", "trigger", "content"],
|
|
5
|
+
base: {
|
|
6
|
+
root: "relative inline-block group/hover-card",
|
|
7
|
+
trigger: "",
|
|
8
|
+
content: [
|
|
9
|
+
"absolute z-50 w-80 rounded-lg border border-border bg-card p-4 text-card-foreground shadow-md outline-none",
|
|
10
|
+
"transition-all duration-200 invisible opacity-0 scale-95 origin-center pointer-events-none",
|
|
11
|
+
"group-hover/hover-card:visible group-hover/hover-card:opacity-100 group-hover/hover-card:scale-100 group-hover/hover-card:pointer-events-auto"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
variants: {
|
|
15
|
+
placement: {
|
|
16
|
+
top: { content: "bottom-full left-1/2 -translate-x-1/2 mb-2" },
|
|
17
|
+
bottom: { content: "top-full left-1/2 -translate-x-1/2 mt-2" },
|
|
18
|
+
left: { content: "right-full top-1/2 -translate-y-1/2 mr-2" },
|
|
19
|
+
right: { content: "left-full top-1/2 -translate-y-1/2 ml-2" }
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
placement: "bottom"
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
export default hoverCardTheme
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createInputTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "input", "leading", "trailing"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "relative flex items-center w-full rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
|
|
8
|
+
input: "w-full bg-transparent px-3 py-1.5 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
9
|
+
leading: "absolute left-3 flex items-center justify-center text-muted-foreground",
|
|
10
|
+
trailing: "absolute right-3 flex items-center justify-center text-muted-foreground"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
size: {
|
|
14
|
+
sm: { input: "py-1 text-xs", leading: "left-2.5", trailing: "right-2.5" },
|
|
15
|
+
md: { input: "py-1.5 text-sm", leading: "left-3", trailing: "right-3" },
|
|
16
|
+
lg: { input: "py-2 text-base", leading: "left-3.5", trailing: "right-3.5" }
|
|
17
|
+
},
|
|
18
|
+
hasLeading: {
|
|
19
|
+
true: { input: "pl-9" }
|
|
20
|
+
},
|
|
21
|
+
hasTrailing: {
|
|
22
|
+
true: { input: "pr-9" }
|
|
23
|
+
},
|
|
24
|
+
error: {
|
|
25
|
+
true: { root: "border-error-500 focus-within:ring-error-500/50" }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
size: "md",
|
|
30
|
+
hasLeading: false,
|
|
31
|
+
hasTrailing: false,
|
|
32
|
+
error: false
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
export default createInputTheme()
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defineTheme } from "../utils/defineTheme"
|
|
2
|
+
|
|
3
|
+
export const createInputGroupTheme = () =>
|
|
4
|
+
defineTheme({
|
|
5
|
+
slots: ["root", "prepend", "append"],
|
|
6
|
+
base: {
|
|
7
|
+
root: "relative flex items-stretch w-full rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 overflow-hidden",
|
|
8
|
+
prepend: "flex items-center bg-muted px-3 text-sm text-muted-foreground border-r border-input",
|
|
9
|
+
append: "flex items-center bg-muted px-3 text-sm text-muted-foreground border-l border-input"
|
|
10
|
+
},
|
|
11
|
+
variants: {
|
|
12
|
+
size: {
|
|
13
|
+
sm: { prepend: "px-2 text-xs", append: "px-2 text-xs" },
|
|
14
|
+
md: { prepend: "px-3 text-sm", append: "px-3 text-sm" },
|
|
15
|
+
lg: { prepend: "px-4 text-base", append: "px-4 text-base" }
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
size: "md"
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
export default createInputGroupTheme()
|