@jirawatpyk/aura-react 5.34.0 → 5.35.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 +7 -0
- package/dist/aura.bundle.js +350 -207
- package/dist/cjs/index.cjs +350 -207
- package/dist/esm/ActionBar.js +1 -0
- package/dist/esm/AppShell.js +16 -2
- package/dist/esm/BottomNav.js +26 -2
- package/dist/esm/scrollHide.js +96 -0
- package/dist/esm/strings.js +1 -0
- package/dist/esm/strings.sv.js +1 -0
- package/dist/esm/strings.th.js +1 -0
- package/dist/esm/tiles.js +14 -6
- package/dist/index.d.cts +20 -5
- package/dist/index.d.ts +20 -5
- package/dist/locales/sv.cjs +1 -0
- package/dist/locales/sv.d.cts +2 -0
- package/dist/locales/sv.d.ts +2 -0
- package/dist/locales/th.cjs +1 -0
- package/dist/locales/th.d.cts +2 -0
- package/dist/locales/th.d.ts +2 -0
- package/dist/server/index.cjs +15 -4
- package/dist/server/index.d.cts +8 -5
- package/dist/server/index.d.ts +8 -5
- package/dist/server/index.js +15 -4
- package/dist/styles.css +24 -5
- package/dist/styles.layer.css +24 -5
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -277,6 +277,7 @@ var th = {
|
|
|
277
277
|
statusProblem: "\u0E21\u0E35\u0E1B\u0E31\u0E0D\u0E2B\u0E32",
|
|
278
278
|
statusMaintenance: "\u0E1B\u0E34\u0E14\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07",
|
|
279
279
|
statusOk: "\u0E1B\u0E01\u0E15\u0E34",
|
|
280
|
+
statusUnknown: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",
|
|
280
281
|
accepts: function(list, max) {
|
|
281
282
|
return [list, max && "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 " + max + " \u0E15\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"].filter(Boolean).join(" \xB7 ");
|
|
282
283
|
}
|
|
@@ -412,6 +413,7 @@ var sv = {
|
|
|
412
413
|
statusProblem: "Problem",
|
|
413
414
|
statusMaintenance: "Underh\xE5ll",
|
|
414
415
|
statusOk: "OK",
|
|
416
|
+
statusUnknown: "Ingen data",
|
|
415
417
|
accepts: function(list, max) {
|
|
416
418
|
return [list, max && "h\xF6gst " + max + " per fil"].filter(Boolean).join(", ");
|
|
417
419
|
}
|
|
@@ -548,6 +550,7 @@ var STRINGS = {
|
|
|
548
550
|
statusProblem: "Problem",
|
|
549
551
|
statusMaintenance: "Maintenance",
|
|
550
552
|
statusOk: "OK",
|
|
553
|
+
statusUnknown: "No data",
|
|
551
554
|
accepts: function(list, max) {
|
|
552
555
|
return [list, max && "up to " + max + " each"].filter(Boolean).join(", ");
|
|
553
556
|
}
|
|
@@ -1380,19 +1383,22 @@ var STATUS_ICON = {
|
|
|
1380
1383
|
down: IconCircleAlert,
|
|
1381
1384
|
problem: IconTriangleAlert,
|
|
1382
1385
|
maintenance: IconWrench,
|
|
1383
|
-
ok: IconCircleCheck
|
|
1386
|
+
ok: IconCircleCheck,
|
|
1387
|
+
unknown: IconCircleDotDashed
|
|
1384
1388
|
};
|
|
1385
1389
|
var STATUS_TONE = {
|
|
1386
1390
|
down: "danger",
|
|
1387
1391
|
problem: "warning",
|
|
1388
1392
|
maintenance: "accent",
|
|
1389
|
-
ok: "default"
|
|
1393
|
+
ok: "default",
|
|
1394
|
+
unknown: "default"
|
|
1390
1395
|
};
|
|
1391
1396
|
var STATUS_WORD = {
|
|
1392
1397
|
down: "statusDown",
|
|
1393
1398
|
problem: "statusProblem",
|
|
1394
1399
|
maintenance: "statusMaintenance",
|
|
1395
|
-
ok: "statusOk"
|
|
1400
|
+
ok: "statusOk",
|
|
1401
|
+
unknown: "statusUnknown"
|
|
1396
1402
|
};
|
|
1397
1403
|
function statusWord(status, t) {
|
|
1398
1404
|
return String(t[STATUS_WORD[status]] || STATUS_WORD[status]);
|
|
@@ -1407,7 +1413,12 @@ function attrs(props) {
|
|
|
1407
1413
|
}
|
|
1408
1414
|
var comma = h5("span", { className: "aura-status-tile__sep" }, ",");
|
|
1409
1415
|
function statusTileElement(props, ref, Link, t, titleRef) {
|
|
1410
|
-
const status = STATUS_ICON[props.status] ? props.status : "
|
|
1416
|
+
const status = STATUS_ICON[props.status] ? props.status : "unknown";
|
|
1417
|
+
if (status !== props.status)
|
|
1418
|
+
devWarnOnce(
|
|
1419
|
+
"status-tile-status-" + String(props.status),
|
|
1420
|
+
'StatusTile status="' + String(props.status) + '" is not down, problem, maintenance, ok or unknown: it shows as unknown ("No data"). Map your value first.'
|
|
1421
|
+
);
|
|
1411
1422
|
const valueTone = props.valueTone || STATUS_TONE[status];
|
|
1412
1423
|
const word = props.statusLabel || statusWord(status, t);
|
|
1413
1424
|
const markers = (props.markers || []).filter(Boolean);
|
package/dist/styles.css
CHANGED
|
@@ -864,8 +864,14 @@ a.aura-tab { text-decoration: none; }
|
|
|
864
864
|
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
865
865
|
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
866
866
|
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
867
|
+
/* 5.35 (DxT Monitor 11): on a touch screen every crumb link and button (and "…") gets a 44px-tall hit area; the text
|
|
868
|
+
* doesn't move. The area reaches 12px into the gutter on each side (the gutter is 28px, so neighbours never overlap)
|
|
869
|
+
* and only 4px below the text, so it stops short of a PageHeader title 4px under the crumbs; the rest of the 44px is
|
|
870
|
+
* above. Wrapped rows sit 24px apart on touch screens so one row's areas never cover the next. */
|
|
867
871
|
@media (pointer: coarse) {
|
|
868
|
-
.aura-
|
|
872
|
+
.aura-crumbs ol { row-gap: 24px; }
|
|
873
|
+
.aura-crumbs li > a, .aura-crumbs li > button { position: relative; }
|
|
874
|
+
.aura-crumbs li > a::after, .aura-crumbs li > button::after { content: ''; position: absolute; left: -12px; right: -12px; bottom: -4px; height: max(100% + 4px, var(--aura-touch-target)); }
|
|
869
875
|
}
|
|
870
876
|
@media (max-width: 639.98px) {
|
|
871
877
|
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
@@ -1072,6 +1078,10 @@ a.aura-tab { text-decoration: none; }
|
|
|
1072
1078
|
--aura-shell-bar-height: 56px; /* 5.14 (Chamber-OS 104): the top bar's height, for sticky offsets under it */
|
|
1073
1079
|
}
|
|
1074
1080
|
.aura-shell--no-bar { --aura-shell-bar-height: 0px; }
|
|
1081
|
+
/* 5.35 (DxT Monitor 13): headerHideOnScroll — below lg the bar slides up out of view while the page scrolls down (its
|
|
1082
|
+
* shadow too); AppShell sets the bar-height token to 0 meanwhile. */
|
|
1083
|
+
.aura-shell__bar--hides { transition: transform var(--aura-duration-base) var(--aura-ease); }
|
|
1084
|
+
@media (max-width: 1023.98px) { .aura-shell__bar.is-away { transform: translateY(calc(-100% - 8px)); } }
|
|
1075
1085
|
@media (min-width: 1024px) { .aura-shell--menu-bar { --aura-shell-bar-height: 0px; } }
|
|
1076
1086
|
.aura-shell__nav { position: sticky; top: 0; height: 100vh; height: 100dvh; flex: none; }
|
|
1077
1087
|
.aura-shell__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
|
@@ -1187,6 +1197,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
|
|
|
1187
1197
|
.aura-status-tile--down .aura-status-tile__icon { color: var(--aura-alert-danger-fg); }
|
|
1188
1198
|
.aura-status-tile--problem .aura-status-tile__icon { color: var(--aura-alert-warning-fg); }
|
|
1189
1199
|
.aura-status-tile--maintenance .aura-status-tile__icon { color: var(--aura-alert-info-fg); }
|
|
1200
|
+
.aura-status-tile--unknown .aura-status-tile__icon { color: var(--aura-fg-tertiary); } /* 5.35: no data yet */
|
|
1190
1201
|
/* Two lines at most: similar names stay apart. */
|
|
1191
1202
|
.aura-status-tile__title {
|
|
1192
1203
|
flex: 1 1 0; min-width: 0; font-weight: 600; overflow-wrap: break-word;
|
|
@@ -1845,10 +1856,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1845
1856
|
@media (min-width: 1024px) { .aura-bottomnav.aura-bottomnav--below-lg, .aura-bottomnav-spacer.aura-bottomnav--below-lg { display: none; } }
|
|
1846
1857
|
@media (min-width: 1280px) { .aura-bottomnav.aura-bottomnav--below-xl, .aura-bottomnav-spacer.aura-bottomnav--below-xl { display: none; } }
|
|
1847
1858
|
/* While a BottomNav shows, viewport ActionBars and phone toasts sit on top of it. */
|
|
1848
|
-
:
|
|
1849
|
-
|
|
1850
|
-
@media (max-width:
|
|
1851
|
-
@media (max-width:
|
|
1859
|
+
/* 5.35: not while it has slid away on scroll, nor on a page that hides it (data-aura-hide-bottomnav). */
|
|
1860
|
+
:root:has(nav.aura-bottomnav--always:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); }
|
|
1861
|
+
@media (max-width: 767.98px) { :root:has(nav.aura-bottomnav--below-md:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1862
|
+
@media (max-width: 1023.98px) { :root:has(nav.aura-bottomnav--below-lg:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1863
|
+
@media (max-width: 1279.98px) { :root:has(nav.aura-bottomnav--below-xl:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1864
|
+
/* 5.35 (DxT Monitor 14): hideOnScroll slides it down out of view (the spacer stays, so nothing shifts); a page with its
|
|
1865
|
+
* own bottom bar (ActionBar hidesBottomNav, or data-aura-hide-bottomnav on any element) has no BottomNav or spacer. */
|
|
1866
|
+
.aura-bottomnav--hides { transition: transform var(--aura-duration-base) var(--aura-ease); }
|
|
1867
|
+
.aura-bottomnav.is-away { transform: translateY(100%); }
|
|
1868
|
+
:root:has([data-aura-hide-bottomnav]) .aura-bottomnav, :root:has([data-aura-hide-bottomnav]) .aura-bottomnav-spacer { display: none; }
|
|
1869
|
+
.aura-actionbar--viewport { transition: bottom var(--aura-duration-base) var(--aura-ease); }
|
|
1870
|
+
@media (prefers-reduced-motion: reduce) { .aura-bottomnav--hides, .aura-actionbar--viewport, .aura-shell__bar--hides { transition: none; } }
|
|
1852
1871
|
/* Toasts clear a BottomNav wherever it shows (phones and tablets), else the bottom safe-area inset (5.6). */
|
|
1853
1872
|
.aura-toaster:not(.is-top) { bottom: calc(var(--aura-toaster-offset, var(--aura-space-6)) + var(--aura-bottomnav-offset, env(safe-area-inset-bottom, 0px))); }
|
|
1854
1873
|
@media (max-width: 639.98px) { .aura-toaster:not(.is-top) { bottom: calc(var(--aura-toaster-offset, var(--aura-space-4)) + var(--aura-bottomnav-offset, env(safe-area-inset-bottom, 0px))); } }
|
package/dist/styles.layer.css
CHANGED
|
@@ -866,8 +866,14 @@ a.aura-tab { text-decoration: none; }
|
|
|
866
866
|
.aura-crumbs li.aura-crumbs__more { display: none; }
|
|
867
867
|
/* "…" is the only way to the hidden items: a 24px target, 44px on touch screens. */
|
|
868
868
|
.aura-crumbs__more > button { position: relative; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
|
|
869
|
+
/* 5.35 (DxT Monitor 11): on a touch screen every crumb link and button (and "…") gets a 44px-tall hit area; the text
|
|
870
|
+
* doesn't move. The area reaches 12px into the gutter on each side (the gutter is 28px, so neighbours never overlap)
|
|
871
|
+
* and only 4px below the text, so it stops short of a PageHeader title 4px under the crumbs; the rest of the 44px is
|
|
872
|
+
* above. Wrapped rows sit 24px apart on touch screens so one row's areas never cover the next. */
|
|
869
873
|
@media (pointer: coarse) {
|
|
870
|
-
.aura-
|
|
874
|
+
.aura-crumbs ol { row-gap: 24px; }
|
|
875
|
+
.aura-crumbs li > a, .aura-crumbs li > button { position: relative; }
|
|
876
|
+
.aura-crumbs li > a::after, .aura-crumbs li > button::after { content: ''; position: absolute; left: -12px; right: -12px; bottom: -4px; height: max(100% + 4px, var(--aura-touch-target)); }
|
|
871
877
|
}
|
|
872
878
|
@media (max-width: 639.98px) {
|
|
873
879
|
.aura-crumbs--collapse-sm li.aura-crumbs__more { display: inline-flex; }
|
|
@@ -1074,6 +1080,10 @@ a.aura-tab { text-decoration: none; }
|
|
|
1074
1080
|
--aura-shell-bar-height: 56px; /* 5.14 (Chamber-OS 104): the top bar's height, for sticky offsets under it */
|
|
1075
1081
|
}
|
|
1076
1082
|
.aura-shell--no-bar { --aura-shell-bar-height: 0px; }
|
|
1083
|
+
/* 5.35 (DxT Monitor 13): headerHideOnScroll — below lg the bar slides up out of view while the page scrolls down (its
|
|
1084
|
+
* shadow too); AppShell sets the bar-height token to 0 meanwhile. */
|
|
1085
|
+
.aura-shell__bar--hides { transition: transform var(--aura-duration-base) var(--aura-ease); }
|
|
1086
|
+
@media (max-width: 1023.98px) { .aura-shell__bar.is-away { transform: translateY(calc(-100% - 8px)); } }
|
|
1077
1087
|
@media (min-width: 1024px) { .aura-shell--menu-bar { --aura-shell-bar-height: 0px; } }
|
|
1078
1088
|
.aura-shell__nav { position: sticky; top: 0; height: 100vh; height: 100dvh; flex: none; }
|
|
1079
1089
|
.aura-shell__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
|
@@ -1189,6 +1199,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
|
|
|
1189
1199
|
.aura-status-tile--down .aura-status-tile__icon { color: var(--aura-alert-danger-fg); }
|
|
1190
1200
|
.aura-status-tile--problem .aura-status-tile__icon { color: var(--aura-alert-warning-fg); }
|
|
1191
1201
|
.aura-status-tile--maintenance .aura-status-tile__icon { color: var(--aura-alert-info-fg); }
|
|
1202
|
+
.aura-status-tile--unknown .aura-status-tile__icon { color: var(--aura-fg-tertiary); } /* 5.35: no data yet */
|
|
1192
1203
|
/* Two lines at most: similar names stay apart. */
|
|
1193
1204
|
.aura-status-tile__title {
|
|
1194
1205
|
flex: 1 1 0; min-width: 0; font-weight: 600; overflow-wrap: break-word;
|
|
@@ -1847,10 +1858,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1847
1858
|
@media (min-width: 1024px) { .aura-bottomnav.aura-bottomnav--below-lg, .aura-bottomnav-spacer.aura-bottomnav--below-lg { display: none; } }
|
|
1848
1859
|
@media (min-width: 1280px) { .aura-bottomnav.aura-bottomnav--below-xl, .aura-bottomnav-spacer.aura-bottomnav--below-xl { display: none; } }
|
|
1849
1860
|
/* While a BottomNav shows, viewport ActionBars and phone toasts sit on top of it. */
|
|
1850
|
-
:
|
|
1851
|
-
|
|
1852
|
-
@media (max-width:
|
|
1853
|
-
@media (max-width:
|
|
1861
|
+
/* 5.35: not while it has slid away on scroll, nor on a page that hides it (data-aura-hide-bottomnav). */
|
|
1862
|
+
:root:has(nav.aura-bottomnav--always:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); }
|
|
1863
|
+
@media (max-width: 767.98px) { :root:has(nav.aura-bottomnav--below-md:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1864
|
+
@media (max-width: 1023.98px) { :root:has(nav.aura-bottomnav--below-lg:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1865
|
+
@media (max-width: 1279.98px) { :root:has(nav.aura-bottomnav--below-xl:not(.is-away)):not(:has([data-aura-hide-bottomnav])) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1866
|
+
/* 5.35 (DxT Monitor 14): hideOnScroll slides it down out of view (the spacer stays, so nothing shifts); a page with its
|
|
1867
|
+
* own bottom bar (ActionBar hidesBottomNav, or data-aura-hide-bottomnav on any element) has no BottomNav or spacer. */
|
|
1868
|
+
.aura-bottomnav--hides { transition: transform var(--aura-duration-base) var(--aura-ease); }
|
|
1869
|
+
.aura-bottomnav.is-away { transform: translateY(100%); }
|
|
1870
|
+
:root:has([data-aura-hide-bottomnav]) .aura-bottomnav, :root:has([data-aura-hide-bottomnav]) .aura-bottomnav-spacer { display: none; }
|
|
1871
|
+
.aura-actionbar--viewport { transition: bottom var(--aura-duration-base) var(--aura-ease); }
|
|
1872
|
+
@media (prefers-reduced-motion: reduce) { .aura-bottomnav--hides, .aura-actionbar--viewport, .aura-shell__bar--hides { transition: none; } }
|
|
1854
1873
|
/* Toasts clear a BottomNav wherever it shows (phones and tablets), else the bottom safe-area inset (5.6). */
|
|
1855
1874
|
.aura-toaster:not(.is-top) { bottom: calc(var(--aura-toaster-offset, var(--aura-space-6)) + var(--aura-bottomnav-offset, env(safe-area-inset-bottom, 0px))); }
|
|
1856
1875
|
@media (max-width: 639.98px) { .aura-toaster:not(.is-top) { bottom: calc(var(--aura-toaster-offset, var(--aura-space-4)) + var(--aura-bottomnav-offset, env(safe-area-inset-bottom, 0px))); } }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jirawatpyk/aura-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.35.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",
|