@keenmate/pure-admin-core 2.3.1 → 2.3.3

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 (70) hide show
  1. package/README.md +30 -9
  2. package/dist/css/main.css +205 -190
  3. package/package.json +1 -1
  4. package/snippets/buttons.html +375 -365
  5. package/snippets/command-palette.html +15 -13
  6. package/src/scss/_base-css-variables.scss +10 -0
  7. package/src/scss/_core.scss +121 -121
  8. package/src/scss/core-components/_alerts.scss +227 -227
  9. package/src/scss/core-components/_badges.scss +16 -16
  10. package/src/scss/core-components/_base.scss +125 -125
  11. package/src/scss/core-components/_buttons.scss +31 -16
  12. package/src/scss/core-components/_callouts.scss +152 -152
  13. package/src/scss/core-components/_cards.scss +488 -488
  14. package/src/scss/core-components/_checkbox-lists.scss +289 -289
  15. package/src/scss/core-components/_code.scss +141 -141
  16. package/src/scss/core-components/_command-palette.scss +518 -509
  17. package/src/scss/core-components/_comparison.scss +172 -172
  18. package/src/scss/core-components/_data-display.scss +9 -9
  19. package/src/scss/core-components/_data-viz.scss +9 -9
  20. package/src/scss/core-components/_detail-panel.scss +1 -1
  21. package/src/scss/core-components/_file-selector.scss +780 -780
  22. package/src/scss/core-components/_filter-card.scss +58 -58
  23. package/src/scss/core-components/_forms.scss +16 -16
  24. package/src/scss/core-components/_grid.scss +293 -293
  25. package/src/scss/core-components/_layout.scss +15 -15
  26. package/src/scss/core-components/_lists.scss +211 -211
  27. package/src/scss/core-components/_loaders.scss +277 -277
  28. package/src/scss/core-components/_logic-tree.scss +280 -280
  29. package/src/scss/core-components/_modals.scss +203 -203
  30. package/src/scss/core-components/_notifications.scss +320 -320
  31. package/src/scss/core-components/_pagers.scss +141 -141
  32. package/src/scss/core-components/_popconfirm.scss +170 -170
  33. package/src/scss/core-components/_profile.scss +405 -405
  34. package/src/scss/core-components/_scrollbars.scss +40 -40
  35. package/src/scss/core-components/_settings-panel.scss +141 -141
  36. package/src/scss/core-components/_statistics.scss +200 -201
  37. package/src/scss/core-components/_tables.scss +900 -900
  38. package/src/scss/core-components/_tabs.scss +504 -504
  39. package/src/scss/core-components/_timeline.scss +589 -589
  40. package/src/scss/core-components/_toasts.scss +425 -425
  41. package/src/scss/core-components/_tooltips.scss +605 -605
  42. package/src/scss/core-components/_utilities.scss +1 -1
  43. package/src/scss/core-components/_web-components-theme.scss +21 -21
  44. package/src/scss/core-components/badges/_badge-base.scss +121 -121
  45. package/src/scss/core-components/badges/_badge-group.scss +25 -25
  46. package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
  47. package/src/scss/core-components/badges/_composite-badge.scss +70 -70
  48. package/src/scss/core-components/badges/_index.scss +10 -10
  49. package/src/scss/core-components/badges/_labels.scss +155 -155
  50. package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
  51. package/src/scss/core-components/forms/_form-inputs.scss +3 -3
  52. package/src/scss/core-components/forms/_form-layout.scss +66 -66
  53. package/src/scss/core-components/forms/_form-states.scss +115 -115
  54. package/src/scss/core-components/forms/_index.scss +12 -12
  55. package/src/scss/core-components/forms/_input-groups.scss +154 -154
  56. package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
  57. package/src/scss/core-components/forms/_query-editor.scss +313 -313
  58. package/src/scss/core-components/layout/_index.scss +11 -11
  59. package/src/scss/core-components/layout/_layout-container.scss +168 -168
  60. package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
  61. package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
  62. package/src/scss/core-components/layout/_navbar.scss +83 -83
  63. package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
  64. package/src/scss/core-components/layout/_sidebar.scss +234 -234
  65. package/src/scss/main.scss +7 -7
  66. package/src/scss/utilities.scss +740 -740
  67. package/src/scss/variables/_base.scss +228 -228
  68. package/src/scss/variables/_components.scss +748 -748
  69. package/src/scss/variables/_layout.scss +65 -65
  70. package/src/scss/variables/_typography.scss +37 -37
@@ -1,293 +1,293 @@
1
- // ============================================================================
2
- // NATIVE GRID SYSTEM
3
- // ============================================================================
4
- // Flexbox-based grid with percentage and fraction columns
5
- // Replaces PureCSS grid dependency
6
- @use '../variables' as *;
7
- //
8
- // Naming convention:
9
- // - .pa-row → flex container
10
- // - .pa-col → auto-equal width column
11
- // - .pa-col-{n} → percentage width in 5% increments (5, 10, 15... 100)
12
- // - .pa-col-{x}-{y} → fraction width (1-2, 1-3, 2-3, 1-4, 3-4, 1-6, 5-6, etc.)
13
- // - .pa-col-{bp}-{n} → responsive variants (sm, md, lg, xl)
14
- // - .pa-offset-{n} → left margin offset
15
- // ============================================================================
16
-
17
- @use "sass:math";
18
-
19
- // Configuration (note: $grid-breakpoints is in _variables.scss for shared use)
20
- $grid-gutter: 0.8rem !default; // 8px gutter on each side (with 10px base), total gap = 16px
21
-
22
- // Column sizes - 5% increments (n*5, n=1-20)
23
- $grid-columns-5: (5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100);
24
-
25
- // Column sizes - fractions (for unintuitive percentages)
26
- $grid-columns-fractions: (
27
- '1-2': 50%,
28
- '1-3': 33.333%,
29
- '2-3': 66.667%,
30
- '1-4': 25%,
31
- '3-4': 75%,
32
- '1-5': 20%,
33
- '2-5': 40%,
34
- '3-5': 60%,
35
- '4-5': 80%,
36
- '1-6': 16.667%,
37
- '5-6': 83.333%,
38
- '1-12': 8.333%,
39
- '5-12': 41.667%,
40
- '7-12': 58.333%,
41
- '11-12': 91.667%
42
- );
43
-
44
- // ============================================================================
45
- // ROW (Container)
46
- // ============================================================================
47
- .pa-row {
48
- display: flex;
49
- flex-wrap: wrap;
50
- margin-inline: -$grid-gutter; // RTL: flips automatically
51
- row-gap: $grid-gutter; // Vertical gap when columns wrap (half the horizontal gutter total)
52
-
53
- // Nested rows reset margins
54
- .pa-row {
55
- margin-inline: 0;
56
- }
57
- }
58
-
59
- // Row modifiers
60
- .pa-row--no-gutter {
61
- margin-inline: 0;
62
-
63
- > [class*="pa-col"] {
64
- padding-inline: 0;
65
- }
66
- }
67
-
68
- .pa-row--center {
69
- justify-content: center;
70
- }
71
-
72
- .pa-row--end {
73
- justify-content: flex-end;
74
- }
75
-
76
- .pa-row--between {
77
- justify-content: space-between;
78
- }
79
-
80
- .pa-row--around {
81
- justify-content: space-around;
82
- }
83
-
84
- .pa-row--stretch {
85
- align-items: stretch;
86
- }
87
-
88
- .pa-row--top {
89
- align-items: flex-start;
90
- }
91
-
92
- .pa-row--middle {
93
- align-items: center;
94
- }
95
-
96
- .pa-row--bottom {
97
- align-items: flex-end;
98
- }
99
-
100
- .pa-row--same-height {
101
- > [class*="pa-col"] {
102
- > .pa-card {
103
- height: 100%;
104
- }
105
- }
106
- }
107
-
108
- // ============================================================================
109
- // COLUMN (Base)
110
- // ============================================================================
111
- .pa-col {
112
- flex: 1;
113
- padding-inline: $grid-gutter; // RTL: flips automatically
114
- min-width: 0; // Prevent content overflow
115
- }
116
-
117
- // Auto-width column
118
- .pa-col-auto {
119
- flex: 0 0 auto;
120
- width: auto;
121
- padding-inline: $grid-gutter;
122
- }
123
-
124
- // ============================================================================
125
- // PERCENTAGE COLUMNS (Base - 5% increments)
126
- // ============================================================================
127
- @each $size in $grid-columns-5 {
128
- .pa-col-#{$size} {
129
- flex: 0 0 math.percentage(math.div($size, 100));
130
- max-width: math.percentage(math.div($size, 100));
131
- padding-inline: $grid-gutter; // RTL: flips automatically
132
- min-width: 0; // Prevent content overflow
133
- }
134
- }
135
-
136
- // ============================================================================
137
- // FRACTION COLUMNS (Base - intuitive naming)
138
- // ============================================================================
139
- @each $name, $width in $grid-columns-fractions {
140
- .pa-col-#{$name} {
141
- flex: 0 0 $width;
142
- max-width: $width;
143
- padding-inline: $grid-gutter; // RTL: flips automatically
144
- min-width: 0; // Prevent content overflow
145
- }
146
- }
147
-
148
- // ============================================================================
149
- // OFFSETS (Base - 5% increments)
150
- // ============================================================================
151
- @each $size in $grid-columns-5 {
152
- @if $size < 100 {
153
- .pa-offset-#{$size} {
154
- margin-inline-start: math.percentage(math.div($size, 100)); // RTL: flips to margin-right
155
- }
156
- }
157
- }
158
-
159
- // ============================================================================
160
- // RESPONSIVE COLUMNS & OFFSETS (Container-query based)
161
- // Requires a containment context ancestor: .pa-layout__main (automatic) or .pa-cq
162
- // ============================================================================
163
- @each $bp, $min-width in $grid-breakpoints {
164
- @container (min-width: #{$min-width}) {
165
- // Responsive percentage columns (5% increments)
166
- @each $size in $grid-columns-5 {
167
- .pa-col-#{$bp}-#{$size} {
168
- flex: 0 0 math.percentage(math.div($size, 100));
169
- max-width: math.percentage(math.div($size, 100));
170
- padding-inline: $grid-gutter; // RTL: flips automatically
171
- min-width: 0; // Prevent content overflow
172
- }
173
- }
174
-
175
- // Responsive fraction columns
176
- @each $name, $width in $grid-columns-fractions {
177
- .pa-col-#{$bp}-#{$name} {
178
- flex: 0 0 $width;
179
- max-width: $width;
180
- padding-inline: $grid-gutter; // RTL: flips automatically
181
- min-width: 0; // Prevent content overflow
182
- }
183
- }
184
-
185
- // Responsive offsets (5% increments)
186
- @each $size in $grid-columns-5 {
187
- @if $size < 100 {
188
- .pa-offset-#{$bp}-#{$size} {
189
- margin-inline-start: math.percentage(math.div($size, 100)); // RTL: flips to margin-right
190
- }
191
- }
192
- }
193
-
194
- // Responsive auto column
195
- .pa-col-#{$bp}-auto {
196
- flex: 0 0 auto;
197
- width: auto;
198
- }
199
- }
200
- }
201
-
202
- // ============================================================================
203
- // COLUMN MODIFIERS
204
- // ============================================================================
205
- .pa-col--no-padding {
206
- padding-inline: 0;
207
- }
208
-
209
- .pa-col--grow {
210
- flex-grow: 1;
211
- }
212
-
213
- .pa-col--shrink {
214
- flex-shrink: 1;
215
- }
216
-
217
- // ============================================================================
218
- // VISIBILITY HELPERS (Responsive)
219
- // ============================================================================
220
- .pa-hide {
221
- display: none !important;
222
- }
223
-
224
- .pa-show {
225
- display: block !important;
226
- }
227
-
228
- @each $bp, $min-width in $grid-breakpoints {
229
- // Hide at breakpoint and up
230
- @media (min-width: $min-width) {
231
- .pa-hide-#{$bp} {
232
- display: none !important;
233
- }
234
-
235
- .pa-show-#{$bp} {
236
- display: block !important;
237
- }
238
- }
239
-
240
- // Hide below breakpoint
241
- @media (max-width: $min-width - 1px) {
242
- .pa-hide-below-#{$bp} {
243
- display: none !important;
244
- }
245
-
246
- .pa-show-below-#{$bp} {
247
- display: block !important;
248
- }
249
- }
250
- }
251
-
252
- // ============================================================================
253
- // REMOVE BOTTOM PADDING IN CARDS
254
- // ============================================================================
255
- // Remove bottom padding from grid columns inside cards to avoid conflicts
256
- .pa-card__body .pa-row > [class*="pa-col"] {
257
- padding-bottom: 0;
258
- }
259
-
260
- // ============================================================================
261
- // AUTO-STACK ON MOBILE
262
- // ============================================================================
263
- // Base percentage/fraction columns auto-stack to 100% on mobile
264
- // Use explicit responsive classes (pa-col-sm-*, pa-col-md-*) to override
265
- @media (max-width: $mobile-breakpoint) {
266
- // Stack percentage columns
267
- @each $size in $grid-columns-5 {
268
- @if $size < 100 {
269
- .pa-col-#{$size} {
270
- flex: 0 0 100%;
271
- max-width: 100%;
272
- }
273
- }
274
- }
275
-
276
- // Stack fraction columns
277
- @each $name, $width in $grid-columns-fractions {
278
- .pa-col-#{$name} {
279
- flex: 0 0 100%;
280
- max-width: 100%;
281
- }
282
- }
283
-
284
- // Reset base offsets when stacking
285
- @each $size in $grid-columns-5 {
286
- @if $size < 100 {
287
- .pa-offset-#{$size} {
288
- margin-inline-start: 0;
289
- }
290
- }
291
- }
292
- }
293
-
1
+ // ============================================================================
2
+ // NATIVE GRID SYSTEM
3
+ // ============================================================================
4
+ // Flexbox-based grid with percentage and fraction columns
5
+ // Replaces PureCSS grid dependency
6
+ @use '../variables' as *;
7
+ //
8
+ // Naming convention:
9
+ // - .pa-row → flex container
10
+ // - .pa-col → auto-equal width column
11
+ // - .pa-col-{n} → percentage width in 5% increments (5, 10, 15... 100)
12
+ // - .pa-col-{x}-{y} → fraction width (1-2, 1-3, 2-3, 1-4, 3-4, 1-6, 5-6, etc.)
13
+ // - .pa-col-{bp}-{n} → responsive variants (sm, md, lg, xl)
14
+ // - .pa-offset-{n} → left margin offset
15
+ // ============================================================================
16
+
17
+ @use "sass:math";
18
+
19
+ // Configuration (note: $grid-breakpoints is in _variables.scss for shared use)
20
+ $grid-gutter: 0.8rem !default; // 8px gutter on each side (with 10px base), total gap = 16px
21
+
22
+ // Column sizes - 5% increments (n*5, n=1-20)
23
+ $grid-columns-5: (5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100);
24
+
25
+ // Column sizes - fractions (for unintuitive percentages)
26
+ $grid-columns-fractions: (
27
+ '1-2': 50%,
28
+ '1-3': 33.333%,
29
+ '2-3': 66.667%,
30
+ '1-4': 25%,
31
+ '3-4': 75%,
32
+ '1-5': 20%,
33
+ '2-5': 40%,
34
+ '3-5': 60%,
35
+ '4-5': 80%,
36
+ '1-6': 16.667%,
37
+ '5-6': 83.333%,
38
+ '1-12': 8.333%,
39
+ '5-12': 41.667%,
40
+ '7-12': 58.333%,
41
+ '11-12': 91.667%
42
+ );
43
+
44
+ // ============================================================================
45
+ // ROW (Container)
46
+ // ============================================================================
47
+ .pa-row {
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ margin-inline: -$grid-gutter; // RTL: flips automatically
51
+ row-gap: $grid-gutter; // Vertical gap when columns wrap (half the horizontal gutter total)
52
+
53
+ // Nested rows reset margins
54
+ .pa-row {
55
+ margin-inline: 0;
56
+ }
57
+ }
58
+
59
+ // Row modifiers
60
+ .pa-row--no-gutter {
61
+ margin-inline: 0;
62
+
63
+ > [class*="pa-col"] {
64
+ padding-inline: 0;
65
+ }
66
+ }
67
+
68
+ .pa-row--center {
69
+ justify-content: center;
70
+ }
71
+
72
+ .pa-row--end {
73
+ justify-content: flex-end;
74
+ }
75
+
76
+ .pa-row--between {
77
+ justify-content: space-between;
78
+ }
79
+
80
+ .pa-row--around {
81
+ justify-content: space-around;
82
+ }
83
+
84
+ .pa-row--stretch {
85
+ align-items: stretch;
86
+ }
87
+
88
+ .pa-row--top {
89
+ align-items: flex-start;
90
+ }
91
+
92
+ .pa-row--middle {
93
+ align-items: center;
94
+ }
95
+
96
+ .pa-row--bottom {
97
+ align-items: flex-end;
98
+ }
99
+
100
+ .pa-row--same-height {
101
+ > [class*="pa-col"] {
102
+ > .pa-card {
103
+ height: 100%;
104
+ }
105
+ }
106
+ }
107
+
108
+ // ============================================================================
109
+ // COLUMN (Base)
110
+ // ============================================================================
111
+ .pa-col {
112
+ flex: 1;
113
+ padding-inline: $grid-gutter; // RTL: flips automatically
114
+ min-width: 0; // Prevent content overflow
115
+ }
116
+
117
+ // Auto-width column
118
+ .pa-col-auto {
119
+ flex: 0 0 auto;
120
+ width: auto;
121
+ padding-inline: $grid-gutter;
122
+ }
123
+
124
+ // ============================================================================
125
+ // PERCENTAGE COLUMNS (Base - 5% increments)
126
+ // ============================================================================
127
+ @each $size in $grid-columns-5 {
128
+ .pa-col-#{$size} {
129
+ flex: 0 0 math.percentage(math.div($size, 100));
130
+ max-width: math.percentage(math.div($size, 100));
131
+ padding-inline: $grid-gutter; // RTL: flips automatically
132
+ min-width: 0; // Prevent content overflow
133
+ }
134
+ }
135
+
136
+ // ============================================================================
137
+ // FRACTION COLUMNS (Base - intuitive naming)
138
+ // ============================================================================
139
+ @each $name, $width in $grid-columns-fractions {
140
+ .pa-col-#{$name} {
141
+ flex: 0 0 $width;
142
+ max-width: $width;
143
+ padding-inline: $grid-gutter; // RTL: flips automatically
144
+ min-width: 0; // Prevent content overflow
145
+ }
146
+ }
147
+
148
+ // ============================================================================
149
+ // OFFSETS (Base - 5% increments)
150
+ // ============================================================================
151
+ @each $size in $grid-columns-5 {
152
+ @if $size < 100 {
153
+ .pa-offset-#{$size} {
154
+ margin-inline-start: math.percentage(math.div($size, 100)); // RTL: flips to margin-right
155
+ }
156
+ }
157
+ }
158
+
159
+ // ============================================================================
160
+ // RESPONSIVE COLUMNS & OFFSETS (Container-query based)
161
+ // Requires a containment context ancestor: .pa-layout__main (automatic) or .pa-cq
162
+ // ============================================================================
163
+ @each $bp, $min-width in $grid-breakpoints {
164
+ @container (min-width: #{$min-width}) {
165
+ // Responsive percentage columns (5% increments)
166
+ @each $size in $grid-columns-5 {
167
+ .pa-col-#{$bp}-#{$size} {
168
+ flex: 0 0 math.percentage(math.div($size, 100));
169
+ max-width: math.percentage(math.div($size, 100));
170
+ padding-inline: $grid-gutter; // RTL: flips automatically
171
+ min-width: 0; // Prevent content overflow
172
+ }
173
+ }
174
+
175
+ // Responsive fraction columns
176
+ @each $name, $width in $grid-columns-fractions {
177
+ .pa-col-#{$bp}-#{$name} {
178
+ flex: 0 0 $width;
179
+ max-width: $width;
180
+ padding-inline: $grid-gutter; // RTL: flips automatically
181
+ min-width: 0; // Prevent content overflow
182
+ }
183
+ }
184
+
185
+ // Responsive offsets (5% increments)
186
+ @each $size in $grid-columns-5 {
187
+ @if $size < 100 {
188
+ .pa-offset-#{$bp}-#{$size} {
189
+ margin-inline-start: math.percentage(math.div($size, 100)); // RTL: flips to margin-right
190
+ }
191
+ }
192
+ }
193
+
194
+ // Responsive auto column
195
+ .pa-col-#{$bp}-auto {
196
+ flex: 0 0 auto;
197
+ width: auto;
198
+ }
199
+ }
200
+ }
201
+
202
+ // ============================================================================
203
+ // COLUMN MODIFIERS
204
+ // ============================================================================
205
+ .pa-col--no-padding {
206
+ padding-inline: 0;
207
+ }
208
+
209
+ .pa-col--grow {
210
+ flex-grow: 1;
211
+ }
212
+
213
+ .pa-col--shrink {
214
+ flex-shrink: 1;
215
+ }
216
+
217
+ // ============================================================================
218
+ // VISIBILITY HELPERS (Responsive)
219
+ // ============================================================================
220
+ .pa-hide {
221
+ display: none !important;
222
+ }
223
+
224
+ .pa-show {
225
+ display: block !important;
226
+ }
227
+
228
+ @each $bp, $min-width in $grid-breakpoints {
229
+ // Hide at breakpoint and up
230
+ @media (min-width: $min-width) {
231
+ .pa-hide-#{$bp} {
232
+ display: none !important;
233
+ }
234
+
235
+ .pa-show-#{$bp} {
236
+ display: block !important;
237
+ }
238
+ }
239
+
240
+ // Hide below breakpoint
241
+ @media (max-width: $min-width - 1px) {
242
+ .pa-hide-below-#{$bp} {
243
+ display: none !important;
244
+ }
245
+
246
+ .pa-show-below-#{$bp} {
247
+ display: block !important;
248
+ }
249
+ }
250
+ }
251
+
252
+ // ============================================================================
253
+ // REMOVE BOTTOM PADDING IN CARDS
254
+ // ============================================================================
255
+ // Remove bottom padding from grid columns inside cards to avoid conflicts
256
+ .pa-card__body .pa-row > [class*="pa-col"] {
257
+ padding-bottom: 0;
258
+ }
259
+
260
+ // ============================================================================
261
+ // AUTO-STACK ON MOBILE
262
+ // ============================================================================
263
+ // Base percentage/fraction columns auto-stack to 100% on mobile
264
+ // Use explicit responsive classes (pa-col-sm-*, pa-col-md-*) to override
265
+ @media (max-width: $mobile-breakpoint) {
266
+ // Stack percentage columns
267
+ @each $size in $grid-columns-5 {
268
+ @if $size < 100 {
269
+ .pa-col-#{$size} {
270
+ flex: 0 0 100%;
271
+ max-width: 100%;
272
+ }
273
+ }
274
+ }
275
+
276
+ // Stack fraction columns
277
+ @each $name, $width in $grid-columns-fractions {
278
+ .pa-col-#{$name} {
279
+ flex: 0 0 100%;
280
+ max-width: 100%;
281
+ }
282
+ }
283
+
284
+ // Reset base offsets when stacking
285
+ @each $size in $grid-columns-5 {
286
+ @if $size < 100 {
287
+ .pa-offset-#{$size} {
288
+ margin-inline-start: 0;
289
+ }
290
+ }
291
+ }
292
+ }
293
+
@@ -1,15 +1,15 @@
1
- /* ========================================
2
- Layout V2 - Based on Testbench Structure
3
- ======================================== */
4
-
5
- // ============================================================================
6
- // BACKWARD COMPATIBILITY AGGREGATOR
7
- // This file re-exports all layout components from the modular layout/ directory.
8
- // For new code, prefer importing from layout/ directly:
9
- // @use 'layout' as *;
10
- // or specific modules:
11
- // @use 'layout/navbar';
12
- // @use 'layout/sidebar';
13
- // ============================================================================
14
-
15
- @forward 'layout/index';
1
+ /* ========================================
2
+ Layout V2 - Based on Testbench Structure
3
+ ======================================== */
4
+
5
+ // ============================================================================
6
+ // BACKWARD COMPATIBILITY AGGREGATOR
7
+ // This file re-exports all layout components from the modular layout/ directory.
8
+ // For new code, prefer importing from layout/ directly:
9
+ // @use 'layout' as *;
10
+ // or specific modules:
11
+ // @use 'layout/navbar';
12
+ // @use 'layout/sidebar';
13
+ // ============================================================================
14
+
15
+ @forward 'layout/index';