@guru-ai-product/ai-product-kit 0.2.251113194913 → 0.2.251113205658

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 (129) hide show
  1. package/mcp/skills/aipk_init_project/template/AGENTS_TEMPLATE.md +1 -1
  2. package/mcp/src/server.js +1 -1
  3. package/package.json +1 -1
  4. package/skills/aipk_design/GURU_AI.md +119 -7
  5. package/skills/aipk_design/SKILL.md +8 -7
  6. package/skills/aipk_design/{auto_panel_splitter → update-requirements-from-design}/SKILL.md +18 -16
  7. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/.package-lock.json +113 -0
  8. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/LICENSE.md +82 -0
  9. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/README.md +15 -0
  10. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/color.cjs +1594 -0
  11. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/index.cjs +1 -0
  12. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/colour/package.json +45 -0
  13. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/LICENSE +191 -0
  14. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/README.md +18 -0
  15. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  16. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-darwin-arm64/package.json +40 -0
  17. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/README.md +46 -0
  18. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +220 -0
  19. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +1 -0
  20. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
  21. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/package.json +36 -0
  22. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +30 -0
  23. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/LICENSE +201 -0
  24. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/README.md +163 -0
  25. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/index.d.ts +14 -0
  26. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/detect-libc.js +313 -0
  27. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/elf.js +39 -0
  28. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/filesystem.js +51 -0
  29. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/lib/process.js +24 -0
  30. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/detect-libc/package.json +44 -0
  31. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/LICENSE +15 -0
  32. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/README.md +664 -0
  33. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/bin/semver.js +191 -0
  34. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/comparator.js +143 -0
  35. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/index.js +7 -0
  36. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/range.js +557 -0
  37. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/classes/semver.js +333 -0
  38. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/clean.js +8 -0
  39. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/cmp.js +54 -0
  40. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/coerce.js +62 -0
  41. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/compare-build.js +9 -0
  42. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/compare-loose.js +5 -0
  43. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/compare.js +7 -0
  44. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/diff.js +60 -0
  45. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/eq.js +5 -0
  46. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/gt.js +5 -0
  47. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/gte.js +5 -0
  48. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/inc.js +21 -0
  49. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/lt.js +5 -0
  50. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/lte.js +5 -0
  51. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/major.js +5 -0
  52. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/minor.js +5 -0
  53. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/neq.js +5 -0
  54. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/parse.js +18 -0
  55. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/patch.js +5 -0
  56. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/prerelease.js +8 -0
  57. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/rcompare.js +5 -0
  58. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/rsort.js +5 -0
  59. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/satisfies.js +12 -0
  60. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/sort.js +5 -0
  61. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/functions/valid.js +8 -0
  62. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/index.js +91 -0
  63. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/constants.js +37 -0
  64. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/debug.js +11 -0
  65. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/identifiers.js +29 -0
  66. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/lrucache.js +42 -0
  67. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/parse-options.js +17 -0
  68. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/internal/re.js +223 -0
  69. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/package.json +78 -0
  70. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/preload.js +4 -0
  71. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/range.bnf +16 -0
  72. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/gtr.js +6 -0
  73. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/intersects.js +9 -0
  74. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/ltr.js +6 -0
  75. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/max-satisfying.js +27 -0
  76. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/min-satisfying.js +26 -0
  77. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/min-version.js +63 -0
  78. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/outside.js +82 -0
  79. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/simplify.js +49 -0
  80. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/subset.js +249 -0
  81. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/to-comparators.js +10 -0
  82. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/semver/ranges/valid.js +13 -0
  83. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/LICENSE +191 -0
  84. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/README.md +118 -0
  85. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/install/build.js +38 -0
  86. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/install/check.js +14 -0
  87. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/channel.js +177 -0
  88. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/colour.js +195 -0
  89. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/composite.js +212 -0
  90. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/constructor.js +499 -0
  91. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/index.d.ts +1971 -0
  92. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/index.js +16 -0
  93. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/input.js +809 -0
  94. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/is.js +143 -0
  95. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/libvips.js +207 -0
  96. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/operation.js +1016 -0
  97. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/output.js +1666 -0
  98. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/resize.js +595 -0
  99. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/sharp.js +121 -0
  100. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/lib/utility.js +291 -0
  101. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/package.json +202 -0
  102. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/binding.gyp +298 -0
  103. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/common.cc +1130 -0
  104. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/common.h +402 -0
  105. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/metadata.cc +346 -0
  106. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/metadata.h +90 -0
  107. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/operations.cc +499 -0
  108. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/operations.h +137 -0
  109. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/pipeline.cc +1814 -0
  110. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/pipeline.h +408 -0
  111. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/sharp.cc +43 -0
  112. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/stats.cc +186 -0
  113. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/stats.h +62 -0
  114. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/utilities.cc +288 -0
  115. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/node_modules/sharp/src/utilities.h +22 -0
  116. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/package-lock.json +529 -0
  117. package/skills/aipk_design/update-requirements-from-design/scripts/sharp-runtime/package.json +5 -0
  118. package/skills/aipk_design/{auto_panel_splitter/scripts/auto_panel_splitter_bundle.js → update-requirements-from-design/scripts/split-design-boards-bundle.js} +10 -1
  119. package/skills/aipk_design/{auto_panel_splitter/scripts/panel_asset_mapper_bundle.js → update-requirements-from-design/scripts/sync-design-to-requirements-bundle.js} +10 -1
  120. package/skills/aipk_development/GURU_AI.md +1 -1
  121. package/skills/aipk_init_project/GURU_AI.md +2 -2
  122. package/skills/aipk_init_project/template/AGENTS_TEMPLATE.md +1 -1
  123. package/skills/aipk_operations/GURU_AI.md +1 -1
  124. package/skills/aipk_requirements/GURU_AI.md +2 -2
  125. package/skills/aipk_requirements/documentation/SKILL.md +23 -1
  126. package/skills/aipk_skill_generate/GURU_AI.md +1 -1
  127. package/skills/aipk_tool_prompts/GURU_AI.md +1 -1
  128. /package/skills/aipk_design/{auto_panel_splitter → update-requirements-from-design}/scripts/auto_panel_splitter.js +0 -0
  129. /package/skills/aipk_design/{auto_panel_splitter → update-requirements-from-design}/scripts/panel_asset_mapper.js +0 -0
@@ -0,0 +1,1594 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // node_modules/color/index.js
20
+ var index_exports = {};
21
+ __export(index_exports, {
22
+ default: () => index_default
23
+ });
24
+ module.exports = __toCommonJS(index_exports);
25
+
26
+ // node_modules/color-name/index.js
27
+ var color_name_default = {
28
+ aliceblue: [240, 248, 255],
29
+ antiquewhite: [250, 235, 215],
30
+ aqua: [0, 255, 255],
31
+ aquamarine: [127, 255, 212],
32
+ azure: [240, 255, 255],
33
+ beige: [245, 245, 220],
34
+ bisque: [255, 228, 196],
35
+ black: [0, 0, 0],
36
+ blanchedalmond: [255, 235, 205],
37
+ blue: [0, 0, 255],
38
+ blueviolet: [138, 43, 226],
39
+ brown: [165, 42, 42],
40
+ burlywood: [222, 184, 135],
41
+ cadetblue: [95, 158, 160],
42
+ chartreuse: [127, 255, 0],
43
+ chocolate: [210, 105, 30],
44
+ coral: [255, 127, 80],
45
+ cornflowerblue: [100, 149, 237],
46
+ cornsilk: [255, 248, 220],
47
+ crimson: [220, 20, 60],
48
+ cyan: [0, 255, 255],
49
+ darkblue: [0, 0, 139],
50
+ darkcyan: [0, 139, 139],
51
+ darkgoldenrod: [184, 134, 11],
52
+ darkgray: [169, 169, 169],
53
+ darkgreen: [0, 100, 0],
54
+ darkgrey: [169, 169, 169],
55
+ darkkhaki: [189, 183, 107],
56
+ darkmagenta: [139, 0, 139],
57
+ darkolivegreen: [85, 107, 47],
58
+ darkorange: [255, 140, 0],
59
+ darkorchid: [153, 50, 204],
60
+ darkred: [139, 0, 0],
61
+ darksalmon: [233, 150, 122],
62
+ darkseagreen: [143, 188, 143],
63
+ darkslateblue: [72, 61, 139],
64
+ darkslategray: [47, 79, 79],
65
+ darkslategrey: [47, 79, 79],
66
+ darkturquoise: [0, 206, 209],
67
+ darkviolet: [148, 0, 211],
68
+ deeppink: [255, 20, 147],
69
+ deepskyblue: [0, 191, 255],
70
+ dimgray: [105, 105, 105],
71
+ dimgrey: [105, 105, 105],
72
+ dodgerblue: [30, 144, 255],
73
+ firebrick: [178, 34, 34],
74
+ floralwhite: [255, 250, 240],
75
+ forestgreen: [34, 139, 34],
76
+ fuchsia: [255, 0, 255],
77
+ gainsboro: [220, 220, 220],
78
+ ghostwhite: [248, 248, 255],
79
+ gold: [255, 215, 0],
80
+ goldenrod: [218, 165, 32],
81
+ gray: [128, 128, 128],
82
+ green: [0, 128, 0],
83
+ greenyellow: [173, 255, 47],
84
+ grey: [128, 128, 128],
85
+ honeydew: [240, 255, 240],
86
+ hotpink: [255, 105, 180],
87
+ indianred: [205, 92, 92],
88
+ indigo: [75, 0, 130],
89
+ ivory: [255, 255, 240],
90
+ khaki: [240, 230, 140],
91
+ lavender: [230, 230, 250],
92
+ lavenderblush: [255, 240, 245],
93
+ lawngreen: [124, 252, 0],
94
+ lemonchiffon: [255, 250, 205],
95
+ lightblue: [173, 216, 230],
96
+ lightcoral: [240, 128, 128],
97
+ lightcyan: [224, 255, 255],
98
+ lightgoldenrodyellow: [250, 250, 210],
99
+ lightgray: [211, 211, 211],
100
+ lightgreen: [144, 238, 144],
101
+ lightgrey: [211, 211, 211],
102
+ lightpink: [255, 182, 193],
103
+ lightsalmon: [255, 160, 122],
104
+ lightseagreen: [32, 178, 170],
105
+ lightskyblue: [135, 206, 250],
106
+ lightslategray: [119, 136, 153],
107
+ lightslategrey: [119, 136, 153],
108
+ lightsteelblue: [176, 196, 222],
109
+ lightyellow: [255, 255, 224],
110
+ lime: [0, 255, 0],
111
+ limegreen: [50, 205, 50],
112
+ linen: [250, 240, 230],
113
+ magenta: [255, 0, 255],
114
+ maroon: [128, 0, 0],
115
+ mediumaquamarine: [102, 205, 170],
116
+ mediumblue: [0, 0, 205],
117
+ mediumorchid: [186, 85, 211],
118
+ mediumpurple: [147, 112, 219],
119
+ mediumseagreen: [60, 179, 113],
120
+ mediumslateblue: [123, 104, 238],
121
+ mediumspringgreen: [0, 250, 154],
122
+ mediumturquoise: [72, 209, 204],
123
+ mediumvioletred: [199, 21, 133],
124
+ midnightblue: [25, 25, 112],
125
+ mintcream: [245, 255, 250],
126
+ mistyrose: [255, 228, 225],
127
+ moccasin: [255, 228, 181],
128
+ navajowhite: [255, 222, 173],
129
+ navy: [0, 0, 128],
130
+ oldlace: [253, 245, 230],
131
+ olive: [128, 128, 0],
132
+ olivedrab: [107, 142, 35],
133
+ orange: [255, 165, 0],
134
+ orangered: [255, 69, 0],
135
+ orchid: [218, 112, 214],
136
+ palegoldenrod: [238, 232, 170],
137
+ palegreen: [152, 251, 152],
138
+ paleturquoise: [175, 238, 238],
139
+ palevioletred: [219, 112, 147],
140
+ papayawhip: [255, 239, 213],
141
+ peachpuff: [255, 218, 185],
142
+ peru: [205, 133, 63],
143
+ pink: [255, 192, 203],
144
+ plum: [221, 160, 221],
145
+ powderblue: [176, 224, 230],
146
+ purple: [128, 0, 128],
147
+ rebeccapurple: [102, 51, 153],
148
+ red: [255, 0, 0],
149
+ rosybrown: [188, 143, 143],
150
+ royalblue: [65, 105, 225],
151
+ saddlebrown: [139, 69, 19],
152
+ salmon: [250, 128, 114],
153
+ sandybrown: [244, 164, 96],
154
+ seagreen: [46, 139, 87],
155
+ seashell: [255, 245, 238],
156
+ sienna: [160, 82, 45],
157
+ silver: [192, 192, 192],
158
+ skyblue: [135, 206, 235],
159
+ slateblue: [106, 90, 205],
160
+ slategray: [112, 128, 144],
161
+ slategrey: [112, 128, 144],
162
+ snow: [255, 250, 250],
163
+ springgreen: [0, 255, 127],
164
+ steelblue: [70, 130, 180],
165
+ tan: [210, 180, 140],
166
+ teal: [0, 128, 128],
167
+ thistle: [216, 191, 216],
168
+ tomato: [255, 99, 71],
169
+ turquoise: [64, 224, 208],
170
+ violet: [238, 130, 238],
171
+ wheat: [245, 222, 179],
172
+ white: [255, 255, 255],
173
+ whitesmoke: [245, 245, 245],
174
+ yellow: [255, 255, 0],
175
+ yellowgreen: [154, 205, 50]
176
+ };
177
+
178
+ // node_modules/color-string/index.js
179
+ var reverseNames = /* @__PURE__ */ Object.create(null);
180
+ for (const name in color_name_default) {
181
+ if (Object.hasOwn(color_name_default, name)) {
182
+ reverseNames[color_name_default[name]] = name;
183
+ }
184
+ }
185
+ var cs = {
186
+ to: {},
187
+ get: {}
188
+ };
189
+ cs.get = function(string) {
190
+ const prefix = string.slice(0, 3).toLowerCase();
191
+ let value;
192
+ let model;
193
+ switch (prefix) {
194
+ case "hsl": {
195
+ value = cs.get.hsl(string);
196
+ model = "hsl";
197
+ break;
198
+ }
199
+ case "hwb": {
200
+ value = cs.get.hwb(string);
201
+ model = "hwb";
202
+ break;
203
+ }
204
+ default: {
205
+ value = cs.get.rgb(string);
206
+ model = "rgb";
207
+ break;
208
+ }
209
+ }
210
+ if (!value) {
211
+ return null;
212
+ }
213
+ return { model, value };
214
+ };
215
+ cs.get.rgb = function(string) {
216
+ if (!string) {
217
+ return null;
218
+ }
219
+ const abbr = /^#([a-f\d]{3,4})$/i;
220
+ const hex = /^#([a-f\d]{6})([a-f\d]{2})?$/i;
221
+ const rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/;
222
+ const per = /^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/;
223
+ const keyword = /^(\w+)$/;
224
+ let rgb = [0, 0, 0, 1];
225
+ let match;
226
+ let i;
227
+ let hexAlpha;
228
+ if (match = string.match(hex)) {
229
+ hexAlpha = match[2];
230
+ match = match[1];
231
+ for (i = 0; i < 3; i++) {
232
+ const i2 = i * 2;
233
+ rgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);
234
+ }
235
+ if (hexAlpha) {
236
+ rgb[3] = Number.parseInt(hexAlpha, 16) / 255;
237
+ }
238
+ } else if (match = string.match(abbr)) {
239
+ match = match[1];
240
+ hexAlpha = match[3];
241
+ for (i = 0; i < 3; i++) {
242
+ rgb[i] = Number.parseInt(match[i] + match[i], 16);
243
+ }
244
+ if (hexAlpha) {
245
+ rgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;
246
+ }
247
+ } else if (match = string.match(rgba)) {
248
+ for (i = 0; i < 3; i++) {
249
+ rgb[i] = Number.parseInt(match[i + 1], 10);
250
+ }
251
+ if (match[4]) {
252
+ rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);
253
+ }
254
+ } else if (match = string.match(per)) {
255
+ for (i = 0; i < 3; i++) {
256
+ rgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);
257
+ }
258
+ if (match[4]) {
259
+ rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);
260
+ }
261
+ } else if (match = string.match(keyword)) {
262
+ if (match[1] === "transparent") {
263
+ return [0, 0, 0, 0];
264
+ }
265
+ if (!Object.hasOwn(color_name_default, match[1])) {
266
+ return null;
267
+ }
268
+ rgb = color_name_default[match[1]];
269
+ rgb[3] = 1;
270
+ return rgb;
271
+ } else {
272
+ return null;
273
+ }
274
+ for (i = 0; i < 3; i++) {
275
+ rgb[i] = clamp(rgb[i], 0, 255);
276
+ }
277
+ rgb[3] = clamp(rgb[3], 0, 1);
278
+ return rgb;
279
+ };
280
+ cs.get.hsl = function(string) {
281
+ if (!string) {
282
+ return null;
283
+ }
284
+ const hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
285
+ const match = string.match(hsl);
286
+ if (match) {
287
+ const alpha = Number.parseFloat(match[4]);
288
+ const h = (Number.parseFloat(match[1]) % 360 + 360) % 360;
289
+ const s = clamp(Number.parseFloat(match[2]), 0, 100);
290
+ const l = clamp(Number.parseFloat(match[3]), 0, 100);
291
+ const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);
292
+ return [h, s, l, a];
293
+ }
294
+ return null;
295
+ };
296
+ cs.get.hwb = function(string) {
297
+ if (!string) {
298
+ return null;
299
+ }
300
+ const hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
301
+ const match = string.match(hwb);
302
+ if (match) {
303
+ const alpha = Number.parseFloat(match[4]);
304
+ const h = (Number.parseFloat(match[1]) % 360 + 360) % 360;
305
+ const w = clamp(Number.parseFloat(match[2]), 0, 100);
306
+ const b = clamp(Number.parseFloat(match[3]), 0, 100);
307
+ const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);
308
+ return [h, w, b, a];
309
+ }
310
+ return null;
311
+ };
312
+ cs.to.hex = function(...rgba) {
313
+ return "#" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : "");
314
+ };
315
+ cs.to.rgb = function(...rgba) {
316
+ return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ")" : "rgba(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ", " + rgba[3] + ")";
317
+ };
318
+ cs.to.rgb.percent = function(...rgba) {
319
+ const r = Math.round(rgba[0] / 255 * 100);
320
+ const g = Math.round(rgba[1] / 255 * 100);
321
+ const b = Math.round(rgba[2] / 255 * 100);
322
+ return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + r + "%, " + g + "%, " + b + "%)" : "rgba(" + r + "%, " + g + "%, " + b + "%, " + rgba[3] + ")";
323
+ };
324
+ cs.to.hsl = function(...hsla) {
325
+ return hsla.length < 4 || hsla[3] === 1 ? "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)" : "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")";
326
+ };
327
+ cs.to.hwb = function(...hwba) {
328
+ let a = "";
329
+ if (hwba.length >= 4 && hwba[3] !== 1) {
330
+ a = ", " + hwba[3];
331
+ }
332
+ return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a + ")";
333
+ };
334
+ cs.to.keyword = function(...rgb) {
335
+ return reverseNames[rgb.slice(0, 3)];
336
+ };
337
+ function clamp(number_, min, max) {
338
+ return Math.min(Math.max(min, number_), max);
339
+ }
340
+ function hexDouble(number_) {
341
+ const string_ = Math.round(number_).toString(16).toUpperCase();
342
+ return string_.length < 2 ? "0" + string_ : string_;
343
+ }
344
+ var color_string_default = cs;
345
+
346
+ // node_modules/color-convert/conversions.js
347
+ var reverseKeywords = {};
348
+ for (const key of Object.keys(color_name_default)) {
349
+ reverseKeywords[color_name_default[key]] = key;
350
+ }
351
+ var convert = {
352
+ rgb: { channels: 3, labels: "rgb" },
353
+ hsl: { channels: 3, labels: "hsl" },
354
+ hsv: { channels: 3, labels: "hsv" },
355
+ hwb: { channels: 3, labels: "hwb" },
356
+ cmyk: { channels: 4, labels: "cmyk" },
357
+ xyz: { channels: 3, labels: "xyz" },
358
+ lab: { channels: 3, labels: "lab" },
359
+ oklab: { channels: 3, labels: ["okl", "oka", "okb"] },
360
+ lch: { channels: 3, labels: "lch" },
361
+ oklch: { channels: 3, labels: ["okl", "okc", "okh"] },
362
+ hex: { channels: 1, labels: ["hex"] },
363
+ keyword: { channels: 1, labels: ["keyword"] },
364
+ ansi16: { channels: 1, labels: ["ansi16"] },
365
+ ansi256: { channels: 1, labels: ["ansi256"] },
366
+ hcg: { channels: 3, labels: ["h", "c", "g"] },
367
+ apple: { channels: 3, labels: ["r16", "g16", "b16"] },
368
+ gray: { channels: 1, labels: ["gray"] }
369
+ };
370
+ var conversions_default = convert;
371
+ var LAB_FT = (6 / 29) ** 3;
372
+ function srgbNonlinearTransform(c) {
373
+ const cc = c > 31308e-7 ? 1.055 * c ** (1 / 2.4) - 0.055 : c * 12.92;
374
+ return Math.min(Math.max(0, cc), 1);
375
+ }
376
+ function srgbNonlinearTransformInv(c) {
377
+ return c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92;
378
+ }
379
+ for (const model of Object.keys(convert)) {
380
+ if (!("channels" in convert[model])) {
381
+ throw new Error("missing channels property: " + model);
382
+ }
383
+ if (!("labels" in convert[model])) {
384
+ throw new Error("missing channel labels property: " + model);
385
+ }
386
+ if (convert[model].labels.length !== convert[model].channels) {
387
+ throw new Error("channel and label counts mismatch: " + model);
388
+ }
389
+ const { channels, labels } = convert[model];
390
+ delete convert[model].channels;
391
+ delete convert[model].labels;
392
+ Object.defineProperty(convert[model], "channels", { value: channels });
393
+ Object.defineProperty(convert[model], "labels", { value: labels });
394
+ }
395
+ convert.rgb.hsl = function(rgb) {
396
+ const r = rgb[0] / 255;
397
+ const g = rgb[1] / 255;
398
+ const b = rgb[2] / 255;
399
+ const min = Math.min(r, g, b);
400
+ const max = Math.max(r, g, b);
401
+ const delta = max - min;
402
+ let h;
403
+ let s;
404
+ switch (max) {
405
+ case min: {
406
+ h = 0;
407
+ break;
408
+ }
409
+ case r: {
410
+ h = (g - b) / delta;
411
+ break;
412
+ }
413
+ case g: {
414
+ h = 2 + (b - r) / delta;
415
+ break;
416
+ }
417
+ case b: {
418
+ h = 4 + (r - g) / delta;
419
+ break;
420
+ }
421
+ }
422
+ h = Math.min(h * 60, 360);
423
+ if (h < 0) {
424
+ h += 360;
425
+ }
426
+ const l = (min + max) / 2;
427
+ if (max === min) {
428
+ s = 0;
429
+ } else if (l <= 0.5) {
430
+ s = delta / (max + min);
431
+ } else {
432
+ s = delta / (2 - max - min);
433
+ }
434
+ return [h, s * 100, l * 100];
435
+ };
436
+ convert.rgb.hsv = function(rgb) {
437
+ let rdif;
438
+ let gdif;
439
+ let bdif;
440
+ let h;
441
+ let s;
442
+ const r = rgb[0] / 255;
443
+ const g = rgb[1] / 255;
444
+ const b = rgb[2] / 255;
445
+ const v = Math.max(r, g, b);
446
+ const diff = v - Math.min(r, g, b);
447
+ const diffc = function(c) {
448
+ return (v - c) / 6 / diff + 1 / 2;
449
+ };
450
+ if (diff === 0) {
451
+ h = 0;
452
+ s = 0;
453
+ } else {
454
+ s = diff / v;
455
+ rdif = diffc(r);
456
+ gdif = diffc(g);
457
+ bdif = diffc(b);
458
+ switch (v) {
459
+ case r: {
460
+ h = bdif - gdif;
461
+ break;
462
+ }
463
+ case g: {
464
+ h = 1 / 3 + rdif - bdif;
465
+ break;
466
+ }
467
+ case b: {
468
+ h = 2 / 3 + gdif - rdif;
469
+ break;
470
+ }
471
+ }
472
+ if (h < 0) {
473
+ h += 1;
474
+ } else if (h > 1) {
475
+ h -= 1;
476
+ }
477
+ }
478
+ return [
479
+ h * 360,
480
+ s * 100,
481
+ v * 100
482
+ ];
483
+ };
484
+ convert.rgb.hwb = function(rgb) {
485
+ const r = rgb[0];
486
+ const g = rgb[1];
487
+ let b = rgb[2];
488
+ const h = convert.rgb.hsl(rgb)[0];
489
+ const w = 1 / 255 * Math.min(r, Math.min(g, b));
490
+ b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
491
+ return [h, w * 100, b * 100];
492
+ };
493
+ convert.rgb.oklab = function(rgb) {
494
+ const r = srgbNonlinearTransformInv(rgb[0] / 255);
495
+ const g = srgbNonlinearTransformInv(rgb[1] / 255);
496
+ const b = srgbNonlinearTransformInv(rgb[2] / 255);
497
+ const lp = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);
498
+ const mp = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);
499
+ const sp = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
500
+ const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp;
501
+ const aa = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp;
502
+ const bb = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp;
503
+ return [l * 100, aa * 100, bb * 100];
504
+ };
505
+ convert.rgb.cmyk = function(rgb) {
506
+ const r = rgb[0] / 255;
507
+ const g = rgb[1] / 255;
508
+ const b = rgb[2] / 255;
509
+ const k = Math.min(1 - r, 1 - g, 1 - b);
510
+ const c = (1 - r - k) / (1 - k) || 0;
511
+ const m = (1 - g - k) / (1 - k) || 0;
512
+ const y = (1 - b - k) / (1 - k) || 0;
513
+ return [c * 100, m * 100, y * 100, k * 100];
514
+ };
515
+ function comparativeDistance(x, y) {
516
+ return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;
517
+ }
518
+ convert.rgb.keyword = function(rgb) {
519
+ const reversed = reverseKeywords[rgb];
520
+ if (reversed) {
521
+ return reversed;
522
+ }
523
+ let currentClosestDistance = Number.POSITIVE_INFINITY;
524
+ let currentClosestKeyword;
525
+ for (const keyword of Object.keys(color_name_default)) {
526
+ const value = color_name_default[keyword];
527
+ const distance = comparativeDistance(rgb, value);
528
+ if (distance < currentClosestDistance) {
529
+ currentClosestDistance = distance;
530
+ currentClosestKeyword = keyword;
531
+ }
532
+ }
533
+ return currentClosestKeyword;
534
+ };
535
+ convert.keyword.rgb = function(keyword) {
536
+ return color_name_default[keyword];
537
+ };
538
+ convert.rgb.xyz = function(rgb) {
539
+ const r = srgbNonlinearTransformInv(rgb[0] / 255);
540
+ const g = srgbNonlinearTransformInv(rgb[1] / 255);
541
+ const b = srgbNonlinearTransformInv(rgb[2] / 255);
542
+ const x = r * 0.4124564 + g * 0.3575761 + b * 0.1804375;
543
+ const y = r * 0.2126729 + g * 0.7151522 + b * 0.072175;
544
+ const z = r * 0.0193339 + g * 0.119192 + b * 0.9503041;
545
+ return [x * 100, y * 100, z * 100];
546
+ };
547
+ convert.rgb.lab = function(rgb) {
548
+ const xyz = convert.rgb.xyz(rgb);
549
+ let x = xyz[0];
550
+ let y = xyz[1];
551
+ let z = xyz[2];
552
+ x /= 95.047;
553
+ y /= 100;
554
+ z /= 108.883;
555
+ x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116;
556
+ y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116;
557
+ z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116;
558
+ const l = 116 * y - 16;
559
+ const a = 500 * (x - y);
560
+ const b = 200 * (y - z);
561
+ return [l, a, b];
562
+ };
563
+ convert.hsl.rgb = function(hsl) {
564
+ const h = hsl[0] / 360;
565
+ const s = hsl[1] / 100;
566
+ const l = hsl[2] / 100;
567
+ let t3;
568
+ let value;
569
+ if (s === 0) {
570
+ value = l * 255;
571
+ return [value, value, value];
572
+ }
573
+ const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;
574
+ const t1 = 2 * l - t2;
575
+ const rgb = [0, 0, 0];
576
+ for (let i = 0; i < 3; i++) {
577
+ t3 = h + 1 / 3 * -(i - 1);
578
+ if (t3 < 0) {
579
+ t3++;
580
+ }
581
+ if (t3 > 1) {
582
+ t3--;
583
+ }
584
+ if (6 * t3 < 1) {
585
+ value = t1 + (t2 - t1) * 6 * t3;
586
+ } else if (2 * t3 < 1) {
587
+ value = t2;
588
+ } else if (3 * t3 < 2) {
589
+ value = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
590
+ } else {
591
+ value = t1;
592
+ }
593
+ rgb[i] = value * 255;
594
+ }
595
+ return rgb;
596
+ };
597
+ convert.hsl.hsv = function(hsl) {
598
+ const h = hsl[0];
599
+ let s = hsl[1] / 100;
600
+ let l = hsl[2] / 100;
601
+ let smin = s;
602
+ const lmin = Math.max(l, 0.01);
603
+ l *= 2;
604
+ s *= l <= 1 ? l : 2 - l;
605
+ smin *= lmin <= 1 ? lmin : 2 - lmin;
606
+ const v = (l + s) / 2;
607
+ const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
608
+ return [h, sv * 100, v * 100];
609
+ };
610
+ convert.hsv.rgb = function(hsv) {
611
+ const h = hsv[0] / 60;
612
+ const s = hsv[1] / 100;
613
+ let v = hsv[2] / 100;
614
+ const hi = Math.floor(h) % 6;
615
+ const f = h - Math.floor(h);
616
+ const p = 255 * v * (1 - s);
617
+ const q = 255 * v * (1 - s * f);
618
+ const t = 255 * v * (1 - s * (1 - f));
619
+ v *= 255;
620
+ switch (hi) {
621
+ case 0: {
622
+ return [v, t, p];
623
+ }
624
+ case 1: {
625
+ return [q, v, p];
626
+ }
627
+ case 2: {
628
+ return [p, v, t];
629
+ }
630
+ case 3: {
631
+ return [p, q, v];
632
+ }
633
+ case 4: {
634
+ return [t, p, v];
635
+ }
636
+ case 5: {
637
+ return [v, p, q];
638
+ }
639
+ }
640
+ };
641
+ convert.hsv.hsl = function(hsv) {
642
+ const h = hsv[0];
643
+ const s = hsv[1] / 100;
644
+ const v = hsv[2] / 100;
645
+ const vmin = Math.max(v, 0.01);
646
+ let sl;
647
+ let l;
648
+ l = (2 - s) * v;
649
+ const lmin = (2 - s) * vmin;
650
+ sl = s * vmin;
651
+ sl /= lmin <= 1 ? lmin : 2 - lmin;
652
+ sl = sl || 0;
653
+ l /= 2;
654
+ return [h, sl * 100, l * 100];
655
+ };
656
+ convert.hwb.rgb = function(hwb) {
657
+ const h = hwb[0] / 360;
658
+ let wh = hwb[1] / 100;
659
+ let bl = hwb[2] / 100;
660
+ const ratio = wh + bl;
661
+ let f;
662
+ if (ratio > 1) {
663
+ wh /= ratio;
664
+ bl /= ratio;
665
+ }
666
+ const i = Math.floor(6 * h);
667
+ const v = 1 - bl;
668
+ f = 6 * h - i;
669
+ if ((i & 1) !== 0) {
670
+ f = 1 - f;
671
+ }
672
+ const n = wh + f * (v - wh);
673
+ let r;
674
+ let g;
675
+ let b;
676
+ switch (i) {
677
+ default:
678
+ case 6:
679
+ case 0: {
680
+ r = v;
681
+ g = n;
682
+ b = wh;
683
+ break;
684
+ }
685
+ case 1: {
686
+ r = n;
687
+ g = v;
688
+ b = wh;
689
+ break;
690
+ }
691
+ case 2: {
692
+ r = wh;
693
+ g = v;
694
+ b = n;
695
+ break;
696
+ }
697
+ case 3: {
698
+ r = wh;
699
+ g = n;
700
+ b = v;
701
+ break;
702
+ }
703
+ case 4: {
704
+ r = n;
705
+ g = wh;
706
+ b = v;
707
+ break;
708
+ }
709
+ case 5: {
710
+ r = v;
711
+ g = wh;
712
+ b = n;
713
+ break;
714
+ }
715
+ }
716
+ return [r * 255, g * 255, b * 255];
717
+ };
718
+ convert.cmyk.rgb = function(cmyk) {
719
+ const c = cmyk[0] / 100;
720
+ const m = cmyk[1] / 100;
721
+ const y = cmyk[2] / 100;
722
+ const k = cmyk[3] / 100;
723
+ const r = 1 - Math.min(1, c * (1 - k) + k);
724
+ const g = 1 - Math.min(1, m * (1 - k) + k);
725
+ const b = 1 - Math.min(1, y * (1 - k) + k);
726
+ return [r * 255, g * 255, b * 255];
727
+ };
728
+ convert.xyz.rgb = function(xyz) {
729
+ const x = xyz[0] / 100;
730
+ const y = xyz[1] / 100;
731
+ const z = xyz[2] / 100;
732
+ let r;
733
+ let g;
734
+ let b;
735
+ r = x * 3.2404542 + y * -1.5371385 + z * -0.4985314;
736
+ g = x * -0.969266 + y * 1.8760108 + z * 0.041556;
737
+ b = x * 0.0556434 + y * -0.2040259 + z * 1.0572252;
738
+ r = srgbNonlinearTransform(r);
739
+ g = srgbNonlinearTransform(g);
740
+ b = srgbNonlinearTransform(b);
741
+ return [r * 255, g * 255, b * 255];
742
+ };
743
+ convert.xyz.lab = function(xyz) {
744
+ let x = xyz[0];
745
+ let y = xyz[1];
746
+ let z = xyz[2];
747
+ x /= 95.047;
748
+ y /= 100;
749
+ z /= 108.883;
750
+ x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116;
751
+ y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116;
752
+ z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116;
753
+ const l = 116 * y - 16;
754
+ const a = 500 * (x - y);
755
+ const b = 200 * (y - z);
756
+ return [l, a, b];
757
+ };
758
+ convert.xyz.oklab = function(xyz) {
759
+ const x = xyz[0] / 100;
760
+ const y = xyz[1] / 100;
761
+ const z = xyz[2] / 100;
762
+ const lp = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);
763
+ const mp = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);
764
+ const sp = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z);
765
+ const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp;
766
+ const a = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp;
767
+ const b = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp;
768
+ return [l * 100, a * 100, b * 100];
769
+ };
770
+ convert.oklab.oklch = function(oklab) {
771
+ return convert.lab.lch(oklab);
772
+ };
773
+ convert.oklab.xyz = function(oklab) {
774
+ const ll = oklab[0] / 100;
775
+ const a = oklab[1] / 100;
776
+ const b = oklab[2] / 100;
777
+ const l = (0.999999998 * ll + 0.396337792 * a + 0.215803758 * b) ** 3;
778
+ const m = (1.000000008 * ll - 0.105561342 * a - 0.063854175 * b) ** 3;
779
+ const s = (1.000000055 * ll - 0.089484182 * a - 1.291485538 * b) ** 3;
780
+ const x = 1.227013851 * l - 0.55779998 * m + 0.281256149 * s;
781
+ const y = -0.040580178 * l + 1.11225687 * m - 0.071676679 * s;
782
+ const z = -0.076381285 * l - 0.421481978 * m + 1.58616322 * s;
783
+ return [x * 100, y * 100, z * 100];
784
+ };
785
+ convert.oklab.rgb = function(oklab) {
786
+ const ll = oklab[0] / 100;
787
+ const aa = oklab[1] / 100;
788
+ const bb = oklab[2] / 100;
789
+ const l = (ll + 0.3963377774 * aa + 0.2158037573 * bb) ** 3;
790
+ const m = (ll - 0.1055613458 * aa - 0.0638541728 * bb) ** 3;
791
+ const s = (ll - 0.0894841775 * aa - 1.291485548 * bb) ** 3;
792
+ const r = srgbNonlinearTransform(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s);
793
+ const g = srgbNonlinearTransform(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s);
794
+ const b = srgbNonlinearTransform(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s);
795
+ return [r * 255, g * 255, b * 255];
796
+ };
797
+ convert.oklch.oklab = function(oklch) {
798
+ return convert.lch.lab(oklch);
799
+ };
800
+ convert.lab.xyz = function(lab) {
801
+ const l = lab[0];
802
+ const a = lab[1];
803
+ const b = lab[2];
804
+ let x;
805
+ let y;
806
+ let z;
807
+ y = (l + 16) / 116;
808
+ x = a / 500 + y;
809
+ z = y - b / 200;
810
+ const y2 = y ** 3;
811
+ const x2 = x ** 3;
812
+ const z2 = z ** 3;
813
+ y = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;
814
+ x = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;
815
+ z = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;
816
+ x *= 95.047;
817
+ y *= 100;
818
+ z *= 108.883;
819
+ return [x, y, z];
820
+ };
821
+ convert.lab.lch = function(lab) {
822
+ const l = lab[0];
823
+ const a = lab[1];
824
+ const b = lab[2];
825
+ let h;
826
+ const hr = Math.atan2(b, a);
827
+ h = hr * 360 / 2 / Math.PI;
828
+ if (h < 0) {
829
+ h += 360;
830
+ }
831
+ const c = Math.sqrt(a * a + b * b);
832
+ return [l, c, h];
833
+ };
834
+ convert.lch.lab = function(lch) {
835
+ const l = lch[0];
836
+ const c = lch[1];
837
+ const h = lch[2];
838
+ const hr = h / 360 * 2 * Math.PI;
839
+ const a = c * Math.cos(hr);
840
+ const b = c * Math.sin(hr);
841
+ return [l, a, b];
842
+ };
843
+ convert.rgb.ansi16 = function(args, saturation = null) {
844
+ const [r, g, b] = args;
845
+ let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;
846
+ value = Math.round(value / 50);
847
+ if (value === 0) {
848
+ return 30;
849
+ }
850
+ let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
851
+ if (value === 2) {
852
+ ansi += 60;
853
+ }
854
+ return ansi;
855
+ };
856
+ convert.hsv.ansi16 = function(args) {
857
+ return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
858
+ };
859
+ convert.rgb.ansi256 = function(args) {
860
+ const r = args[0];
861
+ const g = args[1];
862
+ const b = args[2];
863
+ if (r >> 4 === g >> 4 && g >> 4 === b >> 4) {
864
+ if (r < 8) {
865
+ return 16;
866
+ }
867
+ if (r > 248) {
868
+ return 231;
869
+ }
870
+ return Math.round((r - 8) / 247 * 24) + 232;
871
+ }
872
+ const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
873
+ return ansi;
874
+ };
875
+ convert.ansi16.rgb = function(args) {
876
+ args = args[0];
877
+ let color = args % 10;
878
+ if (color === 0 || color === 7) {
879
+ if (args > 50) {
880
+ color += 3.5;
881
+ }
882
+ color = color / 10.5 * 255;
883
+ return [color, color, color];
884
+ }
885
+ const mult = (Math.trunc(args > 50) + 1) * 0.5;
886
+ const r = (color & 1) * mult * 255;
887
+ const g = (color >> 1 & 1) * mult * 255;
888
+ const b = (color >> 2 & 1) * mult * 255;
889
+ return [r, g, b];
890
+ };
891
+ convert.ansi256.rgb = function(args) {
892
+ args = args[0];
893
+ if (args >= 232) {
894
+ const c = (args - 232) * 10 + 8;
895
+ return [c, c, c];
896
+ }
897
+ args -= 16;
898
+ let rem;
899
+ const r = Math.floor(args / 36) / 5 * 255;
900
+ const g = Math.floor((rem = args % 36) / 6) / 5 * 255;
901
+ const b = rem % 6 / 5 * 255;
902
+ return [r, g, b];
903
+ };
904
+ convert.rgb.hex = function(args) {
905
+ const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);
906
+ const string = integer.toString(16).toUpperCase();
907
+ return "000000".slice(string.length) + string;
908
+ };
909
+ convert.hex.rgb = function(args) {
910
+ const match = args.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);
911
+ if (!match) {
912
+ return [0, 0, 0];
913
+ }
914
+ let colorString = match[0];
915
+ if (match[0].length === 3) {
916
+ colorString = [...colorString].map((char) => char + char).join("");
917
+ }
918
+ const integer = Number.parseInt(colorString, 16);
919
+ const r = integer >> 16 & 255;
920
+ const g = integer >> 8 & 255;
921
+ const b = integer & 255;
922
+ return [r, g, b];
923
+ };
924
+ convert.rgb.hcg = function(rgb) {
925
+ const r = rgb[0] / 255;
926
+ const g = rgb[1] / 255;
927
+ const b = rgb[2] / 255;
928
+ const max = Math.max(Math.max(r, g), b);
929
+ const min = Math.min(Math.min(r, g), b);
930
+ const chroma = max - min;
931
+ let hue;
932
+ const grayscale = chroma < 1 ? min / (1 - chroma) : 0;
933
+ if (chroma <= 0) {
934
+ hue = 0;
935
+ } else if (max === r) {
936
+ hue = (g - b) / chroma % 6;
937
+ } else if (max === g) {
938
+ hue = 2 + (b - r) / chroma;
939
+ } else {
940
+ hue = 4 + (r - g) / chroma;
941
+ }
942
+ hue /= 6;
943
+ hue %= 1;
944
+ return [hue * 360, chroma * 100, grayscale * 100];
945
+ };
946
+ convert.hsl.hcg = function(hsl) {
947
+ const s = hsl[1] / 100;
948
+ const l = hsl[2] / 100;
949
+ const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l);
950
+ let f = 0;
951
+ if (c < 1) {
952
+ f = (l - 0.5 * c) / (1 - c);
953
+ }
954
+ return [hsl[0], c * 100, f * 100];
955
+ };
956
+ convert.hsv.hcg = function(hsv) {
957
+ const s = hsv[1] / 100;
958
+ const v = hsv[2] / 100;
959
+ const c = s * v;
960
+ let f = 0;
961
+ if (c < 1) {
962
+ f = (v - c) / (1 - c);
963
+ }
964
+ return [hsv[0], c * 100, f * 100];
965
+ };
966
+ convert.hcg.rgb = function(hcg) {
967
+ const h = hcg[0] / 360;
968
+ const c = hcg[1] / 100;
969
+ const g = hcg[2] / 100;
970
+ if (c === 0) {
971
+ return [g * 255, g * 255, g * 255];
972
+ }
973
+ const pure = [0, 0, 0];
974
+ const hi = h % 1 * 6;
975
+ const v = hi % 1;
976
+ const w = 1 - v;
977
+ let mg = 0;
978
+ switch (Math.floor(hi)) {
979
+ case 0: {
980
+ pure[0] = 1;
981
+ pure[1] = v;
982
+ pure[2] = 0;
983
+ break;
984
+ }
985
+ case 1: {
986
+ pure[0] = w;
987
+ pure[1] = 1;
988
+ pure[2] = 0;
989
+ break;
990
+ }
991
+ case 2: {
992
+ pure[0] = 0;
993
+ pure[1] = 1;
994
+ pure[2] = v;
995
+ break;
996
+ }
997
+ case 3: {
998
+ pure[0] = 0;
999
+ pure[1] = w;
1000
+ pure[2] = 1;
1001
+ break;
1002
+ }
1003
+ case 4: {
1004
+ pure[0] = v;
1005
+ pure[1] = 0;
1006
+ pure[2] = 1;
1007
+ break;
1008
+ }
1009
+ default: {
1010
+ pure[0] = 1;
1011
+ pure[1] = 0;
1012
+ pure[2] = w;
1013
+ }
1014
+ }
1015
+ mg = (1 - c) * g;
1016
+ return [
1017
+ (c * pure[0] + mg) * 255,
1018
+ (c * pure[1] + mg) * 255,
1019
+ (c * pure[2] + mg) * 255
1020
+ ];
1021
+ };
1022
+ convert.hcg.hsv = function(hcg) {
1023
+ const c = hcg[1] / 100;
1024
+ const g = hcg[2] / 100;
1025
+ const v = c + g * (1 - c);
1026
+ let f = 0;
1027
+ if (v > 0) {
1028
+ f = c / v;
1029
+ }
1030
+ return [hcg[0], f * 100, v * 100];
1031
+ };
1032
+ convert.hcg.hsl = function(hcg) {
1033
+ const c = hcg[1] / 100;
1034
+ const g = hcg[2] / 100;
1035
+ const l = g * (1 - c) + 0.5 * c;
1036
+ let s = 0;
1037
+ if (l > 0 && l < 0.5) {
1038
+ s = c / (2 * l);
1039
+ } else if (l >= 0.5 && l < 1) {
1040
+ s = c / (2 * (1 - l));
1041
+ }
1042
+ return [hcg[0], s * 100, l * 100];
1043
+ };
1044
+ convert.hcg.hwb = function(hcg) {
1045
+ const c = hcg[1] / 100;
1046
+ const g = hcg[2] / 100;
1047
+ const v = c + g * (1 - c);
1048
+ return [hcg[0], (v - c) * 100, (1 - v) * 100];
1049
+ };
1050
+ convert.hwb.hcg = function(hwb) {
1051
+ const w = hwb[1] / 100;
1052
+ const b = hwb[2] / 100;
1053
+ const v = 1 - b;
1054
+ const c = v - w;
1055
+ let g = 0;
1056
+ if (c < 1) {
1057
+ g = (v - c) / (1 - c);
1058
+ }
1059
+ return [hwb[0], c * 100, g * 100];
1060
+ };
1061
+ convert.apple.rgb = function(apple) {
1062
+ return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
1063
+ };
1064
+ convert.rgb.apple = function(rgb) {
1065
+ return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
1066
+ };
1067
+ convert.gray.rgb = function(args) {
1068
+ return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
1069
+ };
1070
+ convert.gray.hsl = function(args) {
1071
+ return [0, 0, args[0]];
1072
+ };
1073
+ convert.gray.hsv = convert.gray.hsl;
1074
+ convert.gray.hwb = function(gray) {
1075
+ return [0, 100, gray[0]];
1076
+ };
1077
+ convert.gray.cmyk = function(gray) {
1078
+ return [0, 0, 0, gray[0]];
1079
+ };
1080
+ convert.gray.lab = function(gray) {
1081
+ return [gray[0], 0, 0];
1082
+ };
1083
+ convert.gray.hex = function(gray) {
1084
+ const value = Math.round(gray[0] / 100 * 255) & 255;
1085
+ const integer = (value << 16) + (value << 8) + value;
1086
+ const string = integer.toString(16).toUpperCase();
1087
+ return "000000".slice(string.length) + string;
1088
+ };
1089
+ convert.rgb.gray = function(rgb) {
1090
+ const value = (rgb[0] + rgb[1] + rgb[2]) / 3;
1091
+ return [value / 255 * 100];
1092
+ };
1093
+
1094
+ // node_modules/color-convert/route.js
1095
+ function buildGraph() {
1096
+ const graph = {};
1097
+ const models2 = Object.keys(conversions_default);
1098
+ for (let { length } = models2, i = 0; i < length; i++) {
1099
+ graph[models2[i]] = {
1100
+ // http://jsperf.com/1-vs-infinity
1101
+ // micro-opt, but this is simple.
1102
+ distance: -1,
1103
+ parent: null
1104
+ };
1105
+ }
1106
+ return graph;
1107
+ }
1108
+ function deriveBFS(fromModel) {
1109
+ const graph = buildGraph();
1110
+ const queue = [fromModel];
1111
+ graph[fromModel].distance = 0;
1112
+ while (queue.length > 0) {
1113
+ const current = queue.pop();
1114
+ const adjacents = Object.keys(conversions_default[current]);
1115
+ for (let { length } = adjacents, i = 0; i < length; i++) {
1116
+ const adjacent = adjacents[i];
1117
+ const node = graph[adjacent];
1118
+ if (node.distance === -1) {
1119
+ node.distance = graph[current].distance + 1;
1120
+ node.parent = current;
1121
+ queue.unshift(adjacent);
1122
+ }
1123
+ }
1124
+ }
1125
+ return graph;
1126
+ }
1127
+ function link(from, to) {
1128
+ return function(args) {
1129
+ return to(from(args));
1130
+ };
1131
+ }
1132
+ function wrapConversion(toModel, graph) {
1133
+ const path = [graph[toModel].parent, toModel];
1134
+ let fn = conversions_default[graph[toModel].parent][toModel];
1135
+ let cur = graph[toModel].parent;
1136
+ while (graph[cur].parent) {
1137
+ path.unshift(graph[cur].parent);
1138
+ fn = link(conversions_default[graph[cur].parent][cur], fn);
1139
+ cur = graph[cur].parent;
1140
+ }
1141
+ fn.conversion = path;
1142
+ return fn;
1143
+ }
1144
+ function route(fromModel) {
1145
+ const graph = deriveBFS(fromModel);
1146
+ const conversion = {};
1147
+ const models2 = Object.keys(graph);
1148
+ for (let { length } = models2, i = 0; i < length; i++) {
1149
+ const toModel = models2[i];
1150
+ const node = graph[toModel];
1151
+ if (node.parent === null) {
1152
+ continue;
1153
+ }
1154
+ conversion[toModel] = wrapConversion(toModel, graph);
1155
+ }
1156
+ return conversion;
1157
+ }
1158
+ var route_default = route;
1159
+
1160
+ // node_modules/color-convert/index.js
1161
+ var convert2 = {};
1162
+ var models = Object.keys(conversions_default);
1163
+ function wrapRaw(fn) {
1164
+ const wrappedFn = function(...args) {
1165
+ const arg0 = args[0];
1166
+ if (arg0 === void 0 || arg0 === null) {
1167
+ return arg0;
1168
+ }
1169
+ if (arg0.length > 1) {
1170
+ args = arg0;
1171
+ }
1172
+ return fn(args);
1173
+ };
1174
+ if ("conversion" in fn) {
1175
+ wrappedFn.conversion = fn.conversion;
1176
+ }
1177
+ return wrappedFn;
1178
+ }
1179
+ function wrapRounded(fn) {
1180
+ const wrappedFn = function(...args) {
1181
+ const arg0 = args[0];
1182
+ if (arg0 === void 0 || arg0 === null) {
1183
+ return arg0;
1184
+ }
1185
+ if (arg0.length > 1) {
1186
+ args = arg0;
1187
+ }
1188
+ const result = fn(args);
1189
+ if (typeof result === "object") {
1190
+ for (let { length } = result, i = 0; i < length; i++) {
1191
+ result[i] = Math.round(result[i]);
1192
+ }
1193
+ }
1194
+ return result;
1195
+ };
1196
+ if ("conversion" in fn) {
1197
+ wrappedFn.conversion = fn.conversion;
1198
+ }
1199
+ return wrappedFn;
1200
+ }
1201
+ for (const fromModel of models) {
1202
+ convert2[fromModel] = {};
1203
+ Object.defineProperty(convert2[fromModel], "channels", { value: conversions_default[fromModel].channels });
1204
+ Object.defineProperty(convert2[fromModel], "labels", { value: conversions_default[fromModel].labels });
1205
+ const routes = route_default(fromModel);
1206
+ const routeModels = Object.keys(routes);
1207
+ for (const toModel of routeModels) {
1208
+ const fn = routes[toModel];
1209
+ convert2[fromModel][toModel] = wrapRounded(fn);
1210
+ convert2[fromModel][toModel].raw = wrapRaw(fn);
1211
+ }
1212
+ }
1213
+ var color_convert_default = convert2;
1214
+
1215
+ // node_modules/color/index.js
1216
+ var skippedModels = [
1217
+ // To be honest, I don't really feel like keyword belongs in color convert, but eh.
1218
+ "keyword",
1219
+ // Gray conflicts with some method names, and has its own method defined.
1220
+ "gray",
1221
+ // Shouldn't really be in color-convert either...
1222
+ "hex"
1223
+ ];
1224
+ var hashedModelKeys = {};
1225
+ for (const model of Object.keys(color_convert_default)) {
1226
+ hashedModelKeys[[...color_convert_default[model].labels].sort().join("")] = model;
1227
+ }
1228
+ var limiters = {};
1229
+ function Color(object, model) {
1230
+ if (!(this instanceof Color)) {
1231
+ return new Color(object, model);
1232
+ }
1233
+ if (model && model in skippedModels) {
1234
+ model = null;
1235
+ }
1236
+ if (model && !(model in color_convert_default)) {
1237
+ throw new Error("Unknown model: " + model);
1238
+ }
1239
+ let i;
1240
+ let channels;
1241
+ if (object == null) {
1242
+ this.model = "rgb";
1243
+ this.color = [0, 0, 0];
1244
+ this.valpha = 1;
1245
+ } else if (object instanceof Color) {
1246
+ this.model = object.model;
1247
+ this.color = [...object.color];
1248
+ this.valpha = object.valpha;
1249
+ } else if (typeof object === "string") {
1250
+ const result = color_string_default.get(object);
1251
+ if (result === null) {
1252
+ throw new Error("Unable to parse color from string: " + object);
1253
+ }
1254
+ this.model = result.model;
1255
+ channels = color_convert_default[this.model].channels;
1256
+ this.color = result.value.slice(0, channels);
1257
+ this.valpha = typeof result.value[channels] === "number" ? result.value[channels] : 1;
1258
+ } else if (object.length > 0) {
1259
+ this.model = model || "rgb";
1260
+ channels = color_convert_default[this.model].channels;
1261
+ const newArray = Array.prototype.slice.call(object, 0, channels);
1262
+ this.color = zeroArray(newArray, channels);
1263
+ this.valpha = typeof object[channels] === "number" ? object[channels] : 1;
1264
+ } else if (typeof object === "number") {
1265
+ this.model = "rgb";
1266
+ this.color = [
1267
+ object >> 16 & 255,
1268
+ object >> 8 & 255,
1269
+ object & 255
1270
+ ];
1271
+ this.valpha = 1;
1272
+ } else {
1273
+ this.valpha = 1;
1274
+ const keys = Object.keys(object);
1275
+ if ("alpha" in object) {
1276
+ keys.splice(keys.indexOf("alpha"), 1);
1277
+ this.valpha = typeof object.alpha === "number" ? object.alpha : 0;
1278
+ }
1279
+ const hashedKeys = keys.sort().join("");
1280
+ if (!(hashedKeys in hashedModelKeys)) {
1281
+ throw new Error("Unable to parse color from object: " + JSON.stringify(object));
1282
+ }
1283
+ this.model = hashedModelKeys[hashedKeys];
1284
+ const { labels } = color_convert_default[this.model];
1285
+ const color = [];
1286
+ for (i = 0; i < labels.length; i++) {
1287
+ color.push(object[labels[i]]);
1288
+ }
1289
+ this.color = zeroArray(color);
1290
+ }
1291
+ if (limiters[this.model]) {
1292
+ channels = color_convert_default[this.model].channels;
1293
+ for (i = 0; i < channels; i++) {
1294
+ const limit = limiters[this.model][i];
1295
+ if (limit) {
1296
+ this.color[i] = limit(this.color[i]);
1297
+ }
1298
+ }
1299
+ }
1300
+ this.valpha = Math.max(0, Math.min(1, this.valpha));
1301
+ if (Object.freeze) {
1302
+ Object.freeze(this);
1303
+ }
1304
+ }
1305
+ Color.prototype = {
1306
+ toString() {
1307
+ return this.string();
1308
+ },
1309
+ toJSON() {
1310
+ return this[this.model]();
1311
+ },
1312
+ string(places) {
1313
+ let self = this.model in color_string_default.to ? this : this.rgb();
1314
+ self = self.round(typeof places === "number" ? places : 1);
1315
+ const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];
1316
+ return color_string_default.to[self.model](...arguments_);
1317
+ },
1318
+ percentString(places) {
1319
+ const self = this.rgb().round(typeof places === "number" ? places : 1);
1320
+ const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];
1321
+ return color_string_default.to.rgb.percent(...arguments_);
1322
+ },
1323
+ array() {
1324
+ return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];
1325
+ },
1326
+ object() {
1327
+ const result = {};
1328
+ const { channels } = color_convert_default[this.model];
1329
+ const { labels } = color_convert_default[this.model];
1330
+ for (let i = 0; i < channels; i++) {
1331
+ result[labels[i]] = this.color[i];
1332
+ }
1333
+ if (this.valpha !== 1) {
1334
+ result.alpha = this.valpha;
1335
+ }
1336
+ return result;
1337
+ },
1338
+ unitArray() {
1339
+ const rgb = this.rgb().color;
1340
+ rgb[0] /= 255;
1341
+ rgb[1] /= 255;
1342
+ rgb[2] /= 255;
1343
+ if (this.valpha !== 1) {
1344
+ rgb.push(this.valpha);
1345
+ }
1346
+ return rgb;
1347
+ },
1348
+ unitObject() {
1349
+ const rgb = this.rgb().object();
1350
+ rgb.r /= 255;
1351
+ rgb.g /= 255;
1352
+ rgb.b /= 255;
1353
+ if (this.valpha !== 1) {
1354
+ rgb.alpha = this.valpha;
1355
+ }
1356
+ return rgb;
1357
+ },
1358
+ round(places) {
1359
+ places = Math.max(places || 0, 0);
1360
+ return new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);
1361
+ },
1362
+ alpha(value) {
1363
+ if (value !== void 0) {
1364
+ return new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);
1365
+ }
1366
+ return this.valpha;
1367
+ },
1368
+ // Rgb
1369
+ red: getset("rgb", 0, maxfn(255)),
1370
+ green: getset("rgb", 1, maxfn(255)),
1371
+ blue: getset("rgb", 2, maxfn(255)),
1372
+ hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, (value) => (value % 360 + 360) % 360),
1373
+ saturationl: getset("hsl", 1, maxfn(100)),
1374
+ lightness: getset("hsl", 2, maxfn(100)),
1375
+ saturationv: getset("hsv", 1, maxfn(100)),
1376
+ value: getset("hsv", 2, maxfn(100)),
1377
+ chroma: getset("hcg", 1, maxfn(100)),
1378
+ gray: getset("hcg", 2, maxfn(100)),
1379
+ white: getset("hwb", 1, maxfn(100)),
1380
+ wblack: getset("hwb", 2, maxfn(100)),
1381
+ cyan: getset("cmyk", 0, maxfn(100)),
1382
+ magenta: getset("cmyk", 1, maxfn(100)),
1383
+ yellow: getset("cmyk", 2, maxfn(100)),
1384
+ black: getset("cmyk", 3, maxfn(100)),
1385
+ x: getset("xyz", 0, maxfn(95.047)),
1386
+ y: getset("xyz", 1, maxfn(100)),
1387
+ z: getset("xyz", 2, maxfn(108.833)),
1388
+ l: getset("lab", 0, maxfn(100)),
1389
+ a: getset("lab", 1),
1390
+ b: getset("lab", 2),
1391
+ keyword(value) {
1392
+ if (value !== void 0) {
1393
+ return new Color(value);
1394
+ }
1395
+ return color_convert_default[this.model].keyword(this.color);
1396
+ },
1397
+ hex(value) {
1398
+ if (value !== void 0) {
1399
+ return new Color(value);
1400
+ }
1401
+ return color_string_default.to.hex(...this.rgb().round().color);
1402
+ },
1403
+ hexa(value) {
1404
+ if (value !== void 0) {
1405
+ return new Color(value);
1406
+ }
1407
+ const rgbArray = this.rgb().round().color;
1408
+ let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();
1409
+ if (alphaHex.length === 1) {
1410
+ alphaHex = "0" + alphaHex;
1411
+ }
1412
+ return color_string_default.to.hex(...rgbArray) + alphaHex;
1413
+ },
1414
+ rgbNumber() {
1415
+ const rgb = this.rgb().color;
1416
+ return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255;
1417
+ },
1418
+ luminosity() {
1419
+ const rgb = this.rgb().color;
1420
+ const lum = [];
1421
+ for (const [i, element] of rgb.entries()) {
1422
+ const chan = element / 255;
1423
+ lum[i] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;
1424
+ }
1425
+ return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];
1426
+ },
1427
+ contrast(color2) {
1428
+ const lum1 = this.luminosity();
1429
+ const lum2 = color2.luminosity();
1430
+ if (lum1 > lum2) {
1431
+ return (lum1 + 0.05) / (lum2 + 0.05);
1432
+ }
1433
+ return (lum2 + 0.05) / (lum1 + 0.05);
1434
+ },
1435
+ level(color2) {
1436
+ const contrastRatio = this.contrast(color2);
1437
+ if (contrastRatio >= 7) {
1438
+ return "AAA";
1439
+ }
1440
+ return contrastRatio >= 4.5 ? "AA" : "";
1441
+ },
1442
+ isDark() {
1443
+ const rgb = this.rgb().color;
1444
+ const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4;
1445
+ return yiq < 128;
1446
+ },
1447
+ isLight() {
1448
+ return !this.isDark();
1449
+ },
1450
+ negate() {
1451
+ const rgb = this.rgb();
1452
+ for (let i = 0; i < 3; i++) {
1453
+ rgb.color[i] = 255 - rgb.color[i];
1454
+ }
1455
+ return rgb;
1456
+ },
1457
+ lighten(ratio) {
1458
+ const hsl = this.hsl();
1459
+ hsl.color[2] += hsl.color[2] * ratio;
1460
+ return hsl;
1461
+ },
1462
+ darken(ratio) {
1463
+ const hsl = this.hsl();
1464
+ hsl.color[2] -= hsl.color[2] * ratio;
1465
+ return hsl;
1466
+ },
1467
+ saturate(ratio) {
1468
+ const hsl = this.hsl();
1469
+ hsl.color[1] += hsl.color[1] * ratio;
1470
+ return hsl;
1471
+ },
1472
+ desaturate(ratio) {
1473
+ const hsl = this.hsl();
1474
+ hsl.color[1] -= hsl.color[1] * ratio;
1475
+ return hsl;
1476
+ },
1477
+ whiten(ratio) {
1478
+ const hwb = this.hwb();
1479
+ hwb.color[1] += hwb.color[1] * ratio;
1480
+ return hwb;
1481
+ },
1482
+ blacken(ratio) {
1483
+ const hwb = this.hwb();
1484
+ hwb.color[2] += hwb.color[2] * ratio;
1485
+ return hwb;
1486
+ },
1487
+ grayscale() {
1488
+ const rgb = this.rgb().color;
1489
+ const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;
1490
+ return Color.rgb(value, value, value);
1491
+ },
1492
+ fade(ratio) {
1493
+ return this.alpha(this.valpha - this.valpha * ratio);
1494
+ },
1495
+ opaquer(ratio) {
1496
+ return this.alpha(this.valpha + this.valpha * ratio);
1497
+ },
1498
+ rotate(degrees) {
1499
+ const hsl = this.hsl();
1500
+ let hue = hsl.color[0];
1501
+ hue = (hue + degrees) % 360;
1502
+ hue = hue < 0 ? 360 + hue : hue;
1503
+ hsl.color[0] = hue;
1504
+ return hsl;
1505
+ },
1506
+ mix(mixinColor, weight) {
1507
+ if (!mixinColor || !mixinColor.rgb) {
1508
+ throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor);
1509
+ }
1510
+ const color1 = mixinColor.rgb();
1511
+ const color2 = this.rgb();
1512
+ const p = weight === void 0 ? 0.5 : weight;
1513
+ const w = 2 * p - 1;
1514
+ const a = color1.alpha() - color2.alpha();
1515
+ const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2;
1516
+ const w2 = 1 - w1;
1517
+ return Color.rgb(
1518
+ w1 * color1.red() + w2 * color2.red(),
1519
+ w1 * color1.green() + w2 * color2.green(),
1520
+ w1 * color1.blue() + w2 * color2.blue(),
1521
+ color1.alpha() * p + color2.alpha() * (1 - p)
1522
+ );
1523
+ }
1524
+ };
1525
+ for (const model of Object.keys(color_convert_default)) {
1526
+ if (skippedModels.includes(model)) {
1527
+ continue;
1528
+ }
1529
+ const { channels } = color_convert_default[model];
1530
+ Color.prototype[model] = function(...arguments_) {
1531
+ if (this.model === model) {
1532
+ return new Color(this);
1533
+ }
1534
+ if (arguments_.length > 0) {
1535
+ return new Color(arguments_, model);
1536
+ }
1537
+ return new Color([...assertArray(color_convert_default[this.model][model].raw(this.color)), this.valpha], model);
1538
+ };
1539
+ Color[model] = function(...arguments_) {
1540
+ let color = arguments_[0];
1541
+ if (typeof color === "number") {
1542
+ color = zeroArray(arguments_, channels);
1543
+ }
1544
+ return new Color(color, model);
1545
+ };
1546
+ }
1547
+ function roundTo(number, places) {
1548
+ return Number(number.toFixed(places));
1549
+ }
1550
+ function roundToPlace(places) {
1551
+ return function(number) {
1552
+ return roundTo(number, places);
1553
+ };
1554
+ }
1555
+ function getset(model, channel, modifier) {
1556
+ model = Array.isArray(model) ? model : [model];
1557
+ for (const m of model) {
1558
+ (limiters[m] ||= [])[channel] = modifier;
1559
+ }
1560
+ model = model[0];
1561
+ return function(value) {
1562
+ let result;
1563
+ if (value !== void 0) {
1564
+ if (modifier) {
1565
+ value = modifier(value);
1566
+ }
1567
+ result = this[model]();
1568
+ result.color[channel] = value;
1569
+ return result;
1570
+ }
1571
+ result = this[model]().color[channel];
1572
+ if (modifier) {
1573
+ result = modifier(result);
1574
+ }
1575
+ return result;
1576
+ };
1577
+ }
1578
+ function maxfn(max) {
1579
+ return function(v) {
1580
+ return Math.max(0, Math.min(max, v));
1581
+ };
1582
+ }
1583
+ function assertArray(value) {
1584
+ return Array.isArray(value) ? value : [value];
1585
+ }
1586
+ function zeroArray(array, length) {
1587
+ for (let i = 0; i < length; i++) {
1588
+ if (typeof array[i] !== "number") {
1589
+ array[i] = 0;
1590
+ }
1591
+ }
1592
+ return array;
1593
+ }
1594
+ var index_default = Color;