@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.
@@ -21,7 +21,7 @@
21
21
  justify-content: center;
22
22
 
23
23
  // Positioning modifiers
24
- &--left {
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
- &--right {
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
- &--left {
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
- &--right {
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
- &--left {
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
- &--right {
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
- &--left {
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
- &--right {
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 left side
379
- &.pa-timeline--left {
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 right side
416
- &.pa-timeline--right {
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;
@@ -490,8 +490,7 @@
490
490
  }
491
491
  }
492
492
 
493
- // Legacy class for backward compatibility
494
- .pa-popover--right .pa-popover__body {
493
+ .pa-popover--end .pa-popover__body {
495
494
  text-align: end;
496
495
  }
497
496
 
@@ -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 - Left/Center/Right layout (mirrors navbar structure)
109
- .pa-footer__left {
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-footer__right {
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-footer__left,
145
+ .pa-footer__start,
146
146
  .pa-footer__center,
147
- .pa-footer__right {
147
+ .pa-footer__end {
148
148
  flex-shrink: 1;
149
149
  min-width: 0;
150
150
  }
151
151
 
152
- .pa-footer__left {
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-footer__right {
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-header__left/center/right structure
64
- &--left {
65
- // Elements in left section
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
- &--right {
69
- // Elements in right section
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 - Left/Center/Right layout
63
- .pa-header__left {
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-header__right {
78
+ .pa-header__end {
79
79
  display: flex;
80
80
  align-items: center;
81
81
  gap: $spacing-base;
@@ -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;