@keenmate/pure-admin-core 1.4.0 → 1.5.0
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 +8 -8
- package/dist/css/main.css +167 -65
- package/package.json +6 -5
- package/snippets/buttons.html +4 -4
- package/snippets/forms.html +534 -534
- package/snippets/layout.html +11 -11
- package/snippets/tables.html +8 -8
- package/snippets/tabs.html +6 -6
- package/snippets/timeline.html +24 -24
- package/snippets/tooltips.html +2 -2
- package/snippets/typography.html +101 -101
- package/snippets/utilities.html +3 -3
- package/src/scss/core-components/_buttons.scss +2 -2
- package/src/scss/core-components/_cards.scss +41 -0
- package/src/scss/core-components/_detail-panel.scss +7 -2
- package/src/scss/core-components/_pagers.scss +4 -4
- package/src/scss/core-components/_tables.scss +54 -4
- package/src/scss/core-components/_tabs.scss +0 -2
- package/src/scss/core-components/_timeline.scss +4 -4
- package/src/scss/core-components/_tooltips.scss +1 -2
- package/src/scss/core-components/_utilities.scss +24 -11
- package/src/scss/core-components/layout/_layout-container.scss +7 -7
- package/src/scss/core-components/layout/_navbar-elements.scss +5 -5
- package/src/scss/core-components/layout/_navbar.scss +3 -3
- package/src/scss/utilities.scss +0 -8
- package/src/scss/variables/_system.scss +1 -0
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
justify-content: center;
|
|
22
22
|
|
|
23
23
|
// Positioning modifiers
|
|
24
|
-
&--
|
|
24
|
+
&--start {
|
|
25
25
|
justify-content: flex-start;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
justify-content: center;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
&--
|
|
32
|
+
&--end {
|
|
33
33
|
justify-content: flex-end;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
justify-content: center;
|
|
80
80
|
|
|
81
81
|
// Positioning modifiers
|
|
82
|
-
&--
|
|
82
|
+
&--start {
|
|
83
83
|
justify-content: flex-start;
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
justify-content: center;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
&--
|
|
90
|
+
&--end {
|
|
91
91
|
justify-content: flex-end;
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -79,6 +79,14 @@
|
|
|
79
79
|
box-shadow: $shadow-lg;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
// When containing a detail view, allow body to establish positioning context
|
|
83
|
+
&:has(.pa-detail-view) {
|
|
84
|
+
.pa-table-card__body {
|
|
85
|
+
position: relative;
|
|
86
|
+
overflow: hidden; // Clip detail panel to card boundaries
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
82
90
|
&__header {
|
|
83
91
|
padding: $card-header-padding-v $card-header-padding-h;
|
|
84
92
|
min-height: $card-header-min-height;
|
|
@@ -162,6 +170,39 @@
|
|
|
162
170
|
border-bottom: none;
|
|
163
171
|
}
|
|
164
172
|
}
|
|
173
|
+
|
|
174
|
+
// Detail view inside table card body
|
|
175
|
+
// Supports both inline split-view and overlay modes
|
|
176
|
+
.pa-detail-view {
|
|
177
|
+
height: 100%;
|
|
178
|
+
|
|
179
|
+
// Table inside detail view main area
|
|
180
|
+
.pa-detail-view__main {
|
|
181
|
+
.pa-table {
|
|
182
|
+
border-radius: 0;
|
|
183
|
+
|
|
184
|
+
th:first-child,
|
|
185
|
+
td:first-child {
|
|
186
|
+
padding-inline-start: $card-header-padding-h;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
th:last-child,
|
|
190
|
+
td:last-child {
|
|
191
|
+
padding-inline-end: $card-header-padding-h;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
tbody tr:last-child td {
|
|
195
|
+
border-bottom: none;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// web-grid inside detail view
|
|
200
|
+
web-grid {
|
|
201
|
+
--wg-cell-padding-left: #{$card-header-padding-h};
|
|
202
|
+
--wg-cell-padding-right: #{$card-header-padding-h};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
165
206
|
}
|
|
166
207
|
|
|
167
208
|
&__footer {
|
|
@@ -263,6 +304,15 @@
|
|
|
263
304
|
padding-inline: 0;
|
|
264
305
|
}
|
|
265
306
|
|
|
307
|
+
// Body in plain mode with detail view - ensure proper containment
|
|
308
|
+
.pa-table-card__body {
|
|
309
|
+
// When containing overlay detail view, establish positioning context
|
|
310
|
+
&:has(.pa-detail-view--overlay) {
|
|
311
|
+
position: relative;
|
|
312
|
+
overflow: hidden;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
266
316
|
// Footer in plain mode
|
|
267
317
|
.pa-table-card__footer {
|
|
268
318
|
background: transparent;
|
|
@@ -431,7 +481,7 @@
|
|
|
431
481
|
justify-content: center;
|
|
432
482
|
|
|
433
483
|
// Positioning modifiers
|
|
434
|
-
&--
|
|
484
|
+
&--start {
|
|
435
485
|
justify-content: flex-start;
|
|
436
486
|
}
|
|
437
487
|
|
|
@@ -439,7 +489,7 @@
|
|
|
439
489
|
justify-content: center;
|
|
440
490
|
}
|
|
441
491
|
|
|
442
|
-
&--
|
|
492
|
+
&--end {
|
|
443
493
|
justify-content: flex-end;
|
|
444
494
|
}
|
|
445
495
|
|
|
@@ -489,7 +539,7 @@
|
|
|
489
539
|
justify-content: center;
|
|
490
540
|
|
|
491
541
|
// Positioning modifiers
|
|
492
|
-
&--
|
|
542
|
+
&--start {
|
|
493
543
|
justify-content: flex-start;
|
|
494
544
|
}
|
|
495
545
|
|
|
@@ -497,7 +547,7 @@
|
|
|
497
547
|
justify-content: center;
|
|
498
548
|
}
|
|
499
549
|
|
|
500
|
-
&--
|
|
550
|
+
&--end {
|
|
501
551
|
justify-content: flex-end;
|
|
502
552
|
}
|
|
503
553
|
|
|
@@ -227,7 +227,6 @@
|
|
|
227
227
|
background: linear-gradient(to right, var(--pa-main-bg), color-mix(in srgb, var(--pa-main-bg) 80%, transparent));
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
&--left,
|
|
231
230
|
&--start {
|
|
232
231
|
inset-inline-start: 0; // RTL: flips to right
|
|
233
232
|
background: linear-gradient(to right, color-mix(in srgb, var(--pa-main-bg) 95%, transparent), transparent);
|
|
@@ -237,7 +236,6 @@
|
|
|
237
236
|
}
|
|
238
237
|
}
|
|
239
238
|
|
|
240
|
-
&--right,
|
|
241
239
|
&--end {
|
|
242
240
|
inset-inline-end: 0; // RTL: flips to left
|
|
243
241
|
background: linear-gradient(to left, color-mix(in srgb, var(--pa-main-bg) 95%, transparent), transparent);
|
|
@@ -375,8 +375,8 @@
|
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
|
|
378
|
-
// Modifier: All items on
|
|
379
|
-
&.pa-timeline--
|
|
378
|
+
// Modifier: All items on start side
|
|
379
|
+
&.pa-timeline--start {
|
|
380
380
|
&::after {
|
|
381
381
|
left: $timeline-block-responsive-line-left;
|
|
382
382
|
}
|
|
@@ -412,8 +412,8 @@
|
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
-
// Modifier: All items on
|
|
416
|
-
&.pa-timeline--
|
|
415
|
+
// Modifier: All items on end side
|
|
416
|
+
&.pa-timeline--end {
|
|
417
417
|
&::after {
|
|
418
418
|
right: $timeline-block-responsive-line-left;
|
|
419
419
|
left: auto;
|
|
@@ -94,6 +94,24 @@ html.font-size-xlarge {
|
|
|
94
94
|
.max-h-40x { max-height: 40rem; } // 640px
|
|
95
95
|
.max-h-50x { max-height: 50rem; } // 800px
|
|
96
96
|
|
|
97
|
+
// Percentage-based height utilities - for filling available space
|
|
98
|
+
.h-full { height: 100%; }
|
|
99
|
+
.h-screen { height: 100vh; }
|
|
100
|
+
.min-h-full { min-height: 100%; }
|
|
101
|
+
.min-h-screen { min-height: 100vh; }
|
|
102
|
+
.max-h-full { max-height: 100%; }
|
|
103
|
+
.max-h-screen { max-height: 100vh; }
|
|
104
|
+
|
|
105
|
+
// Flex utilities - for filling available space in flex containers
|
|
106
|
+
.flex-1 { flex: 1 1 0%; } // Grow and shrink equally, ignore content size
|
|
107
|
+
.flex-auto { flex: 1 1 auto; } // Grow and shrink, based on content size
|
|
108
|
+
.flex-initial { flex: 0 1 auto; } // Shrink but don't grow (default)
|
|
109
|
+
.flex-none { flex: none; } // Don't grow or shrink
|
|
110
|
+
.flex-grow { flex-grow: 1; } // Grow to fill space
|
|
111
|
+
.flex-grow-0 { flex-grow: 0; } // Don't grow
|
|
112
|
+
.flex-shrink { flex-shrink: 1; } // Allow shrinking
|
|
113
|
+
.flex-shrink-0 { flex-shrink: 0; } // Don't shrink
|
|
114
|
+
|
|
97
115
|
// Overflow utilities - pair with height/max-height for scrollable content
|
|
98
116
|
.overflow-auto { overflow: auto; }
|
|
99
117
|
.overflow-y-auto { overflow-y: auto; }
|
|
@@ -118,6 +136,12 @@ html.font-size-xlarge {
|
|
|
118
136
|
overflow-x: overlay;
|
|
119
137
|
}
|
|
120
138
|
|
|
139
|
+
// Scroll lock - prevents body scrolling when overlays are open
|
|
140
|
+
// Apply to <body> element via JavaScript
|
|
141
|
+
.pa-scroll-lock {
|
|
142
|
+
overflow: hidden !important;
|
|
143
|
+
}
|
|
144
|
+
|
|
121
145
|
// Cursor utilities
|
|
122
146
|
.cursor-pointer { cursor: pointer; }
|
|
123
147
|
.cursor-help { cursor: help; }
|
|
@@ -178,14 +202,6 @@ html.font-size-xlarge {
|
|
|
178
202
|
text-align: end; // RTL: flips to left
|
|
179
203
|
}
|
|
180
204
|
|
|
181
|
-
// Legacy aliases for backward compatibility
|
|
182
|
-
&--left {
|
|
183
|
-
text-align: start;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
&--right {
|
|
187
|
-
text-align: end;
|
|
188
|
-
}
|
|
189
205
|
|
|
190
206
|
// Semantic variants (compound styles)
|
|
191
207
|
&--caption {
|
|
@@ -343,7 +359,4 @@ html.font-size-xlarge {
|
|
|
343
359
|
.text-center { text-align: center; }
|
|
344
360
|
.text-end { text-align: end; } // RTL: flips to left
|
|
345
361
|
|
|
346
|
-
// Legacy text alignment (maps to logical properties)
|
|
347
|
-
.text-left { text-align: start; }
|
|
348
|
-
.text-right { text-align: end; }
|
|
349
362
|
|
|
@@ -105,8 +105,8 @@ body.pa-layout--sticky .pa-layout__inner {
|
|
|
105
105
|
gap: $spacing-base;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
// Footer sections -
|
|
109
|
-
.pa-
|
|
108
|
+
// Footer sections - Start/Center/End layout (mirrors navbar structure)
|
|
109
|
+
.pa-footer__start {
|
|
110
110
|
display: flex;
|
|
111
111
|
align-items: center;
|
|
112
112
|
gap: $spacing-base;
|
|
@@ -121,7 +121,7 @@ body.pa-layout--sticky .pa-layout__inner {
|
|
|
121
121
|
justify-content: center;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
.pa-
|
|
124
|
+
.pa-footer__end {
|
|
125
125
|
display: flex;
|
|
126
126
|
align-items: center;
|
|
127
127
|
gap: $spacing-base;
|
|
@@ -142,14 +142,14 @@ body.pa-layout--sticky .pa-layout__inner {
|
|
|
142
142
|
padding: $spacing-sm $spacing-base;
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
.pa-
|
|
145
|
+
.pa-footer__start,
|
|
146
146
|
.pa-footer__center,
|
|
147
|
-
.pa-
|
|
147
|
+
.pa-footer__end {
|
|
148
148
|
flex-shrink: 1;
|
|
149
149
|
min-width: 0;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
.pa-
|
|
152
|
+
.pa-footer__start {
|
|
153
153
|
flex: 1 1 auto;
|
|
154
154
|
}
|
|
155
155
|
|
|
@@ -157,7 +157,7 @@ body.pa-layout--sticky .pa-layout__inner {
|
|
|
157
157
|
display: none; // Hide empty center on mobile
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
.pa-
|
|
160
|
+
.pa-footer__end {
|
|
161
161
|
flex: 0 1 auto;
|
|
162
162
|
|
|
163
163
|
&--vertical {
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
// Note: margin auto no longer needed with pa-
|
|
64
|
-
&--
|
|
65
|
-
// Elements in
|
|
63
|
+
// Note: margin auto no longer needed with pa-header__start/center/end structure
|
|
64
|
+
&--start {
|
|
65
|
+
// Elements in start section
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
&--
|
|
69
|
-
// Elements in
|
|
68
|
+
&--end {
|
|
69
|
+
// Elements in end section
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -59,8 +59,8 @@ body.pa-container-2xl .pa-navbar {
|
|
|
59
59
|
gap: $spacing-base;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
// Header sections -
|
|
63
|
-
.pa-
|
|
62
|
+
// Header sections - Start/Center/End layout
|
|
63
|
+
.pa-header__start {
|
|
64
64
|
display: flex;
|
|
65
65
|
align-items: center;
|
|
66
66
|
gap: $spacing-base;
|
|
@@ -75,7 +75,7 @@ body.pa-container-2xl .pa-navbar {
|
|
|
75
75
|
justify-content: center;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
.pa-
|
|
78
|
+
.pa-header__end {
|
|
79
79
|
display: flex;
|
|
80
80
|
align-items: center;
|
|
81
81
|
gap: $spacing-base;
|
package/src/scss/utilities.scss
CHANGED
|
@@ -256,18 +256,10 @@ $spacers: (
|
|
|
256
256
|
}
|
|
257
257
|
|
|
258
258
|
// Text utilities
|
|
259
|
-
.text-left {
|
|
260
|
-
text-align: left !important;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
259
|
.text-center {
|
|
264
260
|
text-align: center !important;
|
|
265
261
|
}
|
|
266
262
|
|
|
267
|
-
.text-right {
|
|
268
|
-
text-align: right !important;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
263
|
.text-nowrap {
|
|
272
264
|
white-space: nowrap !important;
|
|
273
265
|
}
|
|
@@ -8,6 +8,7 @@ $z-index-base: 0 !default;
|
|
|
8
8
|
$z-index-content: 1000 !default;
|
|
9
9
|
$z-index-sidebar: 2000 !default;
|
|
10
10
|
$z-index-sidebar-fixed: 3000 !default;
|
|
11
|
+
$z-index-detail-panel-card: 3500 !default; // Card overlay detail panel (below header)
|
|
11
12
|
$z-index-header: 4000 !default;
|
|
12
13
|
$z-index-profile-panel: 5000 !default;
|
|
13
14
|
$z-index-modal-backdrop: 6000 !default;
|