@jirawatpyk/aura-react 5.28.0 → 5.30.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 +48 -0
- package/dist/aura.bundle.js +154 -29
- package/dist/cjs/index.cjs +154 -29
- package/dist/esm/Checkbox.js +4 -2
- package/dist/esm/DataTable.js +75 -8
- package/dist/esm/Field.js +2 -1
- package/dist/esm/Menu.js +61 -14
- package/dist/esm/RadioGroup.js +7 -2
- package/dist/esm/Select.js +2 -2
- package/dist/esm/Tag.js +1 -1
- package/dist/esm/TextField.js +2 -2
- package/dist/esm/Textarea.js +2 -2
- package/dist/esm/classes.js +5 -1
- package/dist/esm/internal.js +2 -1
- package/dist/index.d.cts +27 -0
- package/dist/index.d.ts +27 -0
- package/dist/styles.css +143 -38
- package/dist/styles.layer.css +143 -38
- package/package.json +1 -1
package/dist/styles.layer.css
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
border: 0;
|
|
15
15
|
background: transparent;
|
|
16
16
|
color: inherit;
|
|
17
|
-
font-family: inherit
|
|
17
|
+
font-family: var(--font-sans); /* 5.30: not inherit — a trigger outside a styled root fell back to Arial */
|
|
18
18
|
font-size: 13px;
|
|
19
19
|
font-weight: 500;
|
|
20
20
|
line-height: 1;
|
|
@@ -46,6 +46,19 @@ button.aura-btn--secondary[aria-disabled='true']:hover, button.aura-btn--ghost[a
|
|
|
46
46
|
button.aura-btn--danger-secondary[aria-disabled='true']:hover { background: transparent; }
|
|
47
47
|
button.aura-btn--danger[aria-disabled='true']:hover { background: var(--aura-button-danger-bg); }
|
|
48
48
|
button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-shadow-creative); transform: none; }
|
|
49
|
+
/* 5.30: a disabled filled button (primary, danger, creative) is a quiet grey fill with muted text, not a faded copy of
|
|
50
|
+
* itself — faded ink read as a separate grey button, faded red as pink. Outline and ghost buttons keep the fade. */
|
|
51
|
+
.aura-btn:is(.aura-btn--primary, .aura-btn--danger, .aura-btn--creative):is(:disabled, [aria-disabled='true']:not(.is-loading)),
|
|
52
|
+
.aura-btn:is(.aura-btn--primary, .aura-btn--danger, .aura-btn--creative):is(:disabled, [aria-disabled='true']:not(.is-loading)):hover {
|
|
53
|
+
opacity: 1; background: var(--aura-button-disabled-bg); color: var(--aura-button-disabled-fg); border-color: transparent; box-shadow: none;
|
|
54
|
+
}
|
|
55
|
+
/* Forced colours drop the fills: filled buttons get a 1px edge (as outline buttons have), and a disabled or gated one
|
|
56
|
+
* (still focusable) shows GrayText and keeps the fade, without changing size. */
|
|
57
|
+
@media (forced-colors: active) {
|
|
58
|
+
.aura-btn:is(.aura-btn--primary, .aura-btn--danger) { border: 1px solid ButtonText; }
|
|
59
|
+
.aura-btn.aura-btn:is(:disabled, [aria-disabled='true']:not(.is-loading)),
|
|
60
|
+
.aura-btn.aura-btn.aura-btn:is(:disabled, [aria-disabled='true']:not(.is-loading)):hover { color: GrayText; border-color: GrayText; opacity: var(--aura-disabled-opacity); }
|
|
61
|
+
}
|
|
49
62
|
.aura-btn.is-loading:active { transform: none; }
|
|
50
63
|
|
|
51
64
|
/* Focus — ADDED: the source defines none. Solid 2px ring, 2px offset, on every interactive element. */
|
|
@@ -95,10 +108,17 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
|
|
|
95
108
|
color: var(--aura-fg-primary);
|
|
96
109
|
}
|
|
97
110
|
.aura-table__scroll { position: relative; overflow: auto; overscroll-behavior: contain; height: var(--aura-table-h, auto); }
|
|
111
|
+
/* 5.30: more columns past the end edge — a soft shadow over the grid's end edge (not over its scrollbars, its footer
|
|
112
|
+
* or the column button), so it reads as scrolling sideways. JavaScript places it (top, height, scrollbar inset). */
|
|
113
|
+
.aura-table__edge {
|
|
114
|
+
position: absolute; z-index: 4; inset-inline-end: var(--aura-edge-sb, 0px); top: var(--aura-edge-top, 0px); height: var(--aura-edge-h, 0px);
|
|
115
|
+
width: 16px; pointer-events: none; background: linear-gradient(to left, var(--aura-scroll-shadow), transparent);
|
|
116
|
+
}
|
|
117
|
+
.aura-table__edge:dir(rtl) { background: linear-gradient(to right, var(--aura-scroll-shadow), transparent); }
|
|
98
118
|
.aura-table__head {
|
|
99
119
|
position: sticky; top: 0; z-index: 3; box-sizing: border-box; /* the hairline is inside the row height */
|
|
100
120
|
display: flex; height: var(--aura-table-row-height); min-width: var(--aura-row-min, 0);
|
|
101
|
-
background: var(--aura-bg
|
|
121
|
+
background: var(--aura-table-head-bg);
|
|
102
122
|
border-bottom: 1px solid var(--aura-border-default);
|
|
103
123
|
font-family: var(--font-mono); font-size: 12px; color: var(--aura-fg-secondary);
|
|
104
124
|
}
|
|
@@ -171,7 +191,7 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
|
|
|
171
191
|
.aura-table__gutter--end { position: static; }
|
|
172
192
|
.aura-table__picker {
|
|
173
193
|
position: absolute; top: 0; right: 0; z-index: 5; width: var(--aura-space-12); height: calc(var(--aura-table-row-height) - 1px);
|
|
174
|
-
display: flex; align-items: center; justify-content: center; background: var(--aura-bg
|
|
194
|
+
display: flex; align-items: center; justify-content: center; background: var(--aura-table-head-bg); border-top-right-radius: calc(var(--aura-card-radius) - 1px);
|
|
175
195
|
}
|
|
176
196
|
.aura-table__gutter--end.has-picker {
|
|
177
197
|
width: var(--aura-space-12); position: sticky; left: auto; right: 0;
|
|
@@ -272,7 +292,7 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
|
|
|
272
292
|
display: inline-flex; align-items: center; justify-content: center;
|
|
273
293
|
border: 1.5px solid var(--aura-border-control); border-radius: var(--aura-radius-xs);
|
|
274
294
|
}
|
|
275
|
-
.aura-menu__check.is-on { background: var(--aura-
|
|
295
|
+
.aura-menu__check.is-on { background: var(--aura-control-checked-bg); border-color: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); }
|
|
276
296
|
.aura-menu__check.is-on .aura-icon { color: inherit; }
|
|
277
297
|
.aura-menu__item--danger, .aura-menu__item--danger .aura-icon { color: var(--aura-fg-danger); }
|
|
278
298
|
.aura-menu__item--danger:hover, .aura-menu__item--danger:focus { background: var(--aura-alert-danger-bg); color: var(--aura-alert-danger-fg); }
|
|
@@ -282,8 +302,8 @@ a.aura-menu__item { text-decoration: none; box-sizing: border-box; }
|
|
|
282
302
|
flex: none; box-sizing: border-box; width: 16px; height: 16px; border-radius: var(--aura-radius-full);
|
|
283
303
|
border: 1px solid var(--aura-border-control); display: inline-flex; align-items: center; justify-content: center;
|
|
284
304
|
}
|
|
285
|
-
.aura-menu__radio.is-on { border-color: var(--aura-
|
|
286
|
-
.aura-menu__radio.is-on::after { content: ''; width: 8px; height: 8px; border-radius: var(--aura-radius-full); background: var(--aura-
|
|
305
|
+
.aura-menu__radio.is-on { border-color: var(--aura-control-checked-bg); }
|
|
306
|
+
.aura-menu__radio.is-on::after { content: ''; width: 8px; height: 8px; border-radius: var(--aura-radius-full); background: var(--aura-control-checked-bg); }
|
|
287
307
|
/* 5.7: a header above the items (who is signed in), set off by a hairline like a separator. */
|
|
288
308
|
.aura-menu__header { margin: calc(-1 * var(--aura-space-1)) calc(-1 * var(--aura-space-1)) var(--aura-space-1); padding: var(--aura-space-3); border-bottom: 1px solid var(--aura-border-default); color: var(--aura-fg-secondary); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
|
|
289
309
|
.aura-menu__header > * { margin: 0; }
|
|
@@ -340,6 +360,16 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
340
360
|
.aura-skel--pill { width: 72px; height: 20px; }
|
|
341
361
|
.aura-skel--box { width: var(--aura-icon-sm); height: var(--aura-icon-sm); border-radius: var(--aura-radius-xs); }
|
|
342
362
|
@media (prefers-reduced-motion: reduce) { .aura-skel { animation: none; } }
|
|
363
|
+
/* 5.29 (Chamber-OS 134): a DataTable skeleton row stands in for the real one — text lines (skeletonLines) on the 20px
|
|
364
|
+
* line, and a button-height bar where row actions go: 32px, or 44px under the touchHeight rule with the column's
|
|
365
|
+
* skeletonTouch; full width in a card footer. */
|
|
366
|
+
.aura-skel--action { flex: none; width: var(--aura-button-height-sm); height: var(--aura-button-height-sm); border-radius: var(--aura-button-radius); } /* 5.30: the button's own shape */
|
|
367
|
+
.aura-skel--action.is-footer { width: 100%; }
|
|
368
|
+
.aura-table__td.is-end > .aura-skel-lines { align-items: flex-end; }
|
|
369
|
+
@media (max-width: 639.98px), (pointer: coarse) {
|
|
370
|
+
.aura-skel--action.is-touch { height: var(--aura-touch-target); }
|
|
371
|
+
.aura-skel--action.is-touch:not(.is-footer) { width: var(--aura-touch-target); }
|
|
372
|
+
}
|
|
343
373
|
.aura-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
|
|
344
374
|
|
|
345
375
|
/* Empty state */
|
|
@@ -365,12 +395,12 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
365
395
|
box-sizing: border-box; width: 100%; height: 100%;
|
|
366
396
|
display: inline-flex; align-items: center; justify-content: center;
|
|
367
397
|
border: 1.5px solid var(--aura-border-control); border-radius: var(--aura-radius-xs);
|
|
368
|
-
background: var(--aura-bg-surface); color: var(--aura-
|
|
398
|
+
background: var(--aura-bg-surface); color: var(--aura-control-checked-fg);
|
|
369
399
|
transition: background var(--aura-duration-fast) var(--aura-ease), border-color var(--aura-duration-fast) var(--aura-ease);
|
|
370
400
|
pointer-events: none;
|
|
371
401
|
}
|
|
372
402
|
.aura-check__input:checked + .aura-check__box,
|
|
373
|
-
.aura-check__input:indeterminate + .aura-check__box { background: var(--aura-
|
|
403
|
+
.aura-check__input:indeterminate + .aura-check__box { background: var(--aura-control-checked-bg); border-color: var(--aura-control-checked-bg); }
|
|
374
404
|
.aura-check__input:focus-visible + .aura-check__box { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
375
405
|
.aura-table__mono { font-family: var(--font-mono); }
|
|
376
406
|
|
|
@@ -383,6 +413,7 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
383
413
|
border-radius: var(--aura-radius-full);
|
|
384
414
|
padding: 2px var(--aura-space-2) 2px 6px;
|
|
385
415
|
font-size: 11px;
|
|
416
|
+
font-weight: 500; /* 5.30 (Chamber-OS 137): medium everywhere, not the parent's weight; Badge stays 600 */
|
|
386
417
|
line-height: 16px;
|
|
387
418
|
white-space: nowrap;
|
|
388
419
|
background: var(--aura-status-neutral-bg);
|
|
@@ -513,30 +544,31 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
513
544
|
border: 1.5px solid var(--aura-border-control); background: var(--aura-bg-input); cursor: inherit;
|
|
514
545
|
transition: border-width var(--aura-duration-fast) var(--aura-ease);
|
|
515
546
|
}
|
|
516
|
-
.aura-radio:checked { border: 5px solid var(--aura-
|
|
547
|
+
.aura-radio:checked { border: 5px solid var(--aura-control-checked-bg); background: var(--aura-control-checked-fg); }
|
|
517
548
|
.aura-radio:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
518
549
|
.aura-radio-group.is-invalid .aura-radio:not(:checked) { border-color: var(--aura-border-danger); }
|
|
519
550
|
|
|
520
551
|
.aura-switch-row { display: flex; align-items: flex-start; gap: var(--aura-space-3); font-family: var(--font-sans); }
|
|
521
552
|
/* 5.10.1: disabled rows, on or off, are treated alike and stay readable — the label turns secondary, the description
|
|
522
|
-
* keeps its colour (often the reason it's locked) — and only the switch fades: off to the disabled opacity, on
|
|
553
|
+
* keeps its colour (often the reason it's locked) — and only the switch fades: off to the disabled opacity, on keeps its track and fades its thumb (5.30: the violet track at 0.75 fell under 3:1),
|
|
523
554
|
* ≥3:1 apart in both themes, so "locked on" never looks like "off". */
|
|
524
555
|
.aura-switch-row.is-disabled { cursor: not-allowed; }
|
|
525
556
|
.aura-switch-row.is-disabled .aura-choice__label { color: var(--aura-fg-secondary); cursor: not-allowed; }
|
|
526
557
|
.aura-switch:disabled { opacity: var(--aura-disabled-opacity); }
|
|
527
|
-
.aura-switch.is-on:disabled { opacity:
|
|
558
|
+
.aura-switch.is-on:disabled { opacity: 1; } /* 5.30: the violet track stays whole (faded, it fell under 3:1 from off)… */
|
|
559
|
+
.aura-switch.is-on:disabled .aura-switch__thumb { opacity: 0.6; } /* …and the thumb fades, so it doesn't look enabled */
|
|
528
560
|
.aura-switch {
|
|
529
561
|
position: relative; flex: none; box-sizing: border-box; margin: 0; padding: 0;
|
|
530
562
|
width: var(--aura-switch-width); height: var(--aura-switch-height); border-radius: var(--aura-radius-full);
|
|
531
563
|
border: 0; background: var(--aura-border-control); cursor: pointer;
|
|
532
564
|
transition: background var(--aura-duration-fast) var(--aura-ease);
|
|
533
565
|
}
|
|
534
|
-
.aura-switch.is-on { background: var(--aura-
|
|
566
|
+
.aura-switch.is-on { background: var(--aura-control-checked-bg); }
|
|
535
567
|
.aura-switch__thumb {
|
|
536
568
|
position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: var(--aura-radius-full);
|
|
537
569
|
background: var(--aura-bg-surface); transition: transform var(--aura-duration-fast) var(--aura-ease);
|
|
538
570
|
}
|
|
539
|
-
.aura-switch.is-on .aura-switch__thumb { transform: translateX(16px); background: var(--aura-
|
|
571
|
+
.aura-switch.is-on .aura-switch__thumb { transform: translateX(16px); background: var(--aura-control-checked-fg); }
|
|
540
572
|
.aura-switch:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
541
573
|
.aura-switch:disabled { cursor: not-allowed; }
|
|
542
574
|
/* 5.19 (Chamber-OS 113): a read-only switch keeps its colours (a locked "on" reads as on at full contrast) and stays
|
|
@@ -709,7 +741,7 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
709
741
|
transition: color var(--aura-duration-fast) var(--aura-ease), border-color var(--aura-duration-fast) var(--aura-ease);
|
|
710
742
|
}
|
|
711
743
|
.aura-tab:hover { color: var(--aura-fg-primary); }
|
|
712
|
-
.aura-tab.is-active { color: var(--aura-fg-primary); border-bottom-color: var(--aura-
|
|
744
|
+
.aura-tab.is-active { color: var(--aura-fg-primary); border-bottom-color: var(--aura-control-checked-bg); }
|
|
713
745
|
.aura-tab:disabled, .aura-tab.is-disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
|
|
714
746
|
a.aura-tab { text-decoration: none; }
|
|
715
747
|
.aura-tab:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: -4px; border-radius: var(--aura-radius-xs); }
|
|
@@ -916,7 +948,7 @@ a.aura-tab { text-decoration: none; }
|
|
|
916
948
|
.aura-cal__day:hover { background: var(--aura-bg-surface-hover); }
|
|
917
949
|
.aura-cal__day.is-outside { color: var(--aura-fg-tertiary); }
|
|
918
950
|
.aura-cal__day.is-today { box-shadow: inset 0 0 0 1px var(--aura-border-control); font-weight: 600; }
|
|
919
|
-
.aura-cal__day.is-selected { background: var(--aura-
|
|
951
|
+
.aura-cal__day.is-selected { background: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); box-shadow: none; }
|
|
920
952
|
.aura-cal__day:disabled, .aura-cal__day[aria-disabled='true'] { opacity: var(--aura-disabled-opacity); cursor: not-allowed; background: transparent; text-decoration: line-through; }
|
|
921
953
|
.aura-cal__day:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 1px; }
|
|
922
954
|
.aura-cal__grid td.is-in-range { background: var(--aura-bg-selected); }
|
|
@@ -929,7 +961,7 @@ a.aura-tab { text-decoration: none; }
|
|
|
929
961
|
font: inherit; font-size: 13px; font-variant-numeric: tabular-nums; cursor: pointer;
|
|
930
962
|
}
|
|
931
963
|
.aura-cal__year:hover { background: var(--aura-bg-surface-hover); }
|
|
932
|
-
.aura-cal__year.is-selected { background: var(--aura-
|
|
964
|
+
.aura-cal__year.is-selected { background: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); }
|
|
933
965
|
.aura-cal__foot { display: flex; justify-content: space-between; margin-top: var(--aura-space-2); padding-top: var(--aura-space-2); border-top: 1px solid var(--aura-border-subtle); }
|
|
934
966
|
.aura-cal__link {
|
|
935
967
|
height: var(--aura-control-sm); padding: 0 var(--aura-space-2); border: 0; border-radius: var(--aura-radius-sm);
|
|
@@ -1043,8 +1075,10 @@ a.aura-tab { text-decoration: none; }
|
|
|
1043
1075
|
.aura-shell__content:not(.is-flush) > .aura-container { padding-left: 0; padding-right: 0; }
|
|
1044
1076
|
|
|
1045
1077
|
/* Totals row (4.19): under the body, a strong top edge; sticky at the bottom of a `height` table with stickyFooter. */
|
|
1046
|
-
.
|
|
1047
|
-
|
|
1078
|
+
/* 5.30: a 2px hairline-colour rule over the totals (border-strong was a glaring white line in dark); a pinned totals row
|
|
1079
|
+
* casts a soft shadow over the rows scrolling under it. */
|
|
1080
|
+
.aura-table__total { background: var(--aura-table-head-bg); border-top: 2px solid var(--aura-border-default); font-weight: 600; }
|
|
1081
|
+
.aura-table__total.is-sticky { position: sticky; bottom: 0; z-index: 3; box-shadow: 0 -6px 8px -6px var(--aura-scroll-shadow); }
|
|
1048
1082
|
.aura-table__total .aura-table__td.is-end { font-variant-numeric: tabular-nums; }
|
|
1049
1083
|
.aura-tooltip--above { transform: translateY(-100%); max-width: min(var(--aura-tooltip-max), 90vw); white-space: normal; }
|
|
1050
1084
|
|
|
@@ -1137,7 +1171,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1137
1171
|
.aura-badge {
|
|
1138
1172
|
display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 var(--aura-space-2); box-sizing: border-box;
|
|
1139
1173
|
border-radius: var(--aura-radius-full); border: 1px solid transparent; font-family: var(--font-sans); font-size: 11px; font-weight: 600; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums;
|
|
1140
|
-
background: var(--aura-
|
|
1174
|
+
background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg); /* 5.30: surface-hover vanished on the light canvas */
|
|
1141
1175
|
}
|
|
1142
1176
|
.aura-badge--accent { background: var(--aura-alert-info-bg); color: var(--aura-alert-info-fg); }
|
|
1143
1177
|
.aura-badge--success { background: var(--aura-alert-success-bg); color: var(--aura-alert-success-fg); }
|
|
@@ -1200,7 +1234,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1200
1234
|
.aura-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--aura-space-2); padding: var(--aura-space-12) var(--aura-space-6); font-family: var(--font-sans); color: var(--aura-fg-primary); }
|
|
1201
1235
|
.aura-empty.is-sm { padding: var(--aura-space-6) var(--aura-space-4); }
|
|
1202
1236
|
.aura-empty.is-bordered { border: 1px dashed var(--aura-border-control); border-radius: var(--aura-radius-lg); }
|
|
1203
|
-
.aura-empty__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: var(--aura-space-2); border-radius: var(--aura-radius-full); background: var(--aura-
|
|
1237
|
+
.aura-empty__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: var(--aura-space-2); border-radius: var(--aura-radius-full); background: var(--aura-status-neutral-bg); color: var(--aura-fg-secondary); }
|
|
1204
1238
|
.aura-empty.is-sm .aura-empty__icon { width: 36px; height: 36px; }
|
|
1205
1239
|
.aura-empty__title { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
|
|
1206
1240
|
.aura-empty__text { margin: 0; max-width: 44ch; font-size: 14px; line-height: 1.6; color: var(--aura-fg-secondary); }
|
|
@@ -1218,7 +1252,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
|
|
|
1218
1252
|
border: 0; border-radius: var(--aura-radius-full); background: transparent; color: var(--aura-fg-primary); font: inherit; font-variant-numeric: tabular-nums; text-decoration: none; cursor: pointer;
|
|
1219
1253
|
}
|
|
1220
1254
|
.aura-page:hover { background: var(--aura-bg-surface-hover); }
|
|
1221
|
-
.aura-page.is-current { background: var(--aura-
|
|
1255
|
+
.aura-page.is-current { background: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); font-weight: 600; }
|
|
1222
1256
|
.aura-page:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
1223
1257
|
.aura-pagination__gap { min-width: 24px; text-align: center; color: var(--aura-fg-secondary); }
|
|
1224
1258
|
.aura-pagination__compact { display: none; padding: 0 var(--aura-space-2); color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; }
|
|
@@ -1312,7 +1346,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1312
1346
|
color: var(--aura-fg-secondary); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums;
|
|
1313
1347
|
}
|
|
1314
1348
|
.aura-stepper__marker .aura-icon { width: 16px; height: 16px; }
|
|
1315
|
-
.aura-stepper__item.is-done .aura-stepper__marker { background: var(--aura-
|
|
1349
|
+
.aura-stepper__item.is-done .aura-stepper__marker { background: var(--aura-control-checked-bg); border-color: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); }
|
|
1316
1350
|
.aura-stepper__item.is-current .aura-stepper__marker { border: 2px solid var(--aura-fg-accent); color: var(--aura-fg-accent); }
|
|
1317
1351
|
.aura-stepper__text { display: flex; flex-direction: column; min-width: 0; padding-top: 4px; }
|
|
1318
1352
|
.aura-stepper__label { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--aura-fg-secondary); }
|
|
@@ -1325,12 +1359,12 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1325
1359
|
}
|
|
1326
1360
|
.aura-stepper--horizontal .aura-stepper__step { flex-direction: column; gap: var(--aura-space-2); }
|
|
1327
1361
|
.aura-stepper--horizontal .aura-stepper__text { padding-top: 0; }
|
|
1328
|
-
.aura-stepper--horizontal .aura-stepper__item.is-done::after { background: var(--aura-
|
|
1362
|
+
.aura-stepper--horizontal .aura-stepper__item.is-done::after { background: var(--aura-control-checked-bg); }
|
|
1329
1363
|
.aura-stepper--vertical .aura-stepper__item { flex: none; padding-bottom: var(--aura-space-5); }
|
|
1330
1364
|
.aura-stepper--vertical .aura-stepper__item:not(:last-child)::after {
|
|
1331
1365
|
content: ""; position: absolute; left: 14px; top: 32px; bottom: 4px; width: 1px; background: var(--aura-border-control);
|
|
1332
1366
|
}
|
|
1333
|
-
.aura-stepper--vertical .aura-stepper__item.is-done::after { background: var(--aura-
|
|
1367
|
+
.aura-stepper--vertical .aura-stepper__item.is-done::after { background: var(--aura-control-checked-bg); }
|
|
1334
1368
|
.aura-stepper__compact { display: none; margin: var(--aura-space-2) 0 0; font-size: 13px; }
|
|
1335
1369
|
.aura-stepper__count { color: var(--aura-fg-secondary); margin-right: var(--aura-space-2); }
|
|
1336
1370
|
.aura-stepper__compact-label { font-weight: 600; }
|
|
@@ -1349,15 +1383,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1349
1383
|
.aura-segmented.is-full { display: flex; width: 100%; }
|
|
1350
1384
|
.aura-segmented__option {
|
|
1351
1385
|
flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
|
|
1352
|
-
height:
|
|
1386
|
+
height: calc(var(--aura-input-height) - 6px); /* 5.30: the control is as tall as a field beside it (2px padding, 1px edge) */
|
|
1387
|
+
padding: 0 var(--aura-space-4); box-sizing: border-box;
|
|
1353
1388
|
border: 0; border-radius: var(--aura-radius-full); background: transparent; color: var(--aura-fg-secondary);
|
|
1354
1389
|
font: inherit; font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;
|
|
1355
1390
|
transition: background-color var(--aura-duration-fast) var(--aura-ease), color var(--aura-duration-fast) var(--aura-ease), box-shadow var(--aura-duration-fast) var(--aura-ease);
|
|
1356
1391
|
}
|
|
1357
1392
|
.aura-segmented.is-full .aura-segmented__option { flex: 1 1 0; min-width: 0; }
|
|
1358
|
-
.aura-segmented__option.is-icon { padding: 0; width:
|
|
1393
|
+
.aura-segmented__option.is-icon { padding: 0; width: calc(var(--aura-input-height) - 6px); } /* 5.30: square */
|
|
1359
1394
|
.aura-segmented__option:hover:not(:disabled):not(.is-selected) { color: var(--aura-fg-primary); }
|
|
1360
|
-
.aura-segmented__option.is-selected { background: var(--aura-bg
|
|
1395
|
+
.aura-segmented__option.is-selected { background: var(--aura-segmented-thumb-bg); color: var(--aura-fg-primary); font-weight: 600; box-shadow: inset 0 0 0 1px var(--aura-border-control), var(--aura-shadow-enterprise); } /* 5.2: the edge marks the choice at 3:1; the fill alone was 1.04:1 on the track */
|
|
1361
1396
|
.aura-segmented__option:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 1px; }
|
|
1362
1397
|
.aura-segmented__option:disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
|
|
1363
1398
|
.aura-segmented--sm .aura-segmented__option { height: 24px; padding: 0 var(--aura-space-3); font-size: 12px; }
|
|
@@ -1455,11 +1490,33 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1455
1490
|
.aura-check--labelled .aura-check__input { top: calc((var(--aura-touch-target) - 20px) / 2 + 3px); }
|
|
1456
1491
|
.aura-switch-row:not(.is-disabled):not(.is-readonly) { cursor: pointer; }
|
|
1457
1492
|
.aura-radio-group__list { gap: 0; }
|
|
1458
|
-
.aura-radio-group__list.is-horizontal { gap: 0 var(--aura-space-6); }
|
|
1493
|
+
.aura-radio-group__list.is-horizontal { gap: 0 var(--aura-space-6); align-items: flex-start; }
|
|
1494
|
+
}
|
|
1495
|
+
/* 5.30 (Chamber-OS 135): `touchHeight` on TextField, Textarea, Select, RadioGroup and Checkbox — 44px boxes and choice
|
|
1496
|
+
* rows (a one-line label centred), below 640px or on a coarse pointer (is-touch) or at every width (is-touch-always).
|
|
1497
|
+
* The field's own --aura-input-height wins over any density around it. */
|
|
1498
|
+
.aura-field.is-touch-always { --aura-input-height: var(--aura-touch-target); }
|
|
1499
|
+
.aura-radio-group.is-touch-always .aura-choice, .aura-check--labelled.is-touch-always {
|
|
1500
|
+
box-sizing: border-box; min-height: var(--aura-touch-target); padding-block: calc((var(--aura-touch-target) - 20px) / 2);
|
|
1501
|
+
}
|
|
1502
|
+
.aura-check--labelled.is-touch-always .aura-check__input { top: calc((var(--aura-touch-target) - 20px) / 2 + 3px); }
|
|
1503
|
+
.aura-radio-group.is-touch-always .aura-radio-group__list { gap: 0; }
|
|
1504
|
+
.aura-radio-group.is-touch-always .aura-radio-group__list.is-horizontal { gap: 0 var(--aura-space-6); align-items: flex-start; }
|
|
1505
|
+
@media (max-width: 639.98px), (pointer: coarse) {
|
|
1506
|
+
.aura-field.is-touch { --aura-input-height: var(--aura-touch-target); }
|
|
1507
|
+
.aura-radio-group.is-touch .aura-choice, .aura-check--labelled.is-touch {
|
|
1508
|
+
box-sizing: border-box; min-height: var(--aura-touch-target); padding-block: calc((var(--aura-touch-target) - 20px) / 2);
|
|
1509
|
+
}
|
|
1510
|
+
.aura-check--labelled.is-touch .aura-check__input { top: calc((var(--aura-touch-target) - 20px) / 2 + 3px); }
|
|
1511
|
+
.aura-radio-group.is-touch .aura-radio-group__list { gap: 0; }
|
|
1512
|
+
.aura-radio-group.is-touch .aura-radio-group__list.is-horizontal { gap: 0 var(--aura-space-6); align-items: flex-start; }
|
|
1459
1513
|
}
|
|
1460
1514
|
|
|
1461
1515
|
/* PasswordField: the show/hide IconButton sits in the suffix slot, 6px from the edge */
|
|
1462
1516
|
.aura-password .aura-input__suffix { padding-right: 6px; display: flex; align-items: center; }
|
|
1517
|
+
/* 5.30: a button inside a field (show password) is as quiet as the field's other icons until hovered. */
|
|
1518
|
+
.aura-input .aura-icon-btn { color: var(--aura-fg-secondary); }
|
|
1519
|
+
.aura-input .aura-icon-btn:hover:not(:disabled) { color: var(--aura-fg-primary); }
|
|
1463
1520
|
|
|
1464
1521
|
/* FormErrorSummary: a danger alert whose items link to their fields */
|
|
1465
1522
|
.aura-error-summary:focus-visible, .aura-error-summary:focus { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
|
|
@@ -1552,6 +1609,12 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1552
1609
|
.aura-filterselect__name { flex: none; white-space: nowrap; color: var(--aura-fg-secondary); }
|
|
1553
1610
|
.aura-filterselect__value { min-width: 0; font-weight: 500; overflow-wrap: anywhere; }
|
|
1554
1611
|
.aura-filterselect__chevron { flex: none; width: 14px; height: 14px; color: var(--aura-fg-secondary); }
|
|
1612
|
+
/* 5.30: from 640px the face has a field's inset and text size, like the search box beside it; phones keep the tight
|
|
1613
|
+
* face so three filters and a chip share one row. */
|
|
1614
|
+
@media (min-width: 640px) {
|
|
1615
|
+
.aura-filterselect__face { padding-inline: var(--aura-space-3) var(--aura-space-2); font-size: 14px; }
|
|
1616
|
+
.aura-filterselect__chevron { width: var(--aura-icon-sm); height: var(--aura-icon-sm); }
|
|
1617
|
+
}
|
|
1555
1618
|
.aura-filterselect.is-open .aura-filterselect__chevron { transform: rotate(180deg); }
|
|
1556
1619
|
.aura-filterselect__face:focus-visible, .aura-filterselect:has(.aura-filterselect__native:focus-visible) .aura-filterselect__face {
|
|
1557
1620
|
outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 1px; border-color: var(--aura-border-strong);
|
|
@@ -1721,21 +1784,35 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1721
1784
|
/* DataTable's grid look — mono header band, hairlines, 20px outer radius — on plain <table> markup, with wrapping text. */
|
|
1722
1785
|
.aura-tbl-wrap {
|
|
1723
1786
|
overflow-x: auto; border: 1px solid var(--aura-border-default); border-radius: var(--aura-card-radius);
|
|
1724
|
-
|
|
1787
|
+
color: var(--aura-fg-primary); font-family: var(--font-sans);
|
|
1788
|
+
/* 5.30: a table wider than its box shows a soft shadow at the edge that has more to scroll to (CSS only: the covers
|
|
1789
|
+
* scroll with the content, the shadows stay with the box). Body rows show it; the header band and totals rows, with
|
|
1790
|
+
* their own fill, cover it. Set --aura-tbl-bg if you give the box another ground. A flush table has none. */
|
|
1791
|
+
background:
|
|
1792
|
+
linear-gradient(to right, var(--aura-tbl-bg, var(--aura-bg-surface)) 30%, transparent) left / 32px 100% no-repeat local,
|
|
1793
|
+
linear-gradient(to left, var(--aura-tbl-bg, var(--aura-bg-surface)) 30%, transparent) right / 32px 100% no-repeat local,
|
|
1794
|
+
linear-gradient(to right, var(--aura-scroll-shadow), transparent) left / 12px 100% no-repeat scroll,
|
|
1795
|
+
linear-gradient(to left, var(--aura-scroll-shadow), transparent) right / 12px 100% no-repeat scroll,
|
|
1796
|
+
var(--aura-tbl-bg, var(--aura-bg-surface));
|
|
1725
1797
|
}
|
|
1726
1798
|
.aura-tbl { width: 100%; border-collapse: collapse; border-spacing: 0; font-size: 13px; line-height: 20px; }
|
|
1727
|
-
.aura-tbl__caption { caption-side: top; padding: var(--aura-space-4) var(--aura-space-6)
|
|
1799
|
+
.aura-tbl__caption { caption-side: top; padding: var(--aura-space-4) var(--aura-space-6) var(--aura-space-3); text-align: left; font-size: 14px; font-weight: 600; }
|
|
1800
|
+
/* 5.30: from 640px a cell is at least 10ch wide, so the table never squeezes a column to one letter; a longer word (an
|
|
1801
|
+
* email, a URL) still breaks to fit instead of widening the table. Phones keep fitting the box: use stackBelow there. */
|
|
1728
1802
|
.aura-tbl__th, .aura-tbl__td { padding: var(--aura-tbl-cell-py, var(--aura-space-3)) var(--aura-space-4); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
|
|
1803
|
+
@media (min-width: 640px) { .aura-tbl__th, .aura-tbl__td { min-width: 10ch; } }
|
|
1729
1804
|
.aura-tbl__th:first-child, .aura-tbl__td:first-child { padding-left: var(--aura-space-6); }
|
|
1730
1805
|
.aura-tbl__th:last-child, .aura-tbl__td:last-child { padding-right: var(--aura-space-6); }
|
|
1731
1806
|
.aura-tbl__head .aura-tbl__th {
|
|
1732
|
-
background: var(--aura-bg
|
|
1807
|
+
background: var(--aura-table-head-bg); border-bottom: 1px solid var(--aura-border-default);
|
|
1733
1808
|
font-family: var(--font-mono); font-size: 12px; font-weight: 400; color: var(--aura-fg-secondary); white-space: nowrap;
|
|
1734
1809
|
}
|
|
1735
1810
|
.aura-tbl__body .aura-tbl__row + .aura-tbl__row > * { border-top: 1px solid var(--aura-border-default); }
|
|
1736
1811
|
.aura-tbl__body .aura-tbl__th { font-weight: 500; }
|
|
1737
|
-
.aura-tbl__foot > .aura-tbl__row > * { background: var(--aura-bg
|
|
1738
|
-
.aura-tbl__foot > .aura-tbl__row:first-child > * { border-top:
|
|
1812
|
+
.aura-tbl__foot > .aura-tbl__row > * { background: var(--aura-table-head-bg); font-weight: 600; }
|
|
1813
|
+
.aura-tbl__foot > .aura-tbl__row:first-child > * { border-top: 2px solid var(--aura-border-default); }
|
|
1814
|
+
/* 5.30: with several totals rows (Subtotal, VAT, Total) the last one reads as the total. */
|
|
1815
|
+
.aura-tbl__foot > .aura-tbl__row:last-child:not(:first-child) > * { font-size: 14px; font-weight: 700; }
|
|
1739
1816
|
.aura-tbl__foot > .aura-tbl__row + .aura-tbl__row > * { border-top: 1px solid var(--aura-border-default); }
|
|
1740
1817
|
.aura-tbl .is-end { text-align: right; }
|
|
1741
1818
|
.aura-tbl .is-center { text-align: center; }
|
|
@@ -1779,7 +1856,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1779
1856
|
@container aura-tbl (width < 768px) {
|
|
1780
1857
|
.aura-tbl--stack-md, .aura-tbl--stack-md > .aura-tbl__body, .aura-tbl--stack-md > .aura-tbl__foot, .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row, .aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row, .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__td { display: block; }
|
|
1781
1858
|
.aura-tbl--stack-md > .aura-tbl__head { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
|
|
1782
|
-
.aura-tbl--stack-md > .aura-tbl__caption { display: block; padding: var(--aura-space-4) var(--aura-space-4)
|
|
1859
|
+
.aura-tbl--stack-md > .aura-tbl__caption { display: block; padding: var(--aura-space-4) var(--aura-space-4) var(--aura-space-3); }
|
|
1783
1860
|
.aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row, .aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { height: auto; padding: var(--aura-tbl-cell-py, var(--aura-space-3)) var(--aura-space-4); }
|
|
1784
1861
|
.aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row + .aura-tbl__row, .aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row:first-child { border-top: 1px solid var(--aura-border-default); }
|
|
1785
1862
|
.aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__td { padding: 0; border-top: 0; background: none; text-align: start; white-space: normal; }
|
|
@@ -1803,7 +1880,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1803
1880
|
@container aura-tbl (width < 640px) {
|
|
1804
1881
|
.aura-tbl--stack-sm, .aura-tbl--stack-sm > .aura-tbl__body, .aura-tbl--stack-sm > .aura-tbl__foot, .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row, .aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td { display: block; }
|
|
1805
1882
|
.aura-tbl--stack-sm > .aura-tbl__head { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
|
|
1806
|
-
.aura-tbl--stack-sm > .aura-tbl__caption { display: block; padding: var(--aura-space-4) var(--aura-space-4)
|
|
1883
|
+
.aura-tbl--stack-sm > .aura-tbl__caption { display: block; padding: var(--aura-space-4) var(--aura-space-4) var(--aura-space-3); }
|
|
1807
1884
|
.aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row, .aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { height: auto; padding: var(--aura-tbl-cell-py, var(--aura-space-3)) var(--aura-space-4); }
|
|
1808
1885
|
.aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row + .aura-tbl__row, .aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row:first-child { border-top: 1px solid var(--aura-border-default); }
|
|
1809
1886
|
.aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td { padding: 0; border-top: 0; background: none; text-align: start; white-space: normal; }
|
|
@@ -1837,7 +1914,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1837
1914
|
margin-bottom: var(--aura-space-2); padding: var(--aura-tbl-card-py, var(--aura-space-4)) var(--aura-space-4);
|
|
1838
1915
|
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1839
1916
|
}
|
|
1840
|
-
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg
|
|
1917
|
+
.aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-table-head-bg); }
|
|
1841
1918
|
.aura-tbl--cards.aura-tbl--stack-md > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1842
1919
|
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-md > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1843
1920
|
}
|
|
@@ -1850,7 +1927,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1850
1927
|
margin-bottom: var(--aura-space-2); padding: var(--aura-tbl-card-py, var(--aura-space-4)) var(--aura-space-4);
|
|
1851
1928
|
border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); background: var(--aura-bg-surface);
|
|
1852
1929
|
}
|
|
1853
|
-
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-bg
|
|
1930
|
+
.aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row { background: var(--aura-table-head-bg); }
|
|
1854
1931
|
.aura-tbl--cards.aura-tbl--stack-sm > :last-child > .aura-tbl__row:last-child { margin-bottom: 0; }
|
|
1855
1932
|
.aura-tbl-wrap.is-flush > .aura-tbl--cards.aura-tbl--stack-sm > .aura-tbl__caption { padding: 0 0 var(--aura-space-3); }
|
|
1856
1933
|
}
|
|
@@ -1954,7 +2031,13 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1954
2031
|
/* 5.22: a footer row ends the card with no margin under it, so the card keeps its full 16px. */
|
|
1955
2032
|
.aura-table__row:has(> [data-card='footer']:not(.is-blank)) { padding-bottom: var(--aura-space-4); }
|
|
1956
2033
|
.aura-table__row--skeleton .aura-table__td { display: flex; }
|
|
1957
|
-
.
|
|
2034
|
+
/* 5.29: a skeleton field shows its label above a bar on the field's value line (15px: 13px text, normal line
|
|
2035
|
+
* height — 1lh, so it follows the font), as a real field does; the title keeps the 20px line. */
|
|
2036
|
+
.aura-table__row--skeleton .aura-table__td[data-label] { flex-direction: column; align-items: stretch; }
|
|
2037
|
+
.aura-table__row--skeleton .aura-table__td > .aura-skel:not(.aura-skel--pill):not(.aura-skel--action) { margin: 5px 0; }
|
|
2038
|
+
.aura-table__row--skeleton .aura-table__td[data-label] .aura-skel:not(.aura-skel--pill):not(.aura-skel--action) { margin: 2.5px 0; margin: calc((1lh - 10px) / 2) 0; }
|
|
2039
|
+
.aura-table__row--skeleton .aura-table__td > .aura-skel-lines { align-items: flex-start; }
|
|
2040
|
+
.aura-table__total { background: var(--aura-table-head-bg); }
|
|
1958
2041
|
.aura-table__total > .is-blank { display: none; }
|
|
1959
2042
|
.aura-table__foot { border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); margin-top: var(--aura-space-2); background: var(--aura-bg-surface); }
|
|
1960
2043
|
.aura-table__empty { background: var(--aura-bg-surface); border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg); }
|
|
@@ -1985,4 +2068,26 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1985
2068
|
.aura-tabs--segmented .aura-tab.aura-segmented__option:focus-visible { outline: 2px dashed CanvasText; outline-offset: -5px; }
|
|
1986
2069
|
}
|
|
1987
2070
|
|
|
2071
|
+
/* 5.30: Thai needs more room than Latin — tone marks and vowels stack above and below the line. Where the page or a
|
|
2072
|
+
* part of it is Thai (lang="th"), small labels are at least 12px and lines are taller. */
|
|
2073
|
+
.aura-pill:lang(th), .aura-badge:lang(th), .aura-tab__count:lang(th) { font-size: 12px; }
|
|
2074
|
+
.aura-pill:lang(th) { line-height: 18px; }
|
|
2075
|
+
.aura-skel--pill:lang(th) { height: 22px; } /* the loading pill stays as tall as the Thai one */
|
|
2076
|
+
.aura-bottomnav__item:lang(th) { font-size: 12px; line-height: 18px; }
|
|
2077
|
+
.aura-stepper__desc:lang(th) { font-size: 13px; line-height: 1.6; }
|
|
2078
|
+
.aura-nav__label:lang(th) { line-height: 22px; }
|
|
2079
|
+
/* 5.30 (audit D): field labels, hints and errors and choice descriptions get Thai line room; a stacked card's field
|
|
2080
|
+
* labels are 12px in the sans face (the mono face has no Thai), and a stacked DataTable card's values sit on a set
|
|
2081
|
+
* 1.6 line, so a loading card (its bars follow 1lh) is as tall as one with Thai text. */
|
|
2082
|
+
.aura-field__label:lang(th), .aura-field__hint:lang(th), .aura-field__error:lang(th) { line-height: 1.6; }
|
|
2083
|
+
.aura-choice__desc:lang(th), .aura-check__desc:lang(th) { font-size: 13px; line-height: 1.6; }
|
|
2084
|
+
.aura-tbl__row > .aura-tbl__td[data-label]:lang(th)::before, .aura-table__td[data-label]:lang(th)::before { font-family: var(--font-sans); font-size: 12px; line-height: 18px; }
|
|
2085
|
+
.aura-table--stacked .aura-table__td[data-label]:lang(th) { line-height: 1.6; }
|
|
2086
|
+
|
|
2087
|
+
/* 5.30: a plain link (no class) inside AURA's surfaces takes the accent colour instead of the browser's blue. Zero
|
|
2088
|
+
* specificity, so any rule of yours for links wins. */
|
|
2089
|
+
:where(.aura-card, .aura-stat, .aura-alert, .aura-empty, .aura-field, .aura-tabs__panel, .aura-shell__main, .aura-tbl, .aura-table, .aura-dialog) :where(a:not([class])) {
|
|
2090
|
+
color: var(--aura-fg-accent); text-underline-offset: 2px;
|
|
2091
|
+
}
|
|
2092
|
+
|
|
1988
2093
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jirawatpyk/aura-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.30.0",
|
|
4
4
|
"description": "AURA Design System — React components (Enterprise Standard, Human Creative). Thai-first: Buddhist-era dates, Thai collation.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|