@keenmate/pure-admin-core 1.3.0 → 1.4.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.
- package/README.md +25 -1
- package/dist/css/main.css +892 -762
- package/package.json +6 -5
- package/src/scss/_core.scss +4 -0
- package/src/scss/_fonts.scss +1 -17
- package/src/scss/_rtl-helpers.scss +161 -0
- package/src/scss/core-components/_alerts.scss +3 -3
- package/src/scss/core-components/_base.scss +4 -3
- package/src/scss/core-components/_buttons.scss +9 -9
- package/src/scss/core-components/_callouts.scss +14 -9
- package/src/scss/core-components/_cards.scss +41 -0
- package/src/scss/core-components/_checkbox-lists.scss +6 -6
- package/src/scss/core-components/_code.scss +10 -10
- package/src/scss/core-components/_command-palette.scss +5 -14
- package/src/scss/core-components/_comparison.scss +3 -3
- package/src/scss/core-components/_data-display.scss +6 -6
- package/src/scss/core-components/_detail-panel.scss +43 -26
- package/src/scss/core-components/_file-selector.scss +2 -2
- package/src/scss/core-components/_grid.scss +13 -24
- package/src/scss/core-components/_lists.scss +12 -12
- package/src/scss/core-components/_modals.scss +2 -8
- package/src/scss/core-components/_pagers.scss +1 -1
- package/src/scss/core-components/_profile.scss +11 -6
- package/src/scss/core-components/_settings-panel.scss +22 -9
- package/src/scss/core-components/_tables.scss +76 -30
- package/src/scss/core-components/_tabs.scss +27 -14
- package/src/scss/core-components/_timeline.scss +5 -5
- package/src/scss/core-components/_toasts.scss +57 -21
- package/src/scss/core-components/_tooltips.scss +11 -6
- package/src/scss/core-components/_utilities.scss +80 -31
- package/src/scss/core-components/forms/_input-groups.scss +23 -22
- package/src/scss/core-components/forms/_input-wrapper.scss +3 -3
- package/src/scss/core-components/forms/_query-editor.scss +1 -1
- package/src/scss/core-components/layout/_layout-responsive.scss +3 -4
- package/src/scss/core-components/layout/_navbar-elements.scss +17 -6
- package/src/scss/core-components/layout/_navbar.scss +11 -22
- package/src/scss/core-components/layout/_sidebar-states.scss +25 -16
- package/src/scss/core-components/layout/_sidebar.scss +22 -16
- package/src/scss/variables/_system.scss +1 -0
|
@@ -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;
|
|
@@ -149,12 +157,12 @@
|
|
|
149
157
|
// Align first/last column with card header/footer padding
|
|
150
158
|
th:first-child,
|
|
151
159
|
td:first-child {
|
|
152
|
-
padding-
|
|
160
|
+
padding-inline-start: $card-header-padding-h; // RTL: flips to padding-right
|
|
153
161
|
}
|
|
154
162
|
|
|
155
163
|
th:last-child,
|
|
156
164
|
td:last-child {
|
|
157
|
-
padding-
|
|
165
|
+
padding-inline-end: $card-header-padding-h; // RTL: flips to padding-left
|
|
158
166
|
}
|
|
159
167
|
|
|
160
168
|
// Remove bottom border from last row (card border handles it)
|
|
@@ -162,13 +170,46 @@
|
|
|
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 {
|
|
168
209
|
padding: $card-footer-padding-v $card-footer-padding-h;
|
|
169
210
|
border-top: $border-width-base solid var(--pa-border-color);
|
|
170
|
-
border-
|
|
171
|
-
border-
|
|
211
|
+
border-end-start-radius: $card-border-radius; // RTL: bottom-right in RTL
|
|
212
|
+
border-end-end-radius: $card-border-radius; // RTL: bottom-left in RTL
|
|
172
213
|
background: var(--pa-card-footer-bg);
|
|
173
214
|
display: flex;
|
|
174
215
|
justify-content: space-between;
|
|
@@ -260,8 +301,16 @@
|
|
|
260
301
|
background: transparent;
|
|
261
302
|
border-bottom: none;
|
|
262
303
|
border-radius: 0;
|
|
263
|
-
padding-
|
|
264
|
-
|
|
304
|
+
padding-inline: 0;
|
|
305
|
+
}
|
|
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
|
+
}
|
|
265
314
|
}
|
|
266
315
|
|
|
267
316
|
// Footer in plain mode
|
|
@@ -269,8 +318,7 @@
|
|
|
269
318
|
background: transparent;
|
|
270
319
|
border-top: none;
|
|
271
320
|
border-radius: 0;
|
|
272
|
-
padding-
|
|
273
|
-
padding-right: 0;
|
|
321
|
+
padding-inline: 0;
|
|
274
322
|
}
|
|
275
323
|
}
|
|
276
324
|
}
|
|
@@ -284,7 +332,7 @@
|
|
|
284
332
|
th,
|
|
285
333
|
td {
|
|
286
334
|
padding: $table-padding-base-v $table-padding-base-h;
|
|
287
|
-
text-align:
|
|
335
|
+
text-align: start; // RTL: flips to right
|
|
288
336
|
border-bottom: $border-width-base solid var(--pa-border-color);
|
|
289
337
|
vertical-align: middle;
|
|
290
338
|
line-height: $line-height-tight;
|
|
@@ -379,13 +427,13 @@
|
|
|
379
427
|
|
|
380
428
|
// Hover effects
|
|
381
429
|
@if $table-hover-accent-width > 0 {
|
|
382
|
-
// Header alignment - add padding
|
|
430
|
+
// Header alignment - add padding to match hover accent border
|
|
383
431
|
th:first-child {
|
|
384
|
-
padding-
|
|
432
|
+
padding-inline-start: $table-hover-accent-width + $table-padding-base-h; // RTL: flips to padding-right
|
|
385
433
|
}
|
|
386
434
|
|
|
387
435
|
tbody tr {
|
|
388
|
-
border
|
|
436
|
+
border-inline-start: #{$table-hover-accent-width} solid transparent; // RTL: flips to border-right
|
|
389
437
|
transition: border-color $transition-normal $easing-smooth;
|
|
390
438
|
}
|
|
391
439
|
}
|
|
@@ -395,7 +443,7 @@
|
|
|
395
443
|
|
|
396
444
|
// Apply hover accent if enabled
|
|
397
445
|
@if $table-hover-accent-width > 0 {
|
|
398
|
-
border
|
|
446
|
+
border-inline-start-color: var(--pa-table-hover-accent-color); // RTL: flips to border-right-color
|
|
399
447
|
}
|
|
400
448
|
}
|
|
401
449
|
|
|
@@ -547,7 +595,7 @@
|
|
|
547
595
|
&__count {
|
|
548
596
|
color: var(--pa-text-color-2);
|
|
549
597
|
font-size: $font-size-xs;
|
|
550
|
-
margin-
|
|
598
|
+
margin-inline-start: $spacing-xs; // RTL: flips to margin-right
|
|
551
599
|
}
|
|
552
600
|
}
|
|
553
601
|
|
|
@@ -575,13 +623,13 @@
|
|
|
575
623
|
.pa-virtual-table__header-cell {
|
|
576
624
|
padding: $virtual-table-cell-padding-v $virtual-table-cell-padding-h;
|
|
577
625
|
font-weight: $font-weight-semibold;
|
|
578
|
-
border-
|
|
626
|
+
border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to border-left
|
|
579
627
|
background: var(--pa-table-header-bg);
|
|
580
628
|
color: var(--pa-text-color-1);
|
|
581
629
|
}
|
|
582
630
|
|
|
583
631
|
.pa-virtual-table__header-cell:last-child {
|
|
584
|
-
border-
|
|
632
|
+
border-inline-end: none;
|
|
585
633
|
}
|
|
586
634
|
|
|
587
635
|
.pa-virtual-table__body {
|
|
@@ -596,7 +644,7 @@
|
|
|
596
644
|
|
|
597
645
|
// Setup for hover accent border (same as pa-table)
|
|
598
646
|
@if $table-hover-accent-width > 0 {
|
|
599
|
-
border
|
|
647
|
+
border-inline-start: #{$table-hover-accent-width} solid transparent; // RTL: flips to border-right
|
|
600
648
|
transition: border-color $transition-normal $easing-smooth;
|
|
601
649
|
}
|
|
602
650
|
}
|
|
@@ -610,13 +658,13 @@
|
|
|
610
658
|
|
|
611
659
|
// Apply hover accent if enabled (same as pa-table)
|
|
612
660
|
@if $table-hover-accent-width > 0 {
|
|
613
|
-
border
|
|
661
|
+
border-inline-start-color: var(--pa-table-hover-accent-color); // RTL: flips to border-right-color
|
|
614
662
|
}
|
|
615
663
|
}
|
|
616
664
|
|
|
617
665
|
.pa-virtual-table__cell {
|
|
618
666
|
padding: $virtual-table-cell-padding-v $virtual-table-cell-padding-h;
|
|
619
|
-
border-
|
|
667
|
+
border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to border-left
|
|
620
668
|
overflow: hidden;
|
|
621
669
|
text-overflow: ellipsis;
|
|
622
670
|
white-space: nowrap;
|
|
@@ -625,7 +673,7 @@
|
|
|
625
673
|
}
|
|
626
674
|
|
|
627
675
|
.pa-virtual-table__cell:last-child {
|
|
628
|
-
border-
|
|
676
|
+
border-inline-end: none;
|
|
629
677
|
}
|
|
630
678
|
|
|
631
679
|
// Responsive Tables - Stackable Layout
|
|
@@ -637,8 +685,7 @@
|
|
|
637
685
|
-webkit-overflow-scrolling: touch; // Smooth scrolling on iOS
|
|
638
686
|
|
|
639
687
|
// Show subtle scroll hint with border
|
|
640
|
-
border-
|
|
641
|
-
border-right: $border-width-base solid var(--pa-border-color);
|
|
688
|
+
border-inline: $border-width-base solid var(--pa-border-color); // RTL: no change needed (symmetric)
|
|
642
689
|
}
|
|
643
690
|
|
|
644
691
|
// Mobile: Stack into cards
|
|
@@ -658,7 +705,7 @@
|
|
|
658
705
|
|
|
659
706
|
// Reset hover accent border for mobile
|
|
660
707
|
@if $table-hover-accent-width > 0 {
|
|
661
|
-
border
|
|
708
|
+
border-inline-start: $border-width-base solid var(--pa-border-color) !important; // RTL: flips
|
|
662
709
|
}
|
|
663
710
|
|
|
664
711
|
&:last-child {
|
|
@@ -669,7 +716,7 @@
|
|
|
669
716
|
// Make each cell a row within the card
|
|
670
717
|
tbody td {
|
|
671
718
|
display: block;
|
|
672
|
-
text-align:
|
|
719
|
+
text-align: end; // RTL: flips to left (value on end side)
|
|
673
720
|
padding: $table-responsive-card-padding;
|
|
674
721
|
position: relative;
|
|
675
722
|
border-bottom: $border-width-base solid var(--pa-border-color);
|
|
@@ -683,15 +730,15 @@
|
|
|
683
730
|
&::before {
|
|
684
731
|
content: attr(data-label);
|
|
685
732
|
position: absolute;
|
|
686
|
-
|
|
733
|
+
inset-inline-start: $table-responsive-card-padding; // RTL: flips to right
|
|
687
734
|
top: $table-responsive-card-padding;
|
|
688
735
|
font-weight: $table-responsive-label-font-weight;
|
|
689
|
-
text-align:
|
|
736
|
+
text-align: start; // RTL: flips to right
|
|
690
737
|
width: $table-responsive-label-width;
|
|
691
738
|
}
|
|
692
739
|
|
|
693
|
-
// Value aligned to the
|
|
694
|
-
padding-
|
|
740
|
+
// Value aligned to the end (leave space for label on start side)
|
|
741
|
+
padding-inline-start: calc($table-responsive-label-width + $table-responsive-card-padding * 2); // RTL: flips
|
|
695
742
|
}
|
|
696
743
|
|
|
697
744
|
// Disable col-auto effect in responsive view
|
|
@@ -730,8 +777,7 @@
|
|
|
730
777
|
display: block;
|
|
731
778
|
overflow-x: auto;
|
|
732
779
|
-webkit-overflow-scrolling: touch;
|
|
733
|
-
border-
|
|
734
|
-
border-right: $border-width-base solid var(--pa-border-color);
|
|
780
|
+
border-inline: $border-width-base solid var(--pa-border-color); // RTL: no change needed (symmetric)
|
|
735
781
|
}
|
|
736
782
|
|
|
737
783
|
// Mobile: CSS Grid layout
|
|
@@ -119,19 +119,22 @@
|
|
|
119
119
|
&--vertical {
|
|
120
120
|
flex-direction: column;
|
|
121
121
|
border-bottom: none;
|
|
122
|
-
border-
|
|
122
|
+
border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to border-left
|
|
123
123
|
gap: 0;
|
|
124
124
|
margin-bottom: 0;
|
|
125
|
-
padding-
|
|
125
|
+
padding-inline-end: 0; // RTL: flips to padding-left
|
|
126
126
|
width: fit-content;
|
|
127
127
|
min-width: max-content;
|
|
128
128
|
|
|
129
129
|
.pa-tabs__item {
|
|
130
130
|
justify-content: flex-start;
|
|
131
131
|
border-bottom: none;
|
|
132
|
-
border-
|
|
132
|
+
border-inline-end: $border-width-medium solid transparent; // RTL: flips to border-left
|
|
133
133
|
padding: $spacing-sm;
|
|
134
|
-
border-radius: $border-radius
|
|
134
|
+
border-start-start-radius: $border-radius; // RTL: top-right in RTL
|
|
135
|
+
border-end-start-radius: $border-radius; // RTL: bottom-right in RTL
|
|
136
|
+
border-start-end-radius: 0;
|
|
137
|
+
border-end-end-radius: 0;
|
|
135
138
|
gap: $tabs-vertical-item-gap;
|
|
136
139
|
white-space: nowrap;
|
|
137
140
|
min-height: 4rem; // Default height for vertical tabs
|
|
@@ -141,7 +144,7 @@
|
|
|
141
144
|
}
|
|
142
145
|
|
|
143
146
|
&--active {
|
|
144
|
-
border-
|
|
147
|
+
border-inline-end-color: $accent-color; // RTL: flips to border-left-color
|
|
145
148
|
background-color: rgba($accent-color, $tabs-vertical-active-opacity);
|
|
146
149
|
}
|
|
147
150
|
|
|
@@ -224,14 +227,24 @@
|
|
|
224
227
|
background: linear-gradient(to right, var(--pa-main-bg), color-mix(in srgb, var(--pa-main-bg) 80%, transparent));
|
|
225
228
|
}
|
|
226
229
|
|
|
227
|
-
&--left
|
|
228
|
-
|
|
230
|
+
&--left,
|
|
231
|
+
&--start {
|
|
232
|
+
inset-inline-start: 0; // RTL: flips to right
|
|
229
233
|
background: linear-gradient(to right, color-mix(in srgb, var(--pa-main-bg) 95%, transparent), transparent);
|
|
234
|
+
|
|
235
|
+
[dir="rtl"] & {
|
|
236
|
+
background: linear-gradient(to left, color-mix(in srgb, var(--pa-main-bg) 95%, transparent), transparent);
|
|
237
|
+
}
|
|
230
238
|
}
|
|
231
239
|
|
|
232
|
-
&--right
|
|
233
|
-
|
|
240
|
+
&--right,
|
|
241
|
+
&--end {
|
|
242
|
+
inset-inline-end: 0; // RTL: flips to left
|
|
234
243
|
background: linear-gradient(to left, color-mix(in srgb, var(--pa-main-bg) 95%, transparent), transparent);
|
|
244
|
+
|
|
245
|
+
[dir="rtl"] & {
|
|
246
|
+
background: linear-gradient(to right, color-mix(in srgb, var(--pa-main-bg) 95%, transparent), transparent);
|
|
247
|
+
}
|
|
235
248
|
}
|
|
236
249
|
|
|
237
250
|
&--visible {
|
|
@@ -373,7 +386,7 @@
|
|
|
373
386
|
// Overflow toggle for tabs that don't fit
|
|
374
387
|
.pa-tabs__overflow {
|
|
375
388
|
position: relative;
|
|
376
|
-
margin-
|
|
389
|
+
margin-inline-start: auto; // RTL: flips to margin-right
|
|
377
390
|
flex-shrink: 0;
|
|
378
391
|
}
|
|
379
392
|
|
|
@@ -390,7 +403,7 @@
|
|
|
390
403
|
color: var(--pa-text-color-2);
|
|
391
404
|
cursor: pointer;
|
|
392
405
|
transition: all $transition-fast $easing-snappy;
|
|
393
|
-
border-
|
|
406
|
+
border-inline-start: $border-width-base solid var(--pa-border-color); // RTL: flips to border-right
|
|
394
407
|
margin: (-$card-header-padding-v) (-$card-header-padding-h) (-$card-header-padding-v) 0;
|
|
395
408
|
box-sizing: content-box;
|
|
396
409
|
height: $card-header-min-height;
|
|
@@ -423,7 +436,7 @@
|
|
|
423
436
|
.pa-tabs__overflow-menu {
|
|
424
437
|
position: absolute;
|
|
425
438
|
top: $card-header-min-height;
|
|
426
|
-
|
|
439
|
+
inset-inline-end: 0; // RTL: flips to left
|
|
427
440
|
min-width: 15rem;
|
|
428
441
|
background: var(--pa-card-bg);
|
|
429
442
|
border: $card-border-width solid var(--pa-border-color);
|
|
@@ -443,7 +456,7 @@
|
|
|
443
456
|
border: none;
|
|
444
457
|
border-bottom: none;
|
|
445
458
|
border-radius: 0;
|
|
446
|
-
text-align:
|
|
459
|
+
text-align: start; // RTL: flips to right
|
|
447
460
|
white-space: nowrap;
|
|
448
461
|
|
|
449
462
|
&:hover {
|
|
@@ -480,7 +493,7 @@
|
|
|
480
493
|
|
|
481
494
|
// Add divider between tabs and content (gap already provides spacing)
|
|
482
495
|
.pa-tabs--vertical {
|
|
483
|
-
border-
|
|
496
|
+
border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to border-left
|
|
484
497
|
|
|
485
498
|
// Make tab items full width so active border reaches divider
|
|
486
499
|
.pa-tabs__item {
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
position: relative;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// Variant 1: Simple
|
|
16
|
+
// Variant 1: Simple start-aligned timeline (like Timeline #1)
|
|
17
17
|
&--simple {
|
|
18
|
-
border-
|
|
19
|
-
margin-
|
|
20
|
-
padding-
|
|
18
|
+
border-inline-start: $timeline-simple-line-width solid var(--pa-border-color); // RTL: flips to right
|
|
19
|
+
margin-inline-start: $timeline-simple-margin-left; // RTL: flips to right
|
|
20
|
+
padding-inline-start: $timeline-simple-padding-left; // RTL: flips to right
|
|
21
21
|
|
|
22
22
|
.pa-timeline__item {
|
|
23
23
|
padding-bottom: $spacing-lg;
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
&::before {
|
|
33
33
|
content: '';
|
|
34
34
|
position: absolute;
|
|
35
|
-
|
|
35
|
+
inset-inline-start: $timeline-simple-dot-offset; // RTL: flips to right
|
|
36
36
|
top: 0;
|
|
37
37
|
width: $timeline-simple-dot-size;
|
|
38
38
|
height: $timeline-simple-dot-size;
|
|
@@ -15,38 +15,47 @@
|
|
|
15
15
|
flex-direction: column;
|
|
16
16
|
gap: $spacing-md;
|
|
17
17
|
|
|
18
|
-
// Position variations
|
|
19
|
-
&--top-
|
|
18
|
+
// Position variations - using logical properties for RTL support
|
|
19
|
+
&--top-end {
|
|
20
20
|
top: $spacing-lg;
|
|
21
|
-
|
|
21
|
+
inset-inline-end: $spacing-lg; // RTL: flips to left
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
&--top-
|
|
24
|
+
&--top-start {
|
|
25
25
|
top: $spacing-lg;
|
|
26
|
-
|
|
26
|
+
inset-inline-start: $spacing-lg; // RTL: flips to right
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
&--bottom-
|
|
29
|
+
&--bottom-end {
|
|
30
30
|
bottom: $spacing-lg;
|
|
31
|
-
|
|
31
|
+
inset-inline-end: $spacing-lg; // RTL: flips to left
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
&--bottom-
|
|
34
|
+
&--bottom-start {
|
|
35
35
|
bottom: $spacing-lg;
|
|
36
|
-
|
|
36
|
+
inset-inline-start: $spacing-lg; // RTL: flips to right
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
&--top-center {
|
|
40
40
|
top: $spacing-lg;
|
|
41
|
-
|
|
41
|
+
inset-inline-start: 50%;
|
|
42
42
|
transform: translateX(-50%);
|
|
43
|
+
|
|
44
|
+
[dir="rtl"] & {
|
|
45
|
+
transform: translateX(50%);
|
|
46
|
+
}
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
&--bottom-center {
|
|
46
50
|
bottom: $spacing-lg;
|
|
47
|
-
|
|
51
|
+
inset-inline-start: 50%;
|
|
48
52
|
transform: translateX(-50%);
|
|
53
|
+
|
|
54
|
+
[dir="rtl"] & {
|
|
55
|
+
transform: translateX(50%);
|
|
56
|
+
}
|
|
49
57
|
}
|
|
58
|
+
|
|
50
59
|
}
|
|
51
60
|
|
|
52
61
|
// ===== TOAST ITEM =====
|
|
@@ -81,9 +90,37 @@
|
|
|
81
90
|
transform: translateX(100%);
|
|
82
91
|
}
|
|
83
92
|
|
|
84
|
-
//
|
|
85
|
-
.pa-toast-container--top-
|
|
86
|
-
.pa-toast-container--bottom-
|
|
93
|
+
// Start position animations (left in LTR, right in RTL)
|
|
94
|
+
.pa-toast-container--top-start &,
|
|
95
|
+
.pa-toast-container--bottom-start & {
|
|
96
|
+
transform: translateX(-100%);
|
|
97
|
+
|
|
98
|
+
&.pa-toast--show {
|
|
99
|
+
transform: translateX(0);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&.pa-toast--hide {
|
|
103
|
+
transform: translateX(-100%);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// RTL: reverse animation direction for start positions
|
|
108
|
+
[dir="rtl"] .pa-toast-container--top-start &,
|
|
109
|
+
[dir="rtl"] .pa-toast-container--bottom-start & {
|
|
110
|
+
transform: translateX(100%);
|
|
111
|
+
|
|
112
|
+
&.pa-toast--show {
|
|
113
|
+
transform: translateX(0);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&.pa-toast--hide {
|
|
117
|
+
transform: translateX(100%);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// RTL: reverse animation direction for end positions
|
|
122
|
+
[dir="rtl"] .pa-toast-container--top-end &,
|
|
123
|
+
[dir="rtl"] .pa-toast-container--bottom-end & {
|
|
87
124
|
transform: translateX(-100%);
|
|
88
125
|
|
|
89
126
|
&.pa-toast--show {
|
|
@@ -175,7 +212,7 @@
|
|
|
175
212
|
.pa-toast__progress {
|
|
176
213
|
position: absolute;
|
|
177
214
|
bottom: 0;
|
|
178
|
-
|
|
215
|
+
inset-inline-start: 0; // RTL: flips to right
|
|
179
216
|
height: $toast-progress-height;
|
|
180
217
|
background-color: currentColor;
|
|
181
218
|
opacity: 0.3;
|
|
@@ -258,18 +295,17 @@
|
|
|
258
295
|
|
|
259
296
|
@media (max-width: $mobile-breakpoint) {
|
|
260
297
|
.pa-toast-container {
|
|
261
|
-
|
|
262
|
-
right: $spacing-md !important;
|
|
298
|
+
inset-inline: $spacing-md !important; // RTL: full width on mobile
|
|
263
299
|
transform: none !important;
|
|
264
300
|
|
|
265
|
-
&--top-
|
|
266
|
-
&--top-
|
|
301
|
+
&--top-end,
|
|
302
|
+
&--top-start,
|
|
267
303
|
&--top-center {
|
|
268
304
|
top: $spacing-md;
|
|
269
305
|
}
|
|
270
306
|
|
|
271
|
-
&--bottom-
|
|
272
|
-
&--bottom-
|
|
307
|
+
&--bottom-end,
|
|
308
|
+
&--bottom-start,
|
|
273
309
|
&--bottom-center {
|
|
274
310
|
bottom: $spacing-md;
|
|
275
311
|
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
// Multiline tooltip variant
|
|
49
49
|
&--multiline::before {
|
|
50
50
|
white-space: normal;
|
|
51
|
-
text-align:
|
|
51
|
+
text-align: start; // RTL: flips to right
|
|
52
52
|
width: $tooltip-multiline-width;
|
|
53
53
|
max-width: $tooltip-multiline-width;
|
|
54
54
|
line-height: $line-height-base;
|
|
@@ -414,7 +414,7 @@
|
|
|
414
414
|
font-size: $font-size-sm;
|
|
415
415
|
line-height: $line-height-base;
|
|
416
416
|
color: var(--pa-text-color-1);
|
|
417
|
-
text-align:
|
|
417
|
+
text-align: start; // RTL: flips to right
|
|
418
418
|
|
|
419
419
|
p {
|
|
420
420
|
margin: 0 0 $spacing-sm 0;
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
|
|
436
436
|
ul, ol {
|
|
437
437
|
margin: $spacing-sm 0;
|
|
438
|
-
padding-
|
|
438
|
+
padding-inline-start: $spacing-lg; // RTL: flips to padding-right
|
|
439
439
|
}
|
|
440
440
|
|
|
441
441
|
code {
|
|
@@ -485,11 +485,16 @@
|
|
|
485
485
|
text-align: center;
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
&--
|
|
489
|
-
text-align:
|
|
488
|
+
&--end &__body {
|
|
489
|
+
text-align: end; // RTL: flips to left
|
|
490
490
|
}
|
|
491
491
|
}
|
|
492
492
|
|
|
493
|
+
// Legacy class for backward compatibility
|
|
494
|
+
.pa-popover--right .pa-popover__body {
|
|
495
|
+
text-align: end;
|
|
496
|
+
}
|
|
497
|
+
|
|
493
498
|
// ========================================
|
|
494
499
|
// Floating UI Tooltip (Portal Rendering)
|
|
495
500
|
// ========================================
|
|
@@ -510,7 +515,7 @@
|
|
|
510
515
|
// Multiline variant
|
|
511
516
|
&.pa-tooltip--multiline {
|
|
512
517
|
white-space: normal;
|
|
513
|
-
text-align:
|
|
518
|
+
text-align: start; // RTL: flips to right
|
|
514
519
|
max-width: $tooltip-multiline-max-width;
|
|
515
520
|
}
|
|
516
521
|
|