@skinhub/viewer 0.2.1 → 0.3.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.
- package/EMBED.md +82 -2
- package/README.md +36 -1
- package/dist/SkinViewer.d.ts.map +1 -1
- package/dist/SkinViewer.js +22 -0
- package/dist/SkinViewer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +27 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +64 -0
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +82 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/SkinViewer.tsx +22 -0
- package/src/index.ts +3 -0
- package/src/protocol.ts +30 -1
- package/src/state.ts +64 -0
- package/src/types.ts +85 -1
package/EMBED.md
CHANGED
|
@@ -261,6 +261,51 @@ combinations are supported.
|
|
|
261
261
|
**If you turn dragging on, listen for the `change` event** (below), or you will not be able to save
|
|
262
262
|
what your user did.
|
|
263
263
|
|
|
264
|
+
### The viewer's own words, and which way they read
|
|
265
|
+
|
|
266
|
+
The viewer draws a few strings of its own: confirm and cancel on a gizmo, the words on its number
|
|
267
|
+
fields, the loading card, and the notice on a collectible whose 3D model we have not published. **They
|
|
268
|
+
are inside our document, so nothing on your page can reach them** - not your `dir`, not your `lang`,
|
|
269
|
+
not your stylesheet, and not your message catalogue. If your product is not in English, send them.
|
|
270
|
+
|
|
271
|
+
| parameter | | default |
|
|
272
|
+
|---|---|---|
|
|
273
|
+
| `dir` | `ltr` / `rtl` - the text direction of everything the viewer draws over the canvas | `ltr` |
|
|
274
|
+
| `labelconfirm` | the gizmo's confirm button, which is an icon with no text | `Confirm` |
|
|
275
|
+
| `labelcancel` | the gizmo's cancel button | `Cancel` |
|
|
276
|
+
| `labelwear` | the sticker's scratch field - the word on the pill *and* its accessible name | `Wear` |
|
|
277
|
+
| `labelseed` | the charm's template field, on the same terms | `Seed` |
|
|
278
|
+
| `labelloading` | the loading card, and the spinner's accessible name | `Loading` |
|
|
279
|
+
| `labelloadingview` | the card shown while a view change settles. `{view}` is replaced with `Gun`, `Hands` or `Agent` | `Loading {view} view` |
|
|
280
|
+
| `labelnomodel` | the notice over a collectible whose model is not published, where the icon is shown instead | `This item's 3D model has not been published yet - showing the in-game icon instead.` |
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
?weapon=weapon_ak47&paint=1449&stickergizmo=1&dir=rtl
|
|
284
|
+
&labelconfirm=%D7%90%D7%99%D7%A9%D7%95%D7%A8&labelcancel=%D7%91%D7%99%D7%98%D7%95%D7%9C
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**Every one is optional and anything you leave out stays English.** Translate two and the other five
|
|
288
|
+
keep working; there is no half-resolved state.
|
|
289
|
+
|
|
290
|
+
**`{view}` is optional in your own sentence.** `Gun` / `Hands` / `Agent` are the viewer's words and are
|
|
291
|
+
not translatable, so write `labelloadingview` without the placeholder if you would rather not have an
|
|
292
|
+
English word inside a Hebrew sentence - you lose only the which-view detail.
|
|
293
|
+
|
|
294
|
+
**A label is at most 64 characters, must be non-empty, and may not contain control or bidi-override
|
|
295
|
+
characters.** One that breaks any of those is dropped and named in `problems` (or an `error` event) and
|
|
296
|
+
the English one is used: **we never truncate**, because a shortened version of your sentence is a word
|
|
297
|
+
we invented in a language we cannot read.
|
|
298
|
+
|
|
299
|
+
**`dir` is the text, not the layout.** The gizmo's pill stays left-to-right in both directions - it
|
|
300
|
+
holds a number and a confirm/cancel pair, and its position is solved in canvas pixels against the
|
|
301
|
+
item's own silhouette, so mirroring it would move the buttons away from the thing they belong to. What
|
|
302
|
+
`dir` moves is every sentence the viewer draws, and the flex order and padding of the cards they sit in.
|
|
303
|
+
|
|
304
|
+
**Three strings are deliberately not translatable**: the instruction card (`?help=`), the
|
|
305
|
+
protocol-mismatch card, and `error.message`. Those are addressed to *you* rather than to your user, and
|
|
306
|
+
a translated diagnostic is one nobody can search for. The viewmodel's keybind row (`F Inspect`,
|
|
307
|
+
`R Reload`) is not translatable either - half of each row is a physical key name.
|
|
308
|
+
|
|
264
309
|
---
|
|
265
310
|
|
|
266
311
|
## 6. Live updates
|
|
@@ -275,7 +320,7 @@ const viewer = document.getElementById('viewer')
|
|
|
275
320
|
|
|
276
321
|
const set = patch =>
|
|
277
322
|
viewer.contentWindow.postMessage(
|
|
278
|
-
{ channel: 'skinhub-viewer', v:
|
|
323
|
+
{ channel: 'skinhub-viewer', v: 2, from: 'host', type: 'set', patch },
|
|
279
324
|
FRAME_ORIGIN,
|
|
280
325
|
)
|
|
281
326
|
|
|
@@ -302,7 +347,7 @@ document.querySelector('#float').oninput = e => set({ item: { float: +e.target.v
|
|
|
302
347
|
Every message in both directions carries these three fields:
|
|
303
348
|
|
|
304
349
|
```js
|
|
305
|
-
{ channel: 'skinhub-viewer', v:
|
|
350
|
+
{ channel: 'skinhub-viewer', v: 2, from: 'host' | 'viewer', type: ... }
|
|
306
351
|
```
|
|
307
352
|
|
|
308
353
|
- `channel` - anything without it is not ours and is ignored in silence. `postMessage` is a shared bus;
|
|
@@ -334,6 +379,7 @@ set({
|
|
|
334
379
|
quality: { bloom, bloomSpill, renderScale, antialias, shadows },
|
|
335
380
|
environment: { map, timeOfDay, rain, background },
|
|
336
381
|
overlays: { stickerGizmo, charmGizmo, gizmoStyle: { color, shadowColor } },
|
|
382
|
+
locale: { dir, labels: { confirm, cancel, wear, seed, loading, loadingView, noModel } },
|
|
337
383
|
},
|
|
338
384
|
interactions: { orbit, zoom, dragStickers, dragCharm },
|
|
339
385
|
editingSlot: -1,
|
|
@@ -352,6 +398,12 @@ disturbing the rifle on screen, and what stops a host that restates its whole st
|
|
|
352
398
|
from flipping subject whenever two groups happen to be present. Switching back is one field -
|
|
353
399
|
`set({ subject: 'weapon' })` - and the weapon is exactly where you left it.
|
|
354
400
|
|
|
401
|
+
**`labels` is one field and is replaced whole.** It is the one exception to the merge rule above, and
|
|
402
|
+
it falls out of it: a settings group merges one field deep, and `labels` *is* that field - so
|
|
403
|
+
`set({ settings: { locale: { labels: { cancel } } } })` after a patch that sent `confirm` leaves you
|
|
404
|
+
with `cancel` alone. Send the whole object, which is what `@skinhub/viewer` does on every render.
|
|
405
|
+
`gizmoStyle` has always worked this way for the same reason.
|
|
406
|
+
|
|
355
407
|
**`null` is a value, not an absence**, wherever it means something: `nameTag: null` is no plate,
|
|
356
408
|
`statTrak: false` is no counter, `gloves: null` is the wearer's own default pair, `agent.pose: null` is
|
|
357
409
|
"match the weapon", `settings.environment.map: null` is our calibrated reference rig.
|
|
@@ -428,6 +480,10 @@ explanation.
|
|
|
428
480
|
**A raw `<iframe src>` can never hit this.** It never sends a message, so it has no version to
|
|
429
481
|
disagree about. Only a host that talks to the frame can be out of date.
|
|
430
482
|
|
|
483
|
+
**The current version is `2`.** It added `settings.locale` - the strings above and their direction - and
|
|
484
|
+
started naming unknown patch keys in `problems`. Protocol 1 hosts (`@skinhub/viewer` 0.2.x and earlier)
|
|
485
|
+
must update; there is no back-compat window, by design.
|
|
486
|
+
|
|
431
487
|
---
|
|
432
488
|
|
|
433
489
|
## 8. Debugging a URL
|
|
@@ -453,6 +509,30 @@ problems: [
|
|
|
453
509
|
Booleans follow one rule everywhere: **`0` is off, anything else present is on, absent means "leave it
|
|
454
510
|
alone".**
|
|
455
511
|
|
|
512
|
+
### What "named" covers, per door
|
|
513
|
+
|
|
514
|
+
**A parameter whose *value* the viewer cannot read is always named** - on both doors, as above.
|
|
515
|
+
|
|
516
|
+
**A key the viewer does not have at all is named over `postMessage` and ignored in silence in a URL**,
|
|
517
|
+
and the asymmetry is deliberate:
|
|
518
|
+
|
|
519
|
+
```js
|
|
520
|
+
set({ float: 0.3 }) // error: `float: not a field this build reads - a patch takes …`
|
|
521
|
+
set({ item: { flaot: 0.3 } }) // error: `item.flaot: not a field this build reads - item takes …`
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
```
|
|
525
|
+
?flaot=0.3 ← nothing. Silence.
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
A patch is addressed to us alone, so every key in it was meant for us and a misspelling is worth a
|
|
529
|
+
sentence. A query string is **shared**: `?origin=`, `?help=` and the `?weapon=`+`?skin=` pair are read
|
|
530
|
+
before the viewer's own parsing, and you are free to append a cache-buster or a tracking param of your
|
|
531
|
+
own. Naming unknown params there would report your own URL back at you as an error, so it does not.
|
|
532
|
+
|
|
533
|
+
If a URL parameter appears to do nothing, check the spelling against the tables above and read
|
|
534
|
+
`problems` on the `hello` event: a *valid* name with a bad value is always in there.
|
|
535
|
+
|
|
456
536
|
### `?help=` - ask the frame to explain itself
|
|
457
537
|
|
|
458
538
|
```
|
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ Exactly one subject is required - `item`, `inspectLink`, `sticker`, `charm`, `co
|
|
|
62
62
|
| `view` | `'gun' \| 'hands' \| 'agent'` | `'gun'` | item alone, first-person, or held by an operator |
|
|
63
63
|
| `agent` | `{ id, pose? }` | default T | who is *holding* the weapon, in `hands` and `agent`. `operator` is the agent shown alone |
|
|
64
64
|
| `gloves` | `{ type, paintIndex, float?, seed? } \| null` | `null` | `null` is the wearer's own pair |
|
|
65
|
-
| `settings` | `{ camera?, quality?, environment?, overlays? }` | see below | shallow-merged per group |
|
|
65
|
+
| `settings` | `{ camera?, quality?, environment?, overlays?, locale? }` | see below | shallow-merged per group |
|
|
66
66
|
| `interactions` | `{ orbit?, zoom?, dragStickers?, dragCharm? }` | orbit + zoom on | what the user may do |
|
|
67
67
|
| `editingSlot` | `number` | `-1` | which sticker slot is open; `5` is the charm |
|
|
68
68
|
| `onReady` | `() => void` | - | stopped loading - **a level, not an edge**: it fires again after every weapon or view change |
|
|
@@ -81,6 +81,41 @@ building pickers.
|
|
|
81
81
|
`view`, `agent`, `gloves` and `editingSlot` describe a weapon, and the other four subjects ignore them.
|
|
82
82
|
`settings` and `interactions` apply to all six.
|
|
83
83
|
|
|
84
|
+
### If your product is not in English
|
|
85
|
+
|
|
86
|
+
The viewer draws a few strings of its own - confirm and cancel on a gizmo, the words on its number
|
|
87
|
+
fields, the loading card. **They live in our document, so your `dir`, your `lang` and your message
|
|
88
|
+
catalogue all stop at the iframe boundary.** Send them:
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
const t = useTranslations('viewer')
|
|
92
|
+
|
|
93
|
+
<SkinViewer
|
|
94
|
+
item={item}
|
|
95
|
+
settings={{
|
|
96
|
+
overlays: { stickerGizmo: true, charmGizmo: true },
|
|
97
|
+
locale: {
|
|
98
|
+
dir: 'rtl',
|
|
99
|
+
labels: { confirm: t('confirm'), cancel: t('cancel'), wear: t('wear'), seed: t('seed') },
|
|
100
|
+
},
|
|
101
|
+
}}
|
|
102
|
+
/>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Seven labels - `confirm`, `cancel`, `wear`, `seed`, `loading`, `loadingView`, `noModel` - and every one
|
|
106
|
+
is optional: **anything you leave out stays English**, so translating two does not lose the other five.
|
|
107
|
+
There is no language tag and there will not be one; we ship no translations, and passing `'he'` would
|
|
108
|
+
mean us guessing at your product's voice out of a catalogue we cannot read.
|
|
109
|
+
|
|
110
|
+
`dir` is the **text**, not the layout: the gizmo's pill stays left-to-right in both directions (it holds
|
|
111
|
+
a number and a button pair, and it positions itself in canvas pixels against the item), while every
|
|
112
|
+
sentence the viewer draws follows your direction.
|
|
113
|
+
|
|
114
|
+
A label is capped at 64 characters and may not be empty or carry control characters; one that breaks a
|
|
115
|
+
rule is dropped, reported through `onError` as `bad-message`, and the English one is used - it is never
|
|
116
|
+
truncated. The instruction card, the protocol-mismatch card and `onError` messages stay English on
|
|
117
|
+
purpose: they are addressed to you, not to your user.
|
|
118
|
+
|
|
84
119
|
Changing `float`, `seed`, `statTrak`, `nameTag`, `stickers` or `charm` updates **in place** - no
|
|
85
120
|
reload, no flicker. Changing the weapon, paint index, legacy variant or view shows a loading cover. On
|
|
86
121
|
the other four subjects `sticker.wear`, `charm.pattern` and `operator.pose` are the in-place ones; the
|
package/dist/SkinViewer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkinViewer.d.ts","sourceRoot":"","sources":["../src/SkinViewer.tsx"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAmB,eAAe,EAAgB,MAAM,YAAY,CAAA;AAEhF,sGAAsG;AACtG,eAAO,MAAM,cAAc,uBAAuB,CAAA;AA4ClD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,
|
|
1
|
+
{"version":3,"file":"SkinViewer.d.ts","sourceRoot":"","sources":["../src/SkinViewer.tsx"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAmB,eAAe,EAAgB,MAAM,YAAY,CAAA;AAEhF,sGAAsG;AACtG,eAAO,MAAM,cAAc,uBAAuB,CAAA;AA4ClD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,gCAyXhD,CAAA"}
|
package/dist/SkinViewer.js
CHANGED
|
@@ -388,6 +388,28 @@ export const SkinViewer = (props) => {
|
|
|
388
388
|
// The frame paints nothing of its own, so the canvas composites over the host's page.
|
|
389
389
|
// Without this a browser's default white iframe background would sit in between.
|
|
390
390
|
background: 'transparent',
|
|
391
|
+
/*
|
|
392
|
+
* *** AND `background: transparent` IS NOT ENOUGH ON ITS OWN. *** A dark-themed host is
|
|
393
|
+
* the common case, and it defeats the line above through a rule almost nobody has read.
|
|
394
|
+
*
|
|
395
|
+
* `color-scheme` INHERITS. A host that sets `color-scheme: dark` anywhere above this
|
|
396
|
+
* element - and every Tailwind, NextUI, MUI or shadcn dark theme does, usually on
|
|
397
|
+
* `<html>` - passes it down to this iframe. The frame's own document computes `normal`.
|
|
398
|
+
* CSS Color Adjust says that when an iframe's used colour scheme differs from its
|
|
399
|
+
* embedder's, the UA must render the iframe OPAQUE in its own scheme's canvas colour,
|
|
400
|
+
* and for `normal` that colour is white.
|
|
401
|
+
*
|
|
402
|
+
* The result is a white plate behind the item THAT NEITHER DOCUMENT CAN SEE, because the
|
|
403
|
+
* browser paints it between them: every element on both sides still computes
|
|
404
|
+
* `rgba(0, 0, 0, 0)`, so a host debugging it finds nothing. One integrator lost most of a
|
|
405
|
+
* day to it, walking the whole ancestor chain twice before instrumenting the UA rule.
|
|
406
|
+
*
|
|
407
|
+
* Pinning `normal` matches what the frame computes, which is the entire requirement, and
|
|
408
|
+
* it is deterministic: `normal` resolves light on both sides whatever the visitor's OS is
|
|
409
|
+
* set to. A host that wants a plate behind the item still puts one on the element it
|
|
410
|
+
* wraps this in.
|
|
411
|
+
*/
|
|
412
|
+
colorScheme: 'normal',
|
|
391
413
|
display: 'block',
|
|
392
414
|
} }, boot.nonce), overlay === null || overlay === undefined ? null : (
|
|
393
415
|
/*
|
package/dist/SkinViewer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkinViewer.js","sourceRoot":"","sources":["../src/SkinViewer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SkinViewer.js","sourceRoot":"","sources":["../src/SkinViewer.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export { useSkinViewer } from './useSkinViewer.js';
|
|
|
55
55
|
* when it can hand you the link. See `item.ts` for the three easy-to-get-wrong facts these encode.
|
|
56
56
|
*/
|
|
57
57
|
export { fromInspectLink, toInspectLink, toPlacement } from './item.js';
|
|
58
|
-
export type { MapName, SkinViewerCharm, SkinViewerError, SkinViewerErrorCode, SkinViewerHandle, SkinViewerItem, SkinViewerProps, SkinViewerSticker, TimeOfDay, ViewerAgent, ViewerBackground, ViewerCameraSettings, ViewerCharmSubject, ViewerCollectibleSubject, ViewerEnvironmentSettings, ViewerGloves, ViewerInteractions, ViewerOperatorSubject, ViewerOverlaySettings, ViewerQualitySettings, ViewerResize, ViewerSettings, ViewerStatus, ViewerStickerSubject, ViewerSubject, ViewerView, } from './types.js';
|
|
58
|
+
export type { MapName, SkinViewerCharm, SkinViewerError, SkinViewerErrorCode, SkinViewerHandle, SkinViewerItem, SkinViewerProps, SkinViewerSticker, TimeOfDay, ViewerAgent, ViewerBackground, ViewerCameraSettings, ViewerCharmSubject, ViewerCollectibleSubject, ViewerEnvironmentSettings, ViewerGloves, ViewerInteractions, ViewerLabels, ViewerLocaleSettings, ViewerOperatorSubject, ViewerOverlaySettings, ViewerQualitySettings, ViewerResize, ViewerSettings, ViewerStatus, ViewerStickerSubject, ViewerSubject, ViewerTextDirection, ViewerView, } from './types.js';
|
|
59
59
|
export { CHEAP_FIELDS, MAP_NAMES } from './types.js';
|
|
60
60
|
export type { KnownWeaponId, WeaponId } from './weapons.js';
|
|
61
61
|
export { defindexForWeaponId, isGloveId, isKnownWeaponId, normalizeWeaponId, WEAPON_ID_ALIASES, WEAPON_ID_BY_DEFINDEX, WEAPON_IDS, weaponIdForDefindex, } from './weapons.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvE,YAAY,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACN,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,GACnB,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvE,YAAY,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,UAAU,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACN,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,GACnB,MAAM,cAAc,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAiCvE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGpD,OAAO,EACN,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,GACnB,MAAM,cAAc,CAAA"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export declare const FRAME_CHANNEL = "skinhub-viewer";
|
|
|
72
72
|
* decision and it is paid deliberately, in exchange for never shipping a viewer that renders a
|
|
73
73
|
* partly-understood item.
|
|
74
74
|
*/
|
|
75
|
-
export declare const FRAME_PROTOCOL_VERSION =
|
|
75
|
+
export declare const FRAME_PROTOCOL_VERSION = 2;
|
|
76
76
|
/** Five stickers plus the charm in slot 5. The frame validates the SHAPE of this and nothing else. */
|
|
77
77
|
export type PlacementSlots = [
|
|
78
78
|
StickerPlacement,
|
|
@@ -93,6 +93,31 @@ export type FrameItem = {
|
|
|
93
93
|
nameTag?: string | null;
|
|
94
94
|
stickers?: PlacementSlots;
|
|
95
95
|
};
|
|
96
|
+
/**
|
|
97
|
+
* THE COPY THE FRAME DRAWS, AND WHICH WAY IT READS. See `types.ts`'s `ViewerLocaleSettings`.
|
|
98
|
+
*
|
|
99
|
+
* *** EVERY FIELD IS OPTIONAL AND AN ABSENT ONE STAYS ENGLISH, *** which is the whole shape of the
|
|
100
|
+
* feature: a host that translates three of the six must not lose the fourth to `undefined`.
|
|
101
|
+
*
|
|
102
|
+
* `labels` IS ONE FIELD HOLDING SIX, so a patch replaces it wholesale exactly as `gizmoStyle` is
|
|
103
|
+
* replaced - the frame merges a settings group one level deep and no further. This package restates
|
|
104
|
+
* the whole object on every render, so that costs it nothing; a hand-rolled host sending one label at
|
|
105
|
+
* a time is the case to know about, and `EMBED.md` §6 says so.
|
|
106
|
+
*/
|
|
107
|
+
export type FrameLabels = {
|
|
108
|
+
confirm?: string;
|
|
109
|
+
cancel?: string;
|
|
110
|
+
wear?: string;
|
|
111
|
+
seed?: string;
|
|
112
|
+
loading?: string;
|
|
113
|
+
loadingView?: string;
|
|
114
|
+
noModel?: string;
|
|
115
|
+
};
|
|
116
|
+
export type FrameTextDirection = 'ltr' | 'rtl';
|
|
117
|
+
export type FrameLocale = {
|
|
118
|
+
dir?: FrameTextDirection;
|
|
119
|
+
labels?: FrameLabels;
|
|
120
|
+
};
|
|
96
121
|
export type FrameSettings = {
|
|
97
122
|
camera?: {
|
|
98
123
|
fov?: number;
|
|
@@ -119,6 +144,7 @@ export type FrameSettings = {
|
|
|
119
144
|
shadowColor?: string;
|
|
120
145
|
};
|
|
121
146
|
};
|
|
147
|
+
locale?: FrameLocale;
|
|
122
148
|
};
|
|
123
149
|
export type FrameInteractions = {
|
|
124
150
|
orbit?: boolean;
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAMvC,sGAAsG;AACtG,MAAM,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;CACjB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC/G,WAAW,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9F,QAAQ,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,UAAU,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KACrD,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js
CHANGED
|
@@ -71,7 +71,7 @@ export const FRAME_CHANNEL = 'skinhub-viewer';
|
|
|
71
71
|
* decision and it is paid deliberately, in exchange for never shipping a viewer that renders a
|
|
72
72
|
* partly-understood item.
|
|
73
73
|
*/
|
|
74
|
-
export const FRAME_PROTOCOL_VERSION =
|
|
74
|
+
export const FRAME_PROTOCOL_VERSION = 2;
|
|
75
75
|
/** Stamps the envelope, so no call site can forget the channel, the version or the direction. */
|
|
76
76
|
export const hostMessage = (patch) => patch
|
|
77
77
|
? { channel: FRAME_CHANNEL, v: FRAME_PROTOCOL_VERSION, from: 'host', type: 'set', patch }
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AA0JvC,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAkB,EAAe,EAAE,CAC9D,KAAK;IACJ,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;IACzF,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAatF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACrE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAa,EAAqB,EAAE;IAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAE1G,IAAI,IAAI,CAAC,CAAC,KAAK,sBAAsB;QACpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEnG,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC5D;;;;;OAKG;IACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAE3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAA6B,EAAE,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAA;AAElH;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAG,CAAC,QAAiB,EAAU,EAAE;IACpD,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC/E,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,sBAAsB;QACpE,OAAO,mCAAmC,sBAAsB,gCAAgC,IAAI,qNAAqN,CAAA;IAC1T,OAAO,mCAAmC,sBAAsB,gCAAgC,IAAI,kKAAkK,CAAA;AACvQ,CAAC,CAAA"}
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EAET,UAAU,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAEhB,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5F;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B;;;;;;;;;OASG;IACH,OAAO,EAAE,gBAAgB,CAAA;IACzB,+FAA+F;IAC/F,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,qFAAqF;IACrF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IACvB,YAAY,EAAE,eAAe,GAAG,IAAI,CAAA;IACpC,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC7C,gGAAgG;IAChG,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,CAAC,eAAe,CAAC,KAAG,YA6C9D,CAAA;AA8DD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,SAAS,YAAY,KAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CA4GtG,CAAA;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sDAIqB,CAAA;AAoBjD,wGAAwG;AACxG,eAAO,MAAM,SAAS,GAAI,UAAU,YAAY,EAAE,MAAM,YAAY,KAAG,UAAU,GAAG,SA+GnF,CAAA;AAsFD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,CAAC,KAAG,OAa9F,CAAA"}
|
package/dist/state.js
CHANGED
|
@@ -118,6 +118,13 @@ const toFrameSettings = (settings) => {
|
|
|
118
118
|
...settings.overlays,
|
|
119
119
|
...(settings.overlays.gizmoStyle && { gizmoStyle: { ...settings.overlays.gizmoStyle } }),
|
|
120
120
|
};
|
|
121
|
+
// The labels are copied one level down for the same reason `gizmoStyle` is: they are the one group a
|
|
122
|
+
// host is likely to hold in a memo of their own and rebuild in place from a message catalogue.
|
|
123
|
+
if (settings.locale)
|
|
124
|
+
out.locale = {
|
|
125
|
+
...settings.locale,
|
|
126
|
+
...(settings.locale.labels && { labels: { ...settings.locale.labels } }),
|
|
127
|
+
};
|
|
121
128
|
return out;
|
|
122
129
|
};
|
|
123
130
|
/* ═════════════════════════════════════════════════════════════════════════════════════════════
|
|
@@ -132,6 +139,23 @@ const num = (params, key, value) => {
|
|
|
132
139
|
if (value !== undefined)
|
|
133
140
|
params.set(key, String(value));
|
|
134
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* One query param per label.
|
|
144
|
+
*
|
|
145
|
+
* *** A `Record` OVER THE KEY UNION AND NOT AN ARRAY OF PAIRS, so it is EXHAUSTIVE: *** a label added
|
|
146
|
+
* to {@link FrameLabels} that is not spelled here fails to compile. Without that, the next label would
|
|
147
|
+
* reach the message door and silently miss the URL one - i.e. it would work on every render except the
|
|
148
|
+
* first, which is the hardest kind of gap to see.
|
|
149
|
+
*/
|
|
150
|
+
const LABEL_PARAMS = {
|
|
151
|
+
confirm: 'labelconfirm',
|
|
152
|
+
cancel: 'labelcancel',
|
|
153
|
+
wear: 'labelwear',
|
|
154
|
+
seed: 'labelseed',
|
|
155
|
+
loading: 'labelloading',
|
|
156
|
+
loadingView: 'labelloadingview',
|
|
157
|
+
noModel: 'labelnomodel',
|
|
158
|
+
};
|
|
135
159
|
/**
|
|
136
160
|
* The initial `<iframe src>`, and the state that URL actually expressed.
|
|
137
161
|
*
|
|
@@ -229,6 +253,29 @@ export const frameUrl = (origin, desired) => {
|
|
|
229
253
|
params.set('gizmocolor', s.overlays.gizmoStyle.color);
|
|
230
254
|
if (s?.overlays?.gizmoStyle?.shadowColor)
|
|
231
255
|
params.set('gizmoshadow', s.overlays.gizmoStyle.shadowColor);
|
|
256
|
+
/*
|
|
257
|
+
* ── THE COPY, AND WHICH WAY IT READS ─────────────────────────────────────────────────────
|
|
258
|
+
*
|
|
259
|
+
* *** IN THE URL AND NOT ONLY IN A MESSAGE, AND THAT IS THE POINT OF PUTTING THEM HERE. *** The
|
|
260
|
+
* labels have to be on the FIRST paint: a gizmo that spells Confirm in English for one round trip
|
|
261
|
+
* and in Hebrew after it is a flicker on somebody's product page, and the whole reason this file
|
|
262
|
+
* builds a URL at all is that the first picture must be the host's own. It is also what gives the
|
|
263
|
+
* raw-`<iframe>` integrator - a PHP shop with a Hebrew page, which is exactly the customer this
|
|
264
|
+
* feature exists for - the same capability with no JavaScript.
|
|
265
|
+
*
|
|
266
|
+
* ONE PARAM PER LABEL, PREFIXED. `?wear=` is already the sticker subject's scratch and `?seed=` is
|
|
267
|
+
* already the weapon's paint seed, so the words cannot be reused bare; `label…` is the same
|
|
268
|
+
* noun-first shape `?gizmocolor=` uses.
|
|
269
|
+
*/
|
|
270
|
+
if (s?.locale?.dir)
|
|
271
|
+
params.set('dir', s.locale.dir);
|
|
272
|
+
const labels = s?.locale?.labels;
|
|
273
|
+
if (labels)
|
|
274
|
+
for (const key of Object.keys(LABEL_PARAMS)) {
|
|
275
|
+
const label = labels[key];
|
|
276
|
+
if (label)
|
|
277
|
+
params.set(LABEL_PARAMS[key], label);
|
|
278
|
+
}
|
|
232
279
|
flag(params, 'orbit', desired.interactions?.orbit);
|
|
233
280
|
// The wheel gesture is named after the input that performs it, because `?zoom=` is the camera's.
|
|
234
281
|
flag(params, 'wheel', desired.interactions?.zoom);
|
|
@@ -441,6 +488,10 @@ const diffSettings = (previous, next) => {
|
|
|
441
488
|
out.overlays = next.overlays;
|
|
442
489
|
changed = true;
|
|
443
490
|
}
|
|
491
|
+
if (next.locale && !localeEqual(previous?.locale, next.locale)) {
|
|
492
|
+
out.locale = next.locale;
|
|
493
|
+
changed = true;
|
|
494
|
+
}
|
|
444
495
|
return changed ? out : undefined;
|
|
445
496
|
};
|
|
446
497
|
const overlaysEqual = (a, b) => {
|
|
@@ -450,6 +501,19 @@ const overlaysEqual = (a, b) => {
|
|
|
450
501
|
return false;
|
|
451
502
|
return a.stickerGizmo === b.stickerGizmo && a.charmGizmo === b.charmGizmo && shallowEqual(a.gizmoStyle, b.gizmoStyle);
|
|
452
503
|
};
|
|
504
|
+
/**
|
|
505
|
+
* *** COMPARED BY VALUE AND NOT BY IDENTITY, WHICH IS THE WHOLE REASON THIS FUNCTION EXISTS. *** A host
|
|
506
|
+
* resolving labels from a message catalogue - `{ confirm: t('confirm') }` - builds a fresh object on
|
|
507
|
+
* every render, and `t()` returns the same string every time. Identity alone would therefore post a
|
|
508
|
+
* `set` per render for ever, and the labels reach a gizmo the user may be mid-drag inside.
|
|
509
|
+
*/
|
|
510
|
+
const localeEqual = (a, b) => {
|
|
511
|
+
if (a === b)
|
|
512
|
+
return true;
|
|
513
|
+
if (!a || !b)
|
|
514
|
+
return false;
|
|
515
|
+
return a.dir === b.dir && shallowEqual(a.labels, b.labels);
|
|
516
|
+
};
|
|
453
517
|
/**
|
|
454
518
|
* True when a patch would cover the canvas - see {@link IDENTITY_FIELDS} and `CHEAP_FIELDS`.
|
|
455
519
|
*
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -424,7 +424,86 @@ export type ViewerOverlaySettings = {
|
|
|
424
424
|
};
|
|
425
425
|
};
|
|
426
426
|
/**
|
|
427
|
-
* *** THE
|
|
427
|
+
* *** THE VIEWER'S OWN COPY, AND WHICH WAY IT READS - for a host whose page is not in English. ***
|
|
428
|
+
*
|
|
429
|
+
* The frame draws a few strings of its own: the confirm and cancel buttons on a gizmo, the words on
|
|
430
|
+
* its number fields, and the loading card. *** THEY ARE INSIDE ANOTHER DOCUMENT, ON ANOTHER ORIGIN,
|
|
431
|
+
* SO NOTHING ON YOUR PAGE CAN REACH THEM *** - not your `dir`, not your `lang`, not your stylesheet
|
|
432
|
+
* and not your message catalogue. A localised host that could not send them would ship an English
|
|
433
|
+
* editing UI floating over its own translated modal, with no way to fix it. That is what this is for.
|
|
434
|
+
*
|
|
435
|
+
* *** THERE IS NO LANGUAGE TAG AND THERE WILL NOT BE ONE. *** We do not ship translations - passing
|
|
436
|
+
* `'he'` would mean us guessing at your product's voice out of a catalogue you cannot see, and being
|
|
437
|
+
* a version behind it for ever. You already have these words in your own catalogue; send them.
|
|
438
|
+
*
|
|
439
|
+
* const t = useTranslations('viewer')
|
|
440
|
+
* settings={{ locale: { dir: 'rtl', labels: { confirm: t('confirm'), cancel: t('cancel') } } }}
|
|
441
|
+
*
|
|
442
|
+
* *** EVERY LABEL IS OPTIONAL AND AN ABSENT ONE STAYS ENGLISH. *** Translate two of six and the other
|
|
443
|
+
* four keep working; there is no half-resolved state and no `undefined` reaching a button.
|
|
444
|
+
*/
|
|
445
|
+
export type ViewerLocaleSettings = {
|
|
446
|
+
/**
|
|
447
|
+
* The TEXT DIRECTION of the frame's own overlays. Default `'ltr'`.
|
|
448
|
+
*
|
|
449
|
+
* *** IT IS THE TEXT AND NOT THE LAYOUT, and that is a decision rather than a shortcut. *** The
|
|
450
|
+
* gizmo's pill stays left-to-right in both: it holds a NUMBER and a confirm/cancel pair, neither of
|
|
451
|
+
* which is prose, and its placement is solved in canvas pixels against the item's own silhouette -
|
|
452
|
+
* a mirrored gizmo would move the buttons away from the thing they belong to. What this does move is
|
|
453
|
+
* the loading card and every sentence the frame draws.
|
|
454
|
+
*/
|
|
455
|
+
dir?: ViewerTextDirection;
|
|
456
|
+
/** See {@link ViewerLabels}. */
|
|
457
|
+
labels?: ViewerLabels;
|
|
458
|
+
};
|
|
459
|
+
export type ViewerTextDirection = 'ltr' | 'rtl';
|
|
460
|
+
/**
|
|
461
|
+
* The frame's user-visible copy. Anything you leave out stays English.
|
|
462
|
+
*
|
|
463
|
+
* *** WHAT IS DELIBERATELY NOT HERE: the instruction card, the protocol-mismatch card and every
|
|
464
|
+
* `onError` message. *** Those are addressed to YOU rather than to your user - they say a link did not
|
|
465
|
+
* decode, or that this package is a version behind the embed - and a translated diagnostic is a
|
|
466
|
+
* diagnostic you cannot paste into a search. They stay in English on purpose.
|
|
467
|
+
*
|
|
468
|
+
* Each string is at most 64 characters, must be non-empty and may not contain control characters. A
|
|
469
|
+
* label that breaks any of those is dropped, named through {@link SkinViewerProps.onError} as
|
|
470
|
+
* `bad-message`, and the English one is used - the frame never truncates a string to fit.
|
|
471
|
+
*/
|
|
472
|
+
export type ViewerLabels = {
|
|
473
|
+
/** The gizmo's confirm button, which has an icon and no text of its own. Default `'Confirm'`. */
|
|
474
|
+
confirm?: string;
|
|
475
|
+
/** The gizmo's cancel button. Default `'Cancel'`. */
|
|
476
|
+
cancel?: string;
|
|
477
|
+
/**
|
|
478
|
+
* The sticker's scratch field on the gizmo pill - the word ON it and its accessible name. Default
|
|
479
|
+
* `'Wear'`. Uppercased by the frame's own type styling, so send it in your normal case.
|
|
480
|
+
*/
|
|
481
|
+
wear?: string;
|
|
482
|
+
/** The charm's template field, on the same terms as {@link wear}. Default `'Seed'`. */
|
|
483
|
+
seed?: string;
|
|
484
|
+
/** The loading card, and the spinner's accessible name. Default `'Loading'`. */
|
|
485
|
+
loading?: string;
|
|
486
|
+
/**
|
|
487
|
+
* The card shown while a VIEW CHANGE settles. Default `'Loading {view} view'`.
|
|
488
|
+
*
|
|
489
|
+
* `{view}` is replaced with the view's own name - `Gun`, `Hands` or `Agent`. *** THE PLACEHOLDER IS
|
|
490
|
+
* OPTIONAL, AND LEAVING IT OUT IS HOW YOU AVOID AN ENGLISH WORD IN YOUR SENTENCE: *** those three
|
|
491
|
+
* names are the frame's and are not translatable, so a host that does not want them writes a
|
|
492
|
+
* sentence without the placeholder and loses nothing but the which-view detail.
|
|
493
|
+
*/
|
|
494
|
+
loadingView?: string;
|
|
495
|
+
/**
|
|
496
|
+
* The notice over a COLLECTIBLE whose 3D model we have not published yet, where the viewer shows the
|
|
497
|
+
* item's in-game icon instead. Default `'This item's 3D model has not been published yet - showing
|
|
498
|
+
* the in-game icon instead.'`
|
|
499
|
+
*
|
|
500
|
+
* The only sentence in this list rather than a word, and the only one a shopper reads without
|
|
501
|
+
* touching anything - which is why it is here and the instruction cards are not.
|
|
502
|
+
*/
|
|
503
|
+
noModel?: string;
|
|
504
|
+
};
|
|
505
|
+
/**
|
|
506
|
+
* *** THE GROUPS ARE THE ONES THE FRAME SPEAKS, AND NO MORE. ***
|
|
428
507
|
*
|
|
429
508
|
* The design notes also sketch `autoRotation` and `sound`. They are deliberately absent: the
|
|
430
509
|
* `/frame` protocol carries neither today, so a prop for them would be a prop that silently does
|
|
@@ -436,6 +515,8 @@ export type ViewerSettings = {
|
|
|
436
515
|
quality?: ViewerQualitySettings;
|
|
437
516
|
environment?: ViewerEnvironmentSettings;
|
|
438
517
|
overlays?: ViewerOverlaySettings;
|
|
518
|
+
/** See {@link ViewerLocaleSettings}. Absent is English, left-to-right. */
|
|
519
|
+
locale?: ViewerLocaleSettings;
|
|
439
520
|
};
|
|
440
521
|
/**
|
|
441
522
|
* WHAT THE USER MAY DO WITH THE MOUSE. Orbiting and zooming are on; EDITING IS OFF.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EAAE,IAAI,EAAmB,MAAM,WAAW,CAAA;AAsGjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAU,CAAA;AAwLlG;;;;;;;;;;;;iGAYiG;AAEjG;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,SAAS;IACT,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,SAAS;IACT,WAAW;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EAAE,IAAI,EAAmB,MAAM,WAAW,CAAA;AAsGjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAU,CAAA;AAwLlG;;;;;;;;;;;;iGAYiG;AAEjG;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,SAAS;IACT,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,SAAS;IACT,WAAW;CACF,CAAA;AA+eV;;;;;;;;;;;;GAYG;AAEH;;;;;;;GAOG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skinhub/viewer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "React wrapper for the SkinHub CS2 skin viewer embed — props in, postMessage out. No three.js, no renderer, no asset bundle; React is the only peer.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/src/SkinViewer.tsx
CHANGED
|
@@ -443,6 +443,28 @@ export const SkinViewer = (props: SkinViewerProps) => {
|
|
|
443
443
|
// The frame paints nothing of its own, so the canvas composites over the host's page.
|
|
444
444
|
// Without this a browser's default white iframe background would sit in between.
|
|
445
445
|
background: 'transparent',
|
|
446
|
+
/*
|
|
447
|
+
* *** AND `background: transparent` IS NOT ENOUGH ON ITS OWN. *** A dark-themed host is
|
|
448
|
+
* the common case, and it defeats the line above through a rule almost nobody has read.
|
|
449
|
+
*
|
|
450
|
+
* `color-scheme` INHERITS. A host that sets `color-scheme: dark` anywhere above this
|
|
451
|
+
* element - and every Tailwind, NextUI, MUI or shadcn dark theme does, usually on
|
|
452
|
+
* `<html>` - passes it down to this iframe. The frame's own document computes `normal`.
|
|
453
|
+
* CSS Color Adjust says that when an iframe's used colour scheme differs from its
|
|
454
|
+
* embedder's, the UA must render the iframe OPAQUE in its own scheme's canvas colour,
|
|
455
|
+
* and for `normal` that colour is white.
|
|
456
|
+
*
|
|
457
|
+
* The result is a white plate behind the item THAT NEITHER DOCUMENT CAN SEE, because the
|
|
458
|
+
* browser paints it between them: every element on both sides still computes
|
|
459
|
+
* `rgba(0, 0, 0, 0)`, so a host debugging it finds nothing. One integrator lost most of a
|
|
460
|
+
* day to it, walking the whole ancestor chain twice before instrumenting the UA rule.
|
|
461
|
+
*
|
|
462
|
+
* Pinning `normal` matches what the frame computes, which is the entire requirement, and
|
|
463
|
+
* it is deterministic: `normal` resolves light on both sides whatever the visitor's OS is
|
|
464
|
+
* set to. A host that wants a plate behind the item still puts one on the element it
|
|
465
|
+
* wraps this in.
|
|
466
|
+
*/
|
|
467
|
+
colorScheme: 'normal',
|
|
446
468
|
display: 'block',
|
|
447
469
|
}}
|
|
448
470
|
/>
|
package/src/index.ts
CHANGED
|
@@ -76,6 +76,8 @@ export type {
|
|
|
76
76
|
ViewerEnvironmentSettings,
|
|
77
77
|
ViewerGloves,
|
|
78
78
|
ViewerInteractions,
|
|
79
|
+
ViewerLabels,
|
|
80
|
+
ViewerLocaleSettings,
|
|
79
81
|
ViewerOperatorSubject,
|
|
80
82
|
ViewerOverlaySettings,
|
|
81
83
|
ViewerQualitySettings,
|
|
@@ -84,6 +86,7 @@ export type {
|
|
|
84
86
|
ViewerStatus,
|
|
85
87
|
ViewerStickerSubject,
|
|
86
88
|
ViewerSubject,
|
|
89
|
+
ViewerTextDirection,
|
|
87
90
|
ViewerView,
|
|
88
91
|
} from './types.js'
|
|
89
92
|
export { CHEAP_FIELDS, MAP_NAMES } from './types.js'
|
package/src/protocol.ts
CHANGED
|
@@ -75,7 +75,7 @@ export const FRAME_CHANNEL = 'skinhub-viewer'
|
|
|
75
75
|
* decision and it is paid deliberately, in exchange for never shipping a viewer that renders a
|
|
76
76
|
* partly-understood item.
|
|
77
77
|
*/
|
|
78
|
-
export const FRAME_PROTOCOL_VERSION =
|
|
78
|
+
export const FRAME_PROTOCOL_VERSION = 2
|
|
79
79
|
|
|
80
80
|
/* ═════════════════════════════════════════════════════════════════════════════════════════════
|
|
81
81
|
* THE STATE, IN THE FRAME'S WORDS
|
|
@@ -103,6 +103,34 @@ export type FrameItem = {
|
|
|
103
103
|
stickers?: PlacementSlots
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
/**
|
|
107
|
+
* THE COPY THE FRAME DRAWS, AND WHICH WAY IT READS. See `types.ts`'s `ViewerLocaleSettings`.
|
|
108
|
+
*
|
|
109
|
+
* *** EVERY FIELD IS OPTIONAL AND AN ABSENT ONE STAYS ENGLISH, *** which is the whole shape of the
|
|
110
|
+
* feature: a host that translates three of the six must not lose the fourth to `undefined`.
|
|
111
|
+
*
|
|
112
|
+
* `labels` IS ONE FIELD HOLDING SIX, so a patch replaces it wholesale exactly as `gizmoStyle` is
|
|
113
|
+
* replaced - the frame merges a settings group one level deep and no further. This package restates
|
|
114
|
+
* the whole object on every render, so that costs it nothing; a hand-rolled host sending one label at
|
|
115
|
+
* a time is the case to know about, and `EMBED.md` §6 says so.
|
|
116
|
+
*/
|
|
117
|
+
export type FrameLabels = {
|
|
118
|
+
confirm?: string
|
|
119
|
+
cancel?: string
|
|
120
|
+
wear?: string
|
|
121
|
+
seed?: string
|
|
122
|
+
loading?: string
|
|
123
|
+
loadingView?: string
|
|
124
|
+
noModel?: string
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export type FrameTextDirection = 'ltr' | 'rtl'
|
|
128
|
+
|
|
129
|
+
export type FrameLocale = {
|
|
130
|
+
dir?: FrameTextDirection
|
|
131
|
+
labels?: FrameLabels
|
|
132
|
+
}
|
|
133
|
+
|
|
106
134
|
export type FrameSettings = {
|
|
107
135
|
camera?: { fov?: number; defaultZoom?: number }
|
|
108
136
|
quality?: { bloom?: number; bloomSpill?: number; renderScale?: number; antialias?: boolean; shadows?: boolean }
|
|
@@ -112,6 +140,7 @@ export type FrameSettings = {
|
|
|
112
140
|
charmGizmo?: boolean
|
|
113
141
|
gizmoStyle?: { color?: string; shadowColor?: string }
|
|
114
142
|
}
|
|
143
|
+
locale?: FrameLocale
|
|
115
144
|
}
|
|
116
145
|
|
|
117
146
|
export type FrameInteractions = {
|
package/src/state.ts
CHANGED
|
@@ -36,6 +36,7 @@ import type {
|
|
|
36
36
|
FrameCollectible,
|
|
37
37
|
FrameInteractions,
|
|
38
38
|
FrameItem,
|
|
39
|
+
FrameLabels,
|
|
39
40
|
FramePatch,
|
|
40
41
|
FrameSettings,
|
|
41
42
|
FrameSticker,
|
|
@@ -178,6 +179,13 @@ const toFrameSettings = (settings: SkinViewerProps['settings']): FrameSettings |
|
|
|
178
179
|
...settings.overlays,
|
|
179
180
|
...(settings.overlays.gizmoStyle && { gizmoStyle: { ...settings.overlays.gizmoStyle } }),
|
|
180
181
|
}
|
|
182
|
+
// The labels are copied one level down for the same reason `gizmoStyle` is: they are the one group a
|
|
183
|
+
// host is likely to hold in a memo of their own and rebuild in place from a message catalogue.
|
|
184
|
+
if (settings.locale)
|
|
185
|
+
out.locale = {
|
|
186
|
+
...settings.locale,
|
|
187
|
+
...(settings.locale.labels && { labels: { ...settings.locale.labels } }),
|
|
188
|
+
}
|
|
181
189
|
return out
|
|
182
190
|
}
|
|
183
191
|
|
|
@@ -194,6 +202,24 @@ const num = (params: URLSearchParams, key: string, value: number | undefined) =>
|
|
|
194
202
|
if (value !== undefined) params.set(key, String(value))
|
|
195
203
|
}
|
|
196
204
|
|
|
205
|
+
/**
|
|
206
|
+
* One query param per label.
|
|
207
|
+
*
|
|
208
|
+
* *** A `Record` OVER THE KEY UNION AND NOT AN ARRAY OF PAIRS, so it is EXHAUSTIVE: *** a label added
|
|
209
|
+
* to {@link FrameLabels} that is not spelled here fails to compile. Without that, the next label would
|
|
210
|
+
* reach the message door and silently miss the URL one - i.e. it would work on every render except the
|
|
211
|
+
* first, which is the hardest kind of gap to see.
|
|
212
|
+
*/
|
|
213
|
+
const LABEL_PARAMS: Record<keyof FrameLabels, string> = {
|
|
214
|
+
confirm: 'labelconfirm',
|
|
215
|
+
cancel: 'labelcancel',
|
|
216
|
+
wear: 'labelwear',
|
|
217
|
+
seed: 'labelseed',
|
|
218
|
+
loading: 'labelloading',
|
|
219
|
+
loadingView: 'labelloadingview',
|
|
220
|
+
noModel: 'labelnomodel',
|
|
221
|
+
}
|
|
222
|
+
|
|
197
223
|
/**
|
|
198
224
|
* The initial `<iframe src>`, and the state that URL actually expressed.
|
|
199
225
|
*
|
|
@@ -283,6 +309,28 @@ export const frameUrl = (origin: string, desired: DesiredState): { src: string;
|
|
|
283
309
|
if (s?.overlays?.gizmoStyle?.color) params.set('gizmocolor', s.overlays.gizmoStyle.color)
|
|
284
310
|
if (s?.overlays?.gizmoStyle?.shadowColor) params.set('gizmoshadow', s.overlays.gizmoStyle.shadowColor)
|
|
285
311
|
|
|
312
|
+
/*
|
|
313
|
+
* ── THE COPY, AND WHICH WAY IT READS ─────────────────────────────────────────────────────
|
|
314
|
+
*
|
|
315
|
+
* *** IN THE URL AND NOT ONLY IN A MESSAGE, AND THAT IS THE POINT OF PUTTING THEM HERE. *** The
|
|
316
|
+
* labels have to be on the FIRST paint: a gizmo that spells Confirm in English for one round trip
|
|
317
|
+
* and in Hebrew after it is a flicker on somebody's product page, and the whole reason this file
|
|
318
|
+
* builds a URL at all is that the first picture must be the host's own. It is also what gives the
|
|
319
|
+
* raw-`<iframe>` integrator - a PHP shop with a Hebrew page, which is exactly the customer this
|
|
320
|
+
* feature exists for - the same capability with no JavaScript.
|
|
321
|
+
*
|
|
322
|
+
* ONE PARAM PER LABEL, PREFIXED. `?wear=` is already the sticker subject's scratch and `?seed=` is
|
|
323
|
+
* already the weapon's paint seed, so the words cannot be reused bare; `label…` is the same
|
|
324
|
+
* noun-first shape `?gizmocolor=` uses.
|
|
325
|
+
*/
|
|
326
|
+
if (s?.locale?.dir) params.set('dir', s.locale.dir)
|
|
327
|
+
const labels = s?.locale?.labels
|
|
328
|
+
if (labels)
|
|
329
|
+
for (const key of Object.keys(LABEL_PARAMS) as (keyof FrameLabels)[]) {
|
|
330
|
+
const label = labels[key]
|
|
331
|
+
if (label) params.set(LABEL_PARAMS[key], label)
|
|
332
|
+
}
|
|
333
|
+
|
|
286
334
|
flag(params, 'orbit', desired.interactions?.orbit)
|
|
287
335
|
// The wheel gesture is named after the input that performs it, because `?zoom=` is the camera's.
|
|
288
336
|
flag(params, 'wheel', desired.interactions?.zoom)
|
|
@@ -507,6 +555,10 @@ const diffSettings = (
|
|
|
507
555
|
out.overlays = next.overlays
|
|
508
556
|
changed = true
|
|
509
557
|
}
|
|
558
|
+
if (next.locale && !localeEqual(previous?.locale, next.locale)) {
|
|
559
|
+
out.locale = next.locale
|
|
560
|
+
changed = true
|
|
561
|
+
}
|
|
510
562
|
|
|
511
563
|
return changed ? out : undefined
|
|
512
564
|
}
|
|
@@ -517,6 +569,18 @@ const overlaysEqual = (a: FrameSettings['overlays'], b: FrameSettings['overlays'
|
|
|
517
569
|
return a.stickerGizmo === b.stickerGizmo && a.charmGizmo === b.charmGizmo && shallowEqual(a.gizmoStyle, b.gizmoStyle)
|
|
518
570
|
}
|
|
519
571
|
|
|
572
|
+
/**
|
|
573
|
+
* *** COMPARED BY VALUE AND NOT BY IDENTITY, WHICH IS THE WHOLE REASON THIS FUNCTION EXISTS. *** A host
|
|
574
|
+
* resolving labels from a message catalogue - `{ confirm: t('confirm') }` - builds a fresh object on
|
|
575
|
+
* every render, and `t()` returns the same string every time. Identity alone would therefore post a
|
|
576
|
+
* `set` per render for ever, and the labels reach a gizmo the user may be mid-drag inside.
|
|
577
|
+
*/
|
|
578
|
+
const localeEqual = (a: FrameSettings['locale'], b: FrameSettings['locale']) => {
|
|
579
|
+
if (a === b) return true
|
|
580
|
+
if (!a || !b) return false
|
|
581
|
+
return a.dir === b.dir && shallowEqual(a.labels, b.labels)
|
|
582
|
+
}
|
|
583
|
+
|
|
520
584
|
/**
|
|
521
585
|
* True when a patch would cover the canvas - see {@link IDENTITY_FIELDS} and `CHEAP_FIELDS`.
|
|
522
586
|
*
|
package/src/types.ts
CHANGED
|
@@ -500,7 +500,89 @@ export type ViewerOverlaySettings = {
|
|
|
500
500
|
}
|
|
501
501
|
|
|
502
502
|
/**
|
|
503
|
-
* *** THE
|
|
503
|
+
* *** THE VIEWER'S OWN COPY, AND WHICH WAY IT READS - for a host whose page is not in English. ***
|
|
504
|
+
*
|
|
505
|
+
* The frame draws a few strings of its own: the confirm and cancel buttons on a gizmo, the words on
|
|
506
|
+
* its number fields, and the loading card. *** THEY ARE INSIDE ANOTHER DOCUMENT, ON ANOTHER ORIGIN,
|
|
507
|
+
* SO NOTHING ON YOUR PAGE CAN REACH THEM *** - not your `dir`, not your `lang`, not your stylesheet
|
|
508
|
+
* and not your message catalogue. A localised host that could not send them would ship an English
|
|
509
|
+
* editing UI floating over its own translated modal, with no way to fix it. That is what this is for.
|
|
510
|
+
*
|
|
511
|
+
* *** THERE IS NO LANGUAGE TAG AND THERE WILL NOT BE ONE. *** We do not ship translations - passing
|
|
512
|
+
* `'he'` would mean us guessing at your product's voice out of a catalogue you cannot see, and being
|
|
513
|
+
* a version behind it for ever. You already have these words in your own catalogue; send them.
|
|
514
|
+
*
|
|
515
|
+
* const t = useTranslations('viewer')
|
|
516
|
+
* settings={{ locale: { dir: 'rtl', labels: { confirm: t('confirm'), cancel: t('cancel') } } }}
|
|
517
|
+
*
|
|
518
|
+
* *** EVERY LABEL IS OPTIONAL AND AN ABSENT ONE STAYS ENGLISH. *** Translate two of six and the other
|
|
519
|
+
* four keep working; there is no half-resolved state and no `undefined` reaching a button.
|
|
520
|
+
*/
|
|
521
|
+
export type ViewerLocaleSettings = {
|
|
522
|
+
/**
|
|
523
|
+
* The TEXT DIRECTION of the frame's own overlays. Default `'ltr'`.
|
|
524
|
+
*
|
|
525
|
+
* *** IT IS THE TEXT AND NOT THE LAYOUT, and that is a decision rather than a shortcut. *** The
|
|
526
|
+
* gizmo's pill stays left-to-right in both: it holds a NUMBER and a confirm/cancel pair, neither of
|
|
527
|
+
* which is prose, and its placement is solved in canvas pixels against the item's own silhouette -
|
|
528
|
+
* a mirrored gizmo would move the buttons away from the thing they belong to. What this does move is
|
|
529
|
+
* the loading card and every sentence the frame draws.
|
|
530
|
+
*/
|
|
531
|
+
dir?: ViewerTextDirection
|
|
532
|
+
/** See {@link ViewerLabels}. */
|
|
533
|
+
labels?: ViewerLabels
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
export type ViewerTextDirection = 'ltr' | 'rtl'
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* The frame's user-visible copy. Anything you leave out stays English.
|
|
540
|
+
*
|
|
541
|
+
* *** WHAT IS DELIBERATELY NOT HERE: the instruction card, the protocol-mismatch card and every
|
|
542
|
+
* `onError` message. *** Those are addressed to YOU rather than to your user - they say a link did not
|
|
543
|
+
* decode, or that this package is a version behind the embed - and a translated diagnostic is a
|
|
544
|
+
* diagnostic you cannot paste into a search. They stay in English on purpose.
|
|
545
|
+
*
|
|
546
|
+
* Each string is at most 64 characters, must be non-empty and may not contain control characters. A
|
|
547
|
+
* label that breaks any of those is dropped, named through {@link SkinViewerProps.onError} as
|
|
548
|
+
* `bad-message`, and the English one is used - the frame never truncates a string to fit.
|
|
549
|
+
*/
|
|
550
|
+
export type ViewerLabels = {
|
|
551
|
+
/** The gizmo's confirm button, which has an icon and no text of its own. Default `'Confirm'`. */
|
|
552
|
+
confirm?: string
|
|
553
|
+
/** The gizmo's cancel button. Default `'Cancel'`. */
|
|
554
|
+
cancel?: string
|
|
555
|
+
/**
|
|
556
|
+
* The sticker's scratch field on the gizmo pill - the word ON it and its accessible name. Default
|
|
557
|
+
* `'Wear'`. Uppercased by the frame's own type styling, so send it in your normal case.
|
|
558
|
+
*/
|
|
559
|
+
wear?: string
|
|
560
|
+
/** The charm's template field, on the same terms as {@link wear}. Default `'Seed'`. */
|
|
561
|
+
seed?: string
|
|
562
|
+
/** The loading card, and the spinner's accessible name. Default `'Loading'`. */
|
|
563
|
+
loading?: string
|
|
564
|
+
/**
|
|
565
|
+
* The card shown while a VIEW CHANGE settles. Default `'Loading {view} view'`.
|
|
566
|
+
*
|
|
567
|
+
* `{view}` is replaced with the view's own name - `Gun`, `Hands` or `Agent`. *** THE PLACEHOLDER IS
|
|
568
|
+
* OPTIONAL, AND LEAVING IT OUT IS HOW YOU AVOID AN ENGLISH WORD IN YOUR SENTENCE: *** those three
|
|
569
|
+
* names are the frame's and are not translatable, so a host that does not want them writes a
|
|
570
|
+
* sentence without the placeholder and loses nothing but the which-view detail.
|
|
571
|
+
*/
|
|
572
|
+
loadingView?: string
|
|
573
|
+
/**
|
|
574
|
+
* The notice over a COLLECTIBLE whose 3D model we have not published yet, where the viewer shows the
|
|
575
|
+
* item's in-game icon instead. Default `'This item's 3D model has not been published yet - showing
|
|
576
|
+
* the in-game icon instead.'`
|
|
577
|
+
*
|
|
578
|
+
* The only sentence in this list rather than a word, and the only one a shopper reads without
|
|
579
|
+
* touching anything - which is why it is here and the instruction cards are not.
|
|
580
|
+
*/
|
|
581
|
+
noModel?: string
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* *** THE GROUPS ARE THE ONES THE FRAME SPEAKS, AND NO MORE. ***
|
|
504
586
|
*
|
|
505
587
|
* The design notes also sketch `autoRotation` and `sound`. They are deliberately absent: the
|
|
506
588
|
* `/frame` protocol carries neither today, so a prop for them would be a prop that silently does
|
|
@@ -512,6 +594,8 @@ export type ViewerSettings = {
|
|
|
512
594
|
quality?: ViewerQualitySettings
|
|
513
595
|
environment?: ViewerEnvironmentSettings
|
|
514
596
|
overlays?: ViewerOverlaySettings
|
|
597
|
+
/** See {@link ViewerLocaleSettings}. Absent is English, left-to-right. */
|
|
598
|
+
locale?: ViewerLocaleSettings
|
|
515
599
|
}
|
|
516
600
|
|
|
517
601
|
/**
|