@unisim/sdk 0.102.0 → 0.104.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 CHANGED
@@ -89,6 +89,25 @@ function Header() {
89
89
  ### Changelog
90
90
  - `useChangelog()` — fetches the suite-wide changelog feed (defaults to `https://changelog.unisim.co.uk/changelog.json`)
91
91
 
92
+ ### QR codes
93
+ - `<UnisimQr value={url} size={176} label="the mobile signing link" />` — the house-style
94
+ code: ink modules, orange finder eyes, the UNI·SIM mark in the centre, error correction
95
+ pinned at `H`. Click (or Enter) enlarges it full-screen on a dimmed backdrop — that's on
96
+ by default, since the reason a code is on screen is that someone wants to point a phone
97
+ at it. Pass `enlargeable={false}` for a plain image.
98
+ - `<QrLightbox value={url} onClose={…} />` — the enlarged view on its own, for a code drawn
99
+ by something else.
100
+ - `unisimQrPngDataUrl(value, size)` — the same code as a PNG data URL, for an `<img>` or a
101
+ stamp drawn into a generated PDF.
102
+
103
+ The colours are **measured, not chosen**: brand orange modules are 2.34:1 on white, below
104
+ the ~3:1 a decoder's binariser needs, and the light-on-dark version is an inverted code that
105
+ strict readers refuse. The orange goes on the finder eyes instead. Don't restyle without
106
+ re-running a decode check against zxing (`Universal_Beam/e2e/beam.e2e.ts` does).
107
+
108
+ `qr-code-styling` is a normal dependency but is imported dynamically, so it stays out of the
109
+ bundle — and out of any server render — of an app that never draws a code.
110
+
92
111
  ## Multi-tenant model
93
112
 
94
113
  This SDK is the client side of a Supabase-backed multi-tenant schema (see `universal-platform/supabase/migrations`). Every read/write is scoped to the user's active org via the `is_org_member()` helper in RLS policies. Anonymous-auth users get the same hooks; trial caps (3 people / 1 team / 2 places / 1 project) are enforced server-side by the `enforce_anonymous_trial_caps()` trigger.
@@ -267,7 +267,8 @@ const primaryButtonStyle = {
267
267
  gap: 6,
268
268
  fontSize: 13,
269
269
  fontWeight: 600,
270
- color: '#ffffff',
270
+ // Ink rather than white: white on this orange is 2.34:1. See BRAND.onOrange.
271
+ color: BRAND.onOrange,
271
272
  background: BRAND.orange,
272
273
  padding: '8px 14px',
273
274
  borderRadius: 8,
@@ -1 +1 @@
1
- {"version":3,"file":"AppSettingsShell.js","sourceRoot":"","sources":["../src/AppSettingsShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppSettingsShell.js","sourceRoot":"","sources":["../src/AppSettingsShell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrialUi.d.ts","sourceRoot":"","sources":["../src/TrialUi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAcrD,wBAAgB,UAAU,CAAC,EAAE,KAAa,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsB/D;AAWD,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAuB,EACvB,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,2CA+DlB"}
1
+ {"version":3,"file":"TrialUi.d.ts","sourceRoot":"","sources":["../src/TrialUi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAerD,wBAAgB,UAAU,CAAC,EAAE,KAAa,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsB/D;AAWD,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAuB,EACvB,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,2CAiElB"}
package/dist/TrialUi.js CHANGED
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { BRAND } from './brand.js';
3
4
  const UPGRADE_URL = 'https://unisim.co.uk/login';
4
5
  // ──────────────────────────────────────────────────────────────────────────────
5
6
  // <TrialBadge /> — small chip you append to a button label that's gated by
@@ -56,8 +57,10 @@ export function UpgradeWall({ feature, signUpUrl = UPGRADE_URL, detail, style, c
56
57
  marginTop: 18,
57
58
  padding: '10px 18px',
58
59
  borderRadius: 10,
59
- background: '#e05504',
60
- color: 'white',
60
+ background: BRAND.orangeDeep,
61
+ // Ink rather than white: white on #e05504 is 3.84:1, under AA's 4.5:1.
62
+ // See BRAND.onOrange.
63
+ color: BRAND.onOrange,
61
64
  fontSize: 14,
62
65
  fontWeight: 600,
63
66
  textDecoration: 'none',
@@ -1 +1 @@
1
- {"version":3,"file":"TrialUi.js","sourceRoot":"","sources":["../src/TrialUi.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,MAAM,WAAW,GAAG,4BAA4B,CAAA;AAEhD,iFAAiF;AACjF,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,uCAAuC;AACvC,oDAAoD;AACpD,6CAA6C;AAC7C,cAAc;AACd,iFAAiF;AAEjF,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,EAAsB;IAC9D,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,mBAAmB;YAC3B,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;SACd,YAEA,KAAK,GACD,CACR,CAAA;AACH,CAAC;AAsBD,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,GAAG,WAAW,EACvB,MAAM,EACN,KAAK,EACL,SAAS,GACQ;IACjB,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,gBAAgB;YACzB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,mBAAmB;YAC3B,UAAU,EACR,kDAAkD;YACpD,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,SAAS;YAChB,GAAG,KAAK;SACT,aAED,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,QAAQ;oBACvB,aAAa,EAAE,WAAW;oBAC1B,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,GAAG;oBACjB,MAAM,EAAE,mBAAmB;iBAC5B,4BAGG,EACN,cAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,iCAC/C,OAAO,IACrB,EACL,YAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,qKAGpE,EACH,MAAM,IAAI,CACT,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAG,MAAM,GAAO,CAC9E,EACD,YACE,IAAI,EAAE,SAAS,EACf,KAAK,EAAE;oBACL,OAAO,EAAE,cAAc;oBACvB,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,SAAS;oBACrB,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,cAAc,EAAE,MAAM;iBACvB,gDAGC,IACA,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"TrialUi.js","sourceRoot":"","sources":["../src/TrialUi.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,WAAW,GAAG,4BAA4B,CAAA;AAEhD,iFAAiF;AACjF,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,uCAAuC;AACvC,oDAAoD;AACpD,6CAA6C;AAC7C,cAAc;AACd,iFAAiF;AAEjF,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,EAAsB;IAC9D,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,mBAAmB;YAC3B,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;SACd,YAEA,KAAK,GACD,CACR,CAAA;AACH,CAAC;AAsBD,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,GAAG,WAAW,EACvB,MAAM,EACN,KAAK,EACL,SAAS,GACQ;IACjB,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,gBAAgB;YACzB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,mBAAmB;YAC3B,UAAU,EACR,kDAAkD;YACpD,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,SAAS;YAChB,GAAG,KAAK;SACT,aAED,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,QAAQ;oBACvB,aAAa,EAAE,WAAW;oBAC1B,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,GAAG;oBACjB,MAAM,EAAE,mBAAmB;iBAC5B,4BAGG,EACN,cAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,iCAC/C,OAAO,IACrB,EACL,YAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,qKAGpE,EACH,MAAM,IAAI,CACT,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAG,MAAM,GAAO,CAC9E,EACD,YACE,IAAI,EAAE,SAAS,EACf,KAAK,EAAE;oBACL,OAAO,EAAE,cAAc;oBACvB,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,uEAAuE;oBACvE,sBAAsB;oBACtB,KAAK,EAAE,KAAK,CAAC,QAAQ;oBACrB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,cAAc,EAAE,MAAM;iBACvB,gDAGC,IACA,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,118 @@
1
+ import { type CSSProperties } from 'react';
2
+ import type { Options as QrOptions } from 'qr-code-styling';
3
+ /** Warm off-black modules — 17.5:1 on white. Warm rather than the suite's
4
+ * blue-leaning slate, so the neutral shares a hue family with the orange
5
+ * instead of pulling against it. */
6
+ export declare const QR_FG = "#1c1917";
7
+ export declare const QR_BG = "#ffffff";
8
+ /** Orange 600 (`BRAND.orangeDeep`), not Orange 500 — the deeper of the
9
+ * canonical pair is the one that clears 3:1. */
10
+ export declare const QR_EYE = "#e05504";
11
+ /**
12
+ * Bytes a code can carry at error-correction level H (version 40, byte mode).
13
+ *
14
+ * Level H is not a preference: a centre mark covers modules, and only H's ~30%
15
+ * correction budget absorbs that. The price is capacity — H holds 1273 bytes
16
+ * where M holds 2331 — which is why the number lives next to the style.
17
+ */
18
+ export declare const QR_MAX_BYTES = 1273;
19
+ /** True when `data` fits a level-H code at all. UTF-8 bytes, not characters —
20
+ * a name in Greek or with emoji costs more than its length suggests. */
21
+ export declare function fitsQr(data: string): boolean;
22
+ /**
23
+ * The canvas resolution a code is rasterised at, which is NOT its display size.
24
+ *
25
+ * The failure this prevents is invisible from the source: a code displayed at
26
+ * 280 CSS px on a 3× phone occupies 912 device pixels, and a canvas smaller
27
+ * than that gets UPSCALED by the browser. Bilinear upscaling smears every
28
+ * module edge, and a smeared module is exactly what a binariser cannot call.
29
+ *
30
+ * Measured in PalsPayIn, not guessed — rendered through this pipeline in
31
+ * headless Chromium at deviceScaleFactor 1/2/3, screenshotted (so the browser's
32
+ * own scaling is under test rather than a resample of our invention) and
33
+ * decoded with jsQR, at payloads of 143/300/600/800/1000 characters:
34
+ *
35
+ * 640 px canvas — everything above 300 characters failed at every DPR
36
+ * 1024 px canvas — 800 and 1000 characters failed at 3×
37
+ * 1280 px canvas — every payload decodes at 2× and 3×
38
+ *
39
+ * SVG output was tried as the obvious way to dodge raster scaling entirely and
40
+ * is measurably WORSE: vector modules anti-alias their edges to grey at these
41
+ * display sizes, and 600 characters up failed at every DPR.
42
+ *
43
+ * Hence: a floor of 1280 for a long payload, 640 for a short one, and above
44
+ * that whatever the display actually needs — the lightbox shows the code at
45
+ * ~700 CSS px, where 1280 would itself be an upscale. Capped at 2048 because a
46
+ * canvas is 4 bytes a pixel and a list of codes should not cost 100 MB.
47
+ */
48
+ export declare function unisimQrRenderPx(data: string, displaySize: number): number;
49
+ /**
50
+ * qr-code-styling options for a code in the house style.
51
+ *
52
+ * The mark is passed in rather than imported, so this function stays free of
53
+ * the ~48 KB data URI — the render path loads it on demand.
54
+ */
55
+ export declare function unisimQrOptions(data: string, mark: string, renderPx: number): QrOptions;
56
+ /**
57
+ * The house-style code as a PNG data URL — for the places a live canvas cannot
58
+ * go: an `<img>` in a server-rendered tree, or a stamp drawn into a generated
59
+ * PDF.
60
+ *
61
+ * `size` is the logical edge; the raster resolution is chosen by
62
+ * `unisimQrRenderPx` from the payload, so a long link does not come back soft.
63
+ */
64
+ export declare function unisimQrPngDataUrl(value: string, size?: number): Promise<string>;
65
+ export interface UnisimQrProps {
66
+ /** The payload — usually a URL, but any text works. */
67
+ value: string;
68
+ /** Displayed edge in CSS px. Square. Default 200. */
69
+ size?: number;
70
+ /**
71
+ * What the code is FOR, in words — "the mobile signing link", "this split".
72
+ * Used to build the accessible name and the lightbox's caption, so write it
73
+ * to read after "QR code for ".
74
+ */
75
+ label?: string;
76
+ /**
77
+ * Click (or Enter/Space) opens the full-screen lightbox. On by default: the
78
+ * reason a code is on screen is that someone wants to point a phone at it,
79
+ * and a 176 px badge across a desk is not that.
80
+ *
81
+ * Turning it off makes the code a plain image with no interaction.
82
+ */
83
+ enlargeable?: boolean;
84
+ className?: string;
85
+ style?: CSSProperties;
86
+ /** Passed through to the outer element for tests. */
87
+ 'data-testid'?: string;
88
+ }
89
+ /**
90
+ * The UNI·SIM QR code: ink modules, orange finder eyes, the UNI·SIM mark in the
91
+ * centre, error correction pinned at H — and, by default, click-to-enlarge.
92
+ *
93
+ * ```tsx
94
+ * <UnisimQr value={signUrl} size={176} label="the mobile signing link" />
95
+ * ```
96
+ */
97
+ export declare function UnisimQr({ value, size, label, enlargeable, className, style, 'data-testid': testId, }: UnisimQrProps): import("react/jsx-runtime").JSX.Element;
98
+ export interface QrLightboxProps {
99
+ /** The payload to draw big. */
100
+ value: string;
101
+ /** Same phrasing as `UnisimQr`'s — it follows "QR code for ". */
102
+ label?: string;
103
+ /** Called on Escape, the ✕, and a click on the dimmed backdrop. */
104
+ onClose: () => void;
105
+ }
106
+ /**
107
+ * The code as large as the screen allows, on a dimmed backdrop.
108
+ *
109
+ * Everything here answers "another person is holding a phone up to this
110
+ * screen": the backdrop dims so the code is the brightest thing on it, clicks
111
+ * ON the code do NOT dismiss (a phone pressed against the glass would otherwise
112
+ * close what it came to scan), and the two hints below fix most failed scans.
113
+ *
114
+ * Usable on its own for a code drawn by something other than `UnisimQr`, but
115
+ * normally you get it for free from `enlargeable`.
116
+ */
117
+ export declare function QrLightbox({ value, label, onClose }: QrLightboxProps): import("react").ReactPortal | null;
118
+ //# sourceMappingURL=UnisimQr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnisimQr.d.ts","sourceRoot":"","sources":["../src/UnisimQr.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAmC3D;;qCAEqC;AACrC,eAAO,MAAM,KAAK,YAAY,CAAA;AAC9B,eAAO,MAAM,KAAK,YAAY,CAAA;AAC9B;iDACiD;AACjD,eAAO,MAAM,MAAM,YAAY,CAAA;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC;yEACyE;AACzE,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAyBvF;AAeD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUnF;AA2CD,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAU,EACV,KAAK,EACL,WAAkB,EAClB,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,GACtB,EAAE,aAAa,2CAiFf;AAED,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,eAAe,sCAqGpE"}
@@ -0,0 +1,367 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useId, useRef, useState, } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import { NAV_OVERLAY_Z_INDEX } from './DropdownSurface.js';
6
+ // ──────────────────────────────────────────────────────────────────────────────
7
+ // <UnisimQr /> — the house-style QR code, and the lightbox that enlarges it.
8
+ //
9
+ // WHY THIS IS IN THE SDK
10
+ // ----------------------
11
+ // Seven apps had grown their own copy of "a UNI·SIM QR code" (Universal QR,
12
+ // Universal PDF twice over, Ergo, Signatures, PalsPayIn, Beam, Exports) and
13
+ // four had their own click-to-enlarge modal. They had drifted apart in the way
14
+ // duplicated code always does — three different ways of loading the centre
15
+ // mark, two incompatible colour schemes, and only some of them carrying the
16
+ // measurements that make a code actually scan. This is the one that all of them
17
+ // now call.
18
+ //
19
+ // It deliberately does NOT try to replace the QR *studios* in Universal QR and
20
+ // Universal PDF: those let a user choose shapes, plates, decoration and their
21
+ // own logo, and that design model is theirs. This is the code you show when you
22
+ // want the house code and no choices.
23
+ //
24
+ // THE STYLE IS MEASURED, NOT PICKED
25
+ // ---------------------------------
26
+ // Ink modules on white, with the brand orange spent on the three finder eyes.
27
+ // The obvious brand-first arrangement — orange modules — was shipped first in
28
+ // Universal QR and found by decoding its own output NOT to read: brand orange
29
+ // sits at 2.34:1 on white, under the ~3:1 floor a decoder's binariser needs,
30
+ // and the light-on-dark version of it is an inverted code that strict readers
31
+ // (zxing among them) refuse outright. So the orange arrives somewhere it is
32
+ // seen but is never asked to be legible at 1px, and the modules stay ink.
33
+ //
34
+ // Don't restyle any of this without re-running a decode check against a strict
35
+ // reader. Universal_Beam/e2e/beam.e2e.ts does exactly that with zxing.
36
+ // ──────────────────────────────────────────────────────────────────────────────
37
+ /** Warm off-black modules — 17.5:1 on white. Warm rather than the suite's
38
+ * blue-leaning slate, so the neutral shares a hue family with the orange
39
+ * instead of pulling against it. */
40
+ export const QR_FG = '#1c1917';
41
+ export const QR_BG = '#ffffff';
42
+ /** Orange 600 (`BRAND.orangeDeep`), not Orange 500 — the deeper of the
43
+ * canonical pair is the one that clears 3:1. */
44
+ export const QR_EYE = '#e05504';
45
+ /**
46
+ * Bytes a code can carry at error-correction level H (version 40, byte mode).
47
+ *
48
+ * Level H is not a preference: a centre mark covers modules, and only H's ~30%
49
+ * correction budget absorbs that. The price is capacity — H holds 1273 bytes
50
+ * where M holds 2331 — which is why the number lives next to the style.
51
+ */
52
+ export const QR_MAX_BYTES = 1273;
53
+ /** True when `data` fits a level-H code at all. UTF-8 bytes, not characters —
54
+ * a name in Greek or with emoji costs more than its length suggests. */
55
+ export function fitsQr(data) {
56
+ return new TextEncoder().encode(data).length <= QR_MAX_BYTES;
57
+ }
58
+ /**
59
+ * The canvas resolution a code is rasterised at, which is NOT its display size.
60
+ *
61
+ * The failure this prevents is invisible from the source: a code displayed at
62
+ * 280 CSS px on a 3× phone occupies 912 device pixels, and a canvas smaller
63
+ * than that gets UPSCALED by the browser. Bilinear upscaling smears every
64
+ * module edge, and a smeared module is exactly what a binariser cannot call.
65
+ *
66
+ * Measured in PalsPayIn, not guessed — rendered through this pipeline in
67
+ * headless Chromium at deviceScaleFactor 1/2/3, screenshotted (so the browser's
68
+ * own scaling is under test rather than a resample of our invention) and
69
+ * decoded with jsQR, at payloads of 143/300/600/800/1000 characters:
70
+ *
71
+ * 640 px canvas — everything above 300 characters failed at every DPR
72
+ * 1024 px canvas — 800 and 1000 characters failed at 3×
73
+ * 1280 px canvas — every payload decodes at 2× and 3×
74
+ *
75
+ * SVG output was tried as the obvious way to dodge raster scaling entirely and
76
+ * is measurably WORSE: vector modules anti-alias their edges to grey at these
77
+ * display sizes, and 600 characters up failed at every DPR.
78
+ *
79
+ * Hence: a floor of 1280 for a long payload, 640 for a short one, and above
80
+ * that whatever the display actually needs — the lightbox shows the code at
81
+ * ~700 CSS px, where 1280 would itself be an upscale. Capped at 2048 because a
82
+ * canvas is 4 bytes a pixel and a list of codes should not cost 100 MB.
83
+ */
84
+ export function unisimQrRenderPx(data, displaySize) {
85
+ const dpr = typeof window === 'undefined' ? 2 : Math.min(Math.max(window.devicePixelRatio || 1, 1), 3);
86
+ const floor = data.length > 300 ? 1280 : 640;
87
+ return Math.min(2048, Math.max(floor, Math.ceil(displaySize * dpr)));
88
+ }
89
+ /**
90
+ * qr-code-styling options for a code in the house style.
91
+ *
92
+ * The mark is passed in rather than imported, so this function stays free of
93
+ * the ~48 KB data URI — the render path loads it on demand.
94
+ */
95
+ export function unisimQrOptions(data, mark, renderPx) {
96
+ return {
97
+ type: 'canvas',
98
+ width: renderPx,
99
+ height: renderPx,
100
+ // A quiet zone is part of the spec, not decoration — a code butted against
101
+ // the edge of its card is a code some readers will not find.
102
+ margin: Math.round(renderPx * 0.025),
103
+ data,
104
+ image: mark,
105
+ qrOptions: { errorCorrectionLevel: 'H' },
106
+ imageOptions: {
107
+ // Clear the modules behind the mark rather than letting it sit on top of
108
+ // them: a half-covered module is ambiguous, a missing one is just
109
+ // erasure, and erasure is what level H is budgeted for.
110
+ hideBackgroundDots: true,
111
+ imageSize: 0.28,
112
+ margin: Math.round(renderPx * 0.012),
113
+ crossOrigin: 'anonymous',
114
+ },
115
+ dotsOptions: { type: 'rounded', color: QR_FG },
116
+ cornersSquareOptions: { type: 'extra-rounded', color: QR_EYE },
117
+ cornersDotOptions: { type: 'dot', color: QR_EYE },
118
+ backgroundOptions: { color: QR_BG },
119
+ };
120
+ }
121
+ // qr-code-styling is browser-only (it touches `document` at construction) and
122
+ // heavy, so it is imported at call time, never at module scope: the SDK's entry
123
+ // point is imported by Next server components, and a static import here would
124
+ // break them. The dynamic import also lets a bundler split it into its own
125
+ // chunk, so apps that never draw a code pay nothing for it.
126
+ async function buildQr(data, renderPx) {
127
+ const [{ default: QRCodeStyling }, { UNISIM_MARK }] = await Promise.all([
128
+ import('qr-code-styling'),
129
+ import('./unisimMark.js'),
130
+ ]);
131
+ return new QRCodeStyling(unisimQrOptions(data, UNISIM_MARK, renderPx));
132
+ }
133
+ /**
134
+ * The house-style code as a PNG data URL — for the places a live canvas cannot
135
+ * go: an `<img>` in a server-rendered tree, or a stamp drawn into a generated
136
+ * PDF.
137
+ *
138
+ * `size` is the logical edge; the raster resolution is chosen by
139
+ * `unisimQrRenderPx` from the payload, so a long link does not come back soft.
140
+ */
141
+ export async function unisimQrPngDataUrl(value, size = 240) {
142
+ const qr = await buildQr(value, unisimQrRenderPx(value, size));
143
+ const raw = await qr.getRawData('png');
144
+ if (!(raw instanceof Blob))
145
+ throw new Error('QR render produced no image');
146
+ return await new Promise((resolve, reject) => {
147
+ const reader = new FileReader();
148
+ reader.onload = () => resolve(reader.result);
149
+ reader.onerror = () => reject(reader.error);
150
+ reader.readAsDataURL(raw);
151
+ });
152
+ }
153
+ /** Draw `value` into `host`, sized to `displaySize` CSS px. Returns a cleanup
154
+ * that empties the host — a re-render must not stack canvases. */
155
+ function useQrCanvas(host, value, displaySize, onError) {
156
+ useEffect(() => {
157
+ const el = host.current;
158
+ if (!el || !value)
159
+ return;
160
+ let cancelled = false;
161
+ buildQr(value, unisimQrRenderPx(value, displaySize))
162
+ .then((qr) => {
163
+ if (cancelled || !host.current)
164
+ return;
165
+ host.current.innerHTML = '';
166
+ qr.append(host.current);
167
+ const canvas = host.current.querySelector('canvas');
168
+ if (canvas) {
169
+ // The extra raster resolution buys sharpness, not a bigger element:
170
+ // pin the canvas back to the size it is meant to occupy.
171
+ canvas.style.width = '100%';
172
+ canvas.style.height = '100%';
173
+ canvas.style.display = 'block';
174
+ }
175
+ onError(false);
176
+ })
177
+ .catch(() => {
178
+ // Most likely `qr-code-styling` failed to load. Say so rather than
179
+ // leaving a silent blank square that reads as a broken page.
180
+ if (!cancelled)
181
+ onError(true);
182
+ });
183
+ return () => {
184
+ cancelled = true;
185
+ if (el)
186
+ el.innerHTML = '';
187
+ };
188
+ }, [host, value, displaySize, onError]);
189
+ }
190
+ /**
191
+ * The UNI·SIM QR code: ink modules, orange finder eyes, the UNI·SIM mark in the
192
+ * centre, error correction pinned at H — and, by default, click-to-enlarge.
193
+ *
194
+ * ```tsx
195
+ * <UnisimQr value={signUrl} size={176} label="the mobile signing link" />
196
+ * ```
197
+ */
198
+ export function UnisimQr({ value, size = 200, label, enlargeable = true, className, style, 'data-testid': testId, }) {
199
+ const host = useRef(null);
200
+ const [open, setOpen] = useState(false);
201
+ const [failed, setFailed] = useState(false);
202
+ const onError = useCallback((f) => setFailed(f), []);
203
+ useQrCanvas(host, value, size, onError);
204
+ const name = label ? `QR code for ${label}` : 'QR code';
205
+ const frame = {
206
+ width: size,
207
+ height: size,
208
+ display: 'block',
209
+ lineHeight: 0,
210
+ background: QR_BG,
211
+ ...style,
212
+ };
213
+ if (failed) {
214
+ return (_jsx("div", { className: className, "data-testid": testId, style: {
215
+ ...frame,
216
+ display: 'flex',
217
+ alignItems: 'center',
218
+ justifyContent: 'center',
219
+ padding: 12,
220
+ boxSizing: 'border-box',
221
+ border: '1px dashed #cbd5e1',
222
+ borderRadius: 12,
223
+ font: "500 12px/1.4 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
224
+ color: '#64748b',
225
+ textAlign: 'center',
226
+ }, children: "This code couldn't be drawn. The link still works." }));
227
+ }
228
+ // The code itself is decorative once it has an accessible name on the
229
+ // wrapper, and a canvas cannot hold one anyway.
230
+ const canvas = _jsx("div", { ref: host, "aria-hidden": "true", style: { width: '100%', height: '100%' } });
231
+ if (!enlargeable) {
232
+ return (_jsx("div", { className: className, "data-testid": testId, role: "img", "aria-label": name, style: frame, children: canvas }));
233
+ }
234
+ return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: className, "data-testid": testId, onClick: () => setOpen(true), "aria-label": `${name} — enlarge for scanning`, title: "Tap to enlarge", style: {
235
+ ...frame,
236
+ padding: 0,
237
+ border: 0,
238
+ borderRadius: 8,
239
+ cursor: 'zoom-in',
240
+ appearance: 'none',
241
+ }, children: canvas }), open && _jsx(QrLightbox, { value: value, label: label, onClose: () => setOpen(false) })] }));
242
+ }
243
+ /**
244
+ * The code as large as the screen allows, on a dimmed backdrop.
245
+ *
246
+ * Everything here answers "another person is holding a phone up to this
247
+ * screen": the backdrop dims so the code is the brightest thing on it, clicks
248
+ * ON the code do NOT dismiss (a phone pressed against the glass would otherwise
249
+ * close what it came to scan), and the two hints below fix most failed scans.
250
+ *
251
+ * Usable on its own for a code drawn by something other than `UnisimQr`, but
252
+ * normally you get it for free from `enlargeable`.
253
+ */
254
+ export function QrLightbox({ value, label, onClose }) {
255
+ const host = useRef(null);
256
+ const closeRef = useRef(null);
257
+ const [failed, setFailed] = useState(false);
258
+ const onError = useCallback((f) => setFailed(f), []);
259
+ const titleId = useId();
260
+ // Sized from the viewport for the same reason the render resolution is: the
261
+ // card below is max(88vw, 70vh), and asking for fewer pixels than that would
262
+ // hand the browser an upscale to do.
263
+ const [displaySize, setDisplaySize] = useState(900);
264
+ useEffect(() => {
265
+ if (typeof window === 'undefined')
266
+ return;
267
+ const measure = () => setDisplaySize(Math.round(Math.min(window.innerWidth * 0.88, window.innerHeight * 0.7)));
268
+ measure();
269
+ window.addEventListener('resize', measure);
270
+ return () => window.removeEventListener('resize', measure);
271
+ }, []);
272
+ useQrCanvas(host, value, displaySize, onError);
273
+ useEffect(() => {
274
+ function onKey(e) {
275
+ if (e.key === 'Escape')
276
+ onClose();
277
+ }
278
+ document.addEventListener('keydown', onKey);
279
+ return () => document.removeEventListener('keydown', onKey);
280
+ }, [onClose]);
281
+ // Move focus in, and put it back where it came from on the way out —
282
+ // otherwise a keyboard user who closes the lightbox lands at the top of the
283
+ // document rather than on the code they just opened.
284
+ useEffect(() => {
285
+ const returnTo = document.activeElement;
286
+ closeRef.current?.focus();
287
+ const { overflow } = document.body.style;
288
+ document.body.style.overflow = 'hidden';
289
+ return () => {
290
+ document.body.style.overflow = overflow;
291
+ returnTo?.focus?.();
292
+ };
293
+ }, []);
294
+ if (typeof document === 'undefined')
295
+ return null;
296
+ const name = label ? `QR code for ${label}` : 'QR code';
297
+ return createPortal(_jsxs("div", { style: overlayStyle, onClick: onClose, role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, children: [_jsx("button", { ref: closeRef, type: "button", onClick: onClose, "aria-label": "Close", style: closeButtonStyle, children: "\u00D7" }), _jsx("span", { style: { ...hintRailStyle, left: 12 }, "aria-hidden": "true", children: "Click to dismiss" }), _jsx("span", { style: { ...hintRailStyle, right: 12 }, "aria-hidden": "true", children: "Click to dismiss" }), _jsx("div", { style: cardStyle, onClick: (e) => e.stopPropagation(), children: failed ? (_jsx("p", { style: { margin: 0, padding: 24, color: '#64748b', textAlign: 'center' }, children: "This code couldn't be drawn. The link still works." })) : (_jsx("div", { ref: host, role: "img", "aria-label": name, style: { width: '100%', aspectRatio: '1 / 1', lineHeight: 0 } })) }), _jsxs("div", { style: { maxWidth: 420, textAlign: 'center' }, children: [_jsx("p", { id: titleId, style: captionStyle, children: "Point another phone's camera at this code" }), _jsx("p", { style: hintStyle, children: "Struggling? Turn your screen brightness up to max, and make sure the camera isn't in close-up (macro) mode \u2014 pull back a little so the whole code is in frame." })] })] }), document.body);
298
+ }
299
+ const FONT = "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif";
300
+ const overlayStyle = {
301
+ position: 'fixed',
302
+ inset: 0,
303
+ display: 'flex',
304
+ flexDirection: 'column',
305
+ alignItems: 'center',
306
+ justifyContent: 'center',
307
+ gap: 20,
308
+ padding: 16,
309
+ // Dimmer than the sign-in dialog's scrim on purpose — the code has to be the
310
+ // brightest thing on the screen for a camera to find it quickly.
311
+ background: 'rgba(15, 23, 42, 0.8)',
312
+ backdropFilter: 'blur(4px)',
313
+ // Above the nav dropdown layer, and above the sign-in dialog: a code can be
314
+ // enlarged from inside one.
315
+ zIndex: NAV_OVERLAY_Z_INDEX + 200,
316
+ fontFamily: FONT,
317
+ };
318
+ const cardStyle = {
319
+ position: 'relative',
320
+ width: '100%',
321
+ maxWidth: 'min(88vw, 70vh)',
322
+ background: QR_BG,
323
+ borderRadius: 16,
324
+ padding: 16,
325
+ boxSizing: 'border-box',
326
+ boxShadow: '0 24px 48px -12px rgba(15,23,42,0.45)',
327
+ };
328
+ const closeButtonStyle = {
329
+ position: 'absolute',
330
+ top: 16,
331
+ right: 16,
332
+ width: 40,
333
+ height: 40,
334
+ display: 'flex',
335
+ alignItems: 'center',
336
+ justifyContent: 'center',
337
+ borderRadius: 999,
338
+ border: 0,
339
+ background: 'rgba(255,255,255,0.15)',
340
+ color: '#ffffff',
341
+ fontSize: 22,
342
+ lineHeight: 1,
343
+ cursor: 'pointer',
344
+ };
345
+ const hintRailStyle = {
346
+ position: 'absolute',
347
+ top: '50%',
348
+ transform: 'translateY(-50%)',
349
+ pointerEvents: 'none',
350
+ fontSize: 12,
351
+ fontWeight: 500,
352
+ letterSpacing: '0.02em',
353
+ color: 'rgba(255,255,255,0.6)',
354
+ };
355
+ const captionStyle = {
356
+ margin: 0,
357
+ fontSize: 14,
358
+ fontWeight: 600,
359
+ color: '#ffffff',
360
+ };
361
+ const hintStyle = {
362
+ margin: '4px 0 0',
363
+ fontSize: 12,
364
+ lineHeight: 1.5,
365
+ color: 'rgba(255,255,255,0.7)',
366
+ };
367
+ //# sourceMappingURL=UnisimQr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnisimQr.js","sourceRoot":"","sources":["../src/UnisimQr.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateNotice.d.ts","sourceRoot":"","sources":["../src/UpdateNotice.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAwF,EACxF,WAAsB,EACtB,MAAkB,EAClB,SAAS,EACT,KAAK,GACN,EAAE,iBAAiB,kDA4CnB"}
1
+ {"version":3,"file":"UpdateNotice.d.ts","sourceRoot":"","sources":["../src/UpdateNotice.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIrD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAwF,EACxF,WAAsB,EACtB,MAAkB,EAClB,SAAS,EACT,KAAK,GACN,EAAE,iBAAiB,kDA+CnB"}