@justin_evo/evo-ui 1.0.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 (110) hide show
  1. package/dist/Alert/Alert.d.ts +11 -0
  2. package/dist/AutoComplete/AutoComplete.d.ts +95 -0
  3. package/dist/Badge/Badge.d.ts +23 -0
  4. package/dist/Breadcrumb/Breadcrumb.d.ts +16 -0
  5. package/dist/Button/Button.d.ts +54 -0
  6. package/dist/Card/Card.d.ts +60 -0
  7. package/dist/Checkbox/Checkbox.d.ts +16 -0
  8. package/dist/CommandPalette/CommandPalette.d.ts +17 -0
  9. package/dist/Container/Container.d.ts +10 -0
  10. package/dist/Divider/Divider.d.ts +7 -0
  11. package/dist/Form/Form.d.ts +61 -0
  12. package/dist/Grid/Grid.d.ts +23 -0
  13. package/dist/ImageCropper/ImageCropper.d.ts +111 -0
  14. package/dist/Input/Input.d.ts +12 -0
  15. package/dist/Modal/Modal.d.ts +26 -0
  16. package/dist/Nav/Nav.d.ts +63 -0
  17. package/dist/Notification/Notification.d.ts +186 -0
  18. package/dist/Pagination/Pagination.d.ts +10 -0
  19. package/dist/Radio/Radio.d.ts +20 -0
  20. package/dist/RichTextArea/RichTextArea.d.ts +70 -0
  21. package/dist/Select/Select.d.ts +44 -0
  22. package/dist/Skeleton/Skeleton.d.ts +23 -0
  23. package/dist/Stack/Stack.d.ts +16 -0
  24. package/dist/Table/Table.d.ts +77 -0
  25. package/dist/Tabs/Tabs.d.ts +28 -0
  26. package/dist/Theme/ThemeProvider.d.ts +96 -0
  27. package/dist/Theme/ThemeToggle.d.ts +22 -0
  28. package/dist/Toggle/Toggle.d.ts +11 -0
  29. package/dist/Tooltip/Tooltip.d.ts +10 -0
  30. package/dist/TopNav/TopNav.d.ts +76 -0
  31. package/dist/TreeSelect/TreeSelect.d.ts +50 -0
  32. package/dist/declarations.d.ts +6 -0
  33. package/dist/evo-ui.css +1 -0
  34. package/dist/index.cjs.js +1 -0
  35. package/dist/index.d.ts +31 -0
  36. package/dist/index.es.js +5688 -0
  37. package/package.json +52 -0
  38. package/src/Alert/Alert.tsx +49 -0
  39. package/src/AutoComplete/AutoComplete.tsx +810 -0
  40. package/src/Badge/Badge.tsx +53 -0
  41. package/src/Breadcrumb/Breadcrumb.tsx +53 -0
  42. package/src/Button/Button.tsx +125 -0
  43. package/src/Card/Card.tsx +257 -0
  44. package/src/Checkbox/Checkbox.tsx +59 -0
  45. package/src/CommandPalette/CommandPalette.tsx +185 -0
  46. package/src/Container/Container.tsx +31 -0
  47. package/src/Divider/Divider.tsx +31 -0
  48. package/src/Form/Form.tsx +185 -0
  49. package/src/Grid/Grid.tsx +66 -0
  50. package/src/ImageCropper/ImageCropper.tsx +911 -0
  51. package/src/Input/Input.tsx +74 -0
  52. package/src/Modal/Modal.tsx +77 -0
  53. package/src/Nav/Nav.tsx +626 -0
  54. package/src/Notification/Notification.tsx +1503 -0
  55. package/src/Pagination/Pagination.tsx +76 -0
  56. package/src/Radio/Radio.tsx +69 -0
  57. package/src/RichTextArea/RichTextArea.tsx +869 -0
  58. package/src/Select/Select.tsx +515 -0
  59. package/src/Skeleton/Skeleton.tsx +70 -0
  60. package/src/Stack/Stack.tsx +52 -0
  61. package/src/Table/Table.tsx +335 -0
  62. package/src/Tabs/Tabs.tsx +90 -0
  63. package/src/Theme/ThemeProvider.tsx +253 -0
  64. package/src/Theme/ThemeToggle.tsx +79 -0
  65. package/src/Toggle/Toggle.tsx +48 -0
  66. package/src/Tooltip/Tooltip.tsx +38 -0
  67. package/src/TopNav/TopNav.tsx +994 -0
  68. package/src/TreeSelect/TreeSelect.tsx +825 -0
  69. package/src/css/alert.module.scss +93 -0
  70. package/src/css/autocomplete.module.scss +416 -0
  71. package/src/css/badge.module.scss +82 -0
  72. package/src/css/base/_color.scss +159 -0
  73. package/src/css/base/_theme.scss +237 -0
  74. package/src/css/base/_variables.scss +161 -0
  75. package/src/css/breadcrumb.module.scss +50 -0
  76. package/src/css/button.module.scss +385 -0
  77. package/src/css/card.module.scss +217 -0
  78. package/src/css/checkbox.module.scss +120 -0
  79. package/src/css/commandpalette.module.scss +211 -0
  80. package/src/css/container.module.scss +18 -0
  81. package/src/css/divider.module.scss +41 -0
  82. package/src/css/form.module.scss +245 -0
  83. package/src/css/imagecropper.module.scss +397 -0
  84. package/src/css/input.module.scss +89 -0
  85. package/src/css/modal.module.scss +105 -0
  86. package/src/css/nav.module.scss +339 -0
  87. package/src/css/notification.module.scss +691 -0
  88. package/src/css/pagination.module.scss +63 -0
  89. package/src/css/radio.module.scss +89 -0
  90. package/src/css/richtextarea.module.scss +307 -0
  91. package/src/css/select.module.scss +525 -0
  92. package/src/css/skeleton.module.scss +30 -0
  93. package/src/css/table.module.scss +386 -0
  94. package/src/css/tabs.module.scss +63 -0
  95. package/src/css/theme-toggle.module.scss +83 -0
  96. package/src/css/toggle.module.scss +54 -0
  97. package/src/css/tooltip.module.scss +97 -0
  98. package/src/css/topnav.module.scss +396 -0
  99. package/src/css/treeselect.module.scss +558 -0
  100. package/src/css/utilities/_borders.scss +111 -0
  101. package/src/css/utilities/_colors.scss +66 -0
  102. package/src/css/utilities/_effects.scss +216 -0
  103. package/src/css/utilities/_layout.scss +181 -0
  104. package/src/css/utilities/_position.scss +75 -0
  105. package/src/css/utilities/_sizing.scss +138 -0
  106. package/src/css/utilities/_spacing.scss +99 -0
  107. package/src/css/utilities/_typography.scss +121 -0
  108. package/src/css/utilities/index.scss +24 -0
  109. package/src/declarations.d.ts +6 -0
  110. package/src/index.ts +60 -0
@@ -0,0 +1,99 @@
1
+ // ==========================================
2
+ // SPACING UTILITIES
3
+ // m-{n} | p-{n} | gap-{n} (1 unit = 0.25rem)
4
+ // ==========================================
5
+
6
+ $_spacing: (
7
+ 0: 0,
8
+ 1: 0.25rem,
9
+ 2: 0.5rem,
10
+ 3: 0.75rem,
11
+ 4: 1rem,
12
+ 5: 1.25rem,
13
+ 6: 1.5rem,
14
+ 7: 1.75rem,
15
+ 8: 2rem,
16
+ 9: 2.25rem,
17
+ 10: 2.5rem,
18
+ 11: 2.75rem,
19
+ 12: 3rem,
20
+ 14: 3.5rem,
21
+ 16: 4rem,
22
+ 20: 5rem,
23
+ 24: 6rem,
24
+ 28: 7rem,
25
+ 32: 8rem,
26
+ 36: 9rem,
27
+ 40: 10rem,
28
+ 44: 11rem,
29
+ 48: 12rem,
30
+ 56: 14rem,
31
+ 64: 16rem,
32
+ 72: 18rem,
33
+ 80: 20rem,
34
+ 96: 24rem,
35
+ );
36
+
37
+ @each $key, $val in $_spacing {
38
+ // Margin
39
+ .m-#{$key} { margin: $val; }
40
+ .mt-#{$key} { margin-top: $val; }
41
+ .mr-#{$key} { margin-right: $val; }
42
+ .mb-#{$key} { margin-bottom: $val; }
43
+ .ml-#{$key} { margin-left: $val; }
44
+ .mx-#{$key} { margin-inline: $val; }
45
+ .my-#{$key} { margin-block: $val; }
46
+
47
+ // Padding
48
+ .p-#{$key} { padding: $val; }
49
+ .pt-#{$key} { padding-top: $val; }
50
+ .pr-#{$key} { padding-right: $val; }
51
+ .pb-#{$key} { padding-bottom: $val; }
52
+ .pl-#{$key} { padding-left: $val; }
53
+ .px-#{$key} { padding-inline: $val; }
54
+ .py-#{$key} { padding-block: $val; }
55
+
56
+ // Gap
57
+ .gap-#{$key} { gap: $val; }
58
+ .gap-x-#{$key} { column-gap: $val; }
59
+ .gap-y-#{$key} { row-gap: $val; }
60
+ }
61
+
62
+ // Pixel variants
63
+ .m-px { margin: 1px; }
64
+ .mt-px { margin-top: 1px; }
65
+ .mr-px { margin-right: 1px; }
66
+ .mb-px { margin-bottom: 1px; }
67
+ .ml-px { margin-left: 1px; }
68
+ .mx-px { margin-inline: 1px; }
69
+ .my-px { margin-block: 1px; }
70
+ .p-px { padding: 1px; }
71
+ .pt-px { padding-top: 1px; }
72
+ .pr-px { padding-right: 1px; }
73
+ .pb-px { padding-bottom: 1px; }
74
+ .pl-px { padding-left: 1px; }
75
+ .px-px { padding-inline: 1px; }
76
+ .py-px { padding-block: 1px; }
77
+ .gap-px { gap: 1px; }
78
+
79
+ // Auto margins
80
+ .m-auto { margin: auto; }
81
+ .mt-auto { margin-top: auto; }
82
+ .mr-auto { margin-right: auto; }
83
+ .mb-auto { margin-bottom: auto; }
84
+ .ml-auto { margin-left: auto; }
85
+ .mx-auto { margin-inline: auto; }
86
+ .my-auto { margin-block: auto; }
87
+
88
+ // Negative margins
89
+ @each $key, $val in $_spacing {
90
+ @if $key != 0 {
91
+ .-m-#{$key} { margin: -$val; }
92
+ .-mt-#{$key} { margin-top: -$val; }
93
+ .-mr-#{$key} { margin-right: -$val; }
94
+ .-mb-#{$key} { margin-bottom: -$val; }
95
+ .-ml-#{$key} { margin-left: -$val; }
96
+ .-mx-#{$key} { margin-inline: -$val; }
97
+ .-my-#{$key} { margin-block: -$val; }
98
+ }
99
+ }
@@ -0,0 +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; }
@@ -0,0 +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';
@@ -0,0 +1,6 @@
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 ADDED
@@ -0,0 +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.0
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';