@unisim/sdk 0.119.0 → 0.120.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.
@@ -40,13 +40,29 @@ import type { CSSProperties, ReactNode } from 'react';
40
40
  * file at all — QR builds a code from what you type, BlackBook holds
41
41
  * contacts — so "your file" would simply be wrong there.
42
42
  *
43
- * 5. **Green, not the brand orange and not slate.** Inherited from the
44
- * PrivacyStrip that Universal Compress and Universal Converter already
45
- * shipped, whose reasoning holds: this is a reassurance, and an orange
46
- * strip reads as a warning at a glance. #2F9E57 is the suite's semantic
47
- * "good" (BRANDING.md). The shield does NOT become their padlock, though
48
- * a padlock is the browser's own mark for "this connection is encrypted",
49
- * a promise about the wire rather than about where the file went.
43
+ * 5. **Neutral grey, with the brand orange carrying the link.** James's call,
44
+ * 2026-08-28, and it overturns what this component shipped with.
45
+ *
46
+ * It was green, inherited from the PrivacyStrip that Compress and Converter
47
+ * already had, on the argument that "a reassurance rendered grey or orange
48
+ * reads as a warning at a glance". That argument is recorded here rather
49
+ * than deleted, because it is not silly but a whole green card also reads
50
+ * as a *status banner*, something the app is telling you went right, and
51
+ * this is neither a status nor an alert. It is the page's own standing
52
+ * promise. Grey lets it sit as part of the furniture and puts the only
53
+ * colour on the one thing that is meant to be clicked.
54
+ *
55
+ * ⚠️ **The two oranges here are different on purpose, and swapping them
56
+ * breaks contrast.** `BRAND.orangeText` (#c2410c, 5.18:1 on white) is used
57
+ * where the orange IS TEXT; the brand orange #fe8c01 measures 2.34:1 and
58
+ * `orangeDeep` 3.84:1, both under AA's 4.5:1 — the exact bug that got the
59
+ * navbar's "100%" flagged on every page of every app. The shield is a
60
+ * glyph, not text, so it answers the 3:1 non-text rule and takes
61
+ * `orangeDeep`. See `brand.ts`.
62
+ *
63
+ * The shield still does NOT become a padlock — a padlock is the browser's
64
+ * own mark for "this connection is encrypted", a promise about the wire
65
+ * rather than about where the file went.
50
66
  *
51
67
  * ⚠️ Inline styles, not Tailwind classes: this ships inside node_modules and
52
68
  * the apps' Tailwind builds do not scan it. Classes here would silently render
@@ -1 +1 @@
1
- {"version":3,"file":"PrivacyNote.d.ts","sourceRoot":"","sources":["../src/PrivacyNote.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAK,EACL,OAAqB,EACrB,MAAc,EACd,MAAa,EACb,QAAiF,EACjF,KAAe,EACf,SAAS,EACT,KAAK,GACN,EAAE,gBAAgB,2CA4GlB"}
1
+ {"version":3,"file":"PrivacyNote.d.ts","sourceRoot":"","sources":["../src/PrivacyNote.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAK,EACL,OAAqB,EACrB,MAAc,EACd,MAAa,EACb,QAAiF,EACjF,KAAe,EACf,SAAS,EACT,KAAK,GACN,EAAE,gBAAgB,2CAmHlB"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { BRAND, DARK_THEME, NEUTRAL } from './brand.js';
3
4
  export function PrivacyNote({ repo, proof, subject = 'Your file', plural = false, except = null, headline = 'Other companies upload your files to view them and scrape your data.', theme = 'light', className, style, }) {
4
5
  const dark = theme === 'dark';
5
6
  // `proof` when the app has written its plain-English page, `repo` when it
@@ -8,24 +9,31 @@ export function PrivacyNote({ repo, proof, subject = 'Your file', plural = false
8
9
  const hint = proof
9
10
  ? 'Exactly what this app does with your file, in plain English — and the source that proves it'
10
11
  : 'Every line of this app is public — read the source on GitHub';
12
+ // Tokens rather than hex, so the note cannot drift from the rest of the
13
+ // suite. The alphas below are the only derived colours: a token set carries
14
+ // no 50%-opacity underline.
11
15
  const c = dark
12
16
  ? {
13
- border: 'rgba(47, 158, 87, 0.35)',
14
- bg: 'rgba(47, 158, 87, 0.14)',
15
- shield: '#4ade80',
16
- head: '#dcfce7',
17
- body: '#bbf7d0',
18
- link: '#86efac',
19
- rule: 'rgba(134, 239, 172, 0.5)',
17
+ border: NEUTRAL.slate700,
18
+ bg: DARK_THEME.surface2,
19
+ // The dark accent, not `orangeDeep`: brand.ts lifts it precisely
20
+ // because #e05504 loses contrast against a dark ground.
21
+ shield: DARK_THEME.accent,
22
+ head: DARK_THEME.text,
23
+ body: DARK_THEME.textSoft,
24
+ link: DARK_THEME.accent,
25
+ rule: 'rgba(255, 154, 31, 0.5)',
20
26
  }
21
27
  : {
22
- border: 'rgba(47, 158, 87, 0.25)',
23
- bg: 'rgba(47, 158, 87, 0.10)',
24
- shield: '#2F9E57',
25
- head: '#14532d',
26
- body: '#166534',
27
- link: '#14532d',
28
- rule: 'rgba(47, 158, 87, 0.55)',
28
+ border: NEUTRAL.slate200,
29
+ bg: NEUTRAL.slate100,
30
+ // A glyph, so the 3:1 non-text rule applies and `orangeDeep` passes.
31
+ shield: BRAND.orangeDeep,
32
+ head: NEUTRAL.slate900,
33
+ body: NEUTRAL.slate600,
34
+ // ⚠️ TEXT. Must be `orangeText`, never `orange` / `orangeDeep`.
35
+ link: BRAND.orangeText,
36
+ rule: 'rgba(194, 65, 12, 0.5)',
29
37
  };
30
38
  return (_jsxs("div", { className: className, style: {
31
39
  display: 'flex',
@@ -1 +1 @@
1
- {"version":3,"file":"PrivacyNote.js","sourceRoot":"","sources":["../src/PrivacyNote.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivacyNote.js","sourceRoot":"","sources":["../src/PrivacyNote.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisim/sdk",
3
- "version": "0.119.0",
3
+ "version": "0.120.0",
4
4
  "description": "Shared React SDK for the Universal Suite — auth, entitlements, usage telemetry, changelog, org admin.",
5
5
  "license": "MIT",
6
6
  "author": "Universal Simulation Ltd",