@keenmate/pure-admin-core 1.3.0 → 1.4.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 +25 -1
- package/dist/css/main.css +766 -760
- package/package.json +1 -1
- 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/_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 +36 -24
- 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 +26 -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 +56 -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
|
@@ -149,12 +149,12 @@
|
|
|
149
149
|
// Align first/last column with card header/footer padding
|
|
150
150
|
th:first-child,
|
|
151
151
|
td:first-child {
|
|
152
|
-
padding-
|
|
152
|
+
padding-inline-start: $card-header-padding-h; // RTL: flips to padding-right
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
th:last-child,
|
|
156
156
|
td:last-child {
|
|
157
|
-
padding-
|
|
157
|
+
padding-inline-end: $card-header-padding-h; // RTL: flips to padding-left
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
// Remove bottom border from last row (card border handles it)
|
|
@@ -167,8 +167,8 @@
|
|
|
167
167
|
&__footer {
|
|
168
168
|
padding: $card-footer-padding-v $card-footer-padding-h;
|
|
169
169
|
border-top: $border-width-base solid var(--pa-border-color);
|
|
170
|
-
border-
|
|
171
|
-
border-
|
|
170
|
+
border-end-start-radius: $card-border-radius; // RTL: bottom-right in RTL
|
|
171
|
+
border-end-end-radius: $card-border-radius; // RTL: bottom-left in RTL
|
|
172
172
|
background: var(--pa-card-footer-bg);
|
|
173
173
|
display: flex;
|
|
174
174
|
justify-content: space-between;
|
|
@@ -260,8 +260,7 @@
|
|
|
260
260
|
background: transparent;
|
|
261
261
|
border-bottom: none;
|
|
262
262
|
border-radius: 0;
|
|
263
|
-
padding-
|
|
264
|
-
padding-right: 0;
|
|
263
|
+
padding-inline: 0;
|
|
265
264
|
}
|
|
266
265
|
|
|
267
266
|
// Footer in plain mode
|
|
@@ -269,8 +268,7 @@
|
|
|
269
268
|
background: transparent;
|
|
270
269
|
border-top: none;
|
|
271
270
|
border-radius: 0;
|
|
272
|
-
padding-
|
|
273
|
-
padding-right: 0;
|
|
271
|
+
padding-inline: 0;
|
|
274
272
|
}
|
|
275
273
|
}
|
|
276
274
|
}
|
|
@@ -284,7 +282,7 @@
|
|
|
284
282
|
th,
|
|
285
283
|
td {
|
|
286
284
|
padding: $table-padding-base-v $table-padding-base-h;
|
|
287
|
-
text-align:
|
|
285
|
+
text-align: start; // RTL: flips to right
|
|
288
286
|
border-bottom: $border-width-base solid var(--pa-border-color);
|
|
289
287
|
vertical-align: middle;
|
|
290
288
|
line-height: $line-height-tight;
|
|
@@ -379,13 +377,13 @@
|
|
|
379
377
|
|
|
380
378
|
// Hover effects
|
|
381
379
|
@if $table-hover-accent-width > 0 {
|
|
382
|
-
// Header alignment - add padding
|
|
380
|
+
// Header alignment - add padding to match hover accent border
|
|
383
381
|
th:first-child {
|
|
384
|
-
padding-
|
|
382
|
+
padding-inline-start: $table-hover-accent-width + $table-padding-base-h; // RTL: flips to padding-right
|
|
385
383
|
}
|
|
386
384
|
|
|
387
385
|
tbody tr {
|
|
388
|
-
border
|
|
386
|
+
border-inline-start: #{$table-hover-accent-width} solid transparent; // RTL: flips to border-right
|
|
389
387
|
transition: border-color $transition-normal $easing-smooth;
|
|
390
388
|
}
|
|
391
389
|
}
|
|
@@ -395,7 +393,7 @@
|
|
|
395
393
|
|
|
396
394
|
// Apply hover accent if enabled
|
|
397
395
|
@if $table-hover-accent-width > 0 {
|
|
398
|
-
border
|
|
396
|
+
border-inline-start-color: var(--pa-table-hover-accent-color); // RTL: flips to border-right-color
|
|
399
397
|
}
|
|
400
398
|
}
|
|
401
399
|
|
|
@@ -547,7 +545,7 @@
|
|
|
547
545
|
&__count {
|
|
548
546
|
color: var(--pa-text-color-2);
|
|
549
547
|
font-size: $font-size-xs;
|
|
550
|
-
margin-
|
|
548
|
+
margin-inline-start: $spacing-xs; // RTL: flips to margin-right
|
|
551
549
|
}
|
|
552
550
|
}
|
|
553
551
|
|
|
@@ -575,13 +573,13 @@
|
|
|
575
573
|
.pa-virtual-table__header-cell {
|
|
576
574
|
padding: $virtual-table-cell-padding-v $virtual-table-cell-padding-h;
|
|
577
575
|
font-weight: $font-weight-semibold;
|
|
578
|
-
border-
|
|
576
|
+
border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to border-left
|
|
579
577
|
background: var(--pa-table-header-bg);
|
|
580
578
|
color: var(--pa-text-color-1);
|
|
581
579
|
}
|
|
582
580
|
|
|
583
581
|
.pa-virtual-table__header-cell:last-child {
|
|
584
|
-
border-
|
|
582
|
+
border-inline-end: none;
|
|
585
583
|
}
|
|
586
584
|
|
|
587
585
|
.pa-virtual-table__body {
|
|
@@ -596,7 +594,7 @@
|
|
|
596
594
|
|
|
597
595
|
// Setup for hover accent border (same as pa-table)
|
|
598
596
|
@if $table-hover-accent-width > 0 {
|
|
599
|
-
border
|
|
597
|
+
border-inline-start: #{$table-hover-accent-width} solid transparent; // RTL: flips to border-right
|
|
600
598
|
transition: border-color $transition-normal $easing-smooth;
|
|
601
599
|
}
|
|
602
600
|
}
|
|
@@ -610,13 +608,13 @@
|
|
|
610
608
|
|
|
611
609
|
// Apply hover accent if enabled (same as pa-table)
|
|
612
610
|
@if $table-hover-accent-width > 0 {
|
|
613
|
-
border
|
|
611
|
+
border-inline-start-color: var(--pa-table-hover-accent-color); // RTL: flips to border-right-color
|
|
614
612
|
}
|
|
615
613
|
}
|
|
616
614
|
|
|
617
615
|
.pa-virtual-table__cell {
|
|
618
616
|
padding: $virtual-table-cell-padding-v $virtual-table-cell-padding-h;
|
|
619
|
-
border-
|
|
617
|
+
border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to border-left
|
|
620
618
|
overflow: hidden;
|
|
621
619
|
text-overflow: ellipsis;
|
|
622
620
|
white-space: nowrap;
|
|
@@ -625,7 +623,7 @@
|
|
|
625
623
|
}
|
|
626
624
|
|
|
627
625
|
.pa-virtual-table__cell:last-child {
|
|
628
|
-
border-
|
|
626
|
+
border-inline-end: none;
|
|
629
627
|
}
|
|
630
628
|
|
|
631
629
|
// Responsive Tables - Stackable Layout
|
|
@@ -637,8 +635,7 @@
|
|
|
637
635
|
-webkit-overflow-scrolling: touch; // Smooth scrolling on iOS
|
|
638
636
|
|
|
639
637
|
// Show subtle scroll hint with border
|
|
640
|
-
border-
|
|
641
|
-
border-right: $border-width-base solid var(--pa-border-color);
|
|
638
|
+
border-inline: $border-width-base solid var(--pa-border-color); // RTL: no change needed (symmetric)
|
|
642
639
|
}
|
|
643
640
|
|
|
644
641
|
// Mobile: Stack into cards
|
|
@@ -658,7 +655,7 @@
|
|
|
658
655
|
|
|
659
656
|
// Reset hover accent border for mobile
|
|
660
657
|
@if $table-hover-accent-width > 0 {
|
|
661
|
-
border
|
|
658
|
+
border-inline-start: $border-width-base solid var(--pa-border-color) !important; // RTL: flips
|
|
662
659
|
}
|
|
663
660
|
|
|
664
661
|
&:last-child {
|
|
@@ -669,7 +666,7 @@
|
|
|
669
666
|
// Make each cell a row within the card
|
|
670
667
|
tbody td {
|
|
671
668
|
display: block;
|
|
672
|
-
text-align:
|
|
669
|
+
text-align: end; // RTL: flips to left (value on end side)
|
|
673
670
|
padding: $table-responsive-card-padding;
|
|
674
671
|
position: relative;
|
|
675
672
|
border-bottom: $border-width-base solid var(--pa-border-color);
|
|
@@ -683,15 +680,15 @@
|
|
|
683
680
|
&::before {
|
|
684
681
|
content: attr(data-label);
|
|
685
682
|
position: absolute;
|
|
686
|
-
|
|
683
|
+
inset-inline-start: $table-responsive-card-padding; // RTL: flips to right
|
|
687
684
|
top: $table-responsive-card-padding;
|
|
688
685
|
font-weight: $table-responsive-label-font-weight;
|
|
689
|
-
text-align:
|
|
686
|
+
text-align: start; // RTL: flips to right
|
|
690
687
|
width: $table-responsive-label-width;
|
|
691
688
|
}
|
|
692
689
|
|
|
693
|
-
// Value aligned to the
|
|
694
|
-
padding-
|
|
690
|
+
// Value aligned to the end (leave space for label on start side)
|
|
691
|
+
padding-inline-start: calc($table-responsive-label-width + $table-responsive-card-padding * 2); // RTL: flips
|
|
695
692
|
}
|
|
696
693
|
|
|
697
694
|
// Disable col-auto effect in responsive view
|
|
@@ -730,8 +727,7 @@
|
|
|
730
727
|
display: block;
|
|
731
728
|
overflow-x: auto;
|
|
732
729
|
-webkit-overflow-scrolling: touch;
|
|
733
|
-
border-
|
|
734
|
-
border-right: $border-width-base solid var(--pa-border-color);
|
|
730
|
+
border-inline: $border-width-base solid var(--pa-border-color); // RTL: no change needed (symmetric)
|
|
735
731
|
}
|
|
736
732
|
|
|
737
733
|
// 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
|
|
|
@@ -5,45 +5,24 @@
|
|
|
5
5
|
@use '../variables' as *;
|
|
6
6
|
|
|
7
7
|
// Font size classes - Apply to <html> element for proportional scaling of all rem units
|
|
8
|
+
// These use absolute px values because rem would be calculated against browser default (16px),
|
|
9
|
+
// not the framework's 10px base. Scaling the html font-size scales all rem values proportionally.
|
|
8
10
|
// Example: document.documentElement.classList.add('font-size-large');
|
|
9
|
-
html.font-size-2xs {
|
|
10
|
-
font-size: $font-size-2xs;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
html.font-size-xs {
|
|
14
|
-
font-size: $font-size-xs;
|
|
15
|
-
}
|
|
16
11
|
|
|
17
12
|
html.font-size-small {
|
|
18
|
-
font-size:
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
html.font-size-medium {
|
|
22
|
-
font-size: $font-size-md;
|
|
13
|
+
font-size: 9px; // ~14px body text (9 * 1.6 = 14.4px)
|
|
23
14
|
}
|
|
24
15
|
|
|
25
16
|
html.font-size-default {
|
|
26
|
-
font-size:
|
|
17
|
+
font-size: 10px; // 16px body text (default, same as html base)
|
|
27
18
|
}
|
|
28
19
|
|
|
29
20
|
html.font-size-large {
|
|
30
|
-
font-size:
|
|
21
|
+
font-size: 11px; // ~18px body text (11 * 1.6 = 17.6px)
|
|
31
22
|
}
|
|
32
23
|
|
|
33
24
|
html.font-size-xlarge {
|
|
34
|
-
font-size:
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
html.font-size-2xl {
|
|
38
|
-
font-size: $font-size-2xl;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
html.font-size-3xl {
|
|
42
|
-
font-size: $font-size-3xl;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
html.font-size-4xl {
|
|
46
|
-
font-size: $font-size-4xl;
|
|
25
|
+
font-size: 12px; // ~19px body text (12 * 1.6 = 19.2px)
|
|
47
26
|
}
|
|
48
27
|
|
|
49
28
|
// Font family utilities
|
|
@@ -186,17 +165,26 @@ html.font-size-4xl {
|
|
|
186
165
|
color: var(--pa-text-color-2);
|
|
187
166
|
}
|
|
188
167
|
|
|
189
|
-
// Alignment modifiers
|
|
190
|
-
&--
|
|
191
|
-
text-align:
|
|
168
|
+
// Alignment modifiers (logical properties for RTL support)
|
|
169
|
+
&--start {
|
|
170
|
+
text-align: start; // RTL: flips to right
|
|
192
171
|
}
|
|
193
172
|
|
|
194
173
|
&--center {
|
|
195
174
|
text-align: center;
|
|
196
175
|
}
|
|
197
176
|
|
|
177
|
+
&--end {
|
|
178
|
+
text-align: end; // RTL: flips to left
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Legacy aliases for backward compatibility
|
|
182
|
+
&--left {
|
|
183
|
+
text-align: start;
|
|
184
|
+
}
|
|
185
|
+
|
|
198
186
|
&--right {
|
|
199
|
-
text-align:
|
|
187
|
+
text-align: end;
|
|
200
188
|
}
|
|
201
189
|
|
|
202
190
|
// Semantic variants (compound styles)
|
|
@@ -322,3 +310,40 @@ html.font-size-4xl {
|
|
|
322
310
|
.pa-border-color-#{$i} { border-color: var(--pa-color-#{$i}); }
|
|
323
311
|
}
|
|
324
312
|
|
|
313
|
+
// ========================================
|
|
314
|
+
// Logical Spacing Utilities (RTL-aware)
|
|
315
|
+
// ms = margin-inline-start, me = margin-inline-end
|
|
316
|
+
// ps = padding-inline-start, pe = padding-inline-end
|
|
317
|
+
// ========================================
|
|
318
|
+
|
|
319
|
+
// Margin inline-start (ms-*) - RTL: flips to margin-right
|
|
320
|
+
@each $name, $value in $semantic-spacers {
|
|
321
|
+
.ms-#{$name} { margin-inline-start: #{$value}; }
|
|
322
|
+
}
|
|
323
|
+
.ms-auto { margin-inline-start: auto; }
|
|
324
|
+
|
|
325
|
+
// Margin inline-end (me-*) - RTL: flips to margin-left
|
|
326
|
+
@each $name, $value in $semantic-spacers {
|
|
327
|
+
.me-#{$name} { margin-inline-end: #{$value}; }
|
|
328
|
+
}
|
|
329
|
+
.me-auto { margin-inline-end: auto; }
|
|
330
|
+
|
|
331
|
+
// Padding inline-start (ps-*) - RTL: flips to padding-right
|
|
332
|
+
@each $name, $value in $semantic-spacers {
|
|
333
|
+
.ps-#{$name} { padding-inline-start: #{$value}; }
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Padding inline-end (pe-*) - RTL: flips to padding-left
|
|
337
|
+
@each $name, $value in $semantic-spacers {
|
|
338
|
+
.pe-#{$name} { padding-inline-end: #{$value}; }
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// Text alignment utilities (RTL-aware)
|
|
342
|
+
.text-start { text-align: start; } // RTL: flips to right
|
|
343
|
+
.text-center { text-align: center; }
|
|
344
|
+
.text-end { text-align: end; } // RTL: flips to left
|
|
345
|
+
|
|
346
|
+
// Legacy text alignment (maps to logical properties)
|
|
347
|
+
.text-left { text-align: start; }
|
|
348
|
+
.text-right { text-align: end; }
|
|
349
|
+
|