@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/esm/ActionBar.js
CHANGED
|
@@ -35,6 +35,7 @@ const ActionBar = React.forwardRef(function ActionBar2(props, ref) {
|
|
|
35
35
|
},
|
|
36
36
|
role: "region",
|
|
37
37
|
"aria-label": props.label || t.actions,
|
|
38
|
+
"data-aura-hide-bottomnav": props.hidesBottomNav && !idle ? "" : void 0,
|
|
38
39
|
className: cx(
|
|
39
40
|
"aura-actionbar",
|
|
40
41
|
"aura-actionbar--" + (props.position || "viewport"),
|
package/dist/esm/AppShell.js
CHANGED
|
@@ -5,6 +5,7 @@ import { IconButton } from "./IconButton.js";
|
|
|
5
5
|
import { cx, useIsoLayoutEffect, useMergedRef } from "./internal.js";
|
|
6
6
|
import { useStrings } from "./locale.js";
|
|
7
7
|
import { useBreakpoint } from "./responsive.js";
|
|
8
|
+
import { useHideOnScroll } from "./scrollHide.js";
|
|
8
9
|
import { IconMenu } from "./icons.js";
|
|
9
10
|
const AppShell = React.forwardRef(function AppShell2(props, ref) {
|
|
10
11
|
const t = useStrings();
|
|
@@ -29,13 +30,24 @@ const AppShell = React.forwardRef(function AppShell2(props, ref) {
|
|
|
29
30
|
const mergedRef = useMergedRef(ref, rootRef);
|
|
30
31
|
const hasBar = !!(props.header || props.nav);
|
|
31
32
|
const barH = React.useState(null);
|
|
33
|
+
const away = useHideOnScroll(!!props.headerHideOnScroll && hasBar, barRef, "(max-width: 1023.98px)", barH[0] || 56);
|
|
34
|
+
const awayRef = React.useRef(away);
|
|
35
|
+
awayRef.current = away;
|
|
36
|
+
useIsoLayoutEffect(
|
|
37
|
+
function() {
|
|
38
|
+
const root = rootRef.current, bar = barRef.current;
|
|
39
|
+
if (!root || !bar) return;
|
|
40
|
+
root.style.setProperty("--aura-shell-bar-height", away ? "0px" : bar.getBoundingClientRect().height + "px");
|
|
41
|
+
},
|
|
42
|
+
[away]
|
|
43
|
+
);
|
|
32
44
|
useIsoLayoutEffect(
|
|
33
45
|
function() {
|
|
34
46
|
const root = rootRef.current, bar = barRef.current;
|
|
35
47
|
if (!root || !bar) return;
|
|
36
48
|
function sync() {
|
|
37
49
|
const h = bar.getBoundingClientRect().height;
|
|
38
|
-
root.style.setProperty("--aura-shell-bar-height", h + "px");
|
|
50
|
+
root.style.setProperty("--aura-shell-bar-height", awayRef.current ? "0px" : h + "px");
|
|
39
51
|
if (h > 0) barH[1](Math.round(h));
|
|
40
52
|
}
|
|
41
53
|
sync();
|
|
@@ -103,7 +115,9 @@ const AppShell = React.forwardRef(function AppShell2(props, ref) {
|
|
|
103
115
|
ref: barRef,
|
|
104
116
|
className: cx(
|
|
105
117
|
"aura-shell__bar",
|
|
106
|
-
(!props.header || props.headerHideFrom === "lg") && "aura-shell__bar--menu-only"
|
|
118
|
+
(!props.header || props.headerHideFrom === "lg") && "aura-shell__bar--menu-only",
|
|
119
|
+
props.headerHideOnScroll && "aura-shell__bar--hides",
|
|
120
|
+
away && "is-away"
|
|
107
121
|
)
|
|
108
122
|
},
|
|
109
123
|
props.nav ? /* @__PURE__ */ React.createElement(
|
package/dist/esm/BottomNav.js
CHANGED
|
@@ -3,6 +3,8 @@ import * as React from "react";
|
|
|
3
3
|
import { Icon } from "./Icon.js";
|
|
4
4
|
import { cx, devWarnOnce, plainClick, useMaybeControlled } from "./internal.js";
|
|
5
5
|
import { useLinkComponent, useStrings } from "./locale.js";
|
|
6
|
+
import { useHideOnScroll } from "./scrollHide.js";
|
|
7
|
+
import { breakpoints } from "./breakpoints.js";
|
|
6
8
|
const BottomNav = React.forwardRef(function BottomNav2(props, ref) {
|
|
7
9
|
const t = useStrings();
|
|
8
10
|
const Link = useLinkComponent(props.linkComponent);
|
|
@@ -13,11 +15,33 @@ const BottomNav = React.forwardRef(function BottomNav2(props, ref) {
|
|
|
13
15
|
);
|
|
14
16
|
const active = st[0];
|
|
15
17
|
const hide = props.hideFrom === false ? "always" : "below-" + (props.hideFrom || "lg");
|
|
18
|
+
const own = React.useRef(null);
|
|
19
|
+
const hf = props.hideFrom === false ? null : props.hideFrom || "lg";
|
|
20
|
+
const away = useHideOnScroll(
|
|
21
|
+
!!props.hideOnScroll,
|
|
22
|
+
own,
|
|
23
|
+
hf ? "(max-width: " + (breakpoints[hf] - 0.02) + "px)" : "all",
|
|
24
|
+
64
|
|
25
|
+
);
|
|
26
|
+
const setRef = React.useCallback(
|
|
27
|
+
function(el) {
|
|
28
|
+
own.current = el;
|
|
29
|
+
if (typeof ref === "function") ref(el);
|
|
30
|
+
else if (ref) ref.current = el;
|
|
31
|
+
},
|
|
32
|
+
[ref]
|
|
33
|
+
);
|
|
16
34
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: cx("aura-bottomnav-spacer", "aura-bottomnav--" + hide), "aria-hidden": "true" }), /* @__PURE__ */ React.createElement(
|
|
17
35
|
"nav",
|
|
18
36
|
{
|
|
19
|
-
ref,
|
|
20
|
-
className: cx(
|
|
37
|
+
ref: setRef,
|
|
38
|
+
className: cx(
|
|
39
|
+
"aura-bottomnav",
|
|
40
|
+
"aura-bottomnav--" + hide,
|
|
41
|
+
props.hideOnScroll && "aura-bottomnav--hides",
|
|
42
|
+
away && "is-away",
|
|
43
|
+
props.className
|
|
44
|
+
),
|
|
21
45
|
"aria-label": props.label || t.mainNav
|
|
22
46
|
},
|
|
23
47
|
/* @__PURE__ */ React.createElement("ul", { className: "aura-bottomnav__list" }, props.items.map(function(it) {
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
const STEP = 8;
|
|
4
|
+
function useHideOnScroll(enabled, el, media, from) {
|
|
5
|
+
const st = React.useState(false), hidden = st[0], setHidden = st[1];
|
|
6
|
+
React.useEffect(
|
|
7
|
+
function() {
|
|
8
|
+
if (!enabled || typeof window === "undefined") {
|
|
9
|
+
setHidden(false);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const mq = window.matchMedia ? window.matchMedia(media) : null;
|
|
13
|
+
let last = window.scrollY, lastH = window.innerHeight, resizedAt = -1e9, run = 0;
|
|
14
|
+
let restore = null;
|
|
15
|
+
function update() {
|
|
16
|
+
if (restore) {
|
|
17
|
+
const r = restore;
|
|
18
|
+
if (performance.now() > r.until || window.scrollY >= r.y - 1) restore = null;
|
|
19
|
+
else {
|
|
20
|
+
restore = null;
|
|
21
|
+
last = r.y;
|
|
22
|
+
window.scrollTo(window.scrollX, r.y);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const y = window.scrollY, dy = y - last;
|
|
27
|
+
last = y;
|
|
28
|
+
const node2 = el.current;
|
|
29
|
+
if (mq && !mq.matches || y <= from || node2 && document.activeElement && node2.contains(document.activeElement)) {
|
|
30
|
+
run = 0;
|
|
31
|
+
setHidden(false);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (window.innerHeight !== lastH || performance.now() - resizedAt < 150) {
|
|
35
|
+
lastH = window.innerHeight;
|
|
36
|
+
resizedAt = performance.now();
|
|
37
|
+
run = 0;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (y + window.innerHeight > document.documentElement.scrollHeight + 1) return;
|
|
41
|
+
run = dy > 0 === run > 0 ? run + dy : dy;
|
|
42
|
+
if (run > STEP) setHidden(true);
|
|
43
|
+
else if (run < -STEP) setHidden(false);
|
|
44
|
+
}
|
|
45
|
+
let tabbing = false;
|
|
46
|
+
function disarm() {
|
|
47
|
+
restore = null;
|
|
48
|
+
}
|
|
49
|
+
function onKey(e) {
|
|
50
|
+
if (e.key !== "Tab" && e.code !== "Tab") {
|
|
51
|
+
if (e.key !== "Shift") restore = null;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
tabbing = true;
|
|
55
|
+
requestAnimationFrame(function() {
|
|
56
|
+
tabbing = false;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function reveal() {
|
|
60
|
+
const n = el.current;
|
|
61
|
+
if (n && n.classList.contains("is-away")) {
|
|
62
|
+
n.classList.remove("is-away");
|
|
63
|
+
if (tabbing) {
|
|
64
|
+
if (window.scrollY < last) window.scrollTo(window.scrollX, last);
|
|
65
|
+
else restore = { y: last, until: performance.now() + 400 };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
setHidden(false);
|
|
69
|
+
}
|
|
70
|
+
window.addEventListener("scroll", update, { passive: true });
|
|
71
|
+
window.addEventListener("resize", update);
|
|
72
|
+
document.addEventListener("keydown", onKey, true);
|
|
73
|
+
window.addEventListener("wheel", disarm, { passive: true, capture: true });
|
|
74
|
+
window.addEventListener("touchstart", disarm, { passive: true, capture: true });
|
|
75
|
+
window.addEventListener("pointerdown", disarm, true);
|
|
76
|
+
const node = el.current;
|
|
77
|
+
if (node) node.addEventListener("focusin", reveal);
|
|
78
|
+
if (mq && mq.addEventListener) mq.addEventListener("change", update);
|
|
79
|
+
return function() {
|
|
80
|
+
window.removeEventListener("scroll", update);
|
|
81
|
+
window.removeEventListener("resize", update);
|
|
82
|
+
document.removeEventListener("keydown", onKey, true);
|
|
83
|
+
window.removeEventListener("wheel", disarm, true);
|
|
84
|
+
window.removeEventListener("touchstart", disarm, true);
|
|
85
|
+
window.removeEventListener("pointerdown", disarm, true);
|
|
86
|
+
if (node) node.removeEventListener("focusin", reveal);
|
|
87
|
+
if (mq && mq.removeEventListener) mq.removeEventListener("change", update);
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
[enabled, el, media, from]
|
|
91
|
+
);
|
|
92
|
+
return enabled && hidden;
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
useHideOnScroll
|
|
96
|
+
};
|
package/dist/esm/strings.js
CHANGED
|
@@ -131,6 +131,7 @@ const STRINGS = {
|
|
|
131
131
|
statusProblem: "Problem",
|
|
132
132
|
statusMaintenance: "Maintenance",
|
|
133
133
|
statusOk: "OK",
|
|
134
|
+
statusUnknown: "No data",
|
|
134
135
|
accepts: function(list, max) {
|
|
135
136
|
return [list, max && "up to " + max + " each"].filter(Boolean).join(", ");
|
|
136
137
|
}
|
package/dist/esm/strings.sv.js
CHANGED
|
@@ -127,6 +127,7 @@ const sv = {
|
|
|
127
127
|
statusProblem: "Problem",
|
|
128
128
|
statusMaintenance: "Underh\xE5ll",
|
|
129
129
|
statusOk: "OK",
|
|
130
|
+
statusUnknown: "Ingen data",
|
|
130
131
|
accepts: function(list, max) {
|
|
131
132
|
return [list, max && "h\xF6gst " + max + " per fil"].filter(Boolean).join(", ");
|
|
132
133
|
}
|
package/dist/esm/strings.th.js
CHANGED
|
@@ -127,6 +127,7 @@ const th = {
|
|
|
127
127
|
statusProblem: "\u0E21\u0E35\u0E1B\u0E31\u0E0D\u0E2B\u0E32",
|
|
128
128
|
statusMaintenance: "\u0E1B\u0E34\u0E14\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07",
|
|
129
129
|
statusOk: "\u0E1B\u0E01\u0E15\u0E34",
|
|
130
|
+
statusUnknown: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",
|
|
130
131
|
accepts: function(list, max) {
|
|
131
132
|
return [list, max && "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 " + max + " \u0E15\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"].filter(Boolean).join(" \xB7 ");
|
|
132
133
|
}
|
package/dist/esm/tiles.js
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { Icon } from "./Icon.js";
|
|
4
|
-
import { cx } from "./classes.js";
|
|
4
|
+
import { cx, devWarnOnce } from "./classes.js";
|
|
5
5
|
import { respVars } from "./breakpoints.js";
|
|
6
6
|
import { STRINGS } from "./strings.js";
|
|
7
|
-
import { IconCircleAlert, IconCircleCheck, IconTriangleAlert, IconWrench } from "./icons.js";
|
|
7
|
+
import { IconCircleAlert, IconCircleCheck, IconCircleDotDashed, IconTriangleAlert, IconWrench } from "./icons.js";
|
|
8
8
|
const h = React.createElement;
|
|
9
9
|
const STATUS_ICON = {
|
|
10
10
|
down: IconCircleAlert,
|
|
11
11
|
problem: IconTriangleAlert,
|
|
12
12
|
maintenance: IconWrench,
|
|
13
|
-
ok: IconCircleCheck
|
|
13
|
+
ok: IconCircleCheck,
|
|
14
|
+
unknown: IconCircleDotDashed
|
|
14
15
|
};
|
|
15
16
|
const STATUS_TONE = {
|
|
16
17
|
down: "danger",
|
|
17
18
|
problem: "warning",
|
|
18
19
|
maintenance: "accent",
|
|
19
|
-
ok: "default"
|
|
20
|
+
ok: "default",
|
|
21
|
+
unknown: "default"
|
|
20
22
|
};
|
|
21
23
|
const STATUS_WORD = {
|
|
22
24
|
down: "statusDown",
|
|
23
25
|
problem: "statusProblem",
|
|
24
26
|
maintenance: "statusMaintenance",
|
|
25
|
-
ok: "statusOk"
|
|
27
|
+
ok: "statusOk",
|
|
28
|
+
unknown: "statusUnknown"
|
|
26
29
|
};
|
|
27
30
|
function statusWord(status, t) {
|
|
28
31
|
return String(t[STATUS_WORD[status]] || STATUS_WORD[status]);
|
|
@@ -37,7 +40,12 @@ function attrs(props) {
|
|
|
37
40
|
}
|
|
38
41
|
const comma = h("span", { className: "aura-status-tile__sep" }, ",");
|
|
39
42
|
function statusTileElement(props, ref, Link, t, titleRef) {
|
|
40
|
-
const status = STATUS_ICON[props.status] ? props.status : "
|
|
43
|
+
const status = STATUS_ICON[props.status] ? props.status : "unknown";
|
|
44
|
+
if (status !== props.status)
|
|
45
|
+
devWarnOnce(
|
|
46
|
+
"status-tile-status-" + String(props.status),
|
|
47
|
+
'StatusTile status="' + String(props.status) + '" is not down, problem, maintenance, ok or unknown: it shows as unknown ("No data"). Map your value first.'
|
|
48
|
+
);
|
|
41
49
|
const valueTone = props.valueTone || STATUS_TONE[status];
|
|
42
50
|
const word = props.statusLabel || statusWord(status, t);
|
|
43
51
|
const markers = (props.markers || []).filter(Boolean);
|
package/dist/index.d.cts
CHANGED
|
@@ -1214,6 +1214,10 @@ export interface AppShellProps {
|
|
|
1214
1214
|
* as when there is no `header`: from lg up it is hidden and `--aura-shell-bar-height` is 0. For apps whose phone
|
|
1215
1215
|
* pages have a top bar (brand, avatar) and whose desktop pages don't. Default: the bar shows at every width. */
|
|
1216
1216
|
headerHideFrom?: "lg" | undefined;
|
|
1217
|
+
/** 5.35 (DxT Monitor #13): below 1024px the top bar slides up while the page scrolls down and comes back on the way
|
|
1218
|
+
* up, near the top, and when focus enters it; `--aura-shell-bar-height` is 0 while it is away, so headers pinned
|
|
1219
|
+
* under it follow. No motion with reduced motion. Default false. */
|
|
1220
|
+
headerHideOnScroll?: boolean | undefined;
|
|
1217
1221
|
children?: React$1.ReactNode | undefined;
|
|
1218
1222
|
navLabel?: string | undefined;
|
|
1219
1223
|
menuLabel?: string | undefined;
|
|
@@ -1324,6 +1328,10 @@ export interface ActionBarProps {
|
|
|
1324
1328
|
* parent, so they never cover the last field. Make it the last child of the form or card it belongs to: like any
|
|
1325
1329
|
* `position: sticky` element it sticks only while that parent is on screen. */
|
|
1326
1330
|
position?: "viewport" | "container" | undefined;
|
|
1331
|
+
/** 5.35 (DxT Monitor #14): while this bar is on the page, a BottomNav (and its spacer) is hidden and the bar takes the
|
|
1332
|
+
* bottom edge — for a page whose own actions (Acknowledge, Visit site) replace the tab bar. Any element can do the
|
|
1333
|
+
* same with the `data-aura-hide-bottomnav` attribute. */
|
|
1334
|
+
hidesBottomNav?: boolean | undefined;
|
|
1327
1335
|
/** Bulk actions: the number of selected rows. Shows "N selected" in the status; at 0 the bar hides (its live region
|
|
1328
1336
|
* stays, so the next selection is announced) and its actions leave the tab order. */
|
|
1329
1337
|
selected?: number | undefined;
|
|
@@ -1365,6 +1373,10 @@ export interface BottomNavProps {
|
|
|
1365
1373
|
linkComponent?: React$1.ElementType | undefined;
|
|
1366
1374
|
/** Hidden from this breakpoint up, in CSS (so the server's HTML is right). Default `lg` (1024px); `false` never hides. */
|
|
1367
1375
|
hideFrom?: "md" | "lg" | "xl" | false | undefined;
|
|
1376
|
+
/** 5.35 (DxT Monitor #14): slides down out of view while the page scrolls down and comes back on the way up, near the
|
|
1377
|
+
* top, and when focus enters it. Viewport ActionBars and toasts follow it down. Default false. To keep it away on a
|
|
1378
|
+
* page with its own bottom bar, see ActionBar `hidesBottomNav` (or `data-aura-hide-bottomnav` on your own bar). */
|
|
1379
|
+
hideOnScroll?: boolean | undefined;
|
|
1368
1380
|
className?: string | undefined;
|
|
1369
1381
|
}
|
|
1370
1382
|
export interface StatChange {
|
|
@@ -1615,7 +1627,7 @@ export interface Theme {
|
|
|
1615
1627
|
css(selector?: string): string;
|
|
1616
1628
|
}
|
|
1617
1629
|
/** A monitored thing's state on a StatusTile. */
|
|
1618
|
-
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok";
|
|
1630
|
+
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok" | "unknown";
|
|
1619
1631
|
/** A colour for a tile's value or a marker: `danger`, `warning`, `accent` (violet), `neutral` (grey) or `default`
|
|
1620
1632
|
* (the text colour). */
|
|
1621
1633
|
export type TileTone = "danger" | "warning" | "accent" | "neutral" | "default";
|
|
@@ -1629,14 +1641,15 @@ export interface StatusTileMarker {
|
|
|
1629
1641
|
tone?: TileTone | undefined;
|
|
1630
1642
|
}
|
|
1631
1643
|
export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "style" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
1632
|
-
/** down (red), problem (amber), maintenance (violet)
|
|
1633
|
-
* only sign. */
|
|
1644
|
+
/** down (red), problem (amber), maintenance (violet), ok (grey) or unknown (5.35: no data yet — a dashed circle on
|
|
1645
|
+
* the plain surface). Each has its own icon too, so colour is never the only sign. */
|
|
1634
1646
|
status: StatusTileStatus;
|
|
1635
1647
|
/** The name. Wraps to two lines at most, then ends with "…"; a cut name shows in full in a tip on hover. */
|
|
1636
1648
|
title: React$1.ReactNode;
|
|
1637
1649
|
/** Top right, tabular figures: "12m", "99.98%", "240 ms". */
|
|
1638
1650
|
value?: React$1.ReactNode | undefined;
|
|
1639
|
-
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok
|
|
1651
|
+
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok and
|
|
1652
|
+
* unknown → default). */
|
|
1640
1653
|
valueTone?: TileTone | undefined;
|
|
1641
1654
|
/** A short second line: "since 09:41", "3 of 4 checks". */
|
|
1642
1655
|
meta?: React$1.ReactNode | undefined;
|
|
@@ -1646,7 +1659,7 @@ export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement
|
|
|
1646
1659
|
href?: string | undefined;
|
|
1647
1660
|
/** Your router's link (e.g. `next/link`); defaults to AuraProvider's `linkComponent`, then `<a>`. */
|
|
1648
1661
|
linkComponent?: React$1.ElementType | undefined;
|
|
1649
|
-
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK). */
|
|
1662
|
+
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK, No data). */
|
|
1650
1663
|
statusLabel?: string | undefined;
|
|
1651
1664
|
className?: string | undefined;
|
|
1652
1665
|
}
|
|
@@ -1986,6 +1999,8 @@ export interface AuraStrings {
|
|
|
1986
1999
|
statusProblem: string;
|
|
1987
2000
|
statusMaintenance: string;
|
|
1988
2001
|
statusOk: string;
|
|
2002
|
+
/** StatusTile `unknown` (5.35). */
|
|
2003
|
+
statusUnknown: string;
|
|
1989
2004
|
}
|
|
1990
2005
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
1991
2006
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/index.d.ts
CHANGED
|
@@ -1214,6 +1214,10 @@ export interface AppShellProps {
|
|
|
1214
1214
|
* as when there is no `header`: from lg up it is hidden and `--aura-shell-bar-height` is 0. For apps whose phone
|
|
1215
1215
|
* pages have a top bar (brand, avatar) and whose desktop pages don't. Default: the bar shows at every width. */
|
|
1216
1216
|
headerHideFrom?: "lg" | undefined;
|
|
1217
|
+
/** 5.35 (DxT Monitor #13): below 1024px the top bar slides up while the page scrolls down and comes back on the way
|
|
1218
|
+
* up, near the top, and when focus enters it; `--aura-shell-bar-height` is 0 while it is away, so headers pinned
|
|
1219
|
+
* under it follow. No motion with reduced motion. Default false. */
|
|
1220
|
+
headerHideOnScroll?: boolean | undefined;
|
|
1217
1221
|
children?: React$1.ReactNode | undefined;
|
|
1218
1222
|
navLabel?: string | undefined;
|
|
1219
1223
|
menuLabel?: string | undefined;
|
|
@@ -1324,6 +1328,10 @@ export interface ActionBarProps {
|
|
|
1324
1328
|
* parent, so they never cover the last field. Make it the last child of the form or card it belongs to: like any
|
|
1325
1329
|
* `position: sticky` element it sticks only while that parent is on screen. */
|
|
1326
1330
|
position?: "viewport" | "container" | undefined;
|
|
1331
|
+
/** 5.35 (DxT Monitor #14): while this bar is on the page, a BottomNav (and its spacer) is hidden and the bar takes the
|
|
1332
|
+
* bottom edge — for a page whose own actions (Acknowledge, Visit site) replace the tab bar. Any element can do the
|
|
1333
|
+
* same with the `data-aura-hide-bottomnav` attribute. */
|
|
1334
|
+
hidesBottomNav?: boolean | undefined;
|
|
1327
1335
|
/** Bulk actions: the number of selected rows. Shows "N selected" in the status; at 0 the bar hides (its live region
|
|
1328
1336
|
* stays, so the next selection is announced) and its actions leave the tab order. */
|
|
1329
1337
|
selected?: number | undefined;
|
|
@@ -1365,6 +1373,10 @@ export interface BottomNavProps {
|
|
|
1365
1373
|
linkComponent?: React$1.ElementType | undefined;
|
|
1366
1374
|
/** Hidden from this breakpoint up, in CSS (so the server's HTML is right). Default `lg` (1024px); `false` never hides. */
|
|
1367
1375
|
hideFrom?: "md" | "lg" | "xl" | false | undefined;
|
|
1376
|
+
/** 5.35 (DxT Monitor #14): slides down out of view while the page scrolls down and comes back on the way up, near the
|
|
1377
|
+
* top, and when focus enters it. Viewport ActionBars and toasts follow it down. Default false. To keep it away on a
|
|
1378
|
+
* page with its own bottom bar, see ActionBar `hidesBottomNav` (or `data-aura-hide-bottomnav` on your own bar). */
|
|
1379
|
+
hideOnScroll?: boolean | undefined;
|
|
1368
1380
|
className?: string | undefined;
|
|
1369
1381
|
}
|
|
1370
1382
|
export interface StatChange {
|
|
@@ -1615,7 +1627,7 @@ export interface Theme {
|
|
|
1615
1627
|
css(selector?: string): string;
|
|
1616
1628
|
}
|
|
1617
1629
|
/** A monitored thing's state on a StatusTile. */
|
|
1618
|
-
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok";
|
|
1630
|
+
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok" | "unknown";
|
|
1619
1631
|
/** A colour for a tile's value or a marker: `danger`, `warning`, `accent` (violet), `neutral` (grey) or `default`
|
|
1620
1632
|
* (the text colour). */
|
|
1621
1633
|
export type TileTone = "danger" | "warning" | "accent" | "neutral" | "default";
|
|
@@ -1629,14 +1641,15 @@ export interface StatusTileMarker {
|
|
|
1629
1641
|
tone?: TileTone | undefined;
|
|
1630
1642
|
}
|
|
1631
1643
|
export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "style" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
1632
|
-
/** down (red), problem (amber), maintenance (violet)
|
|
1633
|
-
* only sign. */
|
|
1644
|
+
/** down (red), problem (amber), maintenance (violet), ok (grey) or unknown (5.35: no data yet — a dashed circle on
|
|
1645
|
+
* the plain surface). Each has its own icon too, so colour is never the only sign. */
|
|
1634
1646
|
status: StatusTileStatus;
|
|
1635
1647
|
/** The name. Wraps to two lines at most, then ends with "…"; a cut name shows in full in a tip on hover. */
|
|
1636
1648
|
title: React$1.ReactNode;
|
|
1637
1649
|
/** Top right, tabular figures: "12m", "99.98%", "240 ms". */
|
|
1638
1650
|
value?: React$1.ReactNode | undefined;
|
|
1639
|
-
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok
|
|
1651
|
+
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok and
|
|
1652
|
+
* unknown → default). */
|
|
1640
1653
|
valueTone?: TileTone | undefined;
|
|
1641
1654
|
/** A short second line: "since 09:41", "3 of 4 checks". */
|
|
1642
1655
|
meta?: React$1.ReactNode | undefined;
|
|
@@ -1646,7 +1659,7 @@ export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement
|
|
|
1646
1659
|
href?: string | undefined;
|
|
1647
1660
|
/** Your router's link (e.g. `next/link`); defaults to AuraProvider's `linkComponent`, then `<a>`. */
|
|
1648
1661
|
linkComponent?: React$1.ElementType | undefined;
|
|
1649
|
-
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK). */
|
|
1662
|
+
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK, No data). */
|
|
1650
1663
|
statusLabel?: string | undefined;
|
|
1651
1664
|
className?: string | undefined;
|
|
1652
1665
|
}
|
|
@@ -1986,6 +1999,8 @@ export interface AuraStrings {
|
|
|
1986
1999
|
statusProblem: string;
|
|
1987
2000
|
statusMaintenance: string;
|
|
1988
2001
|
statusOk: string;
|
|
2002
|
+
/** StatusTile `unknown` (5.35). */
|
|
2003
|
+
statusUnknown: string;
|
|
1989
2004
|
}
|
|
1990
2005
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
1991
2006
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/locales/sv.cjs
CHANGED
|
@@ -152,6 +152,7 @@ var sv = {
|
|
|
152
152
|
statusProblem: "Problem",
|
|
153
153
|
statusMaintenance: "Underh\xE5ll",
|
|
154
154
|
statusOk: "OK",
|
|
155
|
+
statusUnknown: "Ingen data",
|
|
155
156
|
accepts: function(list, max) {
|
|
156
157
|
return [list, max && "h\xF6gst " + max + " per fil"].filter(Boolean).join(", ");
|
|
157
158
|
}
|
package/dist/locales/sv.d.cts
CHANGED
|
@@ -94,6 +94,8 @@ export interface AuraStrings {
|
|
|
94
94
|
statusProblem: string;
|
|
95
95
|
statusMaintenance: string;
|
|
96
96
|
statusOk: string;
|
|
97
|
+
/** StatusTile `unknown` (5.35). */
|
|
98
|
+
statusUnknown: string;
|
|
97
99
|
}
|
|
98
100
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
99
101
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/locales/sv.d.ts
CHANGED
|
@@ -94,6 +94,8 @@ export interface AuraStrings {
|
|
|
94
94
|
statusProblem: string;
|
|
95
95
|
statusMaintenance: string;
|
|
96
96
|
statusOk: string;
|
|
97
|
+
/** StatusTile `unknown` (5.35). */
|
|
98
|
+
statusUnknown: string;
|
|
97
99
|
}
|
|
98
100
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
99
101
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/locales/th.cjs
CHANGED
|
@@ -152,6 +152,7 @@ var th = {
|
|
|
152
152
|
statusProblem: "\u0E21\u0E35\u0E1B\u0E31\u0E0D\u0E2B\u0E32",
|
|
153
153
|
statusMaintenance: "\u0E1B\u0E34\u0E14\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07",
|
|
154
154
|
statusOk: "\u0E1B\u0E01\u0E15\u0E34",
|
|
155
|
+
statusUnknown: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",
|
|
155
156
|
accepts: function(list, max) {
|
|
156
157
|
return [list, max && "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 " + max + " \u0E15\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"].filter(Boolean).join(" \xB7 ");
|
|
157
158
|
}
|
package/dist/locales/th.d.cts
CHANGED
|
@@ -94,6 +94,8 @@ export interface AuraStrings {
|
|
|
94
94
|
statusProblem: string;
|
|
95
95
|
statusMaintenance: string;
|
|
96
96
|
statusOk: string;
|
|
97
|
+
/** StatusTile `unknown` (5.35). */
|
|
98
|
+
statusUnknown: string;
|
|
97
99
|
}
|
|
98
100
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
99
101
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/locales/th.d.ts
CHANGED
|
@@ -94,6 +94,8 @@ export interface AuraStrings {
|
|
|
94
94
|
statusProblem: string;
|
|
95
95
|
statusMaintenance: string;
|
|
96
96
|
statusOk: string;
|
|
97
|
+
/** StatusTile `unknown` (5.35). */
|
|
98
|
+
statusUnknown: string;
|
|
97
99
|
}
|
|
98
100
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
99
101
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/server/index.cjs
CHANGED
|
@@ -341,6 +341,7 @@ var th = {
|
|
|
341
341
|
statusProblem: "\u0E21\u0E35\u0E1B\u0E31\u0E0D\u0E2B\u0E32",
|
|
342
342
|
statusMaintenance: "\u0E1B\u0E34\u0E14\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07",
|
|
343
343
|
statusOk: "\u0E1B\u0E01\u0E15\u0E34",
|
|
344
|
+
statusUnknown: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25",
|
|
344
345
|
accepts: function(list, max) {
|
|
345
346
|
return [list, max && "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 " + max + " \u0E15\u0E48\u0E2D\u0E44\u0E1F\u0E25\u0E4C"].filter(Boolean).join(" \xB7 ");
|
|
346
347
|
}
|
|
@@ -476,6 +477,7 @@ var sv = {
|
|
|
476
477
|
statusProblem: "Problem",
|
|
477
478
|
statusMaintenance: "Underh\xE5ll",
|
|
478
479
|
statusOk: "OK",
|
|
480
|
+
statusUnknown: "Ingen data",
|
|
479
481
|
accepts: function(list, max) {
|
|
480
482
|
return [list, max && "h\xF6gst " + max + " per fil"].filter(Boolean).join(", ");
|
|
481
483
|
}
|
|
@@ -612,6 +614,7 @@ var STRINGS = {
|
|
|
612
614
|
statusProblem: "Problem",
|
|
613
615
|
statusMaintenance: "Maintenance",
|
|
614
616
|
statusOk: "OK",
|
|
617
|
+
statusUnknown: "No data",
|
|
615
618
|
accepts: function(list, max) {
|
|
616
619
|
return [list, max && "up to " + max + " each"].filter(Boolean).join(", ");
|
|
617
620
|
}
|
|
@@ -1444,19 +1447,22 @@ var STATUS_ICON = {
|
|
|
1444
1447
|
down: IconCircleAlert,
|
|
1445
1448
|
problem: IconTriangleAlert,
|
|
1446
1449
|
maintenance: IconWrench,
|
|
1447
|
-
ok: IconCircleCheck
|
|
1450
|
+
ok: IconCircleCheck,
|
|
1451
|
+
unknown: IconCircleDotDashed
|
|
1448
1452
|
};
|
|
1449
1453
|
var STATUS_TONE = {
|
|
1450
1454
|
down: "danger",
|
|
1451
1455
|
problem: "warning",
|
|
1452
1456
|
maintenance: "accent",
|
|
1453
|
-
ok: "default"
|
|
1457
|
+
ok: "default",
|
|
1458
|
+
unknown: "default"
|
|
1454
1459
|
};
|
|
1455
1460
|
var STATUS_WORD = {
|
|
1456
1461
|
down: "statusDown",
|
|
1457
1462
|
problem: "statusProblem",
|
|
1458
1463
|
maintenance: "statusMaintenance",
|
|
1459
|
-
ok: "statusOk"
|
|
1464
|
+
ok: "statusOk",
|
|
1465
|
+
unknown: "statusUnknown"
|
|
1460
1466
|
};
|
|
1461
1467
|
function statusWord(status, t) {
|
|
1462
1468
|
return String(t[STATUS_WORD[status]] || STATUS_WORD[status]);
|
|
@@ -1471,7 +1477,12 @@ function attrs(props) {
|
|
|
1471
1477
|
}
|
|
1472
1478
|
var comma = h5("span", { className: "aura-status-tile__sep" }, ",");
|
|
1473
1479
|
function statusTileElement(props, ref, Link, t, titleRef) {
|
|
1474
|
-
const status = STATUS_ICON[props.status] ? props.status : "
|
|
1480
|
+
const status = STATUS_ICON[props.status] ? props.status : "unknown";
|
|
1481
|
+
if (status !== props.status)
|
|
1482
|
+
devWarnOnce(
|
|
1483
|
+
"status-tile-status-" + String(props.status),
|
|
1484
|
+
'StatusTile status="' + String(props.status) + '" is not down, problem, maintenance, ok or unknown: it shows as unknown ("No data"). Map your value first.'
|
|
1485
|
+
);
|
|
1475
1486
|
const valueTone = props.valueTone || STATUS_TONE[status];
|
|
1476
1487
|
const word = props.statusLabel || statusWord(status, t);
|
|
1477
1488
|
const markers = (props.markers || []).filter(Boolean);
|
package/dist/server/index.d.cts
CHANGED
|
@@ -202,7 +202,7 @@ export interface Theme {
|
|
|
202
202
|
css(selector?: string): string;
|
|
203
203
|
}
|
|
204
204
|
/** A monitored thing's state on a StatusTile. */
|
|
205
|
-
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok";
|
|
205
|
+
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok" | "unknown";
|
|
206
206
|
/** A colour for a tile's value or a marker: `danger`, `warning`, `accent` (violet), `neutral` (grey) or `default`
|
|
207
207
|
* (the text colour). */
|
|
208
208
|
export type TileTone = "danger" | "warning" | "accent" | "neutral" | "default";
|
|
@@ -216,14 +216,15 @@ export interface StatusTileMarker {
|
|
|
216
216
|
tone?: TileTone | undefined;
|
|
217
217
|
}
|
|
218
218
|
export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "style" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
219
|
-
/** down (red), problem (amber), maintenance (violet)
|
|
220
|
-
* only sign. */
|
|
219
|
+
/** down (red), problem (amber), maintenance (violet), ok (grey) or unknown (5.35: no data yet — a dashed circle on
|
|
220
|
+
* the plain surface). Each has its own icon too, so colour is never the only sign. */
|
|
221
221
|
status: StatusTileStatus;
|
|
222
222
|
/** The name. Wraps to two lines at most, then ends with "…"; a cut name shows in full in a tip on hover. */
|
|
223
223
|
title: React$1.ReactNode;
|
|
224
224
|
/** Top right, tabular figures: "12m", "99.98%", "240 ms". */
|
|
225
225
|
value?: React$1.ReactNode | undefined;
|
|
226
|
-
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok
|
|
226
|
+
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok and
|
|
227
|
+
* unknown → default). */
|
|
227
228
|
valueTone?: TileTone | undefined;
|
|
228
229
|
/** A short second line: "since 09:41", "3 of 4 checks". */
|
|
229
230
|
meta?: React$1.ReactNode | undefined;
|
|
@@ -233,7 +234,7 @@ export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement
|
|
|
233
234
|
href?: string | undefined;
|
|
234
235
|
/** Your router's link (e.g. `next/link`); defaults to AuraProvider's `linkComponent`, then `<a>`. */
|
|
235
236
|
linkComponent?: React$1.ElementType | undefined;
|
|
236
|
-
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK). */
|
|
237
|
+
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK, No data). */
|
|
237
238
|
statusLabel?: string | undefined;
|
|
238
239
|
className?: string | undefined;
|
|
239
240
|
}
|
|
@@ -380,6 +381,8 @@ export interface AuraStrings {
|
|
|
380
381
|
statusProblem: string;
|
|
381
382
|
statusMaintenance: string;
|
|
382
383
|
statusOk: string;
|
|
384
|
+
/** StatusTile `unknown` (5.35). */
|
|
385
|
+
statusUnknown: string;
|
|
383
386
|
}
|
|
384
387
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
385
388
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|
package/dist/server/index.d.ts
CHANGED
|
@@ -202,7 +202,7 @@ export interface Theme {
|
|
|
202
202
|
css(selector?: string): string;
|
|
203
203
|
}
|
|
204
204
|
/** A monitored thing's state on a StatusTile. */
|
|
205
|
-
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok";
|
|
205
|
+
export type StatusTileStatus = "down" | "problem" | "maintenance" | "ok" | "unknown";
|
|
206
206
|
/** A colour for a tile's value or a marker: `danger`, `warning`, `accent` (violet), `neutral` (grey) or `default`
|
|
207
207
|
* (the text colour). */
|
|
208
208
|
export type TileTone = "danger" | "warning" | "accent" | "neutral" | "default";
|
|
@@ -216,14 +216,15 @@ export interface StatusTileMarker {
|
|
|
216
216
|
tone?: TileTone | undefined;
|
|
217
217
|
}
|
|
218
218
|
export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement>, "id" | "style" | "lang" | "dir">, React$1.AriaAttributes, DataAttributes {
|
|
219
|
-
/** down (red), problem (amber), maintenance (violet)
|
|
220
|
-
* only sign. */
|
|
219
|
+
/** down (red), problem (amber), maintenance (violet), ok (grey) or unknown (5.35: no data yet — a dashed circle on
|
|
220
|
+
* the plain surface). Each has its own icon too, so colour is never the only sign. */
|
|
221
221
|
status: StatusTileStatus;
|
|
222
222
|
/** The name. Wraps to two lines at most, then ends with "…"; a cut name shows in full in a tip on hover. */
|
|
223
223
|
title: React$1.ReactNode;
|
|
224
224
|
/** Top right, tabular figures: "12m", "99.98%", "240 ms". */
|
|
225
225
|
value?: React$1.ReactNode | undefined;
|
|
226
|
-
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok
|
|
226
|
+
/** The value's colour. Default: the status's (down → danger, problem → warning, maintenance → accent, ok and
|
|
227
|
+
* unknown → default). */
|
|
227
228
|
valueTone?: TileTone | undefined;
|
|
228
229
|
/** A short second line: "since 09:41", "3 of 4 checks". */
|
|
229
230
|
meta?: React$1.ReactNode | undefined;
|
|
@@ -233,7 +234,7 @@ export interface StatusTileProps extends Pick<React$1.HTMLAttributes<HTMLElement
|
|
|
233
234
|
href?: string | undefined;
|
|
234
235
|
/** Your router's link (e.g. `next/link`); defaults to AuraProvider's `linkComponent`, then `<a>`. */
|
|
235
236
|
linkComponent?: React$1.ElementType | undefined;
|
|
236
|
-
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK). */
|
|
237
|
+
/** The status word read out after the title. Default: the locale's (Down, Problem, Maintenance, OK, No data). */
|
|
237
238
|
statusLabel?: string | undefined;
|
|
238
239
|
className?: string | undefined;
|
|
239
240
|
}
|
|
@@ -380,6 +381,8 @@ export interface AuraStrings {
|
|
|
380
381
|
statusProblem: string;
|
|
381
382
|
statusMaintenance: string;
|
|
382
383
|
statusOk: string;
|
|
384
|
+
/** StatusTile `unknown` (5.35). */
|
|
385
|
+
statusUnknown: string;
|
|
383
386
|
}
|
|
384
387
|
/** Built-in strings by locale. th and sv also ship as packs (`@jirawatpyk/aura-react/locales/th`, `/sv`, 5.9); in 6.0
|
|
385
388
|
* only en stays built in and a Thai or Swedish app passes its pack to AuraProvider `strings`. */
|