@aceshooting/lyra-flags 1.1.0 → 1.2.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.
Files changed (201) hide show
  1. package/README.md +32 -4
  2. package/flags/ad.svg +1 -281
  3. package/flags/af.svg +1 -8
  4. package/flags/ar.svg +1 -71
  5. package/flags/as.svg +1 -112
  6. package/flags/bl.svg +1 -391
  7. package/flags/bm.svg +1 -224
  8. package/flags/bn.svg +1 -60
  9. package/flags/br.svg +1 -298
  10. package/flags/bt.svg +1 -551
  11. package/flags/bz.svg +1 -172
  12. package/flags/cy.svg +1 -8
  13. package/flags/detailed/ad.svg +281 -0
  14. package/flags/detailed/af.svg +8 -0
  15. package/flags/detailed/ar.svg +71 -0
  16. package/flags/detailed/as.svg +112 -0
  17. package/flags/detailed/bl.svg +391 -0
  18. package/flags/detailed/bm.svg +224 -0
  19. package/flags/detailed/bn.svg +60 -0
  20. package/flags/detailed/br.svg +298 -0
  21. package/flags/detailed/bt.svg +551 -0
  22. package/flags/detailed/bz.svg +172 -0
  23. package/flags/detailed/cy.svg +8 -0
  24. package/flags/detailed/dm.svg +164 -0
  25. package/flags/detailed/do.svg +502 -0
  26. package/flags/detailed/ec.svg +1662 -0
  27. package/flags/detailed/eg.svg +101 -0
  28. package/flags/detailed/es.svg +712 -0
  29. package/flags/detailed/fj.svg +251 -0
  30. package/flags/detailed/fk.svg +293 -0
  31. package/flags/detailed/gi.svg +83 -0
  32. package/flags/detailed/gq.svg +82 -0
  33. package/flags/detailed/gs.svg +325 -0
  34. package/flags/detailed/gt.svg +579 -0
  35. package/flags/detailed/gu.svg +27 -0
  36. package/flags/detailed/hr.svg +233 -0
  37. package/flags/detailed/ht.svg +413 -0
  38. package/flags/detailed/im.svg +64 -0
  39. package/flags/detailed/io.svg +251 -0
  40. package/flags/detailed/ir.svg +59 -0
  41. package/flags/detailed/je.svg +178 -0
  42. package/flags/detailed/kh.svg +143 -0
  43. package/flags/detailed/ki.svg +28 -0
  44. package/flags/detailed/ky.svg +373 -0
  45. package/flags/detailed/kz.svg +56 -0
  46. package/flags/detailed/li.svg +117 -0
  47. package/flags/detailed/lk.svg +70 -0
  48. package/flags/detailed/loaders/ad.js +5 -0
  49. package/flags/detailed/loaders/af.js +5 -0
  50. package/flags/detailed/loaders/ar.js +5 -0
  51. package/flags/detailed/loaders/as.js +5 -0
  52. package/flags/detailed/loaders/bl.js +5 -0
  53. package/flags/detailed/loaders/bm.js +5 -0
  54. package/flags/detailed/loaders/bn.js +5 -0
  55. package/flags/detailed/loaders/br.js +5 -0
  56. package/flags/detailed/loaders/bt.js +5 -0
  57. package/flags/detailed/loaders/bz.js +5 -0
  58. package/flags/detailed/loaders/cy.js +5 -0
  59. package/flags/detailed/loaders/dm.js +5 -0
  60. package/flags/detailed/loaders/do.js +5 -0
  61. package/flags/detailed/loaders/ec.js +5 -0
  62. package/flags/detailed/loaders/eg.js +5 -0
  63. package/flags/detailed/loaders/es.js +5 -0
  64. package/flags/detailed/loaders/fj.js +5 -0
  65. package/flags/detailed/loaders/fk.js +5 -0
  66. package/flags/detailed/loaders/gi.js +5 -0
  67. package/flags/detailed/loaders/gq.js +5 -0
  68. package/flags/detailed/loaders/gs.js +5 -0
  69. package/flags/detailed/loaders/gt.js +5 -0
  70. package/flags/detailed/loaders/gu.js +5 -0
  71. package/flags/detailed/loaders/hr.js +5 -0
  72. package/flags/detailed/loaders/ht.js +5 -0
  73. package/flags/detailed/loaders/im.js +5 -0
  74. package/flags/detailed/loaders/io.js +5 -0
  75. package/flags/detailed/loaders/ir.js +5 -0
  76. package/flags/detailed/loaders/je.js +5 -0
  77. package/flags/detailed/loaders/kh.js +5 -0
  78. package/flags/detailed/loaders/ki.js +5 -0
  79. package/flags/detailed/loaders/ky.js +5 -0
  80. package/flags/detailed/loaders/kz.js +5 -0
  81. package/flags/detailed/loaders/li.js +5 -0
  82. package/flags/detailed/loaders/lk.js +5 -0
  83. package/flags/detailed/loaders/md.js +5 -0
  84. package/flags/detailed/loaders/me.js +5 -0
  85. package/flags/detailed/loaders/mp.js +5 -0
  86. package/flags/detailed/loaders/ms.js +5 -0
  87. package/flags/detailed/loaders/mt.js +5 -0
  88. package/flags/detailed/loaders/mx.js +5 -0
  89. package/flags/detailed/loaders/nf.js +5 -0
  90. package/flags/detailed/loaders/ni.js +5 -0
  91. package/flags/detailed/loaders/om.js +5 -0
  92. package/flags/detailed/loaders/pf.js +5 -0
  93. package/flags/detailed/loaders/pm.js +5 -0
  94. package/flags/detailed/loaders/pn.js +5 -0
  95. package/flags/detailed/loaders/pt.js +5 -0
  96. package/flags/detailed/loaders/py.js +5 -0
  97. package/flags/detailed/loaders/rs.js +5 -0
  98. package/flags/detailed/loaders/sa.js +5 -0
  99. package/flags/detailed/loaders/sh.js +5 -0
  100. package/flags/detailed/loaders/sm.js +5 -0
  101. package/flags/detailed/loaders/sv.js +5 -0
  102. package/flags/detailed/loaders/sx.js +5 -0
  103. package/flags/detailed/loaders/sz.js +5 -0
  104. package/flags/detailed/loaders/tc.js +5 -0
  105. package/flags/detailed/loaders/tm.js +5 -0
  106. package/flags/detailed/loaders/ug.js +5 -0
  107. package/flags/detailed/loaders/uy.js +5 -0
  108. package/flags/detailed/loaders/va.js +5 -0
  109. package/flags/detailed/loaders/vg.js +5 -0
  110. package/flags/detailed/loaders/vi.js +5 -0
  111. package/flags/detailed/loaders/yt.js +5 -0
  112. package/flags/detailed/loaders/zm.js +5 -0
  113. package/flags/detailed/md.svg +135 -0
  114. package/flags/detailed/me.svg +259 -0
  115. package/flags/detailed/mp.svg +281 -0
  116. package/flags/detailed/ms.svg +82 -0
  117. package/flags/detailed/mt.svg +67 -0
  118. package/flags/detailed/mx.svg +766 -0
  119. package/flags/detailed/nf.svg +7 -0
  120. package/flags/detailed/ni.svg +359 -0
  121. package/flags/detailed/om.svg +382 -0
  122. package/flags/detailed/pf.svg +64 -0
  123. package/flags/detailed/pm.svg +535 -0
  124. package/flags/detailed/pn.svg +147 -0
  125. package/flags/detailed/pt.svg +264 -0
  126. package/flags/detailed/py.svg +103 -0
  127. package/flags/detailed/rs.svg +546 -0
  128. package/flags/detailed/sa.svg +6 -0
  129. package/flags/detailed/sh.svg +298 -0
  130. package/flags/detailed/sm.svg +494 -0
  131. package/flags/detailed/sv.svg +1536 -0
  132. package/flags/detailed/sx.svg +49 -0
  133. package/flags/detailed/sz.svg +61 -0
  134. package/flags/detailed/tc.svg +142 -0
  135. package/flags/detailed/tm.svg +371 -0
  136. package/flags/detailed/ug.svg +37 -0
  137. package/flags/detailed/uy.svg +82 -0
  138. package/flags/detailed/va.svg +415 -0
  139. package/flags/detailed/vg.svg +280 -0
  140. package/flags/detailed/vi.svg +144 -0
  141. package/flags/detailed/yt.svg +80 -0
  142. package/flags/detailed/zm.svg +38 -0
  143. package/flags/dm.svg +1 -164
  144. package/flags/do.svg +1 -502
  145. package/flags/ec.svg +1 -1662
  146. package/flags/eg.svg +1 -101
  147. package/flags/es.svg +1 -712
  148. package/flags/fj.svg +1 -251
  149. package/flags/fk.svg +1 -293
  150. package/flags/generated-detailed.d.ts +6 -0
  151. package/flags/generated-detailed.js +79 -0
  152. package/flags/gi.svg +1 -83
  153. package/flags/gq.svg +1 -82
  154. package/flags/gs.svg +1 -325
  155. package/flags/gt.svg +1 -579
  156. package/flags/gu.svg +1 -27
  157. package/flags/hr.svg +1 -233
  158. package/flags/ht.svg +1 -413
  159. package/flags/im.svg +1 -64
  160. package/flags/io.svg +1 -251
  161. package/flags/ir.svg +1 -59
  162. package/flags/je.svg +1 -178
  163. package/flags/kh.svg +1 -143
  164. package/flags/ki.svg +1 -28
  165. package/flags/ky.svg +1 -373
  166. package/flags/kz.svg +1 -56
  167. package/flags/li.svg +1 -117
  168. package/flags/lk.svg +1 -70
  169. package/flags/md.svg +1 -135
  170. package/flags/me.svg +1 -259
  171. package/flags/mp.svg +1 -281
  172. package/flags/ms.svg +1 -82
  173. package/flags/mt.svg +1 -67
  174. package/flags/mx.svg +1 -766
  175. package/flags/nf.svg +1 -7
  176. package/flags/ni.svg +1 -359
  177. package/flags/om.svg +1 -382
  178. package/flags/pf.svg +1 -64
  179. package/flags/pm.svg +1 -535
  180. package/flags/pn.svg +1 -147
  181. package/flags/pt.svg +1 -264
  182. package/flags/py.svg +1 -103
  183. package/flags/rs.svg +1 -546
  184. package/flags/sa.svg +1 -6
  185. package/flags/sh.svg +1 -298
  186. package/flags/sm.svg +1 -494
  187. package/flags/sv.svg +1 -1536
  188. package/flags/sx.svg +1 -49
  189. package/flags/sz.svg +1 -61
  190. package/flags/tc.svg +1 -142
  191. package/flags/tm.svg +1 -371
  192. package/flags/ug.svg +1 -37
  193. package/flags/uy.svg +1 -82
  194. package/flags/va.svg +1 -415
  195. package/flags/vg.svg +1 -280
  196. package/flags/vi.svg +1 -144
  197. package/flags/yt.svg +1 -80
  198. package/flags/zm.svg +1 -38
  199. package/index.d.ts +15 -1
  200. package/index.js +13 -2
  201. package/package.json +5 -1
package/README.md CHANGED
@@ -36,16 +36,44 @@ import { flagUrls } from '@aceshooting/lyra-flags';
36
36
  const urls = await flagUrls(); // -> { ad: '...', ae: '...', ..., zw: '...' } — all 249 at once
37
37
  ```
38
38
 
39
+ ## Compact vs. detailed variants
40
+
41
+ A minority of flags (65 of 249) include 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 distinguishable
43
+ at icon scale but costs real transfer bytes regardless (the worst case, `sv`, was 759 KB raw before
44
+ optimization). Those 65 codes ship **two variants**:
45
+
46
+ - **Default** (what `flagUrl(code)` and `<lyra-flag country="...">` resolve to) — an SVGO-optimized
47
+ version tuned for icon-scale rendering (16-24px), ~65% smaller on average for the 65 affected
48
+ codes, with no visible fidelity loss at that scale.
49
+ - **Detailed** — the pristine, unmodified original — opt in with `flagUrl(code, { variant:
50
+ 'detailed' })` or `<lyra-flag detailed>`, for a use case where the flag renders larger than icon
51
+ scale (e.g. a hero display) and the extra detail is actually visible.
52
+
53
+ For the other 184 codes (already appropriately sized), `variant: 'detailed'`/`detailed` is a safe
54
+ no-op — both resolve to the same file.
55
+
56
+ ```js
57
+ await flagUrl('es'); // -> compact, icon-optimized (~118 KB, was ~425 KB)
58
+ await flagUrl('es', { variant: 'detailed' }); // -> pristine original (~425 KB)
59
+ ```
60
+
61
+ Maintainers: `pnpm run optimize` (idempotent — re-running is a no-op for a code already processed)
62
+ regenerates the compact/detailed split for any newly-added oversized flag; follow with `pnpm run
63
+ generate` to update the generated loader index.
64
+
39
65
  ## Asset provenance / license
40
66
 
41
67
  The code in this package (`index.js`, `index.d.ts`) is MIT, © Aceshooting.
42
68
 
43
- The flag artwork (`flags/*.svg`) is vendored unmodified from Google's
69
+ The flag artwork (`flags/*.svg`, and every `flags/detailed/*.svg`) is vendored from Google's
44
70
  [**Noto Emoji**](https://github.com/googlefonts/noto-emoji) project
45
71
  (`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. Per that directory's `LICENSE`:
47
- the flags were downloaded from Wikipedia/Wikimedia Commons and verified to be **Public Domain
48
- or otherwise exempt from Copyright**. Full upstream `LICENSE`/`AUTHORS`/`README.third_party`
72
+ (France, the US, the UK) pixel-for-pixel against that source. `flags/detailed/*.svg` (65 codes) are
73
+ unmodified; the corresponding `flags/*.svg` for those same 65 codes is an SVGO-optimized derivative
74
+ (see "Compact vs. detailed variants" above) every other `flags/*.svg` is unmodified. Per that
75
+ directory's `LICENSE`: the flags were downloaded from Wikipedia/Wikimedia Commons and verified to be
76
+ **Public Domain or otherwise exempt from Copyright**. Full upstream `LICENSE`/`AUTHORS`/`README.third_party`
49
77
  text, the exact source commit, and per-flag exceptions are reproduced in
50
78
  [`THIRD_PARTY_NOTICES.md`](./THIRD_PARTY_NOTICES.md).
51
79