@elasticias/ui 1.0.44 → 1.0.45
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/package.json
CHANGED
package/styles/_comptoir.scss
CHANGED
|
@@ -115,6 +115,15 @@
|
|
|
115
115
|
--hit-touch: 48px; /* POS / mobile primary actions */
|
|
116
116
|
--hit-pos: 64px; /* POS number pad, big totals */
|
|
117
117
|
|
|
118
|
+
/* ── Layers ──────────────────────────────────────────────────── */
|
|
119
|
+
/* Toasts sit above every modal and overlay. PrimeNG numbers its layers
|
|
120
|
+
at runtime (ZIndexUtils): each new layer takes the last one's value
|
|
121
|
+
plus 1, plus the base of its own kind when the kind changes (modal
|
|
122
|
+
1100, overlay 1000). A dialog is 1101, a select opened inside it
|
|
123
|
+
2102, a dialog opened over that 3203, so no value near PrimeNG's
|
|
124
|
+
bases stays on top. 100000 is about ninety mixed layers away. */
|
|
125
|
+
--z-toast: 100000;
|
|
126
|
+
|
|
118
127
|
/* ── Motion ──────────────────────────────────────────────────── */
|
|
119
128
|
--t-fast: 140ms;
|
|
120
129
|
--t-base: 260ms;
|
package/styles/_patterns.scss
CHANGED
|
@@ -1539,11 +1539,17 @@
|
|
|
1539
1539
|
}
|
|
1540
1540
|
|
|
1541
1541
|
.row-actions__trigger {
|
|
1542
|
+
/* Read again by the touch tier, which reserves the 48px footprint
|
|
1543
|
+
around this box. */
|
|
1544
|
+
--ef-row-trigger-w: 34px;
|
|
1545
|
+
--ef-row-trigger-h: 28px;
|
|
1542
1546
|
appearance: none;
|
|
1543
1547
|
background: var(--paper-alt);
|
|
1544
1548
|
border: 1px solid var(--rule);
|
|
1545
|
-
|
|
1546
|
-
|
|
1549
|
+
box-sizing: border-box;
|
|
1550
|
+
width: var(--ef-row-trigger-w);
|
|
1551
|
+
height: var(--ef-row-trigger-h);
|
|
1552
|
+
flex-shrink: 0;
|
|
1547
1553
|
border-radius: var(--r-pill);
|
|
1548
1554
|
display: inline-grid;
|
|
1549
1555
|
place-items: center;
|
|
@@ -2243,6 +2249,15 @@
|
|
|
2243
2249
|
line-height: 1;
|
|
2244
2250
|
}
|
|
2245
2251
|
|
|
2252
|
+
/* The back and month arrows are icon-font glyphs, which bidi never
|
|
2253
|
+
mirrors. In Arabic the header runs right to left, so "previous" sits on
|
|
2254
|
+
the right and must point right. (Text arrows such as the pager's
|
|
2255
|
+
‹ › « » are Bidi_Mirrored and already flip on their own.) */
|
|
2256
|
+
[dir='rtl'] .dp__back i,
|
|
2257
|
+
[dir='rtl'] .dp__cal-nav i {
|
|
2258
|
+
transform: scaleX(-1);
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2246
2261
|
.dp__cal-title {
|
|
2247
2262
|
display: inline-flex;
|
|
2248
2263
|
align-items: center;
|
|
@@ -2519,7 +2534,10 @@
|
|
|
2519
2534
|
position: fixed;
|
|
2520
2535
|
top: var(--s-4);
|
|
2521
2536
|
inset-inline-end: var(--s-4);
|
|
2522
|
-
|
|
2537
|
+
/* Above every PrimeNG modal mask and overlay, so an error raised by a
|
|
2538
|
+
dialog's save is readable and its ✕ clickable while the dialog is
|
|
2539
|
+
open. The token explains the number. */
|
|
2540
|
+
z-index: var(--z-toast);
|
|
2523
2541
|
display: grid;
|
|
2524
2542
|
gap: var(--s-2);
|
|
2525
2543
|
align-content: start;
|
|
@@ -3593,6 +3611,9 @@ input.ef-input[type='number'] {
|
|
|
3593
3611
|
|
|
3594
3612
|
.es.p-select,
|
|
3595
3613
|
.es.p-multiselect {
|
|
3614
|
+
/* The gap between label, clear ✕ and caret. The touch tier reads it to
|
|
3615
|
+
keep the ✕'s 48px target between the label and the caret. */
|
|
3616
|
+
--es-gap: 10px;
|
|
3596
3617
|
width: 100%;
|
|
3597
3618
|
min-width: 200px;
|
|
3598
3619
|
background: var(--paper-alt);
|
|
@@ -3602,7 +3623,7 @@ input.ef-input[type='number'] {
|
|
|
3602
3623
|
padding: 0 10px 0 14px;
|
|
3603
3624
|
display: inline-flex;
|
|
3604
3625
|
align-items: center;
|
|
3605
|
-
gap:
|
|
3626
|
+
gap: var(--es-gap);
|
|
3606
3627
|
color: var(--text);
|
|
3607
3628
|
font-size: 14px;
|
|
3608
3629
|
cursor: pointer;
|
|
@@ -3686,11 +3707,14 @@ input.ef-input[type='number'] {
|
|
|
3686
3707
|
clearable control (input, number, select, typeahead) is identical. */
|
|
3687
3708
|
.ef-clear,
|
|
3688
3709
|
.es .es-clear {
|
|
3710
|
+
/* One size, read again by the touch tier below to size the target and
|
|
3711
|
+
the space it reserves, so the two cannot drift apart. */
|
|
3712
|
+
--ef-clear-size: 22px;
|
|
3689
3713
|
display: inline-grid;
|
|
3690
3714
|
place-items: center;
|
|
3691
3715
|
box-sizing: border-box;
|
|
3692
|
-
width:
|
|
3693
|
-
height:
|
|
3716
|
+
width: var(--ef-clear-size);
|
|
3717
|
+
height: var(--ef-clear-size);
|
|
3694
3718
|
border: 0;
|
|
3695
3719
|
padding: 0;
|
|
3696
3720
|
background: transparent;
|
|
@@ -4621,32 +4645,55 @@ input.ef-input[type='number'] {
|
|
|
4621
4645
|
made room for. The trigger's overhang adds its 1px border, since an
|
|
4622
4646
|
absolute box is measured from the padding edge. */
|
|
4623
4647
|
.row-actions__trigger,
|
|
4624
|
-
.ef-clear
|
|
4648
|
+
.ef-clear,
|
|
4649
|
+
.es .es-clear {
|
|
4625
4650
|
position: relative;
|
|
4626
4651
|
}
|
|
4627
4652
|
|
|
4628
4653
|
.row-actions__trigger {
|
|
4629
|
-
margin-block: calc((var(--hit-touch) -
|
|
4630
|
-
margin-inline: calc((var(--hit-touch) -
|
|
4654
|
+
margin-block: calc((var(--hit-touch) - var(--ef-row-trigger-h)) / 2);
|
|
4655
|
+
margin-inline: calc((var(--hit-touch) - var(--ef-row-trigger-w)) / 2);
|
|
4631
4656
|
}
|
|
4632
4657
|
|
|
4633
4658
|
.ef-clear {
|
|
4634
|
-
margin: calc((var(--hit-touch) -
|
|
4659
|
+
margin: calc((var(--hit-touch) - var(--ef-clear-size)) / 2);
|
|
4660
|
+
}
|
|
4661
|
+
|
|
4662
|
+
/* The select / multiselect ✕ sits in the trigger's flex row, between the
|
|
4663
|
+
label and the caret, 10px (--es-gap) from each. It reserves only the
|
|
4664
|
+
inline room its 48px target still lacks after that gap, so the target
|
|
4665
|
+
ends exactly at the label's edge and at the caret's, and a tap on the
|
|
4666
|
+
caret opens the panel instead of clearing the value. No block margin:
|
|
4667
|
+
the trigger is 40px whether it holds a value or not, and the target's
|
|
4668
|
+
extra 4px above and below overhangs the trigger the way the input ✕
|
|
4669
|
+
does. */
|
|
4670
|
+
.es .es-clear {
|
|
4671
|
+
margin-inline: calc((var(--hit-touch) - var(--ef-clear-size)) / 2 - var(--es-gap));
|
|
4635
4672
|
}
|
|
4636
4673
|
|
|
4637
4674
|
.row-actions__trigger::after,
|
|
4638
|
-
.ef-clear::after
|
|
4675
|
+
.ef-clear::after,
|
|
4676
|
+
.es .es-clear::after {
|
|
4639
4677
|
content: '';
|
|
4640
4678
|
position: absolute;
|
|
4641
4679
|
}
|
|
4642
4680
|
|
|
4681
|
+
/* A fixed 48px box centred on the trigger, not an inset derived from
|
|
4682
|
+
its size. The inset version measured from the padding edge and from
|
|
4683
|
+
whatever size the row laid the trigger out at, and a phone row drew a
|
|
4684
|
+
47.75px-wide target. The centred box is 48x48 whatever the painted
|
|
4685
|
+
size, border or sub-pixel layout. */
|
|
4643
4686
|
.row-actions__trigger::after {
|
|
4644
|
-
|
|
4645
|
-
|
|
4687
|
+
top: 50%;
|
|
4688
|
+
left: 50%;
|
|
4689
|
+
width: max(var(--hit-touch), 100%);
|
|
4690
|
+
height: max(var(--hit-touch), 100%);
|
|
4691
|
+
transform: translate(-50%, -50%);
|
|
4646
4692
|
}
|
|
4647
4693
|
|
|
4648
|
-
.ef-clear::after
|
|
4649
|
-
|
|
4694
|
+
.ef-clear::after,
|
|
4695
|
+
.es .es-clear::after {
|
|
4696
|
+
inset: calc((var(--hit-touch) - var(--ef-clear-size)) / -2);
|
|
4650
4697
|
}
|
|
4651
4698
|
|
|
4652
4699
|
/* Written as `.pager .pg` to match the base rule's specificity: a bare
|