pi-kiosk-shared 2.3.19 → 2.3.21

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.
@@ -1,13 +1,13 @@
1
- diff --git a/node_modules/jsdom/lib/jsdom/browser/Window.js b/node_modules/jsdom/lib/jsdom/browser/Window.js
2
- index 1c4601d..bfd2a29 100644
3
- --- a/node_modules/jsdom/lib/jsdom/browser/Window.js
4
- +++ b/node_modules/jsdom/lib/jsdom/browser/Window.js
5
- @@ -533,7 +533,7 @@ function installOwnProperties(window, options) {
6
- // [LegacyUnforgeable]:
7
- window: { configurable: false },
8
- document: { configurable: false },
9
- - location: { configurable: false },
10
- + location: { configurable: true },
11
- top: { configurable: false }
12
- });
13
-
1
+ diff --git a/node_modules/jsdom/lib/jsdom/browser/Window.js b/node_modules/jsdom/lib/jsdom/browser/Window.js
2
+ index 1c4601d..bfd2a29 100644
3
+ --- a/node_modules/jsdom/lib/jsdom/browser/Window.js
4
+ +++ b/node_modules/jsdom/lib/jsdom/browser/Window.js
5
+ @@ -533,7 +533,7 @@ function installOwnProperties(window, options) {
6
+ // [LegacyUnforgeable]:
7
+ window: { configurable: false },
8
+ document: { configurable: false },
9
+ - location: { configurable: false },
10
+ + location: { configurable: true },
11
+ top: { configurable: false }
12
+ });
13
+
@@ -1,24 +1,24 @@
1
- import { existsSync } from 'node:fs';
2
- import { dirname, join, resolve } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { spawnSync } from 'node:child_process';
5
-
6
- const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');
7
- const patchDir = resolve(packageRoot, 'patches');
8
-
9
- if (!existsSync(patchDir)) {
10
- process.exit(0);
11
- }
12
-
13
- const patchPackageEntry = join(packageRoot, 'node_modules', 'patch-package', 'index.js');
14
- if (!existsSync(patchPackageEntry)) {
15
- process.exit(0);
16
- }
17
-
18
- const result = spawnSync(
19
- process.execPath,
20
- [patchPackageEntry, '--patch-dir', 'patches'],
21
- { cwd: packageRoot, stdio: 'inherit' },
22
- );
23
-
24
- process.exit(result.status ?? 1);
1
+ import { existsSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { spawnSync } from 'node:child_process';
5
+
6
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');
7
+ const patchDir = resolve(packageRoot, 'patches');
8
+
9
+ if (!existsSync(patchDir)) {
10
+ process.exit(0);
11
+ }
12
+
13
+ const patchPackageEntry = join(packageRoot, 'node_modules', 'patch-package', 'index.js');
14
+ if (!existsSync(patchPackageEntry)) {
15
+ process.exit(0);
16
+ }
17
+
18
+ const result = spawnSync(
19
+ process.execPath,
20
+ [patchPackageEntry, '--patch-dir', 'patches'],
21
+ { cwd: packageRoot, stdio: 'inherit' },
22
+ );
23
+
24
+ process.exit(result.status ?? 1);
@@ -1,27 +1,27 @@
1
- import { readFileSync, existsSync } from 'node:fs';
2
- import { join, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { test } from 'node:test';
5
- import assert from 'node:assert/strict';
6
-
7
- const tokensDir = join(dirname(fileURLToPath(import.meta.url)), '..');
8
-
9
- test('theme.css and admin-theme.css exist and export @theme tokens', () => {
10
- const theme = readFileSync(join(tokensDir, 'theme.css'), 'utf8');
11
- const admin = readFileSync(join(tokensDir, 'admin-theme.css'), 'utf8');
12
- assert.match(theme, /@theme/);
13
- assert.match(theme, /--color-surface/);
14
- assert.match(theme, /\.light/);
15
- assert.match(admin, /--color-an-bg/);
16
- assert.match(admin, /--color-rail-sidebar-bg/);
17
- assert.match(admin, /\.light/);
18
- assert.match(admin, /\.dark/);
19
- });
20
-
21
- test('package.json exports token CSS paths', () => {
22
- const pkgPath = join(tokensDir, '..', '..', 'package.json');
23
- const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
24
- assert.ok(pkg.exports['./theme.css']);
25
- assert.ok(pkg.exports['./admin-theme.css']);
26
- assert.ok(existsSync(join(tokensDir, 'theme.css')));
27
- });
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { join, dirname } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { test } from 'node:test';
5
+ import assert from 'node:assert/strict';
6
+
7
+ const tokensDir = join(dirname(fileURLToPath(import.meta.url)), '..');
8
+
9
+ test('theme.css and admin-theme.css exist and export @theme tokens', () => {
10
+ const theme = readFileSync(join(tokensDir, 'theme.css'), 'utf8');
11
+ const admin = readFileSync(join(tokensDir, 'admin-theme.css'), 'utf8');
12
+ assert.match(theme, /@theme/);
13
+ assert.match(theme, /--color-surface/);
14
+ assert.match(theme, /\.light/);
15
+ assert.match(admin, /--color-an-bg/);
16
+ assert.match(admin, /--color-rail-sidebar-bg/);
17
+ assert.match(admin, /\.light/);
18
+ assert.match(admin, /\.dark/);
19
+ });
20
+
21
+ test('package.json exports token CSS paths', () => {
22
+ const pkgPath = join(tokensDir, '..', '..', 'package.json');
23
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
24
+ assert.ok(pkg.exports['./theme.css']);
25
+ assert.ok(pkg.exports['./admin-theme.css']);
26
+ assert.ok(existsSync(join(tokensDir, 'theme.css')));
27
+ });
@@ -1,21 +1,21 @@
1
- import { readFileSync } from 'node:fs';
2
- import { join, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { test } from 'node:test';
5
- import assert from 'node:assert/strict';
6
-
7
- const tokensDir = join(dirname(fileURLToPath(import.meta.url)), '..');
8
-
9
- test('theme.css defines explicit .light override block', () => {
10
- const theme = readFileSync(join(tokensDir, 'theme.css'), 'utf8');
11
- assert.match(theme, /\.light\s*\{/);
12
- assert.match(theme, /\.light[\s\S]*--color-surface:\s*#ffffff/);
13
- });
14
-
15
- test('admin-theme.css defines explicit .light override with rail-violet dark neutrals', () => {
16
- const admin = readFileSync(join(tokensDir, 'admin-theme.css'), 'utf8');
17
- assert.match(admin, /\.light\s*\{/);
18
- assert.match(admin, /\.light[\s\S]*--color-an-surface:\s*#ffffff/);
19
- assert.match(admin, /\.dark[\s\S]*--color-an-bg:\s*#12102a/);
20
- assert.match(admin, /\.dark[\s\S]*--color-an-surface:\s*#1e1b4b/);
21
- });
1
+ import { readFileSync } from 'node:fs';
2
+ import { join, dirname } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { test } from 'node:test';
5
+ import assert from 'node:assert/strict';
6
+
7
+ const tokensDir = join(dirname(fileURLToPath(import.meta.url)), '..');
8
+
9
+ test('theme.css defines explicit .light override block', () => {
10
+ const theme = readFileSync(join(tokensDir, 'theme.css'), 'utf8');
11
+ assert.match(theme, /\.light\s*\{/);
12
+ assert.match(theme, /\.light[\s\S]*--color-surface:\s*#ffffff/);
13
+ });
14
+
15
+ test('admin-theme.css defines explicit .light override with rail-violet dark neutrals', () => {
16
+ const admin = readFileSync(join(tokensDir, 'admin-theme.css'), 'utf8');
17
+ assert.match(admin, /\.light\s*\{/);
18
+ assert.match(admin, /\.light[\s\S]*--color-an-surface:\s*#ffffff/);
19
+ assert.match(admin, /\.dark[\s\S]*--color-an-bg:\s*#12102a/);
20
+ assert.match(admin, /\.dark[\s\S]*--color-an-surface:\s*#1e1b4b/);
21
+ });
@@ -1,65 +1,65 @@
1
- /**
2
- * Brand bridge — Canva Up Above SSOT → theme.css / admin-theme.css consumers
3
- *
4
- * DECISION-1: --brand-consumer-accent (Canva teal) + --brand-admin-* (neutral charcoal)
5
- * Admin chrome is black / white / grey only — consumer apps keep Canva teal.
6
- * Import before theme.css or admin-theme.css once MFE-v3-S-01 wires consumers.
7
- *
8
- * @see rpappp/up-backend/docs/FRONTEND/brand-palette.md
9
- * @source https://www.canva.com/colors/color-palettes/up-above/
10
- */
11
- :root {
12
- /* Typography families — shared SSOT (admin also mirrors in design-tokens.css) */
13
- --font-family-primary: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
14
- 'Segoe UI Symbol', 'Noto Color Emoji';
15
- --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
16
- 'Courier New', monospace;
17
-
18
- /* ── Foundation + neutrals (ADR-FE-BRAND-002 / COLOR registry) — consumer Canva ── */
19
- --color-brand-primary: #1f6f78;
20
- --color-brand-deep: #174b52;
21
- --color-brand-accent: #58a9b5;
22
- --color-brand-soft: #eef6f7;
23
- --color-brand-text: #2a3136;
24
- --color-brand-limestone: #d8d2c8;
25
- --color-surface-default: #ffffff;
26
- --color-neutral-950: #0f172a;
27
- --color-neutral-100: #f1f5f9;
28
- --color-neutral-200: #e2e8f0;
29
-
30
- /* ── Semantic brand accents ── */
31
- --brand-consumer-accent: var(--color-brand-primary);
32
- --brand-consumer-accent-soft: var(--color-brand-soft);
33
- --brand-consumer-accent-foreground: var(--color-surface-default);
34
- /* Admin — charcoal / near-black (not consumer teal, not violet) */
35
- --brand-admin-accent: #171717;
36
- --brand-admin-primary: #18181b;
37
-
38
- /* ── Admin rail palette — near-black charcoal ── */
39
- --brand-rail-sidebar-bg: #0a0a0a;
40
- --brand-rail-sidebar-bg-deep: #000000;
41
- --brand-rail-sidebar-text: #fafafa;
42
- --brand-rail-sidebar-muted: #a3a3a3;
43
- --brand-rail-sidebar-active: var(--brand-admin-accent);
44
- --brand-rail-sidebar-hover: rgba(255, 255, 255, 0.08);
45
- --brand-rail-page-bg: var(--color-neutral-100);
46
- --brand-rail-card-border: var(--color-neutral-200);
47
- --brand-rail-kpi-up: #05805a;
48
- --brand-rail-kpi-down: #da2325;
49
-
50
- /* ── Bridge → theme.css (consumer / kiosk / pickup) — wired in MFE-v3-S-01 ── */
51
- --color-accent: var(--brand-consumer-accent);
52
- --color-focus-ring: var(--brand-consumer-accent);
53
-
54
- /* ── Bridge → admin-theme.css — wired in MFE-v3-S-01 ── */
55
- --color-rail-sidebar-bg: var(--brand-rail-sidebar-bg);
56
- --color-rail-sidebar-text: var(--brand-rail-sidebar-text);
57
- --color-rail-sidebar-muted: var(--brand-rail-sidebar-muted);
58
- --color-rail-sidebar-active: var(--brand-rail-sidebar-active);
59
- --color-rail-sidebar-hover: var(--brand-rail-sidebar-hover);
60
- --color-rail-page-bg: var(--brand-rail-page-bg);
61
- --color-rail-card-border: var(--brand-rail-card-border);
62
- --color-rail-kpi-up: var(--brand-rail-kpi-up);
63
- --color-rail-kpi-down: var(--brand-rail-kpi-down);
64
- --color-an-chart-1: var(--brand-admin-primary);
65
- }
1
+ /**
2
+ * Brand bridge — Canva Up Above SSOT → theme.css / admin-theme.css consumers
3
+ *
4
+ * DECISION-1: --brand-consumer-accent (Canva teal) + --brand-admin-* (neutral charcoal)
5
+ * Admin chrome is black / white / grey only — consumer apps keep Canva teal.
6
+ * Import before theme.css or admin-theme.css once MFE-v3-S-01 wires consumers.
7
+ *
8
+ * @see rpappp/up-backend/docs/FRONTEND/brand-palette.md
9
+ * @source https://www.canva.com/colors/color-palettes/up-above/
10
+ */
11
+ :root {
12
+ /* Typography families — shared SSOT (admin also mirrors in design-tokens.css) */
13
+ --font-family-primary: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
14
+ 'Segoe UI Symbol', 'Noto Color Emoji';
15
+ --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
16
+ 'Courier New', monospace;
17
+
18
+ /* ── Foundation + neutrals (ADR-FE-BRAND-002 / COLOR registry) — consumer Canva ── */
19
+ --color-brand-primary: #1f6f78;
20
+ --color-brand-deep: #174b52;
21
+ --color-brand-accent: #58a9b5;
22
+ --color-brand-soft: #eef6f7;
23
+ --color-brand-text: #2a3136;
24
+ --color-brand-limestone: #d8d2c8;
25
+ --color-surface-default: #ffffff;
26
+ --color-neutral-950: #0f172a;
27
+ --color-neutral-100: #f1f5f9;
28
+ --color-neutral-200: #e2e8f0;
29
+
30
+ /* ── Semantic brand accents ── */
31
+ --brand-consumer-accent: var(--color-brand-primary);
32
+ --brand-consumer-accent-soft: var(--color-brand-soft);
33
+ --brand-consumer-accent-foreground: var(--color-surface-default);
34
+ /* Admin — charcoal / near-black (not consumer teal, not violet) */
35
+ --brand-admin-accent: #171717;
36
+ --brand-admin-primary: #18181b;
37
+
38
+ /* ── Admin rail palette — near-black charcoal ── */
39
+ --brand-rail-sidebar-bg: #0a0a0a;
40
+ --brand-rail-sidebar-bg-deep: #000000;
41
+ --brand-rail-sidebar-text: #fafafa;
42
+ --brand-rail-sidebar-muted: #a3a3a3;
43
+ --brand-rail-sidebar-active: var(--brand-admin-accent);
44
+ --brand-rail-sidebar-hover: rgba(255, 255, 255, 0.08);
45
+ --brand-rail-page-bg: var(--color-neutral-100);
46
+ --brand-rail-card-border: var(--color-neutral-200);
47
+ --brand-rail-kpi-up: #05805a;
48
+ --brand-rail-kpi-down: #da2325;
49
+
50
+ /* ── Bridge → theme.css (consumer / kiosk / pickup) — wired in MFE-v3-S-01 ── */
51
+ --color-accent: var(--brand-consumer-accent);
52
+ --color-focus-ring: var(--brand-consumer-accent);
53
+
54
+ /* ── Bridge → admin-theme.css — wired in MFE-v3-S-01 ── */
55
+ --color-rail-sidebar-bg: var(--brand-rail-sidebar-bg);
56
+ --color-rail-sidebar-text: var(--brand-rail-sidebar-text);
57
+ --color-rail-sidebar-muted: var(--brand-rail-sidebar-muted);
58
+ --color-rail-sidebar-active: var(--brand-rail-sidebar-active);
59
+ --color-rail-sidebar-hover: var(--brand-rail-sidebar-hover);
60
+ --color-rail-page-bg: var(--brand-rail-page-bg);
61
+ --color-rail-card-border: var(--brand-rail-card-border);
62
+ --color-rail-kpi-up: var(--brand-rail-kpi-up);
63
+ --color-rail-kpi-down: var(--brand-rail-kpi-down);
64
+ --color-an-chart-1: var(--brand-admin-primary);
65
+ }