@keenmate/pure-admin-core 2.3.1 → 2.3.2
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/README.md +5 -5
- package/dist/css/main.css +187 -178
- package/package.json +1 -1
- package/snippets/buttons.html +375 -365
- package/src/scss/_base-css-variables.scss +8 -0
- package/src/scss/_core.scss +121 -121
- package/src/scss/core-components/_alerts.scss +227 -227
- package/src/scss/core-components/_badges.scss +16 -16
- package/src/scss/core-components/_base.scss +125 -125
- package/src/scss/core-components/_buttons.scss +31 -16
- package/src/scss/core-components/_callouts.scss +152 -152
- package/src/scss/core-components/_cards.scss +488 -488
- package/src/scss/core-components/_checkbox-lists.scss +289 -289
- package/src/scss/core-components/_code.scss +141 -141
- package/src/scss/core-components/_command-palette.scss +509 -509
- package/src/scss/core-components/_comparison.scss +172 -172
- package/src/scss/core-components/_data-display.scss +9 -9
- package/src/scss/core-components/_data-viz.scss +9 -9
- package/src/scss/core-components/_detail-panel.scss +1 -1
- package/src/scss/core-components/_file-selector.scss +780 -780
- package/src/scss/core-components/_filter-card.scss +58 -58
- package/src/scss/core-components/_forms.scss +16 -16
- package/src/scss/core-components/_grid.scss +293 -293
- package/src/scss/core-components/_layout.scss +15 -15
- package/src/scss/core-components/_lists.scss +211 -211
- package/src/scss/core-components/_loaders.scss +277 -277
- package/src/scss/core-components/_logic-tree.scss +280 -280
- package/src/scss/core-components/_modals.scss +203 -203
- package/src/scss/core-components/_notifications.scss +320 -320
- package/src/scss/core-components/_pagers.scss +141 -141
- package/src/scss/core-components/_popconfirm.scss +170 -170
- package/src/scss/core-components/_profile.scss +405 -405
- package/src/scss/core-components/_scrollbars.scss +40 -40
- package/src/scss/core-components/_settings-panel.scss +141 -141
- package/src/scss/core-components/_statistics.scss +200 -201
- package/src/scss/core-components/_tables.scss +900 -900
- package/src/scss/core-components/_tabs.scss +504 -504
- package/src/scss/core-components/_timeline.scss +589 -589
- package/src/scss/core-components/_toasts.scss +425 -425
- package/src/scss/core-components/_tooltips.scss +605 -605
- package/src/scss/core-components/_utilities.scss +1 -1
- package/src/scss/core-components/_web-components-theme.scss +21 -21
- package/src/scss/core-components/badges/_badge-base.scss +121 -121
- package/src/scss/core-components/badges/_badge-group.scss +25 -25
- package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
- package/src/scss/core-components/badges/_composite-badge.scss +70 -70
- package/src/scss/core-components/badges/_index.scss +10 -10
- package/src/scss/core-components/badges/_labels.scss +155 -155
- package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
- package/src/scss/core-components/forms/_form-inputs.scss +3 -3
- package/src/scss/core-components/forms/_form-layout.scss +66 -66
- package/src/scss/core-components/forms/_form-states.scss +115 -115
- package/src/scss/core-components/forms/_index.scss +12 -12
- package/src/scss/core-components/forms/_input-groups.scss +154 -154
- package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
- package/src/scss/core-components/forms/_query-editor.scss +313 -313
- package/src/scss/core-components/layout/_index.scss +11 -11
- package/src/scss/core-components/layout/_layout-container.scss +168 -168
- package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
- package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
- package/src/scss/core-components/layout/_navbar.scss +83 -83
- package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
- package/src/scss/core-components/layout/_sidebar.scss +234 -234
- package/src/scss/main.scss +7 -7
- package/src/scss/utilities.scss +740 -740
- package/src/scss/variables/_base.scss +228 -228
- package/src/scss/variables/_components.scss +748 -748
- package/src/scss/variables/_layout.scss +65 -65
- 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';
|