@justin_evo/evo-ui 1.1.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.
Files changed (80) hide show
  1. package/README.md +3 -3
  2. package/dist/TopNav/TopNav.d.ts +19 -0
  3. package/dist/declarations.d.ts +6 -6
  4. package/dist/evo-ui.css +1 -1
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.es.js +3301 -3197
  7. package/package.json +52 -52
  8. package/src/Alert/Alert.tsx +49 -49
  9. package/src/AutoComplete/AutoComplete.tsx +810 -810
  10. package/src/Badge/Badge.tsx +53 -53
  11. package/src/Breadcrumb/Breadcrumb.tsx +53 -53
  12. package/src/Button/Button.tsx +125 -125
  13. package/src/Card/Card.tsx +257 -257
  14. package/src/Checkbox/Checkbox.tsx +59 -59
  15. package/src/CommandPalette/CommandPalette.tsx +185 -185
  16. package/src/Container/Container.tsx +31 -31
  17. package/src/Divider/Divider.tsx +31 -31
  18. package/src/Form/Form.tsx +185 -185
  19. package/src/Grid/Grid.tsx +66 -66
  20. package/src/ImageCropper/ImageCropper.tsx +911 -911
  21. package/src/Input/Input.tsx +74 -74
  22. package/src/Modal/Modal.tsx +77 -77
  23. package/src/Nav/Nav.tsx +708 -708
  24. package/src/Notification/Notification.tsx +1503 -1503
  25. package/src/Pagination/Pagination.tsx +76 -76
  26. package/src/Radio/Radio.tsx +69 -69
  27. package/src/RichTextArea/RichTextArea.tsx +886 -869
  28. package/src/Select/Select.tsx +515 -515
  29. package/src/Skeleton/Skeleton.tsx +70 -70
  30. package/src/Stack/Stack.tsx +52 -52
  31. package/src/Table/Table.tsx +335 -335
  32. package/src/Tabs/Tabs.tsx +90 -90
  33. package/src/Theme/ThemeProvider.tsx +253 -253
  34. package/src/Theme/ThemeToggle.tsx +79 -79
  35. package/src/Toggle/Toggle.tsx +48 -48
  36. package/src/Tooltip/Tooltip.tsx +38 -38
  37. package/src/TopNav/TopNav.tsx +1163 -994
  38. package/src/TreeSelect/TreeSelect.tsx +825 -825
  39. package/src/css/alert.module.scss +93 -93
  40. package/src/css/autocomplete.module.scss +416 -416
  41. package/src/css/badge.module.scss +82 -82
  42. package/src/css/base/_color.scss +159 -159
  43. package/src/css/base/_theme.scss +237 -237
  44. package/src/css/base/_variables.scss +161 -161
  45. package/src/css/breadcrumb.module.scss +50 -50
  46. package/src/css/button.module.scss +385 -385
  47. package/src/css/card.module.scss +217 -217
  48. package/src/css/checkbox.module.scss +123 -120
  49. package/src/css/commandpalette.module.scss +211 -211
  50. package/src/css/container.module.scss +18 -18
  51. package/src/css/divider.module.scss +41 -41
  52. package/src/css/form.module.scss +245 -245
  53. package/src/css/imagecropper.module.scss +397 -397
  54. package/src/css/input.module.scss +89 -89
  55. package/src/css/modal.module.scss +105 -105
  56. package/src/css/nav.module.scss +494 -494
  57. package/src/css/notification.module.scss +691 -691
  58. package/src/css/pagination.module.scss +63 -63
  59. package/src/css/radio.module.scss +89 -89
  60. package/src/css/richtextarea.module.scss +307 -307
  61. package/src/css/select.module.scss +525 -525
  62. package/src/css/skeleton.module.scss +30 -30
  63. package/src/css/table.module.scss +386 -386
  64. package/src/css/tabs.module.scss +63 -63
  65. package/src/css/theme-toggle.module.scss +83 -83
  66. package/src/css/toggle.module.scss +54 -54
  67. package/src/css/tooltip.module.scss +97 -97
  68. package/src/css/topnav.module.scss +568 -396
  69. package/src/css/treeselect.module.scss +558 -558
  70. package/src/css/utilities/_borders.scss +111 -111
  71. package/src/css/utilities/_colors.scss +66 -66
  72. package/src/css/utilities/_effects.scss +216 -216
  73. package/src/css/utilities/_layout.scss +181 -181
  74. package/src/css/utilities/_position.scss +75 -75
  75. package/src/css/utilities/_sizing.scss +138 -138
  76. package/src/css/utilities/_spacing.scss +99 -99
  77. package/src/css/utilities/_typography.scss +121 -121
  78. package/src/css/utilities/index.scss +24 -24
  79. package/src/declarations.d.ts +6 -6
  80. package/src/index.ts +60 -60
@@ -1,121 +1,121 @@
1
- @use '../base/variables' as *;
2
-
3
- // ==========================================
4
- // TYPOGRAPHY UTILITIES
5
- // ==========================================
6
-
7
- // Font size
8
- .text-xs { font-size: $text-xs; line-height: 1rem; }
9
- .text-sm { font-size: $text-sm; line-height: 1.25rem; }
10
- .text-base { font-size: $text-base; line-height: 1.5rem; }
11
- .text-lg { font-size: $text-lg; line-height: 1.75rem; }
12
- .text-xl { font-size: $text-xl; line-height: 1.75rem; }
13
- .text-2xl { font-size: $text-2xl; line-height: 2rem; }
14
- .text-3xl { font-size: $text-3xl; line-height: 2.25rem; }
15
- .text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
16
- .text-5xl { font-size: 3rem; line-height: 1; }
17
- .text-6xl { font-size: 3.75rem; line-height: 1; }
18
-
19
- // Font weight
20
- .font-thin { font-weight: 100; }
21
- .font-extralight { font-weight: 200; }
22
- .font-light { font-weight: 300; }
23
- .font-normal { font-weight: 400; }
24
- .font-medium { font-weight: 500; }
25
- .font-semibold { font-weight: 600; }
26
- .font-bold { font-weight: 700; }
27
- .font-extrabold { font-weight: 800; }
28
- .font-black { font-weight: 900; }
29
-
30
- // Font family
31
- .font-sans { font-family: $font-sans; }
32
- .font-display { font-family: $font-display; }
33
- .font-mono { font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace; }
34
-
35
- // Text alignment
36
- .text-left { text-align: left; }
37
- .text-center { text-align: center; }
38
- .text-right { text-align: right; }
39
- .text-justify { text-align: justify; }
40
- .text-start { text-align: start; }
41
- .text-end { text-align: end; }
42
-
43
- // Text transform
44
- .uppercase { text-transform: uppercase; }
45
- .lowercase { text-transform: lowercase; }
46
- .capitalize { text-transform: capitalize; }
47
- .normal-case { text-transform: none; }
48
-
49
- // Text decoration
50
- .underline { text-decoration-line: underline; }
51
- .overline { text-decoration-line: overline; }
52
- .line-through { text-decoration-line: line-through; }
53
- .no-underline { text-decoration-line: none; }
54
-
55
- // Font style
56
- .italic { font-style: italic; }
57
- .not-italic { font-style: normal; }
58
-
59
- // Line height
60
- .leading-none { line-height: 1; }
61
- .leading-tight { line-height: 1.25; }
62
- .leading-snug { line-height: 1.375; }
63
- .leading-normal { line-height: 1.5; }
64
- .leading-relaxed { line-height: 1.625; }
65
- .leading-loose { line-height: 2; }
66
-
67
- // Letter spacing
68
- .tracking-tighter { letter-spacing: -0.05em; }
69
- .tracking-tight { letter-spacing: -0.025em; }
70
- .tracking-normal { letter-spacing: 0; }
71
- .tracking-wide { letter-spacing: 0.025em; }
72
- .tracking-wider { letter-spacing: 0.05em; }
73
- .tracking-widest { letter-spacing: 0.1em; }
74
-
75
- // Whitespace
76
- .whitespace-normal { white-space: normal; }
77
- .whitespace-nowrap { white-space: nowrap; }
78
- .whitespace-pre { white-space: pre; }
79
- .whitespace-pre-line { white-space: pre-line; }
80
- .whitespace-pre-wrap { white-space: pre-wrap; }
81
- .whitespace-break { white-space: break-spaces; }
82
-
83
- // Word break
84
- .break-normal { overflow-wrap: normal; word-break: normal; }
85
- .break-words { overflow-wrap: break-word; }
86
- .break-all { word-break: break-all; }
87
- .break-keep { word-break: keep-all; }
88
-
89
- // Truncate (single line ellipsis)
90
- .truncate {
91
- overflow: hidden;
92
- text-overflow: ellipsis;
93
- white-space: nowrap;
94
- }
95
-
96
- // Multi-line clamp
97
- .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
98
- .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
99
- .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
100
- .line-clamp-4 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
101
-
102
- // Text overflow
103
- .text-ellipsis { text-overflow: ellipsis; }
104
- .text-clip { text-overflow: clip; }
105
-
106
- // Vertical align
107
- .align-baseline { vertical-align: baseline; }
108
- .align-top { vertical-align: top; }
109
- .align-middle { vertical-align: middle; }
110
- .align-bottom { vertical-align: bottom; }
111
- .align-text-top { vertical-align: text-top; }
112
- .align-text-bottom { vertical-align: text-bottom; }
113
- .align-sub { vertical-align: sub; }
114
- .align-super { vertical-align: super; }
115
-
116
- // List style
117
- .list-none { list-style-type: none; }
118
- .list-disc { list-style-type: disc; }
119
- .list-decimal { list-style-type: decimal; }
120
- .list-inside { list-style-position: inside; }
121
- .list-outside { list-style-position: outside; }
1
+ @use '../base/variables' as *;
2
+
3
+ // ==========================================
4
+ // TYPOGRAPHY UTILITIES
5
+ // ==========================================
6
+
7
+ // Font size
8
+ .text-xs { font-size: $text-xs; line-height: 1rem; }
9
+ .text-sm { font-size: $text-sm; line-height: 1.25rem; }
10
+ .text-base { font-size: $text-base; line-height: 1.5rem; }
11
+ .text-lg { font-size: $text-lg; line-height: 1.75rem; }
12
+ .text-xl { font-size: $text-xl; line-height: 1.75rem; }
13
+ .text-2xl { font-size: $text-2xl; line-height: 2rem; }
14
+ .text-3xl { font-size: $text-3xl; line-height: 2.25rem; }
15
+ .text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
16
+ .text-5xl { font-size: 3rem; line-height: 1; }
17
+ .text-6xl { font-size: 3.75rem; line-height: 1; }
18
+
19
+ // Font weight
20
+ .font-thin { font-weight: 100; }
21
+ .font-extralight { font-weight: 200; }
22
+ .font-light { font-weight: 300; }
23
+ .font-normal { font-weight: 400; }
24
+ .font-medium { font-weight: 500; }
25
+ .font-semibold { font-weight: 600; }
26
+ .font-bold { font-weight: 700; }
27
+ .font-extrabold { font-weight: 800; }
28
+ .font-black { font-weight: 900; }
29
+
30
+ // Font family
31
+ .font-sans { font-family: $font-sans; }
32
+ .font-display { font-family: $font-display; }
33
+ .font-mono { font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace; }
34
+
35
+ // Text alignment
36
+ .text-left { text-align: left; }
37
+ .text-center { text-align: center; }
38
+ .text-right { text-align: right; }
39
+ .text-justify { text-align: justify; }
40
+ .text-start { text-align: start; }
41
+ .text-end { text-align: end; }
42
+
43
+ // Text transform
44
+ .uppercase { text-transform: uppercase; }
45
+ .lowercase { text-transform: lowercase; }
46
+ .capitalize { text-transform: capitalize; }
47
+ .normal-case { text-transform: none; }
48
+
49
+ // Text decoration
50
+ .underline { text-decoration-line: underline; }
51
+ .overline { text-decoration-line: overline; }
52
+ .line-through { text-decoration-line: line-through; }
53
+ .no-underline { text-decoration-line: none; }
54
+
55
+ // Font style
56
+ .italic { font-style: italic; }
57
+ .not-italic { font-style: normal; }
58
+
59
+ // Line height
60
+ .leading-none { line-height: 1; }
61
+ .leading-tight { line-height: 1.25; }
62
+ .leading-snug { line-height: 1.375; }
63
+ .leading-normal { line-height: 1.5; }
64
+ .leading-relaxed { line-height: 1.625; }
65
+ .leading-loose { line-height: 2; }
66
+
67
+ // Letter spacing
68
+ .tracking-tighter { letter-spacing: -0.05em; }
69
+ .tracking-tight { letter-spacing: -0.025em; }
70
+ .tracking-normal { letter-spacing: 0; }
71
+ .tracking-wide { letter-spacing: 0.025em; }
72
+ .tracking-wider { letter-spacing: 0.05em; }
73
+ .tracking-widest { letter-spacing: 0.1em; }
74
+
75
+ // Whitespace
76
+ .whitespace-normal { white-space: normal; }
77
+ .whitespace-nowrap { white-space: nowrap; }
78
+ .whitespace-pre { white-space: pre; }
79
+ .whitespace-pre-line { white-space: pre-line; }
80
+ .whitespace-pre-wrap { white-space: pre-wrap; }
81
+ .whitespace-break { white-space: break-spaces; }
82
+
83
+ // Word break
84
+ .break-normal { overflow-wrap: normal; word-break: normal; }
85
+ .break-words { overflow-wrap: break-word; }
86
+ .break-all { word-break: break-all; }
87
+ .break-keep { word-break: keep-all; }
88
+
89
+ // Truncate (single line ellipsis)
90
+ .truncate {
91
+ overflow: hidden;
92
+ text-overflow: ellipsis;
93
+ white-space: nowrap;
94
+ }
95
+
96
+ // Multi-line clamp
97
+ .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
98
+ .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
99
+ .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
100
+ .line-clamp-4 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
101
+
102
+ // Text overflow
103
+ .text-ellipsis { text-overflow: ellipsis; }
104
+ .text-clip { text-overflow: clip; }
105
+
106
+ // Vertical align
107
+ .align-baseline { vertical-align: baseline; }
108
+ .align-top { vertical-align: top; }
109
+ .align-middle { vertical-align: middle; }
110
+ .align-bottom { vertical-align: bottom; }
111
+ .align-text-top { vertical-align: text-top; }
112
+ .align-text-bottom { vertical-align: text-bottom; }
113
+ .align-sub { vertical-align: sub; }
114
+ .align-super { vertical-align: super; }
115
+
116
+ // List style
117
+ .list-none { list-style-type: none; }
118
+ .list-disc { list-style-type: disc; }
119
+ .list-decimal { list-style-type: decimal; }
120
+ .list-inside { list-style-position: inside; }
121
+ .list-outside { list-style-position: outside; }
@@ -1,24 +1,24 @@
1
- // ==========================================
2
- // EVO-UI UTILITY CLASSES
3
- // Tailwind-inspired utility-first CSS helpers
4
- // ==========================================
5
- //
6
- // Import this file to get the full utility layer:
7
- // import '@justin_evo/evo-ui/dist/utilities.css'
8
- //
9
- // Or rely on the utilities already bundled inside:
10
- // import '@justin_evo/evo-ui/dist/evo-ui.css'
11
- // ==========================================
12
-
13
- // Theme tokens (light & dark CSS variables) must be emitted first
14
- // so every following rule can read them via `var(--evo-color-*)`.
15
- @use '../base/theme';
16
-
17
- @use './colors';
18
- @use './spacing';
19
- @use './typography';
20
- @use './layout';
21
- @use './sizing';
22
- @use './borders';
23
- @use './effects';
24
- @use './position';
1
+ // ==========================================
2
+ // EVO-UI UTILITY CLASSES
3
+ // Tailwind-inspired utility-first CSS helpers
4
+ // ==========================================
5
+ //
6
+ // Import this file to get the full utility layer:
7
+ // import '@justin_evo/evo-ui/dist/utilities.css'
8
+ //
9
+ // Or rely on the utilities already bundled inside:
10
+ // import '@justin_evo/evo-ui/dist/evo-ui.css'
11
+ // ==========================================
12
+
13
+ // Theme tokens (light & dark CSS variables) must be emitted first
14
+ // so every following rule can read them via `var(--evo-color-*)`.
15
+ @use '../base/theme';
16
+
17
+ @use './colors';
18
+ @use './spacing';
19
+ @use './typography';
20
+ @use './layout';
21
+ @use './sizing';
22
+ @use './borders';
23
+ @use './effects';
24
+ @use './position';
@@ -1,6 +1,6 @@
1
- declare module '*.module.scss' {
2
- const classes: Record<string, string>;
3
- export default classes;
4
- }
5
-
6
- declare module '*.scss' {}
1
+ declare module '*.module.scss' {
2
+ const classes: Record<string, string>;
3
+ export default classes;
4
+ }
5
+
6
+ declare module '*.scss' {}
package/src/index.ts CHANGED
@@ -1,60 +1,60 @@
1
- /**
2
- * @module EvoUI
3
- * @summary A high-performance, enterprise-grade UI component library built for modern web applications.
4
- * @version 1.0.2
5
- * @author Justin Khor
6
- * @license MIT
7
- * @see {@link https://github.com/your-repo/evo-ui} Official Documentation
8
- */
9
-
10
- // Utility classes (bundled into dist/evo-ui.css)
11
- // Also emits the theme tokens (light + dark CSS variables) so consumers
12
- // only need a single CSS import to get themed components.
13
- import './css/utilities/index.scss';
14
-
15
- // Theming
16
- export * from './Theme/ThemeProvider';
17
- export * from './Theme/ThemeToggle';
18
-
19
- // Existing
20
- export * from './Button/Button';
21
- export * from './Card/Card';
22
-
23
- // Layout & Structure
24
- export * from './Stack/Stack';
25
- export * from './Grid/Grid';
26
- export * from './Divider/Divider';
27
- export * from './Container/Container';
28
-
29
- // Navigation
30
- export * from './Tabs/Tabs';
31
- export * from './Breadcrumb/Breadcrumb';
32
- export * from './Nav/Nav';
33
- export * from './TopNav/TopNav';
34
- export * from './Pagination/Pagination';
35
- export * from './CommandPalette/CommandPalette';
36
-
37
- // Forms & Inputs
38
- export * from './Input/Input';
39
- export * from './RichTextArea/RichTextArea';
40
- export * from './Select/Select';
41
- export * from './TreeSelect/TreeSelect';
42
- export * from './AutoComplete/AutoComplete';
43
- export * from './Checkbox/Checkbox';
44
- export * from './Radio/Radio';
45
- export * from './Toggle/Toggle';
46
- export * from './Form/Form';
47
-
48
- // Feedback & Overlays
49
- export * from './Modal/Modal';
50
- export * from './Notification/Notification';
51
- export * from './Tooltip/Tooltip';
52
- export * from './Alert/Alert';
53
-
54
- // Data Display
55
- export * from './Badge/Badge';
56
- export * from './Skeleton/Skeleton';
57
- export * from './Table/Table';
58
-
59
- // Media
60
- export * from './ImageCropper/ImageCropper';
1
+ /**
2
+ * @module EvoUI
3
+ * @summary A high-performance, enterprise-grade UI component library built for modern web applications.
4
+ * @version 1.0.2
5
+ * @author Justin Khor
6
+ * @license MIT
7
+ * @see {@link https://github.com/your-repo/evo-ui} Official Documentation
8
+ */
9
+
10
+ // Utility classes (bundled into dist/evo-ui.css)
11
+ // Also emits the theme tokens (light + dark CSS variables) so consumers
12
+ // only need a single CSS import to get themed components.
13
+ import './css/utilities/index.scss';
14
+
15
+ // Theming
16
+ export * from './Theme/ThemeProvider';
17
+ export * from './Theme/ThemeToggle';
18
+
19
+ // Existing
20
+ export * from './Button/Button';
21
+ export * from './Card/Card';
22
+
23
+ // Layout & Structure
24
+ export * from './Stack/Stack';
25
+ export * from './Grid/Grid';
26
+ export * from './Divider/Divider';
27
+ export * from './Container/Container';
28
+
29
+ // Navigation
30
+ export * from './Tabs/Tabs';
31
+ export * from './Breadcrumb/Breadcrumb';
32
+ export * from './Nav/Nav';
33
+ export * from './TopNav/TopNav';
34
+ export * from './Pagination/Pagination';
35
+ export * from './CommandPalette/CommandPalette';
36
+
37
+ // Forms & Inputs
38
+ export * from './Input/Input';
39
+ export * from './RichTextArea/RichTextArea';
40
+ export * from './Select/Select';
41
+ export * from './TreeSelect/TreeSelect';
42
+ export * from './AutoComplete/AutoComplete';
43
+ export * from './Checkbox/Checkbox';
44
+ export * from './Radio/Radio';
45
+ export * from './Toggle/Toggle';
46
+ export * from './Form/Form';
47
+
48
+ // Feedback & Overlays
49
+ export * from './Modal/Modal';
50
+ export * from './Notification/Notification';
51
+ export * from './Tooltip/Tooltip';
52
+ export * from './Alert/Alert';
53
+
54
+ // Data Display
55
+ export * from './Badge/Badge';
56
+ export * from './Skeleton/Skeleton';
57
+ export * from './Table/Table';
58
+
59
+ // Media
60
+ export * from './ImageCropper/ImageCropper';