@jelinek/ui 0.5.0 → 0.5.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/README.md +43 -25
- package/dist/components/OptionTile.svelte +7 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -464,24 +464,48 @@ cascade that `pnpm test`'s jsdom environment structurally cannot check
|
|
|
464
464
|
The `publish` job is separate and gated on a tag matching `ui-v*` — it
|
|
465
465
|
does not run on ordinary merges to `master`, only when someone pushes a
|
|
466
466
|
`ui-v*` tag, and it also depends on `verify` passing first. It publishes
|
|
467
|
-
to **npmjs.org with `--access public
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
467
|
+
to **npmjs.org with `--access public`**.
|
|
468
|
+
|
|
469
|
+
### Releasing
|
|
470
|
+
|
|
471
|
+
1. Bump `version` in `svelte/package.json`, commit, push `master`.
|
|
472
|
+
2. `git tag ui-v<version> && git push origin ui-v<version>`.
|
|
473
|
+
3. `verify` runs, then `publish` — nothing else to do.
|
|
474
|
+
|
|
475
|
+
The tag is what records which commit a version came from, so push it even
|
|
476
|
+
if a release has to be finished by hand.
|
|
477
|
+
|
|
478
|
+
### How the publish authenticates
|
|
479
|
+
|
|
480
|
+
**Trusted publishing (GitHub Actions OIDC), no secret.** The job asks
|
|
481
|
+
GitHub for an OIDC token and npm exchanges it for a short-lived publish
|
|
482
|
+
credential. Registered on npmjs under the package's *Trusted publisher*:
|
|
483
|
+
org `JELINEK-nabytek-a-matrace`, repo `brand-guide`, workflow filename
|
|
484
|
+
`ui.yml`, environment left empty. All three are checked on every publish
|
|
485
|
+
— **renaming `ui.yml`, or adding an `environment:` to the publish job,
|
|
486
|
+
breaks releases** until the publisher entry is edited to match.
|
|
487
|
+
|
|
488
|
+
Two consequences worth knowing:
|
|
489
|
+
|
|
490
|
+
- The job runs `npm publish`, not `pnpm publish`. The OIDC exchange lives
|
|
491
|
+
in the npm CLI (11.5.1+, which the job installs explicitly); pnpm would
|
|
492
|
+
look for an auth token, find none, and fail.
|
|
493
|
+
- Provenance stays off (`NPM_CONFIG_PROVENANCE=false`). npm can only
|
|
494
|
+
attest a build from a public repository and this one is private
|
|
495
|
+
(licensed fonts). Trusted publishing does not require provenance.
|
|
496
|
+
|
|
497
|
+
There is no `NPM_TOKEN` secret any more. It never worked: npm requires a
|
|
498
|
+
second factor for every publish, and a granular token only satisfies that
|
|
499
|
+
if "Bypass two-factor authentication (2FA)" was ticked *when the token was
|
|
500
|
+
created* — a setting that cannot be added afterwards, on a mechanism npm
|
|
501
|
+
is retiring outright (account changes Aug 2026, direct publishing Jan
|
|
502
|
+
2027). Without it the registry answered a `PUT` with a misleading `E404
|
|
503
|
+
Not Found` in CI. 0.3.0 through 0.5.0 were released by hand because of it.
|
|
504
|
+
|
|
505
|
+
### Fallback: publishing by hand
|
|
506
|
+
|
|
507
|
+
If the job fails, the release is not stuck — publish from a machine that
|
|
508
|
+
can reach a browser:
|
|
485
509
|
|
|
486
510
|
```
|
|
487
511
|
cd svelte && npm publish --access public --auth-type=web
|
|
@@ -490,13 +514,7 @@ cd svelte && npm publish --access public --auth-type=web
|
|
|
490
514
|
That prints a `npmjs.com/auth/cli/…` URL; approving it there with a
|
|
491
515
|
passkey (or an authenticator app) completes the publish. `--otp=<code>`
|
|
492
516
|
works too, but only with an authenticator app — a passkey produces no
|
|
493
|
-
code.
|
|
494
|
-
the tag is what records which commit a version came from.
|
|
495
|
-
|
|
496
|
-
Fixing CI means either a bypass-enabled token while npm still issues
|
|
497
|
-
them, or trusted publishing via GitHub Actions OIDC — the latter is
|
|
498
|
-
untested here and may be unavailable for the same reason provenance is,
|
|
499
|
-
namely that this repo is private.
|
|
517
|
+
code.
|
|
500
518
|
|
|
501
519
|
## Known design debt
|
|
502
520
|
|
|
@@ -143,8 +143,13 @@
|
|
|
143
143
|
>
|
|
144
144
|
{#if swatchLabel}
|
|
145
145
|
<!-- Literal white + a soft shadow: the swatch is an arbitrary
|
|
146
|
-
consumer colour, so no theme token can promise contrast.
|
|
147
|
-
|
|
146
|
+
consumer colour, so no theme token can promise contrast.
|
|
147
|
+
`font-bold`, not `font-semibold`: GT Walsheim Pro ships
|
|
148
|
+
300/400/500/700/900 and no 600, so semibold silently
|
|
149
|
+
renders as Medium 500 (e2e/font-faces.spec.ts caught it).
|
|
150
|
+
`font-semibold` is only legal on the logo subtitle, which
|
|
151
|
+
switches to Avenir Next, whose Demi *is* 600. -->
|
|
152
|
+
<span class="font-bold text-white [text-shadow:0_1px_2px_rgba(0,0,0,0.35)]"
|
|
148
153
|
>{swatchLabel}</span
|
|
149
154
|
>
|
|
150
155
|
{/if}
|