@aceshooting/lyra-flags 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -4
- package/flags/ad.svg +1 -281
- package/flags/af.svg +1 -8
- package/flags/ar.svg +1 -71
- package/flags/as.svg +1 -112
- package/flags/bl.svg +1 -391
- package/flags/bm.svg +1 -224
- package/flags/bn.svg +1 -60
- package/flags/br.svg +1 -298
- package/flags/bt.svg +1 -551
- package/flags/bz.svg +1 -172
- package/flags/compact/ad.webp +0 -0
- package/flags/compact/af.webp +0 -0
- package/flags/compact/ar.webp +0 -0
- package/flags/compact/as.webp +0 -0
- package/flags/compact/bl.webp +0 -0
- package/flags/compact/bm.webp +0 -0
- package/flags/compact/bn.webp +0 -0
- package/flags/compact/br.webp +0 -0
- package/flags/compact/bt.webp +0 -0
- package/flags/compact/bz.webp +0 -0
- package/flags/compact/cy.webp +0 -0
- package/flags/compact/dm.webp +0 -0
- package/flags/compact/do.webp +0 -0
- package/flags/compact/ec.webp +0 -0
- package/flags/compact/eg.webp +0 -0
- package/flags/compact/es.webp +0 -0
- package/flags/compact/fj.webp +0 -0
- package/flags/compact/fk.webp +0 -0
- package/flags/compact/gi.webp +0 -0
- package/flags/compact/gq.webp +0 -0
- package/flags/compact/gs.webp +0 -0
- package/flags/compact/gt.webp +0 -0
- package/flags/compact/gu.webp +0 -0
- package/flags/compact/hr.webp +0 -0
- package/flags/compact/ht.webp +0 -0
- package/flags/compact/im.webp +0 -0
- package/flags/compact/io.webp +0 -0
- package/flags/compact/ir.webp +0 -0
- package/flags/compact/je.webp +0 -0
- package/flags/compact/kh.webp +0 -0
- package/flags/compact/ki.webp +0 -0
- package/flags/compact/ky.webp +0 -0
- package/flags/compact/kz.webp +0 -0
- package/flags/compact/li.webp +0 -0
- package/flags/compact/lk.webp +0 -0
- package/flags/compact/loaders/ad.js +5 -0
- package/flags/compact/loaders/af.js +5 -0
- package/flags/compact/loaders/ar.js +5 -0
- package/flags/compact/loaders/as.js +5 -0
- package/flags/compact/loaders/bl.js +5 -0
- package/flags/compact/loaders/bm.js +5 -0
- package/flags/compact/loaders/bn.js +5 -0
- package/flags/compact/loaders/br.js +5 -0
- package/flags/compact/loaders/bt.js +5 -0
- package/flags/compact/loaders/bz.js +5 -0
- package/flags/compact/loaders/cy.js +5 -0
- package/flags/compact/loaders/dm.js +5 -0
- package/flags/compact/loaders/do.js +5 -0
- package/flags/compact/loaders/ec.js +5 -0
- package/flags/compact/loaders/eg.js +5 -0
- package/flags/compact/loaders/es.js +5 -0
- package/flags/compact/loaders/fj.js +5 -0
- package/flags/compact/loaders/fk.js +5 -0
- package/flags/compact/loaders/gi.js +5 -0
- package/flags/compact/loaders/gq.js +5 -0
- package/flags/compact/loaders/gs.js +5 -0
- package/flags/compact/loaders/gt.js +5 -0
- package/flags/compact/loaders/gu.js +5 -0
- package/flags/compact/loaders/hr.js +5 -0
- package/flags/compact/loaders/ht.js +5 -0
- package/flags/compact/loaders/im.js +5 -0
- package/flags/compact/loaders/io.js +5 -0
- package/flags/compact/loaders/ir.js +5 -0
- package/flags/compact/loaders/je.js +5 -0
- package/flags/compact/loaders/kh.js +5 -0
- package/flags/compact/loaders/ki.js +5 -0
- package/flags/compact/loaders/ky.js +5 -0
- package/flags/compact/loaders/kz.js +5 -0
- package/flags/compact/loaders/li.js +5 -0
- package/flags/compact/loaders/lk.js +5 -0
- package/flags/compact/loaders/md.js +5 -0
- package/flags/compact/loaders/me.js +5 -0
- package/flags/compact/loaders/mp.js +5 -0
- package/flags/compact/loaders/ms.js +5 -0
- package/flags/compact/loaders/mt.js +5 -0
- package/flags/compact/loaders/mx.js +5 -0
- package/flags/compact/loaders/nf.js +5 -0
- package/flags/compact/loaders/ni.js +5 -0
- package/flags/compact/loaders/om.js +5 -0
- package/flags/compact/loaders/pf.js +5 -0
- package/flags/compact/loaders/pm.js +5 -0
- package/flags/compact/loaders/pn.js +5 -0
- package/flags/compact/loaders/pt.js +5 -0
- package/flags/compact/loaders/py.js +5 -0
- package/flags/compact/loaders/rs.js +5 -0
- package/flags/compact/loaders/sa.js +5 -0
- package/flags/compact/loaders/sh.js +5 -0
- package/flags/compact/loaders/sm.js +5 -0
- package/flags/compact/loaders/sv.js +5 -0
- package/flags/compact/loaders/sx.js +5 -0
- package/flags/compact/loaders/sz.js +5 -0
- package/flags/compact/loaders/tc.js +5 -0
- package/flags/compact/loaders/tm.js +5 -0
- package/flags/compact/loaders/ug.js +5 -0
- package/flags/compact/loaders/uy.js +5 -0
- package/flags/compact/loaders/va.js +5 -0
- package/flags/compact/loaders/vg.js +5 -0
- package/flags/compact/loaders/vi.js +5 -0
- package/flags/compact/loaders/yt.js +5 -0
- package/flags/compact/loaders/zm.js +5 -0
- package/flags/compact/md.webp +0 -0
- package/flags/compact/me.webp +0 -0
- package/flags/compact/mp.webp +0 -0
- package/flags/compact/ms.webp +0 -0
- package/flags/compact/mt.webp +0 -0
- package/flags/compact/mx.webp +0 -0
- package/flags/compact/nf.webp +0 -0
- package/flags/compact/ni.webp +0 -0
- package/flags/compact/om.webp +0 -0
- package/flags/compact/pf.webp +0 -0
- package/flags/compact/pm.webp +0 -0
- package/flags/compact/pn.webp +0 -0
- package/flags/compact/pt.webp +0 -0
- package/flags/compact/py.webp +0 -0
- package/flags/compact/rs.webp +0 -0
- package/flags/compact/sa.webp +0 -0
- package/flags/compact/sh.webp +0 -0
- package/flags/compact/sm.webp +0 -0
- package/flags/compact/sv.webp +0 -0
- package/flags/compact/sx.webp +0 -0
- package/flags/compact/sz.webp +0 -0
- package/flags/compact/tc.webp +0 -0
- package/flags/compact/tm.webp +0 -0
- package/flags/compact/ug.webp +0 -0
- package/flags/compact/uy.webp +0 -0
- package/flags/compact/va.webp +0 -0
- package/flags/compact/vg.webp +0 -0
- package/flags/compact/vi.webp +0 -0
- package/flags/compact/yt.webp +0 -0
- package/flags/compact/zm.webp +0 -0
- package/flags/cy.svg +1 -8
- package/flags/detailed/ad.svg +281 -0
- package/flags/detailed/af.svg +8 -0
- package/flags/detailed/ar.svg +71 -0
- package/flags/detailed/as.svg +112 -0
- package/flags/detailed/bl.svg +391 -0
- package/flags/detailed/bm.svg +224 -0
- package/flags/detailed/bn.svg +60 -0
- package/flags/detailed/br.svg +298 -0
- package/flags/detailed/bt.svg +551 -0
- package/flags/detailed/bz.svg +172 -0
- package/flags/detailed/cy.svg +8 -0
- package/flags/detailed/dm.svg +164 -0
- package/flags/detailed/do.svg +502 -0
- package/flags/detailed/ec.svg +1662 -0
- package/flags/detailed/eg.svg +101 -0
- package/flags/detailed/es.svg +712 -0
- package/flags/detailed/fj.svg +251 -0
- package/flags/detailed/fk.svg +293 -0
- package/flags/detailed/gi.svg +83 -0
- package/flags/detailed/gq.svg +82 -0
- package/flags/detailed/gs.svg +325 -0
- package/flags/detailed/gt.svg +579 -0
- package/flags/detailed/gu.svg +27 -0
- package/flags/detailed/hr.svg +233 -0
- package/flags/detailed/ht.svg +413 -0
- package/flags/detailed/im.svg +64 -0
- package/flags/detailed/io.svg +251 -0
- package/flags/detailed/ir.svg +59 -0
- package/flags/detailed/je.svg +178 -0
- package/flags/detailed/kh.svg +143 -0
- package/flags/detailed/ki.svg +28 -0
- package/flags/detailed/ky.svg +373 -0
- package/flags/detailed/kz.svg +56 -0
- package/flags/detailed/li.svg +117 -0
- package/flags/detailed/lk.svg +70 -0
- package/flags/detailed/loaders/ad.js +5 -0
- package/flags/detailed/loaders/af.js +5 -0
- package/flags/detailed/loaders/ar.js +5 -0
- package/flags/detailed/loaders/as.js +5 -0
- package/flags/detailed/loaders/bl.js +5 -0
- package/flags/detailed/loaders/bm.js +5 -0
- package/flags/detailed/loaders/bn.js +5 -0
- package/flags/detailed/loaders/br.js +5 -0
- package/flags/detailed/loaders/bt.js +5 -0
- package/flags/detailed/loaders/bz.js +5 -0
- package/flags/detailed/loaders/cy.js +5 -0
- package/flags/detailed/loaders/dm.js +5 -0
- package/flags/detailed/loaders/do.js +5 -0
- package/flags/detailed/loaders/ec.js +5 -0
- package/flags/detailed/loaders/eg.js +5 -0
- package/flags/detailed/loaders/es.js +5 -0
- package/flags/detailed/loaders/fj.js +5 -0
- package/flags/detailed/loaders/fk.js +5 -0
- package/flags/detailed/loaders/gi.js +5 -0
- package/flags/detailed/loaders/gq.js +5 -0
- package/flags/detailed/loaders/gs.js +5 -0
- package/flags/detailed/loaders/gt.js +5 -0
- package/flags/detailed/loaders/gu.js +5 -0
- package/flags/detailed/loaders/hr.js +5 -0
- package/flags/detailed/loaders/ht.js +5 -0
- package/flags/detailed/loaders/im.js +5 -0
- package/flags/detailed/loaders/io.js +5 -0
- package/flags/detailed/loaders/ir.js +5 -0
- package/flags/detailed/loaders/je.js +5 -0
- package/flags/detailed/loaders/kh.js +5 -0
- package/flags/detailed/loaders/ki.js +5 -0
- package/flags/detailed/loaders/ky.js +5 -0
- package/flags/detailed/loaders/kz.js +5 -0
- package/flags/detailed/loaders/li.js +5 -0
- package/flags/detailed/loaders/lk.js +5 -0
- package/flags/detailed/loaders/md.js +5 -0
- package/flags/detailed/loaders/me.js +5 -0
- package/flags/detailed/loaders/mp.js +5 -0
- package/flags/detailed/loaders/ms.js +5 -0
- package/flags/detailed/loaders/mt.js +5 -0
- package/flags/detailed/loaders/mx.js +5 -0
- package/flags/detailed/loaders/nf.js +5 -0
- package/flags/detailed/loaders/ni.js +5 -0
- package/flags/detailed/loaders/om.js +5 -0
- package/flags/detailed/loaders/pf.js +5 -0
- package/flags/detailed/loaders/pm.js +5 -0
- package/flags/detailed/loaders/pn.js +5 -0
- package/flags/detailed/loaders/pt.js +5 -0
- package/flags/detailed/loaders/py.js +5 -0
- package/flags/detailed/loaders/rs.js +5 -0
- package/flags/detailed/loaders/sa.js +5 -0
- package/flags/detailed/loaders/sh.js +5 -0
- package/flags/detailed/loaders/sm.js +5 -0
- package/flags/detailed/loaders/sv.js +5 -0
- package/flags/detailed/loaders/sx.js +5 -0
- package/flags/detailed/loaders/sz.js +5 -0
- package/flags/detailed/loaders/tc.js +5 -0
- package/flags/detailed/loaders/tm.js +5 -0
- package/flags/detailed/loaders/ug.js +5 -0
- package/flags/detailed/loaders/uy.js +5 -0
- package/flags/detailed/loaders/va.js +5 -0
- package/flags/detailed/loaders/vg.js +5 -0
- package/flags/detailed/loaders/vi.js +5 -0
- package/flags/detailed/loaders/yt.js +5 -0
- package/flags/detailed/loaders/zm.js +5 -0
- package/flags/detailed/md.svg +135 -0
- package/flags/detailed/me.svg +259 -0
- package/flags/detailed/mp.svg +281 -0
- package/flags/detailed/ms.svg +82 -0
- package/flags/detailed/mt.svg +67 -0
- package/flags/detailed/mx.svg +766 -0
- package/flags/detailed/nf.svg +7 -0
- package/flags/detailed/ni.svg +359 -0
- package/flags/detailed/om.svg +382 -0
- package/flags/detailed/pf.svg +64 -0
- package/flags/detailed/pm.svg +535 -0
- package/flags/detailed/pn.svg +147 -0
- package/flags/detailed/pt.svg +264 -0
- package/flags/detailed/py.svg +103 -0
- package/flags/detailed/rs.svg +546 -0
- package/flags/detailed/sa.svg +6 -0
- package/flags/detailed/sh.svg +298 -0
- package/flags/detailed/sm.svg +494 -0
- package/flags/detailed/sv.svg +1536 -0
- package/flags/detailed/sx.svg +49 -0
- package/flags/detailed/sz.svg +61 -0
- package/flags/detailed/tc.svg +142 -0
- package/flags/detailed/tm.svg +371 -0
- package/flags/detailed/ug.svg +37 -0
- package/flags/detailed/uy.svg +82 -0
- package/flags/detailed/va.svg +415 -0
- package/flags/detailed/vg.svg +280 -0
- package/flags/detailed/vi.svg +144 -0
- package/flags/detailed/yt.svg +80 -0
- package/flags/detailed/zm.svg +38 -0
- package/flags/dm.svg +1 -164
- package/flags/do.svg +1 -502
- package/flags/ec.svg +1 -1662
- package/flags/eg.svg +1 -101
- package/flags/es.svg +1 -712
- package/flags/fj.svg +1 -251
- package/flags/fk.svg +1 -293
- package/flags/generated-compact.d.ts +6 -0
- package/flags/generated-compact.js +80 -0
- package/flags/generated-detailed.d.ts +6 -0
- package/flags/generated-detailed.js +79 -0
- package/flags/gi.svg +1 -83
- package/flags/gq.svg +1 -82
- package/flags/gs.svg +1 -325
- package/flags/gt.svg +1 -579
- package/flags/gu.svg +1 -27
- package/flags/hr.svg +1 -233
- package/flags/ht.svg +1 -413
- package/flags/im.svg +1 -64
- package/flags/io.svg +1 -251
- package/flags/ir.svg +1 -59
- package/flags/je.svg +1 -178
- package/flags/kh.svg +1 -143
- package/flags/ki.svg +1 -28
- package/flags/ky.svg +1 -373
- package/flags/kz.svg +1 -56
- package/flags/li.svg +1 -117
- package/flags/lk.svg +1 -70
- package/flags/md.svg +1 -135
- package/flags/me.svg +1 -259
- package/flags/mp.svg +1 -281
- package/flags/ms.svg +1 -82
- package/flags/mt.svg +1 -67
- package/flags/mx.svg +1 -766
- package/flags/nf.svg +1 -7
- package/flags/ni.svg +1 -359
- package/flags/om.svg +1 -382
- package/flags/pf.svg +1 -64
- package/flags/pm.svg +1 -535
- package/flags/pn.svg +1 -147
- package/flags/pt.svg +1 -264
- package/flags/py.svg +1 -103
- package/flags/rs.svg +1 -546
- package/flags/sa.svg +1 -6
- package/flags/sh.svg +1 -298
- package/flags/sm.svg +1 -494
- package/flags/sv.svg +1 -1536
- package/flags/sx.svg +1 -49
- package/flags/sz.svg +1 -61
- package/flags/tc.svg +1 -142
- package/flags/tm.svg +1 -371
- package/flags/ug.svg +1 -37
- package/flags/uy.svg +1 -82
- package/flags/va.svg +1 -415
- package/flags/vg.svg +1 -280
- package/flags/vi.svg +1 -144
- package/flags/yt.svg +1 -80
- package/flags/zm.svg +1 -38
- package/index.d.ts +24 -1
- package/index.js +20 -2
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -36,16 +36,53 @@ import { flagUrls } from '@aceshooting/lyra-flags';
|
|
|
36
36
|
const urls = await flagUrls(); // -> { ad: '...', ae: '...', ..., zw: '...' } — all 249 at once
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
## Fidelity tiers: compact / standard / detailed
|
|
40
|
+
|
|
41
|
+
A minority of flags (65 of 249) embed a detailed coat of arms, seal, or emblem in their source
|
|
42
|
+
artwork (e.g. `es`, `pt`, `sv`) — full illustrative vector detail that isn't visually
|
|
43
|
+
distinguishable at icon scale but costs real transfer bytes regardless (the worst case, `sv`, is
|
|
44
|
+
741 KB raw). Those 65 codes ship **three tiers**, each the best representation for a size band; pick
|
|
45
|
+
one with `flagUrl(code, { variant })` or `<lyra-flag variant="...">`:
|
|
46
|
+
|
|
47
|
+
- **`compact`** — a tiny WebP raster (~1–3 KB) for icon-scale use (menu items, language selectors,
|
|
48
|
+
dense lists; ~12–28px), where the emblem is a sub-pixel smudge anyway. At that size a downscaled
|
|
49
|
+
raster is both crisper *and* far smaller than hundreds of sub-pixel vector paths.
|
|
50
|
+
- **`standard`** (the default — what `flagUrl(code)` / `<lyra-flag country="...">` resolve to) — an
|
|
51
|
+
aggressively-but-losslessly SVGO-optimized vector for card/row sizes (~28–96px). Every flag is
|
|
52
|
+
under 80 KB, with no fidelity loss perceptible at that scale.
|
|
53
|
+
- **`detailed`** — the pristine, unmodified original vector, for rendering larger than icon scale
|
|
54
|
+
(e.g. a hero display) where the extra illustrative detail is actually visible.
|
|
55
|
+
|
|
56
|
+
For the other 184 codes (already appropriately sized simple flags), every `variant` is a safe
|
|
57
|
+
no-op — all tiers resolve to the same small vector file.
|
|
58
|
+
|
|
59
|
+
```js
|
|
60
|
+
await flagUrl('es'); // -> standard vector (~48 KB)
|
|
61
|
+
await flagUrl('es', { variant: 'compact' }); // -> WebP raster (~2 KB)
|
|
62
|
+
await flagUrl('es', { variant: 'detailed' }); // -> pristine original (~415 KB)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Every tier is code-split per flag **and** per tier: a bundled app that only ever requests
|
|
66
|
+
`variant: 'compact'` for a handful of codes ships only those few compact WebPs — never their
|
|
67
|
+
standard or detailed variants, and never the other flags.
|
|
68
|
+
|
|
69
|
+
Maintainers, after adding/replacing source art: `pnpm run optimize` (re-derives the standard tier
|
|
70
|
+
from the pristine `flags/detailed/` originals) → `pnpm run build-compact` (renders the compact WebP
|
|
71
|
+
rasters) → `pnpm run generate` (updates the generated loader index).
|
|
72
|
+
|
|
39
73
|
## Asset provenance / license
|
|
40
74
|
|
|
41
75
|
The code in this package (`index.js`, `index.d.ts`) is MIT, © Aceshooting.
|
|
42
76
|
|
|
43
|
-
The flag artwork (`flags/*.svg`) is vendored
|
|
77
|
+
The flag artwork (`flags/*.svg`, and every `flags/detailed/*.svg`) is vendored from Google's
|
|
44
78
|
[**Noto Emoji**](https://github.com/googlefonts/noto-emoji) project
|
|
45
79
|
(`third_party/region-flags/waved-svg/`), traced there after visually matching three flags
|
|
46
|
-
(France, the US, the UK) pixel-for-pixel against that source.
|
|
47
|
-
the flags
|
|
48
|
-
|
|
80
|
+
(France, the US, the UK) pixel-for-pixel against that source. `flags/detailed/*.svg` (65 codes) are
|
|
81
|
+
unmodified; the corresponding `flags/*.svg` for those same 65 codes is an SVGO-optimized derivative,
|
|
82
|
+
and each `flags/compact/*.webp` is a downscaled raster derivative of the same original (see
|
|
83
|
+
"Fidelity tiers" above) — every other `flags/*.svg` is unmodified. Per that
|
|
84
|
+
directory's `LICENSE`: the flags were downloaded from Wikipedia/Wikimedia Commons and verified to be
|
|
85
|
+
**Public Domain or otherwise exempt from Copyright**. Full upstream `LICENSE`/`AUTHORS`/`README.third_party`
|
|
49
86
|
text, the exact source commit, and per-flag exceptions are reproduced in
|
|
50
87
|
[`THIRD_PARTY_NOTICES.md`](./THIRD_PARTY_NOTICES.md).
|
|
51
88
|
|