@firecms/ui 3.0.0-canary.16 → 3.0.0-canary.160
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 +60 -150
- package/dist/components/Avatar.d.ts +1 -0
- package/dist/components/BooleanSwitch.d.ts +1 -1
- package/dist/components/BooleanSwitchWithLabel.d.ts +4 -1
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/CenteredView.d.ts +4 -2
- package/dist/components/Checkbox.d.ts +3 -2
- package/dist/components/Chip.d.ts +3 -2
- package/dist/components/DateTimeField.d.ts +5 -7
- package/dist/components/Dialog.d.ts +4 -1
- package/dist/components/DialogContent.d.ts +2 -1
- package/dist/components/DialogTitle.d.ts +10 -0
- package/dist/components/ExpandablePanel.d.ts +2 -1
- package/dist/components/FileUpload.d.ts +2 -2
- package/dist/components/InputLabel.d.ts +2 -2
- package/dist/components/Label.d.ts +4 -1
- package/dist/components/Markdown.d.ts +1 -0
- package/dist/components/Menu.d.ts +6 -2
- package/dist/components/Menubar.d.ts +79 -0
- package/dist/components/MultiSelect.d.ts +32 -16
- package/dist/components/Popover.d.ts +2 -1
- package/dist/components/RadioGroup.d.ts +26 -3
- package/dist/components/Select.d.ts +8 -11
- package/dist/components/Separator.d.ts +2 -1
- package/dist/components/Sheet.d.ts +6 -0
- package/dist/components/Slider.d.ts +21 -0
- package/dist/components/Table.d.ts +10 -10
- package/dist/components/Tabs.d.ts +4 -2
- package/dist/components/TextField.d.ts +1 -1
- package/dist/components/TextareaAutosize.d.ts +3 -34
- package/dist/components/Tooltip.d.ts +6 -2
- package/dist/components/Typography.d.ts +5 -4
- package/dist/components/index.d.ts +3 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/icons/Icon.d.ts +3 -3
- package/dist/index.css +73 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +50174 -20590
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +50441 -857
- package/dist/index.umd.js.map +1 -1
- package/dist/styles.d.ts +9 -9
- package/dist/util/{cn.d.ts → cls.d.ts} +4 -0
- package/dist/util/index.d.ts +1 -3
- package/package.json +119 -118
- package/src/components/Alert.tsx +4 -4
- package/src/components/Autocomplete.tsx +7 -5
- package/src/components/Avatar.tsx +41 -26
- package/src/components/Badge.tsx +2 -2
- package/src/components/BooleanSwitch.tsx +14 -13
- package/src/components/BooleanSwitchWithLabel.tsx +17 -8
- package/src/components/Button.tsx +31 -23
- package/src/components/Card.tsx +4 -3
- package/src/components/CenteredView.tsx +26 -15
- package/src/components/Checkbox.tsx +16 -14
- package/src/components/Chip.tsx +13 -10
- package/src/components/CircularProgress.tsx +3 -3
- package/src/components/Collapse.tsx +4 -2
- package/src/components/Container.tsx +3 -2
- package/src/components/DateTimeField.tsx +144 -921
- package/src/components/DebouncedTextField.tsx +1 -0
- package/src/components/Dialog.tsx +17 -7
- package/src/components/DialogActions.tsx +3 -3
- package/src/components/DialogContent.tsx +7 -3
- package/src/components/DialogTitle.tsx +41 -0
- package/src/components/ExpandablePanel.tsx +20 -12
- package/src/components/FileUpload.tsx +11 -13
- package/src/components/IconButton.tsx +7 -11
- package/src/components/InfoLabel.tsx +2 -2
- package/src/components/InputLabel.tsx +12 -9
- package/src/components/Label.tsx +18 -4
- package/src/components/Markdown.tsx +15 -3
- package/src/components/Menu.tsx +50 -31
- package/src/components/Menubar.tsx +322 -0
- package/src/components/MultiSelect.tsx +341 -167
- package/src/components/Paper.tsx +2 -2
- package/src/components/Popover.tsx +19 -15
- package/src/components/RadioGroup.tsx +42 -9
- package/src/components/SearchBar.tsx +12 -11
- package/src/components/Select.tsx +142 -130
- package/src/components/Separator.tsx +10 -4
- package/src/components/Sheet.tsx +53 -31
- package/src/components/Skeleton.tsx +9 -6
- package/src/components/Slider.tsx +110 -0
- package/src/components/Table.tsx +54 -35
- package/src/components/Tabs.tsx +17 -15
- package/src/components/TextField.tsx +25 -23
- package/src/components/TextareaAutosize.tsx +4 -3
- package/src/components/Tooltip.tsx +33 -16
- package/src/components/Typography.tsx +42 -26
- package/src/components/common/SelectInputLabel.tsx +3 -3
- package/src/components/index.tsx +3 -1
- package/src/hooks/index.ts +3 -0
- package/src/{util → hooks}/useDebounceValue.tsx +2 -0
- package/src/{util → hooks}/useInjectStyles.tsx +1 -0
- package/src/{util → hooks}/useOutsideAlerter.tsx +2 -0
- package/src/icons/Icon.tsx +48 -43
- package/src/icons/icon_keys.ts +114 -1301
- package/src/index.css +73 -0
- package/src/index.ts +1 -0
- package/src/scripts/generateIconKeys.ts +20 -11
- package/src/styles.ts +9 -9
- package/src/util/cls.ts +14 -0
- package/src/util/index.ts +1 -3
- package/tailwind.config.js +42 -26
- package/dist/components/Spinner.d.ts +0 -1
- package/src/components/Spinner.tsx +0 -18
- package/src/util/cn.ts +0 -6
- /package/dist/{util → hooks}/useDebounceValue.d.ts +0 -0
- /package/dist/{util → hooks}/useInjectStyles.d.ts +0 -0
- /package/dist/{util → hooks}/useOutsideAlerter.d.ts +0 -0
@@ -1,12 +1,11 @@
|
|
1
|
+
"use client";
|
1
2
|
import React from "react";
|
2
|
-
|
3
|
-
import { focusedMixin } from "../styles";
|
4
|
-
import { cn } from "../util";
|
3
|
+
import { cls } from "../util";
|
5
4
|
|
6
5
|
export type ButtonProps<P extends React.ElementType> =
|
7
6
|
Omit<(P extends "button" ? React.ButtonHTMLAttributes<HTMLButtonElement> : React.ComponentProps<P>), "onClick">
|
8
7
|
& {
|
9
|
-
variant?: "filled" | "outlined" | "text";
|
8
|
+
variant?: "filled" | "neutral" | "outlined" | "text";
|
10
9
|
disabled?: boolean;
|
11
10
|
color?: "primary" | "secondary" | "text" | "error";
|
12
11
|
size?: "small" | "medium" | "large" | "xl" | "2xl";
|
@@ -32,33 +31,42 @@ const ButtonInner = React.forwardRef<
|
|
32
31
|
}: ButtonProps<any>, ref) => {
|
33
32
|
|
34
33
|
const baseClasses =
|
35
|
-
"h-fit rounded-md
|
34
|
+
"typography-button h-fit rounded-md whitespace-nowrap inline-flex items-center justify-center p-2 px-4 focus:outline-none transition ease-in-out duration-150 gap-2";
|
36
35
|
|
37
|
-
const buttonClasses =
|
36
|
+
const buttonClasses = cls({
|
38
37
|
"w-full": fullWidth,
|
39
38
|
"w-fit": !fullWidth,
|
39
|
+
|
40
40
|
// Filled Variants
|
41
|
-
"border border-
|
42
|
-
"border border-
|
43
|
-
"border border-
|
44
|
-
"border border-
|
41
|
+
"border border-primary bg-primary hover:bg-primary-dark focus:ring-primary shadow hover:ring-1 hover:ring-primary text-white hover:text-white": variant === "filled" && color === "primary" && !disabled,
|
42
|
+
"border border-secondary bg-secondary hover:bg-secondary-dark focus:ring-secondary shadow hover:ring-1 hover:ring-secondary text-white hover:text-white": variant === "filled" && color === "secondary" && !disabled,
|
43
|
+
"border border-red-500 bg-red-500 hover:bg-red-500 focus:ring-red-500 shadow hover:ring-1 hover:ring-red-600 text-white hover:text-white": variant === "filled" && color === "error" && !disabled,
|
44
|
+
"border border-surface-accent-200 bg-surface-accent-200 hover:bg-surface-accent-300 focus:ring-surface-accent-400 shadow hover:ring-1 hover:ring-surface-accent-400 text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": variant === "filled" && color === "text" && !disabled,
|
45
|
+
|
45
46
|
// Text Variants
|
46
|
-
"border border-transparent text-primary hover:bg-
|
47
|
-
"border border-transparent text-secondary hover:bg-secondary-bg": variant === "text" && color === "secondary" && !disabled,
|
48
|
-
"border border-transparent text-red-500 hover:bg-red-500 hover:bg-opacity-10": variant === "text" && color === "error" && !disabled,
|
49
|
-
"border border-transparent text-text-primary dark:text-text-primary-dark hover:bg-
|
47
|
+
"border border-transparent text-primary hover:text-primary hover:bg-surface-accent-200 dark:hover:bg-surface-900": variant === "text" && color === "primary" && !disabled,
|
48
|
+
"border border-transparent text-secondary hover:text-secondary hover:bg-secondary-bg": variant === "text" && color === "secondary" && !disabled,
|
49
|
+
"border border-transparent text-red-500 hover:text-red-500 hover:bg-red-500 hover:bg-opacity-10": variant === "text" && color === "error" && !disabled,
|
50
|
+
"border border-transparent text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark hover:bg-surface-accent-200 hover:dark:bg-surface-700": variant === "text" && color === "text" && !disabled,
|
51
|
+
|
50
52
|
// Outlined Variants
|
51
|
-
"border border-primary text-primary hover:bg-primary-bg": variant === "outlined" && color === "primary" && !disabled,
|
52
|
-
"border border-secondary text-secondary hover:bg-secondary-bg": variant === "outlined" && color === "secondary" && !disabled,
|
53
|
-
"border border-red-500 text-red-500 hover:bg-red-500": variant === "outlined" && color === "error" && !disabled,
|
54
|
-
"border border-
|
53
|
+
"border border-primary text-primary hover:text-primary hover:bg-primary-bg": variant === "outlined" && color === "primary" && !disabled,
|
54
|
+
"border border-secondary text-secondary hover:text-secondary hover:bg-secondary-bg": variant === "outlined" && color === "secondary" && !disabled,
|
55
|
+
"border border-red-500 text-red-500 hover:text-red-500 hover:bg-red-500 hover:text-white": variant === "outlined" && color === "error" && !disabled,
|
56
|
+
"border border-surface-accent-400 text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:bg-surface-accent-200": variant === "outlined" && color === "text" && !disabled,
|
57
|
+
|
58
|
+
// Neutral Variants
|
59
|
+
"border border-transparent bg-surface-100 hover:bg-surface-accent-200 text-text-primary dark:bg-surface-800 dark:hover:bg-surface-accent-700 dark:text-white": variant === "neutral" && (color === "primary" || color === "text") && !disabled,
|
60
|
+
"border border-transparent bg-surface-100 hover:bg-surface-accent-200 text-text-secondary dark:bg-surface-800 dark:hover:bg-surface-accent-700 dark:text-white": variant === "neutral" && color === "secondary" && !disabled,
|
61
|
+
"border border-transparent bg-surface-100 hover:bg-surface-accent-200 text-error dark:bg-surface-800 dark:hover:bg-surface-accent-700 dark:text-error": variant === "neutral" && color === "error" && !disabled,
|
62
|
+
|
55
63
|
// Disabled states for all variants
|
56
64
|
"border border-transparent opacity-50": variant === "text" && disabled,
|
57
|
-
"border border-
|
58
|
-
"border border-
|
65
|
+
"border border-surface-500 opacity-50": variant === "outlined" && disabled,
|
66
|
+
"border border-surface-500 bg-surface-500 opacity-50": (variant === "filled" || variant === "neutral") && disabled,
|
59
67
|
});
|
60
68
|
|
61
|
-
const sizeClasses =
|
69
|
+
const sizeClasses = cls(
|
62
70
|
{
|
63
71
|
"py-1 px-2": size === "small",
|
64
72
|
"py-2 px-4": size === "medium",
|
@@ -73,7 +81,7 @@ const ButtonInner = React.forwardRef<
|
|
73
81
|
<Component
|
74
82
|
ref={ref}
|
75
83
|
onClick={props.onClick}
|
76
|
-
className={
|
84
|
+
className={cls(startIcon ? "pl-3" : "", baseClasses, buttonClasses, sizeClasses, className)}
|
77
85
|
{...(props as React.ComponentPropsWithRef<any>)}>
|
78
86
|
{startIcon}
|
79
87
|
{children}
|
@@ -85,7 +93,7 @@ const ButtonInner = React.forwardRef<
|
|
85
93
|
<button ref={ref as any}
|
86
94
|
type={props.type ?? "button"}
|
87
95
|
onClick={props.onClick}
|
88
|
-
className={
|
96
|
+
className={cls(startIcon ? "pl-3" : "", baseClasses, buttonClasses, sizeClasses, className)}
|
89
97
|
disabled={disabled}
|
90
98
|
{...props as React.ButtonHTMLAttributes<HTMLButtonElement>}>
|
91
99
|
{startIcon}
|
package/src/components/Card.tsx
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
"use client";
|
1
2
|
import React, { useCallback } from "react";
|
2
|
-
import { cardClickableMixin, cardMixin
|
3
|
-
import {
|
3
|
+
import { cardClickableMixin, cardMixin } from "../styles";
|
4
|
+
import { cls } from "../util";
|
4
5
|
|
5
6
|
type CardProps = {
|
6
7
|
children: React.ReactNode;
|
@@ -29,7 +30,7 @@ const Card = React.forwardRef<HTMLDivElement, CardProps>(({
|
|
29
30
|
role={onClick ? "button" : undefined}
|
30
31
|
tabIndex={onClick ? 0 : undefined}
|
31
32
|
onClick={onClick}
|
32
|
-
className={
|
33
|
+
className={cls(cardMixin, onClick && cardClickableMixin, className)}
|
33
34
|
style={style}
|
34
35
|
{...props}>
|
35
36
|
{children}
|
@@ -1,24 +1,35 @@
|
|
1
|
+
"use client";
|
1
2
|
import React from "react";
|
2
3
|
import { Container } from "./Container";
|
3
|
-
import {
|
4
|
+
import { cls } from "../util";
|
4
5
|
|
5
|
-
export
|
6
|
-
children,
|
7
|
-
maxWidth,
|
8
|
-
className,
|
9
|
-
fullScreen
|
10
|
-
}: {
|
6
|
+
export type CenteredViewProps = {
|
11
7
|
children: React.ReactNode;
|
12
8
|
maxWidth?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl";
|
9
|
+
outerClassName?: string;
|
13
10
|
className?: string;
|
14
11
|
fullScreen?: boolean;
|
15
|
-
}
|
12
|
+
};
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
export const CenteredView = React.forwardRef<HTMLDivElement, CenteredViewProps>(({
|
15
|
+
children,
|
16
|
+
maxWidth,
|
17
|
+
outerClassName,
|
18
|
+
className,
|
19
|
+
fullScreen,
|
20
|
+
...rest
|
21
|
+
}, ref) => { // Notice how the ref is now received as the second argument
|
23
22
|
|
24
|
-
|
23
|
+
return (
|
24
|
+
<div ref={ref}
|
25
|
+
className={cls("flex flex-col flex-grow", fullScreen ? "h-screen" : "h-full", outerClassName)}
|
26
|
+
{...rest}>
|
27
|
+
<Container className={cls("m-auto", className)} maxWidth={maxWidth}>
|
28
|
+
{children}
|
29
|
+
</Container>
|
30
|
+
</div>
|
31
|
+
);
|
32
|
+
|
33
|
+
});
|
34
|
+
|
35
|
+
CenteredView.displayName = "CenteredView";
|
@@ -2,15 +2,16 @@ import React from "react";
|
|
2
2
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
3
3
|
|
4
4
|
import { Icon } from "../icons";
|
5
|
-
import {
|
5
|
+
import { cls } from "../util";
|
6
6
|
|
7
7
|
export interface CheckboxProps {
|
8
8
|
checked: boolean;
|
9
|
+
id?: string;
|
9
10
|
disabled?: boolean;
|
10
11
|
indeterminate?: boolean;
|
11
12
|
onCheckedChange?: (checked: boolean) => void;
|
12
13
|
padding?: boolean;
|
13
|
-
size?: "
|
14
|
+
size?: "smallest" | "small" | "medium" | "large";
|
14
15
|
color?: "primary" | "secondary";
|
15
16
|
}
|
16
17
|
|
@@ -18,20 +19,20 @@ const sizeClasses = {
|
|
18
19
|
large: "w-6 h-6 rounded flex items-center justify-center",
|
19
20
|
medium: "w-5 h-5 rounded flex items-center justify-center",
|
20
21
|
small: "w-4 h-4 rounded flex items-center justify-center",
|
21
|
-
|
22
|
+
smallest: "w-4 h-4 rounded flex items-center justify-center"
|
22
23
|
};
|
23
24
|
|
24
25
|
const outerSizeClasses = {
|
25
26
|
medium: "w-10 h-10",
|
26
27
|
small: "w-8 h-8",
|
27
28
|
large: "w-12 h-12 ",
|
28
|
-
|
29
|
+
smallest: "w-6 h-6"
|
29
30
|
}
|
30
31
|
const paddingClasses = {
|
31
32
|
medium: "p-2",
|
32
33
|
small: "p-2",
|
33
34
|
large: "p-2",
|
34
|
-
|
35
|
+
smallest: ""
|
35
36
|
}
|
36
37
|
|
37
38
|
const colorClasses = {
|
@@ -40,6 +41,7 @@ const colorClasses = {
|
|
40
41
|
}
|
41
42
|
|
42
43
|
export const Checkbox = ({
|
44
|
+
id,
|
43
45
|
checked,
|
44
46
|
indeterminate = false,
|
45
47
|
padding = true,
|
@@ -55,34 +57,34 @@ export const Checkbox = ({
|
|
55
57
|
? 20
|
56
58
|
: size === "small"
|
57
59
|
? 16
|
58
|
-
: size === "
|
60
|
+
: size === "smallest"
|
59
61
|
? 14
|
60
62
|
: 24;
|
61
63
|
return (
|
62
64
|
<CheckboxPrimitive.Root
|
63
|
-
|
65
|
+
id={id}
|
64
66
|
checked={indeterminate || isChecked}
|
65
67
|
disabled={disabled}
|
66
68
|
onCheckedChange={disabled ? undefined : onCheckedChange}>
|
67
69
|
|
68
|
-
<div className={
|
70
|
+
<div className={cls(
|
69
71
|
padding ? paddingClasses[size] : "",
|
70
72
|
outerSizeClasses[size],
|
71
73
|
"inline-flex items-center justify-center text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150",
|
72
|
-
onCheckedChange ? "rounded-full hover:bg-
|
74
|
+
onCheckedChange ? "rounded-full hover:bg-surface-accent-200 hover:bg-opacity-75 dark:hover:bg-surface-accent-700 dark:hover:bg-opacity-75" : "",
|
73
75
|
onCheckedChange ? "cursor-pointer" : "cursor-default"
|
74
76
|
)}>
|
75
77
|
<div
|
76
|
-
className={
|
78
|
+
className={cls(
|
77
79
|
"border-2 relative transition-colors ease-in-out duration-150",
|
78
80
|
sizeClasses[size],
|
79
81
|
disabled
|
80
|
-
? (indeterminate || isChecked ? "bg-
|
81
|
-
: (indeterminate || isChecked ? colorClasses[color] : "bg-white dark:bg-
|
82
|
-
(indeterminate || isChecked) ? "text-
|
82
|
+
? (indeterminate || isChecked ? "bg-surface-accent-400 dark:bg-surface-accent-600" : "bg-surface-accent-400 dark:bg-surface-accent-600")
|
83
|
+
: (indeterminate || isChecked ? colorClasses[color] : "bg-white dark:bg-surface-900"),
|
84
|
+
(indeterminate || isChecked) ? "text-surface-accent-100 dark:text-surface-accent-900" : "",
|
83
85
|
disabled
|
84
86
|
? "border-transparent"
|
85
|
-
: (indeterminate || isChecked ? "border-transparent" : "border-
|
87
|
+
: (indeterminate || isChecked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-200")
|
86
88
|
)}>
|
87
89
|
<CheckboxPrimitive.Indicator asChild>
|
88
90
|
{indeterminate
|
package/src/components/Chip.tsx
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import { CHIP_COLORS,
|
2
|
+
import { CHIP_COLORS, cls, getColorSchemeForKey } from "../util";
|
3
3
|
|
4
4
|
export type ChipColorScheme = {
|
5
5
|
color: string;
|
@@ -11,18 +11,19 @@ export type ChipColorKey = keyof typeof CHIP_COLORS;
|
|
11
11
|
export interface ChipProps {
|
12
12
|
className?: string;
|
13
13
|
children: React.ReactNode;
|
14
|
-
size?: "
|
14
|
+
size?: "small" | "medium" | "large";
|
15
15
|
colorScheme?: ChipColorScheme | ChipColorKey;
|
16
16
|
error?: boolean;
|
17
17
|
outlined?: boolean;
|
18
18
|
onClick?: () => void;
|
19
19
|
icon?: React.ReactNode;
|
20
|
+
style?: React.CSSProperties;
|
20
21
|
}
|
21
22
|
|
22
23
|
const sizeClassNames = {
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
small: "px-2 py-0.5 text-sm",
|
25
|
+
medium: "px-3 py-1 text-sm",
|
26
|
+
large: "px-4 py-1.5 text-sm"
|
26
27
|
}
|
27
28
|
|
28
29
|
/**
|
@@ -35,18 +36,19 @@ export function Chip({
|
|
35
36
|
outlined,
|
36
37
|
onClick,
|
37
38
|
icon,
|
38
|
-
size = "
|
39
|
-
className
|
39
|
+
size = "large",
|
40
|
+
className,
|
41
|
+
style
|
40
42
|
}: ChipProps) {
|
41
43
|
|
42
44
|
const usedColorScheme = typeof colorScheme === "string" ? getColorSchemeForKey(colorScheme) : colorScheme;
|
43
45
|
return (
|
44
46
|
<div
|
45
|
-
className={
|
47
|
+
className={cls("rounded-lg max-w-full w-max h-fit font-regular inline-flex gap-1",
|
46
48
|
"text-ellipsis",
|
47
|
-
onClick ? "cursor-pointer hover:bg-
|
49
|
+
onClick ? "cursor-pointer hover:bg-surface-accent-300 hover:dark:bg-surface-accent-700" : "",
|
48
50
|
sizeClassNames[size],
|
49
|
-
error || !usedColorScheme ? "bg-
|
51
|
+
error || !usedColorScheme ? "bg-surface-accent-200 dark:bg-surface-accent-800 text-surface-accent-800 dark:text-white" : "",
|
50
52
|
error ? "text-red-500 dark:text-red-400" : "",
|
51
53
|
className)}
|
52
54
|
onClick={onClick}
|
@@ -54,6 +56,7 @@ export function Chip({
|
|
54
56
|
backgroundColor: error || !usedColorScheme ? undefined : usedColorScheme.color,
|
55
57
|
color: error || !usedColorScheme ? undefined : usedColorScheme.text,
|
56
58
|
overflow: "hidden",
|
59
|
+
...style
|
57
60
|
// display: "-webkit-box",
|
58
61
|
// WebkitLineClamp: 1,
|
59
62
|
// WebkitBoxOrient: "vertical",
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import {
|
2
|
+
import { cls } from "../util";
|
3
3
|
|
4
4
|
export type CircularProgressProps = {
|
5
5
|
size?: "small" | "medium" | "large",
|
@@ -31,11 +31,11 @@ export function CircularProgress({
|
|
31
31
|
|
32
32
|
return (
|
33
33
|
<div
|
34
|
-
className={
|
34
|
+
className={cls(
|
35
35
|
sizeClasses,
|
36
36
|
borderClasses,
|
37
37
|
"inline-block animate-spin rounded-full border-solid border-current border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite]",
|
38
|
-
"text-primary
|
38
|
+
"text-primary dark:text-primary",
|
39
39
|
className)}
|
40
40
|
role="status">
|
41
41
|
<span
|
@@ -1,7 +1,9 @@
|
|
1
|
+
"use client";
|
1
2
|
import React from "react";
|
2
3
|
import * as Collapsible from "@radix-ui/react-collapsible";
|
3
4
|
|
4
|
-
import {
|
5
|
+
import { cls } from "../util";
|
6
|
+
import { useInjectStyles } from "../hooks";
|
5
7
|
|
6
8
|
interface CollapseProps {
|
7
9
|
children?: React.ReactNode;
|
@@ -53,7 +55,7 @@ export function Collapse({
|
|
53
55
|
className={className}>
|
54
56
|
|
55
57
|
<Collapsible.Content
|
56
|
-
className={
|
58
|
+
className={cls(`CollapseContent-${duration}`)}
|
57
59
|
>
|
58
60
|
{children}
|
59
61
|
</Collapsible.Content>
|
@@ -1,5 +1,6 @@
|
|
1
|
+
"use client";
|
1
2
|
import React, { ForwardRefRenderFunction } from "react";
|
2
|
-
import {
|
3
|
+
import { cls } from "../util";
|
3
4
|
|
4
5
|
export type ContainerProps = {
|
5
6
|
children: React.ReactNode;
|
@@ -37,7 +38,7 @@ const ContainerInner: ForwardRefRenderFunction<HTMLDivElement, ContainerProps> =
|
|
37
38
|
return (
|
38
39
|
<div
|
39
40
|
ref={ref}
|
40
|
-
className={
|
41
|
+
className={cls("mx-auto px-3 md:px-4 lg-px-6",
|
41
42
|
classForMaxWidth,
|
42
43
|
className)}
|
43
44
|
style={style}>
|