@justin_evo/evo-ui 1.2.0 → 1.2.1
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/LICENSE +21 -21
- package/README.md +70 -70
- package/dist/declarations.d.ts +6 -6
- package/package.json +52 -52
- package/src/Alert/Alert.tsx +49 -49
- package/src/AutoComplete/AutoComplete.tsx +810 -810
- package/src/Badge/Badge.tsx +53 -53
- package/src/Breadcrumb/Breadcrumb.tsx +53 -53
- package/src/Button/Button.tsx +125 -125
- package/src/Card/Card.tsx +257 -257
- package/src/Checkbox/Checkbox.tsx +59 -59
- package/src/CommandPalette/CommandPalette.tsx +185 -185
- package/src/Container/Container.tsx +31 -31
- package/src/Divider/Divider.tsx +31 -31
- package/src/Form/Form.tsx +185 -185
- package/src/Grid/Grid.tsx +66 -66
- package/src/ImageCropper/ImageCropper.tsx +911 -911
- package/src/Input/Input.tsx +74 -74
- package/src/Modal/Modal.tsx +77 -77
- package/src/Nav/Nav.tsx +708 -708
- package/src/Notification/Notification.tsx +1503 -1503
- package/src/Pagination/Pagination.tsx +76 -76
- package/src/Radio/Radio.tsx +69 -69
- package/src/RichTextArea/RichTextArea.tsx +886 -886
- package/src/Select/Select.tsx +515 -515
- package/src/Skeleton/Skeleton.tsx +70 -70
- package/src/Stack/Stack.tsx +52 -52
- package/src/Table/Table.tsx +335 -335
- package/src/Tabs/Tabs.tsx +90 -90
- package/src/Theme/ThemeProvider.tsx +253 -253
- package/src/Theme/ThemeToggle.tsx +79 -79
- package/src/Toggle/Toggle.tsx +48 -48
- package/src/Tooltip/Tooltip.tsx +38 -38
- package/src/TopNav/TopNav.tsx +1163 -1163
- package/src/TreeSelect/TreeSelect.tsx +825 -825
- package/src/css/alert.module.scss +93 -93
- package/src/css/autocomplete.module.scss +416 -416
- package/src/css/badge.module.scss +82 -82
- package/src/css/base/_color.scss +159 -159
- package/src/css/base/_theme.scss +237 -237
- package/src/css/base/_variables.scss +161 -161
- package/src/css/breadcrumb.module.scss +50 -50
- package/src/css/button.module.scss +385 -385
- package/src/css/card.module.scss +217 -217
- package/src/css/checkbox.module.scss +123 -123
- package/src/css/commandpalette.module.scss +211 -211
- package/src/css/container.module.scss +18 -18
- package/src/css/divider.module.scss +41 -41
- package/src/css/form.module.scss +245 -245
- package/src/css/imagecropper.module.scss +397 -397
- package/src/css/input.module.scss +89 -89
- package/src/css/modal.module.scss +105 -105
- package/src/css/nav.module.scss +494 -494
- package/src/css/notification.module.scss +691 -691
- package/src/css/pagination.module.scss +63 -63
- package/src/css/radio.module.scss +89 -89
- package/src/css/richtextarea.module.scss +307 -307
- package/src/css/select.module.scss +525 -525
- package/src/css/skeleton.module.scss +30 -30
- package/src/css/table.module.scss +386 -386
- package/src/css/tabs.module.scss +63 -63
- package/src/css/theme-toggle.module.scss +83 -83
- package/src/css/toggle.module.scss +54 -54
- package/src/css/tooltip.module.scss +97 -97
- package/src/css/topnav.module.scss +568 -568
- package/src/css/treeselect.module.scss +558 -558
- package/src/css/utilities/_borders.scss +111 -111
- package/src/css/utilities/_colors.scss +66 -66
- package/src/css/utilities/_effects.scss +216 -216
- package/src/css/utilities/_layout.scss +181 -181
- package/src/css/utilities/_position.scss +75 -75
- package/src/css/utilities/_sizing.scss +138 -138
- package/src/css/utilities/_spacing.scss +99 -99
- package/src/css/utilities/_typography.scss +121 -121
- package/src/css/utilities/index.scss +24 -24
- package/src/declarations.d.ts +6 -6
- package/src/index.ts +60 -60
package/src/Toggle/Toggle.tsx
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
import styles from '../css/toggle.module.scss';
|
|
2
|
-
|
|
3
|
-
type ToggleSize = 'sm' | 'md' | 'lg';
|
|
4
|
-
|
|
5
|
-
interface EvoToggleProps {
|
|
6
|
-
checked: boolean;
|
|
7
|
-
onChange: (checked: boolean) => void;
|
|
8
|
-
label?: string;
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
size?: ToggleSize;
|
|
11
|
-
className?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const thumbSize: Record<ToggleSize, string> = { sm: '0.75rem', md: '1rem', lg: '1.25rem' };
|
|
15
|
-
const thumbOffset: Record<ToggleSize, string> = { sm: '0.75rem', md: '1rem', lg: '1.25rem' };
|
|
16
|
-
|
|
17
|
-
export const EvoToggle = ({
|
|
18
|
-
checked,
|
|
19
|
-
onChange,
|
|
20
|
-
label,
|
|
21
|
-
disabled = false,
|
|
22
|
-
size = 'md',
|
|
23
|
-
className = '',
|
|
24
|
-
}: EvoToggleProps) => (
|
|
25
|
-
<label
|
|
26
|
-
className={[styles.toggleWrapper, disabled ? styles.disabled : '', className].filter(Boolean).join(' ')}
|
|
27
|
-
>
|
|
28
|
-
<input
|
|
29
|
-
type="checkbox"
|
|
30
|
-
role="switch"
|
|
31
|
-
className={styles.hiddenInput}
|
|
32
|
-
checked={checked}
|
|
33
|
-
disabled={disabled}
|
|
34
|
-
onChange={(e) => onChange(e.target.checked)}
|
|
35
|
-
/>
|
|
36
|
-
<span className={[styles.track, styles[size], checked ? styles.on : ''].filter(Boolean).join(' ')}>
|
|
37
|
-
<span
|
|
38
|
-
className={styles.thumb}
|
|
39
|
-
style={{
|
|
40
|
-
width: thumbSize[size],
|
|
41
|
-
height: thumbSize[size],
|
|
42
|
-
transform: checked ? `translateX(${thumbOffset[size]})` : 'translateX(0)',
|
|
43
|
-
}}
|
|
44
|
-
/>
|
|
45
|
-
</span>
|
|
46
|
-
{label && <span className={styles.label}>{label}</span>}
|
|
47
|
-
</label>
|
|
48
|
-
);
|
|
1
|
+
import styles from '../css/toggle.module.scss';
|
|
2
|
+
|
|
3
|
+
type ToggleSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
|
|
5
|
+
interface EvoToggleProps {
|
|
6
|
+
checked: boolean;
|
|
7
|
+
onChange: (checked: boolean) => void;
|
|
8
|
+
label?: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
size?: ToggleSize;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const thumbSize: Record<ToggleSize, string> = { sm: '0.75rem', md: '1rem', lg: '1.25rem' };
|
|
15
|
+
const thumbOffset: Record<ToggleSize, string> = { sm: '0.75rem', md: '1rem', lg: '1.25rem' };
|
|
16
|
+
|
|
17
|
+
export const EvoToggle = ({
|
|
18
|
+
checked,
|
|
19
|
+
onChange,
|
|
20
|
+
label,
|
|
21
|
+
disabled = false,
|
|
22
|
+
size = 'md',
|
|
23
|
+
className = '',
|
|
24
|
+
}: EvoToggleProps) => (
|
|
25
|
+
<label
|
|
26
|
+
className={[styles.toggleWrapper, disabled ? styles.disabled : '', className].filter(Boolean).join(' ')}
|
|
27
|
+
>
|
|
28
|
+
<input
|
|
29
|
+
type="checkbox"
|
|
30
|
+
role="switch"
|
|
31
|
+
className={styles.hiddenInput}
|
|
32
|
+
checked={checked}
|
|
33
|
+
disabled={disabled}
|
|
34
|
+
onChange={(e) => onChange(e.target.checked)}
|
|
35
|
+
/>
|
|
36
|
+
<span className={[styles.track, styles[size], checked ? styles.on : ''].filter(Boolean).join(' ')}>
|
|
37
|
+
<span
|
|
38
|
+
className={styles.thumb}
|
|
39
|
+
style={{
|
|
40
|
+
width: thumbSize[size],
|
|
41
|
+
height: thumbSize[size],
|
|
42
|
+
transform: checked ? `translateX(${thumbOffset[size]})` : 'translateX(0)',
|
|
43
|
+
}}
|
|
44
|
+
/>
|
|
45
|
+
</span>
|
|
46
|
+
{label && <span className={styles.label}>{label}</span>}
|
|
47
|
+
</label>
|
|
48
|
+
);
|
package/src/Tooltip/Tooltip.tsx
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import styles from '../css/tooltip.module.scss';
|
|
3
|
-
|
|
4
|
-
type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
5
|
-
|
|
6
|
-
interface EvoTooltipProps {
|
|
7
|
-
content: React.ReactNode;
|
|
8
|
-
children: React.ReactNode;
|
|
9
|
-
placement?: TooltipPlacement;
|
|
10
|
-
className?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const EvoTooltip = ({
|
|
14
|
-
content,
|
|
15
|
-
children,
|
|
16
|
-
placement = 'top',
|
|
17
|
-
className = '',
|
|
18
|
-
}: EvoTooltipProps) => {
|
|
19
|
-
const [visible, setVisible] = useState(false);
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<span
|
|
23
|
-
className={`${styles.wrapper} ${className}`}
|
|
24
|
-
onMouseEnter={() => setVisible(true)}
|
|
25
|
-
onMouseLeave={() => setVisible(false)}
|
|
26
|
-
onFocus={() => setVisible(true)}
|
|
27
|
-
onBlur={() => setVisible(false)}
|
|
28
|
-
>
|
|
29
|
-
{children}
|
|
30
|
-
{visible && (
|
|
31
|
-
<span className={`${styles.tooltip} ${styles[placement]}`} role="tooltip">
|
|
32
|
-
{content}
|
|
33
|
-
<span className={styles.arrow} />
|
|
34
|
-
</span>
|
|
35
|
-
)}
|
|
36
|
-
</span>
|
|
37
|
-
);
|
|
38
|
-
};
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import styles from '../css/tooltip.module.scss';
|
|
3
|
+
|
|
4
|
+
type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
5
|
+
|
|
6
|
+
interface EvoTooltipProps {
|
|
7
|
+
content: React.ReactNode;
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
placement?: TooltipPlacement;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const EvoTooltip = ({
|
|
14
|
+
content,
|
|
15
|
+
children,
|
|
16
|
+
placement = 'top',
|
|
17
|
+
className = '',
|
|
18
|
+
}: EvoTooltipProps) => {
|
|
19
|
+
const [visible, setVisible] = useState(false);
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<span
|
|
23
|
+
className={`${styles.wrapper} ${className}`}
|
|
24
|
+
onMouseEnter={() => setVisible(true)}
|
|
25
|
+
onMouseLeave={() => setVisible(false)}
|
|
26
|
+
onFocus={() => setVisible(true)}
|
|
27
|
+
onBlur={() => setVisible(false)}
|
|
28
|
+
>
|
|
29
|
+
{children}
|
|
30
|
+
{visible && (
|
|
31
|
+
<span className={`${styles.tooltip} ${styles[placement]}`} role="tooltip">
|
|
32
|
+
{content}
|
|
33
|
+
<span className={styles.arrow} />
|
|
34
|
+
</span>
|
|
35
|
+
)}
|
|
36
|
+
</span>
|
|
37
|
+
);
|
|
38
|
+
};
|