uomtiles 0.1.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 (507) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/1d1PDhA4.js +1 -0
  3. package/.output/public/_nuxt/3B2XYGg4.js +1 -0
  4. package/.output/public/_nuxt/981KwFWf.js +1 -0
  5. package/.output/public/_nuxt/B30dSvM4.js +1 -0
  6. package/.output/public/_nuxt/BN1Gp4Dm.js +1 -0
  7. package/.output/public/_nuxt/BQlj8Xoe.js +6 -0
  8. package/.output/public/_nuxt/BRkljK8J.js +1 -0
  9. package/.output/public/_nuxt/BSdHYVlE2.js +1 -0
  10. package/.output/public/_nuxt/B_MqTg2k2.js +1 -0
  11. package/.output/public/_nuxt/BiWblTbb2.js +64 -0
  12. package/.output/public/_nuxt/BrPwntMr.js +1 -0
  13. package/.output/public/_nuxt/BskybydR.js +1 -0
  14. package/.output/public/_nuxt/ByRlKR9F.js +1 -0
  15. package/.output/public/_nuxt/C0Zdl2EE2.js +1 -0
  16. package/.output/public/_nuxt/C4qlzA4o.js +1 -0
  17. package/.output/public/_nuxt/C7HxHbxA.js +1 -0
  18. package/.output/public/_nuxt/C97TfNgP.js +3 -0
  19. package/.output/public/_nuxt/CNs_Ozdc.js +1 -0
  20. package/.output/public/_nuxt/CPuhwLY1.js +1 -0
  21. package/.output/public/_nuxt/CVE291Pi.js +1 -0
  22. package/.output/public/_nuxt/C_0VY3Cv2.js +4 -0
  23. package/.output/public/_nuxt/Ce26t8_Y.js +1 -0
  24. package/.output/public/_nuxt/CfW544W5.js +1 -0
  25. package/.output/public/_nuxt/CgMd2Y5s.js +2 -0
  26. package/.output/public/_nuxt/CgdzV712.js +1 -0
  27. package/.output/public/_nuxt/D1wVNWS0.js +1 -0
  28. package/.output/public/_nuxt/DC3bhq63.js +1 -0
  29. package/.output/public/_nuxt/DK3Fl9T5.js +1 -0
  30. package/.output/public/_nuxt/DL1MZZLI.js +1 -0
  31. package/.output/public/_nuxt/DXm-42Fi.js +1 -0
  32. package/.output/public/_nuxt/Djg3Kzfv.js +1 -0
  33. package/.output/public/_nuxt/DkcySee1.js +1 -0
  34. package/.output/public/_nuxt/DmN-PKW1.js +1 -0
  35. package/.output/public/_nuxt/DtFVCXI9.js +1 -0
  36. package/.output/public/_nuxt/Dz7VMlHR.js +1 -0
  37. package/.output/public/_nuxt/NL65vbjG2.js +1 -0
  38. package/.output/public/_nuxt/Oxy7pKSk.js +3 -0
  39. package/.output/public/_nuxt/Pik8or8N2.js +1 -0
  40. package/.output/public/_nuxt/XZ59tThl.js +1 -0
  41. package/.output/public/_nuxt/ZpWjFsgV.js +1 -0
  42. package/.output/public/_nuxt/builds/latest.json +1 -0
  43. package/.output/public/_nuxt/builds/meta/9f85104e-738d-4a74-8daa-40b136ce17d5.json +1 -0
  44. package/.output/public/_nuxt/dXz6dFgW2.js +1 -0
  45. package/.output/public/_nuxt/entry.P6tFNE31.css +1 -0
  46. package/.output/public/_nuxt/error-404.Biv0P6cJ.css +1 -0
  47. package/.output/public/_nuxt/error-500.8ok468rV.css +1 -0
  48. package/.output/public/_nuxt/j0MRD-c3.js +1 -0
  49. package/.output/public/_nuxt/local-pixel-diff.worker-C6RdZoCq.js +2 -0
  50. package/.output/public/_nuxt/maplibre-gl-worker.nfnkSQvL.mjs +6 -0
  51. package/.output/public/_nuxt/nearest-area.worker-iSLH0Y_s.js +2 -0
  52. package/.output/public/_nuxt/q7DkoVkj.js +828 -0
  53. package/.output/public/_nuxt/raster-tile.worker-BFlOgJig.js +2 -0
  54. package/.output/public/_nuxt/services._3nQizF8.css +1 -0
  55. package/.output/public/_nuxt/sql-wasm.DfANybxk.wasm +0 -0
  56. package/.output/public/_nuxt/tile-diff.worker-CvWWI_eu.js +1 -0
  57. package/.output/public/_nuxt/zZ1EGR7Y.js +1 -0
  58. package/.output/public/apple-touch-icon.png +0 -0
  59. package/.output/public/favicon.ico +0 -0
  60. package/.output/public/favicon.svg +8 -0
  61. package/.output/public/icon-192.png +0 -0
  62. package/.output/public/icon-512.png +0 -0
  63. package/.output/public/site.webmanifest +11 -0
  64. package/.output/server/chunks/_/config.mjs +208 -0
  65. package/.output/server/chunks/_/config.mjs.map +1 -0
  66. package/.output/server/chunks/_/data-directory.mjs +24 -0
  67. package/.output/server/chunks/_/data-directory.mjs.map +1 -0
  68. package/.output/server/chunks/_/error-500.mjs +20 -0
  69. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  70. package/.output/server/chunks/_/file-workspace.mjs +910 -0
  71. package/.output/server/chunks/_/file-workspace.mjs.map +1 -0
  72. package/.output/server/chunks/_/icons.mjs +6269 -0
  73. package/.output/server/chunks/_/icons.mjs.map +1 -0
  74. package/.output/server/chunks/_/map-service.mjs +233 -0
  75. package/.output/server/chunks/_/map-service.mjs.map +1 -0
  76. package/.output/server/chunks/_/missing-tile.mjs +104 -0
  77. package/.output/server/chunks/_/missing-tile.mjs.map +1 -0
  78. package/.output/server/chunks/_/pixel-diff.mjs +78 -0
  79. package/.output/server/chunks/_/pixel-diff.mjs.map +1 -0
  80. package/.output/server/chunks/_/uom-auth.mjs +334 -0
  81. package/.output/server/chunks/_/uom-auth.mjs.map +1 -0
  82. package/.output/server/chunks/_/uom-map.mjs +265 -0
  83. package/.output/server/chunks/_/uom-map.mjs.map +1 -0
  84. package/.output/server/chunks/build/Alert-0ngTJXxP.mjs +5076 -0
  85. package/.output/server/chunks/build/Alert-0ngTJXxP.mjs.map +1 -0
  86. package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs +569 -0
  87. package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs.map +1 -0
  88. package/.output/server/chunks/build/Empty-CkW3mADt.mjs +359 -0
  89. package/.output/server/chunks/build/Empty-CkW3mADt.mjs.map +1 -0
  90. package/.output/server/chunks/build/FocusScope-Cf0lg0zt.mjs +207 -0
  91. package/.output/server/chunks/build/FocusScope-Cf0lg0zt.mjs.map +1 -0
  92. package/.output/server/chunks/build/FormField-CEUZHcv7.mjs +278 -0
  93. package/.output/server/chunks/build/FormField-CEUZHcv7.mjs.map +1 -0
  94. package/.output/server/chunks/build/Input-BeNavYXb.mjs +592 -0
  95. package/.output/server/chunks/build/Input-BeNavYXb.mjs.map +1 -0
  96. package/.output/server/chunks/build/MapBaseLayerTabs-4445J6yh.mjs +2003 -0
  97. package/.output/server/chunks/build/MapBaseLayerTabs-4445J6yh.mjs.map +1 -0
  98. package/.output/server/chunks/build/Modal-DNZtVxca.mjs +1326 -0
  99. package/.output/server/chunks/build/Modal-DNZtVxca.mjs.map +1 -0
  100. package/.output/server/chunks/build/OnlineMap-CKwiuqUY.mjs +146 -0
  101. package/.output/server/chunks/build/OnlineMap-CKwiuqUY.mjs.map +1 -0
  102. package/.output/server/chunks/build/Pagination-CDHx4HTZ.mjs +1025 -0
  103. package/.output/server/chunks/build/Pagination-CDHx4HTZ.mjs.map +1 -0
  104. package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs +2066 -0
  105. package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs.map +1 -0
  106. package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs +379 -0
  107. package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs.map +1 -0
  108. package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs +1087 -0
  109. package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs.map +1 -0
  110. package/.output/server/chunks/build/Tooltip-CkpSktvJ.mjs +1345 -0
  111. package/.output/server/chunks/build/Tooltip-CkpSktvJ.mjs.map +1 -0
  112. package/.output/server/chunks/build/_virtual_public-CeOptKUP.mjs +7 -0
  113. package/.output/server/chunks/build/_virtual_public-CeOptKUP.mjs.map +1 -0
  114. package/.output/server/chunks/build/advanced-D1onodoF.mjs +1430 -0
  115. package/.output/server/chunks/build/advanced-D1onodoF.mjs.map +1 -0
  116. package/.output/server/chunks/build/compare-DmSAW8oA.mjs +1093 -0
  117. package/.output/server/chunks/build/compare-DmSAW8oA.mjs.map +1 -0
  118. package/.output/server/chunks/build/dashboard-BJxrZ19n.mjs +3217 -0
  119. package/.output/server/chunks/build/dashboard-BJxrZ19n.mjs.map +1 -0
  120. package/.output/server/chunks/build/details-CBMqXYyo.mjs +3714 -0
  121. package/.output/server/chunks/build/details-CBMqXYyo.mjs.map +1 -0
  122. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs +86 -0
  123. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs.map +1 -0
  124. package/.output/server/chunks/build/error-404-styles.DciiguV6.mjs +9 -0
  125. package/.output/server/chunks/build/error-404-styles.DciiguV6.mjs.map +1 -0
  126. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs +74 -0
  127. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs.map +1 -0
  128. package/.output/server/chunks/build/error-500-styles.C562DYMR.mjs +9 -0
  129. package/.output/server/chunks/build/error-500-styles.C562DYMR.mjs.map +1 -0
  130. package/.output/server/chunks/build/esm-Dp2lJXbp.mjs +1121 -0
  131. package/.output/server/chunks/build/esm-Dp2lJXbp.mjs.map +1 -0
  132. package/.output/server/chunks/build/interval-BxUMpo78.mjs +411 -0
  133. package/.output/server/chunks/build/interval-BxUMpo78.mjs.map +1 -0
  134. package/.output/server/chunks/build/login-lbtjN0MV.mjs +642 -0
  135. package/.output/server/chunks/build/login-lbtjN0MV.mjs.map +1 -0
  136. package/.output/server/chunks/build/pages-Ba0Eixbd.mjs +220 -0
  137. package/.output/server/chunks/build/pages-Ba0Eixbd.mjs.map +1 -0
  138. package/.output/server/chunks/build/services-DuJwjAB8.mjs +3005 -0
  139. package/.output/server/chunks/build/services-DuJwjAB8.mjs.map +1 -0
  140. package/.output/server/chunks/build/services-styles.eoO16BY9.mjs +9 -0
  141. package/.output/server/chunks/build/services-styles.eoO16BY9.mjs.map +1 -0
  142. package/.output/server/chunks/build/tasks-CyN9x492.mjs +915 -0
  143. package/.output/server/chunks/build/tasks-CyN9x492.mjs.map +1 -0
  144. package/.output/server/chunks/build/tasks-D_Q5EDnn.mjs +87 -0
  145. package/.output/server/chunks/build/tasks-D_Q5EDnn.mjs.map +1 -0
  146. package/.output/server/chunks/nitro/nitro.mjs +6215 -0
  147. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  148. package/.output/server/chunks/routes/api/auth/captcha.post.mjs +21 -0
  149. package/.output/server/chunks/routes/api/auth/captcha.post.mjs.map +1 -0
  150. package/.output/server/chunks/routes/api/auth/login.post.mjs +27 -0
  151. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -0
  152. package/.output/server/chunks/routes/api/auth/logout.post.mjs +22 -0
  153. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -0
  154. package/.output/server/chunks/routes/api/auth/map-token.post.mjs +22 -0
  155. package/.output/server/chunks/routes/api/auth/map-token.post.mjs.map +1 -0
  156. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs +31 -0
  157. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs.map +1 -0
  158. package/.output/server/chunks/routes/api/auth/status.get.mjs +21 -0
  159. package/.output/server/chunks/routes/api/auth/status.get.mjs.map +1 -0
  160. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs +44 -0
  161. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs.map +1 -0
  162. package/.output/server/chunks/routes/api/map/live/status.get.mjs +32 -0
  163. package/.output/server/chunks/routes/api/map/live/status.get.mjs.map +1 -0
  164. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs +48 -0
  165. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs.map +1 -0
  166. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs +46 -0
  167. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs.map +1 -0
  168. package/.output/server/chunks/routes/api/map-service/config.post.mjs +38 -0
  169. package/.output/server/chunks/routes/api/map-service/config.post.mjs.map +1 -0
  170. package/.output/server/chunks/routes/api/map-service/file.post.mjs +41 -0
  171. package/.output/server/chunks/routes/api/map-service/file.post.mjs.map +1 -0
  172. package/.output/server/chunks/routes/api/map-service/source.post.mjs +35 -0
  173. package/.output/server/chunks/routes/api/map-service/source.post.mjs.map +1 -0
  174. package/.output/server/chunks/routes/api/map-service/status.get.mjs +32 -0
  175. package/.output/server/chunks/routes/api/map-service/status.get.mjs.map +1 -0
  176. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs +47 -0
  177. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs.map +1 -0
  178. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs +38 -0
  179. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs.map +1 -0
  180. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs +42 -0
  181. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs.map +1 -0
  182. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs +48 -0
  183. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs.map +1 -0
  184. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs +45 -0
  185. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs.map +1 -0
  186. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs +32 -0
  187. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs.map +1 -0
  188. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs +38 -0
  189. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs.map +1 -0
  190. package/.output/server/chunks/routes/api/workspace/compare.post.mjs +33 -0
  191. package/.output/server/chunks/routes/api/workspace/compare.post.mjs.map +1 -0
  192. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs +33 -0
  193. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs.map +1 -0
  194. package/.output/server/chunks/routes/api/workspace/files.get.mjs +27 -0
  195. package/.output/server/chunks/routes/api/workspace/files.get.mjs.map +1 -0
  196. package/.output/server/chunks/routes/api/workspace/files.post.mjs +38 -0
  197. package/.output/server/chunks/routes/api/workspace/files.post.mjs.map +1 -0
  198. package/.output/server/chunks/routes/api/workspace/stop.post.mjs +32 -0
  199. package/.output/server/chunks/routes/api/workspace/stop.post.mjs.map +1 -0
  200. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs +36 -0
  201. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs.map +1 -0
  202. package/.output/server/chunks/routes/renderer.mjs +422 -0
  203. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  204. package/.output/server/chunks/routes/services/wms.get.mjs +54 -0
  205. package/.output/server/chunks/routes/services/wms.get.mjs.map +1 -0
  206. package/.output/server/chunks/routes/services/wmts.get.mjs +54 -0
  207. package/.output/server/chunks/routes/services/wmts.get.mjs.map +1 -0
  208. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  209. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  210. package/.output/server/chunks/virtual/entry.mjs +18545 -0
  211. package/.output/server/chunks/virtual/entry.mjs.map +1 -0
  212. package/.output/server/chunks/virtual/precomputed.mjs +4 -0
  213. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -0
  214. package/.output/server/chunks/virtual/styles.mjs +10 -0
  215. package/.output/server/chunks/virtual/styles.mjs.map +1 -0
  216. package/.output/server/index.mjs +12 -0
  217. package/.output/server/index.mjs.map +1 -0
  218. package/.output/server/node_modules/@babel/parser/lib/index.js +14611 -0
  219. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  220. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +295 -0
  221. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +701 -0
  222. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +75 -0
  223. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +39 -0
  224. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +47 -0
  225. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +128 -0
  226. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +19 -0
  227. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +13 -0
  228. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +17 -0
  229. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +16 -0
  230. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +30 -0
  231. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +78 -0
  232. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +100 -0
  233. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +28 -0
  234. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +58 -0
  235. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +48 -0
  236. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +203 -0
  237. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +33 -0
  238. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +132 -0
  239. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +165 -0
  240. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +79 -0
  241. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +92 -0
  242. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +26 -0
  243. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +76 -0
  244. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +66 -0
  245. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +45 -0
  246. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +103 -0
  247. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +36 -0
  248. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +92 -0
  249. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +62 -0
  250. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +25 -0
  251. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +16 -0
  252. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +57 -0
  253. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +33 -0
  254. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +12 -0
  255. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +125 -0
  256. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +19 -0
  257. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +25 -0
  258. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +36 -0
  259. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +91 -0
  260. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +46 -0
  261. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +23 -0
  262. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +42 -0
  263. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +123 -0
  264. package/.output/server/node_modules/@iconify/utils/lib/index.js +52 -0
  265. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +30 -0
  266. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +26 -0
  267. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +27 -0
  268. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +105 -0
  269. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +26 -0
  270. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +26 -0
  271. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +9 -0
  272. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +113 -0
  273. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +31 -0
  274. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +13 -0
  275. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +9 -0
  276. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +41 -0
  277. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +22 -0
  278. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +67 -0
  279. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +54 -0
  280. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +27 -0
  281. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +7 -0
  282. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +22 -0
  283. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +8 -0
  284. package/.output/server/node_modules/@iconify/utils/package.json +119 -0
  285. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6801 -0
  286. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  287. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +692 -0
  288. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  289. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1420 -0
  290. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  291. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1903 -0
  292. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  293. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6976 -0
  294. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  295. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1841 -0
  296. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  297. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +904 -0
  298. package/.output/server/node_modules/@vue/server-renderer/package.json +53 -0
  299. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +609 -0
  300. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  301. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  302. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  303. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  304. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  305. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  306. package/.output/server/node_modules/consola/package.json +136 -0
  307. package/.output/server/node_modules/devalue/index.js +17 -0
  308. package/.output/server/node_modules/devalue/package.json +39 -0
  309. package/.output/server/node_modules/devalue/src/base64.js +60 -0
  310. package/.output/server/node_modules/devalue/src/constants.js +12 -0
  311. package/.output/server/node_modules/devalue/src/operations.js +193 -0
  312. package/.output/server/node_modules/devalue/src/parse.js +270 -0
  313. package/.output/server/node_modules/devalue/src/stringify.js +428 -0
  314. package/.output/server/node_modules/devalue/src/uneval.js +582 -0
  315. package/.output/server/node_modules/devalue/src/utils.js +185 -0
  316. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  317. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  318. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  319. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  320. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  321. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  322. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  323. package/.output/server/node_modules/entities/package.json +120 -0
  324. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  325. package/.output/server/node_modules/estree-walker/package.json +37 -0
  326. package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
  327. package/.output/server/node_modules/fflate/package.json +128 -0
  328. package/.output/server/node_modules/fnv1a-64/dist/index.mjs +95 -0
  329. package/.output/server/node_modules/fnv1a-64/package.json +75 -0
  330. package/.output/server/node_modules/hookable/dist/index.mjs +257 -0
  331. package/.output/server/node_modules/hookable/package.json +53 -0
  332. package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +19 -0
  333. package/.output/server/node_modules/nostics/dist/index.mjs +187 -0
  334. package/.output/server/node_modules/nostics/package.json +125 -0
  335. package/.output/server/node_modules/object-identity/index.js +60 -0
  336. package/.output/server/node_modules/object-identity/package.json +40 -0
  337. package/.output/server/node_modules/p-limit/index.js +104 -0
  338. package/.output/server/node_modules/p-limit/package.json +58 -0
  339. package/.output/server/node_modules/pmtiles/dist/esm/index.js +2 -0
  340. package/.output/server/node_modules/pmtiles/package.json +50 -0
  341. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  342. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  343. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  344. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  345. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  346. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  347. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  348. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  349. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  350. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  351. package/.output/server/node_modules/source-map-js/package.json +71 -0
  352. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  353. package/.output/server/node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs +1 -0
  354. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
  355. package/.output/server/node_modules/tailwindcss/package.json +89 -0
  356. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  357. package/.output/server/node_modules/ufo/package.json +48 -0
  358. package/.output/server/node_modules/unhead/dist/client.mjs +22 -0
  359. package/.output/server/node_modules/unhead/dist/index.mjs +52 -0
  360. package/.output/server/node_modules/unhead/dist/legacy.mjs +33 -0
  361. package/.output/server/node_modules/unhead/dist/minify.mjs +183 -0
  362. package/.output/server/node_modules/unhead/dist/parser.mjs +518 -0
  363. package/.output/server/node_modules/unhead/dist/plugins.mjs +631 -0
  364. package/.output/server/node_modules/unhead/dist/scripts.node.mjs +6 -0
  365. package/.output/server/node_modules/unhead/dist/server.mjs +99 -0
  366. package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +673 -0
  367. package/.output/server/node_modules/unhead/dist/shared/unhead.BGFxPGPQ.mjs +47 -0
  368. package/.output/server/node_modules/unhead/dist/shared/unhead.BQWSw36o.mjs +192 -0
  369. package/.output/server/node_modules/unhead/dist/shared/unhead.Bb4d5b9h.mjs +67 -0
  370. package/.output/server/node_modules/unhead/dist/shared/unhead.BdK3SLPN.mjs +585 -0
  371. package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +6 -0
  372. package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +17 -0
  373. package/.output/server/node_modules/unhead/dist/shared/unhead.C3b2Ipoj.mjs +223 -0
  374. package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +32 -0
  375. package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +7 -0
  376. package/.output/server/node_modules/unhead/dist/shared/unhead.CTjuIdzk.mjs +27 -0
  377. package/.output/server/node_modules/unhead/dist/shared/unhead.CfKy3Kuq.mjs +196 -0
  378. package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +59 -0
  379. package/.output/server/node_modules/unhead/dist/shared/unhead.DNKiVLV7.mjs +400 -0
  380. package/.output/server/node_modules/unhead/dist/shared/unhead.MC5RsXLj.mjs +19 -0
  381. package/.output/server/node_modules/unhead/dist/shared/unhead.jEy9BmRq.mjs +264 -0
  382. package/.output/server/node_modules/unhead/dist/shared/unhead.tQnRaXfX.mjs +240 -0
  383. package/.output/server/node_modules/unhead/dist/stream/client.mjs +28 -0
  384. package/.output/server/node_modules/unhead/dist/stream/iife.mjs +2 -0
  385. package/.output/server/node_modules/unhead/dist/stream/server.mjs +264 -0
  386. package/.output/server/node_modules/unhead/dist/utils.mjs +7 -0
  387. package/.output/server/node_modules/unhead/package.json +179 -0
  388. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  389. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  390. package/.output/server/node_modules/vue/index.js +7 -0
  391. package/.output/server/node_modules/vue/index.mjs +1 -0
  392. package/.output/server/node_modules/vue/package.json +112 -0
  393. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  394. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +278 -0
  395. package/.output/server/node_modules/vue-bundle-renderer/package.json +54 -0
  396. package/.output/server/node_modules/yocto-queue/index.js +90 -0
  397. package/.output/server/node_modules/yocto-queue/package.json +48 -0
  398. package/.output/server/node_modules/zod/index.js +4 -0
  399. package/.output/server/node_modules/zod/package.json +135 -0
  400. package/.output/server/node_modules/zod/v4/classic/checks.js +1 -0
  401. package/.output/server/node_modules/zod/v4/classic/coerce.js +17 -0
  402. package/.output/server/node_modules/zod/v4/classic/compat.js +31 -0
  403. package/.output/server/node_modules/zod/v4/classic/errors.js +48 -0
  404. package/.output/server/node_modules/zod/v4/classic/external.js +20 -0
  405. package/.output/server/node_modules/zod/v4/classic/from-json-schema.js +599 -0
  406. package/.output/server/node_modules/zod/v4/classic/iso.js +30 -0
  407. package/.output/server/node_modules/zod/v4/classic/package.json +7 -0
  408. package/.output/server/node_modules/zod/v4/classic/parse.js +15 -0
  409. package/.output/server/node_modules/zod/v4/classic/schemas.js +1395 -0
  410. package/.output/server/node_modules/zod/v4/core/api.js +1087 -0
  411. package/.output/server/node_modules/zod/v4/core/checks.js +575 -0
  412. package/.output/server/node_modules/zod/v4/core/core.js +78 -0
  413. package/.output/server/node_modules/zod/v4/core/doc.js +35 -0
  414. package/.output/server/node_modules/zod/v4/core/errors.js +185 -0
  415. package/.output/server/node_modules/zod/v4/core/index.js +16 -0
  416. package/.output/server/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  417. package/.output/server/node_modules/zod/v4/core/json-schema-processors.js +601 -0
  418. package/.output/server/node_modules/zod/v4/core/json-schema.js +1 -0
  419. package/.output/server/node_modules/zod/v4/core/package.json +7 -0
  420. package/.output/server/node_modules/zod/v4/core/parse.js +93 -0
  421. package/.output/server/node_modules/zod/v4/core/regexes.js +139 -0
  422. package/.output/server/node_modules/zod/v4/core/registries.js +51 -0
  423. package/.output/server/node_modules/zod/v4/core/schemas.js +2239 -0
  424. package/.output/server/node_modules/zod/v4/core/to-json-schema.js +448 -0
  425. package/.output/server/node_modules/zod/v4/core/util.js +674 -0
  426. package/.output/server/node_modules/zod/v4/core/versions.js +5 -0
  427. package/.output/server/node_modules/zod/v4/locales/ar.js +106 -0
  428. package/.output/server/node_modules/zod/v4/locales/az.js +105 -0
  429. package/.output/server/node_modules/zod/v4/locales/be.js +156 -0
  430. package/.output/server/node_modules/zod/v4/locales/bg.js +120 -0
  431. package/.output/server/node_modules/zod/v4/locales/ca.js +107 -0
  432. package/.output/server/node_modules/zod/v4/locales/cs.js +111 -0
  433. package/.output/server/node_modules/zod/v4/locales/da.js +115 -0
  434. package/.output/server/node_modules/zod/v4/locales/de.js +108 -0
  435. package/.output/server/node_modules/zod/v4/locales/el.js +109 -0
  436. package/.output/server/node_modules/zod/v4/locales/en.js +113 -0
  437. package/.output/server/node_modules/zod/v4/locales/eo.js +109 -0
  438. package/.output/server/node_modules/zod/v4/locales/es.js +132 -0
  439. package/.output/server/node_modules/zod/v4/locales/fa.js +114 -0
  440. package/.output/server/node_modules/zod/v4/locales/fi.js +112 -0
  441. package/.output/server/node_modules/zod/v4/locales/fr-CA.js +107 -0
  442. package/.output/server/node_modules/zod/v4/locales/fr.js +125 -0
  443. package/.output/server/node_modules/zod/v4/locales/he.js +214 -0
  444. package/.output/server/node_modules/zod/v4/locales/hr.js +122 -0
  445. package/.output/server/node_modules/zod/v4/locales/hu.js +108 -0
  446. package/.output/server/node_modules/zod/v4/locales/hy.js +147 -0
  447. package/.output/server/node_modules/zod/v4/locales/id.js +106 -0
  448. package/.output/server/node_modules/zod/v4/locales/index.js +52 -0
  449. package/.output/server/node_modules/zod/v4/locales/is.js +109 -0
  450. package/.output/server/node_modules/zod/v4/locales/it.js +108 -0
  451. package/.output/server/node_modules/zod/v4/locales/ja.js +107 -0
  452. package/.output/server/node_modules/zod/v4/locales/ka.js +112 -0
  453. package/.output/server/node_modules/zod/v4/locales/kh.js +5 -0
  454. package/.output/server/node_modules/zod/v4/locales/km.js +110 -0
  455. package/.output/server/node_modules/zod/v4/locales/ko.js +111 -0
  456. package/.output/server/node_modules/zod/v4/locales/lt.js +203 -0
  457. package/.output/server/node_modules/zod/v4/locales/mk.js +109 -0
  458. package/.output/server/node_modules/zod/v4/locales/ms.js +107 -0
  459. package/.output/server/node_modules/zod/v4/locales/nl.js +110 -0
  460. package/.output/server/node_modules/zod/v4/locales/no.js +108 -0
  461. package/.output/server/node_modules/zod/v4/locales/ota.js +109 -0
  462. package/.output/server/node_modules/zod/v4/locales/package.json +7 -0
  463. package/.output/server/node_modules/zod/v4/locales/pl.js +109 -0
  464. package/.output/server/node_modules/zod/v4/locales/ps.js +114 -0
  465. package/.output/server/node_modules/zod/v4/locales/pt.js +108 -0
  466. package/.output/server/node_modules/zod/v4/locales/ro.js +119 -0
  467. package/.output/server/node_modules/zod/v4/locales/ru.js +156 -0
  468. package/.output/server/node_modules/zod/v4/locales/sl.js +109 -0
  469. package/.output/server/node_modules/zod/v4/locales/sv.js +110 -0
  470. package/.output/server/node_modules/zod/v4/locales/ta.js +110 -0
  471. package/.output/server/node_modules/zod/v4/locales/th.js +110 -0
  472. package/.output/server/node_modules/zod/v4/locales/tr.js +105 -0
  473. package/.output/server/node_modules/zod/v4/locales/ua.js +5 -0
  474. package/.output/server/node_modules/zod/v4/locales/uk.js +108 -0
  475. package/.output/server/node_modules/zod/v4/locales/ur.js +110 -0
  476. package/.output/server/node_modules/zod/v4/locales/uz.js +110 -0
  477. package/.output/server/node_modules/zod/v4/locales/vi.js +108 -0
  478. package/.output/server/node_modules/zod/v4/locales/yo.js +107 -0
  479. package/.output/server/node_modules/zod/v4/locales/zh-CN.js +109 -0
  480. package/.output/server/node_modules/zod/v4/locales/zh-TW.js +107 -0
  481. package/.output/server/package.json +37 -0
  482. package/LICENSE +3 -0
  483. package/README.md +125 -0
  484. package/dist/src/bbox.js +55 -0
  485. package/dist/src/cli.js +255 -0
  486. package/dist/src/config.js +56 -0
  487. package/dist/src/core/fetch-process.js +19 -0
  488. package/dist/src/core/grid-renderer.js +149 -0
  489. package/dist/src/core/lease.js +103 -0
  490. package/dist/src/core/paths.js +13 -0
  491. package/dist/src/core/png.js +192 -0
  492. package/dist/src/core/raster-style.js +33 -0
  493. package/dist/src/core/uomtiles.js +307 -0
  494. package/dist/src/fetcher.js +208 -0
  495. package/dist/src/geographic-grid.js +162 -0
  496. package/dist/src/grid-crawl.js +478 -0
  497. package/dist/src/mask-image.js +16 -0
  498. package/dist/src/official-grid.js +51 -0
  499. package/dist/src/quality.js +30 -0
  500. package/dist/src/token.js +206 -0
  501. package/package.json +68 -0
  502. package/public/apple-touch-icon.png +0 -0
  503. package/public/favicon.ico +0 -0
  504. package/public/favicon.svg +8 -0
  505. package/public/icon-192.png +0 -0
  506. package/public/icon-512.png +0 -0
  507. package/public/site.webmanifest +11 -0
@@ -0,0 +1,52 @@
1
+ import { defaultExtendedIconProps, defaultIconDimensions, defaultIconProps, defaultIconTransformations } from "./icon/defaults.js";
2
+ import { defaultIconCustomisations, defaultIconSizeCustomisations } from "./customisations/defaults.js";
3
+ import { mergeCustomisations } from "./customisations/merge.js";
4
+ import { toBoolean } from "./customisations/bool.js";
5
+ import { flipFromString } from "./customisations/flip.js";
6
+ import { rotateFromString } from "./customisations/rotate.js";
7
+ import { matchIconName, stringToIcon, validateIconName } from "./icon/name.js";
8
+ import { mergeIconTransformations } from "./icon/transformations.js";
9
+ import { mergeIconData } from "./icon/merge.js";
10
+ import { makeIconSquare } from "./icon/square.js";
11
+ import { getIconsTree } from "./icon-set/tree.js";
12
+ import { getIconData } from "./icon-set/get-icon.js";
13
+ import { parseIconSet, parseIconSetAsync } from "./icon-set/parse.js";
14
+ import { validateIconSet } from "./icon-set/validate.js";
15
+ import { quicklyValidateIconSet } from "./icon-set/validate-basic.js";
16
+ import { expandIconSet } from "./icon-set/expand.js";
17
+ import { minifyIconSet } from "./icon-set/minify.js";
18
+ import { getIcons } from "./icon-set/get-icons.js";
19
+ import { convertIconSetInfo } from "./icon-set/convert-info.js";
20
+ import { calculateSize } from "./svg/size.js";
21
+ import { mergeDefsAndContent, splitSVGDefs, wrapSVGContent } from "./svg/defs.js";
22
+ import { iconToSVG } from "./svg/build.js";
23
+ import { clearIDCache, replaceIDs } from "./svg/id.js";
24
+ import { svgToData, svgToURL } from "./svg/url.js";
25
+ import { encodeSvgForCss } from "./svg/encode-svg-for-css.js";
26
+ import { trimSVG } from "./svg/trim.js";
27
+ import { prettifySVG } from "./svg/pretty.js";
28
+ import { iconToHTML } from "./svg/html.js";
29
+ import { cleanUpInnerHTML } from "./svg/inner-html.js";
30
+ import { getSVGViewBox } from "./svg/viewbox.js";
31
+ import { buildParsedSVG, convertParsedSVG, parseSVGContent } from "./svg/parse.js";
32
+ import { colorKeywords } from "./colors/keywords.js";
33
+ import { colorToString, compareColors, stringToColor } from "./colors/index.js";
34
+ import { getIconCSS, getIconContentCSS } from "./css/icon.js";
35
+ import { getIconsCSS, getIconsContentCSS } from "./css/icons.js";
36
+ import { mergeIconProps } from "./loader/utils.js";
37
+ import { getCustomIcon } from "./loader/custom.js";
38
+ import { searchForIcon } from "./loader/modern.js";
39
+ import { loadIcon } from "./loader/loader.js";
40
+ import { convertEmojiSequenceToUTF16, convertEmojiSequenceToUTF32, getEmojiCodePoint, getEmojiUnicode, isUTF32SplitNumber, mergeUTF32Numbers, splitUTF32Number } from "./emoji/convert.js";
41
+ import { getEmojiSequenceFromString, getUnqualifiedEmojiSequence } from "./emoji/cleanup.js";
42
+ import { getEmojiSequenceKeyword, getEmojiSequenceString, getEmojiUnicodeString } from "./emoji/format.js";
43
+ import { parseEmojiTestFile } from "./emoji/test/parse.js";
44
+ import { getQualifiedEmojiVariations } from "./emoji/test/variations.js";
45
+ import { findMissingEmojis } from "./emoji/test/missing.js";
46
+ import { createOptimisedRegex, createOptimisedRegexForEmojiSequences } from "./emoji/regex/create.js";
47
+ import { prepareEmojiForIconSet, prepareEmojiForIconsList } from "./emoji/parse.js";
48
+ import { findAndReplaceEmojisInText } from "./emoji/replace/replace.js";
49
+ import { camelToKebab, camelize, pascalize, snakelize } from "./misc/strings.js";
50
+ import { commonObjectProps, compareObjects, unmergeObjects } from "./misc/objects.js";
51
+ import { sanitiseTitleAttribute } from "./misc/title.js";
52
+ export { buildParsedSVG, calculateSize, camelToKebab, camelize, cleanUpInnerHTML, clearIDCache, colorKeywords, colorToString, commonObjectProps, compareColors, compareObjects, convertEmojiSequenceToUTF16, convertEmojiSequenceToUTF32, convertIconSetInfo, convertParsedSVG, createOptimisedRegex, createOptimisedRegexForEmojiSequences, defaultExtendedIconProps, defaultIconCustomisations, defaultIconDimensions, defaultIconProps, defaultIconSizeCustomisations, defaultIconTransformations, encodeSvgForCss, expandIconSet, findAndReplaceEmojisInText, findMissingEmojis, flipFromString, getCustomIcon, getEmojiCodePoint, getEmojiSequenceFromString, getEmojiSequenceKeyword, getEmojiSequenceString, getEmojiUnicode, getEmojiUnicodeString, getIconCSS, getIconContentCSS, getIconData, getIcons, getIconsCSS, getIconsContentCSS, getIconsTree, getQualifiedEmojiVariations, getSVGViewBox, getUnqualifiedEmojiSequence, iconToHTML, iconToSVG, isUTF32SplitNumber, loadIcon, makeIconSquare, matchIconName, mergeCustomisations, mergeDefsAndContent, mergeIconData, mergeIconProps, mergeIconTransformations, mergeUTF32Numbers, minifyIconSet, parseEmojiTestFile, parseIconSet, parseIconSetAsync, parseSVGContent, pascalize, prepareEmojiForIconSet, prepareEmojiForIconsList, prettifySVG, quicklyValidateIconSet, replaceIDs, rotateFromString, sanitiseTitleAttribute, searchForIcon, snakelize, splitSVGDefs, splitUTF32Number, stringToColor, stringToIcon, svgToData, svgToURL, toBoolean, trimSVG, unmergeObjects, validateIconName, validateIconSet, wrapSVGContent };
@@ -0,0 +1,30 @@
1
+ import { trimSVG } from "../svg/trim.js";
2
+ import { mergeIconProps } from "./utils.js";
3
+ /**
4
+ * Get custom icon from inline collection or using loader
5
+ */
6
+ async function getCustomIcon(custom, collection, icon, options) {
7
+ let result;
8
+ try {
9
+ if (typeof custom === "function") result = await custom(icon);
10
+ else {
11
+ const inline = custom[icon];
12
+ result = typeof inline === "function" ? await inline() : inline;
13
+ }
14
+ } catch (err) {
15
+ console.warn(`Failed to load custom icon "${icon}" in "${collection}":`, err);
16
+ return;
17
+ }
18
+ if (result) {
19
+ const cleanupIdx = result.indexOf("<svg");
20
+ if (cleanupIdx > 0) result = result.slice(cleanupIdx);
21
+ const { transform } = options?.customizations ?? {};
22
+ result = typeof transform === "function" ? await transform(result, collection, icon) : result;
23
+ if (!result.startsWith("<svg")) {
24
+ console.warn(`Custom icon "${icon}" in "${collection}" is not a valid SVG`);
25
+ return result;
26
+ }
27
+ return await mergeIconProps(options?.customizations?.trimCustomSvg === true ? trimSVG(result) : result, collection, icon, options, void 0);
28
+ }
29
+ }
30
+ export { getCustomIcon };
@@ -0,0 +1,26 @@
1
+ import { getCustomIcon } from "./custom.js";
2
+ import { searchForIcon } from "./modern.js";
3
+ const loadIcon = async (collection, icon, options) => {
4
+ const custom = options?.customCollections?.[collection];
5
+ if (custom) if (typeof custom === "function") {
6
+ let result;
7
+ try {
8
+ result = await custom(icon);
9
+ } catch (err) {
10
+ console.warn(`Failed to load custom icon "${icon}" in "${collection}":`, err);
11
+ return;
12
+ }
13
+ if (result) {
14
+ if (typeof result === "string") return await getCustomIcon(() => result, collection, icon, options);
15
+ if ("icons" in result) {
16
+ const ids = [
17
+ icon,
18
+ icon.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(),
19
+ icon.replace(/([a-z])(\d+)/g, "$1-$2")
20
+ ];
21
+ return await searchForIcon(result, collection, ids, options);
22
+ }
23
+ }
24
+ } else return await getCustomIcon(custom, collection, icon, options);
25
+ };
26
+ export { loadIcon };
@@ -0,0 +1,27 @@
1
+ import { defaultIconCustomisations } from "../customisations/defaults.js";
2
+ import { getIconData } from "../icon-set/get-icon.js";
3
+ import { iconToSVG } from "../svg/build.js";
4
+ import { loaderDefaultHeightProp, loaderDefaultWidthProp, mergeIconProps } from "./utils.js";
5
+ async function searchForIcon(iconSet, collection, ids, options) {
6
+ let iconData;
7
+ const { customize } = options?.customizations ?? {};
8
+ for (const id of ids) {
9
+ iconData = getIconData(iconSet, id);
10
+ if (iconData) {
11
+ let defaultCustomizations = { ...defaultIconCustomisations };
12
+ if (typeof customize === "function") {
13
+ iconData = Object.assign({}, iconData);
14
+ defaultCustomizations = customize(defaultCustomizations, iconData, `${collection}:${id}`) ?? defaultCustomizations;
15
+ }
16
+ const { attributes: { width, height, ...restAttributes }, body } = iconToSVG(iconData, defaultCustomizations);
17
+ return await mergeIconProps(`<svg >${body}</svg>`, collection, id, options, () => {
18
+ return {
19
+ ...restAttributes,
20
+ ...width ? { [loaderDefaultWidthProp]: width } : {},
21
+ ...height ? { [loaderDefaultHeightProp]: height } : {}
22
+ };
23
+ });
24
+ }
25
+ }
26
+ }
27
+ export { searchForIcon };
@@ -0,0 +1,105 @@
1
+ import { calculateSize } from "../svg/size.js";
2
+ import { isUnsetKeyword } from "../svg/build.js";
3
+ const svgWidthRegex = /\swidth\s*=\s*["']([^"']+)["']/;
4
+ const svgHeightRegex = /\sheight\s*=\s*["']([^"']+)["']/;
5
+ const svgViewBoxRegex = /\sviewBox\s*=\s*["']([^"']+)["']/;
6
+ const svgTagRegex = /<svg\s+/;
7
+ const loaderDefaultWidthProp = "__iconify_loader_width";
8
+ const loaderDefaultHeightProp = "__iconify_loader_height";
9
+ function stringifySize(value) {
10
+ return value === void 0 ? void 0 : value.toString();
11
+ }
12
+ function getConfiguredSize(source, scale) {
13
+ if (typeof scale === "number") return scale > 0 ? stringifySize(calculateSize(source ?? "1em", scale)) : void 0;
14
+ return source;
15
+ }
16
+ function getSvgAspectRatio(svgNode, props) {
17
+ const viewBox = props.viewBox ?? svgViewBoxRegex.exec(svgNode)?.[1];
18
+ if (!viewBox) return;
19
+ const values = viewBox.trim().split(/[\s,]+/).map((value) => parseFloat(value));
20
+ if (values.length !== 4 || values.some((value) => !Number.isFinite(value))) return;
21
+ const width = values[2];
22
+ const height = values[3];
23
+ if (width <= 0 || height <= 0) return;
24
+ return width / height;
25
+ }
26
+ function configureSvgSize(svg, props, scale) {
27
+ const svgNode = svg.slice(0, svg.indexOf(">"));
28
+ const widthOnSvg = svgWidthRegex.test(svgNode);
29
+ const heightOnSvg = svgHeightRegex.test(svgNode);
30
+ const defaultWidth = props["__iconify_loader_width"] ?? svgWidthRegex.exec(svgNode)?.[1];
31
+ const defaultHeight = props["__iconify_loader_height"] ?? svgHeightRegex.exec(svgNode)?.[1];
32
+ const aspectRatio = getSvgAspectRatio(svgNode, props);
33
+ delete props[loaderDefaultWidthProp];
34
+ delete props[loaderDefaultHeightProp];
35
+ const customWidth = props.width;
36
+ const customHeight = props.height;
37
+ const hasCustomWidth = !!customWidth || isUnsetKeyword(customWidth);
38
+ const hasCustomHeight = !!customHeight || isUnsetKeyword(customHeight);
39
+ if (hasCustomWidth || hasCustomHeight) {
40
+ if (!hasCustomWidth) if (isUnsetKeyword(customHeight)) {
41
+ delete props.width;
42
+ delete props.height;
43
+ } else if (aspectRatio) {
44
+ props.width = stringifySize(calculateSize(customHeight, aspectRatio));
45
+ props.height = customHeight;
46
+ } else delete props.width;
47
+ else if (isUnsetKeyword(customWidth)) {
48
+ delete props.width;
49
+ if (!hasCustomHeight || isUnsetKeyword(customHeight)) delete props.height;
50
+ }
51
+ if (!hasCustomHeight) if (isUnsetKeyword(customWidth)) delete props.height;
52
+ else if (aspectRatio) {
53
+ props.height = stringifySize(calculateSize(customWidth, 1 / aspectRatio));
54
+ props.width = customWidth;
55
+ } else delete props.height;
56
+ else if (isUnsetKeyword(customHeight)) delete props.height;
57
+ } else {
58
+ const width = getConfiguredSize(defaultWidth, scale);
59
+ const height = getConfiguredSize(defaultHeight, scale);
60
+ if (width) props.width = width;
61
+ if (height) props.height = height;
62
+ }
63
+ return [widthOnSvg, heightOnSvg];
64
+ }
65
+ async function mergeIconProps(svg, collection, icon, options, propsProvider, afterCustomizations) {
66
+ const { scale, addXmlNs = false } = options ?? {};
67
+ const { additionalProps = {}, iconCustomizer } = options?.customizations ?? {};
68
+ const props = await propsProvider?.() ?? {};
69
+ await iconCustomizer?.(collection, icon, props);
70
+ Object.keys(additionalProps).forEach((p) => {
71
+ const v = additionalProps[p];
72
+ if (v !== void 0 && v !== null) props[p] = v;
73
+ });
74
+ afterCustomizations?.(props);
75
+ const [widthOnSvg, heightOnSvg] = configureSvgSize(svg, props, scale);
76
+ if (addXmlNs) {
77
+ if (!svg.includes("xmlns=") && !props["xmlns"]) props["xmlns"] = "http://www.w3.org/2000/svg";
78
+ if (!svg.includes("xmlns:xlink=") && svg.includes("xlink:") && !props["xmlns:xlink"]) props["xmlns:xlink"] = "http://www.w3.org/1999/xlink";
79
+ }
80
+ const propsToAdd = Object.keys(props).map((p) => p === "width" && widthOnSvg || p === "height" && heightOnSvg ? null : `${p}="${props[p]}"`).filter((p) => p != null);
81
+ if (propsToAdd.length) svg = svg.replace(svgTagRegex, `<svg ${propsToAdd.join(" ")} `);
82
+ if (options) {
83
+ const { defaultStyle, defaultClass } = options;
84
+ if (defaultClass && !svg.includes("class=")) svg = svg.replace(svgTagRegex, `<svg class="${defaultClass}" `);
85
+ if (defaultStyle && !svg.includes("style=")) svg = svg.replace(svgTagRegex, `<svg style="${defaultStyle}" `);
86
+ }
87
+ const usedProps = options?.usedProps;
88
+ if (usedProps) {
89
+ Object.keys(additionalProps).forEach((p) => {
90
+ const v = props[p];
91
+ if (v !== void 0 && v !== null) usedProps[p] = v;
92
+ });
93
+ if (typeof props.width !== "undefined" && props.width !== null) usedProps.width = props.width;
94
+ if (typeof props.height !== "undefined" && props.height !== null) usedProps.height = props.height;
95
+ }
96
+ return svg;
97
+ }
98
+ function getPossibleIconNames(icon) {
99
+ return [
100
+ icon,
101
+ icon.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(),
102
+ icon.replace(/([a-z])(\d+)/g, "$1-$2")
103
+ ];
104
+ }
105
+ export { getPossibleIconNames, loaderDefaultHeightProp, loaderDefaultWidthProp, mergeIconProps };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Compares two objects, returns true if identical
3
+ *
4
+ * Reference object contains keys
5
+ */
6
+ function compareObjects(obj1, obj2, ref = obj1) {
7
+ for (const key in ref) if (obj1[key] !== obj2[key]) return false;
8
+ return Object.keys(obj1).length === Object.keys(obj2).length;
9
+ }
10
+ /**
11
+ * Unmerge objects, removing items that match in both objects
12
+ */
13
+ function unmergeObjects(obj1, obj2) {
14
+ const result = { ...obj1 };
15
+ for (const key in obj2) if (result[key] === obj2[key]) delete result[key];
16
+ return result;
17
+ }
18
+ /**
19
+ * Get common properties in 2 objects
20
+ */
21
+ function commonObjectProps(item, reference) {
22
+ const result = Object.create(null);
23
+ for (const key in reference) if (key in item) result[key] = item[key];
24
+ return result;
25
+ }
26
+ export { commonObjectProps, compareObjects, unmergeObjects };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Convert string to camelCase
3
+ */
4
+ function camelize(str) {
5
+ return str.replace(/-([a-z0-9])/g, (g) => g[1].toUpperCase());
6
+ }
7
+ /**
8
+ * Convert string to PascaleCase
9
+ */
10
+ function pascalize(str) {
11
+ const camel = camelize(str);
12
+ return camel.slice(0, 1).toUpperCase() + camel.slice(1);
13
+ }
14
+ /**
15
+ * Convert camelCase string to kebab-case
16
+ */
17
+ function camelToKebab(key) {
18
+ return key.replace(/:/g, "-").replace(/([A-Z])/g, " $1").trim().split(/\s+/g).join("-").toLowerCase();
19
+ }
20
+ /**
21
+ * Convert camelCase string to snake-case
22
+ */
23
+ function snakelize(str) {
24
+ return camelToKebab(str).replace(/-/g, "_");
25
+ }
26
+ export { camelToKebab, camelize, pascalize, snakelize };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Sanitises title, removing any unwanted characters that might break XML.
3
+ *
4
+ * This is a very basic funciton, not full parser.
5
+ */
6
+ function sanitiseTitleAttribute(content) {
7
+ return content.replace(/[<>&]+/g, "");
8
+ }
9
+ export { sanitiseTitleAttribute };
@@ -0,0 +1,113 @@
1
+ import { defaultIconProps } from "../icon/defaults.js";
2
+ import { defaultIconCustomisations } from "../customisations/defaults.js";
3
+ import { calculateSize } from "./size.js";
4
+ import { wrapSVGContent } from "./defs.js";
5
+ /**
6
+ * Check if value should be unset. Allows multiple keywords
7
+ */
8
+ const isUnsetKeyword = (value) => value === "unset" || value === "undefined" || value === "none";
9
+ /**
10
+ * Get SVG attributes and content from icon + customisations
11
+ *
12
+ * Does not generate style to make it compatible with frameworks that use objects for style, such as React.
13
+ * Instead, it generates 'inline' value. If true, rendering engine should add verticalAlign: -0.125em to icon.
14
+ *
15
+ * Customisations should be normalised by platform specific parser.
16
+ * Result should be converted to <svg> by platform specific parser.
17
+ * Use replaceIDs to generate unique IDs for body.
18
+ */
19
+ function iconToSVG(icon, customisations) {
20
+ const fullIcon = {
21
+ ...defaultIconProps,
22
+ ...icon
23
+ };
24
+ const fullCustomisations = {
25
+ ...defaultIconCustomisations,
26
+ ...customisations
27
+ };
28
+ const box = {
29
+ left: fullIcon.left,
30
+ top: fullIcon.top,
31
+ width: fullIcon.width,
32
+ height: fullIcon.height
33
+ };
34
+ let body = fullIcon.body;
35
+ [fullIcon, fullCustomisations].forEach((props) => {
36
+ const transformations = [];
37
+ const hFlip = props.hFlip;
38
+ const vFlip = props.vFlip;
39
+ let rotation = props.rotate;
40
+ if (hFlip) if (vFlip) rotation += 2;
41
+ else {
42
+ transformations.push("translate(" + (box.width + box.left).toString() + " " + (0 - box.top).toString() + ")");
43
+ transformations.push("scale(-1 1)");
44
+ box.top = box.left = 0;
45
+ }
46
+ else if (vFlip) {
47
+ transformations.push("translate(" + (0 - box.left).toString() + " " + (box.height + box.top).toString() + ")");
48
+ transformations.push("scale(1 -1)");
49
+ box.top = box.left = 0;
50
+ }
51
+ let tempValue;
52
+ if (rotation < 0) rotation -= Math.floor(rotation / 4) * 4;
53
+ rotation = rotation % 4;
54
+ switch (rotation) {
55
+ case 1:
56
+ tempValue = box.height / 2 + box.top;
57
+ transformations.unshift("rotate(90 " + tempValue.toString() + " " + tempValue.toString() + ")");
58
+ break;
59
+ case 2:
60
+ transformations.unshift("rotate(180 " + (box.width / 2 + box.left).toString() + " " + (box.height / 2 + box.top).toString() + ")");
61
+ break;
62
+ case 3:
63
+ tempValue = box.width / 2 + box.left;
64
+ transformations.unshift("rotate(-90 " + tempValue.toString() + " " + tempValue.toString() + ")");
65
+ break;
66
+ }
67
+ if (rotation % 2 === 1) {
68
+ if (box.left !== box.top) {
69
+ tempValue = box.left;
70
+ box.left = box.top;
71
+ box.top = tempValue;
72
+ }
73
+ if (box.width !== box.height) {
74
+ tempValue = box.width;
75
+ box.width = box.height;
76
+ box.height = tempValue;
77
+ }
78
+ }
79
+ if (transformations.length) body = wrapSVGContent(body, "<g transform=\"" + transformations.join(" ") + "\">", "</g>");
80
+ });
81
+ const customisationsWidth = fullCustomisations.width;
82
+ const customisationsHeight = fullCustomisations.height;
83
+ const boxWidth = box.width;
84
+ const boxHeight = box.height;
85
+ let width;
86
+ let height;
87
+ if (customisationsWidth === null) {
88
+ height = customisationsHeight === null ? "1em" : customisationsHeight === "auto" ? boxHeight : customisationsHeight;
89
+ width = calculateSize(height, boxWidth / boxHeight);
90
+ } else {
91
+ width = customisationsWidth === "auto" ? boxWidth : customisationsWidth;
92
+ height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === "auto" ? boxHeight : customisationsHeight;
93
+ }
94
+ const attributes = {};
95
+ const setAttr = (prop, value) => {
96
+ if (!isUnsetKeyword(value)) attributes[prop] = value.toString();
97
+ };
98
+ setAttr("width", width);
99
+ setAttr("height", height);
100
+ const viewBox = [
101
+ box.left,
102
+ box.top,
103
+ boxWidth,
104
+ boxHeight
105
+ ];
106
+ attributes.viewBox = viewBox.join(" ");
107
+ return {
108
+ attributes,
109
+ viewBox,
110
+ body
111
+ };
112
+ }
113
+ export { iconToSVG, isUnsetKeyword };
@@ -0,0 +1,31 @@
1
+ function splitSVGDefs(content, tag = "defs") {
2
+ let defs = "";
3
+ const index = content.indexOf("<" + tag);
4
+ while (index >= 0) {
5
+ const start = content.indexOf(">", index);
6
+ const end = content.indexOf("</" + tag);
7
+ if (start === -1 || end === -1) break;
8
+ const endEnd = content.indexOf(">", end);
9
+ if (endEnd === -1) break;
10
+ defs += content.slice(start + 1, end).trim();
11
+ content = content.slice(0, index).trim() + content.slice(endEnd + 1);
12
+ }
13
+ return {
14
+ defs,
15
+ content
16
+ };
17
+ }
18
+ /**
19
+ * Merge defs and content
20
+ */
21
+ function mergeDefsAndContent(defs, content) {
22
+ return defs ? "<defs>" + defs + "</defs>" + content : content;
23
+ }
24
+ /**
25
+ * Wrap SVG content, without wrapping definitions
26
+ */
27
+ function wrapSVGContent(body, start, end) {
28
+ const split = splitSVGDefs(body);
29
+ return mergeDefsAndContent(split.defs, start + split.content + end);
30
+ }
31
+ export { mergeDefsAndContent, splitSVGDefs, wrapSVGContent };
@@ -0,0 +1,13 @@
1
+ import { encodeSVGforURL } from "./url.js";
2
+ /**
3
+ * Encode the `SVG` to be used on `CSS`: https://bl.ocks.org/jennyknuth/222825e315d45a738ed9d6e04c7a88d0.
4
+ *
5
+ * @param svg The `SVG` source.
6
+ */
7
+ function encodeSvgForCss(svg) {
8
+ let useSvg = svg.startsWith("<svg>") ? svg.replace("<svg>", "<svg >") : svg;
9
+ if (!useSvg.includes(" xmlns:xlink=") && useSvg.includes(" xlink:")) useSvg = useSvg.replace("<svg ", "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" ");
10
+ if (!useSvg.includes(" xmlns=")) useSvg = useSvg.replace("<svg ", "<svg xmlns=\"http://www.w3.org/2000/svg\" ");
11
+ return encodeSVGforURL(useSvg);
12
+ }
13
+ export { encodeSvgForCss };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generate <svg>
3
+ */
4
+ function iconToHTML(body, attributes) {
5
+ let renderAttribsHTML = body.indexOf("xlink:") === -1 ? "" : " xmlns:xlink=\"http://www.w3.org/1999/xlink\"";
6
+ for (const attr in attributes) renderAttribsHTML += " " + attr + "=\"" + attributes[attr] + "\"";
7
+ return "<svg xmlns=\"http://www.w3.org/2000/svg\"" + renderAttribsHTML + ">" + body + "</svg>";
8
+ }
9
+ export { iconToHTML };
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Regular expression for finding ids
3
+ */
4
+ const regex = /\sid="(\S+)"/g;
5
+ /**
6
+ * Counters
7
+ */
8
+ const counters = /* @__PURE__ */ new Map();
9
+ /**
10
+ * Get unique new ID
11
+ */
12
+ function nextID(id) {
13
+ id = id.replace(/[0-9]+$/, "") || "a";
14
+ const count = counters.get(id) || 0;
15
+ counters.set(id, count + 1);
16
+ return count ? `${id}${count}` : id;
17
+ }
18
+ /**
19
+ * Replace IDs in SVG output with unique IDs
20
+ */
21
+ function replaceIDs(body) {
22
+ const ids = [];
23
+ let match;
24
+ while (match = regex.exec(body)) ids.push(match[1]);
25
+ if (!ids.length) return body;
26
+ const suffix = "suffix" + (Math.random() * 16777216 | Date.now()).toString(16);
27
+ ids.forEach((id) => {
28
+ const newID = nextID(id);
29
+ const escapedID = id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
30
+ body = body.replace(new RegExp("([#;\"])(" + escapedID + ")([\")]|\\.[a-z])", "g"), "$1" + newID + suffix + "$3");
31
+ });
32
+ body = body.replace(new RegExp(suffix, "g"), "");
33
+ return body;
34
+ }
35
+ /**
36
+ * Clear ID cache
37
+ */
38
+ function clearIDCache() {
39
+ counters.clear();
40
+ }
41
+ export { clearIDCache, replaceIDs };
@@ -0,0 +1,22 @@
1
+ let policy;
2
+ /**
3
+ * Attempt to create policy
4
+ */
5
+ function createPolicy() {
6
+ try {
7
+ policy = window.trustedTypes.createPolicy("iconify", { createHTML: (s) => s });
8
+ } catch (err) {
9
+ policy = null;
10
+ }
11
+ }
12
+ /**
13
+ * Clean up value for innerHTML assignment
14
+ *
15
+ * This code doesn't actually clean up anything.
16
+ * It is intended be used with Iconify icon data, which has already been validated
17
+ */
18
+ function cleanUpInnerHTML(html) {
19
+ if (policy === void 0) createPolicy();
20
+ return policy ? policy.createHTML(html) : html;
21
+ }
22
+ export { cleanUpInnerHTML };
@@ -0,0 +1,67 @@
1
+ import { wrapSVGContent } from "./defs.js";
2
+ import { getSVGViewBox } from "./viewbox.js";
3
+ /**
4
+ * Extract attributes and content from SVG
5
+ */
6
+ function parseSVGContent(content) {
7
+ const match = content.trim().match(/(?:<(?:\?xml|!DOCTYPE)[^>]+>\s*)*<svg([^>]+)>([\s\S]+)<\/svg[^>]*>/);
8
+ if (!match) return;
9
+ const body = match[2].trim();
10
+ const attribsList = match[1].match(/[\w:-]+="[^"]*"/g);
11
+ const attribs = Object.create(null);
12
+ attribsList?.forEach((row) => {
13
+ const match = row.match(/([\w:-]+)="([^"]*)"/);
14
+ if (match) attribs[match[1]] = match[2];
15
+ });
16
+ return {
17
+ attribs,
18
+ body
19
+ };
20
+ }
21
+ function build(data) {
22
+ const attribs = data.attribs;
23
+ const viewBox = getSVGViewBox(attribs["viewBox"] ?? "");
24
+ if (!viewBox) return;
25
+ const groupAttributes = [];
26
+ for (const key in attribs) if (key === "style" || key.startsWith("fill") || key.startsWith("stroke")) groupAttributes.push(`${key}="${attribs[key]}"`);
27
+ let body = data.body;
28
+ if (groupAttributes.length) body = wrapSVGContent(body, "<g " + groupAttributes.join(" ") + ">", "</g>");
29
+ return {
30
+ width: attribs.width,
31
+ height: attribs.height,
32
+ viewBox,
33
+ body
34
+ };
35
+ }
36
+ /**
37
+ * Convert parsed SVG to IconifyIconBuildResult
38
+ */
39
+ function buildParsedSVG(data) {
40
+ const result = build(data);
41
+ if (result) return {
42
+ attributes: {
43
+ width: result.width,
44
+ height: result.height,
45
+ viewBox: result.viewBox.join(" ")
46
+ },
47
+ viewBox: result.viewBox,
48
+ body: result.body
49
+ };
50
+ }
51
+ /**
52
+ * Convert parsed SVG to IconifyIcon
53
+ */
54
+ function convertParsedSVG(data) {
55
+ const result = build(data);
56
+ if (result) {
57
+ const viewBox = result.viewBox;
58
+ return {
59
+ left: viewBox[0],
60
+ top: viewBox[1],
61
+ width: viewBox[2],
62
+ height: viewBox[3],
63
+ body: result.body
64
+ };
65
+ }
66
+ }
67
+ export { buildParsedSVG, convertParsedSVG, parseSVGContent };
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Tags to skip
3
+ */
4
+ const skipTags = ["script", "style"];
5
+ /**
6
+ * Prettify SVG
7
+ */
8
+ function prettifySVG(content, tab = " ", depth = 0) {
9
+ let result = "";
10
+ let level = 0;
11
+ content = content.replace(/(\s)*\/>/g, " />");
12
+ while (content.length > 0) {
13
+ const openIndex = content.indexOf("<");
14
+ let closeIndex = content.indexOf(">");
15
+ if (openIndex === -1 && closeIndex === -1) return result;
16
+ if (openIndex === -1 || closeIndex === -1 || closeIndex < openIndex) return null;
17
+ const text = content.slice(0, openIndex);
18
+ const trimmedText = text.trim();
19
+ if (trimmedText.length) if (text.trimStart() !== text && text.trimEnd() !== text) result += trimmedText + "\n" + tab.repeat(level + depth);
20
+ else result = result.trim() + text;
21
+ content = content.slice(openIndex);
22
+ closeIndex -= openIndex;
23
+ const lastChar = content.slice(closeIndex - 1, closeIndex);
24
+ const isClosing = content.slice(0, 2) === "</";
25
+ let isSelfClosing = lastChar === "/" || lastChar === "?";
26
+ if (isClosing && isSelfClosing) return null;
27
+ const tagName = content.slice(isClosing ? 2 : 1).split(/[\s>]/).shift();
28
+ const ignoreTagContent = !isSelfClosing && !isClosing && skipTags.includes(tagName);
29
+ if (!ignoreTagContent) {
30
+ const nextOpenIndex = content.indexOf("<", 1);
31
+ if (nextOpenIndex !== -1 && nextOpenIndex < closeIndex) return null;
32
+ }
33
+ if (isClosing && tab.length) {
34
+ if (result.slice(0 - tab.length) === tab) result = result.slice(0, result.length - tab.length);
35
+ }
36
+ result += content.slice(0, closeIndex + 1);
37
+ content = content.slice(closeIndex + 1);
38
+ if (ignoreTagContent) {
39
+ const closingIndex = content.indexOf("</" + tagName);
40
+ const closingEnd = content.indexOf(">", closingIndex);
41
+ if (closingIndex < 0 || closingEnd < 0) return null;
42
+ result += content.slice(0, closingEnd + 1);
43
+ content = content.slice(closingEnd + 1);
44
+ isSelfClosing = true;
45
+ }
46
+ if (isClosing) {
47
+ level--;
48
+ if (level < 0) return null;
49
+ } else if (!isSelfClosing) level++;
50
+ result += "\n" + tab.repeat(level + depth);
51
+ }
52
+ return level === 0 ? result : null;
53
+ }
54
+ export { prettifySVG };