SDK releases
Load a release from its address on Pixonaut’s CDN, with the integrity listed for the file, as Embed the designer shows. A release never changes once it is published: a fix is a new release. Each release says what changed since the one before it, changes that alter what an existing embed shows first.
A release keeps working against the live api until 6 months after the next one is released. It stays served at its address for at least 24 months from its own release, and never for less time than it keeps working. These promises may be lengthened, never shortened.
A template your release cannot draw
Section titled “A template your release cannot draw”A template made after your release may use something its renderer cannot
draw. Every release after 0.14.0 names itself to the api, which refuses it
such a template rather than hand over a design it cannot show: mount
rejects with a PixonautApiError whose code is sdk_outdated and whose
minimumSdkVersion names the first release that draws the template, or is
null when no release does yet. A document the renderer cannot read that
reaches it anyway, a template you pass in or a stored design, rejects
mount with an UnreadableDocumentError (code document_unreadable).
Either way the designer is torn down, onError hears it with
action: "mount", and nothing throws outside mount.
try { await Pixonaut.mount('#pixonaut', { publishableKey: 'pk_…', templateId: 'classic-tshirt@2' });} catch (err) { if (err.code === 'sdk_outdated') { console.error(`this template needs SDK ${err.minimumSdkVersion ?? 'a later release'}`); } else if (err instanceof Pixonaut.UnreadableDocumentError) { console.error('this SDK release cannot read the design: update it'); }}0.22.0
Released 2026-11-02. The latest release: it works until 6 months after the next one. Served until at least 2028-11-02.
New
- The preview’s shape (#3001):
product.getPreviewAspect()answers the width over height of what the preview shows, and apreviewShapeevent says when it changes, so a host can give its frame that shape and draw no bars either side of it.
Changed
- A preview opened on the Design view with no photo measured takes the print’s shape, no longer a square (#3001). Choosing Design after a photo keeps the photo’s shape, so that switch does not jump.
- Delete on a lone text field sits on its hint’s row (#3001). An image, several fields or a text with no hint keep a row of their own.
- A preset for customer-added layers can be a look of its own, on a template holding no layer of that kind (#3003).
Fixed
- “Create with AI” shows “Changes applied” with Undo for an answer that only adds or removes a customer’s own layer (#3008). It showed Pixel’s reply, or the failure message when the reply was empty, and offered no Undo.
Client types
- The client’s types follow the api: a store’s webhook address can be set and changed (#3013), a printshop’s credential guide can name its config fields and it says whether it has partner photos (#3011), and a Pixel turn’s tool list has a limit in bytes (#2987).
- A sandbox store whose webhook address does not answer is enqueued no delivery
(#3013). Once its address moves or answers, only what happens from then on is
delivered: what was waiting is dropped, so a store catches up by pulling
GET /v1/events.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qMp/+mESHBlLWcrkTUMYby43w8A0bMwclnbAkYxRgefOICyVlA4q/ZfVxCEE0Kdr |
| pixonaut-client.js | sha384-iMUT3C/i+b4VRRTfeEdtV2gZXmFPOHiLHA62MmKfZwDeMH8cW99Km09XHlDnvMYo |
| pixonaut-core.d.ts | sha384-NKTO9SsX8/Km1nCr32yiOPqpva7P0UaVnxxBE2Q4b0bqqWj0Y27Ugqq/jJ4co47Q |
| pixonaut-core.js | sha384-8FELw/Y8znGOyI/IcxRa1sdh8u57HNY2OTlaxCsDW2yJ0o/F0Elnqn2ZInmEGi5N |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-AsCIHhWsuvqeiqdECwpwphaQwXoFitoV9InsPUOPoz2zyYCUbtCRjGEimG4pLJBU |
| pixonaut.d.ts | sha384-LuewxIAaXVkeowf5AN0wRmb+AZ4K7vAChylJd6AaS6C3gF6Bs3ai0NyidUkIOU2W |
| pixonaut.esm.js | sha384-5EiY692akz/Vs+nUhbQw7SxE2hG/d1w/1mrUekXWITPHGaVP1fmcouLewHOMRsiH |
| pixonaut.iife.js | sha384-3HeZyOhjIYrwU73wjaZ2IAzklTrFuVVoYaz+fnlLaZpDY1XpWIh59pWXA2KFdjEM |
| pixonaut_wasm.js | sha384-rZylPmOB3KzQM+YAMXYBdjqKojHQnM0IxFhC2ZgvdPmHyAZr6JbCbLFGgxU2THwD |
| pixonaut_wasm_bg.wasm | sha384-/3a9i/BFz3Tvnj9DYIP92IZhtkvu5b4BXMPq5L1djoCRLdQQp45XpVjjpW/YHkMG |
| schema.d.ts | sha384-25IL+DNnFJ8pyWk7VSZB4s18KJ9jcNWRwbFjwbfnx+UXZM4FGGBjoSe/OtcXIXpp |
0.21.0
Released 2026-11-02. Works against the api until 2027-05-02. Served until at least 2028-11-02.
New
- “Create with AI” (#2923): the form’s always-open “Ask Pixel” block is
now a compact control: a button that opens a one-line prompt, then one row
per state (generating with Cancel, changes applied with Undo, reverting,
and the failure message with Try again).
pixel.ask(prompt, { signal })takes an abort signal: a cancel rejects with the signal’s reason, stops the request in the api and applies nothing of it, andon('pixel')hears a newcancelledstatus. An answer names the pictures Pixel is cutting out (cutOuts). - A customer’s own layers (#2866, #2872, #2919, #2960): on a template that
allows them (
customerLayers), the form offers a step or a chosen place to add text, pictures and shapes, a card per added layer with the fields its preset offers, and Remove. A correction shows the layers the design added. Shopper Pixel adds, changes and removes them too, and an answer lists them underlayers(PixelLayerChange). - Delete on a template layer (#2952): a layer with
deletable: trueoffers the customer Delete and Restore. A design lists what it deleted under$deleted, and the preview, proof, mockups and print file leave it out. - Values for dark garments (#2961, #2966, #2969): when the customer picks a
dark colour, the designer draws the template’s
onDarkvalues, in the canvas, the proof, the committed design and the pictures of other variants and templates. - Recolour and invert tones (#2953): two more tones for an image layer’s photo adjustments, offered in the form.
Changed
- The form’s
pixel.*messages (#2923):pixel.legend,pixel.askandpixel.askingare gone, replaced bypixel.create,pixel.generate,pixel.generating,pixel.generating-hint,pixel.cancel,pixel.close,pixel.dismiss,pixel.try-againandpixel.undoing. A host that overrides the old keys moves to the new ones. - The canvas selection chrome is redesigned and takes the accent (#2916): a solid frame with a light halo, round and pill knobs in larger hit boxes, and a rotate knob on a stem. A short layer can be dragged again (#2970).
- The client’s types follow the api: designs, customer sessions and prints answer in camelCase (#2921, #2950).
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qMp/+mESHBlLWcrkTUMYby43w8A0bMwclnbAkYxRgefOICyVlA4q/ZfVxCEE0Kdr |
| pixonaut-client.js | sha384-XPemnClJDxHzF3zMglDOvdVNlMpES6PjL1lmQXSycZ81FG6zcN5EIVd8egIFV99Q |
| pixonaut-core.d.ts | sha384-JDmPKnNrJuL2M6HfS03YW2zwrMiAfyjbin/2kdggKwKbFFdbGEH04QhWEjRXVQve |
| pixonaut-core.js | sha384-JDJNZqmsRuMva9yQScOLO4jH3k/gqU1RBbyofXKKhfOyQw4r+EoQXbC3m0UKORN4 |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-9gjbAwDy8e9d0dDs/oSBRpqTqWdKC3tc8LLtTPn54+EGnYUU8obZ5g2m0Q+sQyyG |
| pixonaut.d.ts | sha384-2f/Kd8s6KnuRqvJQ9zo5F97SEfeR0O9/uxikvuYFliNvwi00OJUSPGh30dEBN5/J |
| pixonaut.esm.js | sha384-rCyd4VA2oPpUAZJ7RDnhyrSQIf8w1s9bNit1/YW8+tR0nquUNK2/sPqCb68TuwGk |
| pixonaut.iife.js | sha384-AdsybEoDTynBw5tWlpcHz0DETG8/i8VHeuosho3hsEtIhbt6vaOaxyXo6sEMFBI5 |
| pixonaut_wasm.js | sha384-tolCRPVcMZ/kYncR5eB9yProJswf60HIBlRoTaLMjdcALgVr7tMYGeulwYI8P2EY |
| pixonaut_wasm_bg.wasm | sha384-vJ4h0JhvnQ2KJjwy8+73pASZ8Dn0OmV6IXjcJHKpnWepbRoQwe4J9JHIYCI1f7M2 |
| schema.d.ts | sha384-nk4kfICjS//gbwVxO2qbiz9ZnmMOLGXsorqo5wXKG9RP41/mMvtsEp6LADMm5jdu |
0.20.0
Released 2026-10-31. Works against the api until 2027-05-02. Served until at least 2028-10-31.
New
drawAtTemplateRatio(#2859): a mount option, and a template setting of the same name, that draws the canvas and the live preview at the template’s own ratio at every print size, scaled the way the template’s fit prints it into the chosen size. A size change rescales the canvas and never reshapes it. The effective value isopts.drawAtTemplateRatio ?? template.drawAtTemplateRatio ?? false, so a mount that leaves it out keeps today’s behaviour unless the template turns it on. It has no effect on panel layout mounts, stored-design and correction mounts, a shaped print area or a design that repeats. The upload and background resolution checks still measure the chosen size, and proof, commit and validation requests carry the mount’s value when it set one. A non-boolean value counts as left out, with oneconsole.warnnaming the option.
Changed
- The core accepts a template that carries
customerLayers(#2833): it loads, takes a design and serialises it back unchanged. The designer does not offer customer-added layers yet.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qMp/+mESHBlLWcrkTUMYby43w8A0bMwclnbAkYxRgefOICyVlA4q/ZfVxCEE0Kdr |
| pixonaut-client.js | sha384-nyL7+uHZAFdyj8+arZldeEdSTBFPww33ypjcvcH8qM1+ovNe7NcIHwoXH7YgpCAG |
| pixonaut-core.d.ts | sha384-XoeI0qD30pnZrhTJtqYpZQpY6NJxyO+j65AvFiLoG8C9nfnropzN0n4EYsLDg57k |
| pixonaut-core.js | sha384-8dSuFU0y99fW0jvPV2nxTpU/JfRft51nylRFkakXIOxwyOax7w9UznH22s1BgSwn |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-qYsMdcHirMWqWpiWrF5KXweKBLm1rsYp7WvPDFpeqcbRDyD0D+AxoMJ3Azbm/cbH |
| pixonaut.d.ts | sha384-UP3ClDhlvk8BfENaAfeb/p0EsUl5dZvdQd8RtDJtoZ1xjmg6LT5RkorAhglnXF17 |
| pixonaut.esm.js | sha384-jxKJpCwy9ojJ3XgA1myAGS9WnhHTTBuxsxwnas52SdiwokigWO/QhhYMmEp0qcH1 |
| pixonaut.iife.js | sha384-Uly6La88b9g2Px07WpYJ1aQV6P/wFUheG69GXb0Ju8O6mYsCN9NP/kjBSSqtzGHq |
| pixonaut_wasm.js | sha384-Mop701qQJqV44bq72JYWVdq6xz1gdEuzCRukKzI4VL7GpFhCtzZHJ4gU118gT+MU |
| pixonaut_wasm_bg.wasm | sha384-hOVHLpVZS6Vr08lvpCeCF2ytoch+44CpVv3QA0w/ETAf9KWuoM8K1dF09TPCpCoC |
| schema.d.ts | sha384-2juD3/v6kYtKOST3jUyptW13QV/BrtBxRhXprbmW1m+p/5luF12etjru2XUEOEJr |
0.19.0
Released 2026-10-30. Works against the api until 2027-04-30. Served until at least 2028-10-30.
New
ProductVariant.printable(#2795):getVariants()says whether the design can print on each variant, judged as a commit judges it: a chosen print size against the variant’s print area, else the sizes the template’s constraints read reports it cannot print at (a repeated design is not held to those). On a cut-and-sewn placement, where the print is the whole panel, a template whose ratio matches one size’s panel does not fit another’s. The default option picker disables a size no printable variant has, labelled “not available for this design” (the newvariants.misfitmessage, translated), keeps fitting sizes and every colour choosable, and checks again when the repeat or the print size changes. A placement’s box carries the misfits asmisfitSizes.
Changed
- A long font or shape choice is a select (#2792): a font, shape or fit field with more than eight options shows as a drawn select instead of a row of tiles. Each font’s name in it is set in that font, and each shape is shown beside its name, led by None when the shape may be left out. The list opens on a click and answers the arrow keys, Home, End, Enter, Space, Escape and a typed letter.
Fixed
- Clicking a layer on the preview selects it only when the customer may move, turn, scale or resize it (#2792). A fixed layer, such as a name set by the template, no longer draws a selection box; its text, opacity, flip and crop choices stay on the form.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qMp/+mESHBlLWcrkTUMYby43w8A0bMwclnbAkYxRgefOICyVlA4q/ZfVxCEE0Kdr |
| pixonaut-client.js | sha384-oHjEbAX3uTcP4X6K3xrjlNDiqdcrn5uxa2PJF0M0BDzgRvxo7/d2CLJBQvOGEZTa |
| pixonaut-core.d.ts | sha384-izR2Qw3NFh971Dzg5EMJNaROhFS0ZOFc4GJdPrxFIWywlAhlnX2w61P3ZwKPvEzR |
| pixonaut-core.js | sha384-gFSYOV87CFiFoOEAnP9s48aV1EDtlJAglTvml95QvEQ4dMsMwOSB+9Lxd0V+ZXR8 |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-ZOVuVnyLp8ygIDEITSZuclL7fbEQaUr7jx4qyRF0pjrMqNjGmLc/SiOvdgSOG7dO |
| pixonaut.d.ts | sha384-5D1l6SK385SW7lDtpfKqr6PmUXqBF+CxUKVFaRqLt442W69p3Pu+r15VsbXAFDWo |
| pixonaut.esm.js | sha384-8tFUR4imcD9Hh+7oBi/rXJnyZt9l/wpN4p/xHti01OFY6VlNfuspVtZ6lAtn3/mz |
| pixonaut.iife.js | sha384-BH+dhKvhwgyaTfVfBcGecQ/9PB/KaOf4B2qe7zTyiJIJrYCUD6WYuiR2fjXMnVaQ |
| pixonaut_wasm.js | sha384-ZyV4yg5ybAlcNGL8QhgZc9aPxm5M2QJ+lG13GKrLSnUSIi3gxNABNusY9Vg0nF03 |
| pixonaut_wasm_bg.wasm | sha384-HObJ5awMH3UvYBspM+CpJy7JUPn3AB3Q42EpUX+VDfLCogGPi2jvSWBowSlXWQaC |
| schema.d.ts | sha384-KqMMr0PBMto2Y6z1Ndf8yw1y853QrzXsIhxOaMLvX0LSyF+WXUhn79VSInkROm+q |
0.18.1
Released 2026-10-30. Works against the api until 2027-04-30. Served until at least 2028-10-30.
Fixed
- A split preview mounted under the host’s own markup keeps its part’s
width while the loading cover is up (#2786). The cover held the preview’s
shape with
aspect-ratiowhile the photo gave the stage a height, so the stage narrowed on every placement and the page under the preview jumped at the reveal. The cover now holds the shape only while the stage has no height of its own. - A text drawn in a text case draws every letter from its font subset (#2788). Subsets were cut from the stored text, so a text shown in capitals (or title case) drew the capitals missing from the subset as missing-glyph boxes. Each subset now holds the characters the text draws in its case: the template’s, a stored design’s, or the customer’s choice.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qMp/+mESHBlLWcrkTUMYby43w8A0bMwclnbAkYxRgefOICyVlA4q/ZfVxCEE0Kdr |
| pixonaut-client.js | sha384-VOGf1qSFXmz32faSEfvLMfoLQc2UcTLqN0jnUK4gCOYETAVBa/o66vzrNmjdynb8 |
| pixonaut-core.d.ts | sha384-RpvoR3gxDtgBhM2Fo6mqTQliI0n/9lh7WBgJmXz/jxsdPGM7U8QELr4sq8A7CZcc |
| pixonaut-core.js | sha384-7r9F4XVKhGoANIq0NGyLDczSdFZNY2TfOYqWKMh2gRdPF3QYyaHYaVnoBQrwR4Ad |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-FnZ/Q1gLgGN+K7RVOiko8Gsge7z28E3J5cwjxGcba6TeJ7OELq6rujvbfCwP3a+V |
| pixonaut.d.ts | sha384-JJaM534Yg2GaDiEafrd+HTsBxZOE54PMvJD51JSefPGaUfqPOFB7PMupE2oSxDG7 |
| pixonaut.esm.js | sha384-9wIRhHbmKjIEd6wE/r/3HpxIFIgWKNp7zrxOJI7Xcu0PyF5Ae1hzztoXjv+xt4za |
| pixonaut.iife.js | sha384-W9myqLPUBma8vXdMHkXc9KrL2df00H2E53Jmt1rbMJ3SUmqxq2wVFjo0whYotuJm |
| pixonaut_wasm.js | sha384-e/dT3TlbLLl+DTtNPQzsjJmgBfrDkBMMp2hjLIW0oArdedlpx4yUBz++ytK0XnjB |
| pixonaut_wasm_bg.wasm | sha384-SR0cl8gZLkSAJ2AkKdnTP+HXYdVpZewvHl/mtUsunseCF8VM6x7VkcuUq8A82T4h |
| schema.d.ts | sha384-pXzb6WbEI8gxjkLvSUvS6QueanEXHIyxlGIwWXQB2zIXgITXxTMqqzvOxfW1Ea+f |
0.18.0
Released 2026-10-30. Works against the api until 2027-04-30. Served until at least 2028-10-30.
New
- Pixel for shoppers (#2770):
designer.pixellets a shop’s customer ask Pixel to change their design (“write my name in gold”).available()says whether the template has Pixel for customers on,ask(prompt)applies what Pixel changed as one step and answers with its reply and the changed fields, andundo()puts them back, keeping any field the customer has changed since;busy()andcanUndo()say what the controls may do. The designer draws a prompt where the template turns Pixel on, emitspixel(asking,done,failed,undone), andaskrejects withPixelUnavailableErrorwhere it is off.onErrorhears a failure withaction: "pixel". The prompt’s words arepixel.*messages. markTarget(#2752): a mount option naming an element of the host’s for “Powered by Pixonaut”, so the mark can sit below the preview card, outside its border. Without it the mark sits under the stage as before.
Changed
- “Powered by Pixonaut” is drawn as Pixonaut’s mark (#2752, #2757): “Powered by”, the logo and the wordmark, linking to pixonaut.app. The logo is inlined, so a shop’s page makes no extra request for it.
Fixed
- A repeat across linked sides is sized at the group’s widest print area when the designer offers a size in one colour alone and no variant is shown, as the saved design is (#2767).
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qMp/+mESHBlLWcrkTUMYby43w8A0bMwclnbAkYxRgefOICyVlA4q/ZfVxCEE0Kdr |
| pixonaut-client.js | sha384-jr5fs0eXyEXgCRQ1g9EqLUn7vuy0WxGp+kC6SVKJOv0wU62J6+IHNBjeBqFceHi/ |
| pixonaut-core.d.ts | sha384-RpvoR3gxDtgBhM2Fo6mqTQliI0n/9lh7WBgJmXz/jxsdPGM7U8QELr4sq8A7CZcc |
| pixonaut-core.js | sha384-/31eUelCP3kVSVciDx9fY0R86aliNvZM1YMi43m0VaQQjYzdOo8HUQ5l1ImJ1xCq |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-7NNKDxQKc2NoHP9gYh3CV4bwrrr3622Hon8CVGmGFNIppz9nr7OXLypyqvHah+7Y |
| pixonaut.d.ts | sha384-JJaM534Yg2GaDiEafrd+HTsBxZOE54PMvJD51JSefPGaUfqPOFB7PMupE2oSxDG7 |
| pixonaut.esm.js | sha384-lp/Trcd5spA+axEBlND26meKXv0X3YV+hgcCYqKKHPz7tLWs1UHxMjUZIBaFzCn6 |
| pixonaut.iife.js | sha384-KYfQS4eY615spVh8Qwuo9yUFOK+RCdWPJPKvcbS6GOYeG+cA+FTdnhZMo4Hx2DxA |
| pixonaut_wasm.js | sha384-VZW9yOBv5xxTwyB4Z2ZU1sXxQG+kHpt7NWV5sB6ibuAqoStgztv4cW96k8eO6H9V |
| pixonaut_wasm_bg.wasm | sha384-rsqfMvx34zKO24kJp0vRR7dSR7fXRfQ8E65nko9lhHbOUSBDK6uBW+Z8nghT1jck |
| schema.d.ts | sha384-Zg7dckHrfTzQgdERUxg60gTdK/YoP0KqFzkkchdHSbZkHbQdY9g6bf0rKBE+w/yp |
0.17.0
Released 2026-10-29. Works against the api until 2027-04-30. Served until at least 2028-10-29.
New
- Repeats (#2162, #2175, #2186, #2199): a design can repeat its
template as a
grid,brick,halfDroporscatterpattern. Turn it on with therepeatmount option ordesigner.enableRepeat(), read it withgetRepeat(), change it withsetRepeat()and turn it off withdisableRepeat();shopperMayChangeandshopperMayTurnOffsay what the shopper’s controls may do. The designer emitsrepeatwhen it changes. See “Repeats and linked sides” in the docs. - Linked sides (#2160, #2175, #2186): with
linkedPlacements, one design drives several placements, each printed at its own area and optionally mirrored (presetseach,suggestedandall, or your owngroups).setSideLink()links, unlinks or mirrors one side, and the designer emitslink. A commit over several placements returns each saved design indesigns, and keeps those that saved when one fails (#2196). - Panel layouts (#2003, #2060, #2387):
panelLayoutmounts the designer on a cut-and-sewn layout’s canvas. The shopper drags, sizes and nudges a picture on its preview, snapping to placement centres, and the link commits through it. - Garment views rendered from a 3D model (#2401, #2431, #2660): a UV-mapped view draws each print through the garment’s pieces and dyes the garment in the chosen variant’s colour. The views strip redraws its thumbnails in that colour (#2696).
- Cut-out (#1938): a customer’s uploaded photo can have its background
removed in the form.
onErrorhears a failure withaction: "cut-out". - Pictures: an outline (#1937), a scatter over a repeat (#1968, #1993), a cover crop that keeps any of nine points (#1959), a crop frame drawn on the product photo where the picture prints (#2385), and a picture centred on a panel layout’s placement (#2379).
- Print area shapes (#2313, #2339): a print area can have a shape with cut-outs, and fills, prints and previews honour it.
showPlacementFrame(#2483): draws the placement’s frame on the preview; off by default.onVariantChangeandDesignerProduct: the product methods (getVariants,setView,renderViewand the rest) now live onDesignerProduct, whichPixonautDesignerextends, withrenderSidePrint()andsetSidePrint()for one side’s print.- Client (
Pixonaut.createClient):pixelConversation.get()reads an integration key’s own Pixel conversation (#2723), and itsworkingsays whether a turn still holds it (#2728); an order job’sbundle()downloads every file as one zip (#2725); an asset’scutOutStatus(); and a blank view’s mockup.
Changed
- Faster drawing: the renderer is built with SIMD (up to 2.4× faster prints, #2627), side prints are drawn on a small pool of workers (#2618), the shown view draws first (#2575), and each side’s print is drawn once per change (#2572).
- A cover background covers the print’s bleed box (#2726) in every render, not only the trim box.
Fixed
- Tiles of a repeated picture join without a line between them (#2380).
- Mockup print edges are smooth along a product’s outline (#2334).
- Each view keeps its picture across view switches (#2398), and coming back from the Design view keeps the garment view as drawn (#2621).
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-oGR1rSzllU7++N2LOAZO1s1lgGWPmUukVOyTf9LTkRe9PZ44zs30cB4g/eYXuYTR |
| pixonaut-client.js | sha384-2lMWnECMJyzGdOnflcSCS8oDgB3n9MeeMc4cN+5BAcTOpy6yBPyj3d2IAYMkTZR7 |
| pixonaut-core.d.ts | sha384-DjqO4tevF5DonAGWQTpcrRvE24uOyl4qtiZf2ZgK6ilybIibG7qn/87lqpq7sZzQ |
| pixonaut-core.js | sha384-xTTfnkYNEx7PJj+cOCqv/tD/9Xtty6FXpVuS7rJioPi95EnyIT/m3Df7oV9WcKAM |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-bYBcrAVtNDNOiJETtWHhlFdFVYEFXOln4hfrSSlSSf1XyvC7FFbciMUEjRFhrOcm |
| pixonaut.d.ts | sha384-vpbqVRAC6Fj7RxvoFr30jCygF4LZ8nd3BeBp7q6fhUCnznDQ4usBlyfY0olES9++ |
| pixonaut.esm.js | sha384-92tEVstCeIV2lOYdhjWLa557x6KKpJqLccgJoPiwNQSSyQbPZ2BXVxwKdtjK9ivi |
| pixonaut.iife.js | sha384-VtkXMFgiLmvQFmx5D4n+i8r9vXPv9lJ0HUjZuXMjwOgb6niCCur/SmYTu4ntB12+ |
| pixonaut_wasm.js | sha384-hDOBchgSv3w0sqn9M3AOb/uaoZ+HrYoUyM1+Obfu4nyHDHO2gWomiAD9ncWUMRYL |
| pixonaut_wasm_bg.wasm | sha384-W+HtSai1J6xdei28a/77B4gKDEjtN7uob+bQL6oAX927oNfW1qt9ik0t5Xr+sRfT |
| schema.d.ts | sha384-8xnDccFu30vESwVE//MxqoFTK6xv9ee1dotJXsIdcUA+0WzTIbHSIIE9R1zs4/ue |
0.16.0
Released 2026-10-29. Works against the api until 2027-04-29. Served until at least 2028-10-29.
Changed
- “Powered by Pixonaut” sits under the preview (#2682): the mark is laid out after the stage in every layout (the embedded row’s canvas column, the fill column, the split preview part) instead of over the picture’s corner, so a customer cannot take it for part of the print. A preview part the host holds at a height fits the stage into what is left under the mark. Template previews and proof images the api draws no longer carry the mark at all.
- The form replaces the host’s form markup once it is built (#2702): a split mount over host markup swaps the host’s form markup as soon as the form is built from the template, ahead of the first preview; the preview and view strip are still replaced on the first draw. A mount that fails before then puts the host’s form markup back.
- The template read names its whole page (#2701): the designer’s
template read alone sends the page’s origin and path in
Referer(no-referrer-when-downgrade), so the api can tell which of a shop’s pages shows the designer; it keeps the path and drops the query. Every other request is unchanged.
Fixed
- The fill panel keeps its bottom padding (#2702): a form laid out as one page in fill mode no longer shrinks to the panel, so its last field no longer runs over the panel’s foot.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-cxu+lIWPc1qvOu6bnlF16cOuWQqX5l3tqGcBrcxpBkcX0Tyvez+WEKdU6L41UyJO |
| pixonaut-client.js | sha384-Q6hVSdBFvirQvlgMVw0oQKNnYZkSkigsbyOjTjY/MuhW7K3CVNc+zJkMJvROeCjZ |
| pixonaut-core.d.ts | sha384-KG1gCTiL00vDs4m1q/P1rQsGvqa2Kyb01kGhOAaiEASEesEJmCwg0MwG6gN2Fdk7 |
| pixonaut-core.js | sha384-xLdgIxyNsuD/r/X0GoW+tftUMaDIW2KvTt3oULNAdUXBgwTWqiHU+pSiUDiOxq7d |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-N4a8i2oThIfnRAsc6sl/sS4qMydfiiShlfHRqbNzDqtXG9j6gSmtUIvWcfEbzl/H |
| pixonaut.d.ts | sha384-vmkTcivmrSreziRo/pOQ0gsANHQT8Bghe66uKJ+Qo+BXOzo6epk4W0K8K2bORf6P |
| pixonaut.esm.js | sha384-/ost5+9YQVhol1mf8LATdqeWOLR+bOcu5WKZi5ESIP8buUweK5eHcCwBXiyVQmqc |
| pixonaut.iife.js | sha384-JHf11DDZojbQZWjvtnecKg14MmkW+aPltUzxusqmQtYZYTZcVOqDa8vewyN1VDRt |
| pixonaut_wasm.js | sha384-OJzdsB8koEA/grGgT6HyvHECPCWoHDQei7oFPOHdhfUj6TpPb7RdQndIFoMOFknd |
| pixonaut_wasm_bg.wasm | sha384-lLhUbxyXLAOXGiiocq5P4cvsBRzntX7SfkZbTxxW9ZpkDwnhumEcs0Nwt1NQKQeW |
| schema.d.ts | sha384-pGbZNi/xZ7Fo4ydJcUhRJL1d7gfIIdcCU8idE2z4QQNzwm0TFn0jvZnIcG+DOYEJ |
0.15.0
Released 2026-10-28. Works against the api until 2027-04-29. Served until at least 2028-10-28.
New
- A release names itself to the api (#2652): every request the SDK
sends carries its release in the
x-pixonaut-sdk-versionheader, and the api refuses it a template or stored design its renderer cannot draw.mountthen rejects with aPixonautApiErrorwhosecodeis"sdk_outdated"and whoseminimumSdkVersionnames the first release that draws the template, or isnullwhen none does yet. Pixonaut.UnreadableDocumentError(#2652): a document the renderer cannot read that reaches it anyway, atemplatepassed tomountor a stored design, rejectsmountwith this error (code"document_unreadable", the renderer’s own failure as itscause) rather than failing inside the first preview. The designer is torn down andonErrorhears it withaction: "mount".
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-sIXyfp5QMnTfOvDo24kVmn0xzeRzRmmDSwTyp32ixFkpWruS8OMFZIRhCmET4BsM |
| pixonaut-client.js | sha384-NJ+KjEi6qHVwcegHkyKD7UmSJg/k6oiyBjcC+KU8lmfzJIdYaoMEY9AhrFvFDOr8 |
| pixonaut-core.d.ts | sha384-KG1gCTiL00vDs4m1q/P1rQsGvqa2Kyb01kGhOAaiEASEesEJmCwg0MwG6gN2Fdk7 |
| pixonaut-core.js | sha384-eVlo//neQKNdkFGVDMQnv1ZXIuqVzI70unbF9M94zotcBFa9CaXfUEBk0xBFyrPP |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-Ln4/+wAkfIIZ+rlC7qfQj2R5/J16v6o9o4JEVyOuJsB0wSkiWsoEsgRVAcb1zDKd |
| pixonaut.d.ts | sha384-ejgzWsYc/E9SkZ7UF/f9yvpfgqrsJDTkqOCj52hX8RHWuEIIgAJuuIemOAn4VaVR |
| pixonaut.esm.js | sha384-3dOlK6M91vmeKgXkC3tvnDceuQJMi4VR8D1JUFzcCJ4poSAjYUPPXHgbOfQoMIli |
| pixonaut.iife.js | sha384-ytFxsmBNDf9BOfY6qHrochxr6Kdxw2LqUznG+K4ViutwU+CtYL7IFELnGaTJF73I |
| pixonaut_wasm.js | sha384-fIezvF2tW405XuU2IlEE5h6tDvND0+Wp7v8LTIgG9xNM3Um9v16gitHeycCLBiye |
| pixonaut_wasm_bg.wasm | sha384-ws3PYQSDRsDgbzIhHHSPdfRi+F/N4+YVuBVhWgc88cbcc2pGTKoa9sznVevUtBJD |
| schema.d.ts | sha384-qGT401ElOm1yy3D1W3HasWrp3GFxcaE6iYdChwjZHF9oILTXA5qeF+4yrJVw/uam |
0.14.0
Released 2026-10-28. Works against the api until 2027-04-28. Served until at least 2028-10-28.
New
- A required change is asked for at its field (#2610, #2638): a
template can require the customer to change a default, such as a sign’s
placeholder name or photo. A design that still holds one, or leaves a
required picture out, is now stopped by
approve()andcommit()before anything is sent: they reject with aPixonautApiError(status422,code"constraint_violation", itsviolations, and the side’splacementIdwhen the item has several), the built-in form marks each field withform.violation.unchangedorform.violation.requiredand shows the step holding the first, andonValidationhears the same list. A refusal only Pixonaut can judge takes the same path. Both sentences are translated into every language the designer ships, and can be overridden throughmessages. - Template showcases on catalogue image links (#2606): a catalogue
image link may draw one of a template’s showcases, and a template’s read
answers each showcase with its own
previewUrl.
Fixed
- The drag hint draws a small pointer beside its words (#2638), not an icon filling the hint with its words pushed out of it.
- What the designer hides stays hidden under a shop’s theme (#2638): a
theme rule setting
displayon buttons,!importantincluded, no longer shows the hidden “improve” button under an upload. - The loading marks keep their colour under a strict
Content-Security-Policy (#2643): they set their stroke through the
style property, which a
style-srcwithout'unsafe-inline'allows.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-YM8AtEo0Y0PhpaI1wsqUQC5lYJoswgjND7ZPAWZ+amtu5gkYuDYE9TwiCgt6vli/ |
| pixonaut-client.js | sha384-ROa40ApAstM1nh9zI3rFs2tZrUuek2YL5rnWX0G7I1zEfMT7nAjZPTrgEhmN+qeC |
| pixonaut-core.d.ts | sha384-y4YOWlqUYLQSbdJuaOI5Jib6V8HnMlGA1Zc8hKO0WYrLmQtVHCDRNWCQlbC3BNCt |
| pixonaut-core.js | sha384-RmZoiD4K66aFxj0hmAnxcIV57YEdMaMTnrTfxqo0Gupx3cw4ibHNCZH89iAwK7d5 |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-yrKypwU9xmpNCeAYe4BZl6m0gwX2SMKsUJsZJWAN3UDUhyiKAWEuHvHjVxsHIz2J |
| pixonaut.d.ts | sha384-qIBz0y99V8xLRkIoYwDdIt/hzmkYKUkgMF5BDD34oIlomw7PlGxTARgpYWvWSqlY |
| pixonaut.esm.js | sha384-rNBqAWELhhZokxiypvctgpbTC65BRC+3euJ0cIdoZw1F3vFrYJ8RYXnvID7zjkG8 |
| pixonaut.iife.js | sha384-8rQBPRChKTIbjkAJ7e1sW31hM495RJMi7Sba1MF54YWvb1a0baNMFojDcQ8hJ1Si |
| pixonaut_wasm.js | sha384-nrmiNGwzDPkrvO9OW0lZ3bZP7w59tAqTmsRdvIRMW7ZPkxFjqpglEG+VkvxhIPlQ |
| pixonaut_wasm_bg.wasm | sha384-1kRBczUXyNuLTQoeuPJe0HVaOCOcWhvMNrcrqHfXnvL/n2jfJb+mQVVT+RmbuOMO |
| schema.d.ts | sha384-dWE8jHEeKNcm0F6Mzb156Cp+kg5lSPkqd9KjbLF8R+HELXmqFRRfdcyUQqqii1Su |
0.13.0
Released 2026-10-27. Works against the api until 2027-04-28. Served until at least 2028-10-27.
New
- Template showcases (#2598):
client.templates.get(id)answersshowcases, the template’s sets of example values by id and name. Pass one’s id asshowcaseto a template’spreview.pngor a placement’smockup.png, and the image is drawn with that set’s values in place of the template’s defaults, cached as the defaults are. An id the template holds no showcase under is 404showcase_not_found. - An upscale offer’s own target density (#2589): a picture’s
upscaleconstraint takestoDpibesidebelowDpi. An upload belowbelowDpiis offered an upscale totoDpi(at mostbelowDpi), priced for that size; one already at its target is not offered one. Theupscalemount option still narrows what the template offers, and an upscale reaches the picture’s target and no further.
Changed
- A font file that fails to arrive is fetched again (#2590), after
1 s and 4 s, before its load fails. A load that still fails reports
every face that failed in its
font_not_loadedvalidation, not only the first.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-YM8AtEo0Y0PhpaI1wsqUQC5lYJoswgjND7ZPAWZ+amtu5gkYuDYE9TwiCgt6vli/ |
| pixonaut-client.js | sha384-8pLTQ77shbUyom8v+swpocrUSR+saheV6IBvHWB9RduXcgSGru73UNAm2JrT8iC5 |
| pixonaut-core.d.ts | sha384-f1thHawa1eM/UF+5qNMFFNK9N2jLxH0HNED9KHTw8Nxfr8I2DwAnsVPCxDHildWX |
| pixonaut-core.js | sha384-Pv/yS2xwwRTQ8DjQq6o5Jpnu8oMp7u8+VDkN5gZEUYhXa9X8LpUFSK0xSHYC/q+U |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-kP9oWgOEY3Mbm1RiNR2sU9iIoXMS6In0UZeIy5u1Qe0BAZegkLIAOfg3tvczZBsT |
| pixonaut.d.ts | sha384-3oSJzik+gKyrbJBYNz/mh5aHVdf5KLvdMPCitbuCskWB7HkguUQmt9vN66BlI707 |
| pixonaut.esm.js | sha384-FGIiPIHdVITH2IGVVMkRHiSHXMwHe8z0oTu1d3Tdz21ZE60klabdokg3lnCzkcp+ |
| pixonaut.iife.js | sha384-EhoyK2jM+PxRrwqo53Wx8ZLJ5d8hYpn8Qb+/+YkGh0zI8UcPFtz98XRL3RUH7+aD |
| pixonaut_wasm.js | sha384-UJD2+waEat8R6u4S4OE8UHnARpDq6e1Pzx75YPySrbjuSohEfhPYv8kNEHqyot7a |
| pixonaut_wasm_bg.wasm | sha384-fQ9gGV7VDJTjmDmMVGNT22Cr2HQqtjlR3UswCg8gISNo6I26PyBovNhyk1mlXBdp |
| schema.d.ts | sha384-IrGJbMiLsZ0PsAl5i7n7wxsYqbH46duJ4FgTzh9hwwBwtAhOcToNuZDxh1IvsaK1 |
0.12.0
Released 2026-10-27. Works against the api until 2027-04-27. Served until at least 2028-10-27.
New
- The designer draws every new layer setting. A template made in the
studio since 0.11 renders in the embedded designer as it does in the
studio and in print:
- layers flipped horizontally or vertically (#2526);
- text along an arc, a circle, a shape’s outline or an open path drawn for it (#2535, #2542);
- a text’s letter spacing, line height and case (#2546);
- gradient fills on text and shapes (#2551);
- outlines, drop shadows and rounded corners on images and shapes, and an image’s outline and shadow that follow its picture’s shape (#2555, #2560);
- an image’s photo adjustments: tone (black and white, sepia, duotone), brightness, contrast and saturation (#2562);
- blend modes, which mix a layer with what is under it (#2565).
- The customer form offers what the template offers (#2526, #2546, #2552, #2557, #2564): a flip, a text’s letter spacing, line height and case, a gradient fill’s colours, an outline’s, a shadow’s and corners’ settings, and an image’s tone, brightness, contrast and saturation each get a field when the template offers them to customers. Their labels are translated into every language the designer ships.
TransformValuesandTransformPatch(#2526):setTransformtakesflipXandflipY, and a stored layer’s transform carries them.OptionMessages(#2546): the messages for a choice field’s options (alignment, fit, text case, tone), whichSdkMessagesextends.client.assets.roundShapes.get(id)(#2563): the circles and rings a picture holds, such as a photo frame or a badge, for a text to curve round.
Changed
- The designer opens sooner. It fetches its renderer while its script runs and compiles it as it streams (#2468), from a smaller wasm (#2462), and loads the subsets of its fonts a template’s text needs first, the full fonts once the page is idle (#2452).
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-YM8AtEo0Y0PhpaI1wsqUQC5lYJoswgjND7ZPAWZ+amtu5gkYuDYE9TwiCgt6vli/ |
| pixonaut-client.js | sha384-0YeFRlK+W0e/dlnYv9+S3WQbz9BBd/N25ajL7v0mo1LK5GiaFj4k7BMWwAaAwn0Z |
| pixonaut-core.d.ts | sha384-Y2NNfsRDdhCFFJktqGr1qcbv+51CL6nbdkvisVFojlK9GEdSHtEFtN7Wx8XULTan |
| pixonaut-core.js | sha384-X3WeGLuLYTnWu+nOkFXg8NRDEm7+1lEzm8hqdE9QxvcLWrO6BVuWH1L4I1EGH4bc |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-DrpkrGgkypyCB4lrr27RCEZpq5YkYIOGl2IaY7wdC6+SIqfitvbRQjo8cM6iPL4G |
| pixonaut.d.ts | sha384-ChOzDMO5nzAL7mdDDSmC0jIJfew22EADahFqDXTaqGQcHxaAwqVcyoP6WAHy6lVU |
| pixonaut.esm.js | sha384-CURmBTSst5vF4oh93WCj4xnm8ELf99dTRNoImLZnIBb1Wh5boNDZyzLK2upPBneu |
| pixonaut.iife.js | sha384-Bn+wO2DnFl1aA/6gFbQLqq/I9mgJPhLYO34rzjKvxkEhmDk8bwH/+Uq/3S0jKKRG |
| pixonaut_wasm.js | sha384-fAl92/uTixF/5Kio30k+gEl1P8d+qFVgD3ja+rVmWZ1l/x1aO7agULoOFoH+xXto |
| pixonaut_wasm_bg.wasm | sha384-kEj376aNFWHEXR8fMkqyppMKzQ4v5uTAFUCFLS2eaxECg/YjjhDxSOtLAKE6dzlA |
| schema.d.ts | sha384-mR6+EmoWlWVJcGChqsuA6uHeyyM6nz5jPsGZzpcwTUzDpoWCZRUwZpWAGfgF0sY0 |
0.11.0
Released 2026-10-25. Works against the api until 2027-04-27. Served until at least 2028-10-25.
New
client.shareLinks.designer.get(id)(#2351): what a designer link was handed out with, for an edit form to start from. A designer link’s settings can now be changed withPATCH /v1/share-links/{id}, and it keeps its id, token and address.
Changed
- The default form holds up under shop theme CSS (#2420). A theme’s
global rules for inputs, buttons, labels, selects and icons no longer
reach the parts the designer draws: one adopted stylesheet reverts what
their inline styles leave unset to the browser’s default, with a
selector that outweighs a theme’s. Elements a host lends into the form
keep the host’s styles. It is built from script, so a CSP without
'unsafe-inline'still allows it. - The SDK’s licence names its licensor (#2325): JPE IT AB, trading as Pixonaut.
| File | Integrity |
|---|---|
| LICENSE | sha384-MV00ik7bg3KDxAYG2LmT6pRlMm/KZfMfvhACxolh8kRi5C+lG8zYm9GpDUF8k0px |
| LICENSE-MIT | sha384-GfDAhGWC7TWUdEi3V+S/ssif42F4il3RjyDHMVf9SUI377mMrcZUwUu5N1m1IJrx |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-+cRX+jMP8V0EKcINS7CKbFHCeVlZxuLdRnOXs3VinYV5wJAy2HOP4y7WmdLzFHfy |
| pixonaut-client.js | sha384-c0Bre4AWaOy/bGgGtH57HdkdL56BeyCTnFNRZRs987BDA2/ZyanMILfQdRT6bmLB |
| pixonaut-core.d.ts | sha384-vgT+P9efXuA9+NXzFS96R5KiA41C6Pgw3ARmhtJVWcg6jVRBZNfunJ7MW9GMnxyE |
| pixonaut-core.js | sha384-CwvHNEvdSLI2pQoSltcuM2lQNrOiRR5ltJqolVZZn2a/4ocGyiBdwaUQjCRjQ76G |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-NETJ7kTSBYBnCUYviicSvwCbbKIyw4TY60nORf6TgTAspNiV+HojVKau1eulJfRJ |
| pixonaut.d.ts | sha384-BwxwgyuGAXGcQrJV9dDHinQr8jG2z+JwkcV+CiOgBSVKPif48nhzjycHeqTCyG7E |
| pixonaut.esm.js | sha384-wz+Q7tUWssz68ALmbJn5xS+1Uv2c9KlVLbhKXXDatm/SWcbfWb3R/wUU/+e00Spe |
| pixonaut.iife.js | sha384-8gKlcLuuurNd2+SZZVpsv6JegmzZ5k/+KYIlS4ES9tTNntAUN2ppa0cA4OgHg1gK |
| pixonaut_wasm.js | sha384-NFMDPFpd+V4pYDO9Iw0xZoWcg0wlRAjhpEhz1dGJXZrKtChHvVV5kOXnHGhJgucu |
| pixonaut_wasm_bg.wasm | sha384-TV2MXeO4EKa3ZgQPHp7rYvgGJ0A+4NKrqYEV2OjFSjCJ3444vWXjCrmQiGNHmB04 |
| schema.d.ts | sha384-f6J/h62miFt72cUE2sp8JssBriLNb5OQHrVwXyN9fUWfRQgDCia1i2WuhOVNLgH8 |
0.10.1
Released 2026-10-24. Works against the api until 2027-04-25. Served until at least 2028-10-24.
Changed
getFieldTexts()names a customer’s own colour by the hex the form shows (#2276). A colour field whose value is not a palette entry, or that has no palette, read as “Custom” in every language. It now reads as the field’s heading:#RRGGBB, upper-case, the colour picked by eye while the stored value is an estimate made from it, else the stored colour (CMYK, spot or RGB) as the mount’s output profile previews it. A palette entry keeps its name in the page’s language, and an empty field stays empty.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-9eDfwIeefxUcIjYWfIq+h30wAHJqJHWFmjGeMVuYnX286ihRpjBTVt4/TAHuSXiw |
| pixonaut-client.js | sha384-qPuORqcIz08VW0UN0TCXBno2Mm5lL1um50zF//cnHNDeYQE2Lsssms3eaa6VHArl |
| pixonaut-core.d.ts | sha384-vgT+P9efXuA9+NXzFS96R5KiA41C6Pgw3ARmhtJVWcg6jVRBZNfunJ7MW9GMnxyE |
| pixonaut-core.js | sha384-0mx5kmdV6oNscQ6EDOc/0zq1r+xaPhhTZ7IZNe6YWnx8jsYWS85C8ddQ2HrbYuW+ |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-lY4jqPrg92SLSF4SyCzWU5l0oSjC28FaExuE+bGIVoIax/XBTYBzn2Dy1N3dLGwt |
| pixonaut.d.ts | sha384-v8UiCKBgQIyPnZNNOO1NlKO0Xak/IzDYy/R6zj6TKwRgpkrVJCWaZ1JdtD0N/exk |
| pixonaut.esm.js | sha384-o/7710w+4F0w0/SmMpcvwijmPUWesL1m2LLrUINKZCtyobJM7QbBL7IY6c9DOStd |
| pixonaut.iife.js | sha384-j2cKCzyaAcYSEBk1tozEbYAr08xGzHjekc8ftdZBx4hvM+ix/AguCMdf72d9XfJc |
| pixonaut_wasm.js | sha384-Je6ygqQ1tXU/mN1U7xAMc6nqLt+ISl/XDXAHNuLDEJ+jhEGxk5qoHTve+lvP5JHK |
| pixonaut_wasm_bg.wasm | sha384-yT7K8w71KS1QFb7Hf/2M4rX9KZ/YC+3V6AWreKxIj9o0o1SVcV1lNbNNX+EI+1tm |
| schema.d.ts | sha384-e1bc9ktpQnX1hUsMfGU7IpGw0ZhpiJAF3Zcc2bbbZBrKd/Wo9WfxZfj03KlBcfck |
0.10.0
Released 2026-10-24. Works against the api until 2027-04-24. Served until at least 2028-10-24.
New
PrintSizeOptionandMockupOptiontakelocalizedLabels(#2268): a label per language, beside the label as written. The designer shows the one for its language, else the label as written.
Changed
- The blank’s option names, values and view labels read in the
designer’s language (#2236). The designer asks for the blank’s
variants and mockups with its language, so the variant picker and the
view strip show the names the merchant gave in it, else the original.
client.blanks.variants.listandclient.blanks.mockups.listtake a{ lang }query. - Sides, print sizes, photos and palette colours read in the page’s
language (#2268). A designer link’s side labels, print-size names and
photo labels, and a palette’s colour names, are shown in the mount’s
language, else as written. A colour field’s line in
fieldTexts(), what a cart lists, names the colour in that language; the field’s value is still the colour’s own name. - A picture sized past its move bounds follows its box when dragged (#2239). A wide picture scaled past the room its bounds leave (past about 135 %) slides while it covers them and stops where an edge would come inside, and the preview draws it at every position the box takes.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-9eDfwIeefxUcIjYWfIq+h30wAHJqJHWFmjGeMVuYnX286ihRpjBTVt4/TAHuSXiw |
| pixonaut-client.js | sha384-+cg6FwxFw/MWc3a/X45TZMKdbSnxKB0CKZ/oXZmOTUhIR4emRyZf8MNZjpk74xs0 |
| pixonaut-core.d.ts | sha384-zvI/Rj9dYlto4mIcVJbUhIV/B3C9i7eeGpiizZRfLzwu5ZTp48fqLltx1fyKbvzs |
| pixonaut-core.js | sha384-iuJuTjORdmo5pTDXRyhXGX5kQ1utB+Iu7UN056PMw43X4JK1Wtc/zSJKR8wxNImY |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-0TbjmaetvV+R763YsW1Fyjs/z7Bp4tqptBxHqGSR7eEE/nYccB2OoVa7hUaDrc2R |
| pixonaut.d.ts | sha384-AcAoJIL8YJ/Z7TpTJalZYym6MajXXGTHbnK55XExweVSfYAL23Pgx0reAGSYjw/X |
| pixonaut.esm.js | sha384-6+Pr5TeKbQlzZO3rfQ1vPNU/vYnyQESsLf5VcVL13/AvBgGWSVOUtOhbufCejhT/ |
| pixonaut.iife.js | sha384-hzFIPSxHDDB93H601+4XkeBRXpyYnGYrBFKDvUkSNmLbBu3iM0aYCF2iyGUc2ige |
| pixonaut_wasm.js | sha384-d7O5NaQrh/gan1vdSXmr9D4RxvL8qMGXCwEg19bedGXQWjSyAXN8ivN7ZlYKKuaK |
| pixonaut_wasm_bg.wasm | sha384-r1V+gzUJ033PvKOIHnCLD8zpF6DS8nYzqatLF/VONd/OTcvNOrCjne3ZIyGc5s31 |
| schema.d.ts | sha384-e1bc9ktpQnX1hUsMfGU7IpGw0ZhpiJAF3Zcc2bbbZBrKd/Wo9WfxZfj03KlBcfck |
0.9.0
Released 2026-10-23. Works against the api until 2027-04-24. Served until at least 2028-10-23.
New
formGroupsarranges the template’s groups for a page (#2232). The groups are shown in the host’s order, with the fields it places in each, its titles and its words for a field’s label, help, placeholder and offered values, in every language; the template is unchanged. The host’s own elements ({ host, element }) are moved into a group asoptionsStep’s content is, and put back ondestroy(). Groups and fields it does not name follow in template order, and an id the template does not have is passed over with a console warning. Works in both layouts.setHostItemComplete(id, complete)(#2232) marks a host item done: in the steps layout Next waits on a step until each of its host items is.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-gLnWNmUVhcl9tKlRcxf0vjHzBKK3mWzoDK54SKlxShBYCLxf8OSs4Yx4aEgqXOFj |
| pixonaut-client.js | sha384-U03+vnX4PzvXNz6NvKg/X7A1Tu3tfufLiPdC9OALvR2LHMrDVQH01X9HEhUZdING |
| pixonaut-core.d.ts | sha384-k4orGyjn+lv+3v26wxwzQvxiUDCZE/cm8GidkIUfpxPP6AgB03mbU2Bgovp7hC0e |
| pixonaut-core.js | sha384-Ioa9BCyFYpY9tcG5pf8PWzAs3JxzdSdJObjXhTi4URWGfSyfT0cQYZuqAuJmSMYc |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-qwm85sE/gDEmX6ur7GgLo1jauUZ7daq9fSlJ694VaVEa7CpxMMAW4qBH8uVBdULN |
| pixonaut.d.ts | sha384-e+p6KyJPwD85EVJkQFPJvg2jiaKm1WTgqXxhRDsvKnBgx+cxWVJ1R1RSawBsc/4j |
| pixonaut.esm.js | sha384-3zCBnLpZQacVIZ2rH0HOFK9Gw0r+AaLV7GrJTHjH2eVMljae4K+mExxi+GSQkmGV |
| pixonaut.iife.js | sha384-vyFXxa0H+qRUMMSE46wOztrK7f6k96+lASL7Qd5T5GOJmYKXZYbwoPLAV9qGjN22 |
| pixonaut_wasm.js | sha384-26ZaFFE9pCydulsyU6UFfcaVzRlYbyIOIJRzH4BieioO+5R/zD/AHS+86GuYfInm |
| pixonaut_wasm_bg.wasm | sha384-1wrvPTZUpXQuA8ONvhdwW9DqYgyKEHEvOLJoaWR0HMJavw9BaagAfuaXSFdWbZ5l |
| schema.d.ts | sha384-T5vSl1ggtxHyvAUNVD1n/QOsmVRdCRQXhUMsMISMbvcjt6pPVDmFu9bd46QqJyWs |
0.8.0
Released 2026-10-23. Works against the api until 2027-04-23. Served until at least 2028-10-23.
New
optionsStepputs the product’s options into the steps (#2223). In the steps layout the designer’s first step holds the blank’s variant and print-size pickers, then the host’s owncontentelement, undertitle(or “Options”).getStep()names it"$options". On a page the same block opens the form, unnumbered.lastStepContentshows the host’s cart row on the last step (#2223), under Back, and at the end of the form on a page. Both options move the host’s elements into the designer and put them back ondestroy(); a control moved out of its<form>is still submitted with it.getStep()and thestepevent carryisLast(#2223).
Changed
- A split preview fits a fixed-height element (#2222). When the host holds the preview’s element at a height, the preview is scaled to fit inside it, centred, and refitted on resize and on a change of side, view, variant or photo, so the page no longer jumps. Otherwise it takes the element’s full width as before.
- The views gallery keeps a gap above it (#2222),
var(--pixonaut-views-gap, 12px), so the chosen ring never meets the preview. - A swatch’s face has its own edge (#2222), so a white swatch shows on a white form.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-gLnWNmUVhcl9tKlRcxf0vjHzBKK3mWzoDK54SKlxShBYCLxf8OSs4Yx4aEgqXOFj |
| pixonaut-client.js | sha384-1PqT/MxiC8zLqpQ+VdSDURyu8tKV/uwef7doTNu2NooJ3aGlDvRUAnYqPagPrbo9 |
| pixonaut-core.d.ts | sha384-J0O1bss9sdFi/lYNm0jPF6M/eo+sh+O5NqGAesOiTRjZRdaHvLIARrR8k1t833lk |
| pixonaut-core.js | sha384-StO0+604q3tUt+W/g3yGOxOd6bZjUx649G/Hrz+er2+q17PFj+uzVc8ejEImgncp |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-xquLAsfQQFwse38VErTmXovXFB4FpdvYOZ94HVcfqvpaVvGY4eCwhipU6SQBftCj |
| pixonaut.d.ts | sha384-IaXrd3EAWwaVLdf95MscMR6YXShA213UWcbZUYFnQYsnhFstEN5Ffnjs8EbkqCB6 |
| pixonaut.esm.js | sha384-drP+ly1lQBcIpIlhwBPcACEc+jGRDsKctpvaUTNIOYt8b4x9bjYyYPskV32Mth8r |
| pixonaut.iife.js | sha384-Uy9s5f5i8tBq5RA/mJ2W+8djAUGr7B48cXCoRoQD6QnLL7ur65PMbQ3Fc4azjvHs |
| pixonaut_wasm.js | sha384-vs5VUyzLQz1iUIjCtDlcSZMEcIWKlcjHEn3xeCFqU3YIPSZi286wZnNEGgzO4lXx |
| pixonaut_wasm_bg.wasm | sha384-rH8KFTvNwj3AqRypftIfoDk80x4SN3eA3cSgU9/U5cNOJfl0XyU0nb/965LKYRGG |
| schema.d.ts | sha384-T5vSl1ggtxHyvAUNVD1n/QOsmVRdCRQXhUMsMISMbvcjt6pPVDmFu9bd46QqJyWs |
0.7.1
Released 2026-10-22. Works against the api until 2027-04-23. Served until at least 2028-10-22.
Changed
- Dynamic values are written in the mount’s language (#2092). The SDK
sends the designer’s language as
langbesidetzon the template read, validation, proof and commit, so a value such as a month’s name reads in the words the designer shows. - The views gallery rings the chosen view inside its photo (#2093),
so every thumbnail in a
viewsTargetcovers the same box and the chosen one no longer looks larger.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-u6Ybhj+8Qfebgv0cSVZ7X5atuX1tftxHU8Ql4gVnbY87HgcoToHLJ2qTa5wvcwlP |
| pixonaut-client.js | sha384-998qep12eNIgpYHb7MNi0oQ8UUXWhg9KK4IL0ZO+gd0k7X7c4zqeyB9wn3EVV2bc |
| pixonaut-core.d.ts | sha384-T/pJeuzY0gfVJYqkK7tsBvfgCrC1EBxnb/p/49f4E3Uxa1pVp36dlapHqv1w55xk |
| pixonaut-core.js | sha384-gc8j0G5jxRcsp/knt3t8BcEDeXnuh7bLWKB8ESqfP2CpYWq5Ejdr7FPOJJC0GRoZ |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-3gPk9RdNOWB7nmhhgKrW8VmW8tXS8HLa28zecP4dWaEz0q/ybRtoNJf/+TH7mRdC |
| pixonaut.d.ts | sha384-Zb05jGYoNvOa/TFLyCvuqxEjn6wV9OB52NSooPXl50xWXaIAcCX20gdstUHZl0RT |
| pixonaut.esm.js | sha384-SxoQyPvu9geEZ3WVJTqEq614jOGPUeK7KIMOWx1hmKP24EwgrsurwXEQ1L2qD8qy |
| pixonaut.iife.js | sha384-vFQ4Y5P6YROSsoO3x+TU/4X9js+6za142ABYcqe6TTONatYX+ADtEpLaytm8lxNA |
| pixonaut_wasm.js | sha384-SBFkrG3UGHPHg90MdSR4RNcBhfTnvzeKLC94g68vfjKwBKQwB5Cx+bjQ3hBLQRg/ |
| pixonaut_wasm_bg.wasm | sha384-QNV9cNQiP8HsqiaU1ivXWLepF5hgdB0XHgfupm4qWEaSmB+o78pkI/DFoR4PXAEx |
| schema.d.ts | sha384-5MxndJLvMTG6O6oQexgFa0egXsGocV1+nDb04l0rzP4jkq2Ne4yE267BYC4UBJ/5 |
0.7.0
Released 2026-10-21. Works against the api until 2027-04-22. Served until at least 2028-10-21.
New
- The classic script’s
window.Pixonautcarries every export (#2018) of the package entry:createDesigner,designerUi,createClientand the rest, besidemount,versionand the error classes it had before. A page loading the SDK from the CDN can now mount from the reads its server made. - The designer speaks nine languages (#2015): English, Swedish,
German, French, Spanish, Dutch, Danish, Norwegian Bokmål and Finnish. A
mount whose
localenames no bundled language uses the template’s workspace language, else English. - Template text can hold dynamic values (#1989), such as
Class of {date.year}. The SDK sends the browser’s time zone astzon the template read, validation, proof and commit, so the text is written out for the reader’s own date. - The
shownevent anddesigner.shown()(#2025) tell the host once, after the first preview is drawn and a split mount’s parts have replaced the host’s markup. - The
printSizeevent andonPrintSizeChange(#2025) report another size chosen in the SDK’s size menu, with its index and entry. showPickerstakes{ size, variant }(#2025) to hide the size menu or the variant picker alone. The boolean andshowVariantPickerkeep working.debug: true(#2025) logs events, requests with their status (no bodies), the upload’s PUT by path and a preload photo’s failure to the console.fileNameonUploadProgressandUploadResult, andgetFieldTexts()(#2025), which lists each field’s label and value, an upload by its file name.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-u6Ybhj+8Qfebgv0cSVZ7X5atuX1tftxHU8Ql4gVnbY87HgcoToHLJ2qTa5wvcwlP |
| pixonaut-client.js | sha384-vQGcik7FWjdJN5DN4PKuUDRsIvGyJBX3ytEtZT5eMkHhmNFqKoYWtOmj7xLARZbP |
| pixonaut-core.d.ts | sha384-5Bn54iliD8jsGI2VS5L6suH3cC6zQH4hGQ2VAF0B+nNbkgdcxQsEsh0+wrrsxEP3 |
| pixonaut-core.js | sha384-Xij0UBBAj06fE7lzCUBSMiFepjoh6GP6J8z5LpLeaZMGBvuw3odvhEdsoLZrmvx1 |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-NkiixWxw5iN/FjKGNKGw6I2z/NUekrsjce7X+wROdKH0VCwPplZnEUjZ1PTr0Jux |
| pixonaut.d.ts | sha384-DwSg1v1ntG9YAyHHFJPD3SgIHgs5gGBVKOplCc5cVX6vKF6PJyki9TtjAs3c5MPo |
| pixonaut.esm.js | sha384-t2SZwhCMB5SLbYElEU1Zf+wTjwhw8RB6axRgxrRERWiUuj8LyuFRfNASUcJvFrMP |
| pixonaut.iife.js | sha384-nXhWEbyTRrn0SINq4ahwoKbzPUSK6Zgy+0g7S42TTDfx5svkuQx0YGINzbIRm9hJ |
| pixonaut_wasm.js | sha384-m1rOvoCmdixll3FTLzswsASvgUBxvb/Po+1EvyUzO3Kgpbhhsbk3EzA/gT0osh3g |
| pixonaut_wasm_bg.wasm | sha384-iIWsb0QmVE3rdiToaA0RhnmHNS744tlRf8/H6VbBnm8EKif3zhHxRxegY6X5rWUz |
| schema.d.ts | sha384-gIBxgYEmszIIrV1mqlgCPZKEHgPT4cfUfpky2eLHhP+TGH+pa9mX4V6s4zgAjOtd |
0.6.0
Released 2026-10-21. Works against the api until 2027-04-21. Served until at least 2028-10-21.
New
- A correction link mounts the full designer (#1979). A
correction-link mount takes the product options a product mount takes
(
blankId,placementId,placements,views,initialView,variants,printSizes,selectedPrintSizeIndex) and draws the stored design on the blank’s photos with the view strip, in the box it was bought at. A pair the design was not made on rejectsmount()with aTypeError; a correction keeps its size, so it draws no size menu, and shows only its own side ofplacements. - Server-rendered markup is taken over without a layout shift
(#1988). In a split mount, the markup a host rendered into the
preview’s, the form’s and the view strip’s elements, a loading spinner
included, stays until the designer’s preview is drawn, and the
designer’s parts then replace it at once. A failed mount leaves that
markup in place. A new
onErroroption hears everyerrorevent and a failed mount.createDesigner()in@pixonaut/sdk/coretakes the three elements, asmount()does. - The
upscalemount option (#1744) takesfalseor{ belowDpi }, and narrows the upscale a template offers per picture; it never widens it. - The designer carries “Powered by Pixonaut” (#1849) in the preview’s bottom-right corner whenever the api says the workspace shows it. There is no mount option for it.
Changed
- A chosen print size is drawn at its real size on a blank’s photos
(#1984). A blank’s photo marks the placement’s usual box; a larger or
smaller size is drawn larger or smaller than that rect, in the preview
and in
renderView()thumbnails, and a size chosen after the photo is placed re-places it. A storefront’s ownmockupsmark no size, so the design still fills their rect. - A product with one print size draws no size menu (#1979). The size is still sent with the proof.
- CMYK is drawn through the output profile the print will use
(#1855, #1878). The preview, the swatches and the colour picker’s
estimate use the profile of the machine an order would be printed on,
where they used
ISOcoated_v2_ecialone; a profile the workspace uploaded is drawn through its own tables, read before the first colour is painted, and through the bundled profile when they can’t be read.
Fixed
- The designer-session id is random when storage is blocked (#1799).
It is 128 random bits whether or not the page can use
localStorage, where a blocked storage fell back to a time-based id a publishable key could guess.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-eJjdIyeI910qdfN4INkoUe0yCFjlvvnirXERz3E5Xee+OVKMt8Uhgy4oJiUkNUBO |
| pixonaut-client.js | sha384-H/sY4xWfDVGu2oNTQqXppKeCEYaL4DMhnQS3LP6BKoWnJreYms1KLG7212KkFwtw |
| pixonaut-core.d.ts | sha384-cOoTaKHvL6VCNT1NH2OyBFQYxpuNlXW/MQlDRBVBQuBn2EHtrMB0gXP8kAEUUUzg |
| pixonaut-core.js | sha384-s0LOXLxK65WtRjZ7BcP5dqEzaRBp/nS+qekSSjj8rLB1QPMzjt85a3c7zBKnAUJJ |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-tzaVVSS7XWUn67dYanSvVq0gyyZowfCGlINAAmkuK0lcfJkahGbogYU4wLKk1Fgd |
| pixonaut.d.ts | sha384-kN+9Tvv8P9EEQUpGUCkazaNOrXqr598xFHq6O4zCa57zvvw2JFiGX+2qToAiIYe6 |
| pixonaut.esm.js | sha384-WzEyTZCoYGzUWlZX8Xl98pa2ttFO9iSKQDN8+oqShI8MRo6GIWGMzuKW7euQ4GuX |
| pixonaut.iife.js | sha384-+dFKXEn9NeEU2nIVCh0+s21EB07AgCnpBdhhPqKRgZxTkmMV7n1WfL27oj3xnyCj |
| pixonaut_wasm.js | sha384-NPngwXBn0pMLLKx74DiCd2wLiagxrBEwokEJeG5o6ppWSU4xGY16K7qpZqiVs0iK |
| pixonaut_wasm_bg.wasm | sha384-B83wDpfuI0iK7ZXNTJw0+V5nl3fJg/fEavZZyd2Q1Tj+7fEEjpN/SEpr9CbkrCDh |
| schema.d.ts | sha384-aeT8oBNJRUm8f+ScQv+ulmAZ/fZr8OTUhDC89ydGE2lvdy00nRJ+Yk+2WyHW+3lV |
0.5.0
Released 2026-10-20. Works against the api until 2027-04-21. Served until at least 2028-10-20.
Changed
- The preview is as sharp at every print size (#1682). Without a
previewDpifrom the host, the preview renders as many pixels as it is drawn wide on screen, at the screen’s pixel density, withinpreviewMaxEdgePx, where it rendered the print at a fixed 96 dpi: a 50 × 50 mm print was a few hundred pixels stretched over the box a 500 × 500 mm one filled. A resize of the preview, or a move to a screen of another density, draws a frame at the new size. A frame drawn while a gesture runs is three quarters of that resolution, never sharper than the frame it stands in for. An explicitpreviewDpiis used as before. - The print size picker is a row of chips (#1682), drawn as the
option picker’s chips, where it was the platform’s
<select>: the chosen size ringed in the accent, a refused size disabled with its reason as its accessible name and title. It is one tab stop, and the arrow keys pick the next or previous size, wrapping and skipping the refused ones. - A side or template switch keeps the picture shown (#1677) until the new one is drawn and its photo placed, where the preview went blank and the designer’s height dropped, moving the host page, and a frame could show the next side’s photo without its layers.
- A variant on the same photo redraws nothing (#1677): choosing another garment size on a view whose photo is the same fetches and places nothing again. A variant that changes a photo redraws only the view thumbnails whose photo changed.
New
getViews()lists each view’sphotoUrl(#1677): the url of its photo of the variant shown, or null without one and for the Design view.
Fixed
- A preview frame asked for as the designer closes is not drawn (#1697). It was drawn on the page’s thread after the designer’s worker was gone, into a renderer instance that outlives the designer, so opening and closing designers grew the page’s memory.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-u8G5pNQQsqTeJxccCtzVq/bP6tFffMjhEChgAhhXzMY/cwLiaiE+NZ4GKK5McpAC |
| pixonaut-client.js | sha384-Z6U59c+6HJUnzMluoeKqXIGouJGkpEucntQf8y21pI+IXPXycN3vRJkQX8aDPLbV |
| pixonaut-core.d.ts | sha384-AQaAEzWMuv/CJtUK6hbQQLE9Zwe0GcHG89ZZtfeq7eM7QGh9tsbLzXmK/aPmOD4B |
| pixonaut-core.js | sha384-DcztXLn4daaV0G/z3+AM5wLqSKe7NZBoyMOutTnocCT5ma1xuHYqFtiClcd5UoTF |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-Mow/Z8HjxRCc7esoqPZKMAlVoI/fpj3wrJ1l/53zSi6KLj45Jw5G3fI5k5/CEN3l |
| pixonaut.d.ts | sha384-tckdraC03vKQJ5k/IRISkoDKLhE0Jvjexf/XrsvuxPBsu7pMTP2i+C1S3X0ZZ05n |
| pixonaut.esm.js | sha384-W6QXfCXgaHcYtLzN4o2kQWgBOt843XJ6vApk0GCpa/+SXYrnKjF6AQp0yRgyIQXc |
| pixonaut.iife.js | sha384-foJbvqYJwok+qYqF7KY6kemnLlnJpZR+aqO5tZkV+vaE/tRYhumk821BQY86VMvH |
| pixonaut_wasm.js | sha384-t/vYxIEXbQDh6AaxRaR+rNfFrJn6gw0fLLvdVdEdnw1pBcvBvLcMOtHEFyHgMyQR |
| pixonaut_wasm_bg.wasm | sha384-FUByTg/pt7suKuaWvJixVtWyOp7XKfpGt+yj1WT8wU5TMw24WEOlRyWi45wY5fJx |
| schema.d.ts | sha384-l5/09mtosac//Fow9O9O4f3Hwd/xwiiQ9Ii3l7hQLe3SlhrFu4+XTRO6A8tCJX63 |
0.4.1
Released 2026-10-19. Works against the api until 2027-04-20. Served until at least 2028-10-19.
Fixed
- The designer loads on a page served over plain http from a name other
than localhost. Such a page has no
crypto.subtle, and the check of the renderer’s files against this release’s hashes needed it, so the designer never mounted (Cannot read properties of undefined (reading 'digest')). The files are now checked in script there, and a file whose bytes differ is still refused. Over https and on localhost nothing changes. - A dragged layer’s picture lines up with the preview whatever border the page gives the preview image: it takes the preview’s border widths and box-sizing, where it assumed a 1px border.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-u8G5pNQQsqTeJxccCtzVq/bP6tFffMjhEChgAhhXzMY/cwLiaiE+NZ4GKK5McpAC |
| pixonaut-client.js | sha384-ymIsBinMwYera6/TY5aHGZ+HHWDvg7qGwfGijMPhjcHAGS3ua22bRpZs8SybMk0e |
| pixonaut-core.d.ts | sha384-9JC8QfsA/RZO7JVas79Hk09YC+G/OsQ+TVKAU8tLd7pEy89/d0HUtpwoRaUrBZtA |
| pixonaut-core.js | sha384-HAA5Hks7+uktuc1vcgajN76OOFfmNSonCZPXy4y7dHI4w5lXI1oJ0L6l8VQYZo7K |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-hrDXTAHo1VcWP4JzDI2jsxrWRn+qCcbUB+2jRAcISeD2bxXwetgSsbfLWu1hxdOn |
| pixonaut.d.ts | sha384-OQTlxip/gU6IHpa3z4bbGeoym5KkKCHlyGxi9TWwBPZxf9pS5xt2vQ7DH9H43/zq |
| pixonaut.esm.js | sha384-rX9ne+ltgb/HqIMeQej47cOEWaE5aZOIsZKwutlggq2Cj/hhdA/g9o1FP6S676le |
| pixonaut.iife.js | sha384-KKBErE/I5Co7+9qopP8ZJgI9EzQ6Lz+5/Da2SrdCy8Db6+l3/a4rA9eCutoUtnWK |
| pixonaut_wasm.js | sha384-7QzmOUinB4BwOcJHlQYZ1t/fmiGskg9J4JCyq89h0CTStUTJ5yaYQKaJGWzW64aL |
| pixonaut_wasm_bg.wasm | sha384-Lt2iQLz8kxuQ06VM0Bz1z37G8MfF996F5cgRA55f7vThD/S0rgYFCVWbjR6Lvjeg |
| schema.d.ts | sha384-eiehfgzyAYv75jZBb+oIBVrAfwXnvDCLnNtrdgK221D9tIx+FHbzNvRKFOOIUPdF |
0.4.0
Released 2026-10-19. Works against the api until 2027-04-19. Served until at least 2028-10-19.
Changed
- The preview draws no frame around the print area by default (#1552).
The thin grey frame the designer drew around the print area on the product
photo read as part of the product, so an embed with the default look now
shows the print on the photo with no frame. Pass
showPrintAreaFrame: trueto draw it as before. - The option picker draws each value as it looks (#1548). On a mount with a blank, the designer draws a row for each of the blank’s options with two values or more, in the blank’s order and named as the blank names it, where it drew a colour row and a garment-size menu. A row whose values carry appearances is swatches: a flat colour, two colours half and half, or the value’s picture, the chosen one ringed and named beside the option’s name; a value without an appearance is a plain circle with its initial, never a crop of the item’s photo. A row without appearances is text chips. What decides it is the values’ appearances, never the option’s name. Choosing a value keeps the other options’ values when a variant has them, and the values of the variant the designer opens on show as chosen.
- A product with options to choose opens on a variant (#1548): without
initialVariant, or when it cannot be shown, the designer opens on the first offered variant with a photo onplacementId, sogetVariant()names it from the start and its values show as chosen. A product with nothing to choose opens on each view’s default photo, as before. - Outline and shadow lengths read as a percent of the text’s size
(#1543): a screen reader is told the percent the slider shows (
4%, throughform.percent), as its value label and limits already read, and an offset up or left reads with a minus sign. - A text’s outline and shadow fields sit under headings (#1562),
“Outline” and “Shadow” (
form.group.outline,form.group.shadow), each drawn only when the template offers one of its props. - The view switcher above the form keeps its place, with 76 × 64 px frames on 84 px buttons (#1543). Colour swatches share one 32 px edge and every menu the form draws one 40 px look.
variants.unavailableinterpolates{value};{colour}still works.variants.colour-legendandvariants.size-legendare no longer drawn, and are deprecated (#1548).
New
- The Design view (#1537): on a blank with photographed views, the
views end with one showing the customer’s artwork alone on a transparency
checker, with no photo behind it. Its id is
"design", exported asDESIGN_VIEW_ID, and it has no placement of its own: it shows the side the editor is on, and stays shown throughsetVariant()andsetSide().viewsandinitialViewaccept it, andviewsleaves it out when it names other views without it.getViews()lists it withkind: "design"(every other view iskind: "photo"),setView(),getView()and theviewevent treat it like any other view, andrenderView()andrenderTemplate()draw the design alone on a transparent ground for it, the same in every variant. It is labelled by the new messageviews.design, and is not offered for storefront mockups, for a blank with no view on the placements sold, or when the blank already has a view with that id. - The view gallery (#1543): given
viewsTarget, the switcher is drawn there as a four-column gallery of square photos under the preview, each view’s name under its photo and the chosen one ringed. accent(#1543), the host’s accent colour as#rrggbb: the chosen view, swatch or tile is ringed in it, a slider’s track is filled in it up to the thumb, and the form’s Next button is drawn in it, with black or white text, whichever reads. Any other value is refused at mount.showVariantPicker: false(#1543) hides the rows of the blank’s options but keeps the print-size menu, for a store whose own variation form chooses the item;showPickers: falsestill hides both.showPrintAreaFrame(#1552) draws the print area’s frame on the preview, which is off by default from this release.getOptions()(#1548) lists the options the product is chosen by, each with its values and each value’sappearance:{ kind: "fill", colours }(one#rrggbb, or two),{ kind: "image", assetId, url }, or null. WithgetVariants(), it is everything the built-in picker draws from, for a picker of your own.- The client gains
automations.list,automations.getandautomations.versions(#1565).
Deprecated
ProductVariant.colourandProductVariant.size, read off the names of the blank’s axes (#1548). Readoptionsby the optiongetOptions()names.
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-u8G5pNQQsqTeJxccCtzVq/bP6tFffMjhEChgAhhXzMY/cwLiaiE+NZ4GKK5McpAC |
| pixonaut-client.js | sha384-Sji4p9yqLpkhIshJRo1wjIls/HJxLkht8+UJOoWgdueUxDz3kFlAtycPrjpS8xrA |
| pixonaut-core.d.ts | sha384-9JC8QfsA/RZO7JVas79Hk09YC+G/OsQ+TVKAU8tLd7pEy89/d0HUtpwoRaUrBZtA |
| pixonaut-core.js | sha384-RtY9zP3jV2e9StOTI5dm+qUd9SPiB3Db8a+Gf9Wp0QDM3Pj+tEcUlxwnkBtWYL9B |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-UeH/hqIAU0MiDboGwEFkgad8eJsh2FoL+GavWpqpYR70kRRIOPdhnS8bmFf0O/Am |
| pixonaut.d.ts | sha384-OQTlxip/gU6IHpa3z4bbGeoym5KkKCHlyGxi9TWwBPZxf9pS5xt2vQ7DH9H43/zq |
| pixonaut.esm.js | sha384-lCQSJ9TNxC0ATABMPOtyDd2nbSOPznxEAIzrafu0mKncS4GlbQIQOjTRcXVCYG/z |
| pixonaut.iife.js | sha384-5T71H7bANIoAYXsSFAI0HYiibMfmbs1cSJs0KrEARh2uGBr+MlSq1NUPFXCZUUsq |
| pixonaut_wasm.js | sha384-XhDkqI4x1Fgj28JnA1O9YFYCgbNdHZaHTB9JnshvAeHYf5p5OFcbGR/jUEeZDHOB |
| pixonaut_wasm_bg.wasm | sha384-worAVw/GvKUn7LYikiLMS3kDdnGsuCO8ZabhPig8V+8gi6zwoQHZZWiLWCxfSfpv |
| schema.d.ts | sha384-wC5t2i4L4gebq90jKpbcLDA9WDsGat8XhPWLseSa5HCX3mB595EbB4VlebsczDRM |
0.3.0
Released 2026-10-18. Works against the api until 2027-04-19. Served until at least 2028-10-18.
Breaking changes
approve()andcommit()answer for every side (#1415).approve()resolvesApprovedandcommit()resolvesCommitted: the lead side’s proof or design (the first enabled side), with every enabled side’s undersides(SideProof,SideCommit, each naming itsplacementId). Theapprovedandcommittedevents carry the same. A one-side mount’s result reads as before, but code typed againstApproveResultorCommitResultmust take the new types. With several sides,commit()validates every side before it commits any, and a refusal names the first side refused inPixonautApiError.placementId. Anapprove()orcommit()interrupted by a side switch rejects withPlacementChangedError.- Each side keeps its own values (#1415). An unkeyed value never leaves
its side, also when two sides print the same template, where until now
they shared one set. A keyed value is still the item’s, on every side with
a field of that key, unless
sideValues: "own".getState()names the shown side asplacementIdand holds the others under$sides, whichinitialValuesrestores;$sidesis refused as a layer id.
New
- One designer designs every side of an item (#1415). Each entry of
placementsis a side on its own template, and one markedenabled: falseis left out until the shopper chooses it.setSideshows a side, as doessetViewwith a view of another side, and both emitside.getSides()lists each side’s template, whether it is enabled and whether its design passes;setSideEnabledturns one on or off. A mount with more than fourplacementslogs a warning, and a designer link holds up to ten sides (#1433). - Colour and size pickers (#1531). On a mount with a blank, the form
shows the offered colours as swatches and the chosen colour’s garment
sizes as a menu;
showPickers: falsedraws neither.variantsnarrows what is offered andinitialVariantis the variant the designer opens on.getVariants()lists the offered variants with their colour, size, options and photo, for a picker of the host’s own, andsetVariant()rejects a variant not offered withnot_offered. - Preloading (#1432). The
preloadoption ("off","background","eager", or"auto", the default) loads a product’s other variants, views and sides ahead of time, so a switch shows on the next frame.preload(target, options)loads on demand,cancelPreload()stops,preloadPlan()says what auto would do and why, and thepreloadevent reports progress. renderTemplate(templateId, options)(#1416) draws another published template with its sample or the shopper’s values, carried by field key, optionally on a view’s photo, for a gallery of templates. A picture that cannot be drawn rejects withTemplateRenderError. The client’stemplates.list({ ids })reads the templates named in one request with a publishable key.- Text outline and shadow (#1427). A text layer can draw an outline and a shadow, which the author may offer to the shopper; the form shows their lengths as percents of the text’s size (#1487).
getValue(layerId, prop)(#1422) answers the value a field shows, for a form of the host’s own drawn again aftersetTemplate()orsetSide().settled()(#1526) resolves once every upload and improvement under way has written its value.- A proof records the view and variant (#1420) the shopper previewed the design on.
PixonautApiError.reopensAt(#1477): when a designer link has reached its design limit, when it opens again, in epoch milliseconds, or null when it never does.- A share link’s designer shows its blank’s photos (#1527).
- The client gains
orders.rerouteTargets, the blanks a failed order could be sent to (#1423).
Fixed
- A view switch keeps the previous photo on the stage until the next one is shown, rather than showing the artwork alone and jumping in height, and a dragged layer is drawn where its selection box is (#1487).
- A picture still loading is marked as loading rather than drawn as missing, and the preview shows nothing until its first raster (#1453).
- The print size menu is headed “Print size” (#1487).
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-qu59KQwP8xS2ZwTBF/IfFmAlUK1zJNEeMKVEP6Auy4sd5l3eJD+j8piDhZ72gNCc |
| pixonaut-client.js | sha384-84Vh7ckAlDa7ht1MWSkYYqSjSSQVbD4BsAT4LwxjIzpl2wPecmNIU5OcRaIOYkuk |
| pixonaut-core.d.ts | sha384-uustDGdnoi2FkSZBilZv4MDmAkcRkiFLlfo9VXFbHFohM7CDbLh6TBBe7Ijp+eCZ |
| pixonaut-core.js | sha384-nX5lr/B9mNfgqchY25y3VJbAc015jSfni9m1yQtJVE2DyqLeixy8dPTS/IzLnuls |
| pixonaut-ui.d.ts | sha384-tJLL0sJydPg53bWRT/PI8IUs7lXTx4Sg8v1bwbotEPV8jPNdy95LXhh7EnCTprHg |
| pixonaut-ui.js | sha384-+B/srpjutPk0PE515OFuTmPborAdSewk5DO/lqtdynwqrgMOUThwKRJ5nukVFhXQ |
| pixonaut.d.ts | sha384-xZB1SV364VJYNNY0rBmz665UfI38oOIDV11vFcs4Y0QoNDypw1v1urmL+kueoaxu |
| pixonaut.esm.js | sha384-RfEI6WFTkjdmPMtkdFdsKjEfKWYLfUFh/sMtNazMFEWbGbCx/1gCybX32A+2lHY0 |
| pixonaut.iife.js | sha384-sDX/RIiRR4f7rhcsS57TohDdvVGDViJDPMjuqnfY/UpEv0PnIJQGSHRJKB59c4Fm |
| pixonaut_wasm.js | sha384-mE7J+yZK0ZvkG7jwy+79u45slx7un5y1qwlBVeFU3Ks6uIa4frSo2IZ7umV2ZVC/ |
| pixonaut_wasm_bg.wasm | sha384-kk6aC51hgKsewR+MzkB2mprIm7Xqg4Ibw4YHQy1WEYhIVht3N9+E1jVz1htunB7B |
| schema.d.ts | sha384-ymGA0yNTKdGMK/TYbiEVnQpUfFUMHuWHPsf3Mx91EeLnvhyaTzW6lrho6P7WDoZD |
0.2.0
Released 2026-10-16. Works against the api until 2027-04-18. Served until at least 2028-10-16.
Breaking changes
- A product is shown by view and variant (#1410).
setMockup,getMockup,setPlacement,buildMockupPickerand theselectedMockupIndexandonMockupChangeoptions are removed. A mount naming a blank lists what it sells inplacements, the views it is shown in inviews, and opens oninitialView; the host switches withsetViewandsetVariantand readsgetViews,getViewandgetVariant, or leaves it to the built-in strip of view thumbnails (viewsTarget,showViews). A view of another placement switches the editor to that placement and its template. A variant with no photo in any allowed view rejects withVariantUnavailableError. A storefront’s ownmockupsare views named by theirviewId. SdkRequestErroris nowPixonautApiError(#1388). Besidestatus,codeandviolationsit carriesrequestId, the request the API’s answer names, to quote to support.getState().valueskeeps keyed fields apart (#1389): the shown template’s unkeyed values by layer, every keyed value under$fields, and other templates’ values under$templates.initialValuesrestores all three, and a state saved by 0.1.0 still restores. The payload a proof or commit sends is unchanged.- The licence is split (#1401). The client (
pixonaut-client.js) and every.d.tsare MIT-licensed (LICENSE-MIT, which replacesLICENSE-TYPES). The rest stays underLICENSE, which now also allows installing the SDK from npm and bundling the core and the UI into your own site, and no further.
New
- The SDK is three parts (#1388), each a file of its own beside
pixonaut.esm.js, which still holds all three withPixonaut.mount():pixonaut-client.js, a method for every published read (createClient);pixonaut-core.js, the designer, which takes its template, placement and values as arguments (createDesigner) and may route its requests through the host’s server (transport); andpixonaut-ui.js, the generated form, steps and pickers (designerUi). npm:@pixonaut/sdk/client,@pixonaut/sdk/core,@pixonaut/sdk/ui. - An integrator’s own UI drives the designer through public calls
(#1372):
on(event, handler)forchange,selection,step,view,variant,mode,progress,error,approvedandcommitted;setMode("edit" | "preview"),setInteractive,resetLayer,clearSelection,attachanddetach,getResolution, and upload progress.showPickers: falsedraws no size or colourway picker. setTemplate(templateId)(#1389) switches a mounted designer to another published template without remounting. A field’s newfieldKeycarries the shopper’s value to the field of the same key in the next template, and every value comes back on switching back.- Crop mode and scale (#1400):
setCropMode(target)for a layer’s picture, the background or none, reported by thecropevent, andscaleLayer(layerId, scale), clamped and rounded as the scale handle is. renderView(viewId)(#1410) renders the design on a view’s photo.- Italic text (#1316): a text layer set italic draws its family’s italic faces, falling back to the upright ones where the family has none.
Fixed
- An event a handler emits while another is delivered reaches every handler after the one in progress, in order (#1400).
| File | Integrity |
|---|---|
| LICENSE | sha384-T3v0fww2nJcyu9wolQbAUVtdXZuq3RLNPTh78MMnHizCNQ7XifzzFCo2o6/XYcLs |
| LICENSE-MIT | sha384-tM5LbP5GcuO09LJ4934A9c0ra82HbZqcscAQKyyWJIIw65CiW/J6Uo5N3RS3R4CL |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut-client.d.ts | sha384-SQ8jfH6V6PXS5qcpWI9YMlEn/h9c+weKhPKf7eSRBX4rY0jvx8h1osfekyHxL7jR |
| pixonaut-client.js | sha384-1s1RWxQi5Z4XenLIgf6V1CYIqNP9v2NNiu+oyc1Ga0h75PqH4VVXPybqFs4qlHB5 |
| pixonaut-core.d.ts | sha384-uens3eDgAFvrhQPsdNLbVeS3helYNkzthk6D9+1XTV/aOlzF1j3EbYkR5WEyq0i8 |
| pixonaut-core.js | sha384-J2eb7OJv6w6ddzM8G77vcoaMJBinYD2EacH8Fd0l9HBum6f5iWm/Nzg1FOcWtFIS |
| pixonaut-ui.d.ts | sha384-JOK1x/bVQV4VnVJto9pek7r8d4aJyMviQLyJKSCury6QRa9f86w+NOFSyjPCqkZM |
| pixonaut-ui.js | sha384-LSH1g6JzIPxCOtzDkthMFW5ldgUyoVGDMTaPuasOL/zLtRjN+zvYGfc9eCy9K8JS |
| pixonaut.d.ts | sha384-PXkalEsjZEREjNIILYnquN0yYI3MpfL7U0gh7WP1Euhk9r2rn772sopuGYLT8w7M |
| pixonaut.esm.js | sha384-dEGLdUYc7KeuFzcqmaoNaGTbhGi6YyfsXDUYwD2gNapglpYlia6pB5xqL7/5XXPV |
| pixonaut.iife.js | sha384-irXdPL9NxUzNLqI+uNTtU0yHAsm+BMRFNPeLBSeWwzOyEx3Uz9RmTjYH0+ess8c3 |
| pixonaut_wasm.js | sha384-o2tMIKr8F6kDTOplDCRebAu3xZS14Srh3Ru+Q6uJMUVofkHuLi0IBVwD6UJi/dw5 |
| pixonaut_wasm_bg.wasm | sha384-JmcRPI8n1kIMGhmrSqcy9Erqz8xfHpM3H8CqUIv77SSXZnxI/X7CpflMmrhFFJ3d |
| schema.d.ts | sha384-N0s5aTyrS78xBzLj17SameoEpRkamfNJT6W0/I37awKBfwJCATzXLlIEJsB+kBZy |
0.1.0
Released 2026-10-14. Works against the api until 2027-04-16. Served until at least 2028-10-14.
| File | Integrity |
|---|---|
| LICENSE | sha384-KE+eRmuZInAja+2CXyPwWbxbLvoeIrv7B+7vEU+T4GXEt/BCkfiUUe/DjrUihBXW |
| LICENSE-TYPES | sha384-IaJfxefR22Mfyp0QE9hg7/flYaPpmBnNlBRZ9NwqwFl9t3EY/z1oHfkTXt2pUbEn |
| THIRD_PARTY_NOTICES.md | sha384-waGW35SIPumNkW6vxJ2kxSLBgdz8Q5KEuCnTrCZncntlXoqU3l1yKX24qoXuZeOJ |
| pixonaut.d.ts | sha384-ztVfFO9kHU8lnanTUgcuqrDQUjv68Nqob5or/GeayA2iVJS/9nByAzPLDyc0aLBA |
| pixonaut.esm.js | sha384-GHoORgupg8lSQC+zMbmavdDh4i5ObUJUQfMlQQa40AZ+ZfI7ouccCgV9TDTF3I0E |
| pixonaut.iife.js | sha384-ucDGRjS0kkyJA5nc3onoIxrql1b/lb99cB/IdbNN3EYQz6Op0Fxz442DVYfNw6lX |
| pixonaut_wasm.js | sha384-GBf9TdeoxsQHDfSxiLN+YOjLq5cIWzY5R0AqoYIWrs5F4ymMFckj/uN2uHoj/Dn1 |
| pixonaut_wasm_bg.wasm | sha384-bfYYE9jVHvCFqQXQqZhQz8k77ywfiOeoiJ9ItuB1OOy4FBNUqz4zICEMpMuQ/TNX |
| schema.d.ts | sha384-CIYbMt//bItsN/K2zBF2BLTfgdF5nwi4geuMkk93Kj5z8TGnk+GoeoiHJhiagqc5 |
Questions? Write to [email protected].