@jirawatpyk/aura-tokens 5.0.0 → 5.1.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/GOVERNANCE.md +1 -0
- package/aura-tailwind.css +5 -1
- package/aura-tailwind.prefixed.css +5 -1
- package/aura.css +7 -1
- package/components/aura.bundle.js +85 -21
- package/components/aura.components.css +8 -1
- package/components/index.d.ts +13 -6
- package/figma-variables.csv +6 -0
- package/package.json +1 -1
- package/scripts/a11y-check.js +3 -1
- package/tailwind.tokens.cjs +5 -1
- package/tokens.json +11 -1
package/GOVERNANCE.md
CHANGED
|
@@ -43,6 +43,7 @@ Semver `MAJOR.MINOR.PATCH`:
|
|
|
43
43
|
Made by the design-system owner in one pass, instead of separate Proposals. Each change is marked ADDED in its token note.
|
|
44
44
|
|
|
45
45
|
- **Status palette adopted.** Four tones (neutral, progress, ready, blocked). `aura-red-700` is the only warm hue for state, chosen dark so Ready (lime-200) and Blocked differ by lightness (5.5:1), not only by hue.
|
|
46
|
+
- **5.1: a fifth tone, warning** (from DxT Monitor: a monitored host with a problem that still works). Solid amber — amber-600 light, amber-500 dark, ink label — so it differs from Ready and Blocked by lightness as well as hue (light 2.7:1 and 2.0:1). Amber stays the warning hue only: the warning alert and this pill.
|
|
46
47
|
- **Alert palette adopted.** Info (violet), success (lime), warning (amber), danger (red), each with its own fill, edge and text for light and dark. Amber is limited to warning.
|
|
47
48
|
- **Lucide adopted** as the only icon set, 52 icons. New icons come from Lucide unchanged.
|
|
48
49
|
- **Focus ring adopted**: 2px violet, 2px offset, on every interactive element.
|
package/aura-tailwind.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* AURA v5.
|
|
1
|
+
/* AURA v5.1.0 — Tailwind v4 theme. GENERATED by scripts/build-tokens.js from tokens.json. Do not edit by hand.
|
|
2
2
|
* @import "tailwindcss";
|
|
3
3
|
* @import "@jirawatpyk/aura-tokens/tailwind.css";
|
|
4
4
|
* Gives bg-bg-surface, text-fg-primary, border-border-strong, p-aura-6, rounded-aura-xl, shadow-aura-overlay,
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
--color-aura-amber-50: var(--aura-amber-50);
|
|
51
51
|
--color-aura-amber-200: var(--aura-amber-200);
|
|
52
52
|
--color-aura-amber-300: var(--aura-amber-300);
|
|
53
|
+
--color-aura-amber-500: var(--aura-amber-500);
|
|
54
|
+
--color-aura-amber-600: var(--aura-amber-600);
|
|
53
55
|
--color-aura-amber-800: var(--aura-amber-800);
|
|
54
56
|
--color-aura-ink: var(--aura-ink);
|
|
55
57
|
--color-aura-white: var(--aura-white);
|
|
@@ -89,6 +91,8 @@
|
|
|
89
91
|
--color-status-ready-fg: var(--aura-status-ready-fg);
|
|
90
92
|
--color-status-blocked-bg: var(--aura-status-blocked-bg);
|
|
91
93
|
--color-status-blocked-fg: var(--aura-status-blocked-fg);
|
|
94
|
+
--color-status-warning-bg: var(--aura-status-warning-bg);
|
|
95
|
+
--color-status-warning-fg: var(--aura-status-warning-fg);
|
|
92
96
|
--color-chart-1: var(--aura-chart-1);
|
|
93
97
|
--color-chart-2: var(--aura-chart-2);
|
|
94
98
|
--color-chart-3: var(--aura-chart-3);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* AURA v5.
|
|
1
|
+
/* AURA v5.1.0 — Tailwind v4 theme with aura- prefixed names. GENERATED by scripts/build-tokens.js. Do not edit by hand.
|
|
2
2
|
* For apps that already have a Tailwind theme (shadcn): nothing here redefines an existing name.
|
|
3
3
|
* @layer aura-tokens, theme, base, aura, components, utilities;
|
|
4
4
|
* @import "tailwindcss";
|
|
@@ -50,6 +50,8 @@
|
|
|
50
50
|
--color-aura-amber-50: var(--aura-amber-50);
|
|
51
51
|
--color-aura-amber-200: var(--aura-amber-200);
|
|
52
52
|
--color-aura-amber-300: var(--aura-amber-300);
|
|
53
|
+
--color-aura-amber-500: var(--aura-amber-500);
|
|
54
|
+
--color-aura-amber-600: var(--aura-amber-600);
|
|
53
55
|
--color-aura-amber-800: var(--aura-amber-800);
|
|
54
56
|
--color-aura-ink: var(--aura-ink);
|
|
55
57
|
--color-aura-white: var(--aura-white);
|
|
@@ -89,6 +91,8 @@
|
|
|
89
91
|
--color-aura-status-ready-fg: var(--aura-status-ready-fg);
|
|
90
92
|
--color-aura-status-blocked-bg: var(--aura-status-blocked-bg);
|
|
91
93
|
--color-aura-status-blocked-fg: var(--aura-status-blocked-fg);
|
|
94
|
+
--color-aura-status-warning-bg: var(--aura-status-warning-bg);
|
|
95
|
+
--color-aura-status-warning-fg: var(--aura-status-warning-fg);
|
|
92
96
|
--color-aura-chart-1: var(--aura-chart-1);
|
|
93
97
|
--color-aura-chart-2: var(--aura-chart-2);
|
|
94
98
|
--color-aura-chart-3: var(--aura-chart-3);
|
package/aura.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* AURA v5.
|
|
1
|
+
/* AURA v5.1.0 — GENERATED by scripts/build-tokens.js from tokens.json. Do not edit by hand. */
|
|
2
2
|
/* Fonts: load aura-fonts.css (or the <link> tags in README) separately, so a blocked Google Fonts never breaks this file. */
|
|
3
3
|
|
|
4
4
|
:root, [data-theme="light"] {
|
|
@@ -43,6 +43,8 @@
|
|
|
43
43
|
--aura-amber-50: #fffbeb;
|
|
44
44
|
--aura-amber-200: #fde68a;
|
|
45
45
|
--aura-amber-300: #fcd34d;
|
|
46
|
+
--aura-amber-500: #f59e0b;
|
|
47
|
+
--aura-amber-600: #d97706;
|
|
46
48
|
--aura-amber-800: #92400e;
|
|
47
49
|
--aura-ink: #08080a;
|
|
48
50
|
--aura-white: #ffffff;
|
|
@@ -76,6 +78,8 @@
|
|
|
76
78
|
--aura-status-ready-fg: var(--aura-ink);
|
|
77
79
|
--aura-status-blocked-bg: var(--aura-red-700);
|
|
78
80
|
--aura-status-blocked-fg: var(--aura-white);
|
|
81
|
+
--aura-status-warning-bg: var(--aura-amber-600);
|
|
82
|
+
--aura-status-warning-fg: var(--aura-ink);
|
|
79
83
|
--aura-bg-selected: var(--aura-violet-50);
|
|
80
84
|
--aura-border-control: var(--aura-zinc-500);
|
|
81
85
|
--aura-bg-skeleton: var(--aura-zinc-200);
|
|
@@ -154,6 +158,7 @@
|
|
|
154
158
|
--aura-status-progress-fg: var(--aura-violet-300);
|
|
155
159
|
--aura-status-ready-bg: #2b351f;
|
|
156
160
|
--aura-status-ready-fg: var(--aura-lime-300);
|
|
161
|
+
--aura-status-warning-bg: var(--aura-amber-500);
|
|
157
162
|
--aura-bg-selected: #2c283a;
|
|
158
163
|
--aura-border-control: var(--aura-zinc-400);
|
|
159
164
|
--aura-bg-skeleton: var(--aura-zinc-700);
|
|
@@ -223,6 +228,7 @@
|
|
|
223
228
|
--aura-status-progress-fg: var(--aura-violet-300);
|
|
224
229
|
--aura-status-ready-bg: #2b351f;
|
|
225
230
|
--aura-status-ready-fg: var(--aura-lime-300);
|
|
231
|
+
--aura-status-warning-bg: var(--aura-amber-500);
|
|
226
232
|
--aura-bg-selected: #2c283a;
|
|
227
233
|
--aura-border-control: var(--aura-zinc-400);
|
|
228
234
|
--aura-bg-skeleton: var(--aura-zinc-700);
|
|
@@ -227,10 +227,23 @@ window.Aura = (() => {
|
|
|
227
227
|
function tone(t) {
|
|
228
228
|
return TONES.indexOf(t) >= 0 ? t : "neutral";
|
|
229
229
|
}
|
|
230
|
+
var warned = {};
|
|
231
|
+
function devWarnOnce(key, message) {
|
|
232
|
+
if (warned[key]) return;
|
|
233
|
+
let dev = false;
|
|
234
|
+
try {
|
|
235
|
+
dev = true;
|
|
236
|
+
} catch (e) {
|
|
237
|
+
dev = false;
|
|
238
|
+
}
|
|
239
|
+
if (!dev) return;
|
|
240
|
+
warned[key] = true;
|
|
241
|
+
console.warn("[AURA] " + message);
|
|
242
|
+
}
|
|
230
243
|
|
|
231
244
|
// src/Icon.tsx
|
|
232
245
|
var h = React2.createElement;
|
|
233
|
-
var ICONS = { "check": [["path", { "d": "M20 6 9 17l-5-5" }]], "x": [["path", { "d": "M18 6 6 18" }], ["path", { "d": "m6 6 12 12" }]], "plus": [["path", { "d": "M5 12h14" }], ["path", { "d": "M12 5v14" }]], "minus": [["path", { "d": "M5 12h14" }]], "search": [["path", { "d": "m21 21-4.34-4.34" }], ["circle", { "cx": "11", "cy": "11", "r": "8" }]], "chevron-down": [["path", { "d": "m6 9 6 6 6-6" }]], "chevron-up": [["path", { "d": "m18 15-6-6-6 6" }]], "chevron-left": [["path", { "d": "m15 18-6-6 6-6" }]], "chevron-right": [["path", { "d": "m9 18 6-6-6-6" }]], "arrow-right": [["path", { "d": "M5 12h14" }], ["path", { "d": "m12 5 7 7-7 7" }]], "arrow-up-right": [["path", { "d": "M7 7h10v10" }], ["path", { "d": "M7 17 17 7" }]], "arrow-up-down": [["path", { "d": "m21 16-4 4-4-4" }], ["path", { "d": "M17 20V4" }], ["path", { "d": "m3 8 4-4 4 4" }], ["path", { "d": "M7 4v16" }]], "loader-circle": [["path", { "d": "M21 12a9 9 0 1 1-6.219-8.56" }]], "circle-alert": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["line", { "x1": "12", "x2": "12", "y1": "8", "y2": "12" }], ["line", { "x1": "12", "x2": "12.01", "y1": "16", "y2": "16" }]], "circle-check": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "m16 9-5.5 5.5L8 12" }]], "info": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M12 16v-4" }], ["path", { "d": "M12 8h.01" }]], "triangle-alert": [["path", { "d": "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }], ["path", { "d": "M12 9v4" }], ["path", { "d": "M12 17h.01" }]], "settings": [["path", { "d": "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" }], ["circle", { "cx": "12", "cy": "12", "r": "3" }]], "user": [["path", { "d": "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" }], ["circle", { "cx": "12", "cy": "7", "r": "4" }]], "users": [["path", { "d": "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }], ["path", { "d": "M16 3.128a4 4 0 0 1 0 7.744" }], ["path", { "d": "M22 21v-2a4 4 0 0 0-3-3.87" }], ["circle", { "cx": "9", "cy": "7", "r": "4" }]], "filter": [["path", { "d": "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z" }]], "ellipsis": [["circle", { "cx": "12", "cy": "12", "r": "1" }], ["circle", { "cx": "19", "cy": "12", "r": "1" }], ["circle", { "cx": "5", "cy": "12", "r": "1" }]], "external-link": [["path", { "d": "M15 3h6v6" }], ["path", { "d": "M10 14 21 3" }], ["path", { "d": "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }]], "copy": [["rect", { "width": "14", "height": "14", "x": "8", "y": "8", "rx": "2", "ry": "2" }], ["path", { "d": "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]], "trash-2": [["path", { "d": "M10 11v6" }], ["path", { "d": "M14 11v6" }], ["path", { "d": "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }], ["path", { "d": "M3 6h18" }], ["path", { "d": "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]], "pencil": [["path", { "d": "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }], ["path", { "d": "m15 5 4 4" }]], "download": [["path", { "d": "M12 15V3" }], ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }], ["path", { "d": "m7 10 5 5 5-5" }]], "upload": [["path", { "d": "M12 3v12" }], ["path", { "d": "m17 8-5-5-5 5" }], ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }]], "calendar": [["path", { "d": "M8 2v3" }], ["path", { "d": "M16 2v3" }], ["rect", { "x": "3", "y": "3", "width": "18", "height": "18", "rx": "2" }], ["path", { "d": "M3 9h18" }]], "bell": [["path", { "d": "M10.268 21a2 2 0 0 0 3.464 0" }], ["path", { "d": "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" }]], "menu": [["path", { "d": "M4 5h16" }], ["path", { "d": "M4 12h16" }], ["path", { "d": "M4 19h16" }]], "eye": [["path", { "d": "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" }], ["circle", { "cx": "12", "cy": "12", "r": "3" }]], "log-out": [["path", { "d": "m16 17 5-5-5-5" }], ["path", { "d": "M21 12H9" }], ["path", { "d": "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }]], "circle": [["circle", { "cx": "12", "cy": "12", "r": "10" }]], "circle-dot-dashed": [["path", { "d": "M10.1 2.18a9.93 9.93 0 0 1 3.8 0" }], ["path", { "d": "M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7" }], ["path", { "d": "M21.82 10.1a9.93 9.93 0 0 1 0 3.8" }], ["path", { "d": "M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69" }], ["path", { "d": "M13.9 21.82a9.94 9.94 0 0 1-3.8 0" }], ["path", { "d": "M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7" }], ["path", { "d": "M2.18 13.9a9.93 9.93 0 0 1 0-3.8" }], ["path", { "d": "M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69" }], ["circle", { "cx": "12", "cy": "12", "r": "1" }]], "ban": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M4.929 4.929 19.07 19.071" }]], "arrow-up": [["path", { "d": "m5 12 7-7 7 7" }], ["path", { "d": "M12 19V5" }]], "arrow-down": [["path", { "d": "M12 5v14" }], ["path", { "d": "m19 12-7 7-7-7" }]], "inbox": [["polyline", { "points": "22 12 16 12 14 15 10 15 8 12 2 12" }], ["path", { "d": "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" }]], "pin": [["path", { "d": "M12 17v5" }], ["path", { "d": "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z" }]], "pin-off": [["path", { "d": "M12 17v5" }], ["path", { "d": "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89" }], ["path", { "d": "m2 2 20 20" }], ["path", { "d": "M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11" }]], "eye-off": [["path", { "d": "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }], ["path", { "d": "M14.084 14.158a3 3 0 0 1-4.242-4.242" }], ["path", { "d": "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }], ["path", { "d": "m2 2 20 20" }]], "columns-3": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }], ["path", { "d": "M9 3v18" }], ["path", { "d": "M15 3v18" }]], "arrow-left": [["path", { "d": "m12 19-7-7 7-7" }], ["path", { "d": "M19 12H5" }]], "rotate-ccw": [["path", { "d": "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }], ["path", { "d": "M3 3v5h5" }]], "house": [["path", { "d": "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" }], ["path", { "d": "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }]], "layout-dashboard": [["rect", { "width": "7", "height": "9", "x": "3", "y": "3", "rx": "1" }], ["rect", { "width": "7", "height": "5", "x": "14", "y": "3", "rx": "1" }], ["rect", { "width": "7", "height": "9", "x": "14", "y": "12", "rx": "1" }], ["rect", { "width": "7", "height": "5", "x": "3", "y": "16", "rx": "1" }]], "folder": [["path", { "d": "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }]], "chart-column": [["path", { "d": "M3 3v16a2 2 0 0 0 2 2h16" }], ["path", { "d": "M18 17V9" }], ["path", { "d": "M13 17V5" }], ["path", { "d": "M8 17v-3" }]], "file-text": [["path", { "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }], ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }], ["path", { "d": "M10 9H8" }], ["path", { "d": "M16 13H8" }], ["path", { "d": "M16 17H8" }]], "mail": [["path", { "d": "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" }], ["rect", { "x": "2", "y": "4", "width": "20", "height": "16", "rx": "2" }]], "lock": [["rect", { "width": "18", "height": "11", "x": "3", "y": "11", "rx": "2", "ry": "2" }], ["path", { "d": "M7 11V7a5 5 0 0 1 10 0v4" }]], "clock": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M12 6v6l4 2" }]], "trending-up": [["path", { "d": "M16 7h6v6" }], ["path", { "d": "m22 7-8.5 8.5-5-5L2 17" }]], "trending-down": [["path", { "d": "M16 17h6v-6" }], ["path", { "d": "m22 17-8.5-8.5-5 5L2 7" }]], "image": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2", "ry": "2" }], ["circle", { "cx": "9", "cy": "9", "r": "2" }], ["path", { "d": "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]], "paperclip": [["path", { "d": "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551" }]], "cloud-upload": [["path", { "d": "M12 13v8" }], ["path", { "d": "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }], ["path", { "d": "m8 17 4-4 4 4" }]], "file": [["path", { "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }], ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }]], "sun": [["circle", { "cx": "12", "cy": "12", "r": "4" }], ["path", { "d": "M12 2v2" }], ["path", { "d": "M12 20v2" }], ["path", { "d": "m4.93 4.93 1.41 1.41" }], ["path", { "d": "m17.66 17.66 1.41 1.41" }], ["path", { "d": "M2 12h2" }], ["path", { "d": "M20 12h2" }], ["path", { "d": "m6.34 17.66-1.41 1.41" }], ["path", { "d": "m19.07 4.93-1.41 1.41" }]], "moon": [["path", { "d": "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }]], "monitor": [["rect", { "width": "20", "height": "14", "x": "2", "y": "3", "rx": "2" }], ["line", { "x1": "8", "x2": "16", "y1": "21", "y2": "21" }], ["line", { "x1": "12", "x2": "12", "y1": "17", "y2": "21" }]], "panel-left-close": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }], ["path", { "d": "M9 3v18" }], ["path", { "d": "m16 15-3-3 3-3" }]], "panel-left-open": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }], ["path", { "d": "M9 3v18" }], ["path", { "d": "m14 9 3 3-3 3" }]] };
|
|
246
|
+
var ICONS = { "check": [["path", { "d": "M20 6 9 17l-5-5" }]], "x": [["path", { "d": "M18 6 6 18" }], ["path", { "d": "m6 6 12 12" }]], "plus": [["path", { "d": "M5 12h14" }], ["path", { "d": "M12 5v14" }]], "minus": [["path", { "d": "M5 12h14" }]], "search": [["path", { "d": "m21 21-4.34-4.34" }], ["circle", { "cx": "11", "cy": "11", "r": "8" }]], "chevron-down": [["path", { "d": "m6 9 6 6 6-6" }]], "chevron-up": [["path", { "d": "m18 15-6-6-6 6" }]], "chevron-left": [["path", { "d": "m15 18-6-6 6-6" }]], "chevron-right": [["path", { "d": "m9 18 6-6-6-6" }]], "arrow-right": [["path", { "d": "M5 12h14" }], ["path", { "d": "m12 5 7 7-7 7" }]], "arrow-up-right": [["path", { "d": "M7 7h10v10" }], ["path", { "d": "M7 17 17 7" }]], "arrow-up-down": [["path", { "d": "m21 16-4 4-4-4" }], ["path", { "d": "M17 20V4" }], ["path", { "d": "m3 8 4-4 4 4" }], ["path", { "d": "M7 4v16" }]], "loader-circle": [["path", { "d": "M21 12a9 9 0 1 1-6.219-8.56" }]], "circle-alert": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["line", { "x1": "12", "x2": "12", "y1": "8", "y2": "12" }], ["line", { "x1": "12", "x2": "12.01", "y1": "16", "y2": "16" }]], "circle-check": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "m16 9-5.5 5.5L8 12" }]], "info": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M12 16v-4" }], ["path", { "d": "M12 8h.01" }]], "triangle-alert": [["path", { "d": "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }], ["path", { "d": "M12 9v4" }], ["path", { "d": "M12 17h.01" }]], "settings": [["path", { "d": "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" }], ["circle", { "cx": "12", "cy": "12", "r": "3" }]], "user": [["path", { "d": "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" }], ["circle", { "cx": "12", "cy": "7", "r": "4" }]], "users": [["path", { "d": "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }], ["path", { "d": "M16 3.128a4 4 0 0 1 0 7.744" }], ["path", { "d": "M22 21v-2a4 4 0 0 0-3-3.87" }], ["circle", { "cx": "9", "cy": "7", "r": "4" }]], "filter": [["path", { "d": "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z" }]], "ellipsis": [["circle", { "cx": "12", "cy": "12", "r": "1" }], ["circle", { "cx": "19", "cy": "12", "r": "1" }], ["circle", { "cx": "5", "cy": "12", "r": "1" }]], "external-link": [["path", { "d": "M15 3h6v6" }], ["path", { "d": "M10 14 21 3" }], ["path", { "d": "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }]], "copy": [["rect", { "width": "14", "height": "14", "x": "8", "y": "8", "rx": "2", "ry": "2" }], ["path", { "d": "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]], "trash-2": [["path", { "d": "M10 11v6" }], ["path", { "d": "M14 11v6" }], ["path", { "d": "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }], ["path", { "d": "M3 6h18" }], ["path", { "d": "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]], "pencil": [["path", { "d": "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }], ["path", { "d": "m15 5 4 4" }]], "download": [["path", { "d": "M12 15V3" }], ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }], ["path", { "d": "m7 10 5 5 5-5" }]], "upload": [["path", { "d": "M12 3v12" }], ["path", { "d": "m17 8-5-5-5 5" }], ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }]], "calendar": [["path", { "d": "M8 2v3" }], ["path", { "d": "M16 2v3" }], ["rect", { "x": "3", "y": "3", "width": "18", "height": "18", "rx": "2" }], ["path", { "d": "M3 9h18" }]], "bell": [["path", { "d": "M10.268 21a2 2 0 0 0 3.464 0" }], ["path", { "d": "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" }]], "menu": [["path", { "d": "M4 5h16" }], ["path", { "d": "M4 12h16" }], ["path", { "d": "M4 19h16" }]], "eye": [["path", { "d": "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" }], ["circle", { "cx": "12", "cy": "12", "r": "3" }]], "log-out": [["path", { "d": "m16 17 5-5-5-5" }], ["path", { "d": "M21 12H9" }], ["path", { "d": "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }]], "circle": [["circle", { "cx": "12", "cy": "12", "r": "10" }]], "circle-dot-dashed": [["path", { "d": "M10.1 2.18a9.93 9.93 0 0 1 3.8 0" }], ["path", { "d": "M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7" }], ["path", { "d": "M21.82 10.1a9.93 9.93 0 0 1 0 3.8" }], ["path", { "d": "M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69" }], ["path", { "d": "M13.9 21.82a9.94 9.94 0 0 1-3.8 0" }], ["path", { "d": "M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7" }], ["path", { "d": "M2.18 13.9a9.93 9.93 0 0 1 0-3.8" }], ["path", { "d": "M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69" }], ["circle", { "cx": "12", "cy": "12", "r": "1" }]], "ban": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M4.929 4.929 19.07 19.071" }]], "arrow-up": [["path", { "d": "m5 12 7-7 7 7" }], ["path", { "d": "M12 19V5" }]], "arrow-down": [["path", { "d": "M12 5v14" }], ["path", { "d": "m19 12-7 7-7-7" }]], "inbox": [["polyline", { "points": "22 12 16 12 14 15 10 15 8 12 2 12" }], ["path", { "d": "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" }]], "pin": [["path", { "d": "M12 17v5" }], ["path", { "d": "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z" }]], "pin-off": [["path", { "d": "M12 17v5" }], ["path", { "d": "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89" }], ["path", { "d": "m2 2 20 20" }], ["path", { "d": "M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11" }]], "eye-off": [["path", { "d": "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }], ["path", { "d": "M14.084 14.158a3 3 0 0 1-4.242-4.242" }], ["path", { "d": "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }], ["path", { "d": "m2 2 20 20" }]], "columns-3": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }], ["path", { "d": "M9 3v18" }], ["path", { "d": "M15 3v18" }]], "arrow-left": [["path", { "d": "m12 19-7-7 7-7" }], ["path", { "d": "M19 12H5" }]], "rotate-ccw": [["path", { "d": "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }], ["path", { "d": "M3 3v5h5" }]], "house": [["path", { "d": "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" }], ["path", { "d": "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }]], "layout-dashboard": [["rect", { "width": "7", "height": "9", "x": "3", "y": "3", "rx": "1" }], ["rect", { "width": "7", "height": "5", "x": "14", "y": "3", "rx": "1" }], ["rect", { "width": "7", "height": "9", "x": "14", "y": "12", "rx": "1" }], ["rect", { "width": "7", "height": "5", "x": "3", "y": "16", "rx": "1" }]], "folder": [["path", { "d": "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }]], "chart-column": [["path", { "d": "M3 3v16a2 2 0 0 0 2 2h16" }], ["path", { "d": "M18 17V9" }], ["path", { "d": "M13 17V5" }], ["path", { "d": "M8 17v-3" }]], "file-text": [["path", { "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }], ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }], ["path", { "d": "M10 9H8" }], ["path", { "d": "M16 13H8" }], ["path", { "d": "M16 17H8" }]], "mail": [["path", { "d": "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" }], ["rect", { "x": "2", "y": "4", "width": "20", "height": "16", "rx": "2" }]], "lock": [["rect", { "width": "18", "height": "11", "x": "3", "y": "11", "rx": "2", "ry": "2" }], ["path", { "d": "M7 11V7a5 5 0 0 1 10 0v4" }]], "clock": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M12 6v6l4 2" }]], "trending-up": [["path", { "d": "M16 7h6v6" }], ["path", { "d": "m22 7-8.5 8.5-5-5L2 17" }]], "trending-down": [["path", { "d": "M16 17h6v-6" }], ["path", { "d": "m22 17-8.5-8.5-5 5L2 7" }]], "image": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2", "ry": "2" }], ["circle", { "cx": "9", "cy": "9", "r": "2" }], ["path", { "d": "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]], "paperclip": [["path", { "d": "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551" }]], "cloud-upload": [["path", { "d": "M12 13v8" }], ["path", { "d": "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }], ["path", { "d": "m8 17 4-4 4 4" }]], "file": [["path", { "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }], ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }]], "sun": [["circle", { "cx": "12", "cy": "12", "r": "4" }], ["path", { "d": "M12 2v2" }], ["path", { "d": "M12 20v2" }], ["path", { "d": "m4.93 4.93 1.41 1.41" }], ["path", { "d": "m17.66 17.66 1.41 1.41" }], ["path", { "d": "M2 12h2" }], ["path", { "d": "M20 12h2" }], ["path", { "d": "m6.34 17.66-1.41 1.41" }], ["path", { "d": "m19.07 4.93-1.41 1.41" }]], "moon": [["path", { "d": "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }]], "monitor": [["rect", { "width": "20", "height": "14", "x": "2", "y": "3", "rx": "2" }], ["line", { "x1": "8", "x2": "16", "y1": "21", "y2": "21" }], ["line", { "x1": "12", "x2": "12", "y1": "17", "y2": "21" }]], "panel-left-close": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }], ["path", { "d": "M9 3v18" }], ["path", { "d": "m16 15-3-3 3-3" }]], "panel-left-open": [["rect", { "width": "18", "height": "18", "x": "3", "y": "3", "rx": "2" }], ["path", { "d": "M9 3v18" }], ["path", { "d": "m14 9 3 3-3 3" }]], "server": [["rect", { "width": "20", "height": "8", "x": "2", "y": "2", "rx": "2", "ry": "2" }], ["rect", { "width": "20", "height": "8", "x": "2", "y": "14", "rx": "2", "ry": "2" }], ["line", { "x1": "6", "x2": "6.01", "y1": "6", "y2": "6" }], ["line", { "x1": "6", "x2": "6.01", "y1": "18", "y2": "18" }]], "globe": [["circle", { "cx": "12", "cy": "12", "r": "10" }], ["path", { "d": "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" }], ["path", { "d": "M2 12h20" }]], "activity": [["path", { "d": "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2" }]], "shield-alert": [["path", { "d": "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }], ["path", { "d": "M12 8v4" }], ["path", { "d": "M12 16h.01" }]], "phone": [["path", { "d": "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]], "wrench": [["path", { "d": "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z" }]] };
|
|
234
247
|
var SIZES = { sm: 16, md: 20, lg: 24 };
|
|
235
248
|
var Icon = React2.forwardRef(function Icon2(props, ref) {
|
|
236
249
|
const size = SIZES[props.size] || props.size || 16;
|
|
@@ -968,13 +981,20 @@ window.Aura = (() => {
|
|
|
968
981
|
"onChange",
|
|
969
982
|
"indeterminate",
|
|
970
983
|
"label",
|
|
984
|
+
"hideLabel",
|
|
971
985
|
"children",
|
|
972
986
|
"description",
|
|
973
987
|
"className",
|
|
974
988
|
"tabIndex",
|
|
975
989
|
"disabled"
|
|
976
990
|
]);
|
|
977
|
-
const
|
|
991
|
+
const text = props.children;
|
|
992
|
+
const labelled = text != null && text !== "";
|
|
993
|
+
if (!labelled && props.label && !props.hideLabel)
|
|
994
|
+
devWarnOnce(
|
|
995
|
+
"checkbox-label",
|
|
996
|
+
"Checkbox `label` is only the accessible name: it is not shown. In 6.0 it will be shown beside the box, like Switch and TextField. For visible text now pass it as children; for a bare box (a table row) add `hideLabel`."
|
|
997
|
+
);
|
|
978
998
|
const descId = props.description && props.id ? props.id + "-desc" : void 0;
|
|
979
999
|
return /* @__PURE__ */ React8.createElement(
|
|
980
1000
|
"label",
|
|
@@ -1002,7 +1022,8 @@ window.Aura = (() => {
|
|
|
1002
1022
|
}
|
|
1003
1023
|
),
|
|
1004
1024
|
/* @__PURE__ */ React8.createElement("span", { className: "aura-check__box", "aria-hidden": true }, props.indeterminate ? /* @__PURE__ */ React8.createElement(Icon, { name: "minus", size: 12, strokeWidth: 3 }) : on ? /* @__PURE__ */ React8.createElement(Icon, { name: "check", size: 12, strokeWidth: 3 }) : null),
|
|
1005
|
-
labelled
|
|
1025
|
+
!labelled && props.description ? /* @__PURE__ */ React8.createElement("span", { className: "aura-sr-only", id: descId }, props.description) : null,
|
|
1026
|
+
labelled ? /* @__PURE__ */ React8.createElement("span", { className: "aura-check__text" }, /* @__PURE__ */ React8.createElement("span", { className: "aura-check__label" }, text), props.description ? /* @__PURE__ */ React8.createElement("span", { className: "aura-check__desc", id: descId }, props.description) : null) : null
|
|
1006
1027
|
);
|
|
1007
1028
|
});
|
|
1008
1029
|
|
|
@@ -1013,6 +1034,7 @@ window.Aura = (() => {
|
|
|
1013
1034
|
var TONE_WORDS = {
|
|
1014
1035
|
ready: ["ready", "done", "complete", "completed", "approved", "live", "passed"],
|
|
1015
1036
|
progress: ["in progress", "in review", "review", "syncing", "running", "pending"],
|
|
1037
|
+
warning: ["warning", "problem", "degraded", "at risk"],
|
|
1016
1038
|
blocked: ["blocked", "failed", "error", "rejected", "on hold", "cancelled"]
|
|
1017
1039
|
};
|
|
1018
1040
|
function toneFor(status) {
|
|
@@ -1020,13 +1042,14 @@ window.Aura = (() => {
|
|
|
1020
1042
|
for (const t in TONE_WORDS) if (TONE_WORDS[t].indexOf(s) >= 0) return t;
|
|
1021
1043
|
return "neutral";
|
|
1022
1044
|
}
|
|
1023
|
-
var TONE_ORDER = { neutral: 0, progress: 1, ready: 2,
|
|
1045
|
+
var TONE_ORDER = { neutral: 0, progress: 1, ready: 2, warning: 3, blocked: 4 };
|
|
1024
1046
|
|
|
1025
1047
|
// src/StatusPill.tsx
|
|
1026
1048
|
var TONE_ICON = {
|
|
1027
1049
|
neutral: "circle",
|
|
1028
1050
|
progress: "circle-dot-dashed",
|
|
1029
1051
|
ready: "circle-check",
|
|
1052
|
+
warning: "triangle-alert",
|
|
1030
1053
|
blocked: "ban"
|
|
1031
1054
|
};
|
|
1032
1055
|
var StatusPill = React9.forwardRef(function StatusPill2(props, ref) {
|
|
@@ -1757,12 +1780,16 @@ window.Aura = (() => {
|
|
|
1757
1780
|
function todayIn(timeZone) {
|
|
1758
1781
|
const now = /* @__PURE__ */ new Date();
|
|
1759
1782
|
if (!timeZone) return toISO(now);
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1783
|
+
try {
|
|
1784
|
+
return new Intl.DateTimeFormat("en-CA", {
|
|
1785
|
+
timeZone,
|
|
1786
|
+
year: "numeric",
|
|
1787
|
+
month: "2-digit",
|
|
1788
|
+
day: "2-digit"
|
|
1789
|
+
}).format(now);
|
|
1790
|
+
} catch (e) {
|
|
1791
|
+
return toISO(now);
|
|
1792
|
+
}
|
|
1766
1793
|
}
|
|
1767
1794
|
|
|
1768
1795
|
// src/DatePicker.tsx
|
|
@@ -1785,7 +1812,7 @@ window.Aura = (() => {
|
|
|
1785
1812
|
var Calendar = React17.forwardRef(function Calendar2(props, ref) {
|
|
1786
1813
|
const ctx = useAuraLocale(), locale = props.locale || ctx.locale || "en", calendar = props.calendar || ctx.calendar || defaultCalendar(locale), tag = localeTag(locale, calendar);
|
|
1787
1814
|
const weekStart = props.weekStartsOn == null ? locale === "sv" ? 1 : 0 : props.weekStartsOn;
|
|
1788
|
-
const todayISO = props.today || todayIn(props.timeZone || ctx.timeZone);
|
|
1815
|
+
const todayISO = (props.today && fromISO(props.today) ? props.today : null) || todayIn(props.timeZone || ctx.timeZone);
|
|
1789
1816
|
const today = fromISO(todayISO);
|
|
1790
1817
|
const min = fromISO(props.min === "today" ? todayISO : props.min), max = fromISO(props.max === "today" ? todayISO : props.max);
|
|
1791
1818
|
const start = fromISO(props.start), end = fromISO(props.end);
|
|
@@ -2807,7 +2834,17 @@ window.Aura = (() => {
|
|
|
2807
2834
|
const body = document.body, overflow = body.style.overflow;
|
|
2808
2835
|
body.style.overflow = "hidden";
|
|
2809
2836
|
const el = ref.current;
|
|
2810
|
-
const
|
|
2837
|
+
const firstIn = function(scope) {
|
|
2838
|
+
if (!scope || !el) return null;
|
|
2839
|
+
const sel = FOCUSABLE.split(",").map(function(s) {
|
|
2840
|
+
return scope + " " + s;
|
|
2841
|
+
}).join(",");
|
|
2842
|
+
const list = el.querySelectorAll(sel);
|
|
2843
|
+
for (let i = 0; i < list.length; i++)
|
|
2844
|
+
if (list[i].tabIndex >= 0 && list[i].getClientRects().length > 0) return list[i];
|
|
2845
|
+
return null;
|
|
2846
|
+
};
|
|
2847
|
+
const target = el && (el.querySelector("[data-autofocus]") || firstIn(o.bodySelector) || firstIn(o.footSelector) || el);
|
|
2811
2848
|
if (target && o.autoFocus !== false) target.focus();
|
|
2812
2849
|
return function() {
|
|
2813
2850
|
body.style.overflow = overflow;
|
|
@@ -3106,7 +3143,7 @@ window.Aura = (() => {
|
|
|
3106
3143
|
};
|
|
3107
3144
|
let top, left;
|
|
3108
3145
|
if (side === "top" || side === "bottom") {
|
|
3109
|
-
top = side === "top" ? r.top - t.height - gap : r.bottom + gap;
|
|
3146
|
+
top = clampY(side === "top" ? r.top - t.height - gap : r.bottom + gap);
|
|
3110
3147
|
left = clampX(r.left + r.width / 2 - t.width / 2);
|
|
3111
3148
|
} else {
|
|
3112
3149
|
left = side === "left" ? r.left - t.width - gap : r.right + gap;
|
|
@@ -3333,6 +3370,12 @@ window.Aura = (() => {
|
|
|
3333
3370
|
const measure = !!props.stackBelow || columns.some(function(c) {
|
|
3334
3371
|
return c.hideBelow != null;
|
|
3335
3372
|
});
|
|
3373
|
+
const levelShape = (props.stackBelow ? "s" : "") + Math.min(
|
|
3374
|
+
MAX_HIDE_LEVELS,
|
|
3375
|
+
columns.map(hidePx).filter(function(px, i, a) {
|
|
3376
|
+
return px != null && a.indexOf(px) === i;
|
|
3377
|
+
}).length
|
|
3378
|
+
);
|
|
3336
3379
|
React28.useEffect(
|
|
3337
3380
|
function() {
|
|
3338
3381
|
if (!measure || !wrapRef.current || typeof ResizeObserver === "undefined") return;
|
|
@@ -3345,14 +3388,14 @@ window.Aura = (() => {
|
|
|
3345
3388
|
ro.disconnect();
|
|
3346
3389
|
};
|
|
3347
3390
|
},
|
|
3348
|
-
[measure]
|
|
3391
|
+
[measure, levelShape]
|
|
3349
3392
|
);
|
|
3350
3393
|
const stacked = !!props.stackBelow && boxWidth[0] != null && below(boxWidth[0], props.stackBelow);
|
|
3351
3394
|
useIsoLayoutEffect(
|
|
3352
3395
|
function() {
|
|
3353
|
-
if (measure &&
|
|
3396
|
+
if (measure && wrapRef.current) boxWidth[1](wrapRef.current.getBoundingClientRect().width);
|
|
3354
3397
|
},
|
|
3355
|
-
[measure]
|
|
3398
|
+
[measure, levelShape]
|
|
3356
3399
|
);
|
|
3357
3400
|
const hideLevels = [];
|
|
3358
3401
|
columns.forEach(function(c) {
|
|
@@ -3613,6 +3656,7 @@ window.Aura = (() => {
|
|
|
3613
3656
|
function focusCell(r, c) {
|
|
3614
3657
|
r = Math.max(0, Math.min(r, nRows));
|
|
3615
3658
|
c = Math.max(0, Math.min(c, nCols - 1));
|
|
3659
|
+
if (stacked && r === 0 && nRows > 0 && !(selectable && c === 0)) r = 1;
|
|
3616
3660
|
activeState[1]({ r, c });
|
|
3617
3661
|
pending.current = { r, c };
|
|
3618
3662
|
if (virtual && r > 0) {
|
|
@@ -3922,6 +3966,7 @@ window.Aura = (() => {
|
|
|
3922
3966
|
nRows ? /* @__PURE__ */ React28.createElement(
|
|
3923
3967
|
Checkbox,
|
|
3924
3968
|
{
|
|
3969
|
+
hideLabel: true,
|
|
3925
3970
|
checked: all,
|
|
3926
3971
|
indeterminate: nSel > 0 && !all,
|
|
3927
3972
|
tabIndex: -1,
|
|
@@ -4075,6 +4120,7 @@ window.Aura = (() => {
|
|
|
4075
4120
|
/* @__PURE__ */ React28.createElement(
|
|
4076
4121
|
Checkbox,
|
|
4077
4122
|
{
|
|
4123
|
+
hideLabel: true,
|
|
4078
4124
|
checked: isSel,
|
|
4079
4125
|
tabIndex: -1,
|
|
4080
4126
|
label: t.selectRow(k),
|
|
@@ -4172,7 +4218,9 @@ window.Aura = (() => {
|
|
|
4172
4218
|
} else {
|
|
4173
4219
|
const bodyRows = body = [];
|
|
4174
4220
|
if (virtual && start > 0)
|
|
4175
|
-
bodyRows.push(
|
|
4221
|
+
bodyRows.push(
|
|
4222
|
+
/* @__PURE__ */ React28.createElement("div", { key: "__top", className: "aura-table__spacer", style: { height: start * ROW_H + "px" }, "aria-hidden": true })
|
|
4223
|
+
);
|
|
4176
4224
|
for (let ri = start; ri < end; ri++) {
|
|
4177
4225
|
(function(r, i) {
|
|
4178
4226
|
const k = r[rowKey], isSel = !!selSet[k];
|
|
@@ -4203,7 +4251,17 @@ window.Aura = (() => {
|
|
|
4203
4251
|
})(pageRows[ri], ri);
|
|
4204
4252
|
}
|
|
4205
4253
|
if (virtual && end < pageRows.length)
|
|
4206
|
-
bodyRows.push(
|
|
4254
|
+
bodyRows.push(
|
|
4255
|
+
/* @__PURE__ */ React28.createElement(
|
|
4256
|
+
"div",
|
|
4257
|
+
{
|
|
4258
|
+
key: "__bot",
|
|
4259
|
+
className: "aura-table__spacer",
|
|
4260
|
+
style: { height: (pageRows.length - end) * ROW_H + "px" },
|
|
4261
|
+
"aria-hidden": true
|
|
4262
|
+
}
|
|
4263
|
+
)
|
|
4264
|
+
);
|
|
4207
4265
|
}
|
|
4208
4266
|
let foot = null;
|
|
4209
4267
|
function pagerButton(dir) {
|
|
@@ -4438,7 +4496,7 @@ window.Aura = (() => {
|
|
|
4438
4496
|
className: cx("aura-tabs aura-tabs--links", props.className)
|
|
4439
4497
|
},
|
|
4440
4498
|
/* @__PURE__ */ React30.createElement("div", { className: "aura-tabs__list" }, items2.map(function(t) {
|
|
4441
|
-
const on =
|
|
4499
|
+
const on = t.id === st[0];
|
|
4442
4500
|
const inner = [
|
|
4443
4501
|
t.icon ? /* @__PURE__ */ React30.createElement(Icon, { key: "i", name: t.icon }) : null,
|
|
4444
4502
|
t.label,
|
|
@@ -4451,7 +4509,8 @@ window.Aura = (() => {
|
|
|
4451
4509
|
href: t.href,
|
|
4452
4510
|
className: cx("aura-tab", on && "is-active"),
|
|
4453
4511
|
"aria-current": on ? "page" : void 0,
|
|
4454
|
-
onClick: function() {
|
|
4512
|
+
onClick: function(e) {
|
|
4513
|
+
if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
|
|
4455
4514
|
st[1](t.id);
|
|
4456
4515
|
}
|
|
4457
4516
|
},
|
|
@@ -4696,7 +4755,12 @@ window.Aura = (() => {
|
|
|
4696
4755
|
if (typeof ref === "function") ref(el);
|
|
4697
4756
|
else if (ref) ref.current = el;
|
|
4698
4757
|
},
|
|
4699
|
-
className: cx(
|
|
4758
|
+
className: cx(
|
|
4759
|
+
"aura-nav",
|
|
4760
|
+
collapsed && "aura-nav--collapsed",
|
|
4761
|
+
props.bordered === false && "aura-nav--borderless",
|
|
4762
|
+
props.className
|
|
4763
|
+
),
|
|
4700
4764
|
"data-collapsed": collapsed ? "" : void 0,
|
|
4701
4765
|
"aria-label": props.label || t.mainNav,
|
|
4702
4766
|
onKeyDown
|
|
@@ -334,6 +334,7 @@ a.aura-icon-btn { text-decoration: none; }
|
|
|
334
334
|
}
|
|
335
335
|
.aura-pill--progress { background: var(--aura-status-progress-bg); color: var(--aura-status-progress-fg); }
|
|
336
336
|
.aura-pill--ready { background: var(--aura-status-ready-bg); color: var(--aura-status-ready-fg); }
|
|
337
|
+
.aura-pill--warning { background: var(--aura-status-warning-bg); color: var(--aura-status-warning-fg); }
|
|
337
338
|
.aura-pill--blocked { background: var(--aura-status-blocked-bg); color: var(--aura-status-blocked-fg); }
|
|
338
339
|
|
|
339
340
|
/* Icon — Lucide, 24-grid, stroke in currentColor */
|
|
@@ -596,6 +597,9 @@ a.aura-tab { text-decoration: none; }
|
|
|
596
597
|
}
|
|
597
598
|
.aura-nav__header { padding: var(--aura-space-5) var(--aura-space-4) var(--aura-space-4); }
|
|
598
599
|
.aura-nav__scroll { flex: 1; overflow-y: auto; padding: 0 var(--aura-space-3); }
|
|
600
|
+
/* No header: keep the first item off the top edge (5.0.2). */
|
|
601
|
+
.aura-nav > .aura-nav__scroll:first-child { padding-top: var(--aura-space-3); }
|
|
602
|
+
.aura-nav--borderless { border-right: 0; }
|
|
599
603
|
.aura-nav__section + .aura-nav__section { margin-top: var(--aura-space-5); }
|
|
600
604
|
.aura-nav__title { margin: 0 0 var(--aura-space-1); padding: 0 var(--aura-space-3); font-family: var(--font-mono); font-size: 11px; line-height: 20px; color: var(--aura-fg-tertiary); text-transform: uppercase; letter-spacing: 0.04em; }
|
|
601
605
|
.aura-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
|
|
@@ -1365,6 +1369,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1365
1369
|
@media (max-width: 767.98px) { :root:has(.aura-bottomnav--below-md) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1366
1370
|
@media (max-width: 1023.98px) { :root:has(.aura-bottomnav--below-lg) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1367
1371
|
@media (max-width: 1279.98px) { :root:has(.aura-bottomnav--below-xl) { --aura-bottomnav-offset: calc(var(--aura-bottomnav-height) + env(safe-area-inset-bottom, 0px)); } }
|
|
1372
|
+
/* Toasts clear a BottomNav wherever it shows (phones and tablets). */
|
|
1373
|
+
.aura-toaster:not(.is-top) { bottom: calc(var(--aura-space-6) + var(--aura-bottomnav-offset, 0px)); }
|
|
1368
1374
|
@media (max-width: 639.98px) { .aura-toaster:not(.is-top) { bottom: calc(var(--aura-space-4) + var(--aura-bottomnav-offset, 0px)); } }
|
|
1369
1375
|
|
|
1370
1376
|
/* ---------- 4.19: ActionBar ---------- */
|
|
@@ -1459,7 +1465,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
|
|
|
1459
1465
|
margin-bottom: var(--aura-space-1);
|
|
1460
1466
|
padding: 0; line-height: normal;
|
|
1461
1467
|
}
|
|
1462
|
-
.aura-table__td[data-hide] { display: block; }
|
|
1468
|
+
.aura-table__td[data-hide], .aura-table__head > .aura-table__th[data-hide] { display: block; }
|
|
1469
|
+
.aura-table__spacer { display: none; }
|
|
1463
1470
|
.aura-table__td[data-label]::before {
|
|
1464
1471
|
content: attr(data-label); content: attr(data-label) / '';
|
|
1465
1472
|
display: block; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: start;
|
package/components/index.d.ts
CHANGED
|
@@ -171,13 +171,13 @@ export interface DataTableProps {
|
|
|
171
171
|
onPinnedColumnsChange?: ((keys: string[]) => void) | undefined;
|
|
172
172
|
/** `compact` = 40px rows (48px on touch screens). Default: the surrounding density. */
|
|
173
173
|
density?: "comfortable" | "compact" | undefined;
|
|
174
|
-
/** Table width in px below which rows render as stacked cards (phones). Try 640. It follows the table's own width, not the window. Since 4.20 the cards are the same markup as the grid, laid out by a container query, so any width is right before hydration and each row is in the HTML once. */
|
|
174
|
+
/** Table width in px below which rows render as stacked cards (phones). Try 640. It follows the table's own width, not the window. Since 4.20 the cards are the same markup as the grid, laid out by a container query, so any width is right before hydration and each row is in the HTML once. With `height` (virtual rows) the server can only send the first screenful; the rest of the cards arrive on hydration. */
|
|
175
175
|
stackBelow?: number | undefined;
|
|
176
176
|
className?: string | undefined;
|
|
177
177
|
}
|
|
178
178
|
/** An AURA icon name, or any icon element (e.g. `<Building />` from lucide-react). AURA sizes it and hides it from screen readers. */
|
|
179
179
|
export type IconInput = IconName | React$1.ReactElement;
|
|
180
|
-
export type IconName = "check" | "x" | "plus" | "minus" | "search" | "chevron-down" | "chevron-up" | "chevron-left" | "chevron-right" | "arrow-right" | "arrow-up-right" | "arrow-up-down" | "loader-circle" | "circle-alert" | "circle-check" | "info" | "triangle-alert" | "settings" | "user" | "users" | "filter" | "ellipsis" | "external-link" | "copy" | "trash-2" | "pencil" | "download" | "upload" | "calendar" | "bell" | "menu" | "eye" | "log-out" | "circle" | "circle-dot-dashed" | "ban" | "arrow-up" | "arrow-down" | "inbox" | "pin" | "pin-off" | "eye-off" | "columns-3" | "arrow-left" | "rotate-ccw" | "house" | "layout-dashboard" | "folder" | "chart-column" | "file-text" | "mail" | "lock" | "clock" | "trending-up" | "trending-down" | "image" | "paperclip" | "cloud-upload" | "file" | "sun" | "moon" | "monitor" | "panel-left-close" | "panel-left-open";
|
|
180
|
+
export type IconName = "check" | "x" | "plus" | "minus" | "search" | "chevron-down" | "chevron-up" | "chevron-left" | "chevron-right" | "arrow-right" | "arrow-up-right" | "arrow-up-down" | "loader-circle" | "circle-alert" | "circle-check" | "info" | "triangle-alert" | "settings" | "user" | "users" | "filter" | "ellipsis" | "external-link" | "copy" | "trash-2" | "pencil" | "download" | "upload" | "calendar" | "bell" | "menu" | "eye" | "log-out" | "circle" | "circle-dot-dashed" | "ban" | "arrow-up" | "arrow-down" | "inbox" | "pin" | "pin-off" | "eye-off" | "columns-3" | "arrow-left" | "rotate-ccw" | "house" | "layout-dashboard" | "folder" | "chart-column" | "file-text" | "mail" | "lock" | "clock" | "trending-up" | "trending-down" | "image" | "paperclip" | "cloud-upload" | "file" | "sun" | "moon" | "monitor" | "panel-left-close" | "panel-left-open" | "server" | "globe" | "activity" | "shield-alert" | "phone" | "wrench";
|
|
181
181
|
/** Lucide stroke icon drawn inline in currentColor. */
|
|
182
182
|
export interface IconProps {
|
|
183
183
|
/** A name from the set, or an icon element of your own (sized and styled the same way). */
|
|
@@ -214,12 +214,13 @@ export interface AuraProviderProps {
|
|
|
214
214
|
linkComponent?: React$1.ElementType | undefined;
|
|
215
215
|
children?: React$1.ReactNode | undefined;
|
|
216
216
|
}
|
|
217
|
-
|
|
217
|
+
/** `warning` (5.1): needs attention but still works — Warning, Problem, Degraded, At risk. */
|
|
218
|
+
export type StatusTone = "neutral" | "progress" | "ready" | "warning" | "blocked";
|
|
218
219
|
/** Status pill: tone fill + icon + the status word. Tone comes from the word unless given. */
|
|
219
220
|
export interface StatusPillProps {
|
|
220
221
|
/** The status word shown, e.g. "In Progress". */
|
|
221
222
|
children: React$1.ReactNode;
|
|
222
|
-
/** Force a tone. Default: matched from the word (Ready/Done → ready, In Progress/In Review → progress, Blocked/Failed → blocked, anything else → neutral). */
|
|
223
|
+
/** Force a tone. Default: matched from the word (Ready/Done → ready, In Progress/In Review → progress, Warning/Problem/Degraded/At risk → warning (5.1), Blocked/Failed → blocked, anything else → neutral). */
|
|
223
224
|
tone?: StatusTone | undefined;
|
|
224
225
|
className?: string | undefined;
|
|
225
226
|
}
|
|
@@ -229,9 +230,12 @@ export interface CheckboxProps extends Omit<React$1.InputHTMLAttributes<HTMLInpu
|
|
|
229
230
|
checked?: boolean | undefined;
|
|
230
231
|
defaultChecked?: boolean | undefined;
|
|
231
232
|
indeterminate?: boolean | undefined;
|
|
232
|
-
/** Accessible name
|
|
233
|
+
/** Accessible name. In 5.x it is shown only when given as children; **6.0 shows `label` beside the box** like
|
|
234
|
+
* Switch and TextField. Without children and without `hideLabel` it warns once in development. */
|
|
233
235
|
label?: string | undefined;
|
|
234
|
-
/**
|
|
236
|
+
/** A bare box named by `label`, e.g. in a table row: keeps it hidden in 6.0 and silences the 5.1 notice. */
|
|
237
|
+
hideLabel?: boolean | undefined;
|
|
238
|
+
/** The visible label beside the box. */
|
|
235
239
|
children?: React$1.ReactNode | undefined;
|
|
236
240
|
/** Second line under the visible label (needs an id to be linked). */
|
|
237
241
|
description?: React$1.ReactNode | undefined;
|
|
@@ -590,6 +594,9 @@ export interface SideNavProps {
|
|
|
590
594
|
onCollapsedChange?: ((collapsed: boolean) => void) | undefined;
|
|
591
595
|
/** Adds a collapse / expand button at the bottom. AppShell hides it in its phone drawer. */
|
|
592
596
|
collapsible?: boolean | undefined;
|
|
597
|
+
/** The 1px right edge that divides the nav from the page. Default true; `false` when your layout draws its own
|
|
598
|
+
* divider. (5.1) */
|
|
599
|
+
bordered?: boolean | undefined;
|
|
593
600
|
className?: string | undefined;
|
|
594
601
|
}
|
|
595
602
|
export interface BreadcrumbProps {
|
package/figma-variables.csv
CHANGED
|
@@ -40,6 +40,8 @@ primitive/red/800,color,light,#991b1b,Primitive red 800. Danger button hover onl
|
|
|
40
40
|
primitive/amber/50,color,light,#fffbeb,Primitive. Warning alert fill (light). ADDED.,
|
|
41
41
|
primitive/amber/200,color,light,#fde68a,Primitive. Warning alert edge (light). ADDED.,
|
|
42
42
|
primitive/amber/300,color,light,#fcd34d,"Primitive. Warning alert text (dark), 9.6:1. ADDED.",
|
|
43
|
+
primitive/amber/500,color,light,#f59e0b,Primitive. Warning status pill fill (dark). ADDED 5.1.,
|
|
44
|
+
primitive/amber/600,color,light,#d97706,Primitive. Warning status pill fill (light). ADDED 5.1.,
|
|
43
45
|
primitive/amber/800,color,light,#92400e,"Primitive. Warning alert text (light), 6.8:1 on amber-50. ADDED.",
|
|
44
46
|
primitive/ink,color,light,#08080a,Primitive ink (= zinc-950). Text on lime fills: the Ready status label (15:1 on aura-lime-200).,
|
|
45
47
|
primitive/white,color,light,#ffffff,Primitive white. The Creative button fill in every theme.,
|
|
@@ -73,6 +75,8 @@ semantic/status-ready-bg,color,light,{primitive/lime/200},"Status pill fill for
|
|
|
73
75
|
semantic/status-ready-fg,color,light,{primitive/ink},"Label and icon on aura-status-ready-bg (light 15.2:1; dark lime-300, 9.9:1).",ALL_FILLS
|
|
74
76
|
semantic/status-blocked-bg,color,light,{primitive/red/700},"Status pill fill for stopped / failed states (Blocked, Failed). Dark on purpose: 5.5:1 lighter-to-darker against the lime Ready fill, so Ready and Blocked differ by lightness, not only red vs green. ADDED.",ALL_FILLS
|
|
75
77
|
semantic/status-blocked-fg,color,light,{primitive/white},Label and icon on aura-status-blocked-bg (6.5:1).,ALL_FILLS
|
|
78
|
+
semantic/status-warning-bg,color,light,{primitive/amber/600},"Status pill fill for states that need attention but still work (Warning, Problem, Degraded, At risk). A solid amber (amber-600 light, amber-500 dark) that differs from Ready and Blocked by lightness too, not only hue: 2.7:1 from lime-200 and 2.0:1 from red-700 in light; 6.0:1 from the dark Ready fill and 3.0:1 from red-700 in dark. Always with the word and the triangle-alert icon. ADDED 5.1.",ALL_FILLS
|
|
79
|
+
semantic/status-warning-fg,color,light,{primitive/ink},"Label and icon on aura-status-warning-bg: ink, 6.3:1 light, 9.3:1 dark.",ALL_FILLS
|
|
76
80
|
semantic/bg-selected,color,light,{primitive/violet/50},"Selected table rows and list items. Opaque so pinned columns can sit on it (dark = a 14% violet-400 wash over zinc-900, flattened). aura-fg-primary on it ≥14.2:1, aura-fg-secondary ≥5.5:1, focus ring ≥5.2:1 in both themes. ADDED.",FRAME_FILL
|
|
77
81
|
semantic/border-control,color,light,{primitive/zinc/500},"Outline of unchecked checkboxes and other small controls that must be seen: ≥4.4:1 on aura-bg-surface, -canvas and aura-bg-selected (the 3:1 a control boundary needs). ADDED.",STROKE_COLOR
|
|
78
82
|
semantic/bg-skeleton,color,light,{primitive/zinc/200},zinc-200 light / zinc-700 dark so bars read on white and on zinc-900 surfaces. Skeleton placeholder bars while a table or list loads. Decorative; the table carries aria-busy and a 'Loading rows' status for screen readers. ADDED.,FRAME_FILL
|
|
@@ -139,6 +143,8 @@ semantic/status-ready-bg,color,dark,#2b351f,"Status pill fill for finished / goo
|
|
|
139
143
|
semantic/status-ready-fg,color,dark,{primitive/lime/300},"Label and icon on aura-status-ready-bg (light 15.2:1; dark lime-300, 9.9:1).",ALL_FILLS
|
|
140
144
|
semantic/status-blocked-bg,color,dark,{primitive/red/700},"Status pill fill for stopped / failed states (Blocked, Failed). Dark on purpose: 5.5:1 lighter-to-darker against the lime Ready fill, so Ready and Blocked differ by lightness, not only red vs green. ADDED.",ALL_FILLS
|
|
141
145
|
semantic/status-blocked-fg,color,dark,{primitive/white},Label and icon on aura-status-blocked-bg (6.5:1).,ALL_FILLS
|
|
146
|
+
semantic/status-warning-bg,color,dark,{primitive/amber/500},"Status pill fill for states that need attention but still work (Warning, Problem, Degraded, At risk). A solid amber (amber-600 light, amber-500 dark) that differs from Ready and Blocked by lightness too, not only hue: 2.7:1 from lime-200 and 2.0:1 from red-700 in light; 6.0:1 from the dark Ready fill and 3.0:1 from red-700 in dark. Always with the word and the triangle-alert icon. ADDED 5.1.",ALL_FILLS
|
|
147
|
+
semantic/status-warning-fg,color,dark,{primitive/ink},"Label and icon on aura-status-warning-bg: ink, 6.3:1 light, 9.3:1 dark.",ALL_FILLS
|
|
142
148
|
semantic/bg-selected,color,dark,#2c283a,"Selected table rows and list items. Opaque so pinned columns can sit on it (dark = a 14% violet-400 wash over zinc-900, flattened). aura-fg-primary on it ≥14.2:1, aura-fg-secondary ≥5.5:1, focus ring ≥5.2:1 in both themes. ADDED.",FRAME_FILL
|
|
143
149
|
semantic/border-control,color,dark,{primitive/zinc/400},"Outline of unchecked checkboxes and other small controls that must be seen: ≥4.4:1 on aura-bg-surface, -canvas and aura-bg-selected (the 3:1 a control boundary needs). ADDED.",STROKE_COLOR
|
|
144
150
|
semantic/bg-skeleton,color,dark,{primitive/zinc/700},zinc-200 light / zinc-700 dark so bars read on white and on zinc-900 surfaces. Skeleton placeholder bars while a table or list loads. Decorative; the table carries aria-busy and a 'Loading rows' status for screen readers. ADDED.,FRAME_FILL
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jirawatpyk/aura-tokens",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "AURA Design System — tokens (CSS variables, Tailwind preset, Figma variables), theme contrast checks and token lint.",
|
|
5
5
|
"main": "tailwind.tokens.cjs",
|
|
6
6
|
"types": "components/index.d.ts",
|
package/scripts/a11y-check.js
CHANGED
|
@@ -48,7 +48,7 @@ for (const fg of ['fg-primary', 'fg-secondary', 'fg-tertiary', 'fg-accent', 'fg-
|
|
|
48
48
|
pairs.push(['fg-primary', 'bg-selected', TEXT], ['fg-secondary', 'bg-selected', TEXT]);
|
|
49
49
|
pairs.push(['fg-inverted', 'bg-surface-strong', TEXT], ['fg-inverted', 'bg-inverted', TEXT]);
|
|
50
50
|
pairs.push(['button-primary-fg', 'button-primary-bg', TEXT], ['button-primary-fg', 'button-primary-bg-hover', TEXT]);
|
|
51
|
-
for (const t of ['neutral', 'progress', 'ready', 'blocked']) pairs.push([`status-${t}-fg`, `status-${t}-bg`, TEXT]);
|
|
51
|
+
for (const t of ['neutral', 'progress', 'ready', 'warning', 'blocked']) pairs.push([`status-${t}-fg`, `status-${t}-bg`, TEXT]);
|
|
52
52
|
for (const t of ['info', 'success', 'warning', 'danger']) pairs.push([`alert-${t}-fg`, `alert-${t}-bg`, TEXT], ['fg-primary', `alert-${t}-bg`, TEXT]);
|
|
53
53
|
pairs.push(['on-texture', 'mesh-from', TEXT], ['on-texture', 'mesh-to', TEXT]);
|
|
54
54
|
for (const bg of ['bg-surface', 'bg-canvas', 'bg-input', 'bg-selected']) pairs.push(['border-control', bg, UI]);
|
|
@@ -67,6 +67,8 @@ for (const bg of ['bg-surface', 'bg-canvas']) {
|
|
|
67
67
|
pairs.push(['chart-axis', bg, TEXT]);
|
|
68
68
|
}
|
|
69
69
|
for (let i = 1; i < 8; i++) pairs.push([`chart-${i}`, `chart-${i + 1}`, NEIGHBOUR]);
|
|
70
|
+
/* Status fills that sit side by side in a column must also differ in lightness, not only hue (5.1: warning). */
|
|
71
|
+
pairs.push(['status-warning-bg', 'status-ready-bg', NEIGHBOUR], ['status-warning-bg', 'status-blocked-bg', NEIGHBOUR]);
|
|
70
72
|
/* Progress / upload tracks: the edge shows the empty part at 3:1; the bar colours also clear 3:1 on the track fill. */
|
|
71
73
|
for (const bg of ['bg-surface', 'bg-canvas']) pairs.push(['progress-track-edge', bg, UI]);
|
|
72
74
|
for (const fg of ['fg-accent', 'fg-positive', 'fg-danger', 'fg-secondary']) pairs.push([fg, 'progress-track', UI]);
|
package/tailwind.tokens.cjs
CHANGED
|
@@ -52,6 +52,8 @@ module.exports = {
|
|
|
52
52
|
"50": "var(--aura-amber-50)",
|
|
53
53
|
"200": "var(--aura-amber-200)",
|
|
54
54
|
"300": "var(--aura-amber-300)",
|
|
55
|
+
"500": "var(--aura-amber-500)",
|
|
56
|
+
"600": "var(--aura-amber-600)",
|
|
55
57
|
"800": "var(--aura-amber-800)"
|
|
56
58
|
},
|
|
57
59
|
"ink": "var(--aura-ink)",
|
|
@@ -101,7 +103,9 @@ module.exports = {
|
|
|
101
103
|
"ready-bg": "var(--aura-status-ready-bg)",
|
|
102
104
|
"ready-fg": "var(--aura-status-ready-fg)",
|
|
103
105
|
"blocked-bg": "var(--aura-status-blocked-bg)",
|
|
104
|
-
"blocked-fg": "var(--aura-status-blocked-fg)"
|
|
106
|
+
"blocked-fg": "var(--aura-status-blocked-fg)",
|
|
107
|
+
"warning-bg": "var(--aura-status-warning-bg)",
|
|
108
|
+
"warning-fg": "var(--aura-status-warning-fg)"
|
|
105
109
|
},
|
|
106
110
|
"chart": {
|
|
107
111
|
"1": "var(--aura-chart-1)",
|
package/tokens.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "5.
|
|
2
|
+
"version": "5.1.0",
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "AURA Design System",
|
|
5
5
|
"tier": "3-tier",
|
|
@@ -61,6 +61,8 @@
|
|
|
61
61
|
"50": "#fffbeb",
|
|
62
62
|
"200": "#fde68a",
|
|
63
63
|
"300": "#fcd34d",
|
|
64
|
+
"500": "#f59e0b",
|
|
65
|
+
"600": "#d97706",
|
|
64
66
|
"800": "#92400e"
|
|
65
67
|
},
|
|
66
68
|
"ink": "#08080a",
|
|
@@ -98,6 +100,8 @@
|
|
|
98
100
|
"status-ready-fg": "{primitive.ink}",
|
|
99
101
|
"status-blocked-bg": "{primitive.red.700}",
|
|
100
102
|
"status-blocked-fg": "{primitive.white}",
|
|
103
|
+
"status-warning-bg": "{primitive.amber.600}",
|
|
104
|
+
"status-warning-fg": "{primitive.ink}",
|
|
101
105
|
"bg-selected": "{primitive.violet.50}",
|
|
102
106
|
"border-control": "{primitive.zinc.500}",
|
|
103
107
|
"bg-skeleton": "{primitive.zinc.200}",
|
|
@@ -166,6 +170,8 @@
|
|
|
166
170
|
"status-ready-fg": "{primitive.lime.300}",
|
|
167
171
|
"status-blocked-bg": "{primitive.red.700}",
|
|
168
172
|
"status-blocked-fg": "{primitive.white}",
|
|
173
|
+
"status-warning-bg": "{primitive.amber.500}",
|
|
174
|
+
"status-warning-fg": "{primitive.ink}",
|
|
169
175
|
"bg-selected": "#2c283a",
|
|
170
176
|
"border-control": "{primitive.zinc.400}",
|
|
171
177
|
"bg-skeleton": "{primitive.zinc.700}",
|
|
@@ -464,6 +470,8 @@
|
|
|
464
470
|
"amber-50": "Primitive. Warning alert fill (light). ADDED.",
|
|
465
471
|
"amber-200": "Primitive. Warning alert edge (light). ADDED.",
|
|
466
472
|
"amber-300": "Primitive. Warning alert text (dark), 9.6:1. ADDED.",
|
|
473
|
+
"amber-500": "Primitive. Warning status pill fill (dark). ADDED 5.1.",
|
|
474
|
+
"amber-600": "Primitive. Warning status pill fill (light). ADDED 5.1.",
|
|
467
475
|
"amber-800": "Primitive. Warning alert text (light), 6.8:1 on amber-50. ADDED.",
|
|
468
476
|
"ink": "Primitive ink (= zinc-950). Text on lime fills: the Ready status label (15:1 on aura-lime-200).",
|
|
469
477
|
"white": "Primitive white. The Creative button fill in every theme.",
|
|
@@ -503,6 +511,8 @@
|
|
|
503
511
|
"status-ready-fg": "Label and icon on aura-status-ready-bg (light 15.2:1; dark lime-300, 9.9:1).",
|
|
504
512
|
"status-blocked-bg": "Status pill fill for stopped / failed states (Blocked, Failed). Dark on purpose: 5.5:1 lighter-to-darker against the lime Ready fill, so Ready and Blocked differ by lightness, not only red vs green. ADDED.",
|
|
505
513
|
"status-blocked-fg": "Label and icon on aura-status-blocked-bg (6.5:1).",
|
|
514
|
+
"status-warning-bg": "Status pill fill for states that need attention but still work (Warning, Problem, Degraded, At risk). A solid amber (amber-600 light, amber-500 dark) that differs from Ready and Blocked by lightness too, not only hue: 2.7:1 from lime-200 and 2.0:1 from red-700 in light; 6.0:1 from the dark Ready fill and 3.0:1 from red-700 in dark. Always with the word and the triangle-alert icon. ADDED 5.1.",
|
|
515
|
+
"status-warning-fg": "Label and icon on aura-status-warning-bg: ink, 6.3:1 light, 9.3:1 dark.",
|
|
506
516
|
"bg-selected": "Selected table rows and list items. Opaque so pinned columns can sit on it (dark = a 14% violet-400 wash over zinc-900, flattened). aura-fg-primary on it ≥14.2:1, aura-fg-secondary ≥5.5:1, focus ring ≥5.2:1 in both themes. ADDED.",
|
|
507
517
|
"border-control": "Outline of unchecked checkboxes and other small controls that must be seen: ≥4.4:1 on aura-bg-surface, -canvas and aura-bg-selected (the 3:1 a control boundary needs). ADDED.",
|
|
508
518
|
"bg-skeleton": "zinc-200 light / zinc-700 dark so bars read on white and on zinc-900 surfaces. Skeleton placeholder bars while a table or list loads. Decorative; the table carries aria-busy and a 'Loading rows' status for screen readers. ADDED.",
|