@firecms/ui 3.0.0-alpha.73 → 3.0.0-alpha.75
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/dist/components/CenteredView.d.ts +1 -2
- package/dist/components/Checkbox.d.ts +2 -1
- package/dist/index.es.js +7352 -7343
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +10 -10
- package/dist/index.umd.js.map +1 -1
- package/dist/styles.d.ts +5 -5
- package/package.json +2 -2
- package/src/components/Alert.tsx +9 -5
- package/src/components/Autocomplete.tsx +2 -2
- package/src/components/Avatar.tsx +4 -4
- package/src/components/Badge.tsx +1 -1
- package/src/components/BooleanSwitch.tsx +4 -4
- package/src/components/Button.tsx +1 -1
- package/src/components/Card.tsx +0 -1
- package/src/components/CenteredView.tsx +1 -3
- package/src/components/Checkbox.tsx +26 -9
- package/src/components/Chip.tsx +2 -2
- package/src/components/DateTimeField.tsx +4 -4
- package/src/components/Dialog.tsx +2 -3
- package/src/components/IconButton.tsx +3 -3
- package/src/components/Menu.tsx +1 -1
- package/src/components/MultiSelect.tsx +4 -4
- package/src/components/Popover.tsx +1 -1
- package/src/components/SearchBar.tsx +2 -2
- package/src/components/Select.tsx +6 -6
- package/src/components/Sheet.tsx +1 -1
- package/src/components/Skeleton.tsx +1 -1
- package/src/components/Spinner.tsx +1 -1
- package/src/components/Table.tsx +7 -7
- package/src/components/Tabs.tsx +8 -8
- package/src/components/TextField.tsx +2 -2
- package/src/components/Tooltip.tsx +2 -2
- package/src/components/Typography.tsx +1 -1
- package/src/components/common/SelectInputLabel.tsx +1 -1
- package/src/styles.ts +5 -5
package/dist/styles.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const focusedMixin = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-opacity-75 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent";
|
|
2
|
-
export declare const focusedInvisibleMixin = "focus:bg-opacity-70 focus:bg-
|
|
2
|
+
export declare const focusedInvisibleMixin = "focus:bg-opacity-70 focus:bg-slate-100 focus:dark:bg-gray-800 focus:dark:bg-opacity-60";
|
|
3
3
|
export declare const focusedClasses = "z-30 outline-none ring-2 ring-primary ring-opacity-75 ring-offset-2 ring-offset-transparent ";
|
|
4
|
-
export declare const fieldBackgroundMixin = "bg-opacity-
|
|
5
|
-
export declare const fieldBackgroundInvisibleMixin = "bg-opacity-0 bg-
|
|
6
|
-
export declare const fieldBackgroundDisabledMixin = "bg-opacity-
|
|
7
|
-
export declare const fieldBackgroundHoverMixin = "hover:bg-opacity-
|
|
4
|
+
export declare const fieldBackgroundMixin = "bg-opacity-50 bg-slate-200 dark:bg-gray-800 dark:bg-opacity-60 transition duration-150 ease-in-out";
|
|
5
|
+
export declare const fieldBackgroundInvisibleMixin = "bg-opacity-0 bg-slate-100 dark:bg-gray-800 dark:bg-opacity-0 transition duration-150 ease-in-out";
|
|
6
|
+
export declare const fieldBackgroundDisabledMixin = "bg-opacity-80 dark:bg-opacity-90";
|
|
7
|
+
export declare const fieldBackgroundHoverMixin = "hover:bg-opacity-70 dark:hover:bg-opacity-90";
|
|
8
8
|
export declare const defaultBorderMixin = "border-gray-100 dark:border-gray-800 dark:border-opacity-80";
|
|
9
9
|
export declare const paperMixin = "bg-white rounded-md dark:bg-gray-950 border dark:border-gray-800 dark:border-opacity-90 border-gray-100";
|
|
10
10
|
export declare const cardMixin = "bg-white rounded-md dark:bg-gray-950 dark:border-gray-800 dark:border-opacity-50 transition duration-200 ease-in-out m-1 -p-1 border border-transparent";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firecms/ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.0.0-alpha.
|
|
4
|
+
"version": "3.0.0-alpha.75",
|
|
5
5
|
"description": "Awesome Firebase/Firestore-based headless open-source CMS",
|
|
6
6
|
"funding": {
|
|
7
7
|
"url": "https://github.com/sponsors/firecmsco"
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"dist",
|
|
102
102
|
"src"
|
|
103
103
|
],
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "7d04e9e7855d1720e2b394091863dc3637a87712",
|
|
105
105
|
"publishConfig": {
|
|
106
106
|
"access": "public"
|
|
107
107
|
}
|
package/src/components/Alert.tsx
CHANGED
|
@@ -14,9 +14,9 @@ export interface AlertProps {
|
|
|
14
14
|
const getSizeClasses = (size: "small" | "medium" | "large") => {
|
|
15
15
|
switch (size) {
|
|
16
16
|
case "small":
|
|
17
|
-
return "px-
|
|
17
|
+
return "px-4 py-1";
|
|
18
18
|
case "large":
|
|
19
|
-
return "px-
|
|
19
|
+
return "px-4 py-4";
|
|
20
20
|
case "medium":
|
|
21
21
|
default:
|
|
22
22
|
return "px-4 py-2";
|
|
@@ -52,11 +52,15 @@ export const Alert: React.FC<AlertProps> = ({
|
|
|
52
52
|
return (
|
|
53
53
|
<div
|
|
54
54
|
style={style}
|
|
55
|
-
className={cn(
|
|
56
|
-
|
|
55
|
+
className={cn(
|
|
56
|
+
getSizeClasses(size),
|
|
57
|
+
"w-full",
|
|
58
|
+
"rounded-md flex items-center gap-2",
|
|
59
|
+
classes,
|
|
60
|
+
className)}>
|
|
57
61
|
<span className={"flex-grow"}>{children}</span>
|
|
58
62
|
{onDismiss && (
|
|
59
|
-
<button className="text-
|
|
63
|
+
<button className="text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-400"
|
|
60
64
|
onClick={onDismiss}>
|
|
61
65
|
×
|
|
62
66
|
</button>
|
|
@@ -58,7 +58,7 @@ export function Autocomplete({
|
|
|
58
58
|
<div ref={autocompleteRef}
|
|
59
59
|
className={cn(
|
|
60
60
|
open ? paperMixin : "",
|
|
61
|
-
"bg-
|
|
61
|
+
"bg-slate-50 dark:bg-slate-900 py-2"
|
|
62
62
|
)}>
|
|
63
63
|
{children}
|
|
64
64
|
</div>
|
|
@@ -78,7 +78,7 @@ export function AutocompleteItem({
|
|
|
78
78
|
|
|
79
79
|
return (
|
|
80
80
|
<div
|
|
81
|
-
className="flex w-full items-center pr-6 pl-14 h-[48px] cursor-pointer hover:bg-
|
|
81
|
+
className="flex w-full items-center pr-6 pl-14 h-[48px] cursor-pointer hover:bg-slate-100 dark:hover:bg-slate-800"
|
|
82
82
|
onClick={onClick}>
|
|
83
83
|
{children}
|
|
84
84
|
</div>
|
|
@@ -27,12 +27,12 @@ const AvatarInner: React.ForwardRefRenderFunction<HTMLButtonElement, AvatarProps
|
|
|
27
27
|
{...props}
|
|
28
28
|
className={cn("rounded-full flex items-center justify-center overflow-hidden",
|
|
29
29
|
focusedMixin,
|
|
30
|
-
"p-1 hover:bg-
|
|
30
|
+
"p-1 hover:bg-slate-200 hover:dark:bg-slate-700 w-12 h-12",
|
|
31
31
|
)}>
|
|
32
32
|
{src
|
|
33
33
|
? (
|
|
34
34
|
<img className={cn(
|
|
35
|
-
"bg-
|
|
35
|
+
"bg-slate-100 dark:bg-slate-800",
|
|
36
36
|
"w-full h-full object-cover rounded-full",
|
|
37
37
|
className)}
|
|
38
38
|
src={src}
|
|
@@ -41,9 +41,9 @@ const AvatarInner: React.ForwardRefRenderFunction<HTMLButtonElement, AvatarProps
|
|
|
41
41
|
: (
|
|
42
42
|
<span
|
|
43
43
|
className={cn(
|
|
44
|
-
"bg-
|
|
44
|
+
"bg-slate-100 dark:bg-slate-800",
|
|
45
45
|
"flex items-center justify-center",
|
|
46
|
-
"w-full h-full py-1.5 text-lg font-medium text-
|
|
46
|
+
"w-full h-full py-1.5 text-lg font-medium text-slate-900 dark:text-white rounded-full",
|
|
47
47
|
className)}>
|
|
48
48
|
{children}
|
|
49
49
|
</span>
|
package/src/components/Badge.tsx
CHANGED
|
@@ -42,8 +42,8 @@ export const BooleanSwitch = React.forwardRef(function BooleanSwitch({
|
|
|
42
42
|
size === "small" ? "w-[38px] h-[22px] min-w-[38px] min-h-[22px]" : "w-[42px] h-[26px] min-w-[42px] min-h-[26px]",
|
|
43
43
|
"outline-none rounded-full relative shadow-sm",
|
|
44
44
|
value ? (disabled
|
|
45
|
-
? "bg-white bg-opacity-54 dark:bg-
|
|
46
|
-
: "ring-secondary ring-1 bg-secondary dark:bg-secondary") : "bg-white bg-opacity-54 dark:bg-
|
|
45
|
+
? "bg-white bg-opacity-54 dark:bg-slate-950 border-slate-100 dark:border-slate-700 ring-1 ring-slate-100 dark:ring-slate-700"
|
|
46
|
+
: "ring-secondary ring-1 bg-secondary dark:bg-secondary") : "bg-white bg-opacity-54 dark:bg-slate-900 ring-1 ring-slate-100 dark:ring-slate-700",
|
|
47
47
|
className
|
|
48
48
|
)}
|
|
49
49
|
{...props}
|
|
@@ -52,7 +52,7 @@ export const BooleanSwitch = React.forwardRef(function BooleanSwitch({
|
|
|
52
52
|
key={"knob"}
|
|
53
53
|
className={cn(
|
|
54
54
|
"block rounded-full transition-transform duration-100 transform will-change-auto",
|
|
55
|
-
disabled ? "bg-
|
|
55
|
+
disabled ? "bg-slate-400 dark:bg-slate-600" : "bg-slate-400 dark:bg-slate-600",
|
|
56
56
|
{
|
|
57
57
|
"w-[21px] h-[10px]": size === "medium",
|
|
58
58
|
"w-[19px] h-[8px]": size === "small",
|
|
@@ -66,7 +66,7 @@ export const BooleanSwitch = React.forwardRef(function BooleanSwitch({
|
|
|
66
66
|
key={"knob"}
|
|
67
67
|
className={cn(
|
|
68
68
|
"block rounded-full transition-transform duration-100 transform will-change-auto",
|
|
69
|
-
disabled ? "bg-
|
|
69
|
+
disabled ? "bg-slate-300 dark:bg-slate-700" : (value ? "bg-white" : "bg-slate-600 dark:bg-slate-400"),
|
|
70
70
|
{
|
|
71
71
|
"w-[21px] h-[21px]": size === "medium",
|
|
72
72
|
"w-[19px] h-[19px]": size === "small",
|
|
@@ -38,7 +38,7 @@ export function Button<P extends React.ElementType>({
|
|
|
38
38
|
"border-primary !text-primary hover:bg-primary hover:bg-opacity-10 hover:border-blue-600 !hover:text-blue-600 focus:ring-blue-400 hover:ring-1 hover:ring-primary": variant === "outlined" && !disabled,
|
|
39
39
|
"border-transparent !text-primary !hover:text-blue-600 hover:bg-primary hover:bg-opacity-10": variant === "text" && !disabled,
|
|
40
40
|
"border-blue-600 border-opacity-50 dark:border-blue-500 dark:border-opacity-50 opacity-50 !text-blue-600 !dark:text-blue-500 text-opacity-50 dark:text-opacity-50": variant === "outlined" && disabled,
|
|
41
|
-
"border-transparent outline-none opacity-50 !text-
|
|
41
|
+
"border-transparent outline-none opacity-50 !text-slate-600 !dark:text-slate-500": (variant === "filled" || variant === "text") && disabled
|
|
42
42
|
}
|
|
43
43
|
);
|
|
44
44
|
|
package/src/components/Card.tsx
CHANGED
|
@@ -5,13 +5,11 @@ import { cn } from "../util";
|
|
|
5
5
|
export function CenteredView({
|
|
6
6
|
children,
|
|
7
7
|
maxWidth,
|
|
8
|
-
|
|
9
|
-
className,
|
|
8
|
+
className
|
|
10
9
|
}: {
|
|
11
10
|
children: React.ReactNode;
|
|
12
11
|
maxWidth?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl";
|
|
13
12
|
className?: string;
|
|
14
|
-
fullScreen?: boolean,
|
|
15
13
|
}) {
|
|
16
14
|
|
|
17
15
|
return <div className={"flex flex-col flex-grow h-full"}>
|
|
@@ -10,6 +10,7 @@ interface CheckboxProps {
|
|
|
10
10
|
indeterminate?: boolean;
|
|
11
11
|
onCheckedChange?: (checked: boolean) => void;
|
|
12
12
|
size?: "small" | "medium" | "large";
|
|
13
|
+
color?: "primary" | "secondary";
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
const sizeClasses = {
|
|
@@ -24,26 +25,37 @@ const outerSizeClasses = {
|
|
|
24
25
|
large: "w-12 h-12"
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
const colorClasses = {
|
|
29
|
+
primary: "bg-primary",
|
|
30
|
+
secondary: "bg-secondary"
|
|
31
|
+
}
|
|
32
|
+
|
|
27
33
|
export const Checkbox = ({
|
|
28
34
|
checked,
|
|
29
35
|
indeterminate = false,
|
|
30
36
|
disabled,
|
|
31
37
|
size = "medium",
|
|
32
|
-
onCheckedChange
|
|
38
|
+
onCheckedChange,
|
|
39
|
+
color = "primary"
|
|
33
40
|
}: CheckboxProps) => {
|
|
34
41
|
|
|
35
42
|
const isChecked = indeterminate ? false : checked;
|
|
36
43
|
|
|
44
|
+
const iconSize = size === "medium"
|
|
45
|
+
? 20
|
|
46
|
+
: size === "small"
|
|
47
|
+
? 16
|
|
48
|
+
: 24;
|
|
37
49
|
return (
|
|
38
50
|
<div className={cn(
|
|
39
51
|
outerSizeClasses[size],
|
|
40
52
|
"inline-flex items-center justify-center p-2 text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150",
|
|
41
|
-
onCheckedChange ? "rounded-full hover:bg-
|
|
53
|
+
onCheckedChange ? "rounded-full hover:bg-slate-200 hover:bg-opacity-75 dark:hover:bg-slate-700 dark:hover:bg-opacity-75" : "",
|
|
42
54
|
onCheckedChange ? "cursor-pointer" : "cursor-default"
|
|
43
55
|
)}>
|
|
44
56
|
<CheckboxPrimitive.Root
|
|
45
57
|
asChild
|
|
46
|
-
checked={isChecked}
|
|
58
|
+
checked={indeterminate || isChecked}
|
|
47
59
|
disabled={disabled}
|
|
48
60
|
onCheckedChange={disabled ? undefined : onCheckedChange}>
|
|
49
61
|
<div
|
|
@@ -51,24 +63,29 @@ export const Checkbox = ({
|
|
|
51
63
|
"border-2 relative transition-colors ease-in-out duration-150",
|
|
52
64
|
sizeClasses[size],
|
|
53
65
|
disabled
|
|
54
|
-
? (isChecked ? "bg-
|
|
55
|
-
: (isChecked ?
|
|
56
|
-
isChecked ? "text-
|
|
66
|
+
? (indeterminate || isChecked ? "bg-slate-400 dark:bg-slate-600" : "bg-slate-400 dark:bg-slate-600")
|
|
67
|
+
: (indeterminate || isChecked ? colorClasses[color] : "bg-white dark:bg-slate-900"),
|
|
68
|
+
(indeterminate || isChecked) ? "text-slate-100 dark:text-slate-900" : "",
|
|
57
69
|
disabled
|
|
58
70
|
? "border-transparent"
|
|
59
|
-
: (isChecked ? "border-transparent" : "border-
|
|
71
|
+
: (indeterminate || isChecked ? "border-transparent" : "border-slate-800 dark:border-slate-200")
|
|
60
72
|
)}>
|
|
61
73
|
<CheckboxPrimitive.Indicator asChild>
|
|
62
74
|
{indeterminate
|
|
63
75
|
? (
|
|
64
|
-
<
|
|
76
|
+
<Icon iconKey={"remove"} size={iconSize} className={"absolute"}/>
|
|
65
77
|
)
|
|
66
78
|
: (
|
|
67
|
-
<Icon iconKey={"check"} size={
|
|
79
|
+
<Icon iconKey={"check"} size={iconSize} className={"absolute"}/>
|
|
68
80
|
)}
|
|
69
81
|
</CheckboxPrimitive.Indicator>
|
|
70
82
|
</div>
|
|
71
83
|
</CheckboxPrimitive.Root>
|
|
84
|
+
{/*{indeterminate && (*/}
|
|
85
|
+
{/* <div >*/}
|
|
86
|
+
{/* YO*/}
|
|
87
|
+
{/* </div>*/}
|
|
88
|
+
{/*)}*/}
|
|
72
89
|
</div>
|
|
73
90
|
);
|
|
74
91
|
};
|
package/src/components/Chip.tsx
CHANGED
|
@@ -44,9 +44,9 @@ export function Chip({
|
|
|
44
44
|
<div
|
|
45
45
|
className={cn("rounded-lg w-fit h-fit font-regular inline-flex gap-1",
|
|
46
46
|
"text-ellipsis",
|
|
47
|
-
onClick ? "cursor-pointer hover:bg-
|
|
47
|
+
onClick ? "cursor-pointer hover:bg-slate-300 hover:dark:bg-slate-700" : "",
|
|
48
48
|
sizeClassNames[size],
|
|
49
|
-
error || !usedColorScheme ? "bg-
|
|
49
|
+
error || !usedColorScheme ? "bg-slate-200 dark:bg-slate-800 text-slate-800 dark:text-slate-200" : "",
|
|
50
50
|
error ? "text-red-500 dark:text-red-400" : "",
|
|
51
51
|
className)}
|
|
52
52
|
onClick={onClick}
|
|
@@ -81,7 +81,7 @@ export const DateTimeField: React.FC<DateTimeFieldProps> = ({
|
|
|
81
81
|
{label && (
|
|
82
82
|
<InputLabel
|
|
83
83
|
className={cn("absolute top-1 pointer-events-none",
|
|
84
|
-
!error ? (focused ? "text-primary" : "text-text-secondary dark:text-text-secondary-dark") : "text-red-500 dark:text-red-
|
|
84
|
+
!error ? (focused ? "text-primary" : "text-text-secondary dark:text-text-secondary-dark") : "text-red-500 dark:text-red-500",
|
|
85
85
|
disabled ? "opacity-50" : "")}
|
|
86
86
|
shrink={hasValue || focused}
|
|
87
87
|
>
|
|
@@ -113,7 +113,7 @@ export const DateTimeField: React.FC<DateTimeFieldProps> = ({
|
|
|
113
113
|
size === "small" ? "min-h-[48px]" : "min-h-[64px]",
|
|
114
114
|
label ? "pt-[28px] pb-2" : "py-2",
|
|
115
115
|
inputClassName,
|
|
116
|
-
disabled && "border border-transparent outline-none opacity-50 dark:opacity-50 text-
|
|
116
|
+
disabled && "border border-transparent outline-none opacity-50 dark:opacity-50 text-slate-600 dark:text-slate-500"
|
|
117
117
|
)}
|
|
118
118
|
/>
|
|
119
119
|
|
|
@@ -123,14 +123,14 @@ export const DateTimeField: React.FC<DateTimeFieldProps> = ({
|
|
|
123
123
|
// @ts-ignore
|
|
124
124
|
return ref.current?.setOpen(true);
|
|
125
125
|
}}
|
|
126
|
-
className="absolute right-3 top-1/2 transform -translate-y-1/2 !text-
|
|
126
|
+
className="absolute right-3 top-1/2 transform -translate-y-1/2 !text-slate-500 ">
|
|
127
127
|
<CalendarMonthIcon color={"disabled"}/>
|
|
128
128
|
</IconButton>
|
|
129
129
|
|
|
130
130
|
{clearable && value && (
|
|
131
131
|
<IconButton
|
|
132
132
|
onClick={handleClear}
|
|
133
|
-
className="absolute right-14 top-1/2 transform -translate-y-1/2 text-
|
|
133
|
+
className="absolute right-14 top-1/2 transform -translate-y-1/2 text-slate-400 ">
|
|
134
134
|
<ClearIcon/>
|
|
135
135
|
</IconButton>
|
|
136
136
|
)}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
3
2
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
4
3
|
import { paperMixin } from "../styles";
|
|
5
4
|
import { cn } from "../util";
|
|
@@ -87,7 +86,7 @@ export const Dialog = ({
|
|
|
87
86
|
"outline-none focus:outline-none",
|
|
88
87
|
fullWidth && !fullScreen ? "w-11/12" : undefined,
|
|
89
88
|
fullHeight && !fullScreen ? "h-full" : undefined,
|
|
90
|
-
"text-
|
|
89
|
+
"text-slate-900 dark:text-white",
|
|
91
90
|
"justify-center items-center",
|
|
92
91
|
fullScreen ? "h-screen w-screen" : "max-h-[90vh] shadow-xl",
|
|
93
92
|
"ease-in-out duration-200",
|
|
@@ -15,10 +15,10 @@ export type IconButtonProps<C extends React.ElementType> =
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
const buttonClasses =
|
|
18
|
-
"hover:bg-gray-200 hover:bg-opacity-75 dark:hover:bg-
|
|
18
|
+
"hover:bg-gray-200 hover:bg-opacity-75 dark:hover:bg-slate-700 dark:hover:bg-opacity-75";
|
|
19
19
|
const baseClasses =
|
|
20
20
|
"inline-flex items-center justify-center p-2 text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150";
|
|
21
|
-
const colorClasses = "dark:text-
|
|
21
|
+
const colorClasses = "dark:text-slate-100 text-slate-700 visited:text-slate-700 dark:visited:text-slate-100";
|
|
22
22
|
const sizeClasses = {
|
|
23
23
|
medium: "w-10 !h-10 min-w-10 min-h-10",
|
|
24
24
|
small: "w-8 !h-8 min-w-8 min-h-8",
|
|
@@ -41,7 +41,7 @@ const IconButtonInner = <C extends React.ElementType = "button">({
|
|
|
41
41
|
...props
|
|
42
42
|
}: IconButtonProps<C>, ref: React.ForwardedRef<HTMLButtonElement>) => {
|
|
43
43
|
|
|
44
|
-
const bgClasses = variant === "ghost" ? "bg-transparent" : "bg-
|
|
44
|
+
const bgClasses = variant === "ghost" ? "bg-transparent" : "bg-slate-50 dark:bg-slate-900";
|
|
45
45
|
const Component: React.ElementType<any> = component || "button";
|
|
46
46
|
return (
|
|
47
47
|
<Component
|
package/src/components/Menu.tsx
CHANGED
|
@@ -51,7 +51,7 @@ export function MenuItem({
|
|
|
51
51
|
<DropdownMenu.Item
|
|
52
52
|
className={cn(focusedMixin,
|
|
53
53
|
onClick && "cursor-pointer",
|
|
54
|
-
"rounded-md px-4 py-2 text-sm font-medium text-
|
|
54
|
+
"rounded-md px-4 py-2 text-sm font-medium text-slate-700 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-900 flex items-center gap-4")}
|
|
55
55
|
onClick={onClick}>
|
|
56
56
|
{children}
|
|
57
57
|
</DropdownMenu.Item>
|
|
@@ -172,7 +172,7 @@ export function MultiSelect({
|
|
|
172
172
|
}}>
|
|
173
173
|
|
|
174
174
|
<CommandPrimitive.Group
|
|
175
|
-
className="mt-2 text-
|
|
175
|
+
className="mt-2 text-slate-900 dark:text-white animate-in z-50 border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-800 p-2 rounded-lg shadow-lg flex flex-col outline-none w-full"
|
|
176
176
|
>
|
|
177
177
|
|
|
178
178
|
{children}
|
|
@@ -210,13 +210,13 @@ export function MultiSelectItem({ children, value, className }: MultiSelectItemP
|
|
|
210
210
|
onValueChangeInternal(value);
|
|
211
211
|
}}
|
|
212
212
|
className={cn(
|
|
213
|
-
(fieldValue ?? []).includes(value) ? "bg-
|
|
213
|
+
(fieldValue ?? []).includes(value) ? "bg-slate-200 dark:bg-slate-950" : "",
|
|
214
214
|
"cursor-pointer",
|
|
215
215
|
"m-1",
|
|
216
216
|
"ring-offset-transparent",
|
|
217
217
|
"p-2 rounded aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-offset-2",
|
|
218
|
-
"aria-[selected=true]:bg-
|
|
219
|
-
"cursor-pointer p-2 rounded aria-[selected=true]:bg-
|
|
218
|
+
"aria-[selected=true]:bg-slate-100 aria-[selected=true]:dark:bg-slate-900",
|
|
219
|
+
"cursor-pointer p-2 rounded aria-[selected=true]:bg-slate-100 aria-[selected=true]:dark:bg-slate-900",
|
|
220
220
|
className
|
|
221
221
|
)}
|
|
222
222
|
>
|
|
@@ -67,7 +67,7 @@ export function Popover({
|
|
|
67
67
|
avoidCollisions={avoidCollisions}>
|
|
68
68
|
|
|
69
69
|
{children}
|
|
70
|
-
<PopoverPrimitive.Arrow className="fill-white dark:fill-
|
|
70
|
+
<PopoverPrimitive.Arrow className="fill-white dark:fill-slate-950"/>
|
|
71
71
|
</PopoverPrimitive.Content>
|
|
72
72
|
</PopoverPrimitive.Portal>
|
|
73
73
|
</PopoverPrimitive.Root>;
|
|
@@ -62,13 +62,13 @@ export function SearchBar({
|
|
|
62
62
|
onClick={onClick}
|
|
63
63
|
className={cn("relative",
|
|
64
64
|
large ? "h-14" : "h-[42px]",
|
|
65
|
-
"bg-
|
|
65
|
+
"bg-slate-50 dark:bg-gray-800 transition duration-150 ease-in-out border",
|
|
66
66
|
defaultBorderMixin,
|
|
67
67
|
"rounded",
|
|
68
68
|
className)}>
|
|
69
69
|
<div
|
|
70
70
|
className="absolute p-0 px-4 h-full absolute pointer-events-none flex items-center justify-center top-0">
|
|
71
|
-
{loading ? <CircularProgress size={"small"}/> : <SearchIcon className={"text-gray-500"}/>}
|
|
71
|
+
{loading ? <CircularProgress size={"small"}/> : <SearchIcon className={"text-slate-500 dark:text-gray-500"}/>}
|
|
72
72
|
</div>
|
|
73
73
|
<input
|
|
74
74
|
value={searchText ?? ""}
|
|
@@ -131,7 +131,7 @@ export function Select({
|
|
|
131
131
|
"select-none rounded-md text-sm",
|
|
132
132
|
error ? "text-red-500 dark:text-red-600" : "focus:text-text-primary dark:focus:text-text-primary-dark",
|
|
133
133
|
error ? "border border-red-500 dark:border-red-600" : "",
|
|
134
|
-
disabled ? "text-
|
|
134
|
+
disabled ? "text-slate-600 dark:text-slate-400" : "text-slate-800 dark:text-slate-200",
|
|
135
135
|
"relative flex items-center",
|
|
136
136
|
includeFocusOutline ? focusedMixin : "",
|
|
137
137
|
inputClassName
|
|
@@ -179,7 +179,7 @@ export function Select({
|
|
|
179
179
|
<SelectPrimitive.Portal>
|
|
180
180
|
<SelectPrimitive.Content
|
|
181
181
|
position={position}
|
|
182
|
-
className="z-50 relative overflow-hidden border border-
|
|
182
|
+
className="z-50 relative overflow-hidden border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-800 p-2 rounded-lg shadow-lg">
|
|
183
183
|
<SelectPrimitive.Viewport
|
|
184
184
|
className={"p-1"}
|
|
185
185
|
style={{
|
|
@@ -216,11 +216,11 @@ export function SelectItem({
|
|
|
216
216
|
}}
|
|
217
217
|
className={cn(
|
|
218
218
|
"w-full",
|
|
219
|
-
"relative relative flex items-center p-2 rounded-md text-sm text-
|
|
219
|
+
"relative relative flex items-center p-2 rounded-md text-sm text-slate-700 dark:text-slate-300",
|
|
220
220
|
focusedMixin,
|
|
221
221
|
"focus:z-10",
|
|
222
|
-
"data-[state=checked]:bg-
|
|
223
|
-
"data-[state=checked]:focus:bg-
|
|
222
|
+
"data-[state=checked]:bg-slate-100 data-[state=checked]:dark:bg-slate-900 focus:bg-slate-100 dark:focus:bg-slate-950",
|
|
223
|
+
"data-[state=checked]:focus:bg-slate-200 data-[state=checked]:dark:focus:bg-slate-950",
|
|
224
224
|
disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
|
|
225
225
|
"[&>*]:w-full",
|
|
226
226
|
"overflow-visible",
|
|
@@ -249,7 +249,7 @@ export function SelectGroup({
|
|
|
249
249
|
return <>
|
|
250
250
|
<SelectPrimitive.Group
|
|
251
251
|
className={cn(
|
|
252
|
-
"text-xs text-
|
|
252
|
+
"text-xs text-slate-900 dark:text-slate-100 uppercase tracking-wider font-bold mt-6 first:mt-2",
|
|
253
253
|
"px-2 py-2",
|
|
254
254
|
className
|
|
255
255
|
)}>
|
package/src/components/Sheet.tsx
CHANGED
|
@@ -62,7 +62,7 @@ export const Sheet: React.FC<SheetProps> = ({
|
|
|
62
62
|
className={cn(
|
|
63
63
|
// "transform-gpu",
|
|
64
64
|
"will-change-transform",
|
|
65
|
-
"text-
|
|
65
|
+
"text-slate-900 dark:text-white",
|
|
66
66
|
"fixed transform z-20 transition-all duration-[240ms] ease-in-out",
|
|
67
67
|
"outline-none focus:outline-none",
|
|
68
68
|
!transparent ? "shadow-md" : "",
|
|
@@ -15,7 +15,7 @@ export function Skeleton({
|
|
|
15
15
|
return <span className={
|
|
16
16
|
cn(
|
|
17
17
|
"block",
|
|
18
|
-
"bg-
|
|
18
|
+
"bg-slate-200 dark:bg-slate-800 rounded",
|
|
19
19
|
"animate-pulse",
|
|
20
20
|
width ? `w-[${width}px]` : "w-full",
|
|
21
21
|
height ? `h-[${height}px]` : "h-3",
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
export function Spinner() {
|
|
3
3
|
return (
|
|
4
4
|
<div role="status">
|
|
5
|
-
<svg aria-hidden="true" className="w-8 h-8 mr-2 text-
|
|
5
|
+
<svg aria-hidden="true" className="w-8 h-8 mr-2 text-slate-200 animate-spin dark:text-slate-600 fill-primary"
|
|
6
6
|
viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
7
7
|
<path
|
|
8
8
|
d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z"
|
package/src/components/Table.tsx
CHANGED
|
@@ -13,7 +13,7 @@ export const Table = ({
|
|
|
13
13
|
className,
|
|
14
14
|
style
|
|
15
15
|
}: TableProps) => (
|
|
16
|
-
<table className={cn("w-full text-left text-
|
|
16
|
+
<table className={cn("w-full text-left text-slate-800 dark:text-slate-200 rounded-md overflow-x-auto",
|
|
17
17
|
className)}
|
|
18
18
|
style={style}>
|
|
19
19
|
{children}
|
|
@@ -29,7 +29,7 @@ export const TableBody = ({
|
|
|
29
29
|
className
|
|
30
30
|
}: TableBodyProps) => (
|
|
31
31
|
<tbody
|
|
32
|
-
className={cn("bg-white text-sm dark:bg-
|
|
32
|
+
className={cn("bg-white text-sm dark:bg-slate-800 divide-y divide-slate-200 dark:divide-slate-700", className)}>
|
|
33
33
|
{children}
|
|
34
34
|
</tbody>
|
|
35
35
|
);
|
|
@@ -46,8 +46,8 @@ export const TableHeader = ({
|
|
|
46
46
|
<thead>
|
|
47
47
|
<tr className={cn(
|
|
48
48
|
defaultBorderMixin,
|
|
49
|
-
"text-sm font-medium text-
|
|
50
|
-
"bg-
|
|
49
|
+
"text-sm font-medium text-slate-700 dark:text-slate-300",
|
|
50
|
+
"bg-slate-50 border-b dark:bg-slate-900", className)}>
|
|
51
51
|
{children}
|
|
52
52
|
</tr>
|
|
53
53
|
</thead>
|
|
@@ -70,9 +70,9 @@ export const TableRow = ({
|
|
|
70
70
|
onClick={onClick}
|
|
71
71
|
style={style}
|
|
72
72
|
className={cn(
|
|
73
|
-
"divide-
|
|
74
|
-
"bg-white dark:bg-
|
|
75
|
-
onClick ? "hover:bg-
|
|
73
|
+
"divide-slate-100 dark:divide-slate-800",
|
|
74
|
+
"bg-white dark:bg-slate-950",
|
|
75
|
+
onClick ? "hover:bg-slate-100 dark:hover:bg-slate-800 cursor-pointer" : "",
|
|
76
76
|
className)}
|
|
77
77
|
>
|
|
78
78
|
{children}
|
package/src/components/Tabs.tsx
CHANGED
|
@@ -19,7 +19,7 @@ export function Tabs({
|
|
|
19
19
|
|
|
20
20
|
return <TabsPrimitive.Root value={value} onValueChange={onValueChange}>
|
|
21
21
|
<TabsPrimitive.List className={cn(
|
|
22
|
-
"flex text-sm font-medium text-center text-
|
|
22
|
+
"flex text-sm font-medium text-center text-slate-800 dark:text-slate-200",
|
|
23
23
|
className)
|
|
24
24
|
}>
|
|
25
25
|
{children}
|
|
@@ -46,15 +46,15 @@ export function Tab({
|
|
|
46
46
|
"border-b-2 border-transparent",
|
|
47
47
|
"data-[state=active]:border-secondary",
|
|
48
48
|
disabled
|
|
49
|
-
? "text-
|
|
50
|
-
: cn("text-
|
|
51
|
-
"data-[state=active]:text-
|
|
52
|
-
"hover:text-
|
|
53
|
-
// disabled ? "text-
|
|
54
|
-
// "data-[state=active]:bg-
|
|
49
|
+
? "text-slate-400 dark:text-slate-500"
|
|
50
|
+
: cn("text-slate-700 dark:text-slate-300",
|
|
51
|
+
"data-[state=active]:text-slate-900 data-[state=active]:dark:text-slate-100",
|
|
52
|
+
"hover:text-slate-800 dark:hover:text-slate-200"),
|
|
53
|
+
// disabled ? "text-slate-400 dark:text-slate-500" : "data-[state=active]:text-primary",
|
|
54
|
+
// "data-[state=active]:bg-slate-50 data-[state=active]:dark:bg-slate-800",
|
|
55
55
|
className)}>
|
|
56
56
|
<div className={cn("uppercase inline-block p-2 px-4 m-2 rounded",
|
|
57
|
-
"hover:bg-
|
|
57
|
+
"hover:bg-slate-100 dark:hover:bg-slate-800")}>
|
|
58
58
|
{children}
|
|
59
59
|
</div>
|
|
60
60
|
</TabsPrimitive.Trigger>;
|
|
@@ -100,7 +100,7 @@ export function TextField<T extends string | number>({
|
|
|
100
100
|
className={cn(
|
|
101
101
|
invisible ? focusedInvisibleMixin : focusedMixin,
|
|
102
102
|
"rounded-md resize-none w-full outline-none p-[32px] text-base bg-transparent min-h-[64px] px-3 pt-[28px]",
|
|
103
|
-
disabled && "border border-transparent outline-none opacity-50 text-
|
|
103
|
+
disabled && "border border-transparent outline-none opacity-50 text-slate-600 dark:text-slate-500"
|
|
104
104
|
)}
|
|
105
105
|
/>
|
|
106
106
|
: <input
|
|
@@ -118,7 +118,7 @@ export function TextField<T extends string | number>({
|
|
|
118
118
|
label ? (size === "medium" ? "pt-[28px] pb-2" : "pt-4 pb-2") : "py-2",
|
|
119
119
|
focused ? "text-text-primary dark:text-text-primary-dark" : "",
|
|
120
120
|
endAdornment ? "pr-10" : "pr-3",
|
|
121
|
-
disabled && "border border-transparent outline-none opacity-50 dark:opacity-50 text-
|
|
121
|
+
disabled && "border border-transparent outline-none opacity-50 dark:opacity-50 text-slate-800 dark:text-slate-200",
|
|
122
122
|
inputClassName
|
|
123
123
|
)}
|
|
124
124
|
placeholder={focused || hasValue || !label ? placeholder : undefined}
|
|
@@ -44,12 +44,12 @@ export const Tooltip = ({
|
|
|
44
44
|
<TooltipPrimitive.Content
|
|
45
45
|
className={cn("TooltipContent",
|
|
46
46
|
"max-w-lg leading-relaxed",
|
|
47
|
-
"z-50 rounded px-3 py-2 text-xs leading-none bg-
|
|
47
|
+
"z-50 rounded px-3 py-2 text-xs leading-none bg-slate-700 dark:bg-slate-800 bg-opacity-90 font-medium text-slate-50 shadow-2xl select-none duration-400 ease-in transform opacity-100",
|
|
48
48
|
tooltipClassName)}
|
|
49
49
|
sideOffset={sideOffset === undefined ? 4 : sideOffset}
|
|
50
50
|
side={side}>
|
|
51
51
|
{title}
|
|
52
|
-
{/*<TooltipPrimitive.Arrow className="fill-
|
|
52
|
+
{/*<TooltipPrimitive.Arrow className="fill-slate-600"/>*/}
|
|
53
53
|
</TooltipPrimitive.Content>
|
|
54
54
|
</TooltipPrimitive.Portal>
|
|
55
55
|
</TooltipPrimitive.Root>
|