@connextar/house 0.18.0 → 0.19.1

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.
Files changed (91) hide show
  1. package/README.md +673 -8
  2. package/dist/admin/access.d.ts +134 -0
  3. package/dist/admin/access.d.ts.map +1 -0
  4. package/dist/admin/access.js +157 -0
  5. package/dist/admin/access.js.map +1 -0
  6. package/dist/admin/audit.d.ts +130 -0
  7. package/dist/admin/audit.d.ts.map +1 -0
  8. package/dist/admin/audit.js +132 -0
  9. package/dist/admin/audit.js.map +1 -0
  10. package/dist/admin/bootstrap.d.ts +80 -0
  11. package/dist/admin/bootstrap.d.ts.map +1 -0
  12. package/dist/admin/bootstrap.js +106 -0
  13. package/dist/admin/bootstrap.js.map +1 -0
  14. package/dist/admin/client-index.d.ts +7 -0
  15. package/dist/admin/client-index.d.ts.map +1 -0
  16. package/dist/admin/client-index.js +6 -0
  17. package/dist/admin/client-index.js.map +1 -0
  18. package/dist/admin/client.d.ts +72 -0
  19. package/dist/admin/client.d.ts.map +1 -0
  20. package/dist/admin/client.js +90 -0
  21. package/dist/admin/client.js.map +1 -0
  22. package/dist/admin/index.d.ts +13 -0
  23. package/dist/admin/index.d.ts.map +1 -0
  24. package/dist/admin/index.js +13 -0
  25. package/dist/admin/index.js.map +1 -0
  26. package/dist/admin/proof.d.ts +34 -0
  27. package/dist/admin/proof.d.ts.map +1 -0
  28. package/dist/admin/proof.js +30 -0
  29. package/dist/admin/proof.js.map +1 -0
  30. package/dist/admin/second-factor-index.d.ts +8 -0
  31. package/dist/admin/second-factor-index.d.ts.map +1 -0
  32. package/dist/admin/second-factor-index.js +8 -0
  33. package/dist/admin/second-factor-index.js.map +1 -0
  34. package/dist/admin/second-factor.d.ts +156 -0
  35. package/dist/admin/second-factor.d.ts.map +1 -0
  36. package/dist/admin/second-factor.js +271 -0
  37. package/dist/admin/second-factor.js.map +1 -0
  38. package/dist/admin/testing-index.d.ts +6 -0
  39. package/dist/admin/testing-index.d.ts.map +1 -0
  40. package/dist/admin/testing-index.js +6 -0
  41. package/dist/admin/testing-index.js.map +1 -0
  42. package/dist/admin/testing.d.ts +84 -0
  43. package/dist/admin/testing.d.ts.map +1 -0
  44. package/dist/admin/testing.js +223 -0
  45. package/dist/admin/testing.js.map +1 -0
  46. package/dist/admin/view-as.d.ts +209 -0
  47. package/dist/admin/view-as.d.ts.map +1 -0
  48. package/dist/admin/view-as.js +251 -0
  49. package/dist/admin/view-as.js.map +1 -0
  50. package/dist/guides/guide-figure-zoom.d.ts +33 -8
  51. package/dist/guides/guide-figure-zoom.d.ts.map +1 -1
  52. package/dist/guides/guide-figure-zoom.js +34 -9
  53. package/dist/guides/guide-figure-zoom.js.map +1 -1
  54. package/dist/guides/library.d.ts +22 -10
  55. package/dist/guides/library.d.ts.map +1 -1
  56. package/dist/guides/library.js +3 -0
  57. package/dist/guides/library.js.map +1 -1
  58. package/dist/markdown/guide.d.ts +12 -5
  59. package/dist/markdown/guide.d.ts.map +1 -1
  60. package/dist/markdown/guide.js +9 -5
  61. package/dist/markdown/guide.js.map +1 -1
  62. package/dist/release/changelog.d.ts +19 -0
  63. package/dist/release/changelog.d.ts.map +1 -1
  64. package/dist/release/changelog.js +37 -6
  65. package/dist/release/changelog.js.map +1 -1
  66. package/dist/release/index.d.ts +1 -1
  67. package/dist/release/index.d.ts.map +1 -1
  68. package/dist/release/index.js +1 -1
  69. package/dist/release/index.js.map +1 -1
  70. package/dist/whats-new/body.d.ts +81 -0
  71. package/dist/whats-new/body.d.ts.map +1 -0
  72. package/dist/whats-new/body.js +29 -0
  73. package/dist/whats-new/body.js.map +1 -0
  74. package/dist/whats-new/index.d.ts +24 -0
  75. package/dist/whats-new/index.d.ts.map +1 -0
  76. package/dist/whats-new/index.js +24 -0
  77. package/dist/whats-new/index.js.map +1 -0
  78. package/dist/whats-new/seen.d.ts +23 -0
  79. package/dist/whats-new/seen.d.ts.map +1 -0
  80. package/dist/whats-new/seen.js +33 -0
  81. package/dist/whats-new/seen.js.map +1 -0
  82. package/dist/whats-new/select.d.ts +89 -0
  83. package/dist/whats-new/select.d.ts.map +1 -0
  84. package/dist/whats-new/select.js +117 -0
  85. package/dist/whats-new/select.js.map +1 -0
  86. package/dist/whats-new/use-whats-new.d.ts +36 -0
  87. package/dist/whats-new/use-whats-new.d.ts.map +1 -0
  88. package/dist/whats-new/use-whats-new.js +81 -0
  89. package/dist/whats-new/use-whats-new.js.map +1 -0
  90. package/docs/ReleaseProcess.md +12 -0
  91. package/package.json +21 -1
@@ -0,0 +1,251 @@
1
+ import { createHmac, timingSafeEqual } from "node:crypto";
2
+ import { AdminRefusalError, adminRefusal } from "./access.js";
3
+ import { emitSafely, viewAsStarted, viewAsStopped, } from "./audit.js";
4
+ const DEFAULT_MINUTES = 60;
5
+ const MAX_COOKIE = 1024;
6
+ const b64 = (value) => Buffer.from(value).toString("base64url");
7
+ export function viewAs(options) {
8
+ const { cookieName, secret, access } = options;
9
+ const minutes = options.minutes ?? DEFAULT_MINUTES;
10
+ const now = options.now ?? Date.now;
11
+ const logger = options.logger ?? console;
12
+ const standing = options.standing ?? "admin";
13
+ if (!cookieName || !/^[\w.-]+$/.test(cookieName)) {
14
+ throw new Error(`[admin] viewAs cookieName must be a plain cookie name, got "${cookieName}".`);
15
+ }
16
+ if (typeof secret !== "string" || secret.length < 32) {
17
+ throw new Error("[admin] viewAs needs a secret of at least 32 characters to sign its cookie.");
18
+ }
19
+ if (!Number.isFinite(minutes) || minutes <= 0 || minutes > 24 * 60) {
20
+ throw new Error(`[admin] viewAs minutes must be between 0 and a day, got ${String(minutes)}.`);
21
+ }
22
+ const sign = (payload) => createHmac("sha256", secret).update(`view-as:${cookieName}:${payload}`).digest();
23
+ function encode(view) {
24
+ const payload = b64(JSON.stringify({ v: 1, t: view.targetId, a: view.adminId, e: view.expiresAt.getTime() }));
25
+ return `${payload}.${b64(sign(payload))}`;
26
+ }
27
+ /** The signed view in the cookie, whoever it belongs to and whether or not it has lapsed. */
28
+ function decode(raw) {
29
+ if (!raw || raw.length > MAX_COOKIE)
30
+ return null;
31
+ const [payload, signature, extra] = raw.split(".");
32
+ if (!payload || !signature || extra !== undefined)
33
+ return null;
34
+ const given = Buffer.from(signature, "base64url");
35
+ const expected = sign(payload);
36
+ if (given.length !== expected.length || !timingSafeEqual(given, expected))
37
+ return null;
38
+ try {
39
+ const data = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
40
+ if (data.v !== 1 || typeof data.t !== "string" || typeof data.a !== "string" || typeof data.e !== "number") {
41
+ return null;
42
+ }
43
+ if (!data.t || !data.a || !Number.isFinite(data.e))
44
+ return null;
45
+ return { targetId: data.t, adminId: data.a, expiresAt: new Date(data.e) };
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ /** The view in the cookie if it is this administrator's and has not lapsed — the binding, before any lookup. */
52
+ async function bound(adminId) {
53
+ const jar = await options.cookies();
54
+ const view = decode(jar.get(cookieName)?.value);
55
+ if (!view || view.adminId !== adminId || view.targetId === adminId)
56
+ return null;
57
+ if (view.expiresAt.getTime() <= now())
58
+ return null;
59
+ return view;
60
+ }
61
+ async function nameOf(id, given) {
62
+ if (given)
63
+ return given;
64
+ try {
65
+ return (await options.names?.(id)) || id;
66
+ }
67
+ catch {
68
+ return id;
69
+ }
70
+ }
71
+ return {
72
+ cookieName,
73
+ minutes,
74
+ async start(admin, target, meta = {}) {
75
+ const targetRef = typeof target === "string" ? { id: target } : target;
76
+ if (!targetRef.id || targetRef.id === admin.id) {
77
+ return { ok: false, reason: "self", status: 400, message: options.words?.self ?? "You are already yourself." };
78
+ }
79
+ const decision = await access.check(admin, { viewingAs: false });
80
+ if (!decision.ok)
81
+ return decision;
82
+ if (await access.isAdmin(targetRef.id)) {
83
+ return {
84
+ ok: false,
85
+ reason: "target-is-admin",
86
+ status: 400,
87
+ message: options.words?.targetIsAdmin ?? "Viewing as another administrator is not allowed — their view is this one.",
88
+ };
89
+ }
90
+ const view = {
91
+ targetId: targetRef.id,
92
+ adminId: admin.id,
93
+ expiresAt: new Date(now() + minutes * 60_000),
94
+ };
95
+ const jar = await options.cookies();
96
+ jar.set(cookieName, encode(view), {
97
+ httpOnly: true,
98
+ sameSite: "lax",
99
+ secure: options.secure ?? process.env.NODE_ENV === "production",
100
+ path: options.path ?? "/",
101
+ maxAge: minutes * 60,
102
+ });
103
+ await emitSafely(options.audit, viewAsStarted({
104
+ actor: { id: admin.id, name: await nameOf(admin.id, admin.name), standing },
105
+ target: { id: view.targetId, name: await nameOf(view.targetId, "name" in targetRef ? targetRef.name : null) },
106
+ expiresAt: view.expiresAt,
107
+ ...(options.scope ? { scope: options.scope } : {}),
108
+ ...meta,
109
+ }), logger);
110
+ return { ok: true, view, minutes };
111
+ },
112
+ async stop(realAdmin, meta = {}) {
113
+ const view = realAdmin ? await bound(realAdmin.id) : null;
114
+ const jar = await options.cookies();
115
+ jar.delete(cookieName);
116
+ if (view && realAdmin) {
117
+ await emitSafely(options.audit, viewAsStopped({
118
+ actor: { id: realAdmin.id, name: await nameOf(realAdmin.id, realAdmin.name), standing },
119
+ target: { id: view.targetId, name: await nameOf(view.targetId) },
120
+ ...(options.scope ? { scope: options.scope } : {}),
121
+ ...meta,
122
+ }), logger);
123
+ }
124
+ return { stopped: view };
125
+ },
126
+ async read(realAdmin) {
127
+ if (!realAdmin?.id || !realAdmin.sessionId)
128
+ return null;
129
+ const view = await bound(realAdmin.id);
130
+ if (!view)
131
+ return null;
132
+ // Checked on every request rather than when the cookie was set: a demotion, a revoked session or a sign-in
133
+ // without the second factor has to end the view immediately.
134
+ if (!(await access.check(realAdmin, { viewingAs: false })).ok)
135
+ return null;
136
+ if (await access.isAdmin(view.targetId))
137
+ return null;
138
+ return view;
139
+ },
140
+ };
141
+ }
142
+ /** The sentence a refusal under "view as" says. */
143
+ export function viewingAsMessage(name, what) {
144
+ return `You’re viewing as ${name || "somebody else"}. Stop viewing as them before ${what}.`;
145
+ }
146
+ /**
147
+ * Refuse, under "view as", a request that acts for the viewed account where the write guard cannot see it: a Stripe
148
+ * call, an email, a rate-limit bucket. Call it first in the route, before anything is spent.
149
+ */
150
+ export function refuseWhileViewingAs(user, what, options = {}) {
151
+ if (!user || (!user.impersonatedBy && !user.viewingAs))
152
+ return;
153
+ const name = typeof user.viewingAs === "object" && user.viewingAs?.name ? user.viewingAs.name : user.name;
154
+ const message = viewingAsMessage(name, what);
155
+ if (options.makeError)
156
+ throw options.makeError(message);
157
+ throw new AdminRefusalError(adminRefusal("viewing-as", { "viewing-as": { message } }));
158
+ }
159
+ /**
160
+ * The fail-closed default for what reaches outside the database: call `assertNotViewingAs` once inside the app's own
161
+ * `sendEmail`, `sendSms`, Stripe, GoCardless, Xero and AI wrappers, and every route that uses them is covered —
162
+ * including the next one written. Quickie had to add `refuseWhileViewingAs` to thirty handlers by hand.
163
+ *
164
+ * It reads the app's request-scoped actor rather than keeping a store of its own. An `AsyncLocalStorage` set where the
165
+ * view is resolved — inside `getCurrentUser`, an awaited callee — does not reach the route's later calls: a store
166
+ * entered in a callee after its first await (the session read) never propagates back to the caller's continuation
167
+ * (`view-as.test.ts` pins it), and wrapping
168
+ * every handler in `withViewingAs(…, fn)` is the per-route step this exists to remove. Quickie's and AltEd's actor
169
+ * is keyed on the request itself (Next's `headers()` object), which every call in the request shares.
170
+ */
171
+ export function viewingAsGate(options) {
172
+ async function lookup() {
173
+ return options.getViewing();
174
+ }
175
+ return {
176
+ async isViewingAs() {
177
+ return !!(await lookup());
178
+ },
179
+ async assertNotViewingAs(what) {
180
+ let viewing;
181
+ try {
182
+ viewing = await lookup();
183
+ }
184
+ catch (error) {
185
+ const message = `Could not tell whether this request is a “view as”, so ${what} was refused.`;
186
+ if (options.makeError)
187
+ throw options.makeError(message);
188
+ throw new AdminRefusalError(adminRefusal("viewing-as", { "viewing-as": { message } }), { cause: error });
189
+ }
190
+ if (!viewing)
191
+ return;
192
+ const message = viewingAsMessage(typeof viewing === "object" ? viewing.name : null, what);
193
+ if (options.makeError)
194
+ throw options.makeError(message);
195
+ throw new AdminRefusalError(adminRefusal("viewing-as", { "viewing-as": { message } }));
196
+ },
197
+ };
198
+ }
199
+ /** Every Prisma write operation. A read is never refused — that is the whole point of a view. */
200
+ export const PRISMA_WRITE_OPERATIONS = new Set([
201
+ "create",
202
+ "createMany",
203
+ "createManyAndReturn",
204
+ "update",
205
+ "updateMany",
206
+ "updateManyAndReturn",
207
+ "upsert",
208
+ "delete",
209
+ "deleteMany",
210
+ ]);
211
+ /** `allow` from a map of model → operations: `allowWhileViewing({ Session: ["update", "updateMany"] })`. */
212
+ export function allowWhileViewing(list) {
213
+ const sets = new Map(Object.entries(list).map(([model, operations]) => [model, new Set(operations)]));
214
+ return (model, operation) => !!model && !!sets.get(model)?.has(operation);
215
+ }
216
+ /**
217
+ * Make "view as" read-only at the client: `prisma.$extends(viewAsWriteGuard({ … }))`. Every write that arrives while
218
+ * the request is viewing as somebody is refused, whichever handler made it, unless it is on the allow-list.
219
+ *
220
+ * The rule is inverted from "block what is audited", which AltEd learnt by running it: deleting an account ran
221
+ * `session.deleteMany` and `passkey.deleteMany` before it touched the user row, so the deletion was refused —
222
+ * correctly — after signing the family out of every device. So everything is refused except what is allowed.
223
+ *
224
+ * Typed structurally, so this package imports no Prisma. If an app's Prisma types object to it, wrap it:
225
+ * `Prisma.defineExtension(viewAsWriteGuard({ … }))`.
226
+ */
227
+ export function viewAsWriteGuard(options) {
228
+ const isWrite = options.isWrite ?? ((operation) => PRISMA_WRITE_OPERATIONS.has(operation));
229
+ return {
230
+ name: options.name ?? "view-as-write-guard",
231
+ query: {
232
+ $allModels: {
233
+ async $allOperations({ model, operation, args, query }) {
234
+ if (isWrite(operation) && !options.allow(model, operation)) {
235
+ // Fail-closed: a `getViewing` that throws fails the write, rather than letting it through unchecked.
236
+ const viewing = await options.getViewing();
237
+ if (viewing) {
238
+ const name = typeof viewing === "object" ? viewing.name : null;
239
+ const message = viewingAsMessage(name, "changing anything");
240
+ if (options.makeError)
241
+ throw options.makeError(message);
242
+ throw new AdminRefusalError(adminRefusal("viewing-as", { "viewing-as": { message } }));
243
+ }
244
+ }
245
+ return query(args);
246
+ },
247
+ },
248
+ },
249
+ };
250
+ }
251
+ //# sourceMappingURL=view-as.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-as.js","sourceRoot":"","sources":["../../src/admin/view-as.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAuC,MAAM,aAAa,CAAC;AACnG,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,GAKd,MAAM,YAAY,CAAC;AA8GpB,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,GAAG,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEjF,MAAM,UAAU,MAAM,CAAC,OAAsB;IAC3C,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAE7C,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,+DAA+D,UAAU,IAAI,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAEnH,SAAS,MAAM,CAAC,IAAe;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9G,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,6FAA6F;IAC7F,SAAS,MAAM,CAAC,GAAuB;QACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACvF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;YACvG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC3G,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,gHAAgH;IAChH,KAAK,UAAU,KAAK,CAAC,OAAe;QAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAChF,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,EAAU,EAAE,KAAqB;QACrD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO;QAEP,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE;YAClC,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,2BAA2B,EAAE,CAAC;YACjH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,QAAQ,CAAC;YAClC,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,iBAAiB;oBACzB,MAAM,EAAE,GAAG;oBACX,OAAO,EACL,OAAO,CAAC,KAAK,EAAE,aAAa,IAAI,2EAA2E;iBAC9G,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAc;gBACtB,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACtB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;aAC9C,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;gBAChC,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;gBACzB,MAAM,EAAE,OAAO,GAAG,EAAE;aACrB,CAAC,CAAC;YACH,MAAM,UAAU,CACd,OAAO,CAAC,KAAK,EACb,aAAa,CAAC;gBACZ,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE;gBAC3E,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC7G,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,GAAG,IAAI;aACR,CAAC,EACF,MAAM,CACP,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE;YAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvB,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;gBACtB,MAAM,UAAU,CACd,OAAO,CAAC,KAAK,EACb,aAAa,CAAC;oBACZ,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE;oBACvF,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAChE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,GAAG,IAAI;iBACR,CAAC,EACF,MAAM,CACP,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,SAAS;YAClB,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,2GAA2G;YAC3G,6DAA6D;YAC7D,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YAC3E,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAcD,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,IAA+B,EAAE,IAAY;IAC5E,OAAO,qBAAqB,IAAI,IAAI,eAAe,iCAAiC,IAAI,GAAG,CAAC;AAC9F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAqC,EACrC,IAAY,EACZ,UAAuC,EAAE;IAEzC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO;IAC/D,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1G,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,SAAS;QAAE,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AAsBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,KAAK,UAAU,MAAM;QACnB,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO;QACL,KAAK,CAAC,WAAW;YACf,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,IAAI;YAC3B,IAAI,OAA2C,CAAC;YAChD,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,0DAA0D,IAAI,eAAe,CAAC;gBAC9F,IAAI,OAAO,CAAC,SAAS;oBAAE,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1F,IAAI,OAAO,CAAC,SAAS;gBAAE,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,QAAQ;IACR,YAAY;CACb,CAAC,CAAC;AAEH,4GAA4G;AAC5G,MAAM,UAAU,iBAAiB,CAC/B,IAAuC;IAEvC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AAC5E,CAAC;AAyBD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACnG,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,qBAAqB;QAC3C,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAyB;oBAC3E,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;wBAC3D,qGAAqG;wBACrG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC3C,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;4BAC5D,IAAI,OAAO,CAAC,SAAS;gCAAE,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BACxD,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;wBACzF,CAAC;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,11 +1,21 @@
1
1
  import { type ReactNode } from "react";
2
2
  import { type GuidesLabels } from "./library.js";
3
- /** Every element the zoom draws. Each value replaces the default for that element. */
3
+ /**
4
+ * Every element the zoom draws. Each value replaces the default for that element. A part added after
5
+ * 0.18.0 is optional, so an app that writes out a whole `GuideZoomClassNames` keeps typechecking.
6
+ */
4
7
  export interface GuideZoomClassNames {
5
8
  /** The button around the picture in the article. */
6
9
  trigger: string;
7
- /** "Click to enlarge", over the picture's corner. */
10
+ /**
11
+ * The row under the picture with "Click to enlarge" (or "Tap to enlarge"): under it rather than over
12
+ * its corner, so it never covers part of a small diagram on a phone.
13
+ */
8
14
  hint: string;
15
+ /** The words shown where the pointer is a mouse or a trackpad. Optional: a later addition. */
16
+ hintPointer?: string;
17
+ /** The words shown on a touch screen (`@media (pointer: coarse)`). Optional: a later addition. */
18
+ hintTouch?: string;
9
19
  overlay: string;
10
20
  /** The dialog: the whole screen on a phone, inset on wider ones. */
11
21
  content: string;
@@ -20,8 +30,20 @@ export interface GuideZoomClassNames {
20
30
  footer: string;
21
31
  caption: string;
22
32
  alt: string;
33
+ /**
34
+ * Added to `alt` while the description is folded away: hidden on a phone, shown on wider screens. Still
35
+ * the dialog's description for a screen reader either way. Optional: a later addition.
36
+ */
37
+ altFolded?: string;
38
+ /**
39
+ * Added to `caption` while folded when there is no caption and the alt text stands in as the title:
40
+ * two lines on a phone. Optional: a later addition.
41
+ */
42
+ titleFolded?: string;
43
+ /** The "Show description" button, on a phone only. Optional: a later addition. */
44
+ more?: string;
23
45
  }
24
- export declare const GUIDE_ZOOM_CLASS_NAMES: GuideZoomClassNames;
46
+ export declare const GUIDE_ZOOM_CLASS_NAMES: Required<GuideZoomClassNames>;
25
47
  export interface GuideFigureZoomProps {
26
48
  /** The picture as the article draws it: the button's content. */
27
49
  children: ReactNode;
@@ -49,11 +71,14 @@ export declare const ZOOM_STEP = 1.25;
49
71
  export declare function fitScale(natural: Size, stage: Size, capAtFull: boolean): number;
50
72
  /**
51
73
  * A guide's picture, opened full-size: a button around the article's picture (with a "Click to
52
- * enlarge" hint) that opens a dialog fitting it to the screen. In there it zooms with the
53
- * buttons, `+` and `−`, ⌘/Ctrl + scroll (a trackpad pinch) and a touch pinch; drags to pan
54
- * when it is bigger than the screen (and scrolls, and moves with the arrow keys); a double-click
55
- * or double-tap switches between fit and full size, and `0` fits again. Escape closes it and
56
- * focus goes back to the picture. The caption and alt text are shown under it.
74
+ * enlarge" hint under it, "Tap to enlarge" on a touch screen) that opens a dialog fitting it to
75
+ * the screen. In there it zooms with the buttons, `+` and `−`, ⌘/Ctrl + scroll (a trackpad
76
+ * pinch) and a touch pinch; drags to pan when it is bigger than the screen (and scrolls, and
77
+ * moves with the arrow keys); a double-click or double-tap switches between fit and full size,
78
+ * and `0` fits again. Escape closes it and focus goes back to the picture. The caption and alt
79
+ * text are shown under it; on a phone the alt text (or a long one standing in as the title) waits
80
+ * behind "Show description", so the picture keeps the screen, and is still read out as the
81
+ * dialog's description.
57
82
  *
58
83
  * Zooming eases unless the reader prefers reduced motion; dragging and pinching never do.
59
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"guide-figure-zoom.d.ts","sourceRoot":"","sources":["../../src/guides/guide-figure-zoom.tsx"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,sBAAsB,EAAE,mBAiBpC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;IACpB,iGAAiG;IACjG,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC3C;AAED,UAAU,IAAI;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAMD,uEAAuE;AACvE,eAAO,MAAM,SAAS,OAAO,CAAC;AAS9B,4GAA4G;AAC5G,wBAAgB,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAM/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE,oBAAoB,+BAuVtB"}
1
+ {"version":3,"file":"guide-figure-zoom.d.ts","sourceRoot":"","sources":["../../src/guides/guide-figure-zoom.tsx"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,mBAAmB,CAyBhE,CAAC;AAQF,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;IACpB,iGAAiG;IACjG,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC3C;AAED,UAAU,IAAI;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAMD,uEAAuE;AACvE,eAAO,MAAM,SAAS,OAAO,CAAC;AAS9B,4GAA4G;AAC5G,wBAAgB,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAM/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE,oBAAoB,+BAkXtB"}
@@ -7,7 +7,11 @@ import { cx } from "../internal/cx.js";
7
7
  import { GUIDES_LABELS } from "./library.js";
8
8
  export const GUIDE_ZOOM_CLASS_NAMES = {
9
9
  trigger: "group relative block w-full cursor-zoom-in rounded-xl text-left focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:outline-none",
10
- hint: "pointer-events-none absolute right-2 bottom-2 inline-flex items-center gap-1 rounded-full border border-border bg-background/90 px-2 py-0.5 text-xs font-medium text-muted-foreground shadow-sm transition-colors group-hover:text-foreground group-focus-visible:text-foreground motion-reduce:transition-none",
10
+ // In the flow under the picture, not over it: at 375px a pill in the corner covered a box of a small diagram.
11
+ hint: "mt-1.5 flex items-center justify-end gap-1 text-xs leading-4 font-medium text-muted-foreground transition-colors group-hover:text-foreground group-focus-visible:text-foreground motion-reduce:transition-none",
12
+ // Both are drawn and CSS shows one, so the server's HTML is right for the reader's screen with no script.
13
+ hintPointer: "pointer-coarse:hidden",
14
+ hintTouch: "hidden pointer-coarse:inline",
11
15
  overlay: "fixed inset-0 z-50 bg-black/70 backdrop-blur-sm",
12
16
  content: "fixed inset-0 z-50 flex flex-col overflow-hidden bg-background text-foreground shadow-2xl outline-none sm:inset-4 sm:rounded-xl sm:border sm:border-border",
13
17
  toolbar: "flex shrink-0 items-center gap-1 border-b border-border px-2 py-1.5 sm:px-3",
@@ -15,10 +19,19 @@ export const GUIDE_ZOOM_CLASS_NAMES = {
15
19
  button: "inline-flex size-10 items-center justify-center rounded-lg text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-40",
16
20
  level: "h-10 min-w-16 rounded-lg px-2 text-sm font-medium text-foreground tabular-nums hover:bg-accent focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:outline-none",
17
21
  stage: "relative min-h-0 flex-1 touch-none overflow-hidden bg-muted/40 select-none",
18
- footer: "max-h-[30%] shrink-0 overflow-y-auto border-t border-border px-4 py-3 text-sm",
22
+ // Folded, the footer on a phone is a line or two; opened, it may take more of the screen than on a wider one.
23
+ footer: "max-h-[45%] shrink-0 overflow-y-auto border-t border-border px-4 py-3 text-sm sm:max-h-[30%]",
19
24
  caption: "font-medium text-foreground",
20
25
  alt: "mt-1 text-muted-foreground",
26
+ altFolded: "hidden sm:block",
27
+ titleFolded: "line-clamp-2 sm:line-clamp-none",
28
+ more: "mt-1 -ml-1 inline-flex min-h-10 items-center rounded px-1 text-sm font-medium text-primary hover:underline focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:outline-none sm:hidden",
21
29
  };
30
+ /**
31
+ * Alt text longer than this, standing in as the title, is folded to two lines on a phone. A short one is
32
+ * shown whole, with no button.
33
+ */
34
+ const FOLDED_TITLE_CHARS = 90;
22
35
  /** Each button press or key multiplies or divides the zoom by this. */
23
36
  export const ZOOM_STEP = 1.25;
24
37
  /** The margin kept around a fitted picture, in CSS pixels, each side. */
@@ -38,16 +51,21 @@ export function fitScale(natural, stage, capAtFull) {
38
51
  }
39
52
  /**
40
53
  * A guide's picture, opened full-size: a button around the article's picture (with a "Click to
41
- * enlarge" hint) that opens a dialog fitting it to the screen. In there it zooms with the
42
- * buttons, `+` and `−`, ⌘/Ctrl + scroll (a trackpad pinch) and a touch pinch; drags to pan
43
- * when it is bigger than the screen (and scrolls, and moves with the arrow keys); a double-click
44
- * or double-tap switches between fit and full size, and `0` fits again. Escape closes it and
45
- * focus goes back to the picture. The caption and alt text are shown under it.
54
+ * enlarge" hint under it, "Tap to enlarge" on a touch screen) that opens a dialog fitting it to
55
+ * the screen. In there it zooms with the buttons, `+` and `−`, ⌘/Ctrl + scroll (a trackpad
56
+ * pinch) and a touch pinch; drags to pan when it is bigger than the screen (and scrolls, and
57
+ * moves with the arrow keys); a double-click or double-tap switches between fit and full size,
58
+ * and `0` fits again. Escape closes it and focus goes back to the picture. The caption and alt
59
+ * text are shown under it; on a phone the alt text (or a long one standing in as the title) waits
60
+ * behind "Show description", so the picture keeps the screen, and is still read out as the
61
+ * dialog's description.
46
62
  *
47
63
  * Zooming eases unless the reader prefers reduced motion; dragging and pinching never do.
48
64
  */
49
65
  export function GuideFigureZoom({ children, full, width, height, alt, caption, labels, classNames, }) {
50
66
  const text = { ...GUIDES_LABELS, ...labels };
67
+ // An app that changed `zoomHint` (another language, say) and not `zoomHintTouch` keeps its own word on a phone.
68
+ const hintTouch = labels?.zoomHintTouch ?? labels?.zoomHint ?? GUIDES_LABELS.zoomHintTouch;
51
69
  const c = { ...GUIDE_ZOOM_CLASS_NAMES, ...classNames };
52
70
  const known = width !== undefined && height !== undefined && width > 0 && height > 0;
53
71
  const [open, setOpen] = useState(false);
@@ -58,6 +76,8 @@ export function GuideFigureZoom({ children, full, width, height, alt, caption, l
58
76
  const [zoom, setZoom] = useState(null);
59
77
  const [offset, setOffset] = useState({ x: 0, y: 0 });
60
78
  const [gesture, setGesture] = useState(null);
79
+ /** Whether a phone shows the description. It starts folded each time the picture opens. */
80
+ const [described, setDescribed] = useState(false);
61
81
  const thumb = useRef(null);
62
82
  const fit = fitScale(natural, stage, known);
63
83
  const min = fit;
@@ -253,13 +273,18 @@ export function GuideFigureZoom({ children, full, width, height, alt, caption, l
253
273
  setGesture(null);
254
274
  pointers.current.clear();
255
275
  start.current = null;
276
+ setDescribed(false);
256
277
  }
257
278
  setOpen(next);
258
279
  };
259
280
  const zoomed = !near(scale, fit);
260
281
  const percent = Math.round(scale * 100);
261
282
  const title = caption || alt;
262
- return (_jsxs(DialogPrimitive.Root, { open: open, onOpenChange: change, children: [_jsx(DialogPrimitive.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: c.trigger, "aria-label": text.zoomOpen.replace("{alt}", alt), children: [_jsx("span", { ref: thumb, className: "block", children: children }), _jsxs("span", { className: c.hint, "aria-hidden": true, children: [_jsx(Maximize2, { className: "size-3" }), text.zoomHint] })] }) }), _jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Overlay, { className: c.overlay }), _jsxs(DialogPrimitive.Content, { className: c.content, onKeyDown: onKeyDown, ...(caption ? {} : { "aria-describedby": undefined }), onOpenAutoFocus: (event) => {
283
+ // The alt text says everything the picture shows, so it is long. Under the picture on a phone it took a third
284
+ // of the screen from the picture itself; there it waits behind "Show description" (wider screens show it).
285
+ const foldsTitle = !caption && alt.length > FOLDED_TITLE_CHARS;
286
+ const folds = Boolean(caption) || foldsTitle;
287
+ return (_jsxs(DialogPrimitive.Root, { open: open, onOpenChange: change, children: [_jsx(DialogPrimitive.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: c.trigger, "aria-label": text.zoomOpen.replace("{alt}", alt), children: [_jsx("span", { ref: thumb, className: "block", children: children }), _jsxs("span", { className: c.hint, "aria-hidden": true, children: [_jsx(Maximize2, { className: "size-3 shrink-0" }), _jsx("span", { className: c.hintPointer, children: text.zoomHint }), _jsx("span", { className: c.hintTouch, children: hintTouch })] })] }) }), _jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Overlay, { className: c.overlay }), _jsxs(DialogPrimitive.Content, { className: c.content, onKeyDown: onKeyDown, ...(caption ? {} : { "aria-describedby": undefined }), onOpenAutoFocus: (event) => {
263
288
  // The close button, not the first zoom button: Enter on open shouldn't zoom.
264
289
  event.preventDefault();
265
290
  event.currentTarget?.querySelector("[data-house-zoom-close]")?.focus();
@@ -267,6 +292,6 @@ export function GuideFigureZoom({ children, full, width, height, alt, caption, l
267
292
  width: natural.w,
268
293
  height: natural.h,
269
294
  transform: `translate(-50%, -50%) translate(${offset.x}px, ${offset.y}px) scale(${scale})`,
270
- }, children: full ?? children }) }), _jsxs("div", { className: c.footer, children: [_jsx(DialogPrimitive.Title, { className: c.caption, children: title }), caption ? _jsx(DialogPrimitive.Description, { className: c.alt, children: alt }) : null] })] })] })] }));
295
+ }, children: full ?? children }) }), _jsxs("div", { className: c.footer, children: [_jsx(DialogPrimitive.Title, { className: cx(c.caption, foldsTitle && !described && c.titleFolded), children: title }), caption ? (_jsx(DialogPrimitive.Description, { className: cx(c.alt, !described && c.altFolded), children: alt })) : null, folds ? (_jsx("button", { type: "button", className: c.more, "aria-expanded": described, "data-house-zoom-more": "", onClick: () => setDescribed((shown) => !shown), children: described ? text.zoomHideDescription : text.zoomShowDescription })) : null] })] })] })] }));
271
296
  }
272
297
  //# sourceMappingURL=guide-figure-zoom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guide-figure-zoom.js","sourceRoot":"","sources":["../../src/guides/guide-figure-zoom.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guide-figure-zoom.js","sourceRoot":"","sources":["../../src/guides/guide-figure-zoom.tsx"],"names":[],"mappings":"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"}
@@ -79,20 +79,32 @@ export interface GuidesLabels {
79
79
  menu: string;
80
80
  onThisPage: string;
81
81
  allGuides: string;
82
- /** The hint on a picture in a guide that opens it full-size. */
83
- zoomHint: string;
82
+ /** The hint under a picture in a guide that opens it full-size, where the pointer is a mouse or a trackpad. */
83
+ zoomHint?: string;
84
+ /**
85
+ * The same hint on a touch screen (`@media (pointer: coarse)`). Left out, it is `zoomHint` when the
86
+ * app set that, else "Tap to enlarge".
87
+ */
88
+ zoomHintTouch?: string;
84
89
  /** The name of that button; `{alt}` is replaced with the picture's alt text. */
85
- zoomOpen: string;
86
- zoomIn: string;
87
- zoomOut: string;
90
+ zoomOpen?: string;
91
+ zoomIn?: string;
92
+ zoomOut?: string;
88
93
  /** The button showing the zoom level, which switches between fit and full size. */
89
- zoomToggle: string;
94
+ zoomToggle?: string;
90
95
  /** Read out as the zoom changes; `{percent}` is replaced. */
91
- zoomLevel: string;
92
- zoomClose: string;
96
+ zoomLevel?: string;
97
+ zoomClose?: string;
93
98
  /** Shown above the picture on wider screens. */
94
- zoomInstructions: string;
99
+ zoomInstructions?: string;
100
+ /**
101
+ * On a phone, the button under an enlarged picture that shows its description (the alt text), which
102
+ * waits behind it there so the picture keeps the screen. Optional: added in 0.19.1.
103
+ */
104
+ zoomShowDescription?: string;
105
+ /** The same button once the description is showing. Optional: added in 0.19.1. */
106
+ zoomHideDescription?: string;
95
107
  }
96
- export declare const GUIDES_LABELS: GuidesLabels;
108
+ export declare const GUIDES_LABELS: Required<GuidesLabels>;
97
109
  export declare function withQuery(label: string, query: string): string;
98
110
  //# sourceMappingURL=library.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/guides/library.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,gBAAgB,EAAE,CAAC;IACxB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5F;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAC6G,CAAC;AAE/I,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAEpH;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,iBAAiB,EAAE,CAoBlH;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,aAAa,EAAE,YAqB3B,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9D"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/guides/library.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ export const GUIDES_LABELS = {
57
57
  onThisPage: "On this page",
58
58
  allGuides: "All guides",
59
59
  zoomHint: "Click to enlarge",
60
+ zoomHintTouch: "Tap to enlarge",
60
61
  zoomOpen: "Enlarge picture: {alt}",
61
62
  zoomIn: "Zoom in",
62
63
  zoomOut: "Zoom out",
@@ -64,6 +65,8 @@ export const GUIDES_LABELS = {
64
65
  zoomLevel: "Zoom {percent}%",
65
66
  zoomClose: "Close",
66
67
  zoomInstructions: "Pinch or ⌘/Ctrl + scroll to zoom · drag to move · double-click for full size",
68
+ zoomShowDescription: "Show description",
69
+ zoomHideDescription: "Hide description",
67
70
  };
68
71
  export function withQuery(label, query) {
69
72
  return label.replace("{query}", query.trim());
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/guides/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/guides/library.ts"],"names":[],"mappings":"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"}