@amelharrak/eldo-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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/css/eldo.css +11683 -0
  4. package/dist/css/eldo.css.map +1 -0
  5. package/dist/css/eldo.min.css +1 -0
  6. package/dist/index.cjs +2 -0
  7. package/dist/index.cjs.map +1 -0
  8. package/dist/index.mjs +64 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/types/__tests__/Alert.test.d.ts +1 -0
  11. package/dist/types/__tests__/Button.test.d.ts +1 -0
  12. package/dist/types/__tests__/Modal.test.d.ts +1 -0
  13. package/dist/types/components/Accordion.d.ts +15 -0
  14. package/dist/types/components/Alert.d.ts +15 -0
  15. package/dist/types/components/Avatar.d.ts +10 -0
  16. package/dist/types/components/Badge.d.ts +7 -0
  17. package/dist/types/components/Box.d.ts +27 -0
  18. package/dist/types/components/Breadcrumb.d.ts +15 -0
  19. package/dist/types/components/Button.d.ts +16 -0
  20. package/dist/types/components/ButtonGroup.d.ts +7 -0
  21. package/dist/types/components/Card.d.ts +15 -0
  22. package/dist/types/components/Carousel.d.ts +21 -0
  23. package/dist/types/components/Checkbox.d.ts +10 -0
  24. package/dist/types/components/Col.d.ts +12 -0
  25. package/dist/types/components/Collapse.d.ts +12 -0
  26. package/dist/types/components/Container.d.ts +8 -0
  27. package/dist/types/components/Dropdown.d.ts +19 -0
  28. package/dist/types/components/FileUpload.d.ts +13 -0
  29. package/dist/types/components/Input.d.ts +20 -0
  30. package/dist/types/components/InputOTP.d.ts +13 -0
  31. package/dist/types/components/ListGroup.d.ts +20 -0
  32. package/dist/types/components/Modal.d.ts +13 -0
  33. package/dist/types/components/Navbar.d.ts +17 -0
  34. package/dist/types/components/NumberInput.d.ts +15 -0
  35. package/dist/types/components/Offcanvas.d.ts +15 -0
  36. package/dist/types/components/Pagination.d.ts +14 -0
  37. package/dist/types/components/Popover.d.ts +14 -0
  38. package/dist/types/components/Progress.d.ts +11 -0
  39. package/dist/types/components/Radio.d.ts +11 -0
  40. package/dist/types/components/Row.d.ts +7 -0
  41. package/dist/types/components/Scrollspy.d.ts +13 -0
  42. package/dist/types/components/Select.d.ts +16 -0
  43. package/dist/types/components/Slider.d.ts +16 -0
  44. package/dist/types/components/Sonner.d.ts +21 -0
  45. package/dist/types/components/Spinner.d.ts +11 -0
  46. package/dist/types/components/Stat.d.ts +24 -0
  47. package/dist/types/components/Switch.d.ts +14 -0
  48. package/dist/types/components/Tabs.d.ts +20 -0
  49. package/dist/types/components/Text.d.ts +13 -0
  50. package/dist/types/components/Timeline.d.ts +41 -0
  51. package/dist/types/components/Toast.d.ts +17 -0
  52. package/dist/types/components/Tooltip.d.ts +12 -0
  53. package/dist/types/index.d.ts +40 -0
  54. package/package.json +106 -0
  55. package/setup.js +260 -0
  56. package/src/scss/abstracts/_functions.scss +19 -0
  57. package/src/scss/abstracts/_mixins.scss +33 -0
  58. package/src/scss/abstracts/_variables.scss +119 -0
  59. package/src/scss/base/_reset.scss +24 -0
  60. package/src/scss/base/_transitions.scss +10 -0
  61. package/src/scss/base/_typography.scss +50 -0
  62. package/src/scss/components/_accordion.scss +238 -0
  63. package/src/scss/components/_alert.scss +85 -0
  64. package/src/scss/components/_alerts.scss +137 -0
  65. package/src/scss/components/_avatar.scss +184 -0
  66. package/src/scss/components/_badge.scss +70 -0
  67. package/src/scss/components/_blockquote.scss +41 -0
  68. package/src/scss/components/_breadcrumb.scss +39 -0
  69. package/src/scss/components/_button-group.scss +43 -0
  70. package/src/scss/components/_button.scss +92 -0
  71. package/src/scss/components/_buttons.scss +66 -0
  72. package/src/scss/components/_calendar.scss +520 -0
  73. package/src/scss/components/_card.scss +52 -0
  74. package/src/scss/components/_cards.scss +123 -0
  75. package/src/scss/components/_carousel.scss +490 -0
  76. package/src/scss/components/_charts.scss +29 -0
  77. package/src/scss/components/_checkbox.scss +194 -0
  78. package/src/scss/components/_code.scss +70 -0
  79. package/src/scss/components/_collapse.scss +13 -0
  80. package/src/scss/components/_combobox.scss +239 -0
  81. package/src/scss/components/_date-picker.scss +102 -0
  82. package/src/scss/components/_divider.scss +55 -0
  83. package/src/scss/components/_dropdown.scss +122 -0
  84. package/src/scss/components/_file-upload.scss +233 -0
  85. package/src/scss/components/_floating-labels.scss +247 -0
  86. package/src/scss/components/_form-select.scss +49 -0
  87. package/src/scss/components/_forms.scss +41 -0
  88. package/src/scss/components/_index.scss +7 -0
  89. package/src/scss/components/_input-otp.scss +338 -0
  90. package/src/scss/components/_list-group.scss +95 -0
  91. package/src/scss/components/_modal.scss +166 -0
  92. package/src/scss/components/_nav.scss +175 -0
  93. package/src/scss/components/_navbar.scss +228 -0
  94. package/src/scss/components/_number-input.scss +67 -0
  95. package/src/scss/components/_offcanvas.scss +123 -0
  96. package/src/scss/components/_pagination.scss +64 -0
  97. package/src/scss/components/_placeholders.scss +52 -0
  98. package/src/scss/components/_popovers.scss +69 -0
  99. package/src/scss/components/_progress.scss +90 -0
  100. package/src/scss/components/_range.scss +82 -0
  101. package/src/scss/components/_scrollspy.scss +239 -0
  102. package/src/scss/components/_skeleton.scss +108 -0
  103. package/src/scss/components/_slider.scss +95 -0
  104. package/src/scss/components/_snippet.scss +79 -0
  105. package/src/scss/components/_spinners.scss +137 -0
  106. package/src/scss/components/_stat.scss +42 -0
  107. package/src/scss/components/_stepper.scss +104 -0
  108. package/src/scss/components/_switch.scss +57 -0
  109. package/src/scss/components/_table.scss +109 -0
  110. package/src/scss/components/_tag.scss +60 -0
  111. package/src/scss/components/_tags-input.scss +60 -0
  112. package/src/scss/components/_timeline.scss +238 -0
  113. package/src/scss/components/_toasts.scss +75 -0
  114. package/src/scss/components/_tooltips.scss +50 -0
  115. package/src/scss/components/_tree-view.scss +72 -0
  116. package/src/scss/components/_user.scss +26 -0
  117. package/src/scss/docs/_examples.scss +148 -0
  118. package/src/scss/docs/_layout.scss +251 -0
  119. package/src/scss/docs/_search.scss +141 -0
  120. package/src/scss/eldo.scss +74 -0
  121. package/src/scss/layout/_container.scss +37 -0
  122. package/src/scss/layout/_grid.scss +49 -0
  123. package/src/scss/pages/_landing-config.scss +135 -0
  124. package/src/scss/pages/_landing-features-enhanced.scss +165 -0
  125. package/src/scss/pages/_landing-hero-enhanced.scss +427 -0
  126. package/src/scss/pages/_landing-setup.scss +264 -0
  127. package/src/scss/pages/_landing.scss +1828 -0
  128. package/src/scss/utilities/_api.scss +66 -0
  129. package/src/scss/utilities/_colors.scss +32 -0
  130. package/src/scss/utilities/_display.scss +70 -0
  131. package/src/scss/utilities/_glass.scss +32 -0
  132. package/src/scss/utilities/_helpers.scss +16 -0
  133. package/src/scss/utilities/_map.scss +224 -0
  134. package/src/scss/utilities/_spacing.scss +58 -0
@@ -0,0 +1,251 @@
1
+ // Documentation Layout
2
+ .bd-sidebar {
3
+ position: fixed;
4
+ top: 60px;
5
+ bottom: 0;
6
+ left: 0;
7
+ z-index: 100;
8
+ padding: 2rem 0;
9
+ box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
10
+ overflow-y: auto;
11
+
12
+ // Scrollbar specific for sidebar
13
+ &::-webkit-scrollbar {
14
+ width: 5px;
15
+ }
16
+
17
+ &::-webkit-scrollbar-track {
18
+ background: transparent;
19
+ }
20
+
21
+ &::-webkit-scrollbar-thumb {
22
+ background-color: #cbd5e1; // Slate-300
23
+ border-radius: 20px;
24
+ border: transparent;
25
+ }
26
+
27
+ // Sidebar Navigation Styling (Premium Overhaul)
28
+ .btn-toggle {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ padding: .5rem 1.25rem;
32
+ width: 100%;
33
+ color: #334155; // Slate-700
34
+ background: transparent;
35
+ border: 0;
36
+ font-weight: 600;
37
+ font-size: 0.875rem;
38
+ transition: all 0.2s ease;
39
+ border-radius: 0.5rem;
40
+
41
+ &:hover,
42
+ &:focus {
43
+ color: #0f172a; // Slate-900
44
+ background-color: #f1f5f9; // Slate-100
45
+ }
46
+
47
+ &::after {
48
+ width: 1rem;
49
+ height: 1rem;
50
+ margin-left: auto;
51
+ content: "";
52
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3e%3cpath d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); // Slate-400 Chevron
53
+ background-repeat: no-repeat;
54
+ background-size: 1rem;
55
+ transition: transform .2s ease-in-out;
56
+ }
57
+
58
+ &[aria-expanded="true"] {
59
+ color: #0f172a;
60
+
61
+ &::after {
62
+ transform: rotate(90deg);
63
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230f172a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3e%3cpath d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); // Darker on active
64
+ }
65
+ }
66
+ }
67
+
68
+ // Sub-navigation container
69
+ .btn-toggle-nav {
70
+ list-style: none; // Remove bullets
71
+ padding-left: 0; // Reset padding since we control indentation via link padding
72
+ margin-top: 0.25rem;
73
+ margin-bottom: 0.5rem;
74
+ }
75
+
76
+ .btn-toggle-nav a {
77
+ display: block;
78
+ padding: .35rem 1rem;
79
+ text-decoration: none;
80
+ color: #64748b; // Slate-500
81
+ font-size: 0.875rem;
82
+ border-left: 1px solid #e2e8f0; // Slate-200 rail
83
+ margin-left: 0.75rem; // Align with text of parent
84
+ transition: all 0.2s ease;
85
+ position: relative;
86
+
87
+ &:hover,
88
+ &:focus {
89
+ color: #0f172a; // Slate-900
90
+ border-left-color: #94a3b8; // Slate-400
91
+ }
92
+
93
+ &.active,
94
+ &[aria-current="page"] {
95
+ color: #0d6efd; // Brand Primary
96
+ border-left-color: #0d6efd;
97
+ font-weight: 500;
98
+ background: rgba(13, 110, 253, 0.03); // Very subtle backing
99
+ border-top-right-radius: 4px;
100
+ border-bottom-right-radius: 4px;
101
+ }
102
+ }
103
+ }
104
+
105
+ // Docs Callout
106
+ .bd-callout {
107
+ padding: 1.25rem;
108
+ margin-top: 1.25rem;
109
+ margin-bottom: 1.25rem;
110
+ border: 1px solid #e9ecef;
111
+ border-left-width: .25rem;
112
+ border-radius: .25rem;
113
+
114
+ h4 {
115
+ margin-bottom: .25rem;
116
+ }
117
+
118
+ p:last-child {
119
+ margin-bottom: 0;
120
+ }
121
+
122
+ +.bd-callout {
123
+ margin-top: -.25rem;
124
+ }
125
+ }
126
+
127
+ .bd-callout-info {
128
+ border-left-color: #5bc0de;
129
+
130
+ h4 {
131
+ color: #5bc0de;
132
+ }
133
+ }
134
+
135
+ .bd-callout-warning {
136
+ border-left-color: #f0ad4e;
137
+
138
+ h4 {
139
+ color: #f0ad4e;
140
+ }
141
+ }
142
+
143
+ .bd-main {
144
+ padding: 2rem;
145
+ }
146
+
147
+ // Premium Table of Contents (TOC)
148
+ .bd-toc {
149
+ position: sticky;
150
+ top: 5rem;
151
+ height: calc(100vh - 7rem);
152
+ overflow-y: auto;
153
+ padding-left: 1.5rem;
154
+ border-left: 1px solid var(--glass-border, rgba(0, 0, 0, 0.05));
155
+
156
+ // Hide scrollbar but keep functionality
157
+ scrollbar-width: thin;
158
+
159
+ &::-webkit-scrollbar {
160
+ width: 4px;
161
+ }
162
+
163
+ .bd-toc-content {
164
+ display: flex;
165
+ flex-direction: column;
166
+ }
167
+
168
+ .bd-toc-heading {
169
+ font-size: 0.75rem;
170
+ text-transform: uppercase;
171
+ letter-spacing: 0.05em;
172
+ font-weight: 700;
173
+ color: #64748b; // Slate-500
174
+ margin-bottom: 1rem;
175
+ }
176
+
177
+ nav {
178
+ font-size: 0.875rem;
179
+
180
+ .nav-link {
181
+ display: block;
182
+ padding: 0.25rem 0 0.25rem 1rem;
183
+ color: #64748b; // Slate-500
184
+ text-decoration: none;
185
+ border-left: 2px solid transparent; // Marker line
186
+ margin-left: -1px; // Overlap border
187
+ transition: all 0.2s ease;
188
+
189
+ &:hover {
190
+ color: #0f172a; // Slate-900
191
+ border-left-color: #cbd5e1; // Slate-300
192
+ }
193
+
194
+ &.active {
195
+ color: #38bdf8; // Sky-400 (Brand)
196
+ border-left-color: #38bdf8;
197
+ font-weight: 500;
198
+ background: transparent; // Override default
199
+ }
200
+
201
+ // Nested items (H3) handled by inline styles in JS,
202
+ // but we can enforce some defaults here if needed
203
+ }
204
+ }
205
+ }
206
+
207
+ // Premium Navbar (Glassmorphism)
208
+ .bd-navbar {
209
+ position: fixed; // Explicitly fix position
210
+ top: 0;
211
+ left: 0;
212
+ right: 0;
213
+
214
+ background-color: rgba(255, 255, 255, 0.8) !important; // Override bg-primary if present
215
+ backdrop-filter: blur(12px);
216
+ -webkit-backdrop-filter: blur(12px);
217
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
218
+ height: 60px;
219
+ z-index: 1030;
220
+
221
+ .navbar-brand {
222
+ color: #0f172a !important; // Slate-900
223
+ font-weight: 700;
224
+ letter-spacing: -0.02em;
225
+ }
226
+
227
+ .navbar-nav .nav-link {
228
+ color: #64748b; // Slate-500
229
+
230
+ &:hover,
231
+ &.active {
232
+ color: #0f172a;
233
+ }
234
+ }
235
+
236
+ // Badge styling fix for light background
237
+ .badge {
238
+ background-color: #f1f5f9 !important; // Slate-100
239
+ color: #475569 !important; // Slate-600
240
+ border: 1px solid #e2e8f0;
241
+ }
242
+
243
+ // Github link and utility icons
244
+ a {
245
+ color: #64748b !important;
246
+
247
+ &:hover {
248
+ color: #0f172a !important;
249
+ }
250
+ }
251
+ }
@@ -0,0 +1,141 @@
1
+ // Command Palette (Shadcn-like)
2
+ .command-palette-backdrop {
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 100vw;
7
+ height: 100vh;
8
+ background: rgba(0, 0, 0, 0.4);
9
+ backdrop-filter: blur(4px);
10
+ z-index: 2000;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: flex-start;
14
+ padding-top: 15vh;
15
+ opacity: 0;
16
+ animation: fadeIn 0.15s ease forwards;
17
+ }
18
+
19
+ .command-palette {
20
+ width: 100%;
21
+ max-width: 640px;
22
+ background: #ffffff;
23
+ border-radius: 12px;
24
+ box-shadow: 0 16px 70px rgba(0, 0, 0, 0.2);
25
+ border: 1px solid rgba(0, 0, 0, 0.1);
26
+ display: flex;
27
+ flex-direction: column;
28
+ overflow: hidden;
29
+ transform: scale(0.98);
30
+ animation: scaleIn 0.15s ease forwards;
31
+
32
+ .command-header {
33
+ display: flex;
34
+ align-items: center;
35
+ padding: 0 1rem;
36
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
37
+
38
+ svg {
39
+ color: #94a3b8; // Slate-400
40
+ }
41
+ }
42
+
43
+ .command-input {
44
+ flex: 1;
45
+ border: none;
46
+ outline: none;
47
+ padding: 1.25rem 0.75rem;
48
+ font-size: 1.1rem;
49
+ color: #0f172a; // Slate-900
50
+ background: transparent;
51
+
52
+ &::placeholder {
53
+ color: #94a3b8;
54
+ }
55
+ }
56
+
57
+ .command-list {
58
+ max-height: 400px;
59
+ overflow-y: auto;
60
+ padding: 0.5rem;
61
+
62
+ // Custom Scrollbar
63
+ &::-webkit-scrollbar {
64
+ width: 6px;
65
+ }
66
+
67
+ &::-webkit-scrollbar-thumb {
68
+ background-color: rgba(0, 0, 0, 0.1);
69
+ border-radius: 3px;
70
+ }
71
+ }
72
+
73
+ .command-group-heading {
74
+ padding: 0.5rem 0.75rem;
75
+ font-size: 0.75rem;
76
+ font-weight: 600;
77
+ color: #64748b; // Slate-500
78
+ text-transform: uppercase;
79
+ letter-spacing: 0.05em;
80
+ margin-top: 0.5rem;
81
+ }
82
+
83
+ .command-item {
84
+ display: flex;
85
+ align-items: center;
86
+ gap: 0.75rem;
87
+ padding: 0.75rem;
88
+ border-radius: 6px;
89
+ cursor: pointer;
90
+ color: #334155; // Slate-700
91
+ font-size: 0.95rem;
92
+ transition: all 0.1s;
93
+ text-decoration: none;
94
+
95
+ svg {
96
+ width: 18px;
97
+ height: 18px;
98
+ color: #94a3b8;
99
+ }
100
+
101
+ &:hover,
102
+ &.selected {
103
+ background: #f1f5f9; // Slate-100
104
+ color: #0f172a; // Slate-900
105
+
106
+ svg {
107
+ color: #0f172a;
108
+ }
109
+ }
110
+
111
+ .shortcut {
112
+ margin-left: auto;
113
+ font-size: 0.75rem;
114
+ color: #94a3b8;
115
+ }
116
+ }
117
+
118
+ .command-empty {
119
+ padding: 3rem;
120
+ text-align: center;
121
+ font-size: 0.9rem;
122
+ color: #64748b;
123
+ }
124
+ }
125
+
126
+ @keyframes fadeIn {
127
+ to {
128
+ opacity: 1;
129
+ }
130
+ }
131
+
132
+ @keyframes scaleIn {
133
+ to {
134
+ transform: scale(1);
135
+ }
136
+ }
137
+
138
+ // Global hook for hiding scrollbar when modal is open
139
+ body.command-open {
140
+ overflow: hidden;
141
+ }
@@ -0,0 +1,74 @@
1
+ // Base
2
+ @use 'base/reset';
3
+ @use 'base/typography';
4
+ @use 'base/transitions';
5
+
6
+ // Layout
7
+ @use 'layout/grid';
8
+ @use 'layout/container';
9
+
10
+ // Components
11
+ @use 'components/accordion';
12
+ @use 'components/alerts';
13
+ @use 'components/avatar';
14
+ @use 'components/badge';
15
+ @use 'components/blockquote';
16
+ @use 'components/breadcrumb';
17
+ @use 'components/list-group';
18
+ @use 'components/buttons';
19
+ @use 'components/button-group';
20
+ @use 'components/cards';
21
+ @use 'components/charts';
22
+ @use 'components/code';
23
+ @use 'components/checkbox';
24
+ @use 'components/carousel';
25
+ @use 'components/combobox';
26
+ @use 'components/divider'; // New
27
+ @use 'components/forms';
28
+ @use 'components/file-upload';
29
+ @use 'components/floating-labels';
30
+ @use 'components/calendar';
31
+ @use 'components/range'; // Feature addition
32
+ @use 'components/navbar';
33
+ @use 'components/nav';
34
+ @use 'components/number-input'; // New
35
+ @use 'components/dropdown';
36
+ @use 'components/pagination';
37
+ @use 'components/collapse';
38
+ @use 'components/modal';
39
+ @use 'components/offcanvas';
40
+ @use 'components/placeholders'; // Batch 4
41
+ @use 'components/popovers'; // Batch 4
42
+ @use 'components/scrollspy'; // Batch 4
43
+ @use 'components/skeleton';
44
+ @use 'components/slider'; // New
45
+ @use 'components/snippet'; // New
46
+ @use 'components/progress';
47
+ @use 'components/input-otp'; // Batch 11
48
+ @use 'components/form-select'; // New (Batch 13)
49
+ @use 'components/spinners';
50
+ @use 'components/stat';
51
+ @use 'components/switch'; // Batch 9
52
+ @use 'components/table'; // New
53
+ @use 'components/tag'; // Batch 5
54
+ @use 'components/tags-input'; // Batch 5
55
+ @use 'components/timeline';
56
+ @use 'components/toasts'; // Batch 4
57
+ @use 'components/tooltips'; // Batch 4
58
+ @use 'components/tree-view';
59
+ @use 'components/stepper';
60
+ @use 'components/user'; // New
61
+
62
+ // Utilities
63
+ @use 'utilities/api';
64
+ @use 'utilities/glass';
65
+ @use 'utilities/helpers'; // Added
66
+ @use 'utilities/colors'; // Keep colors separate or merge later if desired, but API handles bg/text usually. Let's keep distinct custom colors if needed, but API covers standard.
67
+ // @use 'utilities/display'; // Removed: Covered by API
68
+ // @use 'utilities/spacing'; // Removed: Covered by API
69
+
70
+ // Documentation Specific Styles
71
+ @use 'docs/layout';
72
+ @use 'docs/search';
73
+ @use "docs/examples";
74
+ @use "pages/landing";
@@ -0,0 +1,37 @@
1
+ @use "../abstracts/variables" as *;
2
+ @use "../abstracts/mixins" as *;
3
+
4
+ .container,
5
+ .container-fluid {
6
+ width: 100%;
7
+ padding-right: 0.75rem;
8
+ padding-left: 0.75rem;
9
+ margin-right: auto;
10
+ margin-left: auto;
11
+ }
12
+
13
+ @each $breakpoint, $width in $grid-breakpoints {
14
+ @include media-up($breakpoint) {
15
+ .container {
16
+ @if $breakpoint ==sm {
17
+ max-width: 540px;
18
+ }
19
+
20
+ @if $breakpoint ==md {
21
+ max-width: 720px;
22
+ }
23
+
24
+ @if $breakpoint ==lg {
25
+ max-width: 960px;
26
+ }
27
+
28
+ @if $breakpoint ==xl {
29
+ max-width: 1140px;
30
+ }
31
+
32
+ @if $breakpoint ==xxl {
33
+ max-width: 1320px;
34
+ }
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,49 @@
1
+ @use "sass:math";
2
+ @use "sass:map";
3
+ @use "../abstracts/variables" as *;
4
+ @use "../abstracts/mixins" as *;
5
+
6
+ .row {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ margin-top: calc(-1 * var(--e-gutter-y, 0));
10
+ margin-right: calc(-.5 * var(--e-gutter-x, 1.5rem));
11
+ margin-left: calc(-.5 * var(--e-gutter-x, 1.5rem));
12
+
13
+ >* {
14
+ flex-shrink: 0;
15
+ width: 100%;
16
+ max-width: 100%;
17
+ padding-right: calc(.5 * var(--e-gutter-x, 1.5rem));
18
+ padding-left: calc(.5 * var(--e-gutter-x, 1.5rem));
19
+ margin-top: var(--e-gutter-y, 0);
20
+ }
21
+ }
22
+
23
+ .col {
24
+ flex: 1 0 0%;
25
+ }
26
+
27
+ @each $breakpoint in map.keys($grid-breakpoints) {
28
+ $infix: "";
29
+
30
+ @if $breakpoint !=xs {
31
+ $infix: "-#{$breakpoint}";
32
+ }
33
+
34
+ @include media-up($breakpoint) {
35
+
36
+ // 12 column grid
37
+ @for $i from 1 through 12 {
38
+ .col#{$infix}-#{$i} {
39
+ flex: 0 0 auto;
40
+ width: math.percentage(math.div($i, 12));
41
+ }
42
+ }
43
+
44
+ .col#{$infix}-auto {
45
+ flex: 0 0 auto;
46
+ width: auto;
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,135 @@
1
+ // ===== Configuration Section =====
2
+ .configuration-section {
3
+ padding: 6rem 0;
4
+ background: #f8fafc;
5
+
6
+ .config-card {
7
+ background: white;
8
+ border-radius: 16px;
9
+ padding: 2rem;
10
+ border: 1px solid #e2e8f0;
11
+ transition: all 0.3s ease;
12
+ height: 100%;
13
+ display: flex;
14
+ flex-direction: column;
15
+
16
+ &:hover {
17
+ transform: translateY(-4px);
18
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
19
+ border-color: #c7d2fe;
20
+ }
21
+
22
+ .config-header {
23
+ display: flex;
24
+ align-items: flex-start;
25
+ gap: 1rem;
26
+ margin-bottom: 1.5rem;
27
+
28
+ .config-icon {
29
+ width: 48px;
30
+ height: 48px;
31
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
32
+ border-radius: 12px;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ color: white;
37
+ font-size: 1.25rem;
38
+ flex-shrink: 0;
39
+ }
40
+
41
+ .config-title {
42
+ font-size: 1.25rem;
43
+ font-weight: 700;
44
+ color: #0f172a;
45
+ margin-bottom: 0.25rem;
46
+ }
47
+
48
+ .config-description {
49
+ color: #64748b;
50
+ margin: 0;
51
+ font-size: 0.875rem;
52
+ }
53
+ }
54
+
55
+ .config-code {
56
+ flex: 1;
57
+ background: #0f172a;
58
+ border-radius: 12px;
59
+ padding: 1.5rem;
60
+ margin-bottom: 1.5rem;
61
+ overflow-x: auto;
62
+
63
+ pre {
64
+ margin: 0;
65
+
66
+ code {
67
+ font-family: 'JetBrains Mono', monospace;
68
+ font-size: 0.875rem;
69
+ line-height: 1.7;
70
+ color: #e2e8f0;
71
+ }
72
+ }
73
+ }
74
+
75
+ .config-features {
76
+ display: flex;
77
+ flex-direction: column;
78
+ gap: 0.75rem;
79
+
80
+ .feature-item {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: 0.5rem;
84
+ font-size: 0.875rem;
85
+ color: #475569;
86
+
87
+ i {
88
+ font-size: 1rem;
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ .config-option {
95
+ text-align: center;
96
+ padding: 2rem 1.5rem;
97
+ background: white;
98
+ border-radius: 12px;
99
+ border: 1px solid #e2e8f0;
100
+ transition: all 0.3s ease;
101
+
102
+ &:hover {
103
+ transform: translateY(-2px);
104
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
105
+ border-color: #c7d2fe;
106
+ }
107
+
108
+ .option-icon {
109
+ width: 56px;
110
+ height: 56px;
111
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
112
+ border-radius: 12px;
113
+ display: flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ margin: 0 auto 1rem;
117
+ color: #6366f1;
118
+ font-size: 1.5rem;
119
+ }
120
+
121
+ .option-title {
122
+ font-size: 1.125rem;
123
+ font-weight: 700;
124
+ color: #0f172a;
125
+ margin-bottom: 0.5rem;
126
+ }
127
+
128
+ .option-description {
129
+ color: #64748b;
130
+ margin: 0;
131
+ font-size: 0.875rem;
132
+ line-height: 1.5;
133
+ }
134
+ }
135
+ }