@campxdev/react-blueprint 3.0.0-alpha.3 → 3.0.0-alpha.5
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/cjs/index.js +1 -1
- package/dist/cjs/types/src/components/Input/DatePicker/DatePicker.d.ts +2 -1
- package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +2 -1
- package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
- package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
- package/dist/cjs/types/src/components/Input/Select/Select.d.ts +2 -1
- package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
- package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
- package/dist/cjs/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +2 -1
- package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
- package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
- package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +2 -1
- package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
- package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
- package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +2 -0
- package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
- package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
- package/dist/esm/types/src/components/Input/Select/Select.d.ts +2 -1
- package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +2 -0
- package/dist/esm/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
- package/dist/esm/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
- package/dist/esm/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
- package/dist/index.d.ts +13 -6
- package/dist/styles.css +372 -4
- package/package.json +1 -1
- package/src/components/DataDisplay/DataTable/components/TableView.tsx +31 -5
- package/src/components/Feedback/Tooltip/Tooltip.tsx +17 -3
- package/src/components/Input/Button/ButtonLoader.css +2 -2
- package/src/components/Input/DatePicker/DatePicker.tsx +9 -188
- package/src/components/Input/DatePicker/components/DatePickerFilter.tsx +178 -0
- package/src/components/Input/DatePicker/components/DatePickerInput.tsx +192 -0
- package/src/components/Input/DateTimePicker/DateTimePicker.tsx +8 -294
- package/src/components/Input/DateTimePicker/components/DateTimePickerFilter.tsx +292 -0
- package/src/components/Input/DateTimePicker/components/DateTimePickerInput.tsx +297 -0
- package/src/components/Input/MultiSelect/MultiSelect.tsx +2 -0
- package/src/components/Input/MultiSelect/components/MultiSelectFilter.tsx +7 -3
- package/src/components/Input/MultiSelect/components/MultiSelectInput.tsx +8 -3
- package/src/components/Input/Select/Select.tsx +22 -12
- package/src/components/Input/SingleSelect/SingleSelect.tsx +2 -0
- package/src/components/Input/SingleSelect/components/SingleFilter.tsx +7 -3
- package/src/components/Input/SingleSelect/components/SingleInput.tsx +8 -3
- package/src/components/Layout/AppLayout/components/Sidebar/MenuItem.tsx +2 -2
- package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +1 -1
- package/src/components/Navigation/DialogButton/DialogButton.tsx +6 -1
- package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +1 -1
- package/src/components/Navigation/TabsContainer/TabsContainer.tsx +1 -1
- package/src/shadcn-components/DataDisplay/Dialog/Dialog.tsx +2 -2
- package/src/shadcn-components/Input/Popover/Popover.tsx +1 -1
- package/src/shadcn-components/Input/Select/Select.tsx +8 -8
- package/src/shadcn-components/Navigation/DropdownMenu/DropdownMenu.tsx +2 -2
- package/src/styles/globals.css +4 -2
- package/src/styles/index.css +5 -0
|
@@ -28,7 +28,8 @@ export type DatePickerProps = {
|
|
|
28
28
|
onClose?: () => void;
|
|
29
29
|
onBlur?: React.FocusEventHandler;
|
|
30
30
|
fullWidth?: boolean;
|
|
31
|
+
type?: 'input' | 'filter';
|
|
31
32
|
[key: string]: any;
|
|
32
33
|
};
|
|
33
|
-
export declare const DatePicker: ({
|
|
34
|
+
export declare const DatePicker: ({ type, ...props }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
34
35
|
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DatePickerProps } from '../DatePicker';
|
|
2
|
+
export declare const DatePickerFilter: ({ label, value, onChange, format, placeholder, shortcutsItems, openPickerIcon: Icon, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DatePickerProps } from '../DatePicker';
|
|
2
|
+
export declare const DatePickerInput: ({ label, name, value, onChange, required, format, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -30,7 +30,8 @@ export type DateTimePickerProps = {
|
|
|
30
30
|
onClose?: () => void;
|
|
31
31
|
onBlur?: React.FocusEventHandler;
|
|
32
32
|
fullWidth?: boolean;
|
|
33
|
+
type?: 'input' | 'filter';
|
|
33
34
|
[key: string]: any;
|
|
34
35
|
};
|
|
35
|
-
export declare const DateTimePicker: ({
|
|
36
|
+
export declare const DateTimePicker: ({ type, ...props }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
36
37
|
export {};
|
package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DateTimePickerProps } from '../DateTimePicker';
|
|
2
|
+
export declare const DateTimePickerFilter: ({ label, value, onChange, format, views, placeholder, shortcutsItems, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
|
package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DateTimePickerProps } from '../DateTimePicker';
|
|
2
|
+
export declare const DateTimePickerInput: ({ label, name, value, onChange, required, format, views, helperText, placeholder, shortcutsItems, openPickerIcon: Icon, containerProps, error, disabled, minDate, maxDate, disablePast, disableFuture, shouldDisableDate, shouldDisableMonth, shouldDisableYear, className, onOpen, onClose, fullWidth, type, ...rest }: DateTimePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -35,6 +35,8 @@ export type MultiSelectProps = {
|
|
|
35
35
|
type?: 'input' | 'filter';
|
|
36
36
|
disableClear?: boolean;
|
|
37
37
|
fullWidth?: boolean;
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
loading?: boolean;
|
|
38
40
|
};
|
|
39
41
|
export declare const MultiSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: MultiSelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
42
|
export default MultiSelect;
|
|
@@ -11,4 +11,4 @@ export type MultiSelectFilterProps = {
|
|
|
11
11
|
handleClearAll: () => void;
|
|
12
12
|
state: MultiSelectState;
|
|
13
13
|
} & MultiSelectProps;
|
|
14
|
-
export declare const MultiSelectFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, }: MultiSelectFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const MultiSelectFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, disabled, loading, }: MultiSelectFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -11,4 +11,4 @@ export type MultiSelectInputProps = {
|
|
|
11
11
|
handleClearAll: () => void;
|
|
12
12
|
state: MultiSelectState;
|
|
13
13
|
} & MultiSelectProps;
|
|
14
|
-
export declare const MultiSelectInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, fullWidth, }: MultiSelectInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const MultiSelectInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, handleSelectOption, handleClearAll, state, disableClear, fullWidth, disabled, loading, }: MultiSelectInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -12,5 +12,6 @@ export type SelectProps = {
|
|
|
12
12
|
className?: string;
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
fullWidth?: boolean;
|
|
15
|
+
loading?: boolean;
|
|
15
16
|
};
|
|
16
|
-
export declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, loading, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -35,6 +35,8 @@ export type SingleSelectProps = {
|
|
|
35
35
|
type?: 'input' | 'filter';
|
|
36
36
|
disableClear?: boolean;
|
|
37
37
|
fullWidth?: boolean;
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
loading?: boolean;
|
|
38
40
|
};
|
|
39
41
|
export declare const SingleSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: SingleSelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
42
|
export default SingleSelect;
|
|
@@ -9,4 +9,4 @@ export type SingleFilterProps = {
|
|
|
9
9
|
handleScroll: (event: any) => Promise<void>;
|
|
10
10
|
state: SingleSelectState;
|
|
11
11
|
} & SingleSelectProps;
|
|
12
|
-
export declare const SingleFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, state, disableClear, fullWidth, }: SingleFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const SingleFilter: ({ optionsApiEndPoint, label, name, value, onChange, searchDb, handleOpen, handleClose, handleScroll, state, disableClear, fullWidth, disabled, loading, }: SingleFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,4 +9,4 @@ export type SingleInputProps = {
|
|
|
9
9
|
handleScroll: (event: any) => Promise<void>;
|
|
10
10
|
state: SingleSelectState;
|
|
11
11
|
} & SingleSelectProps;
|
|
12
|
-
export declare const SingleInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, state, fullWidth, }: SingleInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const SingleInput: ({ optionsApiEndPoint, required, label, name, getValue, value, onChange, error, helperText, searchDb, handleOpen, handleClose, handleScroll, state, fullWidth, disabled, loading, }: SingleInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
declare const Select: React.FC<SelectPrimitive.SelectProps>;
|
|
4
4
|
declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
5
5
|
declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
|
|
@@ -10,4 +10,4 @@ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitiv
|
|
|
10
10
|
declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
12
|
declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
-
export { Select,
|
|
13
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
|
package/dist/index.d.ts
CHANGED
|
@@ -437,7 +437,7 @@ interface CardProps extends Omit<React$1.ComponentProps<typeof Card$1>, 'title'
|
|
|
437
437
|
declare const Card: React$1.ForwardRefExoticComponent<Omit<CardProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
438
438
|
|
|
439
439
|
declare const badgeVariants: (props?: ({
|
|
440
|
-
variant?: "default" | "
|
|
440
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
|
|
441
441
|
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
442
442
|
declare function Badge({ className, variant, asChild, ...props }: React$1.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & {
|
|
443
443
|
asChild?: boolean;
|
|
@@ -513,7 +513,7 @@ type DataTableProps<TData = any> = {
|
|
|
513
513
|
declare const DataTable: <TData extends Record<string, any> = any>(props: DataTableProps<TData>) => react_jsx_runtime.JSX.Element;
|
|
514
514
|
|
|
515
515
|
declare const typographyVariants: (props?: ({
|
|
516
|
-
variant?: "blockquote" | "h1" | "h2" | "h3" | "h4" | "p" | "small" | "list" | "
|
|
516
|
+
variant?: "blockquote" | "h1" | "h2" | "h3" | "h4" | "p" | "small" | "list" | "muted" | "inlineCode" | "lead" | "large" | null | undefined;
|
|
517
517
|
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
518
518
|
interface TypographyProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof typographyVariants> {
|
|
519
519
|
as?: React$1.ElementType;
|
|
@@ -615,7 +615,7 @@ type TooltipProps = {
|
|
|
615
615
|
declare const Tooltip: ({ children, title, placement, open, defaultOpen, onOpenChange, delayDuration, }: TooltipProps) => react_jsx_runtime.JSX.Element;
|
|
616
616
|
|
|
617
617
|
declare const buttonVariants: (props?: ({
|
|
618
|
-
variant?: "input" | "link" | "default" | "
|
|
618
|
+
variant?: "input" | "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
619
619
|
size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
|
|
620
620
|
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
|
|
621
621
|
|
|
@@ -658,9 +658,10 @@ type DatePickerProps = {
|
|
|
658
658
|
onClose?: () => void;
|
|
659
659
|
onBlur?: React.FocusEventHandler;
|
|
660
660
|
fullWidth?: boolean;
|
|
661
|
+
type?: 'input' | 'filter';
|
|
661
662
|
[key: string]: any;
|
|
662
663
|
};
|
|
663
|
-
declare const DatePicker: ({
|
|
664
|
+
declare const DatePicker: ({ type, ...props }: DatePickerProps) => react_jsx_runtime.JSX.Element;
|
|
664
665
|
|
|
665
666
|
type DateTimePickerViews = 'year' | 'month' | 'day' | 'hours' | 'minutes' | 'seconds';
|
|
666
667
|
type DateTimeFormat = 'yyyy' | 'MMMM yyyy' | 'MMM yyyy' | 'dd MMMM yyyy' | 'dd/MM/yyyy' | 'MM/dd/yyyy' | 'yyyy-MM-dd' | 'yyyy-MM-dd hh:mm a' | 'dd MMM yyyy hh:mm a' | 'dd/MM/yyyy hh:mm a' | 'yyyy-MM-dd hh:mm:ss a' | 'dd MMM yyyy hh:mm:ss a' | 'dd/MM/yyyy hh:mm:ss a' | 'hh:mm a' | 'hh:mm:ss a' | 'MMM dd, yyyy hh:mm a' | 'MMM dd, yyyy hh:mm:ss a' | 'EEE, MMM dd yyyy' | 'EEEE, MMMM dd, yyyy';
|
|
@@ -694,9 +695,10 @@ type DateTimePickerProps = {
|
|
|
694
695
|
onClose?: () => void;
|
|
695
696
|
onBlur?: React.FocusEventHandler;
|
|
696
697
|
fullWidth?: boolean;
|
|
698
|
+
type?: 'input' | 'filter';
|
|
697
699
|
[key: string]: any;
|
|
698
700
|
};
|
|
699
|
-
declare const DateTimePicker: ({
|
|
701
|
+
declare const DateTimePicker: ({ type, ...props }: DateTimePickerProps) => react_jsx_runtime.JSX.Element;
|
|
700
702
|
|
|
701
703
|
type FileUploadProps = {
|
|
702
704
|
label: string;
|
|
@@ -823,6 +825,8 @@ type MultiSelectProps = {
|
|
|
823
825
|
type?: 'input' | 'filter';
|
|
824
826
|
disableClear?: boolean;
|
|
825
827
|
fullWidth?: boolean;
|
|
828
|
+
disabled?: boolean;
|
|
829
|
+
loading?: boolean;
|
|
826
830
|
};
|
|
827
831
|
declare const MultiSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: MultiSelectProps) => react_jsx_runtime.JSX.Element;
|
|
828
832
|
|
|
@@ -902,8 +906,9 @@ type SelectProps = {
|
|
|
902
906
|
className?: string;
|
|
903
907
|
disabled?: boolean;
|
|
904
908
|
fullWidth?: boolean;
|
|
909
|
+
loading?: boolean;
|
|
905
910
|
};
|
|
906
|
-
declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, }: SelectProps) => react_jsx_runtime.JSX.Element;
|
|
911
|
+
declare const Select: ({ options, onChange, value, placeholder, className, defaultValue, disabled, fullWidth, loading, }: SelectProps) => react_jsx_runtime.JSX.Element;
|
|
907
912
|
|
|
908
913
|
type CheckboxProps = {
|
|
909
914
|
label: ReactNode;
|
|
@@ -953,6 +958,8 @@ type SingleSelectProps = {
|
|
|
953
958
|
type?: 'input' | 'filter';
|
|
954
959
|
disableClear?: boolean;
|
|
955
960
|
fullWidth?: boolean;
|
|
961
|
+
disabled?: boolean;
|
|
962
|
+
loading?: boolean;
|
|
956
963
|
};
|
|
957
964
|
declare const SingleSelect: ({ options, optionsApiEndPoint, optionsApiEndpointParams, externalAxios, getValue, value, onChange, dbValueProps, dbLabelProps, onOpen, onClose, type, ...restProps }: SingleSelectProps) => react_jsx_runtime.JSX.Element;
|
|
958
965
|
|
package/dist/styles.css
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap');
|
|
3
2
|
@layer properties;
|
|
4
3
|
@layer theme, base, components, utilities;
|
|
4
|
+
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap');
|
|
5
5
|
@layer theme {
|
|
6
6
|
:root, :host {
|
|
7
7
|
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
95
95
|
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
96
96
|
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
97
|
+
--animate-spin: spin 1s linear infinite;
|
|
97
98
|
--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
98
99
|
--aspect-video: 16 / 9;
|
|
99
100
|
--default-transition-duration: 150ms;
|
|
@@ -432,9 +433,6 @@
|
|
|
432
433
|
.z-\[1500\] {
|
|
433
434
|
z-index: 1500;
|
|
434
435
|
}
|
|
435
|
-
.z-\[2000\] {
|
|
436
|
-
z-index: 2000;
|
|
437
|
-
}
|
|
438
436
|
.z-\[9999\] {
|
|
439
437
|
z-index: 9999;
|
|
440
438
|
}
|
|
@@ -1061,6 +1059,9 @@
|
|
|
1061
1059
|
.animate-pulse {
|
|
1062
1060
|
animation: var(--animate-pulse);
|
|
1063
1061
|
}
|
|
1062
|
+
.animate-spin {
|
|
1063
|
+
animation: var(--animate-spin);
|
|
1064
|
+
}
|
|
1064
1065
|
.cursor-default {
|
|
1065
1066
|
cursor: default;
|
|
1066
1067
|
}
|
|
@@ -1649,6 +1650,9 @@
|
|
|
1649
1650
|
.py-6 {
|
|
1650
1651
|
padding-block: calc(var(--spacing) * 6);
|
|
1651
1652
|
}
|
|
1653
|
+
.py-8 {
|
|
1654
|
+
padding-block: calc(var(--spacing) * 8);
|
|
1655
|
+
}
|
|
1652
1656
|
.py-\[0\.2rem\] {
|
|
1653
1657
|
padding-block: 0.2rem;
|
|
1654
1658
|
}
|
|
@@ -1823,6 +1827,9 @@
|
|
|
1823
1827
|
.break-all {
|
|
1824
1828
|
word-break: break-all;
|
|
1825
1829
|
}
|
|
1830
|
+
.text-ellipsis {
|
|
1831
|
+
text-overflow: ellipsis;
|
|
1832
|
+
}
|
|
1826
1833
|
.whitespace-nowrap {
|
|
1827
1834
|
white-space: nowrap;
|
|
1828
1835
|
}
|
|
@@ -3880,6 +3887,7 @@
|
|
|
3880
3887
|
--yellow-background: oklch(0.82 0.166 94.2 / 0.2);
|
|
3881
3888
|
--default-background: oklch(0.978 0.004 233.756);
|
|
3882
3889
|
--input-background: oklch(0.953 0.002 264);
|
|
3890
|
+
--font-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
|
|
3883
3891
|
}
|
|
3884
3892
|
.dark {
|
|
3885
3893
|
--background: oklch(0.145 0 0);
|
|
@@ -3928,6 +3936,7 @@
|
|
|
3928
3936
|
--yellow-background: oklch(0.82 0.166 94.2 / 0.2);
|
|
3929
3937
|
--default-background: oklch(0.154 0.013 233.756);
|
|
3930
3938
|
--input-background: oklch(0.215 0.008 264);
|
|
3939
|
+
--font-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
|
|
3931
3940
|
}
|
|
3932
3941
|
@layer base {
|
|
3933
3942
|
* {
|
|
@@ -3944,6 +3953,7 @@
|
|
|
3944
3953
|
body {
|
|
3945
3954
|
height: 100%;
|
|
3946
3955
|
overflow: auto;
|
|
3956
|
+
-webkit-font-smoothing: antialiased;
|
|
3947
3957
|
background-color: var(--background);
|
|
3948
3958
|
font-family: var(--font-sans);
|
|
3949
3959
|
color: var(--foreground);
|
|
@@ -4045,6 +4055,359 @@
|
|
|
4045
4055
|
transform: scale(0.95);
|
|
4046
4056
|
}
|
|
4047
4057
|
}
|
|
4058
|
+
.react-joyride__tooltip {
|
|
4059
|
+
background-color: #ffffff !important;
|
|
4060
|
+
border-radius: 12px !important;
|
|
4061
|
+
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
|
|
4062
|
+
border: 1px solid #f3f4f6 !important;
|
|
4063
|
+
font-family: 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif !important;
|
|
4064
|
+
padding-top: 16px !important;
|
|
4065
|
+
}
|
|
4066
|
+
.react-joyride__tooltip div {
|
|
4067
|
+
text-align: left !important;
|
|
4068
|
+
}
|
|
4069
|
+
.react-joyride__tooltip > div:nth-child(1) div:nth-child(2) {
|
|
4070
|
+
padding: 0 !important;
|
|
4071
|
+
font-size: 14px !important;
|
|
4072
|
+
line-height: 1.5 !important;
|
|
4073
|
+
color: #4b5563 !important;
|
|
4074
|
+
}
|
|
4075
|
+
.react-joyride__tooltip button[data-action="skip"] {
|
|
4076
|
+
top: 16px !important;
|
|
4077
|
+
right: 16px !important;
|
|
4078
|
+
}
|
|
4079
|
+
.react-joyride__beacon {
|
|
4080
|
+
background-color: #3b82f6 !important;
|
|
4081
|
+
border: 3px solid #3b82f6 !important;
|
|
4082
|
+
border-radius: 50% !important;
|
|
4083
|
+
box-shadow: 0 0 0 6px rgba(59, 130, 246, 0.2) !important;
|
|
4084
|
+
}
|
|
4085
|
+
.react-joyride__beacon::before {
|
|
4086
|
+
background-color: #3b82f6 !important;
|
|
4087
|
+
animation: joyride-beacon-pulse 1.5s ease-in-out infinite !important;
|
|
4088
|
+
}
|
|
4089
|
+
.react-joyride__tooltip button[data-action="next"]:hover {
|
|
4090
|
+
background-color: #000000 !important;
|
|
4091
|
+
transform: translateY(-1px) !important;
|
|
4092
|
+
}
|
|
4093
|
+
.react-joyride__tooltip button[data-action="back"]:hover {
|
|
4094
|
+
background-color: #f9fafb !important;
|
|
4095
|
+
border-color: #d1d5db !important;
|
|
4096
|
+
}
|
|
4097
|
+
.react-joyride__tooltip button[data-action="skip"]:hover {
|
|
4098
|
+
background-color: #f3f4f6 !important;
|
|
4099
|
+
color: #374151 !important;
|
|
4100
|
+
}
|
|
4101
|
+
.react-joyride__tooltip .react-joyride__tooltip-footer {
|
|
4102
|
+
margin-top: 16px !important;
|
|
4103
|
+
padding-top: 16px !important;
|
|
4104
|
+
border-top: 1px solid #f3f4f6 !important;
|
|
4105
|
+
}
|
|
4106
|
+
.react-joyride__tooltip-arrow {
|
|
4107
|
+
filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.1)) !important;
|
|
4108
|
+
}
|
|
4109
|
+
@keyframes joyride-beacon-pulse {
|
|
4110
|
+
0% {
|
|
4111
|
+
transform: scale(1);
|
|
4112
|
+
opacity: 1;
|
|
4113
|
+
}
|
|
4114
|
+
50% {
|
|
4115
|
+
transform: scale(1.2);
|
|
4116
|
+
opacity: 0.7;
|
|
4117
|
+
}
|
|
4118
|
+
100% {
|
|
4119
|
+
transform: scale(1);
|
|
4120
|
+
opacity: 1;
|
|
4121
|
+
}
|
|
4122
|
+
}
|
|
4123
|
+
.buttonLoader {
|
|
4124
|
+
max-height: 40px;
|
|
4125
|
+
padding: 10px 20px;
|
|
4126
|
+
font-size: '14px';
|
|
4127
|
+
aspect-ratio: 2.5;
|
|
4128
|
+
--_g: no-repeat radial-gradient(circle, currentColor 48%, #0000);
|
|
4129
|
+
background: var(--_g), var(--_g), var(--_g), var(--_g);
|
|
4130
|
+
background-size: 15% 40%;
|
|
4131
|
+
animation: l44 1s infinite linear alternate;
|
|
4132
|
+
scale: 0.5;
|
|
4133
|
+
}
|
|
4134
|
+
@keyframes l44 {
|
|
4135
|
+
0%,
|
|
4136
|
+
5% {
|
|
4137
|
+
background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
|
|
4138
|
+
calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
|
|
4139
|
+
}
|
|
4140
|
+
12.5% {
|
|
4141
|
+
background-position: calc(0 * 100% / 3) 0, calc(1 * 100% / 3) 50%,
|
|
4142
|
+
calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
|
|
4143
|
+
}
|
|
4144
|
+
25% {
|
|
4145
|
+
background-position: calc(0 * 100% / 3) 0, calc(1 * 100% / 3) 0,
|
|
4146
|
+
calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
|
|
4147
|
+
}
|
|
4148
|
+
37.5% {
|
|
4149
|
+
background-position: calc(0 * 100% / 3) 100%, calc(1 * 100% / 3) 0,
|
|
4150
|
+
calc(2 * 100% / 3) 0, calc(3 * 100% / 3) 50%;
|
|
4151
|
+
}
|
|
4152
|
+
50% {
|
|
4153
|
+
background-position: calc(0 * 100% / 3) 100%, calc(1 * 100% / 3) 100%,
|
|
4154
|
+
calc(2 * 100% / 3) 0, calc(3 * 100% / 3) 0;
|
|
4155
|
+
}
|
|
4156
|
+
62.5% {
|
|
4157
|
+
background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 100%,
|
|
4158
|
+
calc(2 * 100% / 3) 100%, calc(3 * 100% / 3) 0;
|
|
4159
|
+
}
|
|
4160
|
+
75% {
|
|
4161
|
+
background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
|
|
4162
|
+
calc(2 * 100% / 3) 100%, calc(3 * 100% / 3) 100%;
|
|
4163
|
+
}
|
|
4164
|
+
87.5% {
|
|
4165
|
+
background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
|
|
4166
|
+
calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 100%;
|
|
4167
|
+
}
|
|
4168
|
+
95%,
|
|
4169
|
+
100% {
|
|
4170
|
+
background-position: calc(0 * 100% / 3) 50%, calc(1 * 100% / 3) 50%,
|
|
4171
|
+
calc(2 * 100% / 3) 50%, calc(3 * 100% / 3) 50%;
|
|
4172
|
+
}
|
|
4173
|
+
}
|
|
4174
|
+
.calendar-wrapper .fc {
|
|
4175
|
+
height: 100%;
|
|
4176
|
+
font-family: inherit;
|
|
4177
|
+
font-size: 0.875rem;
|
|
4178
|
+
}
|
|
4179
|
+
.calendar-wrapper .fc-header-toolbar {
|
|
4180
|
+
background-color: var(--background);
|
|
4181
|
+
padding: 1rem;
|
|
4182
|
+
margin: 0 !important;
|
|
4183
|
+
border-bottom: 1px solid var(--border);
|
|
4184
|
+
}
|
|
4185
|
+
.calendar-wrapper .fc-toolbar-chunk {
|
|
4186
|
+
display: flex;
|
|
4187
|
+
align-items: center;
|
|
4188
|
+
gap: 0.5rem;
|
|
4189
|
+
}
|
|
4190
|
+
.calendar-wrapper .fc-button-group {
|
|
4191
|
+
display: inline-flex;
|
|
4192
|
+
}
|
|
4193
|
+
.calendar-wrapper .fc-button {
|
|
4194
|
+
border: 1px solid var(--border);
|
|
4195
|
+
background-color: transparent;
|
|
4196
|
+
color: var(--foreground);
|
|
4197
|
+
font-size: 0.875rem;
|
|
4198
|
+
font-weight: 500;
|
|
4199
|
+
height: auto;
|
|
4200
|
+
padding: 0.25rem 1rem;
|
|
4201
|
+
border-radius: 0.375rem;
|
|
4202
|
+
cursor: pointer;
|
|
4203
|
+
text-transform: capitalize;
|
|
4204
|
+
}
|
|
4205
|
+
.calendar-wrapper .fc-button:hover {
|
|
4206
|
+
background-color: var(--muted);
|
|
4207
|
+
color: var(--primary);
|
|
4208
|
+
border: 1px solid var(--border);
|
|
4209
|
+
}
|
|
4210
|
+
.calendar-wrapper .fc-button:focus {
|
|
4211
|
+
box-shadow: none !important;
|
|
4212
|
+
}
|
|
4213
|
+
.calendar-wrapper .fc-button:disabled {
|
|
4214
|
+
opacity: 0.5;
|
|
4215
|
+
pointer-events: none;
|
|
4216
|
+
}
|
|
4217
|
+
.calendar-wrapper .fc-toolbar-title {
|
|
4218
|
+
color: var(--foreground);
|
|
4219
|
+
font-size: 1.25rem;
|
|
4220
|
+
font-weight: 600;
|
|
4221
|
+
margin: 0;
|
|
4222
|
+
}
|
|
4223
|
+
.calendar-wrapper .fc-col-header {
|
|
4224
|
+
background-color: var(--muted);
|
|
4225
|
+
border-bottom: 1px solid var(--border);
|
|
4226
|
+
}
|
|
4227
|
+
.calendar-wrapper .fc-col-header-cell {
|
|
4228
|
+
padding: 0.5rem;
|
|
4229
|
+
}
|
|
4230
|
+
.calendar-wrapper .fc-col-header-cell-cushion {
|
|
4231
|
+
color: var(--muted-foreground);
|
|
4232
|
+
font-weight: 600;
|
|
4233
|
+
text-decoration: none;
|
|
4234
|
+
font-size: 0.75rem;
|
|
4235
|
+
text-transform: uppercase;
|
|
4236
|
+
letter-spacing: 0.025em;
|
|
4237
|
+
}
|
|
4238
|
+
.calendar-wrapper .fc-daygrid-day {
|
|
4239
|
+
background-color: var(--background);
|
|
4240
|
+
border-color: var(--border);
|
|
4241
|
+
}
|
|
4242
|
+
.calendar-wrapper .fc-day-today {
|
|
4243
|
+
background-color: var(--primary) !important;
|
|
4244
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4245
|
+
background-color: color-mix(
|
|
4246
|
+
in oklch,
|
|
4247
|
+
var(--primary) 5%,
|
|
4248
|
+
transparent
|
|
4249
|
+
) !important;
|
|
4250
|
+
}
|
|
4251
|
+
}
|
|
4252
|
+
.calendar-wrapper .fc-daygrid-day-number {
|
|
4253
|
+
color: var(--foreground);
|
|
4254
|
+
text-decoration: none;
|
|
4255
|
+
padding: 0.25rem 0.5rem;
|
|
4256
|
+
font-size: 0.875rem;
|
|
4257
|
+
transition: all 0.2s;
|
|
4258
|
+
}
|
|
4259
|
+
.calendar-wrapper .fc-daygrid-day-number:hover {
|
|
4260
|
+
background-color: var(--muted);
|
|
4261
|
+
border-radius: 0.25rem;
|
|
4262
|
+
}
|
|
4263
|
+
.calendar-wrapper .fc-daygrid-day-top {
|
|
4264
|
+
display: flex;
|
|
4265
|
+
justify-content: flex-end;
|
|
4266
|
+
padding: 0.25rem;
|
|
4267
|
+
}
|
|
4268
|
+
.calendar-wrapper .fc-event {
|
|
4269
|
+
background-color: var(--primary);
|
|
4270
|
+
border-color: var(--primary);
|
|
4271
|
+
color: var(--primary-foreground);
|
|
4272
|
+
border-radius: 0.25rem;
|
|
4273
|
+
border: none;
|
|
4274
|
+
transition: all 0.2s;
|
|
4275
|
+
cursor: pointer;
|
|
4276
|
+
}
|
|
4277
|
+
.calendar-wrapper .fc-event:hover {
|
|
4278
|
+
background-color: var(--primary);
|
|
4279
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4280
|
+
background-color: color-mix(in oklch, var(--primary) 90%, transparent);
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4283
|
+
.calendar-wrapper .fc-event-title,
|
|
4284
|
+
.calendar-wrapper .fc-event-time {
|
|
4285
|
+
padding: 0.125rem 0.25rem;
|
|
4286
|
+
}
|
|
4287
|
+
.calendar-wrapper .fc-timegrid-slot {
|
|
4288
|
+
border-color: var(--border);
|
|
4289
|
+
}
|
|
4290
|
+
.calendar-wrapper .fc-timegrid-col.fc-day-today {
|
|
4291
|
+
background-color: var(--primary);
|
|
4292
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4293
|
+
background-color: color-mix(in oklch, var(--primary) 3%, transparent);
|
|
4294
|
+
}
|
|
4295
|
+
}
|
|
4296
|
+
.calendar-wrapper .fc-timegrid-axis {
|
|
4297
|
+
color: var(--muted-foreground);
|
|
4298
|
+
}
|
|
4299
|
+
.calendar-wrapper .fc-timegrid-slot-label {
|
|
4300
|
+
color: var(--muted-foreground);
|
|
4301
|
+
font-size: 0.75rem;
|
|
4302
|
+
}
|
|
4303
|
+
.calendar-wrapper .fc-list {
|
|
4304
|
+
border-color: var(--border);
|
|
4305
|
+
}
|
|
4306
|
+
.calendar-wrapper .fc-list-day {
|
|
4307
|
+
background-color: var(--muted);
|
|
4308
|
+
}
|
|
4309
|
+
.calendar-wrapper .fc-list-day-cushion {
|
|
4310
|
+
color: var(--foreground);
|
|
4311
|
+
font-weight: 600;
|
|
4312
|
+
}
|
|
4313
|
+
.calendar-wrapper .fc-list-event {
|
|
4314
|
+
border-color: var(--border);
|
|
4315
|
+
transition: all 0.2s;
|
|
4316
|
+
}
|
|
4317
|
+
.calendar-wrapper .fc-list-event:hover {
|
|
4318
|
+
background-color: var(--muted);
|
|
4319
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4320
|
+
background-color: color-mix(in oklch, var(--muted) 50%, transparent);
|
|
4321
|
+
}
|
|
4322
|
+
}
|
|
4323
|
+
.calendar-wrapper .fc-list-event-title {
|
|
4324
|
+
color: var(--foreground);
|
|
4325
|
+
}
|
|
4326
|
+
.calendar-wrapper .fc-list-event-time {
|
|
4327
|
+
color: var(--muted-foreground);
|
|
4328
|
+
}
|
|
4329
|
+
.calendar-wrapper .fc-more-link {
|
|
4330
|
+
color: var(--primary);
|
|
4331
|
+
font-weight: 500;
|
|
4332
|
+
}
|
|
4333
|
+
.calendar-wrapper .fc-more-link:hover {
|
|
4334
|
+
color: var(--primary);
|
|
4335
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4336
|
+
color: color-mix(in oklch, var(--primary) 90%, transparent);
|
|
4337
|
+
}
|
|
4338
|
+
}
|
|
4339
|
+
.calendar-wrapper .fc-popover {
|
|
4340
|
+
background-color: var(--background);
|
|
4341
|
+
border: 1px solid var(--border);
|
|
4342
|
+
border-radius: 0.5rem;
|
|
4343
|
+
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
4344
|
+
}
|
|
4345
|
+
.calendar-wrapper .fc-popover-header {
|
|
4346
|
+
background-color: var(--muted);
|
|
4347
|
+
border-bottom: 1px solid var(--border);
|
|
4348
|
+
padding: 0.5rem 0.75rem;
|
|
4349
|
+
}
|
|
4350
|
+
.calendar-wrapper .fc-popover-title {
|
|
4351
|
+
color: var(--foreground);
|
|
4352
|
+
font-weight: 600;
|
|
4353
|
+
}
|
|
4354
|
+
.calendar-wrapper .fc-popover-close {
|
|
4355
|
+
color: var(--muted-foreground);
|
|
4356
|
+
cursor: pointer;
|
|
4357
|
+
}
|
|
4358
|
+
.calendar-wrapper .fc-popover-close:hover {
|
|
4359
|
+
color: var(--foreground);
|
|
4360
|
+
}
|
|
4361
|
+
.calendar-wrapper .fc-scroller::-webkit-scrollbar {
|
|
4362
|
+
width: 6px;
|
|
4363
|
+
height: 6px;
|
|
4364
|
+
}
|
|
4365
|
+
.calendar-wrapper .fc-scroller::-webkit-scrollbar-track {
|
|
4366
|
+
background-color: var(--muted);
|
|
4367
|
+
border-radius: 3px;
|
|
4368
|
+
}
|
|
4369
|
+
.calendar-wrapper .fc-scroller::-webkit-scrollbar-thumb {
|
|
4370
|
+
background-color: var(--border);
|
|
4371
|
+
border-radius: 3px;
|
|
4372
|
+
}
|
|
4373
|
+
.calendar-wrapper .fc-scroller::-webkit-scrollbar-thumb:hover {
|
|
4374
|
+
background-color: var(--muted-foreground);
|
|
4375
|
+
}
|
|
4376
|
+
.calendar-wrapper .fc-theme-standard td,
|
|
4377
|
+
.calendar-wrapper .fc-theme-standard th {
|
|
4378
|
+
border-color: var(--border);
|
|
4379
|
+
}
|
|
4380
|
+
.calendar-wrapper .fc-theme-standard .fc-scrollgrid {
|
|
4381
|
+
border-color: var(--border);
|
|
4382
|
+
}
|
|
4383
|
+
.calendar-wrapper .fc-timegrid-now-indicator-line {
|
|
4384
|
+
border-color: var(--destructive);
|
|
4385
|
+
}
|
|
4386
|
+
.calendar-wrapper .fc-timegrid-now-indicator-arrow {
|
|
4387
|
+
border-color: var(--destructive);
|
|
4388
|
+
}
|
|
4389
|
+
@media (max-width: 768px) {
|
|
4390
|
+
.calendar-wrapper .fc-header-toolbar {
|
|
4391
|
+
flex-direction: column;
|
|
4392
|
+
gap: 0.5rem;
|
|
4393
|
+
}
|
|
4394
|
+
.calendar-wrapper .fc-toolbar-chunk {
|
|
4395
|
+
width: 100%;
|
|
4396
|
+
justify-content: center;
|
|
4397
|
+
}
|
|
4398
|
+
.calendar-wrapper .fc-button {
|
|
4399
|
+
padding: 0.25rem 0.5rem;
|
|
4400
|
+
font-size: 0.75rem;
|
|
4401
|
+
}
|
|
4402
|
+
}
|
|
4403
|
+
@media (max-width: 640px) {
|
|
4404
|
+
.calendar-wrapper .fc-event {
|
|
4405
|
+
font-size: 0.7rem;
|
|
4406
|
+
}
|
|
4407
|
+
.calendar-wrapper .fc-daygrid-day-number {
|
|
4408
|
+
font-size: 0.75rem;
|
|
4409
|
+
}
|
|
4410
|
+
}
|
|
4048
4411
|
@property --tw-translate-x {
|
|
4049
4412
|
syntax: "*";
|
|
4050
4413
|
inherits: false;
|
|
@@ -4305,6 +4668,11 @@
|
|
|
4305
4668
|
initial-value: "";
|
|
4306
4669
|
inherits: false;
|
|
4307
4670
|
}
|
|
4671
|
+
@keyframes spin {
|
|
4672
|
+
to {
|
|
4673
|
+
transform: rotate(360deg);
|
|
4674
|
+
}
|
|
4675
|
+
}
|
|
4308
4676
|
@keyframes pulse {
|
|
4309
4677
|
50% {
|
|
4310
4678
|
opacity: 0.5;
|