lecom-ui 5.3.68 → 5.3.70
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 +1 -1
- package/dist/components/Collapse/Collapse.js +94 -0
- package/dist/components/Combobox/Combobox.js +12 -11
- package/dist/components/Command/Command.js +2 -5
- package/dist/components/Input/Input.js +5 -5
- package/dist/components/NumberControl/NumberControl.js +20 -9
- package/dist/index.d.ts +11 -9
- package/dist/plugin/extend.js +78 -78
- package/dist/plugin/fontFaces.js +172 -172
- package/dist/plugin/general.js +12 -12
- package/dist/plugin/pluginDev.cjs +5 -5
- package/dist/plugin/pluginNext.cjs +5 -5
- package/dist/plugin/pluginNextTurbo.cjs +5 -5
- package/dist/plugin/pluginVite.cjs +5 -5
- package/dist/plugin/template.js +31 -31
- package/dist/plugin/typographies.js +152 -152
- package/dist/plugin/varsTheme.js +79 -79
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
lecom-ui
|
|
1
|
+
lecom-ui
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { ChevronRight } from 'lucide-react';
|
|
6
|
+
|
|
7
|
+
const collapseTriggerVariants = cva(
|
|
8
|
+
"flex items-center justify-between w-full transition-all text-left outline-none data-[state=open]:font-semibold",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
size: {
|
|
12
|
+
small: "text-sm py-1.5 px-4 min-h-8",
|
|
13
|
+
medium: "text-base py-2.5 px-4 min-h-10",
|
|
14
|
+
large: "text-lg py-3 px-4 min-h-12"
|
|
15
|
+
},
|
|
16
|
+
ghost: {
|
|
17
|
+
true: "bg-transparent border-none",
|
|
18
|
+
false: "border-t-none border-grey-400"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
size: "large",
|
|
23
|
+
ghost: false
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
const CollapseRoot = AccordionPrimitive.Root;
|
|
28
|
+
const CollapseItem = AccordionPrimitive.Item;
|
|
29
|
+
const CollapsePanel = React.forwardRef(
|
|
30
|
+
({
|
|
31
|
+
header,
|
|
32
|
+
children,
|
|
33
|
+
extra,
|
|
34
|
+
expandIconPosition = "start",
|
|
35
|
+
size = "large",
|
|
36
|
+
ghost = false,
|
|
37
|
+
disabled = false,
|
|
38
|
+
className,
|
|
39
|
+
...props
|
|
40
|
+
}, ref) => /* @__PURE__ */ React.createElement(
|
|
41
|
+
CollapseItem,
|
|
42
|
+
{
|
|
43
|
+
ref,
|
|
44
|
+
...props,
|
|
45
|
+
className: cn(
|
|
46
|
+
"group w-full",
|
|
47
|
+
disabled && "pointer-events-none opacity-50",
|
|
48
|
+
className
|
|
49
|
+
)
|
|
50
|
+
},
|
|
51
|
+
/* @__PURE__ */ React.createElement(AccordionPrimitive.Header, { asChild: true }, /* @__PURE__ */ React.createElement(
|
|
52
|
+
AccordionPrimitive.Trigger,
|
|
53
|
+
{
|
|
54
|
+
disabled,
|
|
55
|
+
className: cn(
|
|
56
|
+
collapseTriggerVariants({ size, ghost }),
|
|
57
|
+
"flex gap-2 items-center text-left font-normal"
|
|
58
|
+
)
|
|
59
|
+
},
|
|
60
|
+
/* @__PURE__ */ React.createElement(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
className: cn(
|
|
64
|
+
"flex flex-1 items-center justify-between gap-4 w-full",
|
|
65
|
+
expandIconPosition === "end" ? "flex-row-reverse" : ""
|
|
66
|
+
)
|
|
67
|
+
},
|
|
68
|
+
/* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 truncate" }, /* @__PURE__ */ React.createElement(
|
|
69
|
+
"span",
|
|
70
|
+
{
|
|
71
|
+
className: "flex items-center justify-center flex-shrink-0 min-w-4 min-h-4 transition-transform duration-300 group-data-[state=open]:rotate-90 text-grey-700 text-lg select-none font-normal"
|
|
72
|
+
},
|
|
73
|
+
/* @__PURE__ */ React.createElement(ChevronRight, { className: "size-4" })
|
|
74
|
+
), /* @__PURE__ */ React.createElement("span", { className: "font-normal" }, header)),
|
|
75
|
+
extra && /* @__PURE__ */ React.createElement("div", { className: "text-sm text-grey-500" }, extra)
|
|
76
|
+
)
|
|
77
|
+
)),
|
|
78
|
+
/* @__PURE__ */ React.createElement(
|
|
79
|
+
AccordionPrimitive.Content,
|
|
80
|
+
{
|
|
81
|
+
className: cn(
|
|
82
|
+
"overflow-hidden data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up"
|
|
83
|
+
)
|
|
84
|
+
},
|
|
85
|
+
/* @__PURE__ */ React.createElement("div", { className: "text-sm text-grey-800 pt-2 pb-4 px-4" }, children)
|
|
86
|
+
)
|
|
87
|
+
)
|
|
88
|
+
);
|
|
89
|
+
CollapsePanel.displayName = "CollapsePanel";
|
|
90
|
+
const Collapse = Object.assign(CollapseRoot, {
|
|
91
|
+
Panel: CollapsePanel
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
export { Collapse, collapseTriggerVariants };
|
|
@@ -22,19 +22,21 @@ const SEARCH_INPUT_CLASSES = {
|
|
|
22
22
|
large: "[&_[cmdk-input]]:h-9 [&_[cmdk-input]]:body-large-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4"
|
|
23
23
|
};
|
|
24
24
|
const isComboboxGroup = (item) => "options" in item && Array.isArray(item.options);
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
25
|
+
const normalize = (s) => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim();
|
|
26
|
+
const matchesSearch = (text, searchTerm) => normalize(text).includes(normalize(searchTerm));
|
|
27
|
+
const filterOption = (option, search) => matchesSearch(option.label, search) || matchesSearch(option.value, search);
|
|
28
|
+
const filterComboboxOptions = (opts, search) => {
|
|
29
|
+
const normalizedSearch = normalize(search);
|
|
30
|
+
if (!normalizedSearch) return opts;
|
|
29
31
|
return opts.reduce((acc, item) => {
|
|
30
32
|
if (isComboboxGroup(item)) {
|
|
31
33
|
const filteredOptions = item.options.filter(
|
|
32
|
-
(opt) => filterOption(opt,
|
|
34
|
+
(opt) => filterOption(opt, normalizedSearch)
|
|
33
35
|
);
|
|
34
36
|
if (filteredOptions.length > 0) {
|
|
35
37
|
acc.push({ ...item, options: filteredOptions });
|
|
36
38
|
}
|
|
37
|
-
} else if (filterOption(item,
|
|
39
|
+
} else if (filterOption(item, normalizedSearch)) {
|
|
38
40
|
acc.push(item);
|
|
39
41
|
}
|
|
40
42
|
return acc;
|
|
@@ -258,10 +260,8 @@ function Combobox({
|
|
|
258
260
|
}) {
|
|
259
261
|
const [open, setOpen] = React.useState(false);
|
|
260
262
|
const [search, setSearch] = React.useState("");
|
|
261
|
-
React.useRef(null);
|
|
262
|
-
const [listHeight, setListHeight] = React.useState(176);
|
|
263
263
|
const filteredOptions = React.useMemo(
|
|
264
|
-
() => !search ? options : filterComboboxOptions(options, search
|
|
264
|
+
() => !search ? options : filterComboboxOptions(options, search),
|
|
265
265
|
[options, search]
|
|
266
266
|
);
|
|
267
267
|
const selectedOption = React.useMemo(
|
|
@@ -297,7 +297,8 @@ function Combobox({
|
|
|
297
297
|
className: cn(
|
|
298
298
|
"w-[var(--radix-popover-trigger-width)] pt-0 px-1 pb-1",
|
|
299
299
|
contentClassName
|
|
300
|
-
)
|
|
300
|
+
),
|
|
301
|
+
onWheel: (e) => e.stopPropagation()
|
|
301
302
|
},
|
|
302
303
|
/* @__PURE__ */ React.createElement(Command, { shouldFilter: false, className: SEARCH_INPUT_CLASSES[size] }, showSearch && /* @__PURE__ */ React.createElement(
|
|
303
304
|
CommandInput,
|
|
@@ -309,9 +310,9 @@ function Combobox({
|
|
|
309
310
|
), /* @__PURE__ */ React.createElement(
|
|
310
311
|
CommandList,
|
|
311
312
|
{
|
|
313
|
+
key: search,
|
|
312
314
|
className: cn(
|
|
313
315
|
"max-h-44 overflow-y-auto overflow-x-hidden",
|
|
314
|
-
"scrollbar-thin scrollbar-thumb-grey-300 scrollbar-track-transparent",
|
|
315
316
|
"[&::-webkit-scrollbar]:w-1.5",
|
|
316
317
|
"[&::-webkit-scrollbar-track]:bg-transparent",
|
|
317
318
|
"[&::-webkit-scrollbar-thumb]:bg-grey-300",
|
|
@@ -32,10 +32,7 @@ const CommandList = React.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
32
32
|
Command$1.List,
|
|
33
33
|
{
|
|
34
34
|
ref,
|
|
35
|
-
className: cn(
|
|
36
|
-
"max-h-[300px] h-full overflow-y-auto overflow-x-hidden",
|
|
37
|
-
className
|
|
38
|
-
),
|
|
35
|
+
className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className),
|
|
39
36
|
...props
|
|
40
37
|
}
|
|
41
38
|
));
|
|
@@ -54,7 +51,7 @@ const CommandGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
54
51
|
{
|
|
55
52
|
ref,
|
|
56
53
|
className: cn(
|
|
57
|
-
"p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
54
|
+
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
58
55
|
className
|
|
59
56
|
),
|
|
60
57
|
...props
|
|
@@ -3,7 +3,7 @@ import { cn } from '../../lib/utils.js';
|
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
const inputVariants = cva(
|
|
6
|
-
`flex h-8 w-full rounded-
|
|
6
|
+
`flex h-8 w-full rounded-sm border border-grey-400 bg-background px-3 py-2
|
|
7
7
|
placeholder:text-grey-500 outline-none
|
|
8
8
|
hover:border-grey-500 focus:bg-background focus:border-grey-400 focus:ring-grey-600 focus:ring-opacity-15 focus:ring-4
|
|
9
9
|
disabled:cursor-not-allowed disabled:bg-grey-100 disabled:border-grey-400
|
|
@@ -16,13 +16,13 @@ const inputVariants = cva(
|
|
|
16
16
|
borderless: "border-none bg-transparent focus:bg-transparent focus:ring-0"
|
|
17
17
|
},
|
|
18
18
|
size: {
|
|
19
|
-
small: "h-
|
|
20
|
-
default: "h-
|
|
21
|
-
large: "h-
|
|
19
|
+
small: "h-8 body-small-400 px-3 py-0 placeholder:body-small-400",
|
|
20
|
+
default: "h-10 body-medium-400 px-3 py-2 placeholder:body-medium-400",
|
|
21
|
+
large: "h-12 body-large-400 px-3 py-2 placeholder:body-large-400"
|
|
22
22
|
},
|
|
23
23
|
radius: {
|
|
24
24
|
small: "rounded-sm",
|
|
25
|
-
default: "rounded-
|
|
25
|
+
default: "rounded-sm",
|
|
26
26
|
large: "rounded-3xl",
|
|
27
27
|
full: "rounded-full"
|
|
28
28
|
}
|
|
@@ -9,22 +9,28 @@ const NumberControl = ({
|
|
|
9
9
|
label,
|
|
10
10
|
value,
|
|
11
11
|
onChange,
|
|
12
|
-
placeholder
|
|
12
|
+
placeholder,
|
|
13
13
|
required = false,
|
|
14
|
-
min
|
|
14
|
+
min,
|
|
15
|
+
max,
|
|
16
|
+
maxDigits,
|
|
15
17
|
className = "",
|
|
16
18
|
labelClassName = "",
|
|
17
19
|
info = false,
|
|
18
20
|
labelPosition = "top"
|
|
19
21
|
}) => {
|
|
22
|
+
const defaultPlaceholder = maxDigits ? "0".repeat(maxDigits) : "0";
|
|
23
|
+
const finalPlaceholder = placeholder ?? defaultPlaceholder;
|
|
20
24
|
const handleIncrement = () => {
|
|
21
|
-
const current = parseInt(value, 10) || 0;
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
const current = typeof value === "number" ? value : parseInt(value, 10) || 0;
|
|
26
|
+
if (max === void 0 || current < max) {
|
|
27
|
+
const newValue = (current + 1).toString();
|
|
28
|
+
onChange(newValue);
|
|
29
|
+
}
|
|
24
30
|
};
|
|
25
31
|
const handleDecrement = () => {
|
|
26
|
-
const current = parseInt(value, 10) || 0;
|
|
27
|
-
if (current > min) {
|
|
32
|
+
const current = typeof value === "number" ? value : parseInt(value, 10) || 0;
|
|
33
|
+
if (min === void 0 || current > min) {
|
|
28
34
|
const newValue = (current - 1).toString();
|
|
29
35
|
onChange(newValue);
|
|
30
36
|
}
|
|
@@ -35,8 +41,13 @@ const NumberControl = ({
|
|
|
35
41
|
onChange("");
|
|
36
42
|
return;
|
|
37
43
|
}
|
|
44
|
+
if (maxDigits && numbersOnly.length > maxDigits) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
38
47
|
const numValue = parseInt(numbersOnly, 10);
|
|
39
|
-
|
|
48
|
+
const isAboveMin = min === void 0 || numValue >= min;
|
|
49
|
+
const isBelowMax = max === void 0 || numValue <= max;
|
|
50
|
+
if (isAboveMin && isBelowMax) {
|
|
40
51
|
onChange(numbersOnly);
|
|
41
52
|
}
|
|
42
53
|
};
|
|
@@ -58,7 +69,7 @@ const NumberControl = ({
|
|
|
58
69
|
onChange: (e) => handleInputChange(e.target.value),
|
|
59
70
|
className: "text-center flex-1 px-10 w-full",
|
|
60
71
|
containerClassName: "w-full",
|
|
61
|
-
placeholder,
|
|
72
|
+
placeholder: finalPlaceholder,
|
|
62
73
|
prefixInset: /* @__PURE__ */ React__default.createElement(
|
|
63
74
|
Minus,
|
|
64
75
|
{
|
package/dist/index.d.ts
CHANGED
|
@@ -757,8 +757,8 @@ interface HeaderProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<
|
|
|
757
757
|
|
|
758
758
|
declare const inputVariants: (props?: ({
|
|
759
759
|
variant?: "default" | "filled" | "borderless" | null | undefined;
|
|
760
|
-
size?: "
|
|
761
|
-
radius?: "
|
|
760
|
+
size?: "default" | "small" | "large" | null | undefined;
|
|
761
|
+
radius?: "default" | "small" | "large" | "full" | null | undefined;
|
|
762
762
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
763
763
|
interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, 'size' | 'sufix' | 'prefix'>, VariantProps<typeof inputVariants> {
|
|
764
764
|
sufix?: React$1.ReactNode;
|
|
@@ -939,17 +939,19 @@ declare function useNotificationToast(): {
|
|
|
939
939
|
|
|
940
940
|
interface NumberControlProps {
|
|
941
941
|
label: string;
|
|
942
|
-
value: string;
|
|
942
|
+
value: string | number;
|
|
943
943
|
onChange: (value: string) => void;
|
|
944
944
|
placeholder?: string;
|
|
945
945
|
required?: boolean;
|
|
946
946
|
min?: number;
|
|
947
|
+
max?: number;
|
|
948
|
+
maxDigits?: number;
|
|
947
949
|
className?: string;
|
|
948
950
|
labelClassName?: string;
|
|
949
951
|
info?: boolean;
|
|
950
952
|
labelPosition?: 'top' | 'bottom';
|
|
951
953
|
}
|
|
952
|
-
declare const NumberControl: ({ label, value, onChange, placeholder, required, min, className, labelClassName, info, labelPosition, }: NumberControlProps) => React__default.JSX.Element;
|
|
954
|
+
declare const NumberControl: ({ label, value, onChange, placeholder, required, min, max, maxDigits, className, labelClassName, info, labelPosition, }: NumberControlProps) => React__default.JSX.Element;
|
|
953
955
|
|
|
954
956
|
declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
|
|
955
957
|
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
@@ -959,7 +961,7 @@ declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimi
|
|
|
959
961
|
declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
960
962
|
|
|
961
963
|
declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
|
|
962
|
-
declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement |
|
|
964
|
+
declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLHeadingElement | HTMLParagraphElement | HTMLLabelElement | HTMLInputElement | HTMLUListElement | HTMLObjectElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLFormElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLImageElement | HTMLLegendElement | HTMLLinkElement | HTMLMapElement | HTMLMenuElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLPictureElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSelectElement | HTMLSlotElement | HTMLSourceElement | HTMLStyleElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTitleElement | HTMLTableRowElement | HTMLTrackElement | HTMLVideoElement>, "id" | "onResize"> & {
|
|
963
965
|
className?: string;
|
|
964
966
|
collapsedSize?: number | undefined;
|
|
965
967
|
collapsible?: boolean | undefined;
|
|
@@ -1125,9 +1127,9 @@ declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.
|
|
|
1125
1127
|
|
|
1126
1128
|
declare const textareaVariants: (props?: ({
|
|
1127
1129
|
variant?: "default" | "filled" | "borderless" | null | undefined;
|
|
1128
|
-
size?: "
|
|
1129
|
-
radius?: "
|
|
1130
|
-
resize?: "
|
|
1130
|
+
size?: "default" | "small" | "large" | null | undefined;
|
|
1131
|
+
radius?: "default" | "small" | "large" | "full" | null | undefined;
|
|
1132
|
+
resize?: "default" | "both" | "horizontal" | "vertical" | "vertical-limited" | null | undefined;
|
|
1131
1133
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1132
1134
|
interface TextareaProps extends React$1.ComponentProps<'textarea'>, VariantProps<typeof textareaVariants> {
|
|
1133
1135
|
}
|
|
@@ -1264,7 +1266,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
|
|
|
1264
1266
|
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
1265
1267
|
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1266
1268
|
declare const sheetVariants: (props?: ({
|
|
1267
|
-
side?: "
|
|
1269
|
+
side?: "left" | "right" | "top" | "bottom" | null | undefined;
|
|
1268
1270
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1269
1271
|
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
1270
1272
|
}
|
package/dist/plugin/extend.js
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
const extend = {
|
|
2
|
-
colors: {
|
|
3
|
-
background: 'hsl(var(--background))',
|
|
4
|
-
foreground: 'hsl(var(--foreground))',
|
|
5
|
-
card: {
|
|
6
|
-
DEFAULT: 'hsl(var(--card))',
|
|
7
|
-
foreground: 'hsl(var(--card-foreground))',
|
|
8
|
-
},
|
|
9
|
-
popover: {
|
|
10
|
-
DEFAULT: 'hsl(var(--popover))',
|
|
11
|
-
foreground: 'hsl(var(--popover-foreground))',
|
|
12
|
-
},
|
|
13
|
-
primary: {
|
|
14
|
-
DEFAULT: 'hsl(var(--primary))',
|
|
15
|
-
foreground: 'hsl(var(--primary-foreground))',
|
|
16
|
-
},
|
|
17
|
-
secondary: {
|
|
18
|
-
DEFAULT: 'hsl(var(--secondary))',
|
|
19
|
-
foreground: 'hsl(var(--secondary-foreground))',
|
|
20
|
-
},
|
|
21
|
-
muted: {
|
|
22
|
-
DEFAULT: 'hsl(var(--muted))',
|
|
23
|
-
foreground: 'hsl(var(--muted-foreground))',
|
|
24
|
-
},
|
|
25
|
-
accent: {
|
|
26
|
-
DEFAULT: 'hsl(var(--accent))',
|
|
27
|
-
foreground: 'hsl(var(--accent-foreground))',
|
|
28
|
-
},
|
|
29
|
-
destructive: {
|
|
30
|
-
DEFAULT: 'hsl(var(--destructive))',
|
|
31
|
-
foreground: 'hsl(var(--destructive-foreground))',
|
|
32
|
-
},
|
|
33
|
-
border: 'hsl(var(--border))',
|
|
34
|
-
input: 'hsl(var(--input))',
|
|
35
|
-
ring: 'hsl(var(--ring))',
|
|
36
|
-
chart: {
|
|
37
|
-
1: 'hsl(var(--chart-1))',
|
|
38
|
-
2: 'hsl(var(--chart-2))',
|
|
39
|
-
3: 'hsl(var(--chart-3))',
|
|
40
|
-
4: 'hsl(var(--chart-4))',
|
|
41
|
-
5: 'hsl(var(--chart-5))',
|
|
42
|
-
6: 'hsl(var(--chart-6))',
|
|
43
|
-
7: 'hsl(var(--chart-7))',
|
|
44
|
-
8: 'hsl(var(--chart-8))',
|
|
45
|
-
},
|
|
46
|
-
sidebar: {
|
|
47
|
-
DEFAULT: 'hsl(var(--sidebar-background))',
|
|
48
|
-
foreground: 'hsl(var(--sidebar-foreground))',
|
|
49
|
-
primary: 'hsl(var(--sidebar-primary))',
|
|
50
|
-
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
|
51
|
-
accent: 'hsl(var(--sidebar-accent))',
|
|
52
|
-
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
|
53
|
-
border: 'hsl(var(--sidebar-border))',
|
|
54
|
-
ring: 'hsl(var(--sidebar-ring))',
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
borderRadius: {
|
|
58
|
-
lg: 'var(--radius)',
|
|
59
|
-
md: 'calc(var(--radius) - 2px)',
|
|
60
|
-
sm: 'calc(var(--radius) - 4px)',
|
|
61
|
-
},
|
|
62
|
-
keyframes: {
|
|
63
|
-
'accordion-down': {
|
|
64
|
-
from: { height: '0' },
|
|
65
|
-
to: { height: 'var(--radix-accordion-content-height)' },
|
|
66
|
-
},
|
|
67
|
-
'accordion-up': {
|
|
68
|
-
from: { height: 'var(--radix-accordion-content-height)' },
|
|
69
|
-
to: { height: '0' },
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
animation: {
|
|
73
|
-
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
74
|
-
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export { extend };
|
|
1
|
+
const extend = {
|
|
2
|
+
colors: {
|
|
3
|
+
background: 'hsl(var(--background))',
|
|
4
|
+
foreground: 'hsl(var(--foreground))',
|
|
5
|
+
card: {
|
|
6
|
+
DEFAULT: 'hsl(var(--card))',
|
|
7
|
+
foreground: 'hsl(var(--card-foreground))',
|
|
8
|
+
},
|
|
9
|
+
popover: {
|
|
10
|
+
DEFAULT: 'hsl(var(--popover))',
|
|
11
|
+
foreground: 'hsl(var(--popover-foreground))',
|
|
12
|
+
},
|
|
13
|
+
primary: {
|
|
14
|
+
DEFAULT: 'hsl(var(--primary))',
|
|
15
|
+
foreground: 'hsl(var(--primary-foreground))',
|
|
16
|
+
},
|
|
17
|
+
secondary: {
|
|
18
|
+
DEFAULT: 'hsl(var(--secondary))',
|
|
19
|
+
foreground: 'hsl(var(--secondary-foreground))',
|
|
20
|
+
},
|
|
21
|
+
muted: {
|
|
22
|
+
DEFAULT: 'hsl(var(--muted))',
|
|
23
|
+
foreground: 'hsl(var(--muted-foreground))',
|
|
24
|
+
},
|
|
25
|
+
accent: {
|
|
26
|
+
DEFAULT: 'hsl(var(--accent))',
|
|
27
|
+
foreground: 'hsl(var(--accent-foreground))',
|
|
28
|
+
},
|
|
29
|
+
destructive: {
|
|
30
|
+
DEFAULT: 'hsl(var(--destructive))',
|
|
31
|
+
foreground: 'hsl(var(--destructive-foreground))',
|
|
32
|
+
},
|
|
33
|
+
border: 'hsl(var(--border))',
|
|
34
|
+
input: 'hsl(var(--input))',
|
|
35
|
+
ring: 'hsl(var(--ring))',
|
|
36
|
+
chart: {
|
|
37
|
+
1: 'hsl(var(--chart-1))',
|
|
38
|
+
2: 'hsl(var(--chart-2))',
|
|
39
|
+
3: 'hsl(var(--chart-3))',
|
|
40
|
+
4: 'hsl(var(--chart-4))',
|
|
41
|
+
5: 'hsl(var(--chart-5))',
|
|
42
|
+
6: 'hsl(var(--chart-6))',
|
|
43
|
+
7: 'hsl(var(--chart-7))',
|
|
44
|
+
8: 'hsl(var(--chart-8))',
|
|
45
|
+
},
|
|
46
|
+
sidebar: {
|
|
47
|
+
DEFAULT: 'hsl(var(--sidebar-background))',
|
|
48
|
+
foreground: 'hsl(var(--sidebar-foreground))',
|
|
49
|
+
primary: 'hsl(var(--sidebar-primary))',
|
|
50
|
+
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
|
51
|
+
accent: 'hsl(var(--sidebar-accent))',
|
|
52
|
+
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
|
53
|
+
border: 'hsl(var(--sidebar-border))',
|
|
54
|
+
ring: 'hsl(var(--sidebar-ring))',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
borderRadius: {
|
|
58
|
+
lg: 'var(--radius)',
|
|
59
|
+
md: 'calc(var(--radius) - 2px)',
|
|
60
|
+
sm: 'calc(var(--radius) - 4px)',
|
|
61
|
+
},
|
|
62
|
+
keyframes: {
|
|
63
|
+
'accordion-down': {
|
|
64
|
+
from: { height: '0' },
|
|
65
|
+
to: { height: 'var(--radix-accordion-content-height)' },
|
|
66
|
+
},
|
|
67
|
+
'accordion-up': {
|
|
68
|
+
from: { height: 'var(--radix-accordion-content-height)' },
|
|
69
|
+
to: { height: '0' },
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
animation: {
|
|
73
|
+
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
74
|
+
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export { extend };
|