usage-board 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/index.mjs +1 -1
  2. package/dist/public/_nuxt/{BuL2_OVR.js → B6C9KBQ4.js} +1 -1
  3. package/dist/public/_nuxt/{CbwePq4F.js → Bv6agYS5.js} +1 -1
  4. package/dist/public/_nuxt/{LYzk-FvL.js → BvRyOET7.js} +1 -1
  5. package/dist/public/_nuxt/{CF27djws.js → CMWftE4h.js} +1 -1
  6. package/dist/public/_nuxt/{CoVMsEv_.js → COIbUy5w.js} +1 -1
  7. package/dist/public/_nuxt/{DS17D0R7.js → CXLmM1yO.js} +1 -1
  8. package/dist/public/_nuxt/{Bz0aA7IQ.js → DFqWEFN4.js} +1 -1
  9. package/dist/public/_nuxt/{WjVGlVHF.js → DUoLvn3A.js} +1 -1
  10. package/dist/public/_nuxt/{Dzuxw4nD.js → D_W11Quh.js} +1 -1
  11. package/dist/public/_nuxt/{D7Qebc1i.js → DgKrPjze.js} +2 -2
  12. package/dist/public/_nuxt/{CEZpUSPI.js → DkxY2YMp.js} +1 -1
  13. package/dist/public/_nuxt/{Dr4nyTE3.js → DtbPvE6R.js} +1 -1
  14. package/dist/public/_nuxt/{BJUAqwzD.js → HiqUua3-.js} +1 -1
  15. package/dist/public/_nuxt/builds/latest.json +1 -1
  16. package/dist/public/_nuxt/builds/meta/6f98f1cb-266c-475e-a249-dad346a55f24.json +1 -0
  17. package/dist/public/_nuxt/error-404.CFBEg71j.css +1 -0
  18. package/dist/public/_nuxt/error-500.BqCnH31G.css +1 -0
  19. package/dist/public/_nuxt/{Cd5S9Sm2.js → uHQwCIHg.js} +1 -1
  20. package/dist/server/chunks/_/error-500.mjs +2 -20
  21. package/dist/server/chunks/build/client.precomputed.mjs +1 -1
  22. package/dist/server/chunks/nitro/nitro.mjs +1885 -3648
  23. package/dist/server/chunks/routes/api/analysis/agent/session.json.mjs +8 -9
  24. package/dist/server/chunks/routes/api/analysis/agent/token.json.mjs +8 -9
  25. package/dist/server/chunks/routes/api/analysis/cache.json.mjs +8 -9
  26. package/dist/server/chunks/routes/api/analysis/hot-project.json.mjs +8 -9
  27. package/dist/server/chunks/routes/api/analysis/model.json.mjs +8 -9
  28. package/dist/server/chunks/routes/api/analysis/overview-cards.json.mjs +8 -9
  29. package/dist/server/chunks/routes/api/analysis/session.json.mjs +8 -9
  30. package/dist/server/chunks/routes/api/analysis/token/daily.json.mjs +8 -9
  31. package/dist/server/chunks/routes/api/analysis/token.json.mjs +8 -9
  32. package/dist/server/chunks/routes/api/payload.json.mjs +8 -9
  33. package/dist/server/chunks/routes/api/projects/_project/modules.get.mjs +8 -9
  34. package/dist/server/chunks/routes/api/projects/catalog.get.mjs +8 -9
  35. package/dist/server/chunks/routes/renderer.mjs +17 -39183
  36. package/dist/server/chunks/routes/ws.mjs +8 -9
  37. package/dist/server/index.mjs +9 -10
  38. package/dist/server/node_modules/@babel/parser/lib/index.js +14582 -0
  39. package/dist/server/node_modules/@babel/parser/package.json +50 -0
  40. package/dist/server/node_modules/@iconify/utils/lib/colors/index.js +292 -0
  41. package/dist/server/node_modules/@iconify/utils/lib/colors/keywords.js +702 -0
  42. package/dist/server/node_modules/@iconify/utils/lib/css/common.js +76 -0
  43. package/dist/server/node_modules/@iconify/utils/lib/css/format.js +40 -0
  44. package/dist/server/node_modules/@iconify/utils/lib/css/icon.js +52 -0
  45. package/dist/server/node_modules/@iconify/utils/lib/css/icons.js +133 -0
  46. package/dist/server/node_modules/@iconify/utils/lib/customisations/bool.js +20 -0
  47. package/dist/server/node_modules/@iconify/utils/lib/customisations/defaults.js +15 -0
  48. package/dist/server/node_modules/@iconify/utils/lib/customisations/flip.js +18 -0
  49. package/dist/server/node_modules/@iconify/utils/lib/customisations/merge.js +18 -0
  50. package/dist/server/node_modules/@iconify/utils/lib/customisations/rotate.js +31 -0
  51. package/dist/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +80 -0
  52. package/dist/server/node_modules/@iconify/utils/lib/emoji/convert.js +102 -0
  53. package/dist/server/node_modules/@iconify/utils/lib/emoji/data.js +29 -0
  54. package/dist/server/node_modules/@iconify/utils/lib/emoji/format.js +60 -0
  55. package/dist/server/node_modules/@iconify/utils/lib/emoji/parse.js +50 -0
  56. package/dist/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +204 -0
  57. package/dist/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +35 -0
  58. package/dist/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +134 -0
  59. package/dist/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +167 -0
  60. package/dist/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +81 -0
  61. package/dist/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +94 -0
  62. package/dist/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +28 -0
  63. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/components.js +78 -0
  64. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +68 -0
  65. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/name.js +47 -0
  66. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +105 -0
  67. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +38 -0
  68. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +94 -0
  69. package/dist/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +64 -0
  70. package/dist/server/node_modules/@iconify/utils/lib/icon/defaults.js +26 -0
  71. package/dist/server/node_modules/@iconify/utils/lib/icon/merge.js +18 -0
  72. package/dist/server/node_modules/@iconify/utils/lib/icon/name.js +58 -0
  73. package/dist/server/node_modules/@iconify/utils/lib/icon/square.js +34 -0
  74. package/dist/server/node_modules/@iconify/utils/lib/icon/transformations.js +13 -0
  75. package/dist/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +126 -0
  76. package/dist/server/node_modules/@iconify/utils/lib/icon-set/expand.js +21 -0
  77. package/dist/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +27 -0
  78. package/dist/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +38 -0
  79. package/dist/server/node_modules/@iconify/utils/lib/icon-set/minify.js +93 -0
  80. package/dist/server/node_modules/@iconify/utils/lib/icon-set/parse.js +48 -0
  81. package/dist/server/node_modules/@iconify/utils/lib/icon-set/tree.js +24 -0
  82. package/dist/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +44 -0
  83. package/dist/server/node_modules/@iconify/utils/lib/icon-set/validate.js +125 -0
  84. package/dist/server/node_modules/@iconify/utils/lib/index.js +53 -0
  85. package/dist/server/node_modules/@iconify/utils/lib/loader/custom.js +32 -0
  86. package/dist/server/node_modules/@iconify/utils/lib/loader/loader.js +28 -0
  87. package/dist/server/node_modules/@iconify/utils/lib/loader/modern.js +42 -0
  88. package/dist/server/node_modules/@iconify/utils/lib/loader/utils.js +63 -0
  89. package/dist/server/node_modules/@iconify/utils/lib/misc/objects.js +27 -0
  90. package/dist/server/node_modules/@iconify/utils/lib/misc/strings.js +27 -0
  91. package/dist/server/node_modules/@iconify/utils/lib/misc/title.js +10 -0
  92. package/dist/server/node_modules/@iconify/utils/lib/svg/build.js +115 -0
  93. package/dist/server/node_modules/@iconify/utils/lib/svg/defs.js +32 -0
  94. package/dist/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +15 -0
  95. package/dist/server/node_modules/@iconify/utils/lib/svg/html.js +10 -0
  96. package/dist/server/node_modules/@iconify/utils/lib/svg/id.js +42 -0
  97. package/dist/server/node_modules/@iconify/utils/lib/svg/inner-html.js +23 -0
  98. package/dist/server/node_modules/@iconify/utils/lib/svg/parse.js +69 -0
  99. package/dist/server/node_modules/@iconify/utils/lib/svg/pretty.js +55 -0
  100. package/dist/server/node_modules/@iconify/utils/lib/svg/size.js +28 -0
  101. package/dist/server/node_modules/@iconify/utils/lib/svg/trim.js +8 -0
  102. package/dist/server/node_modules/@iconify/utils/lib/svg/url.js +23 -0
  103. package/dist/server/node_modules/@iconify/utils/lib/svg/viewbox.js +9 -0
  104. package/dist/server/node_modules/@iconify/utils/package.json +118 -0
  105. package/dist/server/node_modules/@lonewolfyx/utils/dist/index.mjs +63 -0
  106. package/dist/server/node_modules/@lonewolfyx/utils/package.json +64 -0
  107. package/dist/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6763 -0
  108. package/dist/server/node_modules/@vue/compiler-core/package.json +58 -0
  109. package/dist/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
  110. package/dist/server/node_modules/@vue/compiler-dom/package.json +57 -0
  111. package/dist/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
  112. package/dist/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  113. package/dist/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1877 -0
  114. package/dist/server/node_modules/@vue/reactivity/package.json +55 -0
  115. package/dist/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6856 -0
  116. package/dist/server/node_modules/@vue/runtime-core/package.json +52 -0
  117. package/dist/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1796 -0
  118. package/dist/server/node_modules/@vue/runtime-dom/package.json +60 -0
  119. package/dist/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +883 -0
  120. package/dist/server/node_modules/@vue/server-renderer/package.json +55 -0
  121. package/dist/server/{chunks/_/shared.cjs.prod.mjs → node_modules/@vue/shared/dist/shared.cjs.prod.js} +76 -81
  122. package/dist/server/node_modules/@vue/shared/package.json +47 -0
  123. package/dist/server/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  124. package/dist/server/node_modules/better-sqlite3/lib/database.js +90 -0
  125. package/dist/server/node_modules/better-sqlite3/lib/index.js +3 -0
  126. package/dist/server/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  127. package/dist/server/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  128. package/dist/server/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  129. package/dist/server/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  130. package/dist/server/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  131. package/dist/server/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  132. package/dist/server/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  133. package/dist/server/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  134. package/dist/server/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  135. package/dist/server/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  136. package/dist/server/node_modules/better-sqlite3/lib/util.js +12 -0
  137. package/dist/server/node_modules/better-sqlite3/package.json +59 -0
  138. package/dist/server/node_modules/bindings/bindings.js +221 -0
  139. package/dist/server/node_modules/bindings/package.json +28 -0
  140. package/dist/server/node_modules/chokidar/handler.js +632 -0
  141. package/dist/server/node_modules/chokidar/index.js +822 -0
  142. package/dist/server/node_modules/chokidar/package.json +63 -0
  143. package/dist/server/{chunks/_ → node_modules/consola/dist/chunks}/prompt.mjs +2 -1
  144. package/dist/server/node_modules/consola/dist/core.mjs +512 -0
  145. package/dist/server/node_modules/consola/dist/index.mjs +651 -0
  146. package/dist/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  147. package/dist/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  148. package/dist/server/node_modules/consola/package.json +136 -0
  149. package/dist/server/node_modules/devalue/index.js +4 -0
  150. package/dist/server/node_modules/devalue/package.json +40 -0
  151. package/dist/server/node_modules/devalue/src/base64.js +60 -0
  152. package/dist/server/node_modules/devalue/src/constants.js +7 -0
  153. package/dist/server/node_modules/devalue/src/parse.js +268 -0
  154. package/dist/server/node_modules/devalue/src/stringify.js +335 -0
  155. package/dist/server/node_modules/devalue/src/uneval.js +552 -0
  156. package/dist/server/node_modules/devalue/src/utils.js +144 -0
  157. package/dist/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  158. package/dist/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  159. package/dist/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  160. package/dist/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  161. package/dist/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  162. package/dist/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  163. package/dist/server/node_modules/entities/dist/commonjs/package.json +3 -0
  164. package/dist/server/node_modules/entities/package.json +120 -0
  165. package/dist/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  166. package/dist/server/node_modules/estree-walker/package.json +37 -0
  167. package/dist/server/node_modules/file-uri-to-path/index.js +66 -0
  168. package/dist/server/node_modules/file-uri-to-path/package.json +32 -0
  169. package/dist/server/node_modules/glob/dist/esm/index.min.js +4 -0
  170. package/dist/server/node_modules/glob/dist/esm/package.json +3 -0
  171. package/dist/server/node_modules/glob/package.json +98 -0
  172. package/dist/server/node_modules/hookable/dist/index.mjs +257 -0
  173. package/dist/server/node_modules/hookable/package.json +53 -0
  174. package/dist/server/node_modules/md5-typescript/dist/bundles/bundle.umd.js +208 -0
  175. package/dist/server/node_modules/md5-typescript/package.json +31 -0
  176. package/dist/server/node_modules/path-type/index.js +42 -0
  177. package/dist/server/node_modules/path-type/package.json +51 -0
  178. package/dist/server/node_modules/readdirp/index.js +272 -0
  179. package/dist/server/node_modules/readdirp/package.json +66 -0
  180. package/dist/server/node_modules/source-map-js/lib/array-set.js +121 -0
  181. package/dist/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  182. package/dist/server/node_modules/source-map-js/lib/base64.js +67 -0
  183. package/dist/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  184. package/dist/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  185. package/dist/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  186. package/dist/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  187. package/dist/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  188. package/dist/server/node_modules/source-map-js/lib/source-node.js +413 -0
  189. package/dist/server/node_modules/source-map-js/lib/util.js +594 -0
  190. package/dist/server/node_modules/source-map-js/package.json +71 -0
  191. package/dist/server/node_modules/source-map-js/source-map.js +8 -0
  192. package/dist/server/node_modules/ufo/dist/index.mjs +645 -0
  193. package/dist/server/node_modules/ufo/package.json +48 -0
  194. package/dist/server/node_modules/unhead/dist/parser.mjs +508 -0
  195. package/dist/server/node_modules/unhead/dist/plugins.mjs +101 -0
  196. package/dist/server/node_modules/unhead/dist/server.mjs +180 -0
  197. package/dist/server/node_modules/unhead/dist/shared/unhead.B5FWS6X0.mjs +207 -0
  198. package/dist/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
  199. package/dist/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
  200. package/dist/server/node_modules/unhead/dist/shared/unhead.Ct24BOby.mjs +182 -0
  201. package/dist/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +236 -0
  202. package/dist/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  203. package/dist/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +166 -0
  204. package/dist/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  205. package/dist/server/node_modules/unhead/dist/utils.mjs +5 -0
  206. package/dist/server/node_modules/unhead/package.json +105 -0
  207. package/dist/server/node_modules/vue/dist/vue.cjs.js +80 -0
  208. package/dist/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  209. package/dist/server/node_modules/vue/index.js +7 -0
  210. package/dist/server/node_modules/vue/index.mjs +1 -0
  211. package/dist/server/node_modules/vue/package.json +112 -0
  212. package/dist/server/node_modules/vue/server-renderer/index.mjs +1 -0
  213. package/dist/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +301 -0
  214. package/dist/server/node_modules/vue-bundle-renderer/package.json +55 -0
  215. package/dist/server/package.json +37 -0
  216. package/package.json +3 -1
  217. package/dist/public/_nuxt/builds/meta/5b933d30-47b4-45ca-8d5a-cba3255174fa.json +0 -1
  218. package/dist/public/_nuxt/error-404.B0EXnOcv.css +0 -1
  219. package/dist/public/_nuxt/error-500.CnSNZoEG.css +0 -1
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@babel/parser",
3
+ "version": "7.29.2",
4
+ "description": "A JavaScript parser",
5
+ "author": "The Babel Team (https://babel.dev/team)",
6
+ "homepage": "https://babel.dev/docs/en/next/babel-parser",
7
+ "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen",
8
+ "license": "MIT",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "keywords": [
13
+ "babel",
14
+ "javascript",
15
+ "parser",
16
+ "tc39",
17
+ "ecmascript",
18
+ "@babel/parser"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/babel/babel.git",
23
+ "directory": "packages/babel-parser"
24
+ },
25
+ "main": "./lib/index.js",
26
+ "types": "./typings/babel-parser.d.ts",
27
+ "files": [
28
+ "bin",
29
+ "lib",
30
+ "typings/babel-parser.d.ts",
31
+ "index.cjs"
32
+ ],
33
+ "engines": {
34
+ "node": ">=6.0.0"
35
+ },
36
+ "# dependencies": "This package doesn't actually have runtime dependencies. @babel/types is only needed for type definitions.",
37
+ "dependencies": {
38
+ "@babel/types": "^7.29.0"
39
+ },
40
+ "devDependencies": {
41
+ "@babel/code-frame": "^7.29.0",
42
+ "@babel/helper-check-duplicate-nodes": "^7.28.6",
43
+ "@babel/helper-fixtures": "^7.28.6",
44
+ "@babel/helper-string-parser": "^7.27.1",
45
+ "@babel/helper-validator-identifier": "^7.28.5",
46
+ "charcodes": "^0.2.0"
47
+ },
48
+ "bin": "./bin/babel-parser.js",
49
+ "type": "commonjs"
50
+ }
@@ -0,0 +1,292 @@
1
+ import { colorKeywords } from "./keywords.js";
2
+
3
+ /**
4
+ * Convert RGB to HSL
5
+ */
6
+ function rgb2hsl(rgb) {
7
+ const c1 = rgb.r / 255, c2 = rgb.g / 255, c3 = rgb.b / 255, kmin = Math.min(c1, Math.min(c2, c3)), kmax = Math.max(c1, Math.max(c2, c3)), l = (kmax + kmin) / 2;
8
+ let s, h, delta;
9
+ if (kmax === kmin) s = h = 0;
10
+ else {
11
+ if (l < .5) s = (kmax - kmin) / (kmax + kmin);
12
+ else s = (kmax - kmin) / (2 - kmax - kmin);
13
+ delta = kmax - kmin;
14
+ if (kmax === c1) h = (c2 - c3) / delta;
15
+ else if (kmax === c2) h = 2 + (c3 - c1) / delta;
16
+ else h = 4 + (c1 - c2) / delta;
17
+ h = h * 60;
18
+ if (h < 0) h += 360;
19
+ }
20
+ return {
21
+ type: "hsl",
22
+ h,
23
+ s: s * 100,
24
+ l: l * 100,
25
+ alpha: rgb.alpha
26
+ };
27
+ }
28
+ /**
29
+ * Color from function
30
+ */
31
+ function fromFunction(value) {
32
+ if (value.slice(-1) !== ")") return null;
33
+ const parts = value.slice(0, value.length - 1).split("(");
34
+ if (parts.length !== 2) return null;
35
+ const func = parts[0].trim();
36
+ const content = parts[1].trim();
37
+ let values;
38
+ let alphaStr;
39
+ switch (func) {
40
+ case "lch":
41
+ case "lab": {
42
+ const parts$1 = content.split("/");
43
+ switch (parts$1.length) {
44
+ case 2:
45
+ alphaStr = parts$1[1].trim();
46
+ break;
47
+ case 1: break;
48
+ default: return null;
49
+ }
50
+ values = parts$1[0].trim().split(/[\s,]+/);
51
+ break;
52
+ }
53
+ case "rgb":
54
+ case "rgba":
55
+ case "hsl":
56
+ case "hsla":
57
+ values = content.trim().split(/[\s,]+/);
58
+ if (values.length === 4) alphaStr = values.pop().trim();
59
+ break;
60
+ default: return {
61
+ type: "function",
62
+ func,
63
+ value: content
64
+ };
65
+ }
66
+ let alpha = 1;
67
+ if (typeof alphaStr === "string") {
68
+ alpha = parseFloat(alphaStr);
69
+ const index = alphaStr.indexOf("%");
70
+ const hasPercentage = index !== -1;
71
+ if (isNaN(alpha) || hasPercentage && index !== alphaStr.length - 1) return null;
72
+ if (hasPercentage) alpha /= 100;
73
+ }
74
+ if (alpha < 0 || alpha > 1 || values.length !== 3) return null;
75
+ if (alpha === 0) return { type: "transparent" };
76
+ const isPercentage = [];
77
+ const numbers = [];
78
+ for (let i = 0; i < 3; i++) {
79
+ const colorStr = values[i];
80
+ const index = colorStr.indexOf("%");
81
+ const hasPercentage = index !== -1;
82
+ if (hasPercentage && index !== colorStr.length - 1) return null;
83
+ const colorNum = parseFloat(colorStr);
84
+ if (isNaN(colorNum)) return null;
85
+ isPercentage.push(hasPercentage);
86
+ numbers.push(colorNum);
87
+ }
88
+ switch (func) {
89
+ case "rgb":
90
+ case "rgba": {
91
+ const hasPercengage = isPercentage[0];
92
+ if (hasPercengage !== isPercentage[1] || hasPercengage !== isPercentage[2]) return null;
93
+ let r = numbers[0];
94
+ let g = numbers[1];
95
+ let b = numbers[2];
96
+ if (hasPercengage) {
97
+ r = r * 255 / 100;
98
+ g = g * 255 / 100;
99
+ b = b * 255 / 100;
100
+ }
101
+ return {
102
+ type: "rgb",
103
+ r,
104
+ g,
105
+ b,
106
+ alpha
107
+ };
108
+ }
109
+ case "hsl":
110
+ case "hsla":
111
+ if (isPercentage[0] || !isPercentage[1] || !isPercentage[2]) return null;
112
+ return {
113
+ type: "hsl",
114
+ h: numbers[0],
115
+ s: numbers[1],
116
+ l: numbers[2],
117
+ alpha
118
+ };
119
+ case "lab":
120
+ case "lch":
121
+ if (!isPercentage[0] || isPercentage[1] || isPercentage[2]) return null;
122
+ return func === "lab" ? {
123
+ type: "lab",
124
+ l: numbers[0],
125
+ a: numbers[1],
126
+ b: numbers[2],
127
+ alpha
128
+ } : {
129
+ type: "lch",
130
+ l: numbers[0],
131
+ c: numbers[1],
132
+ h: numbers[2],
133
+ alpha
134
+ };
135
+ }
136
+ return null;
137
+ }
138
+ /**
139
+ * From hexadecimal
140
+ */
141
+ function fromHex(value) {
142
+ if (value.slice(0, 1) === "#") value = value.slice(1);
143
+ if (!/^[\da-f]+$/i.test(value)) return null;
144
+ let alpha = 1;
145
+ const hex = [
146
+ "",
147
+ "",
148
+ ""
149
+ ];
150
+ switch (value.length) {
151
+ case 4: alpha = parseInt(value[3] + value[3], 16) / 255;
152
+ case 3:
153
+ hex[0] = value[0] + value[0];
154
+ hex[1] = value[1] + value[1];
155
+ hex[2] = value[2] + value[2];
156
+ break;
157
+ case 8: alpha = parseInt(value[6] + value[7], 16) / 255;
158
+ case 6:
159
+ hex[0] = value[0] + value[1];
160
+ hex[1] = value[2] + value[3];
161
+ hex[2] = value[4] + value[5];
162
+ break;
163
+ default: return null;
164
+ }
165
+ return alpha === 0 ? { type: "transparent" } : {
166
+ type: "rgb",
167
+ r: parseInt(hex[0], 16),
168
+ g: parseInt(hex[1], 16),
169
+ b: parseInt(hex[2], 16),
170
+ alpha
171
+ };
172
+ }
173
+ /**
174
+ * String to color
175
+ */
176
+ function stringToColor(value) {
177
+ value = value.toLowerCase().trim();
178
+ if (colorKeywords[value]) return { ...colorKeywords[value] };
179
+ if (value.indexOf("(") !== -1) return fromFunction(value);
180
+ return fromHex(value);
181
+ }
182
+ /**
183
+ * Check if colors are identical
184
+ */
185
+ function compareColors(color1, color2) {
186
+ if (color1.type === color2.type) {
187
+ let testKeys = new Set(Object.keys(color1));
188
+ switch (color1.type) {
189
+ case "hsl":
190
+ if (color1.s === 0) testKeys.delete("h");
191
+ if (color1.l === 0 || color1.l === 100) {
192
+ testKeys.delete("h");
193
+ testKeys.delete("s");
194
+ }
195
+ case "rgb": if (color1.alpha === 0) testKeys = new Set(["a"]);
196
+ }
197
+ const keys = Array.from(testKeys);
198
+ for (let i = 0; i < keys.length; i++) {
199
+ const key = keys[i];
200
+ if (color1[key] !== color2[key]) return false;
201
+ }
202
+ return true;
203
+ }
204
+ const list = [color1, color2].sort((a, b) => a.type.localeCompare(b.type));
205
+ const item1 = list[0];
206
+ const item2 = list[1];
207
+ switch (item1.type) {
208
+ case "hsl":
209
+ switch (item2.type) {
210
+ case "rgb": return compareColors(item1, rgb2hsl(item2));
211
+ case "transparent": return item1.alpha === 0;
212
+ }
213
+ return false;
214
+ case "rgb": switch (item2.type) {
215
+ case "transparent": return item1.alpha === 0;
216
+ }
217
+ }
218
+ return false;
219
+ }
220
+ /**
221
+ * Color to hex
222
+ */
223
+ function colorToHexString(color, canCompact = true) {
224
+ if (color.alpha !== 1) return null;
225
+ let result = "";
226
+ const attrs = [
227
+ "r",
228
+ "g",
229
+ "b"
230
+ ];
231
+ for (let i = 0; i < attrs.length; i++) {
232
+ const value = color[attrs[i]];
233
+ if (Math.round(value) !== value) return null;
234
+ const hex = value.toString(16);
235
+ result += (value < 16 ? "0" : "") + hex;
236
+ }
237
+ if (result.length !== 6) return null;
238
+ if (canCompact && result[0] === result[1] && result[2] === result[3] && result[4] === result[5]) result = result[0] + result[2] + result[4];
239
+ return "#" + result;
240
+ }
241
+ /**
242
+ * Convert color to string
243
+ */
244
+ function colorToString(color) {
245
+ if (color.alpha === 0) return "transparent";
246
+ switch (color.type) {
247
+ case "none":
248
+ case "transparent": return color.type;
249
+ case "current": return "currentColor";
250
+ case "rgb": {
251
+ const hex = colorToHexString(color);
252
+ if (hex !== null) return hex;
253
+ const list = [
254
+ color.r,
255
+ color.g,
256
+ color.b
257
+ ];
258
+ if (color.alpha !== 1) list.push(color.alpha);
259
+ return "rgb" + (list.length === 4 ? "a(" : "(") + list.join(", ") + ")";
260
+ }
261
+ case "hsl": {
262
+ const list = [
263
+ color.h,
264
+ color.s.toString() + "%",
265
+ color.l.toString() + "%"
266
+ ];
267
+ if (color.alpha !== 1) list.push(color.alpha);
268
+ return "hsl" + (list.length === 4 ? "a(" : "(") + list.join(", ") + ")";
269
+ }
270
+ case "lab": {
271
+ const list = [
272
+ color.l.toString() + "%",
273
+ color.a,
274
+ color.b
275
+ ];
276
+ if (color.alpha !== 1) list.push("/ " + color.alpha.toString());
277
+ return "lab(" + list.join(" ") + ")";
278
+ }
279
+ case "lch": {
280
+ const list = [
281
+ color.l.toString() + "%",
282
+ color.c,
283
+ color.h
284
+ ];
285
+ if (color.alpha !== 1) list.push("/ " + color.alpha.toString());
286
+ return "lch(" + list.join(" ") + ")";
287
+ }
288
+ case "function": return color.func + "(" + color.value + ")";
289
+ }
290
+ }
291
+
292
+ export { colorToHexString, colorToString, compareColors, stringToColor };